From d95358775f71ec5abd250a170a1a5452fdc1879e Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 26 Jan 2023 12:39:11 -0600 Subject: [PATCH 001/122] notes --- codec/amino/JSONMarshaller.go | 7 +++++++ codec/amino/README.md | 10 ++++++++++ 2 files changed, 17 insertions(+) create mode 100644 codec/amino/JSONMarshaller.go create mode 100644 codec/amino/README.md diff --git a/codec/amino/JSONMarshaller.go b/codec/amino/JSONMarshaller.go new file mode 100644 index 000000000000..c45bfb456ffa --- /dev/null +++ b/codec/amino/JSONMarshaller.go @@ -0,0 +1,7 @@ +package amino + +import "github.com/cosmos/gogoproto/proto" + +type JSONMarshaller interface { + MarshalAmino(proto.Message) ([]byte, error) +} diff --git a/codec/amino/README.md b/codec/amino/README.md new file mode 100644 index 000000000000..f4755e43db04 --- /dev/null +++ b/codec/amino/README.md @@ -0,0 +1,10 @@ +### go-amino/encoding-json behavior + +Types which implement the interface method `cosmos-sdk/codec.AminoMarshaler.MarshalAminoJSON` will be +marshaled using that method instead of the default JSON encoding. This is called by [reflection](https://github.com/tendermint/go-amino/blob/01b51bd47ba0f0bedebea6e8174484ff7863b282/reflect.go#L232). We will +find feature parity through the [amino.encoding](https://github.com/cosmos/cosmos-sdk/blob/b49f948b36bc991db5be431607b475633aed697e/proto/amino/amino.proto#L30encoding) and/or `amino.message_encoding` annotations. + +The same seems to be true for `encoding/json.Marshaler.MarshalJSON` and `MarshalAmino`. + +Note that go-amino [special cases byte arrays](https://github.com/tendermint/go-amino/blob/ccb15b138dfd74282be78f5e9059387768b12918/json-encode.go#L231) to support e.g. key serialization. This odd feature must be +included for total feature parity. From 5485fcad0ee4fec73df8e49bb67f7dcc7d9d98d4 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 26 Jan 2023 14:27:50 -0600 Subject: [PATCH 002/122] test proto gen --- codec/aminojson/.gitignore | 1 + codec/{amino => aminojson}/JSONMarshaller.go | 2 +- codec/aminojson/Makefile | 18 + codec/{amino => aminojson}/README.md | 0 codec/aminojson/buf.gen.yaml | 9 + codec/aminojson/buf.yaml | 9 + codec/aminojson/install-buf.sh | 10 + codec/aminojson/internal/testpb/test.pb.go | 766 +++++++++++++++++++ codec/aminojson/internal/testpb/test.proto | 90 +++ codec/aminojson/testpb/test.pb.go | 764 ++++++++++++++++++ 10 files changed, 1668 insertions(+), 1 deletion(-) create mode 100644 codec/aminojson/.gitignore rename codec/{amino => aminojson}/JSONMarshaller.go (87%) create mode 100644 codec/aminojson/Makefile rename codec/{amino => aminojson}/README.md (100%) create mode 100644 codec/aminojson/buf.gen.yaml create mode 100644 codec/aminojson/buf.yaml create mode 100755 codec/aminojson/install-buf.sh create mode 100644 codec/aminojson/internal/testpb/test.pb.go create mode 100644 codec/aminojson/internal/testpb/test.proto create mode 100644 codec/aminojson/testpb/test.pb.go diff --git a/codec/aminojson/.gitignore b/codec/aminojson/.gitignore new file mode 100644 index 000000000000..e660fd93d319 --- /dev/null +++ b/codec/aminojson/.gitignore @@ -0,0 +1 @@ +bin/ diff --git a/codec/amino/JSONMarshaller.go b/codec/aminojson/JSONMarshaller.go similarity index 87% rename from codec/amino/JSONMarshaller.go rename to codec/aminojson/JSONMarshaller.go index c45bfb456ffa..b7159bdb1a49 100644 --- a/codec/amino/JSONMarshaller.go +++ b/codec/aminojson/JSONMarshaller.go @@ -1,4 +1,4 @@ -package amino +package aminojson import "github.com/cosmos/gogoproto/proto" diff --git a/codec/aminojson/Makefile b/codec/aminojson/Makefile new file mode 100644 index 000000000000..125e033e7664 --- /dev/null +++ b/codec/aminojson/Makefile @@ -0,0 +1,18 @@ +GOLANG_PROTOBUF_VERSION = 1.28.1 +BIN = $(CURDIR)/bin +BUF = $(BIN)/buf + +.PHONY: proto-gen + +$(BIN)/protoc-gen-go: + GOBIN=$(BIN) go install google.golang.org/protobuf/cmd/protoc-gen-go@v$(GOLANG_PROTOBUF_VERSION) + +$(BUF): + ./install-buf.sh + +proto-gen: $(BUF) $(BIN)/protoc-gen-go + @echo "Generating proto files" + PATH=$(BIN) buf generate internal + +clean: + rm -rf $(BIN) \ No newline at end of file diff --git a/codec/amino/README.md b/codec/aminojson/README.md similarity index 100% rename from codec/amino/README.md rename to codec/aminojson/README.md diff --git a/codec/aminojson/buf.gen.yaml b/codec/aminojson/buf.gen.yaml new file mode 100644 index 000000000000..881264bc144c --- /dev/null +++ b/codec/aminojson/buf.gen.yaml @@ -0,0 +1,9 @@ +version: v1 +managed: + enabled: true + go_package_prefix: + default: github.com/cosmos/cosmos-proto/internal +plugins: + - name: go + out: . + opt: paths=source_relative diff --git a/codec/aminojson/buf.yaml b/codec/aminojson/buf.yaml new file mode 100644 index 000000000000..ac1df238ebec --- /dev/null +++ b/codec/aminojson/buf.yaml @@ -0,0 +1,9 @@ +version: v1 +lint: + use: + - DEFAULT + except: + - PACKAGE_VERSION_SUFFIX +breaking: + ignore: + - testpb diff --git a/codec/aminojson/install-buf.sh b/codec/aminojson/install-buf.sh new file mode 100755 index 000000000000..517b584adedf --- /dev/null +++ b/codec/aminojson/install-buf.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env sh + +BIN="$PWD/bin" +VERSION="1.9.0" + +mkdir -p "$BIN" +curl -sSL \ + "https://github.com/bufbuild/buf/releases/download/v${VERSION}/buf-$(uname -s)-$(uname -m)" \ + -o "${BIN}/buf" +chmod +x "${BIN}/buf" diff --git a/codec/aminojson/internal/testpb/test.pb.go b/codec/aminojson/internal/testpb/test.pb.go new file mode 100644 index 000000000000..41dcc5e5633c --- /dev/null +++ b/codec/aminojson/internal/testpb/test.pb.go @@ -0,0 +1,766 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc (unknown) +// source: testpb/test.proto + +package testpb + +import ( + reflect "reflect" + sync "sync" + + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + durationpb "google.golang.org/protobuf/types/known/durationpb" + emptypb "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + structpb "google.golang.org/protobuf/types/known/structpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type AnEnum int32 + +const ( + AnEnum_UNDEFINED AnEnum = 0 + AnEnum_ONE AnEnum = 1 + AnEnum_TWO AnEnum = 2 +) + +// Enum value maps for AnEnum. +var ( + AnEnum_name = map[int32]string{ + 0: "UNDEFINED", + 1: "ONE", + 2: "TWO", + } + AnEnum_value = map[string]int32{ + "UNDEFINED": 0, + "ONE": 1, + "TWO": 2, + } +) + +func (x AnEnum) Enum() *AnEnum { + p := new(AnEnum) + *p = x + return p +} + +func (x AnEnum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AnEnum) Descriptor() protoreflect.EnumDescriptor { + return file_testpb_test_proto_enumTypes[0].Descriptor() +} + +func (AnEnum) Type() protoreflect.EnumType { + return &file_testpb_test_proto_enumTypes[0] +} + +func (x AnEnum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AnEnum.Descriptor instead. +func (AnEnum) EnumDescriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{0} +} + +type ABitOfEverything struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // message + // Generates JSON objects. Message field names are mapped to lowerCamelCase and become JSON object keys. If the json_name field option is specified, the specified value will be used as the key instead. Parsers accept both the lowerCamelCase name (or the one specified by the json_name option) and the original proto field name. null is an accepted value for all field types and treated as the default value of the corresponding field type. + Message *NestedMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + // enum + // The name of the enum value as specified in proto is used. Parsers accept both enum names and integer values. + Enum AnEnum `protobuf:"varint,2,opt,name=enum,proto3,enum=testpb.AnEnum" json:"enum,omitempty"` + // map + // All keys are converted to strings. + StrMap map[string]string `protobuf:"bytes,3,rep,name=str_map,json=strMap,proto3" json:"str_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Int32Map map[int32]string `protobuf:"bytes,4,rep,name=int32_map,json=int32Map,proto3" json:"int32_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + BoolMap map[bool]string `protobuf:"bytes,5,rep,name=bool_map,json=boolMap,proto3" json:"bool_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // repeated + Repeated []int32 `protobuf:"varint,6,rep,packed,name=repeated,proto3" json:"repeated,omitempty"` + Str string `protobuf:"bytes,7,opt,name=str,proto3" json:"str,omitempty"` + Bool bool `protobuf:"varint,8,opt,name=bool,proto3" json:"bool,omitempty"` + Bytes []byte `protobuf:"bytes,9,opt,name=bytes,proto3" json:"bytes,omitempty"` + I32 int32 `protobuf:"varint,10,opt,name=i32,proto3" json:"i32,omitempty"` + F32 uint32 `protobuf:"fixed32,11,opt,name=f32,proto3" json:"f32,omitempty"` + U32 uint32 `protobuf:"varint,12,opt,name=u32,proto3" json:"u32,omitempty"` + Si32 int32 `protobuf:"zigzag32,13,opt,name=si32,proto3" json:"si32,omitempty"` + Sf32 int32 `protobuf:"fixed32,14,opt,name=sf32,proto3" json:"sf32,omitempty"` + I64 int64 `protobuf:"varint,15,opt,name=i64,proto3" json:"i64,omitempty"` + F64 uint64 `protobuf:"fixed64,16,opt,name=f64,proto3" json:"f64,omitempty"` + U64 uint64 `protobuf:"varint,17,opt,name=u64,proto3" json:"u64,omitempty"` + Si64 int64 `protobuf:"zigzag64,18,opt,name=si64,proto3" json:"si64,omitempty"` + Sf64 int64 `protobuf:"fixed64,19,opt,name=sf64,proto3" json:"sf64,omitempty"` + Float float32 `protobuf:"fixed32,20,opt,name=float,proto3" json:"float,omitempty"` + Double float64 `protobuf:"fixed64,21,opt,name=double,proto3" json:"double,omitempty"` + Any *anypb.Any `protobuf:"bytes,22,opt,name=any,proto3" json:"any,omitempty"` + Timestamp *timestamppb.Timestamp `protobuf:"bytes,23,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Duration *durationpb.Duration `protobuf:"bytes,24,opt,name=duration,proto3" json:"duration,omitempty"` + Struct *structpb.Struct `protobuf:"bytes,25,opt,name=struct,proto3" json:"struct,omitempty"` + BoolValue *wrapperspb.BoolValue `protobuf:"bytes,26,opt,name=bool_value,json=boolValue,proto3" json:"bool_value,omitempty"` + BytesValue *wrapperspb.BytesValue `protobuf:"bytes,27,opt,name=bytes_value,json=bytesValue,proto3" json:"bytes_value,omitempty"` + DoubleValue *wrapperspb.DoubleValue `protobuf:"bytes,28,opt,name=double_value,json=doubleValue,proto3" json:"double_value,omitempty"` + FloatValue *wrapperspb.FloatValue `protobuf:"bytes,29,opt,name=float_value,json=floatValue,proto3" json:"float_value,omitempty"` + Int32Value *wrapperspb.Int32Value `protobuf:"bytes,30,opt,name=int32_value,json=int32Value,proto3" json:"int32_value,omitempty"` + Int64Value *wrapperspb.Int64Value `protobuf:"bytes,31,opt,name=int64_value,json=int64Value,proto3" json:"int64_value,omitempty"` + StringValue *wrapperspb.StringValue `protobuf:"bytes,32,opt,name=string_value,json=stringValue,proto3" json:"string_value,omitempty"` + Uint32Value *wrapperspb.UInt32Value `protobuf:"bytes,33,opt,name=uint32_value,json=uint32Value,proto3" json:"uint32_value,omitempty"` + Uint64Value *wrapperspb.UInt64Value `protobuf:"bytes,34,opt,name=uint64_value,json=uint64Value,proto3" json:"uint64_value,omitempty"` + FieldMask *fieldmaskpb.FieldMask `protobuf:"bytes,35,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"` + ListValue *structpb.ListValue `protobuf:"bytes,36,opt,name=list_value,json=listValue,proto3" json:"list_value,omitempty"` + Value *structpb.Value `protobuf:"bytes,37,opt,name=value,proto3" json:"value,omitempty"` + NullValue structpb.NullValue `protobuf:"varint,38,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue" json:"null_value,omitempty"` + Empty *emptypb.Empty `protobuf:"bytes,39,opt,name=empty,proto3" json:"empty,omitempty"` +} + +func (x *ABitOfEverything) Reset() { + *x = ABitOfEverything{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ABitOfEverything) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ABitOfEverything) ProtoMessage() {} + +func (x *ABitOfEverything) ProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ABitOfEverything.ProtoReflect.Descriptor instead. +func (*ABitOfEverything) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{0} +} + +func (x *ABitOfEverything) GetMessage() *NestedMessage { + if x != nil { + return x.Message + } + return nil +} + +func (x *ABitOfEverything) GetEnum() AnEnum { + if x != nil { + return x.Enum + } + return AnEnum_UNDEFINED +} + +func (x *ABitOfEverything) GetStrMap() map[string]string { + if x != nil { + return x.StrMap + } + return nil +} + +func (x *ABitOfEverything) GetInt32Map() map[int32]string { + if x != nil { + return x.Int32Map + } + return nil +} + +func (x *ABitOfEverything) GetBoolMap() map[bool]string { + if x != nil { + return x.BoolMap + } + return nil +} + +func (x *ABitOfEverything) GetRepeated() []int32 { + if x != nil { + return x.Repeated + } + return nil +} + +func (x *ABitOfEverything) GetStr() string { + if x != nil { + return x.Str + } + return "" +} + +func (x *ABitOfEverything) GetBool() bool { + if x != nil { + return x.Bool + } + return false +} + +func (x *ABitOfEverything) GetBytes() []byte { + if x != nil { + return x.Bytes + } + return nil +} + +func (x *ABitOfEverything) GetI32() int32 { + if x != nil { + return x.I32 + } + return 0 +} + +func (x *ABitOfEverything) GetF32() uint32 { + if x != nil { + return x.F32 + } + return 0 +} + +func (x *ABitOfEverything) GetU32() uint32 { + if x != nil { + return x.U32 + } + return 0 +} + +func (x *ABitOfEverything) GetSi32() int32 { + if x != nil { + return x.Si32 + } + return 0 +} + +func (x *ABitOfEverything) GetSf32() int32 { + if x != nil { + return x.Sf32 + } + return 0 +} + +func (x *ABitOfEverything) GetI64() int64 { + if x != nil { + return x.I64 + } + return 0 +} + +func (x *ABitOfEverything) GetF64() uint64 { + if x != nil { + return x.F64 + } + return 0 +} + +func (x *ABitOfEverything) GetU64() uint64 { + if x != nil { + return x.U64 + } + return 0 +} + +func (x *ABitOfEverything) GetSi64() int64 { + if x != nil { + return x.Si64 + } + return 0 +} + +func (x *ABitOfEverything) GetSf64() int64 { + if x != nil { + return x.Sf64 + } + return 0 +} + +func (x *ABitOfEverything) GetFloat() float32 { + if x != nil { + return x.Float + } + return 0 +} + +func (x *ABitOfEverything) GetDouble() float64 { + if x != nil { + return x.Double + } + return 0 +} + +func (x *ABitOfEverything) GetAny() *anypb.Any { + if x != nil { + return x.Any + } + return nil +} + +func (x *ABitOfEverything) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *ABitOfEverything) GetDuration() *durationpb.Duration { + if x != nil { + return x.Duration + } + return nil +} + +func (x *ABitOfEverything) GetStruct() *structpb.Struct { + if x != nil { + return x.Struct + } + return nil +} + +func (x *ABitOfEverything) GetBoolValue() *wrapperspb.BoolValue { + if x != nil { + return x.BoolValue + } + return nil +} + +func (x *ABitOfEverything) GetBytesValue() *wrapperspb.BytesValue { + if x != nil { + return x.BytesValue + } + return nil +} + +func (x *ABitOfEverything) GetDoubleValue() *wrapperspb.DoubleValue { + if x != nil { + return x.DoubleValue + } + return nil +} + +func (x *ABitOfEverything) GetFloatValue() *wrapperspb.FloatValue { + if x != nil { + return x.FloatValue + } + return nil +} + +func (x *ABitOfEverything) GetInt32Value() *wrapperspb.Int32Value { + if x != nil { + return x.Int32Value + } + return nil +} + +func (x *ABitOfEverything) GetInt64Value() *wrapperspb.Int64Value { + if x != nil { + return x.Int64Value + } + return nil +} + +func (x *ABitOfEverything) GetStringValue() *wrapperspb.StringValue { + if x != nil { + return x.StringValue + } + return nil +} + +func (x *ABitOfEverything) GetUint32Value() *wrapperspb.UInt32Value { + if x != nil { + return x.Uint32Value + } + return nil +} + +func (x *ABitOfEverything) GetUint64Value() *wrapperspb.UInt64Value { + if x != nil { + return x.Uint64Value + } + return nil +} + +func (x *ABitOfEverything) GetFieldMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.FieldMask + } + return nil +} + +func (x *ABitOfEverything) GetListValue() *structpb.ListValue { + if x != nil { + return x.ListValue + } + return nil +} + +func (x *ABitOfEverything) GetValue() *structpb.Value { + if x != nil { + return x.Value + } + return nil +} + +func (x *ABitOfEverything) GetNullValue() structpb.NullValue { + if x != nil { + return x.NullValue + } + return structpb.NullValue(0) +} + +func (x *ABitOfEverything) GetEmpty() *emptypb.Empty { + if x != nil { + return x.Empty + } + return nil +} + +type NestedMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Foo string `protobuf:"bytes,1,opt,name=foo,proto3" json:"foo,omitempty"` + Bar int32 `protobuf:"varint,2,opt,name=bar,proto3" json:"bar,omitempty"` +} + +func (x *NestedMessage) Reset() { + *x = NestedMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NestedMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NestedMessage) ProtoMessage() {} + +func (x *NestedMessage) ProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NestedMessage.ProtoReflect.Descriptor instead. +func (*NestedMessage) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{1} +} + +func (x *NestedMessage) GetFoo() string { + if x != nil { + return x.Foo + } + return "" +} + +func (x *NestedMessage) GetBar() int32 { + if x != nil { + return x.Bar + } + return 0 +} + +var File_testpb_test_proto protoreflect.FileDescriptor + +var file_testpb_test_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x1a, 0x19, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb1, 0x0e, 0x0a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, + 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x73, + 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x65, 0x6e, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, + 0x62, 0x2e, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x3d, + 0x0a, 0x07, 0x73, 0x74, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, + 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x43, 0x0a, + 0x09, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, + 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4d, + 0x61, 0x70, 0x12, 0x40, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x42, + 0x69, 0x74, 0x4f, 0x66, 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x42, + 0x6f, 0x6f, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x62, 0x6f, 0x6f, + 0x6c, 0x4d, 0x61, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, + 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, + 0x69, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x69, 0x33, 0x32, 0x12, 0x10, + 0x0a, 0x03, 0x66, 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x66, 0x33, 0x32, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x33, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, + 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x33, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x04, 0x73, 0x69, 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x66, 0x33, 0x32, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0f, 0x52, 0x04, 0x73, 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x36, + 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x69, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, + 0x66, 0x36, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x66, 0x36, 0x34, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x36, 0x34, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x36, 0x34, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x36, 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, + 0x73, 0x69, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x66, 0x36, 0x34, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x10, 0x52, 0x04, 0x73, 0x66, 0x36, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, + 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x38, + 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x12, 0x39, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x64, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, + 0x73, 0x6b, 0x12, 0x39, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x6e, + 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6e, 0x75, 0x6c, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, + 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x05, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x3b, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, + 0x42, 0x6f, 0x6f, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x33, 0x0a, 0x0d, 0x4e, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x62, + 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, 0x2a, 0x29, 0x0a, + 0x06, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, + 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, + 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x91, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, + 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x6a, 0x73, 0x6f, 0x6e, 0x2f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, + 0x65, 0x73, 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, + 0x12, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_testpb_test_proto_rawDescOnce sync.Once + file_testpb_test_proto_rawDescData = file_testpb_test_proto_rawDesc +) + +func file_testpb_test_proto_rawDescGZIP() []byte { + file_testpb_test_proto_rawDescOnce.Do(func() { + file_testpb_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_testpb_test_proto_rawDescData) + }) + return file_testpb_test_proto_rawDescData +} + +var file_testpb_test_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_testpb_test_proto_goTypes = []interface{}{ + (AnEnum)(0), // 0: testpb.AnEnum + (*ABitOfEverything)(nil), // 1: testpb.ABitOfEverything + (*NestedMessage)(nil), // 2: testpb.NestedMessage + nil, // 3: testpb.ABitOfEverything.StrMapEntry + nil, // 4: testpb.ABitOfEverything.Int32MapEntry + nil, // 5: testpb.ABitOfEverything.BoolMapEntry + (*anypb.Any)(nil), // 6: google.protobuf.Any + (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 8: google.protobuf.Duration + (*structpb.Struct)(nil), // 9: google.protobuf.Struct + (*wrapperspb.BoolValue)(nil), // 10: google.protobuf.BoolValue + (*wrapperspb.BytesValue)(nil), // 11: google.protobuf.BytesValue + (*wrapperspb.DoubleValue)(nil), // 12: google.protobuf.DoubleValue + (*wrapperspb.FloatValue)(nil), // 13: google.protobuf.FloatValue + (*wrapperspb.Int32Value)(nil), // 14: google.protobuf.Int32Value + (*wrapperspb.Int64Value)(nil), // 15: google.protobuf.Int64Value + (*wrapperspb.StringValue)(nil), // 16: google.protobuf.StringValue + (*wrapperspb.UInt32Value)(nil), // 17: google.protobuf.UInt32Value + (*wrapperspb.UInt64Value)(nil), // 18: google.protobuf.UInt64Value + (*fieldmaskpb.FieldMask)(nil), // 19: google.protobuf.FieldMask + (*structpb.ListValue)(nil), // 20: google.protobuf.ListValue + (*structpb.Value)(nil), // 21: google.protobuf.Value + (structpb.NullValue)(0), // 22: google.protobuf.NullValue + (*emptypb.Empty)(nil), // 23: google.protobuf.Empty +} +var file_testpb_test_proto_depIdxs = []int32{ + 2, // 0: testpb.ABitOfEverything.message:type_name -> testpb.NestedMessage + 0, // 1: testpb.ABitOfEverything.enum:type_name -> testpb.AnEnum + 3, // 2: testpb.ABitOfEverything.str_map:type_name -> testpb.ABitOfEverything.StrMapEntry + 4, // 3: testpb.ABitOfEverything.int32_map:type_name -> testpb.ABitOfEverything.Int32MapEntry + 5, // 4: testpb.ABitOfEverything.bool_map:type_name -> testpb.ABitOfEverything.BoolMapEntry + 6, // 5: testpb.ABitOfEverything.any:type_name -> google.protobuf.Any + 7, // 6: testpb.ABitOfEverything.timestamp:type_name -> google.protobuf.Timestamp + 8, // 7: testpb.ABitOfEverything.duration:type_name -> google.protobuf.Duration + 9, // 8: testpb.ABitOfEverything.struct:type_name -> google.protobuf.Struct + 10, // 9: testpb.ABitOfEverything.bool_value:type_name -> google.protobuf.BoolValue + 11, // 10: testpb.ABitOfEverything.bytes_value:type_name -> google.protobuf.BytesValue + 12, // 11: testpb.ABitOfEverything.double_value:type_name -> google.protobuf.DoubleValue + 13, // 12: testpb.ABitOfEverything.float_value:type_name -> google.protobuf.FloatValue + 14, // 13: testpb.ABitOfEverything.int32_value:type_name -> google.protobuf.Int32Value + 15, // 14: testpb.ABitOfEverything.int64_value:type_name -> google.protobuf.Int64Value + 16, // 15: testpb.ABitOfEverything.string_value:type_name -> google.protobuf.StringValue + 17, // 16: testpb.ABitOfEverything.uint32_value:type_name -> google.protobuf.UInt32Value + 18, // 17: testpb.ABitOfEverything.uint64_value:type_name -> google.protobuf.UInt64Value + 19, // 18: testpb.ABitOfEverything.field_mask:type_name -> google.protobuf.FieldMask + 20, // 19: testpb.ABitOfEverything.list_value:type_name -> google.protobuf.ListValue + 21, // 20: testpb.ABitOfEverything.value:type_name -> google.protobuf.Value + 22, // 21: testpb.ABitOfEverything.null_value:type_name -> google.protobuf.NullValue + 23, // 22: testpb.ABitOfEverything.empty:type_name -> google.protobuf.Empty + 23, // [23:23] is the sub-list for method output_type + 23, // [23:23] is the sub-list for method input_type + 23, // [23:23] is the sub-list for extension type_name + 23, // [23:23] is the sub-list for extension extendee + 0, // [0:23] is the sub-list for field type_name +} + +func init() { file_testpb_test_proto_init() } +func file_testpb_test_proto_init() { + if File_testpb_test_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_testpb_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ABitOfEverything); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_testpb_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NestedMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_testpb_test_proto_rawDesc, + NumEnums: 1, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_testpb_test_proto_goTypes, + DependencyIndexes: file_testpb_test_proto_depIdxs, + EnumInfos: file_testpb_test_proto_enumTypes, + MessageInfos: file_testpb_test_proto_msgTypes, + }.Build() + File_testpb_test_proto = out.File + file_testpb_test_proto_rawDesc = nil + file_testpb_test_proto_goTypes = nil + file_testpb_test_proto_depIdxs = nil +} diff --git a/codec/aminojson/internal/testpb/test.proto b/codec/aminojson/internal/testpb/test.proto new file mode 100644 index 000000000000..95e31f6967ed --- /dev/null +++ b/codec/aminojson/internal/testpb/test.proto @@ -0,0 +1,90 @@ +syntax = "proto3"; + +package testpb; + +import "google/protobuf/any.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/duration.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/wrappers.proto"; +import "google/protobuf/field_mask.proto"; +import "google/protobuf/empty.proto"; + +message ABitOfEverything { + // message + // Generates JSON objects. Message field names are mapped to lowerCamelCase and become JSON object keys. If the json_name field option is specified, the specified value will be used as the key instead. Parsers accept both the lowerCamelCase name (or the one specified by the json_name option) and the original proto field name. null is an accepted value for all field types and treated as the default value of the corresponding field type. + NestedMessage message = 1; + + // enum + // The name of the enum value as specified in proto is used. Parsers accept both enum names and integer values. + AnEnum enum = 2; + + // map + // All keys are converted to strings. + map str_map = 3; + map int32_map = 4; + map bool_map = 5; + + // repeated + repeated int32 repeated = 6; + + string str = 7; + + bool bool = 8; + + bytes bytes = 9; + + int32 i32 = 10; + fixed32 f32 = 11; + uint32 u32 = 12; + sint32 si32 = 13; + sfixed32 sf32 = 14; + + int64 i64 = 15; + fixed64 f64 = 16; + uint64 u64 = 17; + sint64 si64 = 18; + sfixed64 sf64 = 19; + + float float = 20; + double double = 21; + + google.protobuf.Any any = 22; + + google.protobuf.Timestamp timestamp = 23; + + google.protobuf.Duration duration = 24; + + google.protobuf.Struct struct = 25; + + google.protobuf.BoolValue bool_value = 26; + google.protobuf.BytesValue bytes_value = 27; + google.protobuf.DoubleValue double_value = 28; + google.protobuf.FloatValue float_value = 29; + google.protobuf.Int32Value int32_value = 30; + google.protobuf.Int64Value int64_value = 31; + google.protobuf.StringValue string_value = 32; + google.protobuf.UInt32Value uint32_value = 33; + google.protobuf.UInt64Value uint64_value = 34; + + google.protobuf.FieldMask field_mask = 35; + + google.protobuf.ListValue list_value = 36; + + google.protobuf.Value value = 37; + + google.protobuf.NullValue null_value = 38; + + google.protobuf.Empty empty = 39; +} + +message NestedMessage { + string foo = 1; + int32 bar = 2; +} + +enum AnEnum { + UNDEFINED = 0; + ONE = 1; + TWO = 2; +} \ No newline at end of file diff --git a/codec/aminojson/testpb/test.pb.go b/codec/aminojson/testpb/test.pb.go new file mode 100644 index 000000000000..8adf98681512 --- /dev/null +++ b/codec/aminojson/testpb/test.pb.go @@ -0,0 +1,764 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc (unknown) +// source: testpb/test.proto + +package testpb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + durationpb "google.golang.org/protobuf/types/known/durationpb" + emptypb "google.golang.org/protobuf/types/known/emptypb" + fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + structpb "google.golang.org/protobuf/types/known/structpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type AnEnum int32 + +const ( + AnEnum_UNDEFINED AnEnum = 0 + AnEnum_ONE AnEnum = 1 + AnEnum_TWO AnEnum = 2 +) + +// Enum value maps for AnEnum. +var ( + AnEnum_name = map[int32]string{ + 0: "UNDEFINED", + 1: "ONE", + 2: "TWO", + } + AnEnum_value = map[string]int32{ + "UNDEFINED": 0, + "ONE": 1, + "TWO": 2, + } +) + +func (x AnEnum) Enum() *AnEnum { + p := new(AnEnum) + *p = x + return p +} + +func (x AnEnum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AnEnum) Descriptor() protoreflect.EnumDescriptor { + return file_testpb_test_proto_enumTypes[0].Descriptor() +} + +func (AnEnum) Type() protoreflect.EnumType { + return &file_testpb_test_proto_enumTypes[0] +} + +func (x AnEnum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AnEnum.Descriptor instead. +func (AnEnum) EnumDescriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{0} +} + +type ABitOfEverything struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // message + // Generates JSON objects. Message field names are mapped to lowerCamelCase and become JSON object keys. If the json_name field option is specified, the specified value will be used as the key instead. Parsers accept both the lowerCamelCase name (or the one specified by the json_name option) and the original proto field name. null is an accepted value for all field types and treated as the default value of the corresponding field type. + Message *NestedMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + // enum + // The name of the enum value as specified in proto is used. Parsers accept both enum names and integer values. + Enum AnEnum `protobuf:"varint,2,opt,name=enum,proto3,enum=testpb.AnEnum" json:"enum,omitempty"` + // map + // All keys are converted to strings. + StrMap map[string]string `protobuf:"bytes,3,rep,name=str_map,json=strMap,proto3" json:"str_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + Int32Map map[int32]string `protobuf:"bytes,4,rep,name=int32_map,json=int32Map,proto3" json:"int32_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + BoolMap map[bool]string `protobuf:"bytes,5,rep,name=bool_map,json=boolMap,proto3" json:"bool_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + // repeated + Repeated []int32 `protobuf:"varint,6,rep,packed,name=repeated,proto3" json:"repeated,omitempty"` + Str string `protobuf:"bytes,7,opt,name=str,proto3" json:"str,omitempty"` + Bool bool `protobuf:"varint,8,opt,name=bool,proto3" json:"bool,omitempty"` + Bytes []byte `protobuf:"bytes,9,opt,name=bytes,proto3" json:"bytes,omitempty"` + I32 int32 `protobuf:"varint,10,opt,name=i32,proto3" json:"i32,omitempty"` + F32 uint32 `protobuf:"fixed32,11,opt,name=f32,proto3" json:"f32,omitempty"` + U32 uint32 `protobuf:"varint,12,opt,name=u32,proto3" json:"u32,omitempty"` + Si32 int32 `protobuf:"zigzag32,13,opt,name=si32,proto3" json:"si32,omitempty"` + Sf32 int32 `protobuf:"fixed32,14,opt,name=sf32,proto3" json:"sf32,omitempty"` + I64 int64 `protobuf:"varint,15,opt,name=i64,proto3" json:"i64,omitempty"` + F64 uint64 `protobuf:"fixed64,16,opt,name=f64,proto3" json:"f64,omitempty"` + U64 uint64 `protobuf:"varint,17,opt,name=u64,proto3" json:"u64,omitempty"` + Si64 int64 `protobuf:"zigzag64,18,opt,name=si64,proto3" json:"si64,omitempty"` + Sf64 int64 `protobuf:"fixed64,19,opt,name=sf64,proto3" json:"sf64,omitempty"` + Float float32 `protobuf:"fixed32,20,opt,name=float,proto3" json:"float,omitempty"` + Double float64 `protobuf:"fixed64,21,opt,name=double,proto3" json:"double,omitempty"` + Any *anypb.Any `protobuf:"bytes,22,opt,name=any,proto3" json:"any,omitempty"` + Timestamp *timestamppb.Timestamp `protobuf:"bytes,23,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Duration *durationpb.Duration `protobuf:"bytes,24,opt,name=duration,proto3" json:"duration,omitempty"` + Struct *structpb.Struct `protobuf:"bytes,25,opt,name=struct,proto3" json:"struct,omitempty"` + BoolValue *wrapperspb.BoolValue `protobuf:"bytes,26,opt,name=bool_value,json=boolValue,proto3" json:"bool_value,omitempty"` + BytesValue *wrapperspb.BytesValue `protobuf:"bytes,27,opt,name=bytes_value,json=bytesValue,proto3" json:"bytes_value,omitempty"` + DoubleValue *wrapperspb.DoubleValue `protobuf:"bytes,28,opt,name=double_value,json=doubleValue,proto3" json:"double_value,omitempty"` + FloatValue *wrapperspb.FloatValue `protobuf:"bytes,29,opt,name=float_value,json=floatValue,proto3" json:"float_value,omitempty"` + Int32Value *wrapperspb.Int32Value `protobuf:"bytes,30,opt,name=int32_value,json=int32Value,proto3" json:"int32_value,omitempty"` + Int64Value *wrapperspb.Int64Value `protobuf:"bytes,31,opt,name=int64_value,json=int64Value,proto3" json:"int64_value,omitempty"` + StringValue *wrapperspb.StringValue `protobuf:"bytes,32,opt,name=string_value,json=stringValue,proto3" json:"string_value,omitempty"` + Uint32Value *wrapperspb.UInt32Value `protobuf:"bytes,33,opt,name=uint32_value,json=uint32Value,proto3" json:"uint32_value,omitempty"` + Uint64Value *wrapperspb.UInt64Value `protobuf:"bytes,34,opt,name=uint64_value,json=uint64Value,proto3" json:"uint64_value,omitempty"` + FieldMask *fieldmaskpb.FieldMask `protobuf:"bytes,35,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"` + ListValue *structpb.ListValue `protobuf:"bytes,36,opt,name=list_value,json=listValue,proto3" json:"list_value,omitempty"` + Value *structpb.Value `protobuf:"bytes,37,opt,name=value,proto3" json:"value,omitempty"` + NullValue structpb.NullValue `protobuf:"varint,38,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue" json:"null_value,omitempty"` + Empty *emptypb.Empty `protobuf:"bytes,39,opt,name=empty,proto3" json:"empty,omitempty"` +} + +func (x *ABitOfEverything) Reset() { + *x = ABitOfEverything{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ABitOfEverything) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ABitOfEverything) ProtoMessage() {} + +func (x *ABitOfEverything) ProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ABitOfEverything.ProtoReflect.Descriptor instead. +func (*ABitOfEverything) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{0} +} + +func (x *ABitOfEverything) GetMessage() *NestedMessage { + if x != nil { + return x.Message + } + return nil +} + +func (x *ABitOfEverything) GetEnum() AnEnum { + if x != nil { + return x.Enum + } + return AnEnum_UNDEFINED +} + +func (x *ABitOfEverything) GetStrMap() map[string]string { + if x != nil { + return x.StrMap + } + return nil +} + +func (x *ABitOfEverything) GetInt32Map() map[int32]string { + if x != nil { + return x.Int32Map + } + return nil +} + +func (x *ABitOfEverything) GetBoolMap() map[bool]string { + if x != nil { + return x.BoolMap + } + return nil +} + +func (x *ABitOfEverything) GetRepeated() []int32 { + if x != nil { + return x.Repeated + } + return nil +} + +func (x *ABitOfEverything) GetStr() string { + if x != nil { + return x.Str + } + return "" +} + +func (x *ABitOfEverything) GetBool() bool { + if x != nil { + return x.Bool + } + return false +} + +func (x *ABitOfEverything) GetBytes() []byte { + if x != nil { + return x.Bytes + } + return nil +} + +func (x *ABitOfEverything) GetI32() int32 { + if x != nil { + return x.I32 + } + return 0 +} + +func (x *ABitOfEverything) GetF32() uint32 { + if x != nil { + return x.F32 + } + return 0 +} + +func (x *ABitOfEverything) GetU32() uint32 { + if x != nil { + return x.U32 + } + return 0 +} + +func (x *ABitOfEverything) GetSi32() int32 { + if x != nil { + return x.Si32 + } + return 0 +} + +func (x *ABitOfEverything) GetSf32() int32 { + if x != nil { + return x.Sf32 + } + return 0 +} + +func (x *ABitOfEverything) GetI64() int64 { + if x != nil { + return x.I64 + } + return 0 +} + +func (x *ABitOfEverything) GetF64() uint64 { + if x != nil { + return x.F64 + } + return 0 +} + +func (x *ABitOfEverything) GetU64() uint64 { + if x != nil { + return x.U64 + } + return 0 +} + +func (x *ABitOfEverything) GetSi64() int64 { + if x != nil { + return x.Si64 + } + return 0 +} + +func (x *ABitOfEverything) GetSf64() int64 { + if x != nil { + return x.Sf64 + } + return 0 +} + +func (x *ABitOfEverything) GetFloat() float32 { + if x != nil { + return x.Float + } + return 0 +} + +func (x *ABitOfEverything) GetDouble() float64 { + if x != nil { + return x.Double + } + return 0 +} + +func (x *ABitOfEverything) GetAny() *anypb.Any { + if x != nil { + return x.Any + } + return nil +} + +func (x *ABitOfEverything) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *ABitOfEverything) GetDuration() *durationpb.Duration { + if x != nil { + return x.Duration + } + return nil +} + +func (x *ABitOfEverything) GetStruct() *structpb.Struct { + if x != nil { + return x.Struct + } + return nil +} + +func (x *ABitOfEverything) GetBoolValue() *wrapperspb.BoolValue { + if x != nil { + return x.BoolValue + } + return nil +} + +func (x *ABitOfEverything) GetBytesValue() *wrapperspb.BytesValue { + if x != nil { + return x.BytesValue + } + return nil +} + +func (x *ABitOfEverything) GetDoubleValue() *wrapperspb.DoubleValue { + if x != nil { + return x.DoubleValue + } + return nil +} + +func (x *ABitOfEverything) GetFloatValue() *wrapperspb.FloatValue { + if x != nil { + return x.FloatValue + } + return nil +} + +func (x *ABitOfEverything) GetInt32Value() *wrapperspb.Int32Value { + if x != nil { + return x.Int32Value + } + return nil +} + +func (x *ABitOfEverything) GetInt64Value() *wrapperspb.Int64Value { + if x != nil { + return x.Int64Value + } + return nil +} + +func (x *ABitOfEverything) GetStringValue() *wrapperspb.StringValue { + if x != nil { + return x.StringValue + } + return nil +} + +func (x *ABitOfEverything) GetUint32Value() *wrapperspb.UInt32Value { + if x != nil { + return x.Uint32Value + } + return nil +} + +func (x *ABitOfEverything) GetUint64Value() *wrapperspb.UInt64Value { + if x != nil { + return x.Uint64Value + } + return nil +} + +func (x *ABitOfEverything) GetFieldMask() *fieldmaskpb.FieldMask { + if x != nil { + return x.FieldMask + } + return nil +} + +func (x *ABitOfEverything) GetListValue() *structpb.ListValue { + if x != nil { + return x.ListValue + } + return nil +} + +func (x *ABitOfEverything) GetValue() *structpb.Value { + if x != nil { + return x.Value + } + return nil +} + +func (x *ABitOfEverything) GetNullValue() structpb.NullValue { + if x != nil { + return x.NullValue + } + return structpb.NullValue(0) +} + +func (x *ABitOfEverything) GetEmpty() *emptypb.Empty { + if x != nil { + return x.Empty + } + return nil +} + +type NestedMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Foo string `protobuf:"bytes,1,opt,name=foo,proto3" json:"foo,omitempty"` + Bar int32 `protobuf:"varint,2,opt,name=bar,proto3" json:"bar,omitempty"` +} + +func (x *NestedMessage) Reset() { + *x = NestedMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NestedMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NestedMessage) ProtoMessage() {} + +func (x *NestedMessage) ProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NestedMessage.ProtoReflect.Descriptor instead. +func (*NestedMessage) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{1} +} + +func (x *NestedMessage) GetFoo() string { + if x != nil { + return x.Foo + } + return "" +} + +func (x *NestedMessage) GetBar() int32 { + if x != nil { + return x.Bar + } + return 0 +} + +var File_testpb_test_proto protoreflect.FileDescriptor + +var file_testpb_test_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x1a, 0x19, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb1, 0x0e, 0x0a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, + 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x73, + 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x65, 0x6e, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, + 0x62, 0x2e, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x3d, + 0x0a, 0x07, 0x73, 0x74, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, + 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x43, 0x0a, + 0x09, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, + 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, + 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4d, + 0x61, 0x70, 0x12, 0x40, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x42, + 0x69, 0x74, 0x4f, 0x66, 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x42, + 0x6f, 0x6f, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x62, 0x6f, 0x6f, + 0x6c, 0x4d, 0x61, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, + 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, + 0x69, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x69, 0x33, 0x32, 0x12, 0x10, + 0x0a, 0x03, 0x66, 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x66, 0x33, 0x32, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x33, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, + 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x33, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, + 0x52, 0x04, 0x73, 0x69, 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x66, 0x33, 0x32, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x0f, 0x52, 0x04, 0x73, 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x36, + 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x69, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, + 0x66, 0x36, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x66, 0x36, 0x34, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x36, 0x34, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x36, 0x34, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x36, 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, + 0x73, 0x69, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x66, 0x36, 0x34, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x10, 0x52, 0x04, 0x73, 0x66, 0x36, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, + 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, + 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x38, + 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x12, 0x39, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1a, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x64, 0x6f, 0x75, + 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x66, 0x6c, + 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, + 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x74, 0x33, + 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, + 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, + 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, + 0x73, 0x6b, 0x12, 0x39, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x6e, + 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6e, 0x75, 0x6c, + 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, + 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x05, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, + 0x3b, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, + 0x42, 0x6f, 0x6f, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x33, 0x0a, 0x0d, 0x4e, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x62, + 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, 0x2a, 0x29, 0x0a, + 0x06, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, + 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, + 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x7f, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, + 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, + 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, + 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_testpb_test_proto_rawDescOnce sync.Once + file_testpb_test_proto_rawDescData = file_testpb_test_proto_rawDesc +) + +func file_testpb_test_proto_rawDescGZIP() []byte { + file_testpb_test_proto_rawDescOnce.Do(func() { + file_testpb_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_testpb_test_proto_rawDescData) + }) + return file_testpb_test_proto_rawDescData +} + +var file_testpb_test_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_testpb_test_proto_goTypes = []interface{}{ + (AnEnum)(0), // 0: testpb.AnEnum + (*ABitOfEverything)(nil), // 1: testpb.ABitOfEverything + (*NestedMessage)(nil), // 2: testpb.NestedMessage + nil, // 3: testpb.ABitOfEverything.StrMapEntry + nil, // 4: testpb.ABitOfEverything.Int32MapEntry + nil, // 5: testpb.ABitOfEverything.BoolMapEntry + (*anypb.Any)(nil), // 6: google.protobuf.Any + (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 8: google.protobuf.Duration + (*structpb.Struct)(nil), // 9: google.protobuf.Struct + (*wrapperspb.BoolValue)(nil), // 10: google.protobuf.BoolValue + (*wrapperspb.BytesValue)(nil), // 11: google.protobuf.BytesValue + (*wrapperspb.DoubleValue)(nil), // 12: google.protobuf.DoubleValue + (*wrapperspb.FloatValue)(nil), // 13: google.protobuf.FloatValue + (*wrapperspb.Int32Value)(nil), // 14: google.protobuf.Int32Value + (*wrapperspb.Int64Value)(nil), // 15: google.protobuf.Int64Value + (*wrapperspb.StringValue)(nil), // 16: google.protobuf.StringValue + (*wrapperspb.UInt32Value)(nil), // 17: google.protobuf.UInt32Value + (*wrapperspb.UInt64Value)(nil), // 18: google.protobuf.UInt64Value + (*fieldmaskpb.FieldMask)(nil), // 19: google.protobuf.FieldMask + (*structpb.ListValue)(nil), // 20: google.protobuf.ListValue + (*structpb.Value)(nil), // 21: google.protobuf.Value + (structpb.NullValue)(0), // 22: google.protobuf.NullValue + (*emptypb.Empty)(nil), // 23: google.protobuf.Empty +} +var file_testpb_test_proto_depIdxs = []int32{ + 2, // 0: testpb.ABitOfEverything.message:type_name -> testpb.NestedMessage + 0, // 1: testpb.ABitOfEverything.enum:type_name -> testpb.AnEnum + 3, // 2: testpb.ABitOfEverything.str_map:type_name -> testpb.ABitOfEverything.StrMapEntry + 4, // 3: testpb.ABitOfEverything.int32_map:type_name -> testpb.ABitOfEverything.Int32MapEntry + 5, // 4: testpb.ABitOfEverything.bool_map:type_name -> testpb.ABitOfEverything.BoolMapEntry + 6, // 5: testpb.ABitOfEverything.any:type_name -> google.protobuf.Any + 7, // 6: testpb.ABitOfEverything.timestamp:type_name -> google.protobuf.Timestamp + 8, // 7: testpb.ABitOfEverything.duration:type_name -> google.protobuf.Duration + 9, // 8: testpb.ABitOfEverything.struct:type_name -> google.protobuf.Struct + 10, // 9: testpb.ABitOfEverything.bool_value:type_name -> google.protobuf.BoolValue + 11, // 10: testpb.ABitOfEverything.bytes_value:type_name -> google.protobuf.BytesValue + 12, // 11: testpb.ABitOfEverything.double_value:type_name -> google.protobuf.DoubleValue + 13, // 12: testpb.ABitOfEverything.float_value:type_name -> google.protobuf.FloatValue + 14, // 13: testpb.ABitOfEverything.int32_value:type_name -> google.protobuf.Int32Value + 15, // 14: testpb.ABitOfEverything.int64_value:type_name -> google.protobuf.Int64Value + 16, // 15: testpb.ABitOfEverything.string_value:type_name -> google.protobuf.StringValue + 17, // 16: testpb.ABitOfEverything.uint32_value:type_name -> google.protobuf.UInt32Value + 18, // 17: testpb.ABitOfEverything.uint64_value:type_name -> google.protobuf.UInt64Value + 19, // 18: testpb.ABitOfEverything.field_mask:type_name -> google.protobuf.FieldMask + 20, // 19: testpb.ABitOfEverything.list_value:type_name -> google.protobuf.ListValue + 21, // 20: testpb.ABitOfEverything.value:type_name -> google.protobuf.Value + 22, // 21: testpb.ABitOfEverything.null_value:type_name -> google.protobuf.NullValue + 23, // 22: testpb.ABitOfEverything.empty:type_name -> google.protobuf.Empty + 23, // [23:23] is the sub-list for method output_type + 23, // [23:23] is the sub-list for method input_type + 23, // [23:23] is the sub-list for extension type_name + 23, // [23:23] is the sub-list for extension extendee + 0, // [0:23] is the sub-list for field type_name +} + +func init() { file_testpb_test_proto_init() } +func file_testpb_test_proto_init() { + if File_testpb_test_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_testpb_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ABitOfEverything); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_testpb_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NestedMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_testpb_test_proto_rawDesc, + NumEnums: 1, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_testpb_test_proto_goTypes, + DependencyIndexes: file_testpb_test_proto_depIdxs, + EnumInfos: file_testpb_test_proto_enumTypes, + MessageInfos: file_testpb_test_proto_msgTypes, + }.Build() + File_testpb_test_proto = out.File + file_testpb_test_proto_rawDesc = nil + file_testpb_test_proto_goTypes = nil + file_testpb_test_proto_depIdxs = nil +} From 95fc572f5045f59db98d3b5fd5063b9534ec4a14 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 26 Jan 2023 14:31:20 -0600 Subject: [PATCH 003/122] Fix gen --- codec/aminojson/Makefile | 2 +- codec/aminojson/{ => internal}/buf.gen.yaml | 0 codec/aminojson/{ => internal}/buf.yaml | 0 codec/aminojson/internal/testpb/test.pb.go | 28 +- codec/aminojson/testpb/test.pb.go | 764 -------------------- 5 files changed, 14 insertions(+), 780 deletions(-) rename codec/aminojson/{ => internal}/buf.gen.yaml (100%) rename codec/aminojson/{ => internal}/buf.yaml (100%) delete mode 100644 codec/aminojson/testpb/test.pb.go diff --git a/codec/aminojson/Makefile b/codec/aminojson/Makefile index 125e033e7664..b345c001de4f 100644 --- a/codec/aminojson/Makefile +++ b/codec/aminojson/Makefile @@ -12,7 +12,7 @@ $(BUF): proto-gen: $(BUF) $(BIN)/protoc-gen-go @echo "Generating proto files" - PATH=$(BIN) buf generate internal + cd internal && PATH=$(BIN) buf generate clean: rm -rf $(BIN) \ No newline at end of file diff --git a/codec/aminojson/buf.gen.yaml b/codec/aminojson/internal/buf.gen.yaml similarity index 100% rename from codec/aminojson/buf.gen.yaml rename to codec/aminojson/internal/buf.gen.yaml diff --git a/codec/aminojson/buf.yaml b/codec/aminojson/internal/buf.yaml similarity index 100% rename from codec/aminojson/buf.yaml rename to codec/aminojson/internal/buf.yaml diff --git a/codec/aminojson/internal/testpb/test.pb.go b/codec/aminojson/internal/testpb/test.pb.go index 41dcc5e5633c..8adf98681512 100644 --- a/codec/aminojson/internal/testpb/test.pb.go +++ b/codec/aminojson/internal/testpb/test.pb.go @@ -1,15 +1,12 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 +// protoc-gen-go v1.28.1 // protoc (unknown) // source: testpb/test.proto package testpb import ( - reflect "reflect" - sync "sync" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" @@ -19,6 +16,8 @@ import ( structpb "google.golang.org/protobuf/types/known/structpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + reflect "reflect" + sync "sync" ) const ( @@ -629,17 +628,16 @@ var file_testpb_test_proto_rawDesc = []byte{ 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, 0x2a, 0x29, 0x0a, 0x06, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, - 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x91, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, - 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x6a, 0x73, 0x6f, 0x6e, 0x2f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, - 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, - 0x65, 0x73, 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, - 0x12, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x7f, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, + 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, + 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, + 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/codec/aminojson/testpb/test.pb.go b/codec/aminojson/testpb/test.pb.go deleted file mode 100644 index 8adf98681512..000000000000 --- a/codec/aminojson/testpb/test.pb.go +++ /dev/null @@ -1,764 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.1 -// protoc (unknown) -// source: testpb/test.proto - -package testpb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - anypb "google.golang.org/protobuf/types/known/anypb" - durationpb "google.golang.org/protobuf/types/known/durationpb" - emptypb "google.golang.org/protobuf/types/known/emptypb" - fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" - structpb "google.golang.org/protobuf/types/known/structpb" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" - wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type AnEnum int32 - -const ( - AnEnum_UNDEFINED AnEnum = 0 - AnEnum_ONE AnEnum = 1 - AnEnum_TWO AnEnum = 2 -) - -// Enum value maps for AnEnum. -var ( - AnEnum_name = map[int32]string{ - 0: "UNDEFINED", - 1: "ONE", - 2: "TWO", - } - AnEnum_value = map[string]int32{ - "UNDEFINED": 0, - "ONE": 1, - "TWO": 2, - } -) - -func (x AnEnum) Enum() *AnEnum { - p := new(AnEnum) - *p = x - return p -} - -func (x AnEnum) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (AnEnum) Descriptor() protoreflect.EnumDescriptor { - return file_testpb_test_proto_enumTypes[0].Descriptor() -} - -func (AnEnum) Type() protoreflect.EnumType { - return &file_testpb_test_proto_enumTypes[0] -} - -func (x AnEnum) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use AnEnum.Descriptor instead. -func (AnEnum) EnumDescriptor() ([]byte, []int) { - return file_testpb_test_proto_rawDescGZIP(), []int{0} -} - -type ABitOfEverything struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // message - // Generates JSON objects. Message field names are mapped to lowerCamelCase and become JSON object keys. If the json_name field option is specified, the specified value will be used as the key instead. Parsers accept both the lowerCamelCase name (or the one specified by the json_name option) and the original proto field name. null is an accepted value for all field types and treated as the default value of the corresponding field type. - Message *NestedMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` - // enum - // The name of the enum value as specified in proto is used. Parsers accept both enum names and integer values. - Enum AnEnum `protobuf:"varint,2,opt,name=enum,proto3,enum=testpb.AnEnum" json:"enum,omitempty"` - // map - // All keys are converted to strings. - StrMap map[string]string `protobuf:"bytes,3,rep,name=str_map,json=strMap,proto3" json:"str_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Int32Map map[int32]string `protobuf:"bytes,4,rep,name=int32_map,json=int32Map,proto3" json:"int32_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - BoolMap map[bool]string `protobuf:"bytes,5,rep,name=bool_map,json=boolMap,proto3" json:"bool_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // repeated - Repeated []int32 `protobuf:"varint,6,rep,packed,name=repeated,proto3" json:"repeated,omitempty"` - Str string `protobuf:"bytes,7,opt,name=str,proto3" json:"str,omitempty"` - Bool bool `protobuf:"varint,8,opt,name=bool,proto3" json:"bool,omitempty"` - Bytes []byte `protobuf:"bytes,9,opt,name=bytes,proto3" json:"bytes,omitempty"` - I32 int32 `protobuf:"varint,10,opt,name=i32,proto3" json:"i32,omitempty"` - F32 uint32 `protobuf:"fixed32,11,opt,name=f32,proto3" json:"f32,omitempty"` - U32 uint32 `protobuf:"varint,12,opt,name=u32,proto3" json:"u32,omitempty"` - Si32 int32 `protobuf:"zigzag32,13,opt,name=si32,proto3" json:"si32,omitempty"` - Sf32 int32 `protobuf:"fixed32,14,opt,name=sf32,proto3" json:"sf32,omitempty"` - I64 int64 `protobuf:"varint,15,opt,name=i64,proto3" json:"i64,omitempty"` - F64 uint64 `protobuf:"fixed64,16,opt,name=f64,proto3" json:"f64,omitempty"` - U64 uint64 `protobuf:"varint,17,opt,name=u64,proto3" json:"u64,omitempty"` - Si64 int64 `protobuf:"zigzag64,18,opt,name=si64,proto3" json:"si64,omitempty"` - Sf64 int64 `protobuf:"fixed64,19,opt,name=sf64,proto3" json:"sf64,omitempty"` - Float float32 `protobuf:"fixed32,20,opt,name=float,proto3" json:"float,omitempty"` - Double float64 `protobuf:"fixed64,21,opt,name=double,proto3" json:"double,omitempty"` - Any *anypb.Any `protobuf:"bytes,22,opt,name=any,proto3" json:"any,omitempty"` - Timestamp *timestamppb.Timestamp `protobuf:"bytes,23,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - Duration *durationpb.Duration `protobuf:"bytes,24,opt,name=duration,proto3" json:"duration,omitempty"` - Struct *structpb.Struct `protobuf:"bytes,25,opt,name=struct,proto3" json:"struct,omitempty"` - BoolValue *wrapperspb.BoolValue `protobuf:"bytes,26,opt,name=bool_value,json=boolValue,proto3" json:"bool_value,omitempty"` - BytesValue *wrapperspb.BytesValue `protobuf:"bytes,27,opt,name=bytes_value,json=bytesValue,proto3" json:"bytes_value,omitempty"` - DoubleValue *wrapperspb.DoubleValue `protobuf:"bytes,28,opt,name=double_value,json=doubleValue,proto3" json:"double_value,omitempty"` - FloatValue *wrapperspb.FloatValue `protobuf:"bytes,29,opt,name=float_value,json=floatValue,proto3" json:"float_value,omitempty"` - Int32Value *wrapperspb.Int32Value `protobuf:"bytes,30,opt,name=int32_value,json=int32Value,proto3" json:"int32_value,omitempty"` - Int64Value *wrapperspb.Int64Value `protobuf:"bytes,31,opt,name=int64_value,json=int64Value,proto3" json:"int64_value,omitempty"` - StringValue *wrapperspb.StringValue `protobuf:"bytes,32,opt,name=string_value,json=stringValue,proto3" json:"string_value,omitempty"` - Uint32Value *wrapperspb.UInt32Value `protobuf:"bytes,33,opt,name=uint32_value,json=uint32Value,proto3" json:"uint32_value,omitempty"` - Uint64Value *wrapperspb.UInt64Value `protobuf:"bytes,34,opt,name=uint64_value,json=uint64Value,proto3" json:"uint64_value,omitempty"` - FieldMask *fieldmaskpb.FieldMask `protobuf:"bytes,35,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"` - ListValue *structpb.ListValue `protobuf:"bytes,36,opt,name=list_value,json=listValue,proto3" json:"list_value,omitempty"` - Value *structpb.Value `protobuf:"bytes,37,opt,name=value,proto3" json:"value,omitempty"` - NullValue structpb.NullValue `protobuf:"varint,38,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue" json:"null_value,omitempty"` - Empty *emptypb.Empty `protobuf:"bytes,39,opt,name=empty,proto3" json:"empty,omitempty"` -} - -func (x *ABitOfEverything) Reset() { - *x = ABitOfEverything{} - if protoimpl.UnsafeEnabled { - mi := &file_testpb_test_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ABitOfEverything) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ABitOfEverything) ProtoMessage() {} - -func (x *ABitOfEverything) ProtoReflect() protoreflect.Message { - mi := &file_testpb_test_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ABitOfEverything.ProtoReflect.Descriptor instead. -func (*ABitOfEverything) Descriptor() ([]byte, []int) { - return file_testpb_test_proto_rawDescGZIP(), []int{0} -} - -func (x *ABitOfEverything) GetMessage() *NestedMessage { - if x != nil { - return x.Message - } - return nil -} - -func (x *ABitOfEverything) GetEnum() AnEnum { - if x != nil { - return x.Enum - } - return AnEnum_UNDEFINED -} - -func (x *ABitOfEverything) GetStrMap() map[string]string { - if x != nil { - return x.StrMap - } - return nil -} - -func (x *ABitOfEverything) GetInt32Map() map[int32]string { - if x != nil { - return x.Int32Map - } - return nil -} - -func (x *ABitOfEverything) GetBoolMap() map[bool]string { - if x != nil { - return x.BoolMap - } - return nil -} - -func (x *ABitOfEverything) GetRepeated() []int32 { - if x != nil { - return x.Repeated - } - return nil -} - -func (x *ABitOfEverything) GetStr() string { - if x != nil { - return x.Str - } - return "" -} - -func (x *ABitOfEverything) GetBool() bool { - if x != nil { - return x.Bool - } - return false -} - -func (x *ABitOfEverything) GetBytes() []byte { - if x != nil { - return x.Bytes - } - return nil -} - -func (x *ABitOfEverything) GetI32() int32 { - if x != nil { - return x.I32 - } - return 0 -} - -func (x *ABitOfEverything) GetF32() uint32 { - if x != nil { - return x.F32 - } - return 0 -} - -func (x *ABitOfEverything) GetU32() uint32 { - if x != nil { - return x.U32 - } - return 0 -} - -func (x *ABitOfEverything) GetSi32() int32 { - if x != nil { - return x.Si32 - } - return 0 -} - -func (x *ABitOfEverything) GetSf32() int32 { - if x != nil { - return x.Sf32 - } - return 0 -} - -func (x *ABitOfEverything) GetI64() int64 { - if x != nil { - return x.I64 - } - return 0 -} - -func (x *ABitOfEverything) GetF64() uint64 { - if x != nil { - return x.F64 - } - return 0 -} - -func (x *ABitOfEverything) GetU64() uint64 { - if x != nil { - return x.U64 - } - return 0 -} - -func (x *ABitOfEverything) GetSi64() int64 { - if x != nil { - return x.Si64 - } - return 0 -} - -func (x *ABitOfEverything) GetSf64() int64 { - if x != nil { - return x.Sf64 - } - return 0 -} - -func (x *ABitOfEverything) GetFloat() float32 { - if x != nil { - return x.Float - } - return 0 -} - -func (x *ABitOfEverything) GetDouble() float64 { - if x != nil { - return x.Double - } - return 0 -} - -func (x *ABitOfEverything) GetAny() *anypb.Any { - if x != nil { - return x.Any - } - return nil -} - -func (x *ABitOfEverything) GetTimestamp() *timestamppb.Timestamp { - if x != nil { - return x.Timestamp - } - return nil -} - -func (x *ABitOfEverything) GetDuration() *durationpb.Duration { - if x != nil { - return x.Duration - } - return nil -} - -func (x *ABitOfEverything) GetStruct() *structpb.Struct { - if x != nil { - return x.Struct - } - return nil -} - -func (x *ABitOfEverything) GetBoolValue() *wrapperspb.BoolValue { - if x != nil { - return x.BoolValue - } - return nil -} - -func (x *ABitOfEverything) GetBytesValue() *wrapperspb.BytesValue { - if x != nil { - return x.BytesValue - } - return nil -} - -func (x *ABitOfEverything) GetDoubleValue() *wrapperspb.DoubleValue { - if x != nil { - return x.DoubleValue - } - return nil -} - -func (x *ABitOfEverything) GetFloatValue() *wrapperspb.FloatValue { - if x != nil { - return x.FloatValue - } - return nil -} - -func (x *ABitOfEverything) GetInt32Value() *wrapperspb.Int32Value { - if x != nil { - return x.Int32Value - } - return nil -} - -func (x *ABitOfEverything) GetInt64Value() *wrapperspb.Int64Value { - if x != nil { - return x.Int64Value - } - return nil -} - -func (x *ABitOfEverything) GetStringValue() *wrapperspb.StringValue { - if x != nil { - return x.StringValue - } - return nil -} - -func (x *ABitOfEverything) GetUint32Value() *wrapperspb.UInt32Value { - if x != nil { - return x.Uint32Value - } - return nil -} - -func (x *ABitOfEverything) GetUint64Value() *wrapperspb.UInt64Value { - if x != nil { - return x.Uint64Value - } - return nil -} - -func (x *ABitOfEverything) GetFieldMask() *fieldmaskpb.FieldMask { - if x != nil { - return x.FieldMask - } - return nil -} - -func (x *ABitOfEverything) GetListValue() *structpb.ListValue { - if x != nil { - return x.ListValue - } - return nil -} - -func (x *ABitOfEverything) GetValue() *structpb.Value { - if x != nil { - return x.Value - } - return nil -} - -func (x *ABitOfEverything) GetNullValue() structpb.NullValue { - if x != nil { - return x.NullValue - } - return structpb.NullValue(0) -} - -func (x *ABitOfEverything) GetEmpty() *emptypb.Empty { - if x != nil { - return x.Empty - } - return nil -} - -type NestedMessage struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Foo string `protobuf:"bytes,1,opt,name=foo,proto3" json:"foo,omitempty"` - Bar int32 `protobuf:"varint,2,opt,name=bar,proto3" json:"bar,omitempty"` -} - -func (x *NestedMessage) Reset() { - *x = NestedMessage{} - if protoimpl.UnsafeEnabled { - mi := &file_testpb_test_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *NestedMessage) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NestedMessage) ProtoMessage() {} - -func (x *NestedMessage) ProtoReflect() protoreflect.Message { - mi := &file_testpb_test_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NestedMessage.ProtoReflect.Descriptor instead. -func (*NestedMessage) Descriptor() ([]byte, []int) { - return file_testpb_test_proto_rawDescGZIP(), []int{1} -} - -func (x *NestedMessage) GetFoo() string { - if x != nil { - return x.Foo - } - return "" -} - -func (x *NestedMessage) GetBar() int32 { - if x != nil { - return x.Bar - } - return 0 -} - -var File_testpb_test_proto protoreflect.FileDescriptor - -var file_testpb_test_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x1a, 0x19, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, - 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb1, 0x0e, 0x0a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, - 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x65, 0x6e, - 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, - 0x62, 0x2e, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x3d, - 0x0a, 0x07, 0x73, 0x74, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, - 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x43, 0x0a, - 0x09, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, - 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4d, - 0x61, 0x70, 0x12, 0x40, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x42, - 0x69, 0x74, 0x4f, 0x66, 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x42, - 0x6f, 0x6f, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x62, 0x6f, 0x6f, - 0x6c, 0x4d, 0x61, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, - 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, - 0x69, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x69, 0x33, 0x32, 0x12, 0x10, - 0x0a, 0x03, 0x66, 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x66, 0x33, 0x32, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x33, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, - 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x33, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, - 0x52, 0x04, 0x73, 0x69, 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x66, 0x33, 0x32, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0f, 0x52, 0x04, 0x73, 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x36, - 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x69, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, - 0x66, 0x36, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x66, 0x36, 0x34, 0x12, 0x10, - 0x0a, 0x03, 0x75, 0x36, 0x34, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x36, 0x34, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x36, 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, - 0x73, 0x69, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x66, 0x36, 0x34, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x10, 0x52, 0x04, 0x73, 0x66, 0x36, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, - 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x38, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x12, 0x39, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x64, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x33, - 0x32, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x33, - 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x74, 0x33, - 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, - 0x73, 0x6b, 0x12, 0x39, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x6e, - 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6e, 0x75, 0x6c, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, - 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x05, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x3b, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, - 0x42, 0x6f, 0x6f, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x33, 0x0a, 0x0d, 0x4e, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x62, - 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, 0x2a, 0x29, 0x0a, - 0x06, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, - 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, - 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x7f, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, - 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, - 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, - 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, -} - -var ( - file_testpb_test_proto_rawDescOnce sync.Once - file_testpb_test_proto_rawDescData = file_testpb_test_proto_rawDesc -) - -func file_testpb_test_proto_rawDescGZIP() []byte { - file_testpb_test_proto_rawDescOnce.Do(func() { - file_testpb_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_testpb_test_proto_rawDescData) - }) - return file_testpb_test_proto_rawDescData -} - -var file_testpb_test_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 5) -var file_testpb_test_proto_goTypes = []interface{}{ - (AnEnum)(0), // 0: testpb.AnEnum - (*ABitOfEverything)(nil), // 1: testpb.ABitOfEverything - (*NestedMessage)(nil), // 2: testpb.NestedMessage - nil, // 3: testpb.ABitOfEverything.StrMapEntry - nil, // 4: testpb.ABitOfEverything.Int32MapEntry - nil, // 5: testpb.ABitOfEverything.BoolMapEntry - (*anypb.Any)(nil), // 6: google.protobuf.Any - (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 8: google.protobuf.Duration - (*structpb.Struct)(nil), // 9: google.protobuf.Struct - (*wrapperspb.BoolValue)(nil), // 10: google.protobuf.BoolValue - (*wrapperspb.BytesValue)(nil), // 11: google.protobuf.BytesValue - (*wrapperspb.DoubleValue)(nil), // 12: google.protobuf.DoubleValue - (*wrapperspb.FloatValue)(nil), // 13: google.protobuf.FloatValue - (*wrapperspb.Int32Value)(nil), // 14: google.protobuf.Int32Value - (*wrapperspb.Int64Value)(nil), // 15: google.protobuf.Int64Value - (*wrapperspb.StringValue)(nil), // 16: google.protobuf.StringValue - (*wrapperspb.UInt32Value)(nil), // 17: google.protobuf.UInt32Value - (*wrapperspb.UInt64Value)(nil), // 18: google.protobuf.UInt64Value - (*fieldmaskpb.FieldMask)(nil), // 19: google.protobuf.FieldMask - (*structpb.ListValue)(nil), // 20: google.protobuf.ListValue - (*structpb.Value)(nil), // 21: google.protobuf.Value - (structpb.NullValue)(0), // 22: google.protobuf.NullValue - (*emptypb.Empty)(nil), // 23: google.protobuf.Empty -} -var file_testpb_test_proto_depIdxs = []int32{ - 2, // 0: testpb.ABitOfEverything.message:type_name -> testpb.NestedMessage - 0, // 1: testpb.ABitOfEverything.enum:type_name -> testpb.AnEnum - 3, // 2: testpb.ABitOfEverything.str_map:type_name -> testpb.ABitOfEverything.StrMapEntry - 4, // 3: testpb.ABitOfEverything.int32_map:type_name -> testpb.ABitOfEverything.Int32MapEntry - 5, // 4: testpb.ABitOfEverything.bool_map:type_name -> testpb.ABitOfEverything.BoolMapEntry - 6, // 5: testpb.ABitOfEverything.any:type_name -> google.protobuf.Any - 7, // 6: testpb.ABitOfEverything.timestamp:type_name -> google.protobuf.Timestamp - 8, // 7: testpb.ABitOfEverything.duration:type_name -> google.protobuf.Duration - 9, // 8: testpb.ABitOfEverything.struct:type_name -> google.protobuf.Struct - 10, // 9: testpb.ABitOfEverything.bool_value:type_name -> google.protobuf.BoolValue - 11, // 10: testpb.ABitOfEverything.bytes_value:type_name -> google.protobuf.BytesValue - 12, // 11: testpb.ABitOfEverything.double_value:type_name -> google.protobuf.DoubleValue - 13, // 12: testpb.ABitOfEverything.float_value:type_name -> google.protobuf.FloatValue - 14, // 13: testpb.ABitOfEverything.int32_value:type_name -> google.protobuf.Int32Value - 15, // 14: testpb.ABitOfEverything.int64_value:type_name -> google.protobuf.Int64Value - 16, // 15: testpb.ABitOfEverything.string_value:type_name -> google.protobuf.StringValue - 17, // 16: testpb.ABitOfEverything.uint32_value:type_name -> google.protobuf.UInt32Value - 18, // 17: testpb.ABitOfEverything.uint64_value:type_name -> google.protobuf.UInt64Value - 19, // 18: testpb.ABitOfEverything.field_mask:type_name -> google.protobuf.FieldMask - 20, // 19: testpb.ABitOfEverything.list_value:type_name -> google.protobuf.ListValue - 21, // 20: testpb.ABitOfEverything.value:type_name -> google.protobuf.Value - 22, // 21: testpb.ABitOfEverything.null_value:type_name -> google.protobuf.NullValue - 23, // 22: testpb.ABitOfEverything.empty:type_name -> google.protobuf.Empty - 23, // [23:23] is the sub-list for method output_type - 23, // [23:23] is the sub-list for method input_type - 23, // [23:23] is the sub-list for extension type_name - 23, // [23:23] is the sub-list for extension extendee - 0, // [0:23] is the sub-list for field type_name -} - -func init() { file_testpb_test_proto_init() } -func file_testpb_test_proto_init() { - if File_testpb_test_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_testpb_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ABitOfEverything); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_testpb_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NestedMessage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_testpb_test_proto_rawDesc, - NumEnums: 1, - NumMessages: 5, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_testpb_test_proto_goTypes, - DependencyIndexes: file_testpb_test_proto_depIdxs, - EnumInfos: file_testpb_test_proto_enumTypes, - MessageInfos: file_testpb_test_proto_msgTypes, - }.Build() - File_testpb_test_proto = out.File - file_testpb_test_proto_rawDesc = nil - file_testpb_test_proto_goTypes = nil - file_testpb_test_proto_depIdxs = nil -} From ca06edeaed9d4019b4be878ded34d62cfabcc5c4 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 26 Jan 2023 14:44:58 -0600 Subject: [PATCH 004/122] Add failing test case --- codec/aminojson/JSONMarshaller.go | 10 +- codec/aminojson/marshal_test.go | 149 +++++++++++++++++++++++++ codec/aminojson/testdata/example1.json | 1 + 3 files changed, 159 insertions(+), 1 deletion(-) create mode 100644 codec/aminojson/marshal_test.go create mode 100644 codec/aminojson/testdata/example1.json diff --git a/codec/aminojson/JSONMarshaller.go b/codec/aminojson/JSONMarshaller.go index b7159bdb1a49..6fac0a3b3aad 100644 --- a/codec/aminojson/JSONMarshaller.go +++ b/codec/aminojson/JSONMarshaller.go @@ -1,7 +1,15 @@ package aminojson -import "github.com/cosmos/gogoproto/proto" +import ( + "bytes" + "github.com/cosmos/gogoproto/proto" +) type JSONMarshaller interface { MarshalAmino(proto.Message) ([]byte, error) } + +func MarshalAmino(message proto.Message) ([]byte, error) { + buf := &bytes.Buffer{} + return buf.Bytes(), nil +} diff --git a/codec/aminojson/marshal_test.go b/codec/aminojson/marshal_test.go new file mode 100644 index 000000000000..0327dac50d95 --- /dev/null +++ b/codec/aminojson/marshal_test.go @@ -0,0 +1,149 @@ +package aminojson_test + +import ( + "testing" + "time" + + "google.golang.org/protobuf/types/known/anypb" + "google.golang.org/protobuf/types/known/durationpb" + "google.golang.org/protobuf/types/known/emptypb" + "google.golang.org/protobuf/types/known/fieldmaskpb" + "google.golang.org/protobuf/types/known/structpb" + "google.golang.org/protobuf/types/known/timestamppb" + "google.golang.org/protobuf/types/known/wrapperspb" + "gotest.tools/v3/assert" + "gotest.tools/v3/golden" + + "github.com/cosmos/cosmos-sdk/codec/aminojson" + "github.com/cosmos/cosmos-sdk/codec/aminojson/internal/testpb" +) + +func TestAminoJSON(t *testing.T) { + a, err := anypb.New(&testpb.ABitOfEverything{ + I32: 10, + Str: "abc", + }) + assert.NilError(t, err) + msg := &testpb.ABitOfEverything{ + Message: &testpb.NestedMessage{ + Foo: "test", + Bar: 0, // this is the default value and should be omitted from output + }, + Enum: testpb.AnEnum_ONE, + StrMap: map[string]string{ + "foo": "abc", + "bar": "def", + }, + Int32Map: map[int32]string{ + -3: "xyz", + 0: "abc", + 10: "qrs", + }, + BoolMap: map[bool]string{ + true: "T", + false: "F", + }, + Repeated: []int32{3, -7, 2, 6, 4}, + Str: `abcxyz"foo"def`, + Bool: true, + Bytes: []byte{0, 1, 2, 3}, + I32: -15, + F32: 1001, + U32: 1200, + Si32: -376, + Sf32: -1000, + I64: 14578294827584932, + F64: 9572348124213523654, + U64: 4759492485, + Si64: -59268425823934, + Sf64: -659101379604211154, + Float: 1.0, + Double: 5235.2941, + Any: a, + Timestamp: timestamppb.New(time.Date(2022, 1, 1, 12, 31, 0, 0, time.UTC)), + Duration: durationpb.New(time.Second * 3000), + Struct: &structpb.Struct{ + Fields: map[string]*structpb.Value{ + "null": structpb.NewNullValue(), + "num": structpb.NewNumberValue(3.76), + "str": structpb.NewStringValue("abc"), + "bool": structpb.NewBoolValue(true), + "nested struct": structpb.NewStructValue(&structpb.Struct{Fields: map[string]*structpb.Value{ + "a": structpb.NewStringValue("abc"), + }}), + "struct list": structpb.NewListValue(&structpb.ListValue{Values: []*structpb.Value{ + structpb.NewStringValue("xyz"), + structpb.NewBoolValue(false), + structpb.NewNumberValue(-9), + }}), + "empty": {}, + }, + }, + BoolValue: &wrapperspb.BoolValue{Value: true}, + BytesValue: &wrapperspb.BytesValue{Value: []byte{0, 1, 2, 3}}, + DoubleValue: &wrapperspb.DoubleValue{Value: 1.324}, + FloatValue: &wrapperspb.FloatValue{Value: -1.0}, + Int32Value: &wrapperspb.Int32Value{Value: 10}, + Int64Value: &wrapperspb.Int64Value{Value: -376923457}, + StringValue: &wrapperspb.StringValue{Value: "gfedcba"}, + Uint32Value: &wrapperspb.UInt32Value{Value: 37492}, + Uint64Value: &wrapperspb.UInt64Value{Value: 1892409137358391}, + FieldMask: &fieldmaskpb.FieldMask{Paths: []string{"a.b", "a.c", "b"}}, + ListValue: &structpb.ListValue{Values: []*structpb.Value{ + structpb.NewNumberValue(1.1), + structpb.NewStringValue("qrs"), + }}, + Value: structpb.NewStringValue("a value"), + NullValue: structpb.NullValue_NULL_VALUE, + Empty: &emptypb.Empty{}, + } + bz, err := aminojson.MarshalAmino(msg) + assert.NilError(t, err) + golden.Assert(t, string(bz), "example1.json") +} + +/* +func TestRapid(t *testing.T) { + gen := rapidproto.MessageGenerator(&testpb.ABitOfEverything{}, rapidproto.GeneratorOptions{}) + rapid.Check(t, func(t *rapid.T) { + msg := gen.Draw(t, "msg") + bz, err := aminojson.Marshal(msg) + assert.NilError(t, err) + checkInvariants(t, msg, bz) + }) +} + +func checkInvariants(t *rapid.T, message proto.Message, marshaledBytes []byte) { + checkRoundTrip(t, message, marshaledBytes) + checkJsonNoWhitespace(t, marshaledBytes) +} + +func checkRoundTrip(t *rapid.T, message proto.Message, marshaledBytes []byte) { + message2 := message.ProtoReflect().New().Interface() + goProtoJson, err := protojson.Marshal(message) + assert.NilError(t, err) + assert.NilError(t, protojson.UnmarshalOptions{}.Unmarshal(marshaledBytes, message2), "%s vs %s", string(marshaledBytes), string(goProtoJson)) + // TODO: assert.DeepEqual(t, message, message2, protocmp.Transform()) +} + +func checkJsonInvariants(t *testing.T, message proto.Message, unmarshaledJson map[string]interface{}) { +} + +func checkJsonNoWhitespace(t *rapid.T, marshaledBytes []byte) { +} + +func checkJsonFieldsOrdered(t *testing.T, message proto.Message, unmarshaledJson map[string]interface{}) { +} + +func checkJsonMapsOrdered(t *testing.T, message proto.Message, unmarshaledJson map[string]interface{}) { +} + +func checkJsonStringMapsOrdered(t *testing.T, message proto.Message, unmarshaledJson map[string]interface{}) { +} + +func checkJsonNumericMapsOrdered(t *testing.T, message proto.Message, unmarshaledJson map[string]interface{}) { +} + +func checkJsonBoolMapsOrdered(t *testing.T, message proto.Message, unmarshaledJson map[string]interface{}) { +} +*/ diff --git a/codec/aminojson/testdata/example1.json b/codec/aminojson/testdata/example1.json new file mode 100644 index 000000000000..157a92d92e8d --- /dev/null +++ b/codec/aminojson/testdata/example1.json @@ -0,0 +1 @@ +{"message":{"foo":"test"},"enum":"ONE","str_map":{"foo":"abc","bar":"def"},"int32_map":{"10":"qrs","-3":"xyz","0":"abc"},"bool_map":{"true":"T","false":"F"},"repeated":[3,-7,2,6,4],"str":"abcxyz\"foo\"def","bool":true,"bytes":"AAECAw==","i32":-15,"f32":1001,"u32":1200,"si32":-376,"sf32":-1000,"i64":"14578294827584932","f64":"9572348124213523654","u64":"4759492485","si64":"-59268425823934","sf64":"-659101379604211154","float":1,"double":5235.2941,"any":{"@type_url":"type.googleapis.com/testpb.ABitOfEverything","str":"abc","i32":10},"timestamp":"2022-01-01T12:31:00Z","duration":"3000s","struct":{"bool":true,"empty":null,"nested struct":{"a":"abc"},"null":null,"num":3.76,"str":"abc","struct list":["xyz",false,-9]},"bool_value":true,"bytes_value":"AAECAw==","double_value":1.324,"float_value":-1,"int32_value":10,"int64_value":"-376923457","string_value":"gfedcba","uint32_value":37492,"uint64_value":"1892409137358391","field_mask":"a.b,a.c,b","list_value":[1.1,"qrs"],"value":"a value","empty":{}} \ No newline at end of file From ca1e8c3d2e8451bdb719f3d4931de007c5de007d Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 26 Jan 2023 15:01:58 -0600 Subject: [PATCH 005/122] assert legacy behavior parity in test --- codec/aminojson/internal/testpb/test.pb.go | 301 +++++++++------------ codec/aminojson/internal/testpb/test.proto | 8 +- codec/aminojson/marshal_test.go | 44 +-- 3 files changed, 156 insertions(+), 197 deletions(-) diff --git a/codec/aminojson/internal/testpb/test.pb.go b/codec/aminojson/internal/testpb/test.pb.go index 8adf98681512..f3f431f1be18 100644 --- a/codec/aminojson/internal/testpb/test.pb.go +++ b/codec/aminojson/internal/testpb/test.pb.go @@ -93,30 +93,28 @@ type ABitOfEverything struct { Int32Map map[int32]string `protobuf:"bytes,4,rep,name=int32_map,json=int32Map,proto3" json:"int32_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` BoolMap map[bool]string `protobuf:"bytes,5,rep,name=bool_map,json=boolMap,proto3" json:"bool_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // repeated - Repeated []int32 `protobuf:"varint,6,rep,packed,name=repeated,proto3" json:"repeated,omitempty"` - Str string `protobuf:"bytes,7,opt,name=str,proto3" json:"str,omitempty"` - Bool bool `protobuf:"varint,8,opt,name=bool,proto3" json:"bool,omitempty"` - Bytes []byte `protobuf:"bytes,9,opt,name=bytes,proto3" json:"bytes,omitempty"` - I32 int32 `protobuf:"varint,10,opt,name=i32,proto3" json:"i32,omitempty"` - F32 uint32 `protobuf:"fixed32,11,opt,name=f32,proto3" json:"f32,omitempty"` - U32 uint32 `protobuf:"varint,12,opt,name=u32,proto3" json:"u32,omitempty"` - Si32 int32 `protobuf:"zigzag32,13,opt,name=si32,proto3" json:"si32,omitempty"` - Sf32 int32 `protobuf:"fixed32,14,opt,name=sf32,proto3" json:"sf32,omitempty"` - I64 int64 `protobuf:"varint,15,opt,name=i64,proto3" json:"i64,omitempty"` - F64 uint64 `protobuf:"fixed64,16,opt,name=f64,proto3" json:"f64,omitempty"` - U64 uint64 `protobuf:"varint,17,opt,name=u64,proto3" json:"u64,omitempty"` - Si64 int64 `protobuf:"zigzag64,18,opt,name=si64,proto3" json:"si64,omitempty"` - Sf64 int64 `protobuf:"fixed64,19,opt,name=sf64,proto3" json:"sf64,omitempty"` - Float float32 `protobuf:"fixed32,20,opt,name=float,proto3" json:"float,omitempty"` - Double float64 `protobuf:"fixed64,21,opt,name=double,proto3" json:"double,omitempty"` - Any *anypb.Any `protobuf:"bytes,22,opt,name=any,proto3" json:"any,omitempty"` - Timestamp *timestamppb.Timestamp `protobuf:"bytes,23,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - Duration *durationpb.Duration `protobuf:"bytes,24,opt,name=duration,proto3" json:"duration,omitempty"` - Struct *structpb.Struct `protobuf:"bytes,25,opt,name=struct,proto3" json:"struct,omitempty"` - BoolValue *wrapperspb.BoolValue `protobuf:"bytes,26,opt,name=bool_value,json=boolValue,proto3" json:"bool_value,omitempty"` - BytesValue *wrapperspb.BytesValue `protobuf:"bytes,27,opt,name=bytes_value,json=bytesValue,proto3" json:"bytes_value,omitempty"` - DoubleValue *wrapperspb.DoubleValue `protobuf:"bytes,28,opt,name=double_value,json=doubleValue,proto3" json:"double_value,omitempty"` - FloatValue *wrapperspb.FloatValue `protobuf:"bytes,29,opt,name=float_value,json=floatValue,proto3" json:"float_value,omitempty"` + Repeated []int32 `protobuf:"varint,6,rep,packed,name=repeated,proto3" json:"repeated,omitempty"` + Str string `protobuf:"bytes,7,opt,name=str,proto3" json:"str,omitempty"` + Bool bool `protobuf:"varint,8,opt,name=bool,proto3" json:"bool,omitempty"` + Bytes []byte `protobuf:"bytes,9,opt,name=bytes,proto3" json:"bytes,omitempty"` + I32 int32 `protobuf:"varint,10,opt,name=i32,proto3" json:"i32,omitempty"` + F32 uint32 `protobuf:"fixed32,11,opt,name=f32,proto3" json:"f32,omitempty"` + U32 uint32 `protobuf:"varint,12,opt,name=u32,proto3" json:"u32,omitempty"` + Si32 int32 `protobuf:"zigzag32,13,opt,name=si32,proto3" json:"si32,omitempty"` + Sf32 int32 `protobuf:"fixed32,14,opt,name=sf32,proto3" json:"sf32,omitempty"` + I64 int64 `protobuf:"varint,15,opt,name=i64,proto3" json:"i64,omitempty"` + F64 uint64 `protobuf:"fixed64,16,opt,name=f64,proto3" json:"f64,omitempty"` + U64 uint64 `protobuf:"varint,17,opt,name=u64,proto3" json:"u64,omitempty"` + Si64 int64 `protobuf:"zigzag64,18,opt,name=si64,proto3" json:"si64,omitempty"` + Sf64 int64 `protobuf:"fixed64,19,opt,name=sf64,proto3" json:"sf64,omitempty"` + Any *anypb.Any `protobuf:"bytes,22,opt,name=any,proto3" json:"any,omitempty"` + Timestamp *timestamppb.Timestamp `protobuf:"bytes,23,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Duration *durationpb.Duration `protobuf:"bytes,24,opt,name=duration,proto3" json:"duration,omitempty"` + Struct *structpb.Struct `protobuf:"bytes,25,opt,name=struct,proto3" json:"struct,omitempty"` + BoolValue *wrapperspb.BoolValue `protobuf:"bytes,26,opt,name=bool_value,json=boolValue,proto3" json:"bool_value,omitempty"` + BytesValue *wrapperspb.BytesValue `protobuf:"bytes,27,opt,name=bytes_value,json=bytesValue,proto3" json:"bytes_value,omitempty"` + // google.protobuf.DoubleValue double_value = 28; + // google.protobuf.FloatValue float_value = 29; Int32Value *wrapperspb.Int32Value `protobuf:"bytes,30,opt,name=int32_value,json=int32Value,proto3" json:"int32_value,omitempty"` Int64Value *wrapperspb.Int64Value `protobuf:"bytes,31,opt,name=int64_value,json=int64Value,proto3" json:"int64_value,omitempty"` StringValue *wrapperspb.StringValue `protobuf:"bytes,32,opt,name=string_value,json=stringValue,proto3" json:"string_value,omitempty"` @@ -294,20 +292,6 @@ func (x *ABitOfEverything) GetSf64() int64 { return 0 } -func (x *ABitOfEverything) GetFloat() float32 { - if x != nil { - return x.Float - } - return 0 -} - -func (x *ABitOfEverything) GetDouble() float64 { - if x != nil { - return x.Double - } - return 0 -} - func (x *ABitOfEverything) GetAny() *anypb.Any { if x != nil { return x.Any @@ -350,20 +334,6 @@ func (x *ABitOfEverything) GetBytesValue() *wrapperspb.BytesValue { return nil } -func (x *ABitOfEverything) GetDoubleValue() *wrapperspb.DoubleValue { - if x != nil { - return x.DoubleValue - } - return nil -} - -func (x *ABitOfEverything) GetFloatValue() *wrapperspb.FloatValue { - if x != nil { - return x.FloatValue - } - return nil -} - func (x *ABitOfEverything) GetInt32Value() *wrapperspb.Int32Value { if x != nil { return x.Int32Value @@ -507,7 +477,7 @@ var file_testpb_test_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb1, 0x0e, 0x0a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x84, 0x0d, 0x0a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, @@ -543,101 +513,90 @@ var file_testpb_test_proto_rawDesc = []byte{ 0x0a, 0x03, 0x75, 0x36, 0x34, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x36, 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x69, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x66, 0x36, 0x34, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x10, 0x52, 0x04, 0x73, 0x66, 0x36, 0x34, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, - 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x06, - 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x38, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, - 0x12, 0x39, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1a, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0b, + 0x28, 0x10, 0x52, 0x04, 0x73, 0x66, 0x36, 0x34, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x03, 0x61, 0x6e, 0x79, + 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, + 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1b, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, + 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x64, 0x6f, 0x75, - 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, - 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x66, 0x6c, - 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x33, - 0x32, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, + 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x33, - 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, - 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, 0x49, - 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x74, 0x33, - 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, 0x36, 0x34, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x55, - 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x75, 0x69, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, - 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, - 0x73, 0x6b, 0x12, 0x39, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x56, - 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x6e, - 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6e, 0x75, 0x6c, - 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, - 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x05, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, + 0x33, 0x32, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x75, 0x69, + 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x75, 0x69, 0x6e, + 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x75, + 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x66, 0x69, + 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, + 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x39, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, + 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x26, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, + 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x52, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x4d, 0x61, + 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4d, 0x61, 0x70, 0x45, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x3b, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, - 0x42, 0x6f, 0x6f, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x33, 0x0a, 0x0d, 0x4e, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x62, - 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, 0x2a, 0x29, 0x0a, - 0x06, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, - 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, - 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x7f, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, - 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, - 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, - 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x3a, 0x0a, 0x0c, 0x42, 0x6f, 0x6f, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x33, 0x0a, 0x0d, 0x4e, + 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, + 0x0a, 0x03, 0x62, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, + 0x2a, 0x29, 0x0a, 0x06, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, + 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, + 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x7f, 0x0a, 0x0a, 0x63, + 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, + 0x65, 0x73, 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, + 0x12, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -667,18 +626,16 @@ var file_testpb_test_proto_goTypes = []interface{}{ (*structpb.Struct)(nil), // 9: google.protobuf.Struct (*wrapperspb.BoolValue)(nil), // 10: google.protobuf.BoolValue (*wrapperspb.BytesValue)(nil), // 11: google.protobuf.BytesValue - (*wrapperspb.DoubleValue)(nil), // 12: google.protobuf.DoubleValue - (*wrapperspb.FloatValue)(nil), // 13: google.protobuf.FloatValue - (*wrapperspb.Int32Value)(nil), // 14: google.protobuf.Int32Value - (*wrapperspb.Int64Value)(nil), // 15: google.protobuf.Int64Value - (*wrapperspb.StringValue)(nil), // 16: google.protobuf.StringValue - (*wrapperspb.UInt32Value)(nil), // 17: google.protobuf.UInt32Value - (*wrapperspb.UInt64Value)(nil), // 18: google.protobuf.UInt64Value - (*fieldmaskpb.FieldMask)(nil), // 19: google.protobuf.FieldMask - (*structpb.ListValue)(nil), // 20: google.protobuf.ListValue - (*structpb.Value)(nil), // 21: google.protobuf.Value - (structpb.NullValue)(0), // 22: google.protobuf.NullValue - (*emptypb.Empty)(nil), // 23: google.protobuf.Empty + (*wrapperspb.Int32Value)(nil), // 12: google.protobuf.Int32Value + (*wrapperspb.Int64Value)(nil), // 13: google.protobuf.Int64Value + (*wrapperspb.StringValue)(nil), // 14: google.protobuf.StringValue + (*wrapperspb.UInt32Value)(nil), // 15: google.protobuf.UInt32Value + (*wrapperspb.UInt64Value)(nil), // 16: google.protobuf.UInt64Value + (*fieldmaskpb.FieldMask)(nil), // 17: google.protobuf.FieldMask + (*structpb.ListValue)(nil), // 18: google.protobuf.ListValue + (*structpb.Value)(nil), // 19: google.protobuf.Value + (structpb.NullValue)(0), // 20: google.protobuf.NullValue + (*emptypb.Empty)(nil), // 21: google.protobuf.Empty } var file_testpb_test_proto_depIdxs = []int32{ 2, // 0: testpb.ABitOfEverything.message:type_name -> testpb.NestedMessage @@ -692,23 +649,21 @@ var file_testpb_test_proto_depIdxs = []int32{ 9, // 8: testpb.ABitOfEverything.struct:type_name -> google.protobuf.Struct 10, // 9: testpb.ABitOfEverything.bool_value:type_name -> google.protobuf.BoolValue 11, // 10: testpb.ABitOfEverything.bytes_value:type_name -> google.protobuf.BytesValue - 12, // 11: testpb.ABitOfEverything.double_value:type_name -> google.protobuf.DoubleValue - 13, // 12: testpb.ABitOfEverything.float_value:type_name -> google.protobuf.FloatValue - 14, // 13: testpb.ABitOfEverything.int32_value:type_name -> google.protobuf.Int32Value - 15, // 14: testpb.ABitOfEverything.int64_value:type_name -> google.protobuf.Int64Value - 16, // 15: testpb.ABitOfEverything.string_value:type_name -> google.protobuf.StringValue - 17, // 16: testpb.ABitOfEverything.uint32_value:type_name -> google.protobuf.UInt32Value - 18, // 17: testpb.ABitOfEverything.uint64_value:type_name -> google.protobuf.UInt64Value - 19, // 18: testpb.ABitOfEverything.field_mask:type_name -> google.protobuf.FieldMask - 20, // 19: testpb.ABitOfEverything.list_value:type_name -> google.protobuf.ListValue - 21, // 20: testpb.ABitOfEverything.value:type_name -> google.protobuf.Value - 22, // 21: testpb.ABitOfEverything.null_value:type_name -> google.protobuf.NullValue - 23, // 22: testpb.ABitOfEverything.empty:type_name -> google.protobuf.Empty - 23, // [23:23] is the sub-list for method output_type - 23, // [23:23] is the sub-list for method input_type - 23, // [23:23] is the sub-list for extension type_name - 23, // [23:23] is the sub-list for extension extendee - 0, // [0:23] is the sub-list for field type_name + 12, // 11: testpb.ABitOfEverything.int32_value:type_name -> google.protobuf.Int32Value + 13, // 12: testpb.ABitOfEverything.int64_value:type_name -> google.protobuf.Int64Value + 14, // 13: testpb.ABitOfEverything.string_value:type_name -> google.protobuf.StringValue + 15, // 14: testpb.ABitOfEverything.uint32_value:type_name -> google.protobuf.UInt32Value + 16, // 15: testpb.ABitOfEverything.uint64_value:type_name -> google.protobuf.UInt64Value + 17, // 16: testpb.ABitOfEverything.field_mask:type_name -> google.protobuf.FieldMask + 18, // 17: testpb.ABitOfEverything.list_value:type_name -> google.protobuf.ListValue + 19, // 18: testpb.ABitOfEverything.value:type_name -> google.protobuf.Value + 20, // 19: testpb.ABitOfEverything.null_value:type_name -> google.protobuf.NullValue + 21, // 20: testpb.ABitOfEverything.empty:type_name -> google.protobuf.Empty + 21, // [21:21] is the sub-list for method output_type + 21, // [21:21] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name } func init() { file_testpb_test_proto_init() } diff --git a/codec/aminojson/internal/testpb/test.proto b/codec/aminojson/internal/testpb/test.proto index 95e31f6967ed..09f7878e9aef 100644 --- a/codec/aminojson/internal/testpb/test.proto +++ b/codec/aminojson/internal/testpb/test.proto @@ -46,8 +46,8 @@ message ABitOfEverything { sint64 si64 = 18; sfixed64 sf64 = 19; - float float = 20; - double double = 21; + //float float = 20; + //double double = 21; google.protobuf.Any any = 22; @@ -59,8 +59,8 @@ message ABitOfEverything { google.protobuf.BoolValue bool_value = 26; google.protobuf.BytesValue bytes_value = 27; - google.protobuf.DoubleValue double_value = 28; - google.protobuf.FloatValue float_value = 29; + //google.protobuf.DoubleValue double_value = 28; + //google.protobuf.FloatValue float_value = 29; google.protobuf.Int32Value int32_value = 30; google.protobuf.Int64Value int64_value = 31; google.protobuf.StringValue string_value = 32; diff --git a/codec/aminojson/marshal_test.go b/codec/aminojson/marshal_test.go index 0327dac50d95..be3f00011c44 100644 --- a/codec/aminojson/marshal_test.go +++ b/codec/aminojson/marshal_test.go @@ -1,6 +1,7 @@ package aminojson_test import ( + "github.com/tendermint/go-amino" "testing" "time" @@ -43,22 +44,22 @@ func TestAminoJSON(t *testing.T) { true: "T", false: "F", }, - Repeated: []int32{3, -7, 2, 6, 4}, - Str: `abcxyz"foo"def`, - Bool: true, - Bytes: []byte{0, 1, 2, 3}, - I32: -15, - F32: 1001, - U32: 1200, - Si32: -376, - Sf32: -1000, - I64: 14578294827584932, - F64: 9572348124213523654, - U64: 4759492485, - Si64: -59268425823934, - Sf64: -659101379604211154, - Float: 1.0, - Double: 5235.2941, + Repeated: []int32{3, -7, 2, 6, 4}, + Str: `abcxyz"foo"def`, + Bool: true, + Bytes: []byte{0, 1, 2, 3}, + I32: -15, + F32: 1001, + U32: 1200, + Si32: -376, + Sf32: -1000, + I64: 14578294827584932, + F64: 9572348124213523654, + U64: 4759492485, + Si64: -59268425823934, + Sf64: -659101379604211154, + //Float: 1.0, + //Double: 5235.2941, Any: a, Timestamp: timestamppb.New(time.Date(2022, 1, 1, 12, 31, 0, 0, time.UTC)), Duration: durationpb.New(time.Second * 3000), @@ -79,10 +80,10 @@ func TestAminoJSON(t *testing.T) { "empty": {}, }, }, - BoolValue: &wrapperspb.BoolValue{Value: true}, - BytesValue: &wrapperspb.BytesValue{Value: []byte{0, 1, 2, 3}}, - DoubleValue: &wrapperspb.DoubleValue{Value: 1.324}, - FloatValue: &wrapperspb.FloatValue{Value: -1.0}, + BoolValue: &wrapperspb.BoolValue{Value: true}, + BytesValue: &wrapperspb.BytesValue{Value: []byte{0, 1, 2, 3}}, + //DoubleValue: &wrapperspb.DoubleValue{Value: 1.324}, + //FloatValue: &wrapperspb.FloatValue{Value: -1.0}, Int32Value: &wrapperspb.Int32Value{Value: 10}, Int64Value: &wrapperspb.Int64Value{Value: -376923457}, StringValue: &wrapperspb.StringValue{Value: "gfedcba"}, @@ -99,6 +100,9 @@ func TestAminoJSON(t *testing.T) { } bz, err := aminojson.MarshalAmino(msg) assert.NilError(t, err) + cdc := amino.NewCodec() + legacyBz, err := cdc.MarshalJSON(msg) + golden.Assert(t, string(legacyBz), "example1.json") golden.Assert(t, string(bz), "example1.json") } From 35bb289a3be02525c2350faa6b426176af299f9c Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 26 Jan 2023 16:13:53 -0600 Subject: [PATCH 006/122] fix test to fail in the proper way --- codec/aminojson/README.md | 9 + codec/aminojson/internal/testpb/test.pb.go | 389 +++++---------------- codec/aminojson/internal/testpb/test.proto | 41 ++- codec/aminojson/marshal_test.go | 93 +++-- codec/aminojson/testdata/example1.json | 1 - codec/aminojson/testdata/legacyamino.json | 1 + codec/aminojson/testdata/stablejson.json | 0 7 files changed, 168 insertions(+), 366 deletions(-) delete mode 100644 codec/aminojson/testdata/example1.json create mode 100644 codec/aminojson/testdata/legacyamino.json create mode 100644 codec/aminojson/testdata/stablejson.json diff --git a/codec/aminojson/README.md b/codec/aminojson/README.md index f4755e43db04..afc041cae3e8 100644 --- a/codec/aminojson/README.md +++ b/codec/aminojson/README.md @@ -8,3 +8,12 @@ The same seems to be true for `encoding/json.Marshaler.MarshalJSON` and `Marshal Note that go-amino [special cases byte arrays](https://github.com/tendermint/go-amino/blob/ccb15b138dfd74282be78f5e9059387768b12918/json-encode.go#L231) to support e.g. key serialization. This odd feature must be included for total feature parity. + +look to `std.RegisterLegacyAminoCodec(amino)` for current usages and registration of the codec +amino map serialization is non-deterministic + +- structurally follow legacy amino json encoding +- refer to stablejson for protoreflect details on golang reflect -> protoreflect +- add special casing custom encoders (including tests) +- add rapid tests +- refactor for readability. not really convinced stablejson is anymore readable than amino json yet \ No newline at end of file diff --git a/codec/aminojson/internal/testpb/test.pb.go b/codec/aminojson/internal/testpb/test.pb.go index f3f431f1be18..c090dd20ffa8 100644 --- a/codec/aminojson/internal/testpb/test.pb.go +++ b/codec/aminojson/internal/testpb/test.pb.go @@ -11,11 +11,11 @@ import ( protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" durationpb "google.golang.org/protobuf/types/known/durationpb" - emptypb "google.golang.org/protobuf/types/known/emptypb" - fieldmaskpb "google.golang.org/protobuf/types/known/fieldmaskpb" + _ "google.golang.org/protobuf/types/known/emptypb" + _ "google.golang.org/protobuf/types/known/fieldmaskpb" structpb "google.golang.org/protobuf/types/known/structpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" - wrapperspb "google.golang.org/protobuf/types/known/wrapperspb" + _ "google.golang.org/protobuf/types/known/wrapperspb" reflect "reflect" sync "sync" ) @@ -89,42 +89,26 @@ type ABitOfEverything struct { Enum AnEnum `protobuf:"varint,2,opt,name=enum,proto3,enum=testpb.AnEnum" json:"enum,omitempty"` // map // All keys are converted to strings. - StrMap map[string]string `protobuf:"bytes,3,rep,name=str_map,json=strMap,proto3" json:"str_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - Int32Map map[int32]string `protobuf:"bytes,4,rep,name=int32_map,json=int32Map,proto3" json:"int32_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - BoolMap map[bool]string `protobuf:"bytes,5,rep,name=bool_map,json=boolMap,proto3" json:"bool_map,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + StrMap map[string]string `protobuf:"bytes,3,rep,name=str_map,json=strMap,proto3" json:"str_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // repeated - Repeated []int32 `protobuf:"varint,6,rep,packed,name=repeated,proto3" json:"repeated,omitempty"` - Str string `protobuf:"bytes,7,opt,name=str,proto3" json:"str,omitempty"` - Bool bool `protobuf:"varint,8,opt,name=bool,proto3" json:"bool,omitempty"` - Bytes []byte `protobuf:"bytes,9,opt,name=bytes,proto3" json:"bytes,omitempty"` - I32 int32 `protobuf:"varint,10,opt,name=i32,proto3" json:"i32,omitempty"` - F32 uint32 `protobuf:"fixed32,11,opt,name=f32,proto3" json:"f32,omitempty"` - U32 uint32 `protobuf:"varint,12,opt,name=u32,proto3" json:"u32,omitempty"` - Si32 int32 `protobuf:"zigzag32,13,opt,name=si32,proto3" json:"si32,omitempty"` - Sf32 int32 `protobuf:"fixed32,14,opt,name=sf32,proto3" json:"sf32,omitempty"` - I64 int64 `protobuf:"varint,15,opt,name=i64,proto3" json:"i64,omitempty"` - F64 uint64 `protobuf:"fixed64,16,opt,name=f64,proto3" json:"f64,omitempty"` - U64 uint64 `protobuf:"varint,17,opt,name=u64,proto3" json:"u64,omitempty"` - Si64 int64 `protobuf:"zigzag64,18,opt,name=si64,proto3" json:"si64,omitempty"` - Sf64 int64 `protobuf:"fixed64,19,opt,name=sf64,proto3" json:"sf64,omitempty"` - Any *anypb.Any `protobuf:"bytes,22,opt,name=any,proto3" json:"any,omitempty"` - Timestamp *timestamppb.Timestamp `protobuf:"bytes,23,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - Duration *durationpb.Duration `protobuf:"bytes,24,opt,name=duration,proto3" json:"duration,omitempty"` - Struct *structpb.Struct `protobuf:"bytes,25,opt,name=struct,proto3" json:"struct,omitempty"` - BoolValue *wrapperspb.BoolValue `protobuf:"bytes,26,opt,name=bool_value,json=boolValue,proto3" json:"bool_value,omitempty"` - BytesValue *wrapperspb.BytesValue `protobuf:"bytes,27,opt,name=bytes_value,json=bytesValue,proto3" json:"bytes_value,omitempty"` - // google.protobuf.DoubleValue double_value = 28; - // google.protobuf.FloatValue float_value = 29; - Int32Value *wrapperspb.Int32Value `protobuf:"bytes,30,opt,name=int32_value,json=int32Value,proto3" json:"int32_value,omitempty"` - Int64Value *wrapperspb.Int64Value `protobuf:"bytes,31,opt,name=int64_value,json=int64Value,proto3" json:"int64_value,omitempty"` - StringValue *wrapperspb.StringValue `protobuf:"bytes,32,opt,name=string_value,json=stringValue,proto3" json:"string_value,omitempty"` - Uint32Value *wrapperspb.UInt32Value `protobuf:"bytes,33,opt,name=uint32_value,json=uint32Value,proto3" json:"uint32_value,omitempty"` - Uint64Value *wrapperspb.UInt64Value `protobuf:"bytes,34,opt,name=uint64_value,json=uint64Value,proto3" json:"uint64_value,omitempty"` - FieldMask *fieldmaskpb.FieldMask `protobuf:"bytes,35,opt,name=field_mask,json=fieldMask,proto3" json:"field_mask,omitempty"` - ListValue *structpb.ListValue `protobuf:"bytes,36,opt,name=list_value,json=listValue,proto3" json:"list_value,omitempty"` - Value *structpb.Value `protobuf:"bytes,37,opt,name=value,proto3" json:"value,omitempty"` - NullValue structpb.NullValue `protobuf:"varint,38,opt,name=null_value,json=nullValue,proto3,enum=google.protobuf.NullValue" json:"null_value,omitempty"` - Empty *emptypb.Empty `protobuf:"bytes,39,opt,name=empty,proto3" json:"empty,omitempty"` + Repeated []int32 `protobuf:"varint,6,rep,packed,name=repeated,proto3" json:"repeated,omitempty"` + Str string `protobuf:"bytes,7,opt,name=str,proto3" json:"str,omitempty"` + Bool bool `protobuf:"varint,8,opt,name=bool,proto3" json:"bool,omitempty"` + Bytes []byte `protobuf:"bytes,9,opt,name=bytes,proto3" json:"bytes,omitempty"` + I32 int32 `protobuf:"varint,10,opt,name=i32,proto3" json:"i32,omitempty"` + F32 uint32 `protobuf:"fixed32,11,opt,name=f32,proto3" json:"f32,omitempty"` + U32 uint32 `protobuf:"varint,12,opt,name=u32,proto3" json:"u32,omitempty"` + Si32 int32 `protobuf:"zigzag32,13,opt,name=si32,proto3" json:"si32,omitempty"` + Sf32 int32 `protobuf:"fixed32,14,opt,name=sf32,proto3" json:"sf32,omitempty"` + I64 int64 `protobuf:"varint,15,opt,name=i64,proto3" json:"i64,omitempty"` + F64 uint64 `protobuf:"fixed64,16,opt,name=f64,proto3" json:"f64,omitempty"` + U64 uint64 `protobuf:"varint,17,opt,name=u64,proto3" json:"u64,omitempty"` + Si64 int64 `protobuf:"zigzag64,18,opt,name=si64,proto3" json:"si64,omitempty"` + Sf64 int64 `protobuf:"fixed64,19,opt,name=sf64,proto3" json:"sf64,omitempty"` + Any *anypb.Any `protobuf:"bytes,22,opt,name=any,proto3" json:"any,omitempty"` + Timestamp *timestamppb.Timestamp `protobuf:"bytes,23,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Duration *durationpb.Duration `protobuf:"bytes,24,opt,name=duration,proto3" json:"duration,omitempty"` + Struct *structpb.Struct `protobuf:"bytes,25,opt,name=struct,proto3" json:"struct,omitempty"` } func (x *ABitOfEverything) Reset() { @@ -180,20 +164,6 @@ func (x *ABitOfEverything) GetStrMap() map[string]string { return nil } -func (x *ABitOfEverything) GetInt32Map() map[int32]string { - if x != nil { - return x.Int32Map - } - return nil -} - -func (x *ABitOfEverything) GetBoolMap() map[bool]string { - if x != nil { - return x.BoolMap - } - return nil -} - func (x *ABitOfEverything) GetRepeated() []int32 { if x != nil { return x.Repeated @@ -320,90 +290,6 @@ func (x *ABitOfEverything) GetStruct() *structpb.Struct { return nil } -func (x *ABitOfEverything) GetBoolValue() *wrapperspb.BoolValue { - if x != nil { - return x.BoolValue - } - return nil -} - -func (x *ABitOfEverything) GetBytesValue() *wrapperspb.BytesValue { - if x != nil { - return x.BytesValue - } - return nil -} - -func (x *ABitOfEverything) GetInt32Value() *wrapperspb.Int32Value { - if x != nil { - return x.Int32Value - } - return nil -} - -func (x *ABitOfEverything) GetInt64Value() *wrapperspb.Int64Value { - if x != nil { - return x.Int64Value - } - return nil -} - -func (x *ABitOfEverything) GetStringValue() *wrapperspb.StringValue { - if x != nil { - return x.StringValue - } - return nil -} - -func (x *ABitOfEverything) GetUint32Value() *wrapperspb.UInt32Value { - if x != nil { - return x.Uint32Value - } - return nil -} - -func (x *ABitOfEverything) GetUint64Value() *wrapperspb.UInt64Value { - if x != nil { - return x.Uint64Value - } - return nil -} - -func (x *ABitOfEverything) GetFieldMask() *fieldmaskpb.FieldMask { - if x != nil { - return x.FieldMask - } - return nil -} - -func (x *ABitOfEverything) GetListValue() *structpb.ListValue { - if x != nil { - return x.ListValue - } - return nil -} - -func (x *ABitOfEverything) GetValue() *structpb.Value { - if x != nil { - return x.Value - } - return nil -} - -func (x *ABitOfEverything) GetNullValue() structpb.NullValue { - if x != nil { - return x.NullValue - } - return structpb.NullValue(0) -} - -func (x *ABitOfEverything) GetEmpty() *emptypb.Empty { - if x != nil { - return x.Empty - } - return nil -} - type NestedMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -477,7 +363,7 @@ var file_testpb_test_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x84, 0x0d, 0x0a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbf, 0x05, 0x0a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, @@ -487,116 +373,55 @@ var file_testpb_test_proto_rawDesc = []byte{ 0x0a, 0x07, 0x73, 0x74, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x43, 0x0a, - 0x09, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, - 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, - 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x4d, - 0x61, 0x70, 0x12, 0x40, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x42, - 0x69, 0x74, 0x4f, 0x66, 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x42, - 0x6f, 0x6f, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x62, 0x6f, 0x6f, - 0x6c, 0x4d, 0x61, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, - 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, - 0x69, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x69, 0x33, 0x32, 0x12, 0x10, - 0x0a, 0x03, 0x66, 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x66, 0x33, 0x32, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x33, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, - 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x33, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, - 0x52, 0x04, 0x73, 0x69, 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x66, 0x33, 0x32, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x0f, 0x52, 0x04, 0x73, 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x36, - 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x69, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, - 0x66, 0x36, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x66, 0x36, 0x34, 0x12, 0x10, - 0x0a, 0x03, 0x75, 0x36, 0x34, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x36, 0x34, - 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x36, 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, - 0x73, 0x69, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x66, 0x36, 0x34, 0x18, 0x13, 0x20, 0x01, - 0x28, 0x10, 0x52, 0x04, 0x73, 0x66, 0x36, 0x34, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, - 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x03, 0x61, 0x6e, 0x79, - 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x17, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, - 0x63, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, - 0x75, 0x65, 0x52, 0x09, 0x62, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, - 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, - 0x0a, 0x62, 0x79, 0x74, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, - 0x6e, 0x74, 0x33, 0x32, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x69, - 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x69, 0x6e, 0x74, - 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0a, 0x69, 0x6e, 0x74, - 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x75, 0x69, 0x6e, 0x74, - 0x33, 0x32, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x75, 0x69, - 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x75, 0x69, 0x6e, - 0x74, 0x36, 0x34, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x75, - 0x69, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x66, 0x69, - 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x1a, 0x0a, + 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, + 0x6f, 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, + 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x69, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x33, 0x32, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x33, 0x32, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x69, 0x33, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, 0x69, 0x33, 0x32, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x66, 0x33, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x04, 0x73, + 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x36, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x03, 0x69, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x36, 0x34, 0x18, 0x10, 0x20, 0x01, + 0x28, 0x06, 0x52, 0x03, 0x66, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x36, 0x34, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x36, + 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x69, 0x36, 0x34, 0x12, 0x12, 0x0a, + 0x04, 0x73, 0x66, 0x36, 0x34, 0x18, 0x13, 0x20, 0x01, 0x28, 0x10, 0x52, 0x04, 0x73, 0x66, 0x36, + 0x34, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x52, 0x09, 0x66, 0x69, 0x65, 0x6c, - 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x39, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x6c, 0x69, 0x73, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, - 0x12, 0x2c, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x39, - 0x0a, 0x0a, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x26, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, - 0x6e, 0x75, 0x6c, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2c, 0x0a, 0x05, 0x65, 0x6d, 0x70, - 0x74, 0x79, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x52, 0x05, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x4d, 0x61, - 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x4d, 0x61, 0x70, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, - 0x3a, 0x0a, 0x0c, 0x42, 0x6f, 0x6f, 0x6c, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x33, 0x0a, 0x0d, 0x4e, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, - 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, - 0x0a, 0x03, 0x62, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, - 0x2a, 0x29, 0x0a, 0x06, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, - 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, - 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x7f, 0x0a, 0x0a, 0x63, - 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, - 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, - 0x65, 0x73, 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, - 0x12, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x53, + 0x74, 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x33, 0x0a, 0x0d, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x61, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, 0x2a, 0x29, 0x0a, 0x06, 0x41, + 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, + 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x7f, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, + 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, + 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, + 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, 0x73, 0x74, + 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -612,58 +437,30 @@ func file_testpb_test_proto_rawDescGZIP() []byte { } var file_testpb_test_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_testpb_test_proto_goTypes = []interface{}{ - (AnEnum)(0), // 0: testpb.AnEnum - (*ABitOfEverything)(nil), // 1: testpb.ABitOfEverything - (*NestedMessage)(nil), // 2: testpb.NestedMessage - nil, // 3: testpb.ABitOfEverything.StrMapEntry - nil, // 4: testpb.ABitOfEverything.Int32MapEntry - nil, // 5: testpb.ABitOfEverything.BoolMapEntry - (*anypb.Any)(nil), // 6: google.protobuf.Any - (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 8: google.protobuf.Duration - (*structpb.Struct)(nil), // 9: google.protobuf.Struct - (*wrapperspb.BoolValue)(nil), // 10: google.protobuf.BoolValue - (*wrapperspb.BytesValue)(nil), // 11: google.protobuf.BytesValue - (*wrapperspb.Int32Value)(nil), // 12: google.protobuf.Int32Value - (*wrapperspb.Int64Value)(nil), // 13: google.protobuf.Int64Value - (*wrapperspb.StringValue)(nil), // 14: google.protobuf.StringValue - (*wrapperspb.UInt32Value)(nil), // 15: google.protobuf.UInt32Value - (*wrapperspb.UInt64Value)(nil), // 16: google.protobuf.UInt64Value - (*fieldmaskpb.FieldMask)(nil), // 17: google.protobuf.FieldMask - (*structpb.ListValue)(nil), // 18: google.protobuf.ListValue - (*structpb.Value)(nil), // 19: google.protobuf.Value - (structpb.NullValue)(0), // 20: google.protobuf.NullValue - (*emptypb.Empty)(nil), // 21: google.protobuf.Empty + (AnEnum)(0), // 0: testpb.AnEnum + (*ABitOfEverything)(nil), // 1: testpb.ABitOfEverything + (*NestedMessage)(nil), // 2: testpb.NestedMessage + nil, // 3: testpb.ABitOfEverything.StrMapEntry + (*anypb.Any)(nil), // 4: google.protobuf.Any + (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 6: google.protobuf.Duration + (*structpb.Struct)(nil), // 7: google.protobuf.Struct } var file_testpb_test_proto_depIdxs = []int32{ - 2, // 0: testpb.ABitOfEverything.message:type_name -> testpb.NestedMessage - 0, // 1: testpb.ABitOfEverything.enum:type_name -> testpb.AnEnum - 3, // 2: testpb.ABitOfEverything.str_map:type_name -> testpb.ABitOfEverything.StrMapEntry - 4, // 3: testpb.ABitOfEverything.int32_map:type_name -> testpb.ABitOfEverything.Int32MapEntry - 5, // 4: testpb.ABitOfEverything.bool_map:type_name -> testpb.ABitOfEverything.BoolMapEntry - 6, // 5: testpb.ABitOfEverything.any:type_name -> google.protobuf.Any - 7, // 6: testpb.ABitOfEverything.timestamp:type_name -> google.protobuf.Timestamp - 8, // 7: testpb.ABitOfEverything.duration:type_name -> google.protobuf.Duration - 9, // 8: testpb.ABitOfEverything.struct:type_name -> google.protobuf.Struct - 10, // 9: testpb.ABitOfEverything.bool_value:type_name -> google.protobuf.BoolValue - 11, // 10: testpb.ABitOfEverything.bytes_value:type_name -> google.protobuf.BytesValue - 12, // 11: testpb.ABitOfEverything.int32_value:type_name -> google.protobuf.Int32Value - 13, // 12: testpb.ABitOfEverything.int64_value:type_name -> google.protobuf.Int64Value - 14, // 13: testpb.ABitOfEverything.string_value:type_name -> google.protobuf.StringValue - 15, // 14: testpb.ABitOfEverything.uint32_value:type_name -> google.protobuf.UInt32Value - 16, // 15: testpb.ABitOfEverything.uint64_value:type_name -> google.protobuf.UInt64Value - 17, // 16: testpb.ABitOfEverything.field_mask:type_name -> google.protobuf.FieldMask - 18, // 17: testpb.ABitOfEverything.list_value:type_name -> google.protobuf.ListValue - 19, // 18: testpb.ABitOfEverything.value:type_name -> google.protobuf.Value - 20, // 19: testpb.ABitOfEverything.null_value:type_name -> google.protobuf.NullValue - 21, // 20: testpb.ABitOfEverything.empty:type_name -> google.protobuf.Empty - 21, // [21:21] is the sub-list for method output_type - 21, // [21:21] is the sub-list for method input_type - 21, // [21:21] is the sub-list for extension type_name - 21, // [21:21] is the sub-list for extension extendee - 0, // [0:21] is the sub-list for field type_name + 2, // 0: testpb.ABitOfEverything.message:type_name -> testpb.NestedMessage + 0, // 1: testpb.ABitOfEverything.enum:type_name -> testpb.AnEnum + 3, // 2: testpb.ABitOfEverything.str_map:type_name -> testpb.ABitOfEverything.StrMapEntry + 4, // 3: testpb.ABitOfEverything.any:type_name -> google.protobuf.Any + 5, // 4: testpb.ABitOfEverything.timestamp:type_name -> google.protobuf.Timestamp + 6, // 5: testpb.ABitOfEverything.duration:type_name -> google.protobuf.Duration + 7, // 6: testpb.ABitOfEverything.struct:type_name -> google.protobuf.Struct + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_testpb_test_proto_init() } @@ -703,7 +500,7 @@ func file_testpb_test_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_testpb_test_proto_rawDesc, NumEnums: 1, - NumMessages: 5, + NumMessages: 3, NumExtensions: 0, NumServices: 0, }, diff --git a/codec/aminojson/internal/testpb/test.proto b/codec/aminojson/internal/testpb/test.proto index 09f7878e9aef..6e7c7fe0f0cf 100644 --- a/codec/aminojson/internal/testpb/test.proto +++ b/codec/aminojson/internal/testpb/test.proto @@ -22,8 +22,9 @@ message ABitOfEverything { // map // All keys are converted to strings. map str_map = 3; - map int32_map = 4; - map bool_map = 5; +// not supported by legacy amino +// map int32_map = 4; +// map bool_map = 5; // repeated repeated int32 repeated = 6; @@ -57,25 +58,23 @@ message ABitOfEverything { google.protobuf.Struct struct = 25; - google.protobuf.BoolValue bool_value = 26; - google.protobuf.BytesValue bytes_value = 27; - //google.protobuf.DoubleValue double_value = 28; - //google.protobuf.FloatValue float_value = 29; - google.protobuf.Int32Value int32_value = 30; - google.protobuf.Int64Value int64_value = 31; - google.protobuf.StringValue string_value = 32; - google.protobuf.UInt32Value uint32_value = 33; - google.protobuf.UInt64Value uint64_value = 34; - - google.protobuf.FieldMask field_mask = 35; - - google.protobuf.ListValue list_value = 36; - - google.protobuf.Value value = 37; - - google.protobuf.NullValue null_value = 38; - - google.protobuf.Empty empty = 39; +// TODO +// google.protobuf.BoolValue bool_value = 26; +// google.protobuf.BytesValue bytes_value = 27; +// google.protobuf.DoubleValue double_value = 28; +// google.protobuf.FloatValue float_value = 29; +// google.protobuf.Int32Value int32_value = 30; +// google.protobuf.Int64Value int64_value = 31; +// google.protobuf.StringValue string_value = 32; +// google.protobuf.UInt32Value uint32_value = 33; +// google.protobuf.UInt64Value uint64_value = 34; + + +// google.protobuf.FieldMask field_mask = 35; +// google.protobuf.ListValue list_value = 36; +// google.protobuf.Value value = 37; +// google.protobuf.NullValue null_value = 38; +// google.protobuf.Empty empty = 39; } message NestedMessage { diff --git a/codec/aminojson/marshal_test.go b/codec/aminojson/marshal_test.go index be3f00011c44..aead69c5090f 100644 --- a/codec/aminojson/marshal_test.go +++ b/codec/aminojson/marshal_test.go @@ -7,11 +7,7 @@ import ( "google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/durationpb" - "google.golang.org/protobuf/types/known/emptypb" - "google.golang.org/protobuf/types/known/fieldmaskpb" - "google.golang.org/protobuf/types/known/structpb" "google.golang.org/protobuf/types/known/timestamppb" - "google.golang.org/protobuf/types/known/wrapperspb" "gotest.tools/v3/assert" "gotest.tools/v3/golden" @@ -33,17 +29,17 @@ func TestAminoJSON(t *testing.T) { Enum: testpb.AnEnum_ONE, StrMap: map[string]string{ "foo": "abc", - "bar": "def", - }, - Int32Map: map[int32]string{ - -3: "xyz", - 0: "abc", - 10: "qrs", - }, - BoolMap: map[bool]string{ - true: "T", - false: "F", + // "bar": "def", }, + //Int32Map: map[int32]string{ + // -3: "xyz", + // 0: "abc", + // 10: "qrs", + //}, + //BoolMap: map[bool]string{ + // true: "T", + // false: "F", + //}, Repeated: []int32{3, -7, 2, 6, 4}, Str: `abcxyz"foo"def`, Bool: true, @@ -63,47 +59,48 @@ func TestAminoJSON(t *testing.T) { Any: a, Timestamp: timestamppb.New(time.Date(2022, 1, 1, 12, 31, 0, 0, time.UTC)), Duration: durationpb.New(time.Second * 3000), - Struct: &structpb.Struct{ - Fields: map[string]*structpb.Value{ - "null": structpb.NewNullValue(), - "num": structpb.NewNumberValue(3.76), - "str": structpb.NewStringValue("abc"), - "bool": structpb.NewBoolValue(true), - "nested struct": structpb.NewStructValue(&structpb.Struct{Fields: map[string]*structpb.Value{ - "a": structpb.NewStringValue("abc"), - }}), - "struct list": structpb.NewListValue(&structpb.ListValue{Values: []*structpb.Value{ - structpb.NewStringValue("xyz"), - structpb.NewBoolValue(false), - structpb.NewNumberValue(-9), - }}), - "empty": {}, - }, - }, - BoolValue: &wrapperspb.BoolValue{Value: true}, - BytesValue: &wrapperspb.BytesValue{Value: []byte{0, 1, 2, 3}}, + //Struct: &structpb.Struct{ + // Fields: map[string]*structpb.Value{ + // "null": structpb.NewNullValue(), + // "num": structpb.NewNumberValue(3.76), + // "str": structpb.NewStringValue("abc"), + // "bool": structpb.NewBoolValue(true), + // "nested struct": structpb.NewStructValue(&structpb.Struct{Fields: map[string]*structpb.Value{ + // "a": structpb.NewStringValue("abc"), + // }}), + // "struct list": structpb.NewListValue(&structpb.ListValue{Values: []*structpb.Value{ + // structpb.NewStringValue("xyz"), + // structpb.NewBoolValue(false), + // structpb.NewNumberValue(-9), + // }}), + // "empty": {}, + // }, + //}, + //BoolValue: &wrapperspb.BoolValue{Value: true}, + //BytesValue: &wrapperspb.BytesValue{Value: []byte{0, 1, 2, 3}}, //DoubleValue: &wrapperspb.DoubleValue{Value: 1.324}, //FloatValue: &wrapperspb.FloatValue{Value: -1.0}, - Int32Value: &wrapperspb.Int32Value{Value: 10}, - Int64Value: &wrapperspb.Int64Value{Value: -376923457}, - StringValue: &wrapperspb.StringValue{Value: "gfedcba"}, - Uint32Value: &wrapperspb.UInt32Value{Value: 37492}, - Uint64Value: &wrapperspb.UInt64Value{Value: 1892409137358391}, - FieldMask: &fieldmaskpb.FieldMask{Paths: []string{"a.b", "a.c", "b"}}, - ListValue: &structpb.ListValue{Values: []*structpb.Value{ - structpb.NewNumberValue(1.1), - structpb.NewStringValue("qrs"), - }}, - Value: structpb.NewStringValue("a value"), - NullValue: structpb.NullValue_NULL_VALUE, - Empty: &emptypb.Empty{}, + //Int32Value: &wrapperspb.Int32Value{Value: 10}, + //Int64Value: &wrapperspb.Int64Value{Value: -376923457}, + //StringValue: &wrapperspb.StringValue{Value: "gfedcba"}, + //Uint32Value: &wrapperspb.UInt32Value{Value: 37492}, + //Uint64Value: &wrapperspb.UInt64Value{Value: 1892409137358391}, + //FieldMask: &fieldmaskpb.FieldMask{Paths: []string{"a.b", "a.c", "b"}}, + //ListValue: &structpb.ListValue{Values: []*structpb.Value{ + // structpb.NewNumberValue(1.1), + // structpb.NewStringValue("qrs"), + //}}, + //Value: structpb.NewStringValue("a value"), + //NullValue: structpb.NullValue_NULL_VALUE, + //Empty: &emptypb.Empty{}, } bz, err := aminojson.MarshalAmino(msg) assert.NilError(t, err) cdc := amino.NewCodec() legacyBz, err := cdc.MarshalJSON(msg) - golden.Assert(t, string(legacyBz), "example1.json") - golden.Assert(t, string(bz), "example1.json") + assert.NilError(t, err) + golden.Assert(t, string(legacyBz), "legacyamino.json") + golden.Assert(t, string(bz), "legacyamino.json") } /* diff --git a/codec/aminojson/testdata/example1.json b/codec/aminojson/testdata/example1.json deleted file mode 100644 index 157a92d92e8d..000000000000 --- a/codec/aminojson/testdata/example1.json +++ /dev/null @@ -1 +0,0 @@ -{"message":{"foo":"test"},"enum":"ONE","str_map":{"foo":"abc","bar":"def"},"int32_map":{"10":"qrs","-3":"xyz","0":"abc"},"bool_map":{"true":"T","false":"F"},"repeated":[3,-7,2,6,4],"str":"abcxyz\"foo\"def","bool":true,"bytes":"AAECAw==","i32":-15,"f32":1001,"u32":1200,"si32":-376,"sf32":-1000,"i64":"14578294827584932","f64":"9572348124213523654","u64":"4759492485","si64":"-59268425823934","sf64":"-659101379604211154","float":1,"double":5235.2941,"any":{"@type_url":"type.googleapis.com/testpb.ABitOfEverything","str":"abc","i32":10},"timestamp":"2022-01-01T12:31:00Z","duration":"3000s","struct":{"bool":true,"empty":null,"nested struct":{"a":"abc"},"null":null,"num":3.76,"str":"abc","struct list":["xyz",false,-9]},"bool_value":true,"bytes_value":"AAECAw==","double_value":1.324,"float_value":-1,"int32_value":10,"int64_value":"-376923457","string_value":"gfedcba","uint32_value":37492,"uint64_value":"1892409137358391","field_mask":"a.b,a.c,b","list_value":[1.1,"qrs"],"value":"a value","empty":{}} \ No newline at end of file diff --git a/codec/aminojson/testdata/legacyamino.json b/codec/aminojson/testdata/legacyamino.json new file mode 100644 index 000000000000..941f999ebd57 --- /dev/null +++ b/codec/aminojson/testdata/legacyamino.json @@ -0,0 +1 @@ +{"message":{"foo":"test"},"enum":1,"str_map":{"foo":"abc"},"repeated":[3,-7,2,6,4],"str":"abcxyz\"foo\"def","bool":true,"bytes":"AAECAw==","i32":-15,"f32":1001,"u32":1200,"si32":-376,"sf32":-1000,"i64":"14578294827584932","f64":"9572348124213523654","u64":"4759492485","si64":"-59268425823934","sf64":"-659101379604211154","any":{"type_url":"type.googleapis.com/testpb.ABitOfEverything","value":"OgNhYmNQCg=="},"timestamp":{"seconds":"1641040260"},"duration":{"seconds":"3000"}} \ No newline at end of file diff --git a/codec/aminojson/testdata/stablejson.json b/codec/aminojson/testdata/stablejson.json new file mode 100644 index 000000000000..e69de29bb2d1 From ebec2a7c3471216e86d31684d59f9909f4362d6e Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sun, 29 Jan 2023 18:06:43 -0500 Subject: [PATCH 007/122] structurally sound, just handing marshal cases --- codec/aminojson/JSONMarshaller.go | 207 ++++++++++++++++++++- codec/aminojson/README.md | 5 +- codec/aminojson/internal/testpb/test.proto | 19 -- codec/aminojson/marshal_test.go | 13 +- codec/aminojson/testdata/legacyamino.json | 2 +- 5 files changed, 218 insertions(+), 28 deletions(-) diff --git a/codec/aminojson/JSONMarshaller.go b/codec/aminojson/JSONMarshaller.go index 6fac0a3b3aad..5f2112014f57 100644 --- a/codec/aminojson/JSONMarshaller.go +++ b/codec/aminojson/JSONMarshaller.go @@ -2,14 +2,217 @@ package aminojson import ( "bytes" - "github.com/cosmos/gogoproto/proto" + "encoding/json" + "fmt" + "github.com/pkg/errors" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" + "io" ) type JSONMarshaller interface { MarshalAmino(proto.Message) ([]byte, error) } +type AminoJson struct{} + func MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} - return buf.Bytes(), nil + vmsg := protoreflect.ValueOfMessage(message.ProtoReflect()) + err := AminoJson{}.marshalMessage(vmsg, nil, buf) + return buf.Bytes(), err } + +func (aj AminoJson) marshalMessage( + value protoreflect.Value, + field protoreflect.FieldDescriptor, + writer io.Writer) error { + //switch message.Descriptor().FullName() { + //case timestampFullName: + // return marshalTimestamp(writer, message) + //case durationFullName: + // return marshalDuration(writer, message) + //} + + //fmt.Printf("value: %v\n", value) + + switch typedValue := value.Interface().(type) { + case protoreflect.Message: + msg := typedValue + //fmt.Printf("message: %s\n", msg.Descriptor().FullName()) + switch msg.Descriptor().FullName() { + case anyFullName: + fmt.Println("any") + return aj.marshalAny(msg, writer) + } + + fields := msg.Descriptor().Fields() + first := true + for i := 0; i < fields.Len(); i++ { + f := fields.Get(i) + if !msg.Has(f) { + continue + } + + v := msg.Get(f) + //fmt.Printf("field: %s, value: %v\n", f.FullName(), v) + + if first { + _, err := writer.Write([]byte("{")) + if err != nil { + return err + } + } + + if !first { + _, err := writer.Write([]byte(",")) + if err != nil { + return err + } + } + + err := invokeStdlibJSONMarshal(writer, f.Name()) + if err != nil { + return err + } + + _, err = writer.Write([]byte(":")) + if err != nil { + return err + } + + err = aj.marshalMessage(v, f, writer) + if err != nil { + return err + } + + if i == fields.Len()-1 { + + } + + first = false + } + + _, err := writer.Write([]byte("}")) + if err != nil { + return err + } + return nil + + case protoreflect.EnumNumber: + return aj.marshalEnum(field, typedValue, writer) + case string, bool, int32, uint32: + return invokeStdlibJSONMarshal(writer, typedValue) + } + //fmt.Printf("marshal field: %s, value: %v\n", field.FullName(), value) + + return nil +} + +func invokeStdlibJSONMarshal(w io.Writer, v interface{}) error { + // Note: Please don't stream out the output because that adds a newline + // using json.NewEncoder(w).Encode(data) + // as per https://golang.org/pkg/encoding/json/#Encoder.Encode + blob, err := json.Marshal(v) + if err != nil { + return err + } + _, err = w.Write(blob) + return err +} + +func (aj AminoJson) marshalAny(message protoreflect.Message, writer io.Writer) error { + fields := message.Descriptor().Fields() + typeUrlField := fields.ByName(typeUrlName) + if typeUrlField == nil { + return fmt.Errorf("expected type_url field") + } + + //_, err := writer.Write([]byte("{")) + //if err != nil { + // return err + //} + + typeUrl := message.Get(typeUrlField).String() + // TODO + // do we need an resolver other than protoregistry.GlobalTypes? + resolver := protoregistry.GlobalTypes + + typ, err := resolver.FindMessageByURL(typeUrl) + if err != nil { + return errors.Wrapf(err, "can't resolve type URL %s", typeUrl) + } + + _, err = fmt.Fprintf(writer, `"@type_url":%q`, typeUrl) + if err != nil { + return err + } + + valueField := fields.ByName(valueName) + if valueField == nil { + return fmt.Errorf("expected value field") + } + + valueBz := message.Get(valueField).Bytes() + + valueMsg := typ.New() + err = proto.Unmarshal(valueBz, valueMsg.Interface()) + if err != nil { + return err + } + + return aj.marshalMessage(protoreflect.ValueOfMessage(valueMsg), nil, writer) + + //err = aj.marshalMessageFields(valueMsg, writer, false) + //if err != nil { + // return err + //} + // + //_, err = writer.Write([]byte("}")) + //return err +} + +func (aj AminoJson) marshalEnum( + fieldDescriptor protoreflect.FieldDescriptor, + value protoreflect.EnumNumber, + writer io.Writer) error { + enumDescriptor := fieldDescriptor.Enum() + if enumDescriptor == nil { + return fmt.Errorf("expected enum descriptor for %s", fieldDescriptor.FullName()) + } + + enumValueDescriptor := enumDescriptor.Values().ByNumber(value) + var err error + if enumValueDescriptor != nil { + _, err = fmt.Fprintf(writer, "%q", enumValueDescriptor.Name()) + } else { + _, err = fmt.Fprintf(writer, "%d", value) + } + return err +} + +const ( + // type names + timestampFullName protoreflect.FullName = "google.protobuf.Timestamp" + durationFullName = "google.protobuf.Duration" + structFullName = "google.protobuf.Struct" + valueFullName = "google.protobuf.Value" + listValueFullName = "google.protobuf.ListValue" + nullValueFullName = "google.protobuf.NullValue" + boolValueFullName = "google.protobuf.BoolValue" + stringValueFullName = "google.protobuf.StringValue" + bytesValueFullName = "google.protobuf.BytesValue" + int32ValueFullName = "google.protobuf.Int32Value" + int64ValueFullName = "google.protobuf.Int64Value" + uint32ValueFullName = "google.protobuf.UInt32Value" + uint64ValueFullName = "google.protobuf.UInt64Value" + floatValueFullName = "google.protobuf.FloatValue" + doubleValueFullName = "google.protobuf.DoubleValue" + fieldMaskFullName = "google.protobuf.FieldMask" + anyFullName = "google.protobuf.Any" + + // field names + typeUrlName protoreflect.Name = "type_url" + valueName protoreflect.Name = "value" +) diff --git a/codec/aminojson/README.md b/codec/aminojson/README.md index afc041cae3e8..dfd73e545390 100644 --- a/codec/aminojson/README.md +++ b/codec/aminojson/README.md @@ -13,7 +13,8 @@ look to `std.RegisterLegacyAminoCodec(amino)` for current usages and registratio amino map serialization is non-deterministic - structurally follow legacy amino json encoding -- refer to stablejson for protoreflect details on golang reflect -> protoreflect +- refer to stablejson for protoreflect details translating golang reflect -> protoreflect - add special casing custom encoders (including tests) - add rapid tests -- refactor for readability. not really convinced stablejson is anymore readable than amino json yet \ No newline at end of file +- refactor for readability. not really convinced stablejson is anymore readable than amino json yet +- check timestamp special casing is equivalent \ No newline at end of file diff --git a/codec/aminojson/internal/testpb/test.proto b/codec/aminojson/internal/testpb/test.proto index 6e7c7fe0f0cf..787850d4ef2f 100644 --- a/codec/aminojson/internal/testpb/test.proto +++ b/codec/aminojson/internal/testpb/test.proto @@ -11,36 +11,20 @@ import "google/protobuf/field_mask.proto"; import "google/protobuf/empty.proto"; message ABitOfEverything { - // message - // Generates JSON objects. Message field names are mapped to lowerCamelCase and become JSON object keys. If the json_name field option is specified, the specified value will be used as the key instead. Parsers accept both the lowerCamelCase name (or the one specified by the json_name option) and the original proto field name. null is an accepted value for all field types and treated as the default value of the corresponding field type. NestedMessage message = 1; - - // enum - // The name of the enum value as specified in proto is used. Parsers accept both enum names and integer values. AnEnum enum = 2; - - // map - // All keys are converted to strings. map str_map = 3; -// not supported by legacy amino -// map int32_map = 4; -// map bool_map = 5; - // repeated repeated int32 repeated = 6; string str = 7; - bool bool = 8; - bytes bytes = 9; - int32 i32 = 10; fixed32 f32 = 11; uint32 u32 = 12; sint32 si32 = 13; sfixed32 sf32 = 14; - int64 i64 = 15; fixed64 f64 = 16; uint64 u64 = 17; @@ -51,11 +35,8 @@ message ABitOfEverything { //double double = 21; google.protobuf.Any any = 22; - google.protobuf.Timestamp timestamp = 23; - google.protobuf.Duration duration = 24; - google.protobuf.Struct struct = 25; // TODO diff --git a/codec/aminojson/marshal_test.go b/codec/aminojson/marshal_test.go index aead69c5090f..38d1c2bcbcfc 100644 --- a/codec/aminojson/marshal_test.go +++ b/codec/aminojson/marshal_test.go @@ -1,6 +1,7 @@ package aminojson_test import ( + "github.com/cosmos/cosmos-sdk/codec/aminojson" "github.com/tendermint/go-amino" "testing" "time" @@ -11,15 +12,19 @@ import ( "gotest.tools/v3/assert" "gotest.tools/v3/golden" - "github.com/cosmos/cosmos-sdk/codec/aminojson" "github.com/cosmos/cosmos-sdk/codec/aminojson/internal/testpb" ) func TestAminoJSON(t *testing.T) { - a, err := anypb.New(&testpb.ABitOfEverything{ - I32: 10, - Str: "abc", + //a, err := anypb.New(&testpb.ABitOfEverything{ + // I32: 10, + // Str: "string in an any type", + //}) + a, err := anypb.New(&testpb.NestedMessage{ + Foo: "any type nested", + Bar: 11, }) + assert.NilError(t, err) msg := &testpb.ABitOfEverything{ Message: &testpb.NestedMessage{ diff --git a/codec/aminojson/testdata/legacyamino.json b/codec/aminojson/testdata/legacyamino.json index 941f999ebd57..155247411bbe 100644 --- a/codec/aminojson/testdata/legacyamino.json +++ b/codec/aminojson/testdata/legacyamino.json @@ -1 +1 @@ -{"message":{"foo":"test"},"enum":1,"str_map":{"foo":"abc"},"repeated":[3,-7,2,6,4],"str":"abcxyz\"foo\"def","bool":true,"bytes":"AAECAw==","i32":-15,"f32":1001,"u32":1200,"si32":-376,"sf32":-1000,"i64":"14578294827584932","f64":"9572348124213523654","u64":"4759492485","si64":"-59268425823934","sf64":"-659101379604211154","any":{"type_url":"type.googleapis.com/testpb.ABitOfEverything","value":"OgNhYmNQCg=="},"timestamp":{"seconds":"1641040260"},"duration":{"seconds":"3000"}} \ No newline at end of file +{"message":{"foo":"test"},"enum":1,"str_map":{"foo":"abc"},"repeated":[3,-7,2,6,4],"str":"abcxyz\"foo\"def","bool":true,"bytes":"AAECAw==","i32":-15,"f32":1001,"u32":1200,"si32":-376,"sf32":-1000,"i64":"14578294827584932","f64":"9572348124213523654","u64":"4759492485","si64":"-59268425823934","sf64":"-659101379604211154","any":{"type_url":"type.googleapis.com/testpb.NestedMessage","value":"Cg9hbnkgdHlwZSBuZXN0ZWQQCw=="},"timestamp":{"seconds":"1641040260"},"duration":{"seconds":"3000"}} \ No newline at end of file From 6c6d4fed07273cd83cde18a4d26aed6e919b05d6 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sun, 29 Jan 2023 18:42:28 -0500 Subject: [PATCH 008/122] Turning out pretty well --- codec/aminojson/JSONMarshaller.go | 190 ++++++++++++++++++++---------- 1 file changed, 128 insertions(+), 62 deletions(-) diff --git a/codec/aminojson/JSONMarshaller.go b/codec/aminojson/JSONMarshaller.go index 5f2112014f57..bef2f3927956 100644 --- a/codec/aminojson/JSONMarshaller.go +++ b/codec/aminojson/JSONMarshaller.go @@ -2,6 +2,7 @@ package aminojson import ( "bytes" + "encoding/base64" "encoding/json" "fmt" "github.com/pkg/errors" @@ -20,11 +21,11 @@ type AminoJson struct{} func MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} vmsg := protoreflect.ValueOfMessage(message.ProtoReflect()) - err := AminoJson{}.marshalMessage(vmsg, nil, buf) + err := AminoJson{}.marshal(vmsg, nil, buf) return buf.Bytes(), err } -func (aj AminoJson) marshalMessage( +func (aj AminoJson) marshal( value protoreflect.Value, field protoreflect.FieldDescriptor, writer io.Writer) error { @@ -39,81 +40,86 @@ func (aj AminoJson) marshalMessage( switch typedValue := value.Interface().(type) { case protoreflect.Message: - msg := typedValue - //fmt.Printf("message: %s\n", msg.Descriptor().FullName()) - switch msg.Descriptor().FullName() { - case anyFullName: - fmt.Println("any") - return aj.marshalAny(msg, writer) - } + return aj.marshalMessage(typedValue, writer) - fields := msg.Descriptor().Fields() - first := true - for i := 0; i < fields.Len(); i++ { - f := fields.Get(i) - if !msg.Has(f) { - continue - } + case string, bool, int32, uint32, protoreflect.EnumNumber: + return invokeStdlibJSONMarshal(writer, typedValue) - v := msg.Get(f) - //fmt.Printf("field: %s, value: %v\n", f.FullName(), v) + case protoreflect.Map: + return aj.marshalMap(field, typedValue, writer) - if first { - _, err := writer.Write([]byte("{")) - if err != nil { - return err - } - } + case protoreflect.List: + return aj.marshalList(field, typedValue, writer) - if !first { - _, err := writer.Write([]byte(",")) - if err != nil { - return err - } - } + case []byte: + _, err := fmt.Fprintf(writer, `"%s"`, + base64.StdEncoding.EncodeToString([]byte(typedValue))) + return err + } + //fmt.Printf("marshal field: %s, value: %v\n", field.FullName(), value) - err := invokeStdlibJSONMarshal(writer, f.Name()) - if err != nil { - return err - } + return nil +} + +func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) error { + //fmt.Printf("message: %s\n", msg.Descriptor().FullName()) + switch msg.Descriptor().FullName() { + case anyFullName: + fmt.Println("any") + return aj.marshalAny(msg, writer) + } + + fields := msg.Descriptor().Fields() + first := true + for i := 0; i < fields.Len(); i++ { + f := fields.Get(i) + if !msg.Has(f) { + continue + } + + v := msg.Get(f) + //fmt.Printf("field: %s, value: %v\n", f.FullName(), v) - _, err = writer.Write([]byte(":")) + if first { + _, err := writer.Write([]byte("{")) if err != nil { return err } + } - err = aj.marshalMessage(v, f, writer) + if !first { + _, err := writer.Write([]byte(",")) if err != nil { return err } + } - if i == fields.Len()-1 { - - } + err := invokeStdlibJSONMarshal(writer, f.Name()) + if err != nil { + return err + } - first = false + _, err = writer.Write([]byte(":")) + if err != nil { + return err } - _, err := writer.Write([]byte("}")) + err = aj.marshal(v, f, writer) if err != nil { return err } - return nil - case protoreflect.EnumNumber: - return aj.marshalEnum(field, typedValue, writer) - case string, bool, int32, uint32: - return invokeStdlibJSONMarshal(writer, typedValue) + first = false } - //fmt.Printf("marshal field: %s, value: %v\n", field.FullName(), value) + _, err := writer.Write([]byte("}")) + if err != nil { + return err + } return nil } func invokeStdlibJSONMarshal(w io.Writer, v interface{}) error { - // Note: Please don't stream out the output because that adds a newline - // using json.NewEncoder(w).Encode(data) - // as per https://golang.org/pkg/encoding/json/#Encoder.Encode blob, err := json.Marshal(v) if err != nil { return err @@ -162,7 +168,7 @@ func (aj AminoJson) marshalAny(message protoreflect.Message, writer io.Writer) e return err } - return aj.marshalMessage(protoreflect.ValueOfMessage(valueMsg), nil, writer) + return aj.marshal(protoreflect.ValueOfMessage(valueMsg), nil, writer) //err = aj.marshalMessageFields(valueMsg, writer, false) //if err != nil { @@ -173,22 +179,82 @@ func (aj AminoJson) marshalAny(message protoreflect.Message, writer io.Writer) e //return err } -func (aj AminoJson) marshalEnum( +func (aj AminoJson) marshalMap( + fieldDescriptor protoreflect.FieldDescriptor, + value protoreflect.Map, + writer io.Writer) error { + _, err := writer.Write([]byte("{")) + if err != nil { + return err + } + + allKeys := make([]protoreflect.MapKey, 0, value.Len()) + value.Range(func(key protoreflect.MapKey, _ protoreflect.Value) bool { + allKeys = append(allKeys, key) + return true + }) + + // TODO sort + // TODO fail if key type is not string + + valueField := fieldDescriptor.MapValue() + first := true + for _, key := range allKeys { + if !first { + _, err = writer.Write([]byte(",")) + if err != nil { + return err + } + } + first = false + + err = invokeStdlibJSONMarshal(writer, key.String()) + if err != nil { + return err + } + + _, err = writer.Write([]byte(":")) + if err != nil { + return err + } + + err = aj.marshal(value.Get(key), valueField, writer) + if err != nil { + return err + } + } + + _, err = writer.Write([]byte("}")) + return err +} + +func (aj AminoJson) marshalList( fieldDescriptor protoreflect.FieldDescriptor, - value protoreflect.EnumNumber, + list protoreflect.List, writer io.Writer) error { - enumDescriptor := fieldDescriptor.Enum() - if enumDescriptor == nil { - return fmt.Errorf("expected enum descriptor for %s", fieldDescriptor.FullName()) + n := list.Len() + _, err := writer.Write([]byte("[")) + if err != nil { + return err } - enumValueDescriptor := enumDescriptor.Values().ByNumber(value) - var err error - if enumValueDescriptor != nil { - _, err = fmt.Fprintf(writer, "%q", enumValueDescriptor.Name()) - } else { - _, err = fmt.Fprintf(writer, "%d", value) + first := true + for i := 0; i < n; i++ { + if !first { + _, err := writer.Write([]byte(",")) + if err != nil { + return err + } + } + first = false + + err = aj.marshal(list.Get(i), fieldDescriptor, writer) + if err != nil { + return err + } } + + _, err = writer.Write([]byte("]")) return err } From a222053fd752ca321f884a46cb62e9d598518a39 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sun, 29 Jan 2023 21:21:55 -0500 Subject: [PATCH 009/122] initial test is now passing --- codec/aminojson/JSONMarshaller.go | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/codec/aminojson/JSONMarshaller.go b/codec/aminojson/JSONMarshaller.go index bef2f3927956..9030503fafb9 100644 --- a/codec/aminojson/JSONMarshaller.go +++ b/codec/aminojson/JSONMarshaller.go @@ -45,6 +45,10 @@ func (aj AminoJson) marshal( case string, bool, int32, uint32, protoreflect.EnumNumber: return invokeStdlibJSONMarshal(writer, typedValue) + case uint64, int64: + _, err := fmt.Fprintf(writer, `"%d"`, typedValue) // quoted + return err + case protoreflect.Map: return aj.marshalMap(field, typedValue, writer) @@ -62,12 +66,15 @@ func (aj AminoJson) marshal( } func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) error { - //fmt.Printf("message: %s\n", msg.Descriptor().FullName()) - switch msg.Descriptor().FullName() { - case anyFullName: - fmt.Println("any") - return aj.marshalAny(msg, writer) - } + + // TODO + // Am I tracking this legacy amino coded behavior correctly? + // + //switch msg.Descriptor().FullName() { + //case anyFullName: + // fmt.Println("any") + // return aj.marshalAny(msg, writer) + //} fields := msg.Descriptor().Fields() first := true From 9412ed05a15bf5ae38c03b9931748eac16ecc65b Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sun, 29 Jan 2023 21:54:46 -0500 Subject: [PATCH 010/122] some rapid tests failing --- codec/aminojson/JSONMarshaller.go | 14 +- codec/aminojson/marshal_test.go | 38 +-- .../TestRapid-20230129215332-7072.fail | 31 +++ testutil/rapidproto/rapidproto.go | 228 ++++++++++++++++++ 4 files changed, 278 insertions(+), 33 deletions(-) create mode 100644 codec/aminojson/testdata/rapid/TestRapid/TestRapid-20230129215332-7072.fail create mode 100644 testutil/rapidproto/rapidproto.go diff --git a/codec/aminojson/JSONMarshaller.go b/codec/aminojson/JSONMarshaller.go index 9030503fafb9..0bb179143948 100644 --- a/codec/aminojson/JSONMarshaller.go +++ b/codec/aminojson/JSONMarshaller.go @@ -76,6 +76,11 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e // return aj.marshalAny(msg, writer) //} + _, err := writer.Write([]byte("{")) + if err != nil { + return err + } + fields := msg.Descriptor().Fields() first := true for i := 0; i < fields.Len(); i++ { @@ -87,13 +92,6 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e v := msg.Get(f) //fmt.Printf("field: %s, value: %v\n", f.FullName(), v) - if first { - _, err := writer.Write([]byte("{")) - if err != nil { - return err - } - } - if !first { _, err := writer.Write([]byte(",")) if err != nil { @@ -119,7 +117,7 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e first = false } - _, err := writer.Write([]byte("}")) + _, err = writer.Write([]byte("}")) if err != nil { return err } diff --git a/codec/aminojson/marshal_test.go b/codec/aminojson/marshal_test.go index 38d1c2bcbcfc..15e5409933b3 100644 --- a/codec/aminojson/marshal_test.go +++ b/codec/aminojson/marshal_test.go @@ -2,7 +2,11 @@ package aminojson_test import ( "github.com/cosmos/cosmos-sdk/codec/aminojson" + "github.com/cosmos/cosmos-sdk/testutil/rapidproto" "github.com/tendermint/go-amino" + "google.golang.org/protobuf/encoding/protojson" + "google.golang.org/protobuf/proto" + "pgregory.net/rapid" "testing" "time" @@ -15,6 +19,13 @@ import ( "github.com/cosmos/cosmos-sdk/codec/aminojson/internal/testpb" ) +func TestAminonJSON_Empty(t *testing.T) { + msg := &testpb.ABitOfEverything{} + bz, err := aminojson.MarshalAmino(msg) + assert.NilError(t, err) + assert.Equal(t, "{}", string(bz)) +} + func TestAminoJSON(t *testing.T) { //a, err := anypb.New(&testpb.ABitOfEverything{ // I32: 10, @@ -108,12 +119,11 @@ func TestAminoJSON(t *testing.T) { golden.Assert(t, string(bz), "legacyamino.json") } -/* func TestRapid(t *testing.T) { gen := rapidproto.MessageGenerator(&testpb.ABitOfEverything{}, rapidproto.GeneratorOptions{}) rapid.Check(t, func(t *rapid.T) { msg := gen.Draw(t, "msg") - bz, err := aminojson.Marshal(msg) + bz, err := aminojson.MarshalAmino(msg) assert.NilError(t, err) checkInvariants(t, msg, bz) }) @@ -121,7 +131,7 @@ func TestRapid(t *testing.T) { func checkInvariants(t *rapid.T, message proto.Message, marshaledBytes []byte) { checkRoundTrip(t, message, marshaledBytes) - checkJsonNoWhitespace(t, marshaledBytes) + // checkJsonNoWhitespace(t, marshaledBytes) } func checkRoundTrip(t *rapid.T, message proto.Message, marshaledBytes []byte) { @@ -131,25 +141,3 @@ func checkRoundTrip(t *rapid.T, message proto.Message, marshaledBytes []byte) { assert.NilError(t, protojson.UnmarshalOptions{}.Unmarshal(marshaledBytes, message2), "%s vs %s", string(marshaledBytes), string(goProtoJson)) // TODO: assert.DeepEqual(t, message, message2, protocmp.Transform()) } - -func checkJsonInvariants(t *testing.T, message proto.Message, unmarshaledJson map[string]interface{}) { -} - -func checkJsonNoWhitespace(t *rapid.T, marshaledBytes []byte) { -} - -func checkJsonFieldsOrdered(t *testing.T, message proto.Message, unmarshaledJson map[string]interface{}) { -} - -func checkJsonMapsOrdered(t *testing.T, message proto.Message, unmarshaledJson map[string]interface{}) { -} - -func checkJsonStringMapsOrdered(t *testing.T, message proto.Message, unmarshaledJson map[string]interface{}) { -} - -func checkJsonNumericMapsOrdered(t *testing.T, message proto.Message, unmarshaledJson map[string]interface{}) { -} - -func checkJsonBoolMapsOrdered(t *testing.T, message proto.Message, unmarshaledJson map[string]interface{}) { -} -*/ diff --git a/codec/aminojson/testdata/rapid/TestRapid/TestRapid-20230129215332-7072.fail b/codec/aminojson/testdata/rapid/TestRapid/TestRapid-20230129215332-7072.fail new file mode 100644 index 000000000000..faf0cfdfe034 --- /dev/null +++ b/codec/aminojson/testdata/rapid/TestRapid/TestRapid-20230129215332-7072.fail @@ -0,0 +1,31 @@ +# 2023/01/29 21:53:32 TestRapid [rapid] draw msg: &testpb.ABitOfEverything{state:impl.MessageState{NoUnkeyedLiterals:pragma.NoUnkeyedLiterals{}, DoNotCompare:pragma.DoNotCompare{}, DoNotCopy:pragma.DoNotCopy{}, atomicMessageInfo:(*impl.MessageInfo)(0xc0003e2400)}, sizeCache:0, unknownFields:[]uint8(nil), Message:(*testpb.NestedMessage)(nil), Enum:0, StrMap:map[string]string(nil), Repeated:[]int32(nil), Str:"", Bool:false, Bytes:[]uint8(nil), I32:0, F32:0x0, U32:0x0, Si32:0, Sf32:0, I64:0, F64:0x0, U64:0x0, Si64:0, Sf64:0, Any:(*anypb.Any)(nil), Timestamp:(*timestamppb.Timestamp)(nil), Duration:(*durationpb.Duration)(0xc000035c40), Struct:(*structpb.Struct)(nil)} +# 2023/01/29 21:53:32 TestRapid assertion failed: error is not nil: proto: syntax error (line 1:13): unexpected token {: {"duration":{}} vs {"duration":"0s"} +# +v0.4.8#14813563064788813243 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x1 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 +0x0 \ No newline at end of file diff --git a/testutil/rapidproto/rapidproto.go b/testutil/rapidproto/rapidproto.go new file mode 100644 index 000000000000..c94ce9e2bf6f --- /dev/null +++ b/testutil/rapidproto/rapidproto.go @@ -0,0 +1,228 @@ +package rapidproto + +import ( + "fmt" + + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" + "gotest.tools/v3/assert" + "pgregory.net/rapid" +) + +func MessageGenerator[T proto.Message](x T, options GeneratorOptions) *rapid.Generator[T] { + msgType := x.ProtoReflect().Type() + return rapid.Custom(func(t *rapid.T) T { + msg := msgType.New() + + options.setFields(t, msg, 0) + + return msg.Interface().(T) + }) +} + +type GeneratorOptions struct { + AnyTypeURLs []string + Resolver protoregistry.MessageTypeResolver +} + +const depthLimit = 10 + +func (opts GeneratorOptions) setFields(t *rapid.T, msg protoreflect.Message, depth int) bool { + // to avoid stack overflow we limit the depth of nested messages + if depth > depthLimit { + return false + } + + descriptor := msg.Descriptor() + fullName := descriptor.FullName() + switch fullName { + case timestampFullName: + opts.genTimestamp(t, msg) + return true + case durationFullName: + opts.genDuration(t, msg) + return true + case anyFullName: + return opts.genAny(t, msg, depth) + case fieldMaskFullName: + opts.genFieldMask(t, msg) + return true + default: + fields := descriptor.Fields() + n := fields.Len() + for i := 0; i < n; i++ { + field := fields.Get(i) + if !rapid.Bool().Draw(t, fmt.Sprintf("gen-%s", field.Name())) { + continue + } + + opts.setFieldValue(t, msg, field, depth) + } + return true + } +} + +const ( + timestampFullName protoreflect.FullName = "google.protobuf.Timestamp" + durationFullName = "google.protobuf.Duration" + anyFullName = "google.protobuf.Any" + fieldMaskFullName = "google.protobuf.FieldMask" +) + +func (opts GeneratorOptions) setFieldValue(t *rapid.T, msg protoreflect.Message, field protoreflect.FieldDescriptor, depth int) { + name := string(field.Name()) + kind := field.Kind() + + if field.IsList() { + + list := msg.Mutable(field).List() + n := rapid.IntRange(0, 10).Draw(t, fmt.Sprintf("%sN", name)) + for i := 0; i < n; i++ { + if kind == protoreflect.MessageKind || kind == protoreflect.GroupKind { + if !opts.setFields(t, list.AppendMutable().Message(), depth+1) { + list.Truncate(i) + } + } else { + list.Append(opts.genScalarFieldValue(t, field, fmt.Sprintf("%s%d", name, i))) + } + } + + } else if field.IsMap() { + + m := msg.Mutable(field).Map() + n := rapid.IntRange(0, 10).Draw(t, fmt.Sprintf("%sN", name)) + for i := 0; i < n; i++ { + keyField := field.MapKey() + valueField := field.MapValue() + valueKind := valueField.Kind() + key := opts.genScalarFieldValue(t, keyField, fmt.Sprintf("%s%d-key", name, i)) + if valueKind == protoreflect.MessageKind || valueKind == protoreflect.GroupKind { + if !opts.setFields(t, m.Mutable(key.MapKey()).Message(), depth+1) { + m.Clear(key.MapKey()) + } + } else { + value := opts.genScalarFieldValue(t, valueField, fmt.Sprintf("%s%d-key", name, i)) + m.Set(key.MapKey(), value) + } + } + + } else { + + if kind == protoreflect.MessageKind || kind == protoreflect.GroupKind { + if !opts.setFields(t, msg.Mutable(field).Message(), depth+1) { + msg.Clear(field) + } + } else { + msg.Set(field, opts.genScalarFieldValue(t, field, name)) + } + + } +} + +func (opts GeneratorOptions) genScalarFieldValue(t *rapid.T, field protoreflect.FieldDescriptor, name string) protoreflect.Value { + switch field.Kind() { + case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: + return protoreflect.ValueOfInt32(rapid.Int32().Draw(t, name)) + case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: + return protoreflect.ValueOfUint32(rapid.Uint32().Draw(t, name)) + case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: + return protoreflect.ValueOfInt64(rapid.Int64().Draw(t, name)) + case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: + return protoreflect.ValueOfUint64(rapid.Uint64().Draw(t, name)) + case protoreflect.BoolKind: + return protoreflect.ValueOfBool(rapid.Bool().Draw(t, name)) + case protoreflect.BytesKind: + return protoreflect.ValueOfBytes(rapid.SliceOf(rapid.Byte()).Draw(t, name)) + case protoreflect.FloatKind: + return protoreflect.ValueOfFloat32(rapid.Float32().Draw(t, name)) + case protoreflect.DoubleKind: + return protoreflect.ValueOfFloat64(rapid.Float64().Draw(t, name)) + case protoreflect.EnumKind: + enumValues := field.Enum().Values() + val := rapid.Int32Range(0, int32(enumValues.Len()-1)).Draw(t, name) + return protoreflect.ValueOfEnum(protoreflect.EnumNumber(val)) + case protoreflect.StringKind: + return protoreflect.ValueOfString(rapid.String().Draw(t, name)) + default: + t.Fatalf("unexpected %v", field) + return protoreflect.Value{} + } +} + +const ( + secondsName protoreflect.Name = "seconds" + nanosName = "nanos" +) + +func (opts GeneratorOptions) genTimestamp(t *rapid.T, msg protoreflect.Message) { + seconds := rapid.Int64Range(-9999999999, 9999999999).Draw(t, "seconds") + nanos := rapid.Int32Range(0, 999999999).Draw(t, "nanos") + setSecondsNanosFields(t, msg, seconds, nanos) +} + +func (opts GeneratorOptions) genDuration(t *rapid.T, msg protoreflect.Message) { + seconds := rapid.Int64Range(0, 315576000000).Draw(t, "seconds") + nanos := rapid.Int32Range(0, 999999999).Draw(t, "nanos") + setSecondsNanosFields(t, msg, seconds, nanos) +} + +func setSecondsNanosFields(t *rapid.T, message protoreflect.Message, seconds int64, nanos int32) { + fields := message.Descriptor().Fields() + + secondsField := fields.ByName(secondsName) + assert.Assert(t, secondsField != nil) + message.Set(secondsField, protoreflect.ValueOfInt64(seconds)) + + nanosField := fields.ByName(nanosName) + assert.Assert(t, nanosField != nil) + message.Set(nanosField, protoreflect.ValueOfInt32(nanos)) + + return +} + +const ( + typeUrlName = "type_url" + valueName = "value" +) + +func (opts GeneratorOptions) genAny(t *rapid.T, msg protoreflect.Message, depth int) bool { + if len(opts.AnyTypeURLs) == 0 { + return false + } + + fields := msg.Descriptor().Fields() + + typeUrl := rapid.SampledFrom(opts.AnyTypeURLs).Draw(t, "type_url") + typ, err := opts.Resolver.FindMessageByURL(typeUrl) + assert.NilError(t, err) + + typeUrlField := fields.ByName(typeUrlName) + assert.Assert(t, typeUrlField != nil) + msg.Set(typeUrlField, protoreflect.ValueOfString(typeUrl)) + + valueMsg := typ.New() + opts.setFields(t, valueMsg, depth+1) + valueBz, err := proto.Marshal(valueMsg.Interface()) + assert.NilError(t, err) + + valueField := fields.ByName(valueName) + assert.Assert(t, valueField != nil) + msg.Set(valueField, protoreflect.ValueOfBytes(valueBz)) + + return true +} + +const ( + pathsName = "paths" +) + +func (opts GeneratorOptions) genFieldMask(t *rapid.T, msg protoreflect.Message) { + paths := rapid.SliceOfN(rapid.StringMatching("[a-z]+([.][a-z]+){0,2}"), 1, 5).Draw(t, "paths") + pathsField := msg.Descriptor().Fields().ByName(pathsName) + assert.Assert(t, pathsField != nil) + pathsList := msg.NewField(pathsField).List() + for _, path := range paths { + pathsList.Append(protoreflect.ValueOfString(path)) + } +} From fa13aff428296631baad35475350a59c9ab87752 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 30 Jan 2023 09:39:10 -0600 Subject: [PATCH 011/122] rename --- codec/aminojson/{JSONMarshaller.go => json_marshaller.go} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename codec/aminojson/{JSONMarshaller.go => json_marshaller.go} (100%) diff --git a/codec/aminojson/JSONMarshaller.go b/codec/aminojson/json_marshaller.go similarity index 100% rename from codec/aminojson/JSONMarshaller.go rename to codec/aminojson/json_marshaller.go From 93b2a8df3216f6497b765185949745f66a1384ba Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 30 Jan 2023 11:10:08 -0600 Subject: [PATCH 012/122] rm rapid fail --- .../TestRapid-20230129215332-7072.fail | 31 ------------------- 1 file changed, 31 deletions(-) delete mode 100644 codec/aminojson/testdata/rapid/TestRapid/TestRapid-20230129215332-7072.fail diff --git a/codec/aminojson/testdata/rapid/TestRapid/TestRapid-20230129215332-7072.fail b/codec/aminojson/testdata/rapid/TestRapid/TestRapid-20230129215332-7072.fail deleted file mode 100644 index faf0cfdfe034..000000000000 --- a/codec/aminojson/testdata/rapid/TestRapid/TestRapid-20230129215332-7072.fail +++ /dev/null @@ -1,31 +0,0 @@ -# 2023/01/29 21:53:32 TestRapid [rapid] draw msg: &testpb.ABitOfEverything{state:impl.MessageState{NoUnkeyedLiterals:pragma.NoUnkeyedLiterals{}, DoNotCompare:pragma.DoNotCompare{}, DoNotCopy:pragma.DoNotCopy{}, atomicMessageInfo:(*impl.MessageInfo)(0xc0003e2400)}, sizeCache:0, unknownFields:[]uint8(nil), Message:(*testpb.NestedMessage)(nil), Enum:0, StrMap:map[string]string(nil), Repeated:[]int32(nil), Str:"", Bool:false, Bytes:[]uint8(nil), I32:0, F32:0x0, U32:0x0, Si32:0, Sf32:0, I64:0, F64:0x0, U64:0x0, Si64:0, Sf64:0, Any:(*anypb.Any)(nil), Timestamp:(*timestamppb.Timestamp)(nil), Duration:(*durationpb.Duration)(0xc000035c40), Struct:(*structpb.Struct)(nil)} -# 2023/01/29 21:53:32 TestRapid assertion failed: error is not nil: proto: syntax error (line 1:13): unexpected token {: {"duration":{}} vs {"duration":"0s"} -# -v0.4.8#14813563064788813243 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x1 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 -0x0 \ No newline at end of file From 0ab2d362cb8c2fbf876d4a9bb302c80abcad8950 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 30 Jan 2023 13:33:16 -0600 Subject: [PATCH 013/122] add test --- codec/aminojson/marshal_test.go | 38 +++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/codec/aminojson/marshal_test.go b/codec/aminojson/marshal_test.go index 15e5409933b3..116935e39281 100644 --- a/codec/aminojson/marshal_test.go +++ b/codec/aminojson/marshal_test.go @@ -1,8 +1,10 @@ package aminojson_test import ( + "fmt" "github.com/cosmos/cosmos-sdk/codec/aminojson" "github.com/cosmos/cosmos-sdk/testutil/rapidproto" + "github.com/stretchr/testify/require" "github.com/tendermint/go-amino" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" @@ -19,6 +21,11 @@ import ( "github.com/cosmos/cosmos-sdk/codec/aminojson/internal/testpb" ) +func marshalLegacy(msg proto.Message) ([]byte, error) { + cdc := amino.NewCodec() + return cdc.MarshalJSON(msg) +} + func TestAminonJSON_Empty(t *testing.T) { msg := &testpb.ABitOfEverything{} bz, err := aminojson.MarshalAmino(msg) @@ -26,6 +33,27 @@ func TestAminonJSON_Empty(t *testing.T) { assert.Equal(t, "{}", string(bz)) } +func TestAminoJSON_Failures(t *testing.T) { + msg := &testpb.ABitOfEverything{ + Duration: durationpb.New(time.Second * 0), + } + msg2 := &testpb.ABitOfEverything{} + + bz, err := aminojson.MarshalAmino(msg) + assert.NilError(t, err) + + cdc := amino.NewCodec() + legacyBz, err := cdc.MarshalJSON(msg) + assert.NilError(t, err) + + goProtoJson, err := protojson.Marshal(msg) + err = protojson.UnmarshalOptions{}.Unmarshal(bz, msg2) + assert.NilError(t, err, "protojson unmarshal failed; %s", goProtoJson) + + fmt.Printf("%s vs legacy: %s\n", string(bz), string(legacyBz)) + assert.Equal(t, string(legacyBz), string(bz)) +} + func TestAminoJSON(t *testing.T) { //a, err := anypb.New(&testpb.ABitOfEverything{ // I32: 10, @@ -130,10 +158,20 @@ func TestRapid(t *testing.T) { } func checkInvariants(t *rapid.T, message proto.Message, marshaledBytes []byte) { + checkLegacyParity(t, message, marshaledBytes) checkRoundTrip(t, message, marshaledBytes) // checkJsonNoWhitespace(t, marshaledBytes) } +func checkLegacyParity(t *rapid.T, message proto.Message, marshaledBytes []byte) { + legacyBz, err := marshalLegacy(message) + assert.NilError(t, err) + fmt.Printf("%s vs legacy: %s\n", string(marshaledBytes), string(legacyBz)) + require.Equal(t, marshaledBytes, legacyBz, "%s vs legacy: %s", string(marshaledBytes), + string(legacyBz)) + //assert.DeepEqual(t, marshaledBytes, legacyBz, "%s vs legacy: %s", string(marshaledBytes), string(legacyBz)) +} + func checkRoundTrip(t *rapid.T, message proto.Message, marshaledBytes []byte) { message2 := message.ProtoReflect().New().Interface() goProtoJson, err := protojson.Marshal(message) From 6b79609581aa1c15993d2cb9a0af12c2f3b970f9 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 30 Jan 2023 14:01:12 -0600 Subject: [PATCH 014/122] clean up test case --- codec/aminojson/json_marshaller.go | 29 ++++++---------- codec/aminojson/marshal_test.go | 53 ++++++++++++++++++++---------- 2 files changed, 45 insertions(+), 37 deletions(-) diff --git a/codec/aminojson/json_marshaller.go b/codec/aminojson/json_marshaller.go index 0bb179143948..ae141ada594b 100644 --- a/codec/aminojson/json_marshaller.go +++ b/codec/aminojson/json_marshaller.go @@ -5,11 +5,12 @@ import ( "encoding/base64" "encoding/json" "fmt" + "io" + "github.com/pkg/errors" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" - "io" ) type JSONMarshaller interface { @@ -29,19 +30,17 @@ func (aj AminoJson) marshal( value protoreflect.Value, field protoreflect.FieldDescriptor, writer io.Writer) error { - //switch message.Descriptor().FullName() { - //case timestampFullName: - // return marshalTimestamp(writer, message) - //case durationFullName: - // return marshalDuration(writer, message) - //} - - //fmt.Printf("value: %v\n", value) switch typedValue := value.Interface().(type) { case protoreflect.Message: return aj.marshalMessage(typedValue, writer) + case protoreflect.Map: + return aj.marshalMap(field, typedValue, writer) + + case protoreflect.List: + return aj.marshalList(field, typedValue, writer) + case string, bool, int32, uint32, protoreflect.EnumNumber: return invokeStdlibJSONMarshal(writer, typedValue) @@ -49,18 +48,11 @@ func (aj AminoJson) marshal( _, err := fmt.Fprintf(writer, `"%d"`, typedValue) // quoted return err - case protoreflect.Map: - return aj.marshalMap(field, typedValue, writer) - - case protoreflect.List: - return aj.marshalList(field, typedValue, writer) - case []byte: _, err := fmt.Fprintf(writer, `"%s"`, base64.StdEncoding.EncodeToString([]byte(typedValue))) return err } - //fmt.Printf("marshal field: %s, value: %v\n", field.FullName(), value) return nil } @@ -90,16 +82,15 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e } v := msg.Get(f) - //fmt.Printf("field: %s, value: %v\n", f.FullName(), v) if !first { - _, err := writer.Write([]byte(",")) + _, err = writer.Write([]byte(",")) if err != nil { return err } } - err := invokeStdlibJSONMarshal(writer, f.Name()) + err = invokeStdlibJSONMarshal(writer, f.Name()) if err != nil { return err } diff --git a/codec/aminojson/marshal_test.go b/codec/aminojson/marshal_test.go index 116935e39281..7a01ef997764 100644 --- a/codec/aminojson/marshal_test.go +++ b/codec/aminojson/marshal_test.go @@ -2,15 +2,17 @@ package aminojson_test import ( "fmt" - "github.com/cosmos/cosmos-sdk/codec/aminojson" - "github.com/cosmos/cosmos-sdk/testutil/rapidproto" + "testing" + "time" + "github.com/stretchr/testify/require" "github.com/tendermint/go-amino" "google.golang.org/protobuf/encoding/protojson" "google.golang.org/protobuf/proto" "pgregory.net/rapid" - "testing" - "time" + + "github.com/cosmos/cosmos-sdk/codec/aminojson" + "github.com/cosmos/cosmos-sdk/testutil/rapidproto" "google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/durationpb" @@ -33,25 +35,40 @@ func TestAminonJSON_Empty(t *testing.T) { assert.Equal(t, "{}", string(bz)) } -func TestAminoJSON_Failures(t *testing.T) { - msg := &testpb.ABitOfEverything{ - Duration: durationpb.New(time.Second * 0), +func TestAminoJSON_EdgeCases(t *testing.T) { + cases := map[string]struct { + msg proto.Message + shouldErr bool + }{ + "empty": {msg: &testpb.ABitOfEverything{}}, + "any type": {msg: &testpb.ABitOfEverything{Any: &anypb.Any{}}}, + "zero duration": {msg: &testpb.ABitOfEverything{Duration: durationpb.New(time.Second * 0)}}, } - msg2 := &testpb.ABitOfEverything{} - bz, err := aminojson.MarshalAmino(msg) - assert.NilError(t, err) + for name, tc := range cases { + t.Run(name, func(t *testing.T) { + bz, err := aminojson.MarshalAmino(tc.msg) - cdc := amino.NewCodec() - legacyBz, err := cdc.MarshalJSON(msg) - assert.NilError(t, err) + if tc.shouldErr { + require.Error(t, err) + } else { + require.NoError(t, err) + } + + msg2 := &testpb.ABitOfEverything{} + + cdc := amino.NewCodec() + legacyBz, err := cdc.MarshalJSON(tc.msg) + assert.NilError(t, err) - goProtoJson, err := protojson.Marshal(msg) - err = protojson.UnmarshalOptions{}.Unmarshal(bz, msg2) - assert.NilError(t, err, "protojson unmarshal failed; %s", goProtoJson) + goProtoJson, err := protojson.Marshal(tc.msg) + err = protojson.UnmarshalOptions{}.Unmarshal(bz, msg2) + assert.NilError(t, err, "unmarshal failed: %s vs %s", legacyBz, goProtoJson) + + require.Equal(t, legacyBz, bz, "legacy: %s vs %s", legacyBz, bz) + }) + } - fmt.Printf("%s vs legacy: %s\n", string(bz), string(legacyBz)) - assert.Equal(t, string(legacyBz), string(bz)) } func TestAminoJSON(t *testing.T) { From 71382c7c9b9f023aded1ceebc425893f499471c3 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 30 Jan 2023 14:23:58 -0600 Subject: [PATCH 015/122] test cleanup --- codec/aminojson/marshal_test.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/codec/aminojson/marshal_test.go b/codec/aminojson/marshal_test.go index 7a01ef997764..2103c9813a3b 100644 --- a/codec/aminojson/marshal_test.go +++ b/codec/aminojson/marshal_test.go @@ -36,12 +36,15 @@ func TestAminonJSON_Empty(t *testing.T) { } func TestAminoJSON_EdgeCases(t *testing.T) { + simpleAny, err := anypb.New(&testpb.NestedMessage{Foo: "any type nested", Bar: 11}) + require.NoError(t, err) + cases := map[string]struct { msg proto.Message shouldErr bool }{ "empty": {msg: &testpb.ABitOfEverything{}}, - "any type": {msg: &testpb.ABitOfEverything{Any: &anypb.Any{}}}, + "any type": {msg: &testpb.ABitOfEverything{Any: simpleAny}}, "zero duration": {msg: &testpb.ABitOfEverything{Duration: durationpb.New(time.Second * 0)}}, } @@ -61,11 +64,11 @@ func TestAminoJSON_EdgeCases(t *testing.T) { legacyBz, err := cdc.MarshalJSON(tc.msg) assert.NilError(t, err) + assert.Equal(t, string(legacyBz), string(bz), "legacy: %s vs %s", legacyBz, bz) + goProtoJson, err := protojson.Marshal(tc.msg) err = protojson.UnmarshalOptions{}.Unmarshal(bz, msg2) assert.NilError(t, err, "unmarshal failed: %s vs %s", legacyBz, goProtoJson) - - require.Equal(t, legacyBz, bz, "legacy: %s vs %s", legacyBz, bz) }) } From ee6f705cfa75ff56200ea0d455343a6581fb5d44 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 30 Jan 2023 15:01:53 -0600 Subject: [PATCH 016/122] clean up commented code --- codec/aminojson/marshal_test.go | 82 ++++++--------------------------- 1 file changed, 14 insertions(+), 68 deletions(-) diff --git a/codec/aminojson/marshal_test.go b/codec/aminojson/marshal_test.go index 2103c9813a3b..e4820119978e 100644 --- a/codec/aminojson/marshal_test.go +++ b/codec/aminojson/marshal_test.go @@ -71,14 +71,9 @@ func TestAminoJSON_EdgeCases(t *testing.T) { assert.NilError(t, err, "unmarshal failed: %s vs %s", legacyBz, goProtoJson) }) } - } func TestAminoJSON(t *testing.T) { - //a, err := anypb.New(&testpb.ABitOfEverything{ - // I32: 10, - // Str: "string in an any type", - //}) a, err := anypb.New(&testpb.NestedMessage{ Foo: "any type nested", Bar: 11, @@ -93,70 +88,24 @@ func TestAminoJSON(t *testing.T) { Enum: testpb.AnEnum_ONE, StrMap: map[string]string{ "foo": "abc", - // "bar": "def", }, - //Int32Map: map[int32]string{ - // -3: "xyz", - // 0: "abc", - // 10: "qrs", - //}, - //BoolMap: map[bool]string{ - // true: "T", - // false: "F", - //}, - Repeated: []int32{3, -7, 2, 6, 4}, - Str: `abcxyz"foo"def`, - Bool: true, - Bytes: []byte{0, 1, 2, 3}, - I32: -15, - F32: 1001, - U32: 1200, - Si32: -376, - Sf32: -1000, - I64: 14578294827584932, - F64: 9572348124213523654, - U64: 4759492485, - Si64: -59268425823934, - Sf64: -659101379604211154, - //Float: 1.0, - //Double: 5235.2941, + Repeated: []int32{3, -7, 2, 6, 4}, + Str: `abcxyz"foo"def`, + Bool: true, + Bytes: []byte{0, 1, 2, 3}, + I32: -15, + F32: 1001, + U32: 1200, + Si32: -376, + Sf32: -1000, + I64: 14578294827584932, + F64: 9572348124213523654, + U64: 4759492485, + Si64: -59268425823934, + Sf64: -659101379604211154, Any: a, Timestamp: timestamppb.New(time.Date(2022, 1, 1, 12, 31, 0, 0, time.UTC)), Duration: durationpb.New(time.Second * 3000), - //Struct: &structpb.Struct{ - // Fields: map[string]*structpb.Value{ - // "null": structpb.NewNullValue(), - // "num": structpb.NewNumberValue(3.76), - // "str": structpb.NewStringValue("abc"), - // "bool": structpb.NewBoolValue(true), - // "nested struct": structpb.NewStructValue(&structpb.Struct{Fields: map[string]*structpb.Value{ - // "a": structpb.NewStringValue("abc"), - // }}), - // "struct list": structpb.NewListValue(&structpb.ListValue{Values: []*structpb.Value{ - // structpb.NewStringValue("xyz"), - // structpb.NewBoolValue(false), - // structpb.NewNumberValue(-9), - // }}), - // "empty": {}, - // }, - //}, - //BoolValue: &wrapperspb.BoolValue{Value: true}, - //BytesValue: &wrapperspb.BytesValue{Value: []byte{0, 1, 2, 3}}, - //DoubleValue: &wrapperspb.DoubleValue{Value: 1.324}, - //FloatValue: &wrapperspb.FloatValue{Value: -1.0}, - //Int32Value: &wrapperspb.Int32Value{Value: 10}, - //Int64Value: &wrapperspb.Int64Value{Value: -376923457}, - //StringValue: &wrapperspb.StringValue{Value: "gfedcba"}, - //Uint32Value: &wrapperspb.UInt32Value{Value: 37492}, - //Uint64Value: &wrapperspb.UInt64Value{Value: 1892409137358391}, - //FieldMask: &fieldmaskpb.FieldMask{Paths: []string{"a.b", "a.c", "b"}}, - //ListValue: &structpb.ListValue{Values: []*structpb.Value{ - // structpb.NewNumberValue(1.1), - // structpb.NewStringValue("qrs"), - //}}, - //Value: structpb.NewStringValue("a value"), - //NullValue: structpb.NullValue_NULL_VALUE, - //Empty: &emptypb.Empty{}, } bz, err := aminojson.MarshalAmino(msg) assert.NilError(t, err) @@ -180,7 +129,6 @@ func TestRapid(t *testing.T) { func checkInvariants(t *rapid.T, message proto.Message, marshaledBytes []byte) { checkLegacyParity(t, message, marshaledBytes) checkRoundTrip(t, message, marshaledBytes) - // checkJsonNoWhitespace(t, marshaledBytes) } func checkLegacyParity(t *rapid.T, message proto.Message, marshaledBytes []byte) { @@ -189,7 +137,6 @@ func checkLegacyParity(t *rapid.T, message proto.Message, marshaledBytes []byte) fmt.Printf("%s vs legacy: %s\n", string(marshaledBytes), string(legacyBz)) require.Equal(t, marshaledBytes, legacyBz, "%s vs legacy: %s", string(marshaledBytes), string(legacyBz)) - //assert.DeepEqual(t, marshaledBytes, legacyBz, "%s vs legacy: %s", string(marshaledBytes), string(legacyBz)) } func checkRoundTrip(t *rapid.T, message proto.Message, marshaledBytes []byte) { @@ -197,5 +144,4 @@ func checkRoundTrip(t *rapid.T, message proto.Message, marshaledBytes []byte) { goProtoJson, err := protojson.Marshal(message) assert.NilError(t, err) assert.NilError(t, protojson.UnmarshalOptions{}.Unmarshal(marshaledBytes, message2), "%s vs %s", string(marshaledBytes), string(goProtoJson)) - // TODO: assert.DeepEqual(t, message, message2, protocmp.Transform()) } From b1ac5e4a9401ebcc9ca34a8a747bc341882d2d95 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 30 Jan 2023 19:01:11 -0600 Subject: [PATCH 017/122] do not treat maps in generative tests --- codec/aminojson/.gitignore | 1 + codec/aminojson/internal/testpb/test.pb.go | 259 ++++++++++++--------- codec/aminojson/internal/testpb/test.proto | 28 +-- codec/aminojson/json_marshaller.go | 53 +++-- codec/aminojson/marshal_test.go | 30 +-- 5 files changed, 207 insertions(+), 164 deletions(-) diff --git a/codec/aminojson/.gitignore b/codec/aminojson/.gitignore index e660fd93d319..a93d29aad713 100644 --- a/codec/aminojson/.gitignore +++ b/codec/aminojson/.gitignore @@ -1 +1,2 @@ bin/ +testdata/rapid diff --git a/codec/aminojson/internal/testpb/test.pb.go b/codec/aminojson/internal/testpb/test.pb.go index c090dd20ffa8..1bb8cb9cefa7 100644 --- a/codec/aminojson/internal/testpb/test.pb.go +++ b/codec/aminojson/internal/testpb/test.pb.go @@ -13,7 +13,7 @@ import ( durationpb "google.golang.org/protobuf/types/known/durationpb" _ "google.golang.org/protobuf/types/known/emptypb" _ "google.golang.org/protobuf/types/known/fieldmaskpb" - structpb "google.golang.org/protobuf/types/known/structpb" + _ "google.golang.org/protobuf/types/known/structpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" _ "google.golang.org/protobuf/types/known/wrapperspb" reflect "reflect" @@ -76,21 +76,60 @@ func (AnEnum) EnumDescriptor() ([]byte, []int) { return file_testpb_test_proto_rawDescGZIP(), []int{0} } +type WithAMap struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StrMap map[string]string `protobuf:"bytes,1,rep,name=str_map,json=strMap,proto3" json:"str_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *WithAMap) Reset() { + *x = WithAMap{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithAMap) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithAMap) ProtoMessage() {} + +func (x *WithAMap) ProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WithAMap.ProtoReflect.Descriptor instead. +func (*WithAMap) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{0} +} + +func (x *WithAMap) GetStrMap() map[string]string { + if x != nil { + return x.StrMap + } + return nil +} + type ABitOfEverything struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // message - // Generates JSON objects. Message field names are mapped to lowerCamelCase and become JSON object keys. If the json_name field option is specified, the specified value will be used as the key instead. Parsers accept both the lowerCamelCase name (or the one specified by the json_name option) and the original proto field name. null is an accepted value for all field types and treated as the default value of the corresponding field type. - Message *NestedMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` - // enum - // The name of the enum value as specified in proto is used. Parsers accept both enum names and integer values. - Enum AnEnum `protobuf:"varint,2,opt,name=enum,proto3,enum=testpb.AnEnum" json:"enum,omitempty"` - // map - // All keys are converted to strings. - StrMap map[string]string `protobuf:"bytes,3,rep,name=str_map,json=strMap,proto3" json:"str_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` - // repeated + Message *NestedMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Enum AnEnum `protobuf:"varint,2,opt,name=enum,proto3,enum=testpb.AnEnum" json:"enum,omitempty"` //map str_map = 3; Repeated []int32 `protobuf:"varint,6,rep,packed,name=repeated,proto3" json:"repeated,omitempty"` Str string `protobuf:"bytes,7,opt,name=str,proto3" json:"str,omitempty"` Bool bool `protobuf:"varint,8,opt,name=bool,proto3" json:"bool,omitempty"` @@ -108,13 +147,12 @@ type ABitOfEverything struct { Any *anypb.Any `protobuf:"bytes,22,opt,name=any,proto3" json:"any,omitempty"` Timestamp *timestamppb.Timestamp `protobuf:"bytes,23,opt,name=timestamp,proto3" json:"timestamp,omitempty"` Duration *durationpb.Duration `protobuf:"bytes,24,opt,name=duration,proto3" json:"duration,omitempty"` - Struct *structpb.Struct `protobuf:"bytes,25,opt,name=struct,proto3" json:"struct,omitempty"` } func (x *ABitOfEverything) Reset() { *x = ABitOfEverything{} if protoimpl.UnsafeEnabled { - mi := &file_testpb_test_proto_msgTypes[0] + mi := &file_testpb_test_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -127,7 +165,7 @@ func (x *ABitOfEverything) String() string { func (*ABitOfEverything) ProtoMessage() {} func (x *ABitOfEverything) ProtoReflect() protoreflect.Message { - mi := &file_testpb_test_proto_msgTypes[0] + mi := &file_testpb_test_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -140,7 +178,7 @@ func (x *ABitOfEverything) ProtoReflect() protoreflect.Message { // Deprecated: Use ABitOfEverything.ProtoReflect.Descriptor instead. func (*ABitOfEverything) Descriptor() ([]byte, []int) { - return file_testpb_test_proto_rawDescGZIP(), []int{0} + return file_testpb_test_proto_rawDescGZIP(), []int{1} } func (x *ABitOfEverything) GetMessage() *NestedMessage { @@ -157,13 +195,6 @@ func (x *ABitOfEverything) GetEnum() AnEnum { return AnEnum_UNDEFINED } -func (x *ABitOfEverything) GetStrMap() map[string]string { - if x != nil { - return x.StrMap - } - return nil -} - func (x *ABitOfEverything) GetRepeated() []int32 { if x != nil { return x.Repeated @@ -283,13 +314,6 @@ func (x *ABitOfEverything) GetDuration() *durationpb.Duration { return nil } -func (x *ABitOfEverything) GetStruct() *structpb.Struct { - if x != nil { - return x.Struct - } - return nil -} - type NestedMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -302,7 +326,7 @@ type NestedMessage struct { func (x *NestedMessage) Reset() { *x = NestedMessage{} if protoimpl.UnsafeEnabled { - mi := &file_testpb_test_proto_msgTypes[1] + mi := &file_testpb_test_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -315,7 +339,7 @@ func (x *NestedMessage) String() string { func (*NestedMessage) ProtoMessage() {} func (x *NestedMessage) ProtoReflect() protoreflect.Message { - mi := &file_testpb_test_proto_msgTypes[1] + mi := &file_testpb_test_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -328,7 +352,7 @@ func (x *NestedMessage) ProtoReflect() protoreflect.Message { // Deprecated: Use NestedMessage.ProtoReflect.Descriptor instead. func (*NestedMessage) Descriptor() ([]byte, []int) { - return file_testpb_test_proto_rawDescGZIP(), []int{1} + return file_testpb_test_proto_rawDescGZIP(), []int{2} } func (x *NestedMessage) GetFoo() string { @@ -363,65 +387,63 @@ var file_testpb_test_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xbf, 0x05, 0x0a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, - 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x65, 0x6e, - 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, - 0x62, 0x2e, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x3d, - 0x0a, 0x07, 0x73, 0x74, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, - 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x73, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x12, 0x1a, 0x0a, - 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, - 0x6f, 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, - 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x69, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x33, 0x32, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x33, 0x32, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x69, 0x33, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, 0x69, 0x33, 0x32, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x66, 0x33, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x04, 0x73, - 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x36, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x03, 0x69, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x36, 0x34, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x06, 0x52, 0x03, 0x66, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x36, 0x34, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x36, - 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x69, 0x36, 0x34, 0x12, 0x12, 0x0a, - 0x04, 0x73, 0x66, 0x36, 0x34, 0x18, 0x13, 0x20, 0x01, 0x28, 0x10, 0x52, 0x04, 0x73, 0x66, 0x36, - 0x34, 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x41, 0x6e, 0x79, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x06, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x52, 0x06, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x53, - 0x74, 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x33, 0x0a, 0x0d, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x61, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, 0x2a, 0x29, 0x0a, 0x06, 0x41, - 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, - 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, - 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x7f, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, - 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, - 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, - 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, 0x73, 0x74, - 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7c, 0x0a, 0x08, 0x57, 0x69, 0x74, 0x68, 0x41, 0x4d, 0x61, 0x70, + 0x12, 0x35, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x41, + 0x4d, 0x61, 0x70, 0x2e, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x06, 0x73, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x4d, 0x61, + 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x94, 0x04, 0x0a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, 0x76, 0x65, + 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, + 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, + 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, + 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x14, + 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x69, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x33, 0x32, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x07, 0x52, 0x03, 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x33, 0x32, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, + 0x33, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, 0x69, 0x33, 0x32, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x66, 0x33, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x04, 0x73, 0x66, + 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x36, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x03, 0x69, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x36, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x06, 0x52, 0x03, 0x66, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x36, 0x34, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x36, 0x34, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x69, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x66, 0x36, 0x34, 0x18, 0x13, 0x20, 0x01, 0x28, 0x10, 0x52, 0x04, 0x73, 0x66, 0x36, 0x34, + 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x41, 0x6e, 0x79, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x33, 0x0a, 0x0d, 0x4e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, + 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, + 0x62, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, 0x2a, 0x29, + 0x0a, 0x06, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, + 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, + 0x12, 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x7f, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, + 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, + 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, + 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, + 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -437,30 +459,29 @@ func file_testpb_test_proto_rawDescGZIP() []byte { } var file_testpb_test_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_testpb_test_proto_goTypes = []interface{}{ (AnEnum)(0), // 0: testpb.AnEnum - (*ABitOfEverything)(nil), // 1: testpb.ABitOfEverything - (*NestedMessage)(nil), // 2: testpb.NestedMessage - nil, // 3: testpb.ABitOfEverything.StrMapEntry - (*anypb.Any)(nil), // 4: google.protobuf.Any - (*timestamppb.Timestamp)(nil), // 5: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 6: google.protobuf.Duration - (*structpb.Struct)(nil), // 7: google.protobuf.Struct + (*WithAMap)(nil), // 1: testpb.WithAMap + (*ABitOfEverything)(nil), // 2: testpb.ABitOfEverything + (*NestedMessage)(nil), // 3: testpb.NestedMessage + nil, // 4: testpb.WithAMap.StrMapEntry + (*anypb.Any)(nil), // 5: google.protobuf.Any + (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 7: google.protobuf.Duration } var file_testpb_test_proto_depIdxs = []int32{ - 2, // 0: testpb.ABitOfEverything.message:type_name -> testpb.NestedMessage - 0, // 1: testpb.ABitOfEverything.enum:type_name -> testpb.AnEnum - 3, // 2: testpb.ABitOfEverything.str_map:type_name -> testpb.ABitOfEverything.StrMapEntry - 4, // 3: testpb.ABitOfEverything.any:type_name -> google.protobuf.Any - 5, // 4: testpb.ABitOfEverything.timestamp:type_name -> google.protobuf.Timestamp - 6, // 5: testpb.ABitOfEverything.duration:type_name -> google.protobuf.Duration - 7, // 6: testpb.ABitOfEverything.struct:type_name -> google.protobuf.Struct - 7, // [7:7] is the sub-list for method output_type - 7, // [7:7] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 4, // 0: testpb.WithAMap.str_map:type_name -> testpb.WithAMap.StrMapEntry + 3, // 1: testpb.ABitOfEverything.message:type_name -> testpb.NestedMessage + 0, // 2: testpb.ABitOfEverything.enum:type_name -> testpb.AnEnum + 5, // 3: testpb.ABitOfEverything.any:type_name -> google.protobuf.Any + 6, // 4: testpb.ABitOfEverything.timestamp:type_name -> google.protobuf.Timestamp + 7, // 5: testpb.ABitOfEverything.duration:type_name -> google.protobuf.Duration + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name } func init() { file_testpb_test_proto_init() } @@ -470,7 +491,7 @@ func file_testpb_test_proto_init() { } if !protoimpl.UnsafeEnabled { file_testpb_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ABitOfEverything); i { + switch v := v.(*WithAMap); i { case 0: return &v.state case 1: @@ -482,6 +503,18 @@ func file_testpb_test_proto_init() { } } file_testpb_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ABitOfEverything); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_testpb_test_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NestedMessage); i { case 0: return &v.state @@ -500,7 +533,7 @@ func file_testpb_test_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_testpb_test_proto_rawDesc, NumEnums: 1, - NumMessages: 3, + NumMessages: 4, NumExtensions: 0, NumServices: 0, }, diff --git a/codec/aminojson/internal/testpb/test.proto b/codec/aminojson/internal/testpb/test.proto index 787850d4ef2f..3916e11ca96b 100644 --- a/codec/aminojson/internal/testpb/test.proto +++ b/codec/aminojson/internal/testpb/test.proto @@ -10,10 +10,14 @@ import "google/protobuf/wrappers.proto"; import "google/protobuf/field_mask.proto"; import "google/protobuf/empty.proto"; +message WithAMap{ + map str_map = 1; +} + message ABitOfEverything { NestedMessage message = 1; AnEnum enum = 2; - map str_map = 3; + //map str_map = 3; repeated int32 repeated = 6; @@ -31,31 +35,9 @@ message ABitOfEverything { sint64 si64 = 18; sfixed64 sf64 = 19; - //float float = 20; - //double double = 21; - google.protobuf.Any any = 22; google.protobuf.Timestamp timestamp = 23; google.protobuf.Duration duration = 24; - google.protobuf.Struct struct = 25; - -// TODO -// google.protobuf.BoolValue bool_value = 26; -// google.protobuf.BytesValue bytes_value = 27; -// google.protobuf.DoubleValue double_value = 28; -// google.protobuf.FloatValue float_value = 29; -// google.protobuf.Int32Value int32_value = 30; -// google.protobuf.Int64Value int64_value = 31; -// google.protobuf.StringValue string_value = 32; -// google.protobuf.UInt32Value uint32_value = 33; -// google.protobuf.UInt64Value uint64_value = 34; - - -// google.protobuf.FieldMask field_mask = 35; -// google.protobuf.ListValue list_value = 36; -// google.protobuf.Value value = 37; -// google.protobuf.NullValue null_value = 38; -// google.protobuf.Empty empty = 39; } message NestedMessage { diff --git a/codec/aminojson/json_marshaller.go b/codec/aminojson/json_marshaller.go index ae141ada594b..3b89dff83697 100644 --- a/codec/aminojson/json_marshaller.go +++ b/codec/aminojson/json_marshaller.go @@ -6,6 +6,8 @@ import ( "encoding/json" "fmt" "io" + "reflect" + "strings" "github.com/pkg/errors" "google.golang.org/protobuf/proto" @@ -17,12 +19,33 @@ type JSONMarshaller interface { MarshalAmino(proto.Message) ([]byte, error) } -type AminoJson struct{} +type User struct { + Name string `json:"name_field"` + Age int `json:"age_field"` +} + +type AminoJson struct { + nilMapFields map[string]bool +} func MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} + aj := AminoJson{ + nilMapFields: make(map[string]bool), + } + rt := reflect.TypeOf(message).Elem() + rv := reflect.ValueOf(message).Elem() + + for i := 0; i < rt.NumField(); i++ { + f := rt.Field(i) + if f.Type.Kind() == reflect.Map { + protoFieldNo := strings.Split(f.Tag.Get("protobuf"), ",")[1] + aj.nilMapFields[protoFieldNo] = rv.Field(i).IsNil() + } + } + vmsg := protoreflect.ValueOfMessage(message.ProtoReflect()) - err := AminoJson{}.marshal(vmsg, nil, buf) + err := aj.marshal(vmsg, nil, buf) return buf.Bytes(), err } @@ -58,16 +81,6 @@ func (aj AminoJson) marshal( } func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) error { - - // TODO - // Am I tracking this legacy amino coded behavior correctly? - // - //switch msg.Descriptor().FullName() { - //case anyFullName: - // fmt.Println("any") - // return aj.marshalAny(msg, writer) - //} - _, err := writer.Write([]byte("{")) if err != nil { return err @@ -77,11 +90,21 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e first := true for i := 0; i < fields.Len(); i++ { f := fields.Get(i) - if !msg.Has(f) { + v := msg.Get(f) + + if f.IsMap() { + // legacy behavior for maps: + // - if nil, omit + // - if empty, include + // - if non-empty, include + if isNil := aj.nilMapFields[fmt.Sprintf("%v", f.Number())]; isNil { + continue + } + } else if !msg.Has(f) { continue } - v := msg.Get(f) + // legacy behavior omits maps with no entries, but .Has only checks for absence if !first { _, err = writer.Write([]byte(",")) @@ -185,12 +208,12 @@ func (aj AminoJson) marshalMap( } allKeys := make([]protoreflect.MapKey, 0, value.Len()) + //sortedKeys := make([]protoreflect.MapKey, 0, value.Len()) value.Range(func(key protoreflect.MapKey, _ protoreflect.Value) bool { allKeys = append(allKeys, key) return true }) - // TODO sort // TODO fail if key type is not string valueField := fieldDescriptor.MapValue() diff --git a/codec/aminojson/marshal_test.go b/codec/aminojson/marshal_test.go index e4820119978e..ab3765ccd0df 100644 --- a/codec/aminojson/marshal_test.go +++ b/codec/aminojson/marshal_test.go @@ -1,7 +1,7 @@ package aminojson_test import ( - "fmt" + "reflect" "testing" "time" @@ -18,7 +18,6 @@ import ( "google.golang.org/protobuf/types/known/durationpb" "google.golang.org/protobuf/types/known/timestamppb" "gotest.tools/v3/assert" - "gotest.tools/v3/golden" "github.com/cosmos/cosmos-sdk/codec/aminojson/internal/testpb" ) @@ -44,6 +43,9 @@ func TestAminoJSON_EdgeCases(t *testing.T) { shouldErr bool }{ "empty": {msg: &testpb.ABitOfEverything{}}, + "nil map": {msg: &testpb.WithAMap{}}, + "empty map": {msg: &testpb.WithAMap{StrMap: make(map[string]string)}}, + "single map": {msg: &testpb.WithAMap{StrMap: map[string]string{"foo": "bar"}}}, "any type": {msg: &testpb.ABitOfEverything{Any: simpleAny}}, "zero duration": {msg: &testpb.ABitOfEverything{Duration: durationpb.New(time.Second * 0)}}, } @@ -58,7 +60,8 @@ func TestAminoJSON_EdgeCases(t *testing.T) { require.NoError(t, err) } - msg2 := &testpb.ABitOfEverything{} + rv := reflect.New(reflect.TypeOf(tc.msg).Elem()).Elem() + msg2 := rv.Addr().Interface().(proto.Message) cdc := amino.NewCodec() legacyBz, err := cdc.MarshalJSON(tc.msg) @@ -67,7 +70,7 @@ func TestAminoJSON_EdgeCases(t *testing.T) { assert.Equal(t, string(legacyBz), string(bz), "legacy: %s vs %s", legacyBz, bz) goProtoJson, err := protojson.Marshal(tc.msg) - err = protojson.UnmarshalOptions{}.Unmarshal(bz, msg2) + err = cdc.UnmarshalJSON(bz, msg2.(proto.Message)) assert.NilError(t, err, "unmarshal failed: %s vs %s", legacyBz, goProtoJson) }) } @@ -86,9 +89,10 @@ func TestAminoJSON(t *testing.T) { Bar: 0, // this is the default value and should be omitted from output }, Enum: testpb.AnEnum_ONE, - StrMap: map[string]string{ - "foo": "abc", - }, + //StrMap: map[string]string{ + // "foo": "abc", + // "baz": "xyz", + //}, Repeated: []int32{3, -7, 2, 6, 4}, Str: `abcxyz"foo"def`, Bool: true, @@ -112,8 +116,7 @@ func TestAminoJSON(t *testing.T) { cdc := amino.NewCodec() legacyBz, err := cdc.MarshalJSON(msg) assert.NilError(t, err) - golden.Assert(t, string(legacyBz), "legacyamino.json") - golden.Assert(t, string(bz), "legacyamino.json") + require.Equal(t, string(legacyBz), string(bz), "%s vs legacy: %s", string(bz), string(legacyBz)) } func TestRapid(t *testing.T) { @@ -134,14 +137,15 @@ func checkInvariants(t *rapid.T, message proto.Message, marshaledBytes []byte) { func checkLegacyParity(t *rapid.T, message proto.Message, marshaledBytes []byte) { legacyBz, err := marshalLegacy(message) assert.NilError(t, err) - fmt.Printf("%s vs legacy: %s\n", string(marshaledBytes), string(legacyBz)) - require.Equal(t, marshaledBytes, legacyBz, "%s vs legacy: %s", string(marshaledBytes), + require.Equal(t, string(legacyBz), string(marshaledBytes), "%s vs legacy: %s", string(marshaledBytes), string(legacyBz)) } func checkRoundTrip(t *rapid.T, message proto.Message, marshaledBytes []byte) { message2 := message.ProtoReflect().New().Interface() - goProtoJson, err := protojson.Marshal(message) + cdc := amino.NewCodec() + goProtoJson, err := cdc.MarshalJSON(message) assert.NilError(t, err) - assert.NilError(t, protojson.UnmarshalOptions{}.Unmarshal(marshaledBytes, message2), "%s vs %s", string(marshaledBytes), string(goProtoJson)) + err = cdc.UnmarshalJSON(marshaledBytes, message2) + assert.NilError(t, err, "%s vs %s", string(marshaledBytes), string(goProtoJson)) } From b9ca7c4d76a82a974cbe356436f9a22d84779606 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 31 Jan 2023 11:11:22 -0600 Subject: [PATCH 018/122] rename files --- codec/aminojson/{json_marshaller.go => json_marshal.go} | 0 codec/aminojson/{marshal_test.go => json_marshal_test.go} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename codec/aminojson/{json_marshaller.go => json_marshal.go} (100%) rename codec/aminojson/{marshal_test.go => json_marshal_test.go} (100%) diff --git a/codec/aminojson/json_marshaller.go b/codec/aminojson/json_marshal.go similarity index 100% rename from codec/aminojson/json_marshaller.go rename to codec/aminojson/json_marshal.go diff --git a/codec/aminojson/marshal_test.go b/codec/aminojson/json_marshal_test.go similarity index 100% rename from codec/aminojson/marshal_test.go rename to codec/aminojson/json_marshal_test.go From 76ae6a3f0c1d56442e4ef369c0f2053f76267bcb Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 31 Jan 2023 11:22:20 -0600 Subject: [PATCH 019/122] error on map marshal --- codec/aminojson/json_marshal.go | 83 ++-------------------------- codec/aminojson/json_marshal_test.go | 5 +- 2 files changed, 6 insertions(+), 82 deletions(-) diff --git a/codec/aminojson/json_marshal.go b/codec/aminojson/json_marshal.go index 3b89dff83697..3002ff19c9c1 100644 --- a/codec/aminojson/json_marshal.go +++ b/codec/aminojson/json_marshal.go @@ -6,8 +6,6 @@ import ( "encoding/json" "fmt" "io" - "reflect" - "strings" "github.com/pkg/errors" "google.golang.org/protobuf/proto" @@ -24,25 +22,11 @@ type User struct { Age int `json:"age_field"` } -type AminoJson struct { - nilMapFields map[string]bool -} +type AminoJson struct{} func MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} - aj := AminoJson{ - nilMapFields: make(map[string]bool), - } - rt := reflect.TypeOf(message).Elem() - rv := reflect.ValueOf(message).Elem() - - for i := 0; i < rt.NumField(); i++ { - f := rt.Field(i) - if f.Type.Kind() == reflect.Map { - protoFieldNo := strings.Split(f.Tag.Get("protobuf"), ",")[1] - aj.nilMapFields[protoFieldNo] = rv.Field(i).IsNil() - } - } + aj := AminoJson{} vmsg := protoreflect.ValueOfMessage(message.ProtoReflect()) err := aj.marshal(vmsg, nil, buf) @@ -59,7 +43,7 @@ func (aj AminoJson) marshal( return aj.marshalMessage(typedValue, writer) case protoreflect.Map: - return aj.marshalMap(field, typedValue, writer) + return errors.New("maps are not supported") case protoreflect.List: return aj.marshalList(field, typedValue, writer) @@ -92,20 +76,10 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e f := fields.Get(i) v := msg.Get(f) - if f.IsMap() { - // legacy behavior for maps: - // - if nil, omit - // - if empty, include - // - if non-empty, include - if isNil := aj.nilMapFields[fmt.Sprintf("%v", f.Number())]; isNil { - continue - } - } else if !msg.Has(f) { + if !msg.Has(f) { continue } - // legacy behavior omits maps with no entries, but .Has only checks for absence - if !first { _, err = writer.Write([]byte(",")) if err != nil { @@ -198,55 +172,6 @@ func (aj AminoJson) marshalAny(message protoreflect.Message, writer io.Writer) e //return err } -func (aj AminoJson) marshalMap( - fieldDescriptor protoreflect.FieldDescriptor, - value protoreflect.Map, - writer io.Writer) error { - _, err := writer.Write([]byte("{")) - if err != nil { - return err - } - - allKeys := make([]protoreflect.MapKey, 0, value.Len()) - //sortedKeys := make([]protoreflect.MapKey, 0, value.Len()) - value.Range(func(key protoreflect.MapKey, _ protoreflect.Value) bool { - allKeys = append(allKeys, key) - return true - }) - - // TODO fail if key type is not string - - valueField := fieldDescriptor.MapValue() - first := true - for _, key := range allKeys { - if !first { - _, err = writer.Write([]byte(",")) - if err != nil { - return err - } - } - first = false - - err = invokeStdlibJSONMarshal(writer, key.String()) - if err != nil { - return err - } - - _, err = writer.Write([]byte(":")) - if err != nil { - return err - } - - err = aj.marshal(value.Get(key), valueField, writer) - if err != nil { - return err - } - } - - _, err = writer.Write([]byte("}")) - return err -} - func (aj AminoJson) marshalList( fieldDescriptor protoreflect.FieldDescriptor, list protoreflect.List, diff --git a/codec/aminojson/json_marshal_test.go b/codec/aminojson/json_marshal_test.go index ab3765ccd0df..3888a62614d2 100644 --- a/codec/aminojson/json_marshal_test.go +++ b/codec/aminojson/json_marshal_test.go @@ -43,9 +43,7 @@ func TestAminoJSON_EdgeCases(t *testing.T) { shouldErr bool }{ "empty": {msg: &testpb.ABitOfEverything{}}, - "nil map": {msg: &testpb.WithAMap{}}, - "empty map": {msg: &testpb.WithAMap{StrMap: make(map[string]string)}}, - "single map": {msg: &testpb.WithAMap{StrMap: map[string]string{"foo": "bar"}}}, + "single map": {msg: &testpb.WithAMap{StrMap: map[string]string{"foo": "bar"}}, shouldErr: true}, "any type": {msg: &testpb.ABitOfEverything{Any: simpleAny}}, "zero duration": {msg: &testpb.ABitOfEverything{Duration: durationpb.New(time.Second * 0)}}, } @@ -56,6 +54,7 @@ func TestAminoJSON_EdgeCases(t *testing.T) { if tc.shouldErr { require.Error(t, err) + return } else { require.NoError(t, err) } From 6cf89b2c35fd573c429763dafda4c8f5879a5978 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 31 Jan 2023 11:32:58 -0600 Subject: [PATCH 020/122] remove unused code --- codec/aminojson/json_marshal.go | 77 ---------------------------- codec/aminojson/json_marshal_test.go | 6 +-- 2 files changed, 1 insertion(+), 82 deletions(-) diff --git a/codec/aminojson/json_marshal.go b/codec/aminojson/json_marshal.go index 3002ff19c9c1..d8736da23456 100644 --- a/codec/aminojson/json_marshal.go +++ b/codec/aminojson/json_marshal.go @@ -10,7 +10,6 @@ import ( "github.com/pkg/errors" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" ) type JSONMarshaller interface { @@ -121,57 +120,6 @@ func invokeStdlibJSONMarshal(w io.Writer, v interface{}) error { return err } -func (aj AminoJson) marshalAny(message protoreflect.Message, writer io.Writer) error { - fields := message.Descriptor().Fields() - typeUrlField := fields.ByName(typeUrlName) - if typeUrlField == nil { - return fmt.Errorf("expected type_url field") - } - - //_, err := writer.Write([]byte("{")) - //if err != nil { - // return err - //} - - typeUrl := message.Get(typeUrlField).String() - // TODO - // do we need an resolver other than protoregistry.GlobalTypes? - resolver := protoregistry.GlobalTypes - - typ, err := resolver.FindMessageByURL(typeUrl) - if err != nil { - return errors.Wrapf(err, "can't resolve type URL %s", typeUrl) - } - - _, err = fmt.Fprintf(writer, `"@type_url":%q`, typeUrl) - if err != nil { - return err - } - - valueField := fields.ByName(valueName) - if valueField == nil { - return fmt.Errorf("expected value field") - } - - valueBz := message.Get(valueField).Bytes() - - valueMsg := typ.New() - err = proto.Unmarshal(valueBz, valueMsg.Interface()) - if err != nil { - return err - } - - return aj.marshal(protoreflect.ValueOfMessage(valueMsg), nil, writer) - - //err = aj.marshalMessageFields(valueMsg, writer, false) - //if err != nil { - // return err - //} - // - //_, err = writer.Write([]byte("}")) - //return err -} - func (aj AminoJson) marshalList( fieldDescriptor protoreflect.FieldDescriptor, list protoreflect.List, @@ -201,28 +149,3 @@ func (aj AminoJson) marshalList( _, err = writer.Write([]byte("]")) return err } - -const ( - // type names - timestampFullName protoreflect.FullName = "google.protobuf.Timestamp" - durationFullName = "google.protobuf.Duration" - structFullName = "google.protobuf.Struct" - valueFullName = "google.protobuf.Value" - listValueFullName = "google.protobuf.ListValue" - nullValueFullName = "google.protobuf.NullValue" - boolValueFullName = "google.protobuf.BoolValue" - stringValueFullName = "google.protobuf.StringValue" - bytesValueFullName = "google.protobuf.BytesValue" - int32ValueFullName = "google.protobuf.Int32Value" - int64ValueFullName = "google.protobuf.Int64Value" - uint32ValueFullName = "google.protobuf.UInt32Value" - uint64ValueFullName = "google.protobuf.UInt64Value" - floatValueFullName = "google.protobuf.FloatValue" - doubleValueFullName = "google.protobuf.DoubleValue" - fieldMaskFullName = "google.protobuf.FieldMask" - anyFullName = "google.protobuf.Any" - - // field names - typeUrlName protoreflect.Name = "type_url" - valueName protoreflect.Name = "value" -) diff --git a/codec/aminojson/json_marshal_test.go b/codec/aminojson/json_marshal_test.go index 3888a62614d2..9261110b8161 100644 --- a/codec/aminojson/json_marshal_test.go +++ b/codec/aminojson/json_marshal_test.go @@ -87,11 +87,7 @@ func TestAminoJSON(t *testing.T) { Foo: "test", Bar: 0, // this is the default value and should be omitted from output }, - Enum: testpb.AnEnum_ONE, - //StrMap: map[string]string{ - // "foo": "abc", - // "baz": "xyz", - //}, + Enum: testpb.AnEnum_ONE, Repeated: []int32{3, -7, 2, 6, 4}, Str: `abcxyz"foo"def`, Bool: true, From 5170ce6098ed060c1eaf64052bbca1184a9e9268 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 31 Jan 2023 11:34:08 -0600 Subject: [PATCH 021/122] clean up --- codec/aminojson/json_marshal.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/codec/aminojson/json_marshal.go b/codec/aminojson/json_marshal.go index d8736da23456..489a921c860e 100644 --- a/codec/aminojson/json_marshal.go +++ b/codec/aminojson/json_marshal.go @@ -37,26 +37,26 @@ func (aj AminoJson) marshal( field protoreflect.FieldDescriptor, writer io.Writer) error { - switch typedValue := value.Interface().(type) { + switch val := value.Interface().(type) { case protoreflect.Message: - return aj.marshalMessage(typedValue, writer) + return aj.marshalMessage(val, writer) case protoreflect.Map: return errors.New("maps are not supported") case protoreflect.List: - return aj.marshalList(field, typedValue, writer) + return aj.marshalList(field, val, writer) case string, bool, int32, uint32, protoreflect.EnumNumber: - return invokeStdlibJSONMarshal(writer, typedValue) + return invokeStdlibJSONMarshal(writer, val) case uint64, int64: - _, err := fmt.Fprintf(writer, `"%d"`, typedValue) // quoted + _, err := fmt.Fprintf(writer, `"%d"`, val) // quoted return err case []byte: _, err := fmt.Fprintf(writer, `"%s"`, - base64.StdEncoding.EncodeToString([]byte(typedValue))) + base64.StdEncoding.EncodeToString(val)) return err } From a63eacaa9b08f34d1985690507eb51ce151fd589 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 31 Jan 2023 11:34:28 -0600 Subject: [PATCH 022/122] clean up --- codec/aminojson/json_marshal.go | 5 ----- 1 file changed, 5 deletions(-) diff --git a/codec/aminojson/json_marshal.go b/codec/aminojson/json_marshal.go index 489a921c860e..fde5e3108a1d 100644 --- a/codec/aminojson/json_marshal.go +++ b/codec/aminojson/json_marshal.go @@ -16,11 +16,6 @@ type JSONMarshaller interface { MarshalAmino(proto.Message) ([]byte, error) } -type User struct { - Name string `json:"name_field"` - Age int `json:"age_field"` -} - type AminoJson struct{} func MarshalAmino(message proto.Message) ([]byte, error) { From d59fd1c93482fce969ffbf45c867ba83becd9a26 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 31 Jan 2023 12:20:11 -0600 Subject: [PATCH 023/122] create failing test case --- codec/aminojson/json_marshal_test.go | 44 ++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 9 deletions(-) diff --git a/codec/aminojson/json_marshal_test.go b/codec/aminojson/json_marshal_test.go index 9261110b8161..e81017367180 100644 --- a/codec/aminojson/json_marshal_test.go +++ b/codec/aminojson/json_marshal_test.go @@ -1,6 +1,7 @@ package aminojson_test import ( + "fmt" "reflect" "testing" "time" @@ -11,6 +12,8 @@ import ( "google.golang.org/protobuf/proto" "pgregory.net/rapid" + "cosmossdk.io/api/cosmos/crypto/ed25519" + "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/aminojson" "github.com/cosmos/cosmos-sdk/testutil/rapidproto" @@ -22,22 +25,45 @@ import ( "github.com/cosmos/cosmos-sdk/codec/aminojson/internal/testpb" ) +type pubKeyEd25519 struct { + ed25519.PubKey +} + +var _ codec.AminoMarshaler = pubKeyEd25519{} + +func (pubKey pubKeyEd25519) MarshalAmino() ([]byte, error) { + return pubKey.Key, nil +} + +func (pubKey pubKeyEd25519) UnmarshalAmino(bytes []byte) error { + panic("not implemented") +} + +func (pubKey pubKeyEd25519) UnmarshalAminoJSON(bytes []byte) error { + panic("not implemented") +} + +// MarshalAminoJSON overrides Amino JSON marshalling. +func (pubKey pubKeyEd25519) MarshalAminoJSON() ([]byte, error) { + // When we marshal to Amino JSON, we don't marshal the "key" field itself, + // just its contents (i.e. the key bytes). + return pubKey.MarshalAmino() +} + func marshalLegacy(msg proto.Message) ([]byte, error) { cdc := amino.NewCodec() return cdc.MarshalJSON(msg) } -func TestAminonJSON_Empty(t *testing.T) { - msg := &testpb.ABitOfEverything{} - bz, err := aminojson.MarshalAmino(msg) - assert.NilError(t, err) - assert.Equal(t, "{}", string(bz)) -} - func TestAminoJSON_EdgeCases(t *testing.T) { simpleAny, err := anypb.New(&testpb.NestedMessage{Foo: "any type nested", Bar: 11}) require.NoError(t, err) + cdc := amino.NewCodec() + cdc.RegisterConcrete((*pubKeyEd25519)(nil), "PubKeyEd25519", nil) + pubkey := &pubKeyEd25519{} + pubkey.Key = []byte("key") + cases := map[string]struct { msg proto.Message shouldErr bool @@ -46,8 +72,8 @@ func TestAminoJSON_EdgeCases(t *testing.T) { "single map": {msg: &testpb.WithAMap{StrMap: map[string]string{"foo": "bar"}}, shouldErr: true}, "any type": {msg: &testpb.ABitOfEverything{Any: simpleAny}}, "zero duration": {msg: &testpb.ABitOfEverything{Duration: durationpb.New(time.Second * 0)}}, + "key_field": {msg: pubkey}, } - for name, tc := range cases { t.Run(name, func(t *testing.T) { bz, err := aminojson.MarshalAmino(tc.msg) @@ -62,10 +88,10 @@ func TestAminoJSON_EdgeCases(t *testing.T) { rv := reflect.New(reflect.TypeOf(tc.msg).Elem()).Elem() msg2 := rv.Addr().Interface().(proto.Message) - cdc := amino.NewCodec() legacyBz, err := cdc.MarshalJSON(tc.msg) assert.NilError(t, err) + fmt.Printf("legacy: %s vs %s\n", legacyBz, bz) assert.Equal(t, string(legacyBz), string(bz), "legacy: %s vs %s", legacyBz, bz) goProtoJson, err := protojson.Marshal(tc.msg) From f341c67c6354780aba6d80bf86fe6cbb599f15af Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 31 Jan 2023 22:00:52 -0600 Subject: [PATCH 024/122] handle amino.name option --- codec/aminojson/json_marshal.go | 26 +++++++++++++++++++---- codec/aminojson/json_marshal_test.go | 31 +++++++++++++++++++++++++--- 2 files changed, 50 insertions(+), 7 deletions(-) diff --git a/codec/aminojson/json_marshal.go b/codec/aminojson/json_marshal.go index fde5e3108a1d..3da020f2e4e5 100644 --- a/codec/aminojson/json_marshal.go +++ b/codec/aminojson/json_marshal.go @@ -10,6 +10,8 @@ import ( "github.com/pkg/errors" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" + + "cosmossdk.io/api/amino" ) type JSONMarshaller interface { @@ -34,7 +36,23 @@ func (aj AminoJson) marshal( switch val := value.Interface().(type) { case protoreflect.Message: - return aj.marshalMessage(val, writer) + var res error + opts := val.Descriptor().Options() + if proto.HasExtension(opts, amino.E_Name) { + name := proto.GetExtension(opts, amino.E_Name) + _, err := writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, name))) + if err != nil { + return err + } + res = aj.marshalMessage(val, writer) + _, err = writer.Write([]byte(`}`)) + if err != nil { + return err + } + } else { + res = aj.marshalMessage(val, writer) + } + return res case protoreflect.Map: return errors.New("maps are not supported") @@ -43,7 +61,7 @@ func (aj AminoJson) marshal( return aj.marshalList(field, val, writer) case string, bool, int32, uint32, protoreflect.EnumNumber: - return invokeStdlibJSONMarshal(writer, val) + return jsonMarshal(writer, val) case uint64, int64: _, err := fmt.Fprintf(writer, `"%d"`, val) // quoted @@ -81,7 +99,7 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e } } - err = invokeStdlibJSONMarshal(writer, f.Name()) + err = jsonMarshal(writer, f.Name()) if err != nil { return err } @@ -106,7 +124,7 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e return nil } -func invokeStdlibJSONMarshal(w io.Writer, v interface{}) error { +func jsonMarshal(w io.Writer, v interface{}) error { blob, err := json.Marshal(v) if err != nil { return err diff --git a/codec/aminojson/json_marshal_test.go b/codec/aminojson/json_marshal_test.go index e81017367180..a9b86d127c35 100644 --- a/codec/aminojson/json_marshal_test.go +++ b/codec/aminojson/json_marshal_test.go @@ -12,10 +12,12 @@ import ( "google.golang.org/protobuf/proto" "pgregory.net/rapid" + authapi "cosmossdk.io/api/cosmos/auth/v1beta1" "cosmossdk.io/api/cosmos/crypto/ed25519" "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/aminojson" "github.com/cosmos/cosmos-sdk/testutil/rapidproto" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" "google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/durationpb" @@ -35,11 +37,11 @@ func (pubKey pubKeyEd25519) MarshalAmino() ([]byte, error) { return pubKey.Key, nil } -func (pubKey pubKeyEd25519) UnmarshalAmino(bytes []byte) error { +func (pubKey pubKeyEd25519) UnmarshalAmino([]byte) error { panic("not implemented") } -func (pubKey pubKeyEd25519) UnmarshalAminoJSON(bytes []byte) error { +func (pubKey pubKeyEd25519) UnmarshalAminoJSON([]byte) error { panic("not implemented") } @@ -55,12 +57,35 @@ func marshalLegacy(msg proto.Message) ([]byte, error) { return cdc.MarshalJSON(msg) } +func TestAminoJSON_LegacyParity(t *testing.T) { + cdc := amino.NewCodec() + cdc.RegisterConcrete(authtypes.Params{}, "cosmos-sdk/x/auth/Params", nil) + + cases := map[string]struct { + gogo any + pulsar proto.Message + }{ + "auth/params": {gogo: &authtypes.Params{TxSigLimit: 10}, pulsar: &authapi.Params{TxSigLimit: 10}}, + } + for name, tc := range cases { + t.Run(name, func(t *testing.T) { + gogoBytes, err := cdc.MarshalJSON(tc.gogo) + require.NoError(t, err) + + pulsarBytes, err := aminojson.MarshalAmino(tc.pulsar) + require.NoError(t, err) + + require.Equal(t, string(gogoBytes), string(pulsarBytes), "gogo: %s vs pulsar: %s", gogoBytes, pulsarBytes) + }) + } +} + func TestAminoJSON_EdgeCases(t *testing.T) { simpleAny, err := anypb.New(&testpb.NestedMessage{Foo: "any type nested", Bar: 11}) require.NoError(t, err) cdc := amino.NewCodec() - cdc.RegisterConcrete((*pubKeyEd25519)(nil), "PubKeyEd25519", nil) + cdc.RegisterConcrete((*pubKeyEd25519)(nil), "tendermint/PubKeyEd25519", nil) pubkey := &pubKeyEd25519{} pubkey.Key = []byte("key") From 0eedf02cdfe5f8704fbd8f4d232d2ba5715437f1 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 31 Jan 2023 22:24:14 -0600 Subject: [PATCH 025/122] begin annotation audit --- codec/aminojson/json_marshal_test.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/codec/aminojson/json_marshal_test.go b/codec/aminojson/json_marshal_test.go index a9b86d127c35..c167a0647d04 100644 --- a/codec/aminojson/json_marshal_test.go +++ b/codec/aminojson/json_marshal_test.go @@ -14,10 +14,13 @@ import ( authapi "cosmossdk.io/api/cosmos/auth/v1beta1" "cosmossdk.io/api/cosmos/crypto/ed25519" + distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" + "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/aminojson" "github.com/cosmos/cosmos-sdk/testutil/rapidproto" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" "google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/durationpb" @@ -60,12 +63,20 @@ func marshalLegacy(msg proto.Message) ([]byte, error) { func TestAminoJSON_LegacyParity(t *testing.T) { cdc := amino.NewCodec() cdc.RegisterConcrete(authtypes.Params{}, "cosmos-sdk/x/auth/Params", nil) + cdc.RegisterConcrete(disttypes.MsgWithdrawDelegatorReward{}, "cosmos-sdk/x/distribution/MsgWithdrawDelegatorReward", nil) cases := map[string]struct { gogo any pulsar proto.Message }{ "auth/params": {gogo: &authtypes.Params{TxSigLimit: 10}, pulsar: &authapi.Params{TxSigLimit: 10}}, + // TODO + // treat + // (gogoproto.nullable) = false, + // (amino.dont_omitempty) = true + "distribution/delegator_starting_info": { + gogo: &disttypes.DelegatorStartingInfo{}, + pulsar: &distapi.DelegatorStartingInfo{}}, } for name, tc := range cases { t.Run(name, func(t *testing.T) { From 164e26a4b5c88c44f812a4827e749bf73b31b235 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 1 Feb 2023 10:57:15 -0600 Subject: [PATCH 026/122] support more annotations --- codec/aminojson/README.md | 4 +++- codec/aminojson/json_marshal.go | 21 +++++++++++++++++-- .../distribution/v1beta1/distribution.proto | 1 + 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/codec/aminojson/README.md b/codec/aminojson/README.md index dfd73e545390..cfcd87aece87 100644 --- a/codec/aminojson/README.md +++ b/codec/aminojson/README.md @@ -17,4 +17,6 @@ amino map serialization is non-deterministic - add special casing custom encoders (including tests) - add rapid tests - refactor for readability. not really convinced stablejson is anymore readable than amino json yet -- check timestamp special casing is equivalent \ No newline at end of file +- check timestamp special casing is equivalent + +- ensure all usages of gogoproto.nullable are augmented with amino.dont_omitempty \ No newline at end of file diff --git a/codec/aminojson/json_marshal.go b/codec/aminojson/json_marshal.go index 3da020f2e4e5..bbf489f05626 100644 --- a/codec/aminojson/json_marshal.go +++ b/codec/aminojson/json_marshal.go @@ -76,6 +76,23 @@ func (aj AminoJson) marshal( return nil } +// omitEmpty returns true if the field should be omitted if empty. Empty field omission is the default behavior. +func omitEmpty(field protoreflect.FieldDescriptor) bool { + opts := field.Options() + if proto.HasExtension(opts, amino.E_DontOmitempty) { + return !proto.GetExtension(opts, amino.E_DontOmitempty).(bool) + } + return true +} + +func fieldName(field protoreflect.FieldDescriptor) string { + opts := field.Options() + if proto.HasExtension(opts, amino.E_FieldName) { + return proto.GetExtension(opts, amino.E_FieldName).(string) + } + return string(field.Name()) +} + func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) error { _, err := writer.Write([]byte("{")) if err != nil { @@ -88,7 +105,7 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e f := fields.Get(i) v := msg.Get(f) - if !msg.Has(f) { + if !msg.Has(f) && omitEmpty(f) { continue } @@ -99,7 +116,7 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e } } - err = jsonMarshal(writer, f.Name()) + err = jsonMarshal(writer, fieldName(f)) if err != nil { return err } diff --git a/proto/cosmos/distribution/v1beta1/distribution.proto b/proto/cosmos/distribution/v1beta1/distribution.proto index 9ffd6132fdb8..9331f0b8a0ca 100644 --- a/proto/cosmos/distribution/v1beta1/distribution.proto +++ b/proto/cosmos/distribution/v1beta1/distribution.proto @@ -155,6 +155,7 @@ message DelegatorStartingInfo { string stake = 2 [ (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (amino.dont_omitempty) = true, (gogoproto.nullable) = false ]; uint64 height = 3 From a651645933a733240ca35a8faaf365af7ce7dcf8 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 1 Feb 2023 14:31:15 -0600 Subject: [PATCH 027/122] Support more annotations, add one to distribution.proto --- .../v1beta1/distribution.pulsar.go | 106 +++++++-------- .../orm/module/v1alpha1/module.pulsar.go | 4 +- codec/aminojson/json_marshal.go | 56 +++++++- codec/aminojson/json_marshal_test.go | 21 ++- .../distribution/v1beta1/distribution.proto | 4 +- x/distribution/types/distribution.pb.go | 122 +++++++++--------- 6 files changed, 182 insertions(+), 131 deletions(-) diff --git a/api/cosmos/distribution/v1beta1/distribution.pulsar.go b/api/cosmos/distribution/v1beta1/distribution.pulsar.go index 2abeacdb23b5..9d82a7a487f2 100644 --- a/api/cosmos/distribution/v1beta1/distribution.pulsar.go +++ b/api/cosmos/distribution/v1beta1/distribution.pulsar.go @@ -7327,65 +7327,65 @@ var file_cosmos_distribution_v1beta1_distribution_proto_rawDesc = []byte{ 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x28, 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x15, 0x44, 0x65, + 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, - 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x52, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x57, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, - 0x12, 0x44, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, - 0x42, 0x2c, 0xea, 0xde, 0x1f, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0xa2, 0xe7, 0xb0, 0x2a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x6e, 0x0a, 0x06, 0x72, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, - 0xdf, 0x1f, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x3a, 0x04, 0x88, 0xa0, 0x1f, - 0x00, 0x22, 0xd3, 0x01, 0x0a, 0x25, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, - 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x57, 0x69, 0x74, 0x68, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x3a, 0x22, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x88, 0x02, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x11, 0x44, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x40, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, - 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, - 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x2c, 0xea, 0xde, 0x1f, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa2, 0xe7, 0xb0, 0x2a, 0x0f, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x19, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x6e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, + 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, + 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0xd3, 0x01, 0x0a, 0x25, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x3a, 0x22, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, + 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x88, 0x02, 0x0a, + 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x42, 0x11, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, + 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, + 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/orm/module/v1alpha1/module.pulsar.go b/api/cosmos/orm/module/v1alpha1/module.pulsar.go index 61a3f50016b3..47e94c3ef51b 100644 --- a/api/cosmos/orm/module/v1alpha1/module.pulsar.go +++ b/api/cosmos/orm/module/v1alpha1/module.pulsar.go @@ -383,8 +383,8 @@ const ( ) // Module defines the ORM module which adds providers to the app container for -// module-scoped DB's. In the future it may provide gRPC services for interacting -// with ORM data. +// ORM ModuleDB's and in the future will automatically register query +// services for modules that use the ORM. type Module struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache diff --git a/codec/aminojson/json_marshal.go b/codec/aminojson/json_marshal.go index bbf489f05626..d26fc8e8607b 100644 --- a/codec/aminojson/json_marshal.go +++ b/codec/aminojson/json_marshal.go @@ -7,6 +7,7 @@ import ( "fmt" "io" + cosmos_proto "github.com/cosmos/cosmos-proto" "github.com/pkg/errors" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" @@ -18,11 +19,20 @@ type JSONMarshaller interface { MarshalAmino(proto.Message) ([]byte, error) } -type AminoJson struct{} +type AminoJson struct { + // maps cosmos_proto.scalar -> zero value factory + zeroValues map[string]func() protoreflect.Value +} func MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} - aj := AminoJson{} + aj := AminoJson{ + zeroValues: map[string]func() protoreflect.Value{ + "cosmos.Dec": func() protoreflect.Value { + return protoreflect.ValueOfString("0") + }, + }, + } vmsg := protoreflect.ValueOfMessage(message.ProtoReflect()) err := aj.marshal(vmsg, nil, buf) @@ -80,8 +90,14 @@ func (aj AminoJson) marshal( func omitEmpty(field protoreflect.FieldDescriptor) bool { opts := field.Options() if proto.HasExtension(opts, amino.E_DontOmitempty) { - return !proto.GetExtension(opts, amino.E_DontOmitempty).(bool) + dontOmitEmpty := proto.GetExtension(opts, amino.E_DontOmitempty).(bool) + return !dontOmitEmpty } + // legacy support for gogoproto would need to look something like below. + // + //if gproto.GetBoolExtension(opts, gogoproto.E_Nullable, true) { + // + //} return true } @@ -93,6 +109,17 @@ func fieldName(field protoreflect.FieldDescriptor) string { return string(field.Name()) } +func (aj AminoJson) fieldZeroValue(field protoreflect.FieldDescriptor) (protoreflect.Value, bool) { + opts := field.Options() + if proto.HasExtension(opts, cosmos_proto.E_Scalar) { + scalar := proto.GetExtension(opts, cosmos_proto.E_Scalar).(string) + if fn, ok := aj.zeroValues[scalar]; ok { + return fn(), true + } + } + return field.Default(), false +} + func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) error { _, err := writer.Write([]byte("{")) if err != nil { @@ -104,9 +131,17 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e for i := 0; i < fields.Len(); i++ { f := fields.Get(i) v := msg.Get(f) - - if !msg.Has(f) && omitEmpty(f) { - continue + name := fieldName(f) + + if !msg.Has(f) { + if omitEmpty(f) { + continue + } else { + zv, found := aj.fieldZeroValue(f) + if found { + v = zv + } + } } if !first { @@ -116,7 +151,7 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e } } - err = jsonMarshal(writer, fieldName(f)) + err = jsonMarshal(writer, name) if err != nil { return err } @@ -155,6 +190,13 @@ func (aj AminoJson) marshalList( list protoreflect.List, writer io.Writer) error { n := list.Len() + + // replicate https://github.com/tendermint/go-amino/blob/rc0/v0.16.0/json-encode.go#L222 + if n == 0 { + _, err := writer.Write([]byte("null")) + return err + } + _, err := writer.Write([]byte("[")) if err != nil { return err diff --git a/codec/aminojson/json_marshal_test.go b/codec/aminojson/json_marshal_test.go index c167a0647d04..c37ec30f09ee 100644 --- a/codec/aminojson/json_marshal_test.go +++ b/codec/aminojson/json_marshal_test.go @@ -63,20 +63,29 @@ func marshalLegacy(msg proto.Message) ([]byte, error) { func TestAminoJSON_LegacyParity(t *testing.T) { cdc := amino.NewCodec() cdc.RegisterConcrete(authtypes.Params{}, "cosmos-sdk/x/auth/Params", nil) - cdc.RegisterConcrete(disttypes.MsgWithdrawDelegatorReward{}, "cosmos-sdk/x/distribution/MsgWithdrawDelegatorReward", nil) + cdc.RegisterConcrete(disttypes.MsgWithdrawDelegatorReward{}, "cosmos-sdk/MsgWithdrawDelegationReward", nil) cases := map[string]struct { gogo any pulsar proto.Message }{ "auth/params": {gogo: &authtypes.Params{TxSigLimit: 10}, pulsar: &authapi.Params{TxSigLimit: 10}}, - // TODO - // treat - // (gogoproto.nullable) = false, - // (amino.dont_omitempty) = true "distribution/delegator_starting_info": { gogo: &disttypes.DelegatorStartingInfo{}, - pulsar: &distapi.DelegatorStartingInfo{}}, + pulsar: &distapi.DelegatorStartingInfo{}, + }, + "distribution/delegation_delegator_reward": { + gogo: &disttypes.DelegationDelegatorReward{}, + pulsar: &distapi.DelegationDelegatorReward{}, + }, + "distribution/community_pool_spend_proposal_with_deposit": { + gogo: &disttypes.CommunityPoolSpendProposalWithDeposit{}, + pulsar: &distapi.CommunityPoolSpendProposalWithDeposit{}, + }, + "distribution/msg_withdraw_delegator_reward": { + gogo: &disttypes.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, + pulsar: &distapi.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, + }, } for name, tc := range cases { t.Run(name, func(t *testing.T) { diff --git a/proto/cosmos/distribution/v1beta1/distribution.proto b/proto/cosmos/distribution/v1beta1/distribution.proto index 9331f0b8a0ca..0259437c6659 100644 --- a/proto/cosmos/distribution/v1beta1/distribution.proto +++ b/proto/cosmos/distribution/v1beta1/distribution.proto @@ -155,8 +155,8 @@ message DelegatorStartingInfo { string stake = 2 [ (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (amino.dont_omitempty) = true, - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true ]; uint64 height = 3 [(gogoproto.jsontag) = "creation_height", (amino.field_name) = "creation_height", (amino.dont_omitempty) = true]; diff --git a/x/distribution/types/distribution.pb.go b/x/distribution/types/distribution.pb.go index 044d1cd06d96..8bfe554d1ea3 100644 --- a/x/distribution/types/distribution.pb.go +++ b/x/distribution/types/distribution.pb.go @@ -642,69 +642,69 @@ func init() { } var fileDescriptor_cd78a31ea281a992 = []byte{ - // 984 bytes of a gzipped FileDescriptorProto + // 989 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0x41, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0x34, 0x89, 0xd3, 0x4c, 0x69, 0x42, 0x27, 0x4e, 0xea, 0xb8, 0x95, 0x6d, 0xad, 0x54, - 0x30, 0x81, 0xd8, 0xa4, 0x08, 0x09, 0x45, 0x08, 0x29, 0xb6, 0x83, 0xe0, 0xd4, 0x68, 0x83, 0x00, - 0x71, 0x59, 0x8d, 0x77, 0x27, 0xf6, 0xa8, 0xbb, 0x33, 0xcb, 0xcc, 0xac, 0x93, 0x1e, 0xb8, 0xa2, + 0x14, 0xf6, 0x34, 0x8e, 0xd3, 0x4c, 0x69, 0x42, 0x27, 0x4e, 0xea, 0xb8, 0x95, 0x6d, 0xad, 0x54, + 0x30, 0x81, 0xd8, 0xa4, 0x08, 0x09, 0x45, 0x08, 0x29, 0xb6, 0x83, 0xe0, 0xd4, 0x68, 0x83, 0x28, + 0xe2, 0xb2, 0x1a, 0xef, 0x4e, 0xec, 0x51, 0x77, 0x67, 0x96, 0x99, 0xb1, 0x93, 0x1e, 0xb8, 0xa2, 0xc0, 0x01, 0x38, 0x22, 0x4e, 0x15, 0x5c, 0x2a, 0xc4, 0x21, 0x87, 0xfc, 0x88, 0x8a, 0x53, 0x55, - 0x24, 0x54, 0xf5, 0x10, 0x50, 0x72, 0x08, 0xe2, 0x57, 0xa0, 0xd9, 0x19, 0xaf, 0x9d, 0x10, 0x4a, - 0xa5, 0xd6, 0xea, 0x25, 0xf1, 0x7c, 0x6f, 0xf7, 0xfb, 0xde, 0xf7, 0xe6, 0xed, 0x9b, 0x81, 0x75, - 0x9f, 0xcb, 0x88, 0xcb, 0x46, 0x40, 0xa5, 0x12, 0xb4, 0x93, 0x28, 0xca, 0x59, 0xa3, 0xbf, 0xda, - 0x21, 0x0a, 0xaf, 0x9e, 0x02, 0xeb, 0xb1, 0xe0, 0x8a, 0xa3, 0x6b, 0xe6, 0xf9, 0xfa, 0xa9, 0x90, - 0x7d, 0xbe, 0x54, 0xe8, 0xf2, 0x2e, 0x4f, 0x9f, 0x6b, 0xe8, 0x5f, 0xe6, 0x95, 0x52, 0xd9, 0x4a, - 0x74, 0xb0, 0x24, 0x19, 0xb5, 0xcf, 0xa9, 0xa5, 0x2c, 0x2d, 0x99, 0xb8, 0x67, 0x5e, 0xb4, 0xfc, - 0x26, 0x74, 0x05, 0x47, 0x94, 0xf1, 0x46, 0xfa, 0xd7, 0x40, 0xce, 0x2f, 0x13, 0x30, 0xbf, 0x89, - 0x05, 0x8e, 0x24, 0xc2, 0xf0, 0xb2, 0xcf, 0xa3, 0x28, 0x61, 0x54, 0xdd, 0xf1, 0x14, 0xde, 0x2d, - 0x82, 0x2a, 0xa8, 0xcd, 0x34, 0xdf, 0xbd, 0x7f, 0x58, 0xc9, 0x3d, 0x3e, 0xac, 0xbc, 0xd2, 0xa5, - 0xaa, 0x97, 0x74, 0xea, 0x3e, 0x8f, 0x2c, 0xab, 0xfd, 0xb7, 0x22, 0x83, 0xdb, 0x0d, 0x75, 0x27, - 0x26, 0xb2, 0xde, 0x26, 0xfe, 0xc3, 0x83, 0x15, 0x68, 0x45, 0xdb, 0xc4, 0x77, 0x5f, 0xca, 0x28, - 0x3f, 0xc2, 0xbb, 0x28, 0x86, 0x05, 0x9d, 0xb6, 0xce, 0x2d, 0xe6, 0x92, 0x08, 0x4f, 0x90, 0x1d, - 0x2c, 0x82, 0xe2, 0x85, 0x54, 0xe9, 0xbd, 0x67, 0x51, 0x2a, 0x02, 0x17, 0x69, 0xee, 0x4d, 0x4b, - 0xed, 0xa6, 0xcc, 0x48, 0xc0, 0x85, 0x0e, 0x67, 0x89, 0xfc, 0x97, 0xe4, 0xc4, 0x73, 0x91, 0x9c, - 0x4f, 0xc9, 0xcf, 0x68, 0xde, 0x84, 0x0b, 0x3b, 0x54, 0xf5, 0x02, 0x81, 0x77, 0x3c, 0x1c, 0x04, - 0xc2, 0x23, 0x0c, 0x77, 0x42, 0x12, 0x14, 0x27, 0xab, 0xa0, 0x76, 0xd1, 0x9d, 0x1f, 0x04, 0xd7, - 0x83, 0x40, 0x6c, 0x98, 0xd0, 0xda, 0x8d, 0xaf, 0x4f, 0xf6, 0x97, 0xab, 0x23, 0x9a, 0xbb, 0xa7, - 0x7b, 0xc8, 0xec, 0x91, 0xf3, 0x3b, 0x80, 0xa5, 0x8f, 0x71, 0x48, 0x03, 0xac, 0xb8, 0xf8, 0x80, - 0x4a, 0xc5, 0x05, 0xf5, 0x71, 0x68, 0x84, 0x25, 0xfa, 0x06, 0xc0, 0xab, 0x7e, 0x12, 0x25, 0x21, - 0x56, 0xb4, 0x4f, 0xac, 0x55, 0x4f, 0x60, 0x45, 0x79, 0x11, 0x54, 0x27, 0x6a, 0x97, 0x6e, 0x5e, - 0xb7, 0x1d, 0x5a, 0xd7, 0xb5, 0x1a, 0x74, 0x9a, 0x36, 0xd3, 0xe2, 0x94, 0x35, 0xdf, 0xd1, 0xe5, - 0xf8, 0xf9, 0x8f, 0xca, 0xeb, 0x4f, 0x57, 0x0e, 0xfd, 0x8e, 0xbc, 0x77, 0xb2, 0xbf, 0x0c, 0xdc, - 0x85, 0xa1, 0xac, 0x49, 0xc6, 0xd5, 0xa2, 0xe8, 0x55, 0x38, 0x27, 0xc8, 0x36, 0x11, 0x84, 0xf9, - 0xc4, 0xf3, 0x79, 0xc2, 0x54, 0xba, 0xd7, 0x97, 0xdd, 0xd9, 0x0c, 0x6e, 0x69, 0xd4, 0xf9, 0x09, - 0xc0, 0xab, 0x99, 0xb1, 0x56, 0x22, 0x04, 0x61, 0x6a, 0xe0, 0x2a, 0x86, 0xd3, 0xc6, 0x89, 0x1c, - 0xb3, 0x89, 0x81, 0x0c, 0x5a, 0x84, 0xf9, 0x98, 0x08, 0xca, 0x4d, 0x67, 0x4e, 0xba, 0x76, 0xe5, - 0x7c, 0x0f, 0x60, 0x39, 0xcb, 0x72, 0xdd, 0xb7, 0x9e, 0x49, 0xd0, 0xe2, 0x51, 0x44, 0xa5, 0xa4, - 0x9c, 0xa1, 0x3e, 0x84, 0x7e, 0xb6, 0x1a, 0x73, 0xbe, 0x23, 0x4a, 0xce, 0xb7, 0x00, 0x5e, 0xcb, - 0x52, 0xbb, 0x95, 0x28, 0xa9, 0x30, 0x0b, 0x28, 0xeb, 0xbe, 0xb0, 0x22, 0x3a, 0x3f, 0x00, 0x38, - 0x9f, 0x65, 0xb4, 0x15, 0x62, 0xd9, 0xdb, 0xe8, 0x13, 0xa6, 0xd0, 0x6b, 0xf0, 0xe5, 0xfe, 0x00, - 0xf6, 0x6c, 0x99, 0x41, 0x5a, 0xe6, 0xb9, 0x0c, 0xdf, 0x4c, 0x61, 0xf4, 0x29, 0xbc, 0xb8, 0x2d, - 0xb0, 0xaf, 0xbf, 0x00, 0x3b, 0x23, 0x9e, 0x6d, 0x1a, 0x65, 0x6c, 0xce, 0x57, 0x00, 0x16, 0xce, - 0x49, 0x4e, 0xa2, 0xcf, 0xe1, 0xe2, 0x30, 0x3b, 0xa9, 0x03, 0x1e, 0x49, 0x23, 0xb6, 0x6c, 0x6f, - 0xd6, 0x9f, 0x30, 0xb2, 0xeb, 0xe7, 0x50, 0x36, 0x67, 0x74, 0xca, 0xa6, 0x36, 0x85, 0xfe, 0x39, - 0x92, 0xce, 0x1e, 0x80, 0xd3, 0xef, 0x13, 0xb2, 0xc9, 0x79, 0x88, 0xbe, 0x80, 0xb3, 0xc3, 0x21, - 0x1c, 0x73, 0x1e, 0x8e, 0x79, 0xb7, 0x86, 0x23, 0x5f, 0xcb, 0x3b, 0x5f, 0x5e, 0x80, 0xa5, 0xd6, - 0x28, 0xb2, 0x15, 0x13, 0x16, 0x98, 0xf9, 0x86, 0x43, 0x54, 0x80, 0x53, 0x8a, 0xaa, 0x90, 0x98, - 0xa3, 0xc1, 0x35, 0x0b, 0x54, 0x85, 0x97, 0x02, 0x22, 0x7d, 0x41, 0xe3, 0xe1, 0x46, 0xb9, 0xa3, - 0x10, 0xba, 0x0e, 0x67, 0x04, 0xf1, 0x69, 0x4c, 0x09, 0x53, 0x66, 0xf2, 0xba, 0x43, 0x00, 0xf5, - 0x60, 0x1e, 0x47, 0xe9, 0x6c, 0x98, 0x4c, 0xbd, 0x2e, 0x9d, 0xeb, 0x35, 0x35, 0xfa, 0xb6, 0x35, - 0x5a, 0x7b, 0x0a, 0xa3, 0x23, 0x2e, 0x2d, 0xff, 0x5a, 0x6d, 0xef, 0x6e, 0x25, 0xf7, 0xd7, 0xdd, - 0x4a, 0xee, 0xd7, 0x83, 0x95, 0x92, 0x15, 0xe9, 0xf2, 0xfe, 0x88, 0x06, 0x53, 0x3a, 0x45, 0xe0, - 0x3c, 0x06, 0x70, 0xa1, 0x4d, 0x42, 0xd2, 0x4d, 0x37, 0x4b, 0x61, 0xa1, 0x28, 0xeb, 0x7e, 0xc8, - 0xb6, 0xd3, 0x91, 0x16, 0x0b, 0xd2, 0xa7, 0x5c, 0x1f, 0x2a, 0xa3, 0xdd, 0x3b, 0x3b, 0x80, 0x6d, - 0xf3, 0xba, 0x70, 0x4a, 0x2a, 0x7c, 0x9b, 0x3c, 0x97, 0xce, 0x35, 0x54, 0xa8, 0x0d, 0xf3, 0x3d, - 0x42, 0xbb, 0x3d, 0x53, 0xc5, 0xc9, 0xe6, 0x1b, 0x7f, 0x1f, 0x56, 0xe6, 0x7c, 0x41, 0xf4, 0xb0, - 0x65, 0x9e, 0x09, 0xfd, 0x78, 0xb2, 0xbf, 0x7c, 0x16, 0xb3, 0x65, 0x30, 0x0b, 0xe7, 0x11, 0x80, - 0x4b, 0xd6, 0x1c, 0xe5, 0x2c, 0xb3, 0x69, 0x8f, 0xaf, 0x0d, 0x78, 0x65, 0xf8, 0x05, 0xe8, 0xf3, - 0x8b, 0x48, 0x69, 0xef, 0x02, 0xc5, 0x87, 0x07, 0x2b, 0x05, 0x9b, 0xd5, 0xba, 0x89, 0x6c, 0x29, - 0xa1, 0xa7, 0xcc, 0xf0, 0x93, 0xb6, 0x38, 0x62, 0x30, 0x9f, 0x9d, 0xee, 0xe3, 0xec, 0x60, 0xab, - 0xb2, 0x36, 0xa9, 0xf7, 0xd6, 0xf9, 0x0d, 0xc0, 0x1b, 0xff, 0xdd, 0xc0, 0x9f, 0x50, 0xd5, 0x6b, - 0x93, 0x98, 0x4b, 0xaa, 0xc6, 0xd4, 0xcb, 0x8b, 0x23, 0xbd, 0xac, 0x43, 0x76, 0x85, 0x8a, 0x70, - 0x3a, 0x30, 0xc2, 0xc5, 0xa9, 0x34, 0x30, 0x58, 0xae, 0x39, 0x7b, 0xff, 0xdb, 0x8f, 0xcd, 0x5b, - 0xf7, 0x8e, 0xca, 0xe0, 0xfe, 0x51, 0x19, 0x3c, 0x38, 0x2a, 0x83, 0x3f, 0x8f, 0xca, 0xe0, 0xbb, - 0xe3, 0x72, 0xee, 0xc1, 0x71, 0x39, 0xf7, 0xe8, 0xb8, 0x9c, 0xfb, 0x6c, 0xf5, 0x89, 0x35, 0x3b, - 0x73, 0x91, 0x48, 0x4b, 0xd8, 0xc9, 0xa7, 0xb7, 0xbf, 0xb7, 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff, - 0xa7, 0x56, 0xa6, 0xd8, 0xb0, 0x0a, 0x00, 0x00, + 0x24, 0x54, 0x71, 0x48, 0x51, 0x72, 0x08, 0xe2, 0x57, 0xa0, 0xd9, 0x19, 0xaf, 0x9d, 0x10, 0x4a, + 0xa4, 0x60, 0xf5, 0x92, 0x78, 0xde, 0xdb, 0xfd, 0xbe, 0xf7, 0xbd, 0xf9, 0xf6, 0xcd, 0xc0, 0x9a, + 0xcf, 0x65, 0xc4, 0x65, 0x3d, 0xa0, 0x52, 0x09, 0xda, 0xee, 0x29, 0xca, 0x59, 0xbd, 0xbf, 0xd2, + 0x26, 0x0a, 0xaf, 0x9c, 0x08, 0xd6, 0x62, 0xc1, 0x15, 0x47, 0x37, 0xcc, 0xf3, 0xb5, 0x13, 0x29, + 0xfb, 0x7c, 0x31, 0xdf, 0xe1, 0x1d, 0x9e, 0x3c, 0x57, 0xd7, 0xbf, 0xcc, 0x2b, 0xc5, 0x92, 0xa5, + 0x68, 0x63, 0x49, 0x52, 0x68, 0x9f, 0x53, 0x0b, 0x59, 0x5c, 0x34, 0x79, 0xcf, 0xbc, 0x68, 0xf1, + 0x4d, 0xea, 0x1a, 0x8e, 0x28, 0xe3, 0xf5, 0xe4, 0xaf, 0x09, 0x39, 0x3f, 0x4f, 0xc0, 0xdc, 0x06, + 0x16, 0x38, 0x92, 0x08, 0xc3, 0xab, 0x3e, 0x8f, 0xa2, 0x1e, 0xa3, 0xea, 0xbe, 0xa7, 0xf0, 0x4e, + 0x01, 0x54, 0x40, 0x75, 0xba, 0xf1, 0xee, 0xa3, 0x83, 0x72, 0xe6, 0xf7, 0x83, 0xf2, 0x2b, 0x1d, + 0xaa, 0xba, 0xbd, 0x76, 0xcd, 0xe7, 0x91, 0x45, 0xb5, 0xff, 0x96, 0x65, 0x70, 0xaf, 0xae, 0xee, + 0xc7, 0x44, 0xd6, 0x5a, 0xc4, 0x7f, 0xb2, 0xbf, 0x0c, 0x2d, 0x69, 0x8b, 0xf8, 0xee, 0x4b, 0x29, + 0xe4, 0x47, 0x78, 0x07, 0xc5, 0x30, 0xaf, 0xcb, 0xd6, 0xb5, 0xc5, 0x5c, 0x12, 0xe1, 0x09, 0xb2, + 0x8d, 0x45, 0x50, 0xb8, 0x94, 0x30, 0xbd, 0x77, 0x11, 0xa6, 0x02, 0x70, 0x91, 0xc6, 0xde, 0xb0, + 0xd0, 0x6e, 0x82, 0x8c, 0x04, 0x9c, 0x6f, 0x73, 0xd6, 0x93, 0xff, 0xa0, 0x9c, 0xf8, 0x5f, 0x28, + 0xe7, 0x12, 0xf0, 0x53, 0x9c, 0xb7, 0xe1, 0xfc, 0x36, 0x55, 0xdd, 0x40, 0xe0, 0x6d, 0x0f, 0x07, + 0x81, 0xf0, 0x08, 0xc3, 0xed, 0x90, 0x04, 0x85, 0x6c, 0x05, 0x54, 0x2f, 0xbb, 0x73, 0x83, 0xe4, + 0x5a, 0x10, 0x88, 0x75, 0x93, 0x5a, 0xbd, 0xf5, 0xd5, 0xf1, 0xde, 0x52, 0x65, 0x84, 0x73, 0xe7, + 0xa4, 0x87, 0xcc, 0x1e, 0x39, 0xbf, 0x01, 0x58, 0xfc, 0x18, 0x87, 0x34, 0xc0, 0x8a, 0x8b, 0x0f, + 0xa8, 0x54, 0x5c, 0x50, 0x1f, 0x87, 0x86, 0x58, 0xa2, 0xaf, 0x01, 0xbc, 0xee, 0xf7, 0xa2, 0x5e, + 0x88, 0x15, 0xed, 0x13, 0x2b, 0xd5, 0x13, 0x58, 0x51, 0x5e, 0x00, 0x95, 0x89, 0xea, 0x95, 0xdb, + 0x37, 0xad, 0x43, 0x6b, 0xba, 0x57, 0x03, 0xa7, 0x69, 0x31, 0x4d, 0x4e, 0x59, 0xe3, 0x1d, 0xdd, + 0x8e, 0x9f, 0x9e, 0x95, 0x5f, 0x3f, 0x5f, 0x3b, 0xf4, 0x3b, 0xf2, 0xe1, 0xf1, 0xde, 0x12, 0x70, + 0xe7, 0x87, 0xb4, 0xa6, 0x18, 0x57, 0x93, 0xa2, 0x57, 0xe1, 0xac, 0x20, 0x5b, 0x44, 0x10, 0xe6, + 0x13, 0xcf, 0xe7, 0x3d, 0xa6, 0x92, 0xbd, 0xbe, 0xea, 0xce, 0xa4, 0xe1, 0xa6, 0x8e, 0x3a, 0x3f, + 0x02, 0x78, 0x3d, 0x15, 0xd6, 0xec, 0x09, 0x41, 0x98, 0x1a, 0xa8, 0x8a, 0xe1, 0x94, 0x51, 0x22, + 0xc7, 0x2c, 0x62, 0x40, 0x83, 0x16, 0x60, 0x2e, 0x26, 0x82, 0x72, 0xe3, 0xcc, 0xac, 0x6b, 0x57, + 0xce, 0x77, 0x00, 0x96, 0xd2, 0x2a, 0xd7, 0x7c, 0xab, 0x99, 0x04, 0x4d, 0x1e, 0x45, 0x54, 0x4a, + 0xca, 0x19, 0xea, 0x43, 0xe8, 0xa7, 0xab, 0x31, 0xd7, 0x3b, 0xc2, 0xe4, 0x7c, 0x03, 0xe0, 0x8d, + 0xb4, 0xb4, 0x3b, 0x3d, 0x25, 0x15, 0x66, 0x01, 0x65, 0x9d, 0x17, 0xd6, 0x44, 0xe7, 0x7b, 0x00, + 0xe7, 0xd2, 0x8a, 0x36, 0x43, 0x2c, 0xbb, 0xeb, 0x7d, 0xc2, 0x14, 0x7a, 0x0d, 0xbe, 0xdc, 0x1f, + 0x84, 0x3d, 0xdb, 0x66, 0x90, 0xb4, 0x79, 0x36, 0x8d, 0x6f, 0x24, 0x61, 0xf4, 0x09, 0xbc, 0xbc, + 0x25, 0xb0, 0xaf, 0xbf, 0x00, 0x3b, 0x23, 0x2e, 0x36, 0x8d, 0x52, 0x34, 0xe7, 0x4b, 0x00, 0xf3, + 0x67, 0x14, 0x27, 0xd1, 0x67, 0x70, 0x61, 0x58, 0x9d, 0xd4, 0x09, 0x8f, 0x24, 0x19, 0xdb, 0xb6, + 0x37, 0x6b, 0xcf, 0x19, 0xd9, 0xb5, 0x33, 0x20, 0x1b, 0xd3, 0xba, 0x64, 0xd3, 0x9b, 0x7c, 0xff, + 0x0c, 0x4a, 0x67, 0x17, 0xc0, 0xa9, 0xf7, 0x09, 0xd9, 0xe0, 0x3c, 0x44, 0x9f, 0xc3, 0x99, 0xe1, + 0x10, 0x8e, 0x39, 0x0f, 0xc7, 0xbc, 0x5b, 0xc3, 0x91, 0xaf, 0xe9, 0x9d, 0x2f, 0x2e, 0xc1, 0x62, + 0x73, 0x34, 0xb2, 0x19, 0x13, 0x16, 0x98, 0xf9, 0x86, 0x43, 0x94, 0x87, 0x93, 0x8a, 0xaa, 0x90, + 0x98, 0xa3, 0xc1, 0x35, 0x0b, 0x54, 0x81, 0x57, 0x02, 0x22, 0x7d, 0x41, 0xe3, 0xe1, 0x46, 0xb9, + 0xa3, 0x21, 0x74, 0x13, 0x4e, 0x0b, 0xe2, 0xd3, 0x98, 0x12, 0xa6, 0xcc, 0xe4, 0x75, 0x87, 0x01, + 0xd4, 0x85, 0x39, 0x1c, 0x25, 0xb3, 0x21, 0x9b, 0x68, 0x5d, 0x3c, 0x53, 0x6b, 0x22, 0xf4, 0x6d, + 0x2b, 0xb4, 0x7a, 0x0e, 0xa1, 0x23, 0x2a, 0x2d, 0xfe, 0x6a, 0x75, 0xf7, 0x41, 0x39, 0xf3, 0xe7, + 0x83, 0x72, 0xe6, 0x97, 0xfd, 0xe5, 0xa2, 0x25, 0xe9, 0xf0, 0xfe, 0x08, 0x07, 0x53, 0xba, 0x44, + 0xe0, 0x3c, 0x03, 0x70, 0xbe, 0x45, 0x42, 0xd2, 0x49, 0x36, 0x4b, 0x61, 0xa1, 0x28, 0xeb, 0x7c, + 0xc8, 0xb6, 0x92, 0x91, 0x16, 0x0b, 0xd2, 0xa7, 0x5c, 0x1f, 0x2a, 0xa3, 0xee, 0x9d, 0x19, 0x84, + 0xad, 0x79, 0xef, 0xc2, 0x49, 0xa9, 0xf0, 0x3d, 0x62, 0x9d, 0xbb, 0x76, 0x11, 0xe7, 0x1a, 0x19, + 0x06, 0x0f, 0xb5, 0x60, 0xae, 0x4b, 0x68, 0xa7, 0x6b, 0x5a, 0x99, 0x6d, 0xbc, 0xf1, 0xd7, 0x41, + 0x79, 0xd6, 0x17, 0x44, 0x4f, 0x5c, 0xe6, 0x99, 0xd4, 0x0f, 0xc7, 0x7b, 0x4b, 0xa7, 0x63, 0xb6, + 0x17, 0x66, 0xe1, 0x3c, 0x05, 0x70, 0xd1, 0x2a, 0xa4, 0x9c, 0xa5, 0x5a, 0xed, 0x19, 0xb6, 0x0e, + 0xaf, 0x0d, 0x3f, 0x03, 0x7d, 0x88, 0x11, 0x29, 0xed, 0x85, 0xa0, 0xf0, 0x64, 0x7f, 0x39, 0x6f, + 0x4b, 0x5b, 0x33, 0x99, 0x4d, 0x25, 0xf4, 0xa8, 0x19, 0x7e, 0xd7, 0x36, 0x8e, 0x18, 0xcc, 0xa5, + 0x47, 0xfc, 0x38, 0x6d, 0x6c, 0x59, 0x56, 0xb3, 0x7a, 0x83, 0x9d, 0x5f, 0x01, 0xbc, 0xf5, 0xef, + 0x2e, 0xbe, 0x4b, 0x55, 0xb7, 0x45, 0x62, 0x2e, 0xa9, 0x1a, 0x93, 0xa1, 0x17, 0x46, 0x0c, 0xad, + 0x53, 0x76, 0x85, 0x0a, 0x70, 0x2a, 0x30, 0xc4, 0x85, 0xc9, 0x24, 0x31, 0x58, 0xae, 0x3a, 0xbb, + 0xff, 0x69, 0xca, 0xc6, 0x9d, 0x87, 0x87, 0x25, 0xf0, 0xe8, 0xb0, 0x04, 0x1e, 0x1f, 0x96, 0xc0, + 0x1f, 0x87, 0x25, 0xf0, 0xed, 0x51, 0x29, 0xf3, 0xf8, 0xa8, 0x94, 0x79, 0x7a, 0x54, 0xca, 0x7c, + 0xba, 0xf2, 0xdc, 0x9e, 0x9d, 0xba, 0x4d, 0x24, 0x2d, 0x6c, 0xe7, 0x92, 0x2b, 0xe0, 0x5b, 0x7f, + 0x07, 0x00, 0x00, 0xff, 0xff, 0x28, 0x8c, 0xb3, 0x24, 0xb5, 0x0a, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { From f984ea8a912ca6bdcb58acf0314028413c39c777 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 1 Feb 2023 15:12:57 -0600 Subject: [PATCH 028/122] handle amino.message_encoding --- codec/aminojson/json_marshal.go | 132 +++++++++++++++++---------- codec/aminojson/json_marshal_test.go | 6 +- 2 files changed, 87 insertions(+), 51 deletions(-) diff --git a/codec/aminojson/json_marshal.go b/codec/aminojson/json_marshal.go index d26fc8e8607b..74efea8f0f19 100644 --- a/codec/aminojson/json_marshal.go +++ b/codec/aminojson/json_marshal.go @@ -21,19 +21,33 @@ type JSONMarshaller interface { type AminoJson struct { // maps cosmos_proto.scalar -> zero value factory - zeroValues map[string]func() protoreflect.Value + zeroValues map[string]func() protoreflect.Value + messageEncoders map[string]func(message protoreflect.Message) protoreflect.Value } -func MarshalAmino(message proto.Message) ([]byte, error) { - buf := &bytes.Buffer{} +func NewAminoJson() AminoJson { aj := AminoJson{ zeroValues: map[string]func() protoreflect.Value{ "cosmos.Dec": func() protoreflect.Value { return protoreflect.ValueOfString("0") }, }, + messageEncoders: map[string]func(message protoreflect.Message) protoreflect.Value{ + "key_field": func(message protoreflect.Message) protoreflect.Value { + // todo + // err handling + keyField := message.Get(message.Descriptor().Fields().ByName("key")) + bz := keyField.Bytes() + return protoreflect.ValueOfBytes(bz) + }, + }, } + return aj +} +func MarshalAmino(message proto.Message) ([]byte, error) { + buf := &bytes.Buffer{} + aj := NewAminoJson() vmsg := protoreflect.ValueOfMessage(message.ProtoReflect()) err := aj.marshal(vmsg, nil, buf) return buf.Bytes(), err @@ -46,23 +60,7 @@ func (aj AminoJson) marshal( switch val := value.Interface().(type) { case protoreflect.Message: - var res error - opts := val.Descriptor().Options() - if proto.HasExtension(opts, amino.E_Name) { - name := proto.GetExtension(opts, amino.E_Name) - _, err := writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, name))) - if err != nil { - return err - } - res = aj.marshalMessage(val, writer) - _, err = writer.Write([]byte(`}`)) - if err != nil { - return err - } - } else { - res = aj.marshalMessage(val, writer) - } - return res + return aj.marshalMessage(val, writer) case protoreflect.Map: return errors.New("maps are not supported") @@ -86,41 +84,22 @@ func (aj AminoJson) marshal( return nil } -// omitEmpty returns true if the field should be omitted if empty. Empty field omission is the default behavior. -func omitEmpty(field protoreflect.FieldDescriptor) bool { - opts := field.Options() - if proto.HasExtension(opts, amino.E_DontOmitempty) { - dontOmitEmpty := proto.GetExtension(opts, amino.E_DontOmitempty).(bool) - return !dontOmitEmpty - } - // legacy support for gogoproto would need to look something like below. - // - //if gproto.GetBoolExtension(opts, gogoproto.E_Nullable, true) { - // - //} - return true -} - -func fieldName(field protoreflect.FieldDescriptor) string { - opts := field.Options() - if proto.HasExtension(opts, amino.E_FieldName) { - return proto.GetExtension(opts, amino.E_FieldName).(string) +func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) error { + if encoded, encodingOption := aj.encodeMessage(msg); encodingOption { + return aj.marshal(encoded, nil, writer) } - return string(field.Name()) -} -func (aj AminoJson) fieldZeroValue(field protoreflect.FieldDescriptor) (protoreflect.Value, bool) { - opts := field.Options() - if proto.HasExtension(opts, cosmos_proto.E_Scalar) { - scalar := proto.GetExtension(opts, cosmos_proto.E_Scalar).(string) - if fn, ok := aj.zeroValues[scalar]; ok { - return fn(), true + named := false + opts := msg.Descriptor().Options() + if proto.HasExtension(opts, amino.E_Name) { + name := proto.GetExtension(opts, amino.E_Name) + _, err := writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, name))) + if err != nil { + return err } + named = true } - return field.Default(), false -} -func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) error { _, err := writer.Write([]byte("{")) if err != nil { return err @@ -173,6 +152,14 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e if err != nil { return err } + + if named { + _, err = writer.Write([]byte("}")) + if err != nil { + return err + } + } + return nil } @@ -221,3 +208,48 @@ func (aj AminoJson) marshalList( _, err = writer.Write([]byte("]")) return err } + +// omitEmpty returns true if the field should be omitted if empty. Empty field omission is the default behavior. +func omitEmpty(field protoreflect.FieldDescriptor) bool { + opts := field.Options() + if proto.HasExtension(opts, amino.E_DontOmitempty) { + dontOmitEmpty := proto.GetExtension(opts, amino.E_DontOmitempty).(bool) + return !dontOmitEmpty + } + // legacy support for gogoproto would need to look something like below. + // + //if gproto.GetBoolExtension(opts, gogoproto.E_Nullable, true) { + // + //} + return true +} + +func fieldName(field protoreflect.FieldDescriptor) string { + opts := field.Options() + if proto.HasExtension(opts, amino.E_FieldName) { + return proto.GetExtension(opts, amino.E_FieldName).(string) + } + return string(field.Name()) +} + +func (aj AminoJson) fieldZeroValue(field protoreflect.FieldDescriptor) (protoreflect.Value, bool) { + opts := field.Options() + if proto.HasExtension(opts, cosmos_proto.E_Scalar) { + scalar := proto.GetExtension(opts, cosmos_proto.E_Scalar).(string) + if fn, ok := aj.zeroValues[scalar]; ok { + return fn(), true + } + } + return field.Default(), false +} + +func (aj AminoJson) encodeMessage(message protoreflect.Message) (protoreflect.Value, bool) { + opts := message.Descriptor().Options() + if proto.HasExtension(opts, amino.E_MessageEncoding) { + encoding := proto.GetExtension(opts, amino.E_MessageEncoding).(string) + if fn, ok := aj.messageEncoders[encoding]; ok { + return fn(message), true + } + } + return protoreflect.Value{}, false +} diff --git a/codec/aminojson/json_marshal_test.go b/codec/aminojson/json_marshal_test.go index c37ec30f09ee..0d43bc9b6924 100644 --- a/codec/aminojson/json_marshal_test.go +++ b/codec/aminojson/json_marshal_test.go @@ -15,9 +15,9 @@ import ( authapi "cosmossdk.io/api/cosmos/auth/v1beta1" "cosmossdk.io/api/cosmos/crypto/ed25519" distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" - "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/aminojson" + crypto "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" "github.com/cosmos/cosmos-sdk/testutil/rapidproto" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" @@ -64,6 +64,7 @@ func TestAminoJSON_LegacyParity(t *testing.T) { cdc := amino.NewCodec() cdc.RegisterConcrete(authtypes.Params{}, "cosmos-sdk/x/auth/Params", nil) cdc.RegisterConcrete(disttypes.MsgWithdrawDelegatorReward{}, "cosmos-sdk/MsgWithdrawDelegationReward", nil) + cdc.RegisterConcrete(&ed25519.PubKey{}, crypto.PubKeyName, nil) cases := map[string]struct { gogo any @@ -86,6 +87,9 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &disttypes.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, pulsar: &distapi.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, }, + "crypto/pubkey": { + gogo: &crypto.PubKey{Key: []byte("key")}, pulsar: &ed25519.PubKey{Key: []byte("key")}, + }, } for name, tc := range cases { t.Run(name, func(t *testing.T) { From a8d2dc2d210ca927d73fcf294abc1c9dffce8a58 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 1 Feb 2023 15:16:43 -0600 Subject: [PATCH 029/122] refactor, clean up --- codec/aminojson/json_marshal.go | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/codec/aminojson/json_marshal.go b/codec/aminojson/json_marshal.go index 74efea8f0f19..6a4134690b78 100644 --- a/codec/aminojson/json_marshal.go +++ b/codec/aminojson/json_marshal.go @@ -49,14 +49,11 @@ func MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} aj := NewAminoJson() vmsg := protoreflect.ValueOfMessage(message.ProtoReflect()) - err := aj.marshal(vmsg, nil, buf) + err := aj.marshal(vmsg, buf) return buf.Bytes(), err } -func (aj AminoJson) marshal( - value protoreflect.Value, - field protoreflect.FieldDescriptor, - writer io.Writer) error { +func (aj AminoJson) marshal(value protoreflect.Value, writer io.Writer) error { switch val := value.Interface().(type) { case protoreflect.Message: @@ -66,7 +63,7 @@ func (aj AminoJson) marshal( return errors.New("maps are not supported") case protoreflect.List: - return aj.marshalList(field, val, writer) + return aj.marshalList(val, writer) case string, bool, int32, uint32, protoreflect.EnumNumber: return jsonMarshal(writer, val) @@ -76,8 +73,7 @@ func (aj AminoJson) marshal( return err case []byte: - _, err := fmt.Fprintf(writer, `"%s"`, - base64.StdEncoding.EncodeToString(val)) + _, err := fmt.Fprintf(writer, `"%s"`, base64.StdEncoding.EncodeToString(val)) return err } @@ -86,7 +82,7 @@ func (aj AminoJson) marshal( func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) error { if encoded, encodingOption := aj.encodeMessage(msg); encodingOption { - return aj.marshal(encoded, nil, writer) + return aj.marshal(encoded, writer) } named := false @@ -140,7 +136,7 @@ func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) e return err } - err = aj.marshal(v, f, writer) + err = aj.marshal(v, writer) if err != nil { return err } @@ -173,7 +169,6 @@ func jsonMarshal(w io.Writer, v interface{}) error { } func (aj AminoJson) marshalList( - fieldDescriptor protoreflect.FieldDescriptor, list protoreflect.List, writer io.Writer) error { n := list.Len() @@ -199,7 +194,7 @@ func (aj AminoJson) marshalList( } first = false - err = aj.marshal(list.Get(i), fieldDescriptor, writer) + err = aj.marshal(list.Get(i), writer) if err != nil { return err } From c39f381033233741184bb82847ca4ac98ac7f2dd Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 1 Feb 2023 15:39:12 -0600 Subject: [PATCH 030/122] thank you linter --- codec/aminojson/json_marshal.go | 25 +++++++--------- codec/aminojson/json_marshal_test.go | 44 +++++----------------------- 2 files changed, 18 insertions(+), 51 deletions(-) diff --git a/codec/aminojson/json_marshal.go b/codec/aminojson/json_marshal.go index 6a4134690b78..a7e5f447e26f 100644 --- a/codec/aminojson/json_marshal.go +++ b/codec/aminojson/json_marshal.go @@ -19,14 +19,14 @@ type JSONMarshaller interface { MarshalAmino(proto.Message) ([]byte, error) } -type AminoJson struct { +type AminoJSON struct { // maps cosmos_proto.scalar -> zero value factory zeroValues map[string]func() protoreflect.Value messageEncoders map[string]func(message protoreflect.Message) protoreflect.Value } -func NewAminoJson() AminoJson { - aj := AminoJson{ +func NewAminoJSON() AminoJSON { + aj := AminoJSON{ zeroValues: map[string]func() protoreflect.Value{ "cosmos.Dec": func() protoreflect.Value { return protoreflect.ValueOfString("0") @@ -47,14 +47,13 @@ func NewAminoJson() AminoJson { func MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} - aj := NewAminoJson() + aj := NewAminoJSON() vmsg := protoreflect.ValueOfMessage(message.ProtoReflect()) err := aj.marshal(vmsg, buf) return buf.Bytes(), err } -func (aj AminoJson) marshal(value protoreflect.Value, writer io.Writer) error { - +func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { switch val := value.Interface().(type) { case protoreflect.Message: return aj.marshalMessage(val, writer) @@ -80,7 +79,7 @@ func (aj AminoJson) marshal(value protoreflect.Value, writer io.Writer) error { return nil } -func (aj AminoJson) marshalMessage(msg protoreflect.Message, writer io.Writer) error { +func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) error { if encoded, encodingOption := aj.encodeMessage(msg); encodingOption { return aj.marshal(encoded, writer) } @@ -168,9 +167,7 @@ func jsonMarshal(w io.Writer, v interface{}) error { return err } -func (aj AminoJson) marshalList( - list protoreflect.List, - writer io.Writer) error { +func (aj AminoJSON) marshalList(list protoreflect.List, writer io.Writer) error { n := list.Len() // replicate https://github.com/tendermint/go-amino/blob/rc0/v0.16.0/json-encode.go#L222 @@ -213,9 +210,9 @@ func omitEmpty(field protoreflect.FieldDescriptor) bool { } // legacy support for gogoproto would need to look something like below. // - //if gproto.GetBoolExtension(opts, gogoproto.E_Nullable, true) { + // if gproto.GetBoolExtension(opts, gogoproto.E_Nullable, true) { // - //} + // } return true } @@ -227,7 +224,7 @@ func fieldName(field protoreflect.FieldDescriptor) string { return string(field.Name()) } -func (aj AminoJson) fieldZeroValue(field protoreflect.FieldDescriptor) (protoreflect.Value, bool) { +func (aj AminoJSON) fieldZeroValue(field protoreflect.FieldDescriptor) (protoreflect.Value, bool) { opts := field.Options() if proto.HasExtension(opts, cosmos_proto.E_Scalar) { scalar := proto.GetExtension(opts, cosmos_proto.E_Scalar).(string) @@ -238,7 +235,7 @@ func (aj AminoJson) fieldZeroValue(field protoreflect.FieldDescriptor) (protoref return field.Default(), false } -func (aj AminoJson) encodeMessage(message protoreflect.Message) (protoreflect.Value, bool) { +func (aj AminoJSON) encodeMessage(message protoreflect.Message) (protoreflect.Value, bool) { opts := message.Descriptor().Options() if proto.HasExtension(opts, amino.E_MessageEncoding) { encoding := proto.GetExtension(opts, amino.E_MessageEncoding).(string) diff --git a/codec/aminojson/json_marshal_test.go b/codec/aminojson/json_marshal_test.go index 0d43bc9b6924..8aa5d43f87b2 100644 --- a/codec/aminojson/json_marshal_test.go +++ b/codec/aminojson/json_marshal_test.go @@ -15,7 +15,6 @@ import ( authapi "cosmossdk.io/api/cosmos/auth/v1beta1" "cosmossdk.io/api/cosmos/crypto/ed25519" distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" - "github.com/cosmos/cosmos-sdk/codec" "github.com/cosmos/cosmos-sdk/codec/aminojson" crypto "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" "github.com/cosmos/cosmos-sdk/testutil/rapidproto" @@ -30,31 +29,6 @@ import ( "github.com/cosmos/cosmos-sdk/codec/aminojson/internal/testpb" ) -type pubKeyEd25519 struct { - ed25519.PubKey -} - -var _ codec.AminoMarshaler = pubKeyEd25519{} - -func (pubKey pubKeyEd25519) MarshalAmino() ([]byte, error) { - return pubKey.Key, nil -} - -func (pubKey pubKeyEd25519) UnmarshalAmino([]byte) error { - panic("not implemented") -} - -func (pubKey pubKeyEd25519) UnmarshalAminoJSON([]byte) error { - panic("not implemented") -} - -// MarshalAminoJSON overrides Amino JSON marshalling. -func (pubKey pubKeyEd25519) MarshalAminoJSON() ([]byte, error) { - // When we marshal to Amino JSON, we don't marshal the "key" field itself, - // just its contents (i.e. the key bytes). - return pubKey.MarshalAmino() -} - func marshalLegacy(msg proto.Message) ([]byte, error) { cdc := amino.NewCodec() return cdc.MarshalJSON(msg) @@ -109,9 +83,6 @@ func TestAminoJSON_EdgeCases(t *testing.T) { require.NoError(t, err) cdc := amino.NewCodec() - cdc.RegisterConcrete((*pubKeyEd25519)(nil), "tendermint/PubKeyEd25519", nil) - pubkey := &pubKeyEd25519{} - pubkey.Key = []byte("key") cases := map[string]struct { msg proto.Message @@ -121,7 +92,6 @@ func TestAminoJSON_EdgeCases(t *testing.T) { "single map": {msg: &testpb.WithAMap{StrMap: map[string]string{"foo": "bar"}}, shouldErr: true}, "any type": {msg: &testpb.ABitOfEverything{Any: simpleAny}}, "zero duration": {msg: &testpb.ABitOfEverything{Duration: durationpb.New(time.Second * 0)}}, - "key_field": {msg: pubkey}, } for name, tc := range cases { t.Run(name, func(t *testing.T) { @@ -130,10 +100,10 @@ func TestAminoJSON_EdgeCases(t *testing.T) { if tc.shouldErr { require.Error(t, err) return - } else { - require.NoError(t, err) } + require.NoError(t, err) + rv := reflect.New(reflect.TypeOf(tc.msg).Elem()).Elem() msg2 := rv.Addr().Interface().(proto.Message) @@ -143,9 +113,9 @@ func TestAminoJSON_EdgeCases(t *testing.T) { fmt.Printf("legacy: %s vs %s\n", legacyBz, bz) assert.Equal(t, string(legacyBz), string(bz), "legacy: %s vs %s", legacyBz, bz) - goProtoJson, err := protojson.Marshal(tc.msg) - err = cdc.UnmarshalJSON(bz, msg2.(proto.Message)) - assert.NilError(t, err, "unmarshal failed: %s vs %s", legacyBz, goProtoJson) + goProtoJSON, err := protojson.Marshal(tc.msg) + err = cdc.UnmarshalJSON(bz, msg2) + assert.NilError(t, err, "unmarshal failed: %s vs %s", legacyBz, goProtoJSON) }) } } @@ -214,8 +184,8 @@ func checkLegacyParity(t *rapid.T, message proto.Message, marshaledBytes []byte) func checkRoundTrip(t *rapid.T, message proto.Message, marshaledBytes []byte) { message2 := message.ProtoReflect().New().Interface() cdc := amino.NewCodec() - goProtoJson, err := cdc.MarshalJSON(message) + goProtoJSON, err := cdc.MarshalJSON(message) assert.NilError(t, err) err = cdc.UnmarshalJSON(marshaledBytes, message2) - assert.NilError(t, err, "%s vs %s", string(marshaledBytes), string(goProtoJson)) + assert.NilError(t, err, "%s vs %s", string(marshaledBytes), string(goProtoJSON)) } From ef4e87dbbc116f1aaad69a6c06df0a20bdfd450b Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 1 Feb 2023 17:52:33 -0600 Subject: [PATCH 031/122] remove println --- codec/aminojson/json_marshal_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/codec/aminojson/json_marshal_test.go b/codec/aminojson/json_marshal_test.go index 8aa5d43f87b2..a9400d9710dd 100644 --- a/codec/aminojson/json_marshal_test.go +++ b/codec/aminojson/json_marshal_test.go @@ -1,7 +1,6 @@ package aminojson_test import ( - "fmt" "reflect" "testing" "time" @@ -110,7 +109,6 @@ func TestAminoJSON_EdgeCases(t *testing.T) { legacyBz, err := cdc.MarshalJSON(tc.msg) assert.NilError(t, err) - fmt.Printf("legacy: %s vs %s\n", legacyBz, bz) assert.Equal(t, string(legacyBz), string(bz), "legacy: %s vs %s", legacyBz, bz) goProtoJSON, err := protojson.Marshal(tc.msg) From befbb6c702dda685b10c47e4bd3f73fdf44cafcd Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 2 Feb 2023 11:04:09 -0600 Subject: [PATCH 032/122] move package to x/tx/ --- {codec => x/tx}/aminojson/.gitignore | 0 {codec => x/tx}/aminojson/Makefile | 0 {codec => x/tx}/aminojson/README.md | 0 {codec => x/tx}/aminojson/install-buf.sh | 0 {codec => x/tx}/aminojson/internal/buf.gen.yaml | 0 {codec => x/tx}/aminojson/internal/buf.yaml | 0 {codec => x/tx}/aminojson/internal/testpb/test.pb.go | 0 {codec => x/tx}/aminojson/internal/testpb/test.proto | 0 {codec => x/tx}/aminojson/json_marshal.go | 0 {codec => x/tx}/aminojson/json_marshal_test.go | 0 {codec => x/tx}/aminojson/testdata/legacyamino.json | 0 {codec => x/tx}/aminojson/testdata/stablejson.json | 0 12 files changed, 0 insertions(+), 0 deletions(-) rename {codec => x/tx}/aminojson/.gitignore (100%) rename {codec => x/tx}/aminojson/Makefile (100%) rename {codec => x/tx}/aminojson/README.md (100%) rename {codec => x/tx}/aminojson/install-buf.sh (100%) rename {codec => x/tx}/aminojson/internal/buf.gen.yaml (100%) rename {codec => x/tx}/aminojson/internal/buf.yaml (100%) rename {codec => x/tx}/aminojson/internal/testpb/test.pb.go (100%) rename {codec => x/tx}/aminojson/internal/testpb/test.proto (100%) rename {codec => x/tx}/aminojson/json_marshal.go (100%) rename {codec => x/tx}/aminojson/json_marshal_test.go (100%) rename {codec => x/tx}/aminojson/testdata/legacyamino.json (100%) rename {codec => x/tx}/aminojson/testdata/stablejson.json (100%) diff --git a/codec/aminojson/.gitignore b/x/tx/aminojson/.gitignore similarity index 100% rename from codec/aminojson/.gitignore rename to x/tx/aminojson/.gitignore diff --git a/codec/aminojson/Makefile b/x/tx/aminojson/Makefile similarity index 100% rename from codec/aminojson/Makefile rename to x/tx/aminojson/Makefile diff --git a/codec/aminojson/README.md b/x/tx/aminojson/README.md similarity index 100% rename from codec/aminojson/README.md rename to x/tx/aminojson/README.md diff --git a/codec/aminojson/install-buf.sh b/x/tx/aminojson/install-buf.sh similarity index 100% rename from codec/aminojson/install-buf.sh rename to x/tx/aminojson/install-buf.sh diff --git a/codec/aminojson/internal/buf.gen.yaml b/x/tx/aminojson/internal/buf.gen.yaml similarity index 100% rename from codec/aminojson/internal/buf.gen.yaml rename to x/tx/aminojson/internal/buf.gen.yaml diff --git a/codec/aminojson/internal/buf.yaml b/x/tx/aminojson/internal/buf.yaml similarity index 100% rename from codec/aminojson/internal/buf.yaml rename to x/tx/aminojson/internal/buf.yaml diff --git a/codec/aminojson/internal/testpb/test.pb.go b/x/tx/aminojson/internal/testpb/test.pb.go similarity index 100% rename from codec/aminojson/internal/testpb/test.pb.go rename to x/tx/aminojson/internal/testpb/test.pb.go diff --git a/codec/aminojson/internal/testpb/test.proto b/x/tx/aminojson/internal/testpb/test.proto similarity index 100% rename from codec/aminojson/internal/testpb/test.proto rename to x/tx/aminojson/internal/testpb/test.proto diff --git a/codec/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go similarity index 100% rename from codec/aminojson/json_marshal.go rename to x/tx/aminojson/json_marshal.go diff --git a/codec/aminojson/json_marshal_test.go b/x/tx/aminojson/json_marshal_test.go similarity index 100% rename from codec/aminojson/json_marshal_test.go rename to x/tx/aminojson/json_marshal_test.go diff --git a/codec/aminojson/testdata/legacyamino.json b/x/tx/aminojson/testdata/legacyamino.json similarity index 100% rename from codec/aminojson/testdata/legacyamino.json rename to x/tx/aminojson/testdata/legacyamino.json diff --git a/codec/aminojson/testdata/stablejson.json b/x/tx/aminojson/testdata/stablejson.json similarity index 100% rename from codec/aminojson/testdata/stablejson.json rename to x/tx/aminojson/testdata/stablejson.json From 1b0f2b10c28487e03c52b7fb591ad3c14555a43f Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 2 Feb 2023 12:10:26 -0600 Subject: [PATCH 033/122] refactor: fixing tests - temporarily move rapidproto into x/tx - move tests depending on gogoproto types into the sdk --- codec/aminojson_test.go | 61 +++++++++++++++++++ x/tx/aminojson/internal/buf.gen.yaml | 2 +- x/tx/aminojson/json_marshal_test.go | 58 ++---------------- x/tx/go.mod | 5 +- x/tx/go.sum | 10 +-- {testutil => x/tx}/rapidproto/rapidproto.go | 0 .../tx}/rapidproto/rapidproto_test.go | 0 .../tx}/rapidproto/testdata/seed0.json | 0 .../tx}/rapidproto/testdata/seed1.json | 0 .../tx}/rapidproto/testdata/seed2.json | 0 .../tx}/rapidproto/testdata/seed3.json | 0 .../tx}/rapidproto/testdata/seed4.json | 0 12 files changed, 75 insertions(+), 61 deletions(-) create mode 100644 codec/aminojson_test.go rename {testutil => x/tx}/rapidproto/rapidproto.go (100%) rename {testutil => x/tx}/rapidproto/rapidproto_test.go (100%) rename {testutil => x/tx}/rapidproto/testdata/seed0.json (100%) rename {testutil => x/tx}/rapidproto/testdata/seed1.json (100%) rename {testutil => x/tx}/rapidproto/testdata/seed2.json (100%) rename {testutil => x/tx}/rapidproto/testdata/seed3.json (100%) rename {testutil => x/tx}/rapidproto/testdata/seed4.json (100%) diff --git a/codec/aminojson_test.go b/codec/aminojson_test.go new file mode 100644 index 000000000000..c608e834473b --- /dev/null +++ b/codec/aminojson_test.go @@ -0,0 +1,61 @@ +package codec_test + +import ( + "testing" + + "github.com/stretchr/testify/require" + "github.com/tendermint/go-amino" + "google.golang.org/protobuf/proto" + + authapi "cosmossdk.io/api/cosmos/auth/v1beta1" + "cosmossdk.io/api/cosmos/crypto/ed25519" + distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" + "cosmossdk.io/x/tx/aminojson" + cryptotypes "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" +) + +func TestAminoJSON_LegacyParity(t *testing.T) { + cdc := amino.NewCodec() + cdc.RegisterConcrete(authtypes.Params{}, "cosmos-sdk/x/auth/Params", nil) + cdc.RegisterConcrete(disttypes.MsgWithdrawDelegatorReward{}, "cosmos-sdk/MsgWithdrawDelegationReward", nil) + cdc.RegisterConcrete(&ed25519.PubKey{}, cryptotypes.PubKeyName, nil) + + cases := map[string]struct { + gogo any + pulsar proto.Message + }{ + "auth/params": {gogo: &authtypes.Params{TxSigLimit: 10}, pulsar: &authapi.Params{TxSigLimit: 10}}, + "distribution/delegator_starting_info": { + gogo: &disttypes.DelegatorStartingInfo{}, + pulsar: &distapi.DelegatorStartingInfo{}, + }, + "distribution/delegation_delegator_reward": { + gogo: &disttypes.DelegationDelegatorReward{}, + pulsar: &distapi.DelegationDelegatorReward{}, + }, + "distribution/community_pool_spend_proposal_with_deposit": { + gogo: &disttypes.CommunityPoolSpendProposalWithDeposit{}, + pulsar: &distapi.CommunityPoolSpendProposalWithDeposit{}, + }, + "distribution/msg_withdraw_delegator_reward": { + gogo: &disttypes.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, + pulsar: &distapi.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, + }, + "crypto/pubkey": { + gogo: &cryptotypes.PubKey{Key: []byte("key")}, pulsar: &ed25519.PubKey{Key: []byte("key")}, + }, + } + for name, tc := range cases { + t.Run(name, func(t *testing.T) { + gogoBytes, err := cdc.MarshalJSON(tc.gogo) + require.NoError(t, err) + + pulsarBytes, err := aminojson.MarshalAmino(tc.pulsar) + require.NoError(t, err) + + require.Equal(t, string(gogoBytes), string(pulsarBytes), "gogo: %s vs pulsar: %s", gogoBytes, pulsarBytes) + }) + } +} diff --git a/x/tx/aminojson/internal/buf.gen.yaml b/x/tx/aminojson/internal/buf.gen.yaml index 881264bc144c..664653e002c2 100644 --- a/x/tx/aminojson/internal/buf.gen.yaml +++ b/x/tx/aminojson/internal/buf.gen.yaml @@ -2,7 +2,7 @@ version: v1 managed: enabled: true go_package_prefix: - default: github.com/cosmos/cosmos-proto/internal + default: github.com/cosmos/cosmos-sdk/x/tx/aminojson/internal plugins: - name: go out: . diff --git a/x/tx/aminojson/json_marshal_test.go b/x/tx/aminojson/json_marshal_test.go index a9400d9710dd..d9b665dfbda3 100644 --- a/x/tx/aminojson/json_marshal_test.go +++ b/x/tx/aminojson/json_marshal_test.go @@ -11,21 +11,15 @@ import ( "google.golang.org/protobuf/proto" "pgregory.net/rapid" - authapi "cosmossdk.io/api/cosmos/auth/v1beta1" - "cosmossdk.io/api/cosmos/crypto/ed25519" - distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" - "github.com/cosmos/cosmos-sdk/codec/aminojson" - crypto "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" - "github.com/cosmos/cosmos-sdk/testutil/rapidproto" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - "google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/durationpb" "google.golang.org/protobuf/types/known/timestamppb" "gotest.tools/v3/assert" - "github.com/cosmos/cosmos-sdk/codec/aminojson/internal/testpb" + "cosmossdk.io/x/tx/aminojson" + "cosmossdk.io/x/tx/rapidproto" + + "cosmossdk.io/x/tx/aminojson/internal/testpb" ) func marshalLegacy(msg proto.Message) ([]byte, error) { @@ -33,50 +27,6 @@ func marshalLegacy(msg proto.Message) ([]byte, error) { return cdc.MarshalJSON(msg) } -func TestAminoJSON_LegacyParity(t *testing.T) { - cdc := amino.NewCodec() - cdc.RegisterConcrete(authtypes.Params{}, "cosmos-sdk/x/auth/Params", nil) - cdc.RegisterConcrete(disttypes.MsgWithdrawDelegatorReward{}, "cosmos-sdk/MsgWithdrawDelegationReward", nil) - cdc.RegisterConcrete(&ed25519.PubKey{}, crypto.PubKeyName, nil) - - cases := map[string]struct { - gogo any - pulsar proto.Message - }{ - "auth/params": {gogo: &authtypes.Params{TxSigLimit: 10}, pulsar: &authapi.Params{TxSigLimit: 10}}, - "distribution/delegator_starting_info": { - gogo: &disttypes.DelegatorStartingInfo{}, - pulsar: &distapi.DelegatorStartingInfo{}, - }, - "distribution/delegation_delegator_reward": { - gogo: &disttypes.DelegationDelegatorReward{}, - pulsar: &distapi.DelegationDelegatorReward{}, - }, - "distribution/community_pool_spend_proposal_with_deposit": { - gogo: &disttypes.CommunityPoolSpendProposalWithDeposit{}, - pulsar: &distapi.CommunityPoolSpendProposalWithDeposit{}, - }, - "distribution/msg_withdraw_delegator_reward": { - gogo: &disttypes.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, - pulsar: &distapi.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, - }, - "crypto/pubkey": { - gogo: &crypto.PubKey{Key: []byte("key")}, pulsar: &ed25519.PubKey{Key: []byte("key")}, - }, - } - for name, tc := range cases { - t.Run(name, func(t *testing.T) { - gogoBytes, err := cdc.MarshalJSON(tc.gogo) - require.NoError(t, err) - - pulsarBytes, err := aminojson.MarshalAmino(tc.pulsar) - require.NoError(t, err) - - require.Equal(t, string(gogoBytes), string(pulsarBytes), "gogo: %s vs pulsar: %s", gogoBytes, pulsarBytes) - }) - } -} - func TestAminoJSON_EdgeCases(t *testing.T) { simpleAny, err := anypb.New(&testpb.NestedMessage{Foo: "any type nested", Bar: 11}) require.NoError(t, err) diff --git a/x/tx/go.mod b/x/tx/go.mod index 552947414e23..c55608d346bf 100644 --- a/x/tx/go.mod +++ b/x/tx/go.mod @@ -8,12 +8,13 @@ require ( cosmossdk.io/math v1.0.0-beta.4 github.com/cosmos/cosmos-proto v1.0.0-beta.1 github.com/google/go-cmp v0.5.9 + github.com/pkg/errors v0.9.1 github.com/stretchr/testify v1.8.1 - google.golang.org/protobuf v1.28.1 + google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 ) require ( - github.com/cosmos/gogoproto v1.4.3 // indirect + github.com/cosmos/gogoproto v1.4.4 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect diff --git a/x/tx/go.sum b/x/tx/go.sum index 6781e4d5255e..8f84a823cbec 100644 --- a/x/tx/go.sum +++ b/x/tx/go.sum @@ -6,8 +6,8 @@ cosmossdk.io/math v1.0.0-beta.4 h1:JtKedVLGzA0vv84xjYmZ75RKG35Kf2WwcFu8IjRkIIw= cosmossdk.io/math v1.0.0-beta.4/go.mod h1:An0MllWJY6PxibUpnwGk8jOm+a/qIxlKmL5Zyp9NnaM= github.com/cosmos/cosmos-proto v1.0.0-beta.1 h1:iDL5qh++NoXxG8hSy93FdYJut4XfgbShIocllGaXx/0= github.com/cosmos/cosmos-proto v1.0.0-beta.1/go.mod h1:8k2GNZghi5sDRFw/scPL8gMSowT1vDA+5ouxL8GjaUE= -github.com/cosmos/gogoproto v1.4.3 h1:RP3yyVREh9snv/lsOvmsAPQt8f44LgL281X0IOIhhcI= -github.com/cosmos/gogoproto v1.4.3/go.mod h1:0hLIG5TR7IvV1fme1HCFKjfzW9X2x0Mo+RooWXCnOWU= +github.com/cosmos/gogoproto v1.4.4 h1:nVAsgLlAf5jeN0fV7hRlkZvf768zU+dy4pG+hxc2P34= +github.com/cosmos/gogoproto v1.4.4/go.mod h1:/yl6/nLwsZcZ2JY3OrqjRqvqCG9InUMcXRfRjQiF9DU= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -19,6 +19,8 @@ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= @@ -42,8 +44,8 @@ google.golang.org/grpc v1.52.3 h1:pf7sOysg4LdgBqduXveGKrcEwbStiK2rtfghdzlUYDQ= google.golang.org/grpc v1.52.3/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 h1:KR8+MyP7/qOlV+8Af01LtjL04bu7on42eVsxT4EyBQk= +google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= diff --git a/testutil/rapidproto/rapidproto.go b/x/tx/rapidproto/rapidproto.go similarity index 100% rename from testutil/rapidproto/rapidproto.go rename to x/tx/rapidproto/rapidproto.go diff --git a/testutil/rapidproto/rapidproto_test.go b/x/tx/rapidproto/rapidproto_test.go similarity index 100% rename from testutil/rapidproto/rapidproto_test.go rename to x/tx/rapidproto/rapidproto_test.go diff --git a/testutil/rapidproto/testdata/seed0.json b/x/tx/rapidproto/testdata/seed0.json similarity index 100% rename from testutil/rapidproto/testdata/seed0.json rename to x/tx/rapidproto/testdata/seed0.json diff --git a/testutil/rapidproto/testdata/seed1.json b/x/tx/rapidproto/testdata/seed1.json similarity index 100% rename from testutil/rapidproto/testdata/seed1.json rename to x/tx/rapidproto/testdata/seed1.json diff --git a/testutil/rapidproto/testdata/seed2.json b/x/tx/rapidproto/testdata/seed2.json similarity index 100% rename from testutil/rapidproto/testdata/seed2.json rename to x/tx/rapidproto/testdata/seed2.json diff --git a/testutil/rapidproto/testdata/seed3.json b/x/tx/rapidproto/testdata/seed3.json similarity index 100% rename from testutil/rapidproto/testdata/seed3.json rename to x/tx/rapidproto/testdata/seed3.json diff --git a/testutil/rapidproto/testdata/seed4.json b/x/tx/rapidproto/testdata/seed4.json similarity index 100% rename from testutil/rapidproto/testdata/seed4.json rename to x/tx/rapidproto/testdata/seed4.json From ef5f006bb7ec445688caeaad9977498e550f2b97 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 2 Feb 2023 12:44:33 -0600 Subject: [PATCH 034/122] use pulsar for codegen --- x/tx/aminojson/Makefile | 18 - x/tx/aminojson/install-buf.sh | 10 - x/tx/aminojson/internal/Makefile | 3 + x/tx/aminojson/internal/buf.gen.yaml | 8 +- x/tx/aminojson/internal/buf.lock | 7 + x/tx/aminojson/internal/buf.yaml | 2 + x/tx/aminojson/internal/testpb/test.pb.go | 549 --- x/tx/aminojson/internal/testpb/test.pulsar.go | 3199 +++++++++++++++++ 8 files changed, 3217 insertions(+), 579 deletions(-) delete mode 100644 x/tx/aminojson/Makefile delete mode 100755 x/tx/aminojson/install-buf.sh create mode 100644 x/tx/aminojson/internal/Makefile create mode 100644 x/tx/aminojson/internal/buf.lock delete mode 100644 x/tx/aminojson/internal/testpb/test.pb.go create mode 100644 x/tx/aminojson/internal/testpb/test.pulsar.go diff --git a/x/tx/aminojson/Makefile b/x/tx/aminojson/Makefile deleted file mode 100644 index b345c001de4f..000000000000 --- a/x/tx/aminojson/Makefile +++ /dev/null @@ -1,18 +0,0 @@ -GOLANG_PROTOBUF_VERSION = 1.28.1 -BIN = $(CURDIR)/bin -BUF = $(BIN)/buf - -.PHONY: proto-gen - -$(BIN)/protoc-gen-go: - GOBIN=$(BIN) go install google.golang.org/protobuf/cmd/protoc-gen-go@v$(GOLANG_PROTOBUF_VERSION) - -$(BUF): - ./install-buf.sh - -proto-gen: $(BUF) $(BIN)/protoc-gen-go - @echo "Generating proto files" - cd internal && PATH=$(BIN) buf generate - -clean: - rm -rf $(BIN) \ No newline at end of file diff --git a/x/tx/aminojson/install-buf.sh b/x/tx/aminojson/install-buf.sh deleted file mode 100755 index 517b584adedf..000000000000 --- a/x/tx/aminojson/install-buf.sh +++ /dev/null @@ -1,10 +0,0 @@ -#!/usr/bin/env sh - -BIN="$PWD/bin" -VERSION="1.9.0" - -mkdir -p "$BIN" -curl -sSL \ - "https://github.com/bufbuild/buf/releases/download/v${VERSION}/buf-$(uname -s)-$(uname -m)" \ - -o "${BIN}/buf" -chmod +x "${BIN}/buf" diff --git a/x/tx/aminojson/internal/Makefile b/x/tx/aminojson/internal/Makefile new file mode 100644 index 000000000000..cb1280a5c1f9 --- /dev/null +++ b/x/tx/aminojson/internal/Makefile @@ -0,0 +1,3 @@ +codegen: + @echo "Generating proto files" + buf generate \ No newline at end of file diff --git a/x/tx/aminojson/internal/buf.gen.yaml b/x/tx/aminojson/internal/buf.gen.yaml index 664653e002c2..e38ab45e3280 100644 --- a/x/tx/aminojson/internal/buf.gen.yaml +++ b/x/tx/aminojson/internal/buf.gen.yaml @@ -2,8 +2,12 @@ version: v1 managed: enabled: true go_package_prefix: - default: github.com/cosmos/cosmos-sdk/x/tx/aminojson/internal + default: cosmossdk.io/x/tx/aminojson/internal/testpb + except: + - buf.build/googleapis/googleapis + - buf.build/cosmos/gogo-proto + - buf.build/cosmos/cosmos-proto plugins: - - name: go + - name: go-pulsar out: . opt: paths=source_relative diff --git a/x/tx/aminojson/internal/buf.lock b/x/tx/aminojson/internal/buf.lock new file mode 100644 index 000000000000..4dd297e431c1 --- /dev/null +++ b/x/tx/aminojson/internal/buf.lock @@ -0,0 +1,7 @@ +# Generated by buf. DO NOT EDIT. +version: v1 +deps: + - remote: buf.build + owner: cosmos + repository: cosmos-proto + commit: 1935555c206d4afb9e94615dfd0fad31 diff --git a/x/tx/aminojson/internal/buf.yaml b/x/tx/aminojson/internal/buf.yaml index ac1df238ebec..2016baa2a8d7 100644 --- a/x/tx/aminojson/internal/buf.yaml +++ b/x/tx/aminojson/internal/buf.yaml @@ -1,4 +1,6 @@ version: v1 +deps: + - buf.build/cosmos/cosmos-proto lint: use: - DEFAULT diff --git a/x/tx/aminojson/internal/testpb/test.pb.go b/x/tx/aminojson/internal/testpb/test.pb.go deleted file mode 100644 index 1bb8cb9cefa7..000000000000 --- a/x/tx/aminojson/internal/testpb/test.pb.go +++ /dev/null @@ -1,549 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.1 -// protoc (unknown) -// source: testpb/test.proto - -package testpb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - anypb "google.golang.org/protobuf/types/known/anypb" - durationpb "google.golang.org/protobuf/types/known/durationpb" - _ "google.golang.org/protobuf/types/known/emptypb" - _ "google.golang.org/protobuf/types/known/fieldmaskpb" - _ "google.golang.org/protobuf/types/known/structpb" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" - _ "google.golang.org/protobuf/types/known/wrapperspb" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type AnEnum int32 - -const ( - AnEnum_UNDEFINED AnEnum = 0 - AnEnum_ONE AnEnum = 1 - AnEnum_TWO AnEnum = 2 -) - -// Enum value maps for AnEnum. -var ( - AnEnum_name = map[int32]string{ - 0: "UNDEFINED", - 1: "ONE", - 2: "TWO", - } - AnEnum_value = map[string]int32{ - "UNDEFINED": 0, - "ONE": 1, - "TWO": 2, - } -) - -func (x AnEnum) Enum() *AnEnum { - p := new(AnEnum) - *p = x - return p -} - -func (x AnEnum) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (AnEnum) Descriptor() protoreflect.EnumDescriptor { - return file_testpb_test_proto_enumTypes[0].Descriptor() -} - -func (AnEnum) Type() protoreflect.EnumType { - return &file_testpb_test_proto_enumTypes[0] -} - -func (x AnEnum) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use AnEnum.Descriptor instead. -func (AnEnum) EnumDescriptor() ([]byte, []int) { - return file_testpb_test_proto_rawDescGZIP(), []int{0} -} - -type WithAMap struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - StrMap map[string]string `protobuf:"bytes,1,rep,name=str_map,json=strMap,proto3" json:"str_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` -} - -func (x *WithAMap) Reset() { - *x = WithAMap{} - if protoimpl.UnsafeEnabled { - mi := &file_testpb_test_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *WithAMap) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*WithAMap) ProtoMessage() {} - -func (x *WithAMap) ProtoReflect() protoreflect.Message { - mi := &file_testpb_test_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use WithAMap.ProtoReflect.Descriptor instead. -func (*WithAMap) Descriptor() ([]byte, []int) { - return file_testpb_test_proto_rawDescGZIP(), []int{0} -} - -func (x *WithAMap) GetStrMap() map[string]string { - if x != nil { - return x.StrMap - } - return nil -} - -type ABitOfEverything struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Message *NestedMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` - Enum AnEnum `protobuf:"varint,2,opt,name=enum,proto3,enum=testpb.AnEnum" json:"enum,omitempty"` //map str_map = 3; - Repeated []int32 `protobuf:"varint,6,rep,packed,name=repeated,proto3" json:"repeated,omitempty"` - Str string `protobuf:"bytes,7,opt,name=str,proto3" json:"str,omitempty"` - Bool bool `protobuf:"varint,8,opt,name=bool,proto3" json:"bool,omitempty"` - Bytes []byte `protobuf:"bytes,9,opt,name=bytes,proto3" json:"bytes,omitempty"` - I32 int32 `protobuf:"varint,10,opt,name=i32,proto3" json:"i32,omitempty"` - F32 uint32 `protobuf:"fixed32,11,opt,name=f32,proto3" json:"f32,omitempty"` - U32 uint32 `protobuf:"varint,12,opt,name=u32,proto3" json:"u32,omitempty"` - Si32 int32 `protobuf:"zigzag32,13,opt,name=si32,proto3" json:"si32,omitempty"` - Sf32 int32 `protobuf:"fixed32,14,opt,name=sf32,proto3" json:"sf32,omitempty"` - I64 int64 `protobuf:"varint,15,opt,name=i64,proto3" json:"i64,omitempty"` - F64 uint64 `protobuf:"fixed64,16,opt,name=f64,proto3" json:"f64,omitempty"` - U64 uint64 `protobuf:"varint,17,opt,name=u64,proto3" json:"u64,omitempty"` - Si64 int64 `protobuf:"zigzag64,18,opt,name=si64,proto3" json:"si64,omitempty"` - Sf64 int64 `protobuf:"fixed64,19,opt,name=sf64,proto3" json:"sf64,omitempty"` - Any *anypb.Any `protobuf:"bytes,22,opt,name=any,proto3" json:"any,omitempty"` - Timestamp *timestamppb.Timestamp `protobuf:"bytes,23,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - Duration *durationpb.Duration `protobuf:"bytes,24,opt,name=duration,proto3" json:"duration,omitempty"` -} - -func (x *ABitOfEverything) Reset() { - *x = ABitOfEverything{} - if protoimpl.UnsafeEnabled { - mi := &file_testpb_test_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ABitOfEverything) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ABitOfEverything) ProtoMessage() {} - -func (x *ABitOfEverything) ProtoReflect() protoreflect.Message { - mi := &file_testpb_test_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ABitOfEverything.ProtoReflect.Descriptor instead. -func (*ABitOfEverything) Descriptor() ([]byte, []int) { - return file_testpb_test_proto_rawDescGZIP(), []int{1} -} - -func (x *ABitOfEverything) GetMessage() *NestedMessage { - if x != nil { - return x.Message - } - return nil -} - -func (x *ABitOfEverything) GetEnum() AnEnum { - if x != nil { - return x.Enum - } - return AnEnum_UNDEFINED -} - -func (x *ABitOfEverything) GetRepeated() []int32 { - if x != nil { - return x.Repeated - } - return nil -} - -func (x *ABitOfEverything) GetStr() string { - if x != nil { - return x.Str - } - return "" -} - -func (x *ABitOfEverything) GetBool() bool { - if x != nil { - return x.Bool - } - return false -} - -func (x *ABitOfEverything) GetBytes() []byte { - if x != nil { - return x.Bytes - } - return nil -} - -func (x *ABitOfEverything) GetI32() int32 { - if x != nil { - return x.I32 - } - return 0 -} - -func (x *ABitOfEverything) GetF32() uint32 { - if x != nil { - return x.F32 - } - return 0 -} - -func (x *ABitOfEverything) GetU32() uint32 { - if x != nil { - return x.U32 - } - return 0 -} - -func (x *ABitOfEverything) GetSi32() int32 { - if x != nil { - return x.Si32 - } - return 0 -} - -func (x *ABitOfEverything) GetSf32() int32 { - if x != nil { - return x.Sf32 - } - return 0 -} - -func (x *ABitOfEverything) GetI64() int64 { - if x != nil { - return x.I64 - } - return 0 -} - -func (x *ABitOfEverything) GetF64() uint64 { - if x != nil { - return x.F64 - } - return 0 -} - -func (x *ABitOfEverything) GetU64() uint64 { - if x != nil { - return x.U64 - } - return 0 -} - -func (x *ABitOfEverything) GetSi64() int64 { - if x != nil { - return x.Si64 - } - return 0 -} - -func (x *ABitOfEverything) GetSf64() int64 { - if x != nil { - return x.Sf64 - } - return 0 -} - -func (x *ABitOfEverything) GetAny() *anypb.Any { - if x != nil { - return x.Any - } - return nil -} - -func (x *ABitOfEverything) GetTimestamp() *timestamppb.Timestamp { - if x != nil { - return x.Timestamp - } - return nil -} - -func (x *ABitOfEverything) GetDuration() *durationpb.Duration { - if x != nil { - return x.Duration - } - return nil -} - -type NestedMessage struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Foo string `protobuf:"bytes,1,opt,name=foo,proto3" json:"foo,omitempty"` - Bar int32 `protobuf:"varint,2,opt,name=bar,proto3" json:"bar,omitempty"` -} - -func (x *NestedMessage) Reset() { - *x = NestedMessage{} - if protoimpl.UnsafeEnabled { - mi := &file_testpb_test_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *NestedMessage) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NestedMessage) ProtoMessage() {} - -func (x *NestedMessage) ProtoReflect() protoreflect.Message { - mi := &file_testpb_test_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NestedMessage.ProtoReflect.Descriptor instead. -func (*NestedMessage) Descriptor() ([]byte, []int) { - return file_testpb_test_proto_rawDescGZIP(), []int{2} -} - -func (x *NestedMessage) GetFoo() string { - if x != nil { - return x.Foo - } - return "" -} - -func (x *NestedMessage) GetBar() int32 { - if x != nil { - return x.Bar - } - return 0 -} - -var File_testpb_test_proto protoreflect.FileDescriptor - -var file_testpb_test_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x1a, 0x19, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, - 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7c, 0x0a, 0x08, 0x57, 0x69, 0x74, 0x68, 0x41, 0x4d, 0x61, 0x70, - 0x12, 0x35, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x41, - 0x4d, 0x61, 0x70, 0x2e, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x06, 0x73, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x4d, 0x61, - 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x94, 0x04, 0x0a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, 0x76, 0x65, - 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, - 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, - 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, - 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, - 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x14, - 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x69, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x33, 0x32, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x07, 0x52, 0x03, 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x33, 0x32, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, - 0x33, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, 0x69, 0x33, 0x32, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x66, 0x33, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x04, 0x73, 0x66, - 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x36, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x69, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x36, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x06, 0x52, 0x03, 0x66, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x36, 0x34, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x36, 0x34, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x69, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x66, 0x36, 0x34, 0x18, 0x13, 0x20, 0x01, 0x28, 0x10, 0x52, 0x04, 0x73, 0x66, 0x36, 0x34, - 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x41, 0x6e, 0x79, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x33, 0x0a, 0x0d, 0x4e, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, - 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, - 0x62, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, 0x2a, 0x29, - 0x0a, 0x06, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, - 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, - 0x12, 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x7f, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, - 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, - 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, - 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, - 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, -} - -var ( - file_testpb_test_proto_rawDescOnce sync.Once - file_testpb_test_proto_rawDescData = file_testpb_test_proto_rawDesc -) - -func file_testpb_test_proto_rawDescGZIP() []byte { - file_testpb_test_proto_rawDescOnce.Do(func() { - file_testpb_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_testpb_test_proto_rawDescData) - }) - return file_testpb_test_proto_rawDescData -} - -var file_testpb_test_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_testpb_test_proto_goTypes = []interface{}{ - (AnEnum)(0), // 0: testpb.AnEnum - (*WithAMap)(nil), // 1: testpb.WithAMap - (*ABitOfEverything)(nil), // 2: testpb.ABitOfEverything - (*NestedMessage)(nil), // 3: testpb.NestedMessage - nil, // 4: testpb.WithAMap.StrMapEntry - (*anypb.Any)(nil), // 5: google.protobuf.Any - (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 7: google.protobuf.Duration -} -var file_testpb_test_proto_depIdxs = []int32{ - 4, // 0: testpb.WithAMap.str_map:type_name -> testpb.WithAMap.StrMapEntry - 3, // 1: testpb.ABitOfEverything.message:type_name -> testpb.NestedMessage - 0, // 2: testpb.ABitOfEverything.enum:type_name -> testpb.AnEnum - 5, // 3: testpb.ABitOfEverything.any:type_name -> google.protobuf.Any - 6, // 4: testpb.ABitOfEverything.timestamp:type_name -> google.protobuf.Timestamp - 7, // 5: testpb.ABitOfEverything.duration:type_name -> google.protobuf.Duration - 6, // [6:6] is the sub-list for method output_type - 6, // [6:6] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name -} - -func init() { file_testpb_test_proto_init() } -func file_testpb_test_proto_init() { - if File_testpb_test_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_testpb_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WithAMap); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_testpb_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ABitOfEverything); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_testpb_test_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NestedMessage); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_testpb_test_proto_rawDesc, - NumEnums: 1, - NumMessages: 4, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_testpb_test_proto_goTypes, - DependencyIndexes: file_testpb_test_proto_depIdxs, - EnumInfos: file_testpb_test_proto_enumTypes, - MessageInfos: file_testpb_test_proto_msgTypes, - }.Build() - File_testpb_test_proto = out.File - file_testpb_test_proto_rawDesc = nil - file_testpb_test_proto_goTypes = nil - file_testpb_test_proto_depIdxs = nil -} diff --git a/x/tx/aminojson/internal/testpb/test.pulsar.go b/x/tx/aminojson/internal/testpb/test.pulsar.go new file mode 100644 index 000000000000..5b6a7de382e6 --- /dev/null +++ b/x/tx/aminojson/internal/testpb/test.pulsar.go @@ -0,0 +1,3199 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package testpb + +import ( + binary "encoding/binary" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + durationpb "google.golang.org/protobuf/types/known/durationpb" + _ "google.golang.org/protobuf/types/known/emptypb" + _ "google.golang.org/protobuf/types/known/fieldmaskpb" + _ "google.golang.org/protobuf/types/known/structpb" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + _ "google.golang.org/protobuf/types/known/wrapperspb" + io "io" + reflect "reflect" + sort "sort" + sync "sync" +) + +var _ protoreflect.Map = (*_WithAMap_1_map)(nil) + +type _WithAMap_1_map struct { + m *map[string]string +} + +func (x *_WithAMap_1_map) Len() int { + if x.m == nil { + return 0 + } + return len(*x.m) +} + +func (x *_WithAMap_1_map) Range(f func(protoreflect.MapKey, protoreflect.Value) bool) { + if x.m == nil { + return + } + for k, v := range *x.m { + mapKey := (protoreflect.MapKey)(protoreflect.ValueOfString(k)) + mapValue := protoreflect.ValueOfString(v) + if !f(mapKey, mapValue) { + break + } + } +} + +func (x *_WithAMap_1_map) Has(key protoreflect.MapKey) bool { + if x.m == nil { + return false + } + keyUnwrapped := key.String() + concreteValue := keyUnwrapped + _, ok := (*x.m)[concreteValue] + return ok +} + +func (x *_WithAMap_1_map) Clear(key protoreflect.MapKey) { + if x.m == nil { + return + } + keyUnwrapped := key.String() + concreteKey := keyUnwrapped + delete(*x.m, concreteKey) +} + +func (x *_WithAMap_1_map) Get(key protoreflect.MapKey) protoreflect.Value { + if x.m == nil { + return protoreflect.Value{} + } + keyUnwrapped := key.String() + concreteKey := keyUnwrapped + v, ok := (*x.m)[concreteKey] + if !ok { + return protoreflect.Value{} + } + return protoreflect.ValueOfString(v) +} + +func (x *_WithAMap_1_map) Set(key protoreflect.MapKey, value protoreflect.Value) { + if !key.IsValid() || !value.IsValid() { + panic("invalid key or value provided") + } + keyUnwrapped := key.String() + concreteKey := keyUnwrapped + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.m)[concreteKey] = concreteValue +} + +func (x *_WithAMap_1_map) Mutable(key protoreflect.MapKey) protoreflect.Value { + panic("should not call Mutable on protoreflect.Map whose value is not of type protoreflect.Message") +} + +func (x *_WithAMap_1_map) NewValue() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_WithAMap_1_map) IsValid() bool { + return x.m != nil +} + +var ( + md_WithAMap protoreflect.MessageDescriptor + fd_WithAMap_str_map protoreflect.FieldDescriptor +) + +func init() { + file_testpb_test_proto_init() + md_WithAMap = File_testpb_test_proto.Messages().ByName("WithAMap") + fd_WithAMap_str_map = md_WithAMap.Fields().ByName("str_map") +} + +var _ protoreflect.Message = (*fastReflection_WithAMap)(nil) + +type fastReflection_WithAMap WithAMap + +func (x *WithAMap) ProtoReflect() protoreflect.Message { + return (*fastReflection_WithAMap)(x) +} + +func (x *WithAMap) slowProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_WithAMap_messageType fastReflection_WithAMap_messageType +var _ protoreflect.MessageType = fastReflection_WithAMap_messageType{} + +type fastReflection_WithAMap_messageType struct{} + +func (x fastReflection_WithAMap_messageType) Zero() protoreflect.Message { + return (*fastReflection_WithAMap)(nil) +} +func (x fastReflection_WithAMap_messageType) New() protoreflect.Message { + return new(fastReflection_WithAMap) +} +func (x fastReflection_WithAMap_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_WithAMap +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_WithAMap) Descriptor() protoreflect.MessageDescriptor { + return md_WithAMap +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_WithAMap) Type() protoreflect.MessageType { + return _fastReflection_WithAMap_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_WithAMap) New() protoreflect.Message { + return new(fastReflection_WithAMap) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_WithAMap) Interface() protoreflect.ProtoMessage { + return (*WithAMap)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_WithAMap) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.StrMap) != 0 { + value := protoreflect.ValueOfMap(&_WithAMap_1_map{m: &x.StrMap}) + if !f(fd_WithAMap_str_map, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_WithAMap) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "testpb.WithAMap.str_map": + return len(x.StrMap) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.WithAMap")) + } + panic(fmt.Errorf("message testpb.WithAMap does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_WithAMap) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "testpb.WithAMap.str_map": + x.StrMap = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.WithAMap")) + } + panic(fmt.Errorf("message testpb.WithAMap does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_WithAMap) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "testpb.WithAMap.str_map": + if len(x.StrMap) == 0 { + return protoreflect.ValueOfMap(&_WithAMap_1_map{}) + } + mapValue := &_WithAMap_1_map{m: &x.StrMap} + return protoreflect.ValueOfMap(mapValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.WithAMap")) + } + panic(fmt.Errorf("message testpb.WithAMap does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_WithAMap) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "testpb.WithAMap.str_map": + mv := value.Map() + cmv := mv.(*_WithAMap_1_map) + x.StrMap = *cmv.m + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.WithAMap")) + } + panic(fmt.Errorf("message testpb.WithAMap does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_WithAMap) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.WithAMap.str_map": + if x.StrMap == nil { + x.StrMap = make(map[string]string) + } + value := &_WithAMap_1_map{m: &x.StrMap} + return protoreflect.ValueOfMap(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.WithAMap")) + } + panic(fmt.Errorf("message testpb.WithAMap does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_WithAMap) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.WithAMap.str_map": + m := make(map[string]string) + return protoreflect.ValueOfMap(&_WithAMap_1_map{m: &m}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.WithAMap")) + } + panic(fmt.Errorf("message testpb.WithAMap does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_WithAMap) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in testpb.WithAMap", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_WithAMap) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_WithAMap) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_WithAMap) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_WithAMap) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*WithAMap) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.StrMap) > 0 { + SiZeMaP := func(k string, v string) { + mapEntrySize := 1 + len(k) + runtime.Sov(uint64(len(k))) + 1 + len(v) + runtime.Sov(uint64(len(v))) + n += mapEntrySize + 1 + runtime.Sov(uint64(mapEntrySize)) + } + if options.Deterministic { + sortme := make([]string, 0, len(x.StrMap)) + for k := range x.StrMap { + sortme = append(sortme, k) + } + sort.Strings(sortme) + for _, k := range sortme { + v := x.StrMap[k] + SiZeMaP(k, v) + } + } else { + for k, v := range x.StrMap { + SiZeMaP(k, v) + } + } + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*WithAMap) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.StrMap) > 0 { + MaRsHaLmAp := func(k string, v string) (protoiface.MarshalOutput, error) { + baseI := i + i -= len(v) + copy(dAtA[i:], v) + i = runtime.EncodeVarint(dAtA, i, uint64(len(v))) + i-- + dAtA[i] = 0x12 + i -= len(k) + copy(dAtA[i:], k) + i = runtime.EncodeVarint(dAtA, i, uint64(len(k))) + i-- + dAtA[i] = 0xa + i = runtime.EncodeVarint(dAtA, i, uint64(baseI-i)) + i-- + dAtA[i] = 0xa + return protoiface.MarshalOutput{}, nil + } + if options.Deterministic { + keysForStrMap := make([]string, 0, len(x.StrMap)) + for k := range x.StrMap { + keysForStrMap = append(keysForStrMap, string(k)) + } + sort.Slice(keysForStrMap, func(i, j int) bool { + return keysForStrMap[i] < keysForStrMap[j] + }) + for iNdEx := len(keysForStrMap) - 1; iNdEx >= 0; iNdEx-- { + v := x.StrMap[string(keysForStrMap[iNdEx])] + out, err := MaRsHaLmAp(keysForStrMap[iNdEx], v) + if err != nil { + return out, err + } + } + } else { + for k := range x.StrMap { + v := x.StrMap[k] + out, err := MaRsHaLmAp(k, v) + if err != nil { + return out, err + } + } + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*WithAMap) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: WithAMap: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: WithAMap: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field StrMap", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.StrMap == nil { + x.StrMap = make(map[string]string) + } + var mapkey string + var mapvalue string + for iNdEx < postIndex { + entryPreIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + if fieldNum == 1 { + var stringLenmapkey uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapkey |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapkey := int(stringLenmapkey) + if intStringLenmapkey < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postStringIndexmapkey := iNdEx + intStringLenmapkey + if postStringIndexmapkey < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postStringIndexmapkey > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + mapkey = string(dAtA[iNdEx:postStringIndexmapkey]) + iNdEx = postStringIndexmapkey + } else if fieldNum == 2 { + var stringLenmapvalue uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLenmapvalue |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLenmapvalue := int(stringLenmapvalue) + if intStringLenmapvalue < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postStringIndexmapvalue := iNdEx + intStringLenmapvalue + if postStringIndexmapvalue < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postStringIndexmapvalue > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue]) + iNdEx = postStringIndexmapvalue + } else { + iNdEx = entryPreIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > postIndex { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + x.StrMap[mapkey] = mapvalue + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_ABitOfEverything_6_list)(nil) + +type _ABitOfEverything_6_list struct { + list *[]int32 +} + +func (x *_ABitOfEverything_6_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_ABitOfEverything_6_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfInt32((*x.list)[i]) +} + +func (x *_ABitOfEverything_6_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Int() + concreteValue := (int32)(valueUnwrapped) + (*x.list)[i] = concreteValue +} + +func (x *_ABitOfEverything_6_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Int() + concreteValue := (int32)(valueUnwrapped) + *x.list = append(*x.list, concreteValue) +} + +func (x *_ABitOfEverything_6_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message ABitOfEverything at list field Repeated as it is not of Message kind")) +} + +func (x *_ABitOfEverything_6_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_ABitOfEverything_6_list) NewElement() protoreflect.Value { + v := int32(0) + return protoreflect.ValueOfInt32(v) +} + +func (x *_ABitOfEverything_6_list) IsValid() bool { + return x.list != nil +} + +var ( + md_ABitOfEverything protoreflect.MessageDescriptor + fd_ABitOfEverything_message protoreflect.FieldDescriptor + fd_ABitOfEverything_enum protoreflect.FieldDescriptor + fd_ABitOfEverything_repeated protoreflect.FieldDescriptor + fd_ABitOfEverything_str protoreflect.FieldDescriptor + fd_ABitOfEverything_bool protoreflect.FieldDescriptor + fd_ABitOfEverything_bytes protoreflect.FieldDescriptor + fd_ABitOfEverything_i32 protoreflect.FieldDescriptor + fd_ABitOfEverything_f32 protoreflect.FieldDescriptor + fd_ABitOfEverything_u32 protoreflect.FieldDescriptor + fd_ABitOfEverything_si32 protoreflect.FieldDescriptor + fd_ABitOfEverything_sf32 protoreflect.FieldDescriptor + fd_ABitOfEverything_i64 protoreflect.FieldDescriptor + fd_ABitOfEverything_f64 protoreflect.FieldDescriptor + fd_ABitOfEverything_u64 protoreflect.FieldDescriptor + fd_ABitOfEverything_si64 protoreflect.FieldDescriptor + fd_ABitOfEverything_sf64 protoreflect.FieldDescriptor + fd_ABitOfEverything_any protoreflect.FieldDescriptor + fd_ABitOfEverything_timestamp protoreflect.FieldDescriptor + fd_ABitOfEverything_duration protoreflect.FieldDescriptor +) + +func init() { + file_testpb_test_proto_init() + md_ABitOfEverything = File_testpb_test_proto.Messages().ByName("ABitOfEverything") + fd_ABitOfEverything_message = md_ABitOfEverything.Fields().ByName("message") + fd_ABitOfEverything_enum = md_ABitOfEverything.Fields().ByName("enum") + fd_ABitOfEverything_repeated = md_ABitOfEverything.Fields().ByName("repeated") + fd_ABitOfEverything_str = md_ABitOfEverything.Fields().ByName("str") + fd_ABitOfEverything_bool = md_ABitOfEverything.Fields().ByName("bool") + fd_ABitOfEverything_bytes = md_ABitOfEverything.Fields().ByName("bytes") + fd_ABitOfEverything_i32 = md_ABitOfEverything.Fields().ByName("i32") + fd_ABitOfEverything_f32 = md_ABitOfEverything.Fields().ByName("f32") + fd_ABitOfEverything_u32 = md_ABitOfEverything.Fields().ByName("u32") + fd_ABitOfEverything_si32 = md_ABitOfEverything.Fields().ByName("si32") + fd_ABitOfEverything_sf32 = md_ABitOfEverything.Fields().ByName("sf32") + fd_ABitOfEverything_i64 = md_ABitOfEverything.Fields().ByName("i64") + fd_ABitOfEverything_f64 = md_ABitOfEverything.Fields().ByName("f64") + fd_ABitOfEverything_u64 = md_ABitOfEverything.Fields().ByName("u64") + fd_ABitOfEverything_si64 = md_ABitOfEverything.Fields().ByName("si64") + fd_ABitOfEverything_sf64 = md_ABitOfEverything.Fields().ByName("sf64") + fd_ABitOfEverything_any = md_ABitOfEverything.Fields().ByName("any") + fd_ABitOfEverything_timestamp = md_ABitOfEverything.Fields().ByName("timestamp") + fd_ABitOfEverything_duration = md_ABitOfEverything.Fields().ByName("duration") +} + +var _ protoreflect.Message = (*fastReflection_ABitOfEverything)(nil) + +type fastReflection_ABitOfEverything ABitOfEverything + +func (x *ABitOfEverything) ProtoReflect() protoreflect.Message { + return (*fastReflection_ABitOfEverything)(x) +} + +func (x *ABitOfEverything) slowProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_ABitOfEverything_messageType fastReflection_ABitOfEverything_messageType +var _ protoreflect.MessageType = fastReflection_ABitOfEverything_messageType{} + +type fastReflection_ABitOfEverything_messageType struct{} + +func (x fastReflection_ABitOfEverything_messageType) Zero() protoreflect.Message { + return (*fastReflection_ABitOfEverything)(nil) +} +func (x fastReflection_ABitOfEverything_messageType) New() protoreflect.Message { + return new(fastReflection_ABitOfEverything) +} +func (x fastReflection_ABitOfEverything_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_ABitOfEverything +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_ABitOfEverything) Descriptor() protoreflect.MessageDescriptor { + return md_ABitOfEverything +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_ABitOfEverything) Type() protoreflect.MessageType { + return _fastReflection_ABitOfEverything_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_ABitOfEverything) New() protoreflect.Message { + return new(fastReflection_ABitOfEverything) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_ABitOfEverything) Interface() protoreflect.ProtoMessage { + return (*ABitOfEverything)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_ABitOfEverything) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Message != nil { + value := protoreflect.ValueOfMessage(x.Message.ProtoReflect()) + if !f(fd_ABitOfEverything_message, value) { + return + } + } + if x.Enum != 0 { + value := protoreflect.ValueOfEnum((protoreflect.EnumNumber)(x.Enum)) + if !f(fd_ABitOfEverything_enum, value) { + return + } + } + if len(x.Repeated) != 0 { + value := protoreflect.ValueOfList(&_ABitOfEverything_6_list{list: &x.Repeated}) + if !f(fd_ABitOfEverything_repeated, value) { + return + } + } + if x.Str != "" { + value := protoreflect.ValueOfString(x.Str) + if !f(fd_ABitOfEverything_str, value) { + return + } + } + if x.Bool != false { + value := protoreflect.ValueOfBool(x.Bool) + if !f(fd_ABitOfEverything_bool, value) { + return + } + } + if len(x.Bytes) != 0 { + value := protoreflect.ValueOfBytes(x.Bytes) + if !f(fd_ABitOfEverything_bytes, value) { + return + } + } + if x.I32 != int32(0) { + value := protoreflect.ValueOfInt32(x.I32) + if !f(fd_ABitOfEverything_i32, value) { + return + } + } + if x.F32 != uint32(0) { + value := protoreflect.ValueOfUint32(x.F32) + if !f(fd_ABitOfEverything_f32, value) { + return + } + } + if x.U32 != uint32(0) { + value := protoreflect.ValueOfUint32(x.U32) + if !f(fd_ABitOfEverything_u32, value) { + return + } + } + if x.Si32 != int32(0) { + value := protoreflect.ValueOfInt32(x.Si32) + if !f(fd_ABitOfEverything_si32, value) { + return + } + } + if x.Sf32 != int32(0) { + value := protoreflect.ValueOfInt32(x.Sf32) + if !f(fd_ABitOfEverything_sf32, value) { + return + } + } + if x.I64 != int64(0) { + value := protoreflect.ValueOfInt64(x.I64) + if !f(fd_ABitOfEverything_i64, value) { + return + } + } + if x.F64 != uint64(0) { + value := protoreflect.ValueOfUint64(x.F64) + if !f(fd_ABitOfEverything_f64, value) { + return + } + } + if x.U64 != uint64(0) { + value := protoreflect.ValueOfUint64(x.U64) + if !f(fd_ABitOfEverything_u64, value) { + return + } + } + if x.Si64 != int64(0) { + value := protoreflect.ValueOfInt64(x.Si64) + if !f(fd_ABitOfEverything_si64, value) { + return + } + } + if x.Sf64 != int64(0) { + value := protoreflect.ValueOfInt64(x.Sf64) + if !f(fd_ABitOfEverything_sf64, value) { + return + } + } + if x.Any != nil { + value := protoreflect.ValueOfMessage(x.Any.ProtoReflect()) + if !f(fd_ABitOfEverything_any, value) { + return + } + } + if x.Timestamp != nil { + value := protoreflect.ValueOfMessage(x.Timestamp.ProtoReflect()) + if !f(fd_ABitOfEverything_timestamp, value) { + return + } + } + if x.Duration != nil { + value := protoreflect.ValueOfMessage(x.Duration.ProtoReflect()) + if !f(fd_ABitOfEverything_duration, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_ABitOfEverything) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "testpb.ABitOfEverything.message": + return x.Message != nil + case "testpb.ABitOfEverything.enum": + return x.Enum != 0 + case "testpb.ABitOfEverything.repeated": + return len(x.Repeated) != 0 + case "testpb.ABitOfEverything.str": + return x.Str != "" + case "testpb.ABitOfEverything.bool": + return x.Bool != false + case "testpb.ABitOfEverything.bytes": + return len(x.Bytes) != 0 + case "testpb.ABitOfEverything.i32": + return x.I32 != int32(0) + case "testpb.ABitOfEverything.f32": + return x.F32 != uint32(0) + case "testpb.ABitOfEverything.u32": + return x.U32 != uint32(0) + case "testpb.ABitOfEverything.si32": + return x.Si32 != int32(0) + case "testpb.ABitOfEverything.sf32": + return x.Sf32 != int32(0) + case "testpb.ABitOfEverything.i64": + return x.I64 != int64(0) + case "testpb.ABitOfEverything.f64": + return x.F64 != uint64(0) + case "testpb.ABitOfEverything.u64": + return x.U64 != uint64(0) + case "testpb.ABitOfEverything.si64": + return x.Si64 != int64(0) + case "testpb.ABitOfEverything.sf64": + return x.Sf64 != int64(0) + case "testpb.ABitOfEverything.any": + return x.Any != nil + case "testpb.ABitOfEverything.timestamp": + return x.Timestamp != nil + case "testpb.ABitOfEverything.duration": + return x.Duration != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.ABitOfEverything")) + } + panic(fmt.Errorf("message testpb.ABitOfEverything does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ABitOfEverything) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "testpb.ABitOfEverything.message": + x.Message = nil + case "testpb.ABitOfEverything.enum": + x.Enum = 0 + case "testpb.ABitOfEverything.repeated": + x.Repeated = nil + case "testpb.ABitOfEverything.str": + x.Str = "" + case "testpb.ABitOfEverything.bool": + x.Bool = false + case "testpb.ABitOfEverything.bytes": + x.Bytes = nil + case "testpb.ABitOfEverything.i32": + x.I32 = int32(0) + case "testpb.ABitOfEverything.f32": + x.F32 = uint32(0) + case "testpb.ABitOfEverything.u32": + x.U32 = uint32(0) + case "testpb.ABitOfEverything.si32": + x.Si32 = int32(0) + case "testpb.ABitOfEverything.sf32": + x.Sf32 = int32(0) + case "testpb.ABitOfEverything.i64": + x.I64 = int64(0) + case "testpb.ABitOfEverything.f64": + x.F64 = uint64(0) + case "testpb.ABitOfEverything.u64": + x.U64 = uint64(0) + case "testpb.ABitOfEverything.si64": + x.Si64 = int64(0) + case "testpb.ABitOfEverything.sf64": + x.Sf64 = int64(0) + case "testpb.ABitOfEverything.any": + x.Any = nil + case "testpb.ABitOfEverything.timestamp": + x.Timestamp = nil + case "testpb.ABitOfEverything.duration": + x.Duration = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.ABitOfEverything")) + } + panic(fmt.Errorf("message testpb.ABitOfEverything does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_ABitOfEverything) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "testpb.ABitOfEverything.message": + value := x.Message + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "testpb.ABitOfEverything.enum": + value := x.Enum + return protoreflect.ValueOfEnum((protoreflect.EnumNumber)(value)) + case "testpb.ABitOfEverything.repeated": + if len(x.Repeated) == 0 { + return protoreflect.ValueOfList(&_ABitOfEverything_6_list{}) + } + listValue := &_ABitOfEverything_6_list{list: &x.Repeated} + return protoreflect.ValueOfList(listValue) + case "testpb.ABitOfEverything.str": + value := x.Str + return protoreflect.ValueOfString(value) + case "testpb.ABitOfEverything.bool": + value := x.Bool + return protoreflect.ValueOfBool(value) + case "testpb.ABitOfEverything.bytes": + value := x.Bytes + return protoreflect.ValueOfBytes(value) + case "testpb.ABitOfEverything.i32": + value := x.I32 + return protoreflect.ValueOfInt32(value) + case "testpb.ABitOfEverything.f32": + value := x.F32 + return protoreflect.ValueOfUint32(value) + case "testpb.ABitOfEverything.u32": + value := x.U32 + return protoreflect.ValueOfUint32(value) + case "testpb.ABitOfEverything.si32": + value := x.Si32 + return protoreflect.ValueOfInt32(value) + case "testpb.ABitOfEverything.sf32": + value := x.Sf32 + return protoreflect.ValueOfInt32(value) + case "testpb.ABitOfEverything.i64": + value := x.I64 + return protoreflect.ValueOfInt64(value) + case "testpb.ABitOfEverything.f64": + value := x.F64 + return protoreflect.ValueOfUint64(value) + case "testpb.ABitOfEverything.u64": + value := x.U64 + return protoreflect.ValueOfUint64(value) + case "testpb.ABitOfEverything.si64": + value := x.Si64 + return protoreflect.ValueOfInt64(value) + case "testpb.ABitOfEverything.sf64": + value := x.Sf64 + return protoreflect.ValueOfInt64(value) + case "testpb.ABitOfEverything.any": + value := x.Any + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "testpb.ABitOfEverything.timestamp": + value := x.Timestamp + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "testpb.ABitOfEverything.duration": + value := x.Duration + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.ABitOfEverything")) + } + panic(fmt.Errorf("message testpb.ABitOfEverything does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ABitOfEverything) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "testpb.ABitOfEverything.message": + x.Message = value.Message().Interface().(*NestedMessage) + case "testpb.ABitOfEverything.enum": + x.Enum = (AnEnum)(value.Enum()) + case "testpb.ABitOfEverything.repeated": + lv := value.List() + clv := lv.(*_ABitOfEverything_6_list) + x.Repeated = *clv.list + case "testpb.ABitOfEverything.str": + x.Str = value.Interface().(string) + case "testpb.ABitOfEverything.bool": + x.Bool = value.Bool() + case "testpb.ABitOfEverything.bytes": + x.Bytes = value.Bytes() + case "testpb.ABitOfEverything.i32": + x.I32 = int32(value.Int()) + case "testpb.ABitOfEverything.f32": + x.F32 = uint32(value.Uint()) + case "testpb.ABitOfEverything.u32": + x.U32 = uint32(value.Uint()) + case "testpb.ABitOfEverything.si32": + x.Si32 = int32(value.Int()) + case "testpb.ABitOfEverything.sf32": + x.Sf32 = int32(value.Int()) + case "testpb.ABitOfEverything.i64": + x.I64 = value.Int() + case "testpb.ABitOfEverything.f64": + x.F64 = value.Uint() + case "testpb.ABitOfEverything.u64": + x.U64 = value.Uint() + case "testpb.ABitOfEverything.si64": + x.Si64 = value.Int() + case "testpb.ABitOfEverything.sf64": + x.Sf64 = value.Int() + case "testpb.ABitOfEverything.any": + x.Any = value.Message().Interface().(*anypb.Any) + case "testpb.ABitOfEverything.timestamp": + x.Timestamp = value.Message().Interface().(*timestamppb.Timestamp) + case "testpb.ABitOfEverything.duration": + x.Duration = value.Message().Interface().(*durationpb.Duration) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.ABitOfEverything")) + } + panic(fmt.Errorf("message testpb.ABitOfEverything does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ABitOfEverything) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.ABitOfEverything.message": + if x.Message == nil { + x.Message = new(NestedMessage) + } + return protoreflect.ValueOfMessage(x.Message.ProtoReflect()) + case "testpb.ABitOfEverything.repeated": + if x.Repeated == nil { + x.Repeated = []int32{} + } + value := &_ABitOfEverything_6_list{list: &x.Repeated} + return protoreflect.ValueOfList(value) + case "testpb.ABitOfEverything.any": + if x.Any == nil { + x.Any = new(anypb.Any) + } + return protoreflect.ValueOfMessage(x.Any.ProtoReflect()) + case "testpb.ABitOfEverything.timestamp": + if x.Timestamp == nil { + x.Timestamp = new(timestamppb.Timestamp) + } + return protoreflect.ValueOfMessage(x.Timestamp.ProtoReflect()) + case "testpb.ABitOfEverything.duration": + if x.Duration == nil { + x.Duration = new(durationpb.Duration) + } + return protoreflect.ValueOfMessage(x.Duration.ProtoReflect()) + case "testpb.ABitOfEverything.enum": + panic(fmt.Errorf("field enum of message testpb.ABitOfEverything is not mutable")) + case "testpb.ABitOfEverything.str": + panic(fmt.Errorf("field str of message testpb.ABitOfEverything is not mutable")) + case "testpb.ABitOfEverything.bool": + panic(fmt.Errorf("field bool of message testpb.ABitOfEverything is not mutable")) + case "testpb.ABitOfEverything.bytes": + panic(fmt.Errorf("field bytes of message testpb.ABitOfEverything is not mutable")) + case "testpb.ABitOfEverything.i32": + panic(fmt.Errorf("field i32 of message testpb.ABitOfEverything is not mutable")) + case "testpb.ABitOfEverything.f32": + panic(fmt.Errorf("field f32 of message testpb.ABitOfEverything is not mutable")) + case "testpb.ABitOfEverything.u32": + panic(fmt.Errorf("field u32 of message testpb.ABitOfEverything is not mutable")) + case "testpb.ABitOfEverything.si32": + panic(fmt.Errorf("field si32 of message testpb.ABitOfEverything is not mutable")) + case "testpb.ABitOfEverything.sf32": + panic(fmt.Errorf("field sf32 of message testpb.ABitOfEverything is not mutable")) + case "testpb.ABitOfEverything.i64": + panic(fmt.Errorf("field i64 of message testpb.ABitOfEverything is not mutable")) + case "testpb.ABitOfEverything.f64": + panic(fmt.Errorf("field f64 of message testpb.ABitOfEverything is not mutable")) + case "testpb.ABitOfEverything.u64": + panic(fmt.Errorf("field u64 of message testpb.ABitOfEverything is not mutable")) + case "testpb.ABitOfEverything.si64": + panic(fmt.Errorf("field si64 of message testpb.ABitOfEverything is not mutable")) + case "testpb.ABitOfEverything.sf64": + panic(fmt.Errorf("field sf64 of message testpb.ABitOfEverything is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.ABitOfEverything")) + } + panic(fmt.Errorf("message testpb.ABitOfEverything does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_ABitOfEverything) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.ABitOfEverything.message": + m := new(NestedMessage) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "testpb.ABitOfEverything.enum": + return protoreflect.ValueOfEnum(0) + case "testpb.ABitOfEverything.repeated": + list := []int32{} + return protoreflect.ValueOfList(&_ABitOfEverything_6_list{list: &list}) + case "testpb.ABitOfEverything.str": + return protoreflect.ValueOfString("") + case "testpb.ABitOfEverything.bool": + return protoreflect.ValueOfBool(false) + case "testpb.ABitOfEverything.bytes": + return protoreflect.ValueOfBytes(nil) + case "testpb.ABitOfEverything.i32": + return protoreflect.ValueOfInt32(int32(0)) + case "testpb.ABitOfEverything.f32": + return protoreflect.ValueOfUint32(uint32(0)) + case "testpb.ABitOfEverything.u32": + return protoreflect.ValueOfUint32(uint32(0)) + case "testpb.ABitOfEverything.si32": + return protoreflect.ValueOfInt32(int32(0)) + case "testpb.ABitOfEverything.sf32": + return protoreflect.ValueOfInt32(int32(0)) + case "testpb.ABitOfEverything.i64": + return protoreflect.ValueOfInt64(int64(0)) + case "testpb.ABitOfEverything.f64": + return protoreflect.ValueOfUint64(uint64(0)) + case "testpb.ABitOfEverything.u64": + return protoreflect.ValueOfUint64(uint64(0)) + case "testpb.ABitOfEverything.si64": + return protoreflect.ValueOfInt64(int64(0)) + case "testpb.ABitOfEverything.sf64": + return protoreflect.ValueOfInt64(int64(0)) + case "testpb.ABitOfEverything.any": + m := new(anypb.Any) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "testpb.ABitOfEverything.timestamp": + m := new(timestamppb.Timestamp) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "testpb.ABitOfEverything.duration": + m := new(durationpb.Duration) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.ABitOfEverything")) + } + panic(fmt.Errorf("message testpb.ABitOfEverything does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_ABitOfEverything) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in testpb.ABitOfEverything", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_ABitOfEverything) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_ABitOfEverything) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_ABitOfEverything) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_ABitOfEverything) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*ABitOfEverything) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.Message != nil { + l = options.Size(x.Message) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Enum != 0 { + n += 1 + runtime.Sov(uint64(x.Enum)) + } + if len(x.Repeated) > 0 { + l = 0 + for _, e := range x.Repeated { + l += runtime.Sov(uint64(e)) + } + n += 1 + runtime.Sov(uint64(l)) + l + } + l = len(x.Str) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Bool { + n += 2 + } + l = len(x.Bytes) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.I32 != 0 { + n += 1 + runtime.Sov(uint64(x.I32)) + } + if x.F32 != 0 { + n += 5 + } + if x.U32 != 0 { + n += 1 + runtime.Sov(uint64(x.U32)) + } + if x.Si32 != 0 { + n += 1 + runtime.Soz(uint64(x.Si32)) + } + if x.Sf32 != 0 { + n += 5 + } + if x.I64 != 0 { + n += 1 + runtime.Sov(uint64(x.I64)) + } + if x.F64 != 0 { + n += 10 + } + if x.U64 != 0 { + n += 2 + runtime.Sov(uint64(x.U64)) + } + if x.Si64 != 0 { + n += 2 + runtime.Soz(uint64(x.Si64)) + } + if x.Sf64 != 0 { + n += 10 + } + if x.Any != nil { + l = options.Size(x.Any) + n += 2 + l + runtime.Sov(uint64(l)) + } + if x.Timestamp != nil { + l = options.Size(x.Timestamp) + n += 2 + l + runtime.Sov(uint64(l)) + } + if x.Duration != nil { + l = options.Size(x.Duration) + n += 2 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*ABitOfEverything) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Duration != nil { + encoded, err := options.Marshal(x.Duration) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xc2 + } + if x.Timestamp != nil { + encoded, err := options.Marshal(x.Timestamp) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xba + } + if x.Any != nil { + encoded, err := options.Marshal(x.Any) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0xb2 + } + if x.Sf64 != 0 { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(x.Sf64)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x99 + } + if x.Si64 != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64((uint64(x.Si64)<<1)^uint64((x.Si64>>63)))) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x90 + } + if x.U64 != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.U64)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x88 + } + if x.F64 != 0 { + i -= 8 + binary.LittleEndian.PutUint64(dAtA[i:], uint64(x.F64)) + i-- + dAtA[i] = 0x1 + i-- + dAtA[i] = 0x81 + } + if x.I64 != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.I64)) + i-- + dAtA[i] = 0x78 + } + if x.Sf32 != 0 { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(x.Sf32)) + i-- + dAtA[i] = 0x75 + } + if x.Si32 != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64((uint32(x.Si32)<<1)^uint32((x.Si32>>31)))) + i-- + dAtA[i] = 0x68 + } + if x.U32 != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.U32)) + i-- + dAtA[i] = 0x60 + } + if x.F32 != 0 { + i -= 4 + binary.LittleEndian.PutUint32(dAtA[i:], uint32(x.F32)) + i-- + dAtA[i] = 0x5d + } + if x.I32 != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.I32)) + i-- + dAtA[i] = 0x50 + } + if len(x.Bytes) > 0 { + i -= len(x.Bytes) + copy(dAtA[i:], x.Bytes) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Bytes))) + i-- + dAtA[i] = 0x4a + } + if x.Bool { + i-- + if x.Bool { + dAtA[i] = 1 + } else { + dAtA[i] = 0 + } + i-- + dAtA[i] = 0x40 + } + if len(x.Str) > 0 { + i -= len(x.Str) + copy(dAtA[i:], x.Str) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Str))) + i-- + dAtA[i] = 0x3a + } + if len(x.Repeated) > 0 { + var pksize2 int + for _, num := range x.Repeated { + pksize2 += runtime.Sov(uint64(num)) + } + i -= pksize2 + j1 := i + for _, num1 := range x.Repeated { + num := uint64(num1) + for num >= 1<<7 { + dAtA[j1] = uint8(uint64(num)&0x7f | 0x80) + num >>= 7 + j1++ + } + dAtA[j1] = uint8(num) + j1++ + } + i = runtime.EncodeVarint(dAtA, i, uint64(pksize2)) + i-- + dAtA[i] = 0x32 + } + if x.Enum != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Enum)) + i-- + dAtA[i] = 0x10 + } + if x.Message != nil { + encoded, err := options.Marshal(x.Message) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*ABitOfEverything) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ABitOfEverything: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: ABitOfEverything: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Message", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Message == nil { + x.Message = &NestedMessage{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Message); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Enum", wireType) + } + x.Enum = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Enum |= AnEnum(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 6: + if wireType == 0 { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Repeated = append(x.Repeated, v) + } else if wireType == 2 { + var packedLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + packedLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if packedLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + packedLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + var elementCount int + var count int + for _, integer := range dAtA[iNdEx:postIndex] { + if integer < 128 { + count++ + } + } + elementCount = count + if elementCount != 0 && len(x.Repeated) == 0 { + x.Repeated = make([]int32, 0, elementCount) + } + for iNdEx < postIndex { + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Repeated = append(x.Repeated, v) + } + } else { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Repeated", wireType) + } + case 7: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Str", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Str = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 8: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Bool", wireType) + } + var v int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + x.Bool = bool(v != 0) + case 9: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Bytes", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Bytes = append(x.Bytes[:0], dAtA[iNdEx:postIndex]...) + if x.Bytes == nil { + x.Bytes = []byte{} + } + iNdEx = postIndex + case 10: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field I32", wireType) + } + x.I32 = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.I32 |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 11: + if wireType != 5 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field F32", wireType) + } + x.F32 = 0 + if (iNdEx + 4) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.F32 = uint32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + case 12: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field U32", wireType) + } + x.U32 = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.U32 |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 13: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Si32", wireType) + } + var v int32 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = int32((uint32(v) >> 1) ^ uint32(((v&1)<<31)>>31)) + x.Si32 = v + case 14: + if wireType != 5 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sf32", wireType) + } + x.Sf32 = 0 + if (iNdEx + 4) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Sf32 = int32(binary.LittleEndian.Uint32(dAtA[iNdEx:])) + iNdEx += 4 + case 15: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field I64", wireType) + } + x.I64 = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.I64 |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 16: + if wireType != 1 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field F64", wireType) + } + x.F64 = 0 + if (iNdEx + 8) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.F64 = uint64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + case 17: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field U64", wireType) + } + x.U64 = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.U64 |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + case 18: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Si64", wireType) + } + var v uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + v |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + v = (v >> 1) ^ uint64((int64(v&1)<<63)>>63) + x.Si64 = int64(v) + case 19: + if wireType != 1 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Sf64", wireType) + } + x.Sf64 = 0 + if (iNdEx + 8) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Sf64 = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 + case 22: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Any", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Any == nil { + x.Any = &anypb.Any{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Any); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 23: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Timestamp == nil { + x.Timestamp = ×tamppb.Timestamp{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Timestamp); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 24: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.Duration == nil { + x.Duration = &durationpb.Duration{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Duration); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_NestedMessage protoreflect.MessageDescriptor + fd_NestedMessage_foo protoreflect.FieldDescriptor + fd_NestedMessage_bar protoreflect.FieldDescriptor +) + +func init() { + file_testpb_test_proto_init() + md_NestedMessage = File_testpb_test_proto.Messages().ByName("NestedMessage") + fd_NestedMessage_foo = md_NestedMessage.Fields().ByName("foo") + fd_NestedMessage_bar = md_NestedMessage.Fields().ByName("bar") +} + +var _ protoreflect.Message = (*fastReflection_NestedMessage)(nil) + +type fastReflection_NestedMessage NestedMessage + +func (x *NestedMessage) ProtoReflect() protoreflect.Message { + return (*fastReflection_NestedMessage)(x) +} + +func (x *NestedMessage) slowProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_NestedMessage_messageType fastReflection_NestedMessage_messageType +var _ protoreflect.MessageType = fastReflection_NestedMessage_messageType{} + +type fastReflection_NestedMessage_messageType struct{} + +func (x fastReflection_NestedMessage_messageType) Zero() protoreflect.Message { + return (*fastReflection_NestedMessage)(nil) +} +func (x fastReflection_NestedMessage_messageType) New() protoreflect.Message { + return new(fastReflection_NestedMessage) +} +func (x fastReflection_NestedMessage_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_NestedMessage +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_NestedMessage) Descriptor() protoreflect.MessageDescriptor { + return md_NestedMessage +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_NestedMessage) Type() protoreflect.MessageType { + return _fastReflection_NestedMessage_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_NestedMessage) New() protoreflect.Message { + return new(fastReflection_NestedMessage) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_NestedMessage) Interface() protoreflect.ProtoMessage { + return (*NestedMessage)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_NestedMessage) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Foo != "" { + value := protoreflect.ValueOfString(x.Foo) + if !f(fd_NestedMessage_foo, value) { + return + } + } + if x.Bar != int32(0) { + value := protoreflect.ValueOfInt32(x.Bar) + if !f(fd_NestedMessage_bar, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_NestedMessage) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "testpb.NestedMessage.foo": + return x.Foo != "" + case "testpb.NestedMessage.bar": + return x.Bar != int32(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.NestedMessage")) + } + panic(fmt.Errorf("message testpb.NestedMessage does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_NestedMessage) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "testpb.NestedMessage.foo": + x.Foo = "" + case "testpb.NestedMessage.bar": + x.Bar = int32(0) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.NestedMessage")) + } + panic(fmt.Errorf("message testpb.NestedMessage does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_NestedMessage) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "testpb.NestedMessage.foo": + value := x.Foo + return protoreflect.ValueOfString(value) + case "testpb.NestedMessage.bar": + value := x.Bar + return protoreflect.ValueOfInt32(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.NestedMessage")) + } + panic(fmt.Errorf("message testpb.NestedMessage does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_NestedMessage) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "testpb.NestedMessage.foo": + x.Foo = value.Interface().(string) + case "testpb.NestedMessage.bar": + x.Bar = int32(value.Int()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.NestedMessage")) + } + panic(fmt.Errorf("message testpb.NestedMessage does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_NestedMessage) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.NestedMessage.foo": + panic(fmt.Errorf("field foo of message testpb.NestedMessage is not mutable")) + case "testpb.NestedMessage.bar": + panic(fmt.Errorf("field bar of message testpb.NestedMessage is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.NestedMessage")) + } + panic(fmt.Errorf("message testpb.NestedMessage does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_NestedMessage) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.NestedMessage.foo": + return protoreflect.ValueOfString("") + case "testpb.NestedMessage.bar": + return protoreflect.ValueOfInt32(int32(0)) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.NestedMessage")) + } + panic(fmt.Errorf("message testpb.NestedMessage does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_NestedMessage) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in testpb.NestedMessage", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_NestedMessage) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_NestedMessage) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_NestedMessage) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_NestedMessage) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*NestedMessage) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Foo) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.Bar != 0 { + n += 1 + runtime.Sov(uint64(x.Bar)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*NestedMessage) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.Bar != 0 { + i = runtime.EncodeVarint(dAtA, i, uint64(x.Bar)) + i-- + dAtA[i] = 0x10 + } + if len(x.Foo) > 0 { + i -= len(x.Foo) + copy(dAtA[i:], x.Foo) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Foo))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*NestedMessage) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: NestedMessage: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: NestedMessage: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Foo", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Foo = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Bar", wireType) + } + x.Bar = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + x.Bar |= int32(b&0x7F) << shift + if b < 0x80 { + break + } + } + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: testpb/test.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type AnEnum int32 + +const ( + AnEnum_UNDEFINED AnEnum = 0 + AnEnum_ONE AnEnum = 1 + AnEnum_TWO AnEnum = 2 +) + +// Enum value maps for AnEnum. +var ( + AnEnum_name = map[int32]string{ + 0: "UNDEFINED", + 1: "ONE", + 2: "TWO", + } + AnEnum_value = map[string]int32{ + "UNDEFINED": 0, + "ONE": 1, + "TWO": 2, + } +) + +func (x AnEnum) Enum() *AnEnum { + p := new(AnEnum) + *p = x + return p +} + +func (x AnEnum) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (AnEnum) Descriptor() protoreflect.EnumDescriptor { + return file_testpb_test_proto_enumTypes[0].Descriptor() +} + +func (AnEnum) Type() protoreflect.EnumType { + return &file_testpb_test_proto_enumTypes[0] +} + +func (x AnEnum) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use AnEnum.Descriptor instead. +func (AnEnum) EnumDescriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{0} +} + +type WithAMap struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StrMap map[string]string `protobuf:"bytes,1,rep,name=str_map,json=strMap,proto3" json:"str_map,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` +} + +func (x *WithAMap) Reset() { + *x = WithAMap{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithAMap) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithAMap) ProtoMessage() {} + +// Deprecated: Use WithAMap.ProtoReflect.Descriptor instead. +func (*WithAMap) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{0} +} + +func (x *WithAMap) GetStrMap() map[string]string { + if x != nil { + return x.StrMap + } + return nil +} + +type ABitOfEverything struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message *NestedMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Enum AnEnum `protobuf:"varint,2,opt,name=enum,proto3,enum=testpb.AnEnum" json:"enum,omitempty"` //map str_map = 3; + Repeated []int32 `protobuf:"varint,6,rep,packed,name=repeated,proto3" json:"repeated,omitempty"` + Str string `protobuf:"bytes,7,opt,name=str,proto3" json:"str,omitempty"` + Bool bool `protobuf:"varint,8,opt,name=bool,proto3" json:"bool,omitempty"` + Bytes []byte `protobuf:"bytes,9,opt,name=bytes,proto3" json:"bytes,omitempty"` + I32 int32 `protobuf:"varint,10,opt,name=i32,proto3" json:"i32,omitempty"` + F32 uint32 `protobuf:"fixed32,11,opt,name=f32,proto3" json:"f32,omitempty"` + U32 uint32 `protobuf:"varint,12,opt,name=u32,proto3" json:"u32,omitempty"` + Si32 int32 `protobuf:"zigzag32,13,opt,name=si32,proto3" json:"si32,omitempty"` + Sf32 int32 `protobuf:"fixed32,14,opt,name=sf32,proto3" json:"sf32,omitempty"` + I64 int64 `protobuf:"varint,15,opt,name=i64,proto3" json:"i64,omitempty"` + F64 uint64 `protobuf:"fixed64,16,opt,name=f64,proto3" json:"f64,omitempty"` + U64 uint64 `protobuf:"varint,17,opt,name=u64,proto3" json:"u64,omitempty"` + Si64 int64 `protobuf:"zigzag64,18,opt,name=si64,proto3" json:"si64,omitempty"` + Sf64 int64 `protobuf:"fixed64,19,opt,name=sf64,proto3" json:"sf64,omitempty"` + Any *anypb.Any `protobuf:"bytes,22,opt,name=any,proto3" json:"any,omitempty"` + Timestamp *timestamppb.Timestamp `protobuf:"bytes,23,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Duration *durationpb.Duration `protobuf:"bytes,24,opt,name=duration,proto3" json:"duration,omitempty"` +} + +func (x *ABitOfEverything) Reset() { + *x = ABitOfEverything{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ABitOfEverything) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ABitOfEverything) ProtoMessage() {} + +// Deprecated: Use ABitOfEverything.ProtoReflect.Descriptor instead. +func (*ABitOfEverything) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{1} +} + +func (x *ABitOfEverything) GetMessage() *NestedMessage { + if x != nil { + return x.Message + } + return nil +} + +func (x *ABitOfEverything) GetEnum() AnEnum { + if x != nil { + return x.Enum + } + return AnEnum_UNDEFINED +} + +func (x *ABitOfEverything) GetRepeated() []int32 { + if x != nil { + return x.Repeated + } + return nil +} + +func (x *ABitOfEverything) GetStr() string { + if x != nil { + return x.Str + } + return "" +} + +func (x *ABitOfEverything) GetBool() bool { + if x != nil { + return x.Bool + } + return false +} + +func (x *ABitOfEverything) GetBytes() []byte { + if x != nil { + return x.Bytes + } + return nil +} + +func (x *ABitOfEverything) GetI32() int32 { + if x != nil { + return x.I32 + } + return 0 +} + +func (x *ABitOfEverything) GetF32() uint32 { + if x != nil { + return x.F32 + } + return 0 +} + +func (x *ABitOfEverything) GetU32() uint32 { + if x != nil { + return x.U32 + } + return 0 +} + +func (x *ABitOfEverything) GetSi32() int32 { + if x != nil { + return x.Si32 + } + return 0 +} + +func (x *ABitOfEverything) GetSf32() int32 { + if x != nil { + return x.Sf32 + } + return 0 +} + +func (x *ABitOfEverything) GetI64() int64 { + if x != nil { + return x.I64 + } + return 0 +} + +func (x *ABitOfEverything) GetF64() uint64 { + if x != nil { + return x.F64 + } + return 0 +} + +func (x *ABitOfEverything) GetU64() uint64 { + if x != nil { + return x.U64 + } + return 0 +} + +func (x *ABitOfEverything) GetSi64() int64 { + if x != nil { + return x.Si64 + } + return 0 +} + +func (x *ABitOfEverything) GetSf64() int64 { + if x != nil { + return x.Sf64 + } + return 0 +} + +func (x *ABitOfEverything) GetAny() *anypb.Any { + if x != nil { + return x.Any + } + return nil +} + +func (x *ABitOfEverything) GetTimestamp() *timestamppb.Timestamp { + if x != nil { + return x.Timestamp + } + return nil +} + +func (x *ABitOfEverything) GetDuration() *durationpb.Duration { + if x != nil { + return x.Duration + } + return nil +} + +type NestedMessage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Foo string `protobuf:"bytes,1,opt,name=foo,proto3" json:"foo,omitempty"` + Bar int32 `protobuf:"varint,2,opt,name=bar,proto3" json:"bar,omitempty"` +} + +func (x *NestedMessage) Reset() { + *x = NestedMessage{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NestedMessage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NestedMessage) ProtoMessage() {} + +// Deprecated: Use NestedMessage.ProtoReflect.Descriptor instead. +func (*NestedMessage) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{2} +} + +func (x *NestedMessage) GetFoo() string { + if x != nil { + return x.Foo + } + return "" +} + +func (x *NestedMessage) GetBar() int32 { + if x != nil { + return x.Bar + } + return 0 +} + +var File_testpb_test_proto protoreflect.FileDescriptor + +var file_testpb_test_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x1a, 0x19, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, + 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7c, 0x0a, 0x08, 0x57, 0x69, 0x74, 0x68, 0x41, 0x4d, 0x61, 0x70, + 0x12, 0x35, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x41, + 0x4d, 0x61, 0x70, 0x2e, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x06, 0x73, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x4d, 0x61, + 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, + 0x38, 0x01, 0x22, 0x94, 0x04, 0x0a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, 0x76, 0x65, + 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, + 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, + 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, + 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, + 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x14, + 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x69, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x33, 0x32, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x07, 0x52, 0x03, 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x33, 0x32, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, + 0x33, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, 0x69, 0x33, 0x32, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x66, 0x33, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x04, 0x73, 0x66, + 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x36, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x03, 0x69, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x36, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, + 0x06, 0x52, 0x03, 0x66, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x36, 0x34, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x36, 0x34, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x69, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, + 0x73, 0x66, 0x36, 0x34, 0x18, 0x13, 0x20, 0x01, 0x28, 0x10, 0x52, 0x04, 0x73, 0x66, 0x36, 0x34, + 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x41, 0x6e, 0x79, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x33, 0x0a, 0x0d, 0x4e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, + 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, + 0x62, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, 0x2a, 0x29, + 0x0a, 0x06, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, + 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, + 0x12, 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x83, 0x01, 0x0a, 0x0a, 0x63, 0x6f, + 0x6d, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, + 0x2e, 0x69, 0x6f, 0x2f, 0x78, 0x2f, 0x74, 0x78, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x6a, 0x73, + 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, + 0x70, 0x62, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, + 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, + 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_testpb_test_proto_rawDescOnce sync.Once + file_testpb_test_proto_rawDescData = file_testpb_test_proto_rawDesc +) + +func file_testpb_test_proto_rawDescGZIP() []byte { + file_testpb_test_proto_rawDescOnce.Do(func() { + file_testpb_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_testpb_test_proto_rawDescData) + }) + return file_testpb_test_proto_rawDescData +} + +var file_testpb_test_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_testpb_test_proto_goTypes = []interface{}{ + (AnEnum)(0), // 0: testpb.AnEnum + (*WithAMap)(nil), // 1: testpb.WithAMap + (*ABitOfEverything)(nil), // 2: testpb.ABitOfEverything + (*NestedMessage)(nil), // 3: testpb.NestedMessage + nil, // 4: testpb.WithAMap.StrMapEntry + (*anypb.Any)(nil), // 5: google.protobuf.Any + (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 7: google.protobuf.Duration +} +var file_testpb_test_proto_depIdxs = []int32{ + 4, // 0: testpb.WithAMap.str_map:type_name -> testpb.WithAMap.StrMapEntry + 3, // 1: testpb.ABitOfEverything.message:type_name -> testpb.NestedMessage + 0, // 2: testpb.ABitOfEverything.enum:type_name -> testpb.AnEnum + 5, // 3: testpb.ABitOfEverything.any:type_name -> google.protobuf.Any + 6, // 4: testpb.ABitOfEverything.timestamp:type_name -> google.protobuf.Timestamp + 7, // 5: testpb.ABitOfEverything.duration:type_name -> google.protobuf.Duration + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 6, // [6:6] is the sub-list for extension extendee + 0, // [0:6] is the sub-list for field type_name +} + +func init() { file_testpb_test_proto_init() } +func file_testpb_test_proto_init() { + if File_testpb_test_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_testpb_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WithAMap); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_testpb_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ABitOfEverything); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_testpb_test_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NestedMessage); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_testpb_test_proto_rawDesc, + NumEnums: 1, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_testpb_test_proto_goTypes, + DependencyIndexes: file_testpb_test_proto_depIdxs, + EnumInfos: file_testpb_test_proto_enumTypes, + MessageInfos: file_testpb_test_proto_msgTypes, + }.Build() + File_testpb_test_proto = out.File + file_testpb_test_proto_rawDesc = nil + file_testpb_test_proto_goTypes = nil + file_testpb_test_proto_depIdxs = nil +} From 75008d8aea978bcfb2f87fefe3865f9ce27273ef Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 2 Feb 2023 12:48:47 -0600 Subject: [PATCH 035/122] clean up --- x/tx/aminojson/.gitignore | 1 - x/tx/aminojson/json_marshal.go | 5 +++-- x/tx/aminojson/testdata/legacyamino.json | 1 - x/tx/aminojson/testdata/stablejson.json | 0 4 files changed, 3 insertions(+), 4 deletions(-) delete mode 100644 x/tx/aminojson/testdata/legacyamino.json delete mode 100644 x/tx/aminojson/testdata/stablejson.json diff --git a/x/tx/aminojson/.gitignore b/x/tx/aminojson/.gitignore index a93d29aad713..9309455bc5b4 100644 --- a/x/tx/aminojson/.gitignore +++ b/x/tx/aminojson/.gitignore @@ -1,2 +1 @@ -bin/ testdata/rapid diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index a7e5f447e26f..4d6f48c16258 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -74,9 +74,10 @@ func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { case []byte: _, err := fmt.Fprintf(writer, `"%s"`, base64.StdEncoding.EncodeToString(val)) return err - } - return nil + default: + return errors.Errorf("unknown type %T", val) + } } func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) error { diff --git a/x/tx/aminojson/testdata/legacyamino.json b/x/tx/aminojson/testdata/legacyamino.json deleted file mode 100644 index 155247411bbe..000000000000 --- a/x/tx/aminojson/testdata/legacyamino.json +++ /dev/null @@ -1 +0,0 @@ -{"message":{"foo":"test"},"enum":1,"str_map":{"foo":"abc"},"repeated":[3,-7,2,6,4],"str":"abcxyz\"foo\"def","bool":true,"bytes":"AAECAw==","i32":-15,"f32":1001,"u32":1200,"si32":-376,"sf32":-1000,"i64":"14578294827584932","f64":"9572348124213523654","u64":"4759492485","si64":"-59268425823934","sf64":"-659101379604211154","any":{"type_url":"type.googleapis.com/testpb.NestedMessage","value":"Cg9hbnkgdHlwZSBuZXN0ZWQQCw=="},"timestamp":{"seconds":"1641040260"},"duration":{"seconds":"3000"}} \ No newline at end of file diff --git a/x/tx/aminojson/testdata/stablejson.json b/x/tx/aminojson/testdata/stablejson.json deleted file mode 100644 index e69de29bb2d1..000000000000 From ca28ffcc52f0972ef1d348c2b39edde2331775be Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 2 Feb 2023 13:20:23 -0600 Subject: [PATCH 036/122] Add one test case --- codec/aminojson_test.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/codec/aminojson_test.go b/codec/aminojson_test.go index c608e834473b..a3ce1e09a7d4 100644 --- a/codec/aminojson_test.go +++ b/codec/aminojson_test.go @@ -3,6 +3,7 @@ package codec_test import ( "testing" + gogoproto "github.com/cosmos/gogoproto/proto" "github.com/stretchr/testify/require" "github.com/tendermint/go-amino" "google.golang.org/protobuf/proto" @@ -12,6 +13,7 @@ import ( distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" "cosmossdk.io/x/tx/aminojson" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" + "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" ) @@ -23,7 +25,7 @@ func TestAminoJSON_LegacyParity(t *testing.T) { cdc.RegisterConcrete(&ed25519.PubKey{}, cryptotypes.PubKeyName, nil) cases := map[string]struct { - gogo any + gogo gogoproto.Message pulsar proto.Message }{ "auth/params": {gogo: &authtypes.Params{TxSigLimit: 10}, pulsar: &authapi.Params{TxSigLimit: 10}}, @@ -31,6 +33,10 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &disttypes.DelegatorStartingInfo{}, pulsar: &distapi.DelegatorStartingInfo{}, }, + "distribution/delegator_starting_info/non_zero_dec": { + gogo: &disttypes.DelegatorStartingInfo{Stake: types.NewDec(10)}, + pulsar: &distapi.DelegatorStartingInfo{Stake: "10.000000000000000000"}, + }, "distribution/delegation_delegator_reward": { gogo: &disttypes.DelegationDelegatorReward{}, pulsar: &distapi.DelegationDelegatorReward{}, From a1d7561bc7b62b1b5f8af0c59e9543fe8915d222 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 2 Feb 2023 13:38:15 -0600 Subject: [PATCH 037/122] refactor: err handling and clean up --- x/tx/aminojson/json_marshal.go | 40 ++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 4d6f48c16258..f00a2fbfd72e 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -15,6 +15,8 @@ import ( "cosmossdk.io/api/amino" ) +type MessageEncoder func(message protoreflect.Message) (protoreflect.Value, error) + type JSONMarshaller interface { MarshalAmino(proto.Message) ([]byte, error) } @@ -22,7 +24,7 @@ type JSONMarshaller interface { type AminoJSON struct { // maps cosmos_proto.scalar -> zero value factory zeroValues map[string]func() protoreflect.Value - messageEncoders map[string]func(message protoreflect.Message) protoreflect.Value + messageEncoders map[string]MessageEncoder } func NewAminoJSON() AminoJSON { @@ -32,13 +34,15 @@ func NewAminoJSON() AminoJSON { return protoreflect.ValueOfString("0") }, }, - messageEncoders: map[string]func(message protoreflect.Message) protoreflect.Value{ - "key_field": func(message protoreflect.Message) protoreflect.Value { - // todo - // err handling - keyField := message.Get(message.Descriptor().Fields().ByName("key")) - bz := keyField.Bytes() - return protoreflect.ValueOfBytes(bz) + messageEncoders: map[string]MessageEncoder{ + "key_field": func(message protoreflect.Message) (protoreflect.Value, error) { + keyField := message.Descriptor().Fields().ByName("key") + if keyField == nil { + return protoreflect.Value{}, errors.New( + `message encoder for key_field: no field named "key" found`) + } + bz := message.Get(keyField).Bytes() + return protoreflect.ValueOfBytes(bz), nil }, }, } @@ -81,7 +85,11 @@ func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { } func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) error { - if encoded, encodingOption := aj.encodeMessage(msg); encodingOption { + if encoder := aj.getMessageEncoder(msg); encoder != nil { + encoded, err := encoder(msg) + if err != nil { + return err + } return aj.marshal(encoded, writer) } @@ -106,13 +114,13 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e for i := 0; i < fields.Len(); i++ { f := fields.Get(i) v := msg.Get(f) - name := fieldName(f) + name := getFieldName(f) if !msg.Has(f) { if omitEmpty(f) { continue } else { - zv, found := aj.fieldZeroValue(f) + zv, found := aj.getZeroValue(f) if found { v = zv } @@ -217,7 +225,7 @@ func omitEmpty(field protoreflect.FieldDescriptor) bool { return true } -func fieldName(field protoreflect.FieldDescriptor) string { +func getFieldName(field protoreflect.FieldDescriptor) string { opts := field.Options() if proto.HasExtension(opts, amino.E_FieldName) { return proto.GetExtension(opts, amino.E_FieldName).(string) @@ -225,7 +233,7 @@ func fieldName(field protoreflect.FieldDescriptor) string { return string(field.Name()) } -func (aj AminoJSON) fieldZeroValue(field protoreflect.FieldDescriptor) (protoreflect.Value, bool) { +func (aj AminoJSON) getZeroValue(field protoreflect.FieldDescriptor) (protoreflect.Value, bool) { opts := field.Options() if proto.HasExtension(opts, cosmos_proto.E_Scalar) { scalar := proto.GetExtension(opts, cosmos_proto.E_Scalar).(string) @@ -236,13 +244,13 @@ func (aj AminoJSON) fieldZeroValue(field protoreflect.FieldDescriptor) (protoref return field.Default(), false } -func (aj AminoJSON) encodeMessage(message protoreflect.Message) (protoreflect.Value, bool) { +func (aj AminoJSON) getMessageEncoder(message protoreflect.Message) MessageEncoder { opts := message.Descriptor().Options() if proto.HasExtension(opts, amino.E_MessageEncoding) { encoding := proto.GetExtension(opts, amino.E_MessageEncoding).(string) if fn, ok := aj.messageEncoders[encoding]; ok { - return fn(message), true + return fn } } - return protoreflect.Value{}, false + return nil } From cf060ed2e515e3de5c2ea6ad84600062f3149546 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 2 Feb 2023 14:00:29 -0600 Subject: [PATCH 038/122] fix any creation --- codec/aminojson_test.go | 3 ++- x/tx/aminojson/json_marshal.go | 11 +++++------ x/tx/aminojson/json_marshal_test.go | 11 +++++++---- 3 files changed, 14 insertions(+), 11 deletions(-) diff --git a/codec/aminojson_test.go b/codec/aminojson_test.go index a3ce1e09a7d4..a658f147ccb5 100644 --- a/codec/aminojson_test.go +++ b/codec/aminojson_test.go @@ -23,6 +23,7 @@ func TestAminoJSON_LegacyParity(t *testing.T) { cdc.RegisterConcrete(authtypes.Params{}, "cosmos-sdk/x/auth/Params", nil) cdc.RegisterConcrete(disttypes.MsgWithdrawDelegatorReward{}, "cosmos-sdk/MsgWithdrawDelegationReward", nil) cdc.RegisterConcrete(&ed25519.PubKey{}, cryptotypes.PubKeyName, nil) + aj := aminojson.NewAminoJSON() cases := map[string]struct { gogo gogoproto.Message @@ -58,7 +59,7 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogoBytes, err := cdc.MarshalJSON(tc.gogo) require.NoError(t, err) - pulsarBytes, err := aminojson.MarshalAmino(tc.pulsar) + pulsarBytes, err := aj.MarshalAmino(tc.pulsar) require.NoError(t, err) require.Equal(t, string(gogoBytes), string(pulsarBytes), "gogo: %s vs pulsar: %s", gogoBytes, pulsarBytes) diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index f00a2fbfd72e..034e8548bc05 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -17,10 +17,6 @@ import ( type MessageEncoder func(message protoreflect.Message) (protoreflect.Value, error) -type JSONMarshaller interface { - MarshalAmino(proto.Message) ([]byte, error) -} - type AminoJSON struct { // maps cosmos_proto.scalar -> zero value factory zeroValues map[string]func() protoreflect.Value @@ -49,9 +45,12 @@ func NewAminoJSON() AminoJSON { return aj } -func MarshalAmino(message proto.Message) ([]byte, error) { +func (aj AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) { + aj.messageEncoders[name] = encoder +} + +func (aj AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} - aj := NewAminoJSON() vmsg := protoreflect.ValueOfMessage(message.ProtoReflect()) err := aj.marshal(vmsg, buf) return buf.Bytes(), err diff --git a/x/tx/aminojson/json_marshal_test.go b/x/tx/aminojson/json_marshal_test.go index d9b665dfbda3..7d32f1cf4748 100644 --- a/x/tx/aminojson/json_marshal_test.go +++ b/x/tx/aminojson/json_marshal_test.go @@ -16,6 +16,8 @@ import ( "google.golang.org/protobuf/types/known/timestamppb" "gotest.tools/v3/assert" + "github.com/cosmos/cosmos-proto/any" + "cosmossdk.io/x/tx/aminojson" "cosmossdk.io/x/tx/rapidproto" @@ -32,6 +34,7 @@ func TestAminoJSON_EdgeCases(t *testing.T) { require.NoError(t, err) cdc := amino.NewCodec() + aj := aminojson.NewAminoJSON() cases := map[string]struct { msg proto.Message @@ -44,7 +47,7 @@ func TestAminoJSON_EdgeCases(t *testing.T) { } for name, tc := range cases { t.Run(name, func(t *testing.T) { - bz, err := aminojson.MarshalAmino(tc.msg) + bz, err := aj.MarshalAmino(tc.msg) if tc.shouldErr { require.Error(t, err) @@ -69,7 +72,7 @@ func TestAminoJSON_EdgeCases(t *testing.T) { } func TestAminoJSON(t *testing.T) { - a, err := anypb.New(&testpb.NestedMessage{ + a, err := any.New(&testpb.NestedMessage{ Foo: "any type nested", Bar: 11, }) @@ -99,7 +102,7 @@ func TestAminoJSON(t *testing.T) { Timestamp: timestamppb.New(time.Date(2022, 1, 1, 12, 31, 0, 0, time.UTC)), Duration: durationpb.New(time.Second * 3000), } - bz, err := aminojson.MarshalAmino(msg) + bz, err := aminojson.NewAminoJSON().MarshalAmino(msg) assert.NilError(t, err) cdc := amino.NewCodec() legacyBz, err := cdc.MarshalJSON(msg) @@ -111,7 +114,7 @@ func TestRapid(t *testing.T) { gen := rapidproto.MessageGenerator(&testpb.ABitOfEverything{}, rapidproto.GeneratorOptions{}) rapid.Check(t, func(t *rapid.T) { msg := gen.Draw(t, "msg") - bz, err := aminojson.MarshalAmino(msg) + bz, err := aminojson.NewAminoJSON().MarshalAmino(msg) assert.NilError(t, err) checkInvariants(t, msg, bz) }) From a2b4be39dc8285512e702ae5790f0c8d0ef546c5 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Fri, 3 Feb 2023 12:21:45 -0600 Subject: [PATCH 039/122] check point, type index infra --- codec/aminojson_test.go | 68 ----- tests/go.mod | 10 +- tests/go.sum | 5 +- tests/integration/aminojson/.gitignore | 1 + tests/integration/aminojson/aminojson_test.go | 249 ++++++++++++++++++ 5 files changed, 259 insertions(+), 74 deletions(-) delete mode 100644 codec/aminojson_test.go create mode 100644 tests/integration/aminojson/.gitignore create mode 100644 tests/integration/aminojson/aminojson_test.go diff --git a/codec/aminojson_test.go b/codec/aminojson_test.go deleted file mode 100644 index a658f147ccb5..000000000000 --- a/codec/aminojson_test.go +++ /dev/null @@ -1,68 +0,0 @@ -package codec_test - -import ( - "testing" - - gogoproto "github.com/cosmos/gogoproto/proto" - "github.com/stretchr/testify/require" - "github.com/tendermint/go-amino" - "google.golang.org/protobuf/proto" - - authapi "cosmossdk.io/api/cosmos/auth/v1beta1" - "cosmossdk.io/api/cosmos/crypto/ed25519" - distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" - "cosmossdk.io/x/tx/aminojson" - cryptotypes "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" - "github.com/cosmos/cosmos-sdk/types" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" -) - -func TestAminoJSON_LegacyParity(t *testing.T) { - cdc := amino.NewCodec() - cdc.RegisterConcrete(authtypes.Params{}, "cosmos-sdk/x/auth/Params", nil) - cdc.RegisterConcrete(disttypes.MsgWithdrawDelegatorReward{}, "cosmos-sdk/MsgWithdrawDelegationReward", nil) - cdc.RegisterConcrete(&ed25519.PubKey{}, cryptotypes.PubKeyName, nil) - aj := aminojson.NewAminoJSON() - - cases := map[string]struct { - gogo gogoproto.Message - pulsar proto.Message - }{ - "auth/params": {gogo: &authtypes.Params{TxSigLimit: 10}, pulsar: &authapi.Params{TxSigLimit: 10}}, - "distribution/delegator_starting_info": { - gogo: &disttypes.DelegatorStartingInfo{}, - pulsar: &distapi.DelegatorStartingInfo{}, - }, - "distribution/delegator_starting_info/non_zero_dec": { - gogo: &disttypes.DelegatorStartingInfo{Stake: types.NewDec(10)}, - pulsar: &distapi.DelegatorStartingInfo{Stake: "10.000000000000000000"}, - }, - "distribution/delegation_delegator_reward": { - gogo: &disttypes.DelegationDelegatorReward{}, - pulsar: &distapi.DelegationDelegatorReward{}, - }, - "distribution/community_pool_spend_proposal_with_deposit": { - gogo: &disttypes.CommunityPoolSpendProposalWithDeposit{}, - pulsar: &distapi.CommunityPoolSpendProposalWithDeposit{}, - }, - "distribution/msg_withdraw_delegator_reward": { - gogo: &disttypes.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, - pulsar: &distapi.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, - }, - "crypto/pubkey": { - gogo: &cryptotypes.PubKey{Key: []byte("key")}, pulsar: &ed25519.PubKey{Key: []byte("key")}, - }, - } - for name, tc := range cases { - t.Run(name, func(t *testing.T) { - gogoBytes, err := cdc.MarshalJSON(tc.gogo) - require.NoError(t, err) - - pulsarBytes, err := aj.MarshalAmino(tc.pulsar) - require.NoError(t, err) - - require.Equal(t, string(gogoBytes), string(pulsarBytes), "gogo: %s vs pulsar: %s", gogoBytes, pulsarBytes) - }) - } -} diff --git a/tests/go.mod b/tests/go.mod index 9c6a72e69a23..e4ec5a58c3b8 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -21,11 +21,16 @@ require ( github.com/spf13/cobra v1.6.1 github.com/stretchr/testify v1.8.1 github.com/tendermint/tendermint v0.37.0-rc2 - google.golang.org/protobuf v1.28.1 + google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 gotest.tools/v3 v3.4.0 pgregory.net/rapid v0.5.5 ) +require ( + cosmossdk.io/x/tx v0.1.0 + github.com/tendermint/go-amino v0.16.0 +) + require ( cloud.google.com/go v0.105.0 // indirect cloud.google.com/go/compute v1.14.0 // indirect @@ -36,7 +41,6 @@ require ( cosmossdk.io/collections v0.0.0-20230124184726-872ec34a5846 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/errors v1.0.0-beta.7 // indirect - cosmossdk.io/x/tx v0.1.0 // indirect filippo.io/edwards25519 v1.0.0-rc.1 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -153,7 +157,6 @@ require ( github.com/spf13/viper v1.15.0 // indirect github.com/subosito/gotenv v1.4.2 // indirect github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7 // indirect - github.com/tendermint/go-amino v0.16.0 // indirect github.com/tendermint/tm-db v0.6.7 // indirect github.com/tidwall/btree v1.6.0 // indirect github.com/ulikunitz/xz v0.5.8 // indirect @@ -186,6 +189,7 @@ replace ( cosmossdk.io/x/evidence => ../x/evidence cosmossdk.io/x/feegrant => ../x/feegrant cosmossdk.io/x/nft => ../x/nft + cosmossdk.io/x/tx => ../x/tx cosmossdk.io/x/upgrade => ../x/upgrade ) diff --git a/tests/go.sum b/tests/go.sum index d33917b61789..467cbb38135a 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -60,8 +60,6 @@ cosmossdk.io/errors v1.0.0-beta.7 h1:gypHW76pTQGVnHKo6QBkb4yFOJjC+sUGRc5Al3Odj1w cosmossdk.io/errors v1.0.0-beta.7/go.mod h1:mz6FQMJRku4bY7aqS/Gwfcmr/ue91roMEKAmDUDpBfE= cosmossdk.io/math v1.0.0-beta.4 h1:JtKedVLGzA0vv84xjYmZ75RKG35Kf2WwcFu8IjRkIIw= cosmossdk.io/math v1.0.0-beta.4/go.mod h1:An0MllWJY6PxibUpnwGk8jOm+a/qIxlKmL5Zyp9NnaM= -cosmossdk.io/x/tx v0.1.0 h1:uyyYVjG22B+jf54N803Z99Y1uPvfuNP3K1YShoCHYL8= -cosmossdk.io/x/tx v0.1.0/go.mod h1:qsDv7e1fSftkF16kpSAk+7ROOojyj+SC0Mz3ukI52EQ= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -1357,8 +1355,9 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 h1:KR8+MyP7/qOlV+8Af01LtjL04bu7on42eVsxT4EyBQk= +google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/tests/integration/aminojson/.gitignore b/tests/integration/aminojson/.gitignore new file mode 100644 index 000000000000..d383c56fffdc --- /dev/null +++ b/tests/integration/aminojson/.gitignore @@ -0,0 +1 @@ +testdata diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go new file mode 100644 index 000000000000..6878e90e0481 --- /dev/null +++ b/tests/integration/aminojson/aminojson_test.go @@ -0,0 +1,249 @@ +package aminojson + +import ( + "fmt" + "reflect" + "strings" + "testing" + + gogoproto "github.com/cosmos/gogoproto/proto" + "github.com/stretchr/testify/require" + goamino "github.com/tendermint/go-amino" + "google.golang.org/protobuf/proto" + "pgregory.net/rapid" + + "cosmossdk.io/api/amino" + authapi "cosmossdk.io/api/cosmos/auth/v1beta1" + authzapi "cosmossdk.io/api/cosmos/authz/v1beta1" + "cosmossdk.io/api/cosmos/crypto/ed25519" + distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" + "cosmossdk.io/x/tx/aminojson" + "cosmossdk.io/x/tx/rapidproto" + cryptotypes "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" + "github.com/cosmos/cosmos-sdk/types" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + authztypes "github.com/cosmos/cosmos-sdk/x/authz" + disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" +) + +type typeUnderTest struct { + gogo gogoproto.Message + pulsar proto.Message +} + +type typeIndex struct { + gogoFields map[string]map[string]reflect.StructField + pulsarFields map[string]map[string]reflect.StructField + pulsarToGogo map[string]string +} + +var msgTypes = []typeUnderTest{ + // auth + {gogo: &authtypes.Params{}, pulsar: &authapi.Params{}}, + {gogo: &authtypes.BaseAccount{}, pulsar: &authapi.BaseAccount{}}, + {gogo: &authtypes.ModuleAccount{}, pulsar: &authapi.ModuleAccount{}}, + // missing name extension, do we need it? + // {gogo: &authtypes.ModuleCredential{}, pulsar: &authapi.ModuleCredential{}}, + {gogo: &authtypes.MsgUpdateParams{}, pulsar: &authapi.MsgUpdateParams{}}, + // authz + {gogo: &authztypes.MsgGrant{}, pulsar: &authzapi.MsgGrant{}}, + {gogo: &authztypes.MsgRevoke{}, pulsar: &authzapi.MsgRevoke{}}, + {gogo: &authztypes.MsgExec{}, pulsar: &authzapi.MsgExec{}}, + {gogo: &authztypes.GenericAuthorization{}, pulsar: &authzapi.GenericAuthorization{}}, +} + +func fqTypeName(msg any) string { + return fullyQualifiedTypeName(reflect.TypeOf(msg).Elem()) +} + +func fullyQualifiedTypeName(typ reflect.Type) string { + pkgType := typ + if typ.Kind() == reflect.Pointer || typ.Kind() == reflect.Slice || typ.Kind() == reflect.Map || typ.Kind() == reflect.Array { + pkgType = typ.Elem() + } + pkgPath := pkgType.PkgPath() + if pkgPath == "" { + return fmt.Sprintf("%v", typ) + } + + return fmt.Sprintf("%s/%v", pkgPath, typ) +} + +func newTypeIndex(types []typeUnderTest) typeIndex { + ti := typeIndex{ + gogoFields: make(map[string]map[string]reflect.StructField), + pulsarFields: make(map[string]map[string]reflect.StructField), + pulsarToGogo: make(map[string]string), + } + for _, t := range types { + gogoType := reflect.TypeOf(t.gogo).Elem() + pulsarType := reflect.TypeOf(t.pulsar).Elem() + + ti.gogoFields[fqTypeName(t.gogo)] = make(map[string]reflect.StructField) + ti.pulsarFields[fqTypeName(t.pulsar)] = make(map[string]reflect.StructField) + ti.pulsarToGogo[fqTypeName(t.pulsar)] = fqTypeName(t.gogo) + + for i := 0; i < gogoType.NumField(); i++ { + field := gogoType.Field(i) + tag := field.Tag.Get("protobuf") + if tag == "" { + continue + } + n := strings.Split(tag, ",")[3] + name := strings.Split(n, "=")[1] + + ti.gogoFields[fqTypeName(t.gogo)][name] = gogoType.Field(i) + } + for i := 0; i < pulsarType.NumField(); i++ { + field := pulsarType.Field(i) + tag := field.Tag.Get("protobuf") + if tag == "" { + continue + } + n := strings.Split(tag, ",")[3] + name := strings.Split(n, "=")[1] + ti.pulsarFields[fqTypeName(t.pulsar)][name] = pulsarType.Field(i) + } + } + + return ti +} + +func (ti typeIndex) deepClone(pulsar proto.Message, gogo gogoproto.Message) { + for n, pStructField := range ti.pulsarFields[fqTypeName(pulsar)] { + gStructField := ti.gogoFields[fqTypeName(gogo)][n] + pulsarField := reflect.ValueOf(pulsar).Elem().FieldByName(pStructField.Name) + gogoField := reflect.ValueOf(gogo).Elem().FieldByName(gStructField.Name) + ti.setField(pulsarField, gogoField) + } +} + +func (ti typeIndex) assertEquals(t *testing.T, pulsar proto.Message, gogo gogoproto.Message) { + for n, pStructField := range ti.pulsarFields[fqTypeName(pulsar)] { + gStructField := ti.gogoFields[fqTypeName(gogo)][n] + pulsarField := reflect.ValueOf(pulsar).Elem().FieldByName(pStructField.Name) + gogoField := reflect.ValueOf(gogo).Elem().FieldByName(gStructField.Name) + ti.assertFieldEquals(t, pulsarField, gogoField) + } +} + +func (ti typeIndex) setField(pulsar reflect.Value, gogo reflect.Value) { + switch pulsar.Type().Kind() { + case reflect.Ptr: + panic(fmt.Sprintf("pointer not supported: %s", pulsar.Type())) + default: + gogo.Set(pulsar) + } +} + +func (ti typeIndex) assertFieldEquals(t *testing.T, pulsarField reflect.Value, gogoField reflect.Value) { + switch pulsarField.Type().Kind() { + case reflect.Ptr: + panic(fmt.Sprintf("pointer not supported: %s", pulsarField.Type())) + default: + require.Equal(t, pulsarField.Interface(), gogoField.Interface()) + } +} + +func TestTypeIndex(t *testing.T) { + ti := newTypeIndex(msgTypes) + require.Equal(t, len(msgTypes), len(ti.gogoFields)) + require.Equal(t, len(msgTypes), len(ti.pulsarFields)) + for k, v := range ti.pulsarFields { + require.Equal(t, len(v), len(ti.gogoFields[ti.pulsarToGogo[k]]), "failed on type: %s", k) + } +} + +func TestDeepClone(t *testing.T) { + ti := newTypeIndex(msgTypes) + tt := msgTypes[0] + // for _, tt := range msgTypes { + gen := rapidproto.MessageGenerator(tt.pulsar, rapidproto.GeneratorOptions{}) + rapid.Check(t, func(rt *rapid.T) { + msg := gen.Draw(rt, "msg").(proto.Message) + ti.deepClone(msg, tt.gogo) + ti.assertEquals(t, msg, tt.gogo) + }) + // } +} + +func TestAminoJSON_AllTypes(t *testing.T) { + cdc := goamino.NewCodec() + for _, tt := range msgTypes { + desc := tt.pulsar.ProtoReflect().Descriptor() + opts := desc.Options() + if !proto.HasExtension(opts, amino.E_Name) { + panic(fmt.Sprintf("missing name extension for %s", desc.FullName())) + } + name := proto.GetExtension(opts, amino.E_Name).(string) + cdc.RegisterConcrete(tt.gogo, name, nil) + } + + // TODO + // roundtrip the message into gogoproto, check equivalanece with pulsar + + //ti := newTypeIndex(msgTypes) + for _, tt := range msgTypes { + gen := rapidproto.MessageGenerator(tt.pulsar, rapidproto.GeneratorOptions{}) + fmt.Printf("testing %T\n", tt.pulsar) + rapid.Check(t, func(t *rapid.T) { + msg := gen.Draw(t, "msg") + fmt.Printf("testing %T\n", msg) + // + //for k, gogoField := range gogoFieldsByTag { + // fmt.Printf("testing field %v\n", gogoField.Type()) + // pulsarField := pulsarFieldsByTag[k] + // pulsarField.Set(gogoField) + //} + }) + } +} + +func TestAminoJSON_LegacyParity(t *testing.T) { + cdc := goamino.NewCodec() + cdc.RegisterConcrete(authtypes.Params{}, "cosmos-sdk/x/auth/Params", nil) + cdc.RegisterConcrete(disttypes.MsgWithdrawDelegatorReward{}, "cosmos-sdk/MsgWithdrawDelegationReward", nil) + cdc.RegisterConcrete(&ed25519.PubKey{}, cryptotypes.PubKeyName, nil) + aj := aminojson.NewAminoJSON() + + cases := map[string]struct { + gogo gogoproto.Message + pulsar proto.Message + }{ + "auth/params": {gogo: &authtypes.Params{TxSigLimit: 10}, pulsar: &authapi.Params{TxSigLimit: 10}}, + "distribution/delegator_starting_info": { + gogo: &disttypes.DelegatorStartingInfo{}, + pulsar: &distapi.DelegatorStartingInfo{}, + }, + "distribution/delegator_starting_info/non_zero_dec": { + gogo: &disttypes.DelegatorStartingInfo{Stake: types.NewDec(10)}, + pulsar: &distapi.DelegatorStartingInfo{Stake: "10.000000000000000000"}, + }, + "distribution/delegation_delegator_reward": { + gogo: &disttypes.DelegationDelegatorReward{}, + pulsar: &distapi.DelegationDelegatorReward{}, + }, + "distribution/community_pool_spend_proposal_with_deposit": { + gogo: &disttypes.CommunityPoolSpendProposalWithDeposit{}, + pulsar: &distapi.CommunityPoolSpendProposalWithDeposit{}, + }, + "distribution/msg_withdraw_delegator_reward": { + gogo: &disttypes.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, + pulsar: &distapi.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, + }, + "crypto/pubkey": { + gogo: &cryptotypes.PubKey{Key: []byte("key")}, pulsar: &ed25519.PubKey{Key: []byte("key")}, + }, + } + for name, tc := range cases { + t.Run(name, func(t *testing.T) { + gogoBytes, err := cdc.MarshalJSON(tc.gogo) + require.NoError(t, err) + + pulsarBytes, err := aj.MarshalAmino(tc.pulsar) + require.NoError(t, err) + + require.Equal(t, string(gogoBytes), string(pulsarBytes), "gogo: %s vs pulsar: %s", gogoBytes, pulsarBytes) + }) + } +} From c19d3175f98a8d00ac3d5e2af55503f7ce6c956f Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 6 Feb 2023 12:19:10 -0600 Subject: [PATCH 040/122] deep copy working for some messages --- tests/integration/aminojson/aminojson_test.go | 138 +++++++++++++++--- x/tx/rapidproto/rapidproto_test.go | 2 +- 2 files changed, 121 insertions(+), 19 deletions(-) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 6878e90e0481..7abbda081497 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -10,6 +10,8 @@ import ( "github.com/stretchr/testify/require" goamino "github.com/tendermint/go-amino" "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoregistry" + "google.golang.org/protobuf/types/known/anypb" "pgregory.net/rapid" "cosmossdk.io/api/amino" @@ -19,6 +21,7 @@ import ( distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" "cosmossdk.io/x/tx/aminojson" "cosmossdk.io/x/tx/rapidproto" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" "github.com/cosmos/cosmos-sdk/types" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -109,37 +112,122 @@ func newTypeIndex(types []typeUnderTest) typeIndex { return ti } -func (ti typeIndex) deepClone(pulsar proto.Message, gogo gogoproto.Message) { - for n, pStructField := range ti.pulsarFields[fqTypeName(pulsar)] { - gStructField := ti.gogoFields[fqTypeName(gogo)][n] - pulsarField := reflect.ValueOf(pulsar).Elem().FieldByName(pStructField.Name) - gogoField := reflect.ValueOf(gogo).Elem().FieldByName(gStructField.Name) +func (ti typeIndex) reflectedDeepClone(pulsar reflect.Value, gogo reflect.Value) { + for n, pStructField := range ti.pulsarFields[fullyQualifiedTypeName(pulsar.Type())] { + gStructField := ti.gogoFields[fullyQualifiedTypeName(gogo.Type())][n] + pulsarField := pulsar.FieldByName(pStructField.Name) + // todo init a new "gogo" since its nil + gogoField := gogo.FieldByName(gStructField.Name) + if !gogoField.IsValid() { + gogoField = reflect.New(gStructField.Type) + gogo.FieldByName(gStructField.Name).Set(gogoField) + } + //fmt.Printf("copying %s to %s\n", pStructField.Name, gStructField.Name) ti.setField(pulsarField, gogoField) } } -func (ti typeIndex) assertEquals(t *testing.T, pulsar proto.Message, gogo gogoproto.Message) { +func (ti typeIndex) deepClone(pulsar proto.Message, gogo gogoproto.Message) { for n, pStructField := range ti.pulsarFields[fqTypeName(pulsar)] { gStructField := ti.gogoFields[fqTypeName(gogo)][n] pulsarField := reflect.ValueOf(pulsar).Elem().FieldByName(pStructField.Name) gogoField := reflect.ValueOf(gogo).Elem().FieldByName(gStructField.Name) - ti.assertFieldEquals(t, pulsarField, gogoField) + //fmt.Printf("copying %s to %s\n", pStructField.Name, gStructField.Name) + ti.setField(pulsarField, gogoField) } } func (ti typeIndex) setField(pulsar reflect.Value, gogo reflect.Value) { switch pulsar.Type().Kind() { case reflect.Ptr: - panic(fmt.Sprintf("pointer not supported: %s", pulsar.Type())) + if !gogo.IsValid() { + fmt.Printf("gogo field is invalid; gogo: %v\n", gogo) + } + if gogo.Type().Kind() != reflect.Ptr && gogo.Type().Kind() != reflect.Struct { + panic(fmt.Sprintf("gogo field is not a pointer; pulsar: %s, gogo: %s", pulsar.Type(), gogo.Type())) + } + if pulsar.IsNil() { + return + } + ti.setField(pulsar.Elem(), gogo) + //panic(fmt.Sprintf("pointer not supported: %s", pulsar.Type())) + case reflect.Struct: + switch val := pulsar.Interface().(type) { + case anypb.Any: + a := &codectypes.Any{ + TypeUrl: val.TypeUrl, + Value: val.Value, + } + gogo.Set(reflect.ValueOf(a)) + default: + if gogo.Type().Kind() == reflect.Ptr { + gogoType := gogo.Type().Elem() + newGogo := reflect.New(gogoType) + gogo.Set(newGogo) + ti.reflectedDeepClone(pulsar, gogo.Elem()) + } else { + gogoType := gogo.Type() + newGogo := reflect.New(gogoType).Elem() + gogo.Set(newGogo) + ti.reflectedDeepClone(pulsar, gogo) + } + } + case reflect.Slice: + // if slices are different types then we need to create a new slice + if pulsar.Type().Elem() != gogo.Type().Elem() { + gogoSlice := reflect.MakeSlice(gogo.Type(), pulsar.Len(), pulsar.Len()) + gogoType := gogoSlice.Type().Elem() + for i := 0; i < pulsar.Len(); i++ { + p := pulsar.Index(i) + g := reflect.New(gogoType).Elem() + ti.setField(p, g) + reflect.Append(gogoSlice, g) + } + gogo.Set(gogoSlice) + return + } + // otherwise we can just copy the slice + fallthrough default: + if pulsar.IsZero() { + return + } gogo.Set(pulsar) } } +func (ti typeIndex) assertEquals(t *testing.T, pulsar proto.Message, gogo gogoproto.Message) { + for n, pStructField := range ti.pulsarFields[fqTypeName(pulsar)] { + gStructField := ti.gogoFields[fqTypeName(gogo)][n] + pulsarField := reflect.ValueOf(pulsar).Elem().FieldByName(pStructField.Name) + gogoField := reflect.ValueOf(gogo).Elem().FieldByName(gStructField.Name) + ti.assertFieldEquals(t, pulsarField, gogoField) + } +} + func (ti typeIndex) assertFieldEquals(t *testing.T, pulsarField reflect.Value, gogoField reflect.Value) { switch pulsarField.Type().Kind() { case reflect.Ptr: - panic(fmt.Sprintf("pointer not supported: %s", pulsarField.Type())) + if gogoField.Type().Kind() != reflect.Ptr && gogoField.Type().Kind() != reflect.Struct { + panic(fmt.Sprintf("gogo field is not a pointer; pulsar: %s", pulsarField.Type())) + } + if pulsarField.IsNil() { + if gogoField.Type().Kind() == reflect.Struct { + // TODO rewrite comparison as hash concatenation to avoid this hack and potential bug + return + } else if !gogoField.IsNil() { + println("failing") + require.Fail(t, "pulsar field is nil, but gogo field is not") + } else { + // both nil, return + return + } + } + // otherwise recurse + ti.assertFieldEquals(t, pulsarField.Elem(), gogoField.Elem()) + //panic(fmt.Sprintf("pointer not supported: %s", pulsarField.Type())) + case reflect.Struct: + default: require.Equal(t, pulsarField.Interface(), gogoField.Interface()) } @@ -156,15 +244,29 @@ func TestTypeIndex(t *testing.T) { func TestDeepClone(t *testing.T) { ti := newTypeIndex(msgTypes) - tt := msgTypes[0] - // for _, tt := range msgTypes { - gen := rapidproto.MessageGenerator(tt.pulsar, rapidproto.GeneratorOptions{}) - rapid.Check(t, func(rt *rapid.T) { - msg := gen.Draw(rt, "msg").(proto.Message) - ti.deepClone(msg, tt.gogo) - ti.assertEquals(t, msg, tt.gogo) - }) - // } + //tt := msgTypes[0] + var anyTypeURLs []string + for _, msgType := range msgTypes { + anyTypeURLs = append(anyTypeURLs, string(msgType.pulsar.ProtoReflect().Descriptor().FullName())) + } + + for _, tt := range msgTypes { + fmt.Printf("testing %s\n", tt.pulsar.ProtoReflect().Descriptor().FullName()) + gen := rapidproto.MessageGenerator(tt.pulsar, rapidproto.GeneratorOptions{ + AnyTypeURLs: anyTypeURLs, + Resolver: protoregistry.GlobalTypes, + }) + + rapid.Check(t, func(rt *rapid.T) { + msg := gen.Draw(rt, "msg").(proto.Message) + //fmt.Printf("msg %v\n", msg) + goMsg := reflect.New(reflect.TypeOf(tt.gogo).Elem()).Interface().(gogoproto.Message) + //fmt.Println("clone") + ti.deepClone(msg, goMsg) + //fmt.Println("assert") + //ti.assertEquals(t, msg, goMsg) + }) + } } func TestAminoJSON_AllTypes(t *testing.T) { diff --git a/x/tx/rapidproto/rapidproto_test.go b/x/tx/rapidproto/rapidproto_test.go index 6be07c0bc963..a18f5430a2e4 100644 --- a/x/tx/rapidproto/rapidproto_test.go +++ b/x/tx/rapidproto/rapidproto_test.go @@ -12,7 +12,7 @@ import ( "github.com/cosmos/cosmos-proto/testpb" - "github.com/cosmos/cosmos-sdk/testutil/rapidproto" + "cosmossdk.io/x/tx/rapidproto" ) // TestRegression checks that the generator still produces the same output From 2ba8367d23b587f11a548140e36f878eaae5cfe4 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 6 Feb 2023 15:22:20 -0600 Subject: [PATCH 041/122] cd tx/tx && go mod tidy --- x/tx/go.mod | 3 +++ x/tx/go.sum | 36 ++++++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/x/tx/go.mod b/x/tx/go.mod index 9deb61549920..34b25bfde094 100644 --- a/x/tx/go.mod +++ b/x/tx/go.mod @@ -10,7 +10,10 @@ require ( github.com/google/go-cmp v0.5.9 github.com/pkg/errors v0.9.1 github.com/stretchr/testify v1.8.1 + github.com/tendermint/go-amino v0.16.0 google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 + gotest.tools/v3 v3.4.0 + pgregory.net/rapid v0.5.3 ) require ( diff --git a/x/tx/go.sum b/x/tx/go.sum index 4c39a6831801..ccbe3e7d33d5 100644 --- a/x/tx/go.sum +++ b/x/tx/go.sum @@ -11,12 +11,15 @@ github.com/cosmos/gogoproto v1.4.4/go.mod h1:/yl6/nLwsZcZ2JY3OrqjRqvqCG9InUMcXRf github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf h1:+RRA9JqSOZFfKrOeqr2z77+8R2RKyh8PG66dcu1V0ck= +github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -27,19 +30,48 @@ github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZV github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= +github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20230203172020-98cc5a0785f9 h1:frX3nT9RkKybPnjyI+yvZh6ZucTZatCCEm9D47sZ2zo= golang.org/x/exp v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.4.0 h1:Zr2JFtRQNX3BCZ8YtxRE9hNJYC8J6I1MVbMg6owUp18= golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa h1:qQPhfbPO23fwm/9lQr91L1u62Zo6cm+zI+slZT+uf+o= google.golang.org/genproto v0.0.0-20230125152338-dcaf20b6aeaa/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= google.golang.org/grpc v1.52.3 h1:pf7sOysg4LdgBqduXveGKrcEwbStiK2rtfghdzlUYDQ= @@ -54,4 +86,8 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= +gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= +pgregory.net/rapid v0.5.3 h1:163N50IHFqr1phZens4FQOdPgfJscR7a562mjQqeo4M= +pgregory.net/rapid v0.5.3/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= From 98a12f1a06753db7fa2bf7253d91358aa5f92d61 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 6 Feb 2023 15:25:46 -0600 Subject: [PATCH 042/122] Add amino annotation --- api/amino/amino.pulsar.go | 41 +- api/cosmos/bank/v1beta1/query.pulsar.go | 2 +- types/tx/amino/amino.pb.go | 49 +- x/bank/types/query.pb.go | 2 +- x/staking/types/staking.pb.go | 1315 ++++++++++++----------- 5 files changed, 718 insertions(+), 691 deletions(-) diff --git a/api/amino/amino.pulsar.go b/api/amino/amino.pulsar.go index b6f4a39cd329..143968edb1a1 100644 --- a/api/amino/amino.pulsar.go +++ b/api/amino/amino.pulsar.go @@ -62,6 +62,14 @@ var file_amino_amino_proto_extTypes = []protoimpl.ExtensionInfo{ Tag: "varint,11110005,opt,name=dont_omitempty", Filename: "amino/amino.proto", }, + { + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 11110006, + Name: "amino.embedded", + Tag: "varint,11110006,opt,name=embedded", + Filename: "amino/amino.proto", + }, } // Extension fields to descriptorpb.MessageOptions. @@ -141,6 +149,8 @@ var ( // // optional bool dont_omitempty = 11110005; E_DontOmitempty = &file_amino_amino_proto_extTypes[4] + // optional bool embedded = 11110006; + E_Embedded = &file_amino_amino_proto_extTypes[5] ) var File_amino_amino_proto protoreflect.FileDescriptor @@ -170,14 +180,18 @@ var file_amino_amino_proto_rawDesc = []byte{ 0x6d, 0x70, 0x74, 0x79, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf5, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x6f, - 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x63, 0x0a, 0x09, 0x63, - 0x6f, 0x6d, 0x2e, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x42, 0x0a, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, - 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0xa2, 0x02, - 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0xca, 0x02, 0x05, 0x41, - 0x6d, 0x69, 0x6e, 0x6f, 0xe2, 0x02, 0x11, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x3c, 0x0a, 0x08, 0x65, + 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf6, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x42, 0x63, 0x0a, 0x09, 0x63, 0x6f, 0x6d, + 0x2e, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x42, 0x0a, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, + 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0xa2, 0x02, 0x03, 0x41, + 0x58, 0x58, 0xaa, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0xca, 0x02, 0x05, 0x41, 0x6d, 0x69, + 0x6e, 0x6f, 0xe2, 0x02, 0x11, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_amino_amino_proto_goTypes = []interface{}{ @@ -190,10 +204,11 @@ var file_amino_amino_proto_depIdxs = []int32{ 1, // 2: amino.encoding:extendee -> google.protobuf.FieldOptions 1, // 3: amino.field_name:extendee -> google.protobuf.FieldOptions 1, // 4: amino.dont_omitempty:extendee -> google.protobuf.FieldOptions - 5, // [5:5] is the sub-list for method output_type - 5, // [5:5] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 0, // [0:5] is the sub-list for extension extendee + 1, // 5: amino.embedded:extendee -> google.protobuf.FieldOptions + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 0, // [0:6] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } @@ -209,7 +224,7 @@ func file_amino_amino_proto_init() { RawDescriptor: file_amino_amino_proto_rawDesc, NumEnums: 0, NumMessages: 0, - NumExtensions: 5, + NumExtensions: 6, NumServices: 0, }, GoTypes: file_amino_amino_proto_goTypes, diff --git a/api/cosmos/bank/v1beta1/query.pulsar.go b/api/cosmos/bank/v1beta1/query.pulsar.go index b4c5069c17d6..21d552ace042 100644 --- a/api/cosmos/bank/v1beta1/query.pulsar.go +++ b/api/cosmos/bank/v1beta1/query.pulsar.go @@ -11387,7 +11387,7 @@ type QueryAllBalancesRequest struct { Pagination *v1beta11.PageRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` // resolve_denom is the flag to resolve the denom into a human-readable form from the metadata. // - // Since: cosmos-sdk 0.47 + // Since: cosmos-sdk 0.48 ResolveDenom bool `protobuf:"varint,3,opt,name=resolve_denom,json=resolveDenom,proto3" json:"resolve_denom,omitempty"` } diff --git a/types/tx/amino/amino.pb.go b/types/tx/amino/amino.pb.go index 1d784a86e5fb..1de7cc0cfc81 100644 --- a/types/tx/amino/amino.pb.go +++ b/types/tx/amino/amino.pb.go @@ -66,34 +66,45 @@ var E_DontOmitempty = &proto.ExtensionDesc{ Filename: "amino/amino.proto", } +var E_Embedded = &proto.ExtensionDesc{ + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*bool)(nil), + Field: 11110006, + Name: "amino.embedded", + Tag: "varint,11110006,opt,name=embedded", + Filename: "amino/amino.proto", +} + func init() { proto.RegisterExtension(E_Name) proto.RegisterExtension(E_MessageEncoding) proto.RegisterExtension(E_Encoding) proto.RegisterExtension(E_FieldName) proto.RegisterExtension(E_DontOmitempty) + proto.RegisterExtension(E_Embedded) } func init() { proto.RegisterFile("amino/amino.proto", fileDescriptor_115c1f70afec6bc5) } var fileDescriptor_115c1f70afec6bc5 = []byte{ - // 284 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4c, 0xcc, 0xcd, 0xcc, - 0xcb, 0xd7, 0x07, 0x93, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0xac, 0x60, 0x8e, 0x94, 0x42, - 0x7a, 0x7e, 0x7e, 0x7a, 0x4e, 0xaa, 0x3e, 0x58, 0x30, 0xa9, 0x34, 0x4d, 0x3f, 0x25, 0xb5, 0x38, - 0xb9, 0x28, 0xb3, 0xa0, 0x24, 0xbf, 0x08, 0xa2, 0xd0, 0xca, 0x8c, 0x8b, 0x25, 0x2f, 0x31, 0x37, - 0x55, 0x48, 0x5e, 0x0f, 0xa2, 0x54, 0x0f, 0xa6, 0x54, 0xcf, 0x37, 0xb5, 0xb8, 0x38, 0x31, 0x3d, - 0xd5, 0xbf, 0xa0, 0x24, 0x33, 0x3f, 0xaf, 0x58, 0xe2, 0x63, 0xcf, 0x32, 0x56, 0x05, 0x46, 0x0d, - 0xce, 0x20, 0xb0, 0x7a, 0x2b, 0x5f, 0x2e, 0x81, 0x5c, 0x88, 0x82, 0xf8, 0xd4, 0xbc, 0xe4, 0xfc, - 0x94, 0xcc, 0xbc, 0x74, 0xc2, 0x66, 0x7c, 0x82, 0x99, 0xc1, 0x0f, 0xd5, 0xeb, 0x0a, 0xd5, 0x6a, - 0x65, 0xc3, 0xc5, 0x01, 0x37, 0x46, 0x16, 0xc3, 0x18, 0xb7, 0xcc, 0xd4, 0x9c, 0x14, 0x98, 0x21, - 0x9f, 0x61, 0x86, 0xc0, 0x75, 0x58, 0xd9, 0x73, 0x71, 0xa5, 0x81, 0x94, 0xc4, 0x83, 0xbd, 0x42, - 0x40, 0xff, 0x17, 0x98, 0x7e, 0x4e, 0xb0, 0x1e, 0x3f, 0x90, 0x6f, 0xdc, 0xb9, 0xf8, 0x52, 0xf2, - 0xf3, 0x4a, 0xe2, 0xf3, 0x73, 0x33, 0x4b, 0x52, 0x73, 0x0b, 0x4a, 0x2a, 0x09, 0x19, 0xf2, 0x15, - 0x62, 0x08, 0x47, 0x10, 0x2f, 0x48, 0x9f, 0x3f, 0x4c, 0x9b, 0x93, 0xeb, 0x89, 0x47, 0x72, 0x8c, - 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7, 0x38, 0xe1, 0xb1, 0x1c, 0xc3, 0x85, 0xc7, 0x72, - 0x0c, 0x37, 0x1e, 0xcb, 0x31, 0x44, 0x69, 0xa7, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, - 0xe7, 0xea, 0x27, 0xe7, 0x17, 0xe7, 0xe6, 0x17, 0x43, 0x29, 0xdd, 0xe2, 0x94, 0x6c, 0xfd, 0x92, - 0xca, 0x82, 0xd4, 0x62, 0xfd, 0x92, 0x0a, 0x48, 0x24, 0x26, 0xb1, 0x81, 0x6d, 0x35, 0x06, 0x04, - 0x00, 0x00, 0xff, 0xff, 0xa9, 0xa0, 0x4d, 0x6f, 0xda, 0x01, 0x00, 0x00, + // 300 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x4d, 0x4b, 0xc3, 0x30, + 0x18, 0x80, 0x57, 0x70, 0xb2, 0x05, 0xfc, 0xda, 0x49, 0x04, 0xe3, 0x8e, 0x82, 0xd8, 0x1c, 0x04, + 0x0f, 0x45, 0x10, 0x84, 0xe9, 0x69, 0x0e, 0x76, 0xf4, 0x32, 0xda, 0xe6, 0x5d, 0x0d, 0x2e, 0x79, + 0x4b, 0x93, 0x81, 0xfb, 0x0f, 0x1e, 0xfc, 0x15, 0xfe, 0x16, 0x8f, 0x3b, 0x7a, 0x94, 0xf6, 0x17, + 0xf8, 0x79, 0x96, 0xa6, 0x4d, 0x2f, 0x1e, 0x7a, 0x49, 0x48, 0x78, 0x9e, 0x27, 0xbc, 0x10, 0xb2, + 0x17, 0x4a, 0xa1, 0x90, 0xd9, 0xd5, 0x4f, 0x33, 0x34, 0x38, 0xe8, 0xda, 0xc3, 0xc1, 0x30, 0x41, + 0x4c, 0x16, 0xc0, 0xec, 0x65, 0xb4, 0x9c, 0x33, 0x0e, 0x3a, 0xce, 0x44, 0x6a, 0x30, 0xab, 0xc0, + 0xe0, 0x9c, 0x6c, 0xa8, 0x50, 0xc2, 0xe0, 0xc8, 0xaf, 0x50, 0xdf, 0xa1, 0xfe, 0x18, 0xb4, 0x0e, + 0x13, 0x98, 0xa4, 0x46, 0xa0, 0xd2, 0xfb, 0x1f, 0x4f, 0x2f, 0xdd, 0xa1, 0x77, 0xdc, 0x9f, 0x5a, + 0x3e, 0x18, 0x93, 0x5d, 0x59, 0x01, 0x33, 0x50, 0x31, 0x72, 0xa1, 0x92, 0xf6, 0xc6, 0xa7, 0x6b, + 0xec, 0xd4, 0xee, 0xa8, 0x56, 0x83, 0x0b, 0xd2, 0x6b, 0x32, 0x87, 0xff, 0x32, 0xd7, 0x02, 0x16, + 0xdc, 0x45, 0xbe, 0x5c, 0xa4, 0x31, 0x82, 0x4b, 0x42, 0xe6, 0x25, 0x32, 0xb3, 0xa3, 0xb4, 0xf8, + 0xdf, 0xce, 0xef, 0x5b, 0xe7, 0xb6, 0x9c, 0xe6, 0x86, 0x6c, 0x73, 0x54, 0x66, 0x86, 0x52, 0x18, + 0x90, 0xa9, 0x59, 0xb5, 0x45, 0x7e, 0xaa, 0x48, 0x6f, 0xba, 0x55, 0x7a, 0x13, 0xa7, 0xd9, 0x39, + 0x64, 0x04, 0x9c, 0x03, 0x6f, 0x4b, 0xfc, 0xba, 0x44, 0x63, 0x5c, 0x8d, 0x5e, 0x73, 0xea, 0xad, + 0x73, 0xea, 0xbd, 0xe7, 0xd4, 0x7b, 0x2e, 0x68, 0x67, 0x5d, 0xd0, 0xce, 0x5b, 0x41, 0x3b, 0x77, + 0x27, 0x89, 0x30, 0xf7, 0xcb, 0xc8, 0x8f, 0x51, 0xb2, 0x18, 0xb5, 0x44, 0x5d, 0x6f, 0xa7, 0x9a, + 0x3f, 0x30, 0xb3, 0x4a, 0x41, 0x33, 0xf3, 0x58, 0x7d, 0x81, 0x68, 0xd3, 0x3e, 0x78, 0xf6, 0x17, + 0x00, 0x00, 0xff, 0xff, 0x6d, 0x26, 0x8c, 0xd3, 0x18, 0x02, 0x00, 0x00, } diff --git a/x/bank/types/query.pb.go b/x/bank/types/query.pb.go index 6d95e565dda8..beaa0ab624ab 100644 --- a/x/bank/types/query.pb.go +++ b/x/bank/types/query.pb.go @@ -129,7 +129,7 @@ type QueryAllBalancesRequest struct { Pagination *query.PageRequest `protobuf:"bytes,2,opt,name=pagination,proto3" json:"pagination,omitempty"` // resolve_denom is the flag to resolve the denom into a human-readable form from the metadata. // - // Since: cosmos-sdk 0.47 + // Since: cosmos-sdk 0.48 ResolveDenom bool `protobuf:"varint,3,opt,name=resolve_denom,json=resolveDenom,proto3" json:"resolve_denom,omitempty"` } diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index a66defd5c42c..079eb5987518 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -1402,669 +1402,670 @@ func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_go func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 10588 bytes of a gzipped FileDescriptorSet + // 10601 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x7b, 0x70, 0x24, 0xc7, 0x79, 0x1f, 0xf6, 0xbd, 0xfb, 0x2d, 0x76, 0x77, 0xd0, 0x00, 0xef, 0x70, 0x7b, 0x24, 0x00, 0x0e, 0x1f, 0xf7, 0x20, 0x89, 0x23, 0x8f, 0xbc, 0x23, 0x89, 0x13, 0x45, 0xef, 0x2e, 0xf6, 0xee, 0x70, 0xc4, 0x4b, 0xb3, 0xc0, 0xf1, 0xe1, 0x48, 0xa3, 0xc1, 0x6e, 0x03, 0x18, 0xde, 0xee, 0xcc, 0x68, 0x66, 0xf6, 0x0e, 0x60, 0xb9, 0x52, 0xb4, 0x65, 0x3b, 0xf2, 0xc5, 0x51, 0x64, 0x2b, 0x65, 0xcb, 0xb2, 0x4e, 0xa1, 0xac, 0x58, 0xa2, 0x9c, 0x97, 0x6c, 0x29, 0xb2, 0x1c, 0x97, 0x5d, 0x72, 0x9e, - 0xb2, 0x93, 0x4a, 0x49, 0xae, 0x54, 0xe2, 0x72, 0x25, 0x8c, 0x43, 0xa9, 0x22, 0x45, 0x96, 0x63, - 0x5b, 0xa6, 0x2b, 0x71, 0x54, 0xa9, 0xa4, 0xfa, 0x35, 0x8f, 0x7d, 0x60, 0x16, 0x27, 0x92, 0x76, - 0x4a, 0xff, 0xdc, 0xed, 0x74, 0x7f, 0xdf, 0x6f, 0xba, 0xbf, 0xfe, 0xfa, 0xeb, 0xef, 0xfb, 0xba, - 0xa7, 0x01, 0x7f, 0x76, 0x01, 0xe6, 0x76, 0x4c, 0x73, 0xa7, 0x8d, 0xcf, 0x58, 0xb6, 0xe9, 0x9a, - 0x5b, 0xdd, 0xed, 0x33, 0x2d, 0xec, 0x34, 0x6d, 0xdd, 0x72, 0x4d, 0x7b, 0x9e, 0x96, 0xa1, 0x12, - 0xa3, 0x98, 0x17, 0x14, 0xf2, 0x0a, 0x4c, 0x5c, 0xd4, 0xdb, 0x78, 0xd1, 0x23, 0x6c, 0x60, 0x17, - 0x3d, 0x01, 0xc9, 0x6d, 0xbd, 0x8d, 0xa7, 0x63, 0x73, 0x89, 0x93, 0xf9, 0xb3, 0xf7, 0xce, 0xf7, - 0x30, 0xcd, 0x87, 0x39, 0xd6, 0x49, 0xb1, 0x42, 0x39, 0xe4, 0xaf, 0x27, 0x61, 0x72, 0x40, 0x2d, - 0x42, 0x90, 0x34, 0xb4, 0x0e, 0x41, 0x8c, 0x9d, 0xcc, 0x29, 0xf4, 0x37, 0x9a, 0x86, 0x8c, 0xa5, - 0x35, 0xaf, 0x69, 0x3b, 0x78, 0x3a, 0x4e, 0x8b, 0xc5, 0x23, 0x9a, 0x01, 0x68, 0x61, 0x0b, 0x1b, - 0x2d, 0x6c, 0x34, 0xf7, 0xa7, 0x13, 0x73, 0x89, 0x93, 0x39, 0x25, 0x50, 0x82, 0x1e, 0x80, 0x09, - 0xab, 0xbb, 0xd5, 0xd6, 0x9b, 0x6a, 0x80, 0x0c, 0xe6, 0x12, 0x27, 0x53, 0x8a, 0xc4, 0x2a, 0x16, - 0x7d, 0xe2, 0x13, 0x50, 0xba, 0x81, 0xb5, 0x6b, 0x41, 0xd2, 0x3c, 0x25, 0x2d, 0x92, 0xe2, 0x00, - 0x61, 0x0d, 0xc6, 0x3b, 0xd8, 0x71, 0xb4, 0x1d, 0xac, 0xba, 0xfb, 0x16, 0x9e, 0x4e, 0xd2, 0xde, - 0xcf, 0xf5, 0xf5, 0xbe, 0xb7, 0xe7, 0x79, 0xce, 0xb5, 0xb1, 0x6f, 0x61, 0x54, 0x81, 0x1c, 0x36, - 0xba, 0x1d, 0x86, 0x90, 0x1a, 0x22, 0xbf, 0xba, 0xd1, 0xed, 0xf4, 0xa2, 0x64, 0x09, 0x1b, 0x87, - 0xc8, 0x38, 0xd8, 0xbe, 0xae, 0x37, 0xf1, 0x74, 0x9a, 0x02, 0x9c, 0xe8, 0x03, 0x68, 0xb0, 0xfa, - 0x5e, 0x0c, 0xc1, 0x87, 0x6a, 0x90, 0xc3, 0x7b, 0x2e, 0x36, 0x1c, 0xdd, 0x34, 0xa6, 0x33, 0x14, - 0xe4, 0xbe, 0x01, 0xa3, 0x88, 0xdb, 0xad, 0x5e, 0x08, 0x9f, 0x0f, 0x9d, 0x87, 0x8c, 0x69, 0xb9, - 0xba, 0x69, 0x38, 0xd3, 0xd9, 0xb9, 0xd8, 0xc9, 0xfc, 0xd9, 0x3b, 0x07, 0x2a, 0xc2, 0x1a, 0xa3, - 0x51, 0x04, 0x31, 0x5a, 0x02, 0xc9, 0x31, 0xbb, 0x76, 0x13, 0xab, 0x4d, 0xb3, 0x85, 0x55, 0xdd, - 0xd8, 0x36, 0xa7, 0x73, 0x14, 0x60, 0xb6, 0xbf, 0x23, 0x94, 0xb0, 0x66, 0xb6, 0xf0, 0x92, 0xb1, - 0x6d, 0x2a, 0x45, 0x27, 0xf4, 0x8c, 0x8e, 0x40, 0xda, 0xd9, 0x37, 0x5c, 0x6d, 0x6f, 0x7a, 0x9c, - 0x6a, 0x08, 0x7f, 0x92, 0x7f, 0x2d, 0x0d, 0xa5, 0x51, 0x54, 0xec, 0x02, 0xa4, 0xb6, 0x49, 0x2f, - 0xa7, 0xe3, 0x87, 0x91, 0x01, 0xe3, 0x09, 0x0b, 0x31, 0x7d, 0x9b, 0x42, 0xac, 0x40, 0xde, 0xc0, - 0x8e, 0x8b, 0x5b, 0x4c, 0x23, 0x12, 0x23, 0xea, 0x14, 0x30, 0xa6, 0x7e, 0x95, 0x4a, 0xde, 0x96, - 0x4a, 0x3d, 0x07, 0x25, 0xaf, 0x49, 0xaa, 0xad, 0x19, 0x3b, 0x42, 0x37, 0xcf, 0x44, 0xb5, 0x64, - 0xbe, 0x2e, 0xf8, 0x14, 0xc2, 0xa6, 0x14, 0x71, 0xe8, 0x19, 0x2d, 0x02, 0x98, 0x06, 0x36, 0xb7, - 0xd5, 0x16, 0x6e, 0xb6, 0xa7, 0xb3, 0x43, 0xa4, 0xb4, 0x46, 0x48, 0xfa, 0xa4, 0x64, 0xb2, 0xd2, - 0x66, 0x1b, 0x3d, 0xe9, 0xab, 0x5a, 0x66, 0x88, 0xa6, 0xac, 0xb0, 0x49, 0xd6, 0xa7, 0x6d, 0x9b, - 0x50, 0xb4, 0x31, 0xd1, 0x7b, 0xdc, 0xe2, 0x3d, 0xcb, 0xd1, 0x46, 0xcc, 0x47, 0xf6, 0x4c, 0xe1, - 0x6c, 0xac, 0x63, 0x05, 0x3b, 0xf8, 0x88, 0xee, 0x01, 0xaf, 0x40, 0xa5, 0x6a, 0x05, 0xd4, 0x0a, - 0x8d, 0x8b, 0xc2, 0x55, 0xad, 0x83, 0xcb, 0x2f, 0x41, 0x31, 0x2c, 0x1e, 0x34, 0x05, 0x29, 0xc7, - 0xd5, 0x6c, 0x97, 0x6a, 0x61, 0x4a, 0x61, 0x0f, 0x48, 0x82, 0x04, 0x36, 0x5a, 0xd4, 0xca, 0xa5, - 0x14, 0xf2, 0x13, 0xfd, 0x80, 0xdf, 0xe1, 0x04, 0xed, 0xf0, 0xfd, 0xfd, 0x23, 0x1a, 0x42, 0xee, - 0xed, 0x77, 0xf9, 0x71, 0x28, 0x84, 0x3a, 0x30, 0xea, 0xab, 0xe5, 0x1f, 0x82, 0x3b, 0x06, 0x42, - 0xa3, 0xe7, 0x60, 0xaa, 0x6b, 0xe8, 0x86, 0x8b, 0x6d, 0xcb, 0xc6, 0x44, 0x63, 0xd9, 0xab, 0xa6, - 0xbf, 0x91, 0x19, 0xa2, 0x73, 0x9b, 0x41, 0x6a, 0x86, 0xa2, 0x4c, 0x76, 0xfb, 0x0b, 0x4f, 0xe7, - 0xb2, 0xdf, 0xcc, 0x48, 0x2f, 0xbf, 0xfc, 0xf2, 0xcb, 0x71, 0xf9, 0xb7, 0xd2, 0x30, 0x35, 0x68, - 0xce, 0x0c, 0x9c, 0xbe, 0x47, 0x20, 0x6d, 0x74, 0x3b, 0x5b, 0xd8, 0xa6, 0x42, 0x4a, 0x29, 0xfc, - 0x09, 0x55, 0x20, 0xd5, 0xd6, 0xb6, 0x70, 0x7b, 0x3a, 0x39, 0x17, 0x3b, 0x59, 0x3c, 0xfb, 0xc0, - 0x48, 0xb3, 0x72, 0x7e, 0x99, 0xb0, 0x28, 0x8c, 0x13, 0xbd, 0x13, 0x92, 0xdc, 0x44, 0x13, 0x84, - 0xd3, 0xa3, 0x21, 0x90, 0xb9, 0xa4, 0x50, 0x3e, 0x74, 0x1c, 0x72, 0xe4, 0x7f, 0xa6, 0x1b, 0x69, - 0xda, 0xe6, 0x2c, 0x29, 0x20, 0x7a, 0x81, 0xca, 0x90, 0xa5, 0xd3, 0xa4, 0x85, 0xc5, 0xd2, 0xe6, - 0x3d, 0x13, 0xc5, 0x6a, 0xe1, 0x6d, 0xad, 0xdb, 0x76, 0xd5, 0xeb, 0x5a, 0xbb, 0x8b, 0xa9, 0xc2, - 0xe7, 0x94, 0x71, 0x5e, 0x78, 0x95, 0x94, 0xa1, 0x59, 0xc8, 0xb3, 0x59, 0xa5, 0x1b, 0x2d, 0xbc, - 0x47, 0xad, 0x67, 0x4a, 0x61, 0x13, 0x6d, 0x89, 0x94, 0x90, 0xd7, 0xbf, 0xe8, 0x98, 0x86, 0x50, - 0x4d, 0xfa, 0x0a, 0x52, 0x40, 0x5f, 0xff, 0x78, 0xaf, 0xe1, 0xbe, 0x6b, 0x70, 0xf7, 0xfa, 0xe6, - 0xd2, 0x09, 0x28, 0x51, 0x8a, 0x47, 0xf9, 0xd0, 0x6b, 0xed, 0xe9, 0x89, 0xb9, 0xd8, 0xc9, 0xac, - 0x52, 0x64, 0xc5, 0x6b, 0xbc, 0x54, 0xfe, 0x42, 0x1c, 0x92, 0xd4, 0xb0, 0x94, 0x20, 0xbf, 0xf1, - 0xfc, 0x7a, 0x5d, 0x5d, 0x5c, 0xdb, 0xac, 0x2e, 0xd7, 0xa5, 0x18, 0x2a, 0x02, 0xd0, 0x82, 0x8b, - 0xcb, 0x6b, 0x95, 0x0d, 0x29, 0xee, 0x3d, 0x2f, 0xad, 0x6e, 0x9c, 0x7f, 0x4c, 0x4a, 0x78, 0x0c, - 0x9b, 0xac, 0x20, 0x19, 0x24, 0x78, 0xf4, 0xac, 0x94, 0x42, 0x12, 0x8c, 0x33, 0x80, 0xa5, 0xe7, - 0xea, 0x8b, 0xe7, 0x1f, 0x93, 0xd2, 0xe1, 0x92, 0x47, 0xcf, 0x4a, 0x19, 0x54, 0x80, 0x1c, 0x2d, - 0xa9, 0xae, 0xad, 0x2d, 0x4b, 0x59, 0x0f, 0xb3, 0xb1, 0xa1, 0x2c, 0xad, 0x5e, 0x92, 0x72, 0x1e, - 0xe6, 0x25, 0x65, 0x6d, 0x73, 0x5d, 0x02, 0x0f, 0x61, 0xa5, 0xde, 0x68, 0x54, 0x2e, 0xd5, 0xa5, - 0xbc, 0x47, 0x51, 0x7d, 0x7e, 0xa3, 0xde, 0x90, 0xc6, 0x43, 0xcd, 0x7a, 0xf4, 0xac, 0x54, 0xf0, - 0x5e, 0x51, 0x5f, 0xdd, 0x5c, 0x91, 0x8a, 0x68, 0x02, 0x0a, 0xec, 0x15, 0xa2, 0x11, 0xa5, 0x9e, - 0xa2, 0xf3, 0x8f, 0x49, 0x92, 0xdf, 0x10, 0x86, 0x32, 0x11, 0x2a, 0x38, 0xff, 0x98, 0x84, 0xe4, - 0x1a, 0xa4, 0xa8, 0x1a, 0x22, 0x04, 0xc5, 0xe5, 0x4a, 0xb5, 0xbe, 0xac, 0xae, 0xad, 0x6f, 0x2c, - 0xad, 0xad, 0x56, 0x96, 0xa5, 0x98, 0x5f, 0xa6, 0xd4, 0xdf, 0xb5, 0xb9, 0xa4, 0xd4, 0x17, 0xa5, - 0x78, 0xb0, 0x6c, 0xbd, 0x5e, 0xd9, 0xa8, 0x2f, 0x4a, 0x09, 0xb9, 0x09, 0x53, 0x83, 0x0c, 0xea, - 0xc0, 0x29, 0x14, 0xd0, 0x85, 0xf8, 0x10, 0x5d, 0xa0, 0x58, 0xbd, 0xba, 0x20, 0x7f, 0x2d, 0x0e, - 0x93, 0x03, 0x16, 0x95, 0x81, 0x2f, 0x79, 0x1a, 0x52, 0x4c, 0x97, 0xd9, 0x32, 0x7b, 0x6a, 0xe0, - 0xea, 0x44, 0x35, 0xbb, 0x6f, 0xa9, 0xa5, 0x7c, 0x41, 0x57, 0x23, 0x31, 0xc4, 0xd5, 0x20, 0x10, - 0x7d, 0x0a, 0xfb, 0xee, 0x3e, 0xe3, 0xcf, 0xd6, 0xc7, 0xf3, 0xa3, 0xac, 0x8f, 0xb4, 0xec, 0x70, - 0x8b, 0x40, 0x6a, 0xc0, 0x22, 0x70, 0x01, 0x26, 0xfa, 0x80, 0x46, 0x36, 0xc6, 0xef, 0x8f, 0xc1, - 0xf4, 0x30, 0xe1, 0x44, 0x98, 0xc4, 0x78, 0xc8, 0x24, 0x5e, 0xe8, 0x95, 0xe0, 0xdd, 0xc3, 0x07, - 0xa1, 0x6f, 0xac, 0x3f, 0x1d, 0x83, 0x23, 0x83, 0x5d, 0xca, 0x81, 0x6d, 0x78, 0x27, 0xa4, 0x3b, - 0xd8, 0xdd, 0x35, 0x85, 0x5b, 0x75, 0xff, 0x80, 0xc5, 0x9a, 0x54, 0xf7, 0x0e, 0x36, 0xe7, 0x0a, - 0xae, 0xf6, 0x89, 0x61, 0x7e, 0x21, 0x6b, 0x4d, 0x5f, 0x4b, 0x7f, 0x22, 0x0e, 0x77, 0x0c, 0x04, - 0x1f, 0xd8, 0xd0, 0xbb, 0x00, 0x74, 0xc3, 0xea, 0xba, 0xcc, 0x75, 0x62, 0x96, 0x38, 0x47, 0x4b, - 0xa8, 0xf1, 0x22, 0x56, 0xb6, 0xeb, 0x7a, 0xf5, 0x09, 0x5a, 0x0f, 0xac, 0x88, 0x12, 0x3c, 0xe1, - 0x37, 0x34, 0x49, 0x1b, 0x3a, 0x33, 0xa4, 0xa7, 0x7d, 0x8a, 0xf9, 0x30, 0x48, 0xcd, 0xb6, 0x8e, - 0x0d, 0x57, 0x75, 0x5c, 0x1b, 0x6b, 0x1d, 0xdd, 0xd8, 0xa1, 0x4b, 0x4d, 0x76, 0x21, 0xb5, 0xad, - 0xb5, 0x1d, 0xac, 0x94, 0x58, 0x75, 0x43, 0xd4, 0x12, 0x0e, 0xaa, 0x40, 0x76, 0x80, 0x23, 0x1d, - 0xe2, 0x60, 0xd5, 0x1e, 0x87, 0xfc, 0x53, 0x39, 0xc8, 0x07, 0x1c, 0x70, 0x74, 0x37, 0x8c, 0xbf, - 0xa8, 0x5d, 0xd7, 0x54, 0x11, 0x54, 0x31, 0x49, 0xe4, 0x49, 0xd9, 0x3a, 0x0f, 0xac, 0x1e, 0x86, - 0x29, 0x4a, 0x62, 0x76, 0x5d, 0x6c, 0xab, 0xcd, 0xb6, 0xe6, 0x38, 0x54, 0x68, 0x59, 0x4a, 0x8a, - 0x48, 0xdd, 0x1a, 0xa9, 0xaa, 0x89, 0x1a, 0x74, 0x0e, 0x26, 0x29, 0x47, 0xa7, 0xdb, 0x76, 0x75, - 0xab, 0x8d, 0x55, 0x12, 0xe6, 0x39, 0x74, 0xc9, 0xf1, 0x5a, 0x36, 0x41, 0x28, 0x56, 0x38, 0x01, - 0x69, 0x91, 0x83, 0x16, 0xe1, 0x2e, 0xca, 0xb6, 0x83, 0x0d, 0x6c, 0x6b, 0x2e, 0x56, 0xf1, 0xfb, - 0xba, 0x5a, 0xdb, 0x51, 0x35, 0xa3, 0xa5, 0xee, 0x6a, 0xce, 0xee, 0xf4, 0x14, 0x01, 0xa8, 0xc6, - 0xa7, 0x63, 0xca, 0x31, 0x42, 0x78, 0x89, 0xd3, 0xd5, 0x29, 0x59, 0xc5, 0x68, 0x5d, 0xd6, 0x9c, - 0x5d, 0xb4, 0x00, 0x47, 0x28, 0x8a, 0xe3, 0xda, 0xba, 0xb1, 0xa3, 0x36, 0x77, 0x71, 0xf3, 0x9a, - 0xda, 0x75, 0xb7, 0x9f, 0x98, 0x3e, 0x1e, 0x7c, 0x3f, 0x6d, 0x61, 0x83, 0xd2, 0xd4, 0x08, 0xc9, - 0xa6, 0xbb, 0xfd, 0x04, 0x6a, 0xc0, 0x38, 0x19, 0x8c, 0x8e, 0xfe, 0x12, 0x56, 0xb7, 0x4d, 0x9b, - 0xae, 0xa1, 0xc5, 0x01, 0xa6, 0x29, 0x20, 0xc1, 0xf9, 0x35, 0xce, 0xb0, 0x62, 0xb6, 0xf0, 0x42, - 0xaa, 0xb1, 0x5e, 0xaf, 0x2f, 0x2a, 0x79, 0x81, 0x72, 0xd1, 0xb4, 0x89, 0x42, 0xed, 0x98, 0x9e, - 0x80, 0xf3, 0x4c, 0xa1, 0x76, 0x4c, 0x21, 0xde, 0x73, 0x30, 0xd9, 0x6c, 0xb2, 0x3e, 0xeb, 0x4d, - 0x95, 0x07, 0x63, 0xce, 0xb4, 0x14, 0x12, 0x56, 0xb3, 0x79, 0x89, 0x11, 0x70, 0x1d, 0x77, 0xd0, - 0x93, 0x70, 0x87, 0x2f, 0xac, 0x20, 0xe3, 0x44, 0x5f, 0x2f, 0x7b, 0x59, 0xcf, 0xc1, 0xa4, 0xb5, - 0xdf, 0xcf, 0x88, 0x42, 0x6f, 0xb4, 0xf6, 0x7b, 0xd9, 0x1e, 0x87, 0x29, 0x6b, 0xd7, 0xea, 0xe7, - 0x3b, 0x1d, 0xe4, 0x43, 0xd6, 0xae, 0xd5, 0xcb, 0x78, 0x1f, 0x8d, 0xcc, 0x6d, 0xdc, 0xd4, 0x5c, - 0xdc, 0x9a, 0x3e, 0x1a, 0x24, 0x0f, 0x54, 0xa0, 0x79, 0x90, 0x9a, 0x4d, 0x15, 0x1b, 0xda, 0x56, - 0x1b, 0xab, 0x9a, 0x8d, 0x0d, 0xcd, 0x99, 0x9e, 0xa5, 0xc4, 0x49, 0xd7, 0xee, 0x62, 0xa5, 0xd8, - 0x6c, 0xd6, 0x69, 0x65, 0x85, 0xd6, 0xa1, 0xd3, 0x30, 0x61, 0x6e, 0xbd, 0xd8, 0x64, 0x1a, 0xa9, - 0x5a, 0x36, 0xde, 0xd6, 0xf7, 0xa6, 0xef, 0xa5, 0xe2, 0x2d, 0x91, 0x0a, 0xaa, 0x8f, 0xeb, 0xb4, - 0x18, 0x9d, 0x02, 0xa9, 0xe9, 0xec, 0x6a, 0xb6, 0x45, 0x4d, 0xb2, 0x63, 0x69, 0x4d, 0x3c, 0x7d, - 0x1f, 0x23, 0x65, 0xe5, 0xab, 0xa2, 0x98, 0xcc, 0x08, 0xe7, 0x86, 0xbe, 0xed, 0x0a, 0xc4, 0x13, - 0x6c, 0x46, 0xd0, 0x32, 0x8e, 0x76, 0x12, 0x24, 0x22, 0x89, 0xd0, 0x8b, 0x4f, 0x52, 0xb2, 0xa2, - 0xb5, 0x6b, 0x05, 0xdf, 0x7b, 0x0f, 0x14, 0x08, 0xa5, 0xff, 0xd2, 0x53, 0xcc, 0x71, 0xb3, 0x76, - 0x03, 0x6f, 0x7c, 0x0c, 0x8e, 0x10, 0xa2, 0x0e, 0x76, 0xb5, 0x96, 0xe6, 0x6a, 0x01, 0xea, 0x07, - 0x29, 0x35, 0x11, 0xfb, 0x0a, 0xaf, 0x0c, 0xb5, 0xd3, 0xee, 0x6e, 0xed, 0x7b, 0x8a, 0xf5, 0x10, - 0x6b, 0x27, 0x29, 0x13, 0xaa, 0xf5, 0x96, 0x39, 0xe7, 0xf2, 0x02, 0x8c, 0x07, 0xf5, 0x1e, 0xe5, - 0x80, 0x69, 0xbe, 0x14, 0x23, 0x4e, 0x50, 0x6d, 0x6d, 0x91, 0xb8, 0x2f, 0x2f, 0xd4, 0xa5, 0x38, - 0x71, 0xa3, 0x96, 0x97, 0x36, 0xea, 0xaa, 0xb2, 0xb9, 0xba, 0xb1, 0xb4, 0x52, 0x97, 0x12, 0x01, - 0xc7, 0xfe, 0x4a, 0x32, 0x7b, 0xbf, 0x74, 0x82, 0x78, 0x0d, 0xc5, 0x70, 0xa4, 0x86, 0xde, 0x01, - 0x47, 0x45, 0x5a, 0xc5, 0xc1, 0xae, 0x7a, 0x43, 0xb7, 0xe9, 0x84, 0xec, 0x68, 0x6c, 0x71, 0xf4, - 0xf4, 0x67, 0x8a, 0x53, 0x35, 0xb0, 0xfb, 0xac, 0x6e, 0x93, 0xe9, 0xd6, 0xd1, 0x5c, 0xb4, 0x0c, - 0xb3, 0x86, 0xa9, 0x3a, 0xae, 0x66, 0xb4, 0x34, 0xbb, 0xa5, 0xfa, 0x09, 0x2d, 0x55, 0x6b, 0x36, - 0xb1, 0xe3, 0x98, 0x6c, 0x21, 0xf4, 0x50, 0xee, 0x34, 0xcc, 0x06, 0x27, 0xf6, 0x57, 0x88, 0x0a, - 0x27, 0xed, 0x51, 0xdf, 0xc4, 0x30, 0xf5, 0x3d, 0x0e, 0xb9, 0x8e, 0x66, 0xa9, 0xd8, 0x70, 0xed, - 0x7d, 0xea, 0x9f, 0x67, 0x95, 0x6c, 0x47, 0xb3, 0xea, 0xe4, 0xf9, 0x6d, 0x09, 0x93, 0xae, 0x24, - 0xb3, 0x49, 0x29, 0x75, 0x25, 0x99, 0x4d, 0x49, 0xe9, 0x2b, 0xc9, 0x6c, 0x5a, 0xca, 0x5c, 0x49, - 0x66, 0xb3, 0x52, 0xee, 0x4a, 0x32, 0x9b, 0x93, 0x40, 0xfe, 0xe9, 0x24, 0x8c, 0x07, 0x3d, 0x78, - 0x12, 0x10, 0x35, 0xe9, 0x1a, 0x16, 0xa3, 0x56, 0xee, 0x9e, 0x03, 0xfd, 0xfd, 0xf9, 0x1a, 0x59, - 0xdc, 0x16, 0xd2, 0xcc, 0x5d, 0x56, 0x18, 0x27, 0x71, 0x2c, 0x88, 0xfa, 0x61, 0xe6, 0x9e, 0x64, - 0x15, 0xfe, 0x84, 0x2e, 0x41, 0xfa, 0x45, 0x87, 0x62, 0xa7, 0x29, 0xf6, 0xbd, 0x07, 0x63, 0x5f, - 0x69, 0x50, 0xf0, 0xdc, 0x95, 0x86, 0xba, 0xba, 0xa6, 0xac, 0x54, 0x96, 0x15, 0xce, 0x8e, 0x8e, - 0x41, 0xb2, 0xad, 0xbd, 0xb4, 0x1f, 0x5e, 0x06, 0x69, 0x11, 0x9a, 0x87, 0x52, 0xd7, 0xb8, 0x8e, - 0x6d, 0x7d, 0x5b, 0xc7, 0x2d, 0x95, 0x52, 0x95, 0x82, 0x54, 0x45, 0xbf, 0x76, 0x99, 0xd0, 0x8f, - 0x38, 0x8c, 0xc7, 0x20, 0x79, 0x03, 0x6b, 0xd7, 0xc2, 0x8b, 0x15, 0x2d, 0x7a, 0x0b, 0xa7, 0xd3, - 0x19, 0x48, 0x51, 0xf9, 0x22, 0x00, 0x2e, 0x61, 0x69, 0x0c, 0x65, 0x21, 0x59, 0x5b, 0x53, 0xc8, - 0x94, 0x92, 0x60, 0x9c, 0x95, 0xaa, 0xeb, 0x4b, 0xf5, 0x5a, 0x5d, 0x8a, 0xcb, 0xe7, 0x20, 0xcd, - 0x84, 0x46, 0xa6, 0x9b, 0x27, 0x36, 0x69, 0x8c, 0x3f, 0x72, 0x8c, 0x98, 0xa8, 0xdd, 0x5c, 0xa9, - 0xd6, 0x15, 0x29, 0xde, 0xa7, 0x2c, 0xb2, 0x03, 0xe3, 0x41, 0x4f, 0xfe, 0xed, 0x09, 0xe7, 0xbf, - 0x14, 0x83, 0x7c, 0xc0, 0x33, 0x27, 0x2e, 0x95, 0xd6, 0x6e, 0x9b, 0x37, 0x54, 0xad, 0xad, 0x6b, - 0x0e, 0x57, 0x25, 0xa0, 0x45, 0x15, 0x52, 0x32, 0xea, 0xd0, 0xbd, 0x4d, 0x93, 0x2c, 0x25, 0xa5, - 0xe5, 0x8f, 0xc7, 0x40, 0xea, 0x75, 0x8d, 0x7b, 0x9a, 0x19, 0xfb, 0xcb, 0x6c, 0xa6, 0xfc, 0xb1, - 0x18, 0x14, 0xc3, 0xfe, 0x70, 0x4f, 0xf3, 0xee, 0xfe, 0x4b, 0x6d, 0xde, 0x1f, 0xc4, 0xa1, 0x10, - 0xf2, 0x82, 0x47, 0x6d, 0xdd, 0xfb, 0x60, 0x42, 0x6f, 0xe1, 0x8e, 0x65, 0xba, 0xd8, 0x68, 0xee, - 0xab, 0x6d, 0x7c, 0x1d, 0xb7, 0xa7, 0x65, 0x6a, 0x64, 0xce, 0x1c, 0xec, 0x67, 0xcf, 0x2f, 0xf9, - 0x7c, 0xcb, 0x84, 0x6d, 0x61, 0x72, 0x69, 0xb1, 0xbe, 0xb2, 0xbe, 0xb6, 0x51, 0x5f, 0xad, 0x3d, - 0xaf, 0x6e, 0xae, 0x3e, 0xb3, 0xba, 0xf6, 0xec, 0xaa, 0x22, 0xe9, 0x3d, 0x64, 0x6f, 0xe1, 0xb4, - 0x5f, 0x07, 0xa9, 0xb7, 0x51, 0xe8, 0x28, 0x0c, 0x6a, 0x96, 0x34, 0x86, 0x26, 0xa1, 0xb4, 0xba, - 0xa6, 0x36, 0x96, 0x16, 0xeb, 0x6a, 0xfd, 0xe2, 0xc5, 0x7a, 0x6d, 0xa3, 0xc1, 0x32, 0x27, 0x1e, - 0xf5, 0x46, 0x68, 0x82, 0xcb, 0x1f, 0x4d, 0xc0, 0xe4, 0x80, 0x96, 0xa0, 0x0a, 0x8f, 0x79, 0x58, - 0x18, 0xf6, 0xd0, 0x28, 0xad, 0x9f, 0x27, 0x5e, 0xc7, 0xba, 0x66, 0xbb, 0x3c, 0x44, 0x3a, 0x05, - 0x44, 0x4a, 0x86, 0x4b, 0x8c, 0xab, 0xcd, 0x33, 0x52, 0x2c, 0x10, 0x2a, 0xf9, 0xe5, 0x2c, 0x29, - 0xf5, 0x20, 0x20, 0xcb, 0x74, 0x74, 0x57, 0xbf, 0x8e, 0x55, 0xdd, 0x10, 0xe9, 0x2b, 0x12, 0x18, - 0x25, 0x15, 0x49, 0xd4, 0x2c, 0x19, 0xae, 0x47, 0x6d, 0xe0, 0x1d, 0xad, 0x87, 0x9a, 0x18, 0xff, - 0x84, 0x22, 0x89, 0x1a, 0x8f, 0xfa, 0x6e, 0x18, 0x6f, 0x99, 0x5d, 0xe2, 0x2d, 0x32, 0x3a, 0xb2, - 0xd6, 0xc4, 0x94, 0x3c, 0x2b, 0xf3, 0x48, 0x78, 0x1c, 0xe0, 0xe7, 0xcd, 0xc6, 0x95, 0x3c, 0x2b, - 0x63, 0x24, 0x27, 0xa0, 0xa4, 0xed, 0xec, 0xd8, 0x04, 0x5c, 0x00, 0xb1, 0xc8, 0xa6, 0xe8, 0x15, - 0x53, 0xc2, 0xf2, 0x15, 0xc8, 0x0a, 0x39, 0x90, 0xc5, 0x9e, 0x48, 0x42, 0xb5, 0x58, 0xb8, 0x1e, - 0x3f, 0x99, 0x53, 0xb2, 0x86, 0xa8, 0xbc, 0x1b, 0xc6, 0x75, 0x47, 0xf5, 0xb7, 0x01, 0xe2, 0x73, - 0xf1, 0x93, 0x59, 0x25, 0xaf, 0x3b, 0x5e, 0x0a, 0x55, 0xfe, 0x74, 0x1c, 0x8a, 0xe1, 0x6d, 0x0c, - 0xb4, 0x08, 0xd9, 0xb6, 0xd9, 0xd4, 0xa8, 0x6a, 0xb1, 0x3d, 0xb4, 0x93, 0x11, 0x3b, 0x1f, 0xf3, - 0xcb, 0x9c, 0x5e, 0xf1, 0x38, 0xcb, 0xff, 0x2e, 0x06, 0x59, 0x51, 0x8c, 0x8e, 0x40, 0xd2, 0xd2, - 0xdc, 0x5d, 0x0a, 0x97, 0xaa, 0xc6, 0xa5, 0x98, 0x42, 0x9f, 0x49, 0xb9, 0x63, 0x69, 0x06, 0x55, - 0x01, 0x5e, 0x4e, 0x9e, 0xc9, 0xb8, 0xb6, 0xb1, 0xd6, 0xa2, 0x61, 0x93, 0xd9, 0xe9, 0x60, 0xc3, - 0x75, 0xc4, 0xb8, 0xf2, 0xf2, 0x1a, 0x2f, 0x46, 0x0f, 0xc0, 0x84, 0x6b, 0x6b, 0x7a, 0x3b, 0x44, - 0x9b, 0xa4, 0xb4, 0x92, 0xa8, 0xf0, 0x88, 0x17, 0xe0, 0x98, 0xc0, 0x6d, 0x61, 0x57, 0x6b, 0xee, - 0xe2, 0x96, 0xcf, 0x94, 0xa6, 0xe9, 0x91, 0xa3, 0x9c, 0x60, 0x91, 0xd7, 0x0b, 0x5e, 0xf9, 0xab, - 0x31, 0x98, 0x10, 0x81, 0x5e, 0xcb, 0x13, 0xd6, 0x0a, 0x80, 0x66, 0x18, 0xa6, 0x1b, 0x14, 0x57, - 0xbf, 0x2a, 0xf7, 0xf1, 0xcd, 0x57, 0x3c, 0x26, 0x25, 0x00, 0x50, 0xee, 0x00, 0xf8, 0x35, 0x43, - 0xc5, 0x36, 0x0b, 0x79, 0xbe, 0x47, 0x45, 0x37, 0x3a, 0x59, 0x6a, 0x00, 0x58, 0x11, 0x89, 0x08, - 0xd1, 0x14, 0xa4, 0xb6, 0xf0, 0x8e, 0x6e, 0xf0, 0xcc, 0x33, 0x7b, 0x10, 0x09, 0x9c, 0xa4, 0x97, - 0xc0, 0xa9, 0xfe, 0x75, 0x98, 0x6c, 0x9a, 0x9d, 0xde, 0xe6, 0x56, 0xa5, 0x9e, 0xf4, 0x84, 0x73, - 0x39, 0xf6, 0xc2, 0x43, 0x9c, 0x68, 0xc7, 0x6c, 0x6b, 0xc6, 0xce, 0xbc, 0x69, 0xef, 0xf8, 0x1b, - 0xb5, 0xc4, 0x43, 0x72, 0x02, 0xdb, 0xb5, 0xd6, 0xd6, 0xff, 0x8a, 0xc5, 0x7e, 0x21, 0x9e, 0xb8, - 0xb4, 0x5e, 0xfd, 0xa5, 0x78, 0xf9, 0x12, 0x63, 0x5c, 0x17, 0xc2, 0x50, 0xf0, 0x76, 0x1b, 0x37, - 0x49, 0x07, 0xe1, 0x8f, 0x1e, 0x80, 0xa9, 0x1d, 0x73, 0xc7, 0xa4, 0x48, 0x67, 0xc8, 0x2f, 0xbe, - 0xd3, 0x9b, 0xf3, 0x4a, 0xcb, 0x91, 0xdb, 0xc2, 0x0b, 0xab, 0x30, 0xc9, 0x89, 0x55, 0xba, 0xd5, - 0xc4, 0x02, 0x21, 0x74, 0x60, 0x16, 0x6e, 0xfa, 0x97, 0xbf, 0x4e, 0x97, 0x6f, 0x65, 0x82, 0xb3, - 0x92, 0x3a, 0x16, 0x2b, 0x2d, 0x28, 0x70, 0x47, 0x08, 0x8f, 0x4d, 0x52, 0x6c, 0x47, 0x20, 0xfe, - 0x4b, 0x8e, 0x38, 0x19, 0x40, 0x6c, 0x70, 0xd6, 0x85, 0x1a, 0x14, 0x0e, 0x83, 0xf5, 0xaf, 0x38, - 0xd6, 0x38, 0x0e, 0x82, 0x5c, 0x82, 0x12, 0x05, 0x69, 0x76, 0x1d, 0xd7, 0xec, 0x50, 0x0b, 0x78, - 0x30, 0xcc, 0xbf, 0xfe, 0x3a, 0x9b, 0x35, 0x45, 0xc2, 0x56, 0xf3, 0xb8, 0x16, 0x16, 0x80, 0xee, - 0xae, 0xb5, 0x70, 0xb3, 0x1d, 0x81, 0xf0, 0x65, 0xde, 0x10, 0x8f, 0x7e, 0xe1, 0x2a, 0x4c, 0x91, - 0xdf, 0xd4, 0x40, 0x05, 0x5b, 0x12, 0x9d, 0xb2, 0x9b, 0xfe, 0xea, 0xfb, 0xd9, 0xc4, 0x9c, 0xf4, - 0x00, 0x02, 0x6d, 0x0a, 0x8c, 0xe2, 0x0e, 0x76, 0x5d, 0x6c, 0x3b, 0xaa, 0xd6, 0x1e, 0xd4, 0xbc, - 0x40, 0xce, 0x63, 0xfa, 0xe7, 0xbe, 0x1d, 0x1e, 0xc5, 0x4b, 0x8c, 0xb3, 0xd2, 0x6e, 0x2f, 0x6c, - 0xc2, 0xd1, 0x01, 0x5a, 0x31, 0x02, 0xe6, 0x47, 0x39, 0xe6, 0x54, 0x9f, 0x66, 0x10, 0xd8, 0x75, - 0x10, 0xe5, 0xde, 0x58, 0x8e, 0x80, 0xf9, 0xf3, 0x1c, 0x13, 0x71, 0x5e, 0x31, 0xa4, 0x04, 0xf1, - 0x0a, 0x4c, 0x5c, 0xc7, 0xf6, 0x96, 0xe9, 0xf0, 0x3c, 0xd3, 0x08, 0x70, 0x1f, 0xe3, 0x70, 0x25, - 0xce, 0x48, 0x13, 0x4f, 0x04, 0xeb, 0x49, 0xc8, 0x6e, 0x6b, 0x4d, 0x3c, 0x02, 0xc4, 0x2d, 0x0e, - 0x91, 0x21, 0xf4, 0x84, 0xb5, 0x02, 0xe3, 0x3b, 0x26, 0x5f, 0xa3, 0xa2, 0xd9, 0x3f, 0xce, 0xd9, - 0xf3, 0x82, 0x87, 0x43, 0x58, 0xa6, 0xd5, 0x6d, 0x93, 0x05, 0x2c, 0x1a, 0xe2, 0xef, 0x0a, 0x08, - 0xc1, 0xc3, 0x21, 0x0e, 0x21, 0xd6, 0x57, 0x04, 0x84, 0x13, 0x90, 0xe7, 0xd3, 0x90, 0x37, 0x8d, - 0xf6, 0xbe, 0x69, 0x8c, 0xd2, 0x88, 0x4f, 0x70, 0x04, 0xe0, 0x2c, 0x04, 0xe0, 0x02, 0xe4, 0x46, - 0x1d, 0x88, 0x5f, 0xfc, 0xb6, 0x98, 0x1e, 0x62, 0x04, 0x2e, 0x41, 0x49, 0x18, 0x28, 0xdd, 0x34, - 0x46, 0x80, 0xf8, 0x14, 0x87, 0x28, 0x06, 0xd8, 0x78, 0x37, 0x5c, 0xec, 0xb8, 0x3b, 0x78, 0x14, - 0x90, 0x4f, 0x8b, 0x6e, 0x70, 0x16, 0x2e, 0xca, 0x2d, 0x6c, 0x34, 0x77, 0x47, 0x43, 0x78, 0x55, - 0x88, 0x52, 0xf0, 0x10, 0x88, 0x1a, 0x14, 0x3a, 0x9a, 0xed, 0xec, 0x6a, 0xed, 0x91, 0x86, 0xe3, - 0x33, 0x1c, 0x63, 0xdc, 0x63, 0xe2, 0x12, 0xe9, 0x1a, 0x87, 0x81, 0xf9, 0x25, 0x21, 0x91, 0x00, - 0x1b, 0x9f, 0x7a, 0x8e, 0x4b, 0x93, 0x72, 0x87, 0x41, 0xfb, 0xfb, 0x62, 0xea, 0x31, 0xde, 0x95, - 0x20, 0xe2, 0x05, 0xc8, 0x39, 0xfa, 0x4b, 0x23, 0xc1, 0xfc, 0x03, 0x31, 0xd2, 0x94, 0x81, 0x30, - 0x3f, 0x0f, 0xc7, 0x06, 0x2e, 0x13, 0x23, 0x80, 0xfd, 0x43, 0x0e, 0x76, 0x64, 0xc0, 0x52, 0xc1, - 0x4d, 0xc2, 0x61, 0x21, 0xff, 0x91, 0x30, 0x09, 0xb8, 0x07, 0x6b, 0x9d, 0x44, 0x0d, 0x8e, 0xb6, - 0x7d, 0x38, 0xa9, 0xfd, 0x63, 0x21, 0x35, 0xc6, 0x1b, 0x92, 0xda, 0x06, 0x1c, 0xe1, 0x88, 0x87, - 0x1b, 0xd7, 0xcf, 0x0a, 0xc3, 0xca, 0xb8, 0x37, 0xc3, 0xa3, 0xfb, 0x83, 0x50, 0xf6, 0xc4, 0x29, - 0xdc, 0x53, 0x47, 0xed, 0x68, 0xd6, 0x08, 0xc8, 0xbf, 0xcc, 0x91, 0x85, 0xc5, 0xf7, 0xfc, 0x5b, - 0x67, 0x45, 0xb3, 0x08, 0xf8, 0x73, 0x30, 0x2d, 0xc0, 0xbb, 0x86, 0x8d, 0x9b, 0xe6, 0x8e, 0xa1, - 0xbf, 0x84, 0x5b, 0x23, 0x40, 0xff, 0x4a, 0xcf, 0x50, 0x6d, 0x06, 0xd8, 0x09, 0xf2, 0x12, 0x48, - 0x9e, 0xaf, 0xa2, 0xea, 0x1d, 0xcb, 0xb4, 0xdd, 0x08, 0xc4, 0xcf, 0x89, 0x91, 0xf2, 0xf8, 0x96, - 0x28, 0xdb, 0x42, 0x1d, 0xd8, 0x4e, 0xf5, 0xa8, 0x2a, 0xf9, 0x79, 0x0e, 0x54, 0xf0, 0xb9, 0xb8, - 0xe1, 0x68, 0x9a, 0x1d, 0x4b, 0xb3, 0x47, 0xb1, 0x7f, 0xff, 0x44, 0x18, 0x0e, 0xce, 0xc2, 0x0d, - 0x07, 0xf1, 0xe8, 0xc8, 0x6a, 0x3f, 0x02, 0xc2, 0x17, 0x84, 0xe1, 0x10, 0x3c, 0x1c, 0x42, 0x38, - 0x0c, 0x23, 0x40, 0xfc, 0xaa, 0x80, 0x10, 0x3c, 0x04, 0xe2, 0x5d, 0xfe, 0x42, 0x6b, 0xe3, 0x1d, - 0xdd, 0x71, 0x6d, 0xe6, 0x14, 0x1f, 0x0c, 0xf5, 0xc5, 0x6f, 0x87, 0x9d, 0x30, 0x25, 0xc0, 0x4a, - 0x2c, 0x11, 0x4f, 0xd3, 0xd2, 0x98, 0x29, 0xba, 0x61, 0xbf, 0x26, 0x2c, 0x51, 0x80, 0x8d, 0xb4, - 0x2d, 0xe0, 0x21, 0x12, 0xb1, 0x37, 0x49, 0xa4, 0x30, 0x02, 0xdc, 0x3f, 0xed, 0x69, 0x5c, 0x43, - 0xf0, 0x12, 0xcc, 0x80, 0xff, 0xd3, 0x35, 0xae, 0xe1, 0xfd, 0x91, 0xb4, 0xf3, 0xd7, 0x7b, 0xfc, - 0x9f, 0x4d, 0xc6, 0xc9, 0x6c, 0x48, 0xa9, 0xc7, 0x9f, 0x42, 0x51, 0xe7, 0x92, 0xa6, 0x7f, 0xf8, - 0x0d, 0xde, 0xdf, 0xb0, 0x3b, 0xb5, 0xb0, 0x4c, 0x94, 0x3c, 0xec, 0xf4, 0x44, 0x83, 0xbd, 0xff, - 0x0d, 0x4f, 0xcf, 0x43, 0x3e, 0xcf, 0xc2, 0x45, 0x28, 0x84, 0x1c, 0x9e, 0x68, 0xa8, 0x1f, 0xe5, - 0x50, 0xe3, 0x41, 0x7f, 0x67, 0xe1, 0x1c, 0x24, 0x89, 0xf3, 0x12, 0xcd, 0xfe, 0x63, 0x9c, 0x9d, - 0x92, 0x2f, 0x3c, 0x05, 0x59, 0xe1, 0xb4, 0x44, 0xb3, 0xfe, 0x38, 0x67, 0xf5, 0x58, 0x08, 0xbb, - 0x70, 0x58, 0xa2, 0xd9, 0xff, 0x86, 0x60, 0x17, 0x2c, 0x84, 0x7d, 0x74, 0x11, 0x7e, 0xe9, 0x6f, - 0x26, 0xf9, 0xa2, 0x23, 0x64, 0x77, 0x01, 0x32, 0xdc, 0x53, 0x89, 0xe6, 0xfe, 0x09, 0xfe, 0x72, - 0xc1, 0xb1, 0xf0, 0x38, 0xa4, 0x46, 0x14, 0xf8, 0xdf, 0xe2, 0xac, 0x8c, 0x7e, 0xa1, 0x06, 0xf9, - 0x80, 0x77, 0x12, 0xcd, 0xfe, 0x41, 0xce, 0x1e, 0xe4, 0x22, 0x4d, 0xe7, 0xde, 0x49, 0x34, 0xc0, - 0xdf, 0x16, 0x4d, 0xe7, 0x1c, 0x44, 0x6c, 0xc2, 0x31, 0x89, 0xe6, 0xfe, 0x90, 0x90, 0xba, 0x60, - 0x59, 0x78, 0x1a, 0x72, 0xde, 0x62, 0x13, 0xcd, 0xff, 0x53, 0x9c, 0xdf, 0xe7, 0x21, 0x12, 0x08, - 0x2c, 0x76, 0xd1, 0x10, 0x3f, 0x2d, 0x24, 0x10, 0xe0, 0x22, 0xd3, 0xa8, 0xd7, 0x81, 0x89, 0x46, - 0xfa, 0xb0, 0x98, 0x46, 0x3d, 0xfe, 0x0b, 0x19, 0x4d, 0x6a, 0xf3, 0xa3, 0x21, 0xfe, 0x8e, 0x18, - 0x4d, 0x4a, 0x4f, 0x9a, 0xd1, 0xeb, 0x11, 0x44, 0x63, 0xfc, 0xac, 0x68, 0x46, 0x8f, 0x43, 0xb0, - 0xb0, 0x0e, 0xa8, 0xdf, 0x1b, 0x88, 0xc6, 0xfb, 0x08, 0xc7, 0x9b, 0xe8, 0x73, 0x06, 0x16, 0x9e, - 0x85, 0x23, 0x83, 0x3d, 0x81, 0x68, 0xd4, 0x9f, 0x7b, 0xa3, 0x27, 0x76, 0x0b, 0x3a, 0x02, 0x0b, - 0x1b, 0xfe, 0x92, 0x12, 0xf4, 0x02, 0xa2, 0x61, 0x3f, 0xfa, 0x46, 0xd8, 0x70, 0x07, 0x9d, 0x80, - 0x85, 0x0a, 0x80, 0xbf, 0x00, 0x47, 0x63, 0x7d, 0x8c, 0x63, 0x05, 0x98, 0xc8, 0xd4, 0xe0, 0xeb, - 0x6f, 0x34, 0xff, 0x2d, 0x31, 0x35, 0x38, 0x07, 0x99, 0x1a, 0x62, 0xe9, 0x8d, 0xe6, 0xfe, 0xb8, - 0x98, 0x1a, 0x82, 0x85, 0x68, 0x76, 0x60, 0x75, 0x8b, 0x46, 0xf8, 0x84, 0xd0, 0xec, 0x00, 0xd7, - 0xc2, 0x2a, 0x4c, 0xf4, 0x2d, 0x88, 0xd1, 0x50, 0xbf, 0xc0, 0xa1, 0xa4, 0xde, 0xf5, 0x30, 0xb8, - 0x78, 0xf1, 0xc5, 0x30, 0x1a, 0xed, 0x93, 0x3d, 0x8b, 0x17, 0x5f, 0x0b, 0x17, 0x2e, 0x40, 0xd6, - 0xe8, 0xb6, 0xdb, 0x64, 0xf2, 0xa0, 0x83, 0xcf, 0x12, 0x4e, 0xff, 0xf7, 0xef, 0x72, 0xe9, 0x08, - 0x86, 0x85, 0x73, 0x90, 0xc2, 0x9d, 0x2d, 0xdc, 0x8a, 0xe2, 0xfc, 0xd6, 0x77, 0x85, 0xc1, 0x24, - 0xd4, 0x0b, 0x4f, 0x03, 0xb0, 0xd4, 0x08, 0xdd, 0x3c, 0x8c, 0xe0, 0xfd, 0xc3, 0xef, 0xf2, 0xc3, - 0x3b, 0x3e, 0x8b, 0x0f, 0xc0, 0x8e, 0x02, 0x1d, 0x0c, 0xf0, 0xed, 0x30, 0x00, 0x1d, 0x91, 0x27, - 0x21, 0xf3, 0xa2, 0x63, 0x1a, 0xae, 0xb6, 0x13, 0xc5, 0xfd, 0x47, 0x9c, 0x5b, 0xd0, 0x13, 0x81, - 0x75, 0x4c, 0x1b, 0xbb, 0xda, 0x8e, 0x13, 0xc5, 0xfb, 0x3f, 0x38, 0xaf, 0xc7, 0x40, 0x98, 0x9b, - 0x9a, 0xe3, 0x8e, 0xd2, 0xef, 0x3f, 0x16, 0xcc, 0x82, 0x81, 0x34, 0x9a, 0xfc, 0xbe, 0x86, 0xf7, - 0xa3, 0x78, 0xff, 0x44, 0x34, 0x9a, 0xd3, 0x2f, 0x3c, 0x05, 0x39, 0xf2, 0x93, 0x9d, 0xc8, 0x8b, - 0x60, 0xfe, 0x53, 0xce, 0xec, 0x73, 0x90, 0x37, 0x3b, 0x6e, 0xcb, 0xd5, 0xa3, 0x85, 0xfd, 0x1d, - 0x3e, 0xd2, 0x82, 0x7e, 0xa1, 0x02, 0x79, 0xc7, 0x6d, 0xb5, 0xba, 0xdc, 0x3f, 0x8d, 0x60, 0xff, - 0xb3, 0xef, 0x7a, 0x29, 0x0b, 0x8f, 0x87, 0x8c, 0xf6, 0x8d, 0x6b, 0xae, 0x65, 0xd2, 0x0d, 0x8f, - 0x28, 0x84, 0x37, 0x38, 0x42, 0x80, 0x65, 0xa1, 0x06, 0xe3, 0xa4, 0x2f, 0x36, 0xb6, 0x30, 0xdd, - 0x9d, 0x8a, 0x80, 0xf8, 0x73, 0x2e, 0x80, 0x10, 0x53, 0xf5, 0xbd, 0x5f, 0x7e, 0x7d, 0x26, 0xf6, - 0x95, 0xd7, 0x67, 0x62, 0x7f, 0xf0, 0xfa, 0x4c, 0xec, 0x43, 0x5f, 0x9b, 0x19, 0xfb, 0xca, 0xd7, - 0x66, 0xc6, 0x7e, 0xef, 0x6b, 0x33, 0x63, 0x83, 0xb3, 0xc4, 0x70, 0xc9, 0xbc, 0x64, 0xb2, 0xfc, - 0xf0, 0x0b, 0xf7, 0xed, 0xe8, 0xee, 0x6e, 0x77, 0x6b, 0xbe, 0x69, 0x76, 0xce, 0x34, 0x4d, 0xa7, - 0x63, 0x3a, 0x67, 0xc2, 0x79, 0x5d, 0xfa, 0x0b, 0xfe, 0x4f, 0x8c, 0xc4, 0xcc, 0xe1, 0x74, 0xae, - 0x66, 0xec, 0x0f, 0xfb, 0xbc, 0xe7, 0x3c, 0x24, 0x2a, 0xc6, 0x3e, 0x3a, 0xc6, 0x0c, 0x9c, 0xda, - 0xb5, 0xdb, 0xfc, 0x58, 0x58, 0x86, 0x3c, 0x6f, 0xda, 0x6d, 0x34, 0xe5, 0x9f, 0xdd, 0x8c, 0x9d, - 0x1c, 0xe7, 0x07, 0x32, 0xab, 0x1f, 0x8c, 0x1d, 0xae, 0x27, 0xd9, 0x8a, 0xb1, 0x4f, 0x3b, 0xb2, - 0x1e, 0x7b, 0xe1, 0xc1, 0xc8, 0x3c, 0xf7, 0x35, 0xc3, 0xbc, 0x61, 0x90, 0x66, 0x5b, 0x5b, 0x22, - 0xc7, 0x3d, 0xd3, 0x9b, 0xe3, 0x7e, 0x16, 0xb7, 0xdb, 0xcf, 0x10, 0xba, 0x0d, 0xc2, 0xb2, 0x95, - 0x66, 0x27, 0x90, 0xe1, 0xc3, 0x71, 0x98, 0xe9, 0x4b, 0x67, 0x73, 0x25, 0x18, 0x26, 0x84, 0x05, - 0xc8, 0x2e, 0x0a, 0xdd, 0x9a, 0x86, 0x8c, 0x83, 0x9b, 0xa6, 0xd1, 0x72, 0xa8, 0x20, 0x12, 0x8a, - 0x78, 0x24, 0x82, 0x30, 0x34, 0xc3, 0x74, 0xf8, 0xc1, 0x4a, 0xf6, 0x50, 0xfd, 0xf9, 0x43, 0x0a, - 0xa2, 0x20, 0xde, 0x24, 0xa4, 0xf1, 0xc8, 0x88, 0xd2, 0x10, 0x9d, 0x08, 0x65, 0xfe, 0x47, 0x95, - 0xca, 0xcf, 0xc6, 0x61, 0xb6, 0x57, 0x2a, 0x64, 0x66, 0x39, 0xae, 0xd6, 0xb1, 0x86, 0x89, 0xe5, - 0x02, 0xe4, 0x36, 0x04, 0xcd, 0xa1, 0xe5, 0x72, 0xeb, 0x90, 0x72, 0x29, 0x7a, 0xaf, 0x12, 0x82, - 0x39, 0x3b, 0xa2, 0x60, 0xbc, 0x7e, 0xdc, 0x96, 0x64, 0xfe, 0x22, 0x0d, 0xc7, 0xd8, 0x74, 0x52, - 0xd9, 0x54, 0x62, 0x0f, 0x5c, 0x26, 0xe3, 0xc1, 0xaa, 0xe8, 0x7d, 0x12, 0xf9, 0x19, 0x98, 0x5c, - 0x22, 0xd6, 0x82, 0x44, 0x41, 0xfe, 0x0e, 0xcf, 0xc0, 0xb3, 0xa7, 0x73, 0x21, 0x87, 0x9f, 0xef, - 0x30, 0x05, 0x8b, 0xe4, 0x1f, 0x8e, 0x81, 0xd4, 0x68, 0x6a, 0x6d, 0xcd, 0xfe, 0x5e, 0xa1, 0xd0, - 0xe3, 0x00, 0xf4, 0x9b, 0x25, 0xff, 0x23, 0xa3, 0xe2, 0xd9, 0xe9, 0xf9, 0x60, 0xe7, 0xe6, 0xd9, - 0x9b, 0xe8, 0x17, 0x0c, 0x39, 0x4a, 0x4b, 0x7e, 0x9e, 0x7e, 0x0e, 0xc0, 0xaf, 0x40, 0xc7, 0xe1, - 0x68, 0xa3, 0x56, 0x59, 0xae, 0x28, 0x2a, 0x3b, 0x0c, 0xbf, 0xda, 0x58, 0xaf, 0xd7, 0x96, 0x2e, - 0x2e, 0xd5, 0x17, 0xa5, 0x31, 0x74, 0x04, 0x50, 0xb0, 0xd2, 0x3b, 0x97, 0x72, 0x07, 0x4c, 0x04, - 0xcb, 0xd9, 0x89, 0xfa, 0x38, 0xf1, 0x14, 0xf5, 0x8e, 0xd5, 0xc6, 0x74, 0xeb, 0x4f, 0xd5, 0x85, - 0xd4, 0xa2, 0x9d, 0x90, 0xdf, 0xfe, 0x0f, 0xec, 0x94, 0xf5, 0xa4, 0xcf, 0xee, 0xc9, 0x7c, 0x61, - 0x19, 0x26, 0xb4, 0x66, 0x13, 0x5b, 0x21, 0xc8, 0x08, 0x53, 0x4d, 0x00, 0xe9, 0x66, 0x26, 0xe7, - 0xf4, 0xd1, 0x1e, 0x87, 0xb4, 0x43, 0x7b, 0x1f, 0x05, 0xf1, 0x3b, 0x1c, 0x82, 0x93, 0x2f, 0x18, - 0x30, 0x41, 0x3c, 0x3f, 0xcd, 0xc6, 0x81, 0x66, 0x1c, 0x9c, 0x67, 0xf8, 0x8d, 0xcf, 0x3d, 0x4c, - 0xb7, 0x36, 0xef, 0x0e, 0x0f, 0xcb, 0x00, 0x75, 0x52, 0x24, 0x8e, 0xed, 0x37, 0x14, 0x43, 0x51, - 0xbc, 0x8f, 0x37, 0xf8, 0xe0, 0x97, 0xfd, 0x26, 0x7f, 0xd9, 0xcc, 0x20, 0x1d, 0x08, 0xbc, 0xa9, - 0xc0, 0x51, 0x59, 0x45, 0xb5, 0x3e, 0x6c, 0x4e, 0xbf, 0xf0, 0x40, 0xff, 0xea, 0xc4, 0xfe, 0x7b, - 0x88, 0x22, 0x5f, 0x08, 0xbe, 0xc6, 0x9b, 0x7b, 0xbf, 0x9f, 0x80, 0x09, 0xad, 0xa3, 0x1b, 0xe6, - 0x19, 0xfa, 0x2f, 0x9f, 0x73, 0x29, 0xfa, 0x30, 0xc2, 0xa6, 0xe4, 0x79, 0x36, 0x15, 0xa2, 0x35, - 0xe6, 0x4f, 0x7f, 0xf2, 0x53, 0x29, 0x7f, 0xba, 0x2c, 0xac, 0x80, 0x24, 0x0e, 0x1c, 0x62, 0xa3, - 0x69, 0xb6, 0x46, 0xca, 0x52, 0x7c, 0x47, 0x60, 0x88, 0xfc, 0x56, 0x9d, 0xb3, 0x2e, 0xbc, 0x03, - 0xb2, 0x1e, 0x4c, 0x94, 0x67, 0x22, 0x40, 0x3c, 0x0e, 0xe2, 0x97, 0xb0, 0x99, 0x39, 0x8a, 0x17, - 0xfa, 0x86, 0xe0, 0x67, 0x33, 0x74, 0x95, 0xf4, 0xe6, 0x12, 0x14, 0x5b, 0xa6, 0xe1, 0xaa, 0x66, - 0x47, 0x77, 0x71, 0xc7, 0x72, 0x23, 0xfd, 0xba, 0x3f, 0x67, 0x20, 0x59, 0xa5, 0x40, 0xf8, 0xd6, - 0x04, 0xdb, 0x6d, 0x0d, 0xae, 0xd3, 0xba, 0xc6, 0x6d, 0xb1, 0xbb, 0xc7, 0x06, 0xd1, 0x1b, 0xdc, - 0x3f, 0x4e, 0xc0, 0x0c, 0x27, 0xde, 0xd2, 0x1c, 0x7c, 0xe6, 0xfa, 0x23, 0x5b, 0xd8, 0xd5, 0x1e, - 0x39, 0xd3, 0x34, 0x75, 0xb1, 0x10, 0x4f, 0x72, 0x5b, 0x4b, 0xea, 0xe7, 0x79, 0x7d, 0x79, 0xe0, - 0x6e, 0x75, 0x79, 0xb8, 0x8d, 0x2e, 0xf7, 0xab, 0x90, 0xfc, 0x02, 0x24, 0x6b, 0xa6, 0x6e, 0x90, - 0xa5, 0xa9, 0x85, 0x0d, 0xb3, 0xc3, 0xad, 0x25, 0x7b, 0x40, 0xe7, 0x21, 0xad, 0x75, 0xcc, 0xae, - 0xe1, 0x32, 0x4b, 0x59, 0x9d, 0xf9, 0xf2, 0x6b, 0xb3, 0x63, 0xbf, 0xff, 0xda, 0x6c, 0x62, 0xc9, - 0x70, 0x7f, 0xf7, 0xf3, 0x0f, 0x01, 0x47, 0x5f, 0x32, 0xdc, 0x57, 0xbf, 0xf1, 0xd9, 0xd3, 0x31, - 0x85, 0x53, 0x2f, 0x24, 0xbf, 0xf9, 0xca, 0x6c, 0x4c, 0x7e, 0x0e, 0x32, 0x8b, 0xb8, 0x79, 0x00, - 0xfc, 0x23, 0x3d, 0xf0, 0xc7, 0x04, 0xfc, 0x22, 0x6e, 0x06, 0xe0, 0x17, 0x71, 0xb3, 0x07, 0xf9, - 0x71, 0xc8, 0x2e, 0x19, 0x2e, 0xfb, 0x5a, 0xe1, 0x01, 0x48, 0xe8, 0x06, 0x3b, 0x00, 0x1b, 0x40, - 0xe8, 0x6b, 0xa0, 0x42, 0xa8, 0x08, 0xe3, 0x22, 0x6e, 0x7a, 0x8c, 0x2d, 0xdc, 0xec, 0x65, 0xec, - 0x7f, 0x35, 0xa1, 0xaa, 0x2e, 0xfe, 0xde, 0x7f, 0x9d, 0x19, 0x7b, 0xf9, 0xf5, 0x99, 0xb1, 0xa1, - 0x43, 0x2f, 0x47, 0x0f, 0xbd, 0x37, 0xe2, 0x9f, 0x4a, 0xc2, 0x5d, 0xf4, 0x23, 0x36, 0xbb, 0xa3, - 0x1b, 0xee, 0x99, 0xa6, 0xbd, 0x6f, 0xb9, 0x26, 0x99, 0xbf, 0xe6, 0x36, 0x1f, 0xf0, 0x09, 0xbf, - 0x7a, 0x9e, 0x55, 0x0f, 0x1e, 0x6e, 0x79, 0x1b, 0x52, 0xeb, 0x84, 0x8f, 0x88, 0xd8, 0x35, 0x5d, - 0xad, 0xcd, 0x9d, 0x0e, 0xf6, 0x40, 0x4a, 0xd9, 0x87, 0x6f, 0x71, 0x56, 0xaa, 0x8b, 0x6f, 0xde, - 0xda, 0x58, 0xdb, 0x66, 0xdf, 0x0f, 0x24, 0xa8, 0xb7, 0x9a, 0x25, 0x05, 0xf4, 0x53, 0x81, 0x29, - 0x48, 0x69, 0x5d, 0x76, 0x70, 0x25, 0x41, 0xdc, 0x58, 0xfa, 0x20, 0x3f, 0x03, 0x19, 0xbe, 0x7d, - 0x8e, 0x24, 0x48, 0x5c, 0xc3, 0xfb, 0xf4, 0x3d, 0xe3, 0x0a, 0xf9, 0x89, 0xe6, 0x21, 0x45, 0x1b, - 0xcf, 0x3f, 0x8c, 0x9a, 0x9e, 0xef, 0x6b, 0xfd, 0x3c, 0x6d, 0xa4, 0xc2, 0xc8, 0xe4, 0x2b, 0x90, - 0x5d, 0x34, 0x89, 0x16, 0x86, 0xd1, 0x72, 0x0c, 0x8d, 0xb6, 0xd9, 0xea, 0x72, 0xad, 0x50, 0xd8, - 0x03, 0x3a, 0x02, 0x69, 0xf6, 0x3d, 0x09, 0x3f, 0x7c, 0xc3, 0x9f, 0xe4, 0x1a, 0x64, 0x28, 0xf6, - 0x9a, 0x45, 0x56, 0x7c, 0xef, 0xe8, 0x6e, 0x8e, 0x7f, 0x5d, 0xc8, 0xe1, 0xe3, 0x7e, 0x63, 0x11, - 0x24, 0x5b, 0x9a, 0xab, 0xf1, 0x7e, 0xd3, 0xdf, 0xf2, 0x3b, 0x21, 0xcb, 0x41, 0x1c, 0x74, 0x16, - 0x12, 0xa6, 0xe5, 0xf0, 0xe3, 0x33, 0xe5, 0x61, 0x5d, 0x59, 0xb3, 0xaa, 0x49, 0xa2, 0x33, 0x0a, - 0x21, 0xae, 0xae, 0x0e, 0x55, 0x8b, 0xc7, 0x42, 0x6a, 0xd1, 0xc1, 0xee, 0xd6, 0xb6, 0xeb, 0xff, - 0x60, 0xc3, 0xd9, 0xa7, 0x0a, 0x9e, 0xa2, 0xdc, 0x8a, 0xc3, 0x4c, 0xa0, 0xf6, 0x3a, 0xb6, 0x1d, - 0xdd, 0x34, 0x98, 0x36, 0x71, 0x4d, 0x41, 0x81, 0x06, 0xf2, 0xfa, 0x21, 0xaa, 0xf2, 0x14, 0x24, - 0x2a, 0x96, 0x85, 0xca, 0x90, 0xa5, 0xcf, 0x4d, 0x93, 0xe9, 0x4a, 0x52, 0xf1, 0x9e, 0x49, 0x9d, - 0x63, 0x6e, 0xbb, 0x37, 0x34, 0xdb, 0xfb, 0xdc, 0x52, 0x3c, 0xcb, 0x4f, 0x42, 0xae, 0x66, 0x1a, - 0x0e, 0x36, 0x9c, 0x2e, 0x75, 0x65, 0xb7, 0xda, 0x66, 0xf3, 0x1a, 0x47, 0x60, 0x0f, 0x44, 0xd8, - 0x9a, 0x65, 0x51, 0xce, 0xa4, 0x42, 0x7e, 0xb2, 0xf9, 0x5a, 0x5d, 0x1b, 0x2a, 0x9e, 0x73, 0x87, - 0x13, 0x0f, 0xef, 0xa0, 0xef, 0x93, 0xc6, 0xe0, 0xce, 0xfe, 0x89, 0x74, 0x0d, 0xef, 0x3b, 0x87, - 0x9d, 0x47, 0xcf, 0x41, 0x6e, 0x9d, 0xde, 0x77, 0xf0, 0x0c, 0xde, 0x47, 0x65, 0xc8, 0xe0, 0xd6, - 0xd9, 0x73, 0xe7, 0x1e, 0x79, 0x92, 0x69, 0xf9, 0xe5, 0x31, 0x45, 0x14, 0xa0, 0x19, 0xc8, 0x39, - 0xb8, 0x69, 0x9d, 0x3d, 0x77, 0xfe, 0xda, 0x23, 0x4c, 0xad, 0x2e, 0x8f, 0x29, 0x7e, 0xd1, 0x42, - 0x96, 0xf4, 0xf8, 0x9b, 0x9f, 0x98, 0x8d, 0x55, 0x53, 0x90, 0x70, 0xba, 0x9d, 0xb7, 0x4c, 0x37, - 0x7e, 0x26, 0x05, 0x73, 0x81, 0x5a, 0xb6, 0xb8, 0x5c, 0xd7, 0xda, 0x7a, 0x4b, 0xf3, 0x6f, 0xa9, - 0x90, 0x02, 0xfd, 0xa7, 0x14, 0x43, 0x56, 0x8d, 0x03, 0xa5, 0x28, 0xff, 0x4a, 0x0c, 0xc6, 0xaf, - 0x0a, 0xe4, 0x06, 0x76, 0xd1, 0x05, 0x00, 0xef, 0x4d, 0x62, 0xaa, 0x1c, 0x9f, 0xef, 0x7d, 0xd7, - 0xbc, 0xc7, 0xa3, 0x04, 0xc8, 0xd1, 0xe3, 0x54, 0x01, 0x2d, 0xd3, 0xe1, 0x9f, 0xde, 0x45, 0xb0, - 0x7a, 0xc4, 0xe8, 0x41, 0x40, 0xd4, 0xaa, 0xa9, 0xd7, 0x4d, 0x57, 0x37, 0x76, 0x54, 0xcb, 0xbc, - 0xc1, 0x3f, 0x68, 0x4e, 0x28, 0x12, 0xad, 0xb9, 0x4a, 0x2b, 0xd6, 0x49, 0x39, 0x69, 0x74, 0xce, - 0x43, 0x21, 0x51, 0x99, 0xd6, 0x6a, 0xd9, 0xd8, 0x71, 0xb8, 0xe1, 0x12, 0x8f, 0xe8, 0x02, 0x64, - 0xac, 0xee, 0x96, 0x2a, 0xac, 0x44, 0xfe, 0xec, 0x9d, 0x83, 0xe6, 0xbc, 0xd0, 0x0d, 0x3e, 0xeb, - 0xd3, 0x56, 0x77, 0x8b, 0x68, 0xca, 0xdd, 0x30, 0x3e, 0xa0, 0x31, 0xf9, 0xeb, 0x7e, 0x3b, 0xe8, - 0x15, 0x1b, 0xbc, 0x07, 0xaa, 0x65, 0xeb, 0xa6, 0xad, 0xbb, 0xfb, 0xf4, 0xdc, 0x5b, 0x42, 0x91, - 0x44, 0xc5, 0x3a, 0x2f, 0x97, 0xaf, 0x41, 0xa9, 0x41, 0xbd, 0x75, 0xbf, 0xe5, 0xe7, 0xfc, 0xf6, - 0xc5, 0xa2, 0xdb, 0x37, 0xb4, 0x65, 0xf1, 0xbe, 0x96, 0x55, 0x57, 0x86, 0x6a, 0xe6, 0xa3, 0x87, - 0xd3, 0xcc, 0xf0, 0xea, 0xf6, 0x87, 0xc7, 0x42, 0x93, 0x92, 0x7b, 0x3d, 0x01, 0x93, 0x35, 0xaa, - 0x52, 0x46, 0x05, 0xe2, 0xe5, 0x83, 0x17, 0xd1, 0x72, 0x84, 0xe9, 0x2c, 0x47, 0x4e, 0x1f, 0xf9, - 0x49, 0x28, 0xac, 0x6b, 0xb6, 0xdb, 0xc0, 0xee, 0x65, 0xac, 0xb5, 0xb0, 0x1d, 0x5e, 0x65, 0x0b, - 0x62, 0x95, 0x45, 0x90, 0xa4, 0x4b, 0x29, 0x5b, 0x65, 0xe8, 0x6f, 0x79, 0x17, 0x92, 0xf4, 0xdc, - 0xab, 0xb7, 0x02, 0x73, 0x0e, 0xb6, 0x02, 0x13, 0xfb, 0xb9, 0xef, 0x62, 0x47, 0xe4, 0x8a, 0xe8, - 0x03, 0x7a, 0x4c, 0xac, 0xa3, 0x89, 0x83, 0xd7, 0x51, 0xae, 0x84, 0x7c, 0x35, 0x6d, 0x43, 0xa6, - 0x4a, 0xcc, 0xef, 0xd2, 0xa2, 0xd7, 0x90, 0x98, 0xdf, 0x10, 0xb4, 0x02, 0x25, 0x4b, 0xb3, 0x5d, - 0xfa, 0xc9, 0xd0, 0x2e, 0xed, 0x05, 0xd7, 0xf3, 0xd9, 0xfe, 0x59, 0x17, 0xea, 0x2c, 0x7f, 0x4b, - 0xc1, 0x0a, 0x16, 0xca, 0xff, 0x2d, 0x09, 0x69, 0x2e, 0x8c, 0xa7, 0x20, 0xc3, 0xc5, 0xca, 0x35, - 0xf3, 0xae, 0xf9, 0xfe, 0xc5, 0x68, 0xde, 0x5b, 0x34, 0x38, 0x9e, 0xe0, 0x41, 0xf7, 0x43, 0xb6, - 0xb9, 0xab, 0xe9, 0x86, 0xaa, 0xb7, 0xb8, 0x03, 0x98, 0x7f, 0xfd, 0xb5, 0xd9, 0x4c, 0x8d, 0x94, - 0x2d, 0x2d, 0x2a, 0x19, 0x5a, 0xb9, 0xd4, 0x22, 0x2b, 0xff, 0x2e, 0xd6, 0x77, 0x76, 0x5d, 0x3e, - 0xbb, 0xf8, 0x13, 0x7a, 0x02, 0x92, 0x44, 0x21, 0xf8, 0x07, 0xa5, 0xe5, 0x3e, 0x5f, 0xde, 0xcb, - 0x93, 0x54, 0xb3, 0xe4, 0xc5, 0x1f, 0xfa, 0x2f, 0xb3, 0x31, 0x85, 0x72, 0xa0, 0x1a, 0x14, 0xda, - 0x9a, 0xe3, 0xaa, 0x74, 0xd5, 0x22, 0xaf, 0x4f, 0x51, 0x88, 0x63, 0xfd, 0x02, 0xe1, 0x82, 0xe5, - 0x4d, 0xcf, 0x13, 0x2e, 0x56, 0xd4, 0x42, 0x27, 0x41, 0xa2, 0x20, 0x4d, 0xb3, 0xd3, 0xd1, 0x5d, - 0xe6, 0x4b, 0xa5, 0xa9, 0xdc, 0x8b, 0xa4, 0xbc, 0x46, 0x8b, 0xa9, 0x47, 0x75, 0x1c, 0x72, 0xf4, - 0x13, 0x36, 0x4a, 0xc2, 0x0e, 0x5b, 0x67, 0x49, 0x01, 0xad, 0x3c, 0x01, 0x25, 0xdf, 0x36, 0x32, - 0x92, 0x2c, 0x43, 0xf1, 0x8b, 0x29, 0xe1, 0xc3, 0x30, 0x65, 0xe0, 0x3d, 0x7a, 0xfc, 0x3b, 0x44, - 0x9d, 0xa3, 0xd4, 0x88, 0xd4, 0x5d, 0x0d, 0x73, 0xdc, 0x07, 0xc5, 0xa6, 0x10, 0x3e, 0xa3, 0x05, - 0x4a, 0x5b, 0xf0, 0x4a, 0x29, 0xd9, 0x31, 0xc8, 0x6a, 0x96, 0xc5, 0x08, 0xf2, 0xdc, 0x36, 0x5a, - 0x16, 0xad, 0x3a, 0x0d, 0x13, 0xb4, 0x8f, 0x36, 0x76, 0xba, 0x6d, 0x97, 0x83, 0x8c, 0x53, 0x9a, - 0x12, 0xa9, 0x50, 0x58, 0x39, 0xa5, 0xbd, 0x07, 0x0a, 0xf8, 0xba, 0xde, 0xc2, 0x46, 0x13, 0x33, - 0xba, 0x02, 0xa5, 0x1b, 0x17, 0x85, 0x94, 0xe8, 0x14, 0x78, 0x36, 0x4f, 0x15, 0xf6, 0xb8, 0xc8, - 0xf0, 0x44, 0x79, 0x85, 0x15, 0xcb, 0xd3, 0x90, 0x5c, 0xd4, 0x5c, 0x8d, 0x38, 0x15, 0xee, 0x1e, - 0x5b, 0x64, 0xc6, 0x15, 0xf2, 0x53, 0xfe, 0x66, 0x1c, 0x92, 0x57, 0x4d, 0x17, 0xa3, 0x47, 0x03, - 0x0e, 0x5f, 0x71, 0x90, 0x3e, 0x37, 0xf4, 0x1d, 0x03, 0xb7, 0x56, 0x9c, 0x9d, 0xc0, 0x7d, 0x13, - 0xbe, 0x3a, 0xc5, 0x43, 0xea, 0x34, 0x05, 0x29, 0xdb, 0xec, 0x1a, 0x2d, 0x71, 0x4e, 0x99, 0x3e, - 0xa0, 0x3a, 0x64, 0x3d, 0x2d, 0x49, 0x46, 0x69, 0x49, 0x89, 0x68, 0x09, 0xd1, 0x61, 0x5e, 0xa0, - 0x64, 0xb6, 0xb8, 0xb2, 0x54, 0x21, 0xe7, 0x19, 0x2f, 0xae, 0x6d, 0xa3, 0x29, 0xac, 0xcf, 0x46, - 0x16, 0x12, 0x6f, 0xec, 0x3d, 0xe1, 0x31, 0x8d, 0x93, 0xbc, 0x0a, 0x2e, 0xbd, 0x90, 0x5a, 0xf1, - 0xbb, 0x2f, 0x32, 0xb4, 0x5f, 0xbe, 0x5a, 0xb1, 0xfb, 0x2f, 0xee, 0x84, 0x9c, 0xa3, 0xef, 0x18, - 0x9a, 0xdb, 0xb5, 0x31, 0xd7, 0x3c, 0xbf, 0x40, 0xfe, 0x52, 0x0c, 0xd2, 0x4c, 0x93, 0x03, 0x72, - 0x8b, 0x0d, 0x96, 0x5b, 0x7c, 0x98, 0xdc, 0x12, 0xb7, 0x2f, 0xb7, 0x0a, 0x80, 0xd7, 0x18, 0x87, - 0x5f, 0x49, 0x30, 0xc0, 0x5b, 0x60, 0x4d, 0x6c, 0xe8, 0x3b, 0x7c, 0xa2, 0x06, 0x98, 0xe4, 0xff, - 0x1c, 0x23, 0x8e, 0x2b, 0xaf, 0x47, 0x15, 0x28, 0x88, 0x76, 0xa9, 0xdb, 0x6d, 0x6d, 0x87, 0xeb, - 0xce, 0x5d, 0x43, 0x1b, 0x77, 0xb1, 0xad, 0xed, 0x28, 0x79, 0xde, 0x1e, 0xf2, 0x30, 0x78, 0x1c, - 0xe2, 0x43, 0xc6, 0x21, 0x34, 0xf0, 0x89, 0xdb, 0x1b, 0xf8, 0xd0, 0x10, 0x25, 0x7b, 0x87, 0xe8, - 0x73, 0x71, 0x1a, 0xbc, 0x58, 0xa6, 0xa3, 0xb5, 0xdf, 0x8e, 0x19, 0x71, 0x1c, 0x72, 0x96, 0xd9, - 0x56, 0x59, 0x0d, 0x3b, 0xbf, 0x9f, 0xb5, 0xcc, 0xb6, 0xd2, 0x37, 0xec, 0xa9, 0x37, 0x69, 0xba, - 0xa4, 0xdf, 0x04, 0xa9, 0x65, 0x7a, 0xa5, 0x66, 0xc3, 0x38, 0x13, 0x05, 0x5f, 0xcb, 0x1e, 0x26, - 0x32, 0xa0, 0x8b, 0x63, 0xac, 0x7f, 0xed, 0x65, 0xcd, 0x66, 0x94, 0x0a, 0xa7, 0x23, 0x1c, 0xcc, - 0xf4, 0x0f, 0x8a, 0x7a, 0x83, 0x6a, 0xa9, 0x70, 0x3a, 0xf9, 0x67, 0x62, 0x00, 0xcb, 0x44, 0xb2, - 0xb4, 0xbf, 0x64, 0x15, 0x72, 0x68, 0x13, 0xd4, 0xd0, 0x9b, 0x67, 0x86, 0x0d, 0x1a, 0x7f, 0xff, - 0xb8, 0x13, 0x6c, 0x77, 0x0d, 0x0a, 0xbe, 0x32, 0x3a, 0x58, 0x34, 0x66, 0xe6, 0x00, 0x8f, 0xba, - 0x81, 0x5d, 0x65, 0xfc, 0x7a, 0xe0, 0x49, 0xfe, 0x67, 0x31, 0xc8, 0xd1, 0x36, 0xad, 0x60, 0x57, - 0x0b, 0x8d, 0x61, 0xec, 0xf6, 0xc7, 0xf0, 0x2e, 0x00, 0x06, 0xe3, 0xe8, 0x2f, 0x61, 0xae, 0x59, - 0x39, 0x5a, 0xd2, 0xd0, 0x5f, 0xc2, 0xe8, 0xbc, 0x27, 0xf0, 0xc4, 0xc1, 0x02, 0x17, 0x1e, 0x37, - 0x17, 0xfb, 0x51, 0xc8, 0xd0, 0x2b, 0xbc, 0xf6, 0x1c, 0xee, 0x44, 0xa7, 0x8d, 0x6e, 0x67, 0x63, - 0xcf, 0x91, 0x5f, 0x84, 0xcc, 0xc6, 0x1e, 0xcb, 0x85, 0x1c, 0x87, 0x9c, 0x6d, 0x9a, 0x7c, 0x4d, - 0x66, 0xbe, 0x50, 0x96, 0x14, 0xd0, 0x25, 0x48, 0xc4, 0xff, 0x71, 0x3f, 0xfe, 0xf7, 0x13, 0x18, - 0x89, 0x91, 0x12, 0x18, 0xa7, 0xff, 0x63, 0x0c, 0xf2, 0x01, 0xfb, 0x80, 0x1e, 0x81, 0x3b, 0xaa, - 0xcb, 0x6b, 0xb5, 0x67, 0xd4, 0xa5, 0x45, 0xf5, 0xe2, 0x72, 0xe5, 0x92, 0xff, 0x85, 0x5a, 0xf9, - 0xc8, 0xcd, 0x5b, 0x73, 0x28, 0x40, 0xbb, 0x69, 0xd0, 0xcd, 0x18, 0x74, 0x06, 0xa6, 0xc2, 0x2c, - 0x95, 0x6a, 0xa3, 0xbe, 0xba, 0x21, 0xc5, 0xca, 0x77, 0xdc, 0xbc, 0x35, 0x37, 0x11, 0xe0, 0xa8, - 0x6c, 0x39, 0xd8, 0x70, 0xfb, 0x19, 0x6a, 0x6b, 0x2b, 0x2b, 0x4b, 0x1b, 0x52, 0xbc, 0x8f, 0x81, - 0x1b, 0xec, 0x53, 0x30, 0x11, 0x66, 0x58, 0x5d, 0x5a, 0x96, 0x12, 0x65, 0x74, 0xf3, 0xd6, 0x5c, - 0x31, 0x40, 0xbd, 0xaa, 0xb7, 0xcb, 0xd9, 0x0f, 0x7c, 0x72, 0x66, 0xec, 0xd5, 0xbf, 0x37, 0x13, - 0x23, 0x3d, 0x2b, 0x84, 0x6c, 0x04, 0x7a, 0x10, 0x8e, 0x36, 0x96, 0x2e, 0xad, 0xd6, 0x17, 0xd5, - 0x95, 0xc6, 0x25, 0xb1, 0x9d, 0x21, 0x7a, 0x57, 0xba, 0x79, 0x6b, 0x2e, 0xcf, 0xbb, 0x34, 0x8c, - 0x7a, 0x5d, 0xa9, 0x5f, 0x5d, 0xdb, 0xa8, 0x4b, 0x31, 0x46, 0xbd, 0x6e, 0xe3, 0xeb, 0xa6, 0xcb, - 0xee, 0xf8, 0x7b, 0x18, 0x8e, 0x0d, 0xa0, 0xf6, 0x3a, 0x36, 0x71, 0xf3, 0xd6, 0x5c, 0x61, 0xdd, - 0xc6, 0x6c, 0xfe, 0x50, 0x8e, 0x79, 0x98, 0xee, 0xe7, 0x58, 0x5b, 0x5f, 0x6b, 0x54, 0x96, 0xa5, - 0xb9, 0xb2, 0x74, 0xf3, 0xd6, 0xdc, 0xb8, 0x30, 0x86, 0x84, 0xde, 0xef, 0xd9, 0x5b, 0x15, 0xed, - 0xfc, 0x78, 0x26, 0x94, 0xcb, 0x63, 0x71, 0x84, 0xa5, 0xd9, 0x5a, 0xe7, 0xb0, 0xe1, 0x4e, 0xc4, - 0x6e, 0xac, 0xfc, 0x72, 0x1c, 0x4a, 0x9e, 0x33, 0xbd, 0x4e, 0xdf, 0x80, 0x1e, 0x0d, 0xe6, 0x61, - 0xf2, 0x43, 0x97, 0x31, 0x46, 0x2d, 0xd2, 0x34, 0xef, 0x80, 0xac, 0x70, 0xca, 0xb8, 0xb9, 0x98, - 0xeb, 0xe7, 0xab, 0x73, 0x0a, 0xce, 0xea, 0x71, 0xa0, 0xa7, 0x21, 0xe7, 0x19, 0x0f, 0xef, 0x86, - 0x9c, 0xe1, 0xd6, 0x86, 0xf3, 0xfb, 0x3c, 0xe8, 0x49, 0x3f, 0x6c, 0x48, 0x0e, 0x0b, 0x44, 0xae, - 0x32, 0x02, 0xce, 0x2c, 0xe8, 0xe5, 0x25, 0x3e, 0xed, 0x78, 0xef, 0xe9, 0xed, 0x02, 0x7b, 0x2a, - 0x8b, 0xa4, 0x98, 0x57, 0x92, 0xed, 0x68, 0x7b, 0x55, 0x1a, 0x4c, 0x1d, 0x85, 0x0c, 0xa9, 0xdc, - 0xe1, 0x1f, 0x4f, 0x27, 0x94, 0x74, 0x47, 0xdb, 0xbb, 0xa4, 0x39, 0x57, 0x92, 0xd9, 0x84, 0x94, - 0x94, 0x3f, 0x13, 0x83, 0x62, 0xb8, 0x8f, 0xe8, 0x01, 0x40, 0x84, 0x43, 0xdb, 0xc1, 0x2a, 0x31, - 0x31, 0x54, 0x58, 0x02, 0xb7, 0xd4, 0xd1, 0xf6, 0x2a, 0x3b, 0x78, 0xb5, 0xdb, 0xa1, 0x0d, 0x70, - 0xd0, 0x0a, 0x48, 0x82, 0x58, 0x8c, 0x13, 0x17, 0xe6, 0xb1, 0xfe, 0xfb, 0xf2, 0x38, 0x01, 0x5b, - 0xa8, 0x3e, 0x42, 0x16, 0xaa, 0x22, 0xc3, 0xf3, 0x76, 0xd3, 0x43, 0x5d, 0x49, 0x84, 0xbb, 0x22, - 0x3f, 0x0d, 0xa5, 0x1e, 0x79, 0x22, 0x19, 0x0a, 0x3c, 0x2b, 0x40, 0x77, 0x2a, 0x99, 0x7f, 0x9c, - 0x53, 0xf2, 0x2c, 0xfa, 0xa7, 0x3b, 0xb7, 0x0b, 0xd9, 0x2f, 0xbe, 0x32, 0x1b, 0xa3, 0x09, 0xf3, - 0x07, 0xa0, 0x10, 0x92, 0xa8, 0xc8, 0xd4, 0xc5, 0xfc, 0x4c, 0x9d, 0x4f, 0xfc, 0x02, 0x8c, 0x13, - 0x43, 0x89, 0x5b, 0x9c, 0xf6, 0x7e, 0x28, 0x31, 0x43, 0xde, 0x2b, 0x6b, 0xe6, 0x49, 0xad, 0x08, - 0x81, 0xcb, 0xc2, 0xb5, 0x0a, 0x8b, 0x3d, 0x2f, 0xa8, 0x2e, 0x69, 0x4e, 0xf5, 0x5d, 0xaf, 0xbe, - 0x3e, 0x13, 0x7b, 0x6b, 0x26, 0xe2, 0x57, 0xdf, 0x05, 0xc7, 0x03, 0x95, 0xda, 0x56, 0x53, 0x0f, - 0x65, 0x1d, 0x4a, 0x01, 0x25, 0x23, 0x95, 0x51, 0xd9, 0x83, 0x03, 0x73, 0x18, 0x07, 0x27, 0xcc, - 0xca, 0x07, 0x5b, 0x84, 0xe8, 0xc4, 0xc6, 0xe0, 0x1c, 0xe5, 0xff, 0xcd, 0x42, 0x46, 0xc1, 0xef, - 0xeb, 0x62, 0xc7, 0x45, 0x67, 0x21, 0x89, 0x9b, 0xbb, 0xe6, 0xa0, 0x94, 0x10, 0xe9, 0xdc, 0x3c, - 0xa7, 0xab, 0x37, 0x77, 0xcd, 0xcb, 0x63, 0x0a, 0xa5, 0x45, 0xe7, 0x20, 0xb5, 0xdd, 0xee, 0xf2, - 0x3c, 0x45, 0x8f, 0xb1, 0x08, 0x32, 0x5d, 0x24, 0x44, 0x97, 0xc7, 0x14, 0x46, 0x4d, 0x5e, 0x45, - 0x6f, 0x1e, 0x4d, 0x1c, 0xfc, 0xaa, 0x25, 0x63, 0x9b, 0xbe, 0x8a, 0xd0, 0xa2, 0x2a, 0x80, 0x6e, - 0xe8, 0xae, 0x4a, 0x63, 0x78, 0xee, 0x09, 0xde, 0x3d, 0x9c, 0x53, 0x77, 0x69, 0xd4, 0x7f, 0x79, - 0x4c, 0xc9, 0xe9, 0xe2, 0x81, 0x34, 0xf7, 0x7d, 0x5d, 0x6c, 0xef, 0x73, 0x07, 0x70, 0x68, 0x73, - 0xdf, 0x45, 0x88, 0x48, 0x73, 0x29, 0x35, 0xaa, 0x43, 0x9e, 0x7e, 0x62, 0xca, 0xe6, 0x2f, 0xbf, - 0x05, 0x53, 0x1e, 0xc6, 0x5c, 0x25, 0xa4, 0x74, 0x4a, 0x5f, 0x1e, 0x53, 0x60, 0xcb, 0x7b, 0x22, - 0x46, 0x92, 0xdd, 0x92, 0xe4, 0xee, 0xf1, 0xbb, 0xff, 0x66, 0x87, 0x61, 0xd0, 0xab, 0x92, 0x36, - 0xf6, 0x2e, 0x8f, 0x29, 0x99, 0x26, 0xfb, 0x49, 0xfa, 0xdf, 0xc2, 0x6d, 0xfd, 0x3a, 0xb6, 0x09, - 0x7f, 0xee, 0xe0, 0xfe, 0x2f, 0x32, 0x4a, 0x8a, 0x90, 0x6b, 0x89, 0x07, 0x62, 0x68, 0xb1, 0xd1, - 0xe2, 0xdd, 0x80, 0x7e, 0x3b, 0x1d, 0x1a, 0x67, 0xa3, 0x25, 0x3a, 0x91, 0xc5, 0xfc, 0x37, 0x7a, - 0xc2, 0xf3, 0x50, 0xf3, 0xfd, 0x4e, 0x61, 0xa8, 0x03, 0x2c, 0x57, 0x31, 0x26, 0x3c, 0x55, 0xb4, - 0x0a, 0xc5, 0xb6, 0xee, 0xb8, 0xaa, 0x63, 0x68, 0x96, 0xb3, 0x6b, 0xba, 0x0e, 0x0d, 0xfa, 0xf3, - 0x67, 0xef, 0x1b, 0x86, 0xb0, 0xac, 0x3b, 0x6e, 0x43, 0x10, 0x5f, 0x1e, 0x53, 0x0a, 0xed, 0x60, - 0x01, 0xc1, 0x33, 0xb7, 0xb7, 0xb1, 0xed, 0x01, 0xd2, 0xe4, 0xc0, 0x01, 0x78, 0x6b, 0x84, 0x5a, - 0xf0, 0x13, 0x3c, 0x33, 0x58, 0x80, 0x7e, 0x10, 0x26, 0xdb, 0xa6, 0xd6, 0xf2, 0xe0, 0xd4, 0xe6, - 0x6e, 0xd7, 0xb8, 0x46, 0x33, 0x09, 0xf9, 0xb3, 0xa7, 0x86, 0x36, 0xd2, 0xd4, 0x5a, 0x02, 0xa2, - 0x46, 0x18, 0x2e, 0x8f, 0x29, 0x13, 0xed, 0xde, 0x42, 0xf4, 0x1e, 0x98, 0xd2, 0x2c, 0xab, 0xbd, - 0xdf, 0x8b, 0x5e, 0xa2, 0xe8, 0xa7, 0x87, 0xa1, 0x57, 0x08, 0x4f, 0x2f, 0x3c, 0xd2, 0xfa, 0x4a, - 0xd1, 0x06, 0x48, 0x96, 0x8d, 0xe9, 0x37, 0x31, 0x16, 0x77, 0x55, 0xe8, 0xc5, 0x56, 0xf9, 0xb3, - 0x27, 0x86, 0x61, 0xaf, 0x33, 0x7a, 0xe1, 0xd9, 0x5c, 0x1e, 0x53, 0x4a, 0x56, 0xb8, 0x88, 0xa1, - 0x9a, 0x4d, 0x4c, 0x2f, 0x5f, 0xe2, 0xa8, 0x13, 0x51, 0xa8, 0x94, 0x3e, 0x8c, 0x1a, 0x2a, 0xaa, - 0x66, 0xf8, 0x99, 0x36, 0x7e, 0x33, 0xca, 0x09, 0xc8, 0x07, 0x0c, 0x0b, 0x9a, 0x86, 0x0c, 0xdf, - 0xe3, 0x17, 0x67, 0xe1, 0xf8, 0xa3, 0x5c, 0x84, 0xf1, 0xa0, 0x31, 0x91, 0x3f, 0x14, 0xf3, 0x38, - 0xe9, 0xa7, 0xea, 0xd3, 0xe1, 0xd4, 0x61, 0xce, 0xcf, 0x0a, 0xde, 0x23, 0x56, 0x11, 0x51, 0xcf, - 0x76, 0x93, 0xc6, 0x69, 0x21, 0x5f, 0xc4, 0xd0, 0x2c, 0xe4, 0xad, 0xb3, 0x96, 0x47, 0x92, 0xa0, - 0x24, 0x60, 0x9d, 0xb5, 0x04, 0xc1, 0xdd, 0x30, 0x4e, 0x7a, 0xaa, 0x06, 0x1d, 0x8d, 0x9c, 0x92, - 0x27, 0x65, 0x9c, 0x44, 0xfe, 0xb7, 0x71, 0x90, 0x7a, 0x0d, 0x90, 0x97, 0x53, 0x8c, 0x1d, 0x3a, - 0xa7, 0x78, 0xac, 0x37, 0x9b, 0xe9, 0x27, 0x30, 0x97, 0x41, 0xf2, 0xf3, 0x70, 0x6c, 0x21, 0x18, - 0xee, 0x38, 0xf5, 0x78, 0x78, 0x4a, 0xa9, 0xd9, 0xe3, 0xf2, 0x5d, 0x0c, 0xed, 0xbd, 0x88, 0xab, - 0xb5, 0x7b, 0x87, 0xd8, 0xf3, 0x17, 0x36, 0xad, 0x96, 0xe6, 0x62, 0x91, 0x17, 0x09, 0x6c, 0xc3, - 0xdc, 0x0f, 0x25, 0xcd, 0xb2, 0x54, 0xc7, 0xd5, 0x5c, 0xcc, 0x97, 0xf5, 0x14, 0x4b, 0x0f, 0x6a, - 0x96, 0xd5, 0x20, 0xa5, 0x6c, 0x59, 0xbf, 0x0f, 0x8a, 0xc4, 0x26, 0xeb, 0x5a, 0x5b, 0xe5, 0x59, - 0x82, 0x34, 0x5b, 0xfd, 0x79, 0xe9, 0x65, 0x5a, 0x28, 0xb7, 0xbc, 0x11, 0xa7, 0xf6, 0xd8, 0x0b, - 0xb3, 0x62, 0x81, 0x30, 0x0b, 0xf1, 0x3b, 0x04, 0x98, 0x7c, 0xc4, 0xb5, 0x0b, 0x83, 0xb3, 0xbb, - 0x53, 0x34, 0x24, 0xbb, 0xce, 0x12, 0x1e, 0x59, 0x85, 0x3d, 0xc8, 0xef, 0x8f, 0xc3, 0x44, 0x9f, - 0xe5, 0x1e, 0x98, 0xf6, 0xf6, 0xe3, 0xcb, 0xf8, 0xa1, 0xe2, 0xcb, 0x67, 0xc2, 0x69, 0xdd, 0xc0, - 0xca, 0x77, 0xbc, 0x4f, 0xc8, 0xcc, 0x6e, 0x12, 0x85, 0xe6, 0x20, 0x81, 0xcc, 0x2f, 0x55, 0xf3, - 0x4d, 0x98, 0xda, 0xda, 0x7f, 0x49, 0x33, 0x5c, 0xdd, 0xc0, 0x6a, 0xdf, 0xa8, 0xf5, 0x2f, 0xa5, - 0x2b, 0xba, 0xb3, 0x85, 0x77, 0xb5, 0xeb, 0xba, 0x29, 0x9a, 0x35, 0xe9, 0xf1, 0xfb, 0xc9, 0x5d, - 0x59, 0x81, 0x62, 0x78, 0xe9, 0x41, 0x45, 0x88, 0xbb, 0x7b, 0xbc, 0xff, 0x71, 0x77, 0x0f, 0x3d, - 0xcc, 0xf3, 0x40, 0x71, 0x9a, 0x07, 0xea, 0x7f, 0x11, 0xe7, 0xf3, 0x93, 0x40, 0xb2, 0xec, 0xcd, - 0x06, 0x6f, 0x39, 0xea, 0x45, 0x95, 0x4f, 0x41, 0xa9, 0x67, 0xbd, 0x19, 0x96, 0x15, 0x94, 0x4b, - 0x50, 0x08, 0x2d, 0x2e, 0xf2, 0x11, 0x98, 0x1a, 0xb4, 0x56, 0xc8, 0xbb, 0x5e, 0x79, 0xc8, 0xe6, - 0xa3, 0x73, 0x90, 0xf5, 0x16, 0x8b, 0x01, 0x59, 0x08, 0xda, 0x0b, 0x41, 0xac, 0x78, 0xa4, 0xa1, - 0x64, 0x76, 0x3c, 0x94, 0xcc, 0x96, 0xdf, 0x0b, 0xd3, 0xc3, 0x16, 0x82, 0x9e, 0x6e, 0x24, 0x3d, - 0x2d, 0x3c, 0x02, 0x69, 0x7e, 0xc3, 0x5a, 0x9c, 0x6e, 0xdf, 0xf0, 0x27, 0xa2, 0x9d, 0x6c, 0x51, - 0x48, 0xb0, 0x5d, 0x1d, 0xfa, 0x20, 0xab, 0x70, 0x6c, 0xe8, 0x62, 0x30, 0x7c, 0x23, 0x88, 0x01, - 0xf1, 0x8d, 0xa0, 0xa6, 0x68, 0x8e, 0x43, 0xfb, 0x2a, 0x0e, 0x3b, 0xb0, 0x27, 0xf9, 0x23, 0x09, - 0x38, 0x32, 0x78, 0x49, 0x40, 0x73, 0x30, 0x4e, 0xfc, 0x6e, 0x37, 0xec, 0xa2, 0x43, 0x47, 0xdb, - 0xdb, 0xe0, 0xfe, 0x39, 0x4f, 0xa4, 0xc7, 0xbd, 0x44, 0x3a, 0xda, 0x84, 0x89, 0xb6, 0xd9, 0xd4, - 0xda, 0x6a, 0x40, 0xe3, 0xb9, 0xb2, 0xdf, 0xd3, 0x27, 0xec, 0x3a, 0xbb, 0x77, 0xb9, 0xd5, 0xa7, - 0xf4, 0x25, 0x8a, 0xb1, 0xec, 0x69, 0x3e, 0x5a, 0x84, 0x7c, 0xc7, 0x57, 0xe4, 0x43, 0x28, 0x7b, - 0x90, 0x2d, 0x30, 0x24, 0xa9, 0x81, 0xdb, 0x3e, 0xe9, 0x43, 0x9b, 0xe8, 0x61, 0x3b, 0x28, 0x99, - 0xa1, 0x3b, 0x28, 0x83, 0xb6, 0x2b, 0xb2, 0x83, 0xb7, 0x2b, 0x3e, 0x10, 0x1c, 0x9a, 0xd0, 0x22, - 0xda, 0xbf, 0x83, 0x81, 0x1a, 0x30, 0xc5, 0xf9, 0x5b, 0x21, 0xd9, 0xc7, 0x47, 0x35, 0x34, 0x48, - 0xb0, 0x0f, 0x17, 0x7b, 0xe2, 0xf6, 0xc4, 0x2e, 0x6c, 0x69, 0x32, 0x60, 0x4b, 0xff, 0x3f, 0x1b, - 0x8a, 0x7f, 0x9f, 0x83, 0xac, 0x82, 0x1d, 0x8b, 0x2c, 0x9c, 0xa8, 0x0a, 0x39, 0xbc, 0xd7, 0xc4, - 0x96, 0xeb, 0x6f, 0x53, 0x0e, 0x0a, 0x06, 0x18, 0x75, 0x5d, 0x50, 0x12, 0x4f, 0xdc, 0x63, 0x43, - 0x8f, 0xf2, 0x60, 0x6b, 0x78, 0xdc, 0xc4, 0xd9, 0x83, 0xd1, 0xd6, 0x79, 0x11, 0x6d, 0x25, 0x86, - 0x3a, 0xdf, 0x8c, 0xab, 0x27, 0xdc, 0x7a, 0x94, 0x87, 0x5b, 0xc9, 0x88, 0x97, 0x85, 0xe2, 0xad, - 0x5a, 0x28, 0xde, 0x4a, 0x47, 0x74, 0x73, 0x48, 0xc0, 0x75, 0x5e, 0x04, 0x5c, 0x99, 0x88, 0x16, - 0xf7, 0x44, 0x5c, 0x17, 0xc3, 0x11, 0x57, 0x76, 0x88, 0x01, 0x11, 0xdc, 0x43, 0x43, 0xae, 0xa7, - 0x02, 0x21, 0x57, 0x6e, 0x68, 0xbc, 0xc3, 0x40, 0x06, 0xc4, 0x5c, 0xb5, 0x50, 0xcc, 0x05, 0x11, - 0x32, 0x18, 0x12, 0x74, 0xfd, 0x40, 0x30, 0xe8, 0xca, 0x0f, 0x8d, 0xdb, 0xf8, 0x78, 0x0f, 0x8a, - 0xba, 0x9e, 0xf4, 0xa2, 0xae, 0xf1, 0xa1, 0x61, 0x23, 0xef, 0x43, 0x6f, 0xd8, 0xb5, 0xd6, 0x17, - 0x76, 0x15, 0xf8, 0x9f, 0x34, 0x18, 0x06, 0x11, 0x11, 0x77, 0xad, 0xf5, 0xc5, 0x5d, 0xc5, 0x08, - 0xc0, 0x88, 0xc0, 0xeb, 0xaf, 0x0d, 0x0e, 0xbc, 0x86, 0x87, 0x46, 0xbc, 0x99, 0xa3, 0x45, 0x5e, - 0xea, 0x90, 0xc8, 0x8b, 0x45, 0x47, 0x0f, 0x0c, 0x85, 0x1f, 0x39, 0xf4, 0xda, 0x1c, 0x10, 0x7a, - 0xb1, 0x20, 0xe9, 0xe4, 0x50, 0xf0, 0x11, 0x62, 0xaf, 0xcd, 0x01, 0xb1, 0x17, 0x8a, 0x84, 0x3d, - 0x4c, 0xf0, 0x95, 0x92, 0xd2, 0xf2, 0x29, 0xe2, 0xfa, 0xf6, 0xd8, 0x29, 0xe2, 0x3f, 0x60, 0xdb, - 0x36, 0x6d, 0x71, 0xb2, 0x96, 0x3e, 0xc8, 0x27, 0x89, 0x33, 0xee, 0xdb, 0xa4, 0x03, 0x02, 0x35, - 0xea, 0xa7, 0x05, 0xec, 0x90, 0xfc, 0xc5, 0x98, 0xcf, 0x4b, 0x7d, 0xd8, 0xa0, 0x23, 0x9f, 0xe3, - 0x8e, 0x7c, 0x20, 0x7c, 0x8b, 0x87, 0xc3, 0xb7, 0x59, 0xc8, 0x13, 0xff, 0xab, 0x27, 0x32, 0xd3, - 0x2c, 0x2f, 0x32, 0x13, 0x47, 0x0a, 0x58, 0x90, 0xc7, 0x97, 0x15, 0xb6, 0x93, 0x53, 0xf2, 0x8e, - 0x57, 0xb0, 0x98, 0x02, 0x3d, 0x04, 0x93, 0x01, 0x5a, 0xcf, 0xaf, 0x63, 0x61, 0x8a, 0xe4, 0x51, - 0x57, 0xb8, 0x83, 0xf7, 0x2f, 0x62, 0xbe, 0x84, 0xfc, 0x90, 0x6e, 0x50, 0xf4, 0x15, 0x7b, 0x93, - 0xa2, 0xaf, 0xf8, 0x6d, 0x47, 0x5f, 0x41, 0x3f, 0x35, 0x11, 0xf6, 0x53, 0xff, 0x67, 0xcc, 0x1f, - 0x13, 0x2f, 0x96, 0x6a, 0x9a, 0x2d, 0xcc, 0x3d, 0x47, 0xfa, 0x9b, 0x38, 0x15, 0x6d, 0x73, 0x87, - 0xfb, 0x87, 0xe4, 0x27, 0xa1, 0xf2, 0x16, 0x8e, 0x1c, 0x5f, 0x17, 0x3c, 0xa7, 0x33, 0x15, 0x3c, - 0xff, 0xcb, 0x0f, 0xc5, 0xa6, 0xfd, 0x43, 0xb1, 0xde, 0xb7, 0x6b, 0x99, 0xc0, 0xb7, 0x6b, 0xe8, - 0x09, 0xc8, 0xd1, 0x8c, 0xa8, 0x6a, 0x5a, 0xe2, 0x0f, 0x60, 0x1c, 0x1f, 0x7e, 0x20, 0xd6, 0xa1, - 0x47, 0xf5, 0xd8, 0x21, 0x5a, 0xdf, 0x63, 0xc8, 0x85, 0x3c, 0x86, 0x3b, 0x21, 0x47, 0x5a, 0xcf, - 0x2e, 0x72, 0x06, 0xfe, 0xe1, 0xa3, 0x28, 0x90, 0xdf, 0x03, 0xa8, 0x7f, 0x91, 0x40, 0x97, 0x21, - 0x8d, 0xaf, 0xd3, 0x5b, 0xf1, 0xd8, 0x41, 0xc3, 0x23, 0xfd, 0xae, 0x29, 0xa9, 0xae, 0x4e, 0x13, - 0x21, 0x7f, 0xeb, 0xb5, 0x59, 0x89, 0x51, 0x3f, 0xe8, 0x9d, 0xf3, 0x57, 0x38, 0xbf, 0xfc, 0x9f, - 0xe2, 0x24, 0x80, 0x09, 0x2d, 0x20, 0x03, 0x65, 0x3b, 0x68, 0x8b, 0x70, 0x34, 0x79, 0xcf, 0x00, - 0xec, 0x68, 0x8e, 0x7a, 0x43, 0x33, 0x5c, 0xdc, 0xe2, 0x42, 0x0f, 0x94, 0xa0, 0x32, 0x64, 0xc9, - 0x53, 0xd7, 0xc1, 0x2d, 0x1e, 0x46, 0x7b, 0xcf, 0x81, 0x7e, 0x66, 0xbe, 0xb7, 0x7e, 0x86, 0xa5, - 0x9c, 0xed, 0x91, 0x72, 0x20, 0xb8, 0xc8, 0x05, 0x83, 0x0b, 0x76, 0x30, 0x98, 0x9f, 0x4f, 0x04, - 0xd6, 0x36, 0xf1, 0x8c, 0xee, 0x81, 0x42, 0x07, 0x77, 0x2c, 0xd3, 0x6c, 0xab, 0xcc, 0xdc, 0xb0, - 0x1b, 0xdb, 0xc7, 0x79, 0x61, 0x9d, 0x5a, 0x9d, 0x1f, 0x8b, 0xfb, 0xf3, 0xcf, 0x0f, 0x22, 0xbf, - 0xef, 0x04, 0x2c, 0xff, 0x24, 0xcd, 0x2c, 0x85, 0x5d, 0x04, 0xd4, 0x08, 0x9e, 0x1a, 0xe9, 0x52, - 0xb3, 0x20, 0x14, 0x7a, 0x54, 0xfb, 0xe1, 0x9f, 0x2e, 0x61, 0xc5, 0x0e, 0x7a, 0x1e, 0x8e, 0xf6, - 0xd8, 0x36, 0x0f, 0x3a, 0x3e, 0xaa, 0x89, 0xbb, 0x23, 0x6c, 0xe2, 0x04, 0xb4, 0x2f, 0xac, 0xc4, - 0xf7, 0x38, 0xeb, 0x96, 0xa0, 0x18, 0xf6, 0x78, 0x06, 0x0e, 0x3f, 0xfd, 0x0b, 0x21, 0xae, 0xa6, - 0x1b, 0x6a, 0x28, 0x1d, 0x34, 0xce, 0x0a, 0x79, 0x92, 0x69, 0x1d, 0xee, 0x18, 0xe8, 0xf9, 0xa0, - 0xc7, 0x21, 0xe7, 0x3b, 0x4d, 0x4c, 0xaa, 0x07, 0xa4, 0x0b, 0x7c, 0x5a, 0xf9, 0x37, 0x63, 0x3e, - 0x64, 0x38, 0x01, 0x51, 0x87, 0x34, 0x3b, 0xf6, 0xc6, 0x0f, 0xd3, 0x3c, 0x34, 0x9a, 0xcf, 0x34, - 0xcf, 0xce, 0xc4, 0x29, 0x9c, 0x59, 0x7e, 0x0f, 0xa4, 0x59, 0x09, 0xca, 0x43, 0xc6, 0xbf, 0xb8, - 0x16, 0x20, 0x5d, 0xa9, 0xd5, 0xea, 0xeb, 0x1b, 0x52, 0x0c, 0xe5, 0x20, 0x55, 0xa9, 0xae, 0x29, - 0x1b, 0x52, 0x9c, 0x14, 0x2b, 0xf5, 0x2b, 0xf5, 0xda, 0x86, 0x94, 0x40, 0x13, 0x50, 0x60, 0xbf, - 0xd5, 0x8b, 0x6b, 0xca, 0x4a, 0x65, 0x43, 0x4a, 0x06, 0x8a, 0x1a, 0xf5, 0xd5, 0xc5, 0xba, 0x22, - 0xa5, 0xe4, 0x47, 0xe0, 0xd8, 0x50, 0x2f, 0xcb, 0xcf, 0x2e, 0xc4, 0x02, 0xd9, 0x05, 0xf9, 0x23, - 0x71, 0x28, 0x0f, 0x77, 0x9d, 0xd0, 0x95, 0x9e, 0x8e, 0x9f, 0x3d, 0x84, 0xdf, 0xd5, 0xd3, 0x7b, - 0x74, 0x1f, 0x14, 0x6d, 0xbc, 0x8d, 0xdd, 0xe6, 0x2e, 0x73, 0xe5, 0xd8, 0x92, 0x59, 0x50, 0x0a, - 0xbc, 0x94, 0x32, 0x39, 0x8c, 0xec, 0x45, 0xdc, 0x74, 0x55, 0x66, 0x8b, 0x1c, 0xfe, 0xa7, 0x0a, - 0x0b, 0xac, 0xb4, 0xc1, 0x0a, 0xe5, 0xf7, 0x1e, 0x4a, 0x96, 0x39, 0x48, 0x29, 0xf5, 0x0d, 0xe5, - 0x79, 0x29, 0x81, 0x10, 0x14, 0xe9, 0x4f, 0xb5, 0xb1, 0x5a, 0x59, 0x6f, 0x5c, 0x5e, 0x23, 0xb2, - 0x9c, 0x84, 0x92, 0x90, 0xa5, 0x28, 0x4c, 0xc9, 0x0f, 0xc0, 0xd1, 0x21, 0x7e, 0xdf, 0x80, 0x73, - 0x88, 0x9f, 0x88, 0x05, 0xa9, 0xc3, 0x31, 0xff, 0x1a, 0xa4, 0x1d, 0x57, 0x73, 0xbb, 0x0e, 0x17, - 0xe2, 0xe3, 0xa3, 0x3a, 0x82, 0xf3, 0xe2, 0x47, 0x83, 0xb2, 0x2b, 0x1c, 0x46, 0x3e, 0x07, 0xc5, - 0x70, 0xcd, 0x70, 0x19, 0xf8, 0x4a, 0x14, 0x97, 0x9f, 0x07, 0x08, 0xe4, 0x23, 0xbd, 0x13, 0x5d, - 0xb1, 0xe0, 0x89, 0xae, 0x73, 0x90, 0xba, 0x6e, 0x32, 0x9b, 0x31, 0x78, 0xe2, 0x5c, 0x35, 0x5d, - 0x1c, 0x48, 0x3e, 0x30, 0x6a, 0x59, 0x07, 0xd4, 0x9f, 0x13, 0x1a, 0xf2, 0x8a, 0xa7, 0xc2, 0xaf, - 0xb8, 0x7b, 0x68, 0x76, 0x69, 0xf0, 0xab, 0x5e, 0x82, 0x14, 0xb5, 0x36, 0x03, 0x3f, 0xf1, 0x79, - 0x37, 0x80, 0xe6, 0xba, 0xb6, 0xbe, 0xd5, 0xf5, 0x5f, 0x30, 0x3b, 0xd8, 0x5a, 0x55, 0x04, 0x5d, - 0xf5, 0x4e, 0x6e, 0xb6, 0xa6, 0x7c, 0xd6, 0x80, 0xe9, 0x0a, 0x00, 0xca, 0xab, 0x50, 0x0c, 0xf3, - 0x0e, 0xfe, 0x64, 0xc9, 0xff, 0xf4, 0x3f, 0x27, 0xdc, 0x27, 0xcf, 0xf9, 0xe2, 0xd7, 0x71, 0xd0, - 0x07, 0xf9, 0x66, 0x0c, 0xb2, 0x1b, 0x7b, 0x5c, 0x8f, 0x0f, 0x38, 0x54, 0xe9, 0x7f, 0xb7, 0xe5, - 0x25, 0x0b, 0x59, 0x3e, 0x36, 0xe1, 0x65, 0x79, 0x7f, 0xc0, 0x9b, 0xa9, 0xc9, 0x51, 0xa3, 0x5d, - 0x91, 0xed, 0xe6, 0xd6, 0xe9, 0xc2, 0x68, 0xdf, 0x48, 0x4c, 0x41, 0x2a, 0xf8, 0x7d, 0x03, 0x7b, - 0x90, 0x5b, 0x81, 0x63, 0x09, 0x6c, 0xd9, 0x08, 0x7e, 0x4c, 0x11, 0x3b, 0xf4, 0xc7, 0x14, 0xde, - 0x5b, 0xe2, 0xc1, 0xb7, 0x5c, 0x87, 0xac, 0x50, 0x0a, 0xf4, 0xce, 0xe0, 0xd9, 0x13, 0xb1, 0x47, - 0x33, 0x74, 0xf1, 0xe4, 0xf0, 0x81, 0xa3, 0x27, 0xa7, 0x61, 0x82, 0x1f, 0xb9, 0xf3, 0xe3, 0x0a, - 0x7e, 0xb5, 0x7e, 0x89, 0x55, 0x2c, 0x8b, 0xa0, 0x42, 0xfe, 0xc5, 0x18, 0x48, 0xbd, 0x5a, 0xf9, - 0x76, 0x36, 0x80, 0x18, 0x45, 0xa2, 0xfd, 0x81, 0x3b, 0xb3, 0xd9, 0xc8, 0x17, 0x48, 0xa9, 0x7f, - 0x6b, 0xf6, 0xfb, 0xe3, 0x90, 0x0f, 0xe4, 0xf4, 0xd0, 0x63, 0xa1, 0x23, 0xa0, 0x73, 0x07, 0xe5, - 0xff, 0x02, 0x67, 0x40, 0x43, 0x1d, 0x8b, 0x1f, 0xbe, 0x63, 0x6f, 0xfe, 0x21, 0xfd, 0xc1, 0x5f, - 0xfb, 0xa4, 0x86, 0x7c, 0xed, 0xf3, 0x23, 0x31, 0xc8, 0x7a, 0x4b, 0xf7, 0x61, 0xb3, 0xf9, 0x47, - 0x20, 0xcd, 0x57, 0x27, 0x96, 0xce, 0xe7, 0x4f, 0x03, 0x73, 0xa1, 0x65, 0xc8, 0x8a, 0xbf, 0x49, - 0xc3, 0x03, 0x51, 0xef, 0xf9, 0xf4, 0x93, 0x90, 0x0f, 0x6c, 0xac, 0x10, 0x3b, 0xb1, 0x5a, 0x7f, - 0x56, 0x1a, 0x2b, 0x67, 0x6e, 0xde, 0x9a, 0x4b, 0xac, 0xe2, 0x1b, 0x64, 0x86, 0x29, 0xf5, 0xda, - 0xe5, 0x7a, 0xed, 0x19, 0x29, 0x56, 0xce, 0xdf, 0xbc, 0x35, 0x97, 0x51, 0x30, 0x4d, 0x5f, 0x9d, - 0x7e, 0x06, 0x4a, 0x3d, 0x03, 0x13, 0xb6, 0xef, 0x08, 0x8a, 0x8b, 0x9b, 0xeb, 0xcb, 0x4b, 0xb5, - 0xca, 0x46, 0x5d, 0x65, 0xc7, 0xe9, 0xd0, 0x51, 0x98, 0x5c, 0x5e, 0xba, 0x74, 0x79, 0x43, 0xad, - 0x2d, 0x2f, 0xd5, 0x57, 0x37, 0xd4, 0xca, 0xc6, 0x46, 0xa5, 0xf6, 0x8c, 0x14, 0x3f, 0xfb, 0x5d, - 0x80, 0x52, 0xa5, 0x5a, 0x5b, 0x22, 0xeb, 0xb3, 0xce, 0xaf, 0x3d, 0xaf, 0x41, 0x92, 0xa6, 0x02, - 0x0e, 0x3c, 0x2a, 0x52, 0x3e, 0x38, 0xb7, 0x89, 0x2e, 0x42, 0x8a, 0x66, 0x09, 0xd0, 0xc1, 0x67, - 0x47, 0xca, 0x11, 0xc9, 0x4e, 0xd2, 0x18, 0x3a, 0x9d, 0x0e, 0x3c, 0x4c, 0x52, 0x3e, 0x38, 0xf7, - 0x89, 0x14, 0xc8, 0xf9, 0x51, 0x46, 0xf4, 0xe1, 0x8a, 0xf2, 0x08, 0xd6, 0x11, 0x2d, 0x43, 0x46, - 0x04, 0x86, 0x51, 0xc7, 0x3d, 0xca, 0x91, 0xc9, 0x49, 0x22, 0x2e, 0x16, 0xc0, 0x1f, 0x7c, 0x76, - 0xa5, 0x1c, 0x91, 0x69, 0x45, 0x4b, 0xde, 0x21, 0xfc, 0x88, 0x23, 0x1c, 0xe5, 0xa8, 0x64, 0x23, - 0x11, 0x9a, 0x9f, 0x1a, 0x89, 0x3e, 0x91, 0x53, 0x1e, 0x21, 0x89, 0x8c, 0x36, 0x01, 0x02, 0xe1, - 0xfa, 0x08, 0x47, 0x6d, 0xca, 0xa3, 0x24, 0x87, 0xd1, 0x1a, 0x64, 0xbd, 0xe8, 0x29, 0xf2, 0xe0, - 0x4b, 0x39, 0x3a, 0x4b, 0x8b, 0xde, 0x03, 0x85, 0x70, 0xd4, 0x30, 0xda, 0x71, 0x96, 0xf2, 0x88, - 0xe9, 0x57, 0x82, 0x1f, 0x0e, 0x21, 0x46, 0x3b, 0xde, 0x52, 0x1e, 0x31, 0x1b, 0x8b, 0x5e, 0x84, - 0x89, 0x7e, 0x17, 0x7f, 0xf4, 0xd3, 0x2e, 0xe5, 0x43, 0xe4, 0x67, 0x51, 0x07, 0xd0, 0x80, 0xd0, - 0xe0, 0x10, 0x87, 0x5f, 0xca, 0x87, 0x49, 0xd7, 0xa2, 0x16, 0x94, 0x7a, 0xfd, 0xed, 0x51, 0x0f, - 0xc3, 0x94, 0x47, 0x4e, 0xdd, 0xb2, 0xb7, 0x84, 0xfd, 0xf4, 0x51, 0x0f, 0xc7, 0x94, 0x47, 0xce, - 0xe4, 0x56, 0x2b, 0x43, 0xcf, 0x37, 0x9e, 0x38, 0xf0, 0x7c, 0xa3, 0x7f, 0x62, 0xd1, 0x3b, 0xd3, - 0xf8, 0xcf, 0x1f, 0x86, 0x7b, 0xf9, 0x65, 0x02, 0x8e, 0xab, 0x5d, 0xd3, 0x8d, 0x1d, 0xef, 0x76, - 0x08, 0xfe, 0xcc, 0x0f, 0x37, 0x1e, 0xe1, 0x17, 0x16, 0x88, 0xd2, 0x88, 0x3b, 0x22, 0x86, 0xde, - 0x7b, 0x15, 0x75, 0x08, 0x39, 0xfa, 0xe8, 0xe2, 0x01, 0xf7, 0x4f, 0x44, 0xdc, 0x72, 0x31, 0xe0, - 0x7e, 0x8a, 0x88, 0x43, 0x98, 0x07, 0x9d, 0xf7, 0x94, 0x3f, 0x1c, 0x83, 0xe2, 0x65, 0xdd, 0x71, - 0x4d, 0x5b, 0x6f, 0x6a, 0x6d, 0xba, 0x62, 0x5c, 0x18, 0xf5, 0x23, 0x8f, 0x6a, 0x8e, 0x38, 0x23, - 0xfc, 0x52, 0x0b, 0x7e, 0x30, 0x64, 0x11, 0xd2, 0xd7, 0xb5, 0x36, 0xfb, 0xc4, 0x22, 0x78, 0xfd, - 0x4c, 0xaf, 0xcc, 0x03, 0x5e, 0x52, 0x10, 0x85, 0xf1, 0xca, 0xaf, 0xd2, 0x43, 0xdc, 0x9d, 0x8e, - 0xee, 0xb0, 0xbf, 0x1a, 0xed, 0x62, 0x07, 0xad, 0x43, 0xd2, 0xd6, 0x5c, 0x1e, 0xd4, 0x54, 0xdf, - 0xc1, 0xaf, 0xa2, 0xb8, 0x3f, 0xfa, 0x42, 0x89, 0xf9, 0xfe, 0xdb, 0x2a, 0x28, 0x12, 0x7a, 0x16, - 0xb2, 0x1d, 0x6d, 0x4f, 0xa5, 0xa8, 0xf1, 0x37, 0x01, 0x35, 0xd3, 0xd1, 0xf6, 0x48, 0x5b, 0xc9, - 0x0c, 0x22, 0xc0, 0xcd, 0x5d, 0xcd, 0xd8, 0xc1, 0x0c, 0x3f, 0xf1, 0x26, 0xe0, 0x17, 0x3a, 0xda, - 0x5e, 0x8d, 0x62, 0x92, 0xb7, 0xf0, 0x5b, 0x3e, 0x7e, 0x2b, 0xc6, 0x63, 0x57, 0x2a, 0x2a, 0xa4, - 0x81, 0xd4, 0xf4, 0x9e, 0xe8, 0xab, 0x45, 0x1e, 0xff, 0xc4, 0xb0, 0x91, 0xe8, 0x11, 0x74, 0xb5, - 0x40, 0x1a, 0xf9, 0x95, 0xd7, 0x66, 0x63, 0x6c, 0x4c, 0x4a, 0xcd, 0x9e, 0x81, 0xb8, 0x02, 0x79, - 0x96, 0x3e, 0x53, 0xa9, 0xcf, 0x1a, 0x8f, 0xf4, 0x59, 0x0b, 0xc2, 0x67, 0x65, 0x80, 0xc0, 0xb8, - 0x49, 0x3d, 0xef, 0xc3, 0xab, 0x31, 0xc8, 0x2f, 0x06, 0xae, 0x97, 0x9a, 0x86, 0x4c, 0xc7, 0x34, - 0xf4, 0x6b, 0xd8, 0xf6, 0x36, 0x62, 0xd8, 0x23, 0xf1, 0x2b, 0xd9, 0x9f, 0x09, 0x72, 0xf7, 0xc5, - 0xd5, 0x0b, 0xe2, 0x99, 0x70, 0xdd, 0xc0, 0x5b, 0x8e, 0x2e, 0xa4, 0xad, 0x88, 0x47, 0x74, 0x0a, - 0x24, 0x07, 0x37, 0xbb, 0xb6, 0xee, 0xee, 0xab, 0x4d, 0xd3, 0x70, 0xb5, 0xa6, 0xcb, 0xd3, 0xa5, - 0x25, 0x51, 0x5e, 0x63, 0xc5, 0x04, 0xa4, 0x85, 0x5d, 0x4d, 0x6f, 0xb3, 0x73, 0x5e, 0x39, 0x45, - 0x3c, 0xf2, 0xa6, 0xfe, 0x6a, 0x26, 0x18, 0x0b, 0xd6, 0x40, 0x32, 0x2d, 0x6c, 0x87, 0xbe, 0x71, - 0x63, 0xfa, 0x39, 0xfd, 0xbb, 0x9f, 0x7f, 0x68, 0x8a, 0x0b, 0x9c, 0xef, 0xb8, 0xb3, 0xdb, 0x94, - 0x95, 0x92, 0xe0, 0x10, 0x1f, 0xbf, 0x3d, 0x1f, 0xda, 0x7a, 0xe9, 0x6e, 0xf9, 0xdf, 0xd8, 0x4f, - 0xf5, 0x09, 0xb5, 0x62, 0xec, 0x57, 0xa7, 0x7f, 0xc7, 0x87, 0xf6, 0x63, 0xc5, 0x67, 0xf0, 0x7e, - 0x70, 0x1f, 0x86, 0xc2, 0x10, 0x97, 0xfd, 0x45, 0x4d, 0x6f, 0x8b, 0xbf, 0x7c, 0xa6, 0xf0, 0x27, - 0xb4, 0xe0, 0xe5, 0x5d, 0xd8, 0x5f, 0x34, 0x97, 0x87, 0xe9, 0x46, 0xd5, 0x34, 0x5a, 0xe1, 0x14, - 0x0b, 0xda, 0x80, 0xb4, 0x6b, 0x5e, 0xc3, 0x06, 0x17, 0xd0, 0xa1, 0x74, 0xba, 0xff, 0xc2, 0x19, - 0x8e, 0x85, 0x76, 0x40, 0x6a, 0xe1, 0x36, 0xde, 0x61, 0x5f, 0x68, 0xed, 0x6a, 0x36, 0x66, 0x5f, - 0x6d, 0x7e, 0xaf, 0x73, 0xa6, 0xe4, 0xa1, 0x36, 0x28, 0x28, 0x5a, 0x0f, 0x5f, 0x6e, 0x96, 0xe1, - 0xdb, 0xf0, 0x43, 0xfa, 0x1f, 0xd0, 0xca, 0xa0, 0x9d, 0x0a, 0x5d, 0x86, 0x76, 0x0a, 0xa4, 0xae, - 0xb1, 0x65, 0x1a, 0xf4, 0x8f, 0x14, 0xf1, 0x88, 0x2a, 0xcb, 0xb6, 0xea, 0xbc, 0x72, 0xbe, 0x55, - 0xb7, 0x0e, 0x45, 0x9f, 0x94, 0xce, 0x9e, 0xdc, 0x61, 0x67, 0x4f, 0xc1, 0x03, 0x20, 0x24, 0x68, - 0x05, 0xc0, 0x9f, 0x9f, 0xde, 0x76, 0x7e, 0xe4, 0x4c, 0x0f, 0x76, 0x26, 0x00, 0x80, 0xda, 0x30, - 0xd9, 0xd1, 0x0d, 0xd5, 0xc1, 0xed, 0x6d, 0x95, 0x4b, 0x8e, 0xe0, 0xe6, 0xdf, 0x84, 0x91, 0x9e, - 0xe8, 0xe8, 0x46, 0x03, 0xb7, 0xb7, 0x17, 0x3d, 0x58, 0xf4, 0x0e, 0x38, 0xee, 0x8b, 0xc3, 0x34, - 0xd4, 0x5d, 0xb3, 0xdd, 0x52, 0x6d, 0xbc, 0xad, 0x36, 0xe9, 0x7d, 0x47, 0xe3, 0x54, 0x88, 0x47, - 0x3d, 0x92, 0x35, 0xe3, 0xb2, 0xd9, 0x6e, 0x29, 0x78, 0xbb, 0x46, 0xaa, 0xd1, 0x3d, 0xe0, 0xcb, - 0x42, 0xd5, 0x5b, 0xce, 0x74, 0x61, 0x2e, 0x71, 0x32, 0xa9, 0x8c, 0x7b, 0x85, 0x4b, 0x2d, 0x67, - 0x21, 0xfb, 0x81, 0x57, 0x66, 0xc7, 0xbe, 0xf9, 0xca, 0xec, 0x98, 0x7c, 0x91, 0xde, 0xce, 0xc1, - 0x27, 0x1d, 0x76, 0xd0, 0x79, 0xc8, 0x69, 0xe2, 0x81, 0x7d, 0x17, 0x72, 0xc0, 0xa4, 0xf5, 0x49, - 0xe5, 0x57, 0x62, 0x90, 0x5e, 0xbc, 0xba, 0xae, 0xe9, 0x36, 0xaa, 0xc3, 0x84, 0xaf, 0xb4, 0xa3, - 0xce, 0x7f, 0x5f, 0xcf, 0x85, 0x01, 0xa8, 0x0f, 0xfb, 0x54, 0xf6, 0x40, 0x98, 0xde, 0x8f, 0x68, - 0x03, 0x5d, 0xbd, 0x02, 0x19, 0xd6, 0x42, 0x07, 0x3d, 0x0d, 0x29, 0x8b, 0xfc, 0xe0, 0xe9, 0xfe, - 0x99, 0xa1, 0x8a, 0x4e, 0xe9, 0x83, 0x6a, 0xc1, 0xf8, 0xe4, 0xbf, 0x88, 0x01, 0x2c, 0x5e, 0xbd, - 0xba, 0x61, 0xeb, 0x56, 0x1b, 0xbb, 0x6f, 0x56, 0x97, 0x97, 0xe1, 0x8e, 0xc0, 0x07, 0x99, 0x76, - 0x73, 0xe4, 0x6e, 0x4f, 0xfa, 0x9f, 0x64, 0xda, 0xcd, 0x81, 0x68, 0x2d, 0xc7, 0xf5, 0xd0, 0x12, - 0x23, 0xa3, 0x2d, 0x3a, 0x6e, 0xbf, 0x1c, 0x9f, 0x83, 0xbc, 0xdf, 0x75, 0x07, 0x2d, 0x41, 0xd6, - 0xe5, 0xbf, 0xb9, 0x38, 0xe5, 0xe1, 0xe2, 0x14, 0x6c, 0x41, 0x91, 0x7a, 0xec, 0xf2, 0xff, 0x26, - 0x52, 0xf5, 0x27, 0xc2, 0x5f, 0x29, 0x45, 0x22, 0x16, 0x9e, 0x5b, 0xe0, 0x37, 0xc3, 0x6b, 0xe1, - 0x58, 0x01, 0xb1, 0xfe, 0x68, 0x1c, 0x26, 0x37, 0xc5, 0x24, 0xfd, 0x2b, 0x2b, 0x85, 0x4d, 0xc8, - 0x60, 0xc3, 0xb5, 0x75, 0x2c, 0xf6, 0xf6, 0x1e, 0x1e, 0x36, 0xd8, 0x03, 0xfa, 0x42, 0xff, 0x74, - 0x6f, 0x70, 0xe8, 0x05, 0x56, 0x40, 0x0c, 0xbf, 0x91, 0x80, 0xe9, 0x61, 0xac, 0xe8, 0x04, 0x94, - 0x9a, 0x36, 0xa6, 0x05, 0x6a, 0x28, 0xf7, 0x5d, 0x14, 0xc5, 0x7c, 0x49, 0x51, 0x80, 0x38, 0x68, - 0x44, 0xab, 0x08, 0xe9, 0xed, 0x79, 0x64, 0x45, 0x1f, 0x81, 0x2e, 0x2a, 0x18, 0x4a, 0xe2, 0x30, - 0xfb, 0x96, 0xd6, 0xd6, 0x8c, 0xe6, 0xed, 0xf8, 0xaf, 0xfd, 0x2b, 0x80, 0x38, 0x21, 0x5f, 0x65, - 0x98, 0xe8, 0x2a, 0x64, 0x04, 0x7c, 0xf2, 0x4d, 0x80, 0x17, 0x60, 0xe8, 0x6e, 0x18, 0x0f, 0x2e, - 0x0c, 0xd4, 0x4f, 0x49, 0x2a, 0xf9, 0xc0, 0xba, 0x10, 0xb5, 0xf2, 0xa4, 0x0f, 0x5c, 0x79, 0xb8, - 0x2b, 0xf8, 0xeb, 0x09, 0x98, 0x50, 0x70, 0xeb, 0xfb, 0x70, 0xe0, 0x7e, 0x10, 0x80, 0x4d, 0x6a, - 0x62, 0x6c, 0x6f, 0x63, 0xec, 0xfa, 0x8d, 0x44, 0x8e, 0xe1, 0x2d, 0x3a, 0xee, 0xdb, 0x35, 0x7a, - 0xff, 0x26, 0x0e, 0xe3, 0xc1, 0xd1, 0xfb, 0x3e, 0x58, 0xd9, 0xd0, 0xaa, 0x6f, 0xd2, 0xd8, 0x71, - 0xf3, 0x53, 0xc3, 0x4c, 0x5a, 0x9f, 0x5e, 0x47, 0xd8, 0xb2, 0x0f, 0x27, 0x20, 0xcd, 0xcf, 0x7e, - 0xad, 0xf5, 0xf9, 0xb8, 0xb1, 0xa8, 0x0f, 0x7e, 0x0b, 0xe2, 0x83, 0xdf, 0x81, 0x2e, 0xee, 0x7d, - 0x50, 0x24, 0xd1, 0x74, 0xe8, 0x40, 0x59, 0xec, 0x64, 0x81, 0x86, 0xc3, 0xfe, 0xf1, 0x67, 0x34, - 0x0b, 0x79, 0x42, 0xe6, 0xdb, 0x6c, 0x42, 0x03, 0x1d, 0x6d, 0xaf, 0xce, 0x4a, 0xd0, 0x43, 0x80, - 0x76, 0xbd, 0x4c, 0x87, 0xea, 0x0b, 0x82, 0xd0, 0x4d, 0xf8, 0x35, 0x82, 0xfc, 0x2e, 0x00, 0xd2, - 0x0a, 0x95, 0x5d, 0xc9, 0xc9, 0xef, 0x49, 0x25, 0x25, 0x8b, 0xf4, 0x5a, 0xce, 0x1f, 0x62, 0x9e, - 0x72, 0x4f, 0xb0, 0xcd, 0x63, 0x96, 0xe5, 0xc3, 0x4d, 0x86, 0xef, 0xbc, 0x36, 0x5b, 0xde, 0xd7, - 0x3a, 0xed, 0x05, 0x79, 0x00, 0xa4, 0x4c, 0x3d, 0xe7, 0x70, 0x90, 0xbe, 0x70, 0x2f, 0xd1, 0xe1, - 0x9b, 0xdf, 0xf8, 0xec, 0xe9, 0xe3, 0x01, 0xbc, 0x3d, 0x2f, 0xfd, 0xc5, 0x86, 0x42, 0xfe, 0x4c, - 0x0c, 0x90, 0xbf, 0xb0, 0x78, 0x87, 0xbd, 0x57, 0xe8, 0x11, 0x60, 0xe1, 0xdb, 0xc7, 0x0e, 0x8e, - 0x19, 0x7c, 0xfe, 0x50, 0xcc, 0x10, 0x98, 0x38, 0xef, 0xf4, 0xcd, 0xb8, 0xf8, 0xb4, 0x7b, 0xc0, - 0x45, 0xac, 0xf3, 0x35, 0x53, 0x0f, 0x41, 0x08, 0x26, 0x3a, 0x1f, 0xc7, 0xe4, 0xd7, 0x62, 0x70, - 0xac, 0x4f, 0xeb, 0xbc, 0x26, 0x37, 0x01, 0xd9, 0x81, 0x4a, 0xfe, 0xa7, 0xf2, 0x63, 0xfc, 0x4b, - 0xc6, 0xdb, 0x51, 0xe2, 0x09, 0xbb, 0xcf, 0x74, 0xbf, 0x45, 0xeb, 0x11, 0x37, 0x38, 0xbf, 0x1d, - 0x83, 0xa9, 0x60, 0x8b, 0xbc, 0xbe, 0x35, 0x60, 0x3c, 0xd8, 0x16, 0xde, 0xab, 0x7b, 0x47, 0xe9, - 0x55, 0xb0, 0x43, 0x21, 0x10, 0xd2, 0x17, 0xa1, 0xe1, 0x2c, 0x11, 0xf7, 0xc8, 0xc8, 0x52, 0xf2, - 0x36, 0x19, 0x06, 0x4d, 0x79, 0x36, 0x58, 0x1f, 0x8c, 0x43, 0x72, 0xdd, 0x34, 0xdb, 0xe8, 0x47, - 0x62, 0x30, 0x61, 0x98, 0xae, 0x4a, 0xe6, 0x05, 0x6e, 0xa9, 0x3c, 0x31, 0xc0, 0xac, 0xe6, 0xd5, - 0xc3, 0x49, 0xef, 0x5b, 0xaf, 0xcd, 0xf6, 0x43, 0x0d, 0xba, 0x3f, 0xb7, 0x64, 0x98, 0x6e, 0x95, - 0x12, 0x6d, 0xb0, 0xdc, 0xc1, 0x0d, 0x28, 0x84, 0xdf, 0xcf, 0x4c, 0xad, 0x72, 0xe8, 0xf7, 0x17, - 0x22, 0xdf, 0x3d, 0xbe, 0x15, 0x78, 0x31, 0xbb, 0xc5, 0xf2, 0x4f, 0xc8, 0xe0, 0x3e, 0x0f, 0xd2, - 0xd5, 0xde, 0x63, 0x67, 0x75, 0xc8, 0x1c, 0xf6, 0x04, 0x5b, 0x50, 0xe2, 0x9c, 0xf7, 0xf4, 0x17, - 0x62, 0x00, 0x7e, 0x1a, 0x06, 0x3d, 0x08, 0x47, 0xab, 0x6b, 0xab, 0x8b, 0x6a, 0x63, 0xa3, 0xb2, - 0xb1, 0xd9, 0x08, 0xdf, 0x99, 0x2e, 0x2e, 0x1a, 0x71, 0x2c, 0xdc, 0xd4, 0xb7, 0x75, 0xdc, 0x42, - 0xf7, 0xc3, 0x54, 0x98, 0x9a, 0x3c, 0xd5, 0x17, 0xa5, 0x58, 0x79, 0xfc, 0xe6, 0xad, 0xb9, 0x2c, - 0x73, 0x3f, 0x71, 0x0b, 0x9d, 0x84, 0x3b, 0xfa, 0xe9, 0x96, 0x56, 0x2f, 0x49, 0xf1, 0x72, 0xe1, - 0xe6, 0xad, 0xb9, 0x9c, 0xe7, 0xa7, 0x22, 0x19, 0x50, 0x90, 0x92, 0xe3, 0x25, 0xca, 0x70, 0xf3, - 0xd6, 0x5c, 0x9a, 0x0d, 0x4b, 0x39, 0xf9, 0x81, 0x4f, 0xce, 0x8c, 0x9d, 0x7e, 0x37, 0xc0, 0x92, - 0xb1, 0x6d, 0x6b, 0xf4, 0x0f, 0x07, 0xa3, 0x32, 0x1c, 0x59, 0x5a, 0xbd, 0xa8, 0x54, 0x6a, 0x1b, - 0x4b, 0x6b, 0xab, 0x3d, 0x57, 0xbd, 0x87, 0xeb, 0x16, 0xd7, 0x36, 0xab, 0xcb, 0x75, 0xb5, 0xb1, - 0x74, 0x69, 0x95, 0x6d, 0xdf, 0x86, 0xea, 0x9e, 0x5d, 0xdd, 0x58, 0x5a, 0xa9, 0x4b, 0xf1, 0xea, - 0xc5, 0xa1, 0x1b, 0x08, 0x0f, 0x1e, 0x38, 0xe0, 0xbe, 0x95, 0x0c, 0xed, 0x22, 0xfc, 0xbf, 0x00, - 0x00, 0x00, 0xff, 0xff, 0xf7, 0x65, 0x24, 0x03, 0xd0, 0x96, 0x00, 0x00, + 0xb2, 0x93, 0x4a, 0x49, 0xae, 0x54, 0xe2, 0x4a, 0x25, 0x8c, 0x43, 0xa9, 0x22, 0x45, 0x96, 0x63, + 0x5b, 0xa6, 0x93, 0x38, 0xaa, 0x54, 0x52, 0xfd, 0x9a, 0xc7, 0x3e, 0x30, 0x8b, 0x13, 0x49, 0x3b, + 0xa5, 0x7f, 0xee, 0x76, 0xba, 0xbf, 0xef, 0x37, 0xdd, 0x5f, 0x7f, 0xfd, 0xf5, 0xf7, 0x7d, 0xdd, + 0xd3, 0x80, 0x3f, 0xbd, 0x00, 0x73, 0x3b, 0xa6, 0xb9, 0xd3, 0xc6, 0x67, 0x2c, 0xdb, 0x74, 0xcd, + 0xad, 0xee, 0xf6, 0x99, 0x16, 0x76, 0x9a, 0xb6, 0x6e, 0xb9, 0xa6, 0x3d, 0x4f, 0xcb, 0x50, 0x89, + 0x51, 0xcc, 0x0b, 0x0a, 0x79, 0x05, 0x26, 0x2e, 0xea, 0x6d, 0xbc, 0xe8, 0x11, 0x36, 0xb0, 0x8b, + 0x9e, 0x80, 0xe4, 0xb6, 0xde, 0xc6, 0xd3, 0xb1, 0xb9, 0xc4, 0xc9, 0xfc, 0xd9, 0x7b, 0xe7, 0x7b, + 0x98, 0xe6, 0xc3, 0x1c, 0xeb, 0xa4, 0x58, 0xa1, 0x1c, 0xf2, 0xd7, 0x93, 0x30, 0x39, 0xa0, 0x16, + 0x21, 0x48, 0x1a, 0x5a, 0x87, 0x20, 0xc6, 0x4e, 0xe6, 0x14, 0xfa, 0x1b, 0x4d, 0x43, 0xc6, 0xd2, + 0x9a, 0xd7, 0xb4, 0x1d, 0x3c, 0x1d, 0xa7, 0xc5, 0xe2, 0x11, 0xcd, 0x00, 0xb4, 0xb0, 0x85, 0x8d, + 0x16, 0x36, 0x9a, 0xfb, 0xd3, 0x89, 0xb9, 0xc4, 0xc9, 0x9c, 0x12, 0x28, 0x41, 0x0f, 0xc0, 0x84, + 0xd5, 0xdd, 0x6a, 0xeb, 0x4d, 0x35, 0x40, 0x06, 0x73, 0x89, 0x93, 0x29, 0x45, 0x62, 0x15, 0x8b, + 0x3e, 0xf1, 0x09, 0x28, 0xdd, 0xc0, 0xda, 0xb5, 0x20, 0x69, 0x9e, 0x92, 0x16, 0x49, 0x71, 0x80, + 0xb0, 0x06, 0xe3, 0x1d, 0xec, 0x38, 0xda, 0x0e, 0x56, 0xdd, 0x7d, 0x0b, 0x4f, 0x27, 0x69, 0xef, + 0xe7, 0xfa, 0x7a, 0xdf, 0xdb, 0xf3, 0x3c, 0xe7, 0xda, 0xd8, 0xb7, 0x30, 0xaa, 0x40, 0x0e, 0x1b, + 0xdd, 0x0e, 0x43, 0x48, 0x0d, 0x91, 0x5f, 0xdd, 0xe8, 0x76, 0x7a, 0x51, 0xb2, 0x84, 0x8d, 0x43, + 0x64, 0x1c, 0x6c, 0x5f, 0xd7, 0x9b, 0x78, 0x3a, 0x4d, 0x01, 0x4e, 0xf4, 0x01, 0x34, 0x58, 0x7d, + 0x2f, 0x86, 0xe0, 0x43, 0x35, 0xc8, 0xe1, 0x3d, 0x17, 0x1b, 0x8e, 0x6e, 0x1a, 0xd3, 0x19, 0x0a, + 0x72, 0xdf, 0x80, 0x51, 0xc4, 0xed, 0x56, 0x2f, 0x84, 0xcf, 0x87, 0xce, 0x43, 0xc6, 0xb4, 0x5c, + 0xdd, 0x34, 0x9c, 0xe9, 0xec, 0x5c, 0xec, 0x64, 0xfe, 0xec, 0x9d, 0x03, 0x15, 0x61, 0x8d, 0xd1, + 0x28, 0x82, 0x18, 0x2d, 0x81, 0xe4, 0x98, 0x5d, 0xbb, 0x89, 0xd5, 0xa6, 0xd9, 0xc2, 0xaa, 0x6e, + 0x6c, 0x9b, 0xd3, 0x39, 0x0a, 0x30, 0xdb, 0xdf, 0x11, 0x4a, 0x58, 0x33, 0x5b, 0x78, 0xc9, 0xd8, + 0x36, 0x95, 0xa2, 0x13, 0x7a, 0x46, 0x47, 0x20, 0xed, 0xec, 0x1b, 0xae, 0xb6, 0x37, 0x3d, 0x4e, + 0x35, 0x84, 0x3f, 0xc9, 0xbf, 0x96, 0x86, 0xd2, 0x28, 0x2a, 0x76, 0x01, 0x52, 0xdb, 0xa4, 0x97, + 0xd3, 0xf1, 0xc3, 0xc8, 0x80, 0xf1, 0x84, 0x85, 0x98, 0xbe, 0x4d, 0x21, 0x56, 0x20, 0x6f, 0x60, + 0xc7, 0xc5, 0x2d, 0xa6, 0x11, 0x89, 0x11, 0x75, 0x0a, 0x18, 0x53, 0xbf, 0x4a, 0x25, 0x6f, 0x4b, + 0xa5, 0x9e, 0x83, 0x92, 0xd7, 0x24, 0xd5, 0xd6, 0x8c, 0x1d, 0xa1, 0x9b, 0x67, 0xa2, 0x5a, 0x32, + 0x5f, 0x17, 0x7c, 0x0a, 0x61, 0x53, 0x8a, 0x38, 0xf4, 0x8c, 0x16, 0x01, 0x4c, 0x03, 0x9b, 0xdb, + 0x6a, 0x0b, 0x37, 0xdb, 0xd3, 0xd9, 0x21, 0x52, 0x5a, 0x23, 0x24, 0x7d, 0x52, 0x32, 0x59, 0x69, + 0xb3, 0x8d, 0x9e, 0xf4, 0x55, 0x2d, 0x33, 0x44, 0x53, 0x56, 0xd8, 0x24, 0xeb, 0xd3, 0xb6, 0x4d, + 0x28, 0xda, 0x98, 0xe8, 0x3d, 0x6e, 0xf1, 0x9e, 0xe5, 0x68, 0x23, 0xe6, 0x23, 0x7b, 0xa6, 0x70, + 0x36, 0xd6, 0xb1, 0x82, 0x1d, 0x7c, 0x44, 0xf7, 0x80, 0x57, 0xa0, 0x52, 0xb5, 0x02, 0x6a, 0x85, + 0xc6, 0x45, 0xe1, 0xaa, 0xd6, 0xc1, 0xe5, 0x97, 0xa0, 0x18, 0x16, 0x0f, 0x9a, 0x82, 0x94, 0xe3, + 0x6a, 0xb6, 0x4b, 0xb5, 0x30, 0xa5, 0xb0, 0x07, 0x24, 0x41, 0x02, 0x1b, 0x2d, 0x6a, 0xe5, 0x52, + 0x0a, 0xf9, 0x89, 0x7e, 0xc0, 0xef, 0x70, 0x82, 0x76, 0xf8, 0xfe, 0xfe, 0x11, 0x0d, 0x21, 0xf7, + 0xf6, 0xbb, 0xfc, 0x38, 0x14, 0x42, 0x1d, 0x18, 0xf5, 0xd5, 0xf2, 0x0f, 0xc1, 0x1d, 0x03, 0xa1, + 0xd1, 0x73, 0x30, 0xd5, 0x35, 0x74, 0xc3, 0xc5, 0xb6, 0x65, 0x63, 0xa2, 0xb1, 0xec, 0x55, 0xd3, + 0xdf, 0xc8, 0x0c, 0xd1, 0xb9, 0xcd, 0x20, 0x35, 0x43, 0x51, 0x26, 0xbb, 0xfd, 0x85, 0xa7, 0x73, + 0xd9, 0x6f, 0x66, 0xa4, 0x97, 0x5f, 0x7e, 0xf9, 0xe5, 0xb8, 0xfc, 0x5b, 0x69, 0x98, 0x1a, 0x34, + 0x67, 0x06, 0x4e, 0xdf, 0x23, 0x90, 0x36, 0xba, 0x9d, 0x2d, 0x6c, 0x53, 0x21, 0xa5, 0x14, 0xfe, + 0x84, 0x2a, 0x90, 0x6a, 0x6b, 0x5b, 0xb8, 0x3d, 0x9d, 0x9c, 0x8b, 0x9d, 0x2c, 0x9e, 0x7d, 0x60, + 0xa4, 0x59, 0x39, 0xbf, 0x4c, 0x58, 0x14, 0xc6, 0x89, 0xde, 0x09, 0x49, 0x6e, 0xa2, 0x09, 0xc2, + 0xe9, 0xd1, 0x10, 0xc8, 0x5c, 0x52, 0x28, 0x1f, 0x3a, 0x0e, 0x39, 0xf2, 0x3f, 0xd3, 0x8d, 0x34, + 0x6d, 0x73, 0x96, 0x14, 0x10, 0xbd, 0x40, 0x65, 0xc8, 0xd2, 0x69, 0xd2, 0xc2, 0x62, 0x69, 0xf3, + 0x9e, 0x89, 0x62, 0xb5, 0xf0, 0xb6, 0xd6, 0x6d, 0xbb, 0xea, 0x75, 0xad, 0xdd, 0xc5, 0x54, 0xe1, + 0x73, 0xca, 0x38, 0x2f, 0xbc, 0x4a, 0xca, 0xd0, 0x2c, 0xe4, 0xd9, 0xac, 0xd2, 0x8d, 0x16, 0xde, + 0xa3, 0xd6, 0x33, 0xa5, 0xb0, 0x89, 0xb6, 0x44, 0x4a, 0xc8, 0xeb, 0x5f, 0x74, 0x4c, 0x43, 0xa8, + 0x26, 0x7d, 0x05, 0x29, 0xa0, 0xaf, 0x7f, 0xbc, 0xd7, 0x70, 0xdf, 0x35, 0xb8, 0x7b, 0x7d, 0x73, + 0xe9, 0x04, 0x94, 0x28, 0xc5, 0xa3, 0x7c, 0xe8, 0xb5, 0xf6, 0xf4, 0xc4, 0x5c, 0xec, 0x64, 0x56, + 0x29, 0xb2, 0xe2, 0x35, 0x5e, 0x2a, 0x7f, 0x21, 0x0e, 0x49, 0x6a, 0x58, 0x4a, 0x90, 0xdf, 0x78, + 0x7e, 0xbd, 0xae, 0x2e, 0xae, 0x6d, 0x56, 0x97, 0xeb, 0x52, 0x0c, 0x15, 0x01, 0x68, 0xc1, 0xc5, + 0xe5, 0xb5, 0xca, 0x86, 0x14, 0xf7, 0x9e, 0x97, 0x56, 0x37, 0xce, 0x3f, 0x26, 0x25, 0x3c, 0x86, + 0x4d, 0x56, 0x90, 0x0c, 0x12, 0x3c, 0x7a, 0x56, 0x4a, 0x21, 0x09, 0xc6, 0x19, 0xc0, 0xd2, 0x73, + 0xf5, 0xc5, 0xf3, 0x8f, 0x49, 0xe9, 0x70, 0xc9, 0xa3, 0x67, 0xa5, 0x0c, 0x2a, 0x40, 0x8e, 0x96, + 0x54, 0xd7, 0xd6, 0x96, 0xa5, 0xac, 0x87, 0xd9, 0xd8, 0x50, 0x96, 0x56, 0x2f, 0x49, 0x39, 0x0f, + 0xf3, 0x92, 0xb2, 0xb6, 0xb9, 0x2e, 0x81, 0x87, 0xb0, 0x52, 0x6f, 0x34, 0x2a, 0x97, 0xea, 0x52, + 0xde, 0xa3, 0xa8, 0x3e, 0xbf, 0x51, 0x6f, 0x48, 0xe3, 0xa1, 0x66, 0x3d, 0x7a, 0x56, 0x2a, 0x78, + 0xaf, 0xa8, 0xaf, 0x6e, 0xae, 0x48, 0x45, 0x34, 0x01, 0x05, 0xf6, 0x0a, 0xd1, 0x88, 0x52, 0x4f, + 0xd1, 0xf9, 0xc7, 0x24, 0xc9, 0x6f, 0x08, 0x43, 0x99, 0x08, 0x15, 0x9c, 0x7f, 0x4c, 0x42, 0x72, + 0x0d, 0x52, 0x54, 0x0d, 0x11, 0x82, 0xe2, 0x72, 0xa5, 0x5a, 0x5f, 0x56, 0xd7, 0xd6, 0x37, 0x96, + 0xd6, 0x56, 0x2b, 0xcb, 0x52, 0xcc, 0x2f, 0x53, 0xea, 0xef, 0xda, 0x5c, 0x52, 0xea, 0x8b, 0x52, + 0x3c, 0x58, 0xb6, 0x5e, 0xaf, 0x6c, 0xd4, 0x17, 0xa5, 0x84, 0xdc, 0x84, 0xa9, 0x41, 0x06, 0x75, + 0xe0, 0x14, 0x0a, 0xe8, 0x42, 0x7c, 0x88, 0x2e, 0x50, 0xac, 0x5e, 0x5d, 0x90, 0xbf, 0x16, 0x87, + 0xc9, 0x01, 0x8b, 0xca, 0xc0, 0x97, 0x3c, 0x0d, 0x29, 0xa6, 0xcb, 0x6c, 0x99, 0x3d, 0x35, 0x70, + 0x75, 0xa2, 0x9a, 0xdd, 0xb7, 0xd4, 0x52, 0xbe, 0xa0, 0xab, 0x91, 0x18, 0xe2, 0x6a, 0x10, 0x88, + 0x3e, 0x85, 0x7d, 0x77, 0x9f, 0xf1, 0x67, 0xeb, 0xe3, 0xf9, 0x51, 0xd6, 0x47, 0x5a, 0x76, 0xb8, + 0x45, 0x20, 0x35, 0x60, 0x11, 0xb8, 0x00, 0x13, 0x7d, 0x40, 0x23, 0x1b, 0xe3, 0xf7, 0xc7, 0x60, + 0x7a, 0x98, 0x70, 0x22, 0x4c, 0x62, 0x3c, 0x64, 0x12, 0x2f, 0xf4, 0x4a, 0xf0, 0xee, 0xe1, 0x83, + 0xd0, 0x37, 0xd6, 0x9f, 0x8e, 0xc1, 0x91, 0xc1, 0x2e, 0xe5, 0xc0, 0x36, 0xbc, 0x13, 0xd2, 0x1d, + 0xec, 0xee, 0x9a, 0xc2, 0xad, 0xba, 0x7f, 0xc0, 0x62, 0x4d, 0xaa, 0x7b, 0x07, 0x9b, 0x73, 0x05, + 0x57, 0xfb, 0xc4, 0x30, 0xbf, 0x90, 0xb5, 0xa6, 0xaf, 0xa5, 0x3f, 0x11, 0x87, 0x3b, 0x06, 0x82, + 0x0f, 0x6c, 0xe8, 0x5d, 0x00, 0xba, 0x61, 0x75, 0x5d, 0xe6, 0x3a, 0x31, 0x4b, 0x9c, 0xa3, 0x25, + 0xd4, 0x78, 0x11, 0x2b, 0xdb, 0x75, 0xbd, 0xfa, 0x04, 0xad, 0x07, 0x56, 0x44, 0x09, 0x9e, 0xf0, + 0x1b, 0x9a, 0xa4, 0x0d, 0x9d, 0x19, 0xd2, 0xd3, 0x3e, 0xc5, 0x7c, 0x18, 0xa4, 0x66, 0x5b, 0xc7, + 0x86, 0xab, 0x3a, 0xae, 0x8d, 0xb5, 0x8e, 0x6e, 0xec, 0xd0, 0xa5, 0x26, 0xbb, 0x90, 0xda, 0xd6, + 0xda, 0x0e, 0x56, 0x4a, 0xac, 0xba, 0x21, 0x6a, 0x09, 0x07, 0x55, 0x20, 0x3b, 0xc0, 0x91, 0x0e, + 0x71, 0xb0, 0x6a, 0x8f, 0x43, 0xfe, 0xa9, 0x1c, 0xe4, 0x03, 0x0e, 0x38, 0xba, 0x1b, 0xc6, 0x5f, + 0xd4, 0xae, 0x6b, 0xaa, 0x08, 0xaa, 0x98, 0x24, 0xf2, 0xa4, 0x6c, 0x9d, 0x07, 0x56, 0x0f, 0xc3, + 0x14, 0x25, 0x31, 0xbb, 0x2e, 0xb6, 0xd5, 0x66, 0x5b, 0x73, 0x1c, 0x2a, 0xb4, 0x2c, 0x25, 0x45, + 0xa4, 0x6e, 0x8d, 0x54, 0xd5, 0x44, 0x0d, 0x3a, 0x07, 0x93, 0x94, 0xa3, 0xd3, 0x6d, 0xbb, 0xba, + 0xd5, 0xc6, 0x2a, 0x09, 0xf3, 0x1c, 0xba, 0xe4, 0x78, 0x2d, 0x9b, 0x20, 0x14, 0x2b, 0x9c, 0x80, + 0xb4, 0xc8, 0x41, 0x8b, 0x70, 0x17, 0x65, 0xdb, 0xc1, 0x06, 0xb6, 0x35, 0x17, 0xab, 0xf8, 0x7d, + 0x5d, 0xad, 0xed, 0xa8, 0x9a, 0xd1, 0x52, 0x77, 0x35, 0x67, 0x77, 0x7a, 0x8a, 0x00, 0x54, 0xe3, + 0xd3, 0x31, 0xe5, 0x18, 0x21, 0xbc, 0xc4, 0xe9, 0xea, 0x94, 0xac, 0x62, 0xb4, 0x2e, 0x6b, 0xce, + 0x2e, 0x5a, 0x80, 0x23, 0x14, 0xc5, 0x71, 0x6d, 0xdd, 0xd8, 0x51, 0x9b, 0xbb, 0xb8, 0x79, 0x4d, + 0xed, 0xba, 0xdb, 0x4f, 0x4c, 0x1f, 0x0f, 0xbe, 0x9f, 0xb6, 0xb0, 0x41, 0x69, 0x6a, 0x84, 0x64, + 0xd3, 0xdd, 0x7e, 0x02, 0x35, 0x60, 0x9c, 0x0c, 0x46, 0x47, 0x7f, 0x09, 0xab, 0xdb, 0xa6, 0x4d, + 0xd7, 0xd0, 0xe2, 0x00, 0xd3, 0x14, 0x90, 0xe0, 0xfc, 0x1a, 0x67, 0x58, 0x31, 0x5b, 0x78, 0x21, + 0xd5, 0x58, 0xaf, 0xd7, 0x17, 0x95, 0xbc, 0x40, 0xb9, 0x68, 0xda, 0x44, 0xa1, 0x76, 0x4c, 0x4f, + 0xc0, 0x79, 0xa6, 0x50, 0x3b, 0xa6, 0x10, 0xef, 0x39, 0x98, 0x6c, 0x36, 0x59, 0x9f, 0xf5, 0xa6, + 0xca, 0x83, 0x31, 0x67, 0x5a, 0x0a, 0x09, 0xab, 0xd9, 0xbc, 0xc4, 0x08, 0xb8, 0x8e, 0x3b, 0xe8, + 0x49, 0xb8, 0xc3, 0x17, 0x56, 0x90, 0x71, 0xa2, 0xaf, 0x97, 0xbd, 0xac, 0xe7, 0x60, 0xd2, 0xda, + 0xef, 0x67, 0x44, 0xa1, 0x37, 0x5a, 0xfb, 0xbd, 0x6c, 0x8f, 0xc3, 0x94, 0xb5, 0x6b, 0xf5, 0xf3, + 0x9d, 0x0e, 0xf2, 0x21, 0x6b, 0xd7, 0xea, 0x65, 0xbc, 0x8f, 0x46, 0xe6, 0x36, 0x6e, 0x6a, 0x2e, + 0x6e, 0x4d, 0x1f, 0x0d, 0x92, 0x07, 0x2a, 0xd0, 0x3c, 0x48, 0xcd, 0xa6, 0x8a, 0x0d, 0x6d, 0xab, + 0x8d, 0x55, 0xcd, 0xc6, 0x86, 0xe6, 0x4c, 0xcf, 0x52, 0xe2, 0xa4, 0x6b, 0x77, 0xb1, 0x52, 0x6c, + 0x36, 0xeb, 0xb4, 0xb2, 0x42, 0xeb, 0xd0, 0x69, 0x98, 0x30, 0xb7, 0x5e, 0x6c, 0x32, 0x8d, 0x54, + 0x2d, 0x1b, 0x6f, 0xeb, 0x7b, 0xd3, 0xf7, 0x52, 0xf1, 0x96, 0x48, 0x05, 0xd5, 0xc7, 0x75, 0x5a, + 0x8c, 0x4e, 0x81, 0xd4, 0x74, 0x76, 0x35, 0xdb, 0xa2, 0x26, 0xd9, 0xb1, 0xb4, 0x26, 0x9e, 0xbe, + 0x8f, 0x91, 0xb2, 0xf2, 0x55, 0x51, 0x4c, 0x66, 0x84, 0x73, 0x43, 0xdf, 0x76, 0x05, 0xe2, 0x09, + 0x36, 0x23, 0x68, 0x19, 0x47, 0x3b, 0x09, 0x12, 0x91, 0x44, 0xe8, 0xc5, 0x27, 0x29, 0x59, 0xd1, + 0xda, 0xb5, 0x82, 0xef, 0xbd, 0x07, 0x0a, 0x84, 0xd2, 0x7f, 0xe9, 0x29, 0xe6, 0xb8, 0x59, 0xbb, + 0x81, 0x37, 0x3e, 0x06, 0x47, 0x08, 0x51, 0x07, 0xbb, 0x5a, 0x4b, 0x73, 0xb5, 0x00, 0xf5, 0x83, + 0x94, 0x9a, 0x88, 0x7d, 0x85, 0x57, 0x86, 0xda, 0x69, 0x77, 0xb7, 0xf6, 0x3d, 0xc5, 0x7a, 0x88, + 0xb5, 0x93, 0x94, 0x09, 0xd5, 0x7a, 0xcb, 0x9c, 0x73, 0x79, 0x01, 0xc6, 0x83, 0x7a, 0x8f, 0x72, + 0xc0, 0x34, 0x5f, 0x8a, 0x11, 0x27, 0xa8, 0xb6, 0xb6, 0x48, 0xdc, 0x97, 0x17, 0xea, 0x52, 0x9c, + 0xb8, 0x51, 0xcb, 0x4b, 0x1b, 0x75, 0x55, 0xd9, 0x5c, 0xdd, 0x58, 0x5a, 0xa9, 0x4b, 0x89, 0x80, + 0x63, 0x7f, 0x25, 0x99, 0xbd, 0x5f, 0x3a, 0x41, 0xbc, 0x86, 0x62, 0x38, 0x52, 0x43, 0xef, 0x80, + 0xa3, 0x22, 0xad, 0xe2, 0x60, 0x57, 0xbd, 0xa1, 0xdb, 0x74, 0x42, 0x76, 0x34, 0xb6, 0x38, 0x7a, + 0xfa, 0x33, 0xc5, 0xa9, 0x1a, 0xd8, 0x7d, 0x56, 0xb7, 0xc9, 0x74, 0xeb, 0x68, 0x2e, 0x5a, 0x86, + 0x59, 0xc3, 0x54, 0x1d, 0x57, 0x33, 0x5a, 0x9a, 0xdd, 0x52, 0xfd, 0x84, 0x96, 0xaa, 0x35, 0x9b, + 0xd8, 0x71, 0x4c, 0xb6, 0x10, 0x7a, 0x28, 0x77, 0x1a, 0x66, 0x83, 0x13, 0xfb, 0x2b, 0x44, 0x85, + 0x93, 0xf6, 0xa8, 0x6f, 0x62, 0x98, 0xfa, 0x1e, 0x87, 0x5c, 0x47, 0xb3, 0x54, 0x6c, 0xb8, 0xf6, + 0x3e, 0xf5, 0xcf, 0xb3, 0x4a, 0xb6, 0xa3, 0x59, 0x75, 0xf2, 0xfc, 0xb6, 0x84, 0x49, 0x57, 0x92, + 0xd9, 0xa4, 0x94, 0xba, 0x92, 0xcc, 0xa6, 0xa4, 0xf4, 0x95, 0x64, 0x36, 0x2d, 0x65, 0xae, 0x24, + 0xb3, 0x59, 0x29, 0x77, 0x25, 0x99, 0xcd, 0x49, 0x20, 0xff, 0x74, 0x12, 0xc6, 0x83, 0x1e, 0x3c, + 0x09, 0x88, 0x9a, 0x74, 0x0d, 0x8b, 0x51, 0x2b, 0x77, 0xcf, 0x81, 0xfe, 0xfe, 0x7c, 0x8d, 0x2c, + 0x6e, 0x0b, 0x69, 0xe6, 0x2e, 0x2b, 0x8c, 0x93, 0x38, 0x16, 0x44, 0xfd, 0x30, 0x73, 0x4f, 0xb2, + 0x0a, 0x7f, 0x42, 0x97, 0x20, 0xfd, 0xa2, 0x43, 0xb1, 0xd3, 0x14, 0xfb, 0xde, 0x83, 0xb1, 0xaf, + 0x34, 0x28, 0x78, 0xee, 0x4a, 0x43, 0x5d, 0x5d, 0x53, 0x56, 0x2a, 0xcb, 0x0a, 0x67, 0x47, 0xc7, + 0x20, 0xd9, 0xd6, 0x5e, 0xda, 0x0f, 0x2f, 0x83, 0xb4, 0x08, 0xcd, 0x43, 0xa9, 0x6b, 0x5c, 0xc7, + 0xb6, 0xbe, 0xad, 0xe3, 0x96, 0x4a, 0xa9, 0x4a, 0x41, 0xaa, 0xa2, 0x5f, 0xbb, 0x4c, 0xe8, 0x47, + 0x1c, 0xc6, 0x63, 0x90, 0xbc, 0x81, 0xb5, 0x6b, 0xe1, 0xc5, 0x8a, 0x16, 0xbd, 0x85, 0xd3, 0xe9, + 0x0c, 0xa4, 0xa8, 0x7c, 0x11, 0x00, 0x97, 0xb0, 0x34, 0x86, 0xb2, 0x90, 0xac, 0xad, 0x29, 0x64, + 0x4a, 0x49, 0x30, 0xce, 0x4a, 0xd5, 0xf5, 0xa5, 0x7a, 0xad, 0x2e, 0xc5, 0xe5, 0x73, 0x90, 0x66, + 0x42, 0x23, 0xd3, 0xcd, 0x13, 0x9b, 0x34, 0xc6, 0x1f, 0x39, 0x46, 0x4c, 0xd4, 0x6e, 0xae, 0x54, + 0xeb, 0x8a, 0x14, 0xef, 0x53, 0x16, 0xd9, 0x81, 0xf1, 0xa0, 0x27, 0xff, 0xf6, 0x84, 0xf3, 0x5f, + 0x8a, 0x41, 0x3e, 0xe0, 0x99, 0x13, 0x97, 0x4a, 0x6b, 0xb7, 0xcd, 0x1b, 0xaa, 0xd6, 0xd6, 0x35, + 0x87, 0xab, 0x12, 0xd0, 0xa2, 0x0a, 0x29, 0x19, 0x75, 0xe8, 0xde, 0xa6, 0x49, 0x96, 0x92, 0xd2, + 0xf2, 0xc7, 0x63, 0x20, 0xf5, 0xba, 0xc6, 0x3d, 0xcd, 0x8c, 0xfd, 0x45, 0x36, 0x53, 0xfe, 0x58, + 0x0c, 0x8a, 0x61, 0x7f, 0xb8, 0xa7, 0x79, 0x77, 0xff, 0x85, 0x36, 0xef, 0xf7, 0xe3, 0x50, 0x08, + 0x79, 0xc1, 0xa3, 0xb6, 0xee, 0x7d, 0x30, 0xa1, 0xb7, 0x70, 0xc7, 0x32, 0x5d, 0x6c, 0x34, 0xf7, + 0xd5, 0x36, 0xbe, 0x8e, 0xdb, 0xd3, 0x32, 0x35, 0x32, 0x67, 0x0e, 0xf6, 0xb3, 0xe7, 0x97, 0x7c, + 0xbe, 0x65, 0xc2, 0xb6, 0x30, 0xb9, 0xb4, 0x58, 0x5f, 0x59, 0x5f, 0xdb, 0xa8, 0xaf, 0xd6, 0x9e, + 0x57, 0x37, 0x57, 0x9f, 0x59, 0x5d, 0x7b, 0x76, 0x55, 0x91, 0xf4, 0x1e, 0xb2, 0xb7, 0x70, 0xda, + 0xaf, 0x83, 0xd4, 0xdb, 0x28, 0x74, 0x14, 0x06, 0x35, 0x4b, 0x1a, 0x43, 0x93, 0x50, 0x5a, 0x5d, + 0x53, 0x1b, 0x4b, 0x8b, 0x75, 0xb5, 0x7e, 0xf1, 0x62, 0xbd, 0xb6, 0xd1, 0x60, 0x99, 0x13, 0x8f, + 0x7a, 0x23, 0x34, 0xc1, 0xe5, 0x8f, 0x26, 0x60, 0x72, 0x40, 0x4b, 0x50, 0x85, 0xc7, 0x3c, 0x2c, + 0x0c, 0x7b, 0x68, 0x94, 0xd6, 0xcf, 0x13, 0xaf, 0x63, 0x5d, 0xb3, 0x5d, 0x1e, 0x22, 0x9d, 0x02, + 0x22, 0x25, 0xc3, 0x25, 0xc6, 0xd5, 0xe6, 0x19, 0x29, 0x16, 0x08, 0x95, 0xfc, 0x72, 0x96, 0x94, + 0x7a, 0x10, 0x90, 0x65, 0x3a, 0xba, 0xab, 0x5f, 0xc7, 0xaa, 0x6e, 0x88, 0xf4, 0x15, 0x09, 0x8c, + 0x92, 0x8a, 0x24, 0x6a, 0x96, 0x0c, 0xd7, 0xa3, 0x36, 0xf0, 0x8e, 0xd6, 0x43, 0x4d, 0x8c, 0x7f, + 0x42, 0x91, 0x44, 0x8d, 0x47, 0x7d, 0x37, 0x8c, 0xb7, 0xcc, 0x2e, 0xf1, 0x16, 0x19, 0x1d, 0x59, + 0x6b, 0x62, 0x4a, 0x9e, 0x95, 0x79, 0x24, 0x3c, 0x0e, 0xf0, 0xf3, 0x66, 0xe3, 0x4a, 0x9e, 0x95, + 0x31, 0x92, 0x13, 0x50, 0xd2, 0x76, 0x76, 0x6c, 0x02, 0x2e, 0x80, 0x58, 0x64, 0x53, 0xf4, 0x8a, + 0x29, 0x61, 0xf9, 0x0a, 0x64, 0x85, 0x1c, 0xc8, 0x62, 0x4f, 0x24, 0xa1, 0x5a, 0x2c, 0x5c, 0x8f, + 0x9f, 0xcc, 0x29, 0x59, 0x43, 0x54, 0xde, 0x0d, 0xe3, 0xba, 0xa3, 0xfa, 0xdb, 0x00, 0xf1, 0xb9, + 0xf8, 0xc9, 0xac, 0x92, 0xd7, 0x1d, 0x2f, 0x85, 0x2a, 0x7f, 0x3a, 0x0e, 0xc5, 0xf0, 0x36, 0x06, + 0x5a, 0x84, 0x6c, 0xdb, 0x6c, 0x6a, 0x54, 0xb5, 0xd8, 0x1e, 0xda, 0xc9, 0x88, 0x9d, 0x8f, 0xf9, + 0x65, 0x4e, 0xaf, 0x78, 0x9c, 0xe5, 0x7f, 0x13, 0x83, 0xac, 0x28, 0x46, 0x47, 0x20, 0x69, 0x69, + 0xee, 0x2e, 0x85, 0x4b, 0x55, 0xe3, 0x52, 0x4c, 0xa1, 0xcf, 0xa4, 0xdc, 0xb1, 0x34, 0x83, 0xaa, + 0x00, 0x2f, 0x27, 0xcf, 0x64, 0x5c, 0xdb, 0x58, 0x6b, 0xd1, 0xb0, 0xc9, 0xec, 0x74, 0xb0, 0xe1, + 0x3a, 0x62, 0x5c, 0x79, 0x79, 0x8d, 0x17, 0xa3, 0x07, 0x60, 0xc2, 0xb5, 0x35, 0xbd, 0x1d, 0xa2, + 0x4d, 0x52, 0x5a, 0x49, 0x54, 0x78, 0xc4, 0x0b, 0x70, 0x4c, 0xe0, 0xb6, 0xb0, 0xab, 0x35, 0x77, + 0x71, 0xcb, 0x67, 0x4a, 0xd3, 0xf4, 0xc8, 0x51, 0x4e, 0xb0, 0xc8, 0xeb, 0x05, 0xaf, 0xfc, 0xd5, + 0x18, 0x4c, 0x88, 0x40, 0xaf, 0xe5, 0x09, 0x6b, 0x05, 0x40, 0x33, 0x0c, 0xd3, 0x0d, 0x8a, 0xab, + 0x5f, 0x95, 0xfb, 0xf8, 0xe6, 0x2b, 0x1e, 0x93, 0x12, 0x00, 0x28, 0x77, 0x00, 0xfc, 0x9a, 0xa1, + 0x62, 0x9b, 0x85, 0x3c, 0xdf, 0xa3, 0xa2, 0x1b, 0x9d, 0x2c, 0x35, 0x00, 0xac, 0x88, 0x44, 0x84, + 0x68, 0x0a, 0x52, 0x5b, 0x78, 0x47, 0x37, 0x78, 0xe6, 0x99, 0x3d, 0x88, 0x04, 0x4e, 0xd2, 0x4b, + 0xe0, 0x54, 0xff, 0x2a, 0x4c, 0x36, 0xcd, 0x4e, 0x6f, 0x73, 0xab, 0x52, 0x4f, 0x7a, 0xc2, 0xb9, + 0x1c, 0x7b, 0xe1, 0x21, 0x4e, 0xb4, 0x63, 0xb6, 0x35, 0x63, 0x67, 0xde, 0xb4, 0x77, 0xfc, 0x8d, + 0x5a, 0xe2, 0x21, 0x39, 0x81, 0xed, 0x5a, 0x6b, 0xeb, 0x7f, 0xc5, 0x62, 0xbf, 0x10, 0x4f, 0x5c, + 0x5a, 0xaf, 0xfe, 0x52, 0xbc, 0x7c, 0x89, 0x31, 0xae, 0x0b, 0x61, 0x28, 0x78, 0xbb, 0x8d, 0x9b, + 0xa4, 0x83, 0xf0, 0x87, 0x0f, 0xc0, 0xd4, 0x8e, 0xb9, 0x63, 0x52, 0xa4, 0x33, 0xe4, 0x17, 0xdf, + 0xe9, 0xcd, 0x79, 0xa5, 0xe5, 0xc8, 0x6d, 0xe1, 0x85, 0x55, 0x98, 0xe4, 0xc4, 0x2a, 0xdd, 0x6a, + 0x62, 0x81, 0x10, 0x3a, 0x30, 0x0b, 0x37, 0xfd, 0xcb, 0x5f, 0xa7, 0xcb, 0xb7, 0x32, 0xc1, 0x59, + 0x49, 0x1d, 0x8b, 0x95, 0x16, 0x14, 0xb8, 0x23, 0x84, 0xc7, 0x26, 0x29, 0xb6, 0x23, 0x10, 0xff, + 0x39, 0x47, 0x9c, 0x0c, 0x20, 0x36, 0x38, 0xeb, 0x42, 0x0d, 0x0a, 0x87, 0xc1, 0xfa, 0x17, 0x1c, + 0x6b, 0x1c, 0x07, 0x41, 0x2e, 0x41, 0x89, 0x82, 0x34, 0xbb, 0x8e, 0x6b, 0x76, 0xa8, 0x05, 0x3c, + 0x18, 0xe6, 0x5f, 0x7e, 0x9d, 0xcd, 0x9a, 0x22, 0x61, 0xab, 0x79, 0x5c, 0x0b, 0x0b, 0x40, 0x77, + 0xd7, 0x5a, 0xb8, 0xd9, 0x8e, 0x40, 0xf8, 0x32, 0x6f, 0x88, 0x47, 0xbf, 0x70, 0x15, 0xa6, 0xc8, + 0x6f, 0x6a, 0xa0, 0x82, 0x2d, 0x89, 0x4e, 0xd9, 0x4d, 0x7f, 0xf5, 0xfd, 0x6c, 0x62, 0x4e, 0x7a, + 0x00, 0x81, 0x36, 0x05, 0x46, 0x71, 0x07, 0xbb, 0x2e, 0xb6, 0x1d, 0x55, 0x6b, 0x0f, 0x6a, 0x5e, + 0x20, 0xe7, 0x31, 0xfd, 0x73, 0xdf, 0x0e, 0x8f, 0xe2, 0x25, 0xc6, 0x59, 0x69, 0xb7, 0x17, 0x36, + 0xe1, 0xe8, 0x00, 0xad, 0x18, 0x01, 0xf3, 0xa3, 0x1c, 0x73, 0xaa, 0x4f, 0x33, 0x08, 0xec, 0x3a, + 0x88, 0x72, 0x6f, 0x2c, 0x47, 0xc0, 0xfc, 0x79, 0x8e, 0x89, 0x38, 0xaf, 0x18, 0x52, 0x82, 0x78, + 0x05, 0x26, 0xae, 0x63, 0x7b, 0xcb, 0x74, 0x78, 0x9e, 0x69, 0x04, 0xb8, 0x8f, 0x71, 0xb8, 0x12, + 0x67, 0xa4, 0x89, 0x27, 0x82, 0xf5, 0x24, 0x64, 0xb7, 0xb5, 0x26, 0x1e, 0x01, 0xe2, 0x16, 0x87, + 0xc8, 0x10, 0x7a, 0xc2, 0x5a, 0x81, 0xf1, 0x1d, 0x93, 0xaf, 0x51, 0xd1, 0xec, 0x1f, 0xe7, 0xec, + 0x79, 0xc1, 0xc3, 0x21, 0x2c, 0xd3, 0xea, 0xb6, 0xc9, 0x02, 0x16, 0x0d, 0xf1, 0xb7, 0x05, 0x84, + 0xe0, 0xe1, 0x10, 0x87, 0x10, 0xeb, 0x2b, 0x02, 0xc2, 0x09, 0xc8, 0xf3, 0x69, 0xc8, 0x9b, 0x46, + 0x7b, 0xdf, 0x34, 0x46, 0x69, 0xc4, 0x27, 0x38, 0x02, 0x70, 0x16, 0x02, 0x70, 0x01, 0x72, 0xa3, + 0x0e, 0xc4, 0x2f, 0x7e, 0x5b, 0x4c, 0x0f, 0x31, 0x02, 0x97, 0xa0, 0x24, 0x0c, 0x94, 0x6e, 0x1a, + 0x23, 0x40, 0x7c, 0x8a, 0x43, 0x14, 0x03, 0x6c, 0xbc, 0x1b, 0x2e, 0x76, 0xdc, 0x1d, 0x3c, 0x0a, + 0xc8, 0xa7, 0x45, 0x37, 0x38, 0x0b, 0x17, 0xe5, 0x16, 0x36, 0x9a, 0xbb, 0xa3, 0x21, 0xbc, 0x2a, + 0x44, 0x29, 0x78, 0x08, 0x44, 0x0d, 0x0a, 0x1d, 0xcd, 0x76, 0x76, 0xb5, 0xf6, 0x48, 0xc3, 0xf1, + 0x19, 0x8e, 0x31, 0xee, 0x31, 0x71, 0x89, 0x74, 0x8d, 0xc3, 0xc0, 0xfc, 0x92, 0x90, 0x48, 0x80, + 0x8d, 0x4f, 0x3d, 0xc7, 0xa5, 0x49, 0xb9, 0xc3, 0xa0, 0xfd, 0x5d, 0x31, 0xf5, 0x18, 0xef, 0x4a, + 0x10, 0xf1, 0x02, 0xe4, 0x1c, 0xfd, 0xa5, 0x91, 0x60, 0xfe, 0x9e, 0x18, 0x69, 0xca, 0x40, 0x98, + 0x9f, 0x87, 0x63, 0x03, 0x97, 0x89, 0x11, 0xc0, 0xfe, 0x3e, 0x07, 0x3b, 0x32, 0x60, 0xa9, 0xe0, + 0x26, 0xe1, 0xb0, 0x90, 0xff, 0x40, 0x98, 0x04, 0xdc, 0x83, 0xb5, 0x4e, 0xa2, 0x06, 0x47, 0xdb, + 0x3e, 0x9c, 0xd4, 0xfe, 0xa1, 0x90, 0x1a, 0xe3, 0x0d, 0x49, 0x6d, 0x03, 0x8e, 0x70, 0xc4, 0xc3, + 0x8d, 0xeb, 0x67, 0x85, 0x61, 0x65, 0xdc, 0x9b, 0xe1, 0xd1, 0xfd, 0x41, 0x28, 0x7b, 0xe2, 0x14, + 0xee, 0xa9, 0xa3, 0x76, 0x34, 0x6b, 0x04, 0xe4, 0x5f, 0xe6, 0xc8, 0xc2, 0xe2, 0x7b, 0xfe, 0xad, + 0xb3, 0xa2, 0x59, 0x04, 0xfc, 0x39, 0x98, 0x16, 0xe0, 0x5d, 0xc3, 0xc6, 0x4d, 0x73, 0xc7, 0xd0, + 0x5f, 0xc2, 0xad, 0x11, 0xa0, 0x7f, 0xa5, 0x67, 0xa8, 0x36, 0x03, 0xec, 0x04, 0x79, 0x09, 0x24, + 0xcf, 0x57, 0x51, 0xf5, 0x8e, 0x65, 0xda, 0x6e, 0x04, 0xe2, 0xe7, 0xc4, 0x48, 0x79, 0x7c, 0x4b, + 0x94, 0x6d, 0xa1, 0x0e, 0x6c, 0xa7, 0x7a, 0x54, 0x95, 0xfc, 0x3c, 0x07, 0x2a, 0xf8, 0x5c, 0xdc, + 0x70, 0x34, 0xcd, 0x8e, 0xa5, 0xd9, 0xa3, 0xd8, 0xbf, 0x7f, 0x24, 0x0c, 0x07, 0x67, 0xe1, 0x86, + 0x83, 0x78, 0x74, 0x64, 0xb5, 0x1f, 0x01, 0xe1, 0x0b, 0xc2, 0x70, 0x08, 0x1e, 0x0e, 0x21, 0x1c, + 0x86, 0x11, 0x20, 0x7e, 0x55, 0x40, 0x08, 0x1e, 0x02, 0xf1, 0x2e, 0x7f, 0xa1, 0xb5, 0xf1, 0x8e, + 0xee, 0xb8, 0x36, 0x73, 0x8a, 0x0f, 0x86, 0xfa, 0xe2, 0xb7, 0xc3, 0x4e, 0x98, 0x12, 0x60, 0x25, + 0x96, 0x88, 0xa7, 0x69, 0x69, 0xcc, 0x14, 0xdd, 0xb0, 0x5f, 0x13, 0x96, 0x28, 0xc0, 0x46, 0xda, + 0x16, 0xf0, 0x10, 0x89, 0xd8, 0x9b, 0x24, 0x52, 0x18, 0x01, 0xee, 0x1f, 0xf7, 0x34, 0xae, 0x21, + 0x78, 0x09, 0x66, 0xc0, 0xff, 0xe9, 0x1a, 0xd7, 0xf0, 0xfe, 0x48, 0xda, 0xf9, 0xeb, 0x3d, 0xfe, + 0xcf, 0x26, 0xe3, 0x64, 0x36, 0xa4, 0xd4, 0xe3, 0x4f, 0xa1, 0xa8, 0x73, 0x49, 0xd3, 0x3f, 0xfc, + 0x06, 0xef, 0x6f, 0xd8, 0x9d, 0x5a, 0x58, 0x26, 0x4a, 0x1e, 0x76, 0x7a, 0xa2, 0xc1, 0xde, 0xff, + 0x86, 0xa7, 0xe7, 0x21, 0x9f, 0x67, 0xe1, 0x22, 0x14, 0x42, 0x0e, 0x4f, 0x34, 0xd4, 0x8f, 0x72, + 0xa8, 0xf1, 0xa0, 0xbf, 0xb3, 0x70, 0x0e, 0x92, 0xc4, 0x79, 0x89, 0x66, 0xff, 0x31, 0xce, 0x4e, + 0xc9, 0x17, 0x9e, 0x82, 0xac, 0x70, 0x5a, 0xa2, 0x59, 0x7f, 0x9c, 0xb3, 0x7a, 0x2c, 0x84, 0x5d, + 0x38, 0x2c, 0xd1, 0xec, 0x7f, 0x4d, 0xb0, 0x0b, 0x16, 0xc2, 0x3e, 0xba, 0x08, 0xbf, 0xf4, 0xd7, + 0x93, 0x7c, 0xd1, 0x11, 0xb2, 0xbb, 0x00, 0x19, 0xee, 0xa9, 0x44, 0x73, 0xff, 0x04, 0x7f, 0xb9, + 0xe0, 0x58, 0x78, 0x1c, 0x52, 0x23, 0x0a, 0xfc, 0x6f, 0x70, 0x56, 0x46, 0xbf, 0x50, 0x83, 0x7c, + 0xc0, 0x3b, 0x89, 0x66, 0xff, 0x20, 0x67, 0x0f, 0x72, 0x91, 0xa6, 0x73, 0xef, 0x24, 0x1a, 0xe0, + 0x6f, 0x8a, 0xa6, 0x73, 0x0e, 0x22, 0x36, 0xe1, 0x98, 0x44, 0x73, 0x7f, 0x48, 0x48, 0x5d, 0xb0, + 0x2c, 0x3c, 0x0d, 0x39, 0x6f, 0xb1, 0x89, 0xe6, 0xff, 0x29, 0xce, 0xef, 0xf3, 0x10, 0x09, 0x04, + 0x16, 0xbb, 0x68, 0x88, 0x9f, 0x16, 0x12, 0x08, 0x70, 0x91, 0x69, 0xd4, 0xeb, 0xc0, 0x44, 0x23, + 0x7d, 0x58, 0x4c, 0xa3, 0x1e, 0xff, 0x85, 0x8c, 0x26, 0xb5, 0xf9, 0xd1, 0x10, 0x7f, 0x4b, 0x8c, + 0x26, 0xa5, 0x27, 0xcd, 0xe8, 0xf5, 0x08, 0xa2, 0x31, 0x7e, 0x56, 0x34, 0xa3, 0xc7, 0x21, 0x58, + 0x58, 0x07, 0xd4, 0xef, 0x0d, 0x44, 0xe3, 0x7d, 0x84, 0xe3, 0x4d, 0xf4, 0x39, 0x03, 0x0b, 0xcf, + 0xc2, 0x91, 0xc1, 0x9e, 0x40, 0x34, 0xea, 0xcf, 0xbd, 0xd1, 0x13, 0xbb, 0x05, 0x1d, 0x81, 0x85, + 0x0d, 0x7f, 0x49, 0x09, 0x7a, 0x01, 0xd1, 0xb0, 0x1f, 0x7d, 0x23, 0x6c, 0xb8, 0x83, 0x4e, 0xc0, + 0x42, 0x05, 0xc0, 0x5f, 0x80, 0xa3, 0xb1, 0x3e, 0xc6, 0xb1, 0x02, 0x4c, 0x64, 0x6a, 0xf0, 0xf5, + 0x37, 0x9a, 0xff, 0x96, 0x98, 0x1a, 0x9c, 0x83, 0x4c, 0x0d, 0xb1, 0xf4, 0x46, 0x73, 0x7f, 0x5c, + 0x4c, 0x0d, 0xc1, 0x42, 0x34, 0x3b, 0xb0, 0xba, 0x45, 0x23, 0x7c, 0x42, 0x68, 0x76, 0x80, 0x6b, + 0x61, 0x15, 0x26, 0xfa, 0x16, 0xc4, 0x68, 0xa8, 0x5f, 0xe0, 0x50, 0x52, 0xef, 0x7a, 0x18, 0x5c, + 0xbc, 0xf8, 0x62, 0x18, 0x8d, 0xf6, 0xc9, 0x9e, 0xc5, 0x8b, 0xaf, 0x85, 0x0b, 0x17, 0x20, 0x6b, + 0x74, 0xdb, 0x6d, 0x32, 0x79, 0xd0, 0xc1, 0x67, 0x09, 0xa7, 0xff, 0xdb, 0x77, 0xb9, 0x74, 0x04, + 0xc3, 0xc2, 0x39, 0x48, 0xe1, 0xce, 0x16, 0x6e, 0x45, 0x71, 0x7e, 0xeb, 0xbb, 0xc2, 0x60, 0x12, + 0xea, 0x85, 0xa7, 0x01, 0x58, 0x6a, 0x84, 0x6e, 0x1e, 0x46, 0xf0, 0xfe, 0xc1, 0x77, 0xf9, 0xe1, + 0x1d, 0x9f, 0xc5, 0x07, 0x60, 0x47, 0x81, 0x0e, 0x06, 0xf8, 0x76, 0x18, 0x80, 0x8e, 0xc8, 0x93, + 0x90, 0x79, 0xd1, 0x31, 0x0d, 0x57, 0xdb, 0x89, 0xe2, 0xfe, 0x43, 0xce, 0x2d, 0xe8, 0x89, 0xc0, + 0x3a, 0xa6, 0x8d, 0x5d, 0x6d, 0xc7, 0x89, 0xe2, 0xfd, 0xef, 0x9c, 0xd7, 0x63, 0x20, 0xcc, 0x4d, + 0xcd, 0x71, 0x47, 0xe9, 0xf7, 0x1f, 0x09, 0x66, 0xc1, 0x40, 0x1a, 0x4d, 0x7e, 0x5f, 0xc3, 0xfb, + 0x51, 0xbc, 0x7f, 0x2c, 0x1a, 0xcd, 0xe9, 0x17, 0x9e, 0x82, 0x1c, 0xf9, 0xc9, 0x4e, 0xe4, 0x45, + 0x30, 0xff, 0x09, 0x67, 0xf6, 0x39, 0xc8, 0x9b, 0x1d, 0xb7, 0xe5, 0xea, 0xd1, 0xc2, 0xfe, 0x0e, + 0x1f, 0x69, 0x41, 0xbf, 0x50, 0x81, 0xbc, 0xe3, 0xb6, 0x5a, 0x5d, 0xee, 0x9f, 0x46, 0xb0, 0xff, + 0xe9, 0x77, 0xbd, 0x94, 0x85, 0xc7, 0x43, 0x46, 0xfb, 0xc6, 0x35, 0xd7, 0x32, 0xe9, 0x86, 0x47, + 0x14, 0xc2, 0x1b, 0x1c, 0x21, 0xc0, 0xb2, 0x50, 0x83, 0x71, 0xd2, 0x17, 0x1b, 0x5b, 0x98, 0xee, + 0x4e, 0x45, 0x40, 0xfc, 0x19, 0x17, 0x40, 0x88, 0xa9, 0xfa, 0xde, 0x2f, 0xbf, 0x3e, 0x13, 0xfb, + 0xca, 0xeb, 0x33, 0xb1, 0xdf, 0x7f, 0x7d, 0x26, 0xf6, 0xa1, 0xaf, 0xcd, 0x8c, 0x7d, 0xe5, 0x6b, + 0x33, 0x63, 0xbf, 0xf7, 0xb5, 0x99, 0xb1, 0xc1, 0x59, 0x62, 0xb8, 0x64, 0x5e, 0x32, 0x59, 0x7e, + 0xf8, 0x85, 0xfb, 0x76, 0x74, 0x77, 0xb7, 0xbb, 0x35, 0xdf, 0x34, 0x3b, 0x67, 0x9a, 0xa6, 0xd3, + 0x31, 0x9d, 0x33, 0xe1, 0xbc, 0x2e, 0xfd, 0x05, 0xff, 0x27, 0x46, 0x62, 0xe6, 0x70, 0x3a, 0x57, + 0x33, 0xf6, 0x87, 0x7d, 0xde, 0x73, 0x1e, 0x12, 0x15, 0x63, 0x1f, 0x1d, 0x63, 0x06, 0x4e, 0xed, + 0xda, 0x6d, 0x7e, 0x2c, 0x2c, 0x43, 0x9e, 0x37, 0xed, 0x36, 0x9a, 0xf2, 0xcf, 0x6e, 0xc6, 0x4e, + 0x8e, 0xf3, 0x03, 0x99, 0xd5, 0x0f, 0xc6, 0x0e, 0xd7, 0x93, 0x6c, 0xc5, 0xd8, 0xa7, 0x1d, 0x59, + 0x8f, 0xbd, 0xf0, 0x60, 0x64, 0x9e, 0xfb, 0x9a, 0x61, 0xde, 0x30, 0x48, 0xb3, 0xad, 0x2d, 0x91, + 0xe3, 0x9e, 0xe9, 0xcd, 0x71, 0x3f, 0x8b, 0xdb, 0xed, 0x67, 0x08, 0xdd, 0x06, 0x61, 0xd9, 0x4a, + 0xb3, 0x13, 0xc8, 0xf0, 0xe1, 0x38, 0xcc, 0xf4, 0xa5, 0xb3, 0xb9, 0x12, 0x0c, 0x13, 0xc2, 0x02, + 0x64, 0x17, 0x85, 0x6e, 0x4d, 0x43, 0xc6, 0xc1, 0x4d, 0xd3, 0x68, 0x39, 0x54, 0x10, 0x09, 0x45, + 0x3c, 0x12, 0x41, 0x18, 0x9a, 0x61, 0x3a, 0xfc, 0x60, 0x25, 0x7b, 0xa8, 0xfe, 0xfc, 0x21, 0x05, + 0x51, 0x10, 0x6f, 0x12, 0xd2, 0x78, 0x64, 0x44, 0x69, 0x88, 0x4e, 0x84, 0x32, 0xff, 0xa3, 0x4a, + 0xe5, 0x67, 0xe3, 0x30, 0xdb, 0x2b, 0x15, 0x32, 0xb3, 0x1c, 0x57, 0xeb, 0x58, 0xc3, 0xc4, 0x72, + 0x01, 0x72, 0x1b, 0x82, 0xe6, 0xd0, 0x72, 0xb9, 0x75, 0x48, 0xb9, 0x14, 0xbd, 0x57, 0x09, 0xc1, + 0x9c, 0x1d, 0x51, 0x30, 0x5e, 0x3f, 0x6e, 0x4b, 0x32, 0x7f, 0x9e, 0x86, 0x63, 0x6c, 0x3a, 0xa9, + 0x6c, 0x2a, 0xb1, 0x07, 0x2e, 0x93, 0xf1, 0x60, 0x55, 0xf4, 0x3e, 0x89, 0xfc, 0x0c, 0x4c, 0x2e, + 0x11, 0x6b, 0x41, 0xa2, 0x20, 0x7f, 0x87, 0x67, 0xe0, 0xd9, 0xd3, 0xb9, 0x90, 0xc3, 0xcf, 0x77, + 0x98, 0x82, 0x45, 0xf2, 0x0f, 0xc7, 0x40, 0x6a, 0x34, 0xb5, 0xb6, 0x66, 0x7f, 0xaf, 0x50, 0xe8, + 0x71, 0x00, 0xfa, 0xcd, 0x92, 0xff, 0x91, 0x51, 0xf1, 0xec, 0xf4, 0x7c, 0xb0, 0x73, 0xf3, 0xec, + 0x4d, 0xf4, 0x0b, 0x86, 0x1c, 0xa5, 0x25, 0x3f, 0x4f, 0x3f, 0x07, 0xe0, 0x57, 0xa0, 0xe3, 0x70, + 0xb4, 0x51, 0xab, 0x2c, 0x57, 0x14, 0x95, 0x1d, 0x86, 0x5f, 0x6d, 0xac, 0xd7, 0x6b, 0x4b, 0x17, + 0x97, 0xea, 0x8b, 0xd2, 0x18, 0x3a, 0x02, 0x28, 0x58, 0xe9, 0x9d, 0x4b, 0xb9, 0x03, 0x26, 0x82, + 0xe5, 0xec, 0x44, 0x7d, 0x9c, 0x78, 0x8a, 0x7a, 0xc7, 0x6a, 0x63, 0xba, 0xf5, 0xa7, 0xea, 0x42, + 0x6a, 0xd1, 0x4e, 0xc8, 0x6f, 0xff, 0x3b, 0x76, 0xca, 0x7a, 0xd2, 0x67, 0xf7, 0x64, 0xbe, 0xb0, + 0x0c, 0x13, 0x5a, 0xb3, 0x89, 0xad, 0x10, 0x64, 0x84, 0xa9, 0x26, 0x80, 0x74, 0x33, 0x93, 0x73, + 0xfa, 0x68, 0x8f, 0x43, 0xda, 0xa1, 0xbd, 0x8f, 0x82, 0xf8, 0x1d, 0x0e, 0xc1, 0xc9, 0x17, 0x0c, + 0x98, 0x20, 0x9e, 0x9f, 0x66, 0xe3, 0x40, 0x33, 0x0e, 0xce, 0x33, 0xfc, 0xc6, 0xe7, 0x1e, 0xa6, + 0x5b, 0x9b, 0x77, 0x87, 0x87, 0x65, 0x80, 0x3a, 0x29, 0x12, 0xc7, 0xf6, 0x1b, 0x8a, 0xa1, 0x28, + 0xde, 0xc7, 0x1b, 0x7c, 0xf0, 0xcb, 0x7e, 0x93, 0xbf, 0x6c, 0x66, 0x90, 0x0e, 0x04, 0xde, 0x54, + 0xe0, 0xa8, 0xac, 0xa2, 0x5a, 0x1f, 0x36, 0xa7, 0x5f, 0x78, 0xa0, 0x7f, 0x75, 0x62, 0xff, 0x3d, + 0x44, 0x91, 0x2f, 0x04, 0x5f, 0xe3, 0xcd, 0xbd, 0x8f, 0x24, 0x61, 0x42, 0xeb, 0xe8, 0x86, 0x79, + 0x86, 0xfe, 0xcb, 0xe7, 0x5c, 0x8a, 0x3e, 0x8c, 0xb0, 0x29, 0x79, 0x9e, 0x4d, 0x85, 0x68, 0x8d, + 0xf9, 0x93, 0x9f, 0xfc, 0x54, 0xca, 0x9f, 0x2e, 0x0b, 0x2b, 0x20, 0x89, 0x03, 0x87, 0xd8, 0x68, + 0x9a, 0xad, 0x91, 0xb2, 0x14, 0xdf, 0x11, 0x18, 0x22, 0xbf, 0x55, 0xe7, 0xac, 0x0b, 0xef, 0x80, + 0xac, 0x07, 0x13, 0xe5, 0x99, 0x08, 0x10, 0x8f, 0x83, 0xf8, 0x25, 0x6c, 0x66, 0x8e, 0xe2, 0x85, + 0xbe, 0x21, 0xf8, 0xd9, 0x0c, 0x5d, 0x25, 0xbd, 0xb9, 0x04, 0xc5, 0x96, 0x69, 0xb8, 0xaa, 0xd9, + 0xd1, 0x5d, 0xdc, 0xb1, 0xdc, 0x48, 0xbf, 0xee, 0xcf, 0x18, 0x48, 0x56, 0x29, 0x10, 0xbe, 0x35, + 0xc1, 0x46, 0xfb, 0x41, 0x3c, 0xeb, 0x56, 0xb4, 0x73, 0xf3, 0x3f, 0x04, 0x84, 0xc7, 0x71, 0x5b, + 0xaa, 0xe1, 0xb4, 0xae, 0x71, 0x4b, 0xee, 0xee, 0x31, 0x15, 0xf0, 0x54, 0xe3, 0x8f, 0x12, 0x30, + 0xc3, 0x89, 0xb7, 0x34, 0x07, 0x9f, 0xb9, 0xfe, 0xc8, 0x16, 0x76, 0xb5, 0x47, 0xce, 0x34, 0x4d, + 0x5d, 0x2c, 0xe3, 0x93, 0xdc, 0x52, 0x93, 0xfa, 0x79, 0x5e, 0x5f, 0x1e, 0xb8, 0xd7, 0x5d, 0x1e, + 0x6e, 0xe1, 0xcb, 0xfd, 0x0a, 0x28, 0xbf, 0x00, 0xc9, 0x9a, 0xa9, 0x1b, 0x64, 0x61, 0x6b, 0x61, + 0xc3, 0xec, 0x70, 0x5b, 0xcb, 0x1e, 0xd0, 0x79, 0x48, 0x6b, 0x1d, 0xb3, 0x6b, 0xb8, 0xcc, 0xce, + 0x56, 0x67, 0xbe, 0xfc, 0xda, 0xec, 0xd8, 0x7f, 0x78, 0x6d, 0x36, 0xb1, 0x64, 0xb8, 0xbf, 0xfb, + 0xf9, 0x87, 0x80, 0xa3, 0x2f, 0x19, 0xee, 0xab, 0xdf, 0xf8, 0xec, 0xe9, 0x98, 0xc2, 0xa9, 0x17, + 0x92, 0xdf, 0x7c, 0x65, 0x36, 0x26, 0x3f, 0x07, 0x99, 0x45, 0xdc, 0x3c, 0x00, 0xfe, 0x91, 0x1e, + 0xf8, 0x63, 0x02, 0x7e, 0x11, 0x37, 0x03, 0xf0, 0x8b, 0xb8, 0xd9, 0x83, 0xfc, 0x38, 0x64, 0x97, + 0x0c, 0x97, 0x7d, 0xeb, 0xf0, 0x00, 0x24, 0x74, 0x83, 0x1d, 0x9f, 0x0d, 0x20, 0xf4, 0x35, 0x50, + 0x21, 0x54, 0x84, 0x71, 0x11, 0x37, 0x3d, 0xc6, 0x16, 0x6e, 0xf6, 0x32, 0xf6, 0xbf, 0x9a, 0x50, + 0x55, 0x17, 0x7f, 0xef, 0xbf, 0xcc, 0x8c, 0xbd, 0xfc, 0xfa, 0xcc, 0xd8, 0xd0, 0xa1, 0x97, 0xa3, + 0x87, 0xde, 0x1b, 0xf1, 0x4f, 0x25, 0xe1, 0x2e, 0xfa, 0x09, 0x9c, 0xdd, 0xd1, 0x0d, 0xf7, 0x4c, + 0xd3, 0xde, 0xb7, 0x5c, 0x93, 0xcc, 0x7e, 0x73, 0x9b, 0x0f, 0xf8, 0x84, 0x5f, 0x3d, 0xcf, 0xaa, + 0x07, 0x0f, 0xb7, 0xbc, 0x0d, 0xa9, 0x75, 0xc2, 0x47, 0x44, 0xec, 0x9a, 0xae, 0xd6, 0xe6, 0x2e, + 0x0b, 0x7b, 0x20, 0xa5, 0xec, 0xb3, 0xb9, 0x38, 0x2b, 0xd5, 0xc5, 0x17, 0x73, 0x6d, 0xac, 0x6d, + 0xb3, 0xaf, 0x0f, 0x12, 0xd4, 0xd7, 0xcd, 0x92, 0x02, 0xfa, 0xa1, 0xc1, 0x14, 0xa4, 0xb4, 0x2e, + 0x3b, 0xf6, 0x92, 0x20, 0x4e, 0x30, 0x7d, 0x90, 0x9f, 0x81, 0x0c, 0xdf, 0x7c, 0x47, 0x12, 0x24, + 0xae, 0xe1, 0x7d, 0xfa, 0x9e, 0x71, 0x85, 0xfc, 0x44, 0xf3, 0x90, 0xa2, 0x8d, 0xe7, 0x9f, 0x55, + 0x4d, 0xcf, 0xf7, 0xb5, 0x7e, 0x9e, 0x36, 0x52, 0x61, 0x64, 0xf2, 0x15, 0xc8, 0x2e, 0x9a, 0x44, + 0x0b, 0xc3, 0x68, 0x39, 0x86, 0x46, 0xdb, 0x6c, 0x75, 0xb9, 0x56, 0x28, 0xec, 0x01, 0x1d, 0x81, + 0x34, 0xfb, 0x1a, 0x85, 0x1f, 0xdd, 0xe1, 0x4f, 0x72, 0x0d, 0x32, 0x14, 0x7b, 0xcd, 0x22, 0xfe, + 0x82, 0x77, 0xf0, 0x37, 0xc7, 0xbf, 0x4d, 0xe4, 0xf0, 0x71, 0xbf, 0xb1, 0x08, 0x92, 0x2d, 0xcd, + 0xd5, 0x78, 0xbf, 0xe9, 0x6f, 0xf9, 0x9d, 0x90, 0xe5, 0x20, 0x0e, 0x3a, 0x0b, 0x09, 0xd3, 0x72, + 0xf8, 0xe1, 0x9b, 0xf2, 0xb0, 0xae, 0xac, 0x59, 0xd5, 0x24, 0xd1, 0x19, 0x85, 0x10, 0x57, 0x57, + 0x87, 0xaa, 0xc5, 0x63, 0x21, 0xb5, 0xe8, 0x60, 0x77, 0x6b, 0xdb, 0xf5, 0x7f, 0xb0, 0xe1, 0xec, + 0x53, 0x05, 0x4f, 0x51, 0x6e, 0xc5, 0x61, 0x26, 0x50, 0x7b, 0x1d, 0xdb, 0x8e, 0x6e, 0x1a, 0x4c, + 0x9b, 0xb8, 0xa6, 0xa0, 0x40, 0x03, 0x79, 0xfd, 0x10, 0x55, 0x79, 0x0a, 0x12, 0x15, 0xcb, 0x42, + 0x65, 0xc8, 0xd2, 0xe7, 0xa6, 0xc9, 0x74, 0x25, 0xa9, 0x78, 0xcf, 0xa4, 0xce, 0x31, 0xb7, 0xdd, + 0x1b, 0x9a, 0xed, 0x7d, 0xac, 0x29, 0x9e, 0xe5, 0x27, 0x21, 0x57, 0x33, 0x0d, 0x07, 0x1b, 0x4e, + 0x97, 0x3a, 0xc2, 0x5b, 0x6d, 0xb3, 0x79, 0x8d, 0x23, 0xb0, 0x07, 0x22, 0x6c, 0xcd, 0xb2, 0x28, + 0x67, 0x52, 0x21, 0x3f, 0xd9, 0x7c, 0xad, 0xae, 0x0d, 0x15, 0xcf, 0xb9, 0xc3, 0x89, 0x87, 0x77, + 0xd0, 0xf7, 0x68, 0x63, 0x70, 0x67, 0xff, 0x44, 0xba, 0x86, 0xf7, 0x9d, 0xc3, 0xce, 0xa3, 0xe7, + 0x20, 0xb7, 0x4e, 0x6f, 0x4b, 0x78, 0x06, 0xef, 0xa3, 0x32, 0x64, 0x70, 0xeb, 0xec, 0xb9, 0x73, + 0x8f, 0x3c, 0xc9, 0xb4, 0xfc, 0xf2, 0x98, 0x22, 0x0a, 0xd0, 0x0c, 0xe4, 0x1c, 0xdc, 0xb4, 0xce, + 0x9e, 0x3b, 0x7f, 0xed, 0x11, 0xa6, 0x56, 0x97, 0xc7, 0x14, 0xbf, 0x68, 0x21, 0x4b, 0x7a, 0xfc, + 0xcd, 0x4f, 0xcc, 0xc6, 0xaa, 0x29, 0x48, 0x38, 0xdd, 0xce, 0x5b, 0xa6, 0x1b, 0x3f, 0x93, 0x82, + 0xb9, 0x40, 0x2d, 0x5b, 0x5c, 0xae, 0x6b, 0x6d, 0xbd, 0xa5, 0xf9, 0x77, 0x5c, 0x48, 0x81, 0xfe, + 0x53, 0x8a, 0x21, 0xab, 0xc6, 0x81, 0x52, 0x94, 0x7f, 0x25, 0x06, 0xe3, 0x57, 0x05, 0x72, 0x03, + 0xbb, 0xe8, 0x02, 0x80, 0xf7, 0x26, 0x31, 0x55, 0x8e, 0xcf, 0xf7, 0xbe, 0x6b, 0xde, 0xe3, 0x51, + 0x02, 0xe4, 0xe8, 0x71, 0xaa, 0x80, 0x96, 0xe9, 0xf0, 0x0f, 0xf7, 0x22, 0x58, 0x3d, 0x62, 0xf4, + 0x20, 0x20, 0x6a, 0xd5, 0xd4, 0xeb, 0xa6, 0xab, 0x1b, 0x3b, 0xaa, 0x65, 0xde, 0xe0, 0x9f, 0x43, + 0x27, 0x14, 0x89, 0xd6, 0x5c, 0xa5, 0x15, 0xeb, 0xa4, 0x9c, 0x34, 0x3a, 0xe7, 0xa1, 0x90, 0x98, + 0x4e, 0x6b, 0xb5, 0x6c, 0xec, 0x38, 0xdc, 0x70, 0x89, 0x47, 0x74, 0x01, 0x32, 0x56, 0x77, 0x4b, + 0x15, 0x56, 0x22, 0x7f, 0xf6, 0xce, 0x41, 0x73, 0x5e, 0xe8, 0x06, 0x9f, 0xf5, 0x69, 0xab, 0xbb, + 0x45, 0x34, 0xe5, 0x6e, 0x18, 0x1f, 0xd0, 0x98, 0xfc, 0x75, 0xbf, 0x1d, 0xf4, 0x82, 0x0e, 0xde, + 0x03, 0xd5, 0xb2, 0x75, 0xd3, 0xd6, 0xdd, 0x7d, 0x7a, 0x6a, 0x2e, 0xa1, 0x48, 0xa2, 0x62, 0x9d, + 0x97, 0xcb, 0xd7, 0xa0, 0xd4, 0xa0, 0xbe, 0xbe, 0xdf, 0xf2, 0x73, 0x7e, 0xfb, 0x62, 0xd1, 0xed, + 0x1b, 0xda, 0xb2, 0x78, 0x5f, 0xcb, 0xaa, 0x2b, 0x43, 0x35, 0xf3, 0xd1, 0xc3, 0x69, 0x66, 0x78, + 0x75, 0xfb, 0x83, 0x63, 0xa1, 0x49, 0xc9, 0xbd, 0x9e, 0x80, 0xc9, 0x1a, 0x55, 0x29, 0xa3, 0xc2, + 0xf8, 0xf2, 0xc1, 0x8b, 0x68, 0x39, 0xc2, 0x74, 0x96, 0x23, 0xa7, 0x8f, 0xfc, 0x24, 0x14, 0xd6, + 0x35, 0xdb, 0x6d, 0x60, 0xf7, 0x32, 0xd6, 0x5a, 0xd8, 0x0e, 0xaf, 0xb2, 0x05, 0xb1, 0xca, 0x22, + 0x48, 0xd2, 0xa5, 0x94, 0xad, 0x32, 0xf4, 0xb7, 0xbc, 0x0b, 0x49, 0x7a, 0x6a, 0xd6, 0x5b, 0x81, + 0x39, 0x07, 0x5b, 0x81, 0x89, 0xfd, 0xdc, 0x77, 0xb1, 0x23, 0x32, 0x4d, 0xf4, 0x01, 0x3d, 0x26, + 0xd6, 0xd1, 0xc4, 0xc1, 0xeb, 0x28, 0x57, 0x42, 0xbe, 0x9a, 0xb6, 0x21, 0x53, 0x25, 0xe6, 0x77, + 0x69, 0xd1, 0x6b, 0x48, 0xcc, 0x6f, 0x08, 0x5a, 0x81, 0x92, 0xa5, 0xd9, 0x2e, 0xfd, 0xe0, 0x68, + 0x97, 0xf6, 0x82, 0xeb, 0xf9, 0x6c, 0xff, 0xac, 0x0b, 0x75, 0x96, 0xbf, 0xa5, 0x60, 0x05, 0x0b, + 0xe5, 0xff, 0x9a, 0x84, 0x34, 0x17, 0xc6, 0x53, 0x90, 0xe1, 0x62, 0xe5, 0x9a, 0x79, 0xd7, 0x7c, + 0xff, 0x62, 0x34, 0xef, 0x2d, 0x1a, 0x1c, 0x4f, 0xf0, 0xa0, 0xfb, 0x21, 0xdb, 0xdc, 0xd5, 0x74, + 0x43, 0xd5, 0x5b, 0xdc, 0x01, 0xcc, 0xbf, 0xfe, 0xda, 0x6c, 0xa6, 0x46, 0xca, 0x96, 0x16, 0x95, + 0x0c, 0xad, 0x5c, 0x6a, 0x91, 0x95, 0x7f, 0x17, 0xeb, 0x3b, 0xbb, 0x2e, 0x9f, 0x5d, 0xfc, 0x09, + 0x3d, 0x01, 0x49, 0xa2, 0x10, 0xfc, 0x73, 0xd4, 0x72, 0x9f, 0x1b, 0xef, 0x65, 0x59, 0xaa, 0x59, + 0xf2, 0xe2, 0x0f, 0xfd, 0xe7, 0xd9, 0x98, 0x42, 0x39, 0x50, 0x0d, 0x0a, 0x6d, 0xcd, 0x71, 0x55, + 0xba, 0x6a, 0x91, 0xd7, 0xa7, 0x28, 0xc4, 0xb1, 0x7e, 0x81, 0x70, 0xc1, 0xf2, 0xa6, 0xe7, 0x09, + 0x17, 0x2b, 0x6a, 0xa1, 0x93, 0x20, 0x51, 0x90, 0xa6, 0xd9, 0xe9, 0xe8, 0x2e, 0xf3, 0xa5, 0xd2, + 0x54, 0xee, 0x45, 0x52, 0x5e, 0xa3, 0xc5, 0xd4, 0xa3, 0x3a, 0x0e, 0x39, 0xfa, 0x01, 0x1c, 0x25, + 0x61, 0x47, 0xb5, 0xb3, 0xa4, 0x80, 0x56, 0x9e, 0x80, 0x92, 0x6f, 0x1b, 0x19, 0x49, 0x96, 0xa1, + 0xf8, 0xc5, 0x94, 0xf0, 0x61, 0x98, 0x32, 0xf0, 0x1e, 0x3d, 0x3c, 0x1e, 0xa2, 0xce, 0x51, 0x6a, + 0x44, 0xea, 0xae, 0x86, 0x39, 0xee, 0x83, 0x62, 0x53, 0x08, 0x9f, 0xd1, 0x02, 0xa5, 0x2d, 0x78, + 0xa5, 0x94, 0xec, 0x18, 0x64, 0x35, 0xcb, 0x62, 0x04, 0x79, 0x6e, 0x1b, 0x2d, 0x8b, 0x56, 0x9d, + 0x86, 0x09, 0xda, 0x47, 0x1b, 0x3b, 0xdd, 0xb6, 0xcb, 0x41, 0xc6, 0x29, 0x4d, 0x89, 0x54, 0x28, + 0xac, 0x9c, 0xd2, 0xde, 0x03, 0x05, 0x7c, 0x5d, 0x6f, 0x61, 0xa3, 0x89, 0x19, 0x5d, 0x81, 0xd2, + 0x8d, 0x8b, 0x42, 0x4a, 0x74, 0x0a, 0x3c, 0x9b, 0xa7, 0x0a, 0x7b, 0x5c, 0x64, 0x78, 0xa2, 0xbc, + 0xc2, 0x8a, 0xe5, 0x69, 0x48, 0x2e, 0x6a, 0xae, 0x46, 0x9c, 0x0a, 0x77, 0x8f, 0x2d, 0x32, 0xe3, + 0x0a, 0xf9, 0x29, 0x7f, 0x33, 0x0e, 0xc9, 0xab, 0xa6, 0x8b, 0xd1, 0xa3, 0x01, 0x87, 0xaf, 0x38, + 0x48, 0x9f, 0x1b, 0xfa, 0x8e, 0x81, 0x5b, 0x2b, 0xce, 0x4e, 0xe0, 0xb6, 0x0a, 0x5f, 0x9d, 0xe2, + 0x21, 0x75, 0x9a, 0x82, 0x94, 0x6d, 0x76, 0x8d, 0x96, 0x38, 0xe5, 0x4c, 0x1f, 0x50, 0x1d, 0xb2, + 0x9e, 0x96, 0x24, 0xa3, 0xb4, 0xa4, 0x44, 0xb4, 0x84, 0xe8, 0x30, 0x2f, 0x50, 0x32, 0x5b, 0x5c, + 0x59, 0xaa, 0x90, 0xf3, 0x8c, 0x17, 0xd7, 0xb6, 0xd1, 0x14, 0xd6, 0x67, 0x23, 0x0b, 0x89, 0x37, + 0xf6, 0x9e, 0xf0, 0x98, 0xc6, 0x49, 0x5e, 0x05, 0x97, 0x5e, 0x48, 0xad, 0xf8, 0xcd, 0x19, 0x19, + 0xda, 0x2f, 0x5f, 0xad, 0xd8, 0xed, 0x19, 0x77, 0x42, 0xce, 0xd1, 0x77, 0x0c, 0xcd, 0xed, 0xda, + 0x98, 0x6b, 0x9e, 0x5f, 0x20, 0x7f, 0x29, 0x06, 0x69, 0xa6, 0xc9, 0x01, 0xb9, 0xc5, 0x06, 0xcb, + 0x2d, 0x3e, 0x4c, 0x6e, 0x89, 0xdb, 0x97, 0x5b, 0x05, 0xc0, 0x6b, 0x8c, 0xc3, 0x2f, 0x34, 0x18, + 0xe0, 0x2d, 0xb0, 0x26, 0x36, 0xf4, 0x1d, 0x3e, 0x51, 0x03, 0x4c, 0xf2, 0x7f, 0x8a, 0x11, 0xc7, + 0x95, 0xd7, 0xa3, 0x0a, 0x14, 0x44, 0xbb, 0xd4, 0xed, 0xb6, 0xb6, 0xc3, 0x75, 0xe7, 0xae, 0xa1, + 0x8d, 0xbb, 0xd8, 0xd6, 0x76, 0x94, 0x3c, 0x6f, 0x0f, 0x79, 0x18, 0x3c, 0x0e, 0xf1, 0x21, 0xe3, + 0x10, 0x1a, 0xf8, 0xc4, 0xed, 0x0d, 0x7c, 0x68, 0x88, 0x92, 0xbd, 0x43, 0xf4, 0xb9, 0x38, 0x0d, + 0x5e, 0x2c, 0xd3, 0xd1, 0xda, 0x6f, 0xc7, 0x8c, 0x38, 0x0e, 0x39, 0xcb, 0x6c, 0xab, 0xac, 0x86, + 0x9d, 0xfe, 0xcf, 0x5a, 0x66, 0x5b, 0xe9, 0x1b, 0xf6, 0xd4, 0x9b, 0x34, 0x5d, 0xd2, 0x6f, 0x82, + 0xd4, 0x32, 0xbd, 0x52, 0xb3, 0x61, 0x9c, 0x89, 0x82, 0xaf, 0x65, 0x0f, 0x13, 0x19, 0xd0, 0xc5, + 0x31, 0xd6, 0xbf, 0xf6, 0xb2, 0x66, 0x33, 0x4a, 0x85, 0xd3, 0x11, 0x0e, 0x66, 0xfa, 0x07, 0x45, + 0xbd, 0x41, 0xb5, 0x54, 0x38, 0x9d, 0xfc, 0x33, 0x31, 0x80, 0x65, 0x22, 0x59, 0xda, 0x5f, 0xb2, + 0x0a, 0x39, 0xb4, 0x09, 0x6a, 0xe8, 0xcd, 0x33, 0xc3, 0x06, 0x8d, 0xbf, 0x7f, 0xdc, 0x09, 0xb6, + 0xbb, 0x06, 0x05, 0x5f, 0x19, 0x1d, 0x2c, 0x1a, 0x33, 0x73, 0x80, 0x47, 0xdd, 0xc0, 0xae, 0x32, + 0x7e, 0x3d, 0xf0, 0x24, 0xff, 0x93, 0x18, 0xe4, 0x68, 0x9b, 0x56, 0xb0, 0xab, 0x85, 0xc6, 0x30, + 0x76, 0xfb, 0x63, 0x78, 0x17, 0x00, 0x83, 0x71, 0xf4, 0x97, 0x30, 0xd7, 0xac, 0x1c, 0x2d, 0x69, + 0xe8, 0x2f, 0x61, 0x74, 0xde, 0x13, 0x78, 0xe2, 0x60, 0x81, 0x0b, 0x8f, 0x9b, 0x8b, 0xfd, 0x28, + 0x64, 0xe8, 0x05, 0x60, 0x7b, 0x0e, 0x77, 0xa2, 0xd3, 0x46, 0xb7, 0xb3, 0xb1, 0xe7, 0xc8, 0x2f, + 0x42, 0x66, 0x63, 0x8f, 0xe5, 0x42, 0x8e, 0x43, 0xce, 0x36, 0x4d, 0xbe, 0x26, 0x33, 0x5f, 0x28, + 0x4b, 0x0a, 0xe8, 0x12, 0x24, 0xe2, 0xff, 0xb8, 0x1f, 0xff, 0xfb, 0x09, 0x8c, 0xc4, 0x48, 0x09, + 0x8c, 0xd3, 0xff, 0x3e, 0x06, 0xf9, 0x80, 0x7d, 0x40, 0x8f, 0xc0, 0x1d, 0xd5, 0xe5, 0xb5, 0xda, + 0x33, 0xea, 0xd2, 0xa2, 0x7a, 0x71, 0xb9, 0x72, 0xc9, 0xff, 0xbe, 0xad, 0x7c, 0xe4, 0xe6, 0xad, + 0x39, 0x14, 0xa0, 0xdd, 0x34, 0xe8, 0x56, 0x0e, 0x3a, 0x03, 0x53, 0x61, 0x96, 0x4a, 0xb5, 0x51, + 0x5f, 0xdd, 0x90, 0x62, 0xe5, 0x3b, 0x6e, 0xde, 0x9a, 0x9b, 0x08, 0x70, 0x54, 0xb6, 0x1c, 0x6c, + 0xb8, 0xfd, 0x0c, 0xb5, 0xb5, 0x95, 0x95, 0xa5, 0x0d, 0x29, 0xde, 0xc7, 0xc0, 0x0d, 0xf6, 0x29, + 0x98, 0x08, 0x33, 0xac, 0x2e, 0x2d, 0x4b, 0x89, 0x32, 0xba, 0x79, 0x6b, 0xae, 0x18, 0xa0, 0x5e, + 0xd5, 0xdb, 0xe5, 0xec, 0x07, 0x3e, 0x39, 0x33, 0xf6, 0xea, 0xdf, 0x99, 0x89, 0x91, 0x9e, 0x15, + 0x42, 0x36, 0x02, 0x3d, 0x08, 0x47, 0x1b, 0x4b, 0x97, 0x56, 0xeb, 0x8b, 0xea, 0x4a, 0xe3, 0x92, + 0xd8, 0x0c, 0x11, 0xbd, 0x2b, 0xdd, 0xbc, 0x35, 0x97, 0xe7, 0x5d, 0x1a, 0x46, 0xbd, 0xae, 0xd4, + 0xaf, 0xae, 0x6d, 0xd4, 0xa5, 0x18, 0xa3, 0x5e, 0xb7, 0xf1, 0x75, 0xd3, 0x65, 0x37, 0x04, 0x3e, + 0x0c, 0xc7, 0x06, 0x50, 0x7b, 0x1d, 0x9b, 0xb8, 0x79, 0x6b, 0xae, 0xb0, 0x6e, 0x63, 0x36, 0x7f, + 0x28, 0xc7, 0x3c, 0x4c, 0xf7, 0x73, 0xac, 0xad, 0xaf, 0x35, 0x2a, 0xcb, 0xd2, 0x5c, 0x59, 0xba, + 0x79, 0x6b, 0x6e, 0x5c, 0x18, 0x43, 0x42, 0xef, 0xf7, 0xec, 0xad, 0x8a, 0x76, 0x7e, 0x3c, 0x13, + 0xca, 0xe5, 0xb1, 0x38, 0xc2, 0xd2, 0x6c, 0xad, 0x73, 0xd8, 0x70, 0x27, 0x62, 0x2f, 0x57, 0x7e, + 0x39, 0x0e, 0x25, 0xcf, 0x99, 0x5e, 0xa7, 0x6f, 0x40, 0x8f, 0x06, 0xf3, 0x30, 0xf9, 0xa1, 0xcb, + 0x18, 0xa3, 0x16, 0x69, 0x9a, 0x77, 0x40, 0x56, 0x38, 0x65, 0xdc, 0x5c, 0xcc, 0xf5, 0xf3, 0xd5, + 0x39, 0x05, 0x67, 0xf5, 0x38, 0xd0, 0xd3, 0x90, 0xf3, 0x8c, 0x87, 0x77, 0xbf, 0xce, 0x70, 0x6b, + 0xc3, 0xf9, 0x7d, 0x1e, 0xf4, 0xa4, 0x1f, 0x36, 0x24, 0x87, 0x05, 0x22, 0x57, 0x19, 0x01, 0x67, + 0x16, 0xf4, 0xf2, 0x12, 0x9f, 0x76, 0xbc, 0xf7, 0xf4, 0x6e, 0x82, 0x3d, 0x95, 0x45, 0x52, 0xcc, + 0x2b, 0xc9, 0x76, 0xb4, 0xbd, 0x2a, 0x0d, 0xa6, 0x8e, 0x42, 0x86, 0x54, 0xee, 0xf0, 0x4f, 0xaf, + 0x13, 0x4a, 0xba, 0xa3, 0xed, 0x5d, 0xd2, 0x9c, 0x2b, 0xc9, 0x6c, 0x42, 0x4a, 0xca, 0x9f, 0x89, + 0x41, 0x31, 0xdc, 0x47, 0xf4, 0x00, 0x20, 0xc2, 0xa1, 0xed, 0x60, 0x95, 0x98, 0x18, 0x2a, 0x2c, + 0x81, 0x5b, 0xea, 0x68, 0x7b, 0x95, 0x1d, 0xbc, 0xda, 0xed, 0xd0, 0x06, 0x38, 0x68, 0x05, 0x24, + 0x41, 0x2c, 0xc6, 0x89, 0x0b, 0xf3, 0x58, 0xff, 0x6d, 0x7b, 0x9c, 0x80, 0x2d, 0x54, 0x1f, 0x21, + 0x0b, 0x55, 0x91, 0xe1, 0x79, 0x7b, 0xf1, 0xa1, 0xae, 0x24, 0xc2, 0x5d, 0x91, 0x9f, 0x86, 0x52, + 0x8f, 0x3c, 0x91, 0x0c, 0x05, 0x9e, 0x15, 0xa0, 0xfb, 0x9c, 0xcc, 0x3f, 0xce, 0x29, 0x79, 0x16, + 0xfd, 0xd3, 0x7d, 0xdf, 0x85, 0xec, 0x17, 0x5f, 0x99, 0x8d, 0xd1, 0x84, 0xf9, 0x03, 0x50, 0x08, + 0x49, 0x54, 0x64, 0xea, 0x62, 0x7e, 0xa6, 0xce, 0x27, 0x7e, 0x01, 0xc6, 0x89, 0xa1, 0xc4, 0x2d, + 0x4e, 0x7b, 0x3f, 0x94, 0x98, 0x21, 0xef, 0x95, 0x35, 0xf3, 0xa4, 0x56, 0x84, 0xc0, 0x65, 0xe1, + 0x5a, 0x85, 0xc5, 0x9e, 0x17, 0x54, 0x97, 0x34, 0xa7, 0xfa, 0xae, 0x57, 0x5f, 0x9f, 0x89, 0xbd, + 0x35, 0x13, 0xf1, 0xab, 0xef, 0x82, 0xe3, 0x81, 0x4a, 0x6d, 0xab, 0xa9, 0x87, 0xb2, 0x0e, 0xa5, + 0x80, 0x92, 0x91, 0xca, 0xa8, 0xec, 0xc1, 0x81, 0x39, 0x8c, 0x83, 0x13, 0x66, 0xe5, 0x83, 0x2d, + 0x42, 0x74, 0x62, 0x63, 0x70, 0x8e, 0xf2, 0xff, 0x66, 0x21, 0xa3, 0xe0, 0xf7, 0x75, 0xb1, 0xe3, + 0xa2, 0xb3, 0x90, 0xc4, 0xcd, 0x5d, 0x73, 0x50, 0x4a, 0x88, 0x74, 0x6e, 0x9e, 0xd3, 0xd5, 0x9b, + 0xbb, 0xe6, 0xe5, 0x31, 0x85, 0xd2, 0xa2, 0x73, 0x90, 0xda, 0x6e, 0x77, 0x79, 0x9e, 0xa2, 0xc7, + 0x58, 0x04, 0x99, 0x2e, 0x12, 0xa2, 0xcb, 0x63, 0x0a, 0xa3, 0x26, 0xaf, 0xa2, 0xf7, 0x96, 0x26, + 0x0e, 0x7e, 0xd5, 0x92, 0xb1, 0x4d, 0x5f, 0x45, 0x68, 0x51, 0x15, 0x40, 0x37, 0x74, 0x57, 0xa5, + 0x31, 0x3c, 0xf7, 0x04, 0xef, 0x1e, 0xce, 0xa9, 0xbb, 0x34, 0xea, 0xbf, 0x3c, 0xa6, 0xe4, 0x74, + 0xf1, 0x40, 0x9a, 0xfb, 0xbe, 0x2e, 0xb6, 0xf7, 0xb9, 0x03, 0x38, 0xb4, 0xb9, 0xef, 0x22, 0x44, + 0xa4, 0xb9, 0x94, 0x1a, 0xd5, 0x21, 0x4f, 0x3f, 0x50, 0x65, 0xf3, 0x97, 0xdf, 0xa1, 0x29, 0x0f, + 0x63, 0xae, 0x12, 0x52, 0x3a, 0xa5, 0x2f, 0x8f, 0x29, 0xb0, 0xe5, 0x3d, 0x11, 0x23, 0xc9, 0xee, + 0x58, 0x72, 0xf7, 0xf8, 0xcd, 0x81, 0xb3, 0xc3, 0x30, 0xe8, 0x45, 0x4b, 0x1b, 0x7b, 0x97, 0xc7, + 0x94, 0x4c, 0x93, 0xfd, 0x24, 0xfd, 0x6f, 0xe1, 0xb6, 0x7e, 0x1d, 0xdb, 0x84, 0x3f, 0x77, 0x70, + 0xff, 0x17, 0x19, 0x25, 0x45, 0xc8, 0xb5, 0xc4, 0x03, 0x31, 0xb4, 0xd8, 0x68, 0xf1, 0x6e, 0x40, + 0xbf, 0x9d, 0x0e, 0x8d, 0xb3, 0xd1, 0x12, 0x9d, 0xc8, 0x62, 0xfe, 0x1b, 0x3d, 0xe1, 0x79, 0xa8, + 0xf9, 0x7e, 0xa7, 0x30, 0xd4, 0x01, 0x96, 0xab, 0x18, 0x13, 0x9e, 0x2a, 0x5a, 0x85, 0x62, 0x5b, + 0x77, 0x5c, 0xd5, 0x31, 0x34, 0xcb, 0xd9, 0x35, 0x5d, 0x87, 0x06, 0xfd, 0xf9, 0xb3, 0xf7, 0x0d, + 0x43, 0x58, 0xd6, 0x1d, 0xb7, 0x21, 0x88, 0x2f, 0x8f, 0x29, 0x85, 0x76, 0xb0, 0x80, 0xe0, 0x99, + 0xdb, 0xdb, 0xd8, 0xf6, 0x00, 0x69, 0x72, 0xe0, 0x00, 0xbc, 0x35, 0x42, 0x2d, 0xf8, 0x09, 0x9e, + 0x19, 0x2c, 0x40, 0x3f, 0x08, 0x93, 0x6d, 0x53, 0x6b, 0x79, 0x70, 0x6a, 0x73, 0xb7, 0x6b, 0x5c, + 0xa3, 0x99, 0x84, 0xfc, 0xd9, 0x53, 0x43, 0x1b, 0x69, 0x6a, 0x2d, 0x01, 0x51, 0x23, 0x0c, 0x97, + 0xc7, 0x94, 0x89, 0x76, 0x6f, 0x21, 0x7a, 0x0f, 0x4c, 0x69, 0x96, 0xd5, 0xde, 0xef, 0x45, 0x2f, + 0x51, 0xf4, 0xd3, 0xc3, 0xd0, 0x2b, 0x84, 0xa7, 0x17, 0x1e, 0x69, 0x7d, 0xa5, 0x68, 0x03, 0x24, + 0xcb, 0xc6, 0xf4, 0x8b, 0x1a, 0x8b, 0xbb, 0x2a, 0xf4, 0x5a, 0xac, 0xfc, 0xd9, 0x13, 0xc3, 0xb0, + 0xd7, 0x19, 0xbd, 0xf0, 0x6c, 0x2e, 0x8f, 0x29, 0x25, 0x2b, 0x5c, 0xc4, 0x50, 0xcd, 0x26, 0xa6, + 0x57, 0x37, 0x71, 0xd4, 0x89, 0x28, 0x54, 0x4a, 0x1f, 0x46, 0x0d, 0x15, 0x55, 0x33, 0xfc, 0x44, + 0x1c, 0xbf, 0x57, 0xe5, 0x04, 0xe4, 0x03, 0x86, 0x05, 0x4d, 0x43, 0x86, 0x9f, 0x10, 0x10, 0x27, + 0xe9, 0xf8, 0xa3, 0x5c, 0x84, 0xf1, 0xa0, 0x31, 0x91, 0x3f, 0x14, 0xf3, 0x38, 0xe9, 0x87, 0xee, + 0xd3, 0xe1, 0xd4, 0x61, 0xce, 0xcf, 0x0a, 0xde, 0x23, 0x56, 0x11, 0x51, 0xcf, 0x76, 0x93, 0xc6, + 0x69, 0x21, 0x5f, 0xc4, 0xd0, 0x2c, 0xe4, 0xad, 0xb3, 0x96, 0x47, 0x92, 0xa0, 0x24, 0x60, 0x9d, + 0xb5, 0x04, 0xc1, 0xdd, 0x30, 0x4e, 0x7a, 0xaa, 0x06, 0x1d, 0x8d, 0x9c, 0x92, 0x27, 0x65, 0x9c, + 0x44, 0xfe, 0xd7, 0x71, 0x90, 0x7a, 0x0d, 0x90, 0x97, 0x53, 0x8c, 0x1d, 0x3a, 0xa7, 0x78, 0xac, + 0x37, 0x9b, 0xe9, 0x27, 0x30, 0x97, 0x41, 0xf2, 0xf3, 0x70, 0x6c, 0x21, 0x18, 0xee, 0x38, 0xf5, + 0x78, 0x78, 0x4a, 0xa9, 0xd9, 0xe3, 0xf2, 0x5d, 0x0c, 0xed, 0xbd, 0x88, 0x8b, 0xb9, 0x7b, 0x87, + 0xd8, 0xf3, 0x17, 0x36, 0xad, 0x96, 0xe6, 0x62, 0x91, 0x17, 0x09, 0x6c, 0xc3, 0xdc, 0x0f, 0x25, + 0xcd, 0xb2, 0x54, 0xc7, 0xd5, 0x5c, 0xcc, 0x97, 0xf5, 0x14, 0x4b, 0x0f, 0x6a, 0x96, 0xd5, 0x20, + 0xa5, 0x6c, 0x59, 0xbf, 0x0f, 0x8a, 0xc4, 0x26, 0xeb, 0x5a, 0x5b, 0xe5, 0x59, 0x82, 0x34, 0x5b, + 0xfd, 0x79, 0xe9, 0x65, 0x5a, 0x28, 0xb7, 0xbc, 0x11, 0xa7, 0xf6, 0xd8, 0x0b, 0xb3, 0x62, 0x81, + 0x30, 0x0b, 0xf1, 0x1b, 0x08, 0x98, 0x7c, 0xc4, 0xa5, 0x0d, 0x83, 0xb3, 0xbb, 0x53, 0x34, 0x24, + 0xbb, 0xce, 0x12, 0x1e, 0x59, 0x85, 0x3d, 0xc8, 0xef, 0x8f, 0xc3, 0x44, 0x9f, 0xe5, 0x1e, 0x98, + 0xf6, 0xf6, 0xe3, 0xcb, 0xf8, 0xa1, 0xe2, 0xcb, 0x67, 0xc2, 0x69, 0xdd, 0xc0, 0xca, 0x77, 0xbc, + 0x4f, 0xc8, 0xcc, 0x6e, 0x12, 0x85, 0xe6, 0x20, 0x81, 0xcc, 0x2f, 0x55, 0xf3, 0x4d, 0x98, 0xda, + 0xda, 0x7f, 0x49, 0x33, 0x5c, 0xdd, 0xc0, 0x6a, 0xdf, 0xa8, 0xf5, 0x2f, 0xa5, 0x2b, 0xba, 0xb3, + 0x85, 0x77, 0xb5, 0xeb, 0xba, 0x29, 0x9a, 0x35, 0xe9, 0xf1, 0xfb, 0xc9, 0x5d, 0x59, 0x81, 0x62, + 0x78, 0xe9, 0x41, 0x45, 0x88, 0xbb, 0x7b, 0xbc, 0xff, 0x71, 0x77, 0x0f, 0x3d, 0xcc, 0xf3, 0x40, + 0x71, 0x9a, 0x07, 0xea, 0x7f, 0x11, 0xe7, 0xf3, 0x93, 0x40, 0xb2, 0xec, 0xcd, 0x06, 0x6f, 0x39, + 0xea, 0x45, 0x95, 0x4f, 0x41, 0xa9, 0x67, 0xbd, 0x19, 0x96, 0x15, 0x94, 0x4b, 0x50, 0x08, 0x2d, + 0x2e, 0xf2, 0x11, 0x98, 0x1a, 0xb4, 0x56, 0xc8, 0xbb, 0x5e, 0x79, 0xc8, 0xe6, 0xa3, 0x73, 0x90, + 0xf5, 0x16, 0x8b, 0x01, 0x59, 0x08, 0xda, 0x0b, 0x41, 0xac, 0x78, 0xa4, 0xa1, 0x64, 0x76, 0x3c, + 0x94, 0xcc, 0x96, 0xdf, 0x0b, 0xd3, 0xc3, 0x16, 0x82, 0x9e, 0x6e, 0x24, 0x3d, 0x2d, 0x3c, 0x02, + 0x69, 0x7e, 0x3f, 0x5b, 0x9c, 0x6e, 0xdf, 0xf0, 0x27, 0xa2, 0x9d, 0x6c, 0x51, 0x48, 0xb0, 0x5d, + 0x1d, 0xfa, 0x20, 0xab, 0x70, 0x6c, 0xe8, 0x62, 0x30, 0x7c, 0x23, 0x88, 0x01, 0xf1, 0x8d, 0xa0, + 0xa6, 0x68, 0x8e, 0x43, 0xfb, 0x2a, 0x0e, 0x3b, 0xb0, 0x27, 0xf9, 0x23, 0x09, 0x38, 0x32, 0x78, + 0x49, 0x40, 0x73, 0x30, 0x4e, 0xfc, 0x6e, 0x37, 0xec, 0xa2, 0x43, 0x47, 0xdb, 0xdb, 0xe0, 0xfe, + 0x39, 0x4f, 0xa4, 0xc7, 0xbd, 0x44, 0x3a, 0xda, 0x84, 0x89, 0xb6, 0xd9, 0xd4, 0xda, 0x6a, 0x40, + 0xe3, 0xb9, 0xb2, 0xdf, 0xd3, 0x27, 0xec, 0x3a, 0xbb, 0xb5, 0xb9, 0xd5, 0xa7, 0xf4, 0x25, 0x8a, + 0xb1, 0xec, 0x69, 0x3e, 0x5a, 0x84, 0x7c, 0xc7, 0x57, 0xe4, 0x43, 0x28, 0x7b, 0x90, 0x2d, 0x30, + 0x24, 0xa9, 0x81, 0xdb, 0x3e, 0xe9, 0x43, 0x9b, 0xe8, 0x61, 0x3b, 0x28, 0x99, 0xa1, 0x3b, 0x28, + 0x83, 0xb6, 0x2b, 0xb2, 0x83, 0xb7, 0x2b, 0x3e, 0x10, 0x1c, 0x9a, 0xd0, 0x22, 0xda, 0xbf, 0x83, + 0x81, 0x1a, 0x30, 0xc5, 0xf9, 0x5b, 0x21, 0xd9, 0xc7, 0x47, 0x35, 0x34, 0x48, 0xb0, 0x0f, 0x17, + 0x7b, 0xe2, 0xf6, 0xc4, 0x2e, 0x6c, 0x69, 0x32, 0x60, 0x4b, 0xff, 0x3f, 0x1b, 0x8a, 0x7f, 0x9b, + 0x83, 0xac, 0x82, 0x1d, 0x8b, 0x2c, 0x9c, 0xa8, 0x0a, 0x39, 0xbc, 0xd7, 0xc4, 0x96, 0xeb, 0x6f, + 0x53, 0x0e, 0x0a, 0x06, 0x18, 0x75, 0x5d, 0x50, 0x12, 0x4f, 0xdc, 0x63, 0x43, 0x8f, 0xf2, 0x60, + 0x6b, 0x78, 0xdc, 0xc4, 0xd9, 0x83, 0xd1, 0xd6, 0x79, 0x11, 0x6d, 0x25, 0x86, 0x3a, 0xdf, 0x8c, + 0xab, 0x27, 0xdc, 0x7a, 0x94, 0x87, 0x5b, 0xc9, 0x88, 0x97, 0x85, 0xe2, 0xad, 0x5a, 0x28, 0xde, + 0x4a, 0x47, 0x74, 0x73, 0x48, 0xc0, 0x75, 0x5e, 0x04, 0x5c, 0x99, 0x88, 0x16, 0xf7, 0x44, 0x5c, + 0x17, 0xc3, 0x11, 0x57, 0x76, 0x88, 0x01, 0x11, 0xdc, 0x43, 0x43, 0xae, 0xa7, 0x02, 0x21, 0x57, + 0x6e, 0x68, 0xbc, 0xc3, 0x40, 0x06, 0xc4, 0x5c, 0xb5, 0x50, 0xcc, 0x05, 0x11, 0x32, 0x18, 0x12, + 0x74, 0xfd, 0x40, 0x30, 0xe8, 0xca, 0x0f, 0x8d, 0xdb, 0xf8, 0x78, 0x0f, 0x8a, 0xba, 0x9e, 0xf4, + 0xa2, 0xae, 0xf1, 0xa1, 0x61, 0x23, 0xef, 0x43, 0x6f, 0xd8, 0xb5, 0xd6, 0x17, 0x76, 0x15, 0xf8, + 0x1f, 0x44, 0x18, 0x06, 0x11, 0x11, 0x77, 0xad, 0xf5, 0xc5, 0x5d, 0xc5, 0x08, 0xc0, 0x88, 0xc0, + 0xeb, 0xaf, 0x0c, 0x0e, 0xbc, 0x86, 0x87, 0x46, 0xbc, 0x99, 0xa3, 0x45, 0x5e, 0xea, 0x90, 0xc8, + 0x8b, 0x45, 0x47, 0x0f, 0x0c, 0x85, 0x1f, 0x39, 0xf4, 0xda, 0x1c, 0x10, 0x7a, 0xb1, 0x20, 0xe9, + 0xe4, 0x50, 0xf0, 0x11, 0x62, 0xaf, 0xcd, 0x01, 0xb1, 0x17, 0x8a, 0x84, 0x3d, 0x4c, 0xf0, 0x95, + 0x92, 0xd2, 0xf2, 0x29, 0xe2, 0xfa, 0xf6, 0xd8, 0x29, 0xe2, 0x3f, 0x60, 0xdb, 0x36, 0x6d, 0x71, + 0xb2, 0x96, 0x3e, 0xc8, 0x27, 0x89, 0x33, 0xee, 0xdb, 0xa4, 0x03, 0x02, 0x35, 0xea, 0xa7, 0x05, + 0xec, 0x90, 0xfc, 0xc5, 0x98, 0xcf, 0x4b, 0x7d, 0xd8, 0xa0, 0x23, 0x9f, 0xe3, 0x8e, 0x7c, 0x20, + 0x7c, 0x8b, 0x87, 0xc3, 0xb7, 0x59, 0xc8, 0x13, 0xff, 0xab, 0x27, 0x32, 0xd3, 0x2c, 0x2f, 0x32, + 0x13, 0x47, 0x0a, 0x58, 0x90, 0xc7, 0x97, 0x15, 0xb6, 0x93, 0x53, 0xf2, 0x8e, 0x57, 0xb0, 0x98, + 0x02, 0x3d, 0x04, 0x93, 0x01, 0x5a, 0xcf, 0xaf, 0x63, 0x61, 0x8a, 0xe4, 0x51, 0x57, 0xb8, 0x83, + 0xf7, 0xcf, 0x62, 0xbe, 0x84, 0xfc, 0x90, 0x6e, 0x50, 0xf4, 0x15, 0x7b, 0x93, 0xa2, 0xaf, 0xf8, + 0x6d, 0x47, 0x5f, 0x41, 0x3f, 0x35, 0x11, 0xf6, 0x53, 0xff, 0x67, 0xcc, 0x1f, 0x13, 0x2f, 0x96, + 0x6a, 0x9a, 0x2d, 0xcc, 0x3d, 0x47, 0xfa, 0x9b, 0x38, 0x15, 0x6d, 0x73, 0x87, 0xfb, 0x87, 0xe4, + 0x27, 0xa1, 0xf2, 0x16, 0x8e, 0x1c, 0x5f, 0x17, 0x3c, 0xa7, 0x33, 0x15, 0x3c, 0xff, 0xcb, 0x0f, + 0xc5, 0xa6, 0xfd, 0x43, 0xb1, 0xde, 0x97, 0x6f, 0x99, 0xc0, 0x97, 0x6f, 0xe8, 0x09, 0xc8, 0xd1, + 0x8c, 0xa8, 0x6a, 0x5a, 0xe2, 0xcf, 0x67, 0x1c, 0x1f, 0x7e, 0x20, 0xd6, 0xa1, 0x47, 0xf5, 0xd8, + 0x21, 0x5a, 0xdf, 0x63, 0xc8, 0x85, 0x3c, 0x86, 0x3b, 0x21, 0x47, 0x5a, 0xcf, 0xae, 0x81, 0x06, + 0xfe, 0xd9, 0xa4, 0x28, 0x90, 0xdf, 0x03, 0xa8, 0x7f, 0x91, 0x40, 0x97, 0x21, 0x8d, 0xaf, 0xd3, + 0x3b, 0xf5, 0xd8, 0x41, 0xc3, 0x23, 0xfd, 0xae, 0x29, 0xa9, 0xae, 0x4e, 0x13, 0x21, 0x7f, 0xeb, + 0xb5, 0x59, 0x89, 0x51, 0x3f, 0xe8, 0x7d, 0x25, 0xa0, 0x70, 0x7e, 0xf9, 0x3f, 0xc6, 0x49, 0x00, + 0x13, 0x5a, 0x40, 0x06, 0xca, 0x76, 0xd0, 0x16, 0xe1, 0x68, 0xf2, 0x9e, 0x01, 0xd8, 0xd1, 0x1c, + 0xf5, 0x86, 0x66, 0xb8, 0xb8, 0xc5, 0x85, 0x1e, 0x28, 0x41, 0x65, 0xc8, 0x92, 0xa7, 0xae, 0x83, + 0x5b, 0x3c, 0x8c, 0xf6, 0x9e, 0x03, 0xfd, 0xcc, 0x7c, 0x6f, 0xfd, 0x0c, 0x4b, 0x39, 0xdb, 0x23, + 0xe5, 0x40, 0x70, 0x91, 0x0b, 0x06, 0x17, 0xec, 0x60, 0x30, 0x3f, 0x9f, 0x08, 0xac, 0x6d, 0xe2, + 0x19, 0xdd, 0x03, 0x85, 0x0e, 0xee, 0x58, 0xa6, 0xd9, 0x56, 0x99, 0xb9, 0x61, 0xf7, 0xbd, 0x8f, + 0xf3, 0xc2, 0x3a, 0xb5, 0x3a, 0x3f, 0x16, 0xf7, 0xe7, 0x9f, 0x1f, 0x44, 0x7e, 0xdf, 0x09, 0x58, + 0xfe, 0x49, 0x9a, 0x59, 0x0a, 0xbb, 0x08, 0xa8, 0x11, 0x3c, 0x35, 0xd2, 0xa5, 0x66, 0x41, 0x28, + 0xf4, 0xa8, 0xf6, 0xc3, 0x3f, 0x5d, 0xc2, 0x8a, 0x1d, 0xf4, 0x3c, 0x1c, 0xed, 0xb1, 0x6d, 0x1e, + 0x74, 0x7c, 0x54, 0x13, 0x77, 0x47, 0xd8, 0xc4, 0x09, 0x68, 0x5f, 0x58, 0x89, 0xef, 0x71, 0xd6, + 0x2d, 0x41, 0x31, 0xec, 0xf1, 0x0c, 0x1c, 0x7e, 0xfa, 0xf7, 0x45, 0x5c, 0x4d, 0x37, 0xd4, 0x50, + 0x3a, 0x68, 0x9c, 0x15, 0xf2, 0x24, 0xd3, 0x3a, 0xdc, 0x31, 0xd0, 0xf3, 0x41, 0x8f, 0x43, 0xce, + 0x77, 0x9a, 0x98, 0x54, 0x0f, 0x48, 0x17, 0xf8, 0xb4, 0xf2, 0x6f, 0xc6, 0x7c, 0xc8, 0x70, 0x02, + 0xa2, 0x0e, 0x69, 0x76, 0xec, 0x8d, 0x1f, 0xa6, 0x79, 0x68, 0x34, 0x9f, 0x69, 0x9e, 0x9d, 0x89, + 0x53, 0x38, 0xb3, 0xfc, 0x1e, 0x48, 0xb3, 0x12, 0x94, 0x87, 0x8c, 0x7f, 0xed, 0x2d, 0x40, 0xba, + 0x52, 0xab, 0xd5, 0xd7, 0x37, 0xa4, 0x18, 0xca, 0x41, 0xaa, 0x52, 0x5d, 0x53, 0x36, 0xa4, 0x38, + 0x29, 0x56, 0xea, 0x57, 0xea, 0xb5, 0x0d, 0x29, 0x81, 0x26, 0xa0, 0xc0, 0x7e, 0xab, 0x17, 0xd7, + 0x94, 0x95, 0xca, 0x86, 0x94, 0x0c, 0x14, 0x35, 0xea, 0xab, 0x8b, 0x75, 0x45, 0x4a, 0xc9, 0x8f, + 0xc0, 0xb1, 0xa1, 0x5e, 0x96, 0x9f, 0x5d, 0x88, 0x05, 0xb2, 0x0b, 0xf2, 0x47, 0xe2, 0x50, 0x1e, + 0xee, 0x3a, 0xa1, 0x2b, 0x3d, 0x1d, 0x3f, 0x7b, 0x08, 0xbf, 0xab, 0xa7, 0xf7, 0xe8, 0x3e, 0x28, + 0xda, 0x78, 0x1b, 0xbb, 0xcd, 0x5d, 0xe6, 0xca, 0xb1, 0x25, 0xb3, 0xa0, 0x14, 0x78, 0x29, 0x65, + 0x72, 0x18, 0xd9, 0x8b, 0xb8, 0xe9, 0xaa, 0xcc, 0x16, 0x39, 0xfc, 0x0f, 0x1d, 0x16, 0x58, 0x69, + 0x83, 0x15, 0xca, 0xef, 0x3d, 0x94, 0x2c, 0x73, 0x90, 0x52, 0xea, 0x1b, 0xca, 0xf3, 0x52, 0x02, + 0x21, 0x28, 0xd2, 0x9f, 0x6a, 0x63, 0xb5, 0xb2, 0xde, 0xb8, 0xbc, 0x46, 0x64, 0x39, 0x09, 0x25, + 0x21, 0x4b, 0x51, 0x98, 0x92, 0x1f, 0x80, 0xa3, 0x43, 0xfc, 0xbe, 0x01, 0xe7, 0x10, 0x3f, 0x11, + 0x0b, 0x52, 0x87, 0x63, 0xfe, 0x35, 0x48, 0x3b, 0xae, 0xe6, 0x76, 0x1d, 0x2e, 0xc4, 0xc7, 0x47, + 0x75, 0x04, 0xe7, 0xc5, 0x8f, 0x06, 0x65, 0x57, 0x38, 0x8c, 0x7c, 0x0e, 0x8a, 0xe1, 0x9a, 0xe1, + 0x32, 0xf0, 0x95, 0x28, 0x2e, 0x3f, 0x0f, 0x10, 0xc8, 0x47, 0x7a, 0x27, 0xba, 0x62, 0xc1, 0x13, + 0x5d, 0xe7, 0x20, 0x75, 0xdd, 0x64, 0x36, 0x63, 0xf0, 0xc4, 0xb9, 0x6a, 0xba, 0x38, 0x90, 0x7c, + 0x60, 0xd4, 0xb2, 0x0e, 0xa8, 0x3f, 0x27, 0x34, 0xe4, 0x15, 0x4f, 0x85, 0x5f, 0x71, 0xf7, 0xd0, + 0xec, 0xd2, 0xe0, 0x57, 0xbd, 0x04, 0x29, 0x6a, 0x6d, 0x06, 0x7e, 0xe2, 0xf3, 0x6e, 0x00, 0xcd, + 0x75, 0x6d, 0x7d, 0xab, 0xeb, 0xbf, 0x60, 0x76, 0xb0, 0xb5, 0xaa, 0x08, 0xba, 0xea, 0x9d, 0xdc, + 0x6c, 0x4d, 0xf9, 0xac, 0x01, 0xd3, 0x15, 0x00, 0x94, 0x57, 0xa1, 0x18, 0xe6, 0x1d, 0xfc, 0xc9, + 0x92, 0x7f, 0x71, 0x40, 0x4e, 0xb8, 0x4f, 0x9e, 0xf3, 0xc5, 0x2f, 0xf3, 0xa0, 0x0f, 0xf2, 0xcd, + 0x18, 0x64, 0x37, 0xf6, 0xb8, 0x1e, 0x1f, 0x70, 0xa8, 0xd2, 0xff, 0x6e, 0xcb, 0x4b, 0x16, 0xb2, + 0x7c, 0x6c, 0xc2, 0xcb, 0xf2, 0xfe, 0x80, 0x37, 0x53, 0x93, 0xa3, 0x46, 0xbb, 0x22, 0xdb, 0xcd, + 0xad, 0xd3, 0x85, 0xd1, 0xbe, 0x91, 0x98, 0x82, 0x54, 0xf0, 0xfb, 0x06, 0xf6, 0x20, 0xb7, 0x02, + 0xc7, 0x12, 0xd8, 0xb2, 0x11, 0xfc, 0x98, 0x22, 0x76, 0xe8, 0x8f, 0x29, 0xbc, 0xb7, 0xc4, 0x83, + 0x6f, 0xb9, 0x0e, 0x59, 0xa1, 0x14, 0xe8, 0x9d, 0xc1, 0xb3, 0x27, 0x62, 0x8f, 0x66, 0xe8, 0xe2, + 0xc9, 0xe1, 0x03, 0x47, 0x4f, 0x4e, 0xc3, 0x04, 0x3f, 0x72, 0xe7, 0xc7, 0x15, 0xfc, 0x62, 0xfe, + 0x12, 0xab, 0x58, 0x16, 0x41, 0x85, 0xfc, 0x8b, 0x31, 0x90, 0x7a, 0xb5, 0xf2, 0xed, 0x6c, 0x00, + 0x31, 0x8a, 0x44, 0xfb, 0x03, 0x37, 0x6e, 0xb3, 0x91, 0x2f, 0x90, 0x52, 0xff, 0xce, 0xed, 0xf7, + 0xc7, 0x21, 0x1f, 0xc8, 0xe9, 0xa1, 0xc7, 0x42, 0x47, 0x40, 0xe7, 0x0e, 0xca, 0xff, 0x05, 0xce, + 0x80, 0x86, 0x3a, 0x16, 0x3f, 0x7c, 0xc7, 0xde, 0xfc, 0x43, 0xfa, 0x83, 0xbf, 0xf6, 0x49, 0x0d, + 0xf9, 0xda, 0xe7, 0x47, 0x62, 0x90, 0xf5, 0x96, 0xee, 0xc3, 0x66, 0xf3, 0x8f, 0x40, 0x9a, 0xaf, + 0x4e, 0x2c, 0x9d, 0xcf, 0x9f, 0x06, 0xe6, 0x42, 0xcb, 0x90, 0x15, 0x7f, 0xd1, 0x86, 0x07, 0xa2, + 0xde, 0xf3, 0xe9, 0x27, 0x21, 0x1f, 0xd8, 0x58, 0x21, 0x76, 0x62, 0xb5, 0xfe, 0xac, 0x34, 0x56, + 0xce, 0xdc, 0xbc, 0x35, 0x97, 0x58, 0xc5, 0x37, 0xc8, 0x0c, 0x53, 0xea, 0xb5, 0xcb, 0xf5, 0xda, + 0x33, 0x52, 0xac, 0x9c, 0xbf, 0x79, 0x6b, 0x2e, 0xa3, 0x60, 0x9a, 0xbe, 0x3a, 0xfd, 0x0c, 0x94, + 0x7a, 0x06, 0x26, 0x6c, 0xdf, 0x11, 0x14, 0x17, 0x37, 0xd7, 0x97, 0x97, 0x6a, 0x95, 0x8d, 0xba, + 0xca, 0x8e, 0xd3, 0xa1, 0xa3, 0x30, 0xb9, 0xbc, 0x74, 0xe9, 0xf2, 0x86, 0x5a, 0x5b, 0x5e, 0xaa, + 0xaf, 0x6e, 0xa8, 0x95, 0x8d, 0x8d, 0x4a, 0xed, 0x19, 0x29, 0x7e, 0xf6, 0xbb, 0x00, 0xa5, 0x4a, + 0xb5, 0xb6, 0x44, 0xd6, 0x67, 0x9d, 0x5f, 0x9a, 0x5e, 0x83, 0x24, 0x4d, 0x05, 0x1c, 0x78, 0x54, + 0xa4, 0x7c, 0x70, 0x6e, 0x13, 0x5d, 0x84, 0x14, 0xcd, 0x12, 0xa0, 0x83, 0xcf, 0x8e, 0x94, 0x23, + 0x92, 0x9d, 0xa4, 0x31, 0x74, 0x3a, 0x1d, 0x78, 0x98, 0xa4, 0x7c, 0x70, 0xee, 0x13, 0x29, 0x90, + 0xf3, 0xa3, 0x8c, 0xe8, 0xc3, 0x15, 0xe5, 0x11, 0xac, 0x23, 0x5a, 0x86, 0x8c, 0x08, 0x0c, 0xa3, + 0x8e, 0x7b, 0x94, 0x23, 0x93, 0x93, 0x44, 0x5c, 0x2c, 0x80, 0x3f, 0xf8, 0xec, 0x4a, 0x39, 0x22, + 0xd3, 0x8a, 0x96, 0xbc, 0x43, 0xf8, 0x11, 0x47, 0x38, 0xca, 0x51, 0xc9, 0x46, 0x22, 0x34, 0x3f, + 0x35, 0x12, 0x7d, 0x22, 0xa7, 0x3c, 0x42, 0x12, 0x19, 0x6d, 0x02, 0x04, 0xc2, 0xf5, 0x11, 0x8e, + 0xda, 0x94, 0x47, 0x49, 0x0e, 0xa3, 0x35, 0xc8, 0x7a, 0xd1, 0x53, 0xe4, 0xc1, 0x97, 0x72, 0x74, + 0x96, 0x16, 0xbd, 0x07, 0x0a, 0xe1, 0xa8, 0x61, 0xb4, 0xe3, 0x2c, 0xe5, 0x11, 0xd3, 0xaf, 0x04, + 0x3f, 0x1c, 0x42, 0x8c, 0x76, 0xbc, 0xa5, 0x3c, 0x62, 0x36, 0x16, 0xbd, 0x08, 0x13, 0xfd, 0x2e, + 0xfe, 0xe8, 0xa7, 0x5d, 0xca, 0x87, 0xc8, 0xcf, 0xa2, 0x0e, 0xa0, 0x01, 0xa1, 0xc1, 0x21, 0x0e, + 0xbf, 0x94, 0x0f, 0x93, 0xae, 0x45, 0x2d, 0x28, 0xf5, 0xfa, 0xdb, 0xa3, 0x1e, 0x86, 0x29, 0x8f, + 0x9c, 0xba, 0x65, 0x6f, 0x09, 0xfb, 0xe9, 0xa3, 0x1e, 0x8e, 0x29, 0x8f, 0x9c, 0xc9, 0xad, 0x56, + 0x86, 0x9e, 0x6f, 0x3c, 0x71, 0xe0, 0xf9, 0x46, 0xff, 0xc4, 0xa2, 0x77, 0xa6, 0xf1, 0x9f, 0x3e, + 0x0c, 0xf7, 0xf2, 0xcb, 0x04, 0x1c, 0x57, 0xbb, 0xa6, 0x1b, 0x3b, 0xde, 0xed, 0x10, 0xfc, 0x99, + 0x1f, 0x6e, 0x3c, 0xc2, 0x2f, 0x2c, 0x10, 0xa5, 0x11, 0x77, 0x44, 0x0c, 0xbd, 0x35, 0x2b, 0xea, + 0x10, 0x72, 0xf4, 0xd1, 0xc5, 0x03, 0xee, 0x9f, 0x88, 0xb8, 0xe5, 0x62, 0xc0, 0xfd, 0x14, 0x11, + 0x87, 0x30, 0x0f, 0x3a, 0xef, 0x29, 0x7f, 0x38, 0x06, 0xc5, 0xcb, 0xba, 0xe3, 0x9a, 0xb6, 0xde, + 0xd4, 0xda, 0x74, 0xc5, 0xb8, 0x30, 0xea, 0x47, 0x1e, 0xd5, 0x1c, 0x71, 0x46, 0xf8, 0xa5, 0x16, + 0xfc, 0x60, 0xc8, 0x22, 0xa4, 0xaf, 0x6b, 0x6d, 0xf6, 0x89, 0x45, 0xf0, 0xf2, 0x9a, 0x5e, 0x99, + 0x07, 0xbc, 0xa4, 0x20, 0x0a, 0xe3, 0x95, 0x5f, 0xa5, 0x87, 0xb8, 0x3b, 0x1d, 0xdd, 0x61, 0x7f, + 0x73, 0xda, 0xc5, 0x0e, 0x5a, 0x87, 0xa4, 0xad, 0xb9, 0x3c, 0xa8, 0xa9, 0xbe, 0x83, 0x5f, 0x45, + 0x71, 0x7f, 0xf4, 0x85, 0x12, 0xf3, 0xfd, 0xb7, 0x55, 0x50, 0x24, 0xf4, 0x2c, 0x64, 0x3b, 0xda, + 0x9e, 0x4a, 0x51, 0xe3, 0x6f, 0x02, 0x6a, 0xa6, 0xa3, 0xed, 0x91, 0xb6, 0x92, 0x19, 0x44, 0x80, + 0x9b, 0xbb, 0x9a, 0xb1, 0x83, 0x19, 0x7e, 0xe2, 0x4d, 0xc0, 0x2f, 0x74, 0xb4, 0xbd, 0x1a, 0xc5, + 0x24, 0x6f, 0xe1, 0xb7, 0x7c, 0xfc, 0x56, 0x8c, 0xc7, 0xae, 0x54, 0x54, 0x48, 0x03, 0xa9, 0xe9, + 0x3d, 0xd1, 0x57, 0x8b, 0x3c, 0xfe, 0x89, 0x61, 0x23, 0xd1, 0x23, 0xe8, 0x6a, 0x81, 0x34, 0xf2, + 0x2b, 0xaf, 0xcd, 0xc6, 0xd8, 0x98, 0x94, 0x9a, 0x3d, 0x03, 0x71, 0x05, 0xf2, 0x2c, 0x7d, 0xa6, + 0x52, 0x9f, 0x35, 0x1e, 0xe9, 0xb3, 0x16, 0x84, 0xcf, 0xca, 0x00, 0x81, 0x71, 0x93, 0x7a, 0xde, + 0x87, 0x57, 0x63, 0x90, 0x5f, 0x0c, 0x5c, 0x4e, 0x35, 0x0d, 0x99, 0x8e, 0x69, 0xe8, 0xd7, 0xb0, + 0xed, 0x6d, 0xc4, 0xb0, 0x47, 0xe2, 0x57, 0xb2, 0x3f, 0x32, 0xe4, 0xee, 0x8b, 0xab, 0x17, 0xc4, + 0x33, 0xe1, 0xba, 0x81, 0xb7, 0x1c, 0x5d, 0x48, 0x5b, 0x11, 0x8f, 0xe8, 0x14, 0x48, 0x0e, 0x6e, + 0x76, 0x6d, 0xdd, 0xdd, 0x57, 0x9b, 0xa6, 0xe1, 0x6a, 0x4d, 0x97, 0xa7, 0x4b, 0x4b, 0xa2, 0xbc, + 0xc6, 0x8a, 0x09, 0x48, 0x0b, 0xbb, 0x9a, 0xde, 0x66, 0xe7, 0xbc, 0x72, 0x8a, 0x78, 0xe4, 0x4d, + 0xfd, 0xd5, 0x4c, 0x30, 0x16, 0xac, 0x81, 0x64, 0x5a, 0xd8, 0x0e, 0x7d, 0xe3, 0xc6, 0xf4, 0x73, + 0xfa, 0x77, 0x3f, 0xff, 0xd0, 0x14, 0x17, 0x38, 0xdf, 0x71, 0x67, 0x77, 0x31, 0x2b, 0x25, 0xc1, + 0x21, 0x3e, 0x7e, 0x7b, 0x3e, 0xb4, 0xf5, 0xd2, 0xdd, 0xf2, 0xbf, 0xb1, 0x9f, 0xea, 0x13, 0x6a, + 0xc5, 0xd8, 0xaf, 0x4e, 0xff, 0x8e, 0x0f, 0xed, 0xc7, 0x8a, 0xcf, 0xe0, 0xfd, 0xe0, 0x3e, 0x0c, + 0x85, 0x21, 0x2e, 0xfb, 0x8b, 0x9a, 0xde, 0x16, 0x7f, 0x37, 0x4d, 0xe1, 0x4f, 0x68, 0xc1, 0xcb, + 0xbb, 0xb0, 0xbf, 0x87, 0x2e, 0x0f, 0xd3, 0x8d, 0xaa, 0x69, 0xb4, 0xc2, 0x29, 0x16, 0xb4, 0x01, + 0x69, 0xd7, 0xbc, 0x86, 0x0d, 0x2e, 0xa0, 0x43, 0xe9, 0x74, 0xff, 0x85, 0x33, 0x1c, 0x0b, 0xed, + 0x80, 0xd4, 0xc2, 0x6d, 0xbc, 0xc3, 0xbe, 0xd0, 0xda, 0xd5, 0x6c, 0xcc, 0xbe, 0xda, 0xfc, 0x5e, + 0xe7, 0x4c, 0xc9, 0x43, 0x6d, 0x50, 0x50, 0xb4, 0x1e, 0xbe, 0x1a, 0x2d, 0xc3, 0xb7, 0xe1, 0x87, + 0xf4, 0x3f, 0xa0, 0x95, 0x41, 0x3b, 0x15, 0xba, 0x4a, 0xed, 0x14, 0x48, 0x5d, 0x63, 0xcb, 0x34, + 0xe8, 0x9f, 0x38, 0xe2, 0x11, 0x55, 0x96, 0x6d, 0xd5, 0x79, 0xe5, 0x7c, 0xab, 0x6e, 0x1d, 0x8a, + 0x3e, 0x29, 0x9d, 0x3d, 0xb9, 0xc3, 0xce, 0x9e, 0x82, 0x07, 0x40, 0x48, 0xd0, 0x0a, 0x80, 0x3f, + 0x3f, 0xbd, 0xed, 0xfc, 0xc8, 0x99, 0x1e, 0xec, 0x4c, 0x00, 0x00, 0xb5, 0x61, 0xb2, 0xa3, 0x1b, + 0xaa, 0x83, 0xdb, 0xdb, 0x2a, 0x97, 0x1c, 0xc1, 0xcd, 0xbf, 0x09, 0x23, 0x3d, 0xd1, 0xd1, 0x8d, + 0x06, 0x6e, 0x6f, 0x2f, 0x7a, 0xb0, 0xe8, 0x1d, 0x70, 0xdc, 0x17, 0x87, 0x69, 0xa8, 0xbb, 0x66, + 0xbb, 0xa5, 0xda, 0x78, 0x5b, 0x6d, 0xd2, 0xfb, 0x8e, 0xc6, 0xa9, 0x10, 0x8f, 0x7a, 0x24, 0x6b, + 0xc6, 0x65, 0xb3, 0xdd, 0x52, 0xf0, 0x76, 0x8d, 0x54, 0xa3, 0x7b, 0xc0, 0x97, 0x85, 0xaa, 0xb7, + 0x9c, 0xe9, 0xc2, 0x5c, 0xe2, 0x64, 0x52, 0x19, 0xf7, 0x0a, 0x97, 0x5a, 0xce, 0x42, 0xf6, 0x03, + 0xaf, 0xcc, 0x8e, 0x7d, 0xf3, 0x95, 0xd9, 0x31, 0xf9, 0x22, 0xbd, 0x9d, 0x83, 0x4f, 0x3a, 0xec, + 0xa0, 0xf3, 0x90, 0xd3, 0xc4, 0x03, 0xfb, 0x2e, 0xe4, 0x80, 0x49, 0xeb, 0x93, 0xca, 0xaf, 0xc4, + 0x20, 0xbd, 0x78, 0x75, 0x5d, 0xd3, 0x6d, 0x54, 0x87, 0x09, 0x5f, 0x69, 0x47, 0x9d, 0xff, 0xbe, + 0x9e, 0x0b, 0x03, 0x50, 0x1f, 0xf6, 0xa9, 0xec, 0x81, 0x30, 0xbd, 0x1f, 0xd1, 0x06, 0xba, 0x7a, + 0x05, 0x32, 0xac, 0x85, 0x0e, 0x7a, 0x1a, 0x52, 0x16, 0xf9, 0xc1, 0xd3, 0xfd, 0x33, 0x43, 0x15, + 0x9d, 0xd2, 0x07, 0xd5, 0x82, 0xf1, 0xc9, 0x7f, 0x1e, 0x03, 0x58, 0xbc, 0x7a, 0x75, 0xc3, 0xd6, + 0xad, 0x36, 0x76, 0xdf, 0xac, 0x2e, 0x2f, 0xc3, 0x1d, 0x81, 0x0f, 0x32, 0xed, 0xe6, 0xc8, 0xdd, + 0x9e, 0xf4, 0x3f, 0xc9, 0xb4, 0x9b, 0x03, 0xd1, 0x5a, 0x8e, 0xeb, 0xa1, 0x25, 0x46, 0x46, 0x5b, + 0x74, 0xdc, 0x7e, 0x39, 0x3e, 0x07, 0x79, 0xbf, 0xeb, 0x0e, 0x5a, 0x82, 0xac, 0xcb, 0x7f, 0x73, + 0x71, 0xca, 0xc3, 0xc5, 0x29, 0xd8, 0x82, 0x22, 0xf5, 0xd8, 0xe5, 0xff, 0x4d, 0xa4, 0xea, 0x4f, + 0x84, 0xbf, 0x54, 0x8a, 0x44, 0x2c, 0x3c, 0xb7, 0xc0, 0x6f, 0x86, 0xd7, 0xc2, 0xb1, 0x02, 0x62, + 0xfd, 0xd1, 0x38, 0x4c, 0x6e, 0x8a, 0x49, 0xfa, 0x97, 0x56, 0x0a, 0x9b, 0x90, 0xc1, 0x86, 0x6b, + 0xeb, 0x58, 0xec, 0xed, 0x3d, 0x3c, 0x6c, 0xb0, 0x07, 0xf4, 0x85, 0xfe, 0xe1, 0xdf, 0xe0, 0xd0, + 0x0b, 0xac, 0x80, 0x18, 0x7e, 0x23, 0x01, 0xd3, 0xc3, 0x58, 0xd1, 0x09, 0x28, 0x35, 0x6d, 0x4c, + 0x0b, 0xd4, 0x50, 0xee, 0xbb, 0x28, 0x8a, 0xf9, 0x92, 0xa2, 0x00, 0x71, 0xd0, 0x88, 0x56, 0x11, + 0xd2, 0xdb, 0xf3, 0xc8, 0x8a, 0x3e, 0x02, 0x5d, 0x54, 0x30, 0x94, 0xc4, 0x61, 0xf6, 0x2d, 0xad, + 0xad, 0x19, 0xcd, 0xdb, 0xf1, 0x5f, 0xfb, 0x57, 0x00, 0x71, 0x42, 0xbe, 0xca, 0x30, 0xd1, 0x55, + 0xc8, 0x08, 0xf8, 0xe4, 0x9b, 0x00, 0x2f, 0xc0, 0xd0, 0xdd, 0x30, 0x1e, 0x5c, 0x18, 0xa8, 0x9f, + 0x92, 0x54, 0xf2, 0x81, 0x75, 0x21, 0x6a, 0xe5, 0x49, 0x1f, 0xb8, 0xf2, 0x70, 0x57, 0xf0, 0xd7, + 0x13, 0x30, 0xa1, 0xe0, 0xd6, 0xf7, 0xe1, 0xc0, 0xfd, 0x20, 0x00, 0x9b, 0xd4, 0xc4, 0xd8, 0xde, + 0xc6, 0xd8, 0xf5, 0x1b, 0x89, 0x1c, 0xc3, 0x5b, 0x74, 0xdc, 0xb7, 0x6b, 0xf4, 0xfe, 0x55, 0x1c, + 0xc6, 0x83, 0xa3, 0xf7, 0x7d, 0xb0, 0xb2, 0xa1, 0x55, 0xdf, 0xa4, 0xb1, 0xe3, 0xe6, 0xa7, 0x86, + 0x99, 0xb4, 0x3e, 0xbd, 0x8e, 0xb0, 0x65, 0x1f, 0x4e, 0x40, 0x9a, 0x9f, 0xfd, 0x5a, 0xeb, 0xf3, + 0x71, 0x63, 0x51, 0x1f, 0xfc, 0x16, 0xc4, 0x07, 0xbf, 0x03, 0x5d, 0xdc, 0xfb, 0xa0, 0x48, 0xa2, + 0xe9, 0xd0, 0x81, 0xb2, 0xd8, 0xc9, 0x02, 0x0d, 0x87, 0xfd, 0xe3, 0xcf, 0x68, 0x16, 0xf2, 0x84, + 0xcc, 0xb7, 0xd9, 0x84, 0x06, 0x3a, 0xda, 0x5e, 0x9d, 0x95, 0xa0, 0x87, 0x00, 0xed, 0x7a, 0x99, + 0x0e, 0xd5, 0x17, 0x04, 0xa1, 0x9b, 0xf0, 0x6b, 0x04, 0xf9, 0x5d, 0x00, 0xa4, 0x15, 0x2a, 0xbb, + 0x92, 0x93, 0xdf, 0xb2, 0x4a, 0x4a, 0x16, 0xe9, 0xb5, 0x9c, 0x3f, 0xc4, 0x3c, 0xe5, 0x9e, 0x60, + 0x9b, 0xc7, 0x2c, 0xcb, 0x87, 0x9b, 0x0c, 0xdf, 0x79, 0x6d, 0xb6, 0xbc, 0xaf, 0x75, 0xda, 0x0b, + 0xf2, 0x00, 0x48, 0x99, 0x7a, 0xce, 0xe1, 0x20, 0x7d, 0xe1, 0x5e, 0xa2, 0xc3, 0x37, 0xbf, 0xf1, + 0xd9, 0xd3, 0xc7, 0x03, 0x78, 0x7b, 0x5e, 0xfa, 0x8b, 0x0d, 0x85, 0xfc, 0x99, 0x18, 0x20, 0x7f, + 0x61, 0xf1, 0x0e, 0x7b, 0xaf, 0xd0, 0x23, 0xc0, 0xc2, 0xb7, 0x8f, 0x1d, 0x1c, 0x33, 0xf8, 0xfc, + 0xa1, 0x98, 0x21, 0x30, 0x71, 0xde, 0xe9, 0x9b, 0x71, 0xf1, 0x69, 0xf7, 0x80, 0x8b, 0x58, 0xe7, + 0x6b, 0xa6, 0x1e, 0x82, 0x10, 0x4c, 0x74, 0x3e, 0x8e, 0xc9, 0xaf, 0xc5, 0xe0, 0x58, 0x9f, 0xd6, + 0x79, 0x4d, 0x6e, 0x02, 0xb2, 0x03, 0x95, 0xfc, 0x0f, 0xed, 0xc7, 0xf8, 0x97, 0x8c, 0xb7, 0xa3, + 0xc4, 0x13, 0x76, 0x9f, 0xe9, 0x7e, 0x8b, 0xd6, 0x23, 0x6e, 0x70, 0x7e, 0x3b, 0x06, 0x53, 0xc1, + 0x16, 0x79, 0x7d, 0x6b, 0xc0, 0x78, 0xb0, 0x2d, 0xbc, 0x57, 0xf7, 0x8e, 0xd2, 0xab, 0x60, 0x87, + 0x42, 0x20, 0xa4, 0x2f, 0x42, 0xc3, 0x59, 0x22, 0xee, 0x91, 0x91, 0xa5, 0xe4, 0x6d, 0x32, 0x0c, + 0x9a, 0xf2, 0x6c, 0xb0, 0x3e, 0x18, 0x87, 0xe4, 0xba, 0x69, 0xb6, 0xd1, 0x8f, 0xc4, 0x60, 0xc2, + 0x30, 0x5d, 0x95, 0xcc, 0x0b, 0xdc, 0x52, 0x79, 0x62, 0x80, 0x59, 0xcd, 0xab, 0x87, 0x93, 0xde, + 0xb7, 0x5e, 0x9b, 0xed, 0x87, 0x1a, 0x74, 0x7f, 0x6e, 0xc9, 0x30, 0xdd, 0x2a, 0x25, 0xda, 0x60, + 0xb9, 0x83, 0x1b, 0x50, 0x08, 0xbf, 0x9f, 0x99, 0x5a, 0xe5, 0xd0, 0xef, 0x2f, 0x44, 0xbe, 0x7b, + 0x7c, 0x2b, 0xf0, 0x62, 0x76, 0x8b, 0xe5, 0x1f, 0x93, 0xc1, 0x7d, 0x1e, 0xa4, 0xab, 0xbd, 0xc7, + 0xce, 0xea, 0x90, 0x39, 0xec, 0x09, 0xb6, 0xa0, 0xc4, 0x39, 0xef, 0xe9, 0x2f, 0xc4, 0x00, 0xfc, + 0x34, 0x0c, 0x7a, 0x10, 0x8e, 0x56, 0xd7, 0x56, 0x17, 0xd5, 0xc6, 0x46, 0x65, 0x63, 0xb3, 0x11, + 0xbe, 0x71, 0x5d, 0x5c, 0x34, 0xe2, 0x58, 0xb8, 0xa9, 0x6f, 0xeb, 0xb8, 0x85, 0xee, 0x87, 0xa9, + 0x30, 0x35, 0x79, 0xaa, 0x2f, 0x4a, 0xb1, 0xf2, 0xf8, 0xcd, 0x5b, 0x73, 0x59, 0xe6, 0x7e, 0xe2, + 0x16, 0x3a, 0x09, 0x77, 0xf4, 0xd3, 0x2d, 0xad, 0x5e, 0x92, 0xe2, 0xe5, 0xc2, 0xcd, 0x5b, 0x73, + 0x39, 0xcf, 0x4f, 0x45, 0x32, 0xa0, 0x20, 0x25, 0xc7, 0x4b, 0x94, 0xe1, 0xe6, 0xad, 0xb9, 0x34, + 0x1b, 0x96, 0x72, 0xf2, 0x03, 0x9f, 0x9c, 0x19, 0x3b, 0xfd, 0x6e, 0x80, 0x25, 0x63, 0xdb, 0xd6, + 0xe8, 0x9f, 0x1d, 0x46, 0x65, 0x38, 0xb2, 0xb4, 0x7a, 0x51, 0xa9, 0xd4, 0x36, 0x96, 0xd6, 0x56, + 0x7b, 0x2e, 0x8a, 0x0f, 0xd7, 0x2d, 0xae, 0x6d, 0x56, 0x97, 0xeb, 0x6a, 0x63, 0xe9, 0xd2, 0x2a, + 0xdb, 0xbe, 0x0d, 0xd5, 0x3d, 0xbb, 0xba, 0xb1, 0xb4, 0x52, 0x97, 0xe2, 0xd5, 0x8b, 0x43, 0x37, + 0x10, 0x1e, 0x3c, 0x70, 0xc0, 0x7d, 0x2b, 0x19, 0xda, 0x45, 0xf8, 0x7f, 0x01, 0x00, 0x00, 0xff, + 0xff, 0xdb, 0x40, 0x83, 0x0b, 0x0e, 0x97, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) From afea2541cb105f0fbbfed17ad5a571f93b3906da Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 6 Feb 2023 17:49:08 -0600 Subject: [PATCH 043/122] ModuleAccount parity achieved through annotations --- api/amino/amino.pulsar.go | 33 +- api/cosmos/auth/v1beta1/auth.pulsar.go | 153 ++-- proto/amino/amino.proto | 2 +- proto/cosmos/auth/v1beta1/auth.proto | 23 +- types/tx/amino/amino.pb.go | 46 +- x/auth/types/auth.pb.go | 95 +-- x/staking/types/staking.pb.go | 1014 ++++++++++++------------ x/tx/aminojson/json_marshal.go | 172 +++- 8 files changed, 860 insertions(+), 678 deletions(-) diff --git a/api/amino/amino.pulsar.go b/api/amino/amino.pulsar.go index 143968edb1a1..fd81ce7e04c0 100644 --- a/api/amino/amino.pulsar.go +++ b/api/amino/amino.pulsar.go @@ -66,8 +66,8 @@ var file_amino_amino_proto_extTypes = []protoimpl.ExtensionInfo{ ExtendedType: (*descriptorpb.FieldOptions)(nil), ExtensionType: (*bool)(nil), Field: 11110006, - Name: "amino.embedded", - Tag: "varint,11110006,opt,name=embedded", + Name: "amino.embed", + Tag: "varint,11110006,opt,name=embed", Filename: "amino/amino.proto", }, } @@ -149,8 +149,8 @@ var ( // // optional bool dont_omitempty = 11110005; E_DontOmitempty = &file_amino_amino_proto_extTypes[4] - // optional bool embedded = 11110006; - E_Embedded = &file_amino_amino_proto_extTypes[5] + // optional bool embed = 11110006; + E_Embed = &file_amino_amino_proto_extTypes[5] ) var File_amino_amino_proto protoreflect.FileDescriptor @@ -180,18 +180,17 @@ var file_amino_amino_proto_rawDesc = []byte{ 0x6d, 0x70, 0x74, 0x79, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf5, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x6f, - 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x3c, 0x0a, 0x08, 0x65, - 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf6, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x65, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, 0x64, 0x42, 0x63, 0x0a, 0x09, 0x63, 0x6f, 0x6d, - 0x2e, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x42, 0x0a, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, - 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0xa2, 0x02, 0x03, 0x41, - 0x58, 0x58, 0xaa, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0xca, 0x02, 0x05, 0x41, 0x6d, 0x69, - 0x6e, 0x6f, 0xe2, 0x02, 0x11, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x36, 0x0a, 0x05, 0x65, + 0x6d, 0x62, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0xf6, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x6d, + 0x62, 0x65, 0x64, 0x42, 0x63, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6d, 0x69, 0x6e, 0x6f, + 0x42, 0x0a, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x05, 0x41, + 0x6d, 0x69, 0x6e, 0x6f, 0xca, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0xe2, 0x02, 0x11, 0x41, + 0x6d, 0x69, 0x6e, 0x6f, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_amino_amino_proto_goTypes = []interface{}{ @@ -204,7 +203,7 @@ var file_amino_amino_proto_depIdxs = []int32{ 1, // 2: amino.encoding:extendee -> google.protobuf.FieldOptions 1, // 3: amino.field_name:extendee -> google.protobuf.FieldOptions 1, // 4: amino.dont_omitempty:extendee -> google.protobuf.FieldOptions - 1, // 5: amino.embedded:extendee -> google.protobuf.FieldOptions + 1, // 5: amino.embed:extendee -> google.protobuf.FieldOptions 6, // [6:6] is the sub-list for method output_type 6, // [6:6] is the sub-list for method input_type 6, // [6:6] is the sub-list for extension type_name diff --git a/api/cosmos/auth/v1beta1/auth.pulsar.go b/api/cosmos/auth/v1beta1/auth.pulsar.go index bba61615d462..c5da623d1045 100644 --- a/api/cosmos/auth/v1beta1/auth.pulsar.go +++ b/api/cosmos/auth/v1beta1/auth.pulsar.go @@ -2630,79 +2630,86 @@ var file_cosmos_auth_v1beta1_auth_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa1, 0x02, 0x0a, 0x0b, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x56, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, - 0x27, 0xea, 0xde, 0x1f, 0x14, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x2c, - 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa2, 0xe7, 0xb0, 0x2a, 0x0a, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, - 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x3a, 0x43, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, - 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x8a, 0xe7, 0xb0, - 0x2a, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, - 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd9, 0x01, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0c, 0x62, 0x61, - 0x73, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, - 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x47, 0x88, 0xa0, 0x1f, - 0x00, 0xca, 0xb4, 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x5c, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x72, - 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x72, - 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0c, 0x52, 0x0e, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, - 0x79, 0x73, 0x22, 0xd7, 0x02, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, - 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, - 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x4d, - 0x65, 0x6d, 0x6f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, - 0x0c, 0x74, 0x78, 0x5f, 0x73, 0x69, 0x67, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x78, 0x53, 0x69, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, - 0x30, 0x0a, 0x15, 0x74, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, - 0x70, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, - 0x74, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x50, 0x65, 0x72, 0x42, 0x79, 0x74, - 0x65, 0x12, 0x4f, 0x0a, 0x17, 0x73, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, - 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x04, 0x42, 0x18, 0xe2, 0xde, 0x1f, 0x14, 0x53, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x52, 0x14, 0x73, 0x69, - 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x64, 0x32, 0x35, 0x35, - 0x31, 0x39, 0x12, 0x55, 0x0a, 0x19, 0x73, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x1a, 0xe2, 0xde, 0x1f, 0x16, 0x53, 0x69, 0x67, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, - 0x31, 0x52, 0x16, 0x73, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, - 0x53, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x3a, 0x21, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, - 0xe7, 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, - 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xc4, 0x01, 0x0a, - 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, - 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, 0x58, 0xaa, 0x02, 0x13, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, - 0x68, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xec, 0x02, 0x0a, 0x0b, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1d, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x6c, 0x0a, + 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x3d, 0xea, 0xde, 0x1f, 0x14, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x5f, 0x6b, 0x65, 0x79, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x9a, 0xe7, + 0xb0, 0x2a, 0x0c, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0xa2, + 0xe7, 0xb0, 0x2a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x3d, 0x0a, 0x0e, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x16, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x73, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x16, 0x9a, 0xe7, + 0xb0, 0x2a, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3a, 0x43, + 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1c, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x16, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x09, 0xd0, + 0xde, 0x1f, 0x01, 0xb0, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x05, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x27, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x05, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x70, 0x65, + 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x5a, 0x88, 0xa0, 0x1f, 0x00, 0xca, + 0xb4, 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x92, 0xe7, 0xb0, 0x2a, 0x0e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x5c, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, + 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, + 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, + 0x65, 0x79, 0x73, 0x22, 0xd7, 0x02, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, + 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x61, + 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6d, 0x61, 0x78, + 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x12, 0x20, + 0x0a, 0x0c, 0x74, 0x78, 0x5f, 0x73, 0x69, 0x67, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x78, 0x53, 0x69, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x30, 0x0a, 0x15, 0x74, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x11, 0x74, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x50, 0x65, 0x72, 0x42, 0x79, + 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x17, 0x73, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x04, 0x42, 0x18, 0xe2, 0xde, 0x1f, 0x14, 0x53, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x52, 0x14, 0x73, + 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x64, 0x32, 0x35, + 0x35, 0x31, 0x39, 0x12, 0x55, 0x0a, 0x19, 0x73, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, + 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x1a, 0xe2, 0xde, 0x1f, 0x16, 0x53, 0x69, 0x67, 0x56, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, + 0x6b, 0x31, 0x52, 0x16, 0x73, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, + 0x74, 0x53, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x3a, 0x21, 0xe8, 0xa0, 0x1f, 0x01, + 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, + 0x78, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xc4, 0x01, + 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, 0x41, 0x75, 0x74, 0x68, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, + 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x61, 0x75, 0x74, + 0x68, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, 0x58, 0xaa, 0x02, + 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, + 0x74, 0x68, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/amino/amino.proto b/proto/amino/amino.proto index 19bab85ed564..e78d98309738 100644 --- a/proto/amino/amino.proto +++ b/proto/amino/amino.proto @@ -77,5 +77,5 @@ extend google.protobuf.FieldOptions { // out == {"baz":""} bool dont_omitempty = 11110005; - bool embedded = 11110006; + bool embed = 11110006; } diff --git a/proto/cosmos/auth/v1beta1/auth.proto b/proto/cosmos/auth/v1beta1/auth.proto index 78edb3a0bfa5..b11cb65deea0 100644 --- a/proto/cosmos/auth/v1beta1/auth.proto +++ b/proto/cosmos/auth/v1beta1/auth.proto @@ -18,21 +18,30 @@ message BaseAccount { option (cosmos_proto.implements_interface) = "cosmos.auth.v1beta1.AccountI"; - string address = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; - google.protobuf.Any pub_key = 2 [(gogoproto.jsontag) = "public_key,omitempty", (amino.field_name) = "public_key"]; - uint64 account_number = 3; - uint64 sequence = 4; + string address = 1 [ + (cosmos_proto.scalar) = "cosmos.AddressString", + (amino.dont_omitempty) = true]; + + google.protobuf.Any pub_key = 2 [ + (gogoproto.jsontag) = "public_key,omitempty", + (amino.field_name) = "public_key", + (amino.encoding) = "empty_string", + (amino.dont_omitempty) = true]; + + uint64 account_number = 3 [(amino.dont_omitempty) = true, (amino.encoding) = "json_default"]; + uint64 sequence = 4 [(amino.dont_omitempty) = true, (amino.encoding) = "json_default"]; } // ModuleAccount defines an account for modules that holds coins on a pool. message ModuleAccount { option (amino.name) = "cosmos-sdk/ModuleAccount"; + option (amino.message_encoding) = "module_account"; option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.auth.v1beta1.ModuleAccountI"; - BaseAccount base_account = 1 [(gogoproto.embed) = true]; - string name = 2; - repeated string permissions = 3; + BaseAccount base_account = 1 [(gogoproto.embed) = true, (amino.embed) = true]; + string name = 2 [(amino.dont_omitempty) = true]; + repeated string permissions = 3 [(amino.dont_omitempty) = true]; } // ModuleCredential represents a unclaimable pubkey for base accounts controlled by modules. diff --git a/types/tx/amino/amino.pb.go b/types/tx/amino/amino.pb.go index 1de7cc0cfc81..ec6f2c2f2942 100644 --- a/types/tx/amino/amino.pb.go +++ b/types/tx/amino/amino.pb.go @@ -66,12 +66,12 @@ var E_DontOmitempty = &proto.ExtensionDesc{ Filename: "amino/amino.proto", } -var E_Embedded = &proto.ExtensionDesc{ +var E_Embed = &proto.ExtensionDesc{ ExtendedType: (*descriptorpb.FieldOptions)(nil), ExtensionType: (*bool)(nil), Field: 11110006, - Name: "amino.embedded", - Tag: "varint,11110006,opt,name=embedded", + Name: "amino.embed", + Tag: "varint,11110006,opt,name=embed", Filename: "amino/amino.proto", } @@ -81,30 +81,30 @@ func init() { proto.RegisterExtension(E_Encoding) proto.RegisterExtension(E_FieldName) proto.RegisterExtension(E_DontOmitempty) - proto.RegisterExtension(E_Embedded) + proto.RegisterExtension(E_Embed) } func init() { proto.RegisterFile("amino/amino.proto", fileDescriptor_115c1f70afec6bc5) } var fileDescriptor_115c1f70afec6bc5 = []byte{ // 300 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0x4d, 0x4b, 0xc3, 0x30, - 0x18, 0x80, 0x57, 0x70, 0xb2, 0x05, 0xfc, 0xda, 0x49, 0x04, 0xe3, 0x8e, 0x82, 0xd8, 0x1c, 0x04, - 0x0f, 0x45, 0x10, 0x84, 0xe9, 0x69, 0x0e, 0x76, 0xf4, 0x32, 0xda, 0xe6, 0x5d, 0x0d, 0x2e, 0x79, - 0x4b, 0x93, 0x81, 0xfb, 0x0f, 0x1e, 0xfc, 0x15, 0xfe, 0x16, 0x8f, 0x3b, 0x7a, 0x94, 0xf6, 0x17, - 0xf8, 0x79, 0x96, 0xa6, 0x4d, 0x2f, 0x1e, 0x7a, 0x49, 0x48, 0x78, 0x9e, 0x27, 0xbc, 0x10, 0xb2, - 0x17, 0x4a, 0xa1, 0x90, 0xd9, 0xd5, 0x4f, 0x33, 0x34, 0x38, 0xe8, 0xda, 0xc3, 0xc1, 0x30, 0x41, - 0x4c, 0x16, 0xc0, 0xec, 0x65, 0xb4, 0x9c, 0x33, 0x0e, 0x3a, 0xce, 0x44, 0x6a, 0x30, 0xab, 0xc0, - 0xe0, 0x9c, 0x6c, 0xa8, 0x50, 0xc2, 0xe0, 0xc8, 0xaf, 0x50, 0xdf, 0xa1, 0xfe, 0x18, 0xb4, 0x0e, - 0x13, 0x98, 0xa4, 0x46, 0xa0, 0xd2, 0xfb, 0x1f, 0x4f, 0x2f, 0xdd, 0xa1, 0x77, 0xdc, 0x9f, 0x5a, - 0x3e, 0x18, 0x93, 0x5d, 0x59, 0x01, 0x33, 0x50, 0x31, 0x72, 0xa1, 0x92, 0xf6, 0xc6, 0xa7, 0x6b, - 0xec, 0xd4, 0xee, 0xa8, 0x56, 0x83, 0x0b, 0xd2, 0x6b, 0x32, 0x87, 0xff, 0x32, 0xd7, 0x02, 0x16, - 0xdc, 0x45, 0xbe, 0x5c, 0xa4, 0x31, 0x82, 0x4b, 0x42, 0xe6, 0x25, 0x32, 0xb3, 0xa3, 0xb4, 0xf8, - 0xdf, 0xce, 0xef, 0x5b, 0xe7, 0xb6, 0x9c, 0xe6, 0x86, 0x6c, 0x73, 0x54, 0x66, 0x86, 0x52, 0x18, - 0x90, 0xa9, 0x59, 0xb5, 0x45, 0x7e, 0xaa, 0x48, 0x6f, 0xba, 0x55, 0x7a, 0x13, 0xa7, 0xd9, 0x39, - 0x64, 0x04, 0x9c, 0x03, 0x6f, 0x4b, 0xfc, 0xba, 0x44, 0x63, 0x5c, 0x8d, 0x5e, 0x73, 0xea, 0xad, - 0x73, 0xea, 0xbd, 0xe7, 0xd4, 0x7b, 0x2e, 0x68, 0x67, 0x5d, 0xd0, 0xce, 0x5b, 0x41, 0x3b, 0x77, - 0x27, 0x89, 0x30, 0xf7, 0xcb, 0xc8, 0x8f, 0x51, 0xb2, 0x18, 0xb5, 0x44, 0x5d, 0x6f, 0xa7, 0x9a, - 0x3f, 0x30, 0xb3, 0x4a, 0x41, 0x33, 0xf3, 0x58, 0x7d, 0x81, 0x68, 0xd3, 0x3e, 0x78, 0xf6, 0x17, - 0x00, 0x00, 0xff, 0xff, 0x6d, 0x26, 0x8c, 0xd3, 0x18, 0x02, 0x00, 0x00, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4c, 0xcc, 0xcd, 0xcc, + 0xcb, 0xd7, 0x07, 0x93, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0xac, 0x60, 0x8e, 0x94, 0x42, + 0x7a, 0x7e, 0x7e, 0x7a, 0x4e, 0xaa, 0x3e, 0x58, 0x30, 0xa9, 0x34, 0x4d, 0x3f, 0x25, 0xb5, 0x38, + 0xb9, 0x28, 0xb3, 0xa0, 0x24, 0xbf, 0x08, 0xa2, 0xd0, 0xca, 0x8c, 0x8b, 0x25, 0x2f, 0x31, 0x37, + 0x55, 0x48, 0x5e, 0x0f, 0xa2, 0x54, 0x0f, 0xa6, 0x54, 0xcf, 0x37, 0xb5, 0xb8, 0x38, 0x31, 0x3d, + 0xd5, 0xbf, 0xa0, 0x24, 0x33, 0x3f, 0xaf, 0x58, 0xe2, 0x63, 0xcf, 0x32, 0x56, 0x05, 0x46, 0x0d, + 0xce, 0x20, 0xb0, 0x7a, 0x2b, 0x5f, 0x2e, 0x81, 0x5c, 0x88, 0x82, 0xf8, 0xd4, 0xbc, 0xe4, 0xfc, + 0x94, 0xcc, 0xbc, 0x74, 0xc2, 0x66, 0x7c, 0x82, 0x99, 0xc1, 0x0f, 0xd5, 0xeb, 0x0a, 0xd5, 0x6a, + 0x65, 0xc3, 0xc5, 0x01, 0x37, 0x46, 0x16, 0xc3, 0x18, 0xb7, 0xcc, 0xd4, 0x9c, 0x14, 0x98, 0x21, + 0x9f, 0x61, 0x86, 0xc0, 0x75, 0x58, 0xd9, 0x73, 0x71, 0xa5, 0x81, 0x94, 0xc4, 0x83, 0xbd, 0x42, + 0x40, 0xff, 0x17, 0x98, 0x7e, 0x4e, 0xb0, 0x1e, 0x3f, 0x90, 0x6f, 0xdc, 0xb9, 0xf8, 0x52, 0xf2, + 0xf3, 0x4a, 0xe2, 0xf3, 0x73, 0x33, 0x4b, 0x52, 0x73, 0x0b, 0x4a, 0x2a, 0x09, 0x19, 0xf2, 0x15, + 0x62, 0x08, 0x47, 0x10, 0x2f, 0x48, 0x9f, 0x3f, 0x4c, 0x9b, 0x95, 0x19, 0x17, 0x6b, 0x6a, 0x6e, + 0x52, 0x6a, 0x0a, 0x21, 0xfd, 0xdf, 0x60, 0xfa, 0x21, 0xca, 0x9d, 0x5c, 0x4f, 0x3c, 0x92, 0x63, + 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x09, 0x8f, 0xe5, 0x18, 0x2e, 0x3c, 0x96, + 0x63, 0xb8, 0xf1, 0x58, 0x8e, 0x21, 0x4a, 0x3b, 0x3d, 0xb3, 0x24, 0xa3, 0x34, 0x49, 0x2f, 0x39, + 0x3f, 0x57, 0x3f, 0x39, 0xbf, 0x38, 0x37, 0xbf, 0x18, 0x4a, 0xe9, 0x16, 0xa7, 0x64, 0xeb, 0x97, + 0x54, 0x16, 0xa4, 0x16, 0xeb, 0x97, 0x54, 0x40, 0x22, 0x3f, 0x89, 0x0d, 0x6c, 0x9b, 0x31, 0x20, + 0x00, 0x00, 0xff, 0xff, 0x54, 0x58, 0x30, 0x86, 0x12, 0x02, 0x00, 0x00, } diff --git a/x/auth/types/auth.pb.go b/x/auth/types/auth.pb.go index 7c4bbe2cf1d7..a6663cc93393 100644 --- a/x/auth/types/auth.pb.go +++ b/x/auth/types/auth.pb.go @@ -254,52 +254,55 @@ func init() { func init() { proto.RegisterFile("cosmos/auth/v1beta1/auth.proto", fileDescriptor_7e1f7e915d020d2d) } var fileDescriptor_7e1f7e915d020d2d = []byte{ - // 707 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x54, 0xcf, 0x4e, 0xe3, 0x46, - 0x1c, 0x8e, 0x93, 0x14, 0xca, 0x04, 0x68, 0x31, 0x29, 0x35, 0x51, 0x15, 0xbb, 0x91, 0x2a, 0x52, - 0x54, 0xec, 0x26, 0x15, 0x95, 0xca, 0x8d, 0xa4, 0x55, 0x85, 0x28, 0x14, 0x39, 0x5a, 0x0e, 0xab, - 0x95, 0xac, 0xb1, 0x33, 0x98, 0x11, 0x19, 0x8f, 0xd7, 0x33, 0x46, 0x31, 0x4f, 0x80, 0xf6, 0xb4, - 0x8f, 0xc0, 0xee, 0x13, 0x70, 0xe0, 0x21, 0x56, 0x7b, 0x42, 0x7b, 0xd9, 0xdd, 0x4b, 0xb4, 0x0a, - 0x07, 0xd0, 0x3e, 0xc5, 0xca, 0x33, 0x0e, 0x24, 0x6c, 0x2e, 0x91, 0x7f, 0xdf, 0xf7, 0xfd, 0xfe, - 0x7d, 0xfe, 0xc5, 0xa0, 0xea, 0x51, 0x46, 0x28, 0xb3, 0x60, 0xcc, 0x8f, 0xad, 0xd3, 0x86, 0x8b, - 0x38, 0x6c, 0x88, 0xc0, 0x0c, 0x23, 0xca, 0xa9, 0xba, 0x2c, 0x79, 0x53, 0x40, 0x19, 0x5f, 0x59, - 0x82, 0x04, 0x07, 0xd4, 0x12, 0xbf, 0x52, 0x57, 0x59, 0x95, 0x3a, 0x47, 0x44, 0x56, 0x96, 0x24, - 0xa9, 0xb2, 0x4f, 0x7d, 0x2a, 0xf1, 0xf4, 0x69, 0x94, 0xe0, 0x53, 0xea, 0xf7, 0x90, 0x25, 0x22, - 0x37, 0x3e, 0xb2, 0x60, 0x90, 0x48, 0xaa, 0xf6, 0x2a, 0x0f, 0x4a, 0x2d, 0xc8, 0xd0, 0xb6, 0xe7, - 0xd1, 0x38, 0xe0, 0x6a, 0x13, 0xcc, 0xc2, 0x6e, 0x37, 0x42, 0x8c, 0x69, 0x8a, 0xa1, 0xd4, 0xe7, - 0x5a, 0xda, 0xbb, 0xab, 0x8d, 0x72, 0xd6, 0x63, 0x5b, 0x32, 0x1d, 0x1e, 0xe1, 0xc0, 0xb7, 0x47, - 0x42, 0xf5, 0x10, 0xcc, 0x86, 0xb1, 0xeb, 0x9c, 0xa0, 0x44, 0xcb, 0x1b, 0x4a, 0xbd, 0xd4, 0x2c, - 0x9b, 0xb2, 0xa1, 0x39, 0x6a, 0x68, 0x6e, 0x07, 0x49, 0x6b, 0xed, 0xf3, 0x40, 0x2f, 0x87, 0xb1, - 0xdb, 0xc3, 0x5e, 0xaa, 0xfd, 0x8d, 0x12, 0xcc, 0x11, 0x09, 0x79, 0xf2, 0xfa, 0xf6, 0x72, 0x1d, - 0x3c, 0x10, 0xf6, 0x4c, 0x18, 0xbb, 0xbb, 0x28, 0x51, 0x7f, 0x01, 0x8b, 0x50, 0x8e, 0xe5, 0x04, - 0x31, 0x71, 0x51, 0xa4, 0x15, 0x0c, 0xa5, 0x5e, 0xb4, 0x17, 0x32, 0x74, 0x5f, 0x80, 0x6a, 0x05, - 0x7c, 0xcb, 0xd0, 0xf3, 0x18, 0x05, 0x1e, 0xd2, 0x8a, 0x42, 0x70, 0x1f, 0x6f, 0xb5, 0xcf, 0x2f, - 0xf4, 0xdc, 0xdd, 0x85, 0x9e, 0x7b, 0x7b, 0xb5, 0xf1, 0xd3, 0x14, 0x7b, 0xcd, 0x6c, 0xef, 0x9d, - 0x17, 0xb7, 0x97, 0xeb, 0x2b, 0x52, 0xb0, 0xc1, 0xba, 0x27, 0xd6, 0x98, 0x27, 0xb5, 0x8f, 0x0a, - 0x58, 0xd8, 0xa3, 0xdd, 0xb8, 0x77, 0xef, 0xd2, 0x0e, 0x98, 0x77, 0x21, 0x43, 0x4e, 0x36, 0x88, - 0xb0, 0xaa, 0xd4, 0x34, 0xcc, 0x69, 0x1d, 0xc6, 0x2a, 0xb5, 0x8a, 0xd7, 0x03, 0x5d, 0xb1, 0x4b, - 0xee, 0x98, 0xe1, 0x2a, 0x28, 0x06, 0x90, 0x20, 0xe1, 0xdc, 0x9c, 0x2d, 0x9e, 0x55, 0x03, 0x94, - 0x42, 0x14, 0x11, 0xcc, 0x18, 0xa6, 0x01, 0xd3, 0x0a, 0x46, 0xa1, 0x3e, 0x67, 0x8f, 0x43, 0x5b, - 0xff, 0x9e, 0xcb, 0x9d, 0x6a, 0xd3, 0x3a, 0x4e, 0xcc, 0x2a, 0x36, 0xd3, 0xc6, 0x36, 0x9b, 0x60, - 0x6b, 0xcf, 0xc0, 0xf7, 0x12, 0x68, 0x47, 0xa8, 0x8b, 0x02, 0x8e, 0x61, 0x4f, 0xd5, 0x41, 0x89, - 0x08, 0xcc, 0x11, 0x93, 0x89, 0x3b, 0xb0, 0x81, 0x84, 0xf6, 0xd3, 0xf9, 0xd6, 0xc0, 0x77, 0x5d, - 0x14, 0xe1, 0x53, 0xc8, 0x31, 0x0d, 0xd2, 0x57, 0xc6, 0xb4, 0xbc, 0x51, 0xa8, 0xcf, 0xdb, 0x8b, - 0x0f, 0xf0, 0x2e, 0x4a, 0x58, 0xed, 0x7d, 0x1e, 0xcc, 0x1c, 0xc0, 0x08, 0x12, 0xa6, 0x9a, 0x60, - 0x99, 0xc0, 0xbe, 0x43, 0x10, 0xa1, 0x8e, 0x77, 0x0c, 0x23, 0xe8, 0x71, 0x14, 0xc9, 0x23, 0x2b, - 0xda, 0x4b, 0x04, 0xf6, 0xf7, 0x10, 0xa1, 0xed, 0x7b, 0x42, 0x35, 0xc0, 0x3c, 0xef, 0x3b, 0x0c, - 0xfb, 0x4e, 0x0f, 0x13, 0xcc, 0x85, 0x3f, 0x45, 0x1b, 0xf0, 0x7e, 0x07, 0xfb, 0xff, 0xa5, 0x88, - 0xfa, 0x3b, 0xf8, 0x41, 0x28, 0xce, 0x90, 0xe3, 0x51, 0xc6, 0x9d, 0x10, 0x45, 0x8e, 0x9b, 0x70, - 0x94, 0x5d, 0xc9, 0x52, 0x2a, 0x3d, 0x43, 0x6d, 0xca, 0xf8, 0x01, 0x8a, 0x5a, 0x09, 0x47, 0xea, - 0xff, 0xe0, 0xc7, 0xb4, 0xe0, 0x29, 0x8a, 0xf0, 0x51, 0x22, 0x93, 0x50, 0xb7, 0xb9, 0xb9, 0xd9, - 0xf8, 0x4b, 0x1e, 0x4e, 0x4b, 0x1b, 0x0e, 0xf4, 0x72, 0x07, 0xfb, 0x87, 0x42, 0x91, 0xa6, 0xfe, - 0xf3, 0xb7, 0xe0, 0xed, 0x32, 0x9b, 0x40, 0x65, 0x96, 0xfa, 0x04, 0xac, 0x3e, 0x2e, 0xc8, 0x90, - 0x17, 0x36, 0x37, 0xff, 0x3c, 0x69, 0x68, 0xdf, 0x88, 0x92, 0x95, 0xe1, 0x40, 0x5f, 0x99, 0x28, - 0xd9, 0x19, 0x29, 0xec, 0x15, 0x36, 0x15, 0xdf, 0xfa, 0xf9, 0xee, 0x42, 0x57, 0x1e, 0xbf, 0xb7, - 0xbe, 0xfc, 0x6e, 0x48, 0x3b, 0x5b, 0xed, 0x37, 0xc3, 0xaa, 0x72, 0x3d, 0xac, 0x2a, 0x9f, 0x86, - 0x55, 0xe5, 0xe5, 0x4d, 0x35, 0x77, 0x7d, 0x53, 0xcd, 0x7d, 0xb8, 0xa9, 0xe6, 0x9e, 0xfe, 0xea, - 0x63, 0x7e, 0x1c, 0xbb, 0xa6, 0x47, 0x49, 0xf6, 0x6d, 0xb0, 0xbe, 0xae, 0xc2, 0x93, 0x10, 0x31, - 0x77, 0x46, 0xfc, 0x3f, 0xff, 0xf8, 0x12, 0x00, 0x00, 0xff, 0xff, 0x94, 0x45, 0xcd, 0x40, 0x99, - 0x04, 0x00, 0x00, + // 754 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0xcf, 0x6f, 0xe3, 0x44, + 0x14, 0x8e, 0xdb, 0x6c, 0x97, 0x4e, 0xb2, 0x85, 0x7a, 0x43, 0x70, 0x2b, 0x88, 0x43, 0x2e, 0x84, + 0x88, 0xda, 0x24, 0xa8, 0x20, 0x2a, 0xed, 0xa1, 0x0e, 0x1c, 0xd0, 0xb2, 0x65, 0xe5, 0x08, 0x0e, + 0x2b, 0x24, 0x6b, 0x6c, 0xbf, 0xba, 0x43, 0x33, 0x1e, 0xe3, 0x19, 0x57, 0xf1, 0xfe, 0x05, 0x2b, + 0x4e, 0x88, 0x23, 0xa7, 0x8a, 0x13, 0xc7, 0x1c, 0xf6, 0x8f, 0x40, 0x9c, 0x2a, 0x2e, 0x70, 0x8a, + 0x50, 0x7a, 0xc8, 0x0a, 0xf1, 0x3f, 0x80, 0x32, 0xe3, 0xb4, 0xc9, 0x12, 0x71, 0xb1, 0x3c, 0xdf, + 0xf7, 0xbd, 0xef, 0xfd, 0x98, 0xa7, 0x41, 0x8d, 0x80, 0x71, 0xca, 0xb8, 0x8d, 0x33, 0x71, 0x66, + 0x5f, 0x74, 0x7d, 0x10, 0xb8, 0x2b, 0x0f, 0x56, 0x92, 0x32, 0xc1, 0xf4, 0xfb, 0x8a, 0xb7, 0x24, + 0x54, 0xf0, 0xfb, 0xbb, 0x98, 0x92, 0x98, 0xd9, 0xf2, 0xab, 0x74, 0xfb, 0x7b, 0x4a, 0xe7, 0xc9, + 0x93, 0x5d, 0x04, 0x29, 0xaa, 0x16, 0xb1, 0x88, 0x29, 0x7c, 0xfe, 0xb7, 0x08, 0x88, 0x18, 0x8b, + 0x86, 0x60, 0xcb, 0x93, 0x9f, 0x9d, 0xda, 0x38, 0xce, 0x15, 0xd5, 0xfa, 0x7b, 0x03, 0x55, 0x1c, + 0xcc, 0xe1, 0x38, 0x08, 0x58, 0x16, 0x0b, 0xfd, 0x23, 0x74, 0x17, 0x87, 0x61, 0x0a, 0x9c, 0x1b, + 0x5a, 0x53, 0x6b, 0x6f, 0x3b, 0x6f, 0xfd, 0xf6, 0xfc, 0xa0, 0x56, 0xe4, 0x38, 0x56, 0xcc, 0x40, + 0xa4, 0x24, 0x8e, 0x7e, 0x9e, 0x8d, 0x3b, 0x9a, 0xbb, 0x50, 0xeb, 0x43, 0x74, 0x37, 0xc9, 0x7c, + 0xef, 0x1c, 0x72, 0x63, 0xa3, 0xa9, 0xb5, 0x2b, 0xbd, 0x9a, 0xa5, 0xb2, 0x5a, 0x8b, 0xac, 0xd6, + 0x71, 0x9c, 0x3b, 0x0f, 0xfe, 0x9a, 0x98, 0xb5, 0x24, 0xf3, 0x87, 0x24, 0x98, 0x6b, 0xdf, 0x63, + 0x94, 0x08, 0xa0, 0x89, 0xc8, 0x7f, 0x9c, 0x8d, 0x3b, 0x55, 0xf9, 0xe7, 0x71, 0xe9, 0xff, 0xd3, + 0x6c, 0xdc, 0x41, 0xb7, 0x4a, 0x95, 0x6e, 0x2b, 0xc9, 0xfc, 0x87, 0x90, 0xeb, 0x0f, 0xd0, 0x0e, + 0x56, 0x15, 0x7b, 0x71, 0x46, 0x7d, 0x48, 0x8d, 0xcd, 0xa6, 0xd6, 0x2e, 0x3b, 0x75, 0x69, 0xf3, + 0x0d, 0x67, 0xb1, 0x17, 0xc2, 0x29, 0xce, 0x86, 0x42, 0xc5, 0xdd, 0x2b, 0xd4, 0x27, 0x52, 0xac, + 0xf7, 0xd0, 0x2b, 0x1c, 0xbe, 0xcd, 0x20, 0x0e, 0xc0, 0x28, 0xff, 0x6f, 0xe0, 0x8d, 0xee, 0xa8, + 0xff, 0xec, 0xd2, 0x2c, 0xbd, 0xb8, 0x34, 0x4b, 0xbf, 0x3e, 0x3f, 0x78, 0x73, 0xcd, 0x4d, 0x59, + 0xc5, 0x08, 0x3f, 0xfb, 0x6e, 0x36, 0xee, 0xd4, 0x95, 0xe0, 0x80, 0x87, 0xe7, 0xf6, 0xd2, 0x78, + 0x5b, 0xff, 0x68, 0xe8, 0xde, 0x23, 0x16, 0x66, 0xc3, 0x9b, 0x81, 0x9f, 0xa0, 0xaa, 0x8f, 0x39, + 0x78, 0x45, 0x81, 0x72, 0xea, 0x95, 0x5e, 0xd3, 0x5a, 0x97, 0x61, 0xc9, 0xc9, 0xd9, 0xbe, 0x9a, + 0x98, 0xda, 0x58, 0xd6, 0x58, 0xf1, 0x97, 0x2e, 0x70, 0x0f, 0x95, 0x63, 0x4c, 0x41, 0x5e, 0xc2, + 0xb6, 0x73, 0x47, 0x75, 0x21, 0x21, 0xfd, 0x1d, 0x54, 0x49, 0x20, 0xa5, 0x84, 0x73, 0xc2, 0x62, + 0x6e, 0x6c, 0x36, 0x37, 0x6f, 0x15, 0xcb, 0xcc, 0xd1, 0x93, 0x67, 0xaa, 0xcd, 0xd6, 0xba, 0x22, + 0x56, 0xca, 0x97, 0xcd, 0x1a, 0x4b, 0xcd, 0xae, 0xb0, 0x3f, 0xcc, 0xc6, 0x9d, 0x1d, 0x2a, 0x91, + 0x45, 0x7f, 0xad, 0xaf, 0xd1, 0x6b, 0x4a, 0xd3, 0x4f, 0x21, 0x84, 0x58, 0x10, 0x3c, 0xd4, 0x4d, + 0x54, 0x29, 0x54, 0xb2, 0x74, 0xb9, 0x78, 0x2e, 0x52, 0xd0, 0x89, 0xaa, 0xfc, 0xd5, 0x10, 0x52, + 0x72, 0x81, 0x05, 0x61, 0xf1, 0x7c, 0x1b, 0xb8, 0xb1, 0xd1, 0xdc, 0x6c, 0x57, 0xdd, 0x9d, 0x5b, + 0xf8, 0x21, 0xe4, 0xbc, 0xf5, 0xfb, 0x06, 0xda, 0x7a, 0x8c, 0x53, 0x4c, 0xb9, 0x6e, 0xa1, 0xfb, + 0x14, 0x8f, 0x3c, 0x0a, 0x94, 0x79, 0xc1, 0x19, 0x4e, 0x71, 0x20, 0x20, 0x55, 0x5b, 0x5d, 0x76, + 0x77, 0x29, 0x1e, 0x3d, 0x02, 0xca, 0xfa, 0x37, 0x84, 0xde, 0x44, 0x55, 0x31, 0xf2, 0x38, 0x89, + 0xbc, 0x21, 0xa1, 0x44, 0xc8, 0x01, 0x96, 0x5d, 0x24, 0x46, 0x03, 0x12, 0x7d, 0x3e, 0x47, 0xf4, + 0xf7, 0xd1, 0xeb, 0x52, 0xf1, 0x14, 0xbc, 0x80, 0x71, 0xe1, 0x25, 0x90, 0x7a, 0x7e, 0x2e, 0x40, + 0xed, 0x9e, 0xbb, 0x3b, 0x97, 0x3e, 0x85, 0x3e, 0xe3, 0xe2, 0x31, 0xa4, 0x4e, 0x2e, 0x40, 0xff, + 0x02, 0xbd, 0x31, 0x37, 0xbc, 0x80, 0x94, 0x9c, 0xe6, 0x2a, 0x08, 0xc2, 0xde, 0xe1, 0x61, 0xf7, + 0xe3, 0x62, 0xed, 0x8c, 0xe9, 0xc4, 0xac, 0x0d, 0x48, 0xf4, 0x95, 0x54, 0xcc, 0x43, 0x3f, 0xfd, + 0x44, 0xf2, 0x6e, 0x8d, 0xaf, 0xa0, 0x2a, 0x4a, 0xff, 0x12, 0xed, 0xbd, 0x6c, 0xc8, 0x21, 0x48, + 0x7a, 0x87, 0x1f, 0x9e, 0x77, 0x8d, 0x3b, 0xd2, 0x72, 0x7f, 0x3a, 0x31, 0xeb, 0x2b, 0x96, 0x83, + 0x85, 0xc2, 0xad, 0xf3, 0xb5, 0xf8, 0xd1, 0xdb, 0x2f, 0x2e, 0x4d, 0xed, 0xe5, 0xab, 0x1c, 0xa9, + 0x87, 0x4a, 0x8d, 0xd3, 0xe9, 0xff, 0x32, 0x6d, 0x68, 0x57, 0xd3, 0x86, 0xf6, 0xe7, 0xb4, 0xa1, + 0x7d, 0x7f, 0xdd, 0x28, 0x5d, 0x5d, 0x37, 0x4a, 0x7f, 0x5c, 0x37, 0x4a, 0x4f, 0xde, 0x8d, 0x88, + 0x38, 0xcb, 0x7c, 0x2b, 0x60, 0xb4, 0x78, 0x8c, 0xec, 0xff, 0xba, 0x88, 0x3c, 0x01, 0xee, 0x6f, + 0xc9, 0xb7, 0xe0, 0x83, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x84, 0xb9, 0x62, 0xe2, 0x0a, 0x05, + 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index 079eb5987518..b45d117e5c98 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -1402,12 +1402,12 @@ func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_go func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 10601 bytes of a gzipped FileDescriptorSet + // 10598 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x7b, 0x70, 0x24, 0xc7, 0x79, 0x1f, 0xf6, 0xbd, 0xfb, 0x2d, 0x76, 0x77, 0xd0, 0x00, 0xef, 0x70, 0x7b, 0x24, 0x00, 0x0e, 0x1f, 0xf7, 0x20, 0x89, 0x23, 0x8f, 0xbc, 0x23, 0x89, 0x13, 0x45, 0xef, 0x2e, 0xf6, 0xee, 0x70, - 0xc4, 0x4b, 0xb3, 0xc0, 0xf1, 0xe1, 0x48, 0xa3, 0xc1, 0x6e, 0x03, 0x18, 0xde, 0xee, 0xcc, 0x68, - 0x66, 0xf6, 0x0e, 0x60, 0xb9, 0x52, 0xb4, 0x65, 0x3b, 0xf2, 0xc5, 0x51, 0x64, 0x2b, 0x65, 0xcb, + 0xc4, 0x4b, 0xb3, 0xc0, 0xf1, 0xe1, 0x58, 0xa3, 0xc1, 0x6e, 0x03, 0x18, 0xde, 0xee, 0xcc, 0x68, + 0x66, 0xf6, 0x0e, 0x60, 0xb9, 0x52, 0xb4, 0x65, 0x3b, 0xf2, 0xc5, 0x51, 0x64, 0x29, 0x65, 0xcb, 0xb2, 0x4e, 0xa1, 0xac, 0x58, 0xa2, 0x9c, 0x97, 0x6c, 0x29, 0xb2, 0x1c, 0x97, 0x5d, 0x72, 0x9e, 0xb2, 0x93, 0x4a, 0x49, 0xae, 0x54, 0xe2, 0x4a, 0x25, 0x8c, 0x43, 0xa9, 0x22, 0x45, 0x96, 0x63, 0x5b, 0xa6, 0x93, 0x38, 0xaa, 0x54, 0x52, 0xfd, 0x9a, 0xc7, 0x3e, 0x30, 0x8b, 0x13, 0x49, 0x3b, @@ -1444,7 +1444,7 @@ func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_des 0xc6, 0x45, 0xe1, 0xaa, 0xd6, 0xc1, 0xe5, 0x97, 0xa0, 0x18, 0x16, 0x0f, 0x9a, 0x82, 0x94, 0xe3, 0x6a, 0xb6, 0x4b, 0xb5, 0x30, 0xa5, 0xb0, 0x07, 0x24, 0x41, 0x02, 0x1b, 0x2d, 0x6a, 0xe5, 0x52, 0x0a, 0xf9, 0x89, 0x7e, 0xc0, 0xef, 0x70, 0x82, 0x76, 0xf8, 0xfe, 0xfe, 0x11, 0x0d, 0x21, 0xf7, - 0xf6, 0xbb, 0xfc, 0x38, 0x14, 0x42, 0x1d, 0x18, 0xf5, 0xd5, 0xf2, 0x0f, 0xc1, 0x1d, 0x03, 0xa1, + 0xf6, 0xbb, 0xfc, 0x38, 0x14, 0x42, 0x1d, 0x18, 0xf5, 0xd5, 0xf2, 0x0f, 0xc3, 0x1d, 0x03, 0xa1, 0xd1, 0x73, 0x30, 0xd5, 0x35, 0x74, 0xc3, 0xc5, 0xb6, 0x65, 0x63, 0xa2, 0xb1, 0xec, 0x55, 0xd3, 0xdf, 0xc8, 0x0c, 0xd1, 0xb9, 0xcd, 0x20, 0x35, 0x43, 0x51, 0x26, 0xbb, 0xfd, 0x85, 0xa7, 0x73, 0xd9, 0x6f, 0x66, 0xa4, 0x97, 0x5f, 0x7e, 0xf9, 0xe5, 0xb8, 0xfc, 0x5b, 0x69, 0x98, 0x1a, 0x34, @@ -1474,57 +1474,57 @@ func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_des 0xe0, 0x14, 0x0a, 0xe8, 0x42, 0x7c, 0x88, 0x2e, 0x50, 0xac, 0x5e, 0x5d, 0x90, 0xbf, 0x16, 0x87, 0xc9, 0x01, 0x8b, 0xca, 0xc0, 0x97, 0x3c, 0x0d, 0x29, 0xa6, 0xcb, 0x6c, 0x99, 0x3d, 0x35, 0x70, 0x75, 0xa2, 0x9a, 0xdd, 0xb7, 0xd4, 0x52, 0xbe, 0xa0, 0xab, 0x91, 0x18, 0xe2, 0x6a, 0x10, 0x88, - 0x3e, 0x85, 0x7d, 0x77, 0x9f, 0xf1, 0x67, 0xeb, 0xe3, 0xf9, 0x51, 0xd6, 0x47, 0x5a, 0x76, 0xb8, - 0x45, 0x20, 0x35, 0x60, 0x11, 0xb8, 0x00, 0x13, 0x7d, 0x40, 0x23, 0x1b, 0xe3, 0xf7, 0xc7, 0x60, - 0x7a, 0x98, 0x70, 0x22, 0x4c, 0x62, 0x3c, 0x64, 0x12, 0x2f, 0xf4, 0x4a, 0xf0, 0xee, 0xe1, 0x83, - 0xd0, 0x37, 0xd6, 0x9f, 0x8e, 0xc1, 0x91, 0xc1, 0x2e, 0xe5, 0xc0, 0x36, 0xbc, 0x13, 0xd2, 0x1d, - 0xec, 0xee, 0x9a, 0xc2, 0xad, 0xba, 0x7f, 0xc0, 0x62, 0x4d, 0xaa, 0x7b, 0x07, 0x9b, 0x73, 0x05, - 0x57, 0xfb, 0xc4, 0x30, 0xbf, 0x90, 0xb5, 0xa6, 0xaf, 0xa5, 0x3f, 0x11, 0x87, 0x3b, 0x06, 0x82, - 0x0f, 0x6c, 0xe8, 0x5d, 0x00, 0xba, 0x61, 0x75, 0x5d, 0xe6, 0x3a, 0x31, 0x4b, 0x9c, 0xa3, 0x25, - 0xd4, 0x78, 0x11, 0x2b, 0xdb, 0x75, 0xbd, 0xfa, 0x04, 0xad, 0x07, 0x56, 0x44, 0x09, 0x9e, 0xf0, - 0x1b, 0x9a, 0xa4, 0x0d, 0x9d, 0x19, 0xd2, 0xd3, 0x3e, 0xc5, 0x7c, 0x18, 0xa4, 0x66, 0x5b, 0xc7, - 0x86, 0xab, 0x3a, 0xae, 0x8d, 0xb5, 0x8e, 0x6e, 0xec, 0xd0, 0xa5, 0x26, 0xbb, 0x90, 0xda, 0xd6, - 0xda, 0x0e, 0x56, 0x4a, 0xac, 0xba, 0x21, 0x6a, 0x09, 0x07, 0x55, 0x20, 0x3b, 0xc0, 0x91, 0x0e, - 0x71, 0xb0, 0x6a, 0x8f, 0x43, 0xfe, 0xa9, 0x1c, 0xe4, 0x03, 0x0e, 0x38, 0xba, 0x1b, 0xc6, 0x5f, - 0xd4, 0xae, 0x6b, 0xaa, 0x08, 0xaa, 0x98, 0x24, 0xf2, 0xa4, 0x6c, 0x9d, 0x07, 0x56, 0x0f, 0xc3, - 0x14, 0x25, 0x31, 0xbb, 0x2e, 0xb6, 0xd5, 0x66, 0x5b, 0x73, 0x1c, 0x2a, 0xb4, 0x2c, 0x25, 0x45, - 0xa4, 0x6e, 0x8d, 0x54, 0xd5, 0x44, 0x0d, 0x3a, 0x07, 0x93, 0x94, 0xa3, 0xd3, 0x6d, 0xbb, 0xba, - 0xd5, 0xc6, 0x2a, 0x09, 0xf3, 0x1c, 0xba, 0xe4, 0x78, 0x2d, 0x9b, 0x20, 0x14, 0x2b, 0x9c, 0x80, - 0xb4, 0xc8, 0x41, 0x8b, 0x70, 0x17, 0x65, 0xdb, 0xc1, 0x06, 0xb6, 0x35, 0x17, 0xab, 0xf8, 0x7d, - 0x5d, 0xad, 0xed, 0xa8, 0x9a, 0xd1, 0x52, 0x77, 0x35, 0x67, 0x77, 0x7a, 0x8a, 0x00, 0x54, 0xe3, - 0xd3, 0x31, 0xe5, 0x18, 0x21, 0xbc, 0xc4, 0xe9, 0xea, 0x94, 0xac, 0x62, 0xb4, 0x2e, 0x6b, 0xce, - 0x2e, 0x5a, 0x80, 0x23, 0x14, 0xc5, 0x71, 0x6d, 0xdd, 0xd8, 0x51, 0x9b, 0xbb, 0xb8, 0x79, 0x4d, - 0xed, 0xba, 0xdb, 0x4f, 0x4c, 0x1f, 0x0f, 0xbe, 0x9f, 0xb6, 0xb0, 0x41, 0x69, 0x6a, 0x84, 0x64, - 0xd3, 0xdd, 0x7e, 0x02, 0x35, 0x60, 0x9c, 0x0c, 0x46, 0x47, 0x7f, 0x09, 0xab, 0xdb, 0xa6, 0x4d, - 0xd7, 0xd0, 0xe2, 0x00, 0xd3, 0x14, 0x90, 0xe0, 0xfc, 0x1a, 0x67, 0x58, 0x31, 0x5b, 0x78, 0x21, - 0xd5, 0x58, 0xaf, 0xd7, 0x17, 0x95, 0xbc, 0x40, 0xb9, 0x68, 0xda, 0x44, 0xa1, 0x76, 0x4c, 0x4f, - 0xc0, 0x79, 0xa6, 0x50, 0x3b, 0xa6, 0x10, 0xef, 0x39, 0x98, 0x6c, 0x36, 0x59, 0x9f, 0xf5, 0xa6, - 0xca, 0x83, 0x31, 0x67, 0x5a, 0x0a, 0x09, 0xab, 0xd9, 0xbc, 0xc4, 0x08, 0xb8, 0x8e, 0x3b, 0xe8, - 0x49, 0xb8, 0xc3, 0x17, 0x56, 0x90, 0x71, 0xa2, 0xaf, 0x97, 0xbd, 0xac, 0xe7, 0x60, 0xd2, 0xda, - 0xef, 0x67, 0x44, 0xa1, 0x37, 0x5a, 0xfb, 0xbd, 0x6c, 0x8f, 0xc3, 0x94, 0xb5, 0x6b, 0xf5, 0xf3, - 0x9d, 0x0e, 0xf2, 0x21, 0x6b, 0xd7, 0xea, 0x65, 0xbc, 0x8f, 0x46, 0xe6, 0x36, 0x6e, 0x6a, 0x2e, - 0x6e, 0x4d, 0x1f, 0x0d, 0x92, 0x07, 0x2a, 0xd0, 0x3c, 0x48, 0xcd, 0xa6, 0x8a, 0x0d, 0x6d, 0xab, - 0x8d, 0x55, 0xcd, 0xc6, 0x86, 0xe6, 0x4c, 0xcf, 0x52, 0xe2, 0xa4, 0x6b, 0x77, 0xb1, 0x52, 0x6c, - 0x36, 0xeb, 0xb4, 0xb2, 0x42, 0xeb, 0xd0, 0x69, 0x98, 0x30, 0xb7, 0x5e, 0x6c, 0x32, 0x8d, 0x54, - 0x2d, 0x1b, 0x6f, 0xeb, 0x7b, 0xd3, 0xf7, 0x52, 0xf1, 0x96, 0x48, 0x05, 0xd5, 0xc7, 0x75, 0x5a, - 0x8c, 0x4e, 0x81, 0xd4, 0x74, 0x76, 0x35, 0xdb, 0xa2, 0x26, 0xd9, 0xb1, 0xb4, 0x26, 0x9e, 0xbe, - 0x8f, 0x91, 0xb2, 0xf2, 0x55, 0x51, 0x4c, 0x66, 0x84, 0x73, 0x43, 0xdf, 0x76, 0x05, 0xe2, 0x09, - 0x36, 0x23, 0x68, 0x19, 0x47, 0x3b, 0x09, 0x12, 0x91, 0x44, 0xe8, 0xc5, 0x27, 0x29, 0x59, 0xd1, - 0xda, 0xb5, 0x82, 0xef, 0xbd, 0x07, 0x0a, 0x84, 0xd2, 0x7f, 0xe9, 0x29, 0xe6, 0xb8, 0x59, 0xbb, - 0x81, 0x37, 0x3e, 0x06, 0x47, 0x08, 0x51, 0x07, 0xbb, 0x5a, 0x4b, 0x73, 0xb5, 0x00, 0xf5, 0x83, - 0x94, 0x9a, 0x88, 0x7d, 0x85, 0x57, 0x86, 0xda, 0x69, 0x77, 0xb7, 0xf6, 0x3d, 0xc5, 0x7a, 0x88, - 0xb5, 0x93, 0x94, 0x09, 0xd5, 0x7a, 0xcb, 0x9c, 0x73, 0x79, 0x01, 0xc6, 0x83, 0x7a, 0x8f, 0x72, - 0xc0, 0x34, 0x5f, 0x8a, 0x11, 0x27, 0xa8, 0xb6, 0xb6, 0x48, 0xdc, 0x97, 0x17, 0xea, 0x52, 0x9c, - 0xb8, 0x51, 0xcb, 0x4b, 0x1b, 0x75, 0x55, 0xd9, 0x5c, 0xdd, 0x58, 0x5a, 0xa9, 0x4b, 0x89, 0x80, - 0x63, 0x7f, 0x25, 0x99, 0xbd, 0x5f, 0x3a, 0x41, 0xbc, 0x86, 0x62, 0x38, 0x52, 0x43, 0xef, 0x80, - 0xa3, 0x22, 0xad, 0xe2, 0x60, 0x57, 0xbd, 0xa1, 0xdb, 0x74, 0x42, 0x76, 0x34, 0xb6, 0x38, 0x7a, - 0xfa, 0x33, 0xc5, 0xa9, 0x1a, 0xd8, 0x7d, 0x56, 0xb7, 0xc9, 0x74, 0xeb, 0x68, 0x2e, 0x5a, 0x86, - 0x59, 0xc3, 0x54, 0x1d, 0x57, 0x33, 0x5a, 0x9a, 0xdd, 0x52, 0xfd, 0x84, 0x96, 0xaa, 0x35, 0x9b, - 0xd8, 0x71, 0x4c, 0xb6, 0x10, 0x7a, 0x28, 0x77, 0x1a, 0x66, 0x83, 0x13, 0xfb, 0x2b, 0x44, 0x85, - 0x93, 0xf6, 0xa8, 0x6f, 0x62, 0x98, 0xfa, 0x1e, 0x87, 0x5c, 0x47, 0xb3, 0x54, 0x6c, 0xb8, 0xf6, - 0x3e, 0xf5, 0xcf, 0xb3, 0x4a, 0xb6, 0xa3, 0x59, 0x75, 0xf2, 0xfc, 0xb6, 0x84, 0x49, 0x57, 0x92, - 0xd9, 0xa4, 0x94, 0xba, 0x92, 0xcc, 0xa6, 0xa4, 0xf4, 0x95, 0x64, 0x36, 0x2d, 0x65, 0xae, 0x24, - 0xb3, 0x59, 0x29, 0x77, 0x25, 0x99, 0xcd, 0x49, 0x20, 0xff, 0x74, 0x12, 0xc6, 0x83, 0x1e, 0x3c, + 0x3e, 0x85, 0xfd, 0xa1, 0x3e, 0xe3, 0xcf, 0xd6, 0xc7, 0xf3, 0xa3, 0xac, 0x8f, 0xb4, 0xec, 0x70, + 0x8b, 0x40, 0x6a, 0xc0, 0x22, 0x70, 0x01, 0x26, 0xfa, 0x80, 0x46, 0x36, 0xc6, 0xef, 0x8b, 0xc1, + 0xf4, 0x30, 0xe1, 0x44, 0x98, 0xc4, 0x78, 0xc8, 0x24, 0x5e, 0xe8, 0x95, 0xe0, 0xdd, 0xc3, 0x07, + 0xa1, 0x6f, 0xac, 0x3f, 0x1d, 0x83, 0x23, 0x83, 0x5d, 0xca, 0x81, 0x6d, 0x78, 0x27, 0xa4, 0x3b, + 0xd8, 0xdd, 0x35, 0x85, 0x5b, 0x75, 0xff, 0x80, 0xc5, 0x9a, 0x54, 0xf7, 0x0e, 0x36, 0xe7, 0x0a, + 0xae, 0xf6, 0x89, 0x61, 0x7e, 0x21, 0x6b, 0x4d, 0x5f, 0x4b, 0x7f, 0x32, 0x0e, 0x77, 0x0c, 0x04, + 0x1f, 0xd8, 0xd0, 0xbb, 0x00, 0x74, 0xc3, 0xea, 0xba, 0xcc, 0x75, 0x62, 0x96, 0x38, 0x47, 0x4b, + 0xa8, 0xf1, 0x22, 0x56, 0xb6, 0xeb, 0x7a, 0xf5, 0x09, 0x5a, 0x0f, 0xac, 0x88, 0x12, 0x3c, 0xe1, + 0x37, 0x34, 0x49, 0x1b, 0x3a, 0x33, 0xa4, 0xa7, 0x7d, 0x8a, 0xf9, 0x30, 0x48, 0xcd, 0xb6, 0x8e, + 0x0d, 0x57, 0x75, 0x5c, 0x1b, 0x6b, 0x1d, 0xdd, 0xd8, 0xa1, 0x4b, 0x4d, 0x76, 0x21, 0xb5, 0xad, + 0xb5, 0x1d, 0xac, 0x94, 0x58, 0x75, 0x43, 0xd4, 0x12, 0x0e, 0xaa, 0x40, 0x76, 0x80, 0x23, 0x1d, + 0xe2, 0x60, 0xd5, 0x1e, 0x87, 0xfc, 0xd3, 0x39, 0xc8, 0x07, 0x1c, 0x70, 0x74, 0x37, 0x8c, 0xbf, + 0xa8, 0x5d, 0xd7, 0x54, 0x11, 0x54, 0x31, 0x49, 0xe4, 0x49, 0xd9, 0x3a, 0x0f, 0xac, 0x1e, 0x86, + 0x29, 0x4a, 0x62, 0x76, 0x5d, 0x6c, 0xab, 0xcd, 0xb6, 0xe6, 0x38, 0x54, 0x68, 0x59, 0x4a, 0x8a, + 0x48, 0xdd, 0x1a, 0xa9, 0xaa, 0x89, 0x1a, 0x74, 0x0e, 0x26, 0x29, 0x47, 0xa7, 0xdb, 0x76, 0x75, + 0xab, 0x8d, 0x55, 0x12, 0xe6, 0x39, 0x74, 0xc9, 0xf1, 0x5a, 0x36, 0x41, 0x28, 0x56, 0x38, 0x01, + 0x69, 0x91, 0x83, 0x16, 0xe1, 0x2e, 0xca, 0xb6, 0x83, 0x0d, 0x6c, 0x6b, 0x2e, 0x56, 0xf1, 0x7b, + 0xbb, 0x5a, 0xdb, 0x51, 0x35, 0xa3, 0xa5, 0xee, 0x6a, 0xce, 0xee, 0xf4, 0x14, 0x01, 0xa8, 0xc6, + 0xa7, 0x63, 0xca, 0x31, 0x42, 0x78, 0x89, 0xd3, 0xd5, 0x29, 0x59, 0xc5, 0x68, 0x5d, 0xd6, 0x9c, + 0x5d, 0xb4, 0x00, 0x47, 0x28, 0x8a, 0xe3, 0xda, 0xba, 0xb1, 0xa3, 0x36, 0x77, 0x71, 0xf3, 0x9a, + 0xda, 0x75, 0xb7, 0x9f, 0x98, 0x3e, 0x1e, 0x7c, 0x3f, 0x6d, 0x61, 0x83, 0xd2, 0xd4, 0x08, 0xc9, + 0xa6, 0xbb, 0xfd, 0x04, 0x6a, 0xc0, 0x38, 0x19, 0x8c, 0x8e, 0xfe, 0x12, 0x56, 0xb7, 0x4d, 0x9b, + 0xae, 0xa1, 0xc5, 0x01, 0xa6, 0x29, 0x20, 0xc1, 0xf9, 0x35, 0xce, 0xb0, 0x62, 0xb6, 0xf0, 0x42, + 0xaa, 0xb1, 0x5e, 0xaf, 0x2f, 0x2a, 0x79, 0x81, 0x72, 0xd1, 0xb4, 0x89, 0x42, 0xed, 0x98, 0x9e, + 0x80, 0xf3, 0x4c, 0xa1, 0x76, 0x4c, 0x21, 0xde, 0x73, 0x30, 0xd9, 0x6c, 0xb2, 0x3e, 0xeb, 0x4d, + 0x95, 0x07, 0x63, 0xce, 0xb4, 0x14, 0x12, 0x56, 0xb3, 0x79, 0x89, 0x11, 0x70, 0x1d, 0x77, 0xd0, + 0x93, 0x70, 0x87, 0x2f, 0xac, 0x20, 0xe3, 0x44, 0x5f, 0x2f, 0x7b, 0x59, 0xcf, 0xc1, 0xa4, 0xb5, + 0xdf, 0xcf, 0x88, 0x42, 0x6f, 0xb4, 0xf6, 0x7b, 0xd9, 0x1e, 0x87, 0x29, 0x6b, 0xd7, 0xea, 0xe7, + 0x3b, 0x1d, 0xe4, 0x43, 0xd6, 0xae, 0xd5, 0xcb, 0x78, 0x1f, 0x8d, 0xcc, 0x6d, 0xdc, 0xd4, 0x5c, + 0xdc, 0x9a, 0x3e, 0x1a, 0x24, 0x0f, 0x54, 0xa0, 0x79, 0x90, 0x9a, 0x4d, 0x15, 0x1b, 0xda, 0x56, + 0x1b, 0xab, 0x9a, 0x8d, 0x0d, 0xcd, 0x99, 0x9e, 0xa5, 0xc4, 0x49, 0xd7, 0xee, 0x62, 0xa5, 0xd8, + 0x6c, 0xd6, 0x69, 0x65, 0x85, 0xd6, 0xa1, 0xd3, 0x30, 0x61, 0x6e, 0xbd, 0xd8, 0x64, 0x1a, 0xa9, + 0x5a, 0x36, 0xde, 0xd6, 0xf7, 0xa6, 0xef, 0xa5, 0xe2, 0x2d, 0x91, 0x0a, 0xaa, 0x8f, 0xeb, 0xb4, + 0x18, 0x9d, 0x02, 0xa9, 0xe9, 0xec, 0x6a, 0xb6, 0x45, 0x4d, 0xb2, 0x63, 0x69, 0x4d, 0x3c, 0x7d, + 0x1f, 0x23, 0x65, 0xe5, 0xab, 0xa2, 0x98, 0xcc, 0x08, 0xe7, 0x86, 0xbe, 0xed, 0x0a, 0xc4, 0x13, + 0x6c, 0x46, 0xd0, 0x32, 0x8e, 0x76, 0x12, 0x24, 0x22, 0x89, 0xd0, 0x8b, 0x4f, 0x52, 0xb2, 0xa2, + 0xb5, 0x6b, 0x05, 0xdf, 0x7b, 0x0f, 0x14, 0x08, 0xa5, 0xff, 0xd2, 0x53, 0xcc, 0x71, 0xb3, 0x76, + 0x03, 0x6f, 0x7c, 0x0c, 0x8e, 0x10, 0xa2, 0x0e, 0x76, 0xb5, 0x96, 0xe6, 0x6a, 0x01, 0xea, 0x07, + 0x29, 0x35, 0x11, 0xfb, 0x0a, 0xaf, 0x0c, 0xb5, 0xd3, 0xee, 0x6e, 0xed, 0x7b, 0x8a, 0xf5, 0x10, + 0x6b, 0x27, 0x29, 0x13, 0xaa, 0xf5, 0x96, 0x39, 0xe7, 0xf2, 0x02, 0x8c, 0x07, 0xf5, 0x1e, 0xe5, + 0x80, 0x69, 0xbe, 0x14, 0x23, 0x4e, 0x50, 0x6d, 0x6d, 0x91, 0xb8, 0x2f, 0x2f, 0xd4, 0xa5, 0x38, + 0x71, 0xa3, 0x96, 0x97, 0x36, 0xea, 0xaa, 0xb2, 0xb9, 0xba, 0xb1, 0xb4, 0x52, 0x97, 0x12, 0x01, + 0xc7, 0xfe, 0x4a, 0x32, 0x7b, 0xbf, 0x74, 0x82, 0x78, 0x0d, 0xc5, 0x70, 0xa4, 0x86, 0xde, 0x01, + 0x47, 0x45, 0x5a, 0xc5, 0xc1, 0xae, 0x7a, 0x43, 0xb7, 0xe9, 0x84, 0xec, 0x68, 0x6c, 0x71, 0xf4, + 0xf4, 0x67, 0x8a, 0x53, 0x35, 0xb0, 0xfb, 0xac, 0x6e, 0x93, 0xe9, 0xd6, 0xd1, 0x5c, 0xb4, 0x0c, + 0xb3, 0x86, 0xa9, 0x3a, 0xae, 0x66, 0xb4, 0x34, 0xbb, 0xa5, 0xfa, 0x09, 0x2d, 0x55, 0x6b, 0x36, + 0xb1, 0xe3, 0x98, 0x6c, 0x21, 0xf4, 0x50, 0xee, 0x34, 0xcc, 0x06, 0x27, 0xf6, 0x57, 0x88, 0x0a, + 0x27, 0xed, 0x51, 0xdf, 0xc4, 0x30, 0xf5, 0x3d, 0x0e, 0xb9, 0x8e, 0x66, 0xa9, 0xd8, 0x70, 0xed, + 0x7d, 0xea, 0x9f, 0x67, 0x95, 0x6c, 0x47, 0xb3, 0xea, 0xe4, 0xf9, 0x6d, 0x09, 0x93, 0xae, 0x24, + 0xb3, 0x49, 0x29, 0x75, 0x25, 0x99, 0x4d, 0x49, 0xe9, 0x2b, 0xc9, 0x6c, 0x5a, 0xca, 0x5c, 0x49, + 0x66, 0xb3, 0x52, 0xee, 0x4a, 0x32, 0x9b, 0x93, 0x40, 0xfe, 0x50, 0x12, 0xc6, 0x83, 0x1e, 0x3c, 0x09, 0x88, 0x9a, 0x74, 0x0d, 0x8b, 0x51, 0x2b, 0x77, 0xcf, 0x81, 0xfe, 0xfe, 0x7c, 0x8d, 0x2c, 0x6e, 0x0b, 0x69, 0xe6, 0x2e, 0x2b, 0x8c, 0x93, 0x38, 0x16, 0x44, 0xfd, 0x30, 0x73, 0x4f, 0xb2, 0x0a, 0x7f, 0x42, 0x97, 0x20, 0xfd, 0xa2, 0x43, 0xb1, 0xd3, 0x14, 0xfb, 0xde, 0x83, 0xb1, 0xaf, @@ -1540,7 +1540,7 @@ func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_des 0x87, 0xab, 0x12, 0xd0, 0xa2, 0x0a, 0x29, 0x19, 0x75, 0xe8, 0xde, 0xa6, 0x49, 0x96, 0x92, 0xd2, 0xf2, 0xc7, 0x63, 0x20, 0xf5, 0xba, 0xc6, 0x3d, 0xcd, 0x8c, 0xfd, 0x45, 0x36, 0x53, 0xfe, 0x58, 0x0c, 0x8a, 0x61, 0x7f, 0xb8, 0xa7, 0x79, 0x77, 0xff, 0x85, 0x36, 0xef, 0xf7, 0xe3, 0x50, 0x08, - 0x79, 0xc1, 0xa3, 0xb6, 0xee, 0x7d, 0x30, 0xa1, 0xb7, 0x70, 0xc7, 0x32, 0x5d, 0x6c, 0x34, 0xf7, + 0x79, 0xc1, 0xa3, 0xb6, 0xee, 0xbd, 0x30, 0xa1, 0xb7, 0x70, 0xc7, 0x32, 0x5d, 0x6c, 0x34, 0xf7, 0xd5, 0x36, 0xbe, 0x8e, 0xdb, 0xd3, 0x32, 0x35, 0x32, 0x67, 0x0e, 0xf6, 0xb3, 0xe7, 0x97, 0x7c, 0xbe, 0x65, 0xc2, 0xb6, 0x30, 0xb9, 0xb4, 0x58, 0x5f, 0x59, 0x5f, 0xdb, 0xa8, 0xaf, 0xd6, 0x9e, 0x57, 0x37, 0x57, 0x9f, 0x59, 0x5d, 0x7b, 0x76, 0x55, 0x91, 0xf4, 0x1e, 0xb2, 0xb7, 0x70, 0xda, @@ -1580,7 +1580,7 @@ func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_des 0x6b, 0x1c, 0x07, 0x41, 0x2e, 0x41, 0x89, 0x82, 0x34, 0xbb, 0x8e, 0x6b, 0x76, 0xa8, 0x05, 0x3c, 0x18, 0xe6, 0x5f, 0x7e, 0x9d, 0xcd, 0x9a, 0x22, 0x61, 0xab, 0x79, 0x5c, 0x0b, 0x0b, 0x40, 0x77, 0xd7, 0x5a, 0xb8, 0xd9, 0x8e, 0x40, 0xf8, 0x32, 0x6f, 0x88, 0x47, 0xbf, 0x70, 0x15, 0xa6, 0xc8, - 0x6f, 0x6a, 0xa0, 0x82, 0x2d, 0x89, 0x4e, 0xd9, 0x4d, 0x7f, 0xf5, 0xfd, 0x6c, 0x62, 0x4e, 0x7a, + 0x6f, 0x6a, 0xa0, 0x82, 0x2d, 0x89, 0x4e, 0xd9, 0x4d, 0x7f, 0xf5, 0x7d, 0x6c, 0x62, 0x4e, 0x7a, 0x00, 0x81, 0x36, 0x05, 0x46, 0x71, 0x07, 0xbb, 0x2e, 0xb6, 0x1d, 0x55, 0x6b, 0x0f, 0x6a, 0x5e, 0x20, 0xe7, 0x31, 0xfd, 0x73, 0xdf, 0x0e, 0x8f, 0xe2, 0x25, 0xc6, 0x59, 0x69, 0xb7, 0x17, 0x36, 0xe1, 0xe8, 0x00, 0xad, 0x18, 0x01, 0xf3, 0xa3, 0x1c, 0x73, 0xaa, 0x4f, 0x33, 0x08, 0xec, 0x3a, @@ -1614,458 +1614,458 @@ func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_des 0x96, 0x88, 0xa7, 0x69, 0x69, 0xcc, 0x14, 0xdd, 0xb0, 0x5f, 0x13, 0x96, 0x28, 0xc0, 0x46, 0xda, 0x16, 0xf0, 0x10, 0x89, 0xd8, 0x9b, 0x24, 0x52, 0x18, 0x01, 0xee, 0x1f, 0xf7, 0x34, 0xae, 0x21, 0x78, 0x09, 0x66, 0xc0, 0xff, 0xe9, 0x1a, 0xd7, 0xf0, 0xfe, 0x48, 0xda, 0xf9, 0xeb, 0x3d, 0xfe, - 0xcf, 0x26, 0xe3, 0x64, 0x36, 0xa4, 0xd4, 0xe3, 0x4f, 0xa1, 0xa8, 0x73, 0x49, 0xd3, 0x3f, 0xfc, - 0x06, 0xef, 0x6f, 0xd8, 0x9d, 0x5a, 0x58, 0x26, 0x4a, 0x1e, 0x76, 0x7a, 0xa2, 0xc1, 0xde, 0xff, - 0x86, 0xa7, 0xe7, 0x21, 0x9f, 0x67, 0xe1, 0x22, 0x14, 0x42, 0x0e, 0x4f, 0x34, 0xd4, 0x8f, 0x72, - 0xa8, 0xf1, 0xa0, 0xbf, 0xb3, 0x70, 0x0e, 0x92, 0xc4, 0x79, 0x89, 0x66, 0xff, 0x31, 0xce, 0x4e, - 0xc9, 0x17, 0x9e, 0x82, 0xac, 0x70, 0x5a, 0xa2, 0x59, 0x7f, 0x9c, 0xb3, 0x7a, 0x2c, 0x84, 0x5d, + 0xcf, 0x26, 0xe3, 0x64, 0x36, 0xa4, 0xd4, 0xe3, 0x4f, 0xa1, 0xa8, 0x73, 0x49, 0xd3, 0x3f, 0xf2, + 0x06, 0xef, 0x6f, 0xd8, 0x9d, 0x5a, 0x58, 0x26, 0x4a, 0x1e, 0x76, 0x7a, 0xa2, 0xc1, 0xde, 0xf7, + 0x86, 0xa7, 0xe7, 0x21, 0x9f, 0x67, 0xe1, 0x22, 0x14, 0x42, 0x0e, 0x4f, 0x34, 0xd4, 0x8f, 0x71, + 0xa8, 0xf1, 0xa0, 0xbf, 0xb3, 0x70, 0x0e, 0x92, 0xc4, 0x79, 0x89, 0x66, 0xff, 0x71, 0xce, 0x4e, + 0xc9, 0x17, 0x9e, 0x82, 0xac, 0x70, 0x5a, 0xa2, 0x59, 0x7f, 0x82, 0xb3, 0x7a, 0x2c, 0x84, 0x5d, 0x38, 0x2c, 0xd1, 0xec, 0x7f, 0x4d, 0xb0, 0x0b, 0x16, 0xc2, 0x3e, 0xba, 0x08, 0xbf, 0xf4, 0xd7, - 0x93, 0x7c, 0xd1, 0x11, 0xb2, 0xbb, 0x00, 0x19, 0xee, 0xa9, 0x44, 0x73, 0xff, 0x04, 0x7f, 0xb9, + 0x93, 0x7c, 0xd1, 0x11, 0xb2, 0xbb, 0x00, 0x19, 0xee, 0xa9, 0x44, 0x73, 0xff, 0x24, 0x7f, 0xb9, 0xe0, 0x58, 0x78, 0x1c, 0x52, 0x23, 0x0a, 0xfc, 0x6f, 0x70, 0x56, 0x46, 0xbf, 0x50, 0x83, 0x7c, - 0xc0, 0x3b, 0x89, 0x66, 0xff, 0x20, 0x67, 0x0f, 0x72, 0x91, 0xa6, 0x73, 0xef, 0x24, 0x1a, 0xe0, - 0x6f, 0x8a, 0xa6, 0x73, 0x0e, 0x22, 0x36, 0xe1, 0x98, 0x44, 0x73, 0x7f, 0x48, 0x48, 0x5d, 0xb0, - 0x2c, 0x3c, 0x0d, 0x39, 0x6f, 0xb1, 0x89, 0xe6, 0xff, 0x29, 0xce, 0xef, 0xf3, 0x10, 0x09, 0x04, - 0x16, 0xbb, 0x68, 0x88, 0x9f, 0x16, 0x12, 0x08, 0x70, 0x91, 0x69, 0xd4, 0xeb, 0xc0, 0x44, 0x23, - 0x7d, 0x58, 0x4c, 0xa3, 0x1e, 0xff, 0x85, 0x8c, 0x26, 0xb5, 0xf9, 0xd1, 0x10, 0x7f, 0x4b, 0x8c, - 0x26, 0xa5, 0x27, 0xcd, 0xe8, 0xf5, 0x08, 0xa2, 0x31, 0x7e, 0x56, 0x34, 0xa3, 0xc7, 0x21, 0x58, - 0x58, 0x07, 0xd4, 0xef, 0x0d, 0x44, 0xe3, 0x7d, 0x84, 0xe3, 0x4d, 0xf4, 0x39, 0x03, 0x0b, 0xcf, - 0xc2, 0x91, 0xc1, 0x9e, 0x40, 0x34, 0xea, 0xcf, 0xbd, 0xd1, 0x13, 0xbb, 0x05, 0x1d, 0x81, 0x85, - 0x0d, 0x7f, 0x49, 0x09, 0x7a, 0x01, 0xd1, 0xb0, 0x1f, 0x7d, 0x23, 0x6c, 0xb8, 0x83, 0x4e, 0xc0, - 0x42, 0x05, 0xc0, 0x5f, 0x80, 0xa3, 0xb1, 0x3e, 0xc6, 0xb1, 0x02, 0x4c, 0x64, 0x6a, 0xf0, 0xf5, - 0x37, 0x9a, 0xff, 0x96, 0x98, 0x1a, 0x9c, 0x83, 0x4c, 0x0d, 0xb1, 0xf4, 0x46, 0x73, 0x7f, 0x5c, - 0x4c, 0x0d, 0xc1, 0x42, 0x34, 0x3b, 0xb0, 0xba, 0x45, 0x23, 0x7c, 0x42, 0x68, 0x76, 0x80, 0x6b, - 0x61, 0x15, 0x26, 0xfa, 0x16, 0xc4, 0x68, 0xa8, 0x5f, 0xe0, 0x50, 0x52, 0xef, 0x7a, 0x18, 0x5c, - 0xbc, 0xf8, 0x62, 0x18, 0x8d, 0xf6, 0xc9, 0x9e, 0xc5, 0x8b, 0xaf, 0x85, 0x0b, 0x17, 0x20, 0x6b, - 0x74, 0xdb, 0x6d, 0x32, 0x79, 0xd0, 0xc1, 0x67, 0x09, 0xa7, 0xff, 0xdb, 0x77, 0xb9, 0x74, 0x04, - 0xc3, 0xc2, 0x39, 0x48, 0xe1, 0xce, 0x16, 0x6e, 0x45, 0x71, 0x7e, 0xeb, 0xbb, 0xc2, 0x60, 0x12, - 0xea, 0x85, 0xa7, 0x01, 0x58, 0x6a, 0x84, 0x6e, 0x1e, 0x46, 0xf0, 0xfe, 0xc1, 0x77, 0xf9, 0xe1, - 0x1d, 0x9f, 0xc5, 0x07, 0x60, 0x47, 0x81, 0x0e, 0x06, 0xf8, 0x76, 0x18, 0x80, 0x8e, 0xc8, 0x93, - 0x90, 0x79, 0xd1, 0x31, 0x0d, 0x57, 0xdb, 0x89, 0xe2, 0xfe, 0x43, 0xce, 0x2d, 0xe8, 0x89, 0xc0, - 0x3a, 0xa6, 0x8d, 0x5d, 0x6d, 0xc7, 0x89, 0xe2, 0xfd, 0xef, 0x9c, 0xd7, 0x63, 0x20, 0xcc, 0x4d, - 0xcd, 0x71, 0x47, 0xe9, 0xf7, 0x1f, 0x09, 0x66, 0xc1, 0x40, 0x1a, 0x4d, 0x7e, 0x5f, 0xc3, 0xfb, - 0x51, 0xbc, 0x7f, 0x2c, 0x1a, 0xcd, 0xe9, 0x17, 0x9e, 0x82, 0x1c, 0xf9, 0xc9, 0x4e, 0xe4, 0x45, - 0x30, 0xff, 0x09, 0x67, 0xf6, 0x39, 0xc8, 0x9b, 0x1d, 0xb7, 0xe5, 0xea, 0xd1, 0xc2, 0xfe, 0x0e, - 0x1f, 0x69, 0x41, 0xbf, 0x50, 0x81, 0xbc, 0xe3, 0xb6, 0x5a, 0x5d, 0xee, 0x9f, 0x46, 0xb0, 0xff, - 0xe9, 0x77, 0xbd, 0x94, 0x85, 0xc7, 0x43, 0x46, 0xfb, 0xc6, 0x35, 0xd7, 0x32, 0xe9, 0x86, 0x47, - 0x14, 0xc2, 0x1b, 0x1c, 0x21, 0xc0, 0xb2, 0x50, 0x83, 0x71, 0xd2, 0x17, 0x1b, 0x5b, 0x98, 0xee, - 0x4e, 0x45, 0x40, 0xfc, 0x19, 0x17, 0x40, 0x88, 0xa9, 0xfa, 0xde, 0x2f, 0xbf, 0x3e, 0x13, 0xfb, - 0xca, 0xeb, 0x33, 0xb1, 0xdf, 0x7f, 0x7d, 0x26, 0xf6, 0xa1, 0xaf, 0xcd, 0x8c, 0x7d, 0xe5, 0x6b, - 0x33, 0x63, 0xbf, 0xf7, 0xb5, 0x99, 0xb1, 0xc1, 0x59, 0x62, 0xb8, 0x64, 0x5e, 0x32, 0x59, 0x7e, - 0xf8, 0x85, 0xfb, 0x76, 0x74, 0x77, 0xb7, 0xbb, 0x35, 0xdf, 0x34, 0x3b, 0x67, 0x9a, 0xa6, 0xd3, - 0x31, 0x9d, 0x33, 0xe1, 0xbc, 0x2e, 0xfd, 0x05, 0xff, 0x27, 0x46, 0x62, 0xe6, 0x70, 0x3a, 0x57, - 0x33, 0xf6, 0x87, 0x7d, 0xde, 0x73, 0x1e, 0x12, 0x15, 0x63, 0x1f, 0x1d, 0x63, 0x06, 0x4e, 0xed, - 0xda, 0x6d, 0x7e, 0x2c, 0x2c, 0x43, 0x9e, 0x37, 0xed, 0x36, 0x9a, 0xf2, 0xcf, 0x6e, 0xc6, 0x4e, - 0x8e, 0xf3, 0x03, 0x99, 0xd5, 0x0f, 0xc6, 0x0e, 0xd7, 0x93, 0x6c, 0xc5, 0xd8, 0xa7, 0x1d, 0x59, - 0x8f, 0xbd, 0xf0, 0x60, 0x64, 0x9e, 0xfb, 0x9a, 0x61, 0xde, 0x30, 0x48, 0xb3, 0xad, 0x2d, 0x91, - 0xe3, 0x9e, 0xe9, 0xcd, 0x71, 0x3f, 0x8b, 0xdb, 0xed, 0x67, 0x08, 0xdd, 0x06, 0x61, 0xd9, 0x4a, - 0xb3, 0x13, 0xc8, 0xf0, 0xe1, 0x38, 0xcc, 0xf4, 0xa5, 0xb3, 0xb9, 0x12, 0x0c, 0x13, 0xc2, 0x02, - 0x64, 0x17, 0x85, 0x6e, 0x4d, 0x43, 0xc6, 0xc1, 0x4d, 0xd3, 0x68, 0x39, 0x54, 0x10, 0x09, 0x45, - 0x3c, 0x12, 0x41, 0x18, 0x9a, 0x61, 0x3a, 0xfc, 0x60, 0x25, 0x7b, 0xa8, 0xfe, 0xfc, 0x21, 0x05, - 0x51, 0x10, 0x6f, 0x12, 0xd2, 0x78, 0x64, 0x44, 0x69, 0x88, 0x4e, 0x84, 0x32, 0xff, 0xa3, 0x4a, - 0xe5, 0x67, 0xe3, 0x30, 0xdb, 0x2b, 0x15, 0x32, 0xb3, 0x1c, 0x57, 0xeb, 0x58, 0xc3, 0xc4, 0x72, - 0x01, 0x72, 0x1b, 0x82, 0xe6, 0xd0, 0x72, 0xb9, 0x75, 0x48, 0xb9, 0x14, 0xbd, 0x57, 0x09, 0xc1, - 0x9c, 0x1d, 0x51, 0x30, 0x5e, 0x3f, 0x6e, 0x4b, 0x32, 0x7f, 0x9e, 0x86, 0x63, 0x6c, 0x3a, 0xa9, - 0x6c, 0x2a, 0xb1, 0x07, 0x2e, 0x93, 0xf1, 0x60, 0x55, 0xf4, 0x3e, 0x89, 0xfc, 0x0c, 0x4c, 0x2e, - 0x11, 0x6b, 0x41, 0xa2, 0x20, 0x7f, 0x87, 0x67, 0xe0, 0xd9, 0xd3, 0xb9, 0x90, 0xc3, 0xcf, 0x77, - 0x98, 0x82, 0x45, 0xf2, 0x0f, 0xc7, 0x40, 0x6a, 0x34, 0xb5, 0xb6, 0x66, 0x7f, 0xaf, 0x50, 0xe8, - 0x71, 0x00, 0xfa, 0xcd, 0x92, 0xff, 0x91, 0x51, 0xf1, 0xec, 0xf4, 0x7c, 0xb0, 0x73, 0xf3, 0xec, - 0x4d, 0xf4, 0x0b, 0x86, 0x1c, 0xa5, 0x25, 0x3f, 0x4f, 0x3f, 0x07, 0xe0, 0x57, 0xa0, 0xe3, 0x70, - 0xb4, 0x51, 0xab, 0x2c, 0x57, 0x14, 0x95, 0x1d, 0x86, 0x5f, 0x6d, 0xac, 0xd7, 0x6b, 0x4b, 0x17, - 0x97, 0xea, 0x8b, 0xd2, 0x18, 0x3a, 0x02, 0x28, 0x58, 0xe9, 0x9d, 0x4b, 0xb9, 0x03, 0x26, 0x82, - 0xe5, 0xec, 0x44, 0x7d, 0x9c, 0x78, 0x8a, 0x7a, 0xc7, 0x6a, 0x63, 0xba, 0xf5, 0xa7, 0xea, 0x42, - 0x6a, 0xd1, 0x4e, 0xc8, 0x6f, 0xff, 0x3b, 0x76, 0xca, 0x7a, 0xd2, 0x67, 0xf7, 0x64, 0xbe, 0xb0, - 0x0c, 0x13, 0x5a, 0xb3, 0x89, 0xad, 0x10, 0x64, 0x84, 0xa9, 0x26, 0x80, 0x74, 0x33, 0x93, 0x73, - 0xfa, 0x68, 0x8f, 0x43, 0xda, 0xa1, 0xbd, 0x8f, 0x82, 0xf8, 0x1d, 0x0e, 0xc1, 0xc9, 0x17, 0x0c, - 0x98, 0x20, 0x9e, 0x9f, 0x66, 0xe3, 0x40, 0x33, 0x0e, 0xce, 0x33, 0xfc, 0xc6, 0xe7, 0x1e, 0xa6, - 0x5b, 0x9b, 0x77, 0x87, 0x87, 0x65, 0x80, 0x3a, 0x29, 0x12, 0xc7, 0xf6, 0x1b, 0x8a, 0xa1, 0x28, - 0xde, 0xc7, 0x1b, 0x7c, 0xf0, 0xcb, 0x7e, 0x93, 0xbf, 0x6c, 0x66, 0x90, 0x0e, 0x04, 0xde, 0x54, - 0xe0, 0xa8, 0xac, 0xa2, 0x5a, 0x1f, 0x36, 0xa7, 0x5f, 0x78, 0xa0, 0x7f, 0x75, 0x62, 0xff, 0x3d, - 0x44, 0x91, 0x2f, 0x04, 0x5f, 0xe3, 0xcd, 0xbd, 0x8f, 0x24, 0x61, 0x42, 0xeb, 0xe8, 0x86, 0x79, - 0x86, 0xfe, 0xcb, 0xe7, 0x5c, 0x8a, 0x3e, 0x8c, 0xb0, 0x29, 0x79, 0x9e, 0x4d, 0x85, 0x68, 0x8d, - 0xf9, 0x93, 0x9f, 0xfc, 0x54, 0xca, 0x9f, 0x2e, 0x0b, 0x2b, 0x20, 0x89, 0x03, 0x87, 0xd8, 0x68, - 0x9a, 0xad, 0x91, 0xb2, 0x14, 0xdf, 0x11, 0x18, 0x22, 0xbf, 0x55, 0xe7, 0xac, 0x0b, 0xef, 0x80, - 0xac, 0x07, 0x13, 0xe5, 0x99, 0x08, 0x10, 0x8f, 0x83, 0xf8, 0x25, 0x6c, 0x66, 0x8e, 0xe2, 0x85, - 0xbe, 0x21, 0xf8, 0xd9, 0x0c, 0x5d, 0x25, 0xbd, 0xb9, 0x04, 0xc5, 0x96, 0x69, 0xb8, 0xaa, 0xd9, - 0xd1, 0x5d, 0xdc, 0xb1, 0xdc, 0x48, 0xbf, 0xee, 0xcf, 0x18, 0x48, 0x56, 0x29, 0x10, 0xbe, 0x35, - 0xc1, 0x46, 0xfb, 0x41, 0x3c, 0xeb, 0x56, 0xb4, 0x73, 0xf3, 0x3f, 0x04, 0x84, 0xc7, 0x71, 0x5b, - 0xaa, 0xe1, 0xb4, 0xae, 0x71, 0x4b, 0xee, 0xee, 0x31, 0x15, 0xf0, 0x54, 0xe3, 0x8f, 0x12, 0x30, - 0xc3, 0x89, 0xb7, 0x34, 0x07, 0x9f, 0xb9, 0xfe, 0xc8, 0x16, 0x76, 0xb5, 0x47, 0xce, 0x34, 0x4d, - 0x5d, 0x2c, 0xe3, 0x93, 0xdc, 0x52, 0x93, 0xfa, 0x79, 0x5e, 0x5f, 0x1e, 0xb8, 0xd7, 0x5d, 0x1e, - 0x6e, 0xe1, 0xcb, 0xfd, 0x0a, 0x28, 0xbf, 0x00, 0xc9, 0x9a, 0xa9, 0x1b, 0x64, 0x61, 0x6b, 0x61, - 0xc3, 0xec, 0x70, 0x5b, 0xcb, 0x1e, 0xd0, 0x79, 0x48, 0x6b, 0x1d, 0xb3, 0x6b, 0xb8, 0xcc, 0xce, - 0x56, 0x67, 0xbe, 0xfc, 0xda, 0xec, 0xd8, 0x7f, 0x78, 0x6d, 0x36, 0xb1, 0x64, 0xb8, 0xbf, 0xfb, - 0xf9, 0x87, 0x80, 0xa3, 0x2f, 0x19, 0xee, 0xab, 0xdf, 0xf8, 0xec, 0xe9, 0x98, 0xc2, 0xa9, 0x17, - 0x92, 0xdf, 0x7c, 0x65, 0x36, 0x26, 0x3f, 0x07, 0x99, 0x45, 0xdc, 0x3c, 0x00, 0xfe, 0x91, 0x1e, - 0xf8, 0x63, 0x02, 0x7e, 0x11, 0x37, 0x03, 0xf0, 0x8b, 0xb8, 0xd9, 0x83, 0xfc, 0x38, 0x64, 0x97, - 0x0c, 0x97, 0x7d, 0xeb, 0xf0, 0x00, 0x24, 0x74, 0x83, 0x1d, 0x9f, 0x0d, 0x20, 0xf4, 0x35, 0x50, - 0x21, 0x54, 0x84, 0x71, 0x11, 0x37, 0x3d, 0xc6, 0x16, 0x6e, 0xf6, 0x32, 0xf6, 0xbf, 0x9a, 0x50, - 0x55, 0x17, 0x7f, 0xef, 0xbf, 0xcc, 0x8c, 0xbd, 0xfc, 0xfa, 0xcc, 0xd8, 0xd0, 0xa1, 0x97, 0xa3, - 0x87, 0xde, 0x1b, 0xf1, 0x4f, 0x25, 0xe1, 0x2e, 0xfa, 0x09, 0x9c, 0xdd, 0xd1, 0x0d, 0xf7, 0x4c, - 0xd3, 0xde, 0xb7, 0x5c, 0x93, 0xcc, 0x7e, 0x73, 0x9b, 0x0f, 0xf8, 0x84, 0x5f, 0x3d, 0xcf, 0xaa, - 0x07, 0x0f, 0xb7, 0xbc, 0x0d, 0xa9, 0x75, 0xc2, 0x47, 0x44, 0xec, 0x9a, 0xae, 0xd6, 0xe6, 0x2e, - 0x0b, 0x7b, 0x20, 0xa5, 0xec, 0xb3, 0xb9, 0x38, 0x2b, 0xd5, 0xc5, 0x17, 0x73, 0x6d, 0xac, 0x6d, - 0xb3, 0xaf, 0x0f, 0x12, 0xd4, 0xd7, 0xcd, 0x92, 0x02, 0xfa, 0xa1, 0xc1, 0x14, 0xa4, 0xb4, 0x2e, - 0x3b, 0xf6, 0x92, 0x20, 0x4e, 0x30, 0x7d, 0x90, 0x9f, 0x81, 0x0c, 0xdf, 0x7c, 0x47, 0x12, 0x24, - 0xae, 0xe1, 0x7d, 0xfa, 0x9e, 0x71, 0x85, 0xfc, 0x44, 0xf3, 0x90, 0xa2, 0x8d, 0xe7, 0x9f, 0x55, - 0x4d, 0xcf, 0xf7, 0xb5, 0x7e, 0x9e, 0x36, 0x52, 0x61, 0x64, 0xf2, 0x15, 0xc8, 0x2e, 0x9a, 0x44, - 0x0b, 0xc3, 0x68, 0x39, 0x86, 0x46, 0xdb, 0x6c, 0x75, 0xb9, 0x56, 0x28, 0xec, 0x01, 0x1d, 0x81, - 0x34, 0xfb, 0x1a, 0x85, 0x1f, 0xdd, 0xe1, 0x4f, 0x72, 0x0d, 0x32, 0x14, 0x7b, 0xcd, 0x22, 0xfe, - 0x82, 0x77, 0xf0, 0x37, 0xc7, 0xbf, 0x4d, 0xe4, 0xf0, 0x71, 0xbf, 0xb1, 0x08, 0x92, 0x2d, 0xcd, - 0xd5, 0x78, 0xbf, 0xe9, 0x6f, 0xf9, 0x9d, 0x90, 0xe5, 0x20, 0x0e, 0x3a, 0x0b, 0x09, 0xd3, 0x72, - 0xf8, 0xe1, 0x9b, 0xf2, 0xb0, 0xae, 0xac, 0x59, 0xd5, 0x24, 0xd1, 0x19, 0x85, 0x10, 0x57, 0x57, - 0x87, 0xaa, 0xc5, 0x63, 0x21, 0xb5, 0xe8, 0x60, 0x77, 0x6b, 0xdb, 0xf5, 0x7f, 0xb0, 0xe1, 0xec, - 0x53, 0x05, 0x4f, 0x51, 0x6e, 0xc5, 0x61, 0x26, 0x50, 0x7b, 0x1d, 0xdb, 0x8e, 0x6e, 0x1a, 0x4c, - 0x9b, 0xb8, 0xa6, 0xa0, 0x40, 0x03, 0x79, 0xfd, 0x10, 0x55, 0x79, 0x0a, 0x12, 0x15, 0xcb, 0x42, - 0x65, 0xc8, 0xd2, 0xe7, 0xa6, 0xc9, 0x74, 0x25, 0xa9, 0x78, 0xcf, 0xa4, 0xce, 0x31, 0xb7, 0xdd, - 0x1b, 0x9a, 0xed, 0x7d, 0xac, 0x29, 0x9e, 0xe5, 0x27, 0x21, 0x57, 0x33, 0x0d, 0x07, 0x1b, 0x4e, - 0x97, 0x3a, 0xc2, 0x5b, 0x6d, 0xb3, 0x79, 0x8d, 0x23, 0xb0, 0x07, 0x22, 0x6c, 0xcd, 0xb2, 0x28, - 0x67, 0x52, 0x21, 0x3f, 0xd9, 0x7c, 0xad, 0xae, 0x0d, 0x15, 0xcf, 0xb9, 0xc3, 0x89, 0x87, 0x77, - 0xd0, 0xf7, 0x68, 0x63, 0x70, 0x67, 0xff, 0x44, 0xba, 0x86, 0xf7, 0x9d, 0xc3, 0xce, 0xa3, 0xe7, - 0x20, 0xb7, 0x4e, 0x6f, 0x4b, 0x78, 0x06, 0xef, 0xa3, 0x32, 0x64, 0x70, 0xeb, 0xec, 0xb9, 0x73, - 0x8f, 0x3c, 0xc9, 0xb4, 0xfc, 0xf2, 0x98, 0x22, 0x0a, 0xd0, 0x0c, 0xe4, 0x1c, 0xdc, 0xb4, 0xce, - 0x9e, 0x3b, 0x7f, 0xed, 0x11, 0xa6, 0x56, 0x97, 0xc7, 0x14, 0xbf, 0x68, 0x21, 0x4b, 0x7a, 0xfc, - 0xcd, 0x4f, 0xcc, 0xc6, 0xaa, 0x29, 0x48, 0x38, 0xdd, 0xce, 0x5b, 0xa6, 0x1b, 0x3f, 0x93, 0x82, - 0xb9, 0x40, 0x2d, 0x5b, 0x5c, 0xae, 0x6b, 0x6d, 0xbd, 0xa5, 0xf9, 0x77, 0x5c, 0x48, 0x81, 0xfe, - 0x53, 0x8a, 0x21, 0xab, 0xc6, 0x81, 0x52, 0x94, 0x7f, 0x25, 0x06, 0xe3, 0x57, 0x05, 0x72, 0x03, - 0xbb, 0xe8, 0x02, 0x80, 0xf7, 0x26, 0x31, 0x55, 0x8e, 0xcf, 0xf7, 0xbe, 0x6b, 0xde, 0xe3, 0x51, - 0x02, 0xe4, 0xe8, 0x71, 0xaa, 0x80, 0x96, 0xe9, 0xf0, 0x0f, 0xf7, 0x22, 0x58, 0x3d, 0x62, 0xf4, - 0x20, 0x20, 0x6a, 0xd5, 0xd4, 0xeb, 0xa6, 0xab, 0x1b, 0x3b, 0xaa, 0x65, 0xde, 0xe0, 0x9f, 0x43, - 0x27, 0x14, 0x89, 0xd6, 0x5c, 0xa5, 0x15, 0xeb, 0xa4, 0x9c, 0x34, 0x3a, 0xe7, 0xa1, 0x90, 0x98, - 0x4e, 0x6b, 0xb5, 0x6c, 0xec, 0x38, 0xdc, 0x70, 0x89, 0x47, 0x74, 0x01, 0x32, 0x56, 0x77, 0x4b, - 0x15, 0x56, 0x22, 0x7f, 0xf6, 0xce, 0x41, 0x73, 0x5e, 0xe8, 0x06, 0x9f, 0xf5, 0x69, 0xab, 0xbb, - 0x45, 0x34, 0xe5, 0x6e, 0x18, 0x1f, 0xd0, 0x98, 0xfc, 0x75, 0xbf, 0x1d, 0xf4, 0x82, 0x0e, 0xde, - 0x03, 0xd5, 0xb2, 0x75, 0xd3, 0xd6, 0xdd, 0x7d, 0x7a, 0x6a, 0x2e, 0xa1, 0x48, 0xa2, 0x62, 0x9d, - 0x97, 0xcb, 0xd7, 0xa0, 0xd4, 0xa0, 0xbe, 0xbe, 0xdf, 0xf2, 0x73, 0x7e, 0xfb, 0x62, 0xd1, 0xed, - 0x1b, 0xda, 0xb2, 0x78, 0x5f, 0xcb, 0xaa, 0x2b, 0x43, 0x35, 0xf3, 0xd1, 0xc3, 0x69, 0x66, 0x78, - 0x75, 0xfb, 0x83, 0x63, 0xa1, 0x49, 0xc9, 0xbd, 0x9e, 0x80, 0xc9, 0x1a, 0x55, 0x29, 0xa3, 0xc2, - 0xf8, 0xf2, 0xc1, 0x8b, 0x68, 0x39, 0xc2, 0x74, 0x96, 0x23, 0xa7, 0x8f, 0xfc, 0x24, 0x14, 0xd6, - 0x35, 0xdb, 0x6d, 0x60, 0xf7, 0x32, 0xd6, 0x5a, 0xd8, 0x0e, 0xaf, 0xb2, 0x05, 0xb1, 0xca, 0x22, - 0x48, 0xd2, 0xa5, 0x94, 0xad, 0x32, 0xf4, 0xb7, 0xbc, 0x0b, 0x49, 0x7a, 0x6a, 0xd6, 0x5b, 0x81, - 0x39, 0x07, 0x5b, 0x81, 0x89, 0xfd, 0xdc, 0x77, 0xb1, 0x23, 0x32, 0x4d, 0xf4, 0x01, 0x3d, 0x26, - 0xd6, 0xd1, 0xc4, 0xc1, 0xeb, 0x28, 0x57, 0x42, 0xbe, 0x9a, 0xb6, 0x21, 0x53, 0x25, 0xe6, 0x77, - 0x69, 0xd1, 0x6b, 0x48, 0xcc, 0x6f, 0x08, 0x5a, 0x81, 0x92, 0xa5, 0xd9, 0x2e, 0xfd, 0xe0, 0x68, - 0x97, 0xf6, 0x82, 0xeb, 0xf9, 0x6c, 0xff, 0xac, 0x0b, 0x75, 0x96, 0xbf, 0xa5, 0x60, 0x05, 0x0b, - 0xe5, 0xff, 0x9a, 0x84, 0x34, 0x17, 0xc6, 0x53, 0x90, 0xe1, 0x62, 0xe5, 0x9a, 0x79, 0xd7, 0x7c, - 0xff, 0x62, 0x34, 0xef, 0x2d, 0x1a, 0x1c, 0x4f, 0xf0, 0xa0, 0xfb, 0x21, 0xdb, 0xdc, 0xd5, 0x74, - 0x43, 0xd5, 0x5b, 0xdc, 0x01, 0xcc, 0xbf, 0xfe, 0xda, 0x6c, 0xa6, 0x46, 0xca, 0x96, 0x16, 0x95, - 0x0c, 0xad, 0x5c, 0x6a, 0x91, 0x95, 0x7f, 0x17, 0xeb, 0x3b, 0xbb, 0x2e, 0x9f, 0x5d, 0xfc, 0x09, - 0x3d, 0x01, 0x49, 0xa2, 0x10, 0xfc, 0x73, 0xd4, 0x72, 0x9f, 0x1b, 0xef, 0x65, 0x59, 0xaa, 0x59, - 0xf2, 0xe2, 0x0f, 0xfd, 0xe7, 0xd9, 0x98, 0x42, 0x39, 0x50, 0x0d, 0x0a, 0x6d, 0xcd, 0x71, 0x55, - 0xba, 0x6a, 0x91, 0xd7, 0xa7, 0x28, 0xc4, 0xb1, 0x7e, 0x81, 0x70, 0xc1, 0xf2, 0xa6, 0xe7, 0x09, - 0x17, 0x2b, 0x6a, 0xa1, 0x93, 0x20, 0x51, 0x90, 0xa6, 0xd9, 0xe9, 0xe8, 0x2e, 0xf3, 0xa5, 0xd2, - 0x54, 0xee, 0x45, 0x52, 0x5e, 0xa3, 0xc5, 0xd4, 0xa3, 0x3a, 0x0e, 0x39, 0xfa, 0x01, 0x1c, 0x25, - 0x61, 0x47, 0xb5, 0xb3, 0xa4, 0x80, 0x56, 0x9e, 0x80, 0x92, 0x6f, 0x1b, 0x19, 0x49, 0x96, 0xa1, - 0xf8, 0xc5, 0x94, 0xf0, 0x61, 0x98, 0x32, 0xf0, 0x1e, 0x3d, 0x3c, 0x1e, 0xa2, 0xce, 0x51, 0x6a, - 0x44, 0xea, 0xae, 0x86, 0x39, 0xee, 0x83, 0x62, 0x53, 0x08, 0x9f, 0xd1, 0x02, 0xa5, 0x2d, 0x78, - 0xa5, 0x94, 0xec, 0x18, 0x64, 0x35, 0xcb, 0x62, 0x04, 0x79, 0x6e, 0x1b, 0x2d, 0x8b, 0x56, 0x9d, - 0x86, 0x09, 0xda, 0x47, 0x1b, 0x3b, 0xdd, 0xb6, 0xcb, 0x41, 0xc6, 0x29, 0x4d, 0x89, 0x54, 0x28, - 0xac, 0x9c, 0xd2, 0xde, 0x03, 0x05, 0x7c, 0x5d, 0x6f, 0x61, 0xa3, 0x89, 0x19, 0x5d, 0x81, 0xd2, - 0x8d, 0x8b, 0x42, 0x4a, 0x74, 0x0a, 0x3c, 0x9b, 0xa7, 0x0a, 0x7b, 0x5c, 0x64, 0x78, 0xa2, 0xbc, - 0xc2, 0x8a, 0xe5, 0x69, 0x48, 0x2e, 0x6a, 0xae, 0x46, 0x9c, 0x0a, 0x77, 0x8f, 0x2d, 0x32, 0xe3, - 0x0a, 0xf9, 0x29, 0x7f, 0x33, 0x0e, 0xc9, 0xab, 0xa6, 0x8b, 0xd1, 0xa3, 0x01, 0x87, 0xaf, 0x38, - 0x48, 0x9f, 0x1b, 0xfa, 0x8e, 0x81, 0x5b, 0x2b, 0xce, 0x4e, 0xe0, 0xb6, 0x0a, 0x5f, 0x9d, 0xe2, - 0x21, 0x75, 0x9a, 0x82, 0x94, 0x6d, 0x76, 0x8d, 0x96, 0x38, 0xe5, 0x4c, 0x1f, 0x50, 0x1d, 0xb2, - 0x9e, 0x96, 0x24, 0xa3, 0xb4, 0xa4, 0x44, 0xb4, 0x84, 0xe8, 0x30, 0x2f, 0x50, 0x32, 0x5b, 0x5c, - 0x59, 0xaa, 0x90, 0xf3, 0x8c, 0x17, 0xd7, 0xb6, 0xd1, 0x14, 0xd6, 0x67, 0x23, 0x0b, 0x89, 0x37, - 0xf6, 0x9e, 0xf0, 0x98, 0xc6, 0x49, 0x5e, 0x05, 0x97, 0x5e, 0x48, 0xad, 0xf8, 0xcd, 0x19, 0x19, - 0xda, 0x2f, 0x5f, 0xad, 0xd8, 0xed, 0x19, 0x77, 0x42, 0xce, 0xd1, 0x77, 0x0c, 0xcd, 0xed, 0xda, - 0x98, 0x6b, 0x9e, 0x5f, 0x20, 0x7f, 0x29, 0x06, 0x69, 0xa6, 0xc9, 0x01, 0xb9, 0xc5, 0x06, 0xcb, - 0x2d, 0x3e, 0x4c, 0x6e, 0x89, 0xdb, 0x97, 0x5b, 0x05, 0xc0, 0x6b, 0x8c, 0xc3, 0x2f, 0x34, 0x18, - 0xe0, 0x2d, 0xb0, 0x26, 0x36, 0xf4, 0x1d, 0x3e, 0x51, 0x03, 0x4c, 0xf2, 0x7f, 0x8a, 0x11, 0xc7, - 0x95, 0xd7, 0xa3, 0x0a, 0x14, 0x44, 0xbb, 0xd4, 0xed, 0xb6, 0xb6, 0xc3, 0x75, 0xe7, 0xae, 0xa1, - 0x8d, 0xbb, 0xd8, 0xd6, 0x76, 0x94, 0x3c, 0x6f, 0x0f, 0x79, 0x18, 0x3c, 0x0e, 0xf1, 0x21, 0xe3, - 0x10, 0x1a, 0xf8, 0xc4, 0xed, 0x0d, 0x7c, 0x68, 0x88, 0x92, 0xbd, 0x43, 0xf4, 0xb9, 0x38, 0x0d, - 0x5e, 0x2c, 0xd3, 0xd1, 0xda, 0x6f, 0xc7, 0x8c, 0x38, 0x0e, 0x39, 0xcb, 0x6c, 0xab, 0xac, 0x86, - 0x9d, 0xfe, 0xcf, 0x5a, 0x66, 0x5b, 0xe9, 0x1b, 0xf6, 0xd4, 0x9b, 0x34, 0x5d, 0xd2, 0x6f, 0x82, - 0xd4, 0x32, 0xbd, 0x52, 0xb3, 0x61, 0x9c, 0x89, 0x82, 0xaf, 0x65, 0x0f, 0x13, 0x19, 0xd0, 0xc5, - 0x31, 0xd6, 0xbf, 0xf6, 0xb2, 0x66, 0x33, 0x4a, 0x85, 0xd3, 0x11, 0x0e, 0x66, 0xfa, 0x07, 0x45, - 0xbd, 0x41, 0xb5, 0x54, 0x38, 0x9d, 0xfc, 0x33, 0x31, 0x80, 0x65, 0x22, 0x59, 0xda, 0x5f, 0xb2, - 0x0a, 0x39, 0xb4, 0x09, 0x6a, 0xe8, 0xcd, 0x33, 0xc3, 0x06, 0x8d, 0xbf, 0x7f, 0xdc, 0x09, 0xb6, - 0xbb, 0x06, 0x05, 0x5f, 0x19, 0x1d, 0x2c, 0x1a, 0x33, 0x73, 0x80, 0x47, 0xdd, 0xc0, 0xae, 0x32, - 0x7e, 0x3d, 0xf0, 0x24, 0xff, 0x93, 0x18, 0xe4, 0x68, 0x9b, 0x56, 0xb0, 0xab, 0x85, 0xc6, 0x30, - 0x76, 0xfb, 0x63, 0x78, 0x17, 0x00, 0x83, 0x71, 0xf4, 0x97, 0x30, 0xd7, 0xac, 0x1c, 0x2d, 0x69, - 0xe8, 0x2f, 0x61, 0x74, 0xde, 0x13, 0x78, 0xe2, 0x60, 0x81, 0x0b, 0x8f, 0x9b, 0x8b, 0xfd, 0x28, - 0x64, 0xe8, 0x05, 0x60, 0x7b, 0x0e, 0x77, 0xa2, 0xd3, 0x46, 0xb7, 0xb3, 0xb1, 0xe7, 0xc8, 0x2f, - 0x42, 0x66, 0x63, 0x8f, 0xe5, 0x42, 0x8e, 0x43, 0xce, 0x36, 0x4d, 0xbe, 0x26, 0x33, 0x5f, 0x28, - 0x4b, 0x0a, 0xe8, 0x12, 0x24, 0xe2, 0xff, 0xb8, 0x1f, 0xff, 0xfb, 0x09, 0x8c, 0xc4, 0x48, 0x09, - 0x8c, 0xd3, 0xff, 0x3e, 0x06, 0xf9, 0x80, 0x7d, 0x40, 0x8f, 0xc0, 0x1d, 0xd5, 0xe5, 0xb5, 0xda, - 0x33, 0xea, 0xd2, 0xa2, 0x7a, 0x71, 0xb9, 0x72, 0xc9, 0xff, 0xbe, 0xad, 0x7c, 0xe4, 0xe6, 0xad, - 0x39, 0x14, 0xa0, 0xdd, 0x34, 0xe8, 0x56, 0x0e, 0x3a, 0x03, 0x53, 0x61, 0x96, 0x4a, 0xb5, 0x51, - 0x5f, 0xdd, 0x90, 0x62, 0xe5, 0x3b, 0x6e, 0xde, 0x9a, 0x9b, 0x08, 0x70, 0x54, 0xb6, 0x1c, 0x6c, - 0xb8, 0xfd, 0x0c, 0xb5, 0xb5, 0x95, 0x95, 0xa5, 0x0d, 0x29, 0xde, 0xc7, 0xc0, 0x0d, 0xf6, 0x29, - 0x98, 0x08, 0x33, 0xac, 0x2e, 0x2d, 0x4b, 0x89, 0x32, 0xba, 0x79, 0x6b, 0xae, 0x18, 0xa0, 0x5e, - 0xd5, 0xdb, 0xe5, 0xec, 0x07, 0x3e, 0x39, 0x33, 0xf6, 0xea, 0xdf, 0x99, 0x89, 0x91, 0x9e, 0x15, - 0x42, 0x36, 0x02, 0x3d, 0x08, 0x47, 0x1b, 0x4b, 0x97, 0x56, 0xeb, 0x8b, 0xea, 0x4a, 0xe3, 0x92, - 0xd8, 0x0c, 0x11, 0xbd, 0x2b, 0xdd, 0xbc, 0x35, 0x97, 0xe7, 0x5d, 0x1a, 0x46, 0xbd, 0xae, 0xd4, - 0xaf, 0xae, 0x6d, 0xd4, 0xa5, 0x18, 0xa3, 0x5e, 0xb7, 0xf1, 0x75, 0xd3, 0x65, 0x37, 0x04, 0x3e, - 0x0c, 0xc7, 0x06, 0x50, 0x7b, 0x1d, 0x9b, 0xb8, 0x79, 0x6b, 0xae, 0xb0, 0x6e, 0x63, 0x36, 0x7f, - 0x28, 0xc7, 0x3c, 0x4c, 0xf7, 0x73, 0xac, 0xad, 0xaf, 0x35, 0x2a, 0xcb, 0xd2, 0x5c, 0x59, 0xba, - 0x79, 0x6b, 0x6e, 0x5c, 0x18, 0x43, 0x42, 0xef, 0xf7, 0xec, 0xad, 0x8a, 0x76, 0x7e, 0x3c, 0x13, - 0xca, 0xe5, 0xb1, 0x38, 0xc2, 0xd2, 0x6c, 0xad, 0x73, 0xd8, 0x70, 0x27, 0x62, 0x2f, 0x57, 0x7e, - 0x39, 0x0e, 0x25, 0xcf, 0x99, 0x5e, 0xa7, 0x6f, 0x40, 0x8f, 0x06, 0xf3, 0x30, 0xf9, 0xa1, 0xcb, - 0x18, 0xa3, 0x16, 0x69, 0x9a, 0x77, 0x40, 0x56, 0x38, 0x65, 0xdc, 0x5c, 0xcc, 0xf5, 0xf3, 0xd5, - 0x39, 0x05, 0x67, 0xf5, 0x38, 0xd0, 0xd3, 0x90, 0xf3, 0x8c, 0x87, 0x77, 0xbf, 0xce, 0x70, 0x6b, - 0xc3, 0xf9, 0x7d, 0x1e, 0xf4, 0xa4, 0x1f, 0x36, 0x24, 0x87, 0x05, 0x22, 0x57, 0x19, 0x01, 0x67, - 0x16, 0xf4, 0xf2, 0x12, 0x9f, 0x76, 0xbc, 0xf7, 0xf4, 0x6e, 0x82, 0x3d, 0x95, 0x45, 0x52, 0xcc, - 0x2b, 0xc9, 0x76, 0xb4, 0xbd, 0x2a, 0x0d, 0xa6, 0x8e, 0x42, 0x86, 0x54, 0xee, 0xf0, 0x4f, 0xaf, - 0x13, 0x4a, 0xba, 0xa3, 0xed, 0x5d, 0xd2, 0x9c, 0x2b, 0xc9, 0x6c, 0x42, 0x4a, 0xca, 0x9f, 0x89, - 0x41, 0x31, 0xdc, 0x47, 0xf4, 0x00, 0x20, 0xc2, 0xa1, 0xed, 0x60, 0x95, 0x98, 0x18, 0x2a, 0x2c, - 0x81, 0x5b, 0xea, 0x68, 0x7b, 0x95, 0x1d, 0xbc, 0xda, 0xed, 0xd0, 0x06, 0x38, 0x68, 0x05, 0x24, - 0x41, 0x2c, 0xc6, 0x89, 0x0b, 0xf3, 0x58, 0xff, 0x6d, 0x7b, 0x9c, 0x80, 0x2d, 0x54, 0x1f, 0x21, - 0x0b, 0x55, 0x91, 0xe1, 0x79, 0x7b, 0xf1, 0xa1, 0xae, 0x24, 0xc2, 0x5d, 0x91, 0x9f, 0x86, 0x52, - 0x8f, 0x3c, 0x91, 0x0c, 0x05, 0x9e, 0x15, 0xa0, 0xfb, 0x9c, 0xcc, 0x3f, 0xce, 0x29, 0x79, 0x16, - 0xfd, 0xd3, 0x7d, 0xdf, 0x85, 0xec, 0x17, 0x5f, 0x99, 0x8d, 0xd1, 0x84, 0xf9, 0x03, 0x50, 0x08, - 0x49, 0x54, 0x64, 0xea, 0x62, 0x7e, 0xa6, 0xce, 0x27, 0x7e, 0x01, 0xc6, 0x89, 0xa1, 0xc4, 0x2d, - 0x4e, 0x7b, 0x3f, 0x94, 0x98, 0x21, 0xef, 0x95, 0x35, 0xf3, 0xa4, 0x56, 0x84, 0xc0, 0x65, 0xe1, - 0x5a, 0x85, 0xc5, 0x9e, 0x17, 0x54, 0x97, 0x34, 0xa7, 0xfa, 0xae, 0x57, 0x5f, 0x9f, 0x89, 0xbd, - 0x35, 0x13, 0xf1, 0xab, 0xef, 0x82, 0xe3, 0x81, 0x4a, 0x6d, 0xab, 0xa9, 0x87, 0xb2, 0x0e, 0xa5, - 0x80, 0x92, 0x91, 0xca, 0xa8, 0xec, 0xc1, 0x81, 0x39, 0x8c, 0x83, 0x13, 0x66, 0xe5, 0x83, 0x2d, - 0x42, 0x74, 0x62, 0x63, 0x70, 0x8e, 0xf2, 0xff, 0x66, 0x21, 0xa3, 0xe0, 0xf7, 0x75, 0xb1, 0xe3, - 0xa2, 0xb3, 0x90, 0xc4, 0xcd, 0x5d, 0x73, 0x50, 0x4a, 0x88, 0x74, 0x6e, 0x9e, 0xd3, 0xd5, 0x9b, - 0xbb, 0xe6, 0xe5, 0x31, 0x85, 0xd2, 0xa2, 0x73, 0x90, 0xda, 0x6e, 0x77, 0x79, 0x9e, 0xa2, 0xc7, - 0x58, 0x04, 0x99, 0x2e, 0x12, 0xa2, 0xcb, 0x63, 0x0a, 0xa3, 0x26, 0xaf, 0xa2, 0xf7, 0x96, 0x26, - 0x0e, 0x7e, 0xd5, 0x92, 0xb1, 0x4d, 0x5f, 0x45, 0x68, 0x51, 0x15, 0x40, 0x37, 0x74, 0x57, 0xa5, - 0x31, 0x3c, 0xf7, 0x04, 0xef, 0x1e, 0xce, 0xa9, 0xbb, 0x34, 0xea, 0xbf, 0x3c, 0xa6, 0xe4, 0x74, - 0xf1, 0x40, 0x9a, 0xfb, 0xbe, 0x2e, 0xb6, 0xf7, 0xb9, 0x03, 0x38, 0xb4, 0xb9, 0xef, 0x22, 0x44, - 0xa4, 0xb9, 0x94, 0x1a, 0xd5, 0x21, 0x4f, 0x3f, 0x50, 0x65, 0xf3, 0x97, 0xdf, 0xa1, 0x29, 0x0f, - 0x63, 0xae, 0x12, 0x52, 0x3a, 0xa5, 0x2f, 0x8f, 0x29, 0xb0, 0xe5, 0x3d, 0x11, 0x23, 0xc9, 0xee, - 0x58, 0x72, 0xf7, 0xf8, 0xcd, 0x81, 0xb3, 0xc3, 0x30, 0xe8, 0x45, 0x4b, 0x1b, 0x7b, 0x97, 0xc7, - 0x94, 0x4c, 0x93, 0xfd, 0x24, 0xfd, 0x6f, 0xe1, 0xb6, 0x7e, 0x1d, 0xdb, 0x84, 0x3f, 0x77, 0x70, - 0xff, 0x17, 0x19, 0x25, 0x45, 0xc8, 0xb5, 0xc4, 0x03, 0x31, 0xb4, 0xd8, 0x68, 0xf1, 0x6e, 0x40, - 0xbf, 0x9d, 0x0e, 0x8d, 0xb3, 0xd1, 0x12, 0x9d, 0xc8, 0x62, 0xfe, 0x1b, 0x3d, 0xe1, 0x79, 0xa8, - 0xf9, 0x7e, 0xa7, 0x30, 0xd4, 0x01, 0x96, 0xab, 0x18, 0x13, 0x9e, 0x2a, 0x5a, 0x85, 0x62, 0x5b, - 0x77, 0x5c, 0xd5, 0x31, 0x34, 0xcb, 0xd9, 0x35, 0x5d, 0x87, 0x06, 0xfd, 0xf9, 0xb3, 0xf7, 0x0d, - 0x43, 0x58, 0xd6, 0x1d, 0xb7, 0x21, 0x88, 0x2f, 0x8f, 0x29, 0x85, 0x76, 0xb0, 0x80, 0xe0, 0x99, - 0xdb, 0xdb, 0xd8, 0xf6, 0x00, 0x69, 0x72, 0xe0, 0x00, 0xbc, 0x35, 0x42, 0x2d, 0xf8, 0x09, 0x9e, - 0x19, 0x2c, 0x40, 0x3f, 0x08, 0x93, 0x6d, 0x53, 0x6b, 0x79, 0x70, 0x6a, 0x73, 0xb7, 0x6b, 0x5c, - 0xa3, 0x99, 0x84, 0xfc, 0xd9, 0x53, 0x43, 0x1b, 0x69, 0x6a, 0x2d, 0x01, 0x51, 0x23, 0x0c, 0x97, - 0xc7, 0x94, 0x89, 0x76, 0x6f, 0x21, 0x7a, 0x0f, 0x4c, 0x69, 0x96, 0xd5, 0xde, 0xef, 0x45, 0x2f, - 0x51, 0xf4, 0xd3, 0xc3, 0xd0, 0x2b, 0x84, 0xa7, 0x17, 0x1e, 0x69, 0x7d, 0xa5, 0x68, 0x03, 0x24, - 0xcb, 0xc6, 0xf4, 0x8b, 0x1a, 0x8b, 0xbb, 0x2a, 0xf4, 0x5a, 0xac, 0xfc, 0xd9, 0x13, 0xc3, 0xb0, - 0xd7, 0x19, 0xbd, 0xf0, 0x6c, 0x2e, 0x8f, 0x29, 0x25, 0x2b, 0x5c, 0xc4, 0x50, 0xcd, 0x26, 0xa6, - 0x57, 0x37, 0x71, 0xd4, 0x89, 0x28, 0x54, 0x4a, 0x1f, 0x46, 0x0d, 0x15, 0x55, 0x33, 0xfc, 0x44, - 0x1c, 0xbf, 0x57, 0xe5, 0x04, 0xe4, 0x03, 0x86, 0x05, 0x4d, 0x43, 0x86, 0x9f, 0x10, 0x10, 0x27, - 0xe9, 0xf8, 0xa3, 0x5c, 0x84, 0xf1, 0xa0, 0x31, 0x91, 0x3f, 0x14, 0xf3, 0x38, 0xe9, 0x87, 0xee, - 0xd3, 0xe1, 0xd4, 0x61, 0xce, 0xcf, 0x0a, 0xde, 0x23, 0x56, 0x11, 0x51, 0xcf, 0x76, 0x93, 0xc6, - 0x69, 0x21, 0x5f, 0xc4, 0xd0, 0x2c, 0xe4, 0xad, 0xb3, 0x96, 0x47, 0x92, 0xa0, 0x24, 0x60, 0x9d, - 0xb5, 0x04, 0xc1, 0xdd, 0x30, 0x4e, 0x7a, 0xaa, 0x06, 0x1d, 0x8d, 0x9c, 0x92, 0x27, 0x65, 0x9c, - 0x44, 0xfe, 0xd7, 0x71, 0x90, 0x7a, 0x0d, 0x90, 0x97, 0x53, 0x8c, 0x1d, 0x3a, 0xa7, 0x78, 0xac, - 0x37, 0x9b, 0xe9, 0x27, 0x30, 0x97, 0x41, 0xf2, 0xf3, 0x70, 0x6c, 0x21, 0x18, 0xee, 0x38, 0xf5, - 0x78, 0x78, 0x4a, 0xa9, 0xd9, 0xe3, 0xf2, 0x5d, 0x0c, 0xed, 0xbd, 0x88, 0x8b, 0xb9, 0x7b, 0x87, - 0xd8, 0xf3, 0x17, 0x36, 0xad, 0x96, 0xe6, 0x62, 0x91, 0x17, 0x09, 0x6c, 0xc3, 0xdc, 0x0f, 0x25, - 0xcd, 0xb2, 0x54, 0xc7, 0xd5, 0x5c, 0xcc, 0x97, 0xf5, 0x14, 0x4b, 0x0f, 0x6a, 0x96, 0xd5, 0x20, - 0xa5, 0x6c, 0x59, 0xbf, 0x0f, 0x8a, 0xc4, 0x26, 0xeb, 0x5a, 0x5b, 0xe5, 0x59, 0x82, 0x34, 0x5b, - 0xfd, 0x79, 0xe9, 0x65, 0x5a, 0x28, 0xb7, 0xbc, 0x11, 0xa7, 0xf6, 0xd8, 0x0b, 0xb3, 0x62, 0x81, - 0x30, 0x0b, 0xf1, 0x1b, 0x08, 0x98, 0x7c, 0xc4, 0xa5, 0x0d, 0x83, 0xb3, 0xbb, 0x53, 0x34, 0x24, - 0xbb, 0xce, 0x12, 0x1e, 0x59, 0x85, 0x3d, 0xc8, 0xef, 0x8f, 0xc3, 0x44, 0x9f, 0xe5, 0x1e, 0x98, - 0xf6, 0xf6, 0xe3, 0xcb, 0xf8, 0xa1, 0xe2, 0xcb, 0x67, 0xc2, 0x69, 0xdd, 0xc0, 0xca, 0x77, 0xbc, - 0x4f, 0xc8, 0xcc, 0x6e, 0x12, 0x85, 0xe6, 0x20, 0x81, 0xcc, 0x2f, 0x55, 0xf3, 0x4d, 0x98, 0xda, - 0xda, 0x7f, 0x49, 0x33, 0x5c, 0xdd, 0xc0, 0x6a, 0xdf, 0xa8, 0xf5, 0x2f, 0xa5, 0x2b, 0xba, 0xb3, - 0x85, 0x77, 0xb5, 0xeb, 0xba, 0x29, 0x9a, 0x35, 0xe9, 0xf1, 0xfb, 0xc9, 0x5d, 0x59, 0x81, 0x62, - 0x78, 0xe9, 0x41, 0x45, 0x88, 0xbb, 0x7b, 0xbc, 0xff, 0x71, 0x77, 0x0f, 0x3d, 0xcc, 0xf3, 0x40, - 0x71, 0x9a, 0x07, 0xea, 0x7f, 0x11, 0xe7, 0xf3, 0x93, 0x40, 0xb2, 0xec, 0xcd, 0x06, 0x6f, 0x39, - 0xea, 0x45, 0x95, 0x4f, 0x41, 0xa9, 0x67, 0xbd, 0x19, 0x96, 0x15, 0x94, 0x4b, 0x50, 0x08, 0x2d, - 0x2e, 0xf2, 0x11, 0x98, 0x1a, 0xb4, 0x56, 0xc8, 0xbb, 0x5e, 0x79, 0xc8, 0xe6, 0xa3, 0x73, 0x90, - 0xf5, 0x16, 0x8b, 0x01, 0x59, 0x08, 0xda, 0x0b, 0x41, 0xac, 0x78, 0xa4, 0xa1, 0x64, 0x76, 0x3c, - 0x94, 0xcc, 0x96, 0xdf, 0x0b, 0xd3, 0xc3, 0x16, 0x82, 0x9e, 0x6e, 0x24, 0x3d, 0x2d, 0x3c, 0x02, - 0x69, 0x7e, 0x3f, 0x5b, 0x9c, 0x6e, 0xdf, 0xf0, 0x27, 0xa2, 0x9d, 0x6c, 0x51, 0x48, 0xb0, 0x5d, - 0x1d, 0xfa, 0x20, 0xab, 0x70, 0x6c, 0xe8, 0x62, 0x30, 0x7c, 0x23, 0x88, 0x01, 0xf1, 0x8d, 0xa0, - 0xa6, 0x68, 0x8e, 0x43, 0xfb, 0x2a, 0x0e, 0x3b, 0xb0, 0x27, 0xf9, 0x23, 0x09, 0x38, 0x32, 0x78, - 0x49, 0x40, 0x73, 0x30, 0x4e, 0xfc, 0x6e, 0x37, 0xec, 0xa2, 0x43, 0x47, 0xdb, 0xdb, 0xe0, 0xfe, - 0x39, 0x4f, 0xa4, 0xc7, 0xbd, 0x44, 0x3a, 0xda, 0x84, 0x89, 0xb6, 0xd9, 0xd4, 0xda, 0x6a, 0x40, - 0xe3, 0xb9, 0xb2, 0xdf, 0xd3, 0x27, 0xec, 0x3a, 0xbb, 0xb5, 0xb9, 0xd5, 0xa7, 0xf4, 0x25, 0x8a, - 0xb1, 0xec, 0x69, 0x3e, 0x5a, 0x84, 0x7c, 0xc7, 0x57, 0xe4, 0x43, 0x28, 0x7b, 0x90, 0x2d, 0x30, - 0x24, 0xa9, 0x81, 0xdb, 0x3e, 0xe9, 0x43, 0x9b, 0xe8, 0x61, 0x3b, 0x28, 0x99, 0xa1, 0x3b, 0x28, - 0x83, 0xb6, 0x2b, 0xb2, 0x83, 0xb7, 0x2b, 0x3e, 0x10, 0x1c, 0x9a, 0xd0, 0x22, 0xda, 0xbf, 0x83, - 0x81, 0x1a, 0x30, 0xc5, 0xf9, 0x5b, 0x21, 0xd9, 0xc7, 0x47, 0x35, 0x34, 0x48, 0xb0, 0x0f, 0x17, - 0x7b, 0xe2, 0xf6, 0xc4, 0x2e, 0x6c, 0x69, 0x32, 0x60, 0x4b, 0xff, 0x3f, 0x1b, 0x8a, 0x7f, 0x9b, - 0x83, 0xac, 0x82, 0x1d, 0x8b, 0x2c, 0x9c, 0xa8, 0x0a, 0x39, 0xbc, 0xd7, 0xc4, 0x96, 0xeb, 0x6f, - 0x53, 0x0e, 0x0a, 0x06, 0x18, 0x75, 0x5d, 0x50, 0x12, 0x4f, 0xdc, 0x63, 0x43, 0x8f, 0xf2, 0x60, - 0x6b, 0x78, 0xdc, 0xc4, 0xd9, 0x83, 0xd1, 0xd6, 0x79, 0x11, 0x6d, 0x25, 0x86, 0x3a, 0xdf, 0x8c, - 0xab, 0x27, 0xdc, 0x7a, 0x94, 0x87, 0x5b, 0xc9, 0x88, 0x97, 0x85, 0xe2, 0xad, 0x5a, 0x28, 0xde, - 0x4a, 0x47, 0x74, 0x73, 0x48, 0xc0, 0x75, 0x5e, 0x04, 0x5c, 0x99, 0x88, 0x16, 0xf7, 0x44, 0x5c, - 0x17, 0xc3, 0x11, 0x57, 0x76, 0x88, 0x01, 0x11, 0xdc, 0x43, 0x43, 0xae, 0xa7, 0x02, 0x21, 0x57, - 0x6e, 0x68, 0xbc, 0xc3, 0x40, 0x06, 0xc4, 0x5c, 0xb5, 0x50, 0xcc, 0x05, 0x11, 0x32, 0x18, 0x12, - 0x74, 0xfd, 0x40, 0x30, 0xe8, 0xca, 0x0f, 0x8d, 0xdb, 0xf8, 0x78, 0x0f, 0x8a, 0xba, 0x9e, 0xf4, - 0xa2, 0xae, 0xf1, 0xa1, 0x61, 0x23, 0xef, 0x43, 0x6f, 0xd8, 0xb5, 0xd6, 0x17, 0x76, 0x15, 0xf8, - 0x1f, 0x44, 0x18, 0x06, 0x11, 0x11, 0x77, 0xad, 0xf5, 0xc5, 0x5d, 0xc5, 0x08, 0xc0, 0x88, 0xc0, - 0xeb, 0xaf, 0x0c, 0x0e, 0xbc, 0x86, 0x87, 0x46, 0xbc, 0x99, 0xa3, 0x45, 0x5e, 0xea, 0x90, 0xc8, - 0x8b, 0x45, 0x47, 0x0f, 0x0c, 0x85, 0x1f, 0x39, 0xf4, 0xda, 0x1c, 0x10, 0x7a, 0xb1, 0x20, 0xe9, - 0xe4, 0x50, 0xf0, 0x11, 0x62, 0xaf, 0xcd, 0x01, 0xb1, 0x17, 0x8a, 0x84, 0x3d, 0x4c, 0xf0, 0x95, - 0x92, 0xd2, 0xf2, 0x29, 0xe2, 0xfa, 0xf6, 0xd8, 0x29, 0xe2, 0x3f, 0x60, 0xdb, 0x36, 0x6d, 0x71, - 0xb2, 0x96, 0x3e, 0xc8, 0x27, 0x89, 0x33, 0xee, 0xdb, 0xa4, 0x03, 0x02, 0x35, 0xea, 0xa7, 0x05, - 0xec, 0x90, 0xfc, 0xc5, 0x98, 0xcf, 0x4b, 0x7d, 0xd8, 0xa0, 0x23, 0x9f, 0xe3, 0x8e, 0x7c, 0x20, - 0x7c, 0x8b, 0x87, 0xc3, 0xb7, 0x59, 0xc8, 0x13, 0xff, 0xab, 0x27, 0x32, 0xd3, 0x2c, 0x2f, 0x32, - 0x13, 0x47, 0x0a, 0x58, 0x90, 0xc7, 0x97, 0x15, 0xb6, 0x93, 0x53, 0xf2, 0x8e, 0x57, 0xb0, 0x98, - 0x02, 0x3d, 0x04, 0x93, 0x01, 0x5a, 0xcf, 0xaf, 0x63, 0x61, 0x8a, 0xe4, 0x51, 0x57, 0xb8, 0x83, - 0xf7, 0xcf, 0x62, 0xbe, 0x84, 0xfc, 0x90, 0x6e, 0x50, 0xf4, 0x15, 0x7b, 0x93, 0xa2, 0xaf, 0xf8, - 0x6d, 0x47, 0x5f, 0x41, 0x3f, 0x35, 0x11, 0xf6, 0x53, 0xff, 0x67, 0xcc, 0x1f, 0x13, 0x2f, 0x96, - 0x6a, 0x9a, 0x2d, 0xcc, 0x3d, 0x47, 0xfa, 0x9b, 0x38, 0x15, 0x6d, 0x73, 0x87, 0xfb, 0x87, 0xe4, - 0x27, 0xa1, 0xf2, 0x16, 0x8e, 0x1c, 0x5f, 0x17, 0x3c, 0xa7, 0x33, 0x15, 0x3c, 0xff, 0xcb, 0x0f, - 0xc5, 0xa6, 0xfd, 0x43, 0xb1, 0xde, 0x97, 0x6f, 0x99, 0xc0, 0x97, 0x6f, 0xe8, 0x09, 0xc8, 0xd1, - 0x8c, 0xa8, 0x6a, 0x5a, 0xe2, 0xcf, 0x67, 0x1c, 0x1f, 0x7e, 0x20, 0xd6, 0xa1, 0x47, 0xf5, 0xd8, - 0x21, 0x5a, 0xdf, 0x63, 0xc8, 0x85, 0x3c, 0x86, 0x3b, 0x21, 0x47, 0x5a, 0xcf, 0xae, 0x81, 0x06, - 0xfe, 0xd9, 0xa4, 0x28, 0x90, 0xdf, 0x03, 0xa8, 0x7f, 0x91, 0x40, 0x97, 0x21, 0x8d, 0xaf, 0xd3, - 0x3b, 0xf5, 0xd8, 0x41, 0xc3, 0x23, 0xfd, 0xae, 0x29, 0xa9, 0xae, 0x4e, 0x13, 0x21, 0x7f, 0xeb, - 0xb5, 0x59, 0x89, 0x51, 0x3f, 0xe8, 0x7d, 0x25, 0xa0, 0x70, 0x7e, 0xf9, 0x3f, 0xc6, 0x49, 0x00, - 0x13, 0x5a, 0x40, 0x06, 0xca, 0x76, 0xd0, 0x16, 0xe1, 0x68, 0xf2, 0x9e, 0x01, 0xd8, 0xd1, 0x1c, - 0xf5, 0x86, 0x66, 0xb8, 0xb8, 0xc5, 0x85, 0x1e, 0x28, 0x41, 0x65, 0xc8, 0x92, 0xa7, 0xae, 0x83, - 0x5b, 0x3c, 0x8c, 0xf6, 0x9e, 0x03, 0xfd, 0xcc, 0x7c, 0x6f, 0xfd, 0x0c, 0x4b, 0x39, 0xdb, 0x23, - 0xe5, 0x40, 0x70, 0x91, 0x0b, 0x06, 0x17, 0xec, 0x60, 0x30, 0x3f, 0x9f, 0x08, 0xac, 0x6d, 0xe2, - 0x19, 0xdd, 0x03, 0x85, 0x0e, 0xee, 0x58, 0xa6, 0xd9, 0x56, 0x99, 0xb9, 0x61, 0xf7, 0xbd, 0x8f, - 0xf3, 0xc2, 0x3a, 0xb5, 0x3a, 0x3f, 0x16, 0xf7, 0xe7, 0x9f, 0x1f, 0x44, 0x7e, 0xdf, 0x09, 0x58, - 0xfe, 0x49, 0x9a, 0x59, 0x0a, 0xbb, 0x08, 0xa8, 0x11, 0x3c, 0x35, 0xd2, 0xa5, 0x66, 0x41, 0x28, - 0xf4, 0xa8, 0xf6, 0xc3, 0x3f, 0x5d, 0xc2, 0x8a, 0x1d, 0xf4, 0x3c, 0x1c, 0xed, 0xb1, 0x6d, 0x1e, - 0x74, 0x7c, 0x54, 0x13, 0x77, 0x47, 0xd8, 0xc4, 0x09, 0x68, 0x5f, 0x58, 0x89, 0xef, 0x71, 0xd6, - 0x2d, 0x41, 0x31, 0xec, 0xf1, 0x0c, 0x1c, 0x7e, 0xfa, 0xf7, 0x45, 0x5c, 0x4d, 0x37, 0xd4, 0x50, - 0x3a, 0x68, 0x9c, 0x15, 0xf2, 0x24, 0xd3, 0x3a, 0xdc, 0x31, 0xd0, 0xf3, 0x41, 0x8f, 0x43, 0xce, - 0x77, 0x9a, 0x98, 0x54, 0x0f, 0x48, 0x17, 0xf8, 0xb4, 0xf2, 0x6f, 0xc6, 0x7c, 0xc8, 0x70, 0x02, - 0xa2, 0x0e, 0x69, 0x76, 0xec, 0x8d, 0x1f, 0xa6, 0x79, 0x68, 0x34, 0x9f, 0x69, 0x9e, 0x9d, 0x89, - 0x53, 0x38, 0xb3, 0xfc, 0x1e, 0x48, 0xb3, 0x12, 0x94, 0x87, 0x8c, 0x7f, 0xed, 0x2d, 0x40, 0xba, - 0x52, 0xab, 0xd5, 0xd7, 0x37, 0xa4, 0x18, 0xca, 0x41, 0xaa, 0x52, 0x5d, 0x53, 0x36, 0xa4, 0x38, - 0x29, 0x56, 0xea, 0x57, 0xea, 0xb5, 0x0d, 0x29, 0x81, 0x26, 0xa0, 0xc0, 0x7e, 0xab, 0x17, 0xd7, - 0x94, 0x95, 0xca, 0x86, 0x94, 0x0c, 0x14, 0x35, 0xea, 0xab, 0x8b, 0x75, 0x45, 0x4a, 0xc9, 0x8f, - 0xc0, 0xb1, 0xa1, 0x5e, 0x96, 0x9f, 0x5d, 0x88, 0x05, 0xb2, 0x0b, 0xf2, 0x47, 0xe2, 0x50, 0x1e, - 0xee, 0x3a, 0xa1, 0x2b, 0x3d, 0x1d, 0x3f, 0x7b, 0x08, 0xbf, 0xab, 0xa7, 0xf7, 0xe8, 0x3e, 0x28, - 0xda, 0x78, 0x1b, 0xbb, 0xcd, 0x5d, 0xe6, 0xca, 0xb1, 0x25, 0xb3, 0xa0, 0x14, 0x78, 0x29, 0x65, - 0x72, 0x18, 0xd9, 0x8b, 0xb8, 0xe9, 0xaa, 0xcc, 0x16, 0x39, 0xfc, 0x0f, 0x1d, 0x16, 0x58, 0x69, - 0x83, 0x15, 0xca, 0xef, 0x3d, 0x94, 0x2c, 0x73, 0x90, 0x52, 0xea, 0x1b, 0xca, 0xf3, 0x52, 0x02, - 0x21, 0x28, 0xd2, 0x9f, 0x6a, 0x63, 0xb5, 0xb2, 0xde, 0xb8, 0xbc, 0x46, 0x64, 0x39, 0x09, 0x25, - 0x21, 0x4b, 0x51, 0x98, 0x92, 0x1f, 0x80, 0xa3, 0x43, 0xfc, 0xbe, 0x01, 0xe7, 0x10, 0x3f, 0x11, - 0x0b, 0x52, 0x87, 0x63, 0xfe, 0x35, 0x48, 0x3b, 0xae, 0xe6, 0x76, 0x1d, 0x2e, 0xc4, 0xc7, 0x47, - 0x75, 0x04, 0xe7, 0xc5, 0x8f, 0x06, 0x65, 0x57, 0x38, 0x8c, 0x7c, 0x0e, 0x8a, 0xe1, 0x9a, 0xe1, - 0x32, 0xf0, 0x95, 0x28, 0x2e, 0x3f, 0x0f, 0x10, 0xc8, 0x47, 0x7a, 0x27, 0xba, 0x62, 0xc1, 0x13, - 0x5d, 0xe7, 0x20, 0x75, 0xdd, 0x64, 0x36, 0x63, 0xf0, 0xc4, 0xb9, 0x6a, 0xba, 0x38, 0x90, 0x7c, - 0x60, 0xd4, 0xb2, 0x0e, 0xa8, 0x3f, 0x27, 0x34, 0xe4, 0x15, 0x4f, 0x85, 0x5f, 0x71, 0xf7, 0xd0, - 0xec, 0xd2, 0xe0, 0x57, 0xbd, 0x04, 0x29, 0x6a, 0x6d, 0x06, 0x7e, 0xe2, 0xf3, 0x6e, 0x00, 0xcd, - 0x75, 0x6d, 0x7d, 0xab, 0xeb, 0xbf, 0x60, 0x76, 0xb0, 0xb5, 0xaa, 0x08, 0xba, 0xea, 0x9d, 0xdc, - 0x6c, 0x4d, 0xf9, 0xac, 0x01, 0xd3, 0x15, 0x00, 0x94, 0x57, 0xa1, 0x18, 0xe6, 0x1d, 0xfc, 0xc9, - 0x92, 0x7f, 0x71, 0x40, 0x4e, 0xb8, 0x4f, 0x9e, 0xf3, 0xc5, 0x2f, 0xf3, 0xa0, 0x0f, 0xf2, 0xcd, - 0x18, 0x64, 0x37, 0xf6, 0xb8, 0x1e, 0x1f, 0x70, 0xa8, 0xd2, 0xff, 0x6e, 0xcb, 0x4b, 0x16, 0xb2, - 0x7c, 0x6c, 0xc2, 0xcb, 0xf2, 0xfe, 0x80, 0x37, 0x53, 0x93, 0xa3, 0x46, 0xbb, 0x22, 0xdb, 0xcd, - 0xad, 0xd3, 0x85, 0xd1, 0xbe, 0x91, 0x98, 0x82, 0x54, 0xf0, 0xfb, 0x06, 0xf6, 0x20, 0xb7, 0x02, - 0xc7, 0x12, 0xd8, 0xb2, 0x11, 0xfc, 0x98, 0x22, 0x76, 0xe8, 0x8f, 0x29, 0xbc, 0xb7, 0xc4, 0x83, - 0x6f, 0xb9, 0x0e, 0x59, 0xa1, 0x14, 0xe8, 0x9d, 0xc1, 0xb3, 0x27, 0x62, 0x8f, 0x66, 0xe8, 0xe2, - 0xc9, 0xe1, 0x03, 0x47, 0x4f, 0x4e, 0xc3, 0x04, 0x3f, 0x72, 0xe7, 0xc7, 0x15, 0xfc, 0x62, 0xfe, - 0x12, 0xab, 0x58, 0x16, 0x41, 0x85, 0xfc, 0x8b, 0x31, 0x90, 0x7a, 0xb5, 0xf2, 0xed, 0x6c, 0x00, - 0x31, 0x8a, 0x44, 0xfb, 0x03, 0x37, 0x6e, 0xb3, 0x91, 0x2f, 0x90, 0x52, 0xff, 0xce, 0xed, 0xf7, - 0xc7, 0x21, 0x1f, 0xc8, 0xe9, 0xa1, 0xc7, 0x42, 0x47, 0x40, 0xe7, 0x0e, 0xca, 0xff, 0x05, 0xce, - 0x80, 0x86, 0x3a, 0x16, 0x3f, 0x7c, 0xc7, 0xde, 0xfc, 0x43, 0xfa, 0x83, 0xbf, 0xf6, 0x49, 0x0d, - 0xf9, 0xda, 0xe7, 0x47, 0x62, 0x90, 0xf5, 0x96, 0xee, 0xc3, 0x66, 0xf3, 0x8f, 0x40, 0x9a, 0xaf, - 0x4e, 0x2c, 0x9d, 0xcf, 0x9f, 0x06, 0xe6, 0x42, 0xcb, 0x90, 0x15, 0x7f, 0xd1, 0x86, 0x07, 0xa2, - 0xde, 0xf3, 0xe9, 0x27, 0x21, 0x1f, 0xd8, 0x58, 0x21, 0x76, 0x62, 0xb5, 0xfe, 0xac, 0x34, 0x56, - 0xce, 0xdc, 0xbc, 0x35, 0x97, 0x58, 0xc5, 0x37, 0xc8, 0x0c, 0x53, 0xea, 0xb5, 0xcb, 0xf5, 0xda, - 0x33, 0x52, 0xac, 0x9c, 0xbf, 0x79, 0x6b, 0x2e, 0xa3, 0x60, 0x9a, 0xbe, 0x3a, 0xfd, 0x0c, 0x94, - 0x7a, 0x06, 0x26, 0x6c, 0xdf, 0x11, 0x14, 0x17, 0x37, 0xd7, 0x97, 0x97, 0x6a, 0x95, 0x8d, 0xba, - 0xca, 0x8e, 0xd3, 0xa1, 0xa3, 0x30, 0xb9, 0xbc, 0x74, 0xe9, 0xf2, 0x86, 0x5a, 0x5b, 0x5e, 0xaa, - 0xaf, 0x6e, 0xa8, 0x95, 0x8d, 0x8d, 0x4a, 0xed, 0x19, 0x29, 0x7e, 0xf6, 0xbb, 0x00, 0xa5, 0x4a, - 0xb5, 0xb6, 0x44, 0xd6, 0x67, 0x9d, 0x5f, 0x9a, 0x5e, 0x83, 0x24, 0x4d, 0x05, 0x1c, 0x78, 0x54, - 0xa4, 0x7c, 0x70, 0x6e, 0x13, 0x5d, 0x84, 0x14, 0xcd, 0x12, 0xa0, 0x83, 0xcf, 0x8e, 0x94, 0x23, - 0x92, 0x9d, 0xa4, 0x31, 0x74, 0x3a, 0x1d, 0x78, 0x98, 0xa4, 0x7c, 0x70, 0xee, 0x13, 0x29, 0x90, - 0xf3, 0xa3, 0x8c, 0xe8, 0xc3, 0x15, 0xe5, 0x11, 0xac, 0x23, 0x5a, 0x86, 0x8c, 0x08, 0x0c, 0xa3, - 0x8e, 0x7b, 0x94, 0x23, 0x93, 0x93, 0x44, 0x5c, 0x2c, 0x80, 0x3f, 0xf8, 0xec, 0x4a, 0x39, 0x22, - 0xd3, 0x8a, 0x96, 0xbc, 0x43, 0xf8, 0x11, 0x47, 0x38, 0xca, 0x51, 0xc9, 0x46, 0x22, 0x34, 0x3f, - 0x35, 0x12, 0x7d, 0x22, 0xa7, 0x3c, 0x42, 0x12, 0x19, 0x6d, 0x02, 0x04, 0xc2, 0xf5, 0x11, 0x8e, - 0xda, 0x94, 0x47, 0x49, 0x0e, 0xa3, 0x35, 0xc8, 0x7a, 0xd1, 0x53, 0xe4, 0xc1, 0x97, 0x72, 0x74, - 0x96, 0x16, 0xbd, 0x07, 0x0a, 0xe1, 0xa8, 0x61, 0xb4, 0xe3, 0x2c, 0xe5, 0x11, 0xd3, 0xaf, 0x04, - 0x3f, 0x1c, 0x42, 0x8c, 0x76, 0xbc, 0xa5, 0x3c, 0x62, 0x36, 0x16, 0xbd, 0x08, 0x13, 0xfd, 0x2e, - 0xfe, 0xe8, 0xa7, 0x5d, 0xca, 0x87, 0xc8, 0xcf, 0xa2, 0x0e, 0xa0, 0x01, 0xa1, 0xc1, 0x21, 0x0e, - 0xbf, 0x94, 0x0f, 0x93, 0xae, 0x45, 0x2d, 0x28, 0xf5, 0xfa, 0xdb, 0xa3, 0x1e, 0x86, 0x29, 0x8f, - 0x9c, 0xba, 0x65, 0x6f, 0x09, 0xfb, 0xe9, 0xa3, 0x1e, 0x8e, 0x29, 0x8f, 0x9c, 0xc9, 0xad, 0x56, - 0x86, 0x9e, 0x6f, 0x3c, 0x71, 0xe0, 0xf9, 0x46, 0xff, 0xc4, 0xa2, 0x77, 0xa6, 0xf1, 0x9f, 0x3e, - 0x0c, 0xf7, 0xf2, 0xcb, 0x04, 0x1c, 0x57, 0xbb, 0xa6, 0x1b, 0x3b, 0xde, 0xed, 0x10, 0xfc, 0x99, - 0x1f, 0x6e, 0x3c, 0xc2, 0x2f, 0x2c, 0x10, 0xa5, 0x11, 0x77, 0x44, 0x0c, 0xbd, 0x35, 0x2b, 0xea, - 0x10, 0x72, 0xf4, 0xd1, 0xc5, 0x03, 0xee, 0x9f, 0x88, 0xb8, 0xe5, 0x62, 0xc0, 0xfd, 0x14, 0x11, - 0x87, 0x30, 0x0f, 0x3a, 0xef, 0x29, 0x7f, 0x38, 0x06, 0xc5, 0xcb, 0xba, 0xe3, 0x9a, 0xb6, 0xde, - 0xd4, 0xda, 0x74, 0xc5, 0xb8, 0x30, 0xea, 0x47, 0x1e, 0xd5, 0x1c, 0x71, 0x46, 0xf8, 0xa5, 0x16, - 0xfc, 0x60, 0xc8, 0x22, 0xa4, 0xaf, 0x6b, 0x6d, 0xf6, 0x89, 0x45, 0xf0, 0xf2, 0x9a, 0x5e, 0x99, - 0x07, 0xbc, 0xa4, 0x20, 0x0a, 0xe3, 0x95, 0x5f, 0xa5, 0x87, 0xb8, 0x3b, 0x1d, 0xdd, 0x61, 0x7f, - 0x73, 0xda, 0xc5, 0x0e, 0x5a, 0x87, 0xa4, 0xad, 0xb9, 0x3c, 0xa8, 0xa9, 0xbe, 0x83, 0x5f, 0x45, - 0x71, 0x7f, 0xf4, 0x85, 0x12, 0xf3, 0xfd, 0xb7, 0x55, 0x50, 0x24, 0xf4, 0x2c, 0x64, 0x3b, 0xda, - 0x9e, 0x4a, 0x51, 0xe3, 0x6f, 0x02, 0x6a, 0xa6, 0xa3, 0xed, 0x91, 0xb6, 0x92, 0x19, 0x44, 0x80, - 0x9b, 0xbb, 0x9a, 0xb1, 0x83, 0x19, 0x7e, 0xe2, 0x4d, 0xc0, 0x2f, 0x74, 0xb4, 0xbd, 0x1a, 0xc5, - 0x24, 0x6f, 0xe1, 0xb7, 0x7c, 0xfc, 0x56, 0x8c, 0xc7, 0xae, 0x54, 0x54, 0x48, 0x03, 0xa9, 0xe9, - 0x3d, 0xd1, 0x57, 0x8b, 0x3c, 0xfe, 0x89, 0x61, 0x23, 0xd1, 0x23, 0xe8, 0x6a, 0x81, 0x34, 0xf2, - 0x2b, 0xaf, 0xcd, 0xc6, 0xd8, 0x98, 0x94, 0x9a, 0x3d, 0x03, 0x71, 0x05, 0xf2, 0x2c, 0x7d, 0xa6, - 0x52, 0x9f, 0x35, 0x1e, 0xe9, 0xb3, 0x16, 0x84, 0xcf, 0xca, 0x00, 0x81, 0x71, 0x93, 0x7a, 0xde, - 0x87, 0x57, 0x63, 0x90, 0x5f, 0x0c, 0x5c, 0x4e, 0x35, 0x0d, 0x99, 0x8e, 0x69, 0xe8, 0xd7, 0xb0, - 0xed, 0x6d, 0xc4, 0xb0, 0x47, 0xe2, 0x57, 0xb2, 0x3f, 0x32, 0xe4, 0xee, 0x8b, 0xab, 0x17, 0xc4, - 0x33, 0xe1, 0xba, 0x81, 0xb7, 0x1c, 0x5d, 0x48, 0x5b, 0x11, 0x8f, 0xe8, 0x14, 0x48, 0x0e, 0x6e, - 0x76, 0x6d, 0xdd, 0xdd, 0x57, 0x9b, 0xa6, 0xe1, 0x6a, 0x4d, 0x97, 0xa7, 0x4b, 0x4b, 0xa2, 0xbc, - 0xc6, 0x8a, 0x09, 0x48, 0x0b, 0xbb, 0x9a, 0xde, 0x66, 0xe7, 0xbc, 0x72, 0x8a, 0x78, 0xe4, 0x4d, - 0xfd, 0xd5, 0x4c, 0x30, 0x16, 0xac, 0x81, 0x64, 0x5a, 0xd8, 0x0e, 0x7d, 0xe3, 0xc6, 0xf4, 0x73, - 0xfa, 0x77, 0x3f, 0xff, 0xd0, 0x14, 0x17, 0x38, 0xdf, 0x71, 0x67, 0x77, 0x31, 0x2b, 0x25, 0xc1, - 0x21, 0x3e, 0x7e, 0x7b, 0x3e, 0xb4, 0xf5, 0xd2, 0xdd, 0xf2, 0xbf, 0xb1, 0x9f, 0xea, 0x13, 0x6a, - 0xc5, 0xd8, 0xaf, 0x4e, 0xff, 0x8e, 0x0f, 0xed, 0xc7, 0x8a, 0xcf, 0xe0, 0xfd, 0xe0, 0x3e, 0x0c, - 0x85, 0x21, 0x2e, 0xfb, 0x8b, 0x9a, 0xde, 0x16, 0x7f, 0x37, 0x4d, 0xe1, 0x4f, 0x68, 0xc1, 0xcb, - 0xbb, 0xb0, 0xbf, 0x87, 0x2e, 0x0f, 0xd3, 0x8d, 0xaa, 0x69, 0xb4, 0xc2, 0x29, 0x16, 0xb4, 0x01, - 0x69, 0xd7, 0xbc, 0x86, 0x0d, 0x2e, 0xa0, 0x43, 0xe9, 0x74, 0xff, 0x85, 0x33, 0x1c, 0x0b, 0xed, - 0x80, 0xd4, 0xc2, 0x6d, 0xbc, 0xc3, 0xbe, 0xd0, 0xda, 0xd5, 0x6c, 0xcc, 0xbe, 0xda, 0xfc, 0x5e, - 0xe7, 0x4c, 0xc9, 0x43, 0x6d, 0x50, 0x50, 0xb4, 0x1e, 0xbe, 0x1a, 0x2d, 0xc3, 0xb7, 0xe1, 0x87, - 0xf4, 0x3f, 0xa0, 0x95, 0x41, 0x3b, 0x15, 0xba, 0x4a, 0xed, 0x14, 0x48, 0x5d, 0x63, 0xcb, 0x34, - 0xe8, 0x9f, 0x38, 0xe2, 0x11, 0x55, 0x96, 0x6d, 0xd5, 0x79, 0xe5, 0x7c, 0xab, 0x6e, 0x1d, 0x8a, - 0x3e, 0x29, 0x9d, 0x3d, 0xb9, 0xc3, 0xce, 0x9e, 0x82, 0x07, 0x40, 0x48, 0xd0, 0x0a, 0x80, 0x3f, - 0x3f, 0xbd, 0xed, 0xfc, 0xc8, 0x99, 0x1e, 0xec, 0x4c, 0x00, 0x00, 0xb5, 0x61, 0xb2, 0xa3, 0x1b, - 0xaa, 0x83, 0xdb, 0xdb, 0x2a, 0x97, 0x1c, 0xc1, 0xcd, 0xbf, 0x09, 0x23, 0x3d, 0xd1, 0xd1, 0x8d, - 0x06, 0x6e, 0x6f, 0x2f, 0x7a, 0xb0, 0xe8, 0x1d, 0x70, 0xdc, 0x17, 0x87, 0x69, 0xa8, 0xbb, 0x66, - 0xbb, 0xa5, 0xda, 0x78, 0x5b, 0x6d, 0xd2, 0xfb, 0x8e, 0xc6, 0xa9, 0x10, 0x8f, 0x7a, 0x24, 0x6b, - 0xc6, 0x65, 0xb3, 0xdd, 0x52, 0xf0, 0x76, 0x8d, 0x54, 0xa3, 0x7b, 0xc0, 0x97, 0x85, 0xaa, 0xb7, - 0x9c, 0xe9, 0xc2, 0x5c, 0xe2, 0x64, 0x52, 0x19, 0xf7, 0x0a, 0x97, 0x5a, 0xce, 0x42, 0xf6, 0x03, - 0xaf, 0xcc, 0x8e, 0x7d, 0xf3, 0x95, 0xd9, 0x31, 0xf9, 0x22, 0xbd, 0x9d, 0x83, 0x4f, 0x3a, 0xec, - 0xa0, 0xf3, 0x90, 0xd3, 0xc4, 0x03, 0xfb, 0x2e, 0xe4, 0x80, 0x49, 0xeb, 0x93, 0xca, 0xaf, 0xc4, - 0x20, 0xbd, 0x78, 0x75, 0x5d, 0xd3, 0x6d, 0x54, 0x87, 0x09, 0x5f, 0x69, 0x47, 0x9d, 0xff, 0xbe, - 0x9e, 0x0b, 0x03, 0x50, 0x1f, 0xf6, 0xa9, 0xec, 0x81, 0x30, 0xbd, 0x1f, 0xd1, 0x06, 0xba, 0x7a, - 0x05, 0x32, 0xac, 0x85, 0x0e, 0x7a, 0x1a, 0x52, 0x16, 0xf9, 0xc1, 0xd3, 0xfd, 0x33, 0x43, 0x15, - 0x9d, 0xd2, 0x07, 0xd5, 0x82, 0xf1, 0xc9, 0x7f, 0x1e, 0x03, 0x58, 0xbc, 0x7a, 0x75, 0xc3, 0xd6, - 0xad, 0x36, 0x76, 0xdf, 0xac, 0x2e, 0x2f, 0xc3, 0x1d, 0x81, 0x0f, 0x32, 0xed, 0xe6, 0xc8, 0xdd, - 0x9e, 0xf4, 0x3f, 0xc9, 0xb4, 0x9b, 0x03, 0xd1, 0x5a, 0x8e, 0xeb, 0xa1, 0x25, 0x46, 0x46, 0x5b, - 0x74, 0xdc, 0x7e, 0x39, 0x3e, 0x07, 0x79, 0xbf, 0xeb, 0x0e, 0x5a, 0x82, 0xac, 0xcb, 0x7f, 0x73, - 0x71, 0xca, 0xc3, 0xc5, 0x29, 0xd8, 0x82, 0x22, 0xf5, 0xd8, 0xe5, 0xff, 0x4d, 0xa4, 0xea, 0x4f, - 0x84, 0xbf, 0x54, 0x8a, 0x44, 0x2c, 0x3c, 0xb7, 0xc0, 0x6f, 0x86, 0xd7, 0xc2, 0xb1, 0x02, 0x62, - 0xfd, 0xd1, 0x38, 0x4c, 0x6e, 0x8a, 0x49, 0xfa, 0x97, 0x56, 0x0a, 0x9b, 0x90, 0xc1, 0x86, 0x6b, - 0xeb, 0x58, 0xec, 0xed, 0x3d, 0x3c, 0x6c, 0xb0, 0x07, 0xf4, 0x85, 0xfe, 0xe1, 0xdf, 0xe0, 0xd0, - 0x0b, 0xac, 0x80, 0x18, 0x7e, 0x23, 0x01, 0xd3, 0xc3, 0x58, 0xd1, 0x09, 0x28, 0x35, 0x6d, 0x4c, - 0x0b, 0xd4, 0x50, 0xee, 0xbb, 0x28, 0x8a, 0xf9, 0x92, 0xa2, 0x00, 0x71, 0xd0, 0x88, 0x56, 0x11, - 0xd2, 0xdb, 0xf3, 0xc8, 0x8a, 0x3e, 0x02, 0x5d, 0x54, 0x30, 0x94, 0xc4, 0x61, 0xf6, 0x2d, 0xad, - 0xad, 0x19, 0xcd, 0xdb, 0xf1, 0x5f, 0xfb, 0x57, 0x00, 0x71, 0x42, 0xbe, 0xca, 0x30, 0xd1, 0x55, - 0xc8, 0x08, 0xf8, 0xe4, 0x9b, 0x00, 0x2f, 0xc0, 0xd0, 0xdd, 0x30, 0x1e, 0x5c, 0x18, 0xa8, 0x9f, - 0x92, 0x54, 0xf2, 0x81, 0x75, 0x21, 0x6a, 0xe5, 0x49, 0x1f, 0xb8, 0xf2, 0x70, 0x57, 0xf0, 0xd7, - 0x13, 0x30, 0xa1, 0xe0, 0xd6, 0xf7, 0xe1, 0xc0, 0xfd, 0x20, 0x00, 0x9b, 0xd4, 0xc4, 0xd8, 0xde, - 0xc6, 0xd8, 0xf5, 0x1b, 0x89, 0x1c, 0xc3, 0x5b, 0x74, 0xdc, 0xb7, 0x6b, 0xf4, 0xfe, 0x55, 0x1c, - 0xc6, 0x83, 0xa3, 0xf7, 0x7d, 0xb0, 0xb2, 0xa1, 0x55, 0xdf, 0xa4, 0xb1, 0xe3, 0xe6, 0xa7, 0x86, - 0x99, 0xb4, 0x3e, 0xbd, 0x8e, 0xb0, 0x65, 0x1f, 0x4e, 0x40, 0x9a, 0x9f, 0xfd, 0x5a, 0xeb, 0xf3, - 0x71, 0x63, 0x51, 0x1f, 0xfc, 0x16, 0xc4, 0x07, 0xbf, 0x03, 0x5d, 0xdc, 0xfb, 0xa0, 0x48, 0xa2, - 0xe9, 0xd0, 0x81, 0xb2, 0xd8, 0xc9, 0x02, 0x0d, 0x87, 0xfd, 0xe3, 0xcf, 0x68, 0x16, 0xf2, 0x84, - 0xcc, 0xb7, 0xd9, 0x84, 0x06, 0x3a, 0xda, 0x5e, 0x9d, 0x95, 0xa0, 0x87, 0x00, 0xed, 0x7a, 0x99, - 0x0e, 0xd5, 0x17, 0x04, 0xa1, 0x9b, 0xf0, 0x6b, 0x04, 0xf9, 0x5d, 0x00, 0xa4, 0x15, 0x2a, 0xbb, - 0x92, 0x93, 0xdf, 0xb2, 0x4a, 0x4a, 0x16, 0xe9, 0xb5, 0x9c, 0x3f, 0xc4, 0x3c, 0xe5, 0x9e, 0x60, - 0x9b, 0xc7, 0x2c, 0xcb, 0x87, 0x9b, 0x0c, 0xdf, 0x79, 0x6d, 0xb6, 0xbc, 0xaf, 0x75, 0xda, 0x0b, - 0xf2, 0x00, 0x48, 0x99, 0x7a, 0xce, 0xe1, 0x20, 0x7d, 0xe1, 0x5e, 0xa2, 0xc3, 0x37, 0xbf, 0xf1, - 0xd9, 0xd3, 0xc7, 0x03, 0x78, 0x7b, 0x5e, 0xfa, 0x8b, 0x0d, 0x85, 0xfc, 0x99, 0x18, 0x20, 0x7f, - 0x61, 0xf1, 0x0e, 0x7b, 0xaf, 0xd0, 0x23, 0xc0, 0xc2, 0xb7, 0x8f, 0x1d, 0x1c, 0x33, 0xf8, 0xfc, - 0xa1, 0x98, 0x21, 0x30, 0x71, 0xde, 0xe9, 0x9b, 0x71, 0xf1, 0x69, 0xf7, 0x80, 0x8b, 0x58, 0xe7, - 0x6b, 0xa6, 0x1e, 0x82, 0x10, 0x4c, 0x74, 0x3e, 0x8e, 0xc9, 0xaf, 0xc5, 0xe0, 0x58, 0x9f, 0xd6, - 0x79, 0x4d, 0x6e, 0x02, 0xb2, 0x03, 0x95, 0xfc, 0x0f, 0xed, 0xc7, 0xf8, 0x97, 0x8c, 0xb7, 0xa3, - 0xc4, 0x13, 0x76, 0x9f, 0xe9, 0x7e, 0x8b, 0xd6, 0x23, 0x6e, 0x70, 0x7e, 0x3b, 0x06, 0x53, 0xc1, - 0x16, 0x79, 0x7d, 0x6b, 0xc0, 0x78, 0xb0, 0x2d, 0xbc, 0x57, 0xf7, 0x8e, 0xd2, 0xab, 0x60, 0x87, - 0x42, 0x20, 0xa4, 0x2f, 0x42, 0xc3, 0x59, 0x22, 0xee, 0x91, 0x91, 0xa5, 0xe4, 0x6d, 0x32, 0x0c, - 0x9a, 0xf2, 0x6c, 0xb0, 0x3e, 0x18, 0x87, 0xe4, 0xba, 0x69, 0xb6, 0xd1, 0x8f, 0xc4, 0x60, 0xc2, - 0x30, 0x5d, 0x95, 0xcc, 0x0b, 0xdc, 0x52, 0x79, 0x62, 0x80, 0x59, 0xcd, 0xab, 0x87, 0x93, 0xde, - 0xb7, 0x5e, 0x9b, 0xed, 0x87, 0x1a, 0x74, 0x7f, 0x6e, 0xc9, 0x30, 0xdd, 0x2a, 0x25, 0xda, 0x60, - 0xb9, 0x83, 0x1b, 0x50, 0x08, 0xbf, 0x9f, 0x99, 0x5a, 0xe5, 0xd0, 0xef, 0x2f, 0x44, 0xbe, 0x7b, - 0x7c, 0x2b, 0xf0, 0x62, 0x76, 0x8b, 0xe5, 0x1f, 0x93, 0xc1, 0x7d, 0x1e, 0xa4, 0xab, 0xbd, 0xc7, - 0xce, 0xea, 0x90, 0x39, 0xec, 0x09, 0xb6, 0xa0, 0xc4, 0x39, 0xef, 0xe9, 0x2f, 0xc4, 0x00, 0xfc, - 0x34, 0x0c, 0x7a, 0x10, 0x8e, 0x56, 0xd7, 0x56, 0x17, 0xd5, 0xc6, 0x46, 0x65, 0x63, 0xb3, 0x11, - 0xbe, 0x71, 0x5d, 0x5c, 0x34, 0xe2, 0x58, 0xb8, 0xa9, 0x6f, 0xeb, 0xb8, 0x85, 0xee, 0x87, 0xa9, - 0x30, 0x35, 0x79, 0xaa, 0x2f, 0x4a, 0xb1, 0xf2, 0xf8, 0xcd, 0x5b, 0x73, 0x59, 0xe6, 0x7e, 0xe2, - 0x16, 0x3a, 0x09, 0x77, 0xf4, 0xd3, 0x2d, 0xad, 0x5e, 0x92, 0xe2, 0xe5, 0xc2, 0xcd, 0x5b, 0x73, - 0x39, 0xcf, 0x4f, 0x45, 0x32, 0xa0, 0x20, 0x25, 0xc7, 0x4b, 0x94, 0xe1, 0xe6, 0xad, 0xb9, 0x34, - 0x1b, 0x96, 0x72, 0xf2, 0x03, 0x9f, 0x9c, 0x19, 0x3b, 0xfd, 0x6e, 0x80, 0x25, 0x63, 0xdb, 0xd6, - 0xe8, 0x9f, 0x1d, 0x46, 0x65, 0x38, 0xb2, 0xb4, 0x7a, 0x51, 0xa9, 0xd4, 0x36, 0x96, 0xd6, 0x56, - 0x7b, 0x2e, 0x8a, 0x0f, 0xd7, 0x2d, 0xae, 0x6d, 0x56, 0x97, 0xeb, 0x6a, 0x63, 0xe9, 0xd2, 0x2a, - 0xdb, 0xbe, 0x0d, 0xd5, 0x3d, 0xbb, 0xba, 0xb1, 0xb4, 0x52, 0x97, 0xe2, 0xd5, 0x8b, 0x43, 0x37, - 0x10, 0x1e, 0x3c, 0x70, 0xc0, 0x7d, 0x2b, 0x19, 0xda, 0x45, 0xf8, 0x7f, 0x01, 0x00, 0x00, 0xff, - 0xff, 0xdb, 0x40, 0x83, 0x0b, 0x0e, 0x97, 0x00, 0x00, + 0xc0, 0x3b, 0x89, 0x66, 0xff, 0x00, 0x67, 0x0f, 0x72, 0x91, 0xa6, 0x73, 0xef, 0x24, 0x1a, 0xe0, + 0x6f, 0x8a, 0xa6, 0x73, 0x0e, 0x22, 0x36, 0xe1, 0x98, 0x44, 0x73, 0x7f, 0x50, 0x48, 0x5d, 0xb0, + 0x2c, 0x3c, 0x0d, 0x39, 0x6f, 0xb1, 0x89, 0xe6, 0xff, 0x69, 0xce, 0xef, 0xf3, 0x10, 0x09, 0x04, + 0x16, 0xbb, 0x68, 0x88, 0x0f, 0x09, 0x09, 0x04, 0xb8, 0xc8, 0x34, 0xea, 0x75, 0x60, 0xa2, 0x91, + 0x3e, 0x2c, 0xa6, 0x51, 0x8f, 0xff, 0x42, 0x46, 0x93, 0xda, 0xfc, 0x68, 0x88, 0xbf, 0x25, 0x46, + 0x93, 0xd2, 0x93, 0x66, 0xf4, 0x7a, 0x04, 0xd1, 0x18, 0x3f, 0x2b, 0x9a, 0xd1, 0xe3, 0x10, 0x2c, + 0xac, 0x03, 0xea, 0xf7, 0x06, 0xa2, 0xf1, 0x3e, 0xc2, 0xf1, 0x26, 0xfa, 0x9c, 0x81, 0x85, 0x67, + 0xe1, 0xc8, 0x60, 0x4f, 0x20, 0x1a, 0xf5, 0xe7, 0xde, 0xe8, 0x89, 0xdd, 0x82, 0x8e, 0xc0, 0xc2, + 0x86, 0xbf, 0xa4, 0x04, 0xbd, 0x80, 0x68, 0xd8, 0x8f, 0xbe, 0x11, 0x36, 0xdc, 0x41, 0x27, 0x60, + 0xa1, 0x02, 0xe0, 0x2f, 0xc0, 0xd1, 0x58, 0x1f, 0xe3, 0x58, 0x01, 0x26, 0x32, 0x35, 0xf8, 0xfa, + 0x1b, 0xcd, 0x7f, 0x4b, 0x4c, 0x0d, 0xce, 0x41, 0xa6, 0x86, 0x58, 0x7a, 0xa3, 0xb9, 0x3f, 0x2e, + 0xa6, 0x86, 0x60, 0x21, 0x9a, 0x1d, 0x58, 0xdd, 0xa2, 0x11, 0x3e, 0x21, 0x34, 0x3b, 0xc0, 0xb5, + 0xb0, 0x0a, 0x13, 0x7d, 0x0b, 0x62, 0x34, 0xd4, 0x2f, 0x70, 0x28, 0xa9, 0x77, 0x3d, 0x0c, 0x2e, + 0x5e, 0x7c, 0x31, 0x8c, 0x46, 0xfb, 0x64, 0xcf, 0xe2, 0xc5, 0xd7, 0xc2, 0x85, 0x0b, 0x90, 0x35, + 0xba, 0xed, 0x36, 0x99, 0x3c, 0xe8, 0xe0, 0xb3, 0x84, 0xd3, 0xff, 0xed, 0xbb, 0x5c, 0x3a, 0x82, + 0x61, 0xe1, 0x1c, 0xa4, 0x70, 0x67, 0x0b, 0xb7, 0xa2, 0x38, 0xbf, 0xf5, 0x5d, 0x61, 0x30, 0x09, + 0xf5, 0xc2, 0xd3, 0x00, 0x2c, 0x35, 0x42, 0x37, 0x0f, 0x23, 0x78, 0xff, 0xe0, 0xbb, 0xfc, 0xf0, + 0x8e, 0xcf, 0xe2, 0x03, 0xb0, 0xa3, 0x40, 0x07, 0x03, 0x7c, 0x3b, 0x0c, 0x40, 0x47, 0xe4, 0x49, + 0xc8, 0xbc, 0xe8, 0x98, 0x86, 0xab, 0xed, 0x44, 0x71, 0xff, 0x21, 0xe7, 0x16, 0xf4, 0x44, 0x60, + 0x1d, 0xd3, 0xc6, 0xae, 0xb6, 0xe3, 0x44, 0xf1, 0xfe, 0x77, 0xce, 0xeb, 0x31, 0x10, 0xe6, 0xa6, + 0xe6, 0xb8, 0xa3, 0xf4, 0xfb, 0x8f, 0x04, 0xb3, 0x60, 0x20, 0x8d, 0x26, 0xbf, 0xaf, 0xe1, 0xfd, + 0x28, 0xde, 0x3f, 0x16, 0x8d, 0xe6, 0xf4, 0x0b, 0x4f, 0x41, 0x8e, 0xfc, 0x64, 0x27, 0xf2, 0x22, + 0x98, 0xff, 0x84, 0x33, 0xfb, 0x1c, 0xe4, 0xcd, 0x8e, 0xdb, 0x72, 0xf5, 0x68, 0x61, 0x7f, 0x87, + 0x8f, 0xb4, 0xa0, 0x5f, 0xa8, 0x40, 0xde, 0x71, 0x5b, 0xad, 0x2e, 0xf7, 0x4f, 0x23, 0xd8, 0xff, + 0xf4, 0xbb, 0x5e, 0xca, 0xc2, 0xe3, 0x21, 0xa3, 0x7d, 0xe3, 0x9a, 0x6b, 0x99, 0x74, 0xc3, 0x23, + 0x0a, 0xe1, 0x0d, 0x8e, 0x10, 0x60, 0x59, 0xa8, 0xc1, 0x38, 0xe9, 0x8b, 0x8d, 0x2d, 0x4c, 0x77, + 0xa7, 0x22, 0x20, 0xfe, 0x8c, 0x0b, 0x20, 0xc4, 0x54, 0x7d, 0xcf, 0x97, 0x5f, 0x9f, 0x89, 0x7d, + 0xe5, 0xf5, 0x99, 0xd8, 0xef, 0xbf, 0x3e, 0x13, 0xfb, 0xe0, 0xd7, 0x66, 0xc6, 0xbe, 0xf2, 0xb5, + 0x99, 0xb1, 0xdf, 0xfb, 0xda, 0xcc, 0xd8, 0xe0, 0x2c, 0x31, 0x5c, 0x32, 0x2f, 0x99, 0x2c, 0x3f, + 0xfc, 0xc2, 0x7d, 0x3b, 0xba, 0xbb, 0xdb, 0xdd, 0x9a, 0x6f, 0x9a, 0x9d, 0x33, 0x4d, 0xd3, 0xe9, + 0x98, 0xce, 0x99, 0x70, 0x5e, 0x97, 0xfe, 0x82, 0xff, 0x13, 0x23, 0x31, 0x73, 0x38, 0x9d, 0xab, + 0x19, 0xfb, 0xc3, 0x3e, 0xef, 0x39, 0x0f, 0x89, 0x8a, 0xb1, 0x8f, 0x8e, 0x31, 0x03, 0xa7, 0x76, + 0xed, 0x36, 0x3f, 0x16, 0x96, 0x21, 0xcf, 0x9b, 0x76, 0x1b, 0x4d, 0xf9, 0x67, 0x37, 0x63, 0x27, + 0xc7, 0xf9, 0x81, 0xcc, 0xea, 0x07, 0x62, 0x87, 0xeb, 0x49, 0xb6, 0x62, 0xec, 0xd3, 0x8e, 0xac, + 0xc7, 0x5e, 0x78, 0x30, 0x32, 0xcf, 0x7d, 0xcd, 0x30, 0x6f, 0x18, 0xa4, 0xd9, 0xd6, 0x96, 0xc8, + 0x71, 0xcf, 0xf4, 0xe6, 0xb8, 0x9f, 0xc5, 0xed, 0xf6, 0x33, 0x84, 0x6e, 0x83, 0xb0, 0x6c, 0xa5, + 0xd9, 0x09, 0x64, 0xf8, 0x70, 0x1c, 0x66, 0xfa, 0xd2, 0xd9, 0x5c, 0x09, 0x86, 0x09, 0x61, 0x01, + 0xb2, 0x8b, 0x42, 0xb7, 0xa6, 0x21, 0xe3, 0xe0, 0xa6, 0x69, 0xb4, 0x1c, 0x2a, 0x88, 0x84, 0x22, + 0x1e, 0x89, 0x20, 0x0c, 0xcd, 0x30, 0x1d, 0x7e, 0xb0, 0x92, 0x3d, 0x54, 0x7f, 0xfe, 0x90, 0x82, + 0x28, 0x88, 0x37, 0x09, 0x69, 0x3c, 0x32, 0xa2, 0x34, 0x44, 0x27, 0x42, 0x99, 0xff, 0x51, 0xa5, + 0xf2, 0xb3, 0x71, 0x98, 0xed, 0x95, 0x0a, 0x99, 0x59, 0x8e, 0xab, 0x75, 0xac, 0x61, 0x62, 0xb9, + 0x00, 0xb9, 0x0d, 0x41, 0x73, 0x68, 0xb9, 0xdc, 0x3a, 0xa4, 0x5c, 0x8a, 0xde, 0xab, 0x84, 0x60, + 0xce, 0x8e, 0x28, 0x18, 0xaf, 0x1f, 0xb7, 0x25, 0x99, 0x3f, 0x4f, 0xc3, 0x31, 0x36, 0x9d, 0x54, + 0x36, 0x95, 0xd8, 0x03, 0x97, 0xc9, 0x78, 0xb0, 0x2a, 0x7a, 0x9f, 0x44, 0x7e, 0x06, 0x26, 0x97, + 0x88, 0xb5, 0x20, 0x51, 0x90, 0xbf, 0xc3, 0x33, 0xf0, 0xec, 0xe9, 0x5c, 0xc8, 0xe1, 0xe7, 0x3b, + 0x4c, 0xc1, 0x22, 0xf9, 0x47, 0x62, 0x20, 0x35, 0x9a, 0x5a, 0x5b, 0xb3, 0xbf, 0x57, 0x28, 0xf4, + 0x38, 0x00, 0xfd, 0x66, 0xc9, 0xff, 0xc8, 0xa8, 0x78, 0x76, 0x7a, 0x3e, 0xd8, 0xb9, 0x79, 0xf6, + 0x26, 0xfa, 0x05, 0x43, 0x8e, 0xd2, 0x92, 0x9f, 0xa7, 0x9f, 0x03, 0xf0, 0x2b, 0xd0, 0x71, 0x38, + 0xda, 0xa8, 0x55, 0x96, 0x2b, 0x8a, 0xca, 0x0e, 0xc3, 0xaf, 0x36, 0xd6, 0xeb, 0xb5, 0xa5, 0x8b, + 0x4b, 0xf5, 0x45, 0x69, 0x0c, 0x1d, 0x01, 0x14, 0xac, 0xf4, 0xce, 0xa5, 0xdc, 0x01, 0x13, 0xc1, + 0x72, 0x76, 0xa2, 0x3e, 0x4e, 0x3c, 0x45, 0xbd, 0x63, 0xb5, 0x31, 0xdd, 0xfa, 0x53, 0x75, 0x21, + 0xb5, 0x68, 0x27, 0xe4, 0xb7, 0xff, 0x1d, 0x3b, 0x65, 0x3d, 0xe9, 0xb3, 0x7b, 0x32, 0x5f, 0x58, + 0x86, 0x09, 0xad, 0xd9, 0xc4, 0x56, 0x08, 0x32, 0xc2, 0x54, 0x13, 0x40, 0xba, 0x99, 0xc9, 0x39, + 0x7d, 0xb4, 0xc7, 0x21, 0xed, 0xd0, 0xde, 0x47, 0x41, 0xfc, 0x0e, 0x87, 0xe0, 0xe4, 0x0b, 0x06, + 0x4c, 0x10, 0xcf, 0x4f, 0xb3, 0x71, 0xa0, 0x19, 0x07, 0xe7, 0x19, 0x7e, 0xe3, 0x73, 0x0f, 0xd3, + 0xad, 0xcd, 0xbb, 0xc3, 0xc3, 0x32, 0x40, 0x9d, 0x14, 0x89, 0x63, 0xfb, 0x0d, 0xc5, 0x50, 0x14, + 0xef, 0xe3, 0x0d, 0x3e, 0xf8, 0x65, 0xbf, 0xc9, 0x5f, 0x36, 0x33, 0x48, 0x07, 0x02, 0x6f, 0x2a, + 0x70, 0x54, 0x56, 0x51, 0xad, 0x0f, 0x9b, 0xd3, 0x2f, 0x3c, 0xd0, 0xbf, 0x3a, 0xb1, 0xff, 0x1e, + 0xa2, 0xc8, 0x17, 0x82, 0xaf, 0xf1, 0xe6, 0xde, 0x87, 0x92, 0x30, 0xa1, 0x75, 0x74, 0xc3, 0x3c, + 0x43, 0xff, 0xe5, 0x73, 0x2e, 0x45, 0x1f, 0x46, 0xd8, 0x94, 0x3c, 0xcf, 0xa6, 0x42, 0xb4, 0xc6, + 0xfc, 0xc9, 0x4f, 0x7d, 0x2a, 0xe5, 0x4f, 0x97, 0x85, 0x15, 0x90, 0xc4, 0x81, 0x43, 0x6c, 0x34, + 0xcd, 0xd6, 0x48, 0x59, 0x8a, 0xef, 0x08, 0x0c, 0x91, 0xdf, 0xaa, 0x73, 0xd6, 0x85, 0x77, 0x40, + 0xd6, 0x83, 0x89, 0xf2, 0x4c, 0x04, 0x88, 0xc7, 0x41, 0xfc, 0x12, 0x36, 0x33, 0x47, 0xf1, 0x42, + 0xdf, 0x10, 0xfc, 0x6c, 0x86, 0xae, 0x92, 0xde, 0x5c, 0x82, 0x62, 0xcb, 0x34, 0x5c, 0xd5, 0xec, + 0xe8, 0x2e, 0xee, 0x58, 0x6e, 0xa4, 0x5f, 0xf7, 0x67, 0x0c, 0x24, 0xab, 0x14, 0x08, 0xdf, 0x9a, + 0x60, 0x5b, 0x38, 0x3f, 0xa2, 0x1f, 0xfe, 0x3f, 0x04, 0x3f, 0x23, 0xbf, 0x2d, 0xa5, 0x70, 0x5a, + 0xd7, 0xb8, 0x0d, 0x77, 0xf7, 0xd8, 0xe0, 0x7b, 0x4a, 0xf1, 0x47, 0x09, 0x98, 0xe1, 0xc4, 0x5b, + 0x9a, 0x83, 0xcf, 0x5c, 0x7f, 0x64, 0x0b, 0xbb, 0xda, 0x23, 0x67, 0x9a, 0xa6, 0x2e, 0x16, 0xf0, + 0x49, 0x6e, 0xa3, 0x49, 0xfd, 0x3c, 0xaf, 0x2f, 0x0f, 0xdc, 0xe5, 0x2e, 0x0f, 0xb7, 0xed, 0xe5, + 0x7e, 0xd5, 0x93, 0x5f, 0x80, 0x64, 0xcd, 0xd4, 0x0d, 0xb2, 0xa4, 0xb5, 0xb0, 0x61, 0x76, 0xb8, + 0x95, 0x65, 0x0f, 0xe8, 0x3c, 0xa4, 0xb5, 0x8e, 0xd9, 0x35, 0x5c, 0x66, 0x61, 0xab, 0x33, 0x5f, + 0x7e, 0x6d, 0x76, 0xec, 0x3f, 0xbc, 0x36, 0x9b, 0x58, 0x32, 0xdc, 0xdf, 0xfd, 0xfc, 0x43, 0xc0, + 0xd1, 0x97, 0x0c, 0xf7, 0xd5, 0x6f, 0x7c, 0xf6, 0x74, 0x4c, 0xe1, 0xd4, 0x0b, 0xc9, 0x6f, 0xbe, + 0x32, 0x1b, 0x93, 0x9f, 0x83, 0xcc, 0x22, 0x6e, 0x1e, 0x00, 0xff, 0x48, 0x0f, 0xfc, 0x31, 0x01, + 0xbf, 0x88, 0x9b, 0x01, 0xf8, 0x45, 0xdc, 0xec, 0x41, 0x7e, 0x1c, 0xb2, 0x4b, 0x86, 0xcb, 0xbe, + 0x72, 0x78, 0x00, 0x12, 0xba, 0xc1, 0x0e, 0xce, 0x06, 0x10, 0xfa, 0x1a, 0xa8, 0x10, 0x2a, 0xc2, + 0xb8, 0x88, 0x9b, 0x1e, 0x63, 0x0b, 0x37, 0x7b, 0x19, 0xfb, 0x5f, 0x4d, 0xa8, 0xaa, 0x8b, 0xbf, + 0xf7, 0x5f, 0x66, 0xc6, 0x5e, 0x7e, 0x7d, 0x66, 0x6c, 0xe8, 0xd0, 0xcb, 0xd1, 0x43, 0xef, 0x8d, + 0xf8, 0xa7, 0x92, 0x70, 0x17, 0xfd, 0xf8, 0xcd, 0xee, 0xe8, 0x86, 0x7b, 0xa6, 0x69, 0xef, 0x5b, + 0xae, 0x49, 0xe6, 0xbd, 0xb9, 0xcd, 0x07, 0x7c, 0xc2, 0xaf, 0x9e, 0x67, 0xd5, 0x83, 0x87, 0x5b, + 0xde, 0x86, 0xd4, 0x3a, 0xe1, 0x23, 0x22, 0x76, 0x4d, 0x57, 0x6b, 0x73, 0x67, 0x85, 0x3d, 0x90, + 0x52, 0xf6, 0xc1, 0x5c, 0x9c, 0x95, 0xea, 0xe2, 0x5b, 0xb9, 0x36, 0xd6, 0xb6, 0xd9, 0x77, 0x07, + 0x09, 0xea, 0xe5, 0x66, 0x49, 0x01, 0xfd, 0xc4, 0x60, 0x0a, 0x52, 0x5a, 0x97, 0x1d, 0x78, 0x49, + 0x10, 0xf7, 0x97, 0x3e, 0xc8, 0xcf, 0x40, 0x86, 0x6f, 0xbb, 0x23, 0x09, 0x12, 0xd7, 0xf0, 0x3e, + 0x7d, 0xcf, 0xb8, 0x42, 0x7e, 0xa2, 0x79, 0x48, 0xd1, 0xc6, 0xf3, 0x0f, 0xaa, 0xa6, 0xe7, 0xfb, + 0x5a, 0x3f, 0x4f, 0x1b, 0xa9, 0x30, 0x32, 0xf9, 0x0a, 0x64, 0x17, 0x4d, 0xa2, 0x85, 0x61, 0xb4, + 0x1c, 0x43, 0xa3, 0x6d, 0xb6, 0xba, 0x5c, 0x2b, 0x14, 0xf6, 0x80, 0x8e, 0x40, 0x9a, 0x7d, 0x87, + 0xc2, 0x0f, 0xed, 0xf0, 0x27, 0xb9, 0x06, 0x19, 0x8a, 0xbd, 0x66, 0x11, 0x4f, 0xc1, 0x3b, 0xf2, + 0x9b, 0xe3, 0x5f, 0x25, 0x72, 0xf8, 0xb8, 0xdf, 0x58, 0x04, 0xc9, 0x96, 0xe6, 0x6a, 0xbc, 0xdf, + 0xf4, 0xb7, 0xfc, 0x4e, 0xc8, 0x72, 0x10, 0x07, 0x9d, 0x85, 0x84, 0x69, 0x39, 0xfc, 0xd8, 0x4d, + 0x79, 0x58, 0x57, 0xd6, 0xac, 0x6a, 0x92, 0xe8, 0x8c, 0x42, 0x88, 0xab, 0xab, 0x43, 0xd5, 0xe2, + 0xb1, 0x90, 0x5a, 0x74, 0xb0, 0xbb, 0xb5, 0xed, 0xfa, 0x3f, 0xd8, 0x70, 0xf6, 0xa9, 0x82, 0xa7, + 0x28, 0xb7, 0xe2, 0x30, 0x13, 0xa8, 0xbd, 0x8e, 0x6d, 0x47, 0x37, 0x0d, 0xa6, 0x4d, 0x5c, 0x53, + 0x50, 0xa0, 0x81, 0xbc, 0x7e, 0x88, 0xaa, 0x3c, 0x05, 0x89, 0x8a, 0x65, 0xa1, 0x32, 0x64, 0xe9, + 0x73, 0xd3, 0x64, 0xba, 0x92, 0x54, 0xbc, 0x67, 0x52, 0xe7, 0x98, 0xdb, 0xee, 0x0d, 0xcd, 0xf6, + 0x3e, 0xd3, 0x14, 0xcf, 0xf2, 0x93, 0x90, 0xab, 0x99, 0x86, 0x83, 0x0d, 0xa7, 0x4b, 0x5d, 0xe0, + 0xad, 0xb6, 0xd9, 0xbc, 0xc6, 0x11, 0xd8, 0x03, 0x11, 0xb6, 0x66, 0x59, 0x94, 0x33, 0xa9, 0x90, + 0x9f, 0x6c, 0xbe, 0x56, 0xd7, 0x86, 0x8a, 0xe7, 0xdc, 0xe1, 0xc4, 0xc3, 0x3b, 0xe8, 0xfb, 0xb2, + 0x31, 0xb8, 0xb3, 0x7f, 0x22, 0x5d, 0xc3, 0xfb, 0xce, 0x61, 0xe7, 0xd1, 0x73, 0x90, 0x5b, 0xa7, + 0xf7, 0x24, 0x3c, 0x83, 0xf7, 0x51, 0x19, 0x32, 0xb8, 0x75, 0xf6, 0xdc, 0xb9, 0x47, 0x9e, 0x64, + 0x5a, 0x7e, 0x79, 0x4c, 0x11, 0x05, 0x68, 0x06, 0x72, 0x0e, 0x6e, 0x5a, 0x67, 0xcf, 0x9d, 0xbf, + 0xf6, 0x08, 0x53, 0xab, 0xcb, 0x63, 0x8a, 0x5f, 0xb4, 0x90, 0x25, 0x3d, 0xfe, 0xe6, 0x27, 0x66, + 0x63, 0xd5, 0x14, 0x24, 0x9c, 0x6e, 0xe7, 0x2d, 0xd3, 0x8d, 0x9f, 0x49, 0xc1, 0x5c, 0xa0, 0x96, + 0x2d, 0x2e, 0xd7, 0xb5, 0xb6, 0xde, 0xd2, 0xfc, 0xdb, 0x2d, 0xa4, 0x40, 0xff, 0x29, 0xc5, 0x90, + 0x55, 0xe3, 0x40, 0x29, 0xca, 0xbf, 0x12, 0x83, 0xf1, 0xab, 0x02, 0xb9, 0x81, 0x5d, 0x74, 0x01, + 0xc0, 0x7b, 0x93, 0x98, 0x2a, 0xc7, 0xe7, 0x7b, 0xdf, 0x35, 0xef, 0xf1, 0x28, 0x01, 0x72, 0xf4, + 0x38, 0x55, 0x40, 0xcb, 0x74, 0xf8, 0x27, 0x7b, 0x11, 0xac, 0x1e, 0x31, 0x7a, 0x10, 0x10, 0xb5, + 0x6a, 0xea, 0x75, 0xd3, 0xd5, 0x8d, 0x1d, 0xd5, 0x32, 0x6f, 0xf0, 0x0f, 0xa1, 0x13, 0x8a, 0x44, + 0x6b, 0xae, 0xd2, 0x8a, 0x75, 0x52, 0x4e, 0x1a, 0x9d, 0xf3, 0x50, 0x48, 0x34, 0xa7, 0xb5, 0x5a, + 0x36, 0x76, 0x1c, 0x6e, 0xb8, 0xc4, 0x23, 0xba, 0x00, 0x19, 0xab, 0xbb, 0xa5, 0x0a, 0x2b, 0x91, + 0x3f, 0x7b, 0xe7, 0xa0, 0x39, 0x2f, 0x74, 0x83, 0xcf, 0xfa, 0xb4, 0xd5, 0xdd, 0x22, 0x9a, 0x72, + 0x37, 0x8c, 0x0f, 0x68, 0x4c, 0xfe, 0xba, 0xdf, 0x0e, 0x7a, 0x35, 0x07, 0xef, 0x81, 0x6a, 0xd9, + 0xba, 0x69, 0xeb, 0xee, 0x3e, 0x3d, 0x2f, 0x97, 0x50, 0x24, 0x51, 0xb1, 0xce, 0xcb, 0xe5, 0x6b, + 0x50, 0x6a, 0x50, 0x2f, 0xdf, 0x6f, 0xf9, 0x39, 0xbf, 0x7d, 0xb1, 0xe8, 0xf6, 0x0d, 0x6d, 0x59, + 0xbc, 0xaf, 0x65, 0xd5, 0x95, 0xa1, 0x9a, 0xf9, 0xe8, 0xe1, 0x34, 0x33, 0xbc, 0xba, 0xfd, 0xc1, + 0xb1, 0xd0, 0xa4, 0xe4, 0x5e, 0x4f, 0xc0, 0x64, 0x8d, 0xaa, 0x94, 0x51, 0x01, 0x7c, 0xf9, 0xe0, + 0x45, 0xb4, 0x1c, 0x61, 0x3a, 0xcb, 0x91, 0xd3, 0x47, 0x7e, 0x12, 0x0a, 0xeb, 0x9a, 0xed, 0x36, + 0xb0, 0x7b, 0x19, 0x6b, 0x2d, 0x6c, 0x87, 0x57, 0xd9, 0x82, 0x58, 0x65, 0x11, 0x24, 0xe9, 0x52, + 0xca, 0x56, 0x19, 0xfa, 0x5b, 0xde, 0x85, 0x24, 0x3d, 0x2f, 0xeb, 0xad, 0xc0, 0x9c, 0x83, 0xad, + 0xc0, 0xc4, 0x7e, 0xee, 0xbb, 0xd8, 0x11, 0x39, 0x26, 0xfa, 0x80, 0x1e, 0x13, 0xeb, 0x68, 0xe2, + 0xe0, 0x75, 0x94, 0x2b, 0x21, 0x5f, 0x4d, 0xdb, 0x90, 0xa9, 0x12, 0xf3, 0xbb, 0xb4, 0xe8, 0x35, + 0x24, 0xe6, 0x37, 0x04, 0xad, 0x40, 0xc9, 0xd2, 0x6c, 0x97, 0x7e, 0x6a, 0xb4, 0x4b, 0x7b, 0xc1, + 0xf5, 0x7c, 0xb6, 0x7f, 0xd6, 0x85, 0x3a, 0xcb, 0xdf, 0x52, 0xb0, 0x82, 0x85, 0xf2, 0x7f, 0x4d, + 0x42, 0x9a, 0x0b, 0xe3, 0x29, 0xc8, 0x70, 0xb1, 0x72, 0xcd, 0xbc, 0x6b, 0xbe, 0x7f, 0x31, 0x9a, + 0xf7, 0x16, 0x0d, 0x8e, 0x27, 0x78, 0xd0, 0xfd, 0x90, 0x6d, 0xee, 0x6a, 0xba, 0xa1, 0xea, 0x2d, + 0xee, 0x00, 0xe6, 0x5f, 0x7f, 0x6d, 0x36, 0x53, 0x23, 0x65, 0x4b, 0x8b, 0x4a, 0x86, 0x56, 0x2e, + 0xb5, 0xc8, 0xca, 0xbf, 0x8b, 0xf5, 0x9d, 0x5d, 0x97, 0xcf, 0x2e, 0xfe, 0x84, 0x9e, 0x80, 0x24, + 0x51, 0x08, 0xfe, 0x21, 0x6a, 0xb9, 0xcf, 0x87, 0xf7, 0xf2, 0x2b, 0xd5, 0x2c, 0x79, 0xf1, 0x07, + 0xff, 0xf3, 0x6c, 0x4c, 0xa1, 0x1c, 0xa8, 0x06, 0x85, 0xb6, 0xe6, 0xb8, 0x2a, 0x5d, 0xb5, 0xc8, + 0xeb, 0x53, 0x14, 0xe2, 0x58, 0xbf, 0x40, 0xb8, 0x60, 0x79, 0xd3, 0xf3, 0x84, 0x8b, 0x15, 0xb5, + 0xd0, 0x49, 0x90, 0x28, 0x48, 0xd3, 0xec, 0x74, 0x74, 0x97, 0xf9, 0x52, 0x69, 0x2a, 0xf7, 0x22, + 0x29, 0xaf, 0xd1, 0x62, 0xea, 0x51, 0x1d, 0x87, 0x1c, 0xfd, 0xf4, 0x8d, 0x92, 0xb0, 0x43, 0xda, + 0x59, 0x52, 0x40, 0x2b, 0x4f, 0x40, 0xc9, 0xb7, 0x8d, 0x8c, 0x24, 0xcb, 0x50, 0xfc, 0x62, 0x4a, + 0xf8, 0x30, 0x4c, 0x19, 0x78, 0x8f, 0x1e, 0x1b, 0x0f, 0x51, 0xe7, 0x28, 0x35, 0x22, 0x75, 0x57, + 0xc3, 0x1c, 0xf7, 0x41, 0xb1, 0x29, 0x84, 0xcf, 0x68, 0x81, 0xd2, 0x16, 0xbc, 0x52, 0x4a, 0x76, + 0x0c, 0xb2, 0x9a, 0x65, 0x31, 0x82, 0x3c, 0xb7, 0x8d, 0x96, 0x45, 0xab, 0x4e, 0xc3, 0x04, 0xed, + 0xa3, 0x8d, 0x9d, 0x6e, 0xdb, 0xe5, 0x20, 0xe3, 0x94, 0xa6, 0x44, 0x2a, 0x14, 0x56, 0x4e, 0x69, + 0xef, 0x81, 0x02, 0xbe, 0xae, 0xb7, 0xb0, 0xd1, 0xc4, 0x8c, 0xae, 0x40, 0xe9, 0xc6, 0x45, 0x21, + 0x25, 0x3a, 0x05, 0x9e, 0xcd, 0x53, 0x85, 0x3d, 0x2e, 0x32, 0x3c, 0x51, 0x5e, 0x61, 0xc5, 0xf2, + 0x34, 0x24, 0x17, 0x35, 0x57, 0x23, 0x4e, 0x85, 0xbb, 0xc7, 0x16, 0x99, 0x71, 0x85, 0xfc, 0x94, + 0xbf, 0x19, 0x87, 0xe4, 0x55, 0xd3, 0xc5, 0xe8, 0xd1, 0x80, 0xc3, 0x57, 0x1c, 0xa4, 0xcf, 0x0d, + 0x7d, 0xc7, 0xc0, 0xad, 0x15, 0x67, 0x27, 0x70, 0x4f, 0x85, 0xaf, 0x4e, 0xf1, 0x90, 0x3a, 0x4d, + 0x41, 0xca, 0x36, 0xbb, 0x46, 0x4b, 0x9c, 0x6f, 0xa6, 0x0f, 0xa8, 0x0e, 0x59, 0x4f, 0x4b, 0x92, + 0x51, 0x5a, 0x52, 0x22, 0x5a, 0x42, 0x74, 0x98, 0x17, 0x28, 0x99, 0x2d, 0xae, 0x2c, 0x55, 0xc8, + 0x79, 0xc6, 0x8b, 0x6b, 0xdb, 0x68, 0x0a, 0xeb, 0xb3, 0x91, 0x85, 0xc4, 0x1b, 0x7b, 0x4f, 0x78, + 0x4c, 0xe3, 0x24, 0xaf, 0x82, 0x4b, 0x2f, 0xa4, 0x56, 0xfc, 0xce, 0x8c, 0x0c, 0xed, 0x97, 0xaf, + 0x56, 0xec, 0xde, 0x8c, 0x3b, 0x21, 0xe7, 0xe8, 0x3b, 0x86, 0xe6, 0x76, 0x6d, 0xcc, 0x35, 0xcf, + 0x2f, 0x90, 0xbf, 0x14, 0x83, 0x34, 0xd3, 0xe4, 0x80, 0xdc, 0x62, 0x83, 0xe5, 0x16, 0x1f, 0x26, + 0xb7, 0xc4, 0xed, 0xcb, 0xad, 0x02, 0xe0, 0x35, 0xc6, 0xe1, 0x57, 0x19, 0x0c, 0xf0, 0x16, 0x58, + 0x13, 0x1b, 0xfa, 0x0e, 0x9f, 0xa8, 0x01, 0x26, 0xf9, 0x3f, 0xc5, 0x88, 0xe3, 0xca, 0xeb, 0x51, + 0x05, 0x0a, 0xa2, 0x5d, 0xea, 0x76, 0x5b, 0xdb, 0xe1, 0xba, 0x73, 0xd7, 0xd0, 0xc6, 0x5d, 0x6c, + 0x6b, 0x3b, 0x4a, 0x9e, 0xb7, 0x87, 0x3c, 0x0c, 0x1e, 0x87, 0xf8, 0x90, 0x71, 0x08, 0x0d, 0x7c, + 0xe2, 0xf6, 0x06, 0x3e, 0x34, 0x44, 0xc9, 0xde, 0x21, 0xfa, 0x5c, 0x9c, 0x06, 0x2f, 0x96, 0xe9, + 0x68, 0xed, 0xb7, 0x63, 0x46, 0x1c, 0x87, 0x9c, 0x65, 0xb6, 0x55, 0x56, 0xc3, 0xce, 0xfd, 0x67, + 0x2d, 0xb3, 0xad, 0xf4, 0x0d, 0x7b, 0xea, 0x4d, 0x9a, 0x2e, 0xe9, 0x37, 0x41, 0x6a, 0x99, 0x5e, + 0xa9, 0xd9, 0x30, 0xce, 0x44, 0xc1, 0xd7, 0xb2, 0x87, 0x89, 0x0c, 0xe8, 0xe2, 0x18, 0xeb, 0x5f, + 0x7b, 0x59, 0xb3, 0x19, 0xa5, 0xc2, 0xe9, 0x08, 0x07, 0x33, 0xfd, 0x83, 0xa2, 0xde, 0xa0, 0x5a, + 0x2a, 0x9c, 0x4e, 0xfe, 0x99, 0x18, 0xc0, 0x32, 0x91, 0x2c, 0xed, 0x2f, 0x59, 0x85, 0x1c, 0xda, + 0x04, 0x35, 0xf4, 0xe6, 0x99, 0x61, 0x83, 0xc6, 0xdf, 0x3f, 0xee, 0x04, 0xdb, 0x5d, 0x83, 0x82, + 0xaf, 0x8c, 0x0e, 0x16, 0x8d, 0x99, 0x39, 0xc0, 0xa3, 0x6e, 0x60, 0x57, 0x19, 0xbf, 0x1e, 0x78, + 0x92, 0xff, 0x49, 0x0c, 0x72, 0xb4, 0x4d, 0x2b, 0xd8, 0xd5, 0x42, 0x63, 0x18, 0xbb, 0xfd, 0x31, + 0xbc, 0x0b, 0x80, 0xc1, 0x38, 0xfa, 0x4b, 0x98, 0x6b, 0x56, 0x8e, 0x96, 0x34, 0xf4, 0x97, 0x30, + 0x3a, 0xef, 0x09, 0x3c, 0x71, 0xb0, 0xc0, 0x85, 0xc7, 0xcd, 0xc5, 0x7e, 0x14, 0x32, 0xf4, 0xea, + 0xaf, 0x3d, 0x87, 0x3b, 0xd1, 0x69, 0xa3, 0xdb, 0xd9, 0xd8, 0x73, 0xe4, 0x17, 0x21, 0xb3, 0xb1, + 0xc7, 0x72, 0x21, 0xc7, 0x21, 0x67, 0x9b, 0x26, 0x5f, 0x93, 0x99, 0x2f, 0x94, 0x25, 0x05, 0x74, + 0x09, 0x12, 0xf1, 0x7f, 0xdc, 0x8f, 0xff, 0xfd, 0x04, 0x46, 0x62, 0xa4, 0x04, 0xc6, 0xe9, 0x7f, + 0x1f, 0x83, 0x7c, 0xc0, 0x3e, 0xa0, 0x47, 0xe0, 0x8e, 0xea, 0xf2, 0x5a, 0xed, 0x19, 0x75, 0x69, + 0x51, 0xbd, 0xb8, 0x5c, 0xb9, 0xe4, 0x7f, 0xd9, 0x56, 0x3e, 0x72, 0xf3, 0xd6, 0x1c, 0x0a, 0xd0, + 0x6e, 0x1a, 0x74, 0x13, 0x07, 0x9d, 0x81, 0xa9, 0x30, 0x4b, 0xa5, 0xda, 0xa8, 0xaf, 0x6e, 0x48, + 0xb1, 0xf2, 0x1d, 0x37, 0x6f, 0xcd, 0x4d, 0x04, 0x38, 0x2a, 0x5b, 0x0e, 0x36, 0xdc, 0x7e, 0x86, + 0xda, 0xda, 0xca, 0xca, 0xd2, 0x86, 0x14, 0xef, 0x63, 0xe0, 0x06, 0xfb, 0x14, 0x4c, 0x84, 0x19, + 0x56, 0x97, 0x96, 0xa5, 0x44, 0x19, 0xdd, 0xbc, 0x35, 0x57, 0x0c, 0x50, 0xaf, 0xea, 0xed, 0x72, + 0xf6, 0xfd, 0x9f, 0x9c, 0x19, 0x7b, 0xf5, 0xef, 0xcc, 0xc4, 0x48, 0xcf, 0x0a, 0x21, 0x1b, 0x81, + 0x1e, 0x84, 0xa3, 0x8d, 0xa5, 0x4b, 0xab, 0xf5, 0x45, 0x75, 0xa5, 0x71, 0x49, 0x6c, 0x83, 0x88, + 0xde, 0x95, 0x6e, 0xde, 0x9a, 0xcb, 0xf3, 0x2e, 0x0d, 0xa3, 0x5e, 0x57, 0xea, 0x57, 0xd7, 0x36, + 0xea, 0x52, 0x8c, 0x51, 0xaf, 0xdb, 0xf8, 0xba, 0xe9, 0xb2, 0xbb, 0x01, 0x1f, 0x86, 0x63, 0x03, + 0xa8, 0xbd, 0x8e, 0x4d, 0xdc, 0xbc, 0x35, 0x57, 0x58, 0xb7, 0x31, 0x9b, 0x3f, 0x94, 0x63, 0x1e, + 0xa6, 0xfb, 0x39, 0xd6, 0xd6, 0xd7, 0x1a, 0x95, 0x65, 0x69, 0xae, 0x2c, 0xdd, 0xbc, 0x35, 0x37, + 0x2e, 0x8c, 0x21, 0xa1, 0xf7, 0x7b, 0xf6, 0x56, 0x45, 0x3b, 0x3f, 0x91, 0x09, 0xe5, 0xf2, 0x58, + 0x1c, 0x61, 0x69, 0xb6, 0xd6, 0x39, 0x6c, 0xb8, 0x13, 0xb1, 0x8b, 0x2b, 0xbf, 0x1c, 0x87, 0x92, + 0xe7, 0x4c, 0xaf, 0xd3, 0x37, 0xa0, 0x47, 0x83, 0x79, 0x98, 0xfc, 0xd0, 0x65, 0x8c, 0x51, 0x8b, + 0x34, 0xcd, 0x3b, 0x20, 0x2b, 0x9c, 0x32, 0x6e, 0x2e, 0xe6, 0xfa, 0xf9, 0xea, 0x9c, 0x82, 0xb3, + 0x7a, 0x1c, 0xe8, 0x69, 0xc8, 0x79, 0xc6, 0xc3, 0xbb, 0x59, 0x67, 0xb8, 0xb5, 0xe1, 0xfc, 0x3e, + 0x0f, 0x7a, 0xd2, 0x0f, 0x1b, 0x92, 0xc3, 0x02, 0x91, 0xab, 0x8c, 0x80, 0x33, 0x0b, 0x7a, 0x79, + 0x89, 0x4f, 0x3b, 0xde, 0x7b, 0x7a, 0x2b, 0xc1, 0x9e, 0xca, 0x22, 0x29, 0xe6, 0x95, 0x64, 0x3b, + 0xda, 0x5e, 0x95, 0x06, 0x53, 0x47, 0x21, 0x43, 0x2a, 0x77, 0xf8, 0x47, 0xd7, 0x09, 0x25, 0xdd, + 0xd1, 0xf6, 0x2e, 0x69, 0xce, 0x95, 0x64, 0x36, 0x21, 0x25, 0xe5, 0xcf, 0xc4, 0xa0, 0x18, 0xee, + 0x23, 0x7a, 0x00, 0x10, 0xe1, 0xd0, 0x76, 0xb0, 0x4a, 0x4c, 0x0c, 0x15, 0x96, 0xc0, 0x2d, 0x75, + 0xb4, 0xbd, 0xca, 0x0e, 0x5e, 0xed, 0x76, 0x68, 0x03, 0x1c, 0xb4, 0x02, 0x92, 0x20, 0x16, 0xe3, + 0xc4, 0x85, 0x79, 0xac, 0xff, 0x9e, 0x3d, 0x4e, 0xc0, 0x16, 0xaa, 0x8f, 0x90, 0x85, 0xaa, 0xc8, + 0xf0, 0xbc, 0x5d, 0xf8, 0x50, 0x57, 0x12, 0xe1, 0xae, 0xc8, 0x4f, 0x43, 0xa9, 0x47, 0x9e, 0x48, + 0x86, 0x02, 0xcf, 0x0a, 0xd0, 0x1d, 0x4e, 0xe6, 0x1f, 0xe7, 0x94, 0x3c, 0x8b, 0xfe, 0xe9, 0x8e, + 0xef, 0x42, 0xf6, 0x8b, 0xaf, 0xcc, 0xc6, 0x68, 0xc2, 0xfc, 0x01, 0x28, 0x84, 0x24, 0x2a, 0x32, + 0x75, 0x31, 0x3f, 0x53, 0xe7, 0x13, 0xbf, 0x00, 0xe3, 0xc4, 0x50, 0xe2, 0x16, 0xa7, 0xbd, 0x1f, + 0x4a, 0xcc, 0x90, 0xf7, 0xca, 0x9a, 0x79, 0x52, 0x2b, 0x42, 0xe0, 0xb2, 0x70, 0xad, 0xc2, 0x62, + 0xcf, 0x0b, 0xaa, 0x4b, 0x9a, 0x53, 0x7d, 0xd7, 0xab, 0xaf, 0xcf, 0xc4, 0xde, 0x9a, 0x89, 0xf8, + 0xd5, 0x77, 0xc1, 0xf1, 0x40, 0xa5, 0xb6, 0xd5, 0xd4, 0x43, 0x59, 0x87, 0x52, 0x40, 0xc9, 0x48, + 0x65, 0x54, 0xf6, 0xe0, 0xc0, 0x1c, 0xc6, 0xc1, 0x09, 0xb3, 0xf2, 0xc1, 0x16, 0x21, 0x3a, 0xb1, + 0x31, 0x38, 0x47, 0xf9, 0x7f, 0xb3, 0x90, 0x51, 0xf0, 0x7b, 0xbb, 0xd8, 0x71, 0xd1, 0x59, 0x48, + 0xe2, 0xe6, 0xae, 0x39, 0x28, 0x25, 0x44, 0x3a, 0x37, 0xcf, 0xe9, 0xea, 0xcd, 0x5d, 0xf3, 0xf2, + 0x98, 0x42, 0x69, 0xd1, 0x39, 0x48, 0x6d, 0xb7, 0xbb, 0x3c, 0x4f, 0xd1, 0x63, 0x2c, 0x82, 0x4c, + 0x17, 0x09, 0xd1, 0xe5, 0x31, 0x85, 0x51, 0x93, 0x57, 0xd1, 0x1b, 0x4b, 0x13, 0x07, 0xbf, 0x6a, + 0xc9, 0xd8, 0xa6, 0xaf, 0x22, 0xb4, 0xa8, 0x0a, 0xa0, 0x1b, 0xba, 0xab, 0xd2, 0x18, 0x9e, 0x7b, + 0x82, 0x77, 0x0f, 0xe7, 0xd4, 0x5d, 0x1a, 0xf5, 0x5f, 0x1e, 0x53, 0x72, 0xba, 0x78, 0x20, 0xcd, + 0x7d, 0x6f, 0x17, 0xdb, 0xfb, 0xdc, 0x01, 0x1c, 0xda, 0xdc, 0x77, 0x11, 0x22, 0xd2, 0x5c, 0x4a, + 0x8d, 0xea, 0x90, 0xa7, 0x9f, 0xa6, 0xb2, 0xf9, 0xcb, 0x6f, 0xcf, 0x94, 0x87, 0x31, 0x57, 0x09, + 0x29, 0x9d, 0xd2, 0x97, 0xc7, 0x14, 0xd8, 0xf2, 0x9e, 0x88, 0x91, 0x64, 0xb7, 0x2b, 0xb9, 0x7b, + 0xfc, 0xce, 0xc0, 0xd9, 0x61, 0x18, 0xf4, 0x8a, 0xa5, 0x8d, 0xbd, 0xcb, 0x63, 0x4a, 0xa6, 0xc9, + 0x7e, 0x92, 0xfe, 0xb7, 0x70, 0x5b, 0xbf, 0x8e, 0x6d, 0xc2, 0x9f, 0x3b, 0xb8, 0xff, 0x8b, 0x8c, + 0x92, 0x22, 0xe4, 0x5a, 0xe2, 0x81, 0x18, 0x5a, 0x6c, 0xb4, 0x78, 0x37, 0xa0, 0xdf, 0x4e, 0x87, + 0xc6, 0xd9, 0x68, 0x89, 0x4e, 0x64, 0x31, 0xff, 0x8d, 0x9e, 0xf0, 0x3c, 0xd4, 0x7c, 0xbf, 0x53, + 0x18, 0xea, 0x00, 0xcb, 0x55, 0x8c, 0x09, 0x4f, 0x15, 0xad, 0x42, 0xb1, 0xad, 0x3b, 0xae, 0xea, + 0x18, 0x9a, 0xe5, 0xec, 0x9a, 0xae, 0x43, 0x83, 0xfe, 0xfc, 0xd9, 0xfb, 0x86, 0x21, 0x2c, 0xeb, + 0x8e, 0xdb, 0x10, 0xc4, 0x97, 0xc7, 0x94, 0x42, 0x3b, 0x58, 0x40, 0xf0, 0xcc, 0xed, 0x6d, 0x6c, + 0x7b, 0x80, 0x34, 0x39, 0x70, 0x00, 0xde, 0x1a, 0xa1, 0x16, 0xfc, 0x04, 0xcf, 0x0c, 0x16, 0xa0, + 0x1f, 0x84, 0xc9, 0xb6, 0xa9, 0xb5, 0x3c, 0x38, 0xb5, 0xb9, 0xdb, 0x35, 0xae, 0xd1, 0x4c, 0x42, + 0xfe, 0xec, 0xa9, 0xa1, 0x8d, 0x34, 0xb5, 0x96, 0x80, 0xa8, 0x11, 0x86, 0xcb, 0x63, 0xca, 0x44, + 0xbb, 0xb7, 0x10, 0xbd, 0x1b, 0xa6, 0x34, 0xcb, 0x6a, 0xef, 0xf7, 0xa2, 0x97, 0x28, 0xfa, 0xe9, + 0x61, 0xe8, 0x15, 0xc2, 0xd3, 0x0b, 0x8f, 0xb4, 0xbe, 0x52, 0xb4, 0x01, 0x92, 0x65, 0x63, 0xfa, + 0x2d, 0x8d, 0xc5, 0x5d, 0x15, 0x7a, 0x21, 0x56, 0xfe, 0xec, 0x89, 0x61, 0xd8, 0xeb, 0x8c, 0x5e, + 0x78, 0x36, 0x97, 0xc7, 0x94, 0x92, 0x15, 0x2e, 0x62, 0xa8, 0x66, 0x13, 0xd3, 0x4b, 0x9b, 0x38, + 0xea, 0x44, 0x14, 0x2a, 0xa5, 0x0f, 0xa3, 0x86, 0x8a, 0xaa, 0x19, 0x7e, 0x16, 0x8e, 0xdf, 0xa8, + 0x72, 0x02, 0xf2, 0x01, 0xc3, 0x82, 0xa6, 0x21, 0xc3, 0xcf, 0x06, 0x88, 0x33, 0x74, 0xfc, 0x51, + 0x2e, 0xc2, 0x78, 0xd0, 0x98, 0xc8, 0x1f, 0x8c, 0x79, 0x9c, 0xf4, 0x13, 0xf7, 0xe9, 0x70, 0xea, + 0x30, 0xe7, 0x67, 0x05, 0xef, 0x11, 0xab, 0x88, 0xa8, 0x67, 0xbb, 0x49, 0xe3, 0xb4, 0x90, 0x2f, + 0x62, 0x68, 0x16, 0xf2, 0xd6, 0x59, 0xcb, 0x23, 0x49, 0x50, 0x12, 0xb0, 0xce, 0x5a, 0x82, 0xe0, + 0x6e, 0x18, 0x27, 0x3d, 0x55, 0x83, 0x8e, 0x46, 0x4e, 0xc9, 0x93, 0x32, 0x4e, 0x22, 0xff, 0xeb, + 0x38, 0x48, 0xbd, 0x06, 0xc8, 0xcb, 0x29, 0xc6, 0x0e, 0x9d, 0x53, 0x3c, 0xd6, 0x9b, 0xcd, 0xf4, + 0x13, 0x98, 0xcb, 0x20, 0xf9, 0x79, 0x38, 0xb6, 0x10, 0x0c, 0x77, 0x9c, 0x7a, 0x3c, 0x3c, 0xa5, + 0xd4, 0xec, 0x71, 0xf9, 0x2e, 0x86, 0xf6, 0x5e, 0xc4, 0x95, 0xdc, 0xbd, 0x43, 0xec, 0xf9, 0x0b, + 0x9b, 0x56, 0x4b, 0x73, 0xb1, 0xc8, 0x8b, 0x04, 0xb6, 0x61, 0xee, 0x87, 0x92, 0x66, 0x59, 0xaa, + 0xe3, 0x6a, 0x2e, 0xe6, 0xcb, 0x7a, 0x8a, 0xa5, 0x07, 0x35, 0xcb, 0x6a, 0x90, 0x52, 0xb6, 0xac, + 0xdf, 0x07, 0x45, 0x62, 0x93, 0x75, 0xad, 0xad, 0xf2, 0x2c, 0x41, 0x9a, 0xad, 0xfe, 0xbc, 0xf4, + 0x32, 0x2d, 0x94, 0x5b, 0xde, 0x88, 0x53, 0x7b, 0xec, 0x85, 0x59, 0xb1, 0x40, 0x98, 0x85, 0xf8, + 0xdd, 0x03, 0x4c, 0x3e, 0xe2, 0xba, 0x86, 0xc1, 0xd9, 0xdd, 0x29, 0x1a, 0x92, 0x5d, 0x67, 0x09, + 0x8f, 0xac, 0xc2, 0x1e, 0xe4, 0xf7, 0xc5, 0x61, 0xa2, 0xcf, 0x72, 0x0f, 0x4c, 0x7b, 0xfb, 0xf1, + 0x65, 0xfc, 0x50, 0xf1, 0xe5, 0x33, 0xe1, 0xb4, 0x6e, 0x60, 0xe5, 0x3b, 0xde, 0x27, 0x64, 0x66, + 0x37, 0x89, 0x42, 0x73, 0x90, 0x40, 0xe6, 0x97, 0xaa, 0xf9, 0x26, 0x4c, 0x6d, 0xed, 0xbf, 0xa4, + 0x19, 0xae, 0x6e, 0x60, 0xb5, 0x6f, 0xd4, 0xfa, 0x97, 0xd2, 0x15, 0xdd, 0xd9, 0xc2, 0xbb, 0xda, + 0x75, 0xdd, 0x14, 0xcd, 0x9a, 0xf4, 0xf8, 0xfd, 0xe4, 0xae, 0xac, 0x40, 0x31, 0xbc, 0xf4, 0xa0, + 0x22, 0xc4, 0xdd, 0x3d, 0xde, 0xff, 0xb8, 0xbb, 0x87, 0x1e, 0xe6, 0x79, 0xa0, 0x38, 0xcd, 0x03, + 0xf5, 0xbf, 0x88, 0xf3, 0xf9, 0x49, 0x20, 0x59, 0xf6, 0x66, 0x83, 0xb7, 0x1c, 0xf5, 0xa2, 0xca, + 0xa7, 0xa0, 0xd4, 0xb3, 0xde, 0x0c, 0xcb, 0x0a, 0xca, 0x25, 0x28, 0x84, 0x16, 0x17, 0xf9, 0x08, + 0x4c, 0x0d, 0x5a, 0x2b, 0xe4, 0x5d, 0xaf, 0x3c, 0x64, 0xf3, 0xd1, 0x39, 0xc8, 0x7a, 0x8b, 0xc5, + 0x80, 0x2c, 0x04, 0xed, 0x85, 0x20, 0x56, 0x3c, 0xd2, 0x50, 0x32, 0x3b, 0x1e, 0x4a, 0x66, 0xcb, + 0xef, 0x81, 0xe9, 0x61, 0x0b, 0x41, 0x4f, 0x37, 0x92, 0x9e, 0x16, 0x1e, 0x81, 0x34, 0xbf, 0x99, + 0x2d, 0x4e, 0xb7, 0x6f, 0xf8, 0x13, 0xd1, 0x4e, 0xb6, 0x28, 0x24, 0xd8, 0xae, 0x0e, 0x7d, 0x90, + 0x55, 0x38, 0x36, 0x74, 0x31, 0x18, 0xbe, 0x11, 0xc4, 0x80, 0xf8, 0x46, 0x50, 0x53, 0x34, 0xc7, + 0xa1, 0x7d, 0x15, 0x87, 0x1d, 0xd8, 0x93, 0xfc, 0x91, 0x04, 0x1c, 0x19, 0xbc, 0x24, 0xa0, 0x39, + 0x18, 0x27, 0x7e, 0xb7, 0x1b, 0x76, 0xd1, 0xa1, 0xa3, 0xed, 0x6d, 0x70, 0xff, 0x9c, 0x27, 0xd2, + 0xe3, 0x5e, 0x22, 0x1d, 0x6d, 0xc2, 0x44, 0xdb, 0x6c, 0x6a, 0x6d, 0x35, 0xa0, 0xf1, 0x5c, 0xd9, + 0xef, 0xe9, 0x13, 0x76, 0x9d, 0xdd, 0xd7, 0xdc, 0xea, 0x53, 0xfa, 0x12, 0xc5, 0x58, 0xf6, 0x34, + 0x1f, 0x2d, 0x42, 0xbe, 0xe3, 0x2b, 0xf2, 0x21, 0x94, 0x3d, 0xc8, 0x16, 0x18, 0x92, 0xd4, 0xc0, + 0x6d, 0x9f, 0xf4, 0xa1, 0x4d, 0xf4, 0xb0, 0x1d, 0x94, 0xcc, 0xd0, 0x1d, 0x94, 0x41, 0xdb, 0x15, + 0xd9, 0xc1, 0xdb, 0x15, 0xef, 0x0f, 0x0e, 0x4d, 0x68, 0x11, 0xed, 0xdf, 0xc1, 0x40, 0x0d, 0x98, + 0xe2, 0xfc, 0xad, 0x90, 0xec, 0xe3, 0xa3, 0x1a, 0x1a, 0x24, 0xd8, 0x87, 0x8b, 0x3d, 0x71, 0x7b, + 0x62, 0x17, 0xb6, 0x34, 0x19, 0xb0, 0xa5, 0xff, 0x9f, 0x0d, 0xc5, 0xbf, 0xcd, 0x41, 0x56, 0xc1, + 0x8e, 0x45, 0x16, 0x4e, 0x54, 0x85, 0x1c, 0xde, 0x6b, 0x62, 0xcb, 0xf5, 0xb7, 0x29, 0x07, 0x05, + 0x03, 0x8c, 0xba, 0x2e, 0x28, 0x89, 0x27, 0xee, 0xb1, 0xa1, 0x47, 0x79, 0xb0, 0x35, 0x3c, 0x6e, + 0xe2, 0xec, 0xc1, 0x68, 0xeb, 0xbc, 0x88, 0xb6, 0x12, 0x43, 0x9d, 0x6f, 0xc6, 0xd5, 0x13, 0x6e, + 0x3d, 0xca, 0xc3, 0xad, 0x64, 0xc4, 0xcb, 0x42, 0xf1, 0x56, 0x2d, 0x14, 0x6f, 0xa5, 0x23, 0xba, + 0x39, 0x24, 0xe0, 0x3a, 0x2f, 0x02, 0xae, 0x4c, 0x44, 0x8b, 0x7b, 0x22, 0xae, 0x8b, 0xe1, 0x88, + 0x2b, 0x3b, 0xc4, 0x80, 0x08, 0xee, 0xa1, 0x21, 0xd7, 0x53, 0x81, 0x90, 0x2b, 0x37, 0x34, 0xde, + 0x61, 0x20, 0x03, 0x62, 0xae, 0x5a, 0x28, 0xe6, 0x82, 0x08, 0x19, 0x0c, 0x09, 0xba, 0x7e, 0x20, + 0x18, 0x74, 0xe5, 0x87, 0xc6, 0x6d, 0x7c, 0xbc, 0x07, 0x45, 0x5d, 0x4f, 0x7a, 0x51, 0xd7, 0xf8, + 0xd0, 0xb0, 0x91, 0xf7, 0xa1, 0x37, 0xec, 0x5a, 0xeb, 0x0b, 0xbb, 0x0a, 0xfc, 0x4f, 0x21, 0x0c, + 0x83, 0x88, 0x88, 0xbb, 0xd6, 0xfa, 0xe2, 0xae, 0x62, 0x04, 0x60, 0x44, 0xe0, 0xf5, 0x57, 0x06, + 0x07, 0x5e, 0xc3, 0x43, 0x23, 0xde, 0xcc, 0xd1, 0x22, 0x2f, 0x75, 0x48, 0xe4, 0xc5, 0xa2, 0xa3, + 0x07, 0x86, 0xc2, 0x8f, 0x1c, 0x7a, 0x6d, 0x0e, 0x08, 0xbd, 0x58, 0x90, 0x74, 0x72, 0x28, 0xf8, + 0x08, 0xb1, 0xd7, 0xe6, 0x80, 0xd8, 0x0b, 0x45, 0xc2, 0x1e, 0x26, 0xf8, 0x4a, 0x49, 0x69, 0xf9, + 0x14, 0x71, 0x7d, 0x7b, 0xec, 0x14, 0xf1, 0x1f, 0xb0, 0x6d, 0x9b, 0xb6, 0x38, 0x59, 0x4b, 0x1f, + 0xe4, 0x93, 0xc4, 0x19, 0xf7, 0x6d, 0xd2, 0x01, 0x81, 0x1a, 0xf5, 0xd3, 0x02, 0x76, 0x48, 0xfe, + 0x62, 0xcc, 0xe7, 0xa5, 0x3e, 0x6c, 0xd0, 0x91, 0xcf, 0x71, 0x47, 0x3e, 0x10, 0xbe, 0xc5, 0xc3, + 0xe1, 0xdb, 0x2c, 0xe4, 0x89, 0xff, 0xd5, 0x13, 0x99, 0x69, 0x96, 0x17, 0x99, 0x89, 0x23, 0x05, + 0x2c, 0xc8, 0xe3, 0xcb, 0x0a, 0xdb, 0xc9, 0x29, 0x79, 0xc7, 0x2b, 0x58, 0x4c, 0x81, 0x1e, 0x82, + 0xc9, 0x00, 0xad, 0xe7, 0xd7, 0xb1, 0x30, 0x45, 0xf2, 0xa8, 0x2b, 0xdc, 0xc1, 0xfb, 0x67, 0x31, + 0x5f, 0x42, 0x7e, 0x48, 0x37, 0x28, 0xfa, 0x8a, 0xbd, 0x49, 0xd1, 0x57, 0xfc, 0xb6, 0xa3, 0xaf, + 0xa0, 0x9f, 0x9a, 0x08, 0xfb, 0xa9, 0xff, 0x33, 0xe6, 0x8f, 0x89, 0x17, 0x4b, 0x35, 0xcd, 0x16, + 0xe6, 0x9e, 0x23, 0xfd, 0x4d, 0x9c, 0x8a, 0xb6, 0xb9, 0xc3, 0xfd, 0x43, 0xf2, 0x93, 0x50, 0x79, + 0x0b, 0x47, 0x8e, 0xaf, 0x0b, 0x9e, 0xd3, 0x99, 0x0a, 0x9e, 0xff, 0xe5, 0x87, 0x62, 0xd3, 0xfe, + 0xa1, 0x58, 0xef, 0x9b, 0xb7, 0x4c, 0xe0, 0x9b, 0x37, 0xf4, 0x04, 0xe4, 0x68, 0x46, 0x54, 0x35, + 0x2d, 0xf1, 0x87, 0x33, 0x8e, 0x0f, 0x3f, 0x10, 0xeb, 0xd0, 0xa3, 0x7a, 0xec, 0x10, 0xad, 0xef, + 0x31, 0xe4, 0x42, 0x1e, 0xc3, 0x9d, 0x90, 0x23, 0xad, 0x67, 0x17, 0x40, 0x03, 0xff, 0x60, 0x52, + 0x14, 0xc8, 0xef, 0x06, 0xd4, 0xbf, 0x48, 0xa0, 0xcb, 0x90, 0xc6, 0xd7, 0xe9, 0x6d, 0x7a, 0xec, + 0xa0, 0xe1, 0x91, 0x7e, 0xd7, 0x94, 0x54, 0x57, 0xa7, 0x89, 0x90, 0xbf, 0xf5, 0xda, 0xac, 0xc4, + 0xa8, 0x1f, 0xf4, 0xbe, 0x0f, 0x50, 0x38, 0xbf, 0xfc, 0x1f, 0xe3, 0x24, 0x80, 0x09, 0x2d, 0x20, + 0x03, 0x65, 0x3b, 0x68, 0x8b, 0x70, 0x34, 0x79, 0xcf, 0x00, 0xec, 0x68, 0x8e, 0x7a, 0x43, 0x33, + 0x5c, 0xdc, 0xe2, 0x42, 0x0f, 0x94, 0xa0, 0x32, 0x64, 0xc9, 0x53, 0xd7, 0xc1, 0x2d, 0x1e, 0x46, + 0x7b, 0xcf, 0x81, 0x7e, 0x66, 0xbe, 0xb7, 0x7e, 0x86, 0xa5, 0x9c, 0xed, 0x91, 0x72, 0x20, 0xb8, + 0xc8, 0x05, 0x83, 0x0b, 0x76, 0x30, 0x98, 0x9f, 0x4f, 0x04, 0xd6, 0x36, 0xf1, 0x8c, 0xee, 0x81, + 0x42, 0x07, 0x77, 0x2c, 0xd3, 0x6c, 0xab, 0xcc, 0xdc, 0xb0, 0x9b, 0xde, 0xc7, 0x79, 0x61, 0x9d, + 0x5a, 0x9d, 0x1f, 0x8f, 0xfb, 0xf3, 0xcf, 0x0f, 0x22, 0xbf, 0xef, 0x04, 0x2c, 0xff, 0x14, 0xcd, + 0x2c, 0x85, 0x5d, 0x04, 0xd4, 0x08, 0x9e, 0x1a, 0xe9, 0x52, 0xb3, 0x20, 0x14, 0x7a, 0x54, 0xfb, + 0xe1, 0x9f, 0x2e, 0x61, 0xc5, 0x0e, 0x7a, 0x1e, 0x8e, 0xf6, 0xd8, 0x36, 0x0f, 0x3a, 0x3e, 0xaa, + 0x89, 0xbb, 0x23, 0x6c, 0xe2, 0x04, 0xb4, 0x2f, 0xac, 0xc4, 0xf7, 0x38, 0xeb, 0x96, 0xa0, 0x18, + 0xf6, 0x78, 0x06, 0x0e, 0x3f, 0xfd, 0xcb, 0x22, 0xae, 0xa6, 0x1b, 0x6a, 0x28, 0x1d, 0x34, 0xce, + 0x0a, 0x79, 0x92, 0x69, 0x1d, 0xee, 0x18, 0xe8, 0xf9, 0xa0, 0xc7, 0x21, 0xe7, 0x3b, 0x4d, 0x4c, + 0xaa, 0x07, 0xa4, 0x0b, 0x7c, 0x5a, 0xf9, 0x37, 0x63, 0x3e, 0x64, 0x38, 0x01, 0x51, 0x87, 0x34, + 0x3b, 0xf6, 0xc6, 0x0f, 0xd3, 0x3c, 0x34, 0x9a, 0xcf, 0x34, 0xcf, 0xce, 0xc4, 0x29, 0x9c, 0x59, + 0x7e, 0x37, 0xa4, 0x59, 0x09, 0xca, 0x43, 0xc6, 0xbf, 0xf0, 0x16, 0x20, 0x5d, 0xa9, 0xd5, 0xea, + 0xeb, 0x1b, 0x52, 0x0c, 0xe5, 0x20, 0x55, 0xa9, 0xae, 0x29, 0x1b, 0x52, 0x9c, 0x14, 0x2b, 0xf5, + 0x2b, 0xf5, 0xda, 0x86, 0x94, 0x40, 0x13, 0x50, 0x60, 0xbf, 0xd5, 0x8b, 0x6b, 0xca, 0x4a, 0x65, + 0x43, 0x4a, 0x06, 0x8a, 0x1a, 0xf5, 0xd5, 0xc5, 0xba, 0x22, 0xa5, 0xe4, 0x47, 0xe0, 0xd8, 0x50, + 0x2f, 0xcb, 0xcf, 0x2e, 0xc4, 0x02, 0xd9, 0x05, 0xf9, 0x23, 0x71, 0x28, 0x0f, 0x77, 0x9d, 0xd0, + 0x95, 0x9e, 0x8e, 0x9f, 0x3d, 0x84, 0xdf, 0xd5, 0xd3, 0x7b, 0x74, 0x1f, 0x14, 0x6d, 0xbc, 0x8d, + 0xdd, 0xe6, 0x2e, 0x73, 0xe5, 0xd8, 0x92, 0x59, 0x50, 0x0a, 0xbc, 0x94, 0x32, 0x39, 0x8c, 0xec, + 0x45, 0xdc, 0x74, 0x55, 0x66, 0x8b, 0x1c, 0xfe, 0x27, 0x0e, 0x0b, 0xac, 0xb4, 0xc1, 0x0a, 0xe5, + 0xf7, 0x1c, 0x4a, 0x96, 0x39, 0x48, 0x29, 0xf5, 0x0d, 0xe5, 0x79, 0x29, 0x81, 0x10, 0x14, 0xe9, + 0x4f, 0xb5, 0xb1, 0x5a, 0x59, 0x6f, 0x5c, 0x5e, 0x23, 0xb2, 0x9c, 0x84, 0x92, 0x90, 0xa5, 0x28, + 0x4c, 0xc9, 0x0f, 0xc0, 0xd1, 0x21, 0x7e, 0xdf, 0x80, 0x73, 0x88, 0x9f, 0x88, 0x05, 0xa9, 0xc3, + 0x31, 0xff, 0x1a, 0xa4, 0x1d, 0x57, 0x73, 0xbb, 0x0e, 0x17, 0xe2, 0xe3, 0xa3, 0x3a, 0x82, 0xf3, + 0xe2, 0x47, 0x83, 0xb2, 0x2b, 0x1c, 0x46, 0x3e, 0x07, 0xc5, 0x70, 0xcd, 0x70, 0x19, 0xf8, 0x4a, + 0x14, 0x97, 0x9f, 0x07, 0x08, 0xe4, 0x23, 0xbd, 0x13, 0x5d, 0xb1, 0xe0, 0x89, 0xae, 0x73, 0x90, + 0xba, 0x6e, 0x32, 0x9b, 0x31, 0x78, 0xe2, 0x5c, 0x35, 0x5d, 0x1c, 0x48, 0x3e, 0x30, 0x6a, 0x59, + 0x07, 0xd4, 0x9f, 0x13, 0x1a, 0xf2, 0x8a, 0xa7, 0xc2, 0xaf, 0xb8, 0x7b, 0x68, 0x76, 0x69, 0xf0, + 0xab, 0x5e, 0x82, 0x14, 0xb5, 0x36, 0x03, 0x3f, 0xf1, 0xf9, 0x21, 0x00, 0xcd, 0x75, 0x6d, 0x7d, + 0xab, 0xeb, 0xbf, 0x60, 0x76, 0xb0, 0xb5, 0xaa, 0x08, 0xba, 0xea, 0x9d, 0xdc, 0x6c, 0x4d, 0xf9, + 0xac, 0x01, 0xd3, 0x15, 0x00, 0x94, 0x57, 0xa1, 0x18, 0xe6, 0x1d, 0xfc, 0xc9, 0x92, 0x7f, 0x65, + 0x40, 0x4e, 0xb8, 0x4f, 0x9e, 0xf3, 0xc5, 0xaf, 0xf1, 0xa0, 0x0f, 0xf2, 0xcd, 0x18, 0x64, 0x37, + 0xf6, 0xb8, 0x1e, 0x1f, 0x70, 0xa8, 0xd2, 0xff, 0x6e, 0xcb, 0x4b, 0x16, 0xb2, 0x7c, 0x6c, 0xc2, + 0xcb, 0xf2, 0xfe, 0x80, 0x37, 0x53, 0x93, 0xa3, 0x46, 0xbb, 0x22, 0xdb, 0xcd, 0xad, 0xd3, 0x85, + 0xd1, 0xbe, 0x91, 0x98, 0x82, 0x54, 0xf0, 0xfb, 0x06, 0xf6, 0x20, 0xb7, 0x02, 0xc7, 0x12, 0xd8, + 0xb2, 0x11, 0xfc, 0x98, 0x22, 0x76, 0xe8, 0x8f, 0x29, 0xbc, 0xb7, 0xc4, 0x83, 0x6f, 0xb9, 0x0e, + 0x59, 0xa1, 0x14, 0xe8, 0x9d, 0xc1, 0xb3, 0x27, 0x62, 0x8f, 0x66, 0xe8, 0xe2, 0xc9, 0xe1, 0x03, + 0x47, 0x4f, 0x4e, 0xc3, 0x04, 0x3f, 0x72, 0xe7, 0xc7, 0x15, 0xfc, 0x4a, 0xfe, 0x12, 0xab, 0x58, + 0x16, 0x41, 0x85, 0xfc, 0x8b, 0x31, 0x90, 0x7a, 0xb5, 0xf2, 0xed, 0x6c, 0x00, 0x31, 0x8a, 0x44, + 0xfb, 0x03, 0x77, 0x6d, 0xb3, 0x91, 0x2f, 0x90, 0x52, 0xff, 0xb6, 0xed, 0xf7, 0xc5, 0x21, 0x1f, + 0xc8, 0xe9, 0xa1, 0xc7, 0x42, 0x47, 0x40, 0xe7, 0x0e, 0xca, 0xff, 0x05, 0xce, 0x80, 0x86, 0x3a, + 0x16, 0x3f, 0x7c, 0xc7, 0xde, 0xfc, 0x43, 0xfa, 0x83, 0xbf, 0xf6, 0x49, 0x0d, 0xf9, 0xda, 0xe7, + 0x47, 0x63, 0x90, 0xf5, 0x96, 0xee, 0xc3, 0x66, 0xf3, 0x8f, 0x40, 0x9a, 0xaf, 0x4e, 0x2c, 0x9d, + 0xcf, 0x9f, 0x06, 0xe6, 0x42, 0xcb, 0x90, 0x15, 0x7f, 0xcb, 0x86, 0x07, 0xa2, 0xde, 0xf3, 0xe9, + 0x27, 0x21, 0x1f, 0xd8, 0x58, 0x21, 0x76, 0x62, 0xb5, 0xfe, 0xac, 0x34, 0x56, 0xce, 0xdc, 0xbc, + 0x35, 0x97, 0x58, 0xc5, 0x37, 0xc8, 0x0c, 0x53, 0xea, 0xb5, 0xcb, 0xf5, 0xda, 0x33, 0x52, 0xac, + 0x9c, 0xbf, 0x79, 0x6b, 0x2e, 0xa3, 0x60, 0x9a, 0xbe, 0x3a, 0xfd, 0x0c, 0x94, 0x7a, 0x06, 0x26, + 0x6c, 0xdf, 0x11, 0x14, 0x17, 0x37, 0xd7, 0x97, 0x97, 0x6a, 0x95, 0x8d, 0xba, 0xca, 0x8e, 0xd3, + 0xa1, 0xa3, 0x30, 0xb9, 0xbc, 0x74, 0xe9, 0xf2, 0x86, 0x5a, 0x5b, 0x5e, 0xaa, 0xaf, 0x6e, 0xa8, + 0x95, 0x8d, 0x8d, 0x4a, 0xed, 0x19, 0x29, 0x7e, 0xf6, 0xbb, 0x00, 0xa5, 0x4a, 0xb5, 0xb6, 0x44, + 0xd6, 0x67, 0x9d, 0x5f, 0x97, 0x5e, 0x83, 0x24, 0x4d, 0x05, 0x1c, 0x78, 0x54, 0xa4, 0x7c, 0x70, + 0x6e, 0x13, 0x5d, 0x84, 0x14, 0xcd, 0x12, 0xa0, 0x83, 0xcf, 0x8e, 0x94, 0x23, 0x92, 0x9d, 0xa4, + 0x31, 0x74, 0x3a, 0x1d, 0x78, 0x98, 0xa4, 0x7c, 0x70, 0xee, 0x13, 0x29, 0x90, 0xf3, 0xa3, 0x8c, + 0xe8, 0xc3, 0x15, 0xe5, 0x11, 0xac, 0x23, 0x5a, 0x86, 0x8c, 0x08, 0x0c, 0xa3, 0x8e, 0x7b, 0x94, + 0x23, 0x93, 0x93, 0x44, 0x5c, 0x2c, 0x80, 0x3f, 0xf8, 0xec, 0x4a, 0x39, 0x22, 0xd3, 0x8a, 0x96, + 0xbc, 0x43, 0xf8, 0x11, 0x47, 0x38, 0xca, 0x51, 0xc9, 0x46, 0x22, 0x34, 0x3f, 0x35, 0x12, 0x7d, + 0x22, 0xa7, 0x3c, 0x42, 0x12, 0x19, 0x6d, 0x02, 0x04, 0xc2, 0xf5, 0x11, 0x8e, 0xda, 0x94, 0x47, + 0x49, 0x0e, 0xa3, 0x35, 0xc8, 0x7a, 0xd1, 0x53, 0xe4, 0xc1, 0x97, 0x72, 0x74, 0x96, 0x16, 0xbd, + 0x1b, 0x0a, 0xe1, 0xa8, 0x61, 0xb4, 0xe3, 0x2c, 0xe5, 0x11, 0xd3, 0xaf, 0x04, 0x3f, 0x1c, 0x42, + 0x8c, 0x76, 0xbc, 0xa5, 0x3c, 0x62, 0x36, 0x16, 0xbd, 0x08, 0x13, 0xfd, 0x2e, 0xfe, 0xe8, 0xa7, + 0x5d, 0xca, 0x87, 0xc8, 0xcf, 0xa2, 0x0e, 0xa0, 0x01, 0xa1, 0xc1, 0x21, 0x0e, 0xbf, 0x94, 0x0f, + 0x93, 0xae, 0x45, 0x2d, 0x28, 0xf5, 0xfa, 0xdb, 0xa3, 0x1e, 0x86, 0x29, 0x8f, 0x9c, 0xba, 0x65, + 0x6f, 0x09, 0xfb, 0xe9, 0xa3, 0x1e, 0x8e, 0x29, 0x8f, 0x9c, 0xc9, 0xad, 0x56, 0x86, 0x9e, 0x6f, + 0x3c, 0x71, 0xe0, 0xf9, 0x46, 0xff, 0xc4, 0xa2, 0x77, 0xa6, 0xf1, 0x9f, 0x3e, 0x0c, 0xf7, 0xf2, + 0xcb, 0x04, 0x1c, 0x57, 0xbb, 0xa6, 0x1b, 0x3b, 0xde, 0xed, 0x10, 0xfc, 0x99, 0x1f, 0x6e, 0x3c, + 0xc2, 0x2f, 0x2c, 0x10, 0xa5, 0x11, 0x77, 0x44, 0x0c, 0xbd, 0x2f, 0x2b, 0xea, 0x10, 0x72, 0xf4, + 0xd1, 0xc5, 0x03, 0xee, 0x9f, 0x88, 0xb8, 0xe5, 0x62, 0xc0, 0xfd, 0x14, 0x11, 0x87, 0x30, 0x0f, + 0x3a, 0xef, 0x29, 0x7f, 0x38, 0x06, 0xc5, 0xcb, 0xba, 0xe3, 0x9a, 0xb6, 0xde, 0xd4, 0xda, 0x74, + 0xc5, 0xb8, 0x30, 0xea, 0x47, 0x1e, 0xd5, 0x1c, 0x71, 0x46, 0xf8, 0xa5, 0x16, 0xfc, 0x60, 0xc8, + 0x22, 0xa4, 0xaf, 0x6b, 0x6d, 0xf6, 0x89, 0x45, 0xf0, 0xda, 0x9a, 0x5e, 0x99, 0x07, 0xbc, 0xa4, + 0x20, 0x0a, 0xe3, 0x95, 0x5f, 0xa5, 0x87, 0xb8, 0x3b, 0x1d, 0xdd, 0x61, 0x7f, 0x6d, 0xda, 0xc5, + 0x0e, 0x5a, 0x87, 0xa4, 0xad, 0xb9, 0x3c, 0xa8, 0xa9, 0xbe, 0x83, 0x5f, 0x45, 0x71, 0x7f, 0xf4, + 0x85, 0x12, 0xf3, 0xfd, 0xb7, 0x55, 0x50, 0x24, 0xf4, 0x2c, 0x64, 0x3b, 0xda, 0x9e, 0x4a, 0x51, + 0xe3, 0x6f, 0x02, 0x6a, 0xa6, 0xa3, 0xed, 0x91, 0xb6, 0x92, 0x19, 0x44, 0x80, 0x9b, 0xbb, 0x9a, + 0xb1, 0x83, 0x19, 0x7e, 0xe2, 0x4d, 0xc0, 0x2f, 0x74, 0xb4, 0xbd, 0x1a, 0xc5, 0x24, 0x6f, 0xe1, + 0xb7, 0x7c, 0xfc, 0x56, 0x8c, 0xc7, 0xae, 0x54, 0x54, 0x48, 0x03, 0xa9, 0xe9, 0x3d, 0xd1, 0x57, + 0x8b, 0x3c, 0xfe, 0x89, 0x61, 0x23, 0xd1, 0x23, 0xe8, 0x6a, 0x81, 0x34, 0xf2, 0x2b, 0xaf, 0xcd, + 0xc6, 0xd8, 0x98, 0x94, 0x9a, 0x3d, 0x03, 0x71, 0x05, 0xf2, 0x2c, 0x7d, 0xa6, 0x52, 0x9f, 0x35, + 0x1e, 0xe9, 0xb3, 0x16, 0x84, 0xcf, 0xca, 0x00, 0x81, 0x71, 0x93, 0x7a, 0xde, 0x87, 0x57, 0x63, + 0x90, 0x5f, 0x0c, 0x5c, 0x4b, 0x35, 0x0d, 0x99, 0x8e, 0x69, 0xe8, 0xd7, 0xb0, 0xed, 0x6d, 0xc4, + 0xb0, 0x47, 0xe2, 0x57, 0xb2, 0x3f, 0x2f, 0xe4, 0xee, 0x8b, 0xab, 0x17, 0xc4, 0x33, 0xe1, 0xba, + 0x81, 0xb7, 0x1c, 0x5d, 0x48, 0x5b, 0x11, 0x8f, 0xe8, 0x14, 0x48, 0x0e, 0x6e, 0x76, 0x6d, 0xdd, + 0xdd, 0x57, 0x9b, 0xa6, 0xe1, 0x6a, 0x4d, 0x97, 0xa7, 0x4b, 0x4b, 0xa2, 0xbc, 0xc6, 0x8a, 0x09, + 0x48, 0x0b, 0xbb, 0x9a, 0xde, 0x66, 0xe7, 0xbc, 0x72, 0x8a, 0x78, 0xe4, 0x4d, 0xfd, 0xd5, 0x4c, + 0x30, 0x16, 0xac, 0x81, 0x64, 0x5a, 0xd8, 0x0e, 0x7d, 0xe3, 0xc6, 0xf4, 0x73, 0xfa, 0x77, 0x3f, + 0xff, 0xd0, 0x14, 0x17, 0x38, 0xdf, 0x71, 0x67, 0xb7, 0x30, 0x2b, 0x25, 0xc1, 0x21, 0x3e, 0x7e, + 0x7b, 0x3e, 0xb4, 0xf5, 0xd2, 0xdd, 0xf2, 0xbf, 0xb1, 0x9f, 0xea, 0x13, 0x6a, 0xc5, 0xd8, 0xaf, + 0x4e, 0xff, 0x8e, 0x0f, 0xed, 0xc7, 0x8a, 0xcf, 0xe0, 0xfd, 0xe0, 0x3e, 0x0c, 0x85, 0x21, 0x2e, + 0xfb, 0x8b, 0x9a, 0xde, 0x16, 0x7f, 0x31, 0x4d, 0xe1, 0x4f, 0x68, 0xc1, 0xcb, 0xbb, 0xb0, 0xbf, + 0x84, 0x2e, 0x0f, 0xd3, 0x8d, 0xaa, 0x69, 0xb4, 0xc2, 0x29, 0x16, 0xb4, 0x01, 0x69, 0xd7, 0xbc, + 0x86, 0x0d, 0x2e, 0xa0, 0x43, 0xe9, 0x74, 0xff, 0x85, 0x33, 0x1c, 0x0b, 0xed, 0x80, 0xd4, 0xc2, + 0x6d, 0xbc, 0xc3, 0xbe, 0xd0, 0xda, 0xd5, 0x6c, 0xcc, 0xbe, 0xda, 0xfc, 0x5e, 0xe7, 0x4c, 0xc9, + 0x43, 0x6d, 0x50, 0x50, 0xb4, 0x1e, 0xbe, 0x14, 0x2d, 0xc3, 0xb7, 0xe1, 0x87, 0xf4, 0x3f, 0xa0, + 0x95, 0x41, 0x3b, 0x15, 0xba, 0x44, 0xed, 0x14, 0x48, 0x5d, 0x63, 0xcb, 0x34, 0xe8, 0x1f, 0x37, + 0xe2, 0x11, 0x55, 0x96, 0x6d, 0xd5, 0x79, 0xe5, 0x7c, 0xab, 0x6e, 0x1d, 0x8a, 0x3e, 0x29, 0x9d, + 0x3d, 0xb9, 0xc3, 0xce, 0x9e, 0x82, 0x07, 0x40, 0x48, 0xd0, 0x0a, 0x80, 0x3f, 0x3f, 0xbd, 0xed, + 0xfc, 0xc8, 0x99, 0x1e, 0xec, 0x4c, 0x00, 0x00, 0xb5, 0x61, 0xb2, 0xa3, 0x1b, 0xaa, 0x83, 0xdb, + 0xdb, 0x2a, 0x97, 0x1c, 0xc1, 0xcd, 0xbf, 0x09, 0x23, 0x3d, 0xd1, 0xd1, 0x8d, 0x06, 0x6e, 0x6f, + 0x2f, 0x7a, 0xb0, 0xe8, 0x1d, 0x70, 0xdc, 0x17, 0x87, 0x69, 0xa8, 0xbb, 0x66, 0xbb, 0xa5, 0xda, + 0x78, 0x5b, 0x6d, 0xd2, 0xfb, 0x8e, 0xc6, 0xa9, 0x10, 0x8f, 0x7a, 0x24, 0x6b, 0xc6, 0x65, 0xb3, + 0xdd, 0x52, 0xf0, 0x76, 0x8d, 0x54, 0xa3, 0x7b, 0xc0, 0x97, 0x85, 0xaa, 0xb7, 0x9c, 0xe9, 0xc2, + 0x5c, 0xe2, 0x64, 0x52, 0x19, 0xf7, 0x0a, 0x97, 0x5a, 0xce, 0x42, 0xf6, 0xfd, 0xaf, 0xcc, 0x8e, + 0x7d, 0xf3, 0x95, 0xd9, 0x31, 0xf9, 0x22, 0xbd, 0x9d, 0x83, 0x4f, 0x3a, 0xec, 0xa0, 0xf3, 0x90, + 0xd3, 0xc4, 0x03, 0xfb, 0x2e, 0xe4, 0x80, 0x49, 0xeb, 0x93, 0xca, 0xaf, 0xc4, 0x20, 0xbd, 0x78, + 0x75, 0x5d, 0xd3, 0x6d, 0x54, 0x87, 0x09, 0x5f, 0x69, 0x47, 0x9d, 0xff, 0xbe, 0x9e, 0x0b, 0x03, + 0x50, 0x1f, 0xf6, 0xa9, 0xec, 0x81, 0x30, 0xbd, 0x1f, 0xd1, 0x06, 0xba, 0x7a, 0x05, 0x32, 0xac, + 0x85, 0x0e, 0x7a, 0x1a, 0x52, 0x16, 0xf9, 0xc1, 0xd3, 0xfd, 0x33, 0x43, 0x15, 0x9d, 0xd2, 0x07, + 0xd5, 0x82, 0xf1, 0xc9, 0x7f, 0x1e, 0x03, 0x58, 0xbc, 0x7a, 0x75, 0xc3, 0xd6, 0xad, 0x36, 0x76, + 0xdf, 0xac, 0x2e, 0x2f, 0xc3, 0x1d, 0x81, 0x0f, 0x32, 0xed, 0xe6, 0xc8, 0xdd, 0x9e, 0xf4, 0x3f, + 0xc9, 0xb4, 0x9b, 0x03, 0xd1, 0x5a, 0x8e, 0xeb, 0xa1, 0x25, 0x46, 0x46, 0x5b, 0x74, 0xdc, 0x7e, + 0x39, 0x3e, 0x07, 0x79, 0xbf, 0xeb, 0x0e, 0x5a, 0x82, 0xac, 0xcb, 0x7f, 0x73, 0x71, 0xca, 0xc3, + 0xc5, 0x29, 0xd8, 0x82, 0x22, 0xf5, 0xd8, 0xe5, 0xff, 0x4d, 0xa4, 0xea, 0x4f, 0x84, 0xbf, 0x54, + 0x8a, 0x44, 0x2c, 0x3c, 0xb7, 0xc0, 0x6f, 0x86, 0xd7, 0xc2, 0xb1, 0x02, 0x62, 0xfd, 0xb1, 0x38, + 0x4c, 0x6e, 0x8a, 0x49, 0xfa, 0x97, 0x56, 0x0a, 0x9b, 0x90, 0xc1, 0x86, 0x6b, 0xeb, 0x58, 0xec, + 0xed, 0x3d, 0x3c, 0x6c, 0xb0, 0x07, 0xf4, 0x85, 0xfe, 0xc9, 0xdf, 0xe0, 0xd0, 0x0b, 0xac, 0x80, + 0x18, 0x7e, 0x23, 0x01, 0xd3, 0xc3, 0x58, 0xd1, 0x09, 0x28, 0x35, 0x6d, 0x4c, 0x0b, 0xd4, 0x50, + 0xee, 0xbb, 0x28, 0x8a, 0xf9, 0x92, 0xa2, 0x00, 0x71, 0xd0, 0x88, 0x56, 0x11, 0xd2, 0xdb, 0xf3, + 0xc8, 0x8a, 0x3e, 0x02, 0x5d, 0x54, 0x30, 0x94, 0xc4, 0x61, 0xf6, 0x2d, 0xad, 0xad, 0x19, 0xcd, + 0xdb, 0xf1, 0x5f, 0xfb, 0x57, 0x00, 0x71, 0x42, 0xbe, 0xca, 0x30, 0xd1, 0x55, 0xc8, 0x08, 0xf8, + 0xe4, 0x9b, 0x00, 0x2f, 0xc0, 0xd0, 0xdd, 0x30, 0x1e, 0x5c, 0x18, 0xa8, 0x9f, 0x92, 0x54, 0xf2, + 0x81, 0x75, 0x21, 0x6a, 0xe5, 0x49, 0x1f, 0xb8, 0xf2, 0x70, 0x57, 0xf0, 0xd7, 0x13, 0x30, 0xa1, + 0xe0, 0xd6, 0xf7, 0xe1, 0xc0, 0xfd, 0x20, 0x00, 0x9b, 0xd4, 0xc4, 0xd8, 0xde, 0xc6, 0xd8, 0xf5, + 0x1b, 0x89, 0x1c, 0xc3, 0x5b, 0x74, 0xdc, 0xb7, 0x6b, 0xf4, 0xfe, 0x55, 0x1c, 0xc6, 0x83, 0xa3, + 0xf7, 0x7d, 0xb0, 0xb2, 0xa1, 0x55, 0xdf, 0xa4, 0xb1, 0xe3, 0xe6, 0xa7, 0x86, 0x99, 0xb4, 0x3e, + 0xbd, 0x8e, 0xb0, 0x65, 0x1f, 0x4e, 0x40, 0x9a, 0x9f, 0xfd, 0x5a, 0xeb, 0xf3, 0x71, 0x63, 0x51, + 0x1f, 0xfc, 0x16, 0xc4, 0x07, 0xbf, 0x03, 0x5d, 0xdc, 0xfb, 0xa0, 0x48, 0xa2, 0xe9, 0xd0, 0x81, + 0xb2, 0xd8, 0xc9, 0x02, 0x0d, 0x87, 0xfd, 0xe3, 0xcf, 0x68, 0x16, 0xf2, 0x84, 0xcc, 0xb7, 0xd9, + 0x84, 0x06, 0x3a, 0xda, 0x5e, 0x9d, 0x95, 0xa0, 0x87, 0x00, 0xed, 0x7a, 0x99, 0x0e, 0xd5, 0x17, + 0x04, 0xa1, 0x9b, 0xf0, 0x6b, 0x04, 0xf9, 0x5d, 0x00, 0xa4, 0x15, 0x2a, 0xbb, 0x92, 0x93, 0xdf, + 0xaf, 0x4a, 0x4a, 0x16, 0xe9, 0xb5, 0x9c, 0x3f, 0xcc, 0x3c, 0xe5, 0x9e, 0x60, 0x9b, 0xc7, 0x2c, + 0xcb, 0x87, 0x9b, 0x0c, 0xdf, 0x79, 0x6d, 0xb6, 0xbc, 0xaf, 0x75, 0xda, 0x0b, 0xf2, 0x00, 0x48, + 0x99, 0x7a, 0xce, 0xe1, 0x20, 0x7d, 0xe1, 0x5e, 0xa2, 0xc3, 0x37, 0xbf, 0xf1, 0xd9, 0xd3, 0xc7, + 0x03, 0x78, 0x7b, 0x5e, 0xfa, 0x8b, 0x0d, 0x85, 0xfc, 0x99, 0x18, 0x20, 0x7f, 0x61, 0xf1, 0x0e, + 0x7b, 0xaf, 0xd0, 0x23, 0xc0, 0xc2, 0xb7, 0x8f, 0x1d, 0x1c, 0x33, 0xf8, 0xfc, 0xa1, 0x98, 0x21, + 0x30, 0x71, 0xde, 0xe9, 0x9b, 0x71, 0xf1, 0x69, 0xf7, 0x80, 0x8b, 0x58, 0xe7, 0x6b, 0xa6, 0x1e, + 0x82, 0x10, 0x4c, 0x74, 0x3e, 0x8e, 0xc9, 0xaf, 0xc5, 0xe0, 0x58, 0x9f, 0xd6, 0x79, 0x4d, 0x6e, + 0x02, 0xb2, 0x03, 0x95, 0xfc, 0x4f, 0xec, 0xc7, 0xf8, 0x97, 0x8c, 0xb7, 0xa3, 0xc4, 0x13, 0x76, + 0x9f, 0xe9, 0x7e, 0x8b, 0xd6, 0x23, 0x6e, 0x70, 0x7e, 0x3b, 0x06, 0x53, 0xc1, 0x16, 0x79, 0x7d, + 0x6b, 0xc0, 0x78, 0xb0, 0x2d, 0xbc, 0x57, 0xf7, 0x8e, 0xd2, 0xab, 0x60, 0x87, 0x42, 0x20, 0xa4, + 0x2f, 0x42, 0xc3, 0x59, 0x22, 0xee, 0x91, 0x91, 0xa5, 0xe4, 0x6d, 0x32, 0x0c, 0x9a, 0xf2, 0x6c, + 0xb0, 0x3e, 0x10, 0x87, 0xe4, 0xba, 0x69, 0xb6, 0xd1, 0x8f, 0xc6, 0x60, 0xc2, 0x30, 0x5d, 0x95, + 0xcc, 0x0b, 0xdc, 0x52, 0x79, 0x62, 0x80, 0x59, 0xcd, 0xab, 0x87, 0x93, 0xde, 0xb7, 0x5e, 0x9b, + 0xed, 0x87, 0x1a, 0x74, 0x7f, 0x6e, 0xc9, 0x30, 0xdd, 0x2a, 0x25, 0xda, 0x60, 0xb9, 0x83, 0x1b, + 0x50, 0x08, 0xbf, 0x9f, 0x99, 0x5a, 0xe5, 0xd0, 0xef, 0x2f, 0x44, 0xbe, 0x7b, 0x7c, 0x2b, 0xf0, + 0x62, 0x76, 0x8b, 0xe5, 0x1f, 0x93, 0xc1, 0x7d, 0x1e, 0xa4, 0xab, 0xbd, 0xc7, 0xce, 0xea, 0x90, + 0x39, 0xec, 0x09, 0xb6, 0xa0, 0xc4, 0x39, 0xef, 0xe9, 0x2f, 0xc4, 0x00, 0xfc, 0x34, 0x0c, 0x7a, + 0x10, 0x8e, 0x56, 0xd7, 0x56, 0x17, 0xd5, 0xc6, 0x46, 0x65, 0x63, 0xb3, 0x11, 0xbe, 0x6b, 0x5d, + 0x5c, 0x34, 0xe2, 0x58, 0xb8, 0xa9, 0x6f, 0xeb, 0xb8, 0x85, 0xee, 0x87, 0xa9, 0x30, 0x35, 0x79, + 0xaa, 0x2f, 0x4a, 0xb1, 0xf2, 0xf8, 0xcd, 0x5b, 0x73, 0x59, 0xe6, 0x7e, 0xe2, 0x16, 0x3a, 0x09, + 0x77, 0xf4, 0xd3, 0x2d, 0xad, 0x5e, 0x92, 0xe2, 0xe5, 0xc2, 0xcd, 0x5b, 0x73, 0x39, 0xcf, 0x4f, + 0x45, 0x32, 0xa0, 0x20, 0x25, 0xc7, 0x4b, 0x94, 0xe1, 0xe6, 0xad, 0xb9, 0x34, 0x1b, 0x96, 0x72, + 0xf2, 0xfd, 0x9f, 0x9c, 0x19, 0x3b, 0xfd, 0x43, 0x00, 0x4b, 0xc6, 0xb6, 0xad, 0xd1, 0x3f, 0x38, + 0x8c, 0xca, 0x70, 0x64, 0x69, 0xf5, 0xa2, 0x52, 0xa9, 0x6d, 0x2c, 0xad, 0xad, 0xf6, 0x5c, 0x11, + 0x1f, 0xae, 0x5b, 0x5c, 0xdb, 0xac, 0x2e, 0xd7, 0xd5, 0xc6, 0xd2, 0xa5, 0x55, 0xb6, 0x7d, 0x1b, + 0xaa, 0x7b, 0x76, 0x75, 0x63, 0x69, 0xa5, 0x2e, 0xc5, 0xab, 0x17, 0x87, 0x6e, 0x20, 0x3c, 0x78, + 0xe0, 0x80, 0xfb, 0x56, 0x32, 0xb4, 0x8b, 0xf0, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x7c, 0x77, + 0x89, 0x53, 0x08, 0x97, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 034e8548bc05..946f122e8880 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -13,14 +13,17 @@ import ( "google.golang.org/protobuf/reflect/protoreflect" "cosmossdk.io/api/amino" + authapi "cosmossdk.io/api/cosmos/auth/v1beta1" ) -type MessageEncoder func(message protoreflect.Message) (protoreflect.Value, error) +type MessageEncoder func(protoreflect.Message) (protoreflect.Value, error) +type FieldEncoder func(protoreflect.Value, io.Writer) error type AminoJSON struct { // maps cosmos_proto.scalar -> zero value factory zeroValues map[string]func() protoreflect.Value messageEncoders map[string]MessageEncoder + encodings map[string]FieldEncoder } func NewAminoJSON() AminoJSON { @@ -40,6 +43,21 @@ func NewAminoJSON() AminoJSON { bz := message.Get(keyField).Bytes() return protoreflect.ValueOfBytes(bz), nil }, + //"module_account": moduleAccountEncoder, + }, + encodings: map[string]FieldEncoder{ + "empty_string": func(v protoreflect.Value, writer io.Writer) error { + _, err := writer.Write([]byte(`""`)) + return err + }, + "json_default": func(v protoreflect.Value, writer io.Writer) error { + switch val := v.Interface().(type) { + case string, bool, int32, uint32, uint64, int64, protoreflect.EnumNumber: + return jsonMarshal(writer, val) + default: + return fmt.Errorf("unsupported type %T", val) + } + }, }, } return aj @@ -56,6 +74,21 @@ func (aj AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { return buf.Bytes(), err } +// TODO +// move into marshalMessage +func (aj AminoJSON) beginMarshal(msg protoreflect.Value, writer io.Writer) error { + _, err := writer.Write([]byte("{")) + if err != nil { + return err + } + err = aj.marshal(msg, writer) + if err != nil { + return err + } + _, err = writer.Write([]byte("}")) + return err +} + func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { switch val := value.Interface().(type) { case protoreflect.Message: @@ -83,6 +116,65 @@ func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { } } +// TODO +// merge with marshalMessage +func (aj AminoJSON) marshalEmbedded(msg protoreflect.Message, writer io.Writer) (bool, error) { + fields := msg.Descriptor().Fields() + first := true + wrote := false + for i := 0; i < fields.Len(); i++ { + f := fields.Get(i) + v := msg.Get(f) + name := getFieldName(f) + + if !msg.Has(f) { + if omitEmpty(f) { + continue + } else { + zv, found := aj.getZeroValue(f) + if found { + v = zv + } + } + } + + if !first { + _, err := writer.Write([]byte(",")) + if err != nil { + return wrote, err + } + } + + err := jsonMarshal(writer, name) + wrote = true + if err != nil { + return wrote, err + } + + _, err = writer.Write([]byte(":")) + if err != nil { + return wrote, err + } + + // encode value + if encoder := aj.getFieldEncoding(f); encoder != nil { + err = encoder(v, writer) + if err != nil { + return wrote, err + } + } else { + err = aj.marshal(v, writer) + if err != nil { + return wrote, err + } + } + + first = false + } + + return wrote, nil +} + func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) error { if encoder := aj.getMessageEncoder(msg); encoder != nil { encoded, err := encoder(msg) @@ -93,6 +185,7 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e } named := false + opts := msg.Descriptor().Options() if proto.HasExtension(opts, amino.E_Name) { name := proto.GetExtension(opts, amino.E_Name) @@ -126,6 +219,17 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e } } + if isFieldEmbedded(v, f) { + wrote, err := aj.marshalEmbedded(v.Message(), writer) + if err != nil { + return err + } + if wrote { + first = false + } + continue + } + if !first { _, err = writer.Write([]byte(",")) if err != nil { @@ -143,9 +247,17 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e return err } - err = aj.marshal(v, writer) - if err != nil { - return err + // encode value + if encoder := aj.getFieldEncoding(f); encoder != nil { + err = encoder(v, writer) + if err != nil { + return err + } + } else { + err = aj.marshal(v, writer) + if err != nil { + return err + } } first = false @@ -253,3 +365,55 @@ func (aj AminoJSON) getMessageEncoder(message protoreflect.Message) MessageEncod } return nil } + +func isFieldEmbedded(fieldValue protoreflect.Value, field protoreflect.FieldDescriptor) bool { + opts := field.Options() + if proto.HasExtension(opts, amino.E_Embed) { + embedded := proto.GetExtension(opts, amino.E_Embed).(bool) + switch fieldValue.Interface().(type) { + case protoreflect.Message: + return embedded + default: + fmt.Printf("WARN: field %s is not a message, but has the embedded option set to true. Ignoring option.\n", field.Name()) + return false + } + } + return false +} + +func (aj AminoJSON) getFieldEncoding(field protoreflect.FieldDescriptor) FieldEncoder { + opts := field.Options() + if proto.HasExtension(opts, amino.E_Encoding) { + enc := proto.GetExtension(opts, amino.E_Encoding).(string) + if fn, ok := aj.encodings[enc]; ok { + return fn + } + } + return nil +} + +type moduleAccountPretty struct { + Address string `json:"address"` + PubKey string `json:"public_key"` + AccountNumber uint64 `json:"account_number"` + Sequence uint64 `json:"sequence"` + Name string `json:"name"` + Permissions []string `json:"permissions"` +} + +func moduleAccountEncoder(m protoreflect.Message) (protoreflect.Value, error) { + ma := m.Interface().(*authapi.ModuleAccount) + ma2 := moduleAccountPretty{ + Address: ma.BaseAccount.Address, + PubKey: "", + AccountNumber: ma.BaseAccount.AccountNumber, + Sequence: ma.BaseAccount.Sequence, + Name: ma.Name, + Permissions: ma.Permissions, + } + bz, err := json.Marshal(ma2) + if err != nil { + return protoreflect.Value{}, err + } + return protoreflect.ValueOfString(string(bz)), nil +} From 5717b4af57a9fcd680cecd50e5e2c730dde2d7a1 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 6 Feb 2023 19:57:25 -0600 Subject: [PATCH 044/122] progress --- api/cosmos/auth/v1beta1/auth.pulsar.go | 156 +++++++++--------- proto/cosmos/auth/v1beta1/auth.proto | 11 +- tests/integration/aminojson/aminojson_test.go | 28 +++- x/auth/types/auth.pb.go | 94 ++++++----- x/tx/aminojson/json_marshal.go | 67 +++++--- 5 files changed, 191 insertions(+), 165 deletions(-) diff --git a/api/cosmos/auth/v1beta1/auth.pulsar.go b/api/cosmos/auth/v1beta1/auth.pulsar.go index c5da623d1045..97190c4dc45a 100644 --- a/api/cosmos/auth/v1beta1/auth.pulsar.go +++ b/api/cosmos/auth/v1beta1/auth.pulsar.go @@ -2630,86 +2630,82 @@ var file_cosmos_auth_v1beta1_auth_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xec, 0x02, 0x0a, 0x0b, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1d, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x6c, 0x0a, - 0x07, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x3d, 0xea, 0xde, 0x1f, 0x14, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x5f, 0x6b, 0x65, 0x79, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x9a, 0xe7, - 0xb0, 0x2a, 0x0c, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0xa2, - 0xe7, 0xb0, 0x2a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x12, 0x3d, 0x0a, 0x0e, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x42, 0x16, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x61, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x08, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x16, 0x9a, 0xe7, - 0xb0, 0x2a, 0x0c, 0x6a, 0x73, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x3a, 0x43, - 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1c, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x16, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x09, 0xd0, - 0xde, 0x1f, 0x01, 0xb0, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x05, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x27, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x05, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x70, 0x65, - 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x5a, 0x88, 0xa0, 0x1f, 0x00, 0xca, - 0xb4, 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x92, 0xe7, 0xb0, 0x2a, 0x0e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x61, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x5c, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, - 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, - 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, - 0x65, 0x79, 0x73, 0x22, 0xd7, 0x02, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, - 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x61, - 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6d, 0x61, 0x78, - 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x12, 0x20, - 0x0a, 0x0c, 0x74, 0x78, 0x5f, 0x73, 0x69, 0x67, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x78, 0x53, 0x69, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x30, 0x0a, 0x15, 0x74, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, - 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x11, 0x74, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x50, 0x65, 0x72, 0x42, 0x79, - 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x17, 0x73, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x04, 0x42, 0x18, 0xe2, 0xde, 0x1f, 0x14, 0x53, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x52, 0x14, 0x73, - 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x64, 0x32, 0x35, - 0x35, 0x31, 0x39, 0x12, 0x55, 0x0a, 0x19, 0x73, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x1a, 0xe2, 0xde, 0x1f, 0x16, 0x53, 0x69, 0x67, 0x56, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, - 0x6b, 0x31, 0x52, 0x16, 0x73, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, - 0x74, 0x53, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x3a, 0x21, 0xe8, 0xa0, 0x1f, 0x01, - 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x78, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xc4, 0x01, - 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, 0x41, 0x75, 0x74, 0x68, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, - 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x61, 0x75, 0x74, - 0x68, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, 0x58, 0xaa, 0x02, - 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, - 0x74, 0x68, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa1, 0x02, 0x0a, 0x0b, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x56, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, + 0x27, 0xea, 0xde, 0x1f, 0x14, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x2c, + 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa2, 0xe7, 0xb0, 0x2a, 0x0a, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, + 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x73, 0x65, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x3a, 0x43, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, + 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x8a, 0xe7, 0xb0, + 0x2a, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, + 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0c, 0x62, 0x61, + 0x73, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x42, 0x09, 0xd0, 0xde, 0x1f, 0x01, 0xb0, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x62, + 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x05, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x05, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x5a, + 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x92, 0xe7, 0xb0, 0x2a, 0x0e, 0x6d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x5c, 0x0a, 0x10, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x1f, + 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, + 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x22, 0xd7, 0x02, 0x0a, 0x06, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, + 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x11, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x78, 0x5f, 0x73, 0x69, 0x67, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x78, 0x53, 0x69, 0x67, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x30, 0x0a, 0x15, 0x74, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x74, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x43, 0x6f, 0x73, 0x74, + 0x50, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x17, 0x73, 0x69, 0x67, 0x5f, 0x76, + 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x64, 0x32, 0x35, 0x35, + 0x31, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x18, 0xe2, 0xde, 0x1f, 0x14, 0x53, 0x69, + 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x44, 0x32, 0x35, 0x35, + 0x31, 0x39, 0x52, 0x14, 0x73, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, + 0x74, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x12, 0x55, 0x0a, 0x19, 0x73, 0x69, 0x67, 0x5f, + 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x70, + 0x32, 0x35, 0x36, 0x6b, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x1a, 0xe2, 0xde, 0x1f, + 0x16, 0x53, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x53, 0x65, + 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x52, 0x16, 0x73, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, + 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x3a, + 0x21, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x42, 0xc4, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, + 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, + 0x43, 0x41, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x75, 0x74, + 0x68, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, + 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, 0x68, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/proto/cosmos/auth/v1beta1/auth.proto b/proto/cosmos/auth/v1beta1/auth.proto index b11cb65deea0..c89e44b58058 100644 --- a/proto/cosmos/auth/v1beta1/auth.proto +++ b/proto/cosmos/auth/v1beta1/auth.proto @@ -19,17 +19,14 @@ message BaseAccount { option (cosmos_proto.implements_interface) = "cosmos.auth.v1beta1.AccountI"; string address = 1 [ - (cosmos_proto.scalar) = "cosmos.AddressString", - (amino.dont_omitempty) = true]; + (cosmos_proto.scalar) = "cosmos.AddressString"]; google.protobuf.Any pub_key = 2 [ (gogoproto.jsontag) = "public_key,omitempty", - (amino.field_name) = "public_key", - (amino.encoding) = "empty_string", - (amino.dont_omitempty) = true]; + (amino.field_name) = "public_key"]; - uint64 account_number = 3 [(amino.dont_omitempty) = true, (amino.encoding) = "json_default"]; - uint64 sequence = 4 [(amino.dont_omitempty) = true, (amino.encoding) = "json_default"]; + uint64 account_number = 3; + uint64 sequence = 4; } // ModuleAccount defines an account for modules that holds coins on a pool. diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 7dee7f575761..de406faf307f 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -24,7 +24,9 @@ import ( "cosmossdk.io/x/tx/rapidproto" codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" + "github.com/cosmos/cosmos-sdk/testutil/testdata" "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/bech32" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" authztypes "github.com/cosmos/cosmos-sdk/x/authz" disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" @@ -45,8 +47,10 @@ var msgTypes = []typeUnderTest{ // auth {gogo: &authtypes.Params{}, pulsar: &authapi.Params{}}, {gogo: &authtypes.BaseAccount{}, pulsar: &authapi.BaseAccount{}}, - // punting since the structs have a different shape - //{gogo: &authtypes.ModuleAccount{}, pulsar: &authapi.ModuleAccount{}}, + + // omitted from the test because of the custom MarshalJSON. It is tested separately. Pulsar types + // may be generated with data which is invalid for the gogo type, but valid for the pulsar type. + {gogo: &authtypes.ModuleAccount{}, pulsar: &authapi.ModuleAccount{}}, // missing name extension, do we need it? // {gogo: &authtypes.ModuleCredential{}, pulsar: &authapi.ModuleCredential{}}, @@ -211,6 +215,21 @@ func newGogoMessage(t reflect.Type) gogoproto.Message { } } +func postFixPulsarMessage(msg proto.Message) proto.Message { + switch m := msg.(type) { + case *authapi.ModuleAccount: + if m.BaseAccount == nil { + m.BaseAccount = &authapi.BaseAccount{} + } + _, _, bz := testdata.KeyTestPubAddr() + text, _ := bech32.ConvertAndEncode("cosmos", bz) + m.BaseAccount.Address = text + return m + default: + return msg + } +} + func Test_newGogoMessage(t *testing.T) { ma := &authtypes.ModuleAccount{} rma := newGogoMessage(reflect.TypeOf(ma).Elem()) @@ -321,13 +340,14 @@ func TestAminoJSON_AllTypes(t *testing.T) { } }() msg := gen.Draw(t, "msg") + msg = postFixPulsarMessage(msg) //goMsg := reflect.New(reflect.TypeOf(tt.gogo).Elem()).Interface().(gogoproto.Message) goMsg := newGogoMessage(reflect.TypeOf(tt.gogo).Elem()) ti.deepClone(msg, goMsg) gogobz, err := cdc.MarshalJSON(goMsg) require.NoError(t, err, "failed to marshal gogo message") pulsarbz, err := aj.MarshalAmino(msg) - require.Equal(t, pulsarbz, gogobz) + require.Equal(t, string(gogobz), string(pulsarbz)) }) } } @@ -382,6 +402,7 @@ func TestAminoJSON_LegacyParity(t *testing.T) { pulsarBytes, err := aj.MarshalAmino(tc.pulsar) require.NoError(t, err) + fmt.Printf("pulsar: %s\n", string(pulsarBytes)) require.Equal(t, string(gogoBytes), string(pulsarBytes), "gogo: %s vs pulsar: %s", gogoBytes, pulsarBytes) }) } @@ -391,7 +412,6 @@ func TestModuleAccount(t *testing.T) { gen := rapidproto.MessageGenerator(&authapi.ModuleAccount{}, rapidproto.GeneratorOptions{}) rapid.Check(t, func(t *rapid.T) { msg := gen.Draw(t, "msg") - fmt.Printf("msg: %v\n", msg) _, err := aminojson.NewAminoJSON().MarshalAmino(msg) assert.NilError(t, err) }) diff --git a/x/auth/types/auth.pb.go b/x/auth/types/auth.pb.go index a6663cc93393..edef8aa3877f 100644 --- a/x/auth/types/auth.pb.go +++ b/x/auth/types/auth.pb.go @@ -254,54 +254,52 @@ func init() { func init() { proto.RegisterFile("cosmos/auth/v1beta1/auth.proto", fileDescriptor_7e1f7e915d020d2d) } var fileDescriptor_7e1f7e915d020d2d = []byte{ - // 754 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x54, 0xcf, 0x6f, 0xe3, 0x44, - 0x14, 0x8e, 0xdb, 0x6c, 0x97, 0x4e, 0xb2, 0x85, 0x7a, 0x43, 0x70, 0x2b, 0x88, 0x43, 0x2e, 0x84, - 0x88, 0xda, 0x24, 0xa8, 0x20, 0x2a, 0xed, 0xa1, 0x0e, 0x1c, 0xd0, 0xb2, 0x65, 0xe5, 0x08, 0x0e, - 0x2b, 0x24, 0x6b, 0x6c, 0xbf, 0xba, 0x43, 0x33, 0x1e, 0xe3, 0x19, 0x57, 0xf1, 0xfe, 0x05, 0x2b, - 0x4e, 0x88, 0x23, 0xa7, 0x8a, 0x13, 0xc7, 0x1c, 0xf6, 0x8f, 0x40, 0x9c, 0x2a, 0x2e, 0x70, 0x8a, - 0x50, 0x7a, 0xc8, 0x0a, 0xf1, 0x3f, 0x80, 0x32, 0xe3, 0xb4, 0xc9, 0x12, 0x71, 0xb1, 0x3c, 0xdf, - 0xf7, 0xbd, 0xef, 0xfd, 0x98, 0xa7, 0x41, 0x8d, 0x80, 0x71, 0xca, 0xb8, 0x8d, 0x33, 0x71, 0x66, - 0x5f, 0x74, 0x7d, 0x10, 0xb8, 0x2b, 0x0f, 0x56, 0x92, 0x32, 0xc1, 0xf4, 0xfb, 0x8a, 0xb7, 0x24, - 0x54, 0xf0, 0xfb, 0xbb, 0x98, 0x92, 0x98, 0xd9, 0xf2, 0xab, 0x74, 0xfb, 0x7b, 0x4a, 0xe7, 0xc9, - 0x93, 0x5d, 0x04, 0x29, 0xaa, 0x16, 0xb1, 0x88, 0x29, 0x7c, 0xfe, 0xb7, 0x08, 0x88, 0x18, 0x8b, - 0x86, 0x60, 0xcb, 0x93, 0x9f, 0x9d, 0xda, 0x38, 0xce, 0x15, 0xd5, 0xfa, 0x7b, 0x03, 0x55, 0x1c, - 0xcc, 0xe1, 0x38, 0x08, 0x58, 0x16, 0x0b, 0xfd, 0x23, 0x74, 0x17, 0x87, 0x61, 0x0a, 0x9c, 0x1b, - 0x5a, 0x53, 0x6b, 0x6f, 0x3b, 0x6f, 0xfd, 0xf6, 0xfc, 0xa0, 0x56, 0xe4, 0x38, 0x56, 0xcc, 0x40, - 0xa4, 0x24, 0x8e, 0x7e, 0x9e, 0x8d, 0x3b, 0x9a, 0xbb, 0x50, 0xeb, 0x43, 0x74, 0x37, 0xc9, 0x7c, - 0xef, 0x1c, 0x72, 0x63, 0xa3, 0xa9, 0xb5, 0x2b, 0xbd, 0x9a, 0xa5, 0xb2, 0x5a, 0x8b, 0xac, 0xd6, - 0x71, 0x9c, 0x3b, 0x0f, 0xfe, 0x9a, 0x98, 0xb5, 0x24, 0xf3, 0x87, 0x24, 0x98, 0x6b, 0xdf, 0x63, - 0x94, 0x08, 0xa0, 0x89, 0xc8, 0x7f, 0x9c, 0x8d, 0x3b, 0x55, 0xf9, 0xe7, 0x71, 0xe9, 0xff, 0xd3, - 0x6c, 0xdc, 0x41, 0xb7, 0x4a, 0x95, 0x6e, 0x2b, 0xc9, 0xfc, 0x87, 0x90, 0xeb, 0x0f, 0xd0, 0x0e, - 0x56, 0x15, 0x7b, 0x71, 0x46, 0x7d, 0x48, 0x8d, 0xcd, 0xa6, 0xd6, 0x2e, 0x3b, 0x75, 0x69, 0xf3, - 0x0d, 0x67, 0xb1, 0x17, 0xc2, 0x29, 0xce, 0x86, 0x42, 0xc5, 0xdd, 0x2b, 0xd4, 0x27, 0x52, 0xac, - 0xf7, 0xd0, 0x2b, 0x1c, 0xbe, 0xcd, 0x20, 0x0e, 0xc0, 0x28, 0xff, 0x6f, 0xe0, 0x8d, 0xee, 0xa8, - 0xff, 0xec, 0xd2, 0x2c, 0xbd, 0xb8, 0x34, 0x4b, 0xbf, 0x3e, 0x3f, 0x78, 0x73, 0xcd, 0x4d, 0x59, - 0xc5, 0x08, 0x3f, 0xfb, 0x6e, 0x36, 0xee, 0xd4, 0x95, 0xe0, 0x80, 0x87, 0xe7, 0xf6, 0xd2, 0x78, - 0x5b, 0xff, 0x68, 0xe8, 0xde, 0x23, 0x16, 0x66, 0xc3, 0x9b, 0x81, 0x9f, 0xa0, 0xaa, 0x8f, 0x39, - 0x78, 0x45, 0x81, 0x72, 0xea, 0x95, 0x5e, 0xd3, 0x5a, 0x97, 0x61, 0xc9, 0xc9, 0xd9, 0xbe, 0x9a, - 0x98, 0xda, 0x58, 0xd6, 0x58, 0xf1, 0x97, 0x2e, 0x70, 0x0f, 0x95, 0x63, 0x4c, 0x41, 0x5e, 0xc2, - 0xb6, 0x73, 0x47, 0x75, 0x21, 0x21, 0xfd, 0x1d, 0x54, 0x49, 0x20, 0xa5, 0x84, 0x73, 0xc2, 0x62, - 0x6e, 0x6c, 0x36, 0x37, 0x6f, 0x15, 0xcb, 0xcc, 0xd1, 0x93, 0x67, 0xaa, 0xcd, 0xd6, 0xba, 0x22, - 0x56, 0xca, 0x97, 0xcd, 0x1a, 0x4b, 0xcd, 0xae, 0xb0, 0x3f, 0xcc, 0xc6, 0x9d, 0x1d, 0x2a, 0x91, - 0x45, 0x7f, 0xad, 0xaf, 0xd1, 0x6b, 0x4a, 0xd3, 0x4f, 0x21, 0x84, 0x58, 0x10, 0x3c, 0xd4, 0x4d, - 0x54, 0x29, 0x54, 0xb2, 0x74, 0xb9, 0x78, 0x2e, 0x52, 0xd0, 0x89, 0xaa, 0xfc, 0xd5, 0x10, 0x52, - 0x72, 0x81, 0x05, 0x61, 0xf1, 0x7c, 0x1b, 0xb8, 0xb1, 0xd1, 0xdc, 0x6c, 0x57, 0xdd, 0x9d, 0x5b, - 0xf8, 0x21, 0xe4, 0xbc, 0xf5, 0xfb, 0x06, 0xda, 0x7a, 0x8c, 0x53, 0x4c, 0xb9, 0x6e, 0xa1, 0xfb, - 0x14, 0x8f, 0x3c, 0x0a, 0x94, 0x79, 0xc1, 0x19, 0x4e, 0x71, 0x20, 0x20, 0x55, 0x5b, 0x5d, 0x76, - 0x77, 0x29, 0x1e, 0x3d, 0x02, 0xca, 0xfa, 0x37, 0x84, 0xde, 0x44, 0x55, 0x31, 0xf2, 0x38, 0x89, - 0xbc, 0x21, 0xa1, 0x44, 0xc8, 0x01, 0x96, 0x5d, 0x24, 0x46, 0x03, 0x12, 0x7d, 0x3e, 0x47, 0xf4, - 0xf7, 0xd1, 0xeb, 0x52, 0xf1, 0x14, 0xbc, 0x80, 0x71, 0xe1, 0x25, 0x90, 0x7a, 0x7e, 0x2e, 0x40, - 0xed, 0x9e, 0xbb, 0x3b, 0x97, 0x3e, 0x85, 0x3e, 0xe3, 0xe2, 0x31, 0xa4, 0x4e, 0x2e, 0x40, 0xff, - 0x02, 0xbd, 0x31, 0x37, 0xbc, 0x80, 0x94, 0x9c, 0xe6, 0x2a, 0x08, 0xc2, 0xde, 0xe1, 0x61, 0xf7, - 0xe3, 0x62, 0xed, 0x8c, 0xe9, 0xc4, 0xac, 0x0d, 0x48, 0xf4, 0x95, 0x54, 0xcc, 0x43, 0x3f, 0xfd, - 0x44, 0xf2, 0x6e, 0x8d, 0xaf, 0xa0, 0x2a, 0x4a, 0xff, 0x12, 0xed, 0xbd, 0x6c, 0xc8, 0x21, 0x48, - 0x7a, 0x87, 0x1f, 0x9e, 0x77, 0x8d, 0x3b, 0xd2, 0x72, 0x7f, 0x3a, 0x31, 0xeb, 0x2b, 0x96, 0x83, - 0x85, 0xc2, 0xad, 0xf3, 0xb5, 0xf8, 0xd1, 0xdb, 0x2f, 0x2e, 0x4d, 0xed, 0xe5, 0xab, 0x1c, 0xa9, - 0x87, 0x4a, 0x8d, 0xd3, 0xe9, 0xff, 0x32, 0x6d, 0x68, 0x57, 0xd3, 0x86, 0xf6, 0xe7, 0xb4, 0xa1, - 0x7d, 0x7f, 0xdd, 0x28, 0x5d, 0x5d, 0x37, 0x4a, 0x7f, 0x5c, 0x37, 0x4a, 0x4f, 0xde, 0x8d, 0x88, - 0x38, 0xcb, 0x7c, 0x2b, 0x60, 0xb4, 0x78, 0x8c, 0xec, 0xff, 0xba, 0x88, 0x3c, 0x01, 0xee, 0x6f, - 0xc9, 0xb7, 0xe0, 0x83, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x84, 0xb9, 0x62, 0xe2, 0x0a, 0x05, + // 722 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x54, 0xcf, 0x4e, 0xe3, 0x46, + 0x1c, 0x8e, 0x93, 0x00, 0x65, 0x02, 0xb4, 0x98, 0x94, 0x9a, 0xa8, 0x8a, 0xd3, 0x48, 0x15, 0x69, + 0x54, 0xec, 0x26, 0x15, 0x95, 0xca, 0x0d, 0xa7, 0x3d, 0x54, 0x14, 0x8a, 0x1c, 0x95, 0x03, 0xaa, + 0x64, 0x8d, 0x9d, 0xc1, 0x8c, 0xc8, 0x78, 0x5c, 0xcf, 0x18, 0xc5, 0x3c, 0x01, 0xea, 0xa9, 0xea, + 0x13, 0xd0, 0x9e, 0x7a, 0xcc, 0x81, 0x87, 0x58, 0xed, 0x09, 0xed, 0x65, 0xf7, 0x14, 0xad, 0xc2, + 0x21, 0x68, 0x5f, 0x62, 0x57, 0x99, 0x71, 0x20, 0x61, 0x73, 0x89, 0xf2, 0xfb, 0xbe, 0xef, 0xf7, + 0xef, 0xf3, 0xcf, 0x06, 0x65, 0x8f, 0x32, 0x42, 0x99, 0x09, 0x63, 0x7e, 0x6e, 0x5e, 0x36, 0x5c, + 0xc4, 0x61, 0x43, 0x04, 0x46, 0x18, 0x51, 0x4e, 0xd5, 0x0d, 0xc9, 0x1b, 0x02, 0x4a, 0xf9, 0xd2, + 0x3a, 0x24, 0x38, 0xa0, 0xa6, 0xf8, 0x95, 0xba, 0xd2, 0x96, 0xd4, 0x39, 0x22, 0x32, 0xd3, 0x24, + 0x49, 0x15, 0x7d, 0xea, 0x53, 0x89, 0x8f, 0xff, 0x4d, 0x12, 0x7c, 0x4a, 0xfd, 0x2e, 0x32, 0x45, + 0xe4, 0xc6, 0x67, 0x26, 0x0c, 0x12, 0x49, 0x55, 0xff, 0xcd, 0x82, 0x82, 0x05, 0x19, 0xda, 0xf7, + 0x3c, 0x1a, 0x07, 0x5c, 0x6d, 0x82, 0x25, 0xd8, 0xe9, 0x44, 0x88, 0x31, 0x4d, 0xa9, 0x28, 0xb5, + 0x65, 0x4b, 0x7b, 0x75, 0xbb, 0x53, 0x4c, 0x7b, 0xec, 0x4b, 0xa6, 0xcd, 0x23, 0x1c, 0xf8, 0xf6, + 0x44, 0xa8, 0x9e, 0x80, 0xa5, 0x30, 0x76, 0x9d, 0x0b, 0x94, 0x68, 0xd9, 0x8a, 0x52, 0x2b, 0x34, + 0x8b, 0x86, 0x6c, 0x68, 0x4c, 0x1a, 0x1a, 0xfb, 0x41, 0x62, 0x6d, 0xbf, 0x1b, 0xe8, 0xc5, 0x30, + 0x76, 0xbb, 0xd8, 0x1b, 0x6b, 0xbf, 0xa5, 0x04, 0x73, 0x44, 0x42, 0x9e, 0xfc, 0x37, 0xea, 0xd7, + 0xc1, 0x13, 0x61, 0x2f, 0x86, 0xb1, 0x7b, 0x80, 0x12, 0xf5, 0x6b, 0xb0, 0x06, 0xe5, 0x58, 0x4e, + 0x10, 0x13, 0x17, 0x45, 0x5a, 0xae, 0xa2, 0xd4, 0xf2, 0xf6, 0x6a, 0x8a, 0x1e, 0x09, 0x50, 0x2d, + 0x81, 0x4f, 0x18, 0xfa, 0x33, 0x46, 0x81, 0x87, 0xb4, 0xbc, 0x10, 0x3c, 0xc6, 0x7b, 0xad, 0xeb, + 0x1b, 0x3d, 0xf3, 0x70, 0xa3, 0x67, 0x5e, 0xde, 0xee, 0x7c, 0x39, 0xc7, 0x5e, 0x23, 0xdd, 0xfb, + 0x97, 0xbf, 0x46, 0xfd, 0xfa, 0xa6, 0x14, 0xec, 0xb0, 0xce, 0x85, 0x39, 0xe5, 0x49, 0xf5, 0xbd, + 0x02, 0x56, 0x0f, 0x69, 0x27, 0xee, 0x3e, 0xba, 0x74, 0x04, 0x56, 0x5c, 0xc8, 0x90, 0x93, 0x0e, + 0x22, 0xac, 0x2a, 0x34, 0x2b, 0xc6, 0xbc, 0x0e, 0x53, 0x95, 0xac, 0xe5, 0xbb, 0x81, 0xae, 0xf4, + 0x47, 0xfd, 0xba, 0x62, 0x17, 0xdc, 0x29, 0xd7, 0xb7, 0x40, 0x3e, 0x80, 0x04, 0x09, 0xfb, 0x96, + 0xad, 0x85, 0xff, 0x85, 0x42, 0x40, 0xea, 0x36, 0x28, 0x84, 0x28, 0x22, 0x98, 0x31, 0x4c, 0x03, + 0xa6, 0xe5, 0x2a, 0xb9, 0x27, 0xc5, 0x34, 0xb3, 0x77, 0x7a, 0x2d, 0xd7, 0xac, 0xce, 0x1b, 0x62, + 0x66, 0x7c, 0xb1, 0xac, 0x36, 0xb5, 0xec, 0x0c, 0xfb, 0xcf, 0xa8, 0x5f, 0x5f, 0x23, 0x02, 0x99, + 0xec, 0x57, 0xfd, 0x03, 0x7c, 0x26, 0x35, 0xad, 0x08, 0x75, 0x50, 0xc0, 0x31, 0xec, 0xaa, 0x3a, + 0x28, 0xa4, 0x2a, 0x31, 0xba, 0xb8, 0x16, 0x1b, 0x48, 0xe8, 0x48, 0x4e, 0xfe, 0x69, 0x07, 0x45, + 0xf8, 0x12, 0x72, 0x4c, 0x83, 0xf1, 0x83, 0x65, 0x5a, 0xb6, 0x92, 0xab, 0xad, 0xd8, 0x6b, 0x4f, + 0xf0, 0x01, 0x4a, 0x58, 0xf5, 0x75, 0x16, 0x2c, 0x1e, 0xc3, 0x08, 0x12, 0xa6, 0x1a, 0x60, 0x83, + 0xc0, 0x9e, 0x43, 0x10, 0xa1, 0x8e, 0x77, 0x0e, 0x23, 0xe8, 0x71, 0x14, 0xc9, 0x53, 0xcc, 0xdb, + 0xeb, 0x04, 0xf6, 0x0e, 0x11, 0xa1, 0xad, 0x47, 0x42, 0xad, 0x80, 0x15, 0xde, 0x73, 0x18, 0xf6, + 0x9d, 0x2e, 0x26, 0x98, 0x0b, 0x03, 0xf3, 0x36, 0xe0, 0xbd, 0x36, 0xf6, 0x7f, 0x1d, 0x23, 0xea, + 0x77, 0xe0, 0x73, 0xa1, 0xb8, 0x42, 0x8e, 0x47, 0x19, 0x77, 0x42, 0x14, 0x39, 0x6e, 0xc2, 0x51, + 0x7a, 0x4b, 0xeb, 0x63, 0xe9, 0x15, 0x6a, 0x51, 0xc6, 0x8f, 0x51, 0x64, 0x25, 0x1c, 0xa9, 0xbf, + 0x81, 0x2f, 0xc6, 0x05, 0x2f, 0x51, 0x84, 0xcf, 0x12, 0x99, 0x84, 0x3a, 0xcd, 0xdd, 0xdd, 0xc6, + 0x8f, 0xf2, 0xbc, 0x2c, 0x6d, 0x38, 0xd0, 0x8b, 0x6d, 0xec, 0x9f, 0x08, 0xc5, 0x38, 0xf5, 0xe7, + 0x9f, 0x04, 0x6f, 0x17, 0xd9, 0x0c, 0x2a, 0xb3, 0xd4, 0xdf, 0xc1, 0xd6, 0xf3, 0x82, 0x0c, 0x79, + 0x61, 0x73, 0xf7, 0x87, 0x8b, 0x86, 0xb6, 0x20, 0x4a, 0x96, 0x86, 0x03, 0x7d, 0x73, 0xa6, 0x64, + 0x7b, 0xa2, 0xb0, 0x37, 0xd9, 0x5c, 0x7c, 0xef, 0xab, 0x87, 0x1b, 0x5d, 0x79, 0xfe, 0x28, 0x7b, + 0xf2, 0xeb, 0x22, 0xed, 0xb4, 0x5a, 0x2f, 0x86, 0x65, 0xe5, 0x6e, 0x58, 0x56, 0xde, 0x0e, 0xcb, + 0xca, 0xdf, 0xf7, 0xe5, 0xcc, 0xdd, 0x7d, 0x39, 0xf3, 0xe6, 0xbe, 0x9c, 0x39, 0xfd, 0xc6, 0xc7, + 0xfc, 0x3c, 0x76, 0x0d, 0x8f, 0x92, 0xf4, 0x0b, 0x62, 0x7e, 0x5c, 0x85, 0x27, 0x21, 0x62, 0xee, + 0xa2, 0x78, 0x8b, 0xbf, 0xff, 0x10, 0x00, 0x00, 0xff, 0xff, 0x24, 0xaa, 0xf2, 0xc8, 0xbf, 0x04, 0x00, 0x00, } diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 946f122e8880..b3422f4869a8 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -16,7 +16,7 @@ import ( authapi "cosmossdk.io/api/cosmos/auth/v1beta1" ) -type MessageEncoder func(protoreflect.Message) (protoreflect.Value, error) +type MessageEncoder func(protoreflect.Message, io.Writer) error type FieldEncoder func(protoreflect.Value, io.Writer) error type AminoJSON struct { @@ -34,16 +34,19 @@ func NewAminoJSON() AminoJSON { }, }, messageEncoders: map[string]MessageEncoder{ - "key_field": func(message protoreflect.Message) (protoreflect.Value, error) { - keyField := message.Descriptor().Fields().ByName("key") + "key_field": func(msg protoreflect.Message, w io.Writer) error { + keyField := msg.Descriptor().Fields().ByName("key") if keyField == nil { - return protoreflect.Value{}, errors.New( - `message encoder for key_field: no field named "key" found`) + return errors.New(`message encoder for key_field: no field named "key" found`) } - bz := message.Get(keyField).Bytes() - return protoreflect.ValueOfBytes(bz), nil + bz := msg.Get(keyField).Bytes() + _, err := fmt.Fprintf(w, `"%s"`, base64.StdEncoding.EncodeToString(bz)) + if err != nil { + return err + } + return nil }, - //"module_account": moduleAccountEncoder, + "module_account": moduleAccountEncoder, }, encodings: map[string]FieldEncoder{ "empty_string": func(v protoreflect.Value, writer io.Writer) error { @@ -117,7 +120,7 @@ func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { } // TODO -// merge with marshalMessage +// merge with marshalMessage or if embed ends up not being needed delete it. func (aj AminoJSON) marshalEmbedded(msg protoreflect.Message, writer io.Writer) (bool, error) { fields := msg.Descriptor().Fields() first := true @@ -177,11 +180,8 @@ func (aj AminoJSON) marshalEmbedded(msg protoreflect.Message, writer io.Writer) func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) error { if encoder := aj.getMessageEncoder(msg); encoder != nil { - encoded, err := encoder(msg) - if err != nil { - return err - } - return aj.marshal(encoded, writer) + err := encoder(msg, writer) + return err } named := false @@ -401,19 +401,34 @@ type moduleAccountPretty struct { Permissions []string `json:"permissions"` } -func moduleAccountEncoder(m protoreflect.Message) (protoreflect.Value, error) { - ma := m.Interface().(*authapi.ModuleAccount) - ma2 := moduleAccountPretty{ - Address: ma.BaseAccount.Address, - PubKey: "", - AccountNumber: ma.BaseAccount.AccountNumber, - Sequence: ma.BaseAccount.Sequence, - Name: ma.Name, - Permissions: ma.Permissions, +type typeWrapper struct { + Type string `json:"type"` + Value any `json:"value"` +} + +// moduleAccountEncoder replicates the behavior in +// https://github.com/cosmos/cosmos-sdk/blob/41a3dfeced2953beba3a7d11ec798d17ee19f506/x/auth/types/account.go#L230-L2549 +func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { + ma := msg.Interface().(*authapi.ModuleAccount) + pretty := moduleAccountPretty{ + PubKey: "", + Name: ma.Name, + Permissions: ma.Permissions, + } + if ma.BaseAccount != nil { + pretty.Address = ma.BaseAccount.Address + pretty.AccountNumber = ma.BaseAccount.AccountNumber + pretty.Sequence = ma.BaseAccount.Sequence + } else { + pretty.Address = "" + pretty.AccountNumber = 0 + pretty.Sequence = 0 } - bz, err := json.Marshal(ma2) + + bz, err := json.Marshal(typeWrapper{Type: "cosmos-sdk/ModuleAccount", Value: pretty}) if err != nil { - return protoreflect.Value{}, err + return err } - return protoreflect.ValueOfString(string(bz)), nil + _, err = w.Write(bz) + return err } From 9671f179b40baacd8c2ca4f21e20aac357be001b Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 6 Feb 2023 20:41:55 -0600 Subject: [PATCH 045/122] auth finished --- tests/integration/aminojson/aminojson_test.go | 23 +++- x/tx/aminojson/json_marshal.go | 109 ++++++++++++------ 2 files changed, 93 insertions(+), 39 deletions(-) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index de406faf307f..f6ad8f430de8 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -215,7 +215,7 @@ func newGogoMessage(t reflect.Type) gogoproto.Message { } } -func postFixPulsarMessage(msg proto.Message) proto.Message { +func postFixPulsarMessage(msg proto.Message) { switch m := msg.(type) { case *authapi.ModuleAccount: if m.BaseAccount == nil { @@ -224,9 +224,16 @@ func postFixPulsarMessage(msg proto.Message) proto.Message { _, _, bz := testdata.KeyTestPubAddr() text, _ := bech32.ConvertAndEncode("cosmos", bz) m.BaseAccount.Address = text - return m - default: - return msg + case *authapi.MsgUpdateParams: + // params is required in the gogo message + if m.Params == nil { + m.Params = &authapi.Params{} + } + case *authzapi.MsgGrant: + // grant is required in the gogo message + if m.Grant == nil { + m.Grant = &authzapi.Grant{} + } } } @@ -340,7 +347,7 @@ func TestAminoJSON_AllTypes(t *testing.T) { } }() msg := gen.Draw(t, "msg") - msg = postFixPulsarMessage(msg) + postFixPulsarMessage(msg) //goMsg := reflect.New(reflect.TypeOf(tt.gogo).Elem()).Interface().(gogoproto.Message) goMsg := newGogoMessage(reflect.TypeOf(tt.gogo).Elem()) ti.deepClone(msg, goMsg) @@ -358,6 +365,8 @@ func TestAminoJSON_LegacyParity(t *testing.T) { cdc.RegisterConcrete(disttypes.MsgWithdrawDelegatorReward{}, "cosmos-sdk/MsgWithdrawDelegationReward", nil) cdc.RegisterConcrete(&ed25519.PubKey{}, cryptotypes.PubKeyName, nil) cdc.RegisterConcrete(&authtypes.ModuleAccount{}, "cosmos-sdk/ModuleAccount", nil) + cdc.RegisterConcrete(&authtypes.MsgUpdateParams{}, "cosmos-sdk/x/auth/MsgUpdateParams", nil) + aj := aminojson.NewAminoJSON() addr1 := types.AccAddress([]byte("addr1")) @@ -370,6 +379,10 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &authtypes.ModuleAccount{BaseAccount: authtypes.NewBaseAccountWithAddress(addr1)}, pulsar: &authapi.ModuleAccount{BaseAccount: &authapi.BaseAccount{Address: addr1.String()}}, }, + "auth/msg_update_params": { + gogo: &authtypes.MsgUpdateParams{Params: authtypes.Params{TxSigLimit: 10}}, + pulsar: &authapi.MsgUpdateParams{Params: &authapi.Params{TxSigLimit: 10}}, + }, "distribution/delegator_starting_info": { gogo: &disttypes.DelegatorStartingInfo{}, pulsar: &distapi.DelegatorStartingInfo{}, diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index b3422f4869a8..68a665f48b0e 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -72,30 +72,66 @@ func (aj AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) { func (aj AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} - vmsg := protoreflect.ValueOfMessage(message.ProtoReflect()) - err := aj.marshal(vmsg, buf) + //vmsg := protoreflect.ValueOfMessage(message.ProtoReflect()) + err := aj.beginMarshal(message.ProtoReflect(), buf) return buf.Bytes(), err } // TODO // move into marshalMessage -func (aj AminoJSON) beginMarshal(msg protoreflect.Value, writer io.Writer) error { - _, err := writer.Write([]byte("{")) - if err != nil { +func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) error { + if encoder := aj.getMessageEncoder(msg); encoder != nil { + err := encoder(msg, writer) return err } - err = aj.marshal(msg, writer) + + named := false + + opts := msg.Descriptor().Options() + if proto.HasExtension(opts, amino.E_Name) { + name := proto.GetExtension(opts, amino.E_Name) + _, err := writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, name))) + if err != nil { + return err + } + named = true + } + + //if encoder := aj.getMessageEncoder(msg); encoder != nil { + // err := encoder(msg, writer) + // if err != nil { + // return err + // } + //} else { + err := aj.marshal(protoreflect.ValueOfMessage(msg), writer) if err != nil { return err } - _, err = writer.Write([]byte("}")) - return err + //} + + if named { + _, err := writer.Write([]byte("}")) + if err != nil { + return err + } + } + + return nil } func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { switch val := value.Interface().(type) { case protoreflect.Message: - return aj.marshalMessage(val, writer) + _, err := writer.Write([]byte("{")) + if err != nil { + return err + } + err = aj.marshalMessage(val, writer) + if err != nil { + return err + } + _, err = writer.Write([]byte("}")) + return err case protoreflect.Map: return errors.New("maps are not supported") @@ -114,6 +150,9 @@ func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { _, err := fmt.Fprintf(writer, `"%s"`, base64.StdEncoding.EncodeToString(val)) return err + // TODO timestamp + // this is what is breaking MsgGrant + default: return errors.Errorf("unknown type %T", val) } @@ -184,22 +223,23 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e return err } - named := false + //named := false - opts := msg.Descriptor().Options() - if proto.HasExtension(opts, amino.E_Name) { - name := proto.GetExtension(opts, amino.E_Name) - _, err := writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, name))) - if err != nil { - return err - } - named = true - } + //opts := msg.Descriptor().Options() + //if proto.HasExtension(opts, amino.E_Name) { + // name := proto.GetExtension(opts, amino.E_Name) + // _, err := writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, name))) + // if err != nil { + // return err + // } + // named = true + //} - _, err := writer.Write([]byte("{")) - if err != nil { - return err - } + //_, err := writer.Write([]byte("{")) + //if err != nil { + // return err + //} + var err error fields := msg.Descriptor().Fields() first := true @@ -263,17 +303,17 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e first = false } - _, err = writer.Write([]byte("}")) - if err != nil { - return err - } - - if named { - _, err = writer.Write([]byte("}")) - if err != nil { - return err - } - } + //_, err = writer.Write([]byte("}")) + //if err != nil { + // return err + //} + // + //if named { + // _, err = writer.Write([]byte("}")) + // if err != nil { + // return err + // } + //} return nil } @@ -426,6 +466,7 @@ func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { } bz, err := json.Marshal(typeWrapper{Type: "cosmos-sdk/ModuleAccount", Value: pretty}) + //bz, err := json.Marshal(pretty) if err != nil { return err } From 149816e5a6ef8819916526e4aee0a4e8d58029cd Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 7 Feb 2023 13:54:45 -0600 Subject: [PATCH 046/122] amino wip --- tests/integration/aminojson/aminojson_test.go | 84 ++++++++++-- x/tx/aminojson/json_marshal.go | 122 +++++++++++------- 2 files changed, 150 insertions(+), 56 deletions(-) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index f6ad8f430de8..ac4bf58e5513 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -1,10 +1,12 @@ package aminojson import ( + "bytes" "fmt" "reflect" "strings" "testing" + "time" gogoproto "github.com/cosmos/gogoproto/proto" "github.com/stretchr/testify/require" @@ -12,6 +14,7 @@ import ( "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/types/known/anypb" + "google.golang.org/protobuf/types/known/timestamppb" "gotest.tools/v3/assert" "pgregory.net/rapid" @@ -58,6 +61,7 @@ var msgTypes = []typeUnderTest{ {gogo: &authtypes.MsgUpdateParams{}, pulsar: &authapi.MsgUpdateParams{}}, // authz + {gogo: &authztypes.Grant{}, pulsar: &authzapi.Grant{}}, {gogo: &authztypes.MsgGrant{}, pulsar: &authzapi.MsgGrant{}}, {gogo: &authztypes.MsgRevoke{}, pulsar: &authzapi.MsgRevoke{}}, {gogo: &authztypes.MsgExec{}, pulsar: &authzapi.MsgExec{}}, @@ -122,8 +126,14 @@ func newTypeIndex(types []typeUnderTest) typeIndex { } func (ti typeIndex) reflectedDeepClone(pulsar reflect.Value, gogo reflect.Value) { - for n, pStructField := range ti.pulsarFields[fullyQualifiedTypeName(pulsar.Type())] { - gStructField := ti.gogoFields[fullyQualifiedTypeName(gogo.Type())][n] + pulsarTypeName := fullyQualifiedTypeName(pulsar.Type()) + gogoTypeName := fullyQualifiedTypeName(gogo.Type()) + structFields, found := ti.pulsarFields[pulsarTypeName] + if !found { + panic(fmt.Sprintf("no pulsar fields for type %s", pulsarTypeName)) + } + for n, pStructField := range structFields { + gStructField := ti.gogoFields[gogoTypeName][n] pulsarField := pulsar.FieldByName(pStructField.Name) // todo init a new "gogo" since its nil gogoField := gogo.FieldByName(gStructField.Name) @@ -137,8 +147,14 @@ func (ti typeIndex) reflectedDeepClone(pulsar reflect.Value, gogo reflect.Value) } func (ti typeIndex) deepClone(pulsar proto.Message, gogo gogoproto.Message) { - for n, pStructField := range ti.pulsarFields[fqTypeName(pulsar)] { - gStructField := ti.gogoFields[fqTypeName(gogo)][n] + pulsarTypeName := fqTypeName(pulsar) + gogoTypeName := fqTypeName(gogo) + structFields, found := ti.pulsarFields[pulsarTypeName] + if !found { + panic(fmt.Sprintf("no pulsar fields for type %s", pulsarTypeName)) + } + for n, pStructField := range structFields { + gStructField := ti.gogoFields[gogoTypeName][n] pulsarField := reflect.ValueOf(pulsar).Elem().FieldByName(pStructField.Name) gogoField := reflect.ValueOf(gogo).Elem().FieldByName(gStructField.Name) //fmt.Printf("copying %s to %s\n", pStructField.Name, gStructField.Name) @@ -163,11 +179,16 @@ func (ti typeIndex) setField(pulsar reflect.Value, gogo reflect.Value) { case reflect.Struct: switch val := pulsar.Interface().(type) { case anypb.Any: + codectypes.NewAnyWithValue(val.Value) a := &codectypes.Any{ TypeUrl: val.TypeUrl, Value: val.Value, } gogo.Set(reflect.ValueOf(a)) + case timestamppb.Timestamp: + // will panic if field is not of type *time.Time, hopefully it is. + t := time.Unix(val.Seconds, int64(val.Nanos)) + gogo.Set(reflect.ValueOf(&t)) default: if gogo.Type().Kind() == reflect.Ptr { gogoType := gogo.Type().Elem() @@ -184,13 +205,13 @@ func (ti typeIndex) setField(pulsar reflect.Value, gogo reflect.Value) { case reflect.Slice: // if slices are different types then we need to create a new slice if pulsar.Type().Elem() != gogo.Type().Elem() { - gogoSlice := reflect.MakeSlice(gogo.Type(), pulsar.Len(), pulsar.Len()) + gogoSlice := reflect.MakeSlice(gogo.Type(), 0, 0) gogoType := gogoSlice.Type().Elem() for i := 0; i < pulsar.Len(); i++ { p := pulsar.Index(i) g := reflect.New(gogoType).Elem() ti.setField(p, g) - reflect.Append(gogoSlice, g) + gogoSlice = reflect.Append(gogoSlice, g) } gogo.Set(gogoSlice) return @@ -327,7 +348,9 @@ func TestAminoJSON_AllTypes(t *testing.T) { desc := tt.pulsar.ProtoReflect().Descriptor() opts := desc.Options() if !proto.HasExtension(opts, amino.E_Name) { - panic(fmt.Sprintf("missing name extension for %s", desc.FullName())) + fmt.Printf("WARN: missing name extension for %s", desc.FullName()) + //panic(fmt.Sprintf("missing name extension for %s", desc.FullName())) + continue } name := proto.GetExtension(opts, amino.E_Name).(string) cdc.RegisterConcrete(tt.gogo, name, nil) @@ -354,6 +377,9 @@ func TestAminoJSON_AllTypes(t *testing.T) { gogobz, err := cdc.MarshalJSON(goMsg) require.NoError(t, err, "failed to marshal gogo message") pulsarbz, err := aj.MarshalAmino(msg) + if !bytes.Equal(gogobz, pulsarbz) { + require.Fail(t, fmt.Sprintf("marshalled messages not equal, are the unmarshalled messages semantically equivalent?\nmarshalled gogo: %s != %s\nunmarshalled gogo: %v vs %v", string(gogobz), string(pulsarbz), goMsg, msg)) + } require.Equal(t, string(gogobz), string(pulsarbz)) }) } @@ -366,9 +392,12 @@ func TestAminoJSON_LegacyParity(t *testing.T) { cdc.RegisterConcrete(&ed25519.PubKey{}, cryptotypes.PubKeyName, nil) cdc.RegisterConcrete(&authtypes.ModuleAccount{}, "cosmos-sdk/ModuleAccount", nil) cdc.RegisterConcrete(&authtypes.MsgUpdateParams{}, "cosmos-sdk/x/auth/MsgUpdateParams", nil) + cdc.RegisterConcrete(&authztypes.MsgGrant{}, "cosmos-sdk/MsgGrant", nil) + cdc.RegisterConcrete(&authztypes.MsgExec{}, "cosmos-sdk/MsgExec", nil) aj := aminojson.NewAminoJSON() addr1 := types.AccAddress([]byte("addr1")) + now := time.Now() cases := map[string]struct { gogo gogoproto.Message @@ -379,10 +408,22 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &authtypes.ModuleAccount{BaseAccount: authtypes.NewBaseAccountWithAddress(addr1)}, pulsar: &authapi.ModuleAccount{BaseAccount: &authapi.BaseAccount{Address: addr1.String()}}, }, - "auth/msg_update_params": { + "authz/msg_grant": { + gogo: &authztypes.MsgGrant{Grant: authztypes.Grant{Expiration: &now}}, + pulsar: &authzapi.MsgGrant{Grant: &authzapi.Grant{Expiration: timestamppb.New(now)}}, + }, + "authz/msg_grant/empty": { + gogo: &authztypes.MsgGrant{}, + pulsar: &authzapi.MsgGrant{Grant: &authzapi.Grant{}}, + }, + "authz/msg_update_params": { gogo: &authtypes.MsgUpdateParams{Params: authtypes.Params{TxSigLimit: 10}}, pulsar: &authapi.MsgUpdateParams{Params: &authapi.Params{TxSigLimit: 10}}, }, + "authz/msg_exec": { + gogo: &authztypes.MsgExec{Msgs: []*codectypes.Any{}}, + pulsar: &authzapi.MsgExec{Msgs: []*anypb.Any{}}, + }, "distribution/delegator_starting_info": { gogo: &disttypes.DelegatorStartingInfo{}, pulsar: &distapi.DelegatorStartingInfo{}, @@ -421,6 +462,33 @@ func TestAminoJSON_LegacyParity(t *testing.T) { } } +func TestScratch(t *testing.T) { + ti := newTypeIndex(msgTypes) + cdc := goamino.NewCodec() + aj := aminojson.NewAminoJSON() + + msg := &authzapi.MsgExec{Msgs: []*anypb.Any{{TypeUrl: "", Value: nil}}} + cdc.RegisterConcrete(&authztypes.MsgExec{}, "cosmos-sdk/MsgExec", nil) + goMsg := &authztypes.MsgExec{} + + ti.deepClone(msg, goMsg) + gobz, err := cdc.MarshalJSON(goMsg) + require.NoError(t, err) + bz, err := aj.MarshalAmino(msg) + require.NoError(t, err) + + require.Equal(t, string(gobz), string(bz), "gogo: %s vs pulsar: %s", string(gobz), string(bz)) + + fmt.Printf("gogo: %v\npulsar: %v\n", goMsg, msg) +} + +func TestAny(t *testing.T) { + cdc := goamino.NewCodec() + a := &codectypes.Any{TypeUrl: "foo", Value: []byte("bar")} + _, err := cdc.MarshalJSON(a) + require.NoError(t, err) +} + func TestModuleAccount(t *testing.T) { gen := rapidproto.MessageGenerator(&authapi.ModuleAccount{}, rapidproto.GeneratorOptions{}) rapid.Check(t, func(t *rapid.T) { diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 68a665f48b0e..f901d8e32750 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -6,6 +6,7 @@ import ( "encoding/json" "fmt" "io" + "time" cosmos_proto "github.com/cosmos/cosmos-proto" "github.com/pkg/errors" @@ -70,6 +71,10 @@ func (aj AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) { aj.messageEncoders[name] = encoder } +func (aj AminoJSON) DefineFieldEncoding(name string, encoder FieldEncoder) { + aj.encodings[name] = encoder +} + func (aj AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} //vmsg := protoreflect.ValueOfMessage(message.ProtoReflect()) @@ -97,17 +102,10 @@ func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) err named = true } - //if encoder := aj.getMessageEncoder(msg); encoder != nil { - // err := encoder(msg, writer) - // if err != nil { - // return err - // } - //} else { err := aj.marshal(protoreflect.ValueOfMessage(msg), writer) if err != nil { return err } - //} if named { _, err := writer.Write([]byte("}")) @@ -120,17 +118,12 @@ func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) err } func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { + // TODO timestamp + // this is what is breaking MsgGrant + switch val := value.Interface().(type) { case protoreflect.Message: - _, err := writer.Write([]byte("{")) - if err != nil { - return err - } - err = aj.marshalMessage(val, writer) - if err != nil { - return err - } - _, err = writer.Write([]byte("}")) + err := aj.marshalMessage(val, writer) return err case protoreflect.Map: @@ -150,9 +143,6 @@ func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { _, err := fmt.Fprintf(writer, `"%s"`, base64.StdEncoding.EncodeToString(val)) return err - // TODO timestamp - // this is what is breaking MsgGrant - default: return errors.Errorf("unknown type %T", val) } @@ -218,28 +208,26 @@ func (aj AminoJSON) marshalEmbedded(msg protoreflect.Message, writer io.Writer) } func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) error { + if msg == nil { + return errors.New("nil message") + } + if encoder := aj.getMessageEncoder(msg); encoder != nil { err := encoder(msg, writer) return err } - //named := false - - //opts := msg.Descriptor().Options() - //if proto.HasExtension(opts, amino.E_Name) { - // name := proto.GetExtension(opts, amino.E_Name) - // _, err := writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, name))) - // if err != nil { - // return err - // } - // named = true - //} + switch msg.Descriptor().FullName() { + // replicate https://github.com/tendermint/go-amino/blob/8e779b71f40d175cd1302d3cd41a75b005225a7a/json-encode.go#L45-L51 + case timestampFullName: + err := marshalTimestamp(msg, writer) + return err + } - //_, err := writer.Write([]byte("{")) - //if err != nil { - // return err - //} - var err error + _, err := writer.Write([]byte("{")) + if err != nil { + return err + } fields := msg.Descriptor().Fields() first := true @@ -255,6 +243,12 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e zv, found := aj.getZeroValue(f) if found { v = zv + } else if f.Cardinality() == protoreflect.Repeated { + // TODO + // not sure yet + fmt.Printf("WARN: not supported: dont_omit_empty=true on empty repeated field: %s\n", name) + } else if f.Kind() == protoreflect.MessageKind && !v.Message().IsValid() { + return errors.Errorf("not supported: dont_omit_empty=true on invalid (nil?) message field: %s", name) } } } @@ -303,19 +297,8 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e first = false } - //_, err = writer.Write([]byte("}")) - //if err != nil { - // return err - //} - // - //if named { - // _, err = writer.Write([]byte("}")) - // if err != nil { - // return err - // } - //} - - return nil + _, err = writer.Write([]byte("}")) + return err } func jsonMarshal(w io.Writer, v interface{}) error { @@ -473,3 +456,46 @@ func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { _, err = w.Write(bz) return err } + +const ( + timestampFullName protoreflect.FullName = "google.protobuf.Timestamp" +) + +const ( + secondsName protoreflect.Name = "seconds" + nanosName protoreflect.Name = "nanos" +) + +func marshalTimestamp(message protoreflect.Message, writer io.Writer) error { + // PROTO3 SPEC: + // Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. + // Offsets other than "Z" are also accepted. + + fields := message.Descriptor().Fields() + secondsField := fields.ByName(secondsName) + if secondsField == nil { + return fmt.Errorf("expected seconds field") + } + + nanosField := fields.ByName(nanosName) + if nanosField == nil { + return fmt.Errorf("expected nanos field") + } + + seconds := message.Get(secondsField).Int() + nanos := message.Get(nanosField).Int() + if nanos < 0 { + return fmt.Errorf("nanos must be non-negative on timestamp %v", message) + } + + t := time.Unix(seconds, nanos).UTC() + var str string + if nanos == 0 { + str = t.Format(time.RFC3339) + } else { + str = t.Format(time.RFC3339Nano) + } + + _, err := fmt.Fprintf(writer, `"%s"`, str) + return err +} From 21043824a08583ef3e2597aa8d4dfb30dfa7f401 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 7 Feb 2023 17:04:38 -0600 Subject: [PATCH 047/122] gut cloning, in favor of proto round tripping --- tests/integration/aminojson/aminojson_test.go | 399 +++--------------- tests/integration/aminojson/clone.go | 313 ++++++++++++++ tests/integration/aminojson/clone_test.go | 85 ++++ 3 files changed, 460 insertions(+), 337 deletions(-) create mode 100644 tests/integration/aminojson/clone.go create mode 100644 tests/integration/aminojson/clone_test.go diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index ac4bf58e5513..228f83e592f8 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -1,10 +1,7 @@ package aminojson import ( - "bytes" "fmt" - "reflect" - "strings" "testing" "time" @@ -18,7 +15,6 @@ import ( "gotest.tools/v3/assert" "pgregory.net/rapid" - "cosmossdk.io/api/amino" authapi "cosmossdk.io/api/cosmos/auth/v1beta1" authzapi "cosmossdk.io/api/cosmos/authz/v1beta1" "cosmossdk.io/api/cosmos/crypto/ed25519" @@ -27,340 +23,63 @@ import ( "cosmossdk.io/x/tx/rapidproto" codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" - "github.com/cosmos/cosmos-sdk/testutil/testdata" "github.com/cosmos/cosmos-sdk/types" - "github.com/cosmos/cosmos-sdk/types/bech32" + "github.com/cosmos/cosmos-sdk/types/module/testutil" + "github.com/cosmos/cosmos-sdk/x/auth" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" authztypes "github.com/cosmos/cosmos-sdk/x/authz" disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" ) -type typeUnderTest struct { - gogo gogoproto.Message - pulsar proto.Message +type equivalentType struct { + pulsar proto.Message + gogo gogoproto.Message + anyTypeURLs []string } -type typeIndex struct { - gogoFields map[string]map[string]reflect.StructField - pulsarFields map[string]map[string]reflect.StructField - pulsarToGogo map[string]string -} - -var msgTypes = []typeUnderTest{ - // auth - {gogo: &authtypes.Params{}, pulsar: &authapi.Params{}}, - {gogo: &authtypes.BaseAccount{}, pulsar: &authapi.BaseAccount{}}, - - // omitted from the test because of the custom MarshalJSON. It is tested separately. Pulsar types - // may be generated with data which is invalid for the gogo type, but valid for the pulsar type. - {gogo: &authtypes.ModuleAccount{}, pulsar: &authapi.ModuleAccount{}}, - - // missing name extension, do we need it? - // {gogo: &authtypes.ModuleCredential{}, pulsar: &authapi.ModuleCredential{}}, - - {gogo: &authtypes.MsgUpdateParams{}, pulsar: &authapi.MsgUpdateParams{}}, - - // authz - {gogo: &authztypes.Grant{}, pulsar: &authzapi.Grant{}}, - {gogo: &authztypes.MsgGrant{}, pulsar: &authzapi.MsgGrant{}}, - {gogo: &authztypes.MsgRevoke{}, pulsar: &authzapi.MsgRevoke{}}, - {gogo: &authztypes.MsgExec{}, pulsar: &authzapi.MsgExec{}}, - {gogo: &authztypes.GenericAuthorization{}, pulsar: &authzapi.GenericAuthorization{}}, -} - -func fqTypeName(msg any) string { - return fullyQualifiedTypeName(reflect.TypeOf(msg).Elem()) -} - -func fullyQualifiedTypeName(typ reflect.Type) string { - pkgType := typ - if typ.Kind() == reflect.Pointer || typ.Kind() == reflect.Slice || typ.Kind() == reflect.Map || typ.Kind() == reflect.Array { - pkgType = typ.Elem() - } - pkgPath := pkgType.PkgPath() - if pkgPath == "" { - return fmt.Sprintf("%v", typ) - } - - return fmt.Sprintf("%s/%v", pkgPath, typ) -} - -func newTypeIndex(types []typeUnderTest) typeIndex { - ti := typeIndex{ - gogoFields: make(map[string]map[string]reflect.StructField), - pulsarFields: make(map[string]map[string]reflect.StructField), - pulsarToGogo: make(map[string]string), - } - for _, t := range types { - gogoType := reflect.TypeOf(t.gogo).Elem() - pulsarType := reflect.TypeOf(t.pulsar).Elem() - - ti.gogoFields[fqTypeName(t.gogo)] = make(map[string]reflect.StructField) - ti.pulsarFields[fqTypeName(t.pulsar)] = make(map[string]reflect.StructField) - ti.pulsarToGogo[fqTypeName(t.pulsar)] = fqTypeName(t.gogo) - - for i := 0; i < gogoType.NumField(); i++ { - field := gogoType.Field(i) - tag := field.Tag.Get("protobuf") - if tag == "" { - continue - } - n := strings.Split(tag, ",")[3] - name := strings.Split(n, "=")[1] - - ti.gogoFields[fqTypeName(t.gogo)][name] = gogoType.Field(i) - } - for i := 0; i < pulsarType.NumField(); i++ { - field := pulsarType.Field(i) - tag := field.Tag.Get("protobuf") - if tag == "" { - continue - } - n := strings.Split(tag, ",")[3] - name := strings.Split(n, "=")[1] - ti.pulsarFields[fqTypeName(t.pulsar)][name] = pulsarType.Field(i) - } - } - - return ti -} - -func (ti typeIndex) reflectedDeepClone(pulsar reflect.Value, gogo reflect.Value) { - pulsarTypeName := fullyQualifiedTypeName(pulsar.Type()) - gogoTypeName := fullyQualifiedTypeName(gogo.Type()) - structFields, found := ti.pulsarFields[pulsarTypeName] - if !found { - panic(fmt.Sprintf("no pulsar fields for type %s", pulsarTypeName)) - } - for n, pStructField := range structFields { - gStructField := ti.gogoFields[gogoTypeName][n] - pulsarField := pulsar.FieldByName(pStructField.Name) - // todo init a new "gogo" since its nil - gogoField := gogo.FieldByName(gStructField.Name) - if !gogoField.IsValid() { - gogoField = reflect.New(gStructField.Type) - gogo.FieldByName(gStructField.Name).Set(gogoField) - } - //fmt.Printf("copying %s to %s\n", pStructField.Name, gStructField.Name) - ti.setField(pulsarField, gogoField) - } -} - -func (ti typeIndex) deepClone(pulsar proto.Message, gogo gogoproto.Message) { - pulsarTypeName := fqTypeName(pulsar) - gogoTypeName := fqTypeName(gogo) - structFields, found := ti.pulsarFields[pulsarTypeName] - if !found { - panic(fmt.Sprintf("no pulsar fields for type %s", pulsarTypeName)) - } - for n, pStructField := range structFields { - gStructField := ti.gogoFields[gogoTypeName][n] - pulsarField := reflect.ValueOf(pulsar).Elem().FieldByName(pStructField.Name) - gogoField := reflect.ValueOf(gogo).Elem().FieldByName(gStructField.Name) - //fmt.Printf("copying %s to %s\n", pStructField.Name, gStructField.Name) - ti.setField(pulsarField, gogoField) - } -} - -func (ti typeIndex) setField(pulsar reflect.Value, gogo reflect.Value) { - switch pulsar.Type().Kind() { - case reflect.Ptr: - if !gogo.IsValid() { - fmt.Printf("gogo field is invalid; gogo: %v\n", gogo) - } - if gogo.Type().Kind() != reflect.Ptr && gogo.Type().Kind() != reflect.Struct { - panic(fmt.Sprintf("gogo field is not a pointer; pulsar: %s, gogo: %s", pulsar.Type(), gogo.Type())) - } - if pulsar.IsNil() { - return - } - ti.setField(pulsar.Elem(), gogo) - //panic(fmt.Sprintf("pointer not supported: %s", pulsar.Type())) - case reflect.Struct: - switch val := pulsar.Interface().(type) { - case anypb.Any: - codectypes.NewAnyWithValue(val.Value) - a := &codectypes.Any{ - TypeUrl: val.TypeUrl, - Value: val.Value, - } - gogo.Set(reflect.ValueOf(a)) - case timestamppb.Timestamp: - // will panic if field is not of type *time.Time, hopefully it is. - t := time.Unix(val.Seconds, int64(val.Nanos)) - gogo.Set(reflect.ValueOf(&t)) - default: - if gogo.Type().Kind() == reflect.Ptr { - gogoType := gogo.Type().Elem() - newGogo := reflect.New(gogoType) - gogo.Set(newGogo) - ti.reflectedDeepClone(pulsar, gogo.Elem()) - } else { - gogoType := gogo.Type() - newGogo := reflect.New(gogoType).Elem() - gogo.Set(newGogo) - ti.reflectedDeepClone(pulsar, gogo) - } - } - case reflect.Slice: - // if slices are different types then we need to create a new slice - if pulsar.Type().Elem() != gogo.Type().Elem() { - gogoSlice := reflect.MakeSlice(gogo.Type(), 0, 0) - gogoType := gogoSlice.Type().Elem() - for i := 0; i < pulsar.Len(); i++ { - p := pulsar.Index(i) - g := reflect.New(gogoType).Elem() - ti.setField(p, g) - gogoSlice = reflect.Append(gogoSlice, g) - } - gogo.Set(gogoSlice) - return - } - // otherwise we can just copy the slice - fallthrough - default: - if pulsar.IsZero() { - return - } - gogo.Set(pulsar) - } -} - -func newGogoMessage(t reflect.Type) gogoproto.Message { - msg := reflect.New(t).Interface() - switch msg.(type) { - case *authtypes.ModuleAccount: - return &authtypes.ModuleAccount{BaseAccount: &authtypes.BaseAccount{}} - default: - return msg.(gogoproto.Message) - } -} - -func postFixPulsarMessage(msg proto.Message) { - switch m := msg.(type) { - case *authapi.ModuleAccount: - if m.BaseAccount == nil { - m.BaseAccount = &authapi.BaseAccount{} - } - _, _, bz := testdata.KeyTestPubAddr() - text, _ := bech32.ConvertAndEncode("cosmos", bz) - m.BaseAccount.Address = text - case *authapi.MsgUpdateParams: - // params is required in the gogo message - if m.Params == nil { - m.Params = &authapi.Params{} - } - case *authzapi.MsgGrant: - // grant is required in the gogo message - if m.Grant == nil { - m.Grant = &authzapi.Grant{} - } - } -} - -func Test_newGogoMessage(t *testing.T) { - ma := &authtypes.ModuleAccount{} - rma := newGogoMessage(reflect.TypeOf(ma).Elem()) - require.NotPanics(t, func() { - x := rma.(*authtypes.ModuleAccount) - require.NotNil(t, x.Address) - }) -} - -func (ti typeIndex) assertEquals(t *testing.T, pulsar proto.Message, gogo gogoproto.Message) { - for n, pStructField := range ti.pulsarFields[fqTypeName(pulsar)] { - gStructField := ti.gogoFields[fqTypeName(gogo)][n] - pulsarField := reflect.ValueOf(pulsar).Elem().FieldByName(pStructField.Name) - gogoField := reflect.ValueOf(gogo).Elem().FieldByName(gStructField.Name) - ti.assertFieldEquals(t, pulsarField, gogoField) - } -} - -func (ti typeIndex) assertFieldEquals(t *testing.T, pulsarField reflect.Value, gogoField reflect.Value) { - switch pulsarField.Type().Kind() { - case reflect.Ptr: - if gogoField.Type().Kind() != reflect.Ptr && gogoField.Type().Kind() != reflect.Struct { - panic(fmt.Sprintf("gogo field is not a pointer; pulsar: %s", pulsarField.Type())) - } - if pulsarField.IsNil() { - if gogoField.Type().Kind() == reflect.Struct { - // TODO rewrite comparison as hash concatenation to avoid this hack and potential bug - return - } else if !gogoField.IsNil() { - println("failing") - require.Fail(t, "pulsar field is nil, but gogo field is not") - } else { - // both nil, return - return - } - } - // otherwise recurse - ti.assertFieldEquals(t, pulsarField.Elem(), gogoField.Elem()) - //panic(fmt.Sprintf("pointer not supported: %s", pulsarField.Type())) - case reflect.Struct: - - default: - require.Equal(t, pulsarField.Interface(), gogoField.Interface()) - } -} - -func TestTypeIndex(t *testing.T) { - ti := newTypeIndex(msgTypes) - require.Equal(t, len(msgTypes), len(ti.gogoFields)) - require.Equal(t, len(msgTypes), len(ti.pulsarFields)) - for k, v := range ti.pulsarFields { - require.Equal(t, len(v), len(ti.gogoFields[ti.pulsarToGogo[k]]), "failed on type: %s", k) - } -} - -func TestDeepClone(t *testing.T) { - ti := newTypeIndex(msgTypes) - //tt := msgTypes[0] +func et(gogo gogoproto.Message, pulsar proto.Message, anyTypes ...proto.Message) equivalentType { var anyTypeURLs []string - for _, msgType := range msgTypes { - anyTypeURLs = append(anyTypeURLs, string(msgType.pulsar.ProtoReflect().Descriptor().FullName())) + for _, a := range anyTypes { + anyTypeURLs = append(anyTypeURLs, fmt.Sprintf("/%s", a.ProtoReflect().Descriptor().FullName())) } - - for _, tt := range msgTypes { - fmt.Printf("testing %s\n", tt.pulsar.ProtoReflect().Descriptor().FullName()) - gen := rapidproto.MessageGenerator(tt.pulsar, rapidproto.GeneratorOptions{ - AnyTypeURLs: anyTypeURLs, - Resolver: protoregistry.GlobalTypes, - }) - - rapid.Check(t, func(rt *rapid.T) { - msg := gen.Draw(rt, "msg").(proto.Message) - //fmt.Printf("msg %v\n", msg) - goMsg := reflect.New(reflect.TypeOf(tt.gogo).Elem()).Interface().(gogoproto.Message) - //fmt.Println("clone") - ti.deepClone(msg, goMsg) - //fmt.Println("assert") - //ti.assertEquals(t, msg, goMsg) - }) + return equivalentType{ + pulsar: pulsar, + gogo: gogo, + anyTypeURLs: anyTypeURLs, } } -func TestAminoJSON_AllTypes(t *testing.T) { - ti := newTypeIndex(msgTypes) - cdc := goamino.NewCodec() - aj := aminojson.NewAminoJSON() - for _, tt := range msgTypes { - desc := tt.pulsar.ProtoReflect().Descriptor() - opts := desc.Options() - if !proto.HasExtension(opts, amino.E_Name) { - fmt.Printf("WARN: missing name extension for %s", desc.FullName()) - //panic(fmt.Sprintf("missing name extension for %s", desc.FullName())) - continue +var equivTypes = []equivalentType{ + // auth + et(&authtypes.Params{}, &authapi.Params{}), + et(&authtypes.BaseAccount{}, &authapi.BaseAccount{}, &ed25519.PubKey{}), +} + +func TestAminoJSON_Equivalence(t *testing.T) { + encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}) + //aminoCdc := goamino.NewCodec() + //protoCdc := codec.NewProtoCodec(codectypes.NewInterfaceRegistry()) + //aj := aminojson.NewAminoJSON() + + //for _, tt := range equivTypes { + // desc := tt.pulsar.ProtoReflect().Descriptor() + // opts := desc.Options() + // if !proto.HasExtension(opts, amino.E_Name) { + // fmt.Printf("WARN: missing name extension for %s\n", desc.FullName()) + // continue + // } + // name := proto.GetExtension(opts, amino.E_Name).(string) + // aminoCdc.RegisterConcrete(tt.gogo, name, nil) + //} + + //params := &authapi.Params{} + + for _, tt := range equivTypes { + genOpts := rapidproto.GeneratorOptions{ + AnyTypeURLs: tt.anyTypeURLs, + Resolver: protoregistry.GlobalTypes, } - name := proto.GetExtension(opts, amino.E_Name).(string) - cdc.RegisterConcrete(tt.gogo, name, nil) - } - - // TODO - // roundtrip the message into gogoproto, check equivalanece with pulsar - - for _, tt := range msgTypes { - gen := rapidproto.MessageGenerator(tt.pulsar, rapidproto.GeneratorOptions{}) + gen := rapidproto.MessageGenerator(tt.pulsar, genOpts) fmt.Printf("testing %s\n", tt.pulsar.ProtoReflect().Descriptor().FullName()) rapid.Check(t, func(t *rapid.T) { defer func() { @@ -370,17 +89,10 @@ func TestAminoJSON_AllTypes(t *testing.T) { } }() msg := gen.Draw(t, "msg") - postFixPulsarMessage(msg) - //goMsg := reflect.New(reflect.TypeOf(tt.gogo).Elem()).Interface().(gogoproto.Message) - goMsg := newGogoMessage(reflect.TypeOf(tt.gogo).Elem()) - ti.deepClone(msg, goMsg) - gogobz, err := cdc.MarshalJSON(goMsg) - require.NoError(t, err, "failed to marshal gogo message") - pulsarbz, err := aj.MarshalAmino(msg) - if !bytes.Equal(gogobz, pulsarbz) { - require.Fail(t, fmt.Sprintf("marshalled messages not equal, are the unmarshalled messages semantically equivalent?\nmarshalled gogo: %s != %s\nunmarshalled gogo: %v vs %v", string(gogobz), string(pulsarbz), goMsg, msg)) - } - require.Equal(t, string(gogobz), string(pulsarbz)) + protoBz, err := proto.Marshal(msg) + require.NoError(t, err) + err = encCfg.Codec.Unmarshal(protoBz, tt.gogo) + require.NoError(t, err) }) } } @@ -490,10 +202,23 @@ func TestAny(t *testing.T) { } func TestModuleAccount(t *testing.T) { - gen := rapidproto.MessageGenerator(&authapi.ModuleAccount{}, rapidproto.GeneratorOptions{}) + cdc := goamino.NewCodec() + params := &authapi.Params{} + cdc.RegisterConcrete(&authtypes.ModuleAccount{}, "cosmos-sdk/ModuleAccount", nil) + cdc.RegisterConcrete(&authtypes.BaseAccount{}, "cosmos-sdk/BaseAccount", nil) + cdc.RegisterConcrete(&authtypes.Params{}, "cosmos-sdk/Params", nil) + paramsName := params.ProtoReflect().Descriptor().FullName() + + gen := rapidproto.MessageGenerator(&authapi.BaseAccount{}, rapidproto.GeneratorOptions{ + AnyTypeURLs: []string{string(paramsName)}, + Resolver: protoregistry.GlobalTypes, + }) rapid.Check(t, func(t *rapid.T) { msg := gen.Draw(t, "msg") - _, err := aminojson.NewAminoJSON().MarshalAmino(msg) + bz, err := aminojson.NewAminoJSON().MarshalAmino(msg) assert.NilError(t, err) + gogobz, err := cdc.MarshalJSON(msg) + require.NoError(t, err) + require.Equal(t, string(gogobz), string(bz), "gogo: %s vs pulsar: %s", string(gogobz), string(bz)) }) } diff --git a/tests/integration/aminojson/clone.go b/tests/integration/aminojson/clone.go new file mode 100644 index 000000000000..8e18a9f620e0 --- /dev/null +++ b/tests/integration/aminojson/clone.go @@ -0,0 +1,313 @@ +package aminojson + +import ( + "fmt" + "reflect" + "strings" + "testing" + "time" + + gogoproto "github.com/cosmos/gogoproto/proto" + "github.com/stretchr/testify/require" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoregistry" + "google.golang.org/protobuf/types/known/anypb" + "google.golang.org/protobuf/types/known/timestamppb" + "pgregory.net/rapid" + + authapi "cosmossdk.io/api/cosmos/auth/v1beta1" + authzapi "cosmossdk.io/api/cosmos/authz/v1beta1" + "cosmossdk.io/x/tx/rapidproto" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" + "github.com/cosmos/cosmos-sdk/testutil/testdata" + "github.com/cosmos/cosmos-sdk/types/bech32" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + authztypes "github.com/cosmos/cosmos-sdk/x/authz" +) + +type typeUnderTest struct { + gogo gogoproto.Message + pulsar proto.Message +} + +type typeIndex struct { + gogoFields map[string]map[string]reflect.StructField + pulsarFields map[string]map[string]reflect.StructField + pulsarToGogo map[string]string +} + +func fqTypeName(msg any) string { + return fullyQualifiedTypeName(reflect.TypeOf(msg).Elem()) +} + +func fullyQualifiedTypeName(typ reflect.Type) string { + pkgType := typ + if typ.Kind() == reflect.Pointer || typ.Kind() == reflect.Slice || typ.Kind() == reflect.Map || typ.Kind() == reflect.Array { + pkgType = typ.Elem() + } + pkgPath := pkgType.PkgPath() + if pkgPath == "" { + return fmt.Sprintf("%v", typ) + } + + return fmt.Sprintf("%s/%v", pkgPath, typ) +} + +func newTypeIndex(types []typeUnderTest) typeIndex { + ti := typeIndex{ + gogoFields: make(map[string]map[string]reflect.StructField), + pulsarFields: make(map[string]map[string]reflect.StructField), + pulsarToGogo: make(map[string]string), + } + for _, t := range types { + gogoType := reflect.TypeOf(t.gogo).Elem() + pulsarType := reflect.TypeOf(t.pulsar).Elem() + + ti.gogoFields[fqTypeName(t.gogo)] = make(map[string]reflect.StructField) + ti.pulsarFields[fqTypeName(t.pulsar)] = make(map[string]reflect.StructField) + ti.pulsarToGogo[fqTypeName(t.pulsar)] = fqTypeName(t.gogo) + + for i := 0; i < gogoType.NumField(); i++ { + field := gogoType.Field(i) + tag := field.Tag.Get("protobuf") + if tag == "" { + continue + } + n := strings.Split(tag, ",")[3] + name := strings.Split(n, "=")[1] + + ti.gogoFields[fqTypeName(t.gogo)][name] = gogoType.Field(i) + } + for i := 0; i < pulsarType.NumField(); i++ { + field := pulsarType.Field(i) + tag := field.Tag.Get("protobuf") + if tag == "" { + continue + } + n := strings.Split(tag, ",")[3] + name := strings.Split(n, "=")[1] + ti.pulsarFields[fqTypeName(t.pulsar)][name] = pulsarType.Field(i) + } + } + + return ti +} + +func (ti typeIndex) reflectedDeepClone(pulsar reflect.Value, gogo reflect.Value) { + pulsarTypeName := fullyQualifiedTypeName(pulsar.Type()) + gogoTypeName := fullyQualifiedTypeName(gogo.Type()) + structFields, found := ti.pulsarFields[pulsarTypeName] + if !found { + panic(fmt.Sprintf("no pulsar fields for type %s", pulsarTypeName)) + } + for n, pStructField := range structFields { + gStructField := ti.gogoFields[gogoTypeName][n] + pulsarField := pulsar.FieldByName(pStructField.Name) + // todo init a new "gogo" since its nil + gogoField := gogo.FieldByName(gStructField.Name) + if !gogoField.IsValid() { + gogoField = reflect.New(gStructField.Type) + gogo.FieldByName(gStructField.Name).Set(gogoField) + } + //fmt.Printf("copying %s to %s\n", pStructField.Name, gStructField.Name) + ti.setField(pulsarField, gogoField) + } +} + +func (ti typeIndex) deepClone(pulsar proto.Message, gogo gogoproto.Message) { + pulsarTypeName := fqTypeName(pulsar) + gogoTypeName := fqTypeName(gogo) + structFields, found := ti.pulsarFields[pulsarTypeName] + if !found { + panic(fmt.Sprintf("no pulsar fields for type %s", pulsarTypeName)) + } + for n, pStructField := range structFields { + gStructField := ti.gogoFields[gogoTypeName][n] + pulsarField := reflect.ValueOf(pulsar).Elem().FieldByName(pStructField.Name) + gogoField := reflect.ValueOf(gogo).Elem().FieldByName(gStructField.Name) + //fmt.Printf("copying %s to %s\n", pStructField.Name, gStructField.Name) + ti.setField(pulsarField, gogoField) + } +} + +func (ti typeIndex) setField(pulsar reflect.Value, gogo reflect.Value) { + switch pulsar.Type().Kind() { + case reflect.Ptr: + if !gogo.IsValid() { + fmt.Printf("gogo field is invalid; gogo: %v\n", gogo) + } + if gogo.Type().Kind() != reflect.Ptr && gogo.Type().Kind() != reflect.Struct { + panic(fmt.Sprintf("gogo field is not a pointer; pulsar: %s, gogo: %s", pulsar.Type(), gogo.Type())) + } + if pulsar.IsNil() { + return + } + ti.setField(pulsar.Elem(), gogo) + //panic(fmt.Sprintf("pointer not supported: %s", pulsar.Type())) + case reflect.Struct: + switch val := pulsar.Interface().(type) { + case anypb.Any: + //codectypes.NewAnyWithValue(val.Value) + a := &codectypes.Any{ + TypeUrl: val.TypeUrl, + Value: val.Value, + } + gogo.Set(reflect.ValueOf(a)) + case timestamppb.Timestamp: + // will panic if field is not of type *time.Time, hopefully it is. + t := time.Unix(val.Seconds, int64(val.Nanos)) + gogo.Set(reflect.ValueOf(&t)) + default: + if gogo.Type().Kind() == reflect.Ptr { + gogoType := gogo.Type().Elem() + newGogo := reflect.New(gogoType) + gogo.Set(newGogo) + ti.reflectedDeepClone(pulsar, gogo.Elem()) + } else { + gogoType := gogo.Type() + newGogo := reflect.New(gogoType).Elem() + gogo.Set(newGogo) + ti.reflectedDeepClone(pulsar, gogo) + } + } + case reflect.Slice: + // if slices are different types then we need to create a new slice + if pulsar.Type().Elem() != gogo.Type().Elem() { + gogoSlice := reflect.MakeSlice(gogo.Type(), 0, 0) + gogoType := gogoSlice.Type().Elem() + for i := 0; i < pulsar.Len(); i++ { + p := pulsar.Index(i) + g := reflect.New(gogoType).Elem() + ti.setField(p, g) + gogoSlice = reflect.Append(gogoSlice, g) + } + gogo.Set(gogoSlice) + return + } + // otherwise we can just copy the slice + fallthrough + default: + if pulsar.IsZero() { + return + } + gogo.Set(pulsar) + } +} + +func newGogoMessage(t reflect.Type) gogoproto.Message { + msg := reflect.New(t).Interface() + switch msg.(type) { + case *authtypes.ModuleAccount: + return &authtypes.ModuleAccount{BaseAccount: &authtypes.BaseAccount{}} + default: + return msg.(gogoproto.Message) + } +} + +func postFixPulsarMessage(msg proto.Message) { + switch m := msg.(type) { + case *authapi.ModuleAccount: + if m.BaseAccount == nil { + m.BaseAccount = &authapi.BaseAccount{} + } + _, _, bz := testdata.KeyTestPubAddr() + text, _ := bech32.ConvertAndEncode("cosmos", bz) + m.BaseAccount.Address = text + case *authapi.MsgUpdateParams: + // params is required in the gogo message + if m.Params == nil { + m.Params = &authapi.Params{} + } + case *authzapi.MsgGrant: + // grant is required in the gogo message + if m.Grant == nil { + m.Grant = &authzapi.Grant{} + } + } +} + +func TestDeepClone(t *testing.T) { + ti := newTypeIndex(msgTypes) + //tt := msgTypes[0] + var anyTypeURLs []string + for _, msgType := range msgTypes { + anyTypeURLs = append(anyTypeURLs, string(msgType.pulsar.ProtoReflect().Descriptor().FullName())) + } + + for _, tt := range msgTypes { + fmt.Printf("testing %s\n", tt.pulsar.ProtoReflect().Descriptor().FullName()) + gen := rapidproto.MessageGenerator(tt.pulsar, rapidproto.GeneratorOptions{ + AnyTypeURLs: anyTypeURLs, + Resolver: protoregistry.GlobalTypes, + }) + + rapid.Check(t, func(rt *rapid.T) { + msg := gen.Draw(rt, "msg").(proto.Message) + //fmt.Printf("msg %v\n", msg) + goMsg := reflect.New(reflect.TypeOf(tt.gogo).Elem()).Interface().(gogoproto.Message) + //fmt.Println("clone") + ti.deepClone(msg, goMsg) + //fmt.Println("assert") + //ti.assertEquals(t, msg, goMsg) + }) + } +} + +func (ti typeIndex) assertEquals(t *testing.T, pulsar proto.Message, gogo gogoproto.Message) { + for n, pStructField := range ti.pulsarFields[fqTypeName(pulsar)] { + gStructField := ti.gogoFields[fqTypeName(gogo)][n] + pulsarField := reflect.ValueOf(pulsar).Elem().FieldByName(pStructField.Name) + gogoField := reflect.ValueOf(gogo).Elem().FieldByName(gStructField.Name) + ti.assertFieldEquals(t, pulsarField, gogoField) + } +} + +func (ti typeIndex) assertFieldEquals(t *testing.T, pulsarField reflect.Value, gogoField reflect.Value) { + switch pulsarField.Type().Kind() { + case reflect.Ptr: + if gogoField.Type().Kind() != reflect.Ptr && gogoField.Type().Kind() != reflect.Struct { + panic(fmt.Sprintf("gogo field is not a pointer; pulsar: %s", pulsarField.Type())) + } + if pulsarField.IsNil() { + if gogoField.Type().Kind() == reflect.Struct { + // TODO rewrite comparison as hash concatenation to avoid this hack and potential bug + return + } else if !gogoField.IsNil() { + println("failing") + require.Fail(t, "pulsar field is nil, but gogo field is not") + } else { + // both nil, return + return + } + } + // otherwise recurse + ti.assertFieldEquals(t, pulsarField.Elem(), gogoField.Elem()) + //panic(fmt.Sprintf("pointer not supported: %s", pulsarField.Type())) + case reflect.Struct: + + default: + require.Equal(t, pulsarField.Interface(), gogoField.Interface()) + } +} + +var msgTypes = []typeUnderTest{ + // auth + {gogo: &authtypes.Params{}, pulsar: &authapi.Params{}}, + {gogo: &authtypes.BaseAccount{}, pulsar: &authapi.BaseAccount{}}, + + // omitted from the test because of the custom MarshalJSON. It is tested separately. Pulsar types + // may be generated with data which is invalid for the gogo type, but valid for the pulsar type. + {gogo: &authtypes.ModuleAccount{}, pulsar: &authapi.ModuleAccount{}}, + + // missing name extension, do we need it? + // {gogo: &authtypes.ModuleCredential{}, pulsar: &authapi.ModuleCredential{}}, + + {gogo: &authtypes.MsgUpdateParams{}, pulsar: &authapi.MsgUpdateParams{}}, + + // authz + {gogo: &authztypes.Grant{}, pulsar: &authzapi.Grant{}}, + {gogo: &authztypes.MsgGrant{}, pulsar: &authzapi.MsgGrant{}}, + {gogo: &authztypes.MsgRevoke{}, pulsar: &authzapi.MsgRevoke{}}, + {gogo: &authztypes.MsgExec{}, pulsar: &authzapi.MsgExec{}}, + {gogo: &authztypes.GenericAuthorization{}, pulsar: &authzapi.GenericAuthorization{}}, +} diff --git a/tests/integration/aminojson/clone_test.go b/tests/integration/aminojson/clone_test.go new file mode 100644 index 000000000000..77c69eea6a3a --- /dev/null +++ b/tests/integration/aminojson/clone_test.go @@ -0,0 +1,85 @@ +package aminojson + +import ( + "bytes" + "fmt" + "reflect" + "testing" + + "github.com/stretchr/testify/require" + goamino "github.com/tendermint/go-amino" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoregistry" + "pgregory.net/rapid" + + "cosmossdk.io/api/amino" + authapi "cosmossdk.io/api/cosmos/auth/v1beta1" + "cosmossdk.io/x/tx/aminojson" + "cosmossdk.io/x/tx/rapidproto" + authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" +) + +func Test_newGogoMessage(t *testing.T) { + ma := &authtypes.ModuleAccount{} + rma := newGogoMessage(reflect.TypeOf(ma).Elem()) + require.NotPanics(t, func() { + x := rma.(*authtypes.ModuleAccount) + require.NotNil(t, x.Address) + }) +} + +func TestTypeIndex(t *testing.T) { + ti := newTypeIndex(msgTypes) + require.Equal(t, len(msgTypes), len(ti.gogoFields)) + require.Equal(t, len(msgTypes), len(ti.pulsarFields)) + for k, v := range ti.pulsarFields { + require.Equal(t, len(v), len(ti.gogoFields[ti.pulsarToGogo[k]]), "failed on type: %s", k) + } +} + +func TestAminoJSON_AllTypes(t *testing.T) { + ti := newTypeIndex(msgTypes) + cdc := goamino.NewCodec() + aj := aminojson.NewAminoJSON() + for _, tt := range msgTypes { + desc := tt.pulsar.ProtoReflect().Descriptor() + opts := desc.Options() + if !proto.HasExtension(opts, amino.E_Name) { + fmt.Printf("WARN: missing name extension for %s", desc.FullName()) + continue + } + name := proto.GetExtension(opts, amino.E_Name).(string) + cdc.RegisterConcrete(tt.gogo, name, nil) + } + + params := &authapi.Params{} + genOpts := rapidproto.GeneratorOptions{ + AnyTypeURLs: []string{string(params.ProtoReflect().Descriptor().FullName())}, + Resolver: protoregistry.GlobalTypes, + } + + for _, tt := range msgTypes { + gen := rapidproto.MessageGenerator(tt.pulsar, genOpts) + fmt.Printf("testing %s\n", tt.pulsar.ProtoReflect().Descriptor().FullName()) + rapid.Check(t, func(t *rapid.T) { + defer func() { + if r := recover(); r != nil { + fmt.Printf("Panic: %+v\n", r) + t.FailNow() + } + }() + msg := gen.Draw(t, "msg") + postFixPulsarMessage(msg) + //goMsg := reflect.New(reflect.TypeOf(tt.gogo).Elem()).Interface().(gogoproto.Message) + goMsg := newGogoMessage(reflect.TypeOf(tt.gogo).Elem()) + ti.deepClone(msg, goMsg) + gogobz, err := cdc.MarshalJSON(goMsg) + require.NoError(t, err, "failed to marshal gogo message") + pulsarbz, err := aj.MarshalAmino(msg) + if !bytes.Equal(gogobz, pulsarbz) { + require.Fail(t, fmt.Sprintf("marshalled messages not equal, are the unmarshalled messages semantically equivalent?\nmarshalled gogo: %s != %s\nunmarshalled gogo: %v vs %v", string(gogobz), string(pulsarbz), goMsg, msg)) + } + require.Equal(t, string(gogobz), string(pulsarbz)) + }) + } +} From 1520f3d19fb938d3e1788f4df3a97238a9251e97 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 7 Feb 2023 19:48:08 -0600 Subject: [PATCH 048/122] found parity with any types --- tests/integration/aminojson/aminojson_test.go | 45 +++++++++----- x/tx/aminojson/any.go | 62 +++++++++++++++++++ x/tx/aminojson/json_marshal.go | 42 +++++++------ 3 files changed, 113 insertions(+), 36 deletions(-) create mode 100644 x/tx/aminojson/any.go diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 228f83e592f8..44418144ebb3 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -1,6 +1,7 @@ package aminojson import ( + "bytes" "fmt" "testing" "time" @@ -28,6 +29,8 @@ import ( "github.com/cosmos/cosmos-sdk/x/auth" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" authztypes "github.com/cosmos/cosmos-sdk/x/authz" + authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module" + "github.com/cosmos/cosmos-sdk/x/distribution" disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" ) @@ -53,13 +56,14 @@ var equivTypes = []equivalentType{ // auth et(&authtypes.Params{}, &authapi.Params{}), et(&authtypes.BaseAccount{}, &authapi.BaseAccount{}, &ed25519.PubKey{}), + et(&authtypes.ModuleAccount{}, &authapi.ModuleAccount{}, &ed25519.PubKey{}), } func TestAminoJSON_Equivalence(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}) //aminoCdc := goamino.NewCodec() //protoCdc := codec.NewProtoCodec(codectypes.NewInterfaceRegistry()) - //aj := aminojson.NewAminoJSON() + aj := aminojson.NewAminoJSON() //for _, tt := range equivTypes { // desc := tt.pulsar.ProtoReflect().Descriptor() @@ -89,28 +93,39 @@ func TestAminoJSON_Equivalence(t *testing.T) { } }() msg := gen.Draw(t, "msg") + postFixPulsarMessage(msg) protoBz, err := proto.Marshal(msg) require.NoError(t, err) err = encCfg.Codec.Unmarshal(protoBz, tt.gogo) require.NoError(t, err) + legacyAminoJson, err := encCfg.Amino.MarshalJSON(tt.gogo) + aminoJson, err := aj.MarshalAmino(msg) + if !bytes.Equal(legacyAminoJson, aminoJson) { + require.Fail(t, fmt.Sprintf("legacy: %s vs %s", string(legacyAminoJson), string(aminoJson))) + } }) } } func TestAminoJSON_LegacyParity(t *testing.T) { - cdc := goamino.NewCodec() - cdc.RegisterConcrete(authtypes.Params{}, "cosmos-sdk/x/auth/Params", nil) - cdc.RegisterConcrete(disttypes.MsgWithdrawDelegatorReward{}, "cosmos-sdk/MsgWithdrawDelegationReward", nil) - cdc.RegisterConcrete(&ed25519.PubKey{}, cryptotypes.PubKeyName, nil) - cdc.RegisterConcrete(&authtypes.ModuleAccount{}, "cosmos-sdk/ModuleAccount", nil) - cdc.RegisterConcrete(&authtypes.MsgUpdateParams{}, "cosmos-sdk/x/auth/MsgUpdateParams", nil) - cdc.RegisterConcrete(&authztypes.MsgGrant{}, "cosmos-sdk/MsgGrant", nil) - cdc.RegisterConcrete(&authztypes.MsgExec{}, "cosmos-sdk/MsgExec", nil) + encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, + distribution.AppModuleBasic{}) + //cdc + //cdc.RegisterConcrete(authtypes.Params{}, "cosmos-sdk/x/auth/Params", nil) + //cdc.RegisterConcrete(disttypes.MsgWithdrawDelegatorReward{}, "cosmos-sdk/MsgWithdrawDelegationReward", nil) + //cdc.RegisterConcrete(&ed25519.PubKey{}, cryptotypes.PubKeyName, nil) + //cdc.RegisterConcrete(&authtypes.ModuleAccount{}, "cosmos-sdk/ModuleAccount", nil) + //cdc.RegisterConcrete(&authtypes.MsgUpdateParams{}, "cosmos-sdk/x/auth/MsgUpdateParams", nil) + //cdc.RegisterConcrete(&authztypes.MsgGrant{}, "cosmos-sdk/MsgGrant", nil) + //cdc.RegisterConcrete(&authztypes.MsgExec{}, "cosmos-sdk/MsgExec", nil) aj := aminojson.NewAminoJSON() addr1 := types.AccAddress([]byte("addr1")) now := time.Now() + genericAuth, _ := codectypes.NewAnyWithValue(&authztypes.GenericAuthorization{Msg: "foo"}) + genericAuthPulsar, _ := anypb.New(&authzapi.GenericAuthorization{Msg: "foo"}) + cases := map[string]struct { gogo gogoproto.Message pulsar proto.Message @@ -121,12 +136,10 @@ func TestAminoJSON_LegacyParity(t *testing.T) { pulsar: &authapi.ModuleAccount{BaseAccount: &authapi.BaseAccount{Address: addr1.String()}}, }, "authz/msg_grant": { - gogo: &authztypes.MsgGrant{Grant: authztypes.Grant{Expiration: &now}}, - pulsar: &authzapi.MsgGrant{Grant: &authzapi.Grant{Expiration: timestamppb.New(now)}}, - }, - "authz/msg_grant/empty": { - gogo: &authztypes.MsgGrant{}, - pulsar: &authzapi.MsgGrant{Grant: &authzapi.Grant{}}, + gogo: &authztypes.MsgGrant{ + Grant: authztypes.Grant{Expiration: &now, Authorization: genericAuth}}, + pulsar: &authzapi.MsgGrant{ + Grant: &authzapi.Grant{Expiration: timestamppb.New(now), Authorization: genericAuthPulsar}}, }, "authz/msg_update_params": { gogo: &authtypes.MsgUpdateParams{Params: authtypes.Params{TxSigLimit: 10}}, @@ -162,7 +175,7 @@ func TestAminoJSON_LegacyParity(t *testing.T) { } for name, tc := range cases { t.Run(name, func(t *testing.T) { - gogoBytes, err := cdc.MarshalJSON(tc.gogo) + gogoBytes, err := encCfg.Amino.MarshalJSON(tc.gogo) require.NoError(t, err) pulsarBytes, err := aj.MarshalAmino(tc.pulsar) diff --git a/x/tx/aminojson/any.go b/x/tx/aminojson/any.go new file mode 100644 index 000000000000..6570b150f335 --- /dev/null +++ b/x/tx/aminojson/any.go @@ -0,0 +1,62 @@ +package aminojson + +import ( + "fmt" + "io" + + "github.com/pkg/errors" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoregistry" +) + +const ( + typeUrlName protoreflect.Name = "type_url" + valueName protoreflect.Name = "value" +) + +func (aj AminoJSON) marshalAny(message protoreflect.Message, writer io.Writer) error { + fields := message.Descriptor().Fields() + typeUrlField := fields.ByName(typeUrlName) + if typeUrlField == nil { + return fmt.Errorf("expected type_url field") + } + + typeUrl := message.Get(typeUrlField).String() + // TODO + // need an override for this? + resolver := protoregistry.GlobalTypes + + typ, err := resolver.FindMessageByURL(typeUrl) + if err != nil { + return errors.Wrapf(err, "can't resolve type URL %s", typeUrl) + } + + valueField := fields.ByName(valueName) + if valueField == nil { + return fmt.Errorf("expected value field") + } + + valueBz := message.Get(valueField).Bytes() + + valueMsg := typ.New() + err = proto.Unmarshal(valueBz, valueMsg.Interface()) + if err != nil { + return err + } + + aminoName, named := getMessageName(valueMsg) + if !named { + return fmt.Errorf("expected amino named message") + } + + _, err = writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, aminoName))) + + err = aj.marshalMessage(valueMsg, writer) + if err != nil { + return err + } + + _, err = writer.Write([]byte("}")) + return err +} diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index f901d8e32750..d48baf8d5dfa 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -85,21 +85,12 @@ func (aj AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { // TODO // move into marshalMessage func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) error { - if encoder := aj.getMessageEncoder(msg); encoder != nil { - err := encoder(msg, writer) - return err - } - - named := false - - opts := msg.Descriptor().Options() - if proto.HasExtension(opts, amino.E_Name) { - name := proto.GetExtension(opts, amino.E_Name) + name, named := getMessageName(msg) + if named { _, err := writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, name))) if err != nil { return err } - named = true } err := aj.marshal(protoreflect.ValueOfMessage(msg), writer) @@ -108,7 +99,7 @@ func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) err } if named { - _, err := writer.Write([]byte("}")) + _, err = writer.Write([]byte("}")) if err != nil { return err } @@ -212,15 +203,16 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e return errors.New("nil message") } - if encoder := aj.getMessageEncoder(msg); encoder != nil { - err := encoder(msg, writer) - return err - } - switch msg.Descriptor().FullName() { - // replicate https://github.com/tendermint/go-amino/blob/8e779b71f40d175cd1302d3cd41a75b005225a7a/json-encode.go#L45-L51 case timestampFullName: - err := marshalTimestamp(msg, writer) + // replicate https://github.com/tendermint/go-amino/blob/8e779b71f40d175cd1302d3cd41a75b005225a7a/json-encode.go#L45-L51 + return marshalTimestamp(msg, writer) + case anyFullName: + return aj.marshalAny(msg, writer) + } + + if encoder := aj.getMessageEncoder(msg); encoder != nil { + err := encoder(msg, writer) return err } @@ -344,6 +336,15 @@ func (aj AminoJSON) marshalList(list protoreflect.List, writer io.Writer) error return err } +func getMessageName(msg protoreflect.Message) (string, bool) { + opts := msg.Descriptor().Options() + if proto.HasExtension(opts, amino.E_Name) { + name := proto.GetExtension(opts, amino.E_Name) + return name.(string), true + } + return "", false +} + // omitEmpty returns true if the field should be omitted if empty. Empty field omission is the default behavior. func omitEmpty(field protoreflect.FieldDescriptor) bool { opts := field.Options() @@ -448,7 +449,7 @@ func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { pretty.Sequence = 0 } - bz, err := json.Marshal(typeWrapper{Type: "cosmos-sdk/ModuleAccount", Value: pretty}) + bz, err := json.Marshal(pretty) //bz, err := json.Marshal(pretty) if err != nil { return err @@ -459,6 +460,7 @@ func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { const ( timestampFullName protoreflect.FullName = "google.protobuf.Timestamp" + anyFullName = "google.protobuf.Any" ) const ( From 100781f59d9a923cd5876f65f0b98895da65921b Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 7 Feb 2023 20:45:51 -0600 Subject: [PATCH 049/122] a good tack --- tests/integration/aminojson/aminojson_test.go | 74 +++++++------------ tests/integration/aminojson/clone.go | 5 ++ x/tx/aminojson/json_marshal.go | 12 ++- 3 files changed, 38 insertions(+), 53 deletions(-) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 44418144ebb3..1cd9d59f5b0f 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -1,7 +1,6 @@ package aminojson import ( - "bytes" "fmt" "testing" "time" @@ -13,7 +12,6 @@ import ( "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/timestamppb" - "gotest.tools/v3/assert" "pgregory.net/rapid" authapi "cosmossdk.io/api/cosmos/auth/v1beta1" @@ -61,23 +59,8 @@ var equivTypes = []equivalentType{ func TestAminoJSON_Equivalence(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}) - //aminoCdc := goamino.NewCodec() - //protoCdc := codec.NewProtoCodec(codectypes.NewInterfaceRegistry()) aj := aminojson.NewAminoJSON() - //for _, tt := range equivTypes { - // desc := tt.pulsar.ProtoReflect().Descriptor() - // opts := desc.Options() - // if !proto.HasExtension(opts, amino.E_Name) { - // fmt.Printf("WARN: missing name extension for %s\n", desc.FullName()) - // continue - // } - // name := proto.GetExtension(opts, amino.E_Name).(string) - // aminoCdc.RegisterConcrete(tt.gogo, name, nil) - //} - - //params := &authapi.Params{} - for _, tt := range equivTypes { genOpts := rapidproto.GeneratorOptions{ AnyTypeURLs: tt.anyTypeURLs, @@ -100,9 +83,11 @@ func TestAminoJSON_Equivalence(t *testing.T) { require.NoError(t, err) legacyAminoJson, err := encCfg.Amino.MarshalJSON(tt.gogo) aminoJson, err := aj.MarshalAmino(msg) - if !bytes.Equal(legacyAminoJson, aminoJson) { - require.Fail(t, fmt.Sprintf("legacy: %s vs %s", string(legacyAminoJson), string(aminoJson))) - } + require.Equal(t, string(legacyAminoJson), string(aminoJson), + "gogo: %s vs %s", string(legacyAminoJson), string(aminoJson)) + //if !bytes.Equal(legacyAminoJson, aminoJson) { + // require.Fail(t, fmt.Sprintf("legacy: %s vs %s", string(legacyAminoJson), string(aminoJson))) + //} }) } } @@ -110,14 +95,6 @@ func TestAminoJSON_Equivalence(t *testing.T) { func TestAminoJSON_LegacyParity(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, distribution.AppModuleBasic{}) - //cdc - //cdc.RegisterConcrete(authtypes.Params{}, "cosmos-sdk/x/auth/Params", nil) - //cdc.RegisterConcrete(disttypes.MsgWithdrawDelegatorReward{}, "cosmos-sdk/MsgWithdrawDelegationReward", nil) - //cdc.RegisterConcrete(&ed25519.PubKey{}, cryptotypes.PubKeyName, nil) - //cdc.RegisterConcrete(&authtypes.ModuleAccount{}, "cosmos-sdk/ModuleAccount", nil) - //cdc.RegisterConcrete(&authtypes.MsgUpdateParams{}, "cosmos-sdk/x/auth/MsgUpdateParams", nil) - //cdc.RegisterConcrete(&authztypes.MsgGrant{}, "cosmos-sdk/MsgGrant", nil) - //cdc.RegisterConcrete(&authztypes.MsgExec{}, "cosmos-sdk/MsgExec", nil) aj := aminojson.NewAminoJSON() addr1 := types.AccAddress([]byte("addr1")) @@ -132,8 +109,9 @@ func TestAminoJSON_LegacyParity(t *testing.T) { }{ "auth/params": {gogo: &authtypes.Params{TxSigLimit: 10}, pulsar: &authapi.Params{TxSigLimit: 10}}, "auth/module_account": { - gogo: &authtypes.ModuleAccount{BaseAccount: authtypes.NewBaseAccountWithAddress(addr1)}, - pulsar: &authapi.ModuleAccount{BaseAccount: &authapi.BaseAccount{Address: addr1.String()}}, + gogo: &authtypes.ModuleAccount{BaseAccount: authtypes.NewBaseAccountWithAddress(addr1), + Permissions: []string{}}, + pulsar: &authapi.ModuleAccount{BaseAccount: &authapi.BaseAccount{Address: addr1.String()}, Permissions: []string{}}, }, "authz/msg_grant": { gogo: &authztypes.MsgGrant{ @@ -215,23 +193,21 @@ func TestAny(t *testing.T) { } func TestModuleAccount(t *testing.T) { - cdc := goamino.NewCodec() - params := &authapi.Params{} - cdc.RegisterConcrete(&authtypes.ModuleAccount{}, "cosmos-sdk/ModuleAccount", nil) - cdc.RegisterConcrete(&authtypes.BaseAccount{}, "cosmos-sdk/BaseAccount", nil) - cdc.RegisterConcrete(&authtypes.Params{}, "cosmos-sdk/Params", nil) - paramsName := params.ProtoReflect().Descriptor().FullName() - - gen := rapidproto.MessageGenerator(&authapi.BaseAccount{}, rapidproto.GeneratorOptions{ - AnyTypeURLs: []string{string(paramsName)}, - Resolver: protoregistry.GlobalTypes, - }) - rapid.Check(t, func(t *rapid.T) { - msg := gen.Draw(t, "msg") - bz, err := aminojson.NewAminoJSON().MarshalAmino(msg) - assert.NilError(t, err) - gogobz, err := cdc.MarshalJSON(msg) - require.NoError(t, err) - require.Equal(t, string(gogobz), string(bz), "gogo: %s vs pulsar: %s", string(gogobz), string(bz)) - }) + encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, + distribution.AppModuleBasic{}) + + aj := aminojson.NewAminoJSON() + addr1 := types.AccAddress([]byte("addr1")) + pulsar := &authapi.ModuleAccount{BaseAccount: &authapi.BaseAccount{Address: addr1.String()}, Permissions: []string{}} + gogo := &authtypes.ModuleAccount{} + + protoBz, err := proto.Marshal(pulsar) + require.NoError(t, err) + err = encCfg.Codec.Unmarshal(protoBz, gogo) + require.NoError(t, err) + legacyAminoJson, err := encCfg.Amino.MarshalJSON(gogo) + aminoJson, err := aj.MarshalAmino(pulsar) + // yes this is expected. empty []string is not the same as nil []string. this is a bug in gogo. + require.NotEqual(t, string(legacyAminoJson), string(aminoJson), + "gogo: %s vs %s", string(legacyAminoJson), string(aminoJson)) } diff --git a/tests/integration/aminojson/clone.go b/tests/integration/aminojson/clone.go index 8e18a9f620e0..3a88da555a91 100644 --- a/tests/integration/aminojson/clone.go +++ b/tests/integration/aminojson/clone.go @@ -213,6 +213,11 @@ func postFixPulsarMessage(msg proto.Message) { _, _, bz := testdata.KeyTestPubAddr() text, _ := bech32.ConvertAndEncode("cosmos", bz) m.BaseAccount.Address = text + + // see negative test + if len(m.Permissions) == 0 { + m.Permissions = nil + } case *authapi.MsgUpdateParams: // params is required in the gogo message if m.Params == nil { diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index d48baf8d5dfa..8dec4bfb019b 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -40,12 +40,16 @@ func NewAminoJSON() AminoJSON { if keyField == nil { return errors.New(`message encoder for key_field: no field named "key" found`) } + bz := msg.Get(keyField).Bytes() - _, err := fmt.Fprintf(w, `"%s"`, base64.StdEncoding.EncodeToString(bz)) - if err != nil { + + if len(bz) == 0 { + _, err := fmt.Fprint(w, "null") return err } - return nil + + _, err := fmt.Fprintf(w, `"%s"`, base64.StdEncoding.EncodeToString(bz)) + return err }, "module_account": moduleAccountEncoder, }, @@ -431,7 +435,7 @@ type typeWrapper struct { } // moduleAccountEncoder replicates the behavior in -// https://github.com/cosmos/cosmos-sdk/blob/41a3dfeced2953beba3a7d11ec798d17ee19f506/x/auth/types/account.go#L230-L2549 +// https://github.com/cosmos/cosmos-sdk/blob/41a3dfeced2953beba3a7d11ec798d17ee19f506/x/auth/types/account.go#L230-L254 func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { ma := msg.Interface().(*authapi.ModuleAccount) pretty := moduleAccountPretty{ From e22421fe0d4b541e594d998cff70853c22658db5 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 8 Feb 2023 14:38:29 -0600 Subject: [PATCH 050/122] critical generator fixes for playing nicely with gogoproto dsz --- api/cosmos/auth/v1beta1/auth.pulsar.go | 86 ++++++------ codec/types/compat.go | 3 + proto/cosmos/auth/v1beta1/auth.proto | 1 + tests/integration/aminojson/aminojson_test.go | 129 +++++++++++++----- tests/integration/aminojson/clone.go | 29 ---- x/auth/types/auth.pb.go | 95 ++++++------- x/tx/rapidproto/rapidproto.go | 87 +++++++++--- 7 files changed, 257 insertions(+), 173 deletions(-) diff --git a/api/cosmos/auth/v1beta1/auth.pulsar.go b/api/cosmos/auth/v1beta1/auth.pulsar.go index 97190c4dc45a..e16a204fd6da 100644 --- a/api/cosmos/auth/v1beta1/auth.pulsar.go +++ b/api/cosmos/auth/v1beta1/auth.pulsar.go @@ -2664,48 +2664,50 @@ var file_cosmos_auth_v1beta1_auth_proto_rawDesc = []byte{ 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x92, 0xe7, 0xb0, 0x2a, 0x0e, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x5c, 0x0a, 0x10, 0x4d, 0x6f, - 0x64, 0x75, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x1f, - 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, - 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x22, 0xd7, 0x02, 0x0a, 0x06, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, - 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x11, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x6f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x78, 0x5f, 0x73, 0x69, 0x67, 0x5f, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x74, 0x78, 0x53, 0x69, 0x67, - 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x30, 0x0a, 0x15, 0x74, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, - 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x74, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x43, 0x6f, 0x73, 0x74, - 0x50, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x12, 0x4f, 0x0a, 0x17, 0x73, 0x69, 0x67, 0x5f, 0x76, - 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x64, 0x32, 0x35, 0x35, - 0x31, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x18, 0xe2, 0xde, 0x1f, 0x14, 0x53, 0x69, - 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x44, 0x32, 0x35, 0x35, - 0x31, 0x39, 0x52, 0x14, 0x73, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, - 0x74, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x12, 0x55, 0x0a, 0x19, 0x73, 0x69, 0x67, 0x5f, - 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x70, - 0x32, 0x35, 0x36, 0x6b, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x42, 0x1a, 0xe2, 0xde, 0x1f, - 0x16, 0x53, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x53, 0x65, - 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x52, 0x16, 0x73, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, - 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x3a, - 0x21, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x42, 0xc4, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, - 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, - 0x43, 0x41, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x75, 0x74, - 0x68, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, - 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, 0x68, - 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x4d, + 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, + 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, + 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x64, 0x65, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x26, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, + 0x6c, 0x22, 0xd7, 0x02, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x13, + 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x4d, 0x65, + 0x6d, 0x6f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0c, + 0x74, 0x78, 0x5f, 0x73, 0x69, 0x67, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0a, 0x74, 0x78, 0x53, 0x69, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x30, + 0x0a, 0x15, 0x74, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x70, + 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x74, + 0x78, 0x53, 0x69, 0x7a, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x50, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, + 0x12, 0x4f, 0x0a, 0x17, 0x73, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x63, + 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x18, 0xe2, 0xde, 0x1f, 0x14, 0x53, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x43, 0x6f, 0x73, 0x74, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x52, 0x14, 0x73, 0x69, 0x67, + 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, + 0x39, 0x12, 0x55, 0x0a, 0x19, 0x73, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, + 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x1a, 0xe2, 0xde, 0x1f, 0x16, 0x53, 0x69, 0x67, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, + 0x52, 0x16, 0x73, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x53, + 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x3a, 0x21, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, + 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, + 0x61, 0x75, 0x74, 0x68, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xc4, 0x01, 0x0a, 0x17, + 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, + 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, + 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, 0x58, 0xaa, 0x02, 0x13, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/codec/types/compat.go b/codec/types/compat.go index 3b669385624f..a6f10b5833d2 100644 --- a/codec/types/compat.go +++ b/codec/types/compat.go @@ -170,6 +170,9 @@ type AminoJSONPacker struct { var _ AnyUnpacker = AminoJSONPacker{} func (a AminoJSONPacker) UnpackAny(any *Any, _ interface{}) error { + if any == nil { + println("nil") + } err := UnpackInterfaces(any.cachedValue, a) if err != nil { return err diff --git a/proto/cosmos/auth/v1beta1/auth.proto b/proto/cosmos/auth/v1beta1/auth.proto index c89e44b58058..cde750f561ed 100644 --- a/proto/cosmos/auth/v1beta1/auth.proto +++ b/proto/cosmos/auth/v1beta1/auth.proto @@ -45,6 +45,7 @@ message ModuleAccount { // // Since: cosmos-sdk 0.47 message ModuleCredential { + option (amino.name) = "cosmos-sdk/GroupAccountCredential"; // module_name is the name of the module used for address derivation (passed into address.Module). string module_name = 1; // derivation_keys is for deriving a module account address (passed into address.Module) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 1cd9d59f5b0f..c5f89bd88700 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -1,6 +1,7 @@ package aminojson import ( + "bytes" "fmt" "testing" "time" @@ -22,7 +23,9 @@ import ( "cosmossdk.io/x/tx/rapidproto" codectypes "github.com/cosmos/cosmos-sdk/codec/types" cryptotypes "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" + "github.com/cosmos/cosmos-sdk/testutil/testdata" "github.com/cosmos/cosmos-sdk/types" + "github.com/cosmos/cosmos-sdk/types/bech32" "github.com/cosmos/cosmos-sdk/types/module/testutil" "github.com/cosmos/cosmos-sdk/x/auth" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" @@ -32,62 +35,87 @@ import ( disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" ) -type equivalentType struct { - pulsar proto.Message - gogo gogoproto.Message - anyTypeURLs []string +type generatedType struct { + pulsar proto.Message + gogo gogoproto.Message + opts rapidproto.GeneratorOptions } -func et(gogo gogoproto.Message, pulsar proto.Message, anyTypes ...proto.Message) equivalentType { - var anyTypeURLs []string - for _, a := range anyTypes { - anyTypeURLs = append(anyTypeURLs, fmt.Sprintf("/%s", a.ProtoReflect().Descriptor().FullName())) - } - return equivalentType{ - pulsar: pulsar, - gogo: gogo, - anyTypeURLs: anyTypeURLs, +func genType(gogo gogoproto.Message, pulsar proto.Message, opts rapidproto.GeneratorOptions) generatedType { + return generatedType{ + pulsar: pulsar, + gogo: gogo, + opts: opts, } } -var equivTypes = []equivalentType{ - // auth - et(&authtypes.Params{}, &authapi.Params{}), - et(&authtypes.BaseAccount{}, &authapi.BaseAccount{}, &ed25519.PubKey{}), - et(&authtypes.ModuleAccount{}, &authapi.ModuleAccount{}, &ed25519.PubKey{}), -} +var ( + genOpts = rapidproto.GeneratorOptions{Resolver: protoregistry.GlobalTypes} + genTypes = []generatedType{ + // auth + genType(&authtypes.Params{}, &authapi.Params{}, genOpts), + genType(&authtypes.BaseAccount{}, &authapi.BaseAccount{}, genOpts.WithAnyTypes(&ed25519.PubKey{})), + genType(&authtypes.ModuleAccount{}, &authapi.ModuleAccount{}, genOpts.WithAnyTypes(&ed25519.PubKey{})), + genType(&authtypes.ModuleCredential{}, &authapi.ModuleCredential{}, genOpts), + genType(&authtypes.MsgUpdateParams{}, &authapi.MsgUpdateParams{}, genOpts), + + // authz + genType(&authztypes.GenericAuthorization{}, &authzapi.GenericAuthorization{}, genOpts), + genType(&authztypes.Grant{}, &authzapi.Grant{}, + genOpts.WithAnyTypes(&authzapi.GenericAuthorization{}). + WithDisallowNil(). + WithInterfaceHint("cosmos.authz.v1beta1.Authorization", &authzapi.GenericAuthorization{}), + ), + genType(&authztypes.MsgGrant{}, &authzapi.MsgGrant{}, + genOpts.WithAnyTypes(&authzapi.GenericAuthorization{}). + WithInterfaceHint("cosmos.authz.v1beta1.Authorization", &authzapi.GenericAuthorization{}). + WithDisallowNil(), + ), + genType(&authztypes.MsgExec{}, &authzapi.MsgExec{}, + genOpts.WithAnyTypes(&authzapi.MsgGrant{}, &authzapi.GenericAuthorization{}). + WithDisallowNil(). + WithInterfaceHint("cosmos.authz.v1beta1.Authorization", &authzapi.GenericAuthorization{}). + WithInterfaceHint("cosmos.base.v1beta1.Msg", &authzapi.MsgGrant{}), + ), + } +) func TestAminoJSON_Equivalence(t *testing.T) { - encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}) + encCfg := testutil.MakeTestEncodingConfig( + auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}) aj := aminojson.NewAminoJSON() - for _, tt := range equivTypes { - genOpts := rapidproto.GeneratorOptions{ - AnyTypeURLs: tt.anyTypeURLs, - Resolver: protoregistry.GlobalTypes, - } - gen := rapidproto.MessageGenerator(tt.pulsar, genOpts) + for _, tt := range genTypes { + gen := rapidproto.MessageGenerator(tt.pulsar, tt.opts) fmt.Printf("testing %s\n", tt.pulsar.ProtoReflect().Descriptor().FullName()) rapid.Check(t, func(t *rapid.T) { defer func() { if r := recover(); r != nil { - fmt.Printf("Panic: %+v\n", r) + //fmt.Printf("Panic: %+v\n", r) t.FailNow() } }() msg := gen.Draw(t, "msg") postFixPulsarMessage(msg) + + gogo := tt.gogo + sanity := tt.pulsar + protoBz, err := proto.Marshal(msg) require.NoError(t, err) - err = encCfg.Codec.Unmarshal(protoBz, tt.gogo) + + err = proto.Unmarshal(protoBz, sanity) + require.NoError(t, err) + + err = encCfg.Codec.Unmarshal(protoBz, gogo) require.NoError(t, err) - legacyAminoJson, err := encCfg.Amino.MarshalJSON(tt.gogo) + + legacyAminoJson, err := encCfg.Amino.MarshalJSON(gogo) aminoJson, err := aj.MarshalAmino(msg) - require.Equal(t, string(legacyAminoJson), string(aminoJson), - "gogo: %s vs %s", string(legacyAminoJson), string(aminoJson)) - //if !bytes.Equal(legacyAminoJson, aminoJson) { - // require.Fail(t, fmt.Sprintf("legacy: %s vs %s", string(legacyAminoJson), string(aminoJson))) - //} + if !bytes.Equal(legacyAminoJson, aminoJson) { + println("UNMATCHED") + } + require.Equal(t, string(legacyAminoJson), string(aminoJson)) }) } } @@ -123,10 +151,14 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &authtypes.MsgUpdateParams{Params: authtypes.Params{TxSigLimit: 10}}, pulsar: &authapi.MsgUpdateParams{Params: &authapi.Params{TxSigLimit: 10}}, }, - "authz/msg_exec": { + "authz/msg_exec/empty_msgs": { gogo: &authztypes.MsgExec{Msgs: []*codectypes.Any{}}, pulsar: &authzapi.MsgExec{Msgs: []*anypb.Any{}}, }, + "authz/msg_exec/null_msg": { + gogo: &authztypes.MsgExec{Msgs: []*codectypes.Any{(*codectypes.Any)(nil)}}, + pulsar: &authzapi.MsgExec{Msgs: []*anypb.Any{(*anypb.Any)(nil)}}, + }, "distribution/delegator_starting_info": { gogo: &disttypes.DelegatorStartingInfo{}, pulsar: &distapi.DelegatorStartingInfo{}, @@ -211,3 +243,30 @@ func TestModuleAccount(t *testing.T) { require.NotEqual(t, string(legacyAminoJson), string(aminoJson), "gogo: %s vs %s", string(legacyAminoJson), string(aminoJson)) } + +func postFixPulsarMessage(msg proto.Message) { + switch m := msg.(type) { + case *authapi.ModuleAccount: + if m.BaseAccount == nil { + m.BaseAccount = &authapi.BaseAccount{} + } + _, _, bz := testdata.KeyTestPubAddr() + text, _ := bech32.ConvertAndEncode("cosmos", bz) + m.BaseAccount.Address = text + + // see negative test + if len(m.Permissions) == 0 { + m.Permissions = nil + } + case *authapi.MsgUpdateParams: + // params is required in the gogo message + if m.Params == nil { + m.Params = &authapi.Params{} + } + case *authzapi.MsgGrant: + // grant is required in the gogo message + if m.Grant == nil { + m.Grant = &authzapi.Grant{} + } + } +} diff --git a/tests/integration/aminojson/clone.go b/tests/integration/aminojson/clone.go index 3a88da555a91..dfe783341516 100644 --- a/tests/integration/aminojson/clone.go +++ b/tests/integration/aminojson/clone.go @@ -19,8 +19,6 @@ import ( authzapi "cosmossdk.io/api/cosmos/authz/v1beta1" "cosmossdk.io/x/tx/rapidproto" codectypes "github.com/cosmos/cosmos-sdk/codec/types" - "github.com/cosmos/cosmos-sdk/testutil/testdata" - "github.com/cosmos/cosmos-sdk/types/bech32" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" authztypes "github.com/cosmos/cosmos-sdk/x/authz" ) @@ -204,33 +202,6 @@ func newGogoMessage(t reflect.Type) gogoproto.Message { } } -func postFixPulsarMessage(msg proto.Message) { - switch m := msg.(type) { - case *authapi.ModuleAccount: - if m.BaseAccount == nil { - m.BaseAccount = &authapi.BaseAccount{} - } - _, _, bz := testdata.KeyTestPubAddr() - text, _ := bech32.ConvertAndEncode("cosmos", bz) - m.BaseAccount.Address = text - - // see negative test - if len(m.Permissions) == 0 { - m.Permissions = nil - } - case *authapi.MsgUpdateParams: - // params is required in the gogo message - if m.Params == nil { - m.Params = &authapi.Params{} - } - case *authzapi.MsgGrant: - // grant is required in the gogo message - if m.Grant == nil { - m.Grant = &authzapi.Grant{} - } - } -} - func TestDeepClone(t *testing.T) { ti := newTypeIndex(msgTypes) //tt := msgTypes[0] diff --git a/x/auth/types/auth.pb.go b/x/auth/types/auth.pb.go index edef8aa3877f..4c870906ebe8 100644 --- a/x/auth/types/auth.pb.go +++ b/x/auth/types/auth.pb.go @@ -254,53 +254,54 @@ func init() { func init() { proto.RegisterFile("cosmos/auth/v1beta1/auth.proto", fileDescriptor_7e1f7e915d020d2d) } var fileDescriptor_7e1f7e915d020d2d = []byte{ - // 722 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x54, 0xcf, 0x4e, 0xe3, 0x46, - 0x1c, 0x8e, 0x93, 0x00, 0x65, 0x02, 0xb4, 0x98, 0x94, 0x9a, 0xa8, 0x8a, 0xd3, 0x48, 0x15, 0x69, - 0x54, 0xec, 0x26, 0x15, 0x95, 0xca, 0x0d, 0xa7, 0x3d, 0x54, 0x14, 0x8a, 0x1c, 0x95, 0x03, 0xaa, - 0x64, 0x8d, 0x9d, 0xc1, 0x8c, 0xc8, 0x78, 0x5c, 0xcf, 0x18, 0xc5, 0x3c, 0x01, 0xea, 0xa9, 0xea, - 0x13, 0xd0, 0x9e, 0x7a, 0xcc, 0x81, 0x87, 0x58, 0xed, 0x09, 0xed, 0x65, 0xf7, 0x14, 0xad, 0xc2, - 0x21, 0x68, 0x5f, 0x62, 0x57, 0x99, 0x71, 0x20, 0x61, 0x73, 0x89, 0xf2, 0xfb, 0xbe, 0xef, 0xf7, - 0xef, 0xf3, 0xcf, 0x06, 0x65, 0x8f, 0x32, 0x42, 0x99, 0x09, 0x63, 0x7e, 0x6e, 0x5e, 0x36, 0x5c, - 0xc4, 0x61, 0x43, 0x04, 0x46, 0x18, 0x51, 0x4e, 0xd5, 0x0d, 0xc9, 0x1b, 0x02, 0x4a, 0xf9, 0xd2, - 0x3a, 0x24, 0x38, 0xa0, 0xa6, 0xf8, 0x95, 0xba, 0xd2, 0x96, 0xd4, 0x39, 0x22, 0x32, 0xd3, 0x24, - 0x49, 0x15, 0x7d, 0xea, 0x53, 0x89, 0x8f, 0xff, 0x4d, 0x12, 0x7c, 0x4a, 0xfd, 0x2e, 0x32, 0x45, - 0xe4, 0xc6, 0x67, 0x26, 0x0c, 0x12, 0x49, 0x55, 0xff, 0xcd, 0x82, 0x82, 0x05, 0x19, 0xda, 0xf7, - 0x3c, 0x1a, 0x07, 0x5c, 0x6d, 0x82, 0x25, 0xd8, 0xe9, 0x44, 0x88, 0x31, 0x4d, 0xa9, 0x28, 0xb5, - 0x65, 0x4b, 0x7b, 0x75, 0xbb, 0x53, 0x4c, 0x7b, 0xec, 0x4b, 0xa6, 0xcd, 0x23, 0x1c, 0xf8, 0xf6, - 0x44, 0xa8, 0x9e, 0x80, 0xa5, 0x30, 0x76, 0x9d, 0x0b, 0x94, 0x68, 0xd9, 0x8a, 0x52, 0x2b, 0x34, - 0x8b, 0x86, 0x6c, 0x68, 0x4c, 0x1a, 0x1a, 0xfb, 0x41, 0x62, 0x6d, 0xbf, 0x1b, 0xe8, 0xc5, 0x30, - 0x76, 0xbb, 0xd8, 0x1b, 0x6b, 0xbf, 0xa5, 0x04, 0x73, 0x44, 0x42, 0x9e, 0xfc, 0x37, 0xea, 0xd7, - 0xc1, 0x13, 0x61, 0x2f, 0x86, 0xb1, 0x7b, 0x80, 0x12, 0xf5, 0x6b, 0xb0, 0x06, 0xe5, 0x58, 0x4e, - 0x10, 0x13, 0x17, 0x45, 0x5a, 0xae, 0xa2, 0xd4, 0xf2, 0xf6, 0x6a, 0x8a, 0x1e, 0x09, 0x50, 0x2d, - 0x81, 0x4f, 0x18, 0xfa, 0x33, 0x46, 0x81, 0x87, 0xb4, 0xbc, 0x10, 0x3c, 0xc6, 0x7b, 0xad, 0xeb, - 0x1b, 0x3d, 0xf3, 0x70, 0xa3, 0x67, 0x5e, 0xde, 0xee, 0x7c, 0x39, 0xc7, 0x5e, 0x23, 0xdd, 0xfb, - 0x97, 0xbf, 0x46, 0xfd, 0xfa, 0xa6, 0x14, 0xec, 0xb0, 0xce, 0x85, 0x39, 0xe5, 0x49, 0xf5, 0xbd, - 0x02, 0x56, 0x0f, 0x69, 0x27, 0xee, 0x3e, 0xba, 0x74, 0x04, 0x56, 0x5c, 0xc8, 0x90, 0x93, 0x0e, - 0x22, 0xac, 0x2a, 0x34, 0x2b, 0xc6, 0xbc, 0x0e, 0x53, 0x95, 0xac, 0xe5, 0xbb, 0x81, 0xae, 0xf4, - 0x47, 0xfd, 0xba, 0x62, 0x17, 0xdc, 0x29, 0xd7, 0xb7, 0x40, 0x3e, 0x80, 0x04, 0x09, 0xfb, 0x96, - 0xad, 0x85, 0xff, 0x85, 0x42, 0x40, 0xea, 0x36, 0x28, 0x84, 0x28, 0x22, 0x98, 0x31, 0x4c, 0x03, - 0xa6, 0xe5, 0x2a, 0xb9, 0x27, 0xc5, 0x34, 0xb3, 0x77, 0x7a, 0x2d, 0xd7, 0xac, 0xce, 0x1b, 0x62, - 0x66, 0x7c, 0xb1, 0xac, 0x36, 0xb5, 0xec, 0x0c, 0xfb, 0xcf, 0xa8, 0x5f, 0x5f, 0x23, 0x02, 0x99, - 0xec, 0x57, 0xfd, 0x03, 0x7c, 0x26, 0x35, 0xad, 0x08, 0x75, 0x50, 0xc0, 0x31, 0xec, 0xaa, 0x3a, - 0x28, 0xa4, 0x2a, 0x31, 0xba, 0xb8, 0x16, 0x1b, 0x48, 0xe8, 0x48, 0x4e, 0xfe, 0x69, 0x07, 0x45, - 0xf8, 0x12, 0x72, 0x4c, 0x83, 0xf1, 0x83, 0x65, 0x5a, 0xb6, 0x92, 0xab, 0xad, 0xd8, 0x6b, 0x4f, - 0xf0, 0x01, 0x4a, 0x58, 0xf5, 0x75, 0x16, 0x2c, 0x1e, 0xc3, 0x08, 0x12, 0xa6, 0x1a, 0x60, 0x83, - 0xc0, 0x9e, 0x43, 0x10, 0xa1, 0x8e, 0x77, 0x0e, 0x23, 0xe8, 0x71, 0x14, 0xc9, 0x53, 0xcc, 0xdb, - 0xeb, 0x04, 0xf6, 0x0e, 0x11, 0xa1, 0xad, 0x47, 0x42, 0xad, 0x80, 0x15, 0xde, 0x73, 0x18, 0xf6, - 0x9d, 0x2e, 0x26, 0x98, 0x0b, 0x03, 0xf3, 0x36, 0xe0, 0xbd, 0x36, 0xf6, 0x7f, 0x1d, 0x23, 0xea, - 0x77, 0xe0, 0x73, 0xa1, 0xb8, 0x42, 0x8e, 0x47, 0x19, 0x77, 0x42, 0x14, 0x39, 0x6e, 0xc2, 0x51, - 0x7a, 0x4b, 0xeb, 0x63, 0xe9, 0x15, 0x6a, 0x51, 0xc6, 0x8f, 0x51, 0x64, 0x25, 0x1c, 0xa9, 0xbf, - 0x81, 0x2f, 0xc6, 0x05, 0x2f, 0x51, 0x84, 0xcf, 0x12, 0x99, 0x84, 0x3a, 0xcd, 0xdd, 0xdd, 0xc6, - 0x8f, 0xf2, 0xbc, 0x2c, 0x6d, 0x38, 0xd0, 0x8b, 0x6d, 0xec, 0x9f, 0x08, 0xc5, 0x38, 0xf5, 0xe7, - 0x9f, 0x04, 0x6f, 0x17, 0xd9, 0x0c, 0x2a, 0xb3, 0xd4, 0xdf, 0xc1, 0xd6, 0xf3, 0x82, 0x0c, 0x79, - 0x61, 0x73, 0xf7, 0x87, 0x8b, 0x86, 0xb6, 0x20, 0x4a, 0x96, 0x86, 0x03, 0x7d, 0x73, 0xa6, 0x64, - 0x7b, 0xa2, 0xb0, 0x37, 0xd9, 0x5c, 0x7c, 0xef, 0xab, 0x87, 0x1b, 0x5d, 0x79, 0xfe, 0x28, 0x7b, - 0xf2, 0xeb, 0x22, 0xed, 0xb4, 0x5a, 0x2f, 0x86, 0x65, 0xe5, 0x6e, 0x58, 0x56, 0xde, 0x0e, 0xcb, - 0xca, 0xdf, 0xf7, 0xe5, 0xcc, 0xdd, 0x7d, 0x39, 0xf3, 0xe6, 0xbe, 0x9c, 0x39, 0xfd, 0xc6, 0xc7, - 0xfc, 0x3c, 0x76, 0x0d, 0x8f, 0x92, 0xf4, 0x0b, 0x62, 0x7e, 0x5c, 0x85, 0x27, 0x21, 0x62, 0xee, - 0xa2, 0x78, 0x8b, 0xbf, 0xff, 0x10, 0x00, 0x00, 0xff, 0xff, 0x24, 0xaa, 0xf2, 0xc8, 0xbf, 0x04, - 0x00, 0x00, + // 740 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x54, 0x41, 0x6f, 0xe3, 0x44, + 0x18, 0x8d, 0x93, 0x6c, 0x97, 0x4e, 0xba, 0x85, 0x7a, 0x43, 0x71, 0x23, 0x14, 0x67, 0x23, 0xc1, + 0x86, 0x88, 0xda, 0x24, 0xa8, 0x48, 0xe4, 0x56, 0x07, 0x84, 0x50, 0x69, 0xa9, 0x1c, 0xd1, 0x43, + 0x2f, 0xd6, 0xd8, 0x99, 0xba, 0xa3, 0x66, 0x3c, 0xc6, 0x33, 0xae, 0xe2, 0x9e, 0x39, 0x54, 0x9c, + 0x10, 0xbf, 0xa0, 0x70, 0xe2, 0x98, 0x43, 0x7f, 0x04, 0xe2, 0x54, 0x71, 0x81, 0x53, 0x84, 0xd2, + 0x43, 0x2a, 0xfe, 0x04, 0xc8, 0x33, 0x4e, 0x93, 0x74, 0x73, 0x89, 0x32, 0xef, 0xbd, 0xef, 0xfb, + 0xde, 0xf7, 0x3c, 0x36, 0xa8, 0x7a, 0x94, 0x11, 0xca, 0x4c, 0x18, 0xf3, 0x73, 0xf3, 0xb2, 0xe5, + 0x22, 0x0e, 0x5b, 0xe2, 0x60, 0x84, 0x11, 0xe5, 0x54, 0x7d, 0x29, 0x79, 0x43, 0x40, 0x19, 0x5f, + 0xd9, 0x82, 0x04, 0x07, 0xd4, 0x14, 0xbf, 0x52, 0x57, 0xd9, 0x91, 0x3a, 0x47, 0x9c, 0xcc, 0xac, + 0x48, 0x52, 0x65, 0x9f, 0xfa, 0x54, 0xe2, 0xe9, 0xbf, 0x59, 0x81, 0x4f, 0xa9, 0x3f, 0x40, 0xa6, + 0x38, 0xb9, 0xf1, 0x99, 0x09, 0x83, 0x44, 0x52, 0xf5, 0x5f, 0xf2, 0xa0, 0x64, 0x41, 0x86, 0xf6, + 0x3d, 0x8f, 0xc6, 0x01, 0x57, 0xdb, 0xe0, 0x39, 0xec, 0xf7, 0x23, 0xc4, 0x98, 0xa6, 0xd4, 0x94, + 0xc6, 0xba, 0xa5, 0xfd, 0x79, 0xbb, 0x5b, 0xce, 0x66, 0xec, 0x4b, 0xa6, 0xc7, 0x23, 0x1c, 0xf8, + 0xf6, 0x4c, 0xa8, 0x9e, 0x80, 0xe7, 0x61, 0xec, 0x3a, 0x17, 0x28, 0xd1, 0xf2, 0x35, 0xa5, 0x51, + 0x6a, 0x97, 0x0d, 0x39, 0xd0, 0x98, 0x0d, 0x34, 0xf6, 0x83, 0xc4, 0x7a, 0xfd, 0xef, 0x58, 0x2f, + 0x87, 0xb1, 0x3b, 0xc0, 0x5e, 0xaa, 0xfd, 0x98, 0x12, 0xcc, 0x11, 0x09, 0x79, 0xf2, 0xeb, 0x74, + 0xd4, 0x04, 0x73, 0xc2, 0x5e, 0x0b, 0x63, 0xf7, 0x00, 0x25, 0xea, 0x07, 0x60, 0x13, 0x4a, 0x5b, + 0x4e, 0x10, 0x13, 0x17, 0x45, 0x5a, 0xa1, 0xa6, 0x34, 0x8a, 0xf6, 0x8b, 0x0c, 0x3d, 0x12, 0xa0, + 0x5a, 0x01, 0x6f, 0x31, 0xf4, 0x7d, 0x8c, 0x02, 0x0f, 0x69, 0x45, 0x21, 0x78, 0x3c, 0x77, 0xba, + 0xd7, 0x37, 0x7a, 0xee, 0xe1, 0x46, 0xcf, 0xfd, 0x71, 0xbb, 0xfb, 0xfe, 0x8a, 0x78, 0x8d, 0x6c, + 0xef, 0xaf, 0x7f, 0x9c, 0x8e, 0x9a, 0xdb, 0x52, 0xb0, 0xcb, 0xfa, 0x17, 0xe6, 0x42, 0x26, 0xf5, + 0xff, 0x14, 0xf0, 0xe2, 0x90, 0xf6, 0xe3, 0xc1, 0x63, 0x4a, 0x47, 0x60, 0xc3, 0x85, 0x0c, 0x39, + 0x99, 0x11, 0x11, 0x55, 0xa9, 0x5d, 0x33, 0x56, 0x4d, 0x58, 0xe8, 0x64, 0xad, 0xdf, 0x8d, 0x75, + 0x65, 0x34, 0x1d, 0x35, 0x15, 0xbb, 0xe4, 0x2e, 0xa4, 0xbe, 0x03, 0x8a, 0x01, 0x24, 0x48, 0xc4, + 0xb7, 0x6e, 0x3d, 0xfb, 0x4d, 0x28, 0x04, 0xa4, 0xbe, 0x06, 0xa5, 0x10, 0x45, 0x04, 0x33, 0x86, + 0x69, 0xc0, 0xb4, 0x42, 0xad, 0x30, 0x57, 0x2c, 0x32, 0x9d, 0xd3, 0x6b, 0xb9, 0x66, 0x7d, 0x95, + 0x89, 0x25, 0xfb, 0x62, 0x59, 0x6d, 0x61, 0xd9, 0x25, 0xf6, 0xe7, 0xe9, 0xa8, 0xb9, 0x49, 0x04, + 0x32, 0xdb, 0xaf, 0xfe, 0x83, 0x02, 0xde, 0x91, 0xa2, 0x6e, 0x84, 0xfa, 0x28, 0xe0, 0x18, 0x0e, + 0x54, 0x1d, 0x94, 0x32, 0x99, 0xf0, 0x2e, 0xae, 0x8b, 0x0d, 0x24, 0x74, 0x24, 0xad, 0xbf, 0xdd, + 0x47, 0x11, 0xbe, 0x84, 0x1c, 0xd3, 0x20, 0x7d, 0xb2, 0x4c, 0xcb, 0xd7, 0x0a, 0x8d, 0x0d, 0x7b, + 0x73, 0x0e, 0x1f, 0xa0, 0x84, 0x75, 0x3e, 0x4c, 0x0d, 0xbd, 0x5a, 0x30, 0xf4, 0x55, 0x44, 0xe3, + 0x30, 0xf3, 0x33, 0x9f, 0x58, 0xff, 0x2b, 0x0f, 0xd6, 0x8e, 0x61, 0x04, 0x09, 0x53, 0x0d, 0xf0, + 0x92, 0xc0, 0xa1, 0x43, 0x10, 0xa1, 0x8e, 0x77, 0x0e, 0x23, 0xe8, 0x71, 0x14, 0xc9, 0x3b, 0x5b, + 0xb4, 0xb7, 0x08, 0x1c, 0x1e, 0x22, 0x42, 0xbb, 0x8f, 0x84, 0x5a, 0x03, 0x1b, 0x7c, 0xe8, 0x30, + 0xec, 0x3b, 0x03, 0x4c, 0x30, 0x17, 0x49, 0x17, 0x6d, 0xc0, 0x87, 0x3d, 0xec, 0x7f, 0x93, 0x22, + 0xea, 0x27, 0xe0, 0x5d, 0xa1, 0xb8, 0x42, 0x8e, 0x47, 0x19, 0x77, 0x42, 0x14, 0x39, 0x6e, 0xc2, + 0x51, 0x76, 0xe9, 0xb6, 0x52, 0xe9, 0x15, 0xea, 0x52, 0xc6, 0x8f, 0x51, 0x64, 0x25, 0x1c, 0xa9, + 0xdf, 0x82, 0xf7, 0xd2, 0x86, 0x97, 0x28, 0xc2, 0x67, 0x89, 0x2c, 0x42, 0xfd, 0xf6, 0xde, 0x5e, + 0xeb, 0x73, 0x79, 0x0f, 0x2d, 0x6d, 0x32, 0xd6, 0xcb, 0x3d, 0xec, 0x9f, 0x08, 0x45, 0x5a, 0xfa, + 0xe5, 0x17, 0x82, 0xb7, 0xcb, 0x6c, 0x09, 0x95, 0x55, 0xea, 0x77, 0x60, 0xe7, 0x69, 0x43, 0x86, + 0xbc, 0xb0, 0xbd, 0xf7, 0xd9, 0x45, 0x4b, 0x7b, 0x26, 0x5a, 0x56, 0x26, 0x63, 0x7d, 0x7b, 0xa9, + 0x65, 0x6f, 0xa6, 0xb0, 0xb7, 0xd9, 0x4a, 0xbc, 0xf3, 0xea, 0xe1, 0x46, 0x57, 0x9e, 0x3e, 0xf3, + 0xa1, 0xfc, 0x0c, 0xc9, 0x38, 0xad, 0xee, 0xef, 0x93, 0xaa, 0x72, 0x37, 0xa9, 0x2a, 0xff, 0x4c, + 0xaa, 0xca, 0x4f, 0xf7, 0xd5, 0xdc, 0xdd, 0x7d, 0x35, 0xf7, 0xf7, 0x7d, 0x35, 0x77, 0xfa, 0x91, + 0x8f, 0xf9, 0x79, 0xec, 0x1a, 0x1e, 0x25, 0xd9, 0xa7, 0xc6, 0x7c, 0xb3, 0x0b, 0x4f, 0x42, 0xc4, + 0xdc, 0x35, 0xf1, 0xba, 0x7f, 0xfa, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xba, 0xca, 0x7d, 0xc7, + 0xe8, 0x04, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { diff --git a/x/tx/rapidproto/rapidproto.go b/x/tx/rapidproto/rapidproto.go index 2922cbc688c7..51cd778d6f47 100644 --- a/x/tx/rapidproto/rapidproto.go +++ b/x/tx/rapidproto/rapidproto.go @@ -3,6 +3,7 @@ package rapidproto import ( "fmt" + cosmos_proto "github.com/cosmos/cosmos-proto" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" @@ -15,20 +16,44 @@ func MessageGenerator[T proto.Message](x T, options GeneratorOptions) *rapid.Gen return rapid.Custom(func(t *rapid.T) T { msg := msgType.New() - options.setFields(t, msg, 0) + options.setFields(t, nil, msg, 0) return msg.Interface().(T) }) } type GeneratorOptions struct { - AnyTypeURLs []string - Resolver protoregistry.MessageTypeResolver + AnyTypeURLs []string + InterfaceHints map[string]string + Resolver protoregistry.MessageTypeResolver + DisallowNilMessages bool } const depthLimit = 10 -func (opts GeneratorOptions) setFields(t *rapid.T, msg protoreflect.Message, depth int) bool { +func (opts GeneratorOptions) WithAnyTypes(anyTypes ...proto.Message) GeneratorOptions { + for _, a := range anyTypes { + opts.AnyTypeURLs = append(opts.AnyTypeURLs, fmt.Sprintf("/%s", a.ProtoReflect().Descriptor().FullName())) + } + return opts +} + +func (opts GeneratorOptions) WithDisallowNil() GeneratorOptions { + o := &opts + o.DisallowNilMessages = true + return *o +} + +func (opts GeneratorOptions) WithInterfaceHint(i string, impl proto.Message) GeneratorOptions { + if opts.InterfaceHints == nil { + opts.InterfaceHints = make(map[string]string) + } + opts.InterfaceHints[i] = string(impl.ProtoReflect().Descriptor().FullName()) + return opts +} + +func (opts GeneratorOptions) setFields( + t *rapid.T, field protoreflect.FieldDescriptor, msg protoreflect.Message, depth int) bool { // to avoid stack overflow we limit the depth of nested messages if depth > depthLimit { return false @@ -44,7 +69,8 @@ func (opts GeneratorOptions) setFields(t *rapid.T, msg protoreflect.Message, dep opts.genDuration(t, msg) return true case anyFullName: - return opts.genAny(t, msg, depth) + opts.genAny(t, field, msg, depth) + return true case fieldMaskFullName: opts.genFieldMask(t, msg) return true @@ -52,12 +78,14 @@ func (opts GeneratorOptions) setFields(t *rapid.T, msg protoreflect.Message, dep fields := descriptor.Fields() n := fields.Len() for i := 0; i < n; i++ { - field := fields.Get(i) - if !rapid.Bool().Draw(t, fmt.Sprintf("gen-%s", field.Name())) { - continue + f := fields.Get(i) + if !rapid.Bool().Draw(t, fmt.Sprintf("gen-%s", f.Name())) { + if f.Kind() != protoreflect.MessageKind || !opts.DisallowNilMessages { + continue + } } - opts.setFieldValue(t, msg, field, depth) + opts.setFieldValue(t, msg, f, depth) } return true } @@ -80,7 +108,7 @@ func (opts GeneratorOptions) setFieldValue(t *rapid.T, msg protoreflect.Message, n := rapid.IntRange(0, 10).Draw(t, fmt.Sprintf("%sN", name)) for i := 0; i < n; i++ { if kind == protoreflect.MessageKind || kind == protoreflect.GroupKind { - if !opts.setFields(t, list.AppendMutable().Message(), depth+1) { + if !opts.setFields(t, field, list.AppendMutable().Message(), depth+1) { list.Truncate(i) } } else { @@ -96,7 +124,7 @@ func (opts GeneratorOptions) setFieldValue(t *rapid.T, msg protoreflect.Message, valueKind := valueField.Kind() key := opts.genScalarFieldValue(t, keyField, fmt.Sprintf("%s%d-key", name, i)) if valueKind == protoreflect.MessageKind || valueKind == protoreflect.GroupKind { - if !opts.setFields(t, m.Mutable(key.MapKey()).Message(), depth+1) { + if !opts.setFields(t, field, m.Mutable(key.MapKey()).Message(), depth+1) { m.Clear(key.MapKey()) } } else { @@ -104,14 +132,21 @@ func (opts GeneratorOptions) setFieldValue(t *rapid.T, msg protoreflect.Message, m.Set(key.MapKey(), value) } } - default: - if kind == protoreflect.MessageKind || kind == protoreflect.GroupKind { - if !opts.setFields(t, msg.Mutable(field).Message(), depth+1) { + case kind == protoreflect.MessageKind: + mutableField := msg.Mutable(field) + if mutableField.Message().Descriptor().FullName() == anyFullName { + if !opts.genAny(t, field, mutableField.Message(), depth+1) { msg.Clear(field) } - } else { - msg.Set(field, opts.genScalarFieldValue(t, field, name)) + } else if !opts.setFields(t, field, mutableField.Message(), depth+1) { + msg.Clear(field) + } + case kind == protoreflect.GroupKind: + if !opts.setFields(t, field, msg.Mutable(field).Message(), depth+1) { + msg.Clear(field) } + default: + msg.Set(field, opts.genScalarFieldValue(t, field, name)) } } @@ -179,23 +214,35 @@ const ( valueName = "value" ) -func (opts GeneratorOptions) genAny(t *rapid.T, msg protoreflect.Message, depth int) bool { +func (opts GeneratorOptions) genAny( + t *rapid.T, field protoreflect.FieldDescriptor, msg protoreflect.Message, depth int) bool { if len(opts.AnyTypeURLs) == 0 { return false } - fields := msg.Descriptor().Fields() + var typeURL string + fopts := field.Options() + if proto.HasExtension(fopts, cosmos_proto.E_AcceptsInterface) { + ai := proto.GetExtension(fopts, cosmos_proto.E_AcceptsInterface).(string) + if impl, found := opts.InterfaceHints[ai]; found { + typeURL = fmt.Sprintf("/%s", impl) + } else { + panic(fmt.Sprintf("no implementation found for interface %s", ai)) + } + } else { + typeURL = rapid.SampledFrom(opts.AnyTypeURLs).Draw(t, "type_url") + } - typeURL := rapid.SampledFrom(opts.AnyTypeURLs).Draw(t, "type_url") typ, err := opts.Resolver.FindMessageByURL(typeURL) assert.NilError(t, err) + fields := msg.Descriptor().Fields() typeURLField := fields.ByName(typeURLName) assert.Assert(t, typeURLField != nil) msg.Set(typeURLField, protoreflect.ValueOfString(typeURL)) valueMsg := typ.New() - opts.setFields(t, valueMsg, depth+1) + opts.setFields(t, nil, valueMsg, depth+1) valueBz, err := proto.Marshal(valueMsg.Interface()) assert.NilError(t, err) From 0321a7ffffc96ae648047233fc6a4d1e442234d3 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 8 Feb 2023 16:27:41 -0600 Subject: [PATCH 051/122] bank passing --- tests/integration/aminojson/aminojson_test.go | 89 ++++++++++++------- x/tx/aminojson/json_marshal.go | 6 +- x/tx/rapidproto/rapidproto.go | 20 ++++- 3 files changed, 79 insertions(+), 36 deletions(-) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index c5f89bd88700..2165b90e8bce 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -1,7 +1,6 @@ package aminojson import ( - "bytes" "fmt" "testing" "time" @@ -17,6 +16,7 @@ import ( authapi "cosmossdk.io/api/cosmos/auth/v1beta1" authzapi "cosmossdk.io/api/cosmos/authz/v1beta1" + bankapi "cosmossdk.io/api/cosmos/bank/v1beta1" "cosmossdk.io/api/cosmos/crypto/ed25519" distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" "cosmossdk.io/x/tx/aminojson" @@ -31,6 +31,8 @@ import ( authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" authztypes "github.com/cosmos/cosmos-sdk/x/authz" authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module" + "github.com/cosmos/cosmos-sdk/x/bank" + banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" "github.com/cosmos/cosmos-sdk/x/distribution" disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" ) @@ -77,45 +79,58 @@ var ( WithInterfaceHint("cosmos.authz.v1beta1.Authorization", &authzapi.GenericAuthorization{}). WithInterfaceHint("cosmos.base.v1beta1.Msg", &authzapi.MsgGrant{}), ), + + // bank + genType(&banktypes.MsgSend{}, &bankapi.MsgSend{}, genOpts.WithDisallowNil()), + genType(&banktypes.MsgMultiSend{}, &bankapi.MsgMultiSend{}, genOpts.WithDisallowNil()), + genType(&banktypes.MsgUpdateParams{}, &bankapi.MsgUpdateParams{}, genOpts.WithDisallowNil()), + genType(&banktypes.MsgSetSendEnabled{}, &bankapi.MsgSetSendEnabled{}, genOpts), + genType(&banktypes.SendAuthorization{}, &bankapi.SendAuthorization{}, genOpts.WithDisallowNil()), + genType(&banktypes.Params{}, &bankapi.Params{}, genOpts), } ) func TestAminoJSON_Equivalence(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig( - auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}) + auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}) aj := aminojson.NewAminoJSON() for _, tt := range genTypes { - gen := rapidproto.MessageGenerator(tt.pulsar, tt.opts) - fmt.Printf("testing %s\n", tt.pulsar.ProtoReflect().Descriptor().FullName()) - rapid.Check(t, func(t *rapid.T) { - defer func() { - if r := recover(); r != nil { - //fmt.Printf("Panic: %+v\n", r) - t.FailNow() - } - }() - msg := gen.Draw(t, "msg") - postFixPulsarMessage(msg) - - gogo := tt.gogo - sanity := tt.pulsar - - protoBz, err := proto.Marshal(msg) - require.NoError(t, err) + name := string(tt.pulsar.ProtoReflect().Descriptor().FullName()) + t.Run(name, func(t *testing.T) { + gen := rapidproto.MessageGenerator(tt.pulsar, tt.opts) + fmt.Printf("testing %s\n", tt.pulsar.ProtoReflect().Descriptor().FullName()) + rapid.Check(t, func(t *rapid.T) { + defer func() { + if r := recover(); r != nil { + //fmt.Printf("Panic: %+v\n", r) + t.FailNow() + } + }() + msg := gen.Draw(t, "msg") + postFixPulsarMessage(msg) - err = proto.Unmarshal(protoBz, sanity) - require.NoError(t, err) + gogo := tt.gogo + sanity := tt.pulsar - err = encCfg.Codec.Unmarshal(protoBz, gogo) - require.NoError(t, err) + protoBz, err := proto.Marshal(msg) + require.NoError(t, err) - legacyAminoJson, err := encCfg.Amino.MarshalJSON(gogo) - aminoJson, err := aj.MarshalAmino(msg) - if !bytes.Equal(legacyAminoJson, aminoJson) { - println("UNMATCHED") - } - require.Equal(t, string(legacyAminoJson), string(aminoJson)) + err = proto.Unmarshal(protoBz, sanity) + require.NoError(t, err) + + err = encCfg.Codec.Unmarshal(protoBz, gogo) + require.NoError(t, err) + + legacyAminoJson, err := encCfg.Amino.MarshalJSON(gogo) + require.NoError(t, err) + aminoJson, err := aj.MarshalAmino(msg) + require.NoError(t, err) + //if !bytes.Equal(legacyAminoJson, aminoJson) { + // println("UNMATCHED") + //} + require.Equal(t, string(legacyAminoJson), string(aminoJson)) + }) }) } } @@ -230,16 +245,28 @@ func TestModuleAccount(t *testing.T) { aj := aminojson.NewAminoJSON() addr1 := types.AccAddress([]byte("addr1")) - pulsar := &authapi.ModuleAccount{BaseAccount: &authapi.BaseAccount{Address: addr1.String()}, Permissions: []string{}} - gogo := &authtypes.ModuleAccount{} + pulsar := &authapi.ModuleAccount{ + BaseAccount: &authapi.BaseAccount{Address: addr1.String()}, Permissions: []string{}} + gogo := &authtypes.ModuleAccount{ + BaseAccount: &authtypes.BaseAccount{Address: addr1.String()}, Permissions: []string{}} protoBz, err := proto.Marshal(pulsar) require.NoError(t, err) err = encCfg.Codec.Unmarshal(protoBz, gogo) require.NoError(t, err) + + // !!! see below + require.Nil(t, gogo.Permissions) + require.NotNil(t, pulsar.Permissions) + require.Zero(t, len(pulsar.Permissions)) + legacyAminoJson, err := encCfg.Amino.MarshalJSON(gogo) aminoJson, err := aj.MarshalAmino(pulsar) + // yes this is expected. empty []string is not the same as nil []string. this is a bug in gogo. + // `[]string` -> proto.Marshal -> legacyAmino.UnmarshalProto (unmarshals empty slice as nil) + // -> legacyAmino.MarshalJson -> `null` + // `[]string` -> [proto.Marshal -> pulsar.Unmarshal] -> amino.MarshalJson -> `[]` require.NotEqual(t, string(legacyAminoJson), string(aminoJson), "gogo: %s vs %s", string(legacyAminoJson), string(aminoJson)) } diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 8dec4bfb019b..9f185d7f9259 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -81,7 +81,6 @@ func (aj AminoJSON) DefineFieldEncoding(name string, encoder FieldEncoder) { func (aj AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} - //vmsg := protoreflect.ValueOfMessage(message.ProtoReflect()) err := aj.beginMarshal(message.ProtoReflect(), buf) return buf.Bytes(), err } @@ -239,10 +238,11 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e zv, found := aj.getZeroValue(f) if found { v = zv - } else if f.Cardinality() == protoreflect.Repeated { + //} else if f.Cardinality() == protoreflect.Repeated { // TODO // not sure yet - fmt.Printf("WARN: not supported: dont_omit_empty=true on empty repeated field: %s\n", name) + //fmt.Printf("WARN: not supported: dont_omit_empty=true on empty repeated field: %s\n", name) + //return errors.Errorf("not supported: dont_omit_empty=true on empty repeated field: %s", name) } else if f.Kind() == protoreflect.MessageKind && !v.Message().IsValid() { return errors.Errorf("not supported: dont_omit_empty=true on invalid (nil?) message field: %s", name) } diff --git a/x/tx/rapidproto/rapidproto.go b/x/tx/rapidproto/rapidproto.go index 51cd778d6f47..efd639857e4e 100644 --- a/x/tx/rapidproto/rapidproto.go +++ b/x/tx/rapidproto/rapidproto.go @@ -80,7 +80,7 @@ func (opts GeneratorOptions) setFields( for i := 0; i < n; i++ { f := fields.Get(i) if !rapid.Bool().Draw(t, fmt.Sprintf("gen-%s", f.Name())) { - if f.Kind() != protoreflect.MessageKind || !opts.DisallowNilMessages { + if (f.Kind() == protoreflect.MessageKind || f.IsList()) && !opts.DisallowNilMessages { continue } } @@ -105,7 +105,11 @@ func (opts GeneratorOptions) setFieldValue(t *rapid.T, msg protoreflect.Message, switch { case field.IsList(): list := msg.Mutable(field).List() - n := rapid.IntRange(0, 10).Draw(t, fmt.Sprintf("%sN", name)) + min := 0 + if opts.DisallowNilMessages { + min = 1 + } + n := rapid.IntRange(min, 10).Draw(t, fmt.Sprintf("%sN", name)) for i := 0; i < n; i++ { if kind == protoreflect.MessageKind || kind == protoreflect.GroupKind { if !opts.setFields(t, field, list.AppendMutable().Message(), depth+1) { @@ -151,6 +155,18 @@ func (opts GeneratorOptions) setFieldValue(t *rapid.T, msg protoreflect.Message, } func (opts GeneratorOptions) genScalarFieldValue(t *rapid.T, field protoreflect.FieldDescriptor, name string) protoreflect.Value { + fopts := field.Options() + if proto.HasExtension(fopts, cosmos_proto.E_Scalar) { + scalar := proto.GetExtension(fopts, cosmos_proto.E_Scalar).(string) + switch scalar { + case "cosmos.Int": + i32 := rapid.Int32().Draw(t, name) + return protoreflect.ValueOfString(fmt.Sprintf("%d", i32)) + //default: + // t.Fatalf("unknown cosmos_proto.scalar type %s", scalar) + } + } + switch field.Kind() { case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: return protoreflect.ValueOfInt32(rapid.Int32().Draw(t, name)) From 79b9626ee2050d7b9490e37a444db2248b6e7e46 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 9 Feb 2023 10:48:01 -0600 Subject: [PATCH 052/122] wip --- api/cosmos/consensus/v1/tx.pulsar.go | 93 +- api/tendermint/types/params.pulsar.go | 122 +- proto/cosmos/consensus/v1/tx.proto | 2 + proto/tendermint/types/params.proto | 3 +- tests/integration/aminojson/aminojson_test.go | 72 +- x/consensus/types/tx.pb.go | 46 +- x/staking/types/staking.pb.go | 1328 ++++++++--------- x/tx/aminojson/json_marshal.go | 42 +- x/tx/aminojson/json_marshal_test.go | 3 +- x/tx/rapidproto/rapidproto.go | 10 +- 10 files changed, 907 insertions(+), 814 deletions(-) diff --git a/api/cosmos/consensus/v1/tx.pulsar.go b/api/cosmos/consensus/v1/tx.pulsar.go index c85cc532c31f..1a42a41ea46a 100644 --- a/api/cosmos/consensus/v1/tx.pulsar.go +++ b/api/cosmos/consensus/v1/tx.pulsar.go @@ -2,6 +2,7 @@ package consensusv1 import ( + _ "cosmossdk.io/api/amino" _ "cosmossdk.io/api/cosmos/msg/v1" types "cosmossdk.io/api/tendermint/types" fmt "fmt" @@ -1143,50 +1144,54 @@ var file_cosmos_consensus_v1_tx_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, - 0x2e, 0x76, 0x31, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, - 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, - 0x69, 0x6e, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8d, 0x02, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, - 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, - 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x45, 0x76, 0x69, - 0x64, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x08, 0x65, 0x76, 0x69, - 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x09, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x3a, 0x0e, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x32, 0x69, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x62, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2c, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, - 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xc2, 0x01, 0x0a, - 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x73, - 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, - 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6e, - 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, - 0x73, 0x75, 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x65, - 0x6e, 0x73, 0x75, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x76, 0x31, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, + 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1d, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb8, 0x02, 0x0a, 0x0f, 0x4d, 0x73, + 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x76, + 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x08, + 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x09, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x3a, 0x39, 0x82, 0xe7, 0xb0, 0x2a, 0x09, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, + 0x69, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x62, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2c, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, + 0x76, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0xc2, 0x01, 0x0a, 0x17, 0x63, + 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, + 0x73, 0x75, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x65, + 0x6e, 0x73, 0x75, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, + 0x73, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, + 0x75, 0x73, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x43, + 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x3a, 0x3a, 0x43, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/tendermint/types/params.pulsar.go b/api/tendermint/types/params.pulsar.go index 413d1807c0da..e7c629572581 100644 --- a/api/tendermint/types/params.pulsar.go +++ b/api/tendermint/types/params.pulsar.go @@ -2,6 +2,7 @@ package types import ( + _ "cosmossdk.io/api/amino" fmt "fmt" runtime "github.com/cosmos/cosmos-proto/runtime" _ "github.com/cosmos/gogoproto/gogoproto" @@ -3316,66 +3317,67 @@ var file_tendermint_types_params_proto_rawDesc = []byte{ 0x0a, 0x1d, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x10, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, - 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x80, 0x02, 0x0a, 0x0f, 0x43, 0x6f, 0x6e, 0x73, - 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x62, - 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x52, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3f, - 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, - 0x39, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x0b, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, - 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x61, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x4a, - 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0xa9, 0x01, 0x0a, 0x0e, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, - 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, - 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x4d, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, - 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0xc8, 0xde, 0x1f, 0x00, - 0x98, 0xdf, 0x1f, 0x01, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x44, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, - 0x73, 0x22, 0x3f, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x75, 0x62, - 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, 0x3a, 0x08, 0xb8, 0xa0, 0x1f, 0x01, 0xe8, 0xa0, - 0x1f, 0x01, 0x22, 0x2b, 0x0a, 0x0d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x70, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x52, 0x03, 0x61, 0x70, 0x70, 0x3a, 0x08, 0xb8, 0xa0, 0x1f, 0x01, 0xe8, 0xa0, 0x1f, 0x01, 0x22, - 0x5a, 0x0a, 0x0c, 0x48, 0x61, 0x73, 0x68, 0x65, 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, - 0x26, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, - 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, - 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x47, 0x61, 0x73, 0x42, 0xab, 0x01, 0x0a, 0x14, - 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x42, 0x0b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, - 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0xa2, 0x02, 0x03, 0x54, 0x54, 0x58, 0xaa, 0x02, 0x10, 0x54, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x73, 0xca, - 0x02, 0x10, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x5c, 0x54, 0x79, 0x70, - 0x65, 0x73, 0xe2, 0x02, 0x1c, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x5c, - 0x54, 0x79, 0x70, 0x65, 0x73, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x11, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x3a, 0x3a, - 0x54, 0x79, 0x70, 0x65, 0x73, 0xa8, 0xe2, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x73, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x80, 0x02, 0x0a, 0x0f, 0x43, + 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x33, + 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x05, 0x62, 0x6c, + 0x6f, 0x63, 0x6b, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, + 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x45, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x08, 0x65, 0x76, 0x69, 0x64, 0x65, 0x6e, 0x63, + 0x65, 0x12, 0x3f, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x12, 0x39, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, + 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x49, 0x0a, + 0x0b, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6d, 0x61, 0x78, + 0x5f, 0x67, 0x61, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x47, + 0x61, 0x73, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x45, 0x76, 0x69, + 0x64, 0x65, 0x6e, 0x63, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x6d, + 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x41, 0x67, 0x65, 0x4e, + 0x75, 0x6d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x12, 0x52, 0x0a, 0x10, 0x6d, 0x61, 0x78, 0x5f, + 0x61, 0x67, 0x65, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0xc8, + 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x6d, 0x61, + 0x78, 0x41, 0x67, 0x65, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, + 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x08, 0x6d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x0f, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x22, 0x0a, 0x0d, + 0x70, 0x75, 0x62, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x73, + 0x3a, 0x08, 0xb8, 0xa0, 0x1f, 0x01, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0x2b, 0x0a, 0x0d, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x61, + 0x70, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, 0x61, 0x70, 0x70, 0x3a, 0x08, 0xb8, + 0xa0, 0x1f, 0x01, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0x5a, 0x0a, 0x0c, 0x48, 0x61, 0x73, 0x68, 0x65, + 0x64, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, + 0x22, 0x0a, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x61, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x4d, 0x61, 0x78, + 0x47, 0x61, 0x73, 0x42, 0xab, 0x01, 0x0a, 0x14, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x42, 0x0b, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x21, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0xa2, 0x02, + 0x03, 0x54, 0x54, 0x58, 0xaa, 0x02, 0x10, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x73, 0xca, 0x02, 0x10, 0x54, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x6d, 0x69, 0x6e, 0x74, 0x5c, 0x54, 0x79, 0x70, 0x65, 0x73, 0xe2, 0x02, 0x1c, 0x54, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x5c, 0x54, 0x79, 0x70, 0x65, 0x73, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x11, 0x54, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x3a, 0x3a, 0x54, 0x79, 0x70, 0x65, 0x73, 0xa8, 0xe2, 0x1e, + 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/consensus/v1/tx.proto b/proto/cosmos/consensus/v1/tx.proto index 0a7a3de022cf..e362d6ae4a3b 100644 --- a/proto/cosmos/consensus/v1/tx.proto +++ b/proto/cosmos/consensus/v1/tx.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package cosmos.consensus.v1; +import "amino/amino.proto"; import "cosmos_proto/cosmos.proto"; import "cosmos/msg/v1/msg.proto"; import "tendermint/types/params.proto"; @@ -20,6 +21,7 @@ service Msg { // MsgUpdateParams is the Msg/UpdateParams request type. message MsgUpdateParams { option (cosmos.msg.v1.signer) = "authority"; + option (amino.name) = "cosmos-sdk/x/consensus/MsgUpdateParams"; // authority is the address that controls the module (defaults to x/gov unless overwritten). string authority = 1 [(cosmos_proto.scalar) = "cosmos.AddressString"]; diff --git a/proto/tendermint/types/params.proto b/proto/tendermint/types/params.proto index 66963eec4e9a..99f5911166b8 100644 --- a/proto/tendermint/types/params.proto +++ b/proto/tendermint/types/params.proto @@ -3,6 +3,7 @@ package tendermint.types; option go_package = "github.com/cometbft/cometbft/proto/tendermint/types"; +import "amino/amino.proto"; import "gogoproto/gogo.proto"; import "google/protobuf/duration.proto"; @@ -43,7 +44,7 @@ message EvidenceParams { // mechanism for handling [Nothing-At-Stake // attacks](https://github.com/ethereum/wiki/wiki/Proof-of-Stake-FAQ#what-is-the-nothing-at-stake-problem-and-how-can-it-be-fixed). google.protobuf.Duration max_age_duration = 2 - [(gogoproto.nullable) = false, (gogoproto.stdduration) = true]; + [(gogoproto.nullable) = false, (gogoproto.stdduration) = true, (amino.dont_omitempty) = true]; // This sets the maximum size of total evidence in bytes that can be committed in a single block. // and should fall comfortably under the max block bytes. diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 2165b90e8bce..038ea3c77518 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -11,14 +11,17 @@ import ( "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/types/known/anypb" + "google.golang.org/protobuf/types/known/durationpb" "google.golang.org/protobuf/types/known/timestamppb" "pgregory.net/rapid" authapi "cosmossdk.io/api/cosmos/auth/v1beta1" authzapi "cosmossdk.io/api/cosmos/authz/v1beta1" bankapi "cosmossdk.io/api/cosmos/bank/v1beta1" + consensusapi "cosmossdk.io/api/cosmos/consensus/v1" "cosmossdk.io/api/cosmos/crypto/ed25519" distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" + govv1beta1 "cosmossdk.io/api/cosmos/gov/v1beta1" "cosmossdk.io/x/tx/aminojson" "cosmossdk.io/x/tx/rapidproto" codectypes "github.com/cosmos/cosmos-sdk/codec/types" @@ -33,8 +36,11 @@ import ( authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module" "github.com/cosmos/cosmos-sdk/x/bank" banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" + "github.com/cosmos/cosmos-sdk/x/consensus" + consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types" "github.com/cosmos/cosmos-sdk/x/distribution" disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" ) type generatedType struct { @@ -85,14 +91,17 @@ var ( genType(&banktypes.MsgMultiSend{}, &bankapi.MsgMultiSend{}, genOpts.WithDisallowNil()), genType(&banktypes.MsgUpdateParams{}, &bankapi.MsgUpdateParams{}, genOpts.WithDisallowNil()), genType(&banktypes.MsgSetSendEnabled{}, &bankapi.MsgSetSendEnabled{}, genOpts), - genType(&banktypes.SendAuthorization{}, &bankapi.SendAuthorization{}, genOpts.WithDisallowNil()), + genType(&banktypes.SendAuthorization{}, &bankapi.SendAuthorization{}, genOpts), genType(&banktypes.Params{}, &bankapi.Params{}, genOpts), + + // consensus + genType(&consensustypes.MsgUpdateParams{}, &consensusapi.MsgUpdateParams{}, genOpts), } ) func TestAminoJSON_Equivalence(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig( - auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}) + auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, consensus.AppModuleBasic{}) aj := aminojson.NewAminoJSON() for _, tt := range genTypes { @@ -147,14 +156,22 @@ func TestAminoJSON_LegacyParity(t *testing.T) { genericAuthPulsar, _ := anypb.New(&authzapi.GenericAuthorization{Msg: "foo"}) cases := map[string]struct { - gogo gogoproto.Message - pulsar proto.Message + gogo gogoproto.Message + pulsar proto.Message + pulsarMarshalFails bool }{ "auth/params": {gogo: &authtypes.Params{TxSigLimit: 10}, pulsar: &authapi.Params{TxSigLimit: 10}}, "auth/module_account": { - gogo: &authtypes.ModuleAccount{BaseAccount: authtypes.NewBaseAccountWithAddress(addr1), - Permissions: []string{}}, - pulsar: &authapi.ModuleAccount{BaseAccount: &authapi.BaseAccount{Address: addr1.String()}, Permissions: []string{}}, + gogo: &authtypes.ModuleAccount{ + BaseAccount: authtypes.NewBaseAccountWithAddress(addr1), Permissions: []string{}}, + pulsar: &authapi.ModuleAccount{ + BaseAccount: &authapi.BaseAccount{Address: addr1.String()}, Permissions: []string{}}, + }, + "auth/module_account/null_slice": { + gogo: &authtypes.ModuleAccount{ + BaseAccount: authtypes.NewBaseAccountWithAddress(addr1), Permissions: nil}, + pulsar: &authapi.ModuleAccount{ + BaseAccount: &authapi.BaseAccount{Address: addr1.String()}, Permissions: nil}, }, "authz/msg_grant": { gogo: &authztypes.MsgGrant{ @@ -170,10 +187,10 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &authztypes.MsgExec{Msgs: []*codectypes.Any{}}, pulsar: &authzapi.MsgExec{Msgs: []*anypb.Any{}}, }, - "authz/msg_exec/null_msg": { - gogo: &authztypes.MsgExec{Msgs: []*codectypes.Any{(*codectypes.Any)(nil)}}, - pulsar: &authzapi.MsgExec{Msgs: []*anypb.Any{(*anypb.Any)(nil)}}, - }, + //"authz/msg_exec/null_msg": { + // gogo: &authztypes.MsgExec{Msgs: []*codectypes.Any{(*codectypes.Any)(nil)}}, + // pulsar: &authzapi.MsgExec{Msgs: []*anypb.Any{(*anypb.Any)(nil)}}, + //}, "distribution/delegator_starting_info": { gogo: &disttypes.DelegatorStartingInfo{}, pulsar: &distapi.DelegatorStartingInfo{}, @@ -182,10 +199,10 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &disttypes.DelegatorStartingInfo{Stake: types.NewDec(10)}, pulsar: &distapi.DelegatorStartingInfo{Stake: "10.000000000000000000"}, }, - "distribution/delegation_delegator_reward": { - gogo: &disttypes.DelegationDelegatorReward{}, - pulsar: &distapi.DelegationDelegatorReward{}, - }, + //"distribution/delegation_delegator_reward": { + // gogo: &disttypes.DelegationDelegatorReward{}, + // pulsar: &distapi.DelegationDelegatorReward{}, + //}, "distribution/community_pool_spend_proposal_with_deposit": { gogo: &disttypes.CommunityPoolSpendProposalWithDeposit{}, pulsar: &distapi.CommunityPoolSpendProposalWithDeposit{}, @@ -197,6 +214,21 @@ func TestAminoJSON_LegacyParity(t *testing.T) { "crypto/pubkey": { gogo: &cryptotypes.PubKey{Key: []byte("key")}, pulsar: &ed25519.PubKey{Key: []byte("key")}, }, + "consensus/evidence_params/duration": { + gogo: &govtypes.VotingParams{VotingPeriod: 1e9 + 7}, + pulsar: &govv1beta1.VotingParams{VotingPeriod: &durationpb.Duration{Seconds: 1, Nanos: 7}}, + }, + "consensus/evidence_params/big_duration": { + gogo: &govtypes.VotingParams{VotingPeriod: time.Duration(rapidproto.MaxDurationSeconds*1e9) + 999999999}, + pulsar: &govv1beta1.VotingParams{VotingPeriod: &durationpb.Duration{ + Seconds: rapidproto.MaxDurationSeconds, Nanos: 999999999}}, + }, + "consensus/evidence_params/too_big_duration": { + gogo: &govtypes.VotingParams{VotingPeriod: time.Duration(rapidproto.MaxDurationSeconds*1e9) + 999999999}, + pulsar: &govv1beta1.VotingParams{VotingPeriod: &durationpb.Duration{ + Seconds: rapidproto.MaxDurationSeconds + 1, Nanos: 999999999}}, + pulsarMarshalFails: true, + }, } for name, tc := range cases { t.Run(name, func(t *testing.T) { @@ -204,8 +236,18 @@ func TestAminoJSON_LegacyParity(t *testing.T) { require.NoError(t, err) pulsarBytes, err := aj.MarshalAmino(tc.pulsar) + if tc.pulsarMarshalFails { + require.Error(t, err) + return + } require.NoError(t, err) + //pulsarProtoBytes, err := proto.Marshal(tc.pulsar) + //require.NoError(t, err) + // + //err = encCfg.Codec.Unmarshal(pulsarProtoBytes, tc.gogo) + //require.NoError(t, err) + fmt.Printf("pulsar: %s\n", string(pulsarBytes)) require.Equal(t, string(gogoBytes), string(pulsarBytes), "gogo: %s vs pulsar: %s", gogoBytes, pulsarBytes) }) diff --git a/x/consensus/types/tx.pb.go b/x/consensus/types/tx.pb.go index abb69d2dc8db..b20ba0b94132 100644 --- a/x/consensus/types/tx.pb.go +++ b/x/consensus/types/tx.pb.go @@ -9,6 +9,7 @@ import ( types "github.com/cometbft/cometbft/proto/tendermint/types" _ "github.com/cosmos/cosmos-proto" _ "github.com/cosmos/cosmos-sdk/types/msgservice" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" grpc1 "github.com/cosmos/gogoproto/grpc" proto "github.com/cosmos/gogoproto/proto" grpc "google.golang.org/grpc" @@ -151,31 +152,32 @@ func init() { func init() { proto.RegisterFile("cosmos/consensus/v1/tx.proto", fileDescriptor_2135c60575ab504d) } var fileDescriptor_2135c60575ab504d = []byte{ - // 370 bytes of a gzipped FileDescriptorProto + // 391 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x49, 0xce, 0x2f, 0xce, 0xcd, 0x2f, 0xd6, 0x4f, 0xce, 0xcf, 0x2b, 0x4e, 0xcd, 0x2b, 0x2e, 0x2d, 0xd6, 0x2f, 0x33, 0xd4, 0x2f, 0xa9, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x86, 0xc8, 0xea, 0xc1, 0x65, 0xf5, - 0xca, 0x0c, 0xa5, 0x24, 0x21, 0x82, 0xf1, 0x60, 0x25, 0xfa, 0x50, 0x15, 0x60, 0x8e, 0x94, 0x38, - 0xd4, 0xb4, 0xdc, 0xe2, 0x74, 0x90, 0x39, 0xb9, 0xc5, 0xe9, 0x50, 0x09, 0xd9, 0x92, 0xd4, 0xbc, - 0x94, 0xd4, 0xa2, 0xdc, 0xcc, 0xbc, 0x12, 0xfd, 0x92, 0xca, 0x82, 0xd4, 0x62, 0xfd, 0x82, 0xc4, - 0xa2, 0xc4, 0x5c, 0xa8, 0x3e, 0xa5, 0x5e, 0x26, 0x2e, 0x7e, 0xdf, 0xe2, 0xf4, 0xd0, 0x82, 0x94, - 0xc4, 0x92, 0xd4, 0x00, 0xb0, 0x8c, 0x90, 0x19, 0x17, 0x67, 0x62, 0x69, 0x49, 0x46, 0x7e, 0x51, - 0x66, 0x49, 0xa5, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0xa7, 0x93, 0xc4, 0xa5, 0x2d, 0xba, 0x22, 0x50, - 0x0b, 0x1d, 0x53, 0x52, 0x8a, 0x52, 0x8b, 0x8b, 0x83, 0x4b, 0x8a, 0x32, 0xf3, 0xd2, 0x83, 0x10, - 0x4a, 0x85, 0x8c, 0xb9, 0x58, 0x93, 0x72, 0xf2, 0x93, 0xb3, 0x25, 0x98, 0x14, 0x18, 0x35, 0xb8, - 0x8d, 0x64, 0xf5, 0x10, 0x56, 0xeb, 0x81, 0xad, 0xd6, 0x73, 0x02, 0x49, 0x43, 0x6c, 0x09, 0x82, - 0xa8, 0x15, 0xb2, 0xe1, 0xe2, 0x48, 0x2d, 0xcb, 0x4c, 0x49, 0xcd, 0x4b, 0x4e, 0x95, 0x60, 0x06, - 0xeb, 0x53, 0xc0, 0xd4, 0xe7, 0x0a, 0x55, 0x01, 0xd5, 0x0a, 0xd7, 0x21, 0x64, 0xcf, 0xc5, 0x59, - 0x96, 0x98, 0x93, 0x99, 0x92, 0x58, 0x92, 0x5f, 0x24, 0xc1, 0x02, 0xd6, 0xae, 0x88, 0xa9, 0x3d, - 0x0c, 0xa6, 0x04, 0xaa, 0x1f, 0xa1, 0xc7, 0x8a, 0xaf, 0xe9, 0xf9, 0x06, 0x2d, 0x84, 0x1f, 0x94, - 0x24, 0xb9, 0xc4, 0xd1, 0x82, 0x23, 0x28, 0xb5, 0xb8, 0x00, 0x14, 0x09, 0x46, 0x99, 0x5c, 0xcc, - 0xbe, 0xc5, 0xe9, 0x42, 0x49, 0x5c, 0x3c, 0x28, 0xa1, 0xa5, 0xa2, 0x87, 0x25, 0xaa, 0xf4, 0xd0, - 0x0c, 0x91, 0xd2, 0x21, 0x46, 0x15, 0xcc, 0x2a, 0x27, 0x8f, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, - 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x71, 0xc2, 0x63, 0x39, 0x86, 0x0b, 0x8f, 0xe5, 0x18, 0x6e, - 0x3c, 0x96, 0x63, 0x88, 0xd2, 0x4b, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, - 0x87, 0x27, 0x20, 0x10, 0xa5, 0x5b, 0x9c, 0x92, 0xad, 0x5f, 0x81, 0x94, 0x9a, 0xc0, 0x5e, 0x4f, - 0x62, 0x03, 0x47, 0xb3, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x3b, 0x89, 0xc5, 0x6c, 0x6e, 0x02, - 0x00, 0x00, + 0xca, 0x0c, 0xa5, 0x04, 0x13, 0x73, 0x33, 0xf3, 0xf2, 0xf5, 0xc1, 0x24, 0x44, 0x9d, 0x94, 0x24, + 0x44, 0x5d, 0x3c, 0x98, 0xa7, 0x0f, 0xd5, 0x04, 0x91, 0x12, 0x87, 0x5a, 0x90, 0x5b, 0x9c, 0x0e, + 0x32, 0x3a, 0xb7, 0x38, 0x1d, 0x2a, 0x21, 0x5b, 0x92, 0x9a, 0x97, 0x92, 0x5a, 0x94, 0x9b, 0x99, + 0x57, 0xa2, 0x5f, 0x52, 0x59, 0x90, 0x5a, 0xac, 0x5f, 0x90, 0x58, 0x94, 0x98, 0x0b, 0xd5, 0xa7, + 0xb4, 0x83, 0x89, 0x8b, 0xdf, 0xb7, 0x38, 0x3d, 0xb4, 0x20, 0x25, 0xb1, 0x24, 0x35, 0x00, 0x2c, + 0x23, 0x64, 0xc6, 0xc5, 0x99, 0x58, 0x5a, 0x92, 0x91, 0x5f, 0x94, 0x59, 0x52, 0x29, 0xc1, 0xa8, + 0xc0, 0xa8, 0xc1, 0xe9, 0x24, 0x71, 0x69, 0x8b, 0xae, 0x08, 0xd4, 0x42, 0xc7, 0x94, 0x94, 0xa2, + 0xd4, 0xe2, 0xe2, 0xe0, 0x92, 0xa2, 0xcc, 0xbc, 0xf4, 0x20, 0x84, 0x52, 0x21, 0x63, 0x2e, 0xd6, + 0xa4, 0x9c, 0xfc, 0xe4, 0x6c, 0x09, 0x26, 0x05, 0x46, 0x0d, 0x6e, 0x23, 0x59, 0x3d, 0x84, 0xd5, + 0x7a, 0x60, 0xab, 0xf5, 0x9c, 0x40, 0xd2, 0x10, 0x5b, 0x82, 0x20, 0x6a, 0x85, 0x6c, 0xb8, 0x38, + 0x52, 0xcb, 0x32, 0x53, 0x52, 0xf3, 0x92, 0x53, 0x25, 0x98, 0xc1, 0xfa, 0x14, 0x30, 0xf5, 0xb9, + 0x42, 0x55, 0x40, 0xb5, 0xc2, 0x75, 0x08, 0xd9, 0x73, 0x71, 0x96, 0x25, 0xe6, 0x64, 0xa6, 0x24, + 0x96, 0xe4, 0x17, 0x49, 0xb0, 0x80, 0xb5, 0x2b, 0x62, 0x6a, 0x0f, 0x83, 0x29, 0x81, 0xea, 0x47, + 0xe8, 0xb1, 0xb2, 0x6c, 0x7a, 0xbe, 0x41, 0x0b, 0xe1, 0x87, 0xae, 0xe7, 0x1b, 0xb4, 0xd4, 0x20, + 0xfe, 0xd4, 0x2d, 0x4e, 0xc9, 0xd6, 0xaf, 0x40, 0x8a, 0x31, 0xb4, 0x60, 0x52, 0x92, 0xe4, 0x12, + 0x47, 0x13, 0x0a, 0x4a, 0x2d, 0x2e, 0x00, 0x29, 0x37, 0xca, 0xe4, 0x62, 0xf6, 0x2d, 0x4e, 0x17, + 0x4a, 0xe2, 0xe2, 0x41, 0x09, 0x58, 0x15, 0x3d, 0x2c, 0x11, 0xad, 0x87, 0x66, 0x88, 0x94, 0x0e, + 0x31, 0xaa, 0x60, 0x56, 0x39, 0x79, 0x9c, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, + 0x47, 0x72, 0x8c, 0x13, 0x1e, 0xcb, 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, + 0x94, 0x5e, 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0x3e, 0x3c, 0xf9, 0x61, + 0xf5, 0x19, 0x38, 0x94, 0x92, 0xd8, 0xc0, 0x29, 0xc2, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0xbd, + 0x91, 0xef, 0x75, 0xac, 0x02, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index b45d117e5c98..05307106602f 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -1402,670 +1402,670 @@ func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_go func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 10598 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x7b, 0x70, 0x24, 0xc7, - 0x79, 0x1f, 0xf6, 0xbd, 0xfb, 0x2d, 0x76, 0x77, 0xd0, 0x00, 0xef, 0x70, 0x7b, 0x24, 0x00, 0x0e, - 0x1f, 0xf7, 0x20, 0x89, 0x23, 0x8f, 0xbc, 0x23, 0x89, 0x13, 0x45, 0xef, 0x2e, 0xf6, 0xee, 0x70, - 0xc4, 0x4b, 0xb3, 0xc0, 0xf1, 0xe1, 0x58, 0xa3, 0xc1, 0x6e, 0x03, 0x18, 0xde, 0xee, 0xcc, 0x68, - 0x66, 0xf6, 0x0e, 0x60, 0xb9, 0x52, 0xb4, 0x65, 0x3b, 0xf2, 0xc5, 0x51, 0x64, 0x29, 0x65, 0xcb, - 0xb2, 0x4e, 0xa1, 0xac, 0x58, 0xa2, 0x9c, 0x97, 0x6c, 0x29, 0xb2, 0x1c, 0x97, 0x5d, 0x72, 0x9e, - 0xb2, 0x93, 0x4a, 0x49, 0xae, 0x54, 0xe2, 0x4a, 0x25, 0x8c, 0x43, 0xa9, 0x22, 0x45, 0x96, 0x63, - 0x5b, 0xa6, 0x93, 0x38, 0xaa, 0x54, 0x52, 0xfd, 0x9a, 0xc7, 0x3e, 0x30, 0x8b, 0x13, 0x49, 0x3b, - 0xa5, 0x7f, 0xee, 0x76, 0xba, 0xbf, 0xef, 0x37, 0xdd, 0x5f, 0x7f, 0xfd, 0xf5, 0xf7, 0x7d, 0xdd, - 0xd3, 0x80, 0x3f, 0xbd, 0x00, 0x73, 0x3b, 0xa6, 0xb9, 0xd3, 0xc6, 0x67, 0x2c, 0xdb, 0x74, 0xcd, - 0xad, 0xee, 0xf6, 0x99, 0x16, 0x76, 0x9a, 0xb6, 0x6e, 0xb9, 0xa6, 0x3d, 0x4f, 0xcb, 0x50, 0x89, - 0x51, 0xcc, 0x0b, 0x0a, 0x79, 0x05, 0x26, 0x2e, 0xea, 0x6d, 0xbc, 0xe8, 0x11, 0x36, 0xb0, 0x8b, - 0x9e, 0x80, 0xe4, 0xb6, 0xde, 0xc6, 0xd3, 0xb1, 0xb9, 0xc4, 0xc9, 0xfc, 0xd9, 0x7b, 0xe7, 0x7b, - 0x98, 0xe6, 0xc3, 0x1c, 0xeb, 0xa4, 0x58, 0xa1, 0x1c, 0xf2, 0xd7, 0x93, 0x30, 0x39, 0xa0, 0x16, - 0x21, 0x48, 0x1a, 0x5a, 0x87, 0x20, 0xc6, 0x4e, 0xe6, 0x14, 0xfa, 0x1b, 0x4d, 0x43, 0xc6, 0xd2, - 0x9a, 0xd7, 0xb4, 0x1d, 0x3c, 0x1d, 0xa7, 0xc5, 0xe2, 0x11, 0xcd, 0x00, 0xb4, 0xb0, 0x85, 0x8d, - 0x16, 0x36, 0x9a, 0xfb, 0xd3, 0x89, 0xb9, 0xc4, 0xc9, 0x9c, 0x12, 0x28, 0x41, 0x0f, 0xc0, 0x84, - 0xd5, 0xdd, 0x6a, 0xeb, 0x4d, 0x35, 0x40, 0x06, 0x73, 0x89, 0x93, 0x29, 0x45, 0x62, 0x15, 0x8b, - 0x3e, 0xf1, 0x09, 0x28, 0xdd, 0xc0, 0xda, 0xb5, 0x20, 0x69, 0x9e, 0x92, 0x16, 0x49, 0x71, 0x80, - 0xb0, 0x06, 0xe3, 0x1d, 0xec, 0x38, 0xda, 0x0e, 0x56, 0xdd, 0x7d, 0x0b, 0x4f, 0x27, 0x69, 0xef, - 0xe7, 0xfa, 0x7a, 0xdf, 0xdb, 0xf3, 0x3c, 0xe7, 0xda, 0xd8, 0xb7, 0x30, 0xaa, 0x40, 0x0e, 0x1b, - 0xdd, 0x0e, 0x43, 0x48, 0x0d, 0x91, 0x5f, 0xdd, 0xe8, 0x76, 0x7a, 0x51, 0xb2, 0x84, 0x8d, 0x43, - 0x64, 0x1c, 0x6c, 0x5f, 0xd7, 0x9b, 0x78, 0x3a, 0x4d, 0x01, 0x4e, 0xf4, 0x01, 0x34, 0x58, 0x7d, - 0x2f, 0x86, 0xe0, 0x43, 0x35, 0xc8, 0xe1, 0x3d, 0x17, 0x1b, 0x8e, 0x6e, 0x1a, 0xd3, 0x19, 0x0a, - 0x72, 0xdf, 0x80, 0x51, 0xc4, 0xed, 0x56, 0x2f, 0x84, 0xcf, 0x87, 0xce, 0x43, 0xc6, 0xb4, 0x5c, - 0xdd, 0x34, 0x9c, 0xe9, 0xec, 0x5c, 0xec, 0x64, 0xfe, 0xec, 0x9d, 0x03, 0x15, 0x61, 0x8d, 0xd1, - 0x28, 0x82, 0x18, 0x2d, 0x81, 0xe4, 0x98, 0x5d, 0xbb, 0x89, 0xd5, 0xa6, 0xd9, 0xc2, 0xaa, 0x6e, - 0x6c, 0x9b, 0xd3, 0x39, 0x0a, 0x30, 0xdb, 0xdf, 0x11, 0x4a, 0x58, 0x33, 0x5b, 0x78, 0xc9, 0xd8, - 0x36, 0x95, 0xa2, 0x13, 0x7a, 0x46, 0x47, 0x20, 0xed, 0xec, 0x1b, 0xae, 0xb6, 0x37, 0x3d, 0x4e, - 0x35, 0x84, 0x3f, 0xc9, 0xbf, 0x96, 0x86, 0xd2, 0x28, 0x2a, 0x76, 0x01, 0x52, 0xdb, 0xa4, 0x97, - 0xd3, 0xf1, 0xc3, 0xc8, 0x80, 0xf1, 0x84, 0x85, 0x98, 0xbe, 0x4d, 0x21, 0x56, 0x20, 0x6f, 0x60, - 0xc7, 0xc5, 0x2d, 0xa6, 0x11, 0x89, 0x11, 0x75, 0x0a, 0x18, 0x53, 0xbf, 0x4a, 0x25, 0x6f, 0x4b, - 0xa5, 0x9e, 0x83, 0x92, 0xd7, 0x24, 0xd5, 0xd6, 0x8c, 0x1d, 0xa1, 0x9b, 0x67, 0xa2, 0x5a, 0x32, - 0x5f, 0x17, 0x7c, 0x0a, 0x61, 0x53, 0x8a, 0x38, 0xf4, 0x8c, 0x16, 0x01, 0x4c, 0x03, 0x9b, 0xdb, - 0x6a, 0x0b, 0x37, 0xdb, 0xd3, 0xd9, 0x21, 0x52, 0x5a, 0x23, 0x24, 0x7d, 0x52, 0x32, 0x59, 0x69, - 0xb3, 0x8d, 0x9e, 0xf4, 0x55, 0x2d, 0x33, 0x44, 0x53, 0x56, 0xd8, 0x24, 0xeb, 0xd3, 0xb6, 0x4d, - 0x28, 0xda, 0x98, 0xe8, 0x3d, 0x6e, 0xf1, 0x9e, 0xe5, 0x68, 0x23, 0xe6, 0x23, 0x7b, 0xa6, 0x70, - 0x36, 0xd6, 0xb1, 0x82, 0x1d, 0x7c, 0x44, 0xf7, 0x80, 0x57, 0xa0, 0x52, 0xb5, 0x02, 0x6a, 0x85, - 0xc6, 0x45, 0xe1, 0xaa, 0xd6, 0xc1, 0xe5, 0x97, 0xa0, 0x18, 0x16, 0x0f, 0x9a, 0x82, 0x94, 0xe3, - 0x6a, 0xb6, 0x4b, 0xb5, 0x30, 0xa5, 0xb0, 0x07, 0x24, 0x41, 0x02, 0x1b, 0x2d, 0x6a, 0xe5, 0x52, - 0x0a, 0xf9, 0x89, 0x7e, 0xc0, 0xef, 0x70, 0x82, 0x76, 0xf8, 0xfe, 0xfe, 0x11, 0x0d, 0x21, 0xf7, - 0xf6, 0xbb, 0xfc, 0x38, 0x14, 0x42, 0x1d, 0x18, 0xf5, 0xd5, 0xf2, 0x0f, 0xc3, 0x1d, 0x03, 0xa1, - 0xd1, 0x73, 0x30, 0xd5, 0x35, 0x74, 0xc3, 0xc5, 0xb6, 0x65, 0x63, 0xa2, 0xb1, 0xec, 0x55, 0xd3, - 0xdf, 0xc8, 0x0c, 0xd1, 0xb9, 0xcd, 0x20, 0x35, 0x43, 0x51, 0x26, 0xbb, 0xfd, 0x85, 0xa7, 0x73, - 0xd9, 0x6f, 0x66, 0xa4, 0x97, 0x5f, 0x7e, 0xf9, 0xe5, 0xb8, 0xfc, 0x5b, 0x69, 0x98, 0x1a, 0x34, - 0x67, 0x06, 0x4e, 0xdf, 0x23, 0x90, 0x36, 0xba, 0x9d, 0x2d, 0x6c, 0x53, 0x21, 0xa5, 0x14, 0xfe, - 0x84, 0x2a, 0x90, 0x6a, 0x6b, 0x5b, 0xb8, 0x3d, 0x9d, 0x9c, 0x8b, 0x9d, 0x2c, 0x9e, 0x7d, 0x60, - 0xa4, 0x59, 0x39, 0xbf, 0x4c, 0x58, 0x14, 0xc6, 0x89, 0xde, 0x09, 0x49, 0x6e, 0xa2, 0x09, 0xc2, - 0xe9, 0xd1, 0x10, 0xc8, 0x5c, 0x52, 0x28, 0x1f, 0x3a, 0x0e, 0x39, 0xf2, 0x3f, 0xd3, 0x8d, 0x34, - 0x6d, 0x73, 0x96, 0x14, 0x10, 0xbd, 0x40, 0x65, 0xc8, 0xd2, 0x69, 0xd2, 0xc2, 0x62, 0x69, 0xf3, - 0x9e, 0x89, 0x62, 0xb5, 0xf0, 0xb6, 0xd6, 0x6d, 0xbb, 0xea, 0x75, 0xad, 0xdd, 0xc5, 0x54, 0xe1, - 0x73, 0xca, 0x38, 0x2f, 0xbc, 0x4a, 0xca, 0xd0, 0x2c, 0xe4, 0xd9, 0xac, 0xd2, 0x8d, 0x16, 0xde, - 0xa3, 0xd6, 0x33, 0xa5, 0xb0, 0x89, 0xb6, 0x44, 0x4a, 0xc8, 0xeb, 0x5f, 0x74, 0x4c, 0x43, 0xa8, - 0x26, 0x7d, 0x05, 0x29, 0xa0, 0xaf, 0x7f, 0xbc, 0xd7, 0x70, 0xdf, 0x35, 0xb8, 0x7b, 0x7d, 0x73, - 0xe9, 0x04, 0x94, 0x28, 0xc5, 0xa3, 0x7c, 0xe8, 0xb5, 0xf6, 0xf4, 0xc4, 0x5c, 0xec, 0x64, 0x56, - 0x29, 0xb2, 0xe2, 0x35, 0x5e, 0x2a, 0x7f, 0x21, 0x0e, 0x49, 0x6a, 0x58, 0x4a, 0x90, 0xdf, 0x78, - 0x7e, 0xbd, 0xae, 0x2e, 0xae, 0x6d, 0x56, 0x97, 0xeb, 0x52, 0x0c, 0x15, 0x01, 0x68, 0xc1, 0xc5, - 0xe5, 0xb5, 0xca, 0x86, 0x14, 0xf7, 0x9e, 0x97, 0x56, 0x37, 0xce, 0x3f, 0x26, 0x25, 0x3c, 0x86, - 0x4d, 0x56, 0x90, 0x0c, 0x12, 0x3c, 0x7a, 0x56, 0x4a, 0x21, 0x09, 0xc6, 0x19, 0xc0, 0xd2, 0x73, - 0xf5, 0xc5, 0xf3, 0x8f, 0x49, 0xe9, 0x70, 0xc9, 0xa3, 0x67, 0xa5, 0x0c, 0x2a, 0x40, 0x8e, 0x96, - 0x54, 0xd7, 0xd6, 0x96, 0xa5, 0xac, 0x87, 0xd9, 0xd8, 0x50, 0x96, 0x56, 0x2f, 0x49, 0x39, 0x0f, - 0xf3, 0x92, 0xb2, 0xb6, 0xb9, 0x2e, 0x81, 0x87, 0xb0, 0x52, 0x6f, 0x34, 0x2a, 0x97, 0xea, 0x52, - 0xde, 0xa3, 0xa8, 0x3e, 0xbf, 0x51, 0x6f, 0x48, 0xe3, 0xa1, 0x66, 0x3d, 0x7a, 0x56, 0x2a, 0x78, - 0xaf, 0xa8, 0xaf, 0x6e, 0xae, 0x48, 0x45, 0x34, 0x01, 0x05, 0xf6, 0x0a, 0xd1, 0x88, 0x52, 0x4f, - 0xd1, 0xf9, 0xc7, 0x24, 0xc9, 0x6f, 0x08, 0x43, 0x99, 0x08, 0x15, 0x9c, 0x7f, 0x4c, 0x42, 0x72, - 0x0d, 0x52, 0x54, 0x0d, 0x11, 0x82, 0xe2, 0x72, 0xa5, 0x5a, 0x5f, 0x56, 0xd7, 0xd6, 0x37, 0x96, - 0xd6, 0x56, 0x2b, 0xcb, 0x52, 0xcc, 0x2f, 0x53, 0xea, 0xef, 0xda, 0x5c, 0x52, 0xea, 0x8b, 0x52, - 0x3c, 0x58, 0xb6, 0x5e, 0xaf, 0x6c, 0xd4, 0x17, 0xa5, 0x84, 0xdc, 0x84, 0xa9, 0x41, 0x06, 0x75, - 0xe0, 0x14, 0x0a, 0xe8, 0x42, 0x7c, 0x88, 0x2e, 0x50, 0xac, 0x5e, 0x5d, 0x90, 0xbf, 0x16, 0x87, - 0xc9, 0x01, 0x8b, 0xca, 0xc0, 0x97, 0x3c, 0x0d, 0x29, 0xa6, 0xcb, 0x6c, 0x99, 0x3d, 0x35, 0x70, - 0x75, 0xa2, 0x9a, 0xdd, 0xb7, 0xd4, 0x52, 0xbe, 0xa0, 0xab, 0x91, 0x18, 0xe2, 0x6a, 0x10, 0x88, - 0x3e, 0x85, 0xfd, 0xa1, 0x3e, 0xe3, 0xcf, 0xd6, 0xc7, 0xf3, 0xa3, 0xac, 0x8f, 0xb4, 0xec, 0x70, - 0x8b, 0x40, 0x6a, 0xc0, 0x22, 0x70, 0x01, 0x26, 0xfa, 0x80, 0x46, 0x36, 0xc6, 0xef, 0x8b, 0xc1, - 0xf4, 0x30, 0xe1, 0x44, 0x98, 0xc4, 0x78, 0xc8, 0x24, 0x5e, 0xe8, 0x95, 0xe0, 0xdd, 0xc3, 0x07, - 0xa1, 0x6f, 0xac, 0x3f, 0x1d, 0x83, 0x23, 0x83, 0x5d, 0xca, 0x81, 0x6d, 0x78, 0x27, 0xa4, 0x3b, - 0xd8, 0xdd, 0x35, 0x85, 0x5b, 0x75, 0xff, 0x80, 0xc5, 0x9a, 0x54, 0xf7, 0x0e, 0x36, 0xe7, 0x0a, - 0xae, 0xf6, 0x89, 0x61, 0x7e, 0x21, 0x6b, 0x4d, 0x5f, 0x4b, 0x7f, 0x32, 0x0e, 0x77, 0x0c, 0x04, - 0x1f, 0xd8, 0xd0, 0xbb, 0x00, 0x74, 0xc3, 0xea, 0xba, 0xcc, 0x75, 0x62, 0x96, 0x38, 0x47, 0x4b, - 0xa8, 0xf1, 0x22, 0x56, 0xb6, 0xeb, 0x7a, 0xf5, 0x09, 0x5a, 0x0f, 0xac, 0x88, 0x12, 0x3c, 0xe1, - 0x37, 0x34, 0x49, 0x1b, 0x3a, 0x33, 0xa4, 0xa7, 0x7d, 0x8a, 0xf9, 0x30, 0x48, 0xcd, 0xb6, 0x8e, - 0x0d, 0x57, 0x75, 0x5c, 0x1b, 0x6b, 0x1d, 0xdd, 0xd8, 0xa1, 0x4b, 0x4d, 0x76, 0x21, 0xb5, 0xad, - 0xb5, 0x1d, 0xac, 0x94, 0x58, 0x75, 0x43, 0xd4, 0x12, 0x0e, 0xaa, 0x40, 0x76, 0x80, 0x23, 0x1d, - 0xe2, 0x60, 0xd5, 0x1e, 0x87, 0xfc, 0xd3, 0x39, 0xc8, 0x07, 0x1c, 0x70, 0x74, 0x37, 0x8c, 0xbf, - 0xa8, 0x5d, 0xd7, 0x54, 0x11, 0x54, 0x31, 0x49, 0xe4, 0x49, 0xd9, 0x3a, 0x0f, 0xac, 0x1e, 0x86, - 0x29, 0x4a, 0x62, 0x76, 0x5d, 0x6c, 0xab, 0xcd, 0xb6, 0xe6, 0x38, 0x54, 0x68, 0x59, 0x4a, 0x8a, - 0x48, 0xdd, 0x1a, 0xa9, 0xaa, 0x89, 0x1a, 0x74, 0x0e, 0x26, 0x29, 0x47, 0xa7, 0xdb, 0x76, 0x75, - 0xab, 0x8d, 0x55, 0x12, 0xe6, 0x39, 0x74, 0xc9, 0xf1, 0x5a, 0x36, 0x41, 0x28, 0x56, 0x38, 0x01, - 0x69, 0x91, 0x83, 0x16, 0xe1, 0x2e, 0xca, 0xb6, 0x83, 0x0d, 0x6c, 0x6b, 0x2e, 0x56, 0xf1, 0x7b, - 0xbb, 0x5a, 0xdb, 0x51, 0x35, 0xa3, 0xa5, 0xee, 0x6a, 0xce, 0xee, 0xf4, 0x14, 0x01, 0xa8, 0xc6, - 0xa7, 0x63, 0xca, 0x31, 0x42, 0x78, 0x89, 0xd3, 0xd5, 0x29, 0x59, 0xc5, 0x68, 0x5d, 0xd6, 0x9c, - 0x5d, 0xb4, 0x00, 0x47, 0x28, 0x8a, 0xe3, 0xda, 0xba, 0xb1, 0xa3, 0x36, 0x77, 0x71, 0xf3, 0x9a, - 0xda, 0x75, 0xb7, 0x9f, 0x98, 0x3e, 0x1e, 0x7c, 0x3f, 0x6d, 0x61, 0x83, 0xd2, 0xd4, 0x08, 0xc9, - 0xa6, 0xbb, 0xfd, 0x04, 0x6a, 0xc0, 0x38, 0x19, 0x8c, 0x8e, 0xfe, 0x12, 0x56, 0xb7, 0x4d, 0x9b, - 0xae, 0xa1, 0xc5, 0x01, 0xa6, 0x29, 0x20, 0xc1, 0xf9, 0x35, 0xce, 0xb0, 0x62, 0xb6, 0xf0, 0x42, - 0xaa, 0xb1, 0x5e, 0xaf, 0x2f, 0x2a, 0x79, 0x81, 0x72, 0xd1, 0xb4, 0x89, 0x42, 0xed, 0x98, 0x9e, - 0x80, 0xf3, 0x4c, 0xa1, 0x76, 0x4c, 0x21, 0xde, 0x73, 0x30, 0xd9, 0x6c, 0xb2, 0x3e, 0xeb, 0x4d, - 0x95, 0x07, 0x63, 0xce, 0xb4, 0x14, 0x12, 0x56, 0xb3, 0x79, 0x89, 0x11, 0x70, 0x1d, 0x77, 0xd0, - 0x93, 0x70, 0x87, 0x2f, 0xac, 0x20, 0xe3, 0x44, 0x5f, 0x2f, 0x7b, 0x59, 0xcf, 0xc1, 0xa4, 0xb5, - 0xdf, 0xcf, 0x88, 0x42, 0x6f, 0xb4, 0xf6, 0x7b, 0xd9, 0x1e, 0x87, 0x29, 0x6b, 0xd7, 0xea, 0xe7, - 0x3b, 0x1d, 0xe4, 0x43, 0xd6, 0xae, 0xd5, 0xcb, 0x78, 0x1f, 0x8d, 0xcc, 0x6d, 0xdc, 0xd4, 0x5c, - 0xdc, 0x9a, 0x3e, 0x1a, 0x24, 0x0f, 0x54, 0xa0, 0x79, 0x90, 0x9a, 0x4d, 0x15, 0x1b, 0xda, 0x56, - 0x1b, 0xab, 0x9a, 0x8d, 0x0d, 0xcd, 0x99, 0x9e, 0xa5, 0xc4, 0x49, 0xd7, 0xee, 0x62, 0xa5, 0xd8, - 0x6c, 0xd6, 0x69, 0x65, 0x85, 0xd6, 0xa1, 0xd3, 0x30, 0x61, 0x6e, 0xbd, 0xd8, 0x64, 0x1a, 0xa9, - 0x5a, 0x36, 0xde, 0xd6, 0xf7, 0xa6, 0xef, 0xa5, 0xe2, 0x2d, 0x91, 0x0a, 0xaa, 0x8f, 0xeb, 0xb4, - 0x18, 0x9d, 0x02, 0xa9, 0xe9, 0xec, 0x6a, 0xb6, 0x45, 0x4d, 0xb2, 0x63, 0x69, 0x4d, 0x3c, 0x7d, - 0x1f, 0x23, 0x65, 0xe5, 0xab, 0xa2, 0x98, 0xcc, 0x08, 0xe7, 0x86, 0xbe, 0xed, 0x0a, 0xc4, 0x13, - 0x6c, 0x46, 0xd0, 0x32, 0x8e, 0x76, 0x12, 0x24, 0x22, 0x89, 0xd0, 0x8b, 0x4f, 0x52, 0xb2, 0xa2, - 0xb5, 0x6b, 0x05, 0xdf, 0x7b, 0x0f, 0x14, 0x08, 0xa5, 0xff, 0xd2, 0x53, 0xcc, 0x71, 0xb3, 0x76, - 0x03, 0x6f, 0x7c, 0x0c, 0x8e, 0x10, 0xa2, 0x0e, 0x76, 0xb5, 0x96, 0xe6, 0x6a, 0x01, 0xea, 0x07, - 0x29, 0x35, 0x11, 0xfb, 0x0a, 0xaf, 0x0c, 0xb5, 0xd3, 0xee, 0x6e, 0xed, 0x7b, 0x8a, 0xf5, 0x10, - 0x6b, 0x27, 0x29, 0x13, 0xaa, 0xf5, 0x96, 0x39, 0xe7, 0xf2, 0x02, 0x8c, 0x07, 0xf5, 0x1e, 0xe5, - 0x80, 0x69, 0xbe, 0x14, 0x23, 0x4e, 0x50, 0x6d, 0x6d, 0x91, 0xb8, 0x2f, 0x2f, 0xd4, 0xa5, 0x38, - 0x71, 0xa3, 0x96, 0x97, 0x36, 0xea, 0xaa, 0xb2, 0xb9, 0xba, 0xb1, 0xb4, 0x52, 0x97, 0x12, 0x01, - 0xc7, 0xfe, 0x4a, 0x32, 0x7b, 0xbf, 0x74, 0x82, 0x78, 0x0d, 0xc5, 0x70, 0xa4, 0x86, 0xde, 0x01, - 0x47, 0x45, 0x5a, 0xc5, 0xc1, 0xae, 0x7a, 0x43, 0xb7, 0xe9, 0x84, 0xec, 0x68, 0x6c, 0x71, 0xf4, - 0xf4, 0x67, 0x8a, 0x53, 0x35, 0xb0, 0xfb, 0xac, 0x6e, 0x93, 0xe9, 0xd6, 0xd1, 0x5c, 0xb4, 0x0c, - 0xb3, 0x86, 0xa9, 0x3a, 0xae, 0x66, 0xb4, 0x34, 0xbb, 0xa5, 0xfa, 0x09, 0x2d, 0x55, 0x6b, 0x36, - 0xb1, 0xe3, 0x98, 0x6c, 0x21, 0xf4, 0x50, 0xee, 0x34, 0xcc, 0x06, 0x27, 0xf6, 0x57, 0x88, 0x0a, - 0x27, 0xed, 0x51, 0xdf, 0xc4, 0x30, 0xf5, 0x3d, 0x0e, 0xb9, 0x8e, 0x66, 0xa9, 0xd8, 0x70, 0xed, - 0x7d, 0xea, 0x9f, 0x67, 0x95, 0x6c, 0x47, 0xb3, 0xea, 0xe4, 0xf9, 0x6d, 0x09, 0x93, 0xae, 0x24, - 0xb3, 0x49, 0x29, 0x75, 0x25, 0x99, 0x4d, 0x49, 0xe9, 0x2b, 0xc9, 0x6c, 0x5a, 0xca, 0x5c, 0x49, - 0x66, 0xb3, 0x52, 0xee, 0x4a, 0x32, 0x9b, 0x93, 0x40, 0xfe, 0x50, 0x12, 0xc6, 0x83, 0x1e, 0x3c, - 0x09, 0x88, 0x9a, 0x74, 0x0d, 0x8b, 0x51, 0x2b, 0x77, 0xcf, 0x81, 0xfe, 0xfe, 0x7c, 0x8d, 0x2c, - 0x6e, 0x0b, 0x69, 0xe6, 0x2e, 0x2b, 0x8c, 0x93, 0x38, 0x16, 0x44, 0xfd, 0x30, 0x73, 0x4f, 0xb2, - 0x0a, 0x7f, 0x42, 0x97, 0x20, 0xfd, 0xa2, 0x43, 0xb1, 0xd3, 0x14, 0xfb, 0xde, 0x83, 0xb1, 0xaf, - 0x34, 0x28, 0x78, 0xee, 0x4a, 0x43, 0x5d, 0x5d, 0x53, 0x56, 0x2a, 0xcb, 0x0a, 0x67, 0x47, 0xc7, - 0x20, 0xd9, 0xd6, 0x5e, 0xda, 0x0f, 0x2f, 0x83, 0xb4, 0x08, 0xcd, 0x43, 0xa9, 0x6b, 0x5c, 0xc7, - 0xb6, 0xbe, 0xad, 0xe3, 0x96, 0x4a, 0xa9, 0x4a, 0x41, 0xaa, 0xa2, 0x5f, 0xbb, 0x4c, 0xe8, 0x47, - 0x1c, 0xc6, 0x63, 0x90, 0xbc, 0x81, 0xb5, 0x6b, 0xe1, 0xc5, 0x8a, 0x16, 0xbd, 0x85, 0xd3, 0xe9, - 0x0c, 0xa4, 0xa8, 0x7c, 0x11, 0x00, 0x97, 0xb0, 0x34, 0x86, 0xb2, 0x90, 0xac, 0xad, 0x29, 0x64, - 0x4a, 0x49, 0x30, 0xce, 0x4a, 0xd5, 0xf5, 0xa5, 0x7a, 0xad, 0x2e, 0xc5, 0xe5, 0x73, 0x90, 0x66, - 0x42, 0x23, 0xd3, 0xcd, 0x13, 0x9b, 0x34, 0xc6, 0x1f, 0x39, 0x46, 0x4c, 0xd4, 0x6e, 0xae, 0x54, - 0xeb, 0x8a, 0x14, 0xef, 0x53, 0x16, 0xd9, 0x81, 0xf1, 0xa0, 0x27, 0xff, 0xf6, 0x84, 0xf3, 0x5f, - 0x8a, 0x41, 0x3e, 0xe0, 0x99, 0x13, 0x97, 0x4a, 0x6b, 0xb7, 0xcd, 0x1b, 0xaa, 0xd6, 0xd6, 0x35, - 0x87, 0xab, 0x12, 0xd0, 0xa2, 0x0a, 0x29, 0x19, 0x75, 0xe8, 0xde, 0xa6, 0x49, 0x96, 0x92, 0xd2, - 0xf2, 0xc7, 0x63, 0x20, 0xf5, 0xba, 0xc6, 0x3d, 0xcd, 0x8c, 0xfd, 0x45, 0x36, 0x53, 0xfe, 0x58, - 0x0c, 0x8a, 0x61, 0x7f, 0xb8, 0xa7, 0x79, 0x77, 0xff, 0x85, 0x36, 0xef, 0xf7, 0xe3, 0x50, 0x08, - 0x79, 0xc1, 0xa3, 0xb6, 0xee, 0xbd, 0x30, 0xa1, 0xb7, 0x70, 0xc7, 0x32, 0x5d, 0x6c, 0x34, 0xf7, - 0xd5, 0x36, 0xbe, 0x8e, 0xdb, 0xd3, 0x32, 0x35, 0x32, 0x67, 0x0e, 0xf6, 0xb3, 0xe7, 0x97, 0x7c, - 0xbe, 0x65, 0xc2, 0xb6, 0x30, 0xb9, 0xb4, 0x58, 0x5f, 0x59, 0x5f, 0xdb, 0xa8, 0xaf, 0xd6, 0x9e, - 0x57, 0x37, 0x57, 0x9f, 0x59, 0x5d, 0x7b, 0x76, 0x55, 0x91, 0xf4, 0x1e, 0xb2, 0xb7, 0x70, 0xda, - 0xaf, 0x83, 0xd4, 0xdb, 0x28, 0x74, 0x14, 0x06, 0x35, 0x4b, 0x1a, 0x43, 0x93, 0x50, 0x5a, 0x5d, - 0x53, 0x1b, 0x4b, 0x8b, 0x75, 0xb5, 0x7e, 0xf1, 0x62, 0xbd, 0xb6, 0xd1, 0x60, 0x99, 0x13, 0x8f, - 0x7a, 0x23, 0x34, 0xc1, 0xe5, 0x8f, 0x26, 0x60, 0x72, 0x40, 0x4b, 0x50, 0x85, 0xc7, 0x3c, 0x2c, - 0x0c, 0x7b, 0x68, 0x94, 0xd6, 0xcf, 0x13, 0xaf, 0x63, 0x5d, 0xb3, 0x5d, 0x1e, 0x22, 0x9d, 0x02, - 0x22, 0x25, 0xc3, 0x25, 0xc6, 0xd5, 0xe6, 0x19, 0x29, 0x16, 0x08, 0x95, 0xfc, 0x72, 0x96, 0x94, - 0x7a, 0x10, 0x90, 0x65, 0x3a, 0xba, 0xab, 0x5f, 0xc7, 0xaa, 0x6e, 0x88, 0xf4, 0x15, 0x09, 0x8c, - 0x92, 0x8a, 0x24, 0x6a, 0x96, 0x0c, 0xd7, 0xa3, 0x36, 0xf0, 0x8e, 0xd6, 0x43, 0x4d, 0x8c, 0x7f, - 0x42, 0x91, 0x44, 0x8d, 0x47, 0x7d, 0x37, 0x8c, 0xb7, 0xcc, 0x2e, 0xf1, 0x16, 0x19, 0x1d, 0x59, - 0x6b, 0x62, 0x4a, 0x9e, 0x95, 0x79, 0x24, 0x3c, 0x0e, 0xf0, 0xf3, 0x66, 0xe3, 0x4a, 0x9e, 0x95, - 0x31, 0x92, 0x13, 0x50, 0xd2, 0x76, 0x76, 0x6c, 0x02, 0x2e, 0x80, 0x58, 0x64, 0x53, 0xf4, 0x8a, - 0x29, 0x61, 0xf9, 0x0a, 0x64, 0x85, 0x1c, 0xc8, 0x62, 0x4f, 0x24, 0xa1, 0x5a, 0x2c, 0x5c, 0x8f, - 0x9f, 0xcc, 0x29, 0x59, 0x43, 0x54, 0xde, 0x0d, 0xe3, 0xba, 0xa3, 0xfa, 0xdb, 0x00, 0xf1, 0xb9, - 0xf8, 0xc9, 0xac, 0x92, 0xd7, 0x1d, 0x2f, 0x85, 0x2a, 0x7f, 0x3a, 0x0e, 0xc5, 0xf0, 0x36, 0x06, - 0x5a, 0x84, 0x6c, 0xdb, 0x6c, 0x6a, 0x54, 0xb5, 0xd8, 0x1e, 0xda, 0xc9, 0x88, 0x9d, 0x8f, 0xf9, - 0x65, 0x4e, 0xaf, 0x78, 0x9c, 0xe5, 0x7f, 0x13, 0x83, 0xac, 0x28, 0x46, 0x47, 0x20, 0x69, 0x69, - 0xee, 0x2e, 0x85, 0x4b, 0x55, 0xe3, 0x52, 0x4c, 0xa1, 0xcf, 0xa4, 0xdc, 0xb1, 0x34, 0x83, 0xaa, - 0x00, 0x2f, 0x27, 0xcf, 0x64, 0x5c, 0xdb, 0x58, 0x6b, 0xd1, 0xb0, 0xc9, 0xec, 0x74, 0xb0, 0xe1, - 0x3a, 0x62, 0x5c, 0x79, 0x79, 0x8d, 0x17, 0xa3, 0x07, 0x60, 0xc2, 0xb5, 0x35, 0xbd, 0x1d, 0xa2, - 0x4d, 0x52, 0x5a, 0x49, 0x54, 0x78, 0xc4, 0x0b, 0x70, 0x4c, 0xe0, 0xb6, 0xb0, 0xab, 0x35, 0x77, - 0x71, 0xcb, 0x67, 0x4a, 0xd3, 0xf4, 0xc8, 0x51, 0x4e, 0xb0, 0xc8, 0xeb, 0x05, 0xaf, 0xfc, 0xd5, - 0x18, 0x4c, 0x88, 0x40, 0xaf, 0xe5, 0x09, 0x6b, 0x05, 0x40, 0x33, 0x0c, 0xd3, 0x0d, 0x8a, 0xab, - 0x5f, 0x95, 0xfb, 0xf8, 0xe6, 0x2b, 0x1e, 0x93, 0x12, 0x00, 0x28, 0x77, 0x00, 0xfc, 0x9a, 0xa1, - 0x62, 0x9b, 0x85, 0x3c, 0xdf, 0xa3, 0xa2, 0x1b, 0x9d, 0x2c, 0x35, 0x00, 0xac, 0x88, 0x44, 0x84, - 0x68, 0x0a, 0x52, 0x5b, 0x78, 0x47, 0x37, 0x78, 0xe6, 0x99, 0x3d, 0x88, 0x04, 0x4e, 0xd2, 0x4b, - 0xe0, 0x54, 0xff, 0x2a, 0x4c, 0x36, 0xcd, 0x4e, 0x6f, 0x73, 0xab, 0x52, 0x4f, 0x7a, 0xc2, 0xb9, - 0x1c, 0x7b, 0xe1, 0x21, 0x4e, 0xb4, 0x63, 0xb6, 0x35, 0x63, 0x67, 0xde, 0xb4, 0x77, 0xfc, 0x8d, - 0x5a, 0xe2, 0x21, 0x39, 0x81, 0xed, 0x5a, 0x6b, 0xeb, 0x7f, 0xc5, 0x62, 0xbf, 0x10, 0x4f, 0x5c, - 0x5a, 0xaf, 0xfe, 0x52, 0xbc, 0x7c, 0x89, 0x31, 0xae, 0x0b, 0x61, 0x28, 0x78, 0xbb, 0x8d, 0x9b, - 0xa4, 0x83, 0xf0, 0x87, 0x0f, 0xc0, 0xd4, 0x8e, 0xb9, 0x63, 0x52, 0xa4, 0x33, 0xe4, 0x17, 0xdf, - 0xe9, 0xcd, 0x79, 0xa5, 0xe5, 0xc8, 0x6d, 0xe1, 0x85, 0x55, 0x98, 0xe4, 0xc4, 0x2a, 0xdd, 0x6a, - 0x62, 0x81, 0x10, 0x3a, 0x30, 0x0b, 0x37, 0xfd, 0xcb, 0x5f, 0xa7, 0xcb, 0xb7, 0x32, 0xc1, 0x59, - 0x49, 0x1d, 0x8b, 0x95, 0x16, 0x14, 0xb8, 0x23, 0x84, 0xc7, 0x26, 0x29, 0xb6, 0x23, 0x10, 0xff, - 0x39, 0x47, 0x9c, 0x0c, 0x20, 0x36, 0x38, 0xeb, 0x42, 0x0d, 0x0a, 0x87, 0xc1, 0xfa, 0x17, 0x1c, - 0x6b, 0x1c, 0x07, 0x41, 0x2e, 0x41, 0x89, 0x82, 0x34, 0xbb, 0x8e, 0x6b, 0x76, 0xa8, 0x05, 0x3c, - 0x18, 0xe6, 0x5f, 0x7e, 0x9d, 0xcd, 0x9a, 0x22, 0x61, 0xab, 0x79, 0x5c, 0x0b, 0x0b, 0x40, 0x77, - 0xd7, 0x5a, 0xb8, 0xd9, 0x8e, 0x40, 0xf8, 0x32, 0x6f, 0x88, 0x47, 0xbf, 0x70, 0x15, 0xa6, 0xc8, - 0x6f, 0x6a, 0xa0, 0x82, 0x2d, 0x89, 0x4e, 0xd9, 0x4d, 0x7f, 0xf5, 0x7d, 0x6c, 0x62, 0x4e, 0x7a, - 0x00, 0x81, 0x36, 0x05, 0x46, 0x71, 0x07, 0xbb, 0x2e, 0xb6, 0x1d, 0x55, 0x6b, 0x0f, 0x6a, 0x5e, - 0x20, 0xe7, 0x31, 0xfd, 0x73, 0xdf, 0x0e, 0x8f, 0xe2, 0x25, 0xc6, 0x59, 0x69, 0xb7, 0x17, 0x36, - 0xe1, 0xe8, 0x00, 0xad, 0x18, 0x01, 0xf3, 0xa3, 0x1c, 0x73, 0xaa, 0x4f, 0x33, 0x08, 0xec, 0x3a, - 0x88, 0x72, 0x6f, 0x2c, 0x47, 0xc0, 0xfc, 0x79, 0x8e, 0x89, 0x38, 0xaf, 0x18, 0x52, 0x82, 0x78, - 0x05, 0x26, 0xae, 0x63, 0x7b, 0xcb, 0x74, 0x78, 0x9e, 0x69, 0x04, 0xb8, 0x8f, 0x71, 0xb8, 0x12, - 0x67, 0xa4, 0x89, 0x27, 0x82, 0xf5, 0x24, 0x64, 0xb7, 0xb5, 0x26, 0x1e, 0x01, 0xe2, 0x16, 0x87, - 0xc8, 0x10, 0x7a, 0xc2, 0x5a, 0x81, 0xf1, 0x1d, 0x93, 0xaf, 0x51, 0xd1, 0xec, 0x1f, 0xe7, 0xec, - 0x79, 0xc1, 0xc3, 0x21, 0x2c, 0xd3, 0xea, 0xb6, 0xc9, 0x02, 0x16, 0x0d, 0xf1, 0xb7, 0x05, 0x84, - 0xe0, 0xe1, 0x10, 0x87, 0x10, 0xeb, 0x2b, 0x02, 0xc2, 0x09, 0xc8, 0xf3, 0x69, 0xc8, 0x9b, 0x46, - 0x7b, 0xdf, 0x34, 0x46, 0x69, 0xc4, 0x27, 0x38, 0x02, 0x70, 0x16, 0x02, 0x70, 0x01, 0x72, 0xa3, - 0x0e, 0xc4, 0x2f, 0x7e, 0x5b, 0x4c, 0x0f, 0x31, 0x02, 0x97, 0xa0, 0x24, 0x0c, 0x94, 0x6e, 0x1a, - 0x23, 0x40, 0x7c, 0x8a, 0x43, 0x14, 0x03, 0x6c, 0xbc, 0x1b, 0x2e, 0x76, 0xdc, 0x1d, 0x3c, 0x0a, - 0xc8, 0xa7, 0x45, 0x37, 0x38, 0x0b, 0x17, 0xe5, 0x16, 0x36, 0x9a, 0xbb, 0xa3, 0x21, 0xbc, 0x2a, - 0x44, 0x29, 0x78, 0x08, 0x44, 0x0d, 0x0a, 0x1d, 0xcd, 0x76, 0x76, 0xb5, 0xf6, 0x48, 0xc3, 0xf1, - 0x19, 0x8e, 0x31, 0xee, 0x31, 0x71, 0x89, 0x74, 0x8d, 0xc3, 0xc0, 0xfc, 0x92, 0x90, 0x48, 0x80, - 0x8d, 0x4f, 0x3d, 0xc7, 0xa5, 0x49, 0xb9, 0xc3, 0xa0, 0xfd, 0x5d, 0x31, 0xf5, 0x18, 0xef, 0x4a, - 0x10, 0xf1, 0x02, 0xe4, 0x1c, 0xfd, 0xa5, 0x91, 0x60, 0xfe, 0x9e, 0x18, 0x69, 0xca, 0x40, 0x98, - 0x9f, 0x87, 0x63, 0x03, 0x97, 0x89, 0x11, 0xc0, 0xfe, 0x3e, 0x07, 0x3b, 0x32, 0x60, 0xa9, 0xe0, - 0x26, 0xe1, 0xb0, 0x90, 0xff, 0x40, 0x98, 0x04, 0xdc, 0x83, 0xb5, 0x4e, 0xa2, 0x06, 0x47, 0xdb, - 0x3e, 0x9c, 0xd4, 0xfe, 0xa1, 0x90, 0x1a, 0xe3, 0x0d, 0x49, 0x6d, 0x03, 0x8e, 0x70, 0xc4, 0xc3, - 0x8d, 0xeb, 0x67, 0x85, 0x61, 0x65, 0xdc, 0x9b, 0xe1, 0xd1, 0xfd, 0x41, 0x28, 0x7b, 0xe2, 0x14, - 0xee, 0xa9, 0xa3, 0x76, 0x34, 0x6b, 0x04, 0xe4, 0x5f, 0xe6, 0xc8, 0xc2, 0xe2, 0x7b, 0xfe, 0xad, - 0xb3, 0xa2, 0x59, 0x04, 0xfc, 0x39, 0x98, 0x16, 0xe0, 0x5d, 0xc3, 0xc6, 0x4d, 0x73, 0xc7, 0xd0, - 0x5f, 0xc2, 0xad, 0x11, 0xa0, 0x7f, 0xa5, 0x67, 0xa8, 0x36, 0x03, 0xec, 0x04, 0x79, 0x09, 0x24, - 0xcf, 0x57, 0x51, 0xf5, 0x8e, 0x65, 0xda, 0x6e, 0x04, 0xe2, 0xe7, 0xc4, 0x48, 0x79, 0x7c, 0x4b, - 0x94, 0x6d, 0xa1, 0x0e, 0x6c, 0xa7, 0x7a, 0x54, 0x95, 0xfc, 0x3c, 0x07, 0x2a, 0xf8, 0x5c, 0xdc, - 0x70, 0x34, 0xcd, 0x8e, 0xa5, 0xd9, 0xa3, 0xd8, 0xbf, 0x7f, 0x24, 0x0c, 0x07, 0x67, 0xe1, 0x86, - 0x83, 0x78, 0x74, 0x64, 0xb5, 0x1f, 0x01, 0xe1, 0x0b, 0xc2, 0x70, 0x08, 0x1e, 0x0e, 0x21, 0x1c, - 0x86, 0x11, 0x20, 0x7e, 0x55, 0x40, 0x08, 0x1e, 0x02, 0xf1, 0x2e, 0x7f, 0xa1, 0xb5, 0xf1, 0x8e, - 0xee, 0xb8, 0x36, 0x73, 0x8a, 0x0f, 0x86, 0xfa, 0xe2, 0xb7, 0xc3, 0x4e, 0x98, 0x12, 0x60, 0x25, - 0x96, 0x88, 0xa7, 0x69, 0x69, 0xcc, 0x14, 0xdd, 0xb0, 0x5f, 0x13, 0x96, 0x28, 0xc0, 0x46, 0xda, - 0x16, 0xf0, 0x10, 0x89, 0xd8, 0x9b, 0x24, 0x52, 0x18, 0x01, 0xee, 0x1f, 0xf7, 0x34, 0xae, 0x21, - 0x78, 0x09, 0x66, 0xc0, 0xff, 0xe9, 0x1a, 0xd7, 0xf0, 0xfe, 0x48, 0xda, 0xf9, 0xeb, 0x3d, 0xfe, - 0xcf, 0x26, 0xe3, 0x64, 0x36, 0xa4, 0xd4, 0xe3, 0x4f, 0xa1, 0xa8, 0x73, 0x49, 0xd3, 0x3f, 0xf2, - 0x06, 0xef, 0x6f, 0xd8, 0x9d, 0x5a, 0x58, 0x26, 0x4a, 0x1e, 0x76, 0x7a, 0xa2, 0xc1, 0xde, 0xf7, - 0x86, 0xa7, 0xe7, 0x21, 0x9f, 0x67, 0xe1, 0x22, 0x14, 0x42, 0x0e, 0x4f, 0x34, 0xd4, 0x8f, 0x71, - 0xa8, 0xf1, 0xa0, 0xbf, 0xb3, 0x70, 0x0e, 0x92, 0xc4, 0x79, 0x89, 0x66, 0xff, 0x71, 0xce, 0x4e, - 0xc9, 0x17, 0x9e, 0x82, 0xac, 0x70, 0x5a, 0xa2, 0x59, 0x7f, 0x82, 0xb3, 0x7a, 0x2c, 0x84, 0x5d, - 0x38, 0x2c, 0xd1, 0xec, 0x7f, 0x4d, 0xb0, 0x0b, 0x16, 0xc2, 0x3e, 0xba, 0x08, 0xbf, 0xf4, 0xd7, - 0x93, 0x7c, 0xd1, 0x11, 0xb2, 0xbb, 0x00, 0x19, 0xee, 0xa9, 0x44, 0x73, 0xff, 0x24, 0x7f, 0xb9, - 0xe0, 0x58, 0x78, 0x1c, 0x52, 0x23, 0x0a, 0xfc, 0x6f, 0x70, 0x56, 0x46, 0xbf, 0x50, 0x83, 0x7c, - 0xc0, 0x3b, 0x89, 0x66, 0xff, 0x00, 0x67, 0x0f, 0x72, 0x91, 0xa6, 0x73, 0xef, 0x24, 0x1a, 0xe0, - 0x6f, 0x8a, 0xa6, 0x73, 0x0e, 0x22, 0x36, 0xe1, 0x98, 0x44, 0x73, 0x7f, 0x50, 0x48, 0x5d, 0xb0, - 0x2c, 0x3c, 0x0d, 0x39, 0x6f, 0xb1, 0x89, 0xe6, 0xff, 0x69, 0xce, 0xef, 0xf3, 0x10, 0x09, 0x04, - 0x16, 0xbb, 0x68, 0x88, 0x0f, 0x09, 0x09, 0x04, 0xb8, 0xc8, 0x34, 0xea, 0x75, 0x60, 0xa2, 0x91, - 0x3e, 0x2c, 0xa6, 0x51, 0x8f, 0xff, 0x42, 0x46, 0x93, 0xda, 0xfc, 0x68, 0x88, 0xbf, 0x25, 0x46, - 0x93, 0xd2, 0x93, 0x66, 0xf4, 0x7a, 0x04, 0xd1, 0x18, 0x3f, 0x2b, 0x9a, 0xd1, 0xe3, 0x10, 0x2c, - 0xac, 0x03, 0xea, 0xf7, 0x06, 0xa2, 0xf1, 0x3e, 0xc2, 0xf1, 0x26, 0xfa, 0x9c, 0x81, 0x85, 0x67, - 0xe1, 0xc8, 0x60, 0x4f, 0x20, 0x1a, 0xf5, 0xe7, 0xde, 0xe8, 0x89, 0xdd, 0x82, 0x8e, 0xc0, 0xc2, - 0x86, 0xbf, 0xa4, 0x04, 0xbd, 0x80, 0x68, 0xd8, 0x8f, 0xbe, 0x11, 0x36, 0xdc, 0x41, 0x27, 0x60, - 0xa1, 0x02, 0xe0, 0x2f, 0xc0, 0xd1, 0x58, 0x1f, 0xe3, 0x58, 0x01, 0x26, 0x32, 0x35, 0xf8, 0xfa, - 0x1b, 0xcd, 0x7f, 0x4b, 0x4c, 0x0d, 0xce, 0x41, 0xa6, 0x86, 0x58, 0x7a, 0xa3, 0xb9, 0x3f, 0x2e, - 0xa6, 0x86, 0x60, 0x21, 0x9a, 0x1d, 0x58, 0xdd, 0xa2, 0x11, 0x3e, 0x21, 0x34, 0x3b, 0xc0, 0xb5, - 0xb0, 0x0a, 0x13, 0x7d, 0x0b, 0x62, 0x34, 0xd4, 0x2f, 0x70, 0x28, 0xa9, 0x77, 0x3d, 0x0c, 0x2e, - 0x5e, 0x7c, 0x31, 0x8c, 0x46, 0xfb, 0x64, 0xcf, 0xe2, 0xc5, 0xd7, 0xc2, 0x85, 0x0b, 0x90, 0x35, - 0xba, 0xed, 0x36, 0x99, 0x3c, 0xe8, 0xe0, 0xb3, 0x84, 0xd3, 0xff, 0xed, 0xbb, 0x5c, 0x3a, 0x82, - 0x61, 0xe1, 0x1c, 0xa4, 0x70, 0x67, 0x0b, 0xb7, 0xa2, 0x38, 0xbf, 0xf5, 0x5d, 0x61, 0x30, 0x09, - 0xf5, 0xc2, 0xd3, 0x00, 0x2c, 0x35, 0x42, 0x37, 0x0f, 0x23, 0x78, 0xff, 0xe0, 0xbb, 0xfc, 0xf0, - 0x8e, 0xcf, 0xe2, 0x03, 0xb0, 0xa3, 0x40, 0x07, 0x03, 0x7c, 0x3b, 0x0c, 0x40, 0x47, 0xe4, 0x49, - 0xc8, 0xbc, 0xe8, 0x98, 0x86, 0xab, 0xed, 0x44, 0x71, 0xff, 0x21, 0xe7, 0x16, 0xf4, 0x44, 0x60, - 0x1d, 0xd3, 0xc6, 0xae, 0xb6, 0xe3, 0x44, 0xf1, 0xfe, 0x77, 0xce, 0xeb, 0x31, 0x10, 0xe6, 0xa6, - 0xe6, 0xb8, 0xa3, 0xf4, 0xfb, 0x8f, 0x04, 0xb3, 0x60, 0x20, 0x8d, 0x26, 0xbf, 0xaf, 0xe1, 0xfd, - 0x28, 0xde, 0x3f, 0x16, 0x8d, 0xe6, 0xf4, 0x0b, 0x4f, 0x41, 0x8e, 0xfc, 0x64, 0x27, 0xf2, 0x22, - 0x98, 0xff, 0x84, 0x33, 0xfb, 0x1c, 0xe4, 0xcd, 0x8e, 0xdb, 0x72, 0xf5, 0x68, 0x61, 0x7f, 0x87, - 0x8f, 0xb4, 0xa0, 0x5f, 0xa8, 0x40, 0xde, 0x71, 0x5b, 0xad, 0x2e, 0xf7, 0x4f, 0x23, 0xd8, 0xff, - 0xf4, 0xbb, 0x5e, 0xca, 0xc2, 0xe3, 0x21, 0xa3, 0x7d, 0xe3, 0x9a, 0x6b, 0x99, 0x74, 0xc3, 0x23, - 0x0a, 0xe1, 0x0d, 0x8e, 0x10, 0x60, 0x59, 0xa8, 0xc1, 0x38, 0xe9, 0x8b, 0x8d, 0x2d, 0x4c, 0x77, - 0xa7, 0x22, 0x20, 0xfe, 0x8c, 0x0b, 0x20, 0xc4, 0x54, 0x7d, 0xcf, 0x97, 0x5f, 0x9f, 0x89, 0x7d, - 0xe5, 0xf5, 0x99, 0xd8, 0xef, 0xbf, 0x3e, 0x13, 0xfb, 0xe0, 0xd7, 0x66, 0xc6, 0xbe, 0xf2, 0xb5, - 0x99, 0xb1, 0xdf, 0xfb, 0xda, 0xcc, 0xd8, 0xe0, 0x2c, 0x31, 0x5c, 0x32, 0x2f, 0x99, 0x2c, 0x3f, - 0xfc, 0xc2, 0x7d, 0x3b, 0xba, 0xbb, 0xdb, 0xdd, 0x9a, 0x6f, 0x9a, 0x9d, 0x33, 0x4d, 0xd3, 0xe9, - 0x98, 0xce, 0x99, 0x70, 0x5e, 0x97, 0xfe, 0x82, 0xff, 0x13, 0x23, 0x31, 0x73, 0x38, 0x9d, 0xab, - 0x19, 0xfb, 0xc3, 0x3e, 0xef, 0x39, 0x0f, 0x89, 0x8a, 0xb1, 0x8f, 0x8e, 0x31, 0x03, 0xa7, 0x76, - 0xed, 0x36, 0x3f, 0x16, 0x96, 0x21, 0xcf, 0x9b, 0x76, 0x1b, 0x4d, 0xf9, 0x67, 0x37, 0x63, 0x27, - 0xc7, 0xf9, 0x81, 0xcc, 0xea, 0x07, 0x62, 0x87, 0xeb, 0x49, 0xb6, 0x62, 0xec, 0xd3, 0x8e, 0xac, - 0xc7, 0x5e, 0x78, 0x30, 0x32, 0xcf, 0x7d, 0xcd, 0x30, 0x6f, 0x18, 0xa4, 0xd9, 0xd6, 0x96, 0xc8, - 0x71, 0xcf, 0xf4, 0xe6, 0xb8, 0x9f, 0xc5, 0xed, 0xf6, 0x33, 0x84, 0x6e, 0x83, 0xb0, 0x6c, 0xa5, - 0xd9, 0x09, 0x64, 0xf8, 0x70, 0x1c, 0x66, 0xfa, 0xd2, 0xd9, 0x5c, 0x09, 0x86, 0x09, 0x61, 0x01, - 0xb2, 0x8b, 0x42, 0xb7, 0xa6, 0x21, 0xe3, 0xe0, 0xa6, 0x69, 0xb4, 0x1c, 0x2a, 0x88, 0x84, 0x22, - 0x1e, 0x89, 0x20, 0x0c, 0xcd, 0x30, 0x1d, 0x7e, 0xb0, 0x92, 0x3d, 0x54, 0x7f, 0xfe, 0x90, 0x82, - 0x28, 0x88, 0x37, 0x09, 0x69, 0x3c, 0x32, 0xa2, 0x34, 0x44, 0x27, 0x42, 0x99, 0xff, 0x51, 0xa5, - 0xf2, 0xb3, 0x71, 0x98, 0xed, 0x95, 0x0a, 0x99, 0x59, 0x8e, 0xab, 0x75, 0xac, 0x61, 0x62, 0xb9, - 0x00, 0xb9, 0x0d, 0x41, 0x73, 0x68, 0xb9, 0xdc, 0x3a, 0xa4, 0x5c, 0x8a, 0xde, 0xab, 0x84, 0x60, - 0xce, 0x8e, 0x28, 0x18, 0xaf, 0x1f, 0xb7, 0x25, 0x99, 0x3f, 0x4f, 0xc3, 0x31, 0x36, 0x9d, 0x54, - 0x36, 0x95, 0xd8, 0x03, 0x97, 0xc9, 0x78, 0xb0, 0x2a, 0x7a, 0x9f, 0x44, 0x7e, 0x06, 0x26, 0x97, - 0x88, 0xb5, 0x20, 0x51, 0x90, 0xbf, 0xc3, 0x33, 0xf0, 0xec, 0xe9, 0x5c, 0xc8, 0xe1, 0xe7, 0x3b, - 0x4c, 0xc1, 0x22, 0xf9, 0x47, 0x62, 0x20, 0x35, 0x9a, 0x5a, 0x5b, 0xb3, 0xbf, 0x57, 0x28, 0xf4, - 0x38, 0x00, 0xfd, 0x66, 0xc9, 0xff, 0xc8, 0xa8, 0x78, 0x76, 0x7a, 0x3e, 0xd8, 0xb9, 0x79, 0xf6, - 0x26, 0xfa, 0x05, 0x43, 0x8e, 0xd2, 0x92, 0x9f, 0xa7, 0x9f, 0x03, 0xf0, 0x2b, 0xd0, 0x71, 0x38, - 0xda, 0xa8, 0x55, 0x96, 0x2b, 0x8a, 0xca, 0x0e, 0xc3, 0xaf, 0x36, 0xd6, 0xeb, 0xb5, 0xa5, 0x8b, - 0x4b, 0xf5, 0x45, 0x69, 0x0c, 0x1d, 0x01, 0x14, 0xac, 0xf4, 0xce, 0xa5, 0xdc, 0x01, 0x13, 0xc1, - 0x72, 0x76, 0xa2, 0x3e, 0x4e, 0x3c, 0x45, 0xbd, 0x63, 0xb5, 0x31, 0xdd, 0xfa, 0x53, 0x75, 0x21, - 0xb5, 0x68, 0x27, 0xe4, 0xb7, 0xff, 0x1d, 0x3b, 0x65, 0x3d, 0xe9, 0xb3, 0x7b, 0x32, 0x5f, 0x58, - 0x86, 0x09, 0xad, 0xd9, 0xc4, 0x56, 0x08, 0x32, 0xc2, 0x54, 0x13, 0x40, 0xba, 0x99, 0xc9, 0x39, - 0x7d, 0xb4, 0xc7, 0x21, 0xed, 0xd0, 0xde, 0x47, 0x41, 0xfc, 0x0e, 0x87, 0xe0, 0xe4, 0x0b, 0x06, - 0x4c, 0x10, 0xcf, 0x4f, 0xb3, 0x71, 0xa0, 0x19, 0x07, 0xe7, 0x19, 0x7e, 0xe3, 0x73, 0x0f, 0xd3, - 0xad, 0xcd, 0xbb, 0xc3, 0xc3, 0x32, 0x40, 0x9d, 0x14, 0x89, 0x63, 0xfb, 0x0d, 0xc5, 0x50, 0x14, - 0xef, 0xe3, 0x0d, 0x3e, 0xf8, 0x65, 0xbf, 0xc9, 0x5f, 0x36, 0x33, 0x48, 0x07, 0x02, 0x6f, 0x2a, - 0x70, 0x54, 0x56, 0x51, 0xad, 0x0f, 0x9b, 0xd3, 0x2f, 0x3c, 0xd0, 0xbf, 0x3a, 0xb1, 0xff, 0x1e, - 0xa2, 0xc8, 0x17, 0x82, 0xaf, 0xf1, 0xe6, 0xde, 0x87, 0x92, 0x30, 0xa1, 0x75, 0x74, 0xc3, 0x3c, - 0x43, 0xff, 0xe5, 0x73, 0x2e, 0x45, 0x1f, 0x46, 0xd8, 0x94, 0x3c, 0xcf, 0xa6, 0x42, 0xb4, 0xc6, - 0xfc, 0xc9, 0x4f, 0x7d, 0x2a, 0xe5, 0x4f, 0x97, 0x85, 0x15, 0x90, 0xc4, 0x81, 0x43, 0x6c, 0x34, - 0xcd, 0xd6, 0x48, 0x59, 0x8a, 0xef, 0x08, 0x0c, 0x91, 0xdf, 0xaa, 0x73, 0xd6, 0x85, 0x77, 0x40, - 0xd6, 0x83, 0x89, 0xf2, 0x4c, 0x04, 0x88, 0xc7, 0x41, 0xfc, 0x12, 0x36, 0x33, 0x47, 0xf1, 0x42, - 0xdf, 0x10, 0xfc, 0x6c, 0x86, 0xae, 0x92, 0xde, 0x5c, 0x82, 0x62, 0xcb, 0x34, 0x5c, 0xd5, 0xec, - 0xe8, 0x2e, 0xee, 0x58, 0x6e, 0xa4, 0x5f, 0xf7, 0x67, 0x0c, 0x24, 0xab, 0x14, 0x08, 0xdf, 0x9a, - 0x60, 0x5b, 0x38, 0x3f, 0xa2, 0x1f, 0xfe, 0x3f, 0x04, 0x3f, 0x23, 0xbf, 0x2d, 0xa5, 0x70, 0x5a, - 0xd7, 0xb8, 0x0d, 0x77, 0xf7, 0xd8, 0xe0, 0x7b, 0x4a, 0xf1, 0x47, 0x09, 0x98, 0xe1, 0xc4, 0x5b, - 0x9a, 0x83, 0xcf, 0x5c, 0x7f, 0x64, 0x0b, 0xbb, 0xda, 0x23, 0x67, 0x9a, 0xa6, 0x2e, 0x16, 0xf0, - 0x49, 0x6e, 0xa3, 0x49, 0xfd, 0x3c, 0xaf, 0x2f, 0x0f, 0xdc, 0xe5, 0x2e, 0x0f, 0xb7, 0xed, 0xe5, - 0x7e, 0xd5, 0x93, 0x5f, 0x80, 0x64, 0xcd, 0xd4, 0x0d, 0xb2, 0xa4, 0xb5, 0xb0, 0x61, 0x76, 0xb8, - 0x95, 0x65, 0x0f, 0xe8, 0x3c, 0xa4, 0xb5, 0x8e, 0xd9, 0x35, 0x5c, 0x66, 0x61, 0xab, 0x33, 0x5f, - 0x7e, 0x6d, 0x76, 0xec, 0x3f, 0xbc, 0x36, 0x9b, 0x58, 0x32, 0xdc, 0xdf, 0xfd, 0xfc, 0x43, 0xc0, - 0xd1, 0x97, 0x0c, 0xf7, 0xd5, 0x6f, 0x7c, 0xf6, 0x74, 0x4c, 0xe1, 0xd4, 0x0b, 0xc9, 0x6f, 0xbe, - 0x32, 0x1b, 0x93, 0x9f, 0x83, 0xcc, 0x22, 0x6e, 0x1e, 0x00, 0xff, 0x48, 0x0f, 0xfc, 0x31, 0x01, - 0xbf, 0x88, 0x9b, 0x01, 0xf8, 0x45, 0xdc, 0xec, 0x41, 0x7e, 0x1c, 0xb2, 0x4b, 0x86, 0xcb, 0xbe, - 0x72, 0x78, 0x00, 0x12, 0xba, 0xc1, 0x0e, 0xce, 0x06, 0x10, 0xfa, 0x1a, 0xa8, 0x10, 0x2a, 0xc2, - 0xb8, 0x88, 0x9b, 0x1e, 0x63, 0x0b, 0x37, 0x7b, 0x19, 0xfb, 0x5f, 0x4d, 0xa8, 0xaa, 0x8b, 0xbf, - 0xf7, 0x5f, 0x66, 0xc6, 0x5e, 0x7e, 0x7d, 0x66, 0x6c, 0xe8, 0xd0, 0xcb, 0xd1, 0x43, 0xef, 0x8d, - 0xf8, 0xa7, 0x92, 0x70, 0x17, 0xfd, 0xf8, 0xcd, 0xee, 0xe8, 0x86, 0x7b, 0xa6, 0x69, 0xef, 0x5b, - 0xae, 0x49, 0xe6, 0xbd, 0xb9, 0xcd, 0x07, 0x7c, 0xc2, 0xaf, 0x9e, 0x67, 0xd5, 0x83, 0x87, 0x5b, - 0xde, 0x86, 0xd4, 0x3a, 0xe1, 0x23, 0x22, 0x76, 0x4d, 0x57, 0x6b, 0x73, 0x67, 0x85, 0x3d, 0x90, - 0x52, 0xf6, 0xc1, 0x5c, 0x9c, 0x95, 0xea, 0xe2, 0x5b, 0xb9, 0x36, 0xd6, 0xb6, 0xd9, 0x77, 0x07, - 0x09, 0xea, 0xe5, 0x66, 0x49, 0x01, 0xfd, 0xc4, 0x60, 0x0a, 0x52, 0x5a, 0x97, 0x1d, 0x78, 0x49, - 0x10, 0xf7, 0x97, 0x3e, 0xc8, 0xcf, 0x40, 0x86, 0x6f, 0xbb, 0x23, 0x09, 0x12, 0xd7, 0xf0, 0x3e, - 0x7d, 0xcf, 0xb8, 0x42, 0x7e, 0xa2, 0x79, 0x48, 0xd1, 0xc6, 0xf3, 0x0f, 0xaa, 0xa6, 0xe7, 0xfb, - 0x5a, 0x3f, 0x4f, 0x1b, 0xa9, 0x30, 0x32, 0xf9, 0x0a, 0x64, 0x17, 0x4d, 0xa2, 0x85, 0x61, 0xb4, - 0x1c, 0x43, 0xa3, 0x6d, 0xb6, 0xba, 0x5c, 0x2b, 0x14, 0xf6, 0x80, 0x8e, 0x40, 0x9a, 0x7d, 0x87, - 0xc2, 0x0f, 0xed, 0xf0, 0x27, 0xb9, 0x06, 0x19, 0x8a, 0xbd, 0x66, 0x11, 0x4f, 0xc1, 0x3b, 0xf2, - 0x9b, 0xe3, 0x5f, 0x25, 0x72, 0xf8, 0xb8, 0xdf, 0x58, 0x04, 0xc9, 0x96, 0xe6, 0x6a, 0xbc, 0xdf, - 0xf4, 0xb7, 0xfc, 0x4e, 0xc8, 0x72, 0x10, 0x07, 0x9d, 0x85, 0x84, 0x69, 0x39, 0xfc, 0xd8, 0x4d, - 0x79, 0x58, 0x57, 0xd6, 0xac, 0x6a, 0x92, 0xe8, 0x8c, 0x42, 0x88, 0xab, 0xab, 0x43, 0xd5, 0xe2, - 0xb1, 0x90, 0x5a, 0x74, 0xb0, 0xbb, 0xb5, 0xed, 0xfa, 0x3f, 0xd8, 0x70, 0xf6, 0xa9, 0x82, 0xa7, - 0x28, 0xb7, 0xe2, 0x30, 0x13, 0xa8, 0xbd, 0x8e, 0x6d, 0x47, 0x37, 0x0d, 0xa6, 0x4d, 0x5c, 0x53, - 0x50, 0xa0, 0x81, 0xbc, 0x7e, 0x88, 0xaa, 0x3c, 0x05, 0x89, 0x8a, 0x65, 0xa1, 0x32, 0x64, 0xe9, - 0x73, 0xd3, 0x64, 0xba, 0x92, 0x54, 0xbc, 0x67, 0x52, 0xe7, 0x98, 0xdb, 0xee, 0x0d, 0xcd, 0xf6, - 0x3e, 0xd3, 0x14, 0xcf, 0xf2, 0x93, 0x90, 0xab, 0x99, 0x86, 0x83, 0x0d, 0xa7, 0x4b, 0x5d, 0xe0, - 0xad, 0xb6, 0xd9, 0xbc, 0xc6, 0x11, 0xd8, 0x03, 0x11, 0xb6, 0x66, 0x59, 0x94, 0x33, 0xa9, 0x90, - 0x9f, 0x6c, 0xbe, 0x56, 0xd7, 0x86, 0x8a, 0xe7, 0xdc, 0xe1, 0xc4, 0xc3, 0x3b, 0xe8, 0xfb, 0xb2, - 0x31, 0xb8, 0xb3, 0x7f, 0x22, 0x5d, 0xc3, 0xfb, 0xce, 0x61, 0xe7, 0xd1, 0x73, 0x90, 0x5b, 0xa7, - 0xf7, 0x24, 0x3c, 0x83, 0xf7, 0x51, 0x19, 0x32, 0xb8, 0x75, 0xf6, 0xdc, 0xb9, 0x47, 0x9e, 0x64, - 0x5a, 0x7e, 0x79, 0x4c, 0x11, 0x05, 0x68, 0x06, 0x72, 0x0e, 0x6e, 0x5a, 0x67, 0xcf, 0x9d, 0xbf, - 0xf6, 0x08, 0x53, 0xab, 0xcb, 0x63, 0x8a, 0x5f, 0xb4, 0x90, 0x25, 0x3d, 0xfe, 0xe6, 0x27, 0x66, - 0x63, 0xd5, 0x14, 0x24, 0x9c, 0x6e, 0xe7, 0x2d, 0xd3, 0x8d, 0x9f, 0x49, 0xc1, 0x5c, 0xa0, 0x96, - 0x2d, 0x2e, 0xd7, 0xb5, 0xb6, 0xde, 0xd2, 0xfc, 0xdb, 0x2d, 0xa4, 0x40, 0xff, 0x29, 0xc5, 0x90, - 0x55, 0xe3, 0x40, 0x29, 0xca, 0xbf, 0x12, 0x83, 0xf1, 0xab, 0x02, 0xb9, 0x81, 0x5d, 0x74, 0x01, - 0xc0, 0x7b, 0x93, 0x98, 0x2a, 0xc7, 0xe7, 0x7b, 0xdf, 0x35, 0xef, 0xf1, 0x28, 0x01, 0x72, 0xf4, - 0x38, 0x55, 0x40, 0xcb, 0x74, 0xf8, 0x27, 0x7b, 0x11, 0xac, 0x1e, 0x31, 0x7a, 0x10, 0x10, 0xb5, - 0x6a, 0xea, 0x75, 0xd3, 0xd5, 0x8d, 0x1d, 0xd5, 0x32, 0x6f, 0xf0, 0x0f, 0xa1, 0x13, 0x8a, 0x44, - 0x6b, 0xae, 0xd2, 0x8a, 0x75, 0x52, 0x4e, 0x1a, 0x9d, 0xf3, 0x50, 0x48, 0x34, 0xa7, 0xb5, 0x5a, - 0x36, 0x76, 0x1c, 0x6e, 0xb8, 0xc4, 0x23, 0xba, 0x00, 0x19, 0xab, 0xbb, 0xa5, 0x0a, 0x2b, 0x91, - 0x3f, 0x7b, 0xe7, 0xa0, 0x39, 0x2f, 0x74, 0x83, 0xcf, 0xfa, 0xb4, 0xd5, 0xdd, 0x22, 0x9a, 0x72, - 0x37, 0x8c, 0x0f, 0x68, 0x4c, 0xfe, 0xba, 0xdf, 0x0e, 0x7a, 0x35, 0x07, 0xef, 0x81, 0x6a, 0xd9, - 0xba, 0x69, 0xeb, 0xee, 0x3e, 0x3d, 0x2f, 0x97, 0x50, 0x24, 0x51, 0xb1, 0xce, 0xcb, 0xe5, 0x6b, - 0x50, 0x6a, 0x50, 0x2f, 0xdf, 0x6f, 0xf9, 0x39, 0xbf, 0x7d, 0xb1, 0xe8, 0xf6, 0x0d, 0x6d, 0x59, - 0xbc, 0xaf, 0x65, 0xd5, 0x95, 0xa1, 0x9a, 0xf9, 0xe8, 0xe1, 0x34, 0x33, 0xbc, 0xba, 0xfd, 0xc1, - 0xb1, 0xd0, 0xa4, 0xe4, 0x5e, 0x4f, 0xc0, 0x64, 0x8d, 0xaa, 0x94, 0x51, 0x01, 0x7c, 0xf9, 0xe0, - 0x45, 0xb4, 0x1c, 0x61, 0x3a, 0xcb, 0x91, 0xd3, 0x47, 0x7e, 0x12, 0x0a, 0xeb, 0x9a, 0xed, 0x36, - 0xb0, 0x7b, 0x19, 0x6b, 0x2d, 0x6c, 0x87, 0x57, 0xd9, 0x82, 0x58, 0x65, 0x11, 0x24, 0xe9, 0x52, - 0xca, 0x56, 0x19, 0xfa, 0x5b, 0xde, 0x85, 0x24, 0x3d, 0x2f, 0xeb, 0xad, 0xc0, 0x9c, 0x83, 0xad, - 0xc0, 0xc4, 0x7e, 0xee, 0xbb, 0xd8, 0x11, 0x39, 0x26, 0xfa, 0x80, 0x1e, 0x13, 0xeb, 0x68, 0xe2, - 0xe0, 0x75, 0x94, 0x2b, 0x21, 0x5f, 0x4d, 0xdb, 0x90, 0xa9, 0x12, 0xf3, 0xbb, 0xb4, 0xe8, 0x35, - 0x24, 0xe6, 0x37, 0x04, 0xad, 0x40, 0xc9, 0xd2, 0x6c, 0x97, 0x7e, 0x6a, 0xb4, 0x4b, 0x7b, 0xc1, - 0xf5, 0x7c, 0xb6, 0x7f, 0xd6, 0x85, 0x3a, 0xcb, 0xdf, 0x52, 0xb0, 0x82, 0x85, 0xf2, 0x7f, 0x4d, - 0x42, 0x9a, 0x0b, 0xe3, 0x29, 0xc8, 0x70, 0xb1, 0x72, 0xcd, 0xbc, 0x6b, 0xbe, 0x7f, 0x31, 0x9a, - 0xf7, 0x16, 0x0d, 0x8e, 0x27, 0x78, 0xd0, 0xfd, 0x90, 0x6d, 0xee, 0x6a, 0xba, 0xa1, 0xea, 0x2d, - 0xee, 0x00, 0xe6, 0x5f, 0x7f, 0x6d, 0x36, 0x53, 0x23, 0x65, 0x4b, 0x8b, 0x4a, 0x86, 0x56, 0x2e, - 0xb5, 0xc8, 0xca, 0xbf, 0x8b, 0xf5, 0x9d, 0x5d, 0x97, 0xcf, 0x2e, 0xfe, 0x84, 0x9e, 0x80, 0x24, - 0x51, 0x08, 0xfe, 0x21, 0x6a, 0xb9, 0xcf, 0x87, 0xf7, 0xf2, 0x2b, 0xd5, 0x2c, 0x79, 0xf1, 0x07, - 0xff, 0xf3, 0x6c, 0x4c, 0xa1, 0x1c, 0xa8, 0x06, 0x85, 0xb6, 0xe6, 0xb8, 0x2a, 0x5d, 0xb5, 0xc8, - 0xeb, 0x53, 0x14, 0xe2, 0x58, 0xbf, 0x40, 0xb8, 0x60, 0x79, 0xd3, 0xf3, 0x84, 0x8b, 0x15, 0xb5, - 0xd0, 0x49, 0x90, 0x28, 0x48, 0xd3, 0xec, 0x74, 0x74, 0x97, 0xf9, 0x52, 0x69, 0x2a, 0xf7, 0x22, - 0x29, 0xaf, 0xd1, 0x62, 0xea, 0x51, 0x1d, 0x87, 0x1c, 0xfd, 0xf4, 0x8d, 0x92, 0xb0, 0x43, 0xda, - 0x59, 0x52, 0x40, 0x2b, 0x4f, 0x40, 0xc9, 0xb7, 0x8d, 0x8c, 0x24, 0xcb, 0x50, 0xfc, 0x62, 0x4a, - 0xf8, 0x30, 0x4c, 0x19, 0x78, 0x8f, 0x1e, 0x1b, 0x0f, 0x51, 0xe7, 0x28, 0x35, 0x22, 0x75, 0x57, - 0xc3, 0x1c, 0xf7, 0x41, 0xb1, 0x29, 0x84, 0xcf, 0x68, 0x81, 0xd2, 0x16, 0xbc, 0x52, 0x4a, 0x76, - 0x0c, 0xb2, 0x9a, 0x65, 0x31, 0x82, 0x3c, 0xb7, 0x8d, 0x96, 0x45, 0xab, 0x4e, 0xc3, 0x04, 0xed, - 0xa3, 0x8d, 0x9d, 0x6e, 0xdb, 0xe5, 0x20, 0xe3, 0x94, 0xa6, 0x44, 0x2a, 0x14, 0x56, 0x4e, 0x69, - 0xef, 0x81, 0x02, 0xbe, 0xae, 0xb7, 0xb0, 0xd1, 0xc4, 0x8c, 0xae, 0x40, 0xe9, 0xc6, 0x45, 0x21, - 0x25, 0x3a, 0x05, 0x9e, 0xcd, 0x53, 0x85, 0x3d, 0x2e, 0x32, 0x3c, 0x51, 0x5e, 0x61, 0xc5, 0xf2, - 0x34, 0x24, 0x17, 0x35, 0x57, 0x23, 0x4e, 0x85, 0xbb, 0xc7, 0x16, 0x99, 0x71, 0x85, 0xfc, 0x94, - 0xbf, 0x19, 0x87, 0xe4, 0x55, 0xd3, 0xc5, 0xe8, 0xd1, 0x80, 0xc3, 0x57, 0x1c, 0xa4, 0xcf, 0x0d, - 0x7d, 0xc7, 0xc0, 0xad, 0x15, 0x67, 0x27, 0x70, 0x4f, 0x85, 0xaf, 0x4e, 0xf1, 0x90, 0x3a, 0x4d, - 0x41, 0xca, 0x36, 0xbb, 0x46, 0x4b, 0x9c, 0x6f, 0xa6, 0x0f, 0xa8, 0x0e, 0x59, 0x4f, 0x4b, 0x92, - 0x51, 0x5a, 0x52, 0x22, 0x5a, 0x42, 0x74, 0x98, 0x17, 0x28, 0x99, 0x2d, 0xae, 0x2c, 0x55, 0xc8, - 0x79, 0xc6, 0x8b, 0x6b, 0xdb, 0x68, 0x0a, 0xeb, 0xb3, 0x91, 0x85, 0xc4, 0x1b, 0x7b, 0x4f, 0x78, - 0x4c, 0xe3, 0x24, 0xaf, 0x82, 0x4b, 0x2f, 0xa4, 0x56, 0xfc, 0xce, 0x8c, 0x0c, 0xed, 0x97, 0xaf, - 0x56, 0xec, 0xde, 0x8c, 0x3b, 0x21, 0xe7, 0xe8, 0x3b, 0x86, 0xe6, 0x76, 0x6d, 0xcc, 0x35, 0xcf, - 0x2f, 0x90, 0xbf, 0x14, 0x83, 0x34, 0xd3, 0xe4, 0x80, 0xdc, 0x62, 0x83, 0xe5, 0x16, 0x1f, 0x26, - 0xb7, 0xc4, 0xed, 0xcb, 0xad, 0x02, 0xe0, 0x35, 0xc6, 0xe1, 0x57, 0x19, 0x0c, 0xf0, 0x16, 0x58, - 0x13, 0x1b, 0xfa, 0x0e, 0x9f, 0xa8, 0x01, 0x26, 0xf9, 0x3f, 0xc5, 0x88, 0xe3, 0xca, 0xeb, 0x51, - 0x05, 0x0a, 0xa2, 0x5d, 0xea, 0x76, 0x5b, 0xdb, 0xe1, 0xba, 0x73, 0xd7, 0xd0, 0xc6, 0x5d, 0x6c, - 0x6b, 0x3b, 0x4a, 0x9e, 0xb7, 0x87, 0x3c, 0x0c, 0x1e, 0x87, 0xf8, 0x90, 0x71, 0x08, 0x0d, 0x7c, - 0xe2, 0xf6, 0x06, 0x3e, 0x34, 0x44, 0xc9, 0xde, 0x21, 0xfa, 0x5c, 0x9c, 0x06, 0x2f, 0x96, 0xe9, - 0x68, 0xed, 0xb7, 0x63, 0x46, 0x1c, 0x87, 0x9c, 0x65, 0xb6, 0x55, 0x56, 0xc3, 0xce, 0xfd, 0x67, - 0x2d, 0xb3, 0xad, 0xf4, 0x0d, 0x7b, 0xea, 0x4d, 0x9a, 0x2e, 0xe9, 0x37, 0x41, 0x6a, 0x99, 0x5e, - 0xa9, 0xd9, 0x30, 0xce, 0x44, 0xc1, 0xd7, 0xb2, 0x87, 0x89, 0x0c, 0xe8, 0xe2, 0x18, 0xeb, 0x5f, - 0x7b, 0x59, 0xb3, 0x19, 0xa5, 0xc2, 0xe9, 0x08, 0x07, 0x33, 0xfd, 0x83, 0xa2, 0xde, 0xa0, 0x5a, - 0x2a, 0x9c, 0x4e, 0xfe, 0x99, 0x18, 0xc0, 0x32, 0x91, 0x2c, 0xed, 0x2f, 0x59, 0x85, 0x1c, 0xda, - 0x04, 0x35, 0xf4, 0xe6, 0x99, 0x61, 0x83, 0xc6, 0xdf, 0x3f, 0xee, 0x04, 0xdb, 0x5d, 0x83, 0x82, - 0xaf, 0x8c, 0x0e, 0x16, 0x8d, 0x99, 0x39, 0xc0, 0xa3, 0x6e, 0x60, 0x57, 0x19, 0xbf, 0x1e, 0x78, - 0x92, 0xff, 0x49, 0x0c, 0x72, 0xb4, 0x4d, 0x2b, 0xd8, 0xd5, 0x42, 0x63, 0x18, 0xbb, 0xfd, 0x31, - 0xbc, 0x0b, 0x80, 0xc1, 0x38, 0xfa, 0x4b, 0x98, 0x6b, 0x56, 0x8e, 0x96, 0x34, 0xf4, 0x97, 0x30, - 0x3a, 0xef, 0x09, 0x3c, 0x71, 0xb0, 0xc0, 0x85, 0xc7, 0xcd, 0xc5, 0x7e, 0x14, 0x32, 0xf4, 0xea, - 0xaf, 0x3d, 0x87, 0x3b, 0xd1, 0x69, 0xa3, 0xdb, 0xd9, 0xd8, 0x73, 0xe4, 0x17, 0x21, 0xb3, 0xb1, - 0xc7, 0x72, 0x21, 0xc7, 0x21, 0x67, 0x9b, 0x26, 0x5f, 0x93, 0x99, 0x2f, 0x94, 0x25, 0x05, 0x74, - 0x09, 0x12, 0xf1, 0x7f, 0xdc, 0x8f, 0xff, 0xfd, 0x04, 0x46, 0x62, 0xa4, 0x04, 0xc6, 0xe9, 0x7f, - 0x1f, 0x83, 0x7c, 0xc0, 0x3e, 0xa0, 0x47, 0xe0, 0x8e, 0xea, 0xf2, 0x5a, 0xed, 0x19, 0x75, 0x69, - 0x51, 0xbd, 0xb8, 0x5c, 0xb9, 0xe4, 0x7f, 0xd9, 0x56, 0x3e, 0x72, 0xf3, 0xd6, 0x1c, 0x0a, 0xd0, - 0x6e, 0x1a, 0x74, 0x13, 0x07, 0x9d, 0x81, 0xa9, 0x30, 0x4b, 0xa5, 0xda, 0xa8, 0xaf, 0x6e, 0x48, - 0xb1, 0xf2, 0x1d, 0x37, 0x6f, 0xcd, 0x4d, 0x04, 0x38, 0x2a, 0x5b, 0x0e, 0x36, 0xdc, 0x7e, 0x86, - 0xda, 0xda, 0xca, 0xca, 0xd2, 0x86, 0x14, 0xef, 0x63, 0xe0, 0x06, 0xfb, 0x14, 0x4c, 0x84, 0x19, - 0x56, 0x97, 0x96, 0xa5, 0x44, 0x19, 0xdd, 0xbc, 0x35, 0x57, 0x0c, 0x50, 0xaf, 0xea, 0xed, 0x72, - 0xf6, 0xfd, 0x9f, 0x9c, 0x19, 0x7b, 0xf5, 0xef, 0xcc, 0xc4, 0x48, 0xcf, 0x0a, 0x21, 0x1b, 0x81, - 0x1e, 0x84, 0xa3, 0x8d, 0xa5, 0x4b, 0xab, 0xf5, 0x45, 0x75, 0xa5, 0x71, 0x49, 0x6c, 0x83, 0x88, - 0xde, 0x95, 0x6e, 0xde, 0x9a, 0xcb, 0xf3, 0x2e, 0x0d, 0xa3, 0x5e, 0x57, 0xea, 0x57, 0xd7, 0x36, - 0xea, 0x52, 0x8c, 0x51, 0xaf, 0xdb, 0xf8, 0xba, 0xe9, 0xb2, 0xbb, 0x01, 0x1f, 0x86, 0x63, 0x03, - 0xa8, 0xbd, 0x8e, 0x4d, 0xdc, 0xbc, 0x35, 0x57, 0x58, 0xb7, 0x31, 0x9b, 0x3f, 0x94, 0x63, 0x1e, - 0xa6, 0xfb, 0x39, 0xd6, 0xd6, 0xd7, 0x1a, 0x95, 0x65, 0x69, 0xae, 0x2c, 0xdd, 0xbc, 0x35, 0x37, - 0x2e, 0x8c, 0x21, 0xa1, 0xf7, 0x7b, 0xf6, 0x56, 0x45, 0x3b, 0x3f, 0x91, 0x09, 0xe5, 0xf2, 0x58, - 0x1c, 0x61, 0x69, 0xb6, 0xd6, 0x39, 0x6c, 0xb8, 0x13, 0xb1, 0x8b, 0x2b, 0xbf, 0x1c, 0x87, 0x92, - 0xe7, 0x4c, 0xaf, 0xd3, 0x37, 0xa0, 0x47, 0x83, 0x79, 0x98, 0xfc, 0xd0, 0x65, 0x8c, 0x51, 0x8b, - 0x34, 0xcd, 0x3b, 0x20, 0x2b, 0x9c, 0x32, 0x6e, 0x2e, 0xe6, 0xfa, 0xf9, 0xea, 0x9c, 0x82, 0xb3, - 0x7a, 0x1c, 0xe8, 0x69, 0xc8, 0x79, 0xc6, 0xc3, 0xbb, 0x59, 0x67, 0xb8, 0xb5, 0xe1, 0xfc, 0x3e, - 0x0f, 0x7a, 0xd2, 0x0f, 0x1b, 0x92, 0xc3, 0x02, 0x91, 0xab, 0x8c, 0x80, 0x33, 0x0b, 0x7a, 0x79, - 0x89, 0x4f, 0x3b, 0xde, 0x7b, 0x7a, 0x2b, 0xc1, 0x9e, 0xca, 0x22, 0x29, 0xe6, 0x95, 0x64, 0x3b, - 0xda, 0x5e, 0x95, 0x06, 0x53, 0x47, 0x21, 0x43, 0x2a, 0x77, 0xf8, 0x47, 0xd7, 0x09, 0x25, 0xdd, - 0xd1, 0xf6, 0x2e, 0x69, 0xce, 0x95, 0x64, 0x36, 0x21, 0x25, 0xe5, 0xcf, 0xc4, 0xa0, 0x18, 0xee, - 0x23, 0x7a, 0x00, 0x10, 0xe1, 0xd0, 0x76, 0xb0, 0x4a, 0x4c, 0x0c, 0x15, 0x96, 0xc0, 0x2d, 0x75, - 0xb4, 0xbd, 0xca, 0x0e, 0x5e, 0xed, 0x76, 0x68, 0x03, 0x1c, 0xb4, 0x02, 0x92, 0x20, 0x16, 0xe3, - 0xc4, 0x85, 0x79, 0xac, 0xff, 0x9e, 0x3d, 0x4e, 0xc0, 0x16, 0xaa, 0x8f, 0x90, 0x85, 0xaa, 0xc8, - 0xf0, 0xbc, 0x5d, 0xf8, 0x50, 0x57, 0x12, 0xe1, 0xae, 0xc8, 0x4f, 0x43, 0xa9, 0x47, 0x9e, 0x48, - 0x86, 0x02, 0xcf, 0x0a, 0xd0, 0x1d, 0x4e, 0xe6, 0x1f, 0xe7, 0x94, 0x3c, 0x8b, 0xfe, 0xe9, 0x8e, - 0xef, 0x42, 0xf6, 0x8b, 0xaf, 0xcc, 0xc6, 0x68, 0xc2, 0xfc, 0x01, 0x28, 0x84, 0x24, 0x2a, 0x32, - 0x75, 0x31, 0x3f, 0x53, 0xe7, 0x13, 0xbf, 0x00, 0xe3, 0xc4, 0x50, 0xe2, 0x16, 0xa7, 0xbd, 0x1f, - 0x4a, 0xcc, 0x90, 0xf7, 0xca, 0x9a, 0x79, 0x52, 0x2b, 0x42, 0xe0, 0xb2, 0x70, 0xad, 0xc2, 0x62, - 0xcf, 0x0b, 0xaa, 0x4b, 0x9a, 0x53, 0x7d, 0xd7, 0xab, 0xaf, 0xcf, 0xc4, 0xde, 0x9a, 0x89, 0xf8, - 0xd5, 0x77, 0xc1, 0xf1, 0x40, 0xa5, 0xb6, 0xd5, 0xd4, 0x43, 0x59, 0x87, 0x52, 0x40, 0xc9, 0x48, - 0x65, 0x54, 0xf6, 0xe0, 0xc0, 0x1c, 0xc6, 0xc1, 0x09, 0xb3, 0xf2, 0xc1, 0x16, 0x21, 0x3a, 0xb1, - 0x31, 0x38, 0x47, 0xf9, 0x7f, 0xb3, 0x90, 0x51, 0xf0, 0x7b, 0xbb, 0xd8, 0x71, 0xd1, 0x59, 0x48, - 0xe2, 0xe6, 0xae, 0x39, 0x28, 0x25, 0x44, 0x3a, 0x37, 0xcf, 0xe9, 0xea, 0xcd, 0x5d, 0xf3, 0xf2, - 0x98, 0x42, 0x69, 0xd1, 0x39, 0x48, 0x6d, 0xb7, 0xbb, 0x3c, 0x4f, 0xd1, 0x63, 0x2c, 0x82, 0x4c, - 0x17, 0x09, 0xd1, 0xe5, 0x31, 0x85, 0x51, 0x93, 0x57, 0xd1, 0x1b, 0x4b, 0x13, 0x07, 0xbf, 0x6a, - 0xc9, 0xd8, 0xa6, 0xaf, 0x22, 0xb4, 0xa8, 0x0a, 0xa0, 0x1b, 0xba, 0xab, 0xd2, 0x18, 0x9e, 0x7b, - 0x82, 0x77, 0x0f, 0xe7, 0xd4, 0x5d, 0x1a, 0xf5, 0x5f, 0x1e, 0x53, 0x72, 0xba, 0x78, 0x20, 0xcd, - 0x7d, 0x6f, 0x17, 0xdb, 0xfb, 0xdc, 0x01, 0x1c, 0xda, 0xdc, 0x77, 0x11, 0x22, 0xd2, 0x5c, 0x4a, - 0x8d, 0xea, 0x90, 0xa7, 0x9f, 0xa6, 0xb2, 0xf9, 0xcb, 0x6f, 0xcf, 0x94, 0x87, 0x31, 0x57, 0x09, - 0x29, 0x9d, 0xd2, 0x97, 0xc7, 0x14, 0xd8, 0xf2, 0x9e, 0x88, 0x91, 0x64, 0xb7, 0x2b, 0xb9, 0x7b, - 0xfc, 0xce, 0xc0, 0xd9, 0x61, 0x18, 0xf4, 0x8a, 0xa5, 0x8d, 0xbd, 0xcb, 0x63, 0x4a, 0xa6, 0xc9, - 0x7e, 0x92, 0xfe, 0xb7, 0x70, 0x5b, 0xbf, 0x8e, 0x6d, 0xc2, 0x9f, 0x3b, 0xb8, 0xff, 0x8b, 0x8c, - 0x92, 0x22, 0xe4, 0x5a, 0xe2, 0x81, 0x18, 0x5a, 0x6c, 0xb4, 0x78, 0x37, 0xa0, 0xdf, 0x4e, 0x87, - 0xc6, 0xd9, 0x68, 0x89, 0x4e, 0x64, 0x31, 0xff, 0x8d, 0x9e, 0xf0, 0x3c, 0xd4, 0x7c, 0xbf, 0x53, - 0x18, 0xea, 0x00, 0xcb, 0x55, 0x8c, 0x09, 0x4f, 0x15, 0xad, 0x42, 0xb1, 0xad, 0x3b, 0xae, 0xea, - 0x18, 0x9a, 0xe5, 0xec, 0x9a, 0xae, 0x43, 0x83, 0xfe, 0xfc, 0xd9, 0xfb, 0x86, 0x21, 0x2c, 0xeb, - 0x8e, 0xdb, 0x10, 0xc4, 0x97, 0xc7, 0x94, 0x42, 0x3b, 0x58, 0x40, 0xf0, 0xcc, 0xed, 0x6d, 0x6c, - 0x7b, 0x80, 0x34, 0x39, 0x70, 0x00, 0xde, 0x1a, 0xa1, 0x16, 0xfc, 0x04, 0xcf, 0x0c, 0x16, 0xa0, - 0x1f, 0x84, 0xc9, 0xb6, 0xa9, 0xb5, 0x3c, 0x38, 0xb5, 0xb9, 0xdb, 0x35, 0xae, 0xd1, 0x4c, 0x42, - 0xfe, 0xec, 0xa9, 0xa1, 0x8d, 0x34, 0xb5, 0x96, 0x80, 0xa8, 0x11, 0x86, 0xcb, 0x63, 0xca, 0x44, - 0xbb, 0xb7, 0x10, 0xbd, 0x1b, 0xa6, 0x34, 0xcb, 0x6a, 0xef, 0xf7, 0xa2, 0x97, 0x28, 0xfa, 0xe9, - 0x61, 0xe8, 0x15, 0xc2, 0xd3, 0x0b, 0x8f, 0xb4, 0xbe, 0x52, 0xb4, 0x01, 0x92, 0x65, 0x63, 0xfa, - 0x2d, 0x8d, 0xc5, 0x5d, 0x15, 0x7a, 0x21, 0x56, 0xfe, 0xec, 0x89, 0x61, 0xd8, 0xeb, 0x8c, 0x5e, - 0x78, 0x36, 0x97, 0xc7, 0x94, 0x92, 0x15, 0x2e, 0x62, 0xa8, 0x66, 0x13, 0xd3, 0x4b, 0x9b, 0x38, - 0xea, 0x44, 0x14, 0x2a, 0xa5, 0x0f, 0xa3, 0x86, 0x8a, 0xaa, 0x19, 0x7e, 0x16, 0x8e, 0xdf, 0xa8, - 0x72, 0x02, 0xf2, 0x01, 0xc3, 0x82, 0xa6, 0x21, 0xc3, 0xcf, 0x06, 0x88, 0x33, 0x74, 0xfc, 0x51, - 0x2e, 0xc2, 0x78, 0xd0, 0x98, 0xc8, 0x1f, 0x8c, 0x79, 0x9c, 0xf4, 0x13, 0xf7, 0xe9, 0x70, 0xea, - 0x30, 0xe7, 0x67, 0x05, 0xef, 0x11, 0xab, 0x88, 0xa8, 0x67, 0xbb, 0x49, 0xe3, 0xb4, 0x90, 0x2f, - 0x62, 0x68, 0x16, 0xf2, 0xd6, 0x59, 0xcb, 0x23, 0x49, 0x50, 0x12, 0xb0, 0xce, 0x5a, 0x82, 0xe0, - 0x6e, 0x18, 0x27, 0x3d, 0x55, 0x83, 0x8e, 0x46, 0x4e, 0xc9, 0x93, 0x32, 0x4e, 0x22, 0xff, 0xeb, - 0x38, 0x48, 0xbd, 0x06, 0xc8, 0xcb, 0x29, 0xc6, 0x0e, 0x9d, 0x53, 0x3c, 0xd6, 0x9b, 0xcd, 0xf4, - 0x13, 0x98, 0xcb, 0x20, 0xf9, 0x79, 0x38, 0xb6, 0x10, 0x0c, 0x77, 0x9c, 0x7a, 0x3c, 0x3c, 0xa5, - 0xd4, 0xec, 0x71, 0xf9, 0x2e, 0x86, 0xf6, 0x5e, 0xc4, 0x95, 0xdc, 0xbd, 0x43, 0xec, 0xf9, 0x0b, - 0x9b, 0x56, 0x4b, 0x73, 0xb1, 0xc8, 0x8b, 0x04, 0xb6, 0x61, 0xee, 0x87, 0x92, 0x66, 0x59, 0xaa, - 0xe3, 0x6a, 0x2e, 0xe6, 0xcb, 0x7a, 0x8a, 0xa5, 0x07, 0x35, 0xcb, 0x6a, 0x90, 0x52, 0xb6, 0xac, - 0xdf, 0x07, 0x45, 0x62, 0x93, 0x75, 0xad, 0xad, 0xf2, 0x2c, 0x41, 0x9a, 0xad, 0xfe, 0xbc, 0xf4, - 0x32, 0x2d, 0x94, 0x5b, 0xde, 0x88, 0x53, 0x7b, 0xec, 0x85, 0x59, 0xb1, 0x40, 0x98, 0x85, 0xf8, - 0xdd, 0x03, 0x4c, 0x3e, 0xe2, 0xba, 0x86, 0xc1, 0xd9, 0xdd, 0x29, 0x1a, 0x92, 0x5d, 0x67, 0x09, - 0x8f, 0xac, 0xc2, 0x1e, 0xe4, 0xf7, 0xc5, 0x61, 0xa2, 0xcf, 0x72, 0x0f, 0x4c, 0x7b, 0xfb, 0xf1, - 0x65, 0xfc, 0x50, 0xf1, 0xe5, 0x33, 0xe1, 0xb4, 0x6e, 0x60, 0xe5, 0x3b, 0xde, 0x27, 0x64, 0x66, - 0x37, 0x89, 0x42, 0x73, 0x90, 0x40, 0xe6, 0x97, 0xaa, 0xf9, 0x26, 0x4c, 0x6d, 0xed, 0xbf, 0xa4, - 0x19, 0xae, 0x6e, 0x60, 0xb5, 0x6f, 0xd4, 0xfa, 0x97, 0xd2, 0x15, 0xdd, 0xd9, 0xc2, 0xbb, 0xda, - 0x75, 0xdd, 0x14, 0xcd, 0x9a, 0xf4, 0xf8, 0xfd, 0xe4, 0xae, 0xac, 0x40, 0x31, 0xbc, 0xf4, 0xa0, - 0x22, 0xc4, 0xdd, 0x3d, 0xde, 0xff, 0xb8, 0xbb, 0x87, 0x1e, 0xe6, 0x79, 0xa0, 0x38, 0xcd, 0x03, - 0xf5, 0xbf, 0x88, 0xf3, 0xf9, 0x49, 0x20, 0x59, 0xf6, 0x66, 0x83, 0xb7, 0x1c, 0xf5, 0xa2, 0xca, - 0xa7, 0xa0, 0xd4, 0xb3, 0xde, 0x0c, 0xcb, 0x0a, 0xca, 0x25, 0x28, 0x84, 0x16, 0x17, 0xf9, 0x08, - 0x4c, 0x0d, 0x5a, 0x2b, 0xe4, 0x5d, 0xaf, 0x3c, 0x64, 0xf3, 0xd1, 0x39, 0xc8, 0x7a, 0x8b, 0xc5, - 0x80, 0x2c, 0x04, 0xed, 0x85, 0x20, 0x56, 0x3c, 0xd2, 0x50, 0x32, 0x3b, 0x1e, 0x4a, 0x66, 0xcb, - 0xef, 0x81, 0xe9, 0x61, 0x0b, 0x41, 0x4f, 0x37, 0x92, 0x9e, 0x16, 0x1e, 0x81, 0x34, 0xbf, 0x99, - 0x2d, 0x4e, 0xb7, 0x6f, 0xf8, 0x13, 0xd1, 0x4e, 0xb6, 0x28, 0x24, 0xd8, 0xae, 0x0e, 0x7d, 0x90, - 0x55, 0x38, 0x36, 0x74, 0x31, 0x18, 0xbe, 0x11, 0xc4, 0x80, 0xf8, 0x46, 0x50, 0x53, 0x34, 0xc7, - 0xa1, 0x7d, 0x15, 0x87, 0x1d, 0xd8, 0x93, 0xfc, 0x91, 0x04, 0x1c, 0x19, 0xbc, 0x24, 0xa0, 0x39, - 0x18, 0x27, 0x7e, 0xb7, 0x1b, 0x76, 0xd1, 0xa1, 0xa3, 0xed, 0x6d, 0x70, 0xff, 0x9c, 0x27, 0xd2, - 0xe3, 0x5e, 0x22, 0x1d, 0x6d, 0xc2, 0x44, 0xdb, 0x6c, 0x6a, 0x6d, 0x35, 0xa0, 0xf1, 0x5c, 0xd9, - 0xef, 0xe9, 0x13, 0x76, 0x9d, 0xdd, 0xd7, 0xdc, 0xea, 0x53, 0xfa, 0x12, 0xc5, 0x58, 0xf6, 0x34, - 0x1f, 0x2d, 0x42, 0xbe, 0xe3, 0x2b, 0xf2, 0x21, 0x94, 0x3d, 0xc8, 0x16, 0x18, 0x92, 0xd4, 0xc0, - 0x6d, 0x9f, 0xf4, 0xa1, 0x4d, 0xf4, 0xb0, 0x1d, 0x94, 0xcc, 0xd0, 0x1d, 0x94, 0x41, 0xdb, 0x15, - 0xd9, 0xc1, 0xdb, 0x15, 0xef, 0x0f, 0x0e, 0x4d, 0x68, 0x11, 0xed, 0xdf, 0xc1, 0x40, 0x0d, 0x98, - 0xe2, 0xfc, 0xad, 0x90, 0xec, 0xe3, 0xa3, 0x1a, 0x1a, 0x24, 0xd8, 0x87, 0x8b, 0x3d, 0x71, 0x7b, - 0x62, 0x17, 0xb6, 0x34, 0x19, 0xb0, 0xa5, 0xff, 0x9f, 0x0d, 0xc5, 0xbf, 0xcd, 0x41, 0x56, 0xc1, - 0x8e, 0x45, 0x16, 0x4e, 0x54, 0x85, 0x1c, 0xde, 0x6b, 0x62, 0xcb, 0xf5, 0xb7, 0x29, 0x07, 0x05, - 0x03, 0x8c, 0xba, 0x2e, 0x28, 0x89, 0x27, 0xee, 0xb1, 0xa1, 0x47, 0x79, 0xb0, 0x35, 0x3c, 0x6e, - 0xe2, 0xec, 0xc1, 0x68, 0xeb, 0xbc, 0x88, 0xb6, 0x12, 0x43, 0x9d, 0x6f, 0xc6, 0xd5, 0x13, 0x6e, - 0x3d, 0xca, 0xc3, 0xad, 0x64, 0xc4, 0xcb, 0x42, 0xf1, 0x56, 0x2d, 0x14, 0x6f, 0xa5, 0x23, 0xba, - 0x39, 0x24, 0xe0, 0x3a, 0x2f, 0x02, 0xae, 0x4c, 0x44, 0x8b, 0x7b, 0x22, 0xae, 0x8b, 0xe1, 0x88, - 0x2b, 0x3b, 0xc4, 0x80, 0x08, 0xee, 0xa1, 0x21, 0xd7, 0x53, 0x81, 0x90, 0x2b, 0x37, 0x34, 0xde, - 0x61, 0x20, 0x03, 0x62, 0xae, 0x5a, 0x28, 0xe6, 0x82, 0x08, 0x19, 0x0c, 0x09, 0xba, 0x7e, 0x20, - 0x18, 0x74, 0xe5, 0x87, 0xc6, 0x6d, 0x7c, 0xbc, 0x07, 0x45, 0x5d, 0x4f, 0x7a, 0x51, 0xd7, 0xf8, - 0xd0, 0xb0, 0x91, 0xf7, 0xa1, 0x37, 0xec, 0x5a, 0xeb, 0x0b, 0xbb, 0x0a, 0xfc, 0x4f, 0x21, 0x0c, - 0x83, 0x88, 0x88, 0xbb, 0xd6, 0xfa, 0xe2, 0xae, 0x62, 0x04, 0x60, 0x44, 0xe0, 0xf5, 0x57, 0x06, - 0x07, 0x5e, 0xc3, 0x43, 0x23, 0xde, 0xcc, 0xd1, 0x22, 0x2f, 0x75, 0x48, 0xe4, 0xc5, 0xa2, 0xa3, - 0x07, 0x86, 0xc2, 0x8f, 0x1c, 0x7a, 0x6d, 0x0e, 0x08, 0xbd, 0x58, 0x90, 0x74, 0x72, 0x28, 0xf8, - 0x08, 0xb1, 0xd7, 0xe6, 0x80, 0xd8, 0x0b, 0x45, 0xc2, 0x1e, 0x26, 0xf8, 0x4a, 0x49, 0x69, 0xf9, - 0x14, 0x71, 0x7d, 0x7b, 0xec, 0x14, 0xf1, 0x1f, 0xb0, 0x6d, 0x9b, 0xb6, 0x38, 0x59, 0x4b, 0x1f, - 0xe4, 0x93, 0xc4, 0x19, 0xf7, 0x6d, 0xd2, 0x01, 0x81, 0x1a, 0xf5, 0xd3, 0x02, 0x76, 0x48, 0xfe, - 0x62, 0xcc, 0xe7, 0xa5, 0x3e, 0x6c, 0xd0, 0x91, 0xcf, 0x71, 0x47, 0x3e, 0x10, 0xbe, 0xc5, 0xc3, - 0xe1, 0xdb, 0x2c, 0xe4, 0x89, 0xff, 0xd5, 0x13, 0x99, 0x69, 0x96, 0x17, 0x99, 0x89, 0x23, 0x05, - 0x2c, 0xc8, 0xe3, 0xcb, 0x0a, 0xdb, 0xc9, 0x29, 0x79, 0xc7, 0x2b, 0x58, 0x4c, 0x81, 0x1e, 0x82, - 0xc9, 0x00, 0xad, 0xe7, 0xd7, 0xb1, 0x30, 0x45, 0xf2, 0xa8, 0x2b, 0xdc, 0xc1, 0xfb, 0x67, 0x31, - 0x5f, 0x42, 0x7e, 0x48, 0x37, 0x28, 0xfa, 0x8a, 0xbd, 0x49, 0xd1, 0x57, 0xfc, 0xb6, 0xa3, 0xaf, - 0xa0, 0x9f, 0x9a, 0x08, 0xfb, 0xa9, 0xff, 0x33, 0xe6, 0x8f, 0x89, 0x17, 0x4b, 0x35, 0xcd, 0x16, - 0xe6, 0x9e, 0x23, 0xfd, 0x4d, 0x9c, 0x8a, 0xb6, 0xb9, 0xc3, 0xfd, 0x43, 0xf2, 0x93, 0x50, 0x79, - 0x0b, 0x47, 0x8e, 0xaf, 0x0b, 0x9e, 0xd3, 0x99, 0x0a, 0x9e, 0xff, 0xe5, 0x87, 0x62, 0xd3, 0xfe, - 0xa1, 0x58, 0xef, 0x9b, 0xb7, 0x4c, 0xe0, 0x9b, 0x37, 0xf4, 0x04, 0xe4, 0x68, 0x46, 0x54, 0x35, - 0x2d, 0xf1, 0x87, 0x33, 0x8e, 0x0f, 0x3f, 0x10, 0xeb, 0xd0, 0xa3, 0x7a, 0xec, 0x10, 0xad, 0xef, - 0x31, 0xe4, 0x42, 0x1e, 0xc3, 0x9d, 0x90, 0x23, 0xad, 0x67, 0x17, 0x40, 0x03, 0xff, 0x60, 0x52, - 0x14, 0xc8, 0xef, 0x06, 0xd4, 0xbf, 0x48, 0xa0, 0xcb, 0x90, 0xc6, 0xd7, 0xe9, 0x6d, 0x7a, 0xec, - 0xa0, 0xe1, 0x91, 0x7e, 0xd7, 0x94, 0x54, 0x57, 0xa7, 0x89, 0x90, 0xbf, 0xf5, 0xda, 0xac, 0xc4, - 0xa8, 0x1f, 0xf4, 0xbe, 0x0f, 0x50, 0x38, 0xbf, 0xfc, 0x1f, 0xe3, 0x24, 0x80, 0x09, 0x2d, 0x20, - 0x03, 0x65, 0x3b, 0x68, 0x8b, 0x70, 0x34, 0x79, 0xcf, 0x00, 0xec, 0x68, 0x8e, 0x7a, 0x43, 0x33, - 0x5c, 0xdc, 0xe2, 0x42, 0x0f, 0x94, 0xa0, 0x32, 0x64, 0xc9, 0x53, 0xd7, 0xc1, 0x2d, 0x1e, 0x46, - 0x7b, 0xcf, 0x81, 0x7e, 0x66, 0xbe, 0xb7, 0x7e, 0x86, 0xa5, 0x9c, 0xed, 0x91, 0x72, 0x20, 0xb8, - 0xc8, 0x05, 0x83, 0x0b, 0x76, 0x30, 0x98, 0x9f, 0x4f, 0x04, 0xd6, 0x36, 0xf1, 0x8c, 0xee, 0x81, - 0x42, 0x07, 0x77, 0x2c, 0xd3, 0x6c, 0xab, 0xcc, 0xdc, 0xb0, 0x9b, 0xde, 0xc7, 0x79, 0x61, 0x9d, - 0x5a, 0x9d, 0x1f, 0x8f, 0xfb, 0xf3, 0xcf, 0x0f, 0x22, 0xbf, 0xef, 0x04, 0x2c, 0xff, 0x14, 0xcd, - 0x2c, 0x85, 0x5d, 0x04, 0xd4, 0x08, 0x9e, 0x1a, 0xe9, 0x52, 0xb3, 0x20, 0x14, 0x7a, 0x54, 0xfb, - 0xe1, 0x9f, 0x2e, 0x61, 0xc5, 0x0e, 0x7a, 0x1e, 0x8e, 0xf6, 0xd8, 0x36, 0x0f, 0x3a, 0x3e, 0xaa, - 0x89, 0xbb, 0x23, 0x6c, 0xe2, 0x04, 0xb4, 0x2f, 0xac, 0xc4, 0xf7, 0x38, 0xeb, 0x96, 0xa0, 0x18, - 0xf6, 0x78, 0x06, 0x0e, 0x3f, 0xfd, 0xcb, 0x22, 0xae, 0xa6, 0x1b, 0x6a, 0x28, 0x1d, 0x34, 0xce, - 0x0a, 0x79, 0x92, 0x69, 0x1d, 0xee, 0x18, 0xe8, 0xf9, 0xa0, 0xc7, 0x21, 0xe7, 0x3b, 0x4d, 0x4c, - 0xaa, 0x07, 0xa4, 0x0b, 0x7c, 0x5a, 0xf9, 0x37, 0x63, 0x3e, 0x64, 0x38, 0x01, 0x51, 0x87, 0x34, - 0x3b, 0xf6, 0xc6, 0x0f, 0xd3, 0x3c, 0x34, 0x9a, 0xcf, 0x34, 0xcf, 0xce, 0xc4, 0x29, 0x9c, 0x59, - 0x7e, 0x37, 0xa4, 0x59, 0x09, 0xca, 0x43, 0xc6, 0xbf, 0xf0, 0x16, 0x20, 0x5d, 0xa9, 0xd5, 0xea, - 0xeb, 0x1b, 0x52, 0x0c, 0xe5, 0x20, 0x55, 0xa9, 0xae, 0x29, 0x1b, 0x52, 0x9c, 0x14, 0x2b, 0xf5, - 0x2b, 0xf5, 0xda, 0x86, 0x94, 0x40, 0x13, 0x50, 0x60, 0xbf, 0xd5, 0x8b, 0x6b, 0xca, 0x4a, 0x65, - 0x43, 0x4a, 0x06, 0x8a, 0x1a, 0xf5, 0xd5, 0xc5, 0xba, 0x22, 0xa5, 0xe4, 0x47, 0xe0, 0xd8, 0x50, - 0x2f, 0xcb, 0xcf, 0x2e, 0xc4, 0x02, 0xd9, 0x05, 0xf9, 0x23, 0x71, 0x28, 0x0f, 0x77, 0x9d, 0xd0, - 0x95, 0x9e, 0x8e, 0x9f, 0x3d, 0x84, 0xdf, 0xd5, 0xd3, 0x7b, 0x74, 0x1f, 0x14, 0x6d, 0xbc, 0x8d, - 0xdd, 0xe6, 0x2e, 0x73, 0xe5, 0xd8, 0x92, 0x59, 0x50, 0x0a, 0xbc, 0x94, 0x32, 0x39, 0x8c, 0xec, - 0x45, 0xdc, 0x74, 0x55, 0x66, 0x8b, 0x1c, 0xfe, 0x27, 0x0e, 0x0b, 0xac, 0xb4, 0xc1, 0x0a, 0xe5, - 0xf7, 0x1c, 0x4a, 0x96, 0x39, 0x48, 0x29, 0xf5, 0x0d, 0xe5, 0x79, 0x29, 0x81, 0x10, 0x14, 0xe9, - 0x4f, 0xb5, 0xb1, 0x5a, 0x59, 0x6f, 0x5c, 0x5e, 0x23, 0xb2, 0x9c, 0x84, 0x92, 0x90, 0xa5, 0x28, - 0x4c, 0xc9, 0x0f, 0xc0, 0xd1, 0x21, 0x7e, 0xdf, 0x80, 0x73, 0x88, 0x9f, 0x88, 0x05, 0xa9, 0xc3, - 0x31, 0xff, 0x1a, 0xa4, 0x1d, 0x57, 0x73, 0xbb, 0x0e, 0x17, 0xe2, 0xe3, 0xa3, 0x3a, 0x82, 0xf3, - 0xe2, 0x47, 0x83, 0xb2, 0x2b, 0x1c, 0x46, 0x3e, 0x07, 0xc5, 0x70, 0xcd, 0x70, 0x19, 0xf8, 0x4a, - 0x14, 0x97, 0x9f, 0x07, 0x08, 0xe4, 0x23, 0xbd, 0x13, 0x5d, 0xb1, 0xe0, 0x89, 0xae, 0x73, 0x90, - 0xba, 0x6e, 0x32, 0x9b, 0x31, 0x78, 0xe2, 0x5c, 0x35, 0x5d, 0x1c, 0x48, 0x3e, 0x30, 0x6a, 0x59, - 0x07, 0xd4, 0x9f, 0x13, 0x1a, 0xf2, 0x8a, 0xa7, 0xc2, 0xaf, 0xb8, 0x7b, 0x68, 0x76, 0x69, 0xf0, - 0xab, 0x5e, 0x82, 0x14, 0xb5, 0x36, 0x03, 0x3f, 0xf1, 0xf9, 0x21, 0x00, 0xcd, 0x75, 0x6d, 0x7d, - 0xab, 0xeb, 0xbf, 0x60, 0x76, 0xb0, 0xb5, 0xaa, 0x08, 0xba, 0xea, 0x9d, 0xdc, 0x6c, 0x4d, 0xf9, - 0xac, 0x01, 0xd3, 0x15, 0x00, 0x94, 0x57, 0xa1, 0x18, 0xe6, 0x1d, 0xfc, 0xc9, 0x92, 0x7f, 0x65, - 0x40, 0x4e, 0xb8, 0x4f, 0x9e, 0xf3, 0xc5, 0xaf, 0xf1, 0xa0, 0x0f, 0xf2, 0xcd, 0x18, 0x64, 0x37, - 0xf6, 0xb8, 0x1e, 0x1f, 0x70, 0xa8, 0xd2, 0xff, 0x6e, 0xcb, 0x4b, 0x16, 0xb2, 0x7c, 0x6c, 0xc2, - 0xcb, 0xf2, 0xfe, 0x80, 0x37, 0x53, 0x93, 0xa3, 0x46, 0xbb, 0x22, 0xdb, 0xcd, 0xad, 0xd3, 0x85, - 0xd1, 0xbe, 0x91, 0x98, 0x82, 0x54, 0xf0, 0xfb, 0x06, 0xf6, 0x20, 0xb7, 0x02, 0xc7, 0x12, 0xd8, - 0xb2, 0x11, 0xfc, 0x98, 0x22, 0x76, 0xe8, 0x8f, 0x29, 0xbc, 0xb7, 0xc4, 0x83, 0x6f, 0xb9, 0x0e, - 0x59, 0xa1, 0x14, 0xe8, 0x9d, 0xc1, 0xb3, 0x27, 0x62, 0x8f, 0x66, 0xe8, 0xe2, 0xc9, 0xe1, 0x03, - 0x47, 0x4f, 0x4e, 0xc3, 0x04, 0x3f, 0x72, 0xe7, 0xc7, 0x15, 0xfc, 0x4a, 0xfe, 0x12, 0xab, 0x58, - 0x16, 0x41, 0x85, 0xfc, 0x8b, 0x31, 0x90, 0x7a, 0xb5, 0xf2, 0xed, 0x6c, 0x00, 0x31, 0x8a, 0x44, - 0xfb, 0x03, 0x77, 0x6d, 0xb3, 0x91, 0x2f, 0x90, 0x52, 0xff, 0xb6, 0xed, 0xf7, 0xc5, 0x21, 0x1f, - 0xc8, 0xe9, 0xa1, 0xc7, 0x42, 0x47, 0x40, 0xe7, 0x0e, 0xca, 0xff, 0x05, 0xce, 0x80, 0x86, 0x3a, - 0x16, 0x3f, 0x7c, 0xc7, 0xde, 0xfc, 0x43, 0xfa, 0x83, 0xbf, 0xf6, 0x49, 0x0d, 0xf9, 0xda, 0xe7, - 0x47, 0x63, 0x90, 0xf5, 0x96, 0xee, 0xc3, 0x66, 0xf3, 0x8f, 0x40, 0x9a, 0xaf, 0x4e, 0x2c, 0x9d, - 0xcf, 0x9f, 0x06, 0xe6, 0x42, 0xcb, 0x90, 0x15, 0x7f, 0xcb, 0x86, 0x07, 0xa2, 0xde, 0xf3, 0xe9, - 0x27, 0x21, 0x1f, 0xd8, 0x58, 0x21, 0x76, 0x62, 0xb5, 0xfe, 0xac, 0x34, 0x56, 0xce, 0xdc, 0xbc, - 0x35, 0x97, 0x58, 0xc5, 0x37, 0xc8, 0x0c, 0x53, 0xea, 0xb5, 0xcb, 0xf5, 0xda, 0x33, 0x52, 0xac, - 0x9c, 0xbf, 0x79, 0x6b, 0x2e, 0xa3, 0x60, 0x9a, 0xbe, 0x3a, 0xfd, 0x0c, 0x94, 0x7a, 0x06, 0x26, - 0x6c, 0xdf, 0x11, 0x14, 0x17, 0x37, 0xd7, 0x97, 0x97, 0x6a, 0x95, 0x8d, 0xba, 0xca, 0x8e, 0xd3, - 0xa1, 0xa3, 0x30, 0xb9, 0xbc, 0x74, 0xe9, 0xf2, 0x86, 0x5a, 0x5b, 0x5e, 0xaa, 0xaf, 0x6e, 0xa8, - 0x95, 0x8d, 0x8d, 0x4a, 0xed, 0x19, 0x29, 0x7e, 0xf6, 0xbb, 0x00, 0xa5, 0x4a, 0xb5, 0xb6, 0x44, - 0xd6, 0x67, 0x9d, 0x5f, 0x97, 0x5e, 0x83, 0x24, 0x4d, 0x05, 0x1c, 0x78, 0x54, 0xa4, 0x7c, 0x70, - 0x6e, 0x13, 0x5d, 0x84, 0x14, 0xcd, 0x12, 0xa0, 0x83, 0xcf, 0x8e, 0x94, 0x23, 0x92, 0x9d, 0xa4, - 0x31, 0x74, 0x3a, 0x1d, 0x78, 0x98, 0xa4, 0x7c, 0x70, 0xee, 0x13, 0x29, 0x90, 0xf3, 0xa3, 0x8c, - 0xe8, 0xc3, 0x15, 0xe5, 0x11, 0xac, 0x23, 0x5a, 0x86, 0x8c, 0x08, 0x0c, 0xa3, 0x8e, 0x7b, 0x94, - 0x23, 0x93, 0x93, 0x44, 0x5c, 0x2c, 0x80, 0x3f, 0xf8, 0xec, 0x4a, 0x39, 0x22, 0xd3, 0x8a, 0x96, - 0xbc, 0x43, 0xf8, 0x11, 0x47, 0x38, 0xca, 0x51, 0xc9, 0x46, 0x22, 0x34, 0x3f, 0x35, 0x12, 0x7d, - 0x22, 0xa7, 0x3c, 0x42, 0x12, 0x19, 0x6d, 0x02, 0x04, 0xc2, 0xf5, 0x11, 0x8e, 0xda, 0x94, 0x47, - 0x49, 0x0e, 0xa3, 0x35, 0xc8, 0x7a, 0xd1, 0x53, 0xe4, 0xc1, 0x97, 0x72, 0x74, 0x96, 0x16, 0xbd, - 0x1b, 0x0a, 0xe1, 0xa8, 0x61, 0xb4, 0xe3, 0x2c, 0xe5, 0x11, 0xd3, 0xaf, 0x04, 0x3f, 0x1c, 0x42, - 0x8c, 0x76, 0xbc, 0xa5, 0x3c, 0x62, 0x36, 0x16, 0xbd, 0x08, 0x13, 0xfd, 0x2e, 0xfe, 0xe8, 0xa7, - 0x5d, 0xca, 0x87, 0xc8, 0xcf, 0xa2, 0x0e, 0xa0, 0x01, 0xa1, 0xc1, 0x21, 0x0e, 0xbf, 0x94, 0x0f, - 0x93, 0xae, 0x45, 0x2d, 0x28, 0xf5, 0xfa, 0xdb, 0xa3, 0x1e, 0x86, 0x29, 0x8f, 0x9c, 0xba, 0x65, - 0x6f, 0x09, 0xfb, 0xe9, 0xa3, 0x1e, 0x8e, 0x29, 0x8f, 0x9c, 0xc9, 0xad, 0x56, 0x86, 0x9e, 0x6f, - 0x3c, 0x71, 0xe0, 0xf9, 0x46, 0xff, 0xc4, 0xa2, 0x77, 0xa6, 0xf1, 0x9f, 0x3e, 0x0c, 0xf7, 0xf2, - 0xcb, 0x04, 0x1c, 0x57, 0xbb, 0xa6, 0x1b, 0x3b, 0xde, 0xed, 0x10, 0xfc, 0x99, 0x1f, 0x6e, 0x3c, - 0xc2, 0x2f, 0x2c, 0x10, 0xa5, 0x11, 0x77, 0x44, 0x0c, 0xbd, 0x2f, 0x2b, 0xea, 0x10, 0x72, 0xf4, - 0xd1, 0xc5, 0x03, 0xee, 0x9f, 0x88, 0xb8, 0xe5, 0x62, 0xc0, 0xfd, 0x14, 0x11, 0x87, 0x30, 0x0f, - 0x3a, 0xef, 0x29, 0x7f, 0x38, 0x06, 0xc5, 0xcb, 0xba, 0xe3, 0x9a, 0xb6, 0xde, 0xd4, 0xda, 0x74, - 0xc5, 0xb8, 0x30, 0xea, 0x47, 0x1e, 0xd5, 0x1c, 0x71, 0x46, 0xf8, 0xa5, 0x16, 0xfc, 0x60, 0xc8, - 0x22, 0xa4, 0xaf, 0x6b, 0x6d, 0xf6, 0x89, 0x45, 0xf0, 0xda, 0x9a, 0x5e, 0x99, 0x07, 0xbc, 0xa4, - 0x20, 0x0a, 0xe3, 0x95, 0x5f, 0xa5, 0x87, 0xb8, 0x3b, 0x1d, 0xdd, 0x61, 0x7f, 0x6d, 0xda, 0xc5, - 0x0e, 0x5a, 0x87, 0xa4, 0xad, 0xb9, 0x3c, 0xa8, 0xa9, 0xbe, 0x83, 0x5f, 0x45, 0x71, 0x7f, 0xf4, - 0x85, 0x12, 0xf3, 0xfd, 0xb7, 0x55, 0x50, 0x24, 0xf4, 0x2c, 0x64, 0x3b, 0xda, 0x9e, 0x4a, 0x51, - 0xe3, 0x6f, 0x02, 0x6a, 0xa6, 0xa3, 0xed, 0x91, 0xb6, 0x92, 0x19, 0x44, 0x80, 0x9b, 0xbb, 0x9a, - 0xb1, 0x83, 0x19, 0x7e, 0xe2, 0x4d, 0xc0, 0x2f, 0x74, 0xb4, 0xbd, 0x1a, 0xc5, 0x24, 0x6f, 0xe1, - 0xb7, 0x7c, 0xfc, 0x56, 0x8c, 0xc7, 0xae, 0x54, 0x54, 0x48, 0x03, 0xa9, 0xe9, 0x3d, 0xd1, 0x57, - 0x8b, 0x3c, 0xfe, 0x89, 0x61, 0x23, 0xd1, 0x23, 0xe8, 0x6a, 0x81, 0x34, 0xf2, 0x2b, 0xaf, 0xcd, - 0xc6, 0xd8, 0x98, 0x94, 0x9a, 0x3d, 0x03, 0x71, 0x05, 0xf2, 0x2c, 0x7d, 0xa6, 0x52, 0x9f, 0x35, - 0x1e, 0xe9, 0xb3, 0x16, 0x84, 0xcf, 0xca, 0x00, 0x81, 0x71, 0x93, 0x7a, 0xde, 0x87, 0x57, 0x63, - 0x90, 0x5f, 0x0c, 0x5c, 0x4b, 0x35, 0x0d, 0x99, 0x8e, 0x69, 0xe8, 0xd7, 0xb0, 0xed, 0x6d, 0xc4, - 0xb0, 0x47, 0xe2, 0x57, 0xb2, 0x3f, 0x2f, 0xe4, 0xee, 0x8b, 0xab, 0x17, 0xc4, 0x33, 0xe1, 0xba, - 0x81, 0xb7, 0x1c, 0x5d, 0x48, 0x5b, 0x11, 0x8f, 0xe8, 0x14, 0x48, 0x0e, 0x6e, 0x76, 0x6d, 0xdd, - 0xdd, 0x57, 0x9b, 0xa6, 0xe1, 0x6a, 0x4d, 0x97, 0xa7, 0x4b, 0x4b, 0xa2, 0xbc, 0xc6, 0x8a, 0x09, - 0x48, 0x0b, 0xbb, 0x9a, 0xde, 0x66, 0xe7, 0xbc, 0x72, 0x8a, 0x78, 0xe4, 0x4d, 0xfd, 0xd5, 0x4c, - 0x30, 0x16, 0xac, 0x81, 0x64, 0x5a, 0xd8, 0x0e, 0x7d, 0xe3, 0xc6, 0xf4, 0x73, 0xfa, 0x77, 0x3f, - 0xff, 0xd0, 0x14, 0x17, 0x38, 0xdf, 0x71, 0x67, 0xb7, 0x30, 0x2b, 0x25, 0xc1, 0x21, 0x3e, 0x7e, - 0x7b, 0x3e, 0xb4, 0xf5, 0xd2, 0xdd, 0xf2, 0xbf, 0xb1, 0x9f, 0xea, 0x13, 0x6a, 0xc5, 0xd8, 0xaf, - 0x4e, 0xff, 0x8e, 0x0f, 0xed, 0xc7, 0x8a, 0xcf, 0xe0, 0xfd, 0xe0, 0x3e, 0x0c, 0x85, 0x21, 0x2e, - 0xfb, 0x8b, 0x9a, 0xde, 0x16, 0x7f, 0x31, 0x4d, 0xe1, 0x4f, 0x68, 0xc1, 0xcb, 0xbb, 0xb0, 0xbf, - 0x84, 0x2e, 0x0f, 0xd3, 0x8d, 0xaa, 0x69, 0xb4, 0xc2, 0x29, 0x16, 0xb4, 0x01, 0x69, 0xd7, 0xbc, - 0x86, 0x0d, 0x2e, 0xa0, 0x43, 0xe9, 0x74, 0xff, 0x85, 0x33, 0x1c, 0x0b, 0xed, 0x80, 0xd4, 0xc2, - 0x6d, 0xbc, 0xc3, 0xbe, 0xd0, 0xda, 0xd5, 0x6c, 0xcc, 0xbe, 0xda, 0xfc, 0x5e, 0xe7, 0x4c, 0xc9, - 0x43, 0x6d, 0x50, 0x50, 0xb4, 0x1e, 0xbe, 0x14, 0x2d, 0xc3, 0xb7, 0xe1, 0x87, 0xf4, 0x3f, 0xa0, - 0x95, 0x41, 0x3b, 0x15, 0xba, 0x44, 0xed, 0x14, 0x48, 0x5d, 0x63, 0xcb, 0x34, 0xe8, 0x1f, 0x37, - 0xe2, 0x11, 0x55, 0x96, 0x6d, 0xd5, 0x79, 0xe5, 0x7c, 0xab, 0x6e, 0x1d, 0x8a, 0x3e, 0x29, 0x9d, - 0x3d, 0xb9, 0xc3, 0xce, 0x9e, 0x82, 0x07, 0x40, 0x48, 0xd0, 0x0a, 0x80, 0x3f, 0x3f, 0xbd, 0xed, - 0xfc, 0xc8, 0x99, 0x1e, 0xec, 0x4c, 0x00, 0x00, 0xb5, 0x61, 0xb2, 0xa3, 0x1b, 0xaa, 0x83, 0xdb, - 0xdb, 0x2a, 0x97, 0x1c, 0xc1, 0xcd, 0xbf, 0x09, 0x23, 0x3d, 0xd1, 0xd1, 0x8d, 0x06, 0x6e, 0x6f, - 0x2f, 0x7a, 0xb0, 0xe8, 0x1d, 0x70, 0xdc, 0x17, 0x87, 0x69, 0xa8, 0xbb, 0x66, 0xbb, 0xa5, 0xda, - 0x78, 0x5b, 0x6d, 0xd2, 0xfb, 0x8e, 0xc6, 0xa9, 0x10, 0x8f, 0x7a, 0x24, 0x6b, 0xc6, 0x65, 0xb3, - 0xdd, 0x52, 0xf0, 0x76, 0x8d, 0x54, 0xa3, 0x7b, 0xc0, 0x97, 0x85, 0xaa, 0xb7, 0x9c, 0xe9, 0xc2, - 0x5c, 0xe2, 0x64, 0x52, 0x19, 0xf7, 0x0a, 0x97, 0x5a, 0xce, 0x42, 0xf6, 0xfd, 0xaf, 0xcc, 0x8e, - 0x7d, 0xf3, 0x95, 0xd9, 0x31, 0xf9, 0x22, 0xbd, 0x9d, 0x83, 0x4f, 0x3a, 0xec, 0xa0, 0xf3, 0x90, - 0xd3, 0xc4, 0x03, 0xfb, 0x2e, 0xe4, 0x80, 0x49, 0xeb, 0x93, 0xca, 0xaf, 0xc4, 0x20, 0xbd, 0x78, - 0x75, 0x5d, 0xd3, 0x6d, 0x54, 0x87, 0x09, 0x5f, 0x69, 0x47, 0x9d, 0xff, 0xbe, 0x9e, 0x0b, 0x03, - 0x50, 0x1f, 0xf6, 0xa9, 0xec, 0x81, 0x30, 0xbd, 0x1f, 0xd1, 0x06, 0xba, 0x7a, 0x05, 0x32, 0xac, - 0x85, 0x0e, 0x7a, 0x1a, 0x52, 0x16, 0xf9, 0xc1, 0xd3, 0xfd, 0x33, 0x43, 0x15, 0x9d, 0xd2, 0x07, - 0xd5, 0x82, 0xf1, 0xc9, 0x7f, 0x1e, 0x03, 0x58, 0xbc, 0x7a, 0x75, 0xc3, 0xd6, 0xad, 0x36, 0x76, - 0xdf, 0xac, 0x2e, 0x2f, 0xc3, 0x1d, 0x81, 0x0f, 0x32, 0xed, 0xe6, 0xc8, 0xdd, 0x9e, 0xf4, 0x3f, - 0xc9, 0xb4, 0x9b, 0x03, 0xd1, 0x5a, 0x8e, 0xeb, 0xa1, 0x25, 0x46, 0x46, 0x5b, 0x74, 0xdc, 0x7e, - 0x39, 0x3e, 0x07, 0x79, 0xbf, 0xeb, 0x0e, 0x5a, 0x82, 0xac, 0xcb, 0x7f, 0x73, 0x71, 0xca, 0xc3, - 0xc5, 0x29, 0xd8, 0x82, 0x22, 0xf5, 0xd8, 0xe5, 0xff, 0x4d, 0xa4, 0xea, 0x4f, 0x84, 0xbf, 0x54, - 0x8a, 0x44, 0x2c, 0x3c, 0xb7, 0xc0, 0x6f, 0x86, 0xd7, 0xc2, 0xb1, 0x02, 0x62, 0xfd, 0xb1, 0x38, - 0x4c, 0x6e, 0x8a, 0x49, 0xfa, 0x97, 0x56, 0x0a, 0x9b, 0x90, 0xc1, 0x86, 0x6b, 0xeb, 0x58, 0xec, - 0xed, 0x3d, 0x3c, 0x6c, 0xb0, 0x07, 0xf4, 0x85, 0xfe, 0xc9, 0xdf, 0xe0, 0xd0, 0x0b, 0xac, 0x80, - 0x18, 0x7e, 0x23, 0x01, 0xd3, 0xc3, 0x58, 0xd1, 0x09, 0x28, 0x35, 0x6d, 0x4c, 0x0b, 0xd4, 0x50, - 0xee, 0xbb, 0x28, 0x8a, 0xf9, 0x92, 0xa2, 0x00, 0x71, 0xd0, 0x88, 0x56, 0x11, 0xd2, 0xdb, 0xf3, - 0xc8, 0x8a, 0x3e, 0x02, 0x5d, 0x54, 0x30, 0x94, 0xc4, 0x61, 0xf6, 0x2d, 0xad, 0xad, 0x19, 0xcd, - 0xdb, 0xf1, 0x5f, 0xfb, 0x57, 0x00, 0x71, 0x42, 0xbe, 0xca, 0x30, 0xd1, 0x55, 0xc8, 0x08, 0xf8, - 0xe4, 0x9b, 0x00, 0x2f, 0xc0, 0xd0, 0xdd, 0x30, 0x1e, 0x5c, 0x18, 0xa8, 0x9f, 0x92, 0x54, 0xf2, - 0x81, 0x75, 0x21, 0x6a, 0xe5, 0x49, 0x1f, 0xb8, 0xf2, 0x70, 0x57, 0xf0, 0xd7, 0x13, 0x30, 0xa1, - 0xe0, 0xd6, 0xf7, 0xe1, 0xc0, 0xfd, 0x20, 0x00, 0x9b, 0xd4, 0xc4, 0xd8, 0xde, 0xc6, 0xd8, 0xf5, - 0x1b, 0x89, 0x1c, 0xc3, 0x5b, 0x74, 0xdc, 0xb7, 0x6b, 0xf4, 0xfe, 0x55, 0x1c, 0xc6, 0x83, 0xa3, - 0xf7, 0x7d, 0xb0, 0xb2, 0xa1, 0x55, 0xdf, 0xa4, 0xb1, 0xe3, 0xe6, 0xa7, 0x86, 0x99, 0xb4, 0x3e, - 0xbd, 0x8e, 0xb0, 0x65, 0x1f, 0x4e, 0x40, 0x9a, 0x9f, 0xfd, 0x5a, 0xeb, 0xf3, 0x71, 0x63, 0x51, - 0x1f, 0xfc, 0x16, 0xc4, 0x07, 0xbf, 0x03, 0x5d, 0xdc, 0xfb, 0xa0, 0x48, 0xa2, 0xe9, 0xd0, 0x81, - 0xb2, 0xd8, 0xc9, 0x02, 0x0d, 0x87, 0xfd, 0xe3, 0xcf, 0x68, 0x16, 0xf2, 0x84, 0xcc, 0xb7, 0xd9, - 0x84, 0x06, 0x3a, 0xda, 0x5e, 0x9d, 0x95, 0xa0, 0x87, 0x00, 0xed, 0x7a, 0x99, 0x0e, 0xd5, 0x17, - 0x04, 0xa1, 0x9b, 0xf0, 0x6b, 0x04, 0xf9, 0x5d, 0x00, 0xa4, 0x15, 0x2a, 0xbb, 0x92, 0x93, 0xdf, - 0xaf, 0x4a, 0x4a, 0x16, 0xe9, 0xb5, 0x9c, 0x3f, 0xcc, 0x3c, 0xe5, 0x9e, 0x60, 0x9b, 0xc7, 0x2c, - 0xcb, 0x87, 0x9b, 0x0c, 0xdf, 0x79, 0x6d, 0xb6, 0xbc, 0xaf, 0x75, 0xda, 0x0b, 0xf2, 0x00, 0x48, - 0x99, 0x7a, 0xce, 0xe1, 0x20, 0x7d, 0xe1, 0x5e, 0xa2, 0xc3, 0x37, 0xbf, 0xf1, 0xd9, 0xd3, 0xc7, - 0x03, 0x78, 0x7b, 0x5e, 0xfa, 0x8b, 0x0d, 0x85, 0xfc, 0x99, 0x18, 0x20, 0x7f, 0x61, 0xf1, 0x0e, - 0x7b, 0xaf, 0xd0, 0x23, 0xc0, 0xc2, 0xb7, 0x8f, 0x1d, 0x1c, 0x33, 0xf8, 0xfc, 0xa1, 0x98, 0x21, - 0x30, 0x71, 0xde, 0xe9, 0x9b, 0x71, 0xf1, 0x69, 0xf7, 0x80, 0x8b, 0x58, 0xe7, 0x6b, 0xa6, 0x1e, - 0x82, 0x10, 0x4c, 0x74, 0x3e, 0x8e, 0xc9, 0xaf, 0xc5, 0xe0, 0x58, 0x9f, 0xd6, 0x79, 0x4d, 0x6e, - 0x02, 0xb2, 0x03, 0x95, 0xfc, 0x4f, 0xec, 0xc7, 0xf8, 0x97, 0x8c, 0xb7, 0xa3, 0xc4, 0x13, 0x76, - 0x9f, 0xe9, 0x7e, 0x8b, 0xd6, 0x23, 0x6e, 0x70, 0x7e, 0x3b, 0x06, 0x53, 0xc1, 0x16, 0x79, 0x7d, - 0x6b, 0xc0, 0x78, 0xb0, 0x2d, 0xbc, 0x57, 0xf7, 0x8e, 0xd2, 0xab, 0x60, 0x87, 0x42, 0x20, 0xa4, - 0x2f, 0x42, 0xc3, 0x59, 0x22, 0xee, 0x91, 0x91, 0xa5, 0xe4, 0x6d, 0x32, 0x0c, 0x9a, 0xf2, 0x6c, - 0xb0, 0x3e, 0x10, 0x87, 0xe4, 0xba, 0x69, 0xb6, 0xd1, 0x8f, 0xc6, 0x60, 0xc2, 0x30, 0x5d, 0x95, - 0xcc, 0x0b, 0xdc, 0x52, 0x79, 0x62, 0x80, 0x59, 0xcd, 0xab, 0x87, 0x93, 0xde, 0xb7, 0x5e, 0x9b, - 0xed, 0x87, 0x1a, 0x74, 0x7f, 0x6e, 0xc9, 0x30, 0xdd, 0x2a, 0x25, 0xda, 0x60, 0xb9, 0x83, 0x1b, - 0x50, 0x08, 0xbf, 0x9f, 0x99, 0x5a, 0xe5, 0xd0, 0xef, 0x2f, 0x44, 0xbe, 0x7b, 0x7c, 0x2b, 0xf0, - 0x62, 0x76, 0x8b, 0xe5, 0x1f, 0x93, 0xc1, 0x7d, 0x1e, 0xa4, 0xab, 0xbd, 0xc7, 0xce, 0xea, 0x90, - 0x39, 0xec, 0x09, 0xb6, 0xa0, 0xc4, 0x39, 0xef, 0xe9, 0x2f, 0xc4, 0x00, 0xfc, 0x34, 0x0c, 0x7a, - 0x10, 0x8e, 0x56, 0xd7, 0x56, 0x17, 0xd5, 0xc6, 0x46, 0x65, 0x63, 0xb3, 0x11, 0xbe, 0x6b, 0x5d, - 0x5c, 0x34, 0xe2, 0x58, 0xb8, 0xa9, 0x6f, 0xeb, 0xb8, 0x85, 0xee, 0x87, 0xa9, 0x30, 0x35, 0x79, - 0xaa, 0x2f, 0x4a, 0xb1, 0xf2, 0xf8, 0xcd, 0x5b, 0x73, 0x59, 0xe6, 0x7e, 0xe2, 0x16, 0x3a, 0x09, - 0x77, 0xf4, 0xd3, 0x2d, 0xad, 0x5e, 0x92, 0xe2, 0xe5, 0xc2, 0xcd, 0x5b, 0x73, 0x39, 0xcf, 0x4f, - 0x45, 0x32, 0xa0, 0x20, 0x25, 0xc7, 0x4b, 0x94, 0xe1, 0xe6, 0xad, 0xb9, 0x34, 0x1b, 0x96, 0x72, - 0xf2, 0xfd, 0x9f, 0x9c, 0x19, 0x3b, 0xfd, 0x43, 0x00, 0x4b, 0xc6, 0xb6, 0xad, 0xd1, 0x3f, 0x38, - 0x8c, 0xca, 0x70, 0x64, 0x69, 0xf5, 0xa2, 0x52, 0xa9, 0x6d, 0x2c, 0xad, 0xad, 0xf6, 0x5c, 0x11, - 0x1f, 0xae, 0x5b, 0x5c, 0xdb, 0xac, 0x2e, 0xd7, 0xd5, 0xc6, 0xd2, 0xa5, 0x55, 0xb6, 0x7d, 0x1b, - 0xaa, 0x7b, 0x76, 0x75, 0x63, 0x69, 0xa5, 0x2e, 0xc5, 0xab, 0x17, 0x87, 0x6e, 0x20, 0x3c, 0x78, - 0xe0, 0x80, 0xfb, 0x56, 0x32, 0xb4, 0x8b, 0xf0, 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x7c, 0x77, - 0x89, 0x53, 0x08, 0x97, 0x00, 0x00, + // 10606 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0xbd, 0x7b, 0x70, 0x24, 0xd7, + 0x75, 0x1f, 0x8c, 0x79, 0xcf, 0x9c, 0x19, 0xcc, 0x34, 0x2e, 0xc0, 0x5d, 0xec, 0x2c, 0x09, 0x80, + 0xcd, 0xc7, 0x3e, 0x48, 0x62, 0xc9, 0x25, 0x77, 0x49, 0x62, 0x45, 0xd1, 0x33, 0x83, 0xd9, 0x5d, + 0x2c, 0xf1, 0x52, 0x0f, 0xb0, 0x7c, 0xf8, 0x93, 0x5a, 0x8d, 0x99, 0x0b, 0xa0, 0xb9, 0x33, 0xdd, + 0xad, 0xee, 0x9e, 0x5d, 0x80, 0xe5, 0xfa, 0x8a, 0xb6, 0xec, 0x44, 0xde, 0x38, 0x8a, 0x2c, 0xa5, + 0x6c, 0x59, 0xd6, 0x2a, 0x94, 0x15, 0x4b, 0xb4, 0x93, 0x38, 0xb2, 0xa5, 0xc8, 0x72, 0x5c, 0x76, + 0xc9, 0x79, 0xca, 0x4e, 0x2a, 0x25, 0xb9, 0x52, 0x89, 0x2b, 0x95, 0xd0, 0x0e, 0xa5, 0x8a, 0x14, + 0x59, 0x8e, 0x6d, 0x99, 0x4e, 0xe2, 0xa8, 0x52, 0x49, 0xdd, 0x57, 0x3f, 0xe6, 0x81, 0x1e, 0xac, + 0x48, 0xda, 0x29, 0xfd, 0xb3, 0x3b, 0x7d, 0xef, 0x39, 0xbf, 0xbe, 0xf7, 0xdc, 0x73, 0xcf, 0x3d, + 0xe7, 0xdc, 0xdb, 0x17, 0xf0, 0x67, 0x17, 0x60, 0x6e, 0xc7, 0x34, 0x77, 0xda, 0xf8, 0x8c, 0x65, + 0x9b, 0xae, 0xb9, 0xd5, 0xdd, 0x3e, 0xd3, 0xc2, 0x4e, 0xd3, 0xd6, 0x2d, 0xd7, 0xb4, 0xe7, 0x69, + 0x19, 0x2a, 0x31, 0x8a, 0x79, 0x41, 0x21, 0xaf, 0xc0, 0xc4, 0x45, 0xbd, 0x8d, 0x17, 0x3d, 0xc2, + 0x06, 0x76, 0xd1, 0x13, 0x90, 0xdc, 0xd6, 0xdb, 0x78, 0x3a, 0x36, 0x97, 0x38, 0x99, 0x3f, 0x7b, + 0xef, 0x7c, 0x0f, 0xd3, 0x7c, 0x98, 0x63, 0x9d, 0x14, 0x2b, 0x94, 0x43, 0xfe, 0x7a, 0x12, 0x26, + 0x07, 0xd4, 0x22, 0x04, 0x49, 0x43, 0xeb, 0x10, 0xc4, 0xd8, 0xc9, 0x9c, 0x42, 0x7f, 0xa3, 0x69, + 0xc8, 0x58, 0x5a, 0xf3, 0x9a, 0xb6, 0x83, 0xa7, 0xe3, 0xb4, 0x58, 0x3c, 0xa2, 0x19, 0x80, 0x16, + 0xb6, 0xb0, 0xd1, 0xc2, 0x46, 0x73, 0x7f, 0x3a, 0x31, 0x97, 0x38, 0x99, 0x53, 0x02, 0x25, 0xe8, + 0x01, 0x98, 0xb0, 0xba, 0x5b, 0x6d, 0xbd, 0xa9, 0x06, 0xc8, 0x60, 0x2e, 0x71, 0x32, 0xa5, 0x48, + 0xac, 0x62, 0xd1, 0x27, 0x3e, 0x01, 0xa5, 0x1b, 0x58, 0xbb, 0x16, 0x24, 0xcd, 0x53, 0xd2, 0x22, + 0x29, 0x0e, 0x10, 0xd6, 0xa0, 0xd0, 0xc1, 0x8e, 0xa3, 0xed, 0x60, 0xd5, 0xdd, 0xb7, 0xf0, 0x74, + 0x92, 0xf6, 0x7e, 0xae, 0xaf, 0xf7, 0xbd, 0x3d, 0xcf, 0x73, 0xae, 0x8d, 0x7d, 0x0b, 0xa3, 0x0a, + 0xe4, 0xb0, 0xd1, 0xed, 0x30, 0x84, 0xd4, 0x10, 0xf9, 0xd5, 0x8d, 0x6e, 0xa7, 0x17, 0x25, 0x4b, + 0xd8, 0x38, 0x44, 0xc6, 0xc1, 0xf6, 0x75, 0xbd, 0x89, 0xa7, 0xd3, 0x14, 0xe0, 0x44, 0x1f, 0x40, + 0x83, 0xd5, 0xf7, 0x62, 0x08, 0x3e, 0x54, 0x83, 0x1c, 0xde, 0x73, 0xb1, 0xe1, 0xe8, 0xa6, 0x31, + 0x9d, 0xa1, 0x20, 0xf7, 0x0d, 0x18, 0x45, 0xdc, 0x6e, 0xf5, 0x42, 0xf8, 0x7c, 0xe8, 0x3c, 0x64, + 0x4c, 0xcb, 0xd5, 0x4d, 0xc3, 0x99, 0xce, 0xce, 0xc5, 0x4e, 0xe6, 0xcf, 0xde, 0x39, 0x50, 0x11, + 0xd6, 0x18, 0x8d, 0x22, 0x88, 0xd1, 0x12, 0x48, 0x8e, 0xd9, 0xb5, 0x9b, 0x58, 0x6d, 0x9a, 0x2d, + 0xac, 0xea, 0xc6, 0xb6, 0x39, 0x9d, 0xa3, 0x00, 0xb3, 0xfd, 0x1d, 0xa1, 0x84, 0x35, 0xb3, 0x85, + 0x97, 0x8c, 0x6d, 0x53, 0x29, 0x3a, 0xa1, 0x67, 0x74, 0x04, 0xd2, 0xce, 0xbe, 0xe1, 0x6a, 0x7b, + 0xd3, 0x05, 0xaa, 0x21, 0xfc, 0x49, 0xfe, 0xb5, 0x34, 0x94, 0x46, 0x51, 0xb1, 0x0b, 0x90, 0xda, + 0x26, 0xbd, 0x9c, 0x8e, 0x1f, 0x46, 0x06, 0x8c, 0x27, 0x2c, 0xc4, 0xf4, 0x6d, 0x0a, 0xb1, 0x02, + 0x79, 0x03, 0x3b, 0x2e, 0x6e, 0x31, 0x8d, 0x48, 0x8c, 0xa8, 0x53, 0xc0, 0x98, 0xfa, 0x55, 0x2a, + 0x79, 0x5b, 0x2a, 0xf5, 0x1c, 0x94, 0xbc, 0x26, 0xa9, 0xb6, 0x66, 0xec, 0x08, 0xdd, 0x3c, 0x13, + 0xd5, 0x92, 0xf9, 0xba, 0xe0, 0x53, 0x08, 0x9b, 0x52, 0xc4, 0xa1, 0x67, 0xb4, 0x08, 0x60, 0x1a, + 0xd8, 0xdc, 0x56, 0x5b, 0xb8, 0xd9, 0x9e, 0xce, 0x0e, 0x91, 0xd2, 0x1a, 0x21, 0xe9, 0x93, 0x92, + 0xc9, 0x4a, 0x9b, 0x6d, 0xf4, 0xa4, 0xaf, 0x6a, 0x99, 0x21, 0x9a, 0xb2, 0xc2, 0x26, 0x59, 0x9f, + 0xb6, 0x6d, 0x42, 0xd1, 0xc6, 0x44, 0xef, 0x71, 0x8b, 0xf7, 0x2c, 0x47, 0x1b, 0x31, 0x1f, 0xd9, + 0x33, 0x85, 0xb3, 0xb1, 0x8e, 0x8d, 0xdb, 0xc1, 0x47, 0x74, 0x0f, 0x78, 0x05, 0x2a, 0x55, 0x2b, + 0xa0, 0x56, 0xa8, 0x20, 0x0a, 0x57, 0xb5, 0x0e, 0x2e, 0xbf, 0x04, 0xc5, 0xb0, 0x78, 0xd0, 0x14, + 0xa4, 0x1c, 0x57, 0xb3, 0x5d, 0xaa, 0x85, 0x29, 0x85, 0x3d, 0x20, 0x09, 0x12, 0xd8, 0x68, 0x51, + 0x2b, 0x97, 0x52, 0xc8, 0x4f, 0xf4, 0x03, 0x7e, 0x87, 0x13, 0xb4, 0xc3, 0xf7, 0xf7, 0x8f, 0x68, + 0x08, 0xb9, 0xb7, 0xdf, 0xe5, 0xc7, 0x61, 0x3c, 0xd4, 0x81, 0x51, 0x5f, 0x2d, 0xff, 0x10, 0xdc, + 0x31, 0x10, 0x1a, 0x3d, 0x07, 0x53, 0x5d, 0x43, 0x37, 0x5c, 0x6c, 0x5b, 0x36, 0x26, 0x1a, 0xcb, + 0x5e, 0x35, 0xfd, 0x8d, 0xcc, 0x10, 0x9d, 0xdb, 0x0c, 0x52, 0x33, 0x14, 0x65, 0xb2, 0xdb, 0x5f, + 0x78, 0x3a, 0x97, 0xfd, 0x66, 0x46, 0x7a, 0xf9, 0xe5, 0x97, 0x5f, 0x8e, 0xcb, 0xbf, 0x95, 0x86, + 0xa9, 0x41, 0x73, 0x66, 0xe0, 0xf4, 0x3d, 0x02, 0x69, 0xa3, 0xdb, 0xd9, 0xc2, 0x36, 0x15, 0x52, + 0x4a, 0xe1, 0x4f, 0xa8, 0x02, 0xa9, 0xb6, 0xb6, 0x85, 0xdb, 0xd3, 0xc9, 0xb9, 0xd8, 0xc9, 0xe2, + 0xd9, 0x07, 0x46, 0x9a, 0x95, 0xf3, 0xcb, 0x84, 0x45, 0x61, 0x9c, 0xe8, 0x9d, 0x90, 0xe4, 0x26, + 0x9a, 0x20, 0x9c, 0x1e, 0x0d, 0x81, 0xcc, 0x25, 0x85, 0xf2, 0xa1, 0xe3, 0x90, 0x23, 0xff, 0x33, + 0xdd, 0x48, 0xd3, 0x36, 0x67, 0x49, 0x01, 0xd1, 0x0b, 0x54, 0x86, 0x2c, 0x9d, 0x26, 0x2d, 0x2c, + 0x96, 0x36, 0xef, 0x99, 0x28, 0x56, 0x0b, 0x6f, 0x6b, 0xdd, 0xb6, 0xab, 0x5e, 0xd7, 0xda, 0x5d, + 0x4c, 0x15, 0x3e, 0xa7, 0x14, 0x78, 0xe1, 0x55, 0x52, 0x86, 0x66, 0x21, 0xcf, 0x66, 0x95, 0x6e, + 0xb4, 0xf0, 0x1e, 0xb5, 0x9e, 0x29, 0x85, 0x4d, 0xb4, 0x25, 0x52, 0x42, 0x5e, 0xff, 0xa2, 0x63, + 0x1a, 0x42, 0x35, 0xe9, 0x2b, 0x48, 0x01, 0x7d, 0xfd, 0xe3, 0xbd, 0x86, 0xfb, 0xae, 0xc1, 0xdd, + 0xeb, 0x9b, 0x4b, 0x27, 0xa0, 0x44, 0x29, 0x1e, 0xe5, 0x43, 0xaf, 0xb5, 0xa7, 0x27, 0xe6, 0x62, + 0x27, 0xb3, 0x4a, 0x91, 0x15, 0xaf, 0xf1, 0x52, 0xf9, 0x0b, 0x71, 0x48, 0x52, 0xc3, 0x52, 0x82, + 0xfc, 0xc6, 0xf3, 0xeb, 0x75, 0x75, 0x71, 0x6d, 0xb3, 0xba, 0x5c, 0x97, 0x62, 0xa8, 0x08, 0x40, + 0x0b, 0x2e, 0x2e, 0xaf, 0x55, 0x36, 0xa4, 0xb8, 0xf7, 0xbc, 0xb4, 0xba, 0x71, 0xfe, 0x31, 0x29, + 0xe1, 0x31, 0x6c, 0xb2, 0x82, 0x64, 0x90, 0xe0, 0xd1, 0xb3, 0x52, 0x0a, 0x49, 0x50, 0x60, 0x00, + 0x4b, 0xcf, 0xd5, 0x17, 0xcf, 0x3f, 0x26, 0xa5, 0xc3, 0x25, 0x8f, 0x9e, 0x95, 0x32, 0x68, 0x1c, + 0x72, 0xb4, 0xa4, 0xba, 0xb6, 0xb6, 0x2c, 0x65, 0x3d, 0xcc, 0xc6, 0x86, 0xb2, 0xb4, 0x7a, 0x49, + 0xca, 0x79, 0x98, 0x97, 0x94, 0xb5, 0xcd, 0x75, 0x09, 0x3c, 0x84, 0x95, 0x7a, 0xa3, 0x51, 0xb9, + 0x54, 0x97, 0xf2, 0x1e, 0x45, 0xf5, 0xf9, 0x8d, 0x7a, 0x43, 0x2a, 0x84, 0x9a, 0xf5, 0xe8, 0x59, + 0x69, 0xdc, 0x7b, 0x45, 0x7d, 0x75, 0x73, 0x45, 0x2a, 0xa2, 0x09, 0x18, 0x67, 0xaf, 0x10, 0x8d, + 0x28, 0xf5, 0x14, 0x9d, 0x7f, 0x4c, 0x92, 0xfc, 0x86, 0x30, 0x94, 0x89, 0x50, 0xc1, 0xf9, 0xc7, + 0x24, 0x24, 0xd7, 0x20, 0x45, 0xd5, 0x10, 0x21, 0x28, 0x2e, 0x57, 0xaa, 0xf5, 0x65, 0x75, 0x6d, + 0x7d, 0x63, 0x69, 0x6d, 0xb5, 0xb2, 0x2c, 0xc5, 0xfc, 0x32, 0xa5, 0xfe, 0xae, 0xcd, 0x25, 0xa5, + 0xbe, 0x28, 0xc5, 0x83, 0x65, 0xeb, 0xf5, 0xca, 0x46, 0x7d, 0x51, 0x4a, 0xc8, 0x4d, 0x98, 0x1a, + 0x64, 0x50, 0x07, 0x4e, 0xa1, 0x80, 0x2e, 0xc4, 0x87, 0xe8, 0x02, 0xc5, 0xea, 0xd5, 0x05, 0xf9, + 0x6b, 0x71, 0x98, 0x1c, 0xb0, 0xa8, 0x0c, 0x7c, 0xc9, 0xd3, 0x90, 0x62, 0xba, 0xcc, 0x96, 0xd9, + 0x53, 0x03, 0x57, 0x27, 0xaa, 0xd9, 0x7d, 0x4b, 0x2d, 0xe5, 0x0b, 0xba, 0x1a, 0x89, 0x21, 0xae, + 0x06, 0x81, 0xe8, 0x53, 0xd8, 0x77, 0xf7, 0x19, 0x7f, 0xb6, 0x3e, 0x9e, 0x1f, 0x65, 0x7d, 0xa4, + 0x65, 0x87, 0x5b, 0x04, 0x52, 0x03, 0x16, 0x81, 0x0b, 0x30, 0xd1, 0x07, 0x34, 0xb2, 0x31, 0x7e, + 0x7f, 0x0c, 0xa6, 0x87, 0x09, 0x27, 0xc2, 0x24, 0xc6, 0x43, 0x26, 0xf1, 0x42, 0xaf, 0x04, 0xef, + 0x1e, 0x3e, 0x08, 0x7d, 0x63, 0xfd, 0x99, 0x18, 0x1c, 0x19, 0xec, 0x52, 0x0e, 0x6c, 0xc3, 0x3b, + 0x21, 0xdd, 0xc1, 0xee, 0xae, 0x29, 0xdc, 0xaa, 0xfb, 0x07, 0x2c, 0xd6, 0xa4, 0xba, 0x77, 0xb0, + 0x39, 0x57, 0x70, 0xb5, 0x4f, 0x0c, 0xf3, 0x0b, 0x59, 0x6b, 0xfa, 0x5a, 0xfa, 0xe3, 0x71, 0xb8, + 0x63, 0x20, 0xf8, 0xc0, 0x86, 0xde, 0x05, 0xa0, 0x1b, 0x56, 0xd7, 0x65, 0xae, 0x13, 0xb3, 0xc4, + 0x39, 0x5a, 0x42, 0x8d, 0x17, 0xb1, 0xb2, 0x5d, 0xd7, 0xab, 0x4f, 0xd0, 0x7a, 0x60, 0x45, 0x94, + 0xe0, 0x09, 0xbf, 0xa1, 0x49, 0xda, 0xd0, 0x99, 0x21, 0x3d, 0xed, 0x53, 0xcc, 0x87, 0x41, 0x6a, + 0xb6, 0x75, 0x6c, 0xb8, 0xaa, 0xe3, 0xda, 0x58, 0xeb, 0xe8, 0xc6, 0x0e, 0x5d, 0x6a, 0xb2, 0x0b, + 0xa9, 0x6d, 0xad, 0xed, 0x60, 0xa5, 0xc4, 0xaa, 0x1b, 0xa2, 0x96, 0x70, 0x50, 0x05, 0xb2, 0x03, + 0x1c, 0xe9, 0x10, 0x07, 0xab, 0xf6, 0x38, 0xe4, 0x9f, 0xcc, 0x41, 0x3e, 0xe0, 0x80, 0xa3, 0xbb, + 0xa1, 0xf0, 0xa2, 0x76, 0x5d, 0x53, 0x45, 0x50, 0xc5, 0x24, 0x91, 0x27, 0x65, 0xeb, 0x3c, 0xb0, + 0x7a, 0x18, 0xa6, 0x28, 0x89, 0xd9, 0x75, 0xb1, 0xad, 0x36, 0xdb, 0x9a, 0xe3, 0x50, 0xa1, 0x65, + 0x29, 0x29, 0x22, 0x75, 0x6b, 0xa4, 0xaa, 0x26, 0x6a, 0xd0, 0x39, 0x98, 0xa4, 0x1c, 0x9d, 0x6e, + 0xdb, 0xd5, 0xad, 0x36, 0x56, 0x49, 0x98, 0xe7, 0xd0, 0x25, 0xc7, 0x6b, 0xd9, 0x04, 0xa1, 0x58, + 0xe1, 0x04, 0xa4, 0x45, 0x0e, 0x5a, 0x84, 0xbb, 0x28, 0xdb, 0x0e, 0x36, 0xb0, 0xad, 0xb9, 0x58, + 0xc5, 0xef, 0xeb, 0x6a, 0x6d, 0x47, 0xd5, 0x8c, 0x96, 0xba, 0xab, 0x39, 0xbb, 0xd3, 0x53, 0x04, + 0xa0, 0x1a, 0x9f, 0x8e, 0x29, 0xc7, 0x08, 0xe1, 0x25, 0x4e, 0x57, 0xa7, 0x64, 0x15, 0xa3, 0x75, + 0x59, 0x73, 0x76, 0xd1, 0x02, 0x1c, 0xa1, 0x28, 0x8e, 0x6b, 0xeb, 0xc6, 0x8e, 0xda, 0xdc, 0xc5, + 0xcd, 0x6b, 0x6a, 0xd7, 0xdd, 0x7e, 0x62, 0xfa, 0x78, 0xf0, 0xfd, 0xb4, 0x85, 0x0d, 0x4a, 0x53, + 0x23, 0x24, 0x9b, 0xee, 0xf6, 0x13, 0xa8, 0x01, 0x05, 0x32, 0x18, 0x1d, 0xfd, 0x25, 0xac, 0x6e, + 0x9b, 0x36, 0x5d, 0x43, 0x8b, 0x03, 0x4c, 0x53, 0x40, 0x82, 0xf3, 0x6b, 0x9c, 0x61, 0xc5, 0x6c, + 0xe1, 0x85, 0x54, 0x63, 0xbd, 0x5e, 0x5f, 0x54, 0xf2, 0x02, 0xe5, 0xa2, 0x69, 0x13, 0x85, 0xda, + 0x31, 0x3d, 0x01, 0xe7, 0x99, 0x42, 0xed, 0x98, 0x42, 0xbc, 0xe7, 0x60, 0xb2, 0xd9, 0x64, 0x7d, + 0xd6, 0x9b, 0x2a, 0x0f, 0xc6, 0x9c, 0x69, 0x29, 0x24, 0xac, 0x66, 0xf3, 0x12, 0x23, 0xe0, 0x3a, + 0xee, 0xa0, 0x27, 0xe1, 0x0e, 0x5f, 0x58, 0x41, 0xc6, 0x89, 0xbe, 0x5e, 0xf6, 0xb2, 0x9e, 0x83, + 0x49, 0x6b, 0xbf, 0x9f, 0x11, 0x85, 0xde, 0x68, 0xed, 0xf7, 0xb2, 0x3d, 0x0e, 0x53, 0xd6, 0xae, + 0xd5, 0xcf, 0x77, 0x3a, 0xc8, 0x87, 0xac, 0x5d, 0xab, 0x97, 0xf1, 0x3e, 0x1a, 0x99, 0xdb, 0xb8, + 0xa9, 0xb9, 0xb8, 0x35, 0x7d, 0x34, 0x48, 0x1e, 0xa8, 0x40, 0xf3, 0x20, 0x35, 0x9b, 0x2a, 0x36, + 0xb4, 0xad, 0x36, 0x56, 0x35, 0x1b, 0x1b, 0x9a, 0x33, 0x3d, 0x4b, 0x89, 0x93, 0xae, 0xdd, 0xc5, + 0x4a, 0xb1, 0xd9, 0xac, 0xd3, 0xca, 0x0a, 0xad, 0x43, 0xa7, 0x61, 0xc2, 0xdc, 0x7a, 0xb1, 0xc9, + 0x34, 0x52, 0xb5, 0x6c, 0xbc, 0xad, 0xef, 0x4d, 0xdf, 0x4b, 0xc5, 0x5b, 0x22, 0x15, 0x54, 0x1f, + 0xd7, 0x69, 0x31, 0x3a, 0x05, 0x52, 0xd3, 0xd9, 0xd5, 0x6c, 0x8b, 0x9a, 0x64, 0xc7, 0xd2, 0x9a, + 0x78, 0xfa, 0x3e, 0x46, 0xca, 0xca, 0x57, 0x45, 0x31, 0x99, 0x11, 0xce, 0x0d, 0x7d, 0xdb, 0x15, + 0x88, 0x27, 0xd8, 0x8c, 0xa0, 0x65, 0x1c, 0xed, 0x24, 0x48, 0x44, 0x12, 0xa1, 0x17, 0x9f, 0xa4, + 0x64, 0x45, 0x6b, 0xd7, 0x0a, 0xbe, 0xf7, 0x1e, 0x18, 0x27, 0x94, 0xfe, 0x4b, 0x4f, 0x31, 0xc7, + 0xcd, 0xda, 0x0d, 0xbc, 0xf1, 0x31, 0x38, 0x42, 0x88, 0x3a, 0xd8, 0xd5, 0x5a, 0x9a, 0xab, 0x05, + 0xa8, 0x1f, 0xa4, 0xd4, 0x44, 0xec, 0x2b, 0xbc, 0x32, 0xd4, 0x4e, 0xbb, 0xbb, 0xb5, 0xef, 0x29, + 0xd6, 0x43, 0xac, 0x9d, 0xa4, 0x4c, 0xa8, 0xd6, 0x5b, 0xe6, 0x9c, 0xcb, 0x0b, 0x50, 0x08, 0xea, + 0x3d, 0xca, 0x01, 0xd3, 0x7c, 0x29, 0x46, 0x9c, 0xa0, 0xda, 0xda, 0x22, 0x71, 0x5f, 0x5e, 0xa8, + 0x4b, 0x71, 0xe2, 0x46, 0x2d, 0x2f, 0x6d, 0xd4, 0x55, 0x65, 0x73, 0x75, 0x63, 0x69, 0xa5, 0x2e, + 0x25, 0x02, 0x8e, 0xfd, 0x95, 0x64, 0xf6, 0x7e, 0xe9, 0x04, 0xf1, 0x1a, 0x8a, 0xe1, 0x48, 0x0d, + 0xbd, 0x03, 0x8e, 0x8a, 0xb4, 0x8a, 0x83, 0x5d, 0xf5, 0x86, 0x6e, 0xd3, 0x09, 0xd9, 0xd1, 0xd8, + 0xe2, 0xe8, 0xe9, 0xcf, 0x14, 0xa7, 0x6a, 0x60, 0xf7, 0x59, 0xdd, 0x26, 0xd3, 0xad, 0xa3, 0xb9, + 0x68, 0x19, 0x66, 0x0d, 0x53, 0x75, 0x5c, 0xcd, 0x68, 0x69, 0x76, 0x4b, 0xf5, 0x13, 0x5a, 0xaa, + 0xd6, 0x6c, 0x62, 0xc7, 0x31, 0xd9, 0x42, 0xe8, 0xa1, 0xdc, 0x69, 0x98, 0x0d, 0x4e, 0xec, 0xaf, + 0x10, 0x15, 0x4e, 0xda, 0xa3, 0xbe, 0x89, 0x61, 0xea, 0x7b, 0x1c, 0x72, 0x1d, 0xcd, 0x52, 0xb1, + 0xe1, 0xda, 0xfb, 0xd4, 0x3f, 0xcf, 0x2a, 0xd9, 0x8e, 0x66, 0xd5, 0xc9, 0xf3, 0xdb, 0x12, 0x26, + 0x5d, 0x49, 0x66, 0x93, 0x52, 0xea, 0x4a, 0x32, 0x9b, 0x92, 0xd2, 0x57, 0x92, 0xd9, 0xb4, 0x94, + 0xb9, 0x92, 0xcc, 0x66, 0xa5, 0xdc, 0x95, 0x64, 0x36, 0x27, 0x81, 0xfc, 0xe1, 0x24, 0x14, 0x82, + 0x1e, 0x3c, 0x09, 0x88, 0x9a, 0x74, 0x0d, 0x8b, 0x51, 0x2b, 0x77, 0xcf, 0x81, 0xfe, 0xfe, 0x7c, + 0x8d, 0x2c, 0x6e, 0x0b, 0x69, 0xe6, 0x2e, 0x2b, 0x8c, 0x93, 0x38, 0x16, 0x44, 0xfd, 0x30, 0x73, + 0x4f, 0xb2, 0x0a, 0x7f, 0x42, 0x97, 0x20, 0xfd, 0xa2, 0x43, 0xb1, 0xd3, 0x14, 0xfb, 0xde, 0x83, + 0xb1, 0xaf, 0x34, 0x28, 0x78, 0xee, 0x4a, 0x43, 0x5d, 0x5d, 0x53, 0x56, 0x2a, 0xcb, 0x0a, 0x67, + 0x47, 0xc7, 0x20, 0xd9, 0xd6, 0x5e, 0xda, 0x0f, 0x2f, 0x83, 0xb4, 0x08, 0xcd, 0x43, 0xa9, 0x6b, + 0x5c, 0xc7, 0xb6, 0xbe, 0xad, 0xe3, 0x96, 0x4a, 0xa9, 0x4a, 0x41, 0xaa, 0xa2, 0x5f, 0xbb, 0x4c, + 0xe8, 0x47, 0x1c, 0xc6, 0x63, 0x90, 0xbc, 0x81, 0xb5, 0x6b, 0xe1, 0xc5, 0x8a, 0x16, 0xbd, 0x85, + 0xd3, 0xe9, 0x0c, 0xa4, 0xa8, 0x7c, 0x11, 0x00, 0x97, 0xb0, 0x34, 0x86, 0xb2, 0x90, 0xac, 0xad, + 0x29, 0x64, 0x4a, 0x49, 0x50, 0x60, 0xa5, 0xea, 0xfa, 0x52, 0xbd, 0x56, 0x97, 0xe2, 0xf2, 0x39, + 0x48, 0x33, 0xa1, 0x91, 0xe9, 0xe6, 0x89, 0x4d, 0x1a, 0xe3, 0x8f, 0x1c, 0x23, 0x26, 0x6a, 0x37, + 0x57, 0xaa, 0x75, 0x45, 0x8a, 0xf7, 0x29, 0x8b, 0xec, 0x40, 0x21, 0xe8, 0xc9, 0xbf, 0x3d, 0xe1, + 0xfc, 0x97, 0x62, 0x90, 0x0f, 0x78, 0xe6, 0xc4, 0xa5, 0xd2, 0xda, 0x6d, 0xf3, 0x86, 0xaa, 0xb5, + 0x75, 0xcd, 0xe1, 0xaa, 0x04, 0xb4, 0xa8, 0x42, 0x4a, 0x46, 0x1d, 0xba, 0xb7, 0x69, 0x92, 0xa5, + 0xa4, 0xb4, 0xfc, 0x89, 0x18, 0x48, 0xbd, 0xae, 0x71, 0x4f, 0x33, 0x63, 0x7f, 0x99, 0xcd, 0x94, + 0x3f, 0x1e, 0x83, 0x62, 0xd8, 0x1f, 0xee, 0x69, 0xde, 0xdd, 0x7f, 0xa9, 0xcd, 0xfb, 0x83, 0x38, + 0x8c, 0x87, 0xbc, 0xe0, 0x51, 0x5b, 0xf7, 0x3e, 0x98, 0xd0, 0x5b, 0xb8, 0x63, 0x99, 0x2e, 0x36, + 0x9a, 0xfb, 0x6a, 0x1b, 0x5f, 0xc7, 0xed, 0x69, 0x99, 0x1a, 0x99, 0x33, 0x07, 0xfb, 0xd9, 0xf3, + 0x4b, 0x3e, 0xdf, 0x32, 0x61, 0x5b, 0x98, 0x5c, 0x5a, 0xac, 0xaf, 0xac, 0xaf, 0x6d, 0xd4, 0x57, + 0x6b, 0xcf, 0xab, 0x9b, 0xab, 0xcf, 0xac, 0xae, 0x3d, 0xbb, 0xaa, 0x48, 0x7a, 0x0f, 0xd9, 0x5b, + 0x38, 0xed, 0xd7, 0x41, 0xea, 0x6d, 0x14, 0x3a, 0x0a, 0x83, 0x9a, 0x25, 0x8d, 0xa1, 0x49, 0x28, + 0xad, 0xae, 0xa9, 0x8d, 0xa5, 0xc5, 0xba, 0x5a, 0xbf, 0x78, 0xb1, 0x5e, 0xdb, 0x68, 0xb0, 0xcc, + 0x89, 0x47, 0xbd, 0x11, 0x9a, 0xe0, 0xf2, 0xc7, 0x12, 0x30, 0x39, 0xa0, 0x25, 0xa8, 0xc2, 0x63, + 0x1e, 0x16, 0x86, 0x3d, 0x34, 0x4a, 0xeb, 0xe7, 0x89, 0xd7, 0xb1, 0xae, 0xd9, 0x2e, 0x0f, 0x91, + 0x4e, 0x01, 0x91, 0x92, 0xe1, 0x12, 0xe3, 0x6a, 0xf3, 0x8c, 0x14, 0x0b, 0x84, 0x4a, 0x7e, 0x39, + 0x4b, 0x4a, 0x3d, 0x08, 0xc8, 0x32, 0x1d, 0xdd, 0xd5, 0xaf, 0x63, 0x55, 0x37, 0x44, 0xfa, 0x8a, + 0x04, 0x46, 0x49, 0x45, 0x12, 0x35, 0x4b, 0x86, 0xeb, 0x51, 0x1b, 0x78, 0x47, 0xeb, 0xa1, 0x26, + 0xc6, 0x3f, 0xa1, 0x48, 0xa2, 0xc6, 0xa3, 0xbe, 0x1b, 0x0a, 0x2d, 0xb3, 0x4b, 0xbc, 0x45, 0x46, + 0x47, 0xd6, 0x9a, 0x98, 0x92, 0x67, 0x65, 0x1e, 0x09, 0x8f, 0x03, 0xfc, 0xbc, 0x59, 0x41, 0xc9, + 0xb3, 0x32, 0x46, 0x72, 0x02, 0x4a, 0xda, 0xce, 0x8e, 0x4d, 0xc0, 0x05, 0x10, 0x8b, 0x6c, 0x8a, + 0x5e, 0x31, 0x25, 0x2c, 0x5f, 0x81, 0xac, 0x90, 0x03, 0x59, 0xec, 0x89, 0x24, 0x54, 0x8b, 0x85, + 0xeb, 0xf1, 0x93, 0x39, 0x25, 0x6b, 0x88, 0xca, 0xbb, 0xa1, 0xa0, 0x3b, 0xaa, 0xbf, 0x0d, 0x10, + 0x9f, 0x8b, 0x9f, 0xcc, 0x2a, 0x79, 0xdd, 0xf1, 0x52, 0xa8, 0xf2, 0x67, 0xe2, 0x50, 0x0c, 0x6f, + 0x63, 0xa0, 0x45, 0xc8, 0xb6, 0xcd, 0xa6, 0x46, 0x55, 0x8b, 0xed, 0xa1, 0x9d, 0x8c, 0xd8, 0xf9, + 0x98, 0x5f, 0xe6, 0xf4, 0x8a, 0xc7, 0x59, 0xfe, 0x37, 0x31, 0xc8, 0x8a, 0x62, 0x74, 0x04, 0x92, + 0x96, 0xe6, 0xee, 0x52, 0xb8, 0x54, 0x35, 0x2e, 0xc5, 0x14, 0xfa, 0x4c, 0xca, 0x1d, 0x4b, 0x33, + 0xa8, 0x0a, 0xf0, 0x72, 0xf2, 0x4c, 0xc6, 0xb5, 0x8d, 0xb5, 0x16, 0x0d, 0x9b, 0xcc, 0x4e, 0x07, + 0x1b, 0xae, 0x23, 0xc6, 0x95, 0x97, 0xd7, 0x78, 0x31, 0x7a, 0x00, 0x26, 0x5c, 0x5b, 0xd3, 0xdb, + 0x21, 0xda, 0x24, 0xa5, 0x95, 0x44, 0x85, 0x47, 0xbc, 0x00, 0xc7, 0x04, 0x6e, 0x0b, 0xbb, 0x5a, + 0x73, 0x17, 0xb7, 0x7c, 0xa6, 0x34, 0x4d, 0x8f, 0x1c, 0xe5, 0x04, 0x8b, 0xbc, 0x5e, 0xf0, 0xca, + 0x5f, 0x8d, 0xc1, 0x84, 0x08, 0xf4, 0x5a, 0x9e, 0xb0, 0x56, 0x00, 0x34, 0xc3, 0x30, 0xdd, 0xa0, + 0xb8, 0xfa, 0x55, 0xb9, 0x8f, 0x6f, 0xbe, 0xe2, 0x31, 0x29, 0x01, 0x80, 0x72, 0x07, 0xc0, 0xaf, + 0x19, 0x2a, 0xb6, 0x59, 0xc8, 0xf3, 0x3d, 0x2a, 0xba, 0xd1, 0xc9, 0x52, 0x03, 0xc0, 0x8a, 0x48, + 0x44, 0x88, 0xa6, 0x20, 0xb5, 0x85, 0x77, 0x74, 0x83, 0x67, 0x9e, 0xd9, 0x83, 0x48, 0xe0, 0x24, + 0xbd, 0x04, 0x4e, 0xf5, 0xff, 0x87, 0xc9, 0xa6, 0xd9, 0xe9, 0x6d, 0x6e, 0x55, 0xea, 0x49, 0x4f, + 0x38, 0x97, 0x63, 0x2f, 0x3c, 0xc4, 0x89, 0x76, 0xcc, 0xb6, 0x66, 0xec, 0xcc, 0x9b, 0xf6, 0x8e, + 0xbf, 0x51, 0x4b, 0x3c, 0x24, 0x27, 0xb0, 0x5d, 0x6b, 0x6d, 0xfd, 0xcf, 0x58, 0xec, 0xe7, 0xe2, + 0x89, 0x4b, 0xeb, 0xd5, 0x5f, 0x8c, 0x97, 0x2f, 0x31, 0xc6, 0x75, 0x21, 0x0c, 0x05, 0x6f, 0xb7, + 0x71, 0x93, 0x74, 0x10, 0xfe, 0xe8, 0x01, 0x98, 0xda, 0x31, 0x77, 0x4c, 0x8a, 0x74, 0x86, 0xfc, + 0xe2, 0x3b, 0xbd, 0x39, 0xaf, 0xb4, 0x1c, 0xb9, 0x2d, 0xbc, 0xb0, 0x0a, 0x93, 0x9c, 0x58, 0xa5, + 0x5b, 0x4d, 0x2c, 0x10, 0x42, 0x07, 0x66, 0xe1, 0xa6, 0x7f, 0xf9, 0xeb, 0x74, 0xf9, 0x56, 0x26, + 0x38, 0x2b, 0xa9, 0x63, 0xb1, 0xd2, 0x82, 0x02, 0x77, 0x84, 0xf0, 0xd8, 0x24, 0xc5, 0x76, 0x04, + 0xe2, 0x3f, 0xe7, 0x88, 0x93, 0x01, 0xc4, 0x06, 0x67, 0x5d, 0xa8, 0xc1, 0xf8, 0x61, 0xb0, 0xfe, + 0x05, 0xc7, 0x2a, 0xe0, 0x20, 0xc8, 0x25, 0x28, 0x51, 0x90, 0x66, 0xd7, 0x71, 0xcd, 0x0e, 0xb5, + 0x80, 0x07, 0xc3, 0xfc, 0xcb, 0xaf, 0xb3, 0x59, 0x53, 0x24, 0x6c, 0x35, 0x8f, 0x6b, 0x61, 0x01, + 0xe8, 0xee, 0x5a, 0x0b, 0x37, 0xdb, 0x11, 0x08, 0x5f, 0xe6, 0x0d, 0xf1, 0xe8, 0x17, 0xae, 0xc2, + 0x14, 0xf9, 0x4d, 0x0d, 0x54, 0xb0, 0x25, 0xd1, 0x29, 0xbb, 0xe9, 0xaf, 0xbe, 0x9f, 0x4d, 0xcc, + 0x49, 0x0f, 0x20, 0xd0, 0xa6, 0xc0, 0x28, 0xee, 0x60, 0xd7, 0xc5, 0xb6, 0xa3, 0x6a, 0xed, 0x41, + 0xcd, 0x0b, 0xe4, 0x3c, 0xa6, 0x7f, 0xe6, 0xdb, 0xe1, 0x51, 0xbc, 0xc4, 0x38, 0x2b, 0xed, 0xf6, + 0xc2, 0x26, 0x1c, 0x1d, 0xa0, 0x15, 0x23, 0x60, 0x7e, 0x8c, 0x63, 0x4e, 0xf5, 0x69, 0x06, 0x81, + 0x5d, 0x07, 0x51, 0xee, 0x8d, 0xe5, 0x08, 0x98, 0x3f, 0xcb, 0x31, 0x11, 0xe7, 0x15, 0x43, 0x4a, + 0x10, 0xaf, 0xc0, 0xc4, 0x75, 0x6c, 0x6f, 0x99, 0x0e, 0xcf, 0x33, 0x8d, 0x00, 0xf7, 0x71, 0x0e, + 0x57, 0xe2, 0x8c, 0x34, 0xf1, 0x44, 0xb0, 0x9e, 0x84, 0xec, 0xb6, 0xd6, 0xc4, 0x23, 0x40, 0xdc, + 0xe2, 0x10, 0x19, 0x42, 0x4f, 0x58, 0x2b, 0x50, 0xd8, 0x31, 0xf9, 0x1a, 0x15, 0xcd, 0xfe, 0x09, + 0xce, 0x9e, 0x17, 0x3c, 0x1c, 0xc2, 0x32, 0xad, 0x6e, 0x9b, 0x2c, 0x60, 0xd1, 0x10, 0x7f, 0x47, + 0x40, 0x08, 0x1e, 0x0e, 0x71, 0x08, 0xb1, 0xbe, 0x22, 0x20, 0x9c, 0x80, 0x3c, 0x9f, 0x86, 0xbc, + 0x69, 0xb4, 0xf7, 0x4d, 0x63, 0x94, 0x46, 0x7c, 0x92, 0x23, 0x00, 0x67, 0x21, 0x00, 0x17, 0x20, + 0x37, 0xea, 0x40, 0xfc, 0xfc, 0xb7, 0xc5, 0xf4, 0x10, 0x23, 0x70, 0x09, 0x4a, 0xc2, 0x40, 0xe9, + 0xa6, 0x31, 0x02, 0xc4, 0xa7, 0x39, 0x44, 0x31, 0xc0, 0xc6, 0xbb, 0xe1, 0x62, 0xc7, 0xdd, 0xc1, + 0xa3, 0x80, 0x7c, 0x46, 0x74, 0x83, 0xb3, 0x70, 0x51, 0x6e, 0x61, 0xa3, 0xb9, 0x3b, 0x1a, 0xc2, + 0xab, 0x42, 0x94, 0x82, 0x87, 0x40, 0xd4, 0x60, 0xbc, 0xa3, 0xd9, 0xce, 0xae, 0xd6, 0x1e, 0x69, + 0x38, 0x7e, 0x81, 0x63, 0x14, 0x3c, 0x26, 0x2e, 0x91, 0xae, 0x71, 0x18, 0x98, 0x5f, 0x14, 0x12, + 0x09, 0xb0, 0xf1, 0xa9, 0xe7, 0xb8, 0x34, 0x29, 0x77, 0x18, 0xb4, 0xbf, 0x27, 0xa6, 0x1e, 0xe3, + 0x5d, 0x09, 0x22, 0x5e, 0x80, 0x9c, 0xa3, 0xbf, 0x34, 0x12, 0xcc, 0xdf, 0x17, 0x23, 0x4d, 0x19, + 0x08, 0xf3, 0xf3, 0x70, 0x6c, 0xe0, 0x32, 0x31, 0x02, 0xd8, 0x3f, 0xe0, 0x60, 0x47, 0x06, 0x2c, + 0x15, 0xdc, 0x24, 0x1c, 0x16, 0xf2, 0x97, 0x84, 0x49, 0xc0, 0x3d, 0x58, 0xeb, 0x24, 0x6a, 0x70, + 0xb4, 0xed, 0xc3, 0x49, 0xed, 0x1f, 0x0a, 0xa9, 0x31, 0xde, 0x90, 0xd4, 0x36, 0xe0, 0x08, 0x47, + 0x3c, 0xdc, 0xb8, 0x7e, 0x56, 0x18, 0x56, 0xc6, 0xbd, 0x19, 0x1e, 0xdd, 0x1f, 0x84, 0xb2, 0x27, + 0x4e, 0xe1, 0x9e, 0x3a, 0x6a, 0x47, 0xb3, 0x46, 0x40, 0xfe, 0x65, 0x8e, 0x2c, 0x2c, 0xbe, 0xe7, + 0xdf, 0x3a, 0x2b, 0x9a, 0x45, 0xc0, 0x9f, 0x83, 0x69, 0x01, 0xde, 0x35, 0x6c, 0xdc, 0x34, 0x77, + 0x0c, 0xfd, 0x25, 0xdc, 0x1a, 0x01, 0xfa, 0x57, 0x7a, 0x86, 0x6a, 0x33, 0xc0, 0x4e, 0x90, 0x97, + 0x40, 0xf2, 0x7c, 0x15, 0x55, 0xef, 0x58, 0xa6, 0xed, 0x46, 0x20, 0x7e, 0x4e, 0x8c, 0x94, 0xc7, + 0xb7, 0x44, 0xd9, 0x16, 0xea, 0xc0, 0x76, 0xaa, 0x47, 0x55, 0xc9, 0xcf, 0x73, 0xa0, 0x71, 0x9f, + 0x8b, 0x1b, 0x8e, 0xa6, 0xd9, 0xb1, 0x34, 0x7b, 0x14, 0xfb, 0xf7, 0x8f, 0x84, 0xe1, 0xe0, 0x2c, + 0xdc, 0x70, 0x10, 0x8f, 0x8e, 0xac, 0xf6, 0x23, 0x20, 0x7c, 0x41, 0x18, 0x0e, 0xc1, 0xc3, 0x21, + 0x84, 0xc3, 0x30, 0x02, 0xc4, 0xaf, 0x0a, 0x08, 0xc1, 0x43, 0x20, 0xde, 0xe5, 0x2f, 0xb4, 0x36, + 0xde, 0xd1, 0x1d, 0xd7, 0x66, 0x4e, 0xf1, 0xc1, 0x50, 0x5f, 0xfc, 0x76, 0xd8, 0x09, 0x53, 0x02, + 0xac, 0xc4, 0x12, 0xf1, 0x34, 0x2d, 0x8d, 0x99, 0xa2, 0x1b, 0xf6, 0x6b, 0xc2, 0x12, 0x05, 0xd8, + 0x48, 0xdb, 0x02, 0x1e, 0x22, 0x11, 0x7b, 0x93, 0x44, 0x0a, 0x23, 0xc0, 0xfd, 0xe3, 0x9e, 0xc6, + 0x35, 0x04, 0x2f, 0xc1, 0x0c, 0xf8, 0x3f, 0x5d, 0xe3, 0x1a, 0xde, 0x1f, 0x49, 0x3b, 0x7f, 0xbd, + 0xc7, 0xff, 0xd9, 0x64, 0x9c, 0xcc, 0x86, 0x94, 0x7a, 0xfc, 0x29, 0x14, 0x75, 0x2e, 0x69, 0xfa, + 0x87, 0xdf, 0xe0, 0xfd, 0x0d, 0xbb, 0x53, 0x0b, 0xcb, 0x44, 0xc9, 0xc3, 0x4e, 0x4f, 0x34, 0xd8, + 0xfb, 0xdf, 0xf0, 0xf4, 0x3c, 0xe4, 0xf3, 0x2c, 0x5c, 0x84, 0xf1, 0x90, 0xc3, 0x13, 0x0d, 0xf5, + 0xa3, 0x1c, 0xaa, 0x10, 0xf4, 0x77, 0x16, 0xce, 0x41, 0x92, 0x38, 0x2f, 0xd1, 0xec, 0x3f, 0xc6, + 0xd9, 0x29, 0xf9, 0xc2, 0x53, 0x90, 0x15, 0x4e, 0x4b, 0x34, 0xeb, 0x5f, 0xe3, 0xac, 0x1e, 0x0b, + 0x61, 0x17, 0x0e, 0x4b, 0x34, 0xfb, 0x5f, 0x17, 0xec, 0x82, 0x85, 0xb0, 0x8f, 0x2e, 0xc2, 0x2f, + 0xfd, 0x8d, 0x24, 0x5f, 0x74, 0x84, 0xec, 0x2e, 0x40, 0x86, 0x7b, 0x2a, 0xd1, 0xdc, 0x3f, 0xce, + 0x5f, 0x2e, 0x38, 0x16, 0x1e, 0x87, 0xd4, 0x88, 0x02, 0xff, 0x9b, 0x9c, 0x95, 0xd1, 0x2f, 0xd4, + 0x20, 0x1f, 0xf0, 0x4e, 0xa2, 0xd9, 0x3f, 0xc8, 0xd9, 0x83, 0x5c, 0xa4, 0xe9, 0xdc, 0x3b, 0x89, + 0x06, 0xf8, 0x5b, 0xa2, 0xe9, 0x9c, 0x83, 0x88, 0x4d, 0x38, 0x26, 0xd1, 0xdc, 0x1f, 0x12, 0x52, + 0x17, 0x2c, 0x0b, 0x4f, 0x43, 0xce, 0x5b, 0x6c, 0xa2, 0xf9, 0x7f, 0x92, 0xf3, 0xfb, 0x3c, 0x44, + 0x02, 0x81, 0xc5, 0x2e, 0x1a, 0xe2, 0xc3, 0x42, 0x02, 0x01, 0x2e, 0x32, 0x8d, 0x7a, 0x1d, 0x98, + 0x68, 0xa4, 0x8f, 0x88, 0x69, 0xd4, 0xe3, 0xbf, 0x90, 0xd1, 0xa4, 0x36, 0x3f, 0x1a, 0xe2, 0x6f, + 0x8b, 0xd1, 0xa4, 0xf4, 0xa4, 0x19, 0xbd, 0x1e, 0x41, 0x34, 0xc6, 0x4f, 0x8b, 0x66, 0xf4, 0x38, + 0x04, 0x0b, 0xeb, 0x80, 0xfa, 0xbd, 0x81, 0x68, 0xbc, 0x8f, 0x72, 0xbc, 0x89, 0x3e, 0x67, 0x60, + 0xe1, 0x59, 0x38, 0x32, 0xd8, 0x13, 0x88, 0x46, 0xfd, 0x99, 0x37, 0x7a, 0x62, 0xb7, 0xa0, 0x23, + 0xb0, 0xb0, 0xe1, 0x2f, 0x29, 0x41, 0x2f, 0x20, 0x1a, 0xf6, 0x63, 0x6f, 0x84, 0x0d, 0x77, 0xd0, + 0x09, 0x58, 0xa8, 0x00, 0xf8, 0x0b, 0x70, 0x34, 0xd6, 0xc7, 0x39, 0x56, 0x80, 0x89, 0x4c, 0x0d, + 0xbe, 0xfe, 0x46, 0xf3, 0xdf, 0x12, 0x53, 0x83, 0x73, 0x90, 0xa9, 0x21, 0x96, 0xde, 0x68, 0xee, + 0x4f, 0x88, 0xa9, 0x21, 0x58, 0x88, 0x66, 0x07, 0x56, 0xb7, 0x68, 0x84, 0x4f, 0x0a, 0xcd, 0x0e, + 0x70, 0x2d, 0xac, 0xc2, 0x44, 0xdf, 0x82, 0x18, 0x0d, 0xf5, 0x73, 0x1c, 0x4a, 0xea, 0x5d, 0x0f, + 0x83, 0x8b, 0x17, 0x5f, 0x0c, 0xa3, 0xd1, 0x3e, 0xd5, 0xb3, 0x78, 0xf1, 0xb5, 0x70, 0xe1, 0x02, + 0x64, 0x8d, 0x6e, 0xbb, 0x4d, 0x26, 0x0f, 0x3a, 0xf8, 0x2c, 0xe1, 0xf4, 0x7f, 0xfd, 0x2e, 0x97, + 0x8e, 0x60, 0x58, 0x38, 0x07, 0x29, 0xdc, 0xd9, 0xc2, 0xad, 0x28, 0xce, 0x6f, 0x7d, 0x57, 0x18, + 0x4c, 0x42, 0xbd, 0xf0, 0x34, 0x00, 0x4b, 0x8d, 0xd0, 0xcd, 0xc3, 0x08, 0xde, 0x3f, 0xfc, 0x2e, + 0x3f, 0xbc, 0xe3, 0xb3, 0xf8, 0x00, 0xec, 0x28, 0xd0, 0xc1, 0x00, 0xdf, 0x0e, 0x03, 0xd0, 0x11, + 0x79, 0x12, 0x32, 0x2f, 0x3a, 0xa6, 0xe1, 0x6a, 0x3b, 0x51, 0xdc, 0x7f, 0xc4, 0xb9, 0x05, 0x3d, + 0x11, 0x58, 0xc7, 0xb4, 0xb1, 0xab, 0xed, 0x38, 0x51, 0xbc, 0xff, 0x8d, 0xf3, 0x7a, 0x0c, 0x84, + 0xb9, 0xa9, 0x39, 0xee, 0x28, 0xfd, 0xfe, 0x63, 0xc1, 0x2c, 0x18, 0x48, 0xa3, 0xc9, 0xef, 0x6b, + 0x78, 0x3f, 0x8a, 0xf7, 0x4f, 0x44, 0xa3, 0x39, 0xfd, 0xc2, 0x53, 0x90, 0x23, 0x3f, 0xd9, 0x89, + 0xbc, 0x08, 0xe6, 0x3f, 0xe5, 0xcc, 0x3e, 0x07, 0x79, 0xb3, 0xe3, 0xb6, 0x5c, 0x3d, 0x5a, 0xd8, + 0xdf, 0xe1, 0x23, 0x2d, 0xe8, 0x17, 0x2a, 0x90, 0x77, 0xdc, 0x56, 0xab, 0xcb, 0xfd, 0xd3, 0x08, + 0xf6, 0x3f, 0xfb, 0xae, 0x97, 0xb2, 0xf0, 0x78, 0xc8, 0x68, 0xdf, 0xb8, 0xe6, 0x5a, 0x26, 0xdd, + 0xf0, 0x88, 0x42, 0x78, 0x83, 0x23, 0x04, 0x58, 0x16, 0x6a, 0x50, 0x20, 0x7d, 0xb1, 0xb1, 0x85, + 0xe9, 0xee, 0x54, 0x04, 0xc4, 0x9f, 0x73, 0x01, 0x84, 0x98, 0xaa, 0xef, 0xfd, 0xf2, 0xeb, 0x33, + 0xb1, 0xaf, 0xbc, 0x3e, 0x13, 0xfb, 0x83, 0xd7, 0x67, 0x62, 0x1f, 0xfa, 0xda, 0xcc, 0xd8, 0x57, + 0xbe, 0x36, 0x33, 0xf6, 0x7b, 0x5f, 0x9b, 0x19, 0x1b, 0x9c, 0x25, 0x86, 0x4b, 0xe6, 0x25, 0x93, + 0xe5, 0x87, 0x5f, 0xb8, 0x6f, 0x47, 0x77, 0x77, 0xbb, 0x5b, 0xf3, 0x4d, 0xb3, 0x73, 0xa6, 0x69, + 0x3a, 0x1d, 0xd3, 0x39, 0x13, 0xce, 0xeb, 0xd2, 0x5f, 0xf0, 0xbf, 0x63, 0x24, 0x66, 0x0e, 0xa7, + 0x73, 0x35, 0x63, 0x7f, 0xd8, 0xe7, 0x3d, 0xe7, 0x21, 0x51, 0x31, 0xf6, 0xd1, 0x31, 0x66, 0xe0, + 0xd4, 0xae, 0xdd, 0xe6, 0xc7, 0xc2, 0x32, 0xe4, 0x79, 0xd3, 0x6e, 0xa3, 0x29, 0xff, 0xec, 0x66, + 0xec, 0x64, 0x81, 0x1f, 0xc8, 0xac, 0x7e, 0x30, 0x76, 0xb8, 0x9e, 0x64, 0x2b, 0xc6, 0x3e, 0xed, + 0xc8, 0x7a, 0xec, 0x85, 0x07, 0x23, 0xf3, 0xdc, 0xd7, 0x0c, 0xf3, 0x86, 0x41, 0x9a, 0x6d, 0x6d, + 0x89, 0x1c, 0xf7, 0x4c, 0x6f, 0x8e, 0xfb, 0x59, 0xdc, 0x6e, 0x3f, 0x43, 0xe8, 0x36, 0x08, 0xcb, + 0x56, 0x9a, 0x9d, 0x40, 0x86, 0x8f, 0xc4, 0x61, 0xa6, 0x2f, 0x9d, 0xcd, 0x95, 0x60, 0x98, 0x10, + 0x16, 0x20, 0xbb, 0x28, 0x74, 0x6b, 0x1a, 0x32, 0x0e, 0x6e, 0x9a, 0x46, 0xcb, 0xa1, 0x82, 0x48, + 0x28, 0xe2, 0x91, 0x08, 0xc2, 0xd0, 0x0c, 0xd3, 0xe1, 0x07, 0x2b, 0xd9, 0x43, 0xf5, 0x67, 0x0f, + 0x29, 0x88, 0x71, 0xf1, 0x26, 0x21, 0x8d, 0x47, 0x46, 0x94, 0x86, 0xe8, 0x44, 0x28, 0xf3, 0x3f, + 0xaa, 0x54, 0x7e, 0x3a, 0x0e, 0xb3, 0xbd, 0x52, 0x21, 0x33, 0xcb, 0x71, 0xb5, 0x8e, 0x35, 0x4c, + 0x2c, 0x17, 0x20, 0xb7, 0x21, 0x68, 0x0e, 0x2d, 0x97, 0x5b, 0x87, 0x94, 0x4b, 0xd1, 0x7b, 0x95, + 0x10, 0xcc, 0xd9, 0x11, 0x05, 0xe3, 0xf5, 0xe3, 0xb6, 0x24, 0xf3, 0x17, 0x69, 0x38, 0xc6, 0xa6, + 0x93, 0xca, 0xa6, 0x12, 0x7b, 0xe0, 0x32, 0x29, 0x04, 0xab, 0xa2, 0xf7, 0x49, 0xe4, 0x67, 0x60, + 0x72, 0x89, 0x58, 0x0b, 0x12, 0x05, 0xf9, 0x3b, 0x3c, 0x03, 0xcf, 0x9e, 0xce, 0x85, 0x1c, 0x7e, + 0xbe, 0xc3, 0x14, 0x2c, 0x92, 0x7f, 0x38, 0x06, 0x52, 0xa3, 0xa9, 0xb5, 0x35, 0xfb, 0x7b, 0x85, + 0x42, 0x8f, 0x03, 0xd0, 0x6f, 0x96, 0xfc, 0x8f, 0x8c, 0x8a, 0x67, 0xa7, 0xe7, 0x83, 0x9d, 0x9b, + 0x67, 0x6f, 0xa2, 0x5f, 0x30, 0xe4, 0x28, 0x2d, 0xf9, 0x79, 0xfa, 0x39, 0x00, 0xbf, 0x02, 0x1d, + 0x87, 0xa3, 0x8d, 0x5a, 0x65, 0xb9, 0xa2, 0xa8, 0xec, 0x30, 0xfc, 0x6a, 0x63, 0xbd, 0x5e, 0x5b, + 0xba, 0xb8, 0x54, 0x5f, 0x94, 0xc6, 0xd0, 0x11, 0x40, 0xc1, 0x4a, 0xef, 0x5c, 0xca, 0x1d, 0x30, + 0x11, 0x2c, 0x67, 0x27, 0xea, 0xe3, 0xc4, 0x53, 0xd4, 0x3b, 0x56, 0x1b, 0xd3, 0xad, 0x3f, 0x55, + 0x17, 0x52, 0x8b, 0x76, 0x42, 0x7e, 0xfb, 0xdf, 0xb1, 0x53, 0xd6, 0x93, 0x3e, 0xbb, 0x27, 0xf3, + 0x85, 0x65, 0x98, 0xd0, 0x9a, 0x4d, 0x6c, 0x85, 0x20, 0x23, 0x4c, 0x35, 0x01, 0xa4, 0x9b, 0x99, + 0x9c, 0xd3, 0x47, 0x7b, 0x1c, 0xd2, 0x0e, 0xed, 0x7d, 0x14, 0xc4, 0xef, 0x70, 0x08, 0x4e, 0xbe, + 0x60, 0xc0, 0x04, 0xf1, 0xfc, 0x34, 0x1b, 0x07, 0x9a, 0x71, 0x70, 0x9e, 0xe1, 0x37, 0x3e, 0xf7, + 0x30, 0xdd, 0xda, 0xbc, 0x3b, 0x3c, 0x2c, 0x03, 0xd4, 0x49, 0x91, 0x38, 0xb6, 0xdf, 0x50, 0x0c, + 0x45, 0xf1, 0x3e, 0xde, 0xe0, 0x83, 0x5f, 0xf6, 0x9b, 0xfc, 0x65, 0x33, 0x83, 0x74, 0x20, 0xf0, + 0xa6, 0x71, 0x8e, 0xca, 0x2a, 0xaa, 0xf5, 0x61, 0x73, 0xfa, 0x85, 0x07, 0xfa, 0x57, 0x27, 0xf6, + 0xdf, 0x43, 0x14, 0xf9, 0x42, 0xf0, 0x35, 0xde, 0xdc, 0xfb, 0x70, 0x12, 0x26, 0xb4, 0x8e, 0x6e, + 0x98, 0x67, 0xe8, 0xbf, 0x7c, 0xce, 0xa5, 0xe8, 0xc3, 0x08, 0x9b, 0x92, 0xe7, 0xd9, 0x54, 0x88, + 0xd6, 0x98, 0x3f, 0xfd, 0x89, 0x4f, 0xa7, 0xfc, 0xe9, 0xb2, 0xb0, 0x02, 0x92, 0x38, 0x70, 0x88, + 0x8d, 0xa6, 0xd9, 0x1a, 0x29, 0x4b, 0xf1, 0x1d, 0x81, 0x21, 0xf2, 0x5b, 0x75, 0xce, 0xba, 0xf0, + 0x0e, 0xc8, 0x7a, 0x30, 0x51, 0x9e, 0x89, 0x00, 0xf1, 0x38, 0x88, 0x5f, 0xc2, 0x66, 0xe6, 0x28, + 0x5e, 0xe8, 0x1b, 0x82, 0x9f, 0xcd, 0xd0, 0x55, 0xd2, 0x9b, 0x4b, 0x50, 0x6c, 0x99, 0x86, 0xab, + 0x9a, 0x1d, 0xdd, 0xc5, 0x1d, 0xcb, 0x8d, 0xf4, 0xeb, 0xfe, 0x9c, 0x81, 0x64, 0x95, 0x71, 0xc2, + 0xb7, 0x26, 0xd8, 0x16, 0xce, 0x8f, 0xe8, 0x87, 0xff, 0x77, 0xc1, 0xcf, 0xc8, 0x6f, 0x4b, 0x29, + 0x9c, 0xd6, 0x35, 0x6e, 0xc3, 0xdd, 0x3d, 0x36, 0xf8, 0x9e, 0x52, 0xfc, 0x71, 0x02, 0x66, 0x38, + 0xf1, 0x96, 0xe6, 0xe0, 0x33, 0xd7, 0x1f, 0xd9, 0xc2, 0xae, 0xf6, 0xc8, 0x99, 0xa6, 0xa9, 0x8b, + 0x05, 0x7c, 0x92, 0xdb, 0x68, 0x52, 0x3f, 0xcf, 0xeb, 0xcb, 0x03, 0x77, 0xb9, 0xcb, 0xc3, 0x6d, + 0x7b, 0xb9, 0x5f, 0xf5, 0xe4, 0x17, 0x20, 0x59, 0x33, 0x75, 0x83, 0x2c, 0x69, 0x2d, 0x6c, 0x98, + 0x1d, 0x6e, 0x65, 0xd9, 0x03, 0x3a, 0x0f, 0x69, 0xad, 0x63, 0x76, 0x0d, 0x97, 0x59, 0xd8, 0xea, + 0xcc, 0x97, 0x5f, 0x9b, 0x1d, 0xfb, 0x0f, 0xaf, 0xcd, 0x26, 0x96, 0x0c, 0xf7, 0x77, 0x3f, 0xff, + 0x10, 0x70, 0xf4, 0x25, 0xc3, 0x7d, 0xf5, 0x1b, 0x9f, 0x3d, 0x1d, 0x53, 0x38, 0xf5, 0x42, 0xf2, + 0x9b, 0xaf, 0xcc, 0xc6, 0xe4, 0xe7, 0x20, 0xb3, 0x88, 0x9b, 0x07, 0xc0, 0x3f, 0xd2, 0x03, 0x7f, + 0x4c, 0xc0, 0x2f, 0xe2, 0x66, 0x00, 0x7e, 0x11, 0x37, 0x7b, 0x90, 0x1f, 0x87, 0xec, 0x92, 0xe1, + 0xb2, 0xaf, 0x1c, 0x1e, 0x80, 0x84, 0x6e, 0xb0, 0x83, 0xb3, 0x01, 0x84, 0xbe, 0x06, 0x2a, 0x84, + 0x8a, 0x30, 0x2e, 0xe2, 0xa6, 0xc7, 0xd8, 0xc2, 0xcd, 0x5e, 0xc6, 0xfe, 0x57, 0x13, 0xaa, 0xea, + 0xe2, 0xef, 0xfd, 0xe7, 0x99, 0xb1, 0x97, 0x5f, 0x9f, 0x19, 0x1b, 0x3a, 0xf4, 0x72, 0xf4, 0xd0, + 0x7b, 0x23, 0xfe, 0xe9, 0x24, 0xdc, 0x45, 0x3f, 0x7e, 0xb3, 0x3b, 0xba, 0xe1, 0x9e, 0x69, 0xda, + 0xfb, 0x96, 0x6b, 0x92, 0x79, 0x6f, 0x6e, 0xf3, 0x01, 0x9f, 0xf0, 0xab, 0xe7, 0x59, 0xf5, 0xe0, + 0xe1, 0x96, 0xb7, 0x21, 0xb5, 0x4e, 0xf8, 0x88, 0x88, 0x5d, 0xd3, 0xd5, 0xda, 0xdc, 0x59, 0x61, + 0x0f, 0xa4, 0x94, 0x7d, 0x30, 0x17, 0x67, 0xa5, 0xba, 0xf8, 0x56, 0xae, 0x8d, 0xb5, 0x6d, 0xf6, + 0xdd, 0x41, 0x82, 0x7a, 0xb9, 0x59, 0x52, 0x40, 0x3f, 0x31, 0x98, 0x82, 0x94, 0xd6, 0x65, 0x07, + 0x5e, 0x12, 0xc4, 0xfd, 0xa5, 0x0f, 0xf2, 0x33, 0x90, 0xe1, 0xdb, 0xee, 0x48, 0x82, 0xc4, 0x35, + 0xbc, 0x4f, 0xdf, 0x53, 0x50, 0xc8, 0x4f, 0x34, 0x0f, 0x29, 0xda, 0x78, 0xfe, 0x41, 0xd5, 0xf4, + 0x7c, 0x5f, 0xeb, 0xe7, 0x69, 0x23, 0x15, 0x46, 0x26, 0x5f, 0x81, 0xec, 0xa2, 0x49, 0xb4, 0x30, + 0x8c, 0x96, 0x63, 0x68, 0xb4, 0xcd, 0x56, 0x97, 0x6b, 0x85, 0xc2, 0x1e, 0xd0, 0x11, 0x48, 0xb3, + 0xef, 0x50, 0xf8, 0xa1, 0x1d, 0xfe, 0x24, 0xd7, 0x20, 0x43, 0xb1, 0xd7, 0x2c, 0xe2, 0x29, 0x78, + 0x47, 0x7e, 0x73, 0xfc, 0xab, 0x44, 0x0e, 0x1f, 0xf7, 0x1b, 0x8b, 0x20, 0xd9, 0xd2, 0x5c, 0x8d, + 0xf7, 0x9b, 0xfe, 0x96, 0xdf, 0x09, 0x59, 0x0e, 0xe2, 0xa0, 0xb3, 0x90, 0x30, 0x2d, 0x87, 0x1f, + 0xbb, 0x29, 0x0f, 0xeb, 0xca, 0x9a, 0x55, 0x4d, 0x12, 0x9d, 0x51, 0x08, 0x71, 0x75, 0x75, 0xa8, + 0x5a, 0x3c, 0x16, 0x52, 0x8b, 0x0e, 0x76, 0xb7, 0xb6, 0x5d, 0xff, 0x07, 0x1b, 0xce, 0x3e, 0x55, + 0xf0, 0x14, 0xe5, 0x56, 0x1c, 0x66, 0x02, 0xb5, 0xd7, 0xb1, 0xed, 0xe8, 0xa6, 0xc1, 0xb4, 0x89, + 0x6b, 0x0a, 0x0a, 0x34, 0x90, 0xd7, 0x0f, 0x51, 0x95, 0xa7, 0x20, 0x51, 0xb1, 0x2c, 0x54, 0x86, + 0x2c, 0x7d, 0x6e, 0x9a, 0x4c, 0x57, 0x92, 0x8a, 0xf7, 0x4c, 0xea, 0x1c, 0x73, 0xdb, 0xbd, 0xa1, + 0xd9, 0xde, 0x67, 0x9a, 0xe2, 0x59, 0x7e, 0x12, 0x72, 0x35, 0xd3, 0x70, 0xb0, 0xe1, 0x74, 0xa9, + 0x0b, 0xbc, 0xd5, 0x36, 0x9b, 0xd7, 0x38, 0x02, 0x7b, 0x20, 0xc2, 0xd6, 0x2c, 0x8b, 0x72, 0x26, + 0x15, 0xf2, 0x93, 0xcd, 0xd7, 0xea, 0xda, 0x50, 0xf1, 0x9c, 0x3b, 0x9c, 0x78, 0x78, 0x07, 0x7d, + 0x5f, 0x36, 0x06, 0x77, 0xf6, 0x4f, 0xa4, 0x6b, 0x78, 0xdf, 0x39, 0xec, 0x3c, 0x7a, 0x0e, 0x72, + 0xeb, 0xf4, 0x9e, 0x84, 0x67, 0xf0, 0x3e, 0x2a, 0x43, 0x06, 0xb7, 0xce, 0x9e, 0x3b, 0xf7, 0xc8, + 0x93, 0x4c, 0xcb, 0x2f, 0x8f, 0x29, 0xa2, 0x00, 0xcd, 0x40, 0xce, 0xc1, 0x4d, 0xeb, 0xec, 0xb9, + 0xf3, 0xd7, 0x1e, 0x61, 0x6a, 0x75, 0x79, 0x4c, 0xf1, 0x8b, 0x16, 0xb2, 0xa4, 0xc7, 0xdf, 0xfc, + 0xe4, 0x6c, 0xac, 0x9a, 0x82, 0x84, 0xd3, 0xed, 0xbc, 0x65, 0xba, 0xf1, 0x53, 0x29, 0x98, 0x0b, + 0xd4, 0xb2, 0xc5, 0xe5, 0xba, 0xd6, 0xd6, 0x5b, 0x9a, 0x7f, 0xbb, 0x85, 0x14, 0xe8, 0x3f, 0xa5, + 0x18, 0xb2, 0x6a, 0x1c, 0x28, 0x45, 0xf9, 0x57, 0x62, 0x50, 0xb8, 0x2a, 0x90, 0x1b, 0xd8, 0x45, + 0x17, 0x00, 0xbc, 0x37, 0x89, 0xa9, 0x72, 0x7c, 0xbe, 0xf7, 0x5d, 0xf3, 0x1e, 0x8f, 0x12, 0x20, + 0x47, 0x8f, 0x53, 0x05, 0xb4, 0x4c, 0x87, 0x7f, 0xb2, 0x17, 0xc1, 0xea, 0x11, 0xa3, 0x07, 0x01, + 0x51, 0xab, 0xa6, 0x5e, 0x37, 0x5d, 0xdd, 0xd8, 0x51, 0x2d, 0xf3, 0x06, 0xff, 0x10, 0x3a, 0xa1, + 0x48, 0xb4, 0xe6, 0x2a, 0xad, 0x58, 0x27, 0xe5, 0xa4, 0xd1, 0x39, 0x0f, 0x85, 0x44, 0x73, 0x5a, + 0xab, 0x65, 0x63, 0xc7, 0xe1, 0x86, 0x4b, 0x3c, 0xa2, 0x0b, 0x90, 0xb1, 0xba, 0x5b, 0xaa, 0xb0, + 0x12, 0xf9, 0xb3, 0x77, 0x0e, 0x9a, 0xf3, 0x42, 0x37, 0xf8, 0xac, 0x4f, 0x5b, 0xdd, 0x2d, 0xa2, + 0x29, 0x77, 0x43, 0x61, 0x40, 0x63, 0xf2, 0xd7, 0xfd, 0x76, 0xd0, 0xab, 0x39, 0x78, 0x0f, 0x54, + 0xcb, 0xd6, 0x4d, 0x5b, 0x77, 0xf7, 0xe9, 0x79, 0xb9, 0x84, 0x22, 0x89, 0x8a, 0x75, 0x5e, 0x2e, + 0x5f, 0x83, 0x52, 0x83, 0x7a, 0xf9, 0x7e, 0xcb, 0xcf, 0xf9, 0xed, 0x8b, 0x45, 0xb7, 0x6f, 0x68, + 0xcb, 0xe2, 0x7d, 0x2d, 0xab, 0xae, 0x0c, 0xd5, 0xcc, 0x47, 0x0f, 0xa7, 0x99, 0xe1, 0xd5, 0xed, + 0x0f, 0x8f, 0x85, 0x26, 0x25, 0xf7, 0x7a, 0x02, 0x26, 0x6b, 0x54, 0xa5, 0x8c, 0x0a, 0xe0, 0xcb, + 0x07, 0x2f, 0xa2, 0xe5, 0x08, 0xd3, 0x59, 0x8e, 0x9c, 0x3e, 0xf2, 0x93, 0x30, 0xbe, 0xae, 0xd9, + 0x6e, 0x03, 0xbb, 0x97, 0xb1, 0xd6, 0xc2, 0x76, 0x78, 0x95, 0x1d, 0x17, 0xab, 0x2c, 0x82, 0x24, + 0x5d, 0x4a, 0xd9, 0x2a, 0x43, 0x7f, 0xcb, 0xbb, 0x90, 0xa4, 0xe7, 0x65, 0xbd, 0x15, 0x98, 0x73, + 0xb0, 0x15, 0x98, 0xd8, 0xcf, 0x7d, 0x17, 0x3b, 0x22, 0xc7, 0x44, 0x1f, 0xd0, 0x63, 0x62, 0x1d, + 0x4d, 0x1c, 0xbc, 0x8e, 0x72, 0x25, 0xe4, 0xab, 0x69, 0x1b, 0x32, 0x55, 0x62, 0x7e, 0x97, 0x16, + 0xbd, 0x86, 0xc4, 0xfc, 0x86, 0xa0, 0x15, 0x28, 0x59, 0x9a, 0xed, 0xd2, 0x4f, 0x8d, 0x76, 0x69, + 0x2f, 0xb8, 0x9e, 0xcf, 0xf6, 0xcf, 0xba, 0x50, 0x67, 0xf9, 0x5b, 0xc6, 0xad, 0x60, 0xa1, 0xfc, + 0x5f, 0x92, 0x90, 0xe6, 0xc2, 0x78, 0x0a, 0x32, 0x5c, 0xac, 0x5c, 0x33, 0xef, 0x9a, 0xef, 0x5f, + 0x8c, 0xe6, 0xbd, 0x45, 0x83, 0xe3, 0x09, 0x1e, 0x74, 0x3f, 0x64, 0x9b, 0xbb, 0x9a, 0x6e, 0xa8, + 0x7a, 0x8b, 0x3b, 0x80, 0xf9, 0xd7, 0x5f, 0x9b, 0xcd, 0xd4, 0x48, 0xd9, 0xd2, 0xa2, 0x92, 0xa1, + 0x95, 0x4b, 0x2d, 0xb2, 0xf2, 0xef, 0x62, 0x7d, 0x67, 0xd7, 0xe5, 0xb3, 0x8b, 0x3f, 0xa1, 0x27, + 0x20, 0x49, 0x14, 0x82, 0x7f, 0x88, 0x5a, 0xee, 0xf3, 0xe1, 0xbd, 0xfc, 0x4a, 0x35, 0x4b, 0x5e, + 0xfc, 0xa1, 0xdf, 0x9f, 0x8d, 0x29, 0x94, 0x03, 0xd5, 0x60, 0xbc, 0xad, 0x39, 0xae, 0x4a, 0x57, + 0x2d, 0xf2, 0xfa, 0x14, 0x85, 0x38, 0xd6, 0x2f, 0x10, 0x2e, 0x58, 0xde, 0xf4, 0x3c, 0xe1, 0x62, + 0x45, 0x2d, 0x74, 0x12, 0x24, 0x0a, 0xd2, 0x34, 0x3b, 0x1d, 0xdd, 0x65, 0xbe, 0x54, 0x9a, 0xca, + 0xbd, 0x48, 0xca, 0x6b, 0xb4, 0x98, 0x7a, 0x54, 0xc7, 0x21, 0x47, 0x3f, 0x7d, 0xa3, 0x24, 0xec, + 0x90, 0x76, 0x96, 0x14, 0xd0, 0xca, 0x13, 0x50, 0xf2, 0x6d, 0x23, 0x23, 0xc9, 0x32, 0x14, 0xbf, + 0x98, 0x12, 0x3e, 0x0c, 0x53, 0x06, 0xde, 0xa3, 0xc7, 0xc6, 0x43, 0xd4, 0x39, 0x4a, 0x8d, 0x48, + 0xdd, 0xd5, 0x30, 0xc7, 0x7d, 0x50, 0x6c, 0x0a, 0xe1, 0x33, 0x5a, 0xa0, 0xb4, 0xe3, 0x5e, 0x29, + 0x25, 0x3b, 0x06, 0x59, 0xcd, 0xb2, 0x18, 0x41, 0x9e, 0xdb, 0x46, 0xcb, 0xa2, 0x55, 0xa7, 0x61, + 0x82, 0xf6, 0xd1, 0xc6, 0x4e, 0xb7, 0xed, 0x72, 0x90, 0x02, 0xa5, 0x29, 0x91, 0x0a, 0x85, 0x95, + 0x53, 0xda, 0x7b, 0x60, 0x1c, 0x5f, 0xd7, 0x5b, 0xd8, 0x68, 0x62, 0x46, 0x37, 0x4e, 0xe9, 0x0a, + 0xa2, 0x90, 0x12, 0x9d, 0x02, 0xcf, 0xe6, 0xa9, 0xc2, 0x1e, 0x17, 0x19, 0x9e, 0x28, 0xaf, 0xb0, + 0x62, 0x79, 0x1a, 0x92, 0x8b, 0x9a, 0xab, 0x11, 0xa7, 0xc2, 0xdd, 0x63, 0x8b, 0x4c, 0x41, 0x21, + 0x3f, 0xe5, 0x6f, 0xc6, 0x21, 0x79, 0xd5, 0x74, 0x31, 0x7a, 0x34, 0xe0, 0xf0, 0x15, 0x07, 0xe9, + 0x73, 0x43, 0xdf, 0x31, 0x70, 0x6b, 0xc5, 0xd9, 0x09, 0xdc, 0x53, 0xe1, 0xab, 0x53, 0x3c, 0xa4, + 0x4e, 0x53, 0x90, 0xb2, 0xcd, 0xae, 0xd1, 0x12, 0xe7, 0x9b, 0xe9, 0x03, 0xaa, 0x43, 0xd6, 0xd3, + 0x92, 0x64, 0x94, 0x96, 0x94, 0x88, 0x96, 0x10, 0x1d, 0xe6, 0x05, 0x4a, 0x66, 0x8b, 0x2b, 0x4b, + 0x15, 0x72, 0x9e, 0xf1, 0xe2, 0xda, 0x36, 0x9a, 0xc2, 0xfa, 0x6c, 0x64, 0x21, 0xf1, 0xc6, 0xde, + 0x13, 0x1e, 0xd3, 0x38, 0xc9, 0xab, 0xe0, 0xd2, 0x0b, 0xa9, 0x15, 0xbf, 0x33, 0x23, 0x43, 0xfb, + 0xe5, 0xab, 0x15, 0xbb, 0x37, 0xe3, 0x4e, 0xc8, 0x39, 0xfa, 0x8e, 0xa1, 0xb9, 0x5d, 0x1b, 0x73, + 0xcd, 0xf3, 0x0b, 0xe4, 0x2f, 0xc5, 0x20, 0xcd, 0x34, 0x39, 0x20, 0xb7, 0xd8, 0x60, 0xb9, 0xc5, + 0x87, 0xc9, 0x2d, 0x71, 0xfb, 0x72, 0xab, 0x00, 0x78, 0x8d, 0x71, 0xf8, 0x55, 0x06, 0x03, 0xbc, + 0x05, 0xd6, 0xc4, 0x86, 0xbe, 0xc3, 0x27, 0x6a, 0x80, 0x49, 0xfe, 0x4f, 0x31, 0xe2, 0xb8, 0xf2, + 0x7a, 0x54, 0x81, 0x71, 0xd1, 0x2e, 0x75, 0xbb, 0xad, 0xed, 0x70, 0xdd, 0xb9, 0x6b, 0x68, 0xe3, + 0x2e, 0xb6, 0xb5, 0x1d, 0x25, 0xcf, 0xdb, 0x43, 0x1e, 0x06, 0x8f, 0x43, 0x7c, 0xc8, 0x38, 0x84, + 0x06, 0x3e, 0x71, 0x7b, 0x03, 0x1f, 0x1a, 0xa2, 0x64, 0xef, 0x10, 0x7d, 0x2e, 0x4e, 0x83, 0x17, + 0xcb, 0x74, 0xb4, 0xf6, 0xdb, 0x31, 0x23, 0x8e, 0x43, 0xce, 0x32, 0xdb, 0x2a, 0xab, 0x61, 0xe7, + 0xfe, 0xb3, 0x96, 0xd9, 0x56, 0xfa, 0x86, 0x3d, 0xf5, 0x26, 0x4d, 0x97, 0xf4, 0x9b, 0x20, 0xb5, + 0x4c, 0xaf, 0xd4, 0x6c, 0x28, 0x30, 0x51, 0xf0, 0xb5, 0xec, 0x61, 0x22, 0x03, 0xba, 0x38, 0xc6, + 0xfa, 0xd7, 0x5e, 0xd6, 0x6c, 0x46, 0xa9, 0x70, 0x3a, 0xc2, 0xc1, 0x4c, 0xff, 0xa0, 0xa8, 0x37, + 0xa8, 0x96, 0x0a, 0xa7, 0x93, 0x7f, 0x2a, 0x06, 0xb0, 0x4c, 0x24, 0x4b, 0xfb, 0x4b, 0x56, 0x21, + 0x87, 0x36, 0x41, 0x0d, 0xbd, 0x79, 0x66, 0xd8, 0xa0, 0xf1, 0xf7, 0x17, 0x9c, 0x60, 0xbb, 0x6b, + 0x30, 0xee, 0x2b, 0xa3, 0x83, 0x45, 0x63, 0x66, 0x0e, 0xf0, 0xa8, 0x1b, 0xd8, 0x55, 0x0a, 0xd7, + 0x03, 0x4f, 0xf2, 0x3f, 0x89, 0x41, 0x8e, 0xb6, 0x69, 0x05, 0xbb, 0x5a, 0x68, 0x0c, 0x63, 0xb7, + 0x3f, 0x86, 0x77, 0x01, 0x30, 0x18, 0x47, 0x7f, 0x09, 0x73, 0xcd, 0xca, 0xd1, 0x92, 0x86, 0xfe, + 0x12, 0x46, 0xe7, 0x3d, 0x81, 0x27, 0x0e, 0x16, 0xb8, 0xf0, 0xb8, 0xb9, 0xd8, 0x8f, 0x42, 0x86, + 0x5e, 0xfd, 0xb5, 0xe7, 0x70, 0x27, 0x3a, 0x6d, 0x74, 0x3b, 0x1b, 0x7b, 0x8e, 0xfc, 0x22, 0x64, + 0x36, 0xf6, 0x58, 0x2e, 0xe4, 0x38, 0xe4, 0x6c, 0xd3, 0xe4, 0x6b, 0x32, 0xf3, 0x85, 0xb2, 0xa4, + 0x80, 0x2e, 0x41, 0x22, 0xfe, 0x8f, 0xfb, 0xf1, 0xbf, 0x9f, 0xc0, 0x48, 0x8c, 0x94, 0xc0, 0x38, + 0xfd, 0xef, 0x63, 0x90, 0x0f, 0xd8, 0x07, 0xf4, 0x08, 0xdc, 0x51, 0x5d, 0x5e, 0xab, 0x3d, 0xa3, + 0x2e, 0x2d, 0xaa, 0x17, 0x97, 0x2b, 0x97, 0xfc, 0x2f, 0xdb, 0xca, 0x47, 0x6e, 0xde, 0x9a, 0x43, + 0x01, 0xda, 0x4d, 0x83, 0x6e, 0xe2, 0xa0, 0x33, 0x30, 0x15, 0x66, 0xa9, 0x54, 0x1b, 0xf5, 0xd5, + 0x0d, 0x29, 0x56, 0xbe, 0xe3, 0xe6, 0xad, 0xb9, 0x89, 0x00, 0x47, 0x65, 0xcb, 0xc1, 0x86, 0xdb, + 0xcf, 0x50, 0x5b, 0x5b, 0x59, 0x59, 0xda, 0x90, 0xe2, 0x7d, 0x0c, 0xdc, 0x60, 0x9f, 0x82, 0x89, + 0x30, 0xc3, 0xea, 0xd2, 0xb2, 0x94, 0x28, 0xa3, 0x9b, 0xb7, 0xe6, 0x8a, 0x01, 0xea, 0x55, 0xbd, + 0x5d, 0xce, 0x7e, 0xe0, 0x53, 0x33, 0x63, 0xaf, 0xfe, 0xdd, 0x99, 0x18, 0xe9, 0xd9, 0x78, 0xc8, + 0x46, 0xa0, 0x07, 0xe1, 0x68, 0x63, 0xe9, 0xd2, 0x6a, 0x7d, 0x51, 0x5d, 0x69, 0x5c, 0x12, 0xdb, + 0x20, 0xa2, 0x77, 0xa5, 0x9b, 0xb7, 0xe6, 0xf2, 0xbc, 0x4b, 0xc3, 0xa8, 0xd7, 0x95, 0xfa, 0xd5, + 0xb5, 0x8d, 0xba, 0x14, 0x63, 0xd4, 0xeb, 0x36, 0xbe, 0x6e, 0xba, 0xec, 0x6e, 0xc0, 0x87, 0xe1, + 0xd8, 0x00, 0x6a, 0xaf, 0x63, 0x13, 0x37, 0x6f, 0xcd, 0x8d, 0xaf, 0xdb, 0x98, 0xcd, 0x1f, 0xca, + 0x31, 0x0f, 0xd3, 0xfd, 0x1c, 0x6b, 0xeb, 0x6b, 0x8d, 0xca, 0xb2, 0x34, 0x57, 0x96, 0x6e, 0xde, + 0x9a, 0x2b, 0x08, 0x63, 0x48, 0xe8, 0xfd, 0x9e, 0xbd, 0x55, 0xd1, 0xce, 0x27, 0x32, 0xa1, 0x5c, + 0x1e, 0x8b, 0x23, 0x2c, 0xcd, 0xd6, 0x3a, 0xc3, 0xc3, 0x9d, 0xfe, 0x44, 0xec, 0x90, 0x08, 0x28, + 0x62, 0x63, 0x57, 0x7e, 0x39, 0x0e, 0x25, 0xcf, 0xbf, 0x5e, 0xa7, 0x2f, 0x45, 0x8f, 0x06, 0x53, + 0x33, 0xf9, 0xa1, 0x2b, 0x1b, 0xa3, 0x16, 0x99, 0x9b, 0x77, 0x40, 0x56, 0xf8, 0x69, 0xdc, 0x82, + 0xcc, 0xf5, 0xf3, 0xd5, 0x39, 0x05, 0x67, 0xf5, 0x38, 0xd0, 0xd3, 0x90, 0xf3, 0xec, 0x89, 0x77, + 0xd9, 0xce, 0x70, 0x03, 0xc4, 0xf9, 0x7d, 0x1e, 0xf4, 0xa4, 0x1f, 0x49, 0x24, 0x87, 0xc5, 0x26, + 0x57, 0x19, 0x01, 0x67, 0x16, 0xf4, 0xf2, 0x12, 0x9f, 0x89, 0xbc, 0xf7, 0xf4, 0xa2, 0x82, 0x3d, + 0x95, 0x05, 0x57, 0xcc, 0x51, 0xc9, 0x76, 0xb4, 0xbd, 0x2a, 0x8d, 0xaf, 0x8e, 0x42, 0x86, 0x54, + 0xee, 0xf0, 0xef, 0xb0, 0x13, 0x4a, 0xba, 0xa3, 0xed, 0x5d, 0xd2, 0x9c, 0x2b, 0xc9, 0x6c, 0x42, + 0x4a, 0xca, 0xbf, 0x14, 0x83, 0x62, 0xb8, 0x8f, 0xe8, 0x01, 0x40, 0x84, 0x43, 0xdb, 0xc1, 0x2a, + 0xb1, 0x3a, 0x54, 0x58, 0x02, 0xb7, 0xd4, 0xd1, 0xf6, 0x2a, 0x3b, 0x78, 0xb5, 0xdb, 0xa1, 0x0d, + 0x70, 0x90, 0x02, 0x92, 0x20, 0x16, 0xe3, 0xc4, 0x85, 0x79, 0xac, 0xff, 0xea, 0x3d, 0x4e, 0x50, + 0x1d, 0x27, 0xd6, 0xed, 0xa3, 0xbf, 0x3f, 0x1b, 0x63, 0x29, 0xf4, 0x22, 0x03, 0xf5, 0x76, 0xe7, + 0x43, 0xfd, 0x49, 0x84, 0xfb, 0x23, 0x3f, 0x0d, 0xa5, 0x1e, 0xa1, 0x22, 0x19, 0xc6, 0x79, 0xb6, + 0x80, 0xee, 0x7c, 0x32, 0xbf, 0x39, 0xa7, 0xe4, 0x59, 0x56, 0x80, 0xee, 0x04, 0x2f, 0x64, 0xbf, + 0xf8, 0xca, 0x6c, 0x8c, 0x26, 0xd2, 0x1f, 0x80, 0xf1, 0x90, 0x58, 0x45, 0x06, 0x2f, 0xe6, 0x67, + 0xf0, 0x7c, 0xe2, 0x17, 0xa0, 0x40, 0x0c, 0x28, 0x6e, 0x71, 0xda, 0xfb, 0xa1, 0xc4, 0x0c, 0x7c, + 0xaf, 0xc0, 0x99, 0x87, 0xb5, 0x22, 0xa4, 0x2e, 0x0b, 0x97, 0x2b, 0x2c, 0xfb, 0xbc, 0xa0, 0xba, + 0xa4, 0x39, 0xd5, 0x77, 0xbd, 0xfa, 0xfa, 0x4c, 0xec, 0xad, 0x99, 0xa0, 0x5f, 0x7d, 0x17, 0x1c, + 0x0f, 0x54, 0x6a, 0x5b, 0x4d, 0x3d, 0x94, 0x8d, 0x28, 0x05, 0x34, 0x8d, 0x54, 0x46, 0x65, 0x15, + 0x0e, 0xcc, 0x6d, 0x1c, 0x9c, 0x48, 0x2b, 0x1f, 0x6c, 0x29, 0xa2, 0x13, 0x1e, 0x83, 0x73, 0x97, + 0xff, 0x27, 0x0b, 0x19, 0x05, 0xbf, 0xaf, 0x8b, 0x1d, 0x17, 0x9d, 0x85, 0x24, 0x6e, 0xee, 0x9a, + 0x83, 0x52, 0x45, 0xa4, 0x73, 0xf3, 0x9c, 0xae, 0xde, 0xdc, 0x35, 0x2f, 0x8f, 0x29, 0x94, 0x16, + 0x9d, 0x83, 0xd4, 0x76, 0xbb, 0xcb, 0xf3, 0x17, 0x3d, 0x16, 0x23, 0xc8, 0x74, 0x91, 0x10, 0x5d, + 0x1e, 0x53, 0x18, 0x35, 0x79, 0x15, 0xbd, 0xc9, 0x34, 0x71, 0xf0, 0xab, 0x96, 0x8c, 0x6d, 0xfa, + 0x2a, 0x42, 0x8b, 0xaa, 0x00, 0xba, 0xa1, 0xbb, 0x2a, 0x8d, 0xed, 0xb9, 0x87, 0x78, 0xf7, 0x70, + 0x4e, 0xdd, 0xa5, 0xd9, 0x80, 0xcb, 0x63, 0x4a, 0x4e, 0x17, 0x0f, 0xa4, 0xb9, 0xef, 0xeb, 0x62, + 0x7b, 0x9f, 0x3b, 0x86, 0x43, 0x9b, 0xfb, 0x2e, 0x42, 0x44, 0x9a, 0x4b, 0xa9, 0x51, 0x1d, 0xf2, + 0xf4, 0x93, 0x55, 0x36, 0x89, 0xf9, 0xad, 0x9a, 0xf2, 0x30, 0xe6, 0x2a, 0x21, 0xa5, 0xf3, 0xfa, + 0xf2, 0x98, 0x02, 0x5b, 0xde, 0x13, 0xb1, 0x94, 0xec, 0xd6, 0x25, 0x77, 0x8f, 0xdf, 0x25, 0x38, + 0x3b, 0x0c, 0x83, 0x5e, 0xbd, 0xb4, 0xb1, 0x77, 0x79, 0x4c, 0xc9, 0x34, 0xd9, 0x4f, 0xd2, 0xff, + 0x16, 0x6e, 0xeb, 0xd7, 0xb1, 0x4d, 0xf8, 0x73, 0x07, 0xf7, 0x7f, 0x91, 0x51, 0x52, 0x84, 0x5c, + 0x4b, 0x3c, 0x10, 0x6b, 0x8b, 0x8d, 0x16, 0xef, 0x06, 0xf4, 0x1b, 0xeb, 0xd0, 0x38, 0x1b, 0x2d, + 0xd1, 0x89, 0x2c, 0xe6, 0xbf, 0xd1, 0x13, 0x9e, 0xe7, 0x9a, 0xef, 0x77, 0x16, 0x43, 0x1d, 0x60, + 0x39, 0x8c, 0x31, 0xe1, 0xc1, 0xa2, 0x55, 0x28, 0xb6, 0x75, 0xc7, 0x55, 0x1d, 0x43, 0xb3, 0x9c, + 0x5d, 0xd3, 0x75, 0x68, 0x32, 0x20, 0x7f, 0xf6, 0xbe, 0x61, 0x08, 0xcb, 0xba, 0xe3, 0x36, 0x04, + 0xf1, 0xe5, 0x31, 0x65, 0xbc, 0x1d, 0x2c, 0x20, 0x78, 0xe6, 0xf6, 0x36, 0xb6, 0x3d, 0x40, 0x9a, + 0x34, 0x38, 0x00, 0x6f, 0x8d, 0x50, 0x0b, 0x7e, 0x82, 0x67, 0x06, 0x0b, 0xd0, 0x0f, 0xc2, 0x64, + 0xdb, 0xd4, 0x5a, 0x1e, 0x9c, 0xda, 0xdc, 0xed, 0x1a, 0xd7, 0x68, 0x86, 0x21, 0x7f, 0xf6, 0xd4, + 0xd0, 0x46, 0x9a, 0x5a, 0x4b, 0x40, 0xd4, 0x08, 0xc3, 0xe5, 0x31, 0x65, 0xa2, 0xdd, 0x5b, 0x88, + 0xde, 0x03, 0x53, 0x9a, 0x65, 0xb5, 0xf7, 0x7b, 0xd1, 0x4b, 0x14, 0xfd, 0xf4, 0x30, 0xf4, 0x0a, + 0xe1, 0xe9, 0x85, 0x47, 0x5a, 0x5f, 0x29, 0xda, 0x00, 0xc9, 0xb2, 0x31, 0xfd, 0xc6, 0xc6, 0xe2, + 0x2e, 0x0c, 0xbd, 0x28, 0x2b, 0x7f, 0xf6, 0xc4, 0x30, 0xec, 0x75, 0x46, 0x2f, 0x3c, 0x9e, 0xcb, + 0x63, 0x4a, 0xc9, 0x0a, 0x17, 0x31, 0x54, 0xb3, 0x89, 0xe9, 0x65, 0x4e, 0x1c, 0x75, 0x22, 0x0a, + 0x95, 0xd2, 0x87, 0x51, 0x43, 0x45, 0xd5, 0x0c, 0x3f, 0x23, 0xc7, 0x6f, 0x5a, 0x39, 0x01, 0xf9, + 0x80, 0x61, 0x41, 0xd3, 0x90, 0xe1, 0x67, 0x06, 0xc4, 0xd9, 0x3a, 0xfe, 0x28, 0x17, 0xa1, 0x10, + 0x34, 0x26, 0xf2, 0x87, 0x62, 0x1e, 0x27, 0xfd, 0xf4, 0x7d, 0x3a, 0x9c, 0x52, 0xcc, 0xf9, 0xd9, + 0xc2, 0x7b, 0xc4, 0x2a, 0x22, 0xea, 0xd9, 0x2e, 0x53, 0x81, 0x16, 0xf2, 0x45, 0x0c, 0xcd, 0x42, + 0xde, 0x3a, 0x6b, 0x79, 0x24, 0x09, 0x4a, 0x02, 0xd6, 0x59, 0x4b, 0x10, 0xdc, 0x0d, 0x05, 0xd2, + 0x53, 0x35, 0xe8, 0x6d, 0xe4, 0x94, 0x3c, 0x29, 0xe3, 0x24, 0xf2, 0xbf, 0x8e, 0x83, 0xd4, 0x6b, + 0x80, 0xbc, 0x5c, 0x63, 0xec, 0xd0, 0xb9, 0xc6, 0x63, 0xbd, 0x59, 0x4e, 0x3f, 0xb1, 0xb9, 0x0c, + 0x92, 0x9f, 0x9f, 0x63, 0x0b, 0xc1, 0x70, 0xef, 0xa9, 0xc7, 0xcd, 0x53, 0x4a, 0xcd, 0x1e, 0xbf, + 0xef, 0x62, 0x68, 0x4f, 0x46, 0x5c, 0xd5, 0xdd, 0x3b, 0xc4, 0x9e, 0xbf, 0xb0, 0x69, 0xb5, 0x34, + 0x17, 0x8b, 0x7c, 0x49, 0x60, 0x7b, 0xe6, 0x7e, 0x28, 0x69, 0x96, 0xa5, 0x3a, 0xae, 0xe6, 0x62, + 0xbe, 0xac, 0xa7, 0x58, 0xda, 0x50, 0xb3, 0xac, 0x06, 0x29, 0x65, 0xcb, 0xfa, 0x7d, 0x50, 0x24, + 0x36, 0x59, 0xd7, 0xda, 0x2a, 0xcf, 0x1e, 0xa4, 0xd9, 0xea, 0xcf, 0x4b, 0x2f, 0xd3, 0x42, 0xb9, + 0xe5, 0x8d, 0x38, 0xb5, 0xc7, 0x5e, 0xf8, 0x15, 0x0b, 0x84, 0x5f, 0x88, 0xdf, 0x49, 0xc0, 0xe4, + 0x23, 0xae, 0x71, 0x18, 0x9c, 0xf5, 0x9d, 0xa2, 0xa1, 0xda, 0x75, 0x96, 0x08, 0xc9, 0x2a, 0xec, + 0x41, 0x7e, 0x7f, 0x1c, 0x26, 0xfa, 0x2c, 0xf7, 0xc0, 0x74, 0xb8, 0x1f, 0x77, 0xc6, 0x0f, 0x15, + 0x77, 0x3e, 0x13, 0x4e, 0xf7, 0x06, 0x56, 0xbe, 0xe3, 0x7d, 0x42, 0x66, 0x76, 0x93, 0x28, 0x34, + 0x07, 0x09, 0x64, 0x84, 0xa9, 0x9a, 0x6f, 0xc2, 0xd4, 0xd6, 0xfe, 0x4b, 0x9a, 0xe1, 0xea, 0x06, + 0x56, 0xfb, 0x46, 0xad, 0x7f, 0x29, 0x5d, 0xd1, 0x9d, 0x2d, 0xbc, 0xab, 0x5d, 0xd7, 0x4d, 0xd1, + 0xac, 0x49, 0x8f, 0xdf, 0x4f, 0xfa, 0xca, 0x0a, 0x14, 0xc3, 0x4b, 0x0f, 0x2a, 0x42, 0xdc, 0xdd, + 0xe3, 0xfd, 0x8f, 0xbb, 0x7b, 0xe8, 0x61, 0x9e, 0x1f, 0x8a, 0xd3, 0xfc, 0x50, 0xff, 0x8b, 0x38, + 0x9f, 0x9f, 0x1c, 0x92, 0x65, 0x6f, 0x36, 0x78, 0xcb, 0x51, 0x2f, 0xaa, 0x7c, 0x0a, 0x4a, 0x3d, + 0xeb, 0xcd, 0xb0, 0x6c, 0xa1, 0x5c, 0x82, 0xf1, 0xd0, 0xe2, 0x22, 0x1f, 0x81, 0xa9, 0x41, 0x6b, + 0x85, 0xbc, 0xeb, 0x95, 0x87, 0x6c, 0x3e, 0x3a, 0x07, 0x59, 0x6f, 0xb1, 0x18, 0x90, 0x9d, 0xa0, + 0xbd, 0x10, 0xc4, 0x8a, 0x47, 0x1a, 0x4a, 0x72, 0xc7, 0x43, 0x49, 0x6e, 0xf9, 0xbd, 0x30, 0x3d, + 0x6c, 0x21, 0xe8, 0xe9, 0x46, 0xd2, 0xd3, 0xc2, 0x23, 0x90, 0xe6, 0x37, 0xb6, 0xc5, 0xe9, 0xb6, + 0x0e, 0x7f, 0x22, 0xda, 0xc9, 0x16, 0x85, 0x04, 0xdb, 0xed, 0xa1, 0x0f, 0xb2, 0x0a, 0xc7, 0x86, + 0x2e, 0x06, 0xc3, 0x37, 0x88, 0x18, 0x10, 0xdf, 0x20, 0x6a, 0x8a, 0xe6, 0x38, 0xb4, 0xaf, 0xe2, + 0x10, 0x04, 0x7b, 0x92, 0x3f, 0x9a, 0x80, 0x23, 0x83, 0x97, 0x04, 0x34, 0x07, 0x05, 0xe2, 0x77, + 0xbb, 0x61, 0x17, 0x1d, 0x3a, 0xda, 0xde, 0x06, 0xf7, 0xcf, 0x79, 0x82, 0x3d, 0xee, 0x25, 0xd8, + 0xd1, 0x26, 0x4c, 0xb4, 0xcd, 0xa6, 0xd6, 0x56, 0x03, 0x1a, 0xcf, 0x95, 0xfd, 0x9e, 0x3e, 0x61, + 0xd7, 0xd9, 0x3d, 0xce, 0xad, 0x3e, 0xa5, 0x2f, 0x51, 0x8c, 0x65, 0x4f, 0xf3, 0xd1, 0x22, 0xe4, + 0x3b, 0xbe, 0x22, 0x1f, 0x42, 0xd9, 0x83, 0x6c, 0x81, 0x21, 0x49, 0x0d, 0xdc, 0x0e, 0x4a, 0x1f, + 0xda, 0x44, 0x0f, 0xdb, 0x59, 0xc9, 0x0c, 0xdd, 0x59, 0x19, 0xb4, 0x8d, 0x91, 0x1d, 0xbc, 0x8d, + 0xf1, 0x81, 0xe0, 0xd0, 0x84, 0x16, 0xd1, 0xfe, 0x9d, 0x0d, 0xd4, 0x80, 0x29, 0xce, 0xdf, 0x0a, + 0xc9, 0x3e, 0x3e, 0xaa, 0xa1, 0x41, 0x82, 0x7d, 0xb8, 0xd8, 0x13, 0xb7, 0x27, 0x76, 0x61, 0x4b, + 0x93, 0x01, 0x5b, 0xfa, 0xff, 0xd8, 0x50, 0xfc, 0xdb, 0x1c, 0x64, 0x15, 0xec, 0x58, 0x64, 0xe1, + 0x44, 0x55, 0xc8, 0xe1, 0xbd, 0x26, 0xb6, 0x5c, 0x7f, 0xfb, 0x72, 0x50, 0x30, 0xc0, 0xa8, 0xeb, + 0x82, 0x92, 0x78, 0xe2, 0x1e, 0x1b, 0x7a, 0x94, 0x07, 0x5b, 0xc3, 0xe3, 0x26, 0xce, 0x1e, 0x8c, + 0xb6, 0xce, 0x8b, 0x68, 0x2b, 0x31, 0xd4, 0xf9, 0x66, 0x5c, 0x3d, 0xe1, 0xd6, 0xa3, 0x3c, 0xdc, + 0x4a, 0x46, 0xbc, 0x2c, 0x14, 0x6f, 0xd5, 0x42, 0xf1, 0x56, 0x3a, 0xa2, 0x9b, 0x43, 0x02, 0xae, + 0xf3, 0x22, 0xe0, 0xca, 0x44, 0xb4, 0xb8, 0x27, 0xe2, 0xba, 0x18, 0x8e, 0xb8, 0xb2, 0x43, 0x0c, + 0x88, 0xe0, 0x1e, 0x1a, 0x72, 0x3d, 0x15, 0x08, 0xb9, 0x72, 0x43, 0xe3, 0x1d, 0x06, 0x32, 0x20, + 0xe6, 0xaa, 0x85, 0x62, 0x2e, 0x88, 0x90, 0xc1, 0x90, 0xa0, 0xeb, 0x07, 0x82, 0x41, 0x57, 0x7e, + 0x68, 0xdc, 0xc6, 0xc7, 0x7b, 0x50, 0xd4, 0xf5, 0xa4, 0x17, 0x75, 0x15, 0x86, 0x86, 0x8d, 0xbc, + 0x0f, 0xbd, 0x61, 0xd7, 0x5a, 0x5f, 0xd8, 0x35, 0xce, 0xff, 0x44, 0xc2, 0x30, 0x88, 0x88, 0xb8, + 0x6b, 0xad, 0x2f, 0xee, 0x2a, 0x46, 0x00, 0x46, 0x04, 0x5e, 0xff, 0xdf, 0xe0, 0xc0, 0x6b, 0x78, + 0x68, 0xc4, 0x9b, 0x39, 0x5a, 0xe4, 0xa5, 0x0e, 0x89, 0xbc, 0x58, 0x74, 0xf4, 0xc0, 0x50, 0xf8, + 0x91, 0x43, 0xaf, 0xcd, 0x01, 0xa1, 0x17, 0x0b, 0x92, 0x4e, 0x0e, 0x05, 0x1f, 0x21, 0xf6, 0xda, + 0x1c, 0x10, 0x7b, 0xa1, 0x48, 0xd8, 0xc3, 0x04, 0x5f, 0x29, 0x29, 0x2d, 0x9f, 0x22, 0xae, 0x6f, + 0x8f, 0x9d, 0x22, 0xfe, 0x03, 0xb6, 0x6d, 0xd3, 0x16, 0x27, 0x6e, 0xe9, 0x83, 0x7c, 0x92, 0x38, + 0xe3, 0xbe, 0x4d, 0x3a, 0x20, 0x50, 0xa3, 0x7e, 0x5a, 0xc0, 0x0e, 0xc9, 0x5f, 0x8c, 0xf9, 0xbc, + 0xd4, 0x87, 0x0d, 0x3a, 0xf2, 0x39, 0xee, 0xc8, 0x07, 0xc2, 0xb7, 0x78, 0x38, 0x7c, 0x9b, 0x85, + 0x3c, 0xf1, 0xbf, 0x7a, 0x22, 0x33, 0xcd, 0xf2, 0x22, 0x33, 0x71, 0xd4, 0x80, 0x05, 0x79, 0x7c, + 0x59, 0x61, 0x3b, 0x3c, 0x25, 0xef, 0xd8, 0x05, 0x8b, 0x29, 0xd0, 0x43, 0x30, 0x19, 0xa0, 0xf5, + 0xfc, 0x3a, 0x16, 0xa6, 0x48, 0x1e, 0x75, 0x85, 0x3b, 0x78, 0xff, 0x2c, 0xe6, 0x4b, 0xc8, 0x0f, + 0xe9, 0x06, 0x45, 0x5f, 0xb1, 0x37, 0x29, 0xfa, 0x8a, 0xdf, 0x76, 0xf4, 0x15, 0xf4, 0x53, 0x13, + 0x61, 0x3f, 0xf5, 0x7f, 0xc4, 0xfc, 0x31, 0xf1, 0x62, 0xa9, 0xa6, 0xd9, 0xc2, 0xdc, 0x73, 0xa4, + 0xbf, 0x89, 0x53, 0xd1, 0x36, 0x77, 0xb8, 0x7f, 0x48, 0x7e, 0x12, 0x2a, 0x6f, 0xe1, 0xc8, 0xf1, + 0x75, 0xc1, 0x73, 0x3a, 0x53, 0xc1, 0x73, 0xc1, 0xfc, 0xb0, 0x6c, 0xda, 0x3f, 0x2c, 0xeb, 0x7d, + 0x0b, 0x97, 0x09, 0x7c, 0x0b, 0x87, 0x9e, 0x80, 0x1c, 0xcd, 0x88, 0xaa, 0xa6, 0x25, 0xfe, 0xa0, + 0xc6, 0xf1, 0xe1, 0x07, 0x65, 0x1d, 0x7a, 0x84, 0x8f, 0x1d, 0xae, 0xf5, 0x3d, 0x86, 0x5c, 0xc8, + 0x63, 0xb8, 0x13, 0x72, 0xa4, 0xf5, 0xec, 0x62, 0x68, 0xe0, 0x1f, 0x52, 0x8a, 0x02, 0xf9, 0x3d, + 0x80, 0xfa, 0x17, 0x09, 0x74, 0x19, 0xd2, 0xf8, 0x3a, 0xbd, 0x65, 0x8f, 0x1d, 0x40, 0x3c, 0xd2, + 0xef, 0x9a, 0x92, 0xea, 0xea, 0x34, 0x11, 0xf2, 0xb7, 0x5e, 0x9b, 0x95, 0x18, 0xf5, 0x83, 0xde, + 0x77, 0x03, 0x0a, 0xe7, 0x97, 0xff, 0x63, 0x9c, 0x04, 0x30, 0xa1, 0x05, 0x64, 0xa0, 0x6c, 0x07, + 0x6d, 0x1d, 0x8e, 0x26, 0xef, 0x19, 0x80, 0x1d, 0xcd, 0x51, 0x6f, 0x68, 0x86, 0x8b, 0x5b, 0x5c, + 0xe8, 0x81, 0x12, 0x54, 0x86, 0x2c, 0x79, 0xea, 0x3a, 0xb8, 0xc5, 0xc3, 0x68, 0xef, 0x39, 0xd0, + 0xcf, 0xcc, 0xf7, 0xd6, 0xcf, 0xb0, 0x94, 0xb3, 0x3d, 0x52, 0x0e, 0x04, 0x17, 0xb9, 0x60, 0x70, + 0xc1, 0x0e, 0x0c, 0xf3, 0x73, 0x8b, 0xc0, 0xda, 0x26, 0x9e, 0xd1, 0x3d, 0x30, 0xde, 0xc1, 0x1d, + 0xcb, 0x34, 0xdb, 0x2a, 0x33, 0x37, 0xec, 0x06, 0xf8, 0x02, 0x2f, 0xac, 0x53, 0xab, 0xf3, 0x63, + 0x71, 0x7f, 0xfe, 0xf9, 0x41, 0xe4, 0xf7, 0x9d, 0x80, 0xe5, 0x9f, 0xa0, 0x99, 0xa5, 0xb0, 0x8b, + 0x80, 0x1a, 0xc1, 0xd3, 0x24, 0x5d, 0x6a, 0x16, 0x84, 0x42, 0x8f, 0x6a, 0x3f, 0xfc, 0x53, 0x27, + 0xac, 0xd8, 0x41, 0xcf, 0xc3, 0xd1, 0x1e, 0xdb, 0xe6, 0x41, 0xc7, 0x47, 0x35, 0x71, 0x77, 0x84, + 0x4d, 0x9c, 0x80, 0xf6, 0x85, 0x95, 0xf8, 0x1e, 0x67, 0xdd, 0x12, 0x14, 0xc3, 0x1e, 0xcf, 0xc0, + 0xe1, 0xa7, 0x7f, 0x71, 0xc4, 0xd5, 0x74, 0x43, 0x0d, 0xa5, 0x83, 0x0a, 0xac, 0x90, 0x27, 0x99, + 0xd6, 0xe1, 0x8e, 0x81, 0x9e, 0x0f, 0x7a, 0x1c, 0x72, 0xbe, 0xd3, 0xc4, 0xa4, 0x7a, 0x40, 0xba, + 0xc0, 0xa7, 0x95, 0x7f, 0x33, 0xe6, 0x43, 0x86, 0x13, 0x10, 0x75, 0x48, 0xb3, 0xe3, 0x70, 0xfc, + 0x90, 0xcd, 0x43, 0xa3, 0xf9, 0x4c, 0xf3, 0xec, 0xac, 0x9c, 0xc2, 0x99, 0xe5, 0xf7, 0x40, 0x9a, + 0x95, 0xa0, 0x3c, 0x64, 0xfc, 0x8b, 0x70, 0x01, 0xd2, 0x95, 0x5a, 0xad, 0xbe, 0xbe, 0x21, 0xc5, + 0x50, 0x0e, 0x52, 0x95, 0xea, 0x9a, 0xb2, 0x21, 0xc5, 0x49, 0xb1, 0x52, 0xbf, 0x52, 0xaf, 0x6d, + 0x48, 0x09, 0x34, 0x01, 0xe3, 0xec, 0xb7, 0x7a, 0x71, 0x4d, 0x59, 0xa9, 0x6c, 0x48, 0xc9, 0x40, + 0x51, 0xa3, 0xbe, 0xba, 0x58, 0x57, 0xa4, 0x94, 0xfc, 0x08, 0x1c, 0x1b, 0xea, 0x65, 0xf9, 0xd9, + 0x85, 0x58, 0x20, 0xbb, 0x20, 0x7f, 0x34, 0x0e, 0xe5, 0xe1, 0xae, 0x13, 0xba, 0xd2, 0xd3, 0xf1, + 0xb3, 0x87, 0xf0, 0xbb, 0x7a, 0x7a, 0x8f, 0xee, 0x83, 0xa2, 0x8d, 0xb7, 0xb1, 0xdb, 0xdc, 0x65, + 0xae, 0x1c, 0x5b, 0x32, 0xc7, 0x95, 0x71, 0x5e, 0x4a, 0x99, 0x1c, 0x46, 0xf6, 0x22, 0x6e, 0xba, + 0x2a, 0xb3, 0x45, 0x0e, 0xff, 0xd3, 0x87, 0xe3, 0xac, 0xb4, 0xc1, 0x0a, 0xe5, 0xf7, 0x1e, 0x4a, + 0x96, 0x39, 0x48, 0x29, 0xf5, 0x0d, 0xe5, 0x79, 0x29, 0x81, 0x10, 0x14, 0xe9, 0x4f, 0xb5, 0xb1, + 0x5a, 0x59, 0x6f, 0x5c, 0x5e, 0x23, 0xb2, 0x9c, 0x84, 0x92, 0x90, 0xa5, 0x28, 0x4c, 0xc9, 0x0f, + 0xc0, 0xd1, 0x21, 0x7e, 0xdf, 0x80, 0xf3, 0x89, 0x9f, 0x8c, 0x05, 0xa9, 0xc3, 0x31, 0xff, 0x1a, + 0xa4, 0x1d, 0x57, 0x73, 0xbb, 0x0e, 0x17, 0xe2, 0xe3, 0xa3, 0x3a, 0x82, 0xf3, 0xe2, 0x47, 0x83, + 0xb2, 0x2b, 0x1c, 0x46, 0x3e, 0x07, 0xc5, 0x70, 0xcd, 0x70, 0x19, 0xf8, 0x4a, 0x14, 0x97, 0x9f, + 0x07, 0x08, 0xe4, 0x23, 0xbd, 0x93, 0x5e, 0xb1, 0xe0, 0x49, 0xaf, 0x73, 0x90, 0xba, 0x6e, 0x32, + 0x9b, 0x31, 0x78, 0xe2, 0x5c, 0x35, 0x5d, 0x1c, 0x48, 0x3e, 0x30, 0x6a, 0x59, 0x07, 0xd4, 0x9f, + 0x13, 0x1a, 0xf2, 0x8a, 0xa7, 0xc2, 0xaf, 0xb8, 0x7b, 0x68, 0x76, 0x69, 0xf0, 0xab, 0x5e, 0x82, + 0x14, 0xb5, 0x36, 0x03, 0x3f, 0xfd, 0x79, 0x37, 0x80, 0xe6, 0xba, 0xb6, 0xbe, 0xd5, 0xf5, 0x5f, + 0x30, 0x3b, 0xd8, 0x5a, 0x55, 0x04, 0x5d, 0xf5, 0x4e, 0x6e, 0xb6, 0xa6, 0x7c, 0xd6, 0x80, 0xe9, + 0x0a, 0x00, 0xca, 0xab, 0x50, 0x0c, 0xf3, 0x0e, 0xfe, 0x94, 0xc9, 0xbf, 0x4a, 0x20, 0x27, 0xdc, + 0x27, 0xcf, 0xf9, 0xe2, 0xd7, 0x7b, 0xd0, 0x07, 0xf9, 0x66, 0x0c, 0xb2, 0x1b, 0x7b, 0x5c, 0x8f, + 0x0f, 0x38, 0x6c, 0xe9, 0x7f, 0xcf, 0xe5, 0x25, 0x0b, 0x59, 0x3e, 0x36, 0xe1, 0x65, 0x79, 0x7f, + 0xc0, 0x9b, 0xa9, 0xc9, 0x51, 0xa3, 0x5d, 0x91, 0xed, 0xe6, 0xd6, 0xe9, 0xc2, 0x68, 0xdf, 0x4e, + 0x4c, 0x41, 0x2a, 0xf8, 0xdd, 0x03, 0x7b, 0x90, 0x5b, 0x81, 0x63, 0x09, 0x6c, 0xd9, 0x08, 0x7e, + 0x64, 0x11, 0x3b, 0xf4, 0x47, 0x16, 0xde, 0x5b, 0xe2, 0xc1, 0xb7, 0x5c, 0x87, 0xac, 0x50, 0x0a, + 0xf4, 0xce, 0xe0, 0x01, 0x14, 0xb1, 0x47, 0x33, 0x74, 0xf1, 0xe4, 0xf0, 0x81, 0xf3, 0x27, 0xa7, + 0x61, 0x82, 0x1f, 0xc5, 0xf3, 0xe3, 0x0a, 0x7e, 0x55, 0x7f, 0x89, 0x55, 0x2c, 0x8b, 0xa0, 0x42, + 0xfe, 0xf9, 0x18, 0x48, 0xbd, 0x5a, 0xf9, 0x76, 0x36, 0x80, 0x18, 0x45, 0xa2, 0xfd, 0x81, 0x3b, + 0xb8, 0xd9, 0xc8, 0x8f, 0x93, 0x52, 0xff, 0x16, 0xee, 0xf7, 0xc7, 0x21, 0x1f, 0xc8, 0xe9, 0xa1, + 0xc7, 0x42, 0x47, 0x43, 0xe7, 0x0e, 0xca, 0xff, 0x05, 0xce, 0x86, 0x86, 0x3a, 0x16, 0x3f, 0x7c, + 0xc7, 0xde, 0xfc, 0xc3, 0xfb, 0x83, 0xbf, 0x02, 0x4a, 0x0d, 0xf9, 0x0a, 0xe8, 0x47, 0x62, 0x90, + 0xf5, 0x96, 0xee, 0xc3, 0x66, 0xf3, 0x8f, 0x40, 0x9a, 0xaf, 0x4e, 0x2c, 0x9d, 0xcf, 0x9f, 0x06, + 0xe6, 0x42, 0xcb, 0x90, 0x15, 0x7f, 0xe3, 0x86, 0x07, 0xa2, 0xde, 0xf3, 0xe9, 0x27, 0x21, 0x1f, + 0xd8, 0x58, 0x21, 0x76, 0x62, 0xb5, 0xfe, 0xac, 0x34, 0x56, 0xce, 0xdc, 0xbc, 0x35, 0x97, 0x58, + 0xc5, 0x37, 0xc8, 0x0c, 0x53, 0xea, 0xb5, 0xcb, 0xf5, 0xda, 0x33, 0x52, 0xac, 0x9c, 0xbf, 0x79, + 0x6b, 0x2e, 0xa3, 0x60, 0x9a, 0xbe, 0x3a, 0xfd, 0x0c, 0x94, 0x7a, 0x06, 0x26, 0x6c, 0xdf, 0x11, + 0x14, 0x17, 0x37, 0xd7, 0x97, 0x97, 0x6a, 0x95, 0x8d, 0xba, 0xca, 0x8e, 0xd9, 0xa1, 0xa3, 0x30, + 0xb9, 0xbc, 0x74, 0xe9, 0xf2, 0x86, 0x5a, 0x5b, 0x5e, 0xaa, 0xaf, 0x6e, 0xa8, 0x95, 0x8d, 0x8d, + 0x4a, 0xed, 0x19, 0x29, 0x7e, 0xf6, 0xbb, 0x00, 0xa5, 0x4a, 0xb5, 0xb6, 0x44, 0xd6, 0x67, 0x9d, + 0x5f, 0xa3, 0x5e, 0x83, 0x24, 0x4d, 0x05, 0x1c, 0x78, 0x54, 0xa4, 0x7c, 0x70, 0x6e, 0x13, 0x5d, + 0x84, 0x14, 0xcd, 0x12, 0xa0, 0x83, 0xcf, 0x8e, 0x94, 0x23, 0x92, 0x9d, 0xa4, 0x31, 0x74, 0x3a, + 0x1d, 0x78, 0x98, 0xa4, 0x7c, 0x70, 0xee, 0x13, 0x29, 0x90, 0xf3, 0xa3, 0x8c, 0xe8, 0xc3, 0x15, + 0xe5, 0x11, 0xac, 0x23, 0x5a, 0x86, 0x8c, 0x08, 0x0c, 0xa3, 0x8e, 0x7b, 0x94, 0x23, 0x93, 0x93, + 0x44, 0x5c, 0x2c, 0x80, 0x3f, 0xf8, 0xec, 0x4a, 0x39, 0x22, 0xd3, 0x8a, 0x96, 0xbc, 0xc3, 0xf9, + 0x11, 0x47, 0x38, 0xca, 0x51, 0xc9, 0x46, 0x22, 0x34, 0x3f, 0x35, 0x12, 0x7d, 0x22, 0xa7, 0x3c, + 0x42, 0x12, 0x19, 0x6d, 0x02, 0x04, 0xc2, 0xf5, 0x11, 0x8e, 0xda, 0x94, 0x47, 0x49, 0x0e, 0xa3, + 0x35, 0xc8, 0x7a, 0xd1, 0x53, 0xe4, 0xc1, 0x97, 0x72, 0x74, 0x96, 0x16, 0xbd, 0x07, 0xc6, 0xc3, + 0x51, 0xc3, 0x68, 0xc7, 0x59, 0xca, 0x23, 0xa6, 0x5f, 0x09, 0x7e, 0x38, 0x84, 0x18, 0xed, 0x78, + 0x4b, 0x79, 0xc4, 0x6c, 0x2c, 0x7a, 0x11, 0x26, 0xfa, 0x5d, 0xfc, 0xd1, 0x4f, 0xbb, 0x94, 0x0f, + 0x91, 0x9f, 0x45, 0x1d, 0x40, 0x03, 0x42, 0x83, 0x43, 0x1c, 0x7e, 0x29, 0x1f, 0x26, 0x5d, 0x8b, + 0x5a, 0x50, 0xea, 0xf5, 0xb7, 0x47, 0x3d, 0x0c, 0x53, 0x1e, 0x39, 0x75, 0xcb, 0xde, 0x12, 0xf6, + 0xd3, 0x47, 0x3d, 0x1c, 0x53, 0x1e, 0x39, 0x93, 0x5b, 0xad, 0x0c, 0x3d, 0xdf, 0x78, 0xe2, 0xc0, + 0xf3, 0x8d, 0xfe, 0x89, 0x45, 0xef, 0x4c, 0xe3, 0x3f, 0x7d, 0x18, 0xee, 0xe5, 0x97, 0x0c, 0x38, + 0xae, 0x76, 0x4d, 0x37, 0x76, 0xbc, 0x5b, 0x23, 0xf8, 0x33, 0x3f, 0xdc, 0x78, 0x84, 0x5f, 0x64, + 0x20, 0x4a, 0x23, 0xee, 0x8e, 0x18, 0x7a, 0x8f, 0x56, 0xd4, 0x49, 0xe4, 0xe8, 0xa3, 0x8b, 0x07, + 0xdc, 0x4b, 0x11, 0x71, 0xfb, 0xc5, 0xa0, 0xe3, 0xd2, 0x07, 0x1f, 0xc2, 0x3c, 0xe8, 0xbc, 0xa7, + 0xfc, 0x91, 0x18, 0x14, 0x2f, 0xeb, 0x8e, 0x6b, 0xda, 0x7a, 0x53, 0x6b, 0xd3, 0x15, 0xe3, 0xc2, + 0xa8, 0x1f, 0x7f, 0x54, 0x73, 0xc4, 0x19, 0xe1, 0x97, 0x5d, 0xf0, 0x83, 0x21, 0x8b, 0x90, 0xbe, + 0xae, 0xb5, 0xd9, 0xa7, 0x17, 0xc1, 0xeb, 0x6c, 0x7a, 0x65, 0x1e, 0xf0, 0x92, 0x82, 0x28, 0x8c, + 0x57, 0x7e, 0x95, 0x9e, 0xe4, 0xee, 0x74, 0x74, 0x87, 0xfd, 0x15, 0x6a, 0x17, 0x3b, 0x68, 0x1d, + 0x92, 0xb6, 0xe6, 0xf2, 0xa0, 0xa6, 0xfa, 0x0e, 0x7e, 0x45, 0xc5, 0xfd, 0xd1, 0x17, 0x4d, 0xcc, + 0xf7, 0xdf, 0x62, 0x41, 0x91, 0xd0, 0xb3, 0x90, 0xed, 0x68, 0x7b, 0x2a, 0x45, 0x8d, 0xbf, 0x09, + 0xa8, 0x99, 0x8e, 0xb6, 0x47, 0xda, 0x4a, 0x66, 0x10, 0x01, 0x6e, 0xee, 0x6a, 0xc6, 0x0e, 0x66, + 0xf8, 0x89, 0x37, 0x01, 0x7f, 0xbc, 0xa3, 0xed, 0xd5, 0x28, 0x26, 0x79, 0x0b, 0xbf, 0xfd, 0xe3, + 0xb7, 0x62, 0x3c, 0x76, 0xa5, 0xa2, 0x42, 0x1a, 0x48, 0x4d, 0xef, 0x89, 0xbe, 0x5a, 0xe4, 0xf1, + 0x4f, 0x0c, 0x1b, 0x89, 0x1e, 0x41, 0xb3, 0x33, 0xd8, 0x5f, 0x79, 0x4d, 0x9c, 0xc1, 0x2e, 0x35, + 0x7b, 0x06, 0xe2, 0x0a, 0xe4, 0x59, 0xfa, 0x4c, 0xa5, 0x3e, 0x6b, 0x3c, 0xd2, 0x67, 0x1d, 0x17, + 0x3e, 0x2b, 0x03, 0x04, 0xc6, 0x4d, 0xea, 0x79, 0x1f, 0x5e, 0x8d, 0x41, 0x7e, 0x31, 0x70, 0x5d, + 0xd5, 0x34, 0x64, 0x3a, 0xa6, 0xa1, 0x5f, 0xc3, 0xb6, 0xb7, 0x11, 0xc3, 0x1e, 0x89, 0x5f, 0xc9, + 0xfe, 0xec, 0x90, 0xbb, 0x2f, 0xae, 0x64, 0x10, 0xcf, 0x84, 0xeb, 0x06, 0xde, 0x72, 0x74, 0x21, + 0x6d, 0x45, 0x3c, 0xa2, 0x53, 0x20, 0x39, 0xb8, 0xd9, 0xb5, 0x75, 0x77, 0x5f, 0x6d, 0x9a, 0x86, + 0xab, 0x35, 0x5d, 0x9e, 0x2e, 0x2d, 0x89, 0xf2, 0x1a, 0x2b, 0x26, 0x20, 0x2d, 0xec, 0x6a, 0x7a, + 0x9b, 0x9d, 0xf3, 0xca, 0x29, 0xe2, 0x91, 0x37, 0xf5, 0x57, 0x33, 0xc1, 0x58, 0xb0, 0x06, 0x92, + 0x69, 0x61, 0x3b, 0xf4, 0xed, 0x1b, 0xd3, 0xcf, 0xe9, 0xdf, 0xfd, 0xfc, 0x43, 0x53, 0x5c, 0xe0, + 0x7c, 0xc7, 0x9d, 0xdd, 0xce, 0xac, 0x94, 0x04, 0x87, 0xf8, 0x28, 0xee, 0xf9, 0xd0, 0xd6, 0x4b, + 0x77, 0xcb, 0xff, 0xf6, 0x7e, 0xaa, 0x4f, 0xa8, 0x15, 0x63, 0xbf, 0x3a, 0xfd, 0x3b, 0x3e, 0xb4, + 0x1f, 0x2b, 0x3e, 0x83, 0xf7, 0x83, 0xfb, 0x30, 0x14, 0x86, 0xb8, 0xec, 0x2f, 0x6a, 0x7a, 0x5b, + 0xfc, 0x25, 0x35, 0x85, 0x3f, 0xa1, 0x05, 0x2f, 0xef, 0xc2, 0xfe, 0x42, 0xba, 0x3c, 0x4c, 0x37, + 0xaa, 0xa6, 0xd1, 0x0a, 0xa7, 0x58, 0xd0, 0x06, 0xa4, 0x5d, 0xf3, 0x1a, 0x36, 0xb8, 0x80, 0x0e, + 0xa5, 0xd3, 0xfd, 0x17, 0xd1, 0x70, 0x2c, 0xb4, 0x03, 0x52, 0x0b, 0xb7, 0xf1, 0x0e, 0xfb, 0x72, + 0x6b, 0x57, 0xb3, 0x31, 0xfb, 0x9a, 0xf3, 0x7b, 0x9d, 0x33, 0x25, 0x0f, 0xb5, 0x41, 0x41, 0xd1, + 0x7a, 0xf8, 0xb2, 0xb4, 0x0c, 0xdf, 0x86, 0x1f, 0xd2, 0xff, 0x80, 0x56, 0x06, 0xed, 0x54, 0xe8, + 0x72, 0xb5, 0x53, 0x20, 0x75, 0x8d, 0x2d, 0xd3, 0xa0, 0x7f, 0xf4, 0x88, 0x47, 0x54, 0x59, 0xb6, + 0x55, 0xe7, 0x95, 0xf3, 0xad, 0xba, 0x75, 0x28, 0xfa, 0xa4, 0x74, 0xf6, 0xe4, 0x0e, 0x3b, 0x7b, + 0xc6, 0x3d, 0x00, 0x42, 0x82, 0x56, 0x00, 0xfc, 0xf9, 0xe9, 0x6d, 0xe7, 0x47, 0xce, 0xf4, 0x60, + 0x67, 0x02, 0x00, 0xa8, 0x0d, 0x93, 0x1d, 0xdd, 0x50, 0x1d, 0xdc, 0xde, 0x56, 0xb9, 0xe4, 0x08, + 0x6e, 0xfe, 0x4d, 0x18, 0xe9, 0x89, 0x8e, 0x6e, 0x34, 0x70, 0x7b, 0x7b, 0xd1, 0x83, 0x45, 0xef, + 0x80, 0xe3, 0xbe, 0x38, 0x4c, 0x43, 0xdd, 0x35, 0xdb, 0x2d, 0xd5, 0xc6, 0xdb, 0x6a, 0x93, 0xde, + 0x83, 0x54, 0xa0, 0x42, 0x3c, 0xea, 0x91, 0xac, 0x19, 0x97, 0xcd, 0x76, 0x4b, 0xc1, 0xdb, 0x35, + 0x52, 0x8d, 0xee, 0x01, 0x5f, 0x16, 0xaa, 0xde, 0x72, 0xa6, 0xc7, 0xe7, 0x12, 0x27, 0x93, 0x4a, + 0xc1, 0x2b, 0x5c, 0x6a, 0x39, 0x0b, 0xd9, 0x0f, 0xbc, 0x32, 0x3b, 0xf6, 0xcd, 0x57, 0x66, 0xc7, + 0xe4, 0x8b, 0xf4, 0xd6, 0x0e, 0x3e, 0xe9, 0xb0, 0x83, 0xce, 0x43, 0x4e, 0x13, 0x0f, 0xec, 0xbb, + 0x90, 0x03, 0x26, 0xad, 0x4f, 0x2a, 0xbf, 0x12, 0x83, 0xf4, 0xe2, 0xd5, 0x75, 0x4d, 0xb7, 0x51, + 0x1d, 0x26, 0x7c, 0xa5, 0x1d, 0x75, 0xfe, 0xfb, 0x7a, 0x2e, 0x0c, 0x40, 0x7d, 0xd8, 0x27, 0xb4, + 0x07, 0xc2, 0xf4, 0x7e, 0x5c, 0x1b, 0xe8, 0xea, 0x15, 0xc8, 0xb0, 0x16, 0x3a, 0xe8, 0x69, 0x48, + 0x59, 0xe4, 0x07, 0x4f, 0xf7, 0xcf, 0x0c, 0x55, 0x74, 0x4a, 0x1f, 0x54, 0x0b, 0xc6, 0x27, 0xff, + 0x45, 0x0c, 0x60, 0xf1, 0xea, 0xd5, 0x0d, 0x5b, 0xb7, 0xda, 0xd8, 0x7d, 0xb3, 0xba, 0xbc, 0x0c, + 0x77, 0x04, 0x3e, 0xd4, 0xb4, 0x9b, 0x23, 0x77, 0x7b, 0xd2, 0xff, 0x54, 0xd3, 0x6e, 0x0e, 0x44, + 0x6b, 0x39, 0xae, 0x87, 0x96, 0x18, 0x19, 0x6d, 0xd1, 0x71, 0xfb, 0xe5, 0xf8, 0x1c, 0xe4, 0xfd, + 0xae, 0x3b, 0x68, 0x09, 0xb2, 0x2e, 0xff, 0xcd, 0xc5, 0x29, 0x0f, 0x17, 0xa7, 0x60, 0x0b, 0x8a, + 0xd4, 0x63, 0x97, 0xff, 0x17, 0x91, 0xaa, 0x3f, 0x11, 0xfe, 0x4a, 0x29, 0x12, 0xb1, 0xf0, 0xdc, + 0x02, 0xbf, 0x19, 0x5e, 0x0b, 0xc7, 0x0a, 0x88, 0xf5, 0x47, 0xe3, 0x30, 0xb9, 0x29, 0x26, 0xe9, + 0x5f, 0x59, 0x29, 0x6c, 0x42, 0x06, 0x1b, 0xae, 0xad, 0x63, 0xb1, 0xb7, 0xf7, 0xf0, 0xb0, 0xc1, + 0x1e, 0xd0, 0x17, 0xfa, 0xa7, 0x80, 0x83, 0x43, 0x2f, 0xb0, 0x02, 0x62, 0xf8, 0x8d, 0x04, 0x4c, + 0x0f, 0x63, 0x45, 0x27, 0xa0, 0xd4, 0xb4, 0x31, 0x2d, 0x50, 0x43, 0xb9, 0xef, 0xa2, 0x28, 0xe6, + 0x4b, 0x8a, 0x02, 0xc4, 0x41, 0x23, 0x5a, 0x45, 0x48, 0x6f, 0xcf, 0x23, 0x2b, 0xfa, 0x08, 0x74, + 0x51, 0xc1, 0x50, 0x12, 0x87, 0xd9, 0xb7, 0xb4, 0xb6, 0x66, 0x34, 0x6f, 0xc7, 0x7f, 0xed, 0x5f, + 0x01, 0xc4, 0x09, 0xf9, 0x2a, 0xc3, 0x44, 0x57, 0x21, 0x23, 0xe0, 0x93, 0x6f, 0x02, 0xbc, 0x00, + 0x43, 0x77, 0x43, 0x21, 0xb8, 0x30, 0x50, 0x3f, 0x25, 0xa9, 0xe4, 0x03, 0xeb, 0x42, 0xd4, 0xca, + 0x93, 0x3e, 0x70, 0xe5, 0xe1, 0xae, 0xe0, 0xaf, 0x27, 0x60, 0x42, 0xc1, 0xad, 0xef, 0xc3, 0x81, + 0xfb, 0x41, 0x00, 0x36, 0xa9, 0x89, 0xb1, 0xbd, 0x8d, 0xb1, 0xeb, 0x37, 0x12, 0x39, 0x86, 0xb7, + 0xe8, 0xb8, 0x6f, 0xd7, 0xe8, 0xfd, 0xab, 0x38, 0x14, 0x82, 0xa3, 0xf7, 0x7d, 0xb0, 0xb2, 0xa1, + 0x55, 0xdf, 0xa4, 0xb1, 0xe3, 0xe6, 0xa7, 0x86, 0x99, 0xb4, 0x3e, 0xbd, 0x8e, 0xb0, 0x65, 0x1f, + 0x49, 0x40, 0x9a, 0x9f, 0xfd, 0x5a, 0xeb, 0xf3, 0x71, 0x63, 0x87, 0xfc, 0xea, 0xb7, 0xc7, 0xc5, + 0xbd, 0x0f, 0x8a, 0x24, 0x9a, 0x0e, 0x1d, 0x28, 0x8b, 0x9d, 0x1c, 0xa7, 0xe1, 0xb0, 0x7f, 0xfc, + 0x19, 0xcd, 0x42, 0x9e, 0x90, 0xf9, 0x36, 0x9b, 0xd0, 0x40, 0x47, 0xdb, 0xab, 0xb3, 0x12, 0xf4, + 0x10, 0xa0, 0x5d, 0x2f, 0xd3, 0xa1, 0xfa, 0x82, 0x20, 0x74, 0x13, 0x7e, 0x8d, 0x20, 0xbf, 0x0b, + 0x80, 0xb4, 0x42, 0x65, 0x57, 0x75, 0xf2, 0x7b, 0x57, 0x49, 0xc9, 0x22, 0xbd, 0xae, 0xf3, 0x87, + 0x98, 0xa7, 0xdc, 0x13, 0x6c, 0xf3, 0x98, 0x65, 0xf9, 0x70, 0x93, 0xe1, 0x3b, 0xaf, 0xcd, 0x96, + 0xf7, 0xb5, 0x4e, 0x7b, 0x41, 0x1e, 0x00, 0x29, 0x53, 0xcf, 0x39, 0x1c, 0xa4, 0x2f, 0xdc, 0x4b, + 0x74, 0xf8, 0xe6, 0x37, 0x3e, 0x7b, 0xfa, 0x78, 0x00, 0x6f, 0xcf, 0x4b, 0x7f, 0xb1, 0xa1, 0x90, + 0x7f, 0x21, 0x06, 0xc8, 0x5f, 0x58, 0xbc, 0xc3, 0xde, 0x2b, 0xf4, 0x08, 0xb0, 0xf0, 0xed, 0x63, + 0x07, 0xc7, 0x0c, 0x3e, 0x7f, 0x28, 0x66, 0x08, 0x4c, 0x9c, 0x77, 0xfa, 0x66, 0x5c, 0x7c, 0xdf, + 0x3d, 0xe0, 0x82, 0xd6, 0xf9, 0x9a, 0xa9, 0x87, 0x20, 0x04, 0x13, 0x9d, 0x8f, 0x63, 0xf2, 0x6b, + 0x31, 0x38, 0xd6, 0xa7, 0x75, 0x5e, 0x93, 0x9b, 0x80, 0xec, 0x40, 0x25, 0xff, 0xd3, 0xfb, 0x31, + 0xfe, 0x25, 0xe3, 0xed, 0x28, 0xf1, 0x84, 0xdd, 0x67, 0xba, 0xdf, 0xa2, 0xf5, 0x88, 0x1b, 0x9c, + 0xdf, 0x8e, 0xc1, 0x54, 0xb0, 0x45, 0x5e, 0xdf, 0x1a, 0x50, 0x08, 0xb6, 0x85, 0xf7, 0xea, 0xde, + 0x51, 0x7a, 0x15, 0xec, 0x50, 0x08, 0x84, 0xf4, 0x45, 0x68, 0x38, 0x4b, 0xc4, 0x3d, 0x32, 0xb2, + 0x94, 0xbc, 0x4d, 0x86, 0x41, 0x53, 0x9e, 0x0d, 0xd6, 0x07, 0xe3, 0x90, 0x5c, 0x37, 0xcd, 0x36, + 0xfa, 0x91, 0x18, 0x4c, 0x18, 0xa6, 0xab, 0x92, 0x79, 0x81, 0x5b, 0x2a, 0x4f, 0x0c, 0x30, 0xab, + 0x79, 0xf5, 0x70, 0xd2, 0xfb, 0xd6, 0x6b, 0xb3, 0xfd, 0x50, 0x83, 0xee, 0xd5, 0x2d, 0x19, 0xa6, + 0x5b, 0xa5, 0x44, 0x1b, 0x2c, 0x77, 0x70, 0x03, 0xc6, 0xc3, 0xef, 0x67, 0xa6, 0x56, 0x39, 0xf4, + 0xfb, 0xc7, 0x23, 0xdf, 0x5d, 0xd8, 0x0a, 0xbc, 0x98, 0xdd, 0x6e, 0xf9, 0x27, 0x64, 0x70, 0x9f, + 0x07, 0xe9, 0x6a, 0xef, 0xb1, 0xb3, 0x3a, 0x64, 0x0e, 0x7b, 0x82, 0x2d, 0x28, 0x71, 0xce, 0x7b, + 0xfa, 0x0b, 0x31, 0x00, 0x3f, 0x0d, 0x83, 0x1e, 0x84, 0xa3, 0xd5, 0xb5, 0xd5, 0x45, 0xb5, 0xb1, + 0x51, 0xd9, 0xd8, 0x6c, 0x84, 0xef, 0x60, 0x17, 0x17, 0x90, 0x38, 0x16, 0x6e, 0xea, 0xdb, 0x3a, + 0x6e, 0xa1, 0xfb, 0x61, 0x2a, 0x4c, 0x4d, 0x9e, 0xea, 0x8b, 0x52, 0xac, 0x5c, 0xb8, 0x79, 0x6b, + 0x2e, 0xcb, 0xdc, 0x4f, 0xdc, 0x42, 0x27, 0xe1, 0x8e, 0x7e, 0xba, 0xa5, 0xd5, 0x4b, 0x52, 0xbc, + 0x3c, 0x7e, 0xf3, 0xd6, 0x5c, 0xce, 0xf3, 0x53, 0x91, 0x0c, 0x28, 0x48, 0xc9, 0xf1, 0x12, 0x65, + 0xb8, 0x79, 0x6b, 0x2e, 0xcd, 0x86, 0xa5, 0x9c, 0xfc, 0xc0, 0xa7, 0x66, 0xc6, 0x4e, 0xbf, 0x1b, + 0x60, 0xc9, 0xd8, 0xb6, 0x35, 0xfa, 0x87, 0x88, 0x51, 0x19, 0x8e, 0x2c, 0xad, 0x5e, 0x54, 0x2a, + 0xb5, 0x8d, 0xa5, 0xb5, 0xd5, 0x9e, 0xab, 0xe3, 0xc3, 0x75, 0x8b, 0x6b, 0x9b, 0xd5, 0xe5, 0xba, + 0xda, 0x58, 0xba, 0xb4, 0xca, 0xb6, 0x6f, 0x43, 0x75, 0xcf, 0xae, 0x6e, 0x2c, 0xad, 0xd4, 0xa5, + 0x78, 0xf5, 0xe2, 0xd0, 0x0d, 0x84, 0x07, 0x0f, 0x1c, 0x70, 0xdf, 0x4a, 0x86, 0x76, 0x11, 0xfe, + 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0x02, 0x41, 0x2d, 0x20, 0x97, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 9f185d7f9259..10dccd74498f 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -6,6 +6,7 @@ import ( "encoding/json" "fmt" "io" + "math" "time" cosmos_proto "github.com/cosmos/cosmos-proto" @@ -210,6 +211,8 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e case timestampFullName: // replicate https://github.com/tendermint/go-amino/blob/8e779b71f40d175cd1302d3cd41a75b005225a7a/json-encode.go#L45-L51 return marshalTimestamp(msg, writer) + case durationFullName: + return marshalDuration(msg, writer) case anyFullName: return aj.marshalAny(msg, writer) } @@ -238,13 +241,14 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e zv, found := aj.getZeroValue(f) if found { v = zv - //} else if f.Cardinality() == protoreflect.Repeated { + } else if f.Cardinality() == protoreflect.Repeated { // TODO // not sure yet - //fmt.Printf("WARN: not supported: dont_omit_empty=true on empty repeated field: %s\n", name) + fmt.Printf("WARN: not supported: dont_omit_empty=true on empty repeated field: %s\n", name) //return errors.Errorf("not supported: dont_omit_empty=true on empty repeated field: %s", name) } else if f.Kind() == protoreflect.MessageKind && !v.Message().IsValid() { - return errors.Errorf("not supported: dont_omit_empty=true on invalid (nil?) message field: %s", name) + //return errors.Errorf("not supported: dont_omit_empty=true on invalid (nil?) message field: %s", name) + fmt.Printf("WARN: not supported: dont_omit_empty=true on invalid (nil?) message field: %s\n", name) } } } @@ -464,7 +468,8 @@ func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { const ( timestampFullName protoreflect.FullName = "google.protobuf.Timestamp" - anyFullName = "google.protobuf.Any" + durationFullName protoreflect.FullName = "google.protobuf.Duration" + anyFullName protoreflect.FullName = "google.protobuf.Any" ) const ( @@ -505,3 +510,32 @@ func marshalTimestamp(message protoreflect.Message, writer io.Writer) error { _, err := fmt.Fprintf(writer, `"%s"`, str) return err } + +// MaxDurationSeconds the maximum number of seconds (when expressed as nanoseconds) which can fit in an int64. +// gogoproto encodes google.protobuf.Duration as a time.Duration, which is 64-bit signed integer. +const MaxDurationSeconds = int64(math.MaxInt64/int(1e9)) - 1 + +func marshalDuration(message protoreflect.Message, writer io.Writer) error { + fields := message.Descriptor().Fields() + secondsField := fields.ByName(secondsName) + if secondsField == nil { + return fmt.Errorf("expected seconds field") + } + + // todo + // check signs are consistent + seconds := message.Get(secondsField).Int() + if seconds > MaxDurationSeconds { + return fmt.Errorf("%d seconds would overflow an int64 when represented as nanoseconds", seconds) + } + + nanosField := fields.ByName(nanosName) + if nanosField == nil { + return fmt.Errorf("expected nanos field") + } + + nanos := message.Get(nanosField).Int() + totalNanos := nanos + (seconds * 1e9) + _, err := writer.Write([]byte(fmt.Sprintf(`"%d"`, totalNanos))) + return err +} diff --git a/x/tx/aminojson/json_marshal_test.go b/x/tx/aminojson/json_marshal_test.go index 34ea5ab3dd68..1eec0e17272a 100644 --- a/x/tx/aminojson/json_marshal_test.go +++ b/x/tx/aminojson/json_marshal_test.go @@ -45,6 +45,7 @@ func TestAminoJSON_EdgeCases(t *testing.T) { "single map": {msg: &testpb.WithAMap{StrMap: map[string]string{"foo": "bar"}}, shouldErr: true}, "any type": {msg: &testpb.ABitOfEverything{Any: simpleAny}}, "zero duration": {msg: &testpb.ABitOfEverything{Duration: durationpb.New(time.Second * 0)}}, + "duration": {msg: &testpb.ABitOfEverything{Duration: &durationpb.Duration{Seconds: 10, Nanos: 10}}}, } for name, tc := range cases { t.Run(name, func(t *testing.T) { @@ -63,7 +64,7 @@ func TestAminoJSON_EdgeCases(t *testing.T) { legacyBz, err := cdc.MarshalJSON(tc.msg) assert.NilError(t, err) - assert.Equal(t, string(legacyBz), string(bz), "legacy: %s vs %s", legacyBz, bz) + require.Equal(t, string(legacyBz), string(bz)) goProtoJSON, err := protojson.Marshal(tc.msg) err = cdc.UnmarshalJSON(bz, msg2) diff --git a/x/tx/rapidproto/rapidproto.go b/x/tx/rapidproto/rapidproto.go index efd639857e4e..c4c88f9960d3 100644 --- a/x/tx/rapidproto/rapidproto.go +++ b/x/tx/rapidproto/rapidproto.go @@ -2,6 +2,7 @@ package rapidproto import ( "fmt" + "math" cosmos_proto "github.com/cosmos/cosmos-proto" "google.golang.org/protobuf/proto" @@ -197,8 +198,11 @@ func (opts GeneratorOptions) genScalarFieldValue(t *rapid.T, field protoreflect. } const ( - secondsName = "seconds" - nanosName = "nanos" + // MaxDurationSeconds the maximum number of seconds (when expressed as nanoseconds) which can fit in an int64. + // gogoproto encodes google.protobuf.Duration as a time.Duration, which is 64-bit signed integer. + MaxDurationSeconds = int64(math.MaxInt64/int(1e9)) - 1 + secondsName = "seconds" + nanosName = "nanos" ) func (opts GeneratorOptions) genTimestamp(t *rapid.T, msg protoreflect.Message) { @@ -208,7 +212,7 @@ func (opts GeneratorOptions) genTimestamp(t *rapid.T, msg protoreflect.Message) } func (opts GeneratorOptions) genDuration(t *rapid.T, msg protoreflect.Message) { - seconds := rapid.Int64Range(0, 315576000000).Draw(t, "seconds") + seconds := rapid.Int64Range(0, int64(MaxDurationSeconds)).Draw(t, "seconds") nanos := rapid.Int32Range(0, 999999999).Draw(t, "nanos") setSecondsNanosFields(t, msg, seconds, nanos) } From 5b69d9be5b26a9334aa39a732f83cd35152b06e8 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 9 Feb 2023 14:17:30 -0600 Subject: [PATCH 053/122] fix json_marshal_test.go --- x/tx/aminojson/any.go | 2 +- x/tx/aminojson/internal/buf.gen.yaml | 2 + x/tx/aminojson/internal/testpb/test.proto | 32 +- x/tx/aminojson/internal/testpb/test.pulsar.go | 1190 +++++++++++------ x/tx/aminojson/json_marshal.go | 6 - x/tx/aminojson/json_marshal_test.go | 70 +- 6 files changed, 849 insertions(+), 453 deletions(-) diff --git a/x/tx/aminojson/any.go b/x/tx/aminojson/any.go index 6570b150f335..6b40f35df048 100644 --- a/x/tx/aminojson/any.go +++ b/x/tx/aminojson/any.go @@ -47,7 +47,7 @@ func (aj AminoJSON) marshalAny(message protoreflect.Message, writer io.Writer) e aminoName, named := getMessageName(valueMsg) if !named { - return fmt.Errorf("expected amino named message") + return fmt.Errorf("any fields require an amino.name annotation") } _, err = writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, aminoName))) diff --git a/x/tx/aminojson/internal/buf.gen.yaml b/x/tx/aminojson/internal/buf.gen.yaml index e38ab45e3280..86deca27ec11 100644 --- a/x/tx/aminojson/internal/buf.gen.yaml +++ b/x/tx/aminojson/internal/buf.gen.yaml @@ -7,6 +7,8 @@ managed: - buf.build/googleapis/googleapis - buf.build/cosmos/gogo-proto - buf.build/cosmos/cosmos-proto + override: + buf.build/cosmos/cosmos-sdk: cosmossdk.io/api plugins: - name: go-pulsar out: . diff --git a/x/tx/aminojson/internal/testpb/test.proto b/x/tx/aminojson/internal/testpb/test.proto index 3916e11ca96b..479436f1c4da 100644 --- a/x/tx/aminojson/internal/testpb/test.proto +++ b/x/tx/aminojson/internal/testpb/test.proto @@ -2,6 +2,7 @@ syntax = "proto3"; package testpb; +import "amino/amino.proto"; import "google/protobuf/any.proto"; import "google/protobuf/timestamp.proto"; import "google/protobuf/duration.proto"; @@ -14,10 +15,16 @@ message WithAMap{ map str_map = 1; } +message WithAList{ + repeated string dont_omitempty_list = 1 [ (amino.dont_omitempty) = true ]; + repeated string list = 2; +} + message ABitOfEverything { + option (amino.name) = "ABitOfEverything"; + NestedMessage message = 1; AnEnum enum = 2; - //map str_map = 3; repeated int32 repeated = 6; @@ -35,12 +42,29 @@ message ABitOfEverything { sint64 si64 = 18; sfixed64 sf64 = 19; - google.protobuf.Any any = 22; - google.protobuf.Timestamp timestamp = 23; - google.protobuf.Duration duration = 24; + // The following types are not tested here because they are treated fundamentally differently in + // gogoproto. They are tested fully in /tests/integration/aminojson/aminojson_test.go + + // Any types are not tested here because they are treated fundamentally differently in gogoproto. + // In the go-admin/gogoproto paradigm a custom SDK type is used to wrap the Any type, which has no + // equivalent in code in pulsar generated types. + // + // google.protobuf.Any any = 22 + + // Also not tested due to gogoproto differences. In gogoproto, time.Time is used instead of + // google.protobuf.Timestamp. There is no equivalent in pulsar generated types. + // + // google.protobuf.Timestamp timestamp = 23; + + // Also not tested due to gogoproto differences. In gogoproto, time.Duration is used instead of + // google.protobuf.Duration. There is no equivalent in pulsar generated types. + // + // google.protobuf.Duration duration = 24; } message NestedMessage { + option (amino.name) = "NestedMessage"; + string foo = 1; int32 bar = 2; } diff --git a/x/tx/aminojson/internal/testpb/test.pulsar.go b/x/tx/aminojson/internal/testpb/test.pulsar.go index 5b6a7de382e6..ae8a54ee2571 100644 --- a/x/tx/aminojson/internal/testpb/test.pulsar.go +++ b/x/tx/aminojson/internal/testpb/test.pulsar.go @@ -2,18 +2,19 @@ package testpb import ( + _ "cosmossdk.io/api/amino" binary "encoding/binary" fmt "fmt" runtime "github.com/cosmos/cosmos-proto/runtime" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoiface "google.golang.org/protobuf/runtime/protoiface" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - anypb "google.golang.org/protobuf/types/known/anypb" - durationpb "google.golang.org/protobuf/types/known/durationpb" + _ "google.golang.org/protobuf/types/known/anypb" + _ "google.golang.org/protobuf/types/known/durationpb" _ "google.golang.org/protobuf/types/known/emptypb" _ "google.golang.org/protobuf/types/known/fieldmaskpb" _ "google.golang.org/protobuf/types/known/structpb" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" + _ "google.golang.org/protobuf/types/known/timestamppb" _ "google.golang.org/protobuf/types/known/wrapperspb" io "io" reflect "reflect" @@ -681,6 +682,610 @@ func (x *fastReflection_WithAMap) ProtoMethods() *protoiface.Methods { } } +var _ protoreflect.List = (*_WithAList_1_list)(nil) + +type _WithAList_1_list struct { + list *[]string +} + +func (x *_WithAList_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_WithAList_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_WithAList_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_WithAList_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_WithAList_1_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message WithAList at list field DontOmitemptyList as it is not of Message kind")) +} + +func (x *_WithAList_1_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_WithAList_1_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_WithAList_1_list) IsValid() bool { + return x.list != nil +} + +var _ protoreflect.List = (*_WithAList_2_list)(nil) + +type _WithAList_2_list struct { + list *[]string +} + +func (x *_WithAList_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_WithAList_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfString((*x.list)[i]) +} + +func (x *_WithAList_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + (*x.list)[i] = concreteValue +} + +func (x *_WithAList_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.String() + concreteValue := valueUnwrapped + *x.list = append(*x.list, concreteValue) +} + +func (x *_WithAList_2_list) AppendMutable() protoreflect.Value { + panic(fmt.Errorf("AppendMutable can not be called on message WithAList at list field List as it is not of Message kind")) +} + +func (x *_WithAList_2_list) Truncate(n int) { + *x.list = (*x.list)[:n] +} + +func (x *_WithAList_2_list) NewElement() protoreflect.Value { + v := "" + return protoreflect.ValueOfString(v) +} + +func (x *_WithAList_2_list) IsValid() bool { + return x.list != nil +} + +var ( + md_WithAList protoreflect.MessageDescriptor + fd_WithAList_dont_omitempty_list protoreflect.FieldDescriptor + fd_WithAList_list protoreflect.FieldDescriptor +) + +func init() { + file_testpb_test_proto_init() + md_WithAList = File_testpb_test_proto.Messages().ByName("WithAList") + fd_WithAList_dont_omitempty_list = md_WithAList.Fields().ByName("dont_omitempty_list") + fd_WithAList_list = md_WithAList.Fields().ByName("list") +} + +var _ protoreflect.Message = (*fastReflection_WithAList)(nil) + +type fastReflection_WithAList WithAList + +func (x *WithAList) ProtoReflect() protoreflect.Message { + return (*fastReflection_WithAList)(x) +} + +func (x *WithAList) slowProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_WithAList_messageType fastReflection_WithAList_messageType +var _ protoreflect.MessageType = fastReflection_WithAList_messageType{} + +type fastReflection_WithAList_messageType struct{} + +func (x fastReflection_WithAList_messageType) Zero() protoreflect.Message { + return (*fastReflection_WithAList)(nil) +} +func (x fastReflection_WithAList_messageType) New() protoreflect.Message { + return new(fastReflection_WithAList) +} +func (x fastReflection_WithAList_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_WithAList +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_WithAList) Descriptor() protoreflect.MessageDescriptor { + return md_WithAList +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_WithAList) Type() protoreflect.MessageType { + return _fastReflection_WithAList_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_WithAList) New() protoreflect.Message { + return new(fastReflection_WithAList) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_WithAList) Interface() protoreflect.ProtoMessage { + return (*WithAList)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_WithAList) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.DontOmitemptyList) != 0 { + value := protoreflect.ValueOfList(&_WithAList_1_list{list: &x.DontOmitemptyList}) + if !f(fd_WithAList_dont_omitempty_list, value) { + return + } + } + if len(x.List) != 0 { + value := protoreflect.ValueOfList(&_WithAList_2_list{list: &x.List}) + if !f(fd_WithAList_list, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_WithAList) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "testpb.WithAList.dont_omitempty_list": + return len(x.DontOmitemptyList) != 0 + case "testpb.WithAList.list": + return len(x.List) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.WithAList")) + } + panic(fmt.Errorf("message testpb.WithAList does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_WithAList) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "testpb.WithAList.dont_omitempty_list": + x.DontOmitemptyList = nil + case "testpb.WithAList.list": + x.List = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.WithAList")) + } + panic(fmt.Errorf("message testpb.WithAList does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_WithAList) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "testpb.WithAList.dont_omitempty_list": + if len(x.DontOmitemptyList) == 0 { + return protoreflect.ValueOfList(&_WithAList_1_list{}) + } + listValue := &_WithAList_1_list{list: &x.DontOmitemptyList} + return protoreflect.ValueOfList(listValue) + case "testpb.WithAList.list": + if len(x.List) == 0 { + return protoreflect.ValueOfList(&_WithAList_2_list{}) + } + listValue := &_WithAList_2_list{list: &x.List} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.WithAList")) + } + panic(fmt.Errorf("message testpb.WithAList does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_WithAList) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "testpb.WithAList.dont_omitempty_list": + lv := value.List() + clv := lv.(*_WithAList_1_list) + x.DontOmitemptyList = *clv.list + case "testpb.WithAList.list": + lv := value.List() + clv := lv.(*_WithAList_2_list) + x.List = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.WithAList")) + } + panic(fmt.Errorf("message testpb.WithAList does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_WithAList) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.WithAList.dont_omitempty_list": + if x.DontOmitemptyList == nil { + x.DontOmitemptyList = []string{} + } + value := &_WithAList_1_list{list: &x.DontOmitemptyList} + return protoreflect.ValueOfList(value) + case "testpb.WithAList.list": + if x.List == nil { + x.List = []string{} + } + value := &_WithAList_2_list{list: &x.List} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.WithAList")) + } + panic(fmt.Errorf("message testpb.WithAList does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_WithAList) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.WithAList.dont_omitempty_list": + list := []string{} + return protoreflect.ValueOfList(&_WithAList_1_list{list: &list}) + case "testpb.WithAList.list": + list := []string{} + return protoreflect.ValueOfList(&_WithAList_2_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.WithAList")) + } + panic(fmt.Errorf("message testpb.WithAList does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_WithAList) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in testpb.WithAList", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_WithAList) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_WithAList) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_WithAList) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_WithAList) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*WithAList) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.DontOmitemptyList) > 0 { + for _, s := range x.DontOmitemptyList { + l = len(s) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if len(x.List) > 0 { + for _, s := range x.List { + l = len(s) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*WithAList) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.List) > 0 { + for iNdEx := len(x.List) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.List[iNdEx]) + copy(dAtA[i:], x.List[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.List[iNdEx]))) + i-- + dAtA[i] = 0x12 + } + } + if len(x.DontOmitemptyList) > 0 { + for iNdEx := len(x.DontOmitemptyList) - 1; iNdEx >= 0; iNdEx-- { + i -= len(x.DontOmitemptyList[iNdEx]) + copy(dAtA[i:], x.DontOmitemptyList[iNdEx]) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.DontOmitemptyList[iNdEx]))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*WithAList) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: WithAList: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: WithAList: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field DontOmitemptyList", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.DontOmitemptyList = append(x.DontOmitemptyList, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field List", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.List = append(x.List, string(dAtA[iNdEx:postIndex])) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + var _ protoreflect.List = (*_ABitOfEverything_6_list)(nil) type _ABitOfEverything_6_list struct { @@ -728,26 +1333,23 @@ func (x *_ABitOfEverything_6_list) IsValid() bool { } var ( - md_ABitOfEverything protoreflect.MessageDescriptor - fd_ABitOfEverything_message protoreflect.FieldDescriptor - fd_ABitOfEverything_enum protoreflect.FieldDescriptor - fd_ABitOfEverything_repeated protoreflect.FieldDescriptor - fd_ABitOfEverything_str protoreflect.FieldDescriptor - fd_ABitOfEverything_bool protoreflect.FieldDescriptor - fd_ABitOfEverything_bytes protoreflect.FieldDescriptor - fd_ABitOfEverything_i32 protoreflect.FieldDescriptor - fd_ABitOfEverything_f32 protoreflect.FieldDescriptor - fd_ABitOfEverything_u32 protoreflect.FieldDescriptor - fd_ABitOfEverything_si32 protoreflect.FieldDescriptor - fd_ABitOfEverything_sf32 protoreflect.FieldDescriptor - fd_ABitOfEverything_i64 protoreflect.FieldDescriptor - fd_ABitOfEverything_f64 protoreflect.FieldDescriptor - fd_ABitOfEverything_u64 protoreflect.FieldDescriptor - fd_ABitOfEverything_si64 protoreflect.FieldDescriptor - fd_ABitOfEverything_sf64 protoreflect.FieldDescriptor - fd_ABitOfEverything_any protoreflect.FieldDescriptor - fd_ABitOfEverything_timestamp protoreflect.FieldDescriptor - fd_ABitOfEverything_duration protoreflect.FieldDescriptor + md_ABitOfEverything protoreflect.MessageDescriptor + fd_ABitOfEverything_message protoreflect.FieldDescriptor + fd_ABitOfEverything_enum protoreflect.FieldDescriptor + fd_ABitOfEverything_repeated protoreflect.FieldDescriptor + fd_ABitOfEverything_str protoreflect.FieldDescriptor + fd_ABitOfEverything_bool protoreflect.FieldDescriptor + fd_ABitOfEverything_bytes protoreflect.FieldDescriptor + fd_ABitOfEverything_i32 protoreflect.FieldDescriptor + fd_ABitOfEverything_f32 protoreflect.FieldDescriptor + fd_ABitOfEverything_u32 protoreflect.FieldDescriptor + fd_ABitOfEverything_si32 protoreflect.FieldDescriptor + fd_ABitOfEverything_sf32 protoreflect.FieldDescriptor + fd_ABitOfEverything_i64 protoreflect.FieldDescriptor + fd_ABitOfEverything_f64 protoreflect.FieldDescriptor + fd_ABitOfEverything_u64 protoreflect.FieldDescriptor + fd_ABitOfEverything_si64 protoreflect.FieldDescriptor + fd_ABitOfEverything_sf64 protoreflect.FieldDescriptor ) func init() { @@ -769,9 +1371,6 @@ func init() { fd_ABitOfEverything_u64 = md_ABitOfEverything.Fields().ByName("u64") fd_ABitOfEverything_si64 = md_ABitOfEverything.Fields().ByName("si64") fd_ABitOfEverything_sf64 = md_ABitOfEverything.Fields().ByName("sf64") - fd_ABitOfEverything_any = md_ABitOfEverything.Fields().ByName("any") - fd_ABitOfEverything_timestamp = md_ABitOfEverything.Fields().ByName("timestamp") - fd_ABitOfEverything_duration = md_ABitOfEverything.Fields().ByName("duration") } var _ protoreflect.Message = (*fastReflection_ABitOfEverything)(nil) @@ -783,7 +1382,7 @@ func (x *ABitOfEverything) ProtoReflect() protoreflect.Message { } func (x *ABitOfEverything) slowProtoReflect() protoreflect.Message { - mi := &file_testpb_test_proto_msgTypes[1] + mi := &file_testpb_test_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -935,24 +1534,6 @@ func (x *fastReflection_ABitOfEverything) Range(f func(protoreflect.FieldDescrip return } } - if x.Any != nil { - value := protoreflect.ValueOfMessage(x.Any.ProtoReflect()) - if !f(fd_ABitOfEverything_any, value) { - return - } - } - if x.Timestamp != nil { - value := protoreflect.ValueOfMessage(x.Timestamp.ProtoReflect()) - if !f(fd_ABitOfEverything_timestamp, value) { - return - } - } - if x.Duration != nil { - value := protoreflect.ValueOfMessage(x.Duration.ProtoReflect()) - if !f(fd_ABitOfEverything_duration, value) { - return - } - } } // Has reports whether a field is populated. @@ -1000,12 +1581,6 @@ func (x *fastReflection_ABitOfEverything) Has(fd protoreflect.FieldDescriptor) b return x.Si64 != int64(0) case "testpb.ABitOfEverything.sf64": return x.Sf64 != int64(0) - case "testpb.ABitOfEverything.any": - return x.Any != nil - case "testpb.ABitOfEverything.timestamp": - return x.Timestamp != nil - case "testpb.ABitOfEverything.duration": - return x.Duration != nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.ABitOfEverything")) @@ -1054,12 +1629,6 @@ func (x *fastReflection_ABitOfEverything) Clear(fd protoreflect.FieldDescriptor) x.Si64 = int64(0) case "testpb.ABitOfEverything.sf64": x.Sf64 = int64(0) - case "testpb.ABitOfEverything.any": - x.Any = nil - case "testpb.ABitOfEverything.timestamp": - x.Timestamp = nil - case "testpb.ABitOfEverything.duration": - x.Duration = nil default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.ABitOfEverything")) @@ -1127,15 +1696,6 @@ func (x *fastReflection_ABitOfEverything) Get(descriptor protoreflect.FieldDescr case "testpb.ABitOfEverything.sf64": value := x.Sf64 return protoreflect.ValueOfInt64(value) - case "testpb.ABitOfEverything.any": - value := x.Any - return protoreflect.ValueOfMessage(value.ProtoReflect()) - case "testpb.ABitOfEverything.timestamp": - value := x.Timestamp - return protoreflect.ValueOfMessage(value.ProtoReflect()) - case "testpb.ABitOfEverything.duration": - value := x.Duration - return protoreflect.ValueOfMessage(value.ProtoReflect()) default: if descriptor.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.ABitOfEverything")) @@ -1190,12 +1750,6 @@ func (x *fastReflection_ABitOfEverything) Set(fd protoreflect.FieldDescriptor, v x.Si64 = value.Int() case "testpb.ABitOfEverything.sf64": x.Sf64 = value.Int() - case "testpb.ABitOfEverything.any": - x.Any = value.Message().Interface().(*anypb.Any) - case "testpb.ABitOfEverything.timestamp": - x.Timestamp = value.Message().Interface().(*timestamppb.Timestamp) - case "testpb.ABitOfEverything.duration": - x.Duration = value.Message().Interface().(*durationpb.Duration) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.ABitOfEverything")) @@ -1227,21 +1781,6 @@ func (x *fastReflection_ABitOfEverything) Mutable(fd protoreflect.FieldDescripto } value := &_ABitOfEverything_6_list{list: &x.Repeated} return protoreflect.ValueOfList(value) - case "testpb.ABitOfEverything.any": - if x.Any == nil { - x.Any = new(anypb.Any) - } - return protoreflect.ValueOfMessage(x.Any.ProtoReflect()) - case "testpb.ABitOfEverything.timestamp": - if x.Timestamp == nil { - x.Timestamp = new(timestamppb.Timestamp) - } - return protoreflect.ValueOfMessage(x.Timestamp.ProtoReflect()) - case "testpb.ABitOfEverything.duration": - if x.Duration == nil { - x.Duration = new(durationpb.Duration) - } - return protoreflect.ValueOfMessage(x.Duration.ProtoReflect()) case "testpb.ABitOfEverything.enum": panic(fmt.Errorf("field enum of message testpb.ABitOfEverything is not mutable")) case "testpb.ABitOfEverything.str": @@ -1317,15 +1856,6 @@ func (x *fastReflection_ABitOfEverything) NewField(fd protoreflect.FieldDescript return protoreflect.ValueOfInt64(int64(0)) case "testpb.ABitOfEverything.sf64": return protoreflect.ValueOfInt64(int64(0)) - case "testpb.ABitOfEverything.any": - m := new(anypb.Any) - return protoreflect.ValueOfMessage(m.ProtoReflect()) - case "testpb.ABitOfEverything.timestamp": - m := new(timestamppb.Timestamp) - return protoreflect.ValueOfMessage(m.ProtoReflect()) - case "testpb.ABitOfEverything.duration": - m := new(durationpb.Duration) - return protoreflect.ValueOfMessage(m.ProtoReflect()) default: if fd.IsExtension() { panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.ABitOfEverything")) @@ -1450,18 +1980,6 @@ func (x *fastReflection_ABitOfEverything) ProtoMethods() *protoiface.Methods { if x.Sf64 != 0 { n += 10 } - if x.Any != nil { - l = options.Size(x.Any) - n += 2 + l + runtime.Sov(uint64(l)) - } - if x.Timestamp != nil { - l = options.Size(x.Timestamp) - n += 2 + l + runtime.Sov(uint64(l)) - } - if x.Duration != nil { - l = options.Size(x.Duration) - n += 2 + l + runtime.Sov(uint64(l)) - } if x.unknownFields != nil { n += len(x.unknownFields) } @@ -1491,54 +2009,6 @@ func (x *fastReflection_ABitOfEverything) ProtoMethods() *protoiface.Methods { i -= len(x.unknownFields) copy(dAtA[i:], x.unknownFields) } - if x.Duration != nil { - encoded, err := options.Marshal(x.Duration) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xc2 - } - if x.Timestamp != nil { - encoded, err := options.Marshal(x.Timestamp) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xba - } - if x.Any != nil { - encoded, err := options.Marshal(x.Any) - if err != nil { - return protoiface.MarshalOutput{ - NoUnkeyedLiterals: input.NoUnkeyedLiterals, - Buf: input.Buf, - }, err - } - i -= len(encoded) - copy(dAtA[i:], encoded) - i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) - i-- - dAtA[i] = 0x1 - i-- - dAtA[i] = 0xb2 - } if x.Sf64 != 0 { i -= 8 binary.LittleEndian.PutUint64(dAtA[i:], uint64(x.Sf64)) @@ -2089,114 +2559,6 @@ func (x *fastReflection_ABitOfEverything) ProtoMethods() *protoiface.Methods { } x.Sf64 = int64(binary.LittleEndian.Uint64(dAtA[iNdEx:])) iNdEx += 8 - case 22: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Any", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if x.Any == nil { - x.Any = &anypb.Any{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Any); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - case 23: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Timestamp", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if x.Timestamp == nil { - x.Timestamp = ×tamppb.Timestamp{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Timestamp); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex - case 24: - if wireType != 2 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Duration", wireType) - } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow - } - if iNdEx >= l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength - } - if postIndex > l { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF - } - if x.Duration == nil { - x.Duration = &durationpb.Duration{} - } - if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.Duration); err != nil { - return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err - } - iNdEx = postIndex default: iNdEx = preIndex skippy, err := runtime.Skip(dAtA[iNdEx:]) @@ -2254,7 +2616,7 @@ func (x *NestedMessage) ProtoReflect() protoreflect.Message { } func (x *NestedMessage) slowProtoReflect() protoreflect.Message { - mi := &file_testpb_test_proto_msgTypes[2] + mi := &file_testpb_test_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2797,36 +3159,76 @@ func (x *WithAMap) GetStrMap() map[string]string { return nil } +type WithAList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DontOmitemptyList []string `protobuf:"bytes,1,rep,name=dont_omitempty_list,json=dontOmitemptyList,proto3" json:"dont_omitempty_list,omitempty"` + List []string `protobuf:"bytes,2,rep,name=list,proto3" json:"list,omitempty"` +} + +func (x *WithAList) Reset() { + *x = WithAList{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithAList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithAList) ProtoMessage() {} + +// Deprecated: Use WithAList.ProtoReflect.Descriptor instead. +func (*WithAList) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{1} +} + +func (x *WithAList) GetDontOmitemptyList() []string { + if x != nil { + return x.DontOmitemptyList + } + return nil +} + +func (x *WithAList) GetList() []string { + if x != nil { + return x.List + } + return nil +} + type ABitOfEverything struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Message *NestedMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` - Enum AnEnum `protobuf:"varint,2,opt,name=enum,proto3,enum=testpb.AnEnum" json:"enum,omitempty"` //map str_map = 3; - Repeated []int32 `protobuf:"varint,6,rep,packed,name=repeated,proto3" json:"repeated,omitempty"` - Str string `protobuf:"bytes,7,opt,name=str,proto3" json:"str,omitempty"` - Bool bool `protobuf:"varint,8,opt,name=bool,proto3" json:"bool,omitempty"` - Bytes []byte `protobuf:"bytes,9,opt,name=bytes,proto3" json:"bytes,omitempty"` - I32 int32 `protobuf:"varint,10,opt,name=i32,proto3" json:"i32,omitempty"` - F32 uint32 `protobuf:"fixed32,11,opt,name=f32,proto3" json:"f32,omitempty"` - U32 uint32 `protobuf:"varint,12,opt,name=u32,proto3" json:"u32,omitempty"` - Si32 int32 `protobuf:"zigzag32,13,opt,name=si32,proto3" json:"si32,omitempty"` - Sf32 int32 `protobuf:"fixed32,14,opt,name=sf32,proto3" json:"sf32,omitempty"` - I64 int64 `protobuf:"varint,15,opt,name=i64,proto3" json:"i64,omitempty"` - F64 uint64 `protobuf:"fixed64,16,opt,name=f64,proto3" json:"f64,omitempty"` - U64 uint64 `protobuf:"varint,17,opt,name=u64,proto3" json:"u64,omitempty"` - Si64 int64 `protobuf:"zigzag64,18,opt,name=si64,proto3" json:"si64,omitempty"` - Sf64 int64 `protobuf:"fixed64,19,opt,name=sf64,proto3" json:"sf64,omitempty"` - Any *anypb.Any `protobuf:"bytes,22,opt,name=any,proto3" json:"any,omitempty"` - Timestamp *timestamppb.Timestamp `protobuf:"bytes,23,opt,name=timestamp,proto3" json:"timestamp,omitempty"` - Duration *durationpb.Duration `protobuf:"bytes,24,opt,name=duration,proto3" json:"duration,omitempty"` + Message *NestedMessage `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + Enum AnEnum `protobuf:"varint,2,opt,name=enum,proto3,enum=testpb.AnEnum" json:"enum,omitempty"` + Repeated []int32 `protobuf:"varint,6,rep,packed,name=repeated,proto3" json:"repeated,omitempty"` + Str string `protobuf:"bytes,7,opt,name=str,proto3" json:"str,omitempty"` + Bool bool `protobuf:"varint,8,opt,name=bool,proto3" json:"bool,omitempty"` + Bytes []byte `protobuf:"bytes,9,opt,name=bytes,proto3" json:"bytes,omitempty"` + I32 int32 `protobuf:"varint,10,opt,name=i32,proto3" json:"i32,omitempty"` + F32 uint32 `protobuf:"fixed32,11,opt,name=f32,proto3" json:"f32,omitempty"` + U32 uint32 `protobuf:"varint,12,opt,name=u32,proto3" json:"u32,omitempty"` + Si32 int32 `protobuf:"zigzag32,13,opt,name=si32,proto3" json:"si32,omitempty"` + Sf32 int32 `protobuf:"fixed32,14,opt,name=sf32,proto3" json:"sf32,omitempty"` + I64 int64 `protobuf:"varint,15,opt,name=i64,proto3" json:"i64,omitempty"` + F64 uint64 `protobuf:"fixed64,16,opt,name=f64,proto3" json:"f64,omitempty"` + U64 uint64 `protobuf:"varint,17,opt,name=u64,proto3" json:"u64,omitempty"` + Si64 int64 `protobuf:"zigzag64,18,opt,name=si64,proto3" json:"si64,omitempty"` + Sf64 int64 `protobuf:"fixed64,19,opt,name=sf64,proto3" json:"sf64,omitempty"` } func (x *ABitOfEverything) Reset() { *x = ABitOfEverything{} if protoimpl.UnsafeEnabled { - mi := &file_testpb_test_proto_msgTypes[1] + mi := &file_testpb_test_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2840,7 +3242,7 @@ func (*ABitOfEverything) ProtoMessage() {} // Deprecated: Use ABitOfEverything.ProtoReflect.Descriptor instead. func (*ABitOfEverything) Descriptor() ([]byte, []int) { - return file_testpb_test_proto_rawDescGZIP(), []int{1} + return file_testpb_test_proto_rawDescGZIP(), []int{2} } func (x *ABitOfEverything) GetMessage() *NestedMessage { @@ -2955,27 +3357,6 @@ func (x *ABitOfEverything) GetSf64() int64 { return 0 } -func (x *ABitOfEverything) GetAny() *anypb.Any { - if x != nil { - return x.Any - } - return nil -} - -func (x *ABitOfEverything) GetTimestamp() *timestamppb.Timestamp { - if x != nil { - return x.Timestamp - } - return nil -} - -func (x *ABitOfEverything) GetDuration() *durationpb.Duration { - if x != nil { - return x.Duration - } - return nil -} - type NestedMessage struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2988,7 +3369,7 @@ type NestedMessage struct { func (x *NestedMessage) Reset() { *x = NestedMessage{} if protoimpl.UnsafeEnabled { - mi := &file_testpb_test_proto_msgTypes[2] + mi := &file_testpb_test_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3002,7 +3383,7 @@ func (*NestedMessage) ProtoMessage() {} // Deprecated: Use NestedMessage.ProtoReflect.Descriptor instead. func (*NestedMessage) Descriptor() ([]byte, []int) { - return file_testpb_test_proto_rawDescGZIP(), []int{2} + return file_testpb_test_proto_rawDescGZIP(), []int{3} } func (x *NestedMessage) GetFoo() string { @@ -3023,77 +3404,77 @@ var File_testpb_test_proto protoreflect.FileDescriptor var file_testpb_test_proto_rawDesc = []byte{ 0x0a, 0x11, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x1a, 0x19, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6d, 0x61, 0x73, - 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7c, 0x0a, 0x08, 0x57, 0x69, 0x74, 0x68, 0x41, 0x4d, 0x61, 0x70, - 0x12, 0x35, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x41, - 0x4d, 0x61, 0x70, 0x2e, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x06, 0x73, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x4d, 0x61, - 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x22, 0x94, 0x04, 0x0a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, 0x76, 0x65, - 0x72, 0x79, 0x74, 0x68, 0x69, 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, - 0x62, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, - 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, - 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, - 0x6f, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x14, - 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x69, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x33, 0x32, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x07, 0x52, 0x03, 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x33, 0x32, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x75, 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, - 0x33, 0x32, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, 0x69, 0x33, 0x32, 0x12, 0x12, - 0x0a, 0x04, 0x73, 0x66, 0x33, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x04, 0x73, 0x66, - 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x69, 0x36, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x03, 0x69, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x36, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x06, 0x52, 0x03, 0x66, 0x36, 0x34, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x36, 0x34, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x03, 0x75, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x36, 0x34, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x12, 0x52, 0x04, 0x73, 0x69, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, - 0x73, 0x66, 0x36, 0x34, 0x18, 0x13, 0x20, 0x01, 0x28, 0x10, 0x52, 0x04, 0x73, 0x66, 0x36, 0x34, - 0x12, 0x26, 0x0a, 0x03, 0x61, 0x6e, 0x79, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x41, 0x6e, 0x79, 0x52, 0x03, 0x61, 0x6e, 0x79, 0x12, 0x38, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x33, 0x0a, 0x0d, 0x4e, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, - 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, - 0x62, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, 0x2a, 0x29, - 0x0a, 0x06, 0x41, 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, - 0x46, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, - 0x12, 0x07, 0x0a, 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x83, 0x01, 0x0a, 0x0a, 0x63, 0x6f, - 0x6d, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x32, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x78, 0x2f, 0x74, 0x78, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x6a, 0x73, - 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, - 0x70, 0x62, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, - 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, - 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x1a, 0x11, 0x61, 0x6d, 0x69, + 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, + 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, + 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, + 0x6d, 0x61, 0x73, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7c, 0x0a, 0x08, 0x57, 0x69, 0x74, 0x68, 0x41, + 0x4d, 0x61, 0x70, 0x12, 0x35, 0x0a, 0x07, 0x73, 0x74, 0x72, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x57, 0x69, + 0x74, 0x68, 0x41, 0x4d, 0x61, 0x70, 0x2e, 0x53, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x06, 0x73, 0x74, 0x72, 0x4d, 0x61, 0x70, 0x1a, 0x39, 0x0a, 0x0b, 0x53, 0x74, + 0x72, 0x4d, 0x61, 0x70, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x56, 0x0a, 0x09, 0x57, 0x69, 0x74, 0x68, 0x41, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x35, 0x0a, 0x13, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, + 0x05, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x11, 0x64, 0x6f, 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x69, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x92, 0x03, + 0x0a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, + 0x6e, 0x67, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x4e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x41, 0x6e, 0x45, 0x6e, 0x75, + 0x6d, 0x52, 0x04, 0x65, 0x6e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x74, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x73, 0x74, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, + 0x10, 0x0a, 0x03, 0x69, 0x33, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x69, 0x33, + 0x32, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x33, 0x32, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, + 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x33, 0x32, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x03, 0x75, 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x33, 0x32, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x11, 0x52, 0x04, 0x73, 0x69, 0x33, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x66, 0x33, + 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0f, 0x52, 0x04, 0x73, 0x66, 0x33, 0x32, 0x12, 0x10, 0x0a, + 0x03, 0x69, 0x36, 0x34, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x69, 0x36, 0x34, 0x12, + 0x10, 0x0a, 0x03, 0x66, 0x36, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x06, 0x52, 0x03, 0x66, 0x36, + 0x34, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x36, 0x34, 0x18, 0x11, 0x20, 0x01, 0x28, 0x04, 0x52, 0x03, + 0x75, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x36, 0x34, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x12, 0x52, 0x04, 0x73, 0x69, 0x36, 0x34, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x66, 0x36, 0x34, 0x18, + 0x13, 0x20, 0x01, 0x28, 0x10, 0x52, 0x04, 0x73, 0x66, 0x36, 0x34, 0x3a, 0x15, 0x8a, 0xe7, 0xb0, + 0x2a, 0x10, 0x41, 0x42, 0x69, 0x74, 0x4f, 0x66, 0x45, 0x76, 0x65, 0x72, 0x79, 0x74, 0x68, 0x69, + 0x6e, 0x67, 0x22, 0x47, 0x0a, 0x0d, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x6f, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x66, 0x6f, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x62, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x03, 0x62, 0x61, 0x72, 0x3a, 0x12, 0x8a, 0xe7, 0xb0, 0x2a, 0x0d, 0x4e, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2a, 0x29, 0x0a, 0x06, 0x41, + 0x6e, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x4e, 0x44, 0x45, 0x46, 0x49, 0x4e, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4e, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, + 0x03, 0x54, 0x57, 0x4f, 0x10, 0x02, 0x42, 0x83, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x32, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, + 0x2f, 0x78, 0x2f, 0x74, 0x78, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x6a, 0x73, 0x6f, 0x6e, 0x2f, + 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, + 0x65, 0x73, 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, + 0x12, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3109,29 +3490,24 @@ func file_testpb_test_proto_rawDescGZIP() []byte { } var file_testpb_test_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_testpb_test_proto_goTypes = []interface{}{ - (AnEnum)(0), // 0: testpb.AnEnum - (*WithAMap)(nil), // 1: testpb.WithAMap - (*ABitOfEverything)(nil), // 2: testpb.ABitOfEverything - (*NestedMessage)(nil), // 3: testpb.NestedMessage - nil, // 4: testpb.WithAMap.StrMapEntry - (*anypb.Any)(nil), // 5: google.protobuf.Any - (*timestamppb.Timestamp)(nil), // 6: google.protobuf.Timestamp - (*durationpb.Duration)(nil), // 7: google.protobuf.Duration + (AnEnum)(0), // 0: testpb.AnEnum + (*WithAMap)(nil), // 1: testpb.WithAMap + (*WithAList)(nil), // 2: testpb.WithAList + (*ABitOfEverything)(nil), // 3: testpb.ABitOfEverything + (*NestedMessage)(nil), // 4: testpb.NestedMessage + nil, // 5: testpb.WithAMap.StrMapEntry } var file_testpb_test_proto_depIdxs = []int32{ - 4, // 0: testpb.WithAMap.str_map:type_name -> testpb.WithAMap.StrMapEntry - 3, // 1: testpb.ABitOfEverything.message:type_name -> testpb.NestedMessage + 5, // 0: testpb.WithAMap.str_map:type_name -> testpb.WithAMap.StrMapEntry + 4, // 1: testpb.ABitOfEverything.message:type_name -> testpb.NestedMessage 0, // 2: testpb.ABitOfEverything.enum:type_name -> testpb.AnEnum - 5, // 3: testpb.ABitOfEverything.any:type_name -> google.protobuf.Any - 6, // 4: testpb.ABitOfEverything.timestamp:type_name -> google.protobuf.Timestamp - 7, // 5: testpb.ABitOfEverything.duration:type_name -> google.protobuf.Duration - 6, // [6:6] is the sub-list for method output_type - 6, // [6:6] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_testpb_test_proto_init() } @@ -3153,7 +3529,7 @@ func file_testpb_test_proto_init() { } } file_testpb_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ABitOfEverything); i { + switch v := v.(*WithAList); i { case 0: return &v.state case 1: @@ -3165,6 +3541,18 @@ func file_testpb_test_proto_init() { } } file_testpb_test_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ABitOfEverything); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_testpb_test_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NestedMessage); i { case 0: return &v.state @@ -3183,7 +3571,7 @@ func file_testpb_test_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_testpb_test_proto_rawDesc, NumEnums: 1, - NumMessages: 4, + NumMessages: 5, NumExtensions: 0, NumServices: 0, }, diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 10dccd74498f..641f34a8aed9 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -313,12 +313,6 @@ func jsonMarshal(w io.Writer, v interface{}) error { func (aj AminoJSON) marshalList(list protoreflect.List, writer io.Writer) error { n := list.Len() - // replicate https://github.com/tendermint/go-amino/blob/rc0/v0.16.0/json-encode.go#L222 - if n == 0 { - _, err := writer.Write([]byte("null")) - return err - } - _, err := writer.Write([]byte("[")) if err != nil { return err diff --git a/x/tx/aminojson/json_marshal_test.go b/x/tx/aminojson/json_marshal_test.go index 1eec0e17272a..9088fa2b54b7 100644 --- a/x/tx/aminojson/json_marshal_test.go +++ b/x/tx/aminojson/json_marshal_test.go @@ -1,10 +1,8 @@ package aminojson_test import ( - "fmt" "reflect" "testing" - "time" "github.com/stretchr/testify/require" "github.com/tendermint/go-amino" @@ -12,13 +10,8 @@ import ( "google.golang.org/protobuf/proto" "pgregory.net/rapid" - "google.golang.org/protobuf/types/known/anypb" - "google.golang.org/protobuf/types/known/durationpb" - "google.golang.org/protobuf/types/known/timestamppb" "gotest.tools/v3/assert" - "github.com/cosmos/cosmos-proto/any" - "cosmossdk.io/x/tx/aminojson" "cosmossdk.io/x/tx/rapidproto" @@ -27,25 +20,24 @@ import ( func marshalLegacy(msg proto.Message) ([]byte, error) { cdc := amino.NewCodec() + cdc.RegisterConcrete(&testpb.ABitOfEverything{}, "ABitOfEverything", nil) + cdc.RegisterConcrete(&testpb.NestedMessage{}, "NestedMessage", nil) return cdc.MarshalJSON(msg) } func TestAminoJSON_EdgeCases(t *testing.T) { - simpleAny, err := anypb.New(&testpb.NestedMessage{Foo: "any type nested", Bar: 11}) - require.NoError(t, err) cdc := amino.NewCodec() + cdc.RegisterConcrete(&testpb.ABitOfEverything{}, "ABitOfEverything", nil) + cdc.RegisterConcrete(&testpb.NestedMessage{}, "NestedMessage", nil) aj := aminojson.NewAminoJSON() cases := map[string]struct { msg proto.Message shouldErr bool }{ - "empty": {msg: &testpb.ABitOfEverything{}}, - "single map": {msg: &testpb.WithAMap{StrMap: map[string]string{"foo": "bar"}}, shouldErr: true}, - "any type": {msg: &testpb.ABitOfEverything{Any: simpleAny}}, - "zero duration": {msg: &testpb.ABitOfEverything{Duration: durationpb.New(time.Second * 0)}}, - "duration": {msg: &testpb.ABitOfEverything{Duration: &durationpb.Duration{Seconds: 10, Nanos: 10}}}, + "empty": {msg: &testpb.ABitOfEverything{}}, + "single map": {msg: &testpb.WithAMap{StrMap: map[string]string{"foo": "bar"}}, shouldErr: true}, } for name, tc := range cases { t.Run(name, func(t *testing.T) { @@ -74,49 +66,42 @@ func TestAminoJSON_EdgeCases(t *testing.T) { } func TestAminoJSON(t *testing.T) { - a, err := any.New(&testpb.NestedMessage{ - Foo: "any type nested", - Bar: 11, - }) + cdc := amino.NewCodec() + cdc.RegisterConcrete(&testpb.ABitOfEverything{}, "ABitOfEverything", nil) + cdc.RegisterConcrete(&testpb.NestedMessage{}, "NestedMessage", nil) - assert.NilError(t, err) msg := &testpb.ABitOfEverything{ Message: &testpb.NestedMessage{ Foo: "test", Bar: 0, // this is the default value and should be omitted from output }, - Enum: testpb.AnEnum_ONE, - Repeated: []int32{3, -7, 2, 6, 4}, - Str: `abcxyz"foo"def`, - Bool: true, - Bytes: []byte{0, 1, 2, 3}, - I32: -15, - F32: 1001, - U32: 1200, - Si32: -376, - Sf32: -1000, - I64: 14578294827584932, - F64: 9572348124213523654, - U64: 4759492485, - Si64: -59268425823934, - Sf64: -659101379604211154, - Any: a, - Timestamp: timestamppb.New(time.Date(2022, 1, 1, 12, 31, 0, 0, time.UTC)), - Duration: durationpb.New(time.Second * 3000), + Enum: testpb.AnEnum_ONE, + Repeated: []int32{3, -7, 2, 6, 4}, + Str: `abcxyz"foo"def`, + Bool: true, + Bytes: []byte{0, 1, 2, 3}, + I32: -15, + F32: 1001, + U32: 1200, + Si32: -376, + Sf32: -1000, + I64: 14578294827584932, + F64: 9572348124213523654, + U64: 4759492485, + Si64: -59268425823934, + Sf64: -659101379604211154, } bz, err := aminojson.NewAminoJSON().MarshalAmino(msg) assert.NilError(t, err) - cdc := amino.NewCodec() legacyBz, err := cdc.MarshalJSON(msg) assert.NilError(t, err) - require.Equal(t, string(legacyBz), string(bz), "%s vs legacy: %s", string(bz), string(legacyBz)) + require.Equal(t, string(legacyBz), string(bz)) } func TestRapid(t *testing.T) { gen := rapidproto.MessageGenerator(&testpb.ABitOfEverything{}, rapidproto.GeneratorOptions{}) rapid.Check(t, func(t *rapid.T) { msg := gen.Draw(t, "msg") - fmt.Printf("msg: %v\n", msg) bz, err := aminojson.NewAminoJSON().MarshalAmino(msg) assert.NilError(t, err) checkInvariants(t, msg, bz) @@ -136,8 +121,11 @@ func checkLegacyParity(t *rapid.T, message proto.Message, marshaledBytes []byte) } func checkRoundTrip(t *rapid.T, message proto.Message, marshaledBytes []byte) { - message2 := message.ProtoReflect().New().Interface() cdc := amino.NewCodec() + cdc.RegisterConcrete(&testpb.ABitOfEverything{}, "ABitOfEverything", nil) + cdc.RegisterConcrete(&testpb.NestedMessage{}, "NestedMessage", nil) + + message2 := message.ProtoReflect().New().Interface() goProtoJSON, err := cdc.MarshalJSON(message) assert.NilError(t, err) err = cdc.UnmarshalJSON(marshaledBytes, message2) From d2f7ae4edb413d2309d08654e4e32a25afeb08df Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 9 Feb 2023 19:31:00 -0600 Subject: [PATCH 054/122] null_slice_as_empty encoding --- api/cosmos/bank/v1beta1/authz.pulsar.go | 61 +++---- proto/cosmos/bank/v1beta1/authz.proto | 1 + tests/integration/aminojson/aminojson_test.go | 165 ++++++++++++++---- x/bank/types/authz.pb.go | 35 ++-- x/tx/aminojson/json_marshal.go | 49 ++++-- x/tx/aminojson/json_marshal_test.go | 23 +++ x/tx/rapidproto/rapidproto.go | 14 +- 7 files changed, 251 insertions(+), 97 deletions(-) diff --git a/api/cosmos/bank/v1beta1/authz.pulsar.go b/api/cosmos/bank/v1beta1/authz.pulsar.go index f62d0fdaa569..259ca548043f 100644 --- a/api/cosmos/bank/v1beta1/authz.pulsar.go +++ b/api/cosmos/bank/v1beta1/authz.pulsar.go @@ -710,37 +710,38 @@ var file_cosmos_bank_v1beta1_authz_proto_rawDesc = []byte{ 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, - 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x88, 0x02, 0x0a, 0x11, 0x53, + 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa1, 0x02, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x71, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x3a, 0x47, 0xca, 0xb4, - 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xc5, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x42, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, - 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, - 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, + 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x37, 0x0a, 0x0a, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x4c, 0x69, 0x73, 0x74, 0x3a, 0x47, 0xca, 0xb4, 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x8a, 0xe7, 0xb0, + 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x65, 0x6e, + 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xc5, + 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x41, 0x75, 0x74, 0x68, + 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, + 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, + 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, + 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/bank/v1beta1/authz.proto b/proto/cosmos/bank/v1beta1/authz.proto index a830353663dc..07159edc1b93 100644 --- a/proto/cosmos/bank/v1beta1/authz.proto +++ b/proto/cosmos/bank/v1beta1/authz.proto @@ -19,6 +19,7 @@ message SendAuthorization { repeated cosmos.base.v1beta1.Coin spend_limit = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 038ea3c77518..840bd25b1028 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -2,6 +2,7 @@ package aminojson import ( "fmt" + "reflect" "testing" "time" @@ -18,6 +19,7 @@ import ( authapi "cosmossdk.io/api/cosmos/auth/v1beta1" authzapi "cosmossdk.io/api/cosmos/authz/v1beta1" bankapi "cosmossdk.io/api/cosmos/bank/v1beta1" + v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" consensusapi "cosmossdk.io/api/cosmos/consensus/v1" "cosmossdk.io/api/cosmos/crypto/ed25519" distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" @@ -95,7 +97,7 @@ var ( genType(&banktypes.Params{}, &bankapi.Params{}, genOpts), // consensus - genType(&consensustypes.MsgUpdateParams{}, &consensusapi.MsgUpdateParams{}, genOpts), + genType(&consensustypes.MsgUpdateParams{}, &consensusapi.MsgUpdateParams{}, genOpts.WithDisallowNil()), } ) @@ -139,21 +141,32 @@ func TestAminoJSON_Equivalence(t *testing.T) { // println("UNMATCHED") //} require.Equal(t, string(legacyAminoJson), string(aminoJson)) + //fmt.Printf("MATCHED %s\n", aminoJson) }) }) } } +func newAny(t *testing.T, msg proto.Message) *anypb.Any { + bz, err := proto.Marshal(msg) + require.NoError(t, err) + typeName := fmt.Sprintf("/%s", msg.ProtoReflect().Descriptor().FullName()) + return &anypb.Any{ + TypeUrl: typeName, + Value: bz, + } +} + func TestAminoJSON_LegacyParity(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, - distribution.AppModuleBasic{}) + bank.AppModuleBasic{}, distribution.AppModuleBasic{}) aj := aminojson.NewAminoJSON() addr1 := types.AccAddress([]byte("addr1")) now := time.Now() genericAuth, _ := codectypes.NewAnyWithValue(&authztypes.GenericAuthorization{Msg: "foo"}) - genericAuthPulsar, _ := anypb.New(&authzapi.GenericAuthorization{Msg: "foo"}) + genericAuthPulsar := newAny(t, &authzapi.GenericAuthorization{Msg: "foo"}) cases := map[string]struct { gogo gogoproto.Message @@ -167,12 +180,6 @@ func TestAminoJSON_LegacyParity(t *testing.T) { pulsar: &authapi.ModuleAccount{ BaseAccount: &authapi.BaseAccount{Address: addr1.String()}, Permissions: []string{}}, }, - "auth/module_account/null_slice": { - gogo: &authtypes.ModuleAccount{ - BaseAccount: authtypes.NewBaseAccountWithAddress(addr1), Permissions: nil}, - pulsar: &authapi.ModuleAccount{ - BaseAccount: &authapi.BaseAccount{Address: addr1.String()}, Permissions: nil}, - }, "authz/msg_grant": { gogo: &authztypes.MsgGrant{ Grant: authztypes.Grant{Expiration: &now, Authorization: genericAuth}}, @@ -229,6 +236,29 @@ func TestAminoJSON_LegacyParity(t *testing.T) { Seconds: rapidproto.MaxDurationSeconds + 1, Nanos: 999999999}}, pulsarMarshalFails: true, }, + // amino.dont_omitempty + empty/nil lists produce some surprising results + // TODO + // custom renderer for coins + "bank/send_authorization/empty_coins": { + gogo: &banktypes.SendAuthorization{SpendLimit: []types.Coin{}}, + pulsar: &bankapi.SendAuthorization{SpendLimit: []*v1beta1.Coin{}}, + }, + "bank/send_authorization/nil_coins": { + gogo: &banktypes.SendAuthorization{SpendLimit: nil}, + pulsar: &bankapi.SendAuthorization{SpendLimit: nil}, + }, + "bank/send_authorization/empty_list": { + gogo: &banktypes.SendAuthorization{AllowList: []string{}}, + pulsar: &bankapi.SendAuthorization{AllowList: []string{}}, + }, + "bank/send_authorization/nil_list": { + gogo: &banktypes.SendAuthorization{AllowList: nil}, + pulsar: &bankapi.SendAuthorization{AllowList: nil}, + }, + "bank/msg_multi_send/nil_everything": { + gogo: &banktypes.MsgMultiSend{}, + pulsar: &bankapi.MsgMultiSend{}, + }, } for name, tc := range cases { t.Run(name, func(t *testing.T) { @@ -242,14 +272,20 @@ func TestAminoJSON_LegacyParity(t *testing.T) { } require.NoError(t, err) - //pulsarProtoBytes, err := proto.Marshal(tc.pulsar) - //require.NoError(t, err) - // - //err = encCfg.Codec.Unmarshal(pulsarProtoBytes, tc.gogo) - //require.NoError(t, err) + pulsarProtoBytes, err := proto.Marshal(tc.pulsar) + require.NoError(t, err) + + gogoType := reflect.TypeOf(tc.gogo).Elem() + newGogo := reflect.New(gogoType).Interface().(gogoproto.Message) + + err = encCfg.Codec.Unmarshal(pulsarProtoBytes, newGogo) + require.NoError(t, err) + + newGogoBytes, err := encCfg.Amino.MarshalJSON(newGogo) fmt.Printf("pulsar: %s\n", string(pulsarBytes)) - require.Equal(t, string(gogoBytes), string(pulsarBytes), "gogo: %s vs pulsar: %s", gogoBytes, pulsarBytes) + require.Equal(t, string(gogoBytes), string(pulsarBytes)) + require.Equal(t, string(gogoBytes), string(newGogoBytes)) }) } } @@ -281,36 +317,103 @@ func TestAny(t *testing.T) { require.NoError(t, err) } -func TestModuleAccount(t *testing.T) { - encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, - distribution.AppModuleBasic{}) +func TestMsgMultiSend(t *testing.T) { + encCfg := testutil.MakeTestEncodingConfig(bank.AppModuleBasic{}) aj := aminojson.NewAminoJSON() - addr1 := types.AccAddress([]byte("addr1")) - pulsar := &authapi.ModuleAccount{ - BaseAccount: &authapi.BaseAccount{Address: addr1.String()}, Permissions: []string{}} - gogo := &authtypes.ModuleAccount{ - BaseAccount: &authtypes.BaseAccount{Address: addr1.String()}, Permissions: []string{}} + + pulsar := &bankapi.MsgMultiSend{Inputs: []*bankapi.Input{}, Outputs: []*bankapi.Output{}} + sanityPulsar := &bankapi.MsgMultiSend{} + gogo := &banktypes.MsgMultiSend{} protoBz, err := proto.Marshal(pulsar) require.NoError(t, err) + err = encCfg.Codec.Unmarshal(protoBz, gogo) require.NoError(t, err) - // !!! see below - require.Nil(t, gogo.Permissions) - require.NotNil(t, pulsar.Permissions) - require.Zero(t, len(pulsar.Permissions)) + err = proto.Unmarshal(protoBz, sanityPulsar) + + // !!! + // empty []string is not the same as nil []string. this is a bug in gogo. + // `[]string` -> proto.Marshal -> legacyAmino.UnmarshalProto (unmarshals empty slice as nil) + // -> legacyAmino.MarshalJson -> `null` + // `[]string` -> [proto.Marshal -> pulsar.Unmarshal] -> amino.MarshalJson -> `[]` + require.Nil(t, gogo.Inputs) + require.Nil(t, sanityPulsar.Inputs) + require.NotNil(t, pulsar.Inputs) + require.Zero(t, len(pulsar.Inputs)) legacyAminoJson, err := encCfg.Amino.MarshalJSON(gogo) - aminoJson, err := aj.MarshalAmino(pulsar) + require.NoError(t, err) + aminoJson, err := aj.MarshalAmino(sanityPulsar) + require.NoError(t, err) + aminoJson, err = aj.MarshalAmino(pulsar) + require.NoError(t, err) + + // These checks are (predictably) expected to fail since gogo.Inputs=nil and pulsar.Inputs=[] + require.NotEqual(t, string(legacyAminoJson), string(aminoJson)) + require.NotEqual(t, string(legacyAminoJson), string(aminoJson)) + + // setting all fields to empty lists are equivalent + gogo.Inputs = []banktypes.Input{} + gogo.Outputs = []banktypes.Output{} + legacyAminoJson, _ = encCfg.Amino.MarshalJSON(gogo) + require.Equal(t, string(legacyAminoJson), string(aminoJson)) + + // setting all fields to nil are equivalent + gogo = &banktypes.MsgMultiSend{} + pulsar = &bankapi.MsgMultiSend{} + legacyAminoJson, _ = encCfg.Amino.MarshalJSON(gogo) + aminoJson, err = aj.MarshalAmino(pulsar) + require.Equal(t, string(legacyAminoJson), string(aminoJson)) +} + +func TestSendAuthorization(t *testing.T) { + encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, + distribution.AppModuleBasic{}, bank.AppModuleBasic{}) + + aj := aminojson.NewAminoJSON() + + // beware, Coins has as custom MarshalJSON method which changes how nil is handled + // nil -> [] (empty list) + // [] -> [] (empty list) + // https://github.com/cosmos/cosmos-sdk/blob/be9bd7a8c1b41b115d58f4e76ee358e18a52c0af/types/coin.go#L199 + + // explicitly show the default for clarity + pulsar := &bankapi.SendAuthorization{SpendLimit: []*v1beta1.Coin{}} + sanityPulsar := &bankapi.SendAuthorization{} + gogo := &banktypes.SendAuthorization{SpendLimit: types.Coins{}} + + protoBz, err := proto.Marshal(pulsar) + require.NoError(t, err) + + err = encCfg.Codec.Unmarshal(protoBz, gogo) + require.NoError(t, err) + + err = proto.Unmarshal(protoBz, sanityPulsar) - // yes this is expected. empty []string is not the same as nil []string. this is a bug in gogo. + // !!! + // empty []string is not the same as nil []string. this is a bug in gogo. // `[]string` -> proto.Marshal -> legacyAmino.UnmarshalProto (unmarshals empty slice as nil) // -> legacyAmino.MarshalJson -> `null` // `[]string` -> [proto.Marshal -> pulsar.Unmarshal] -> amino.MarshalJson -> `[]` - require.NotEqual(t, string(legacyAminoJson), string(aminoJson), - "gogo: %s vs %s", string(legacyAminoJson), string(aminoJson)) + require.Nil(t, gogo.SpendLimit) + require.Nil(t, sanityPulsar.SpendLimit) + require.NotNil(t, pulsar.SpendLimit) + require.Zero(t, len(pulsar.SpendLimit)) + + legacyAminoJson, err := encCfg.Amino.MarshalJSON(gogo) + aminoJson, err := aj.MarshalAmino(sanityPulsar) + + require.Equal(t, string(legacyAminoJson), string(aminoJson)) + + aminoJson, err = aj.MarshalAmino(pulsar) + require.NoError(t, err) + + // at this point, pulsar.SpendLimit = [], and gogo.SpendLimit = nil, but they will both marshal to `[]` + // this is *only* possible because of Cosmos SDK's custom MarshalJSON method for Coins + require.Equal(t, string(legacyAminoJson), string(aminoJson)) } func postFixPulsarMessage(msg proto.Message) { diff --git a/x/bank/types/authz.pb.go b/x/bank/types/authz.pb.go index 17131972c91b..2984aded7207 100644 --- a/x/bank/types/authz.pb.go +++ b/x/bank/types/authz.pb.go @@ -94,29 +94,30 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/authz.proto", fileDescriptor_a4d2a37888ea779f) } var fileDescriptor_a4d2a37888ea779f = []byte{ - // 339 bytes of a gzipped FileDescriptorProto + // 365 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4f, 0xce, 0x2f, 0xce, 0xcd, 0x2f, 0xd6, 0x4f, 0x4a, 0xcc, 0xcb, 0xd6, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x2c, 0x2d, 0xc9, 0xa8, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x86, 0x28, 0xd0, 0x03, 0x29, 0xd0, 0x83, 0x2a, 0x90, 0x12, 0x4c, 0xcc, 0xcd, 0xcc, 0xcb, 0xd7, 0x07, 0x93, 0x10, 0x75, 0x52, 0x22, 0xe9, 0xf9, 0xe9, 0xf9, 0x60, 0xa6, 0x3e, 0x88, 0x05, 0x15, 0x95, 0x84, 0xe8, 0x8e, 0x87, 0x48, 0x40, 0x8d, 0x82, 0x48, 0xc9, 0xc1, 0x6d, 0x2e, 0x4e, 0x85, 0xdb, 0x9c, 0x9c, - 0x9f, 0x99, 0x07, 0x91, 0x57, 0xea, 0x60, 0xe2, 0x12, 0x0c, 0x4e, 0xcd, 0x4b, 0x71, 0x2c, 0x2d, - 0xc9, 0xc8, 0x2f, 0xca, 0xac, 0x4a, 0x2c, 0xc9, 0xcc, 0xcf, 0x13, 0x2a, 0xe4, 0xe2, 0x2e, 0x2e, - 0x48, 0xcd, 0x4b, 0x89, 0xcf, 0xc9, 0xcc, 0xcd, 0x2c, 0x91, 0x60, 0x54, 0x60, 0xd6, 0xe0, 0x36, - 0x92, 0xd4, 0x83, 0x3b, 0xb2, 0x38, 0x15, 0xe6, 0x48, 0x3d, 0xe7, 0xfc, 0xcc, 0x3c, 0x27, 0xd3, - 0x13, 0xf7, 0xe4, 0x19, 0x56, 0xdd, 0x97, 0xd7, 0x48, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, - 0xce, 0xcf, 0x85, 0x3a, 0x03, 0x4a, 0xe9, 0x16, 0xa7, 0x64, 0xeb, 0x97, 0x54, 0x16, 0xa4, 0x16, - 0x83, 0x35, 0x14, 0xaf, 0x78, 0xbe, 0x41, 0x8b, 0x31, 0x88, 0x0b, 0x6c, 0x89, 0x0f, 0xc8, 0x0e, - 0x21, 0x73, 0x2e, 0xae, 0xc4, 0x9c, 0x9c, 0xfc, 0xf2, 0xf8, 0x9c, 0xcc, 0xe2, 0x12, 0x09, 0x26, - 0x05, 0x66, 0x0d, 0x4e, 0x27, 0x89, 0x4b, 0x5b, 0x74, 0x45, 0xa0, 0x96, 0x3a, 0xa6, 0xa4, 0x14, - 0xa5, 0x16, 0x17, 0x07, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x07, 0x71, 0x82, 0xd5, 0xfa, 0x64, 0x16, - 0x97, 0x58, 0xb9, 0x9f, 0xda, 0xa2, 0xab, 0x04, 0x55, 0x04, 0x09, 0x52, 0x98, 0xd3, 0x50, 0xfc, - 0xd4, 0xf5, 0x7c, 0x83, 0x96, 0x0c, 0x92, 0x63, 0x30, 0x3c, 0xed, 0xe4, 0x7c, 0xe2, 0x91, 0x1c, - 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, - 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0x9a, 0x78, 0xbd, 0x55, 0x01, 0x89, 0x56, 0xb0, 0xef, - 0x92, 0xd8, 0xc0, 0xc1, 0x6a, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x78, 0xc2, 0x7d, 0xd9, 0xf2, - 0x01, 0x00, 0x00, + 0x9f, 0x99, 0x07, 0x91, 0x57, 0x5a, 0xc8, 0xc4, 0x25, 0x18, 0x9c, 0x9a, 0x97, 0xe2, 0x58, 0x5a, + 0x92, 0x91, 0x5f, 0x94, 0x59, 0x95, 0x58, 0x92, 0x99, 0x9f, 0x27, 0xd4, 0xc9, 0xc8, 0xc5, 0x5d, + 0x5c, 0x90, 0x9a, 0x97, 0x12, 0x9f, 0x93, 0x99, 0x9b, 0x59, 0x22, 0xc1, 0xa8, 0xc0, 0xac, 0xc1, + 0x6d, 0x24, 0xa9, 0x07, 0x77, 0x65, 0x71, 0x2a, 0xcc, 0x95, 0x7a, 0xce, 0xf9, 0x99, 0x79, 0x4e, + 0xbe, 0x27, 0xee, 0xc9, 0x33, 0xac, 0xba, 0x2f, 0xaf, 0x91, 0x9e, 0x59, 0x92, 0x51, 0x9a, 0xa4, + 0x97, 0x9c, 0x9f, 0x0b, 0x75, 0x07, 0x94, 0xd2, 0x2d, 0x4e, 0xc9, 0xd6, 0x2f, 0xa9, 0x2c, 0x48, + 0x2d, 0x06, 0x6b, 0x28, 0x9e, 0xf5, 0x7c, 0x83, 0x96, 0x70, 0x5e, 0x69, 0x4e, 0x4e, 0x7c, 0x71, + 0x4e, 0x66, 0x72, 0x6a, 0x7c, 0x62, 0x71, 0x7c, 0x6a, 0x6e, 0x41, 0x49, 0xe5, 0x8a, 0xe7, 0x1b, + 0xb4, 0x18, 0x83, 0xb8, 0xc0, 0x96, 0xfb, 0x80, 0xec, 0x16, 0x32, 0xe7, 0xe2, 0x4a, 0xcc, 0xc9, + 0xc9, 0x2f, 0x8f, 0xcf, 0xc9, 0x2c, 0x2e, 0x91, 0x60, 0x52, 0x60, 0xd6, 0xe0, 0x74, 0x92, 0xb8, + 0xb4, 0x45, 0x57, 0x04, 0xea, 0x18, 0xc7, 0x94, 0x94, 0xa2, 0xd4, 0xe2, 0xe2, 0xe0, 0x92, 0xa2, + 0xcc, 0xbc, 0xf4, 0x20, 0x4e, 0xb0, 0x5a, 0x9f, 0xcc, 0xe2, 0x12, 0x2b, 0xf7, 0x53, 0x5b, 0x74, + 0x95, 0xa0, 0x8a, 0x20, 0x61, 0x0d, 0x73, 0x32, 0x8a, 0x67, 0xbb, 0x9e, 0x6f, 0xd0, 0x92, 0x41, + 0x72, 0x24, 0x46, 0x68, 0x38, 0x39, 0x9f, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, + 0x47, 0x72, 0x8c, 0x13, 0x1e, 0xcb, 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, + 0x94, 0x26, 0x5e, 0xef, 0x56, 0x40, 0xe2, 0x1b, 0xec, 0xeb, 0x24, 0x36, 0x70, 0x78, 0x1b, 0x03, + 0x02, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x32, 0xe9, 0x50, 0x0b, 0x02, 0x00, 0x00, } func (m *SendAuthorization) Marshal() (dAtA []byte, err error) { diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 641f34a8aed9..6778ea46fb51 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -19,13 +19,13 @@ import ( ) type MessageEncoder func(protoreflect.Message, io.Writer) error -type FieldEncoder func(protoreflect.Value, io.Writer) error +type FieldEncoder func(AminoJSON, protoreflect.Value, io.Writer) error type AminoJSON struct { // maps cosmos_proto.scalar -> zero value factory zeroValues map[string]func() protoreflect.Value messageEncoders map[string]MessageEncoder - encodings map[string]FieldEncoder + fieldEncoders map[string]FieldEncoder } func NewAminoJSON() AminoJSON { @@ -54,12 +54,12 @@ func NewAminoJSON() AminoJSON { }, "module_account": moduleAccountEncoder, }, - encodings: map[string]FieldEncoder{ - "empty_string": func(v protoreflect.Value, writer io.Writer) error { + fieldEncoders: map[string]FieldEncoder{ + "empty_string": func(_ AminoJSON, v protoreflect.Value, writer io.Writer) error { _, err := writer.Write([]byte(`""`)) return err }, - "json_default": func(v protoreflect.Value, writer io.Writer) error { + "json_default": func(_ AminoJSON, v protoreflect.Value, writer io.Writer) error { switch val := v.Interface().(type) { case string, bool, int32, uint32, uint64, int64, protoreflect.EnumNumber: return jsonMarshal(writer, val) @@ -67,6 +67,19 @@ func NewAminoJSON() AminoJSON { return fmt.Errorf("unsupported type %T", val) } }, + // created to replicate: https://github.com/cosmos/cosmos-sdk/blob/be9bd7a8c1b41b115d58f4e76ee358e18a52c0af/types/coin.go#L199-L205 + "null_slice_as_empty": func(aj AminoJSON, v protoreflect.Value, writer io.Writer) error { + switch list := v.Interface().(type) { + case protoreflect.List: + if list.Len() == 0 { + _, err := writer.Write([]byte("[]")) + return err + } + return aj.marshalList(list, writer) + default: + return fmt.Errorf("unsupported type %T", list) + } + }, }, } return aj @@ -77,7 +90,7 @@ func (aj AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) { } func (aj AminoJSON) DefineFieldEncoding(name string, encoder FieldEncoder) { - aj.encodings[name] = encoder + aj.fieldEncoders[name] = encoder } func (aj AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { @@ -125,6 +138,10 @@ func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { return errors.New("maps are not supported") case protoreflect.List: + if !val.IsValid() { + _, err := writer.Write([]byte("null")) + return err + } return aj.marshalList(val, writer) case string, bool, int32, uint32, protoreflect.EnumNumber: @@ -185,7 +202,7 @@ func (aj AminoJSON) marshalEmbedded(msg protoreflect.Message, writer io.Writer) // encode value if encoder := aj.getFieldEncoding(f); encoder != nil { - err = encoder(v, writer) + err = encoder(aj, v, writer) if err != nil { return wrote, err } @@ -233,6 +250,7 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e f := fields.Get(i) v := msg.Get(f) name := getFieldName(f) + writeNil := false if !msg.Has(f) { if omitEmpty(f) { @@ -242,13 +260,11 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e if found { v = zv } else if f.Cardinality() == protoreflect.Repeated { - // TODO - // not sure yet fmt.Printf("WARN: not supported: dont_omit_empty=true on empty repeated field: %s\n", name) - //return errors.Errorf("not supported: dont_omit_empty=true on empty repeated field: %s", name) + //writeNil = true } else if f.Kind() == protoreflect.MessageKind && !v.Message().IsValid() { - //return errors.Errorf("not supported: dont_omit_empty=true on invalid (nil?) message field: %s", name) - fmt.Printf("WARN: not supported: dont_omit_empty=true on invalid (nil?) message field: %s\n", name) + return errors.Errorf("not supported: dont_omit_empty=true on invalid (nil?) message field: %s", name) + //fmt.Printf("WARN: not supported: dont_omit_empty=true on invalid (nil?) message field: %s\n", name) } } } @@ -283,7 +299,12 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e // encode value if encoder := aj.getFieldEncoding(f); encoder != nil { - err = encoder(v, writer) + err = encoder(aj, v, writer) + if err != nil { + return err + } + } else if writeNil { + _, err = writer.Write([]byte("null")) if err != nil { return err } @@ -411,7 +432,7 @@ func (aj AminoJSON) getFieldEncoding(field protoreflect.FieldDescriptor) FieldEn opts := field.Options() if proto.HasExtension(opts, amino.E_Encoding) { enc := proto.GetExtension(opts, amino.E_Encoding).(string) - if fn, ok := aj.encodings[enc]; ok { + if fn, ok := aj.fieldEncoders[enc]; ok { return fn } } diff --git a/x/tx/aminojson/json_marshal_test.go b/x/tx/aminojson/json_marshal_test.go index 9088fa2b54b7..ec3ca2b30797 100644 --- a/x/tx/aminojson/json_marshal_test.go +++ b/x/tx/aminojson/json_marshal_test.go @@ -25,6 +25,29 @@ func marshalLegacy(msg proto.Message) ([]byte, error) { return cdc.MarshalJSON(msg) } +func TestAminoJSON_EmptyLists(t *testing.T) { + aj := aminojson.NewAminoJSON() + + cases := map[string]struct { + msg proto.Message + shouldErr bool + }{ + "all_nil": {msg: &testpb.WithAList{}}, + "empty_dont_omit_empty": {msg: &testpb.WithAList{DontOmitemptyList: []string{}}}, + } + for name, tc := range cases { + t.Run(name, func(t *testing.T) { + bz, err := aj.MarshalAmino(tc.msg) + require.NoError(t, err) + + legacyBz, err := marshalLegacy(tc.msg) + require.NoError(t, err) + + require.Equal(t, string(legacyBz), string(bz)) + }) + } +} + func TestAminoJSON_EdgeCases(t *testing.T) { cdc := amino.NewCodec() diff --git a/x/tx/rapidproto/rapidproto.go b/x/tx/rapidproto/rapidproto.go index c4c88f9960d3..cffa1994b9c5 100644 --- a/x/tx/rapidproto/rapidproto.go +++ b/x/tx/rapidproto/rapidproto.go @@ -24,9 +24,13 @@ func MessageGenerator[T proto.Message](x T, options GeneratorOptions) *rapid.Gen } type GeneratorOptions struct { - AnyTypeURLs []string - InterfaceHints map[string]string - Resolver protoregistry.MessageTypeResolver + AnyTypeURLs []string + InterfaceHints map[string]string + Resolver protoregistry.MessageTypeResolver + // NoEmptyLists will cause the generator to not generate empty lists + // Recall that an empty list will marshal (and unmarshal) to null. Some encodings may treat these states + // differently. For example, in JSON, an empty list is encoded as [], while null is encoded as null. + NoEmptyLists bool DisallowNilMessages bool } @@ -81,7 +85,7 @@ func (opts GeneratorOptions) setFields( for i := 0; i < n; i++ { f := fields.Get(i) if !rapid.Bool().Draw(t, fmt.Sprintf("gen-%s", f.Name())) { - if (f.Kind() == protoreflect.MessageKind || f.IsList()) && !opts.DisallowNilMessages { + if (f.Kind() == protoreflect.MessageKind) && !opts.DisallowNilMessages { continue } } @@ -107,7 +111,7 @@ func (opts GeneratorOptions) setFieldValue(t *rapid.T, msg protoreflect.Message, case field.IsList(): list := msg.Mutable(field).List() min := 0 - if opts.DisallowNilMessages { + if opts.NoEmptyLists { min = 1 } n := rapid.IntRange(min, 10).Draw(t, fmt.Sprintf("%sN", name)) From ee137a5a71e277ed9716d8bdd7341ca7dc994f65 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sat, 11 Feb 2023 09:44:40 -0700 Subject: [PATCH 055/122] add requires back --- tests/go.mod | 8 ++++++-- x/tx/go.sum | 42 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 46 insertions(+), 4 deletions(-) diff --git a/tests/go.mod b/tests/go.mod index a3e297b12f6a..249796a6fe6e 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -27,6 +27,11 @@ require ( pgregory.net/rapid v0.5.5 ) +require ( + cosmossdk.io/x/tx v0.1.0 + github.com/tendermint/go-amino v0.16.0 +) + require ( cloud.google.com/go v0.107.0 // indirect cloud.google.com/go/compute v1.15.1 // indirect @@ -37,7 +42,6 @@ require ( cosmossdk.io/collections v0.0.0-20230204135315-697871069999 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/errors v1.0.0-beta.7 // indirect - cosmossdk.io/x/tx v0.1.0 // indirect filippo.io/edwards25519 v1.0.0-rc.1 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -156,7 +160,6 @@ require ( github.com/subosito/gotenv v1.4.2 // indirect github.com/syndtr/goleveldb v1.0.1-0.20220721030215-126854af5e6d // indirect github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect - github.com/tendermint/go-amino v0.16.0 // indirect github.com/tidwall/btree v1.6.0 // indirect github.com/ulikunitz/xz v0.5.8 // indirect github.com/zondax/hid v0.9.1 // indirect @@ -191,6 +194,7 @@ replace ( cosmossdk.io/x/evidence => ../x/evidence cosmossdk.io/x/feegrant => ../x/feegrant cosmossdk.io/x/nft => ../x/nft + cosmossdk.io/x/tx => ../x/tx cosmossdk.io/x/upgrade => ../x/upgrade // This can be deleted after the CometBFT PR is merged github.com/cometbft/cometbft => github.com/cometbft/cometbft v0.0.0-20230203130311-387422ac220d diff --git a/x/tx/go.sum b/x/tx/go.sum index 2bcc8804f62f..60a835ccb91e 100644 --- a/x/tx/go.sum +++ b/x/tx/go.sum @@ -11,45 +11,83 @@ github.com/cosmos/gogoproto v1.4.4/go.mod h1:/yl6/nLwsZcZ2JY3OrqjRqvqCG9InUMcXRf github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf h1:+RRA9JqSOZFfKrOeqr2z77+8R2RKyh8PG66dcu1V0ck= +github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= +github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20230203172020-98cc5a0785f9 h1:frX3nT9RkKybPnjyI+yvZh6ZucTZatCCEm9D47sZ2zo= golang.org/x/exp v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.5.0 h1:GyT4nK/YDHSqa1c4753ouYCDajOYKTja9Xb/OHtgvSw= golang.org/x/net v0.5.0/go.mod h1:DivGGAXEgPSlEBzxGzZI+ZLohi+xUj054jfeKui00ws= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.6.0 h1:3XmdazWV+ubf7QgHSTWeykHOci5oeekaGJBLkrkaw4k= golang.org/x/text v0.6.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20230202175211-008b39050e57 h1:vArvWooPH749rNHpBGgVl+U9B9dATjiEhJzcWGlovNs= google.golang.org/genproto v0.0.0-20230202175211-008b39050e57/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 h1:KR8+MyP7/qOlV+8Af01LtjL04bu7on42eVsxT4EyBQk= +google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= +gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= +pgregory.net/rapid v0.5.3 h1:163N50IHFqr1phZens4FQOdPgfJscR7a562mjQqeo4M= +pgregory.net/rapid v0.5.3/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= From 9911efa7d313d50935ff6da30c3d6708a5f649b1 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sat, 11 Feb 2023 09:45:34 -0700 Subject: [PATCH 056/122] remove empty list tests --- x/tx/aminojson/json_marshal_test.go | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/x/tx/aminojson/json_marshal_test.go b/x/tx/aminojson/json_marshal_test.go index ec3ca2b30797..9088fa2b54b7 100644 --- a/x/tx/aminojson/json_marshal_test.go +++ b/x/tx/aminojson/json_marshal_test.go @@ -25,29 +25,6 @@ func marshalLegacy(msg proto.Message) ([]byte, error) { return cdc.MarshalJSON(msg) } -func TestAminoJSON_EmptyLists(t *testing.T) { - aj := aminojson.NewAminoJSON() - - cases := map[string]struct { - msg proto.Message - shouldErr bool - }{ - "all_nil": {msg: &testpb.WithAList{}}, - "empty_dont_omit_empty": {msg: &testpb.WithAList{DontOmitemptyList: []string{}}}, - } - for name, tc := range cases { - t.Run(name, func(t *testing.T) { - bz, err := aj.MarshalAmino(tc.msg) - require.NoError(t, err) - - legacyBz, err := marshalLegacy(tc.msg) - require.NoError(t, err) - - require.Equal(t, string(legacyBz), string(bz)) - }) - } -} - func TestAminoJSON_EdgeCases(t *testing.T) { cdc := amino.NewCodec() From 501cb90c99284f8cb13ab619bc4926b6906912a7 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sat, 11 Feb 2023 18:39:23 -0700 Subject: [PATCH 057/122] incorporate changes from #14994 so that x/tx compiles with x/auth --- x/auth/tx/config.go | 5 +- x/auth/tx/config/textual.go | 9 ++-- x/auth/tx/encode_decode_test.go | 2 +- x/auth/tx/mode_handler.go | 5 +- x/auth/tx/textual.go | 33 +++++++++--- x/auth/types/auth.pb.go | 94 ++++++++++++++++----------------- 6 files changed, 84 insertions(+), 64 deletions(-) diff --git a/x/auth/tx/config.go b/x/auth/tx/config.go index 5193f1b745d7..0ebeba9b3534 100644 --- a/x/auth/tx/config.go +++ b/x/auth/tx/config.go @@ -4,6 +4,7 @@ import ( "fmt" "cosmossdk.io/x/tx/textual" + "github.com/cosmos/cosmos-sdk/client" "github.com/cosmos/cosmos-sdk/codec" sdk "github.com/cosmos/cosmos-sdk/types" @@ -33,13 +34,13 @@ func NewTxConfig(protoCodec codec.ProtoCodecMarshaler, enabledSignModes []signin } } - return NewTxConfigWithHandler(protoCodec, makeSignModeHandler(enabledSignModes, textual.NewTextual(nil))) + return NewTxConfigWithHandler(protoCodec, makeSignModeHandler(enabledSignModes, &textual.SignModeHandler{})) } // NewTxConfigWithTextual is like NewTxConfig with the ability to add // a SIGN_MODE_TEXTUAL renderer. It is currently still EXPERIMENTAL, for should // be used for TESTING purposes only, until Textual is fully released. -func NewTxConfigWithTextual(protoCodec codec.ProtoCodecMarshaler, enabledSignModes []signingtypes.SignMode, textual textual.Textual) client.TxConfig { +func NewTxConfigWithTextual(protoCodec codec.ProtoCodecMarshaler, enabledSignModes []signingtypes.SignMode, textual *textual.SignModeHandler) client.TxConfig { return NewTxConfigWithHandler(protoCodec, makeSignModeHandler(enabledSignModes, textual)) } diff --git a/x/auth/tx/config/textual.go b/x/auth/tx/config/textual.go index 0d6315f4cf5a..3fe02f845b31 100644 --- a/x/auth/tx/config/textual.go +++ b/x/auth/tx/config/textual.go @@ -9,6 +9,7 @@ import ( bankv1beta1 "cosmossdk.io/api/cosmos/bank/v1beta1" "cosmossdk.io/x/tx/textual" + "github.com/cosmos/cosmos-sdk/x/bank/types" ) @@ -20,8 +21,8 @@ import ( // // clientCtx := client.GetClientContextFromCmd(cmd) // txt := tx.NewTextualWithGRPCConn(clientCtxx) -func NewTextualWithGRPCConn(grpcConn grpc.ClientConnInterface) textual.Textual { - return textual.NewTextual(func(ctx context.Context, denom string) (*bankv1beta1.Metadata, error) { +func NewTextualWithGRPCConn(grpcConn grpc.ClientConnInterface) *textual.SignModeHandler { + return textual.NewSignModeHandler(func(ctx context.Context, denom string) (*bankv1beta1.Metadata, error) { bankQueryClient := bankv1beta1.NewQueryClient(grpcConn) res, err := bankQueryClient.DenomMetadata(ctx, &bankv1beta1.QueryDenomMetadataRequest{ Denom: denom, @@ -40,8 +41,8 @@ func NewTextualWithGRPCConn(grpcConn grpc.ClientConnInterface) textual.Textual { // Note: Once we switch to ADR-033, and keepers become ADR-033 clients to each // other, this function could probably be deprecated in favor of // `NewTextualWithGRPCConn`. -func NewTextualWithBankKeeper(bk BankKeeper) textual.Textual { - textual := textual.NewTextual(func(ctx context.Context, denom string) (*bankv1beta1.Metadata, error) { +func NewTextualWithBankKeeper(bk BankKeeper) *textual.SignModeHandler { + textual := textual.NewSignModeHandler(func(ctx context.Context, denom string) (*bankv1beta1.Metadata, error) { res, err := bk.DenomMetadata(ctx, &types.QueryDenomMetadataRequest{Denom: denom}) if err != nil { return nil, metadataExists(err) diff --git a/x/auth/tx/encode_decode_test.go b/x/auth/tx/encode_decode_test.go index f4297770959c..9d7512ffd064 100644 --- a/x/auth/tx/encode_decode_test.go +++ b/x/auth/tx/encode_decode_test.go @@ -32,7 +32,7 @@ func TestDefaultTxDecoderError(t *testing.T) { require.NoError(t, err) _, err = decoder(txBz) - require.EqualError(t, err, "unable to resolve type URL /testpb.TestMsg: tx parse error") + require.EqualError(t, err, "unable to resolve type URL /testdata.TestMsg: tx parse error") testdata.RegisterInterfaces(registry) _, err = decoder(txBz) diff --git a/x/auth/tx/mode_handler.go b/x/auth/tx/mode_handler.go index 9f33c1ef652a..8b0e79914cdf 100644 --- a/x/auth/tx/mode_handler.go +++ b/x/auth/tx/mode_handler.go @@ -4,6 +4,7 @@ import ( "fmt" "cosmossdk.io/x/tx/textual" + signingtypes "github.com/cosmos/cosmos-sdk/types/tx/signing" "github.com/cosmos/cosmos-sdk/x/auth/signing" ) @@ -23,7 +24,7 @@ var DefaultSignModes = []signingtypes.SignMode{ // makeSignModeHandler returns the default protobuf SignModeHandler supporting // SIGN_MODE_DIRECT, SIGN_MODE_DIRECT_AUX and SIGN_MODE_LEGACY_AMINO_JSON. -func makeSignModeHandler(modes []signingtypes.SignMode, txt textual.Textual) signing.SignModeHandler { +func makeSignModeHandler(modes []signingtypes.SignMode, txt *textual.SignModeHandler) signing.SignModeHandler { if len(modes) < 1 { panic(fmt.Errorf("no sign modes enabled")) } @@ -37,7 +38,7 @@ func makeSignModeHandler(modes []signingtypes.SignMode, txt textual.Textual) sig case signingtypes.SignMode_SIGN_MODE_LEGACY_AMINO_JSON: handlers[i] = signModeLegacyAminoJSONHandler{} case signingtypes.SignMode_SIGN_MODE_TEXTUAL: - handlers[i] = signModeTextualHandler{t: txt} + handlers[i] = signModeTextualHandler{t: *txt} case signingtypes.SignMode_SIGN_MODE_DIRECT_AUX: handlers[i] = signModeDirectAuxHandler{} default: diff --git a/x/auth/tx/textual.go b/x/auth/tx/textual.go index 3abc9f8acda7..890d5c9a079c 100644 --- a/x/auth/tx/textual.go +++ b/x/auth/tx/textual.go @@ -4,11 +4,15 @@ import ( "context" "fmt" + txv1beta1 "cosmossdk.io/api/cosmos/tx/v1beta1" "cosmossdk.io/x/tx/textual" - signingtypes "github.com/cosmos/cosmos-sdk/types/tx/signing" + "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/anypb" + signingtypes "github.com/cosmos/cosmos-sdk/types/tx/signing" + txsigning "cosmossdk.io/x/tx/signing" + codectypes "github.com/cosmos/cosmos-sdk/codec/types" sdk "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/x/auth/signing" @@ -19,7 +23,7 @@ import ( // for TESTING purposes. It will be enabled once SIGN_MODE_TEXTUAL is fully // released, see https://github.com/cosmos/cosmos-sdk/issues/11970. type signModeTextualHandler struct { - t textual.Textual + t textual.SignModeHandler } var _ signing.SignModeHandler = signModeTextualHandler{} @@ -50,15 +54,30 @@ func (h signModeTextualHandler) GetSignBytesWithContext(ctx context.Context, mod return nil, fmt.Errorf("can only handle a protobuf Tx, got %T", tx) } - bodyBz := protoTx.getBodyBytes() - authInfoBz := protoTx.getAuthInfoBytes() - pbAny, err := codectypes.NewAnyWithValue(data.PubKey) if err != nil { return nil, err } - return h.t.GetSignBytes(ctx, bodyBz, authInfoBz, txsigning.SignerData{ + txBody := &txv1beta1.TxBody{} + txAuthInfo := &txv1beta1.AuthInfo{} + err = proto.Unmarshal(protoTx.getBodyBytes(), txBody) + if err != nil { + return nil, err + } + err = proto.Unmarshal(protoTx.getAuthInfoBytes(), txAuthInfo) + if err != nil { + return nil, err + } + + txData := txsigning.TxData{ + Body: txBody, + AuthInfo: txAuthInfo, + BodyBytes: protoTx.getBodyBytes(), + AuthInfoBytes: protoTx.getAuthInfoBytes(), + } + + return h.t.GetSignBytes(ctx, txsigning.SignerData{ Address: data.Address, ChainId: data.ChainID, AccountNumber: data.AccountNumber, @@ -67,5 +86,5 @@ func (h signModeTextualHandler) GetSignBytesWithContext(ctx context.Context, mod TypeUrl: pbAny.TypeUrl, Value: pbAny.Value, }, - }) + }, txData) } diff --git a/x/auth/types/auth.pb.go b/x/auth/types/auth.pb.go index 4c870906ebe8..7c4bbe2cf1d7 100644 --- a/x/auth/types/auth.pb.go +++ b/x/auth/types/auth.pb.go @@ -254,54 +254,52 @@ func init() { func init() { proto.RegisterFile("cosmos/auth/v1beta1/auth.proto", fileDescriptor_7e1f7e915d020d2d) } var fileDescriptor_7e1f7e915d020d2d = []byte{ - // 740 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x54, 0x41, 0x6f, 0xe3, 0x44, - 0x18, 0x8d, 0x93, 0x6c, 0x97, 0x4e, 0xba, 0x85, 0x7a, 0x43, 0x71, 0x23, 0x14, 0x67, 0x23, 0xc1, - 0x86, 0x88, 0xda, 0x24, 0xa8, 0x48, 0xe4, 0x56, 0x07, 0x84, 0x50, 0x69, 0xa9, 0x1c, 0xd1, 0x43, - 0x2f, 0xd6, 0xd8, 0x99, 0xba, 0xa3, 0x66, 0x3c, 0xc6, 0x33, 0xae, 0xe2, 0x9e, 0x39, 0x54, 0x9c, - 0x10, 0xbf, 0xa0, 0x70, 0xe2, 0x98, 0x43, 0x7f, 0x04, 0xe2, 0x54, 0x71, 0x81, 0x53, 0x84, 0xd2, - 0x43, 0x2a, 0xfe, 0x04, 0xc8, 0x33, 0x4e, 0x93, 0x74, 0x73, 0x89, 0x32, 0xef, 0xbd, 0xef, 0xfb, - 0xde, 0xf7, 0x3c, 0x36, 0xa8, 0x7a, 0x94, 0x11, 0xca, 0x4c, 0x18, 0xf3, 0x73, 0xf3, 0xb2, 0xe5, - 0x22, 0x0e, 0x5b, 0xe2, 0x60, 0x84, 0x11, 0xe5, 0x54, 0x7d, 0x29, 0x79, 0x43, 0x40, 0x19, 0x5f, - 0xd9, 0x82, 0x04, 0x07, 0xd4, 0x14, 0xbf, 0x52, 0x57, 0xd9, 0x91, 0x3a, 0x47, 0x9c, 0xcc, 0xac, - 0x48, 0x52, 0x65, 0x9f, 0xfa, 0x54, 0xe2, 0xe9, 0xbf, 0x59, 0x81, 0x4f, 0xa9, 0x3f, 0x40, 0xa6, - 0x38, 0xb9, 0xf1, 0x99, 0x09, 0x83, 0x44, 0x52, 0xf5, 0x5f, 0xf2, 0xa0, 0x64, 0x41, 0x86, 0xf6, - 0x3d, 0x8f, 0xc6, 0x01, 0x57, 0xdb, 0xe0, 0x39, 0xec, 0xf7, 0x23, 0xc4, 0x98, 0xa6, 0xd4, 0x94, - 0xc6, 0xba, 0xa5, 0xfd, 0x79, 0xbb, 0x5b, 0xce, 0x66, 0xec, 0x4b, 0xa6, 0xc7, 0x23, 0x1c, 0xf8, - 0xf6, 0x4c, 0xa8, 0x9e, 0x80, 0xe7, 0x61, 0xec, 0x3a, 0x17, 0x28, 0xd1, 0xf2, 0x35, 0xa5, 0x51, - 0x6a, 0x97, 0x0d, 0x39, 0xd0, 0x98, 0x0d, 0x34, 0xf6, 0x83, 0xc4, 0x7a, 0xfd, 0xef, 0x58, 0x2f, - 0x87, 0xb1, 0x3b, 0xc0, 0x5e, 0xaa, 0xfd, 0x98, 0x12, 0xcc, 0x11, 0x09, 0x79, 0xf2, 0xeb, 0x74, - 0xd4, 0x04, 0x73, 0xc2, 0x5e, 0x0b, 0x63, 0xf7, 0x00, 0x25, 0xea, 0x07, 0x60, 0x13, 0x4a, 0x5b, - 0x4e, 0x10, 0x13, 0x17, 0x45, 0x5a, 0xa1, 0xa6, 0x34, 0x8a, 0xf6, 0x8b, 0x0c, 0x3d, 0x12, 0xa0, - 0x5a, 0x01, 0x6f, 0x31, 0xf4, 0x7d, 0x8c, 0x02, 0x0f, 0x69, 0x45, 0x21, 0x78, 0x3c, 0x77, 0xba, - 0xd7, 0x37, 0x7a, 0xee, 0xe1, 0x46, 0xcf, 0xfd, 0x71, 0xbb, 0xfb, 0xfe, 0x8a, 0x78, 0x8d, 0x6c, - 0xef, 0xaf, 0x7f, 0x9c, 0x8e, 0x9a, 0xdb, 0x52, 0xb0, 0xcb, 0xfa, 0x17, 0xe6, 0x42, 0x26, 0xf5, - 0xff, 0x14, 0xf0, 0xe2, 0x90, 0xf6, 0xe3, 0xc1, 0x63, 0x4a, 0x47, 0x60, 0xc3, 0x85, 0x0c, 0x39, - 0x99, 0x11, 0x11, 0x55, 0xa9, 0x5d, 0x33, 0x56, 0x4d, 0x58, 0xe8, 0x64, 0xad, 0xdf, 0x8d, 0x75, - 0x65, 0x34, 0x1d, 0x35, 0x15, 0xbb, 0xe4, 0x2e, 0xa4, 0xbe, 0x03, 0x8a, 0x01, 0x24, 0x48, 0xc4, - 0xb7, 0x6e, 0x3d, 0xfb, 0x4d, 0x28, 0x04, 0xa4, 0xbe, 0x06, 0xa5, 0x10, 0x45, 0x04, 0x33, 0x86, - 0x69, 0xc0, 0xb4, 0x42, 0xad, 0x30, 0x57, 0x2c, 0x32, 0x9d, 0xd3, 0x6b, 0xb9, 0x66, 0x7d, 0x95, - 0x89, 0x25, 0xfb, 0x62, 0x59, 0x6d, 0x61, 0xd9, 0x25, 0xf6, 0xe7, 0xe9, 0xa8, 0xb9, 0x49, 0x04, - 0x32, 0xdb, 0xaf, 0xfe, 0x83, 0x02, 0xde, 0x91, 0xa2, 0x6e, 0x84, 0xfa, 0x28, 0xe0, 0x18, 0x0e, - 0x54, 0x1d, 0x94, 0x32, 0x99, 0xf0, 0x2e, 0xae, 0x8b, 0x0d, 0x24, 0x74, 0x24, 0xad, 0xbf, 0xdd, - 0x47, 0x11, 0xbe, 0x84, 0x1c, 0xd3, 0x20, 0x7d, 0xb2, 0x4c, 0xcb, 0xd7, 0x0a, 0x8d, 0x0d, 0x7b, - 0x73, 0x0e, 0x1f, 0xa0, 0x84, 0x75, 0x3e, 0x4c, 0x0d, 0xbd, 0x5a, 0x30, 0xf4, 0x55, 0x44, 0xe3, - 0x30, 0xf3, 0x33, 0x9f, 0x58, 0xff, 0x2b, 0x0f, 0xd6, 0x8e, 0x61, 0x04, 0x09, 0x53, 0x0d, 0xf0, - 0x92, 0xc0, 0xa1, 0x43, 0x10, 0xa1, 0x8e, 0x77, 0x0e, 0x23, 0xe8, 0x71, 0x14, 0xc9, 0x3b, 0x5b, - 0xb4, 0xb7, 0x08, 0x1c, 0x1e, 0x22, 0x42, 0xbb, 0x8f, 0x84, 0x5a, 0x03, 0x1b, 0x7c, 0xe8, 0x30, - 0xec, 0x3b, 0x03, 0x4c, 0x30, 0x17, 0x49, 0x17, 0x6d, 0xc0, 0x87, 0x3d, 0xec, 0x7f, 0x93, 0x22, - 0xea, 0x27, 0xe0, 0x5d, 0xa1, 0xb8, 0x42, 0x8e, 0x47, 0x19, 0x77, 0x42, 0x14, 0x39, 0x6e, 0xc2, - 0x51, 0x76, 0xe9, 0xb6, 0x52, 0xe9, 0x15, 0xea, 0x52, 0xc6, 0x8f, 0x51, 0x64, 0x25, 0x1c, 0xa9, - 0xdf, 0x82, 0xf7, 0xd2, 0x86, 0x97, 0x28, 0xc2, 0x67, 0x89, 0x2c, 0x42, 0xfd, 0xf6, 0xde, 0x5e, - 0xeb, 0x73, 0x79, 0x0f, 0x2d, 0x6d, 0x32, 0xd6, 0xcb, 0x3d, 0xec, 0x9f, 0x08, 0x45, 0x5a, 0xfa, - 0xe5, 0x17, 0x82, 0xb7, 0xcb, 0x6c, 0x09, 0x95, 0x55, 0xea, 0x77, 0x60, 0xe7, 0x69, 0x43, 0x86, - 0xbc, 0xb0, 0xbd, 0xf7, 0xd9, 0x45, 0x4b, 0x7b, 0x26, 0x5a, 0x56, 0x26, 0x63, 0x7d, 0x7b, 0xa9, - 0x65, 0x6f, 0xa6, 0xb0, 0xb7, 0xd9, 0x4a, 0xbc, 0xf3, 0xea, 0xe1, 0x46, 0x57, 0x9e, 0x3e, 0xf3, - 0xa1, 0xfc, 0x0c, 0xc9, 0x38, 0xad, 0xee, 0xef, 0x93, 0xaa, 0x72, 0x37, 0xa9, 0x2a, 0xff, 0x4c, - 0xaa, 0xca, 0x4f, 0xf7, 0xd5, 0xdc, 0xdd, 0x7d, 0x35, 0xf7, 0xf7, 0x7d, 0x35, 0x77, 0xfa, 0x91, - 0x8f, 0xf9, 0x79, 0xec, 0x1a, 0x1e, 0x25, 0xd9, 0xa7, 0xc6, 0x7c, 0xb3, 0x0b, 0x4f, 0x42, 0xc4, - 0xdc, 0x35, 0xf1, 0xba, 0x7f, 0xfa, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xba, 0xca, 0x7d, 0xc7, - 0xe8, 0x04, 0x00, 0x00, + // 707 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x54, 0xcf, 0x4e, 0xe3, 0x46, + 0x1c, 0x8e, 0x93, 0x14, 0xca, 0x04, 0x68, 0x31, 0x29, 0x35, 0x51, 0x15, 0xbb, 0x91, 0x2a, 0x52, + 0x54, 0xec, 0x26, 0x15, 0x95, 0xca, 0x8d, 0xa4, 0x55, 0x85, 0x28, 0x14, 0x39, 0x5a, 0x0e, 0xab, + 0x95, 0xac, 0xb1, 0x33, 0x98, 0x11, 0x19, 0x8f, 0xd7, 0x33, 0x46, 0x31, 0x4f, 0x80, 0xf6, 0xb4, + 0x8f, 0xc0, 0xee, 0x13, 0x70, 0xe0, 0x21, 0x56, 0x7b, 0x42, 0x7b, 0xd9, 0xdd, 0x4b, 0xb4, 0x0a, + 0x07, 0xd0, 0x3e, 0xc5, 0xca, 0x33, 0x0e, 0x24, 0x6c, 0x2e, 0x91, 0x7f, 0xdf, 0xf7, 0xfd, 0xfe, + 0x7d, 0xfe, 0xc5, 0xa0, 0xea, 0x51, 0x46, 0x28, 0xb3, 0x60, 0xcc, 0x8f, 0xad, 0xd3, 0x86, 0x8b, + 0x38, 0x6c, 0x88, 0xc0, 0x0c, 0x23, 0xca, 0xa9, 0xba, 0x2c, 0x79, 0x53, 0x40, 0x19, 0x5f, 0x59, + 0x82, 0x04, 0x07, 0xd4, 0x12, 0xbf, 0x52, 0x57, 0x59, 0x95, 0x3a, 0x47, 0x44, 0x56, 0x96, 0x24, + 0xa9, 0xb2, 0x4f, 0x7d, 0x2a, 0xf1, 0xf4, 0x69, 0x94, 0xe0, 0x53, 0xea, 0xf7, 0x90, 0x25, 0x22, + 0x37, 0x3e, 0xb2, 0x60, 0x90, 0x48, 0xaa, 0xf6, 0x2a, 0x0f, 0x4a, 0x2d, 0xc8, 0xd0, 0xb6, 0xe7, + 0xd1, 0x38, 0xe0, 0x6a, 0x13, 0xcc, 0xc2, 0x6e, 0x37, 0x42, 0x8c, 0x69, 0x8a, 0xa1, 0xd4, 0xe7, + 0x5a, 0xda, 0xbb, 0xab, 0x8d, 0x72, 0xd6, 0x63, 0x5b, 0x32, 0x1d, 0x1e, 0xe1, 0xc0, 0xb7, 0x47, + 0x42, 0xf5, 0x10, 0xcc, 0x86, 0xb1, 0xeb, 0x9c, 0xa0, 0x44, 0xcb, 0x1b, 0x4a, 0xbd, 0xd4, 0x2c, + 0x9b, 0xb2, 0xa1, 0x39, 0x6a, 0x68, 0x6e, 0x07, 0x49, 0x6b, 0xed, 0xf3, 0x40, 0x2f, 0x87, 0xb1, + 0xdb, 0xc3, 0x5e, 0xaa, 0xfd, 0x8d, 0x12, 0xcc, 0x11, 0x09, 0x79, 0xf2, 0xfa, 0xf6, 0x72, 0x1d, + 0x3c, 0x10, 0xf6, 0x4c, 0x18, 0xbb, 0xbb, 0x28, 0x51, 0x7f, 0x01, 0x8b, 0x50, 0x8e, 0xe5, 0x04, + 0x31, 0x71, 0x51, 0xa4, 0x15, 0x0c, 0xa5, 0x5e, 0xb4, 0x17, 0x32, 0x74, 0x5f, 0x80, 0x6a, 0x05, + 0x7c, 0xcb, 0xd0, 0xf3, 0x18, 0x05, 0x1e, 0xd2, 0x8a, 0x42, 0x70, 0x1f, 0x6f, 0xb5, 0xcf, 0x2f, + 0xf4, 0xdc, 0xdd, 0x85, 0x9e, 0x7b, 0x7b, 0xb5, 0xf1, 0xd3, 0x14, 0x7b, 0xcd, 0x6c, 0xef, 0x9d, + 0x17, 0xb7, 0x97, 0xeb, 0x2b, 0x52, 0xb0, 0xc1, 0xba, 0x27, 0xd6, 0x98, 0x27, 0xb5, 0x8f, 0x0a, + 0x58, 0xd8, 0xa3, 0xdd, 0xb8, 0x77, 0xef, 0xd2, 0x0e, 0x98, 0x77, 0x21, 0x43, 0x4e, 0x36, 0x88, + 0xb0, 0xaa, 0xd4, 0x34, 0xcc, 0x69, 0x1d, 0xc6, 0x2a, 0xb5, 0x8a, 0xd7, 0x03, 0x5d, 0xb1, 0x4b, + 0xee, 0x98, 0xe1, 0x2a, 0x28, 0x06, 0x90, 0x20, 0xe1, 0xdc, 0x9c, 0x2d, 0x9e, 0x55, 0x03, 0x94, + 0x42, 0x14, 0x11, 0xcc, 0x18, 0xa6, 0x01, 0xd3, 0x0a, 0x46, 0xa1, 0x3e, 0x67, 0x8f, 0x43, 0x5b, + 0xff, 0x9e, 0xcb, 0x9d, 0x6a, 0xd3, 0x3a, 0x4e, 0xcc, 0x2a, 0x36, 0xd3, 0xc6, 0x36, 0x9b, 0x60, + 0x6b, 0xcf, 0xc0, 0xf7, 0x12, 0x68, 0x47, 0xa8, 0x8b, 0x02, 0x8e, 0x61, 0x4f, 0xd5, 0x41, 0x89, + 0x08, 0xcc, 0x11, 0x93, 0x89, 0x3b, 0xb0, 0x81, 0x84, 0xf6, 0xd3, 0xf9, 0xd6, 0xc0, 0x77, 0x5d, + 0x14, 0xe1, 0x53, 0xc8, 0x31, 0x0d, 0xd2, 0x57, 0xc6, 0xb4, 0xbc, 0x51, 0xa8, 0xcf, 0xdb, 0x8b, + 0x0f, 0xf0, 0x2e, 0x4a, 0x58, 0xed, 0x7d, 0x1e, 0xcc, 0x1c, 0xc0, 0x08, 0x12, 0xa6, 0x9a, 0x60, + 0x99, 0xc0, 0xbe, 0x43, 0x10, 0xa1, 0x8e, 0x77, 0x0c, 0x23, 0xe8, 0x71, 0x14, 0xc9, 0x23, 0x2b, + 0xda, 0x4b, 0x04, 0xf6, 0xf7, 0x10, 0xa1, 0xed, 0x7b, 0x42, 0x35, 0xc0, 0x3c, 0xef, 0x3b, 0x0c, + 0xfb, 0x4e, 0x0f, 0x13, 0xcc, 0x85, 0x3f, 0x45, 0x1b, 0xf0, 0x7e, 0x07, 0xfb, 0xff, 0xa5, 0x88, + 0xfa, 0x3b, 0xf8, 0x41, 0x28, 0xce, 0x90, 0xe3, 0x51, 0xc6, 0x9d, 0x10, 0x45, 0x8e, 0x9b, 0x70, + 0x94, 0x5d, 0xc9, 0x52, 0x2a, 0x3d, 0x43, 0x6d, 0xca, 0xf8, 0x01, 0x8a, 0x5a, 0x09, 0x47, 0xea, + 0xff, 0xe0, 0xc7, 0xb4, 0xe0, 0x29, 0x8a, 0xf0, 0x51, 0x22, 0x93, 0x50, 0xb7, 0xb9, 0xb9, 0xd9, + 0xf8, 0x4b, 0x1e, 0x4e, 0x4b, 0x1b, 0x0e, 0xf4, 0x72, 0x07, 0xfb, 0x87, 0x42, 0x91, 0xa6, 0xfe, + 0xf3, 0xb7, 0xe0, 0xed, 0x32, 0x9b, 0x40, 0x65, 0x96, 0xfa, 0x04, 0xac, 0x3e, 0x2e, 0xc8, 0x90, + 0x17, 0x36, 0x37, 0xff, 0x3c, 0x69, 0x68, 0xdf, 0x88, 0x92, 0x95, 0xe1, 0x40, 0x5f, 0x99, 0x28, + 0xd9, 0x19, 0x29, 0xec, 0x15, 0x36, 0x15, 0xdf, 0xfa, 0xf9, 0xee, 0x42, 0x57, 0x1e, 0xbf, 0xb7, + 0xbe, 0xfc, 0x6e, 0x48, 0x3b, 0x5b, 0xed, 0x37, 0xc3, 0xaa, 0x72, 0x3d, 0xac, 0x2a, 0x9f, 0x86, + 0x55, 0xe5, 0xe5, 0x4d, 0x35, 0x77, 0x7d, 0x53, 0xcd, 0x7d, 0xb8, 0xa9, 0xe6, 0x9e, 0xfe, 0xea, + 0x63, 0x7e, 0x1c, 0xbb, 0xa6, 0x47, 0x49, 0xf6, 0x6d, 0xb0, 0xbe, 0xae, 0xc2, 0x93, 0x10, 0x31, + 0x77, 0x46, 0xfc, 0x3f, 0xff, 0xf8, 0x12, 0x00, 0x00, 0xff, 0xff, 0x94, 0x45, 0xcd, 0x40, 0x99, + 0x04, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { From 94bcc4601902558f93e608c41dc0fdf5db9b5ba5 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sat, 11 Feb 2023 19:00:37 -0700 Subject: [PATCH 058/122] bank annotations of null_slice_as_empty --- api/cosmos/bank/v1beta1/bank.pulsar.go | 121 ++--- api/cosmos/bank/v1beta1/genesis.pulsar.go | 89 ++-- api/cosmos/bank/v1beta1/query.pulsar.go | 543 +++++++++++----------- api/cosmos/bank/v1beta1/tx.pulsar.go | 184 ++++---- proto/cosmos/bank/v1beta1/bank.proto | 3 + proto/cosmos/bank/v1beta1/genesis.proto | 2 + proto/cosmos/bank/v1beta1/query.proto | 3 + proto/cosmos/bank/v1beta1/tx.proto | 1 + x/auth/types/auth.pb.go | 94 ++-- x/bank/types/bank.pb.go | 87 ++-- x/bank/types/genesis.pb.go | 60 +-- x/bank/types/query.pb.go | 156 ++++--- x/bank/types/tx.pb.go | 91 ++-- x/tx/aminojson/json_marshal.go | 2 +- 14 files changed, 734 insertions(+), 702 deletions(-) diff --git a/api/cosmos/bank/v1beta1/bank.pulsar.go b/api/cosmos/bank/v1beta1/bank.pulsar.go index 6a2fbe8c6052..72005c128190 100644 --- a/api/cosmos/bank/v1beta1/bank.pulsar.go +++ b/api/cosmos/bank/v1beta1/bank.pulsar.go @@ -4620,75 +4620,80 @@ var file_cosmos_bank_v1beta1_bank_proto_rawDesc = []byte{ 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xb9, 0x01, 0x0a, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xd1, 0x01, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x66, 0x0a, 0x05, 0x63, 0x6f, + 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x7e, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, + 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, - 0x6e, 0x73, 0x3a, 0x14, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xae, 0x01, 0x0a, 0x06, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x66, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, - 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x9b, 0x01, 0x0a, 0x06, 0x53, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x12, 0x66, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, + 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, 0x14, 0x88, 0xa0, 0x1f, 0x00, + 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x22, 0xc6, 0x01, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, + 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x7e, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, + 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, + 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, + 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xb3, 0x01, 0x0a, 0x06, 0x53, 0x75, + 0x70, 0x70, 0x6c, 0x79, 0x12, 0x7e, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x3a, 0x29, 0x18, 0x01, - 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x01, 0xca, 0xb4, 0x2d, 0x1b, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x22, 0x57, 0x0a, 0x09, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x55, 0x6e, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, - 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x3f, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x55, 0x6e, 0x69, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x19, 0x0a, 0x03, 0x75, 0x72, - 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xe2, 0xde, 0x1f, 0x03, 0x55, 0x52, 0x49, - 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x08, 0x75, 0x72, 0x69, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe2, 0xde, 0x1f, 0x07, 0x55, 0x52, 0x49, - 0x48, 0x61, 0x73, 0x68, 0x52, 0x07, 0x75, 0x72, 0x69, 0x48, 0x61, 0x73, 0x68, 0x42, 0xc4, 0x01, - 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, - 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, - 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, - 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, - 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, - 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, + 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x3a, 0x29, 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x01, + 0xca, 0xb4, 0x2d, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x22, + 0x57, 0x0a, 0x09, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x0a, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x12, 0x19, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xe2, 0xde, 0x1f, 0x03, 0x55, 0x52, 0x49, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x26, 0x0a, + 0x08, 0x75, 0x72, 0x69, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0b, 0xe2, 0xde, 0x1f, 0x07, 0x55, 0x52, 0x49, 0x48, 0x61, 0x73, 0x68, 0x52, 0x07, 0x75, 0x72, + 0x69, 0x48, 0x61, 0x73, 0x68, 0x42, 0xc4, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x42, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, + 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/genesis.pulsar.go b/api/cosmos/bank/v1beta1/genesis.pulsar.go index 73a8226986d4..18f33e074611 100644 --- a/api/cosmos/bank/v1beta1/genesis.pulsar.go +++ b/api/cosmos/bank/v1beta1/genesis.pulsar.go @@ -1711,7 +1711,7 @@ var file_cosmos_bank_v1beta1_genesis_proto_rawDesc = []byte{ 0x74, 0x61, 0x31, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, - 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9e, 0x03, 0x0a, + 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb7, 0x03, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, @@ -1721,48 +1721,51 @@ var file_cosmos_bank_v1beta1_genesis_proto_rawDesc = []byte{ 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x12, 0x68, 0x0a, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, - 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x4f, 0x0a, 0x0e, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4e, 0x0a, - 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, - 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xaf, 0x01, - 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x66, 0x0a, - 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, - 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, - 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x42, - 0xc7, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x47, 0x65, 0x6e, - 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, - 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, - 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, - 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, - 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x65, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, + 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, + 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, + 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x4f, 0x0a, 0x0e, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, + 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, + 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x7e, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, + 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, + 0x42, 0xc7, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x47, 0x65, + 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, + 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, + 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, + 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/query.pulsar.go b/api/cosmos/bank/v1beta1/query.pulsar.go index 21d552ace042..1290aaa3a747 100644 --- a/api/cosmos/bank/v1beta1/query.pulsar.go +++ b/api/cosmos/bank/v1beta1/query.pulsar.go @@ -12338,292 +12338,297 @@ var file_cosmos_bank_v1beta1_query_proto_rawDesc = []byte{ 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, - 0x22, 0xd1, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, - 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, - 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, + 0x22, 0xea, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, + 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, + 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, + 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa5, 0x01, + 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, + 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xf0, 0x01, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, + 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x08, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, + 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, + 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x23, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, + 0xa0, 0x1f, 0x00, 0x22, 0x5b, 0x0a, 0x24, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, + 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, + 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x22, 0x6b, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, + 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa5, 0x01, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, - 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xd7, 0x01, 0x0a, - 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x6c, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, - 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, - 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xe6, 0x01, + 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, + 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x23, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, - 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, - 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, - 0x00, 0x22, 0x5b, 0x0a, 0x24, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, - 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x6b, - 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, + 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x55, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, + 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x55, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x64, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xae, + 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, + 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x09, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x31, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x22, 0x62, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x44, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x77, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, + 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x80, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x32, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, + 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x17, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x12, + 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x63, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x0b, 0x73, 0x65, + 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xcd, 0x01, 0x0a, 0x18, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x06, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x14, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x55, 0x0a, 0x15, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, - 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x64, 0x0a, - 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0xae, 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x62, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x77, 0x0a, 0x17, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x46, 0x0a, 0x0a, - 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x73, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x32, 0xb2, 0x0e, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x9d, 0x01, 0x0a, + 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x88, + 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x7d, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xa0, 0x01, 0x0a, + 0x0b, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x0b, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x79, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, - 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x65, 0x6e, - 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x47, - 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x63, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xb2, 0x0e, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x12, 0x9d, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x3d, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, - 0x30, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, - 0x6d, 0x12, 0xa0, 0x01, 0x0a, 0x0b, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, - 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x63, 0x6f, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x88, 0xe7, 0xb0, 0x2a, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, + 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, + 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x7d, 0x12, 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, - 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, + 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, 0xd7, + 0x01, 0x0a, 0x17, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, - 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, - 0x12, 0x31, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x7d, 0x12, 0xd7, 0x01, 0x0a, 0x17, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, - 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, - 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, - 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3c, 0x12, 0x3a, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x94, 0x01, - 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x12, 0x94, 0x01, 0x0a, 0x08, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, - 0x66, 0x12, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, - 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x47, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, + 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x94, 0x01, 0x0a, 0x0b, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, + 0x94, 0x01, 0x0a, 0x08, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x12, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, - 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x85, 0x01, 0x0a, 0x06, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0xab, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, - 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x7d, 0x12, 0xa6, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, + 0x12, 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x2f, 0x62, 0x79, + 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x85, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0xab, + 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x39, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0xa6, 0x01, 0x0a, + 0x0e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, + 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xa2, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, - 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xa2, 0x01, 0x0a, 0x0b, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, + 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, + 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, + 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x36, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, + 0x29, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x9a, 0x01, 0x0a, 0x0b, 0x53, + 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, - 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, - 0x9a, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, - 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, + 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, + 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x65, 0x6e, 0x64, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0xc5, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x88, 0xe7, - 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, - 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0xc5, 0x01, 0x0a, - 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, - 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, - 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, - 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, - 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x61, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, + 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, + 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/tx.pulsar.go b/api/cosmos/bank/v1beta1/tx.pulsar.go index 10048243e590..31c7348023f2 100644 --- a/api/cosmos/bank/v1beta1/tx.pulsar.go +++ b/api/cosmos/bank/v1beta1/tx.pulsar.go @@ -4229,7 +4229,7 @@ var file_cosmos_bank_v1beta1_tx_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0x9b, 0x02, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x3b, 0x0a, 0x0c, + 0x22, 0xb4, 0x02, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x3b, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x66, 0x72, @@ -4237,98 +4237,100 @@ var file_cosmos_bank_v1beta1_tx_proto_rawDesc = []byte{ 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, - 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x30, 0x88, 0xa0, - 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x12, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x22, 0x11, - 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, - 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x09, - 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x73, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, - 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x73, 0x3a, 0x2b, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, - 0x22, 0x16, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x34, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, - 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, - 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x0b, 0x73, 0x65, 0x6e, - 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x5f, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6f, 0x72, - 0x3a, 0x2f, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x81, - 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x4a, 0x0a, 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1c, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x24, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x59, 0x0a, 0x09, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x12, - 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, - 0x6e, 0x64, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, - 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x2e, + 0x73, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, + 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, + 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, + 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x30, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, + 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x8a, 0xe7, 0xb0, 0x2a, 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, + 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x0c, 0x4d, + 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x3a, 0x2b, 0xe8, 0xa0, + 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x8a, 0xe7, 0xb0, + 0x2a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x4d, 0x73, 0x67, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x1a, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, - 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x12, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, - 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, - 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x34, 0x82, + 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, + 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x62, + 0x61, 0x6e, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe9, + 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0c, + 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6f, 0x72, 0x3a, 0x2f, 0x82, 0xe7, 0xb0, 0x2a, 0x09, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, + 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x81, 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, + 0x4a, 0x0a, 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x09, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, - 0x2a, 0x01, 0x42, 0xc2, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, - 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, - 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, - 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2c, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x53, 0x65, + 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xc2, 0x01, 0x0a, 0x17, + 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, + 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/bank/v1beta1/bank.proto b/proto/cosmos/bank/v1beta1/bank.proto index 0bdb042be15b..aa0ef5426586 100644 --- a/proto/cosmos/bank/v1beta1/bank.proto +++ b/proto/cosmos/bank/v1beta1/bank.proto @@ -40,6 +40,7 @@ message Input { repeated cosmos.base.v1beta1.Coin coins = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -53,6 +54,7 @@ message Output { repeated cosmos.base.v1beta1.Coin coins = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -71,6 +73,7 @@ message Supply { repeated cosmos.base.v1beta1.Coin total = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/bank/v1beta1/genesis.proto b/proto/cosmos/bank/v1beta1/genesis.proto index 34214cfbbd9f..0221513bc6d5 100644 --- a/proto/cosmos/bank/v1beta1/genesis.proto +++ b/proto/cosmos/bank/v1beta1/genesis.proto @@ -20,6 +20,7 @@ message GenesisState { // supply represents the total supply. If it is left empty, then supply will be calculated based on the provided // balances. Otherwise, it will be used to validate that the sum of the balances equals this amount. repeated cosmos.base.v1beta1.Coin supply = 3 [ + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false, (amino.dont_omitempty) = true @@ -45,6 +46,7 @@ message Balance { // coins defines the different coins this balance holds. repeated cosmos.base.v1beta1.Coin coins = 2 [ + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false, (amino.dont_omitempty) = true diff --git a/proto/cosmos/bank/v1beta1/query.proto b/proto/cosmos/bank/v1beta1/query.proto index 992f38999b8e..42570b895cc3 100644 --- a/proto/cosmos/bank/v1beta1/query.proto +++ b/proto/cosmos/bank/v1beta1/query.proto @@ -157,6 +157,7 @@ message QueryAllBalancesResponse { repeated cosmos.base.v1beta1.Coin balances = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -188,6 +189,7 @@ message QuerySpendableBalancesResponse { repeated cosmos.base.v1beta1.Coin balances = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -239,6 +241,7 @@ message QueryTotalSupplyResponse { repeated cosmos.base.v1beta1.Coin supply = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/proto/cosmos/bank/v1beta1/tx.proto b/proto/cosmos/bank/v1beta1/tx.proto index 5d6926ef6de2..215223498954 100644 --- a/proto/cosmos/bank/v1beta1/tx.proto +++ b/proto/cosmos/bank/v1beta1/tx.proto @@ -48,6 +48,7 @@ message MsgSend { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/x/auth/types/auth.pb.go b/x/auth/types/auth.pb.go index 7c4bbe2cf1d7..4c870906ebe8 100644 --- a/x/auth/types/auth.pb.go +++ b/x/auth/types/auth.pb.go @@ -254,52 +254,54 @@ func init() { func init() { proto.RegisterFile("cosmos/auth/v1beta1/auth.proto", fileDescriptor_7e1f7e915d020d2d) } var fileDescriptor_7e1f7e915d020d2d = []byte{ - // 707 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x54, 0xcf, 0x4e, 0xe3, 0x46, - 0x1c, 0x8e, 0x93, 0x14, 0xca, 0x04, 0x68, 0x31, 0x29, 0x35, 0x51, 0x15, 0xbb, 0x91, 0x2a, 0x52, - 0x54, 0xec, 0x26, 0x15, 0x95, 0xca, 0x8d, 0xa4, 0x55, 0x85, 0x28, 0x14, 0x39, 0x5a, 0x0e, 0xab, - 0x95, 0xac, 0xb1, 0x33, 0x98, 0x11, 0x19, 0x8f, 0xd7, 0x33, 0x46, 0x31, 0x4f, 0x80, 0xf6, 0xb4, - 0x8f, 0xc0, 0xee, 0x13, 0x70, 0xe0, 0x21, 0x56, 0x7b, 0x42, 0x7b, 0xd9, 0xdd, 0x4b, 0xb4, 0x0a, - 0x07, 0xd0, 0x3e, 0xc5, 0xca, 0x33, 0x0e, 0x24, 0x6c, 0x2e, 0x91, 0x7f, 0xdf, 0xf7, 0xfd, 0xfe, - 0x7d, 0xfe, 0xc5, 0xa0, 0xea, 0x51, 0x46, 0x28, 0xb3, 0x60, 0xcc, 0x8f, 0xad, 0xd3, 0x86, 0x8b, - 0x38, 0x6c, 0x88, 0xc0, 0x0c, 0x23, 0xca, 0xa9, 0xba, 0x2c, 0x79, 0x53, 0x40, 0x19, 0x5f, 0x59, - 0x82, 0x04, 0x07, 0xd4, 0x12, 0xbf, 0x52, 0x57, 0x59, 0x95, 0x3a, 0x47, 0x44, 0x56, 0x96, 0x24, - 0xa9, 0xb2, 0x4f, 0x7d, 0x2a, 0xf1, 0xf4, 0x69, 0x94, 0xe0, 0x53, 0xea, 0xf7, 0x90, 0x25, 0x22, - 0x37, 0x3e, 0xb2, 0x60, 0x90, 0x48, 0xaa, 0xf6, 0x2a, 0x0f, 0x4a, 0x2d, 0xc8, 0xd0, 0xb6, 0xe7, - 0xd1, 0x38, 0xe0, 0x6a, 0x13, 0xcc, 0xc2, 0x6e, 0x37, 0x42, 0x8c, 0x69, 0x8a, 0xa1, 0xd4, 0xe7, - 0x5a, 0xda, 0xbb, 0xab, 0x8d, 0x72, 0xd6, 0x63, 0x5b, 0x32, 0x1d, 0x1e, 0xe1, 0xc0, 0xb7, 0x47, - 0x42, 0xf5, 0x10, 0xcc, 0x86, 0xb1, 0xeb, 0x9c, 0xa0, 0x44, 0xcb, 0x1b, 0x4a, 0xbd, 0xd4, 0x2c, - 0x9b, 0xb2, 0xa1, 0x39, 0x6a, 0x68, 0x6e, 0x07, 0x49, 0x6b, 0xed, 0xf3, 0x40, 0x2f, 0x87, 0xb1, - 0xdb, 0xc3, 0x5e, 0xaa, 0xfd, 0x8d, 0x12, 0xcc, 0x11, 0x09, 0x79, 0xf2, 0xfa, 0xf6, 0x72, 0x1d, - 0x3c, 0x10, 0xf6, 0x4c, 0x18, 0xbb, 0xbb, 0x28, 0x51, 0x7f, 0x01, 0x8b, 0x50, 0x8e, 0xe5, 0x04, - 0x31, 0x71, 0x51, 0xa4, 0x15, 0x0c, 0xa5, 0x5e, 0xb4, 0x17, 0x32, 0x74, 0x5f, 0x80, 0x6a, 0x05, - 0x7c, 0xcb, 0xd0, 0xf3, 0x18, 0x05, 0x1e, 0xd2, 0x8a, 0x42, 0x70, 0x1f, 0x6f, 0xb5, 0xcf, 0x2f, - 0xf4, 0xdc, 0xdd, 0x85, 0x9e, 0x7b, 0x7b, 0xb5, 0xf1, 0xd3, 0x14, 0x7b, 0xcd, 0x6c, 0xef, 0x9d, - 0x17, 0xb7, 0x97, 0xeb, 0x2b, 0x52, 0xb0, 0xc1, 0xba, 0x27, 0xd6, 0x98, 0x27, 0xb5, 0x8f, 0x0a, - 0x58, 0xd8, 0xa3, 0xdd, 0xb8, 0x77, 0xef, 0xd2, 0x0e, 0x98, 0x77, 0x21, 0x43, 0x4e, 0x36, 0x88, - 0xb0, 0xaa, 0xd4, 0x34, 0xcc, 0x69, 0x1d, 0xc6, 0x2a, 0xb5, 0x8a, 0xd7, 0x03, 0x5d, 0xb1, 0x4b, - 0xee, 0x98, 0xe1, 0x2a, 0x28, 0x06, 0x90, 0x20, 0xe1, 0xdc, 0x9c, 0x2d, 0x9e, 0x55, 0x03, 0x94, - 0x42, 0x14, 0x11, 0xcc, 0x18, 0xa6, 0x01, 0xd3, 0x0a, 0x46, 0xa1, 0x3e, 0x67, 0x8f, 0x43, 0x5b, - 0xff, 0x9e, 0xcb, 0x9d, 0x6a, 0xd3, 0x3a, 0x4e, 0xcc, 0x2a, 0x36, 0xd3, 0xc6, 0x36, 0x9b, 0x60, - 0x6b, 0xcf, 0xc0, 0xf7, 0x12, 0x68, 0x47, 0xa8, 0x8b, 0x02, 0x8e, 0x61, 0x4f, 0xd5, 0x41, 0x89, - 0x08, 0xcc, 0x11, 0x93, 0x89, 0x3b, 0xb0, 0x81, 0x84, 0xf6, 0xd3, 0xf9, 0xd6, 0xc0, 0x77, 0x5d, - 0x14, 0xe1, 0x53, 0xc8, 0x31, 0x0d, 0xd2, 0x57, 0xc6, 0xb4, 0xbc, 0x51, 0xa8, 0xcf, 0xdb, 0x8b, - 0x0f, 0xf0, 0x2e, 0x4a, 0x58, 0xed, 0x7d, 0x1e, 0xcc, 0x1c, 0xc0, 0x08, 0x12, 0xa6, 0x9a, 0x60, - 0x99, 0xc0, 0xbe, 0x43, 0x10, 0xa1, 0x8e, 0x77, 0x0c, 0x23, 0xe8, 0x71, 0x14, 0xc9, 0x23, 0x2b, - 0xda, 0x4b, 0x04, 0xf6, 0xf7, 0x10, 0xa1, 0xed, 0x7b, 0x42, 0x35, 0xc0, 0x3c, 0xef, 0x3b, 0x0c, - 0xfb, 0x4e, 0x0f, 0x13, 0xcc, 0x85, 0x3f, 0x45, 0x1b, 0xf0, 0x7e, 0x07, 0xfb, 0xff, 0xa5, 0x88, - 0xfa, 0x3b, 0xf8, 0x41, 0x28, 0xce, 0x90, 0xe3, 0x51, 0xc6, 0x9d, 0x10, 0x45, 0x8e, 0x9b, 0x70, - 0x94, 0x5d, 0xc9, 0x52, 0x2a, 0x3d, 0x43, 0x6d, 0xca, 0xf8, 0x01, 0x8a, 0x5a, 0x09, 0x47, 0xea, - 0xff, 0xe0, 0xc7, 0xb4, 0xe0, 0x29, 0x8a, 0xf0, 0x51, 0x22, 0x93, 0x50, 0xb7, 0xb9, 0xb9, 0xd9, - 0xf8, 0x4b, 0x1e, 0x4e, 0x4b, 0x1b, 0x0e, 0xf4, 0x72, 0x07, 0xfb, 0x87, 0x42, 0x91, 0xa6, 0xfe, - 0xf3, 0xb7, 0xe0, 0xed, 0x32, 0x9b, 0x40, 0x65, 0x96, 0xfa, 0x04, 0xac, 0x3e, 0x2e, 0xc8, 0x90, - 0x17, 0x36, 0x37, 0xff, 0x3c, 0x69, 0x68, 0xdf, 0x88, 0x92, 0x95, 0xe1, 0x40, 0x5f, 0x99, 0x28, - 0xd9, 0x19, 0x29, 0xec, 0x15, 0x36, 0x15, 0xdf, 0xfa, 0xf9, 0xee, 0x42, 0x57, 0x1e, 0xbf, 0xb7, - 0xbe, 0xfc, 0x6e, 0x48, 0x3b, 0x5b, 0xed, 0x37, 0xc3, 0xaa, 0x72, 0x3d, 0xac, 0x2a, 0x9f, 0x86, - 0x55, 0xe5, 0xe5, 0x4d, 0x35, 0x77, 0x7d, 0x53, 0xcd, 0x7d, 0xb8, 0xa9, 0xe6, 0x9e, 0xfe, 0xea, - 0x63, 0x7e, 0x1c, 0xbb, 0xa6, 0x47, 0x49, 0xf6, 0x6d, 0xb0, 0xbe, 0xae, 0xc2, 0x93, 0x10, 0x31, - 0x77, 0x46, 0xfc, 0x3f, 0xff, 0xf8, 0x12, 0x00, 0x00, 0xff, 0xff, 0x94, 0x45, 0xcd, 0x40, 0x99, - 0x04, 0x00, 0x00, + // 740 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x54, 0x41, 0x6f, 0xe3, 0x44, + 0x18, 0x8d, 0x93, 0x6c, 0x97, 0x4e, 0xba, 0x85, 0x7a, 0x43, 0x71, 0x23, 0x14, 0x67, 0x23, 0xc1, + 0x86, 0x88, 0xda, 0x24, 0xa8, 0x48, 0xe4, 0x56, 0x07, 0x84, 0x50, 0x69, 0xa9, 0x1c, 0xd1, 0x43, + 0x2f, 0xd6, 0xd8, 0x99, 0xba, 0xa3, 0x66, 0x3c, 0xc6, 0x33, 0xae, 0xe2, 0x9e, 0x39, 0x54, 0x9c, + 0x10, 0xbf, 0xa0, 0x70, 0xe2, 0x98, 0x43, 0x7f, 0x04, 0xe2, 0x54, 0x71, 0x81, 0x53, 0x84, 0xd2, + 0x43, 0x2a, 0xfe, 0x04, 0xc8, 0x33, 0x4e, 0x93, 0x74, 0x73, 0x89, 0x32, 0xef, 0xbd, 0xef, 0xfb, + 0xde, 0xf7, 0x3c, 0x36, 0xa8, 0x7a, 0x94, 0x11, 0xca, 0x4c, 0x18, 0xf3, 0x73, 0xf3, 0xb2, 0xe5, + 0x22, 0x0e, 0x5b, 0xe2, 0x60, 0x84, 0x11, 0xe5, 0x54, 0x7d, 0x29, 0x79, 0x43, 0x40, 0x19, 0x5f, + 0xd9, 0x82, 0x04, 0x07, 0xd4, 0x14, 0xbf, 0x52, 0x57, 0xd9, 0x91, 0x3a, 0x47, 0x9c, 0xcc, 0xac, + 0x48, 0x52, 0x65, 0x9f, 0xfa, 0x54, 0xe2, 0xe9, 0xbf, 0x59, 0x81, 0x4f, 0xa9, 0x3f, 0x40, 0xa6, + 0x38, 0xb9, 0xf1, 0x99, 0x09, 0x83, 0x44, 0x52, 0xf5, 0x5f, 0xf2, 0xa0, 0x64, 0x41, 0x86, 0xf6, + 0x3d, 0x8f, 0xc6, 0x01, 0x57, 0xdb, 0xe0, 0x39, 0xec, 0xf7, 0x23, 0xc4, 0x98, 0xa6, 0xd4, 0x94, + 0xc6, 0xba, 0xa5, 0xfd, 0x79, 0xbb, 0x5b, 0xce, 0x66, 0xec, 0x4b, 0xa6, 0xc7, 0x23, 0x1c, 0xf8, + 0xf6, 0x4c, 0xa8, 0x9e, 0x80, 0xe7, 0x61, 0xec, 0x3a, 0x17, 0x28, 0xd1, 0xf2, 0x35, 0xa5, 0x51, + 0x6a, 0x97, 0x0d, 0x39, 0xd0, 0x98, 0x0d, 0x34, 0xf6, 0x83, 0xc4, 0x7a, 0xfd, 0xef, 0x58, 0x2f, + 0x87, 0xb1, 0x3b, 0xc0, 0x5e, 0xaa, 0xfd, 0x98, 0x12, 0xcc, 0x11, 0x09, 0x79, 0xf2, 0xeb, 0x74, + 0xd4, 0x04, 0x73, 0xc2, 0x5e, 0x0b, 0x63, 0xf7, 0x00, 0x25, 0xea, 0x07, 0x60, 0x13, 0x4a, 0x5b, + 0x4e, 0x10, 0x13, 0x17, 0x45, 0x5a, 0xa1, 0xa6, 0x34, 0x8a, 0xf6, 0x8b, 0x0c, 0x3d, 0x12, 0xa0, + 0x5a, 0x01, 0x6f, 0x31, 0xf4, 0x7d, 0x8c, 0x02, 0x0f, 0x69, 0x45, 0x21, 0x78, 0x3c, 0x77, 0xba, + 0xd7, 0x37, 0x7a, 0xee, 0xe1, 0x46, 0xcf, 0xfd, 0x71, 0xbb, 0xfb, 0xfe, 0x8a, 0x78, 0x8d, 0x6c, + 0xef, 0xaf, 0x7f, 0x9c, 0x8e, 0x9a, 0xdb, 0x52, 0xb0, 0xcb, 0xfa, 0x17, 0xe6, 0x42, 0x26, 0xf5, + 0xff, 0x14, 0xf0, 0xe2, 0x90, 0xf6, 0xe3, 0xc1, 0x63, 0x4a, 0x47, 0x60, 0xc3, 0x85, 0x0c, 0x39, + 0x99, 0x11, 0x11, 0x55, 0xa9, 0x5d, 0x33, 0x56, 0x4d, 0x58, 0xe8, 0x64, 0xad, 0xdf, 0x8d, 0x75, + 0x65, 0x34, 0x1d, 0x35, 0x15, 0xbb, 0xe4, 0x2e, 0xa4, 0xbe, 0x03, 0x8a, 0x01, 0x24, 0x48, 0xc4, + 0xb7, 0x6e, 0x3d, 0xfb, 0x4d, 0x28, 0x04, 0xa4, 0xbe, 0x06, 0xa5, 0x10, 0x45, 0x04, 0x33, 0x86, + 0x69, 0xc0, 0xb4, 0x42, 0xad, 0x30, 0x57, 0x2c, 0x32, 0x9d, 0xd3, 0x6b, 0xb9, 0x66, 0x7d, 0x95, + 0x89, 0x25, 0xfb, 0x62, 0x59, 0x6d, 0x61, 0xd9, 0x25, 0xf6, 0xe7, 0xe9, 0xa8, 0xb9, 0x49, 0x04, + 0x32, 0xdb, 0xaf, 0xfe, 0x83, 0x02, 0xde, 0x91, 0xa2, 0x6e, 0x84, 0xfa, 0x28, 0xe0, 0x18, 0x0e, + 0x54, 0x1d, 0x94, 0x32, 0x99, 0xf0, 0x2e, 0xae, 0x8b, 0x0d, 0x24, 0x74, 0x24, 0xad, 0xbf, 0xdd, + 0x47, 0x11, 0xbe, 0x84, 0x1c, 0xd3, 0x20, 0x7d, 0xb2, 0x4c, 0xcb, 0xd7, 0x0a, 0x8d, 0x0d, 0x7b, + 0x73, 0x0e, 0x1f, 0xa0, 0x84, 0x75, 0x3e, 0x4c, 0x0d, 0xbd, 0x5a, 0x30, 0xf4, 0x55, 0x44, 0xe3, + 0x30, 0xf3, 0x33, 0x9f, 0x58, 0xff, 0x2b, 0x0f, 0xd6, 0x8e, 0x61, 0x04, 0x09, 0x53, 0x0d, 0xf0, + 0x92, 0xc0, 0xa1, 0x43, 0x10, 0xa1, 0x8e, 0x77, 0x0e, 0x23, 0xe8, 0x71, 0x14, 0xc9, 0x3b, 0x5b, + 0xb4, 0xb7, 0x08, 0x1c, 0x1e, 0x22, 0x42, 0xbb, 0x8f, 0x84, 0x5a, 0x03, 0x1b, 0x7c, 0xe8, 0x30, + 0xec, 0x3b, 0x03, 0x4c, 0x30, 0x17, 0x49, 0x17, 0x6d, 0xc0, 0x87, 0x3d, 0xec, 0x7f, 0x93, 0x22, + 0xea, 0x27, 0xe0, 0x5d, 0xa1, 0xb8, 0x42, 0x8e, 0x47, 0x19, 0x77, 0x42, 0x14, 0x39, 0x6e, 0xc2, + 0x51, 0x76, 0xe9, 0xb6, 0x52, 0xe9, 0x15, 0xea, 0x52, 0xc6, 0x8f, 0x51, 0x64, 0x25, 0x1c, 0xa9, + 0xdf, 0x82, 0xf7, 0xd2, 0x86, 0x97, 0x28, 0xc2, 0x67, 0x89, 0x2c, 0x42, 0xfd, 0xf6, 0xde, 0x5e, + 0xeb, 0x73, 0x79, 0x0f, 0x2d, 0x6d, 0x32, 0xd6, 0xcb, 0x3d, 0xec, 0x9f, 0x08, 0x45, 0x5a, 0xfa, + 0xe5, 0x17, 0x82, 0xb7, 0xcb, 0x6c, 0x09, 0x95, 0x55, 0xea, 0x77, 0x60, 0xe7, 0x69, 0x43, 0x86, + 0xbc, 0xb0, 0xbd, 0xf7, 0xd9, 0x45, 0x4b, 0x7b, 0x26, 0x5a, 0x56, 0x26, 0x63, 0x7d, 0x7b, 0xa9, + 0x65, 0x6f, 0xa6, 0xb0, 0xb7, 0xd9, 0x4a, 0xbc, 0xf3, 0xea, 0xe1, 0x46, 0x57, 0x9e, 0x3e, 0xf3, + 0xa1, 0xfc, 0x0c, 0xc9, 0x38, 0xad, 0xee, 0xef, 0x93, 0xaa, 0x72, 0x37, 0xa9, 0x2a, 0xff, 0x4c, + 0xaa, 0xca, 0x4f, 0xf7, 0xd5, 0xdc, 0xdd, 0x7d, 0x35, 0xf7, 0xf7, 0x7d, 0x35, 0x77, 0xfa, 0x91, + 0x8f, 0xf9, 0x79, 0xec, 0x1a, 0x1e, 0x25, 0xd9, 0xa7, 0xc6, 0x7c, 0xb3, 0x0b, 0x4f, 0x42, 0xc4, + 0xdc, 0x35, 0xf1, 0xba, 0x7f, 0xfa, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xba, 0xca, 0x7d, 0xc7, + 0xe8, 0x04, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { diff --git a/x/bank/types/bank.pb.go b/x/bank/types/bank.pb.go index e841f04486c9..956dd99598f4 100644 --- a/x/bank/types/bank.pb.go +++ b/x/bank/types/bank.pb.go @@ -463,49 +463,50 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/bank.proto", fileDescriptor_dd052eee12edf988) } var fileDescriptor_dd052eee12edf988 = []byte{ - // 666 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x54, 0xbf, 0x6f, 0x13, 0x31, - 0x14, 0x8e, 0x93, 0xe6, 0x47, 0x1d, 0x18, 0x30, 0x11, 0xb8, 0x45, 0x5c, 0xa2, 0x1b, 0x50, 0x5a, - 0xa9, 0x39, 0x5a, 0xc4, 0x92, 0x05, 0x91, 0x82, 0x20, 0x03, 0x02, 0x5d, 0x55, 0x21, 0xb1, 0x44, - 0x4e, 0xce, 0x4d, 0xac, 0xde, 0xd9, 0xa7, 0xb3, 0xaf, 0x6a, 0x56, 0x26, 0xd4, 0x89, 0x9d, 0xa5, - 0x62, 0x42, 0x0c, 0xa8, 0x43, 0x17, 0xfe, 0x83, 0x8a, 0xa9, 0x62, 0x62, 0x2a, 0x28, 0x1d, 0xda, - 0x3f, 0x03, 0x9d, 0x7d, 0x97, 0xa6, 0x52, 0x61, 0x43, 0x62, 0x49, 0xde, 0x7b, 0xdf, 0xe7, 0xf7, - 0x3d, 0xbf, 0xf7, 0x7c, 0xd0, 0x1a, 0x08, 0x19, 0x08, 0xe9, 0xf4, 0x09, 0xdf, 0x76, 0x76, 0x56, - 0xfb, 0x54, 0x91, 0x55, 0xed, 0xb4, 0xc2, 0x48, 0x28, 0x81, 0x6e, 0x1a, 0xbc, 0xa5, 0x43, 0x29, - 0xbe, 0x58, 0x1b, 0x8a, 0xa1, 0xd0, 0xb8, 0x93, 0x58, 0x86, 0xba, 0xb8, 0x60, 0xa8, 0x3d, 0x03, - 0xa4, 0xe7, 0x0c, 0x74, 0xa1, 0x22, 0xe9, 0x54, 0x65, 0x20, 0x18, 0x4f, 0xf1, 0xdb, 0x29, 0x1e, - 0xc8, 0xa1, 0xb3, 0xb3, 0x9a, 0xfc, 0xa5, 0xc0, 0x0d, 0x12, 0x30, 0x2e, 0x1c, 0xfd, 0x6b, 0x42, - 0xf6, 0x47, 0x00, 0x4b, 0xaf, 0x48, 0x44, 0x02, 0x89, 0x9e, 0xc1, 0x6b, 0x92, 0x72, 0xaf, 0x47, - 0x39, 0xe9, 0xfb, 0xd4, 0xc3, 0xa0, 0x51, 0x68, 0x56, 0xd7, 0x1a, 0xad, 0x2b, 0x6a, 0x6e, 0x6d, - 0x50, 0xee, 0x3d, 0x35, 0xbc, 0x4e, 0x1e, 0x03, 0xb7, 0x2a, 0x2f, 0x02, 0xe8, 0x3e, 0xac, 0x79, - 0x74, 0x8b, 0xc4, 0xbe, 0xea, 0x5d, 0x4a, 0x98, 0x6f, 0x80, 0x66, 0xc5, 0x45, 0x29, 0x36, 0x93, - 0xa2, 0x7d, 0x77, 0xef, 0xec, 0x60, 0x19, 0x1b, 0xa1, 0x15, 0xe9, 0x6d, 0x3b, 0xbb, 0xa6, 0x85, - 0xa6, 0x32, 0x7b, 0x1d, 0x56, 0x67, 0xd8, 0xa8, 0x06, 0x8b, 0x1e, 0xe5, 0x22, 0xc0, 0xa0, 0x01, - 0x9a, 0xf3, 0xae, 0x71, 0x10, 0x86, 0xe5, 0xcb, 0x42, 0x99, 0xdb, 0x9e, 0x3b, 0xdf, 0xaf, 0x03, - 0xfb, 0x2b, 0x80, 0xc5, 0x2e, 0x0f, 0x63, 0x85, 0xd6, 0x60, 0x99, 0x78, 0x5e, 0x44, 0xa5, 0x34, - 0x19, 0x3a, 0xf8, 0xfb, 0xe1, 0x4a, 0x2d, 0xbd, 0xe6, 0x63, 0x83, 0x6c, 0xa8, 0x88, 0xf1, 0xa1, - 0x9b, 0x11, 0xd1, 0x16, 0x2c, 0x26, 0x1d, 0x96, 0x38, 0xaf, 0xbb, 0xb2, 0x70, 0xd1, 0x15, 0x49, - 0xa7, 0x5d, 0x59, 0x17, 0x8c, 0x77, 0x1e, 0x1e, 0x9d, 0xd4, 0x73, 0x9f, 0x7f, 0xd6, 0x9b, 0x43, - 0xa6, 0x46, 0x71, 0xbf, 0x35, 0x10, 0x41, 0x3a, 0x3e, 0x67, 0xe6, 0x82, 0x6a, 0x1c, 0x52, 0xa9, - 0x0f, 0xc8, 0x4f, 0x67, 0x07, 0xcb, 0xc0, 0x35, 0xe9, 0xdb, 0xb5, 0x77, 0xfb, 0xf5, 0xdc, 0xf9, - 0x7e, 0x3d, 0xf7, 0xf6, 0xec, 0x60, 0x39, 0x53, 0xb7, 0xbf, 0x00, 0x58, 0x7a, 0x19, 0xab, 0xff, - 0xbd, 0xf8, 0x4a, 0x56, 0xbc, 0xfd, 0x01, 0xc0, 0xd2, 0x46, 0x1c, 0x86, 0xfe, 0x38, 0x11, 0x57, - 0x42, 0x11, 0x3f, 0xdd, 0xa7, 0x7f, 0x20, 0xae, 0xd3, 0xb7, 0x97, 0x52, 0x71, 0xf0, 0xed, 0x70, - 0xe5, 0xce, 0x95, 0x3b, 0xab, 0xeb, 0xe9, 0x62, 0x60, 0xbf, 0x86, 0xf3, 0x4f, 0x92, 0x9d, 0xd9, - 0xe4, 0x4c, 0xfd, 0x61, 0x9b, 0x16, 0x61, 0x85, 0xee, 0x86, 0x82, 0x53, 0xae, 0xf4, 0x3a, 0x5d, - 0x77, 0xa7, 0x7e, 0xb2, 0x69, 0xc4, 0x67, 0x44, 0x52, 0x89, 0x0b, 0x8d, 0x42, 0x73, 0xde, 0xcd, - 0x5c, 0x7b, 0x2f, 0x0f, 0x2b, 0x2f, 0xa8, 0x22, 0x1e, 0x51, 0x04, 0x35, 0x60, 0xd5, 0xa3, 0x72, - 0x10, 0xb1, 0x50, 0x31, 0xc1, 0xd3, 0xf4, 0xb3, 0x21, 0xf4, 0x28, 0x61, 0x70, 0x11, 0xf4, 0x62, - 0xce, 0x54, 0x36, 0x1d, 0xeb, 0xca, 0x07, 0x37, 0xad, 0xd7, 0x85, 0x5e, 0x66, 0x4a, 0x84, 0xe0, - 0x5c, 0xd2, 0x46, 0x5c, 0xd0, 0xb9, 0xb5, 0x9d, 0x54, 0xe7, 0x31, 0x19, 0xfa, 0x64, 0x8c, 0xe7, - 0x74, 0x38, 0x73, 0x13, 0x36, 0x27, 0x01, 0xc5, 0x45, 0xc3, 0x4e, 0x6c, 0x74, 0x0b, 0x96, 0xe4, - 0x38, 0xe8, 0x0b, 0x1f, 0x97, 0x74, 0x34, 0xf5, 0xd0, 0x02, 0x2c, 0xc4, 0x11, 0xc3, 0x65, 0xbd, - 0x62, 0xe5, 0xc9, 0x49, 0xbd, 0xb0, 0xe9, 0x76, 0xdd, 0x24, 0x86, 0xee, 0xc1, 0x4a, 0x1c, 0xb1, - 0xde, 0x88, 0xc8, 0x11, 0xae, 0x68, 0xbc, 0x3a, 0x39, 0xa9, 0x97, 0x37, 0xdd, 0xee, 0x73, 0x22, - 0x47, 0x6e, 0x39, 0x8e, 0x58, 0x62, 0x74, 0xd6, 0x8f, 0x26, 0x16, 0x38, 0x9e, 0x58, 0xe0, 0xd7, - 0xc4, 0x02, 0xef, 0x4f, 0xad, 0xdc, 0xf1, 0xa9, 0x95, 0xfb, 0x71, 0x6a, 0xe5, 0xde, 0x2c, 0xfd, - 0x75, 0xc0, 0xe9, 0xdb, 0xd7, 0x73, 0xee, 0x97, 0xf4, 0x67, 0xea, 0xc1, 0xef, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x8f, 0xcf, 0x82, 0xbe, 0x5a, 0x05, 0x00, 0x00, + // 688 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x54, 0xbf, 0x6f, 0x13, 0x49, + 0x14, 0xf6, 0xd8, 0xf1, 0x8f, 0x8c, 0xef, 0x8a, 0x9b, 0x58, 0x77, 0x93, 0x9c, 0x6e, 0x6d, 0xb9, + 0x38, 0x39, 0x96, 0x62, 0x93, 0xd0, 0xb9, 0x41, 0x38, 0x20, 0x70, 0x11, 0x81, 0x36, 0x8a, 0x90, + 0x68, 0x56, 0x63, 0xef, 0x60, 0x8f, 0xb2, 0x3b, 0xb3, 0xda, 0x99, 0x8d, 0xe2, 0x86, 0x82, 0x0a, + 0xa5, 0xa2, 0xa6, 0x8a, 0xa8, 0x10, 0x95, 0x25, 0xf2, 0x37, 0xa0, 0x88, 0x2a, 0x50, 0x51, 0x05, + 0xe4, 0x14, 0xce, 0x9f, 0x81, 0x76, 0x66, 0xd7, 0x71, 0xa4, 0x40, 0x89, 0x44, 0x63, 0xbf, 0xf7, + 0xbe, 0x6f, 0xdf, 0xfb, 0xde, 0x8f, 0x5d, 0x68, 0x0d, 0x84, 0xf4, 0x85, 0x6c, 0xf7, 0x09, 0xdf, + 0x6f, 0x1f, 0x6c, 0xf6, 0xa9, 0x22, 0x9b, 0xda, 0x69, 0x05, 0xa1, 0x50, 0x02, 0xad, 0x18, 0xbc, + 0xa5, 0x43, 0x09, 0xbe, 0x56, 0x19, 0x8a, 0xa1, 0xd0, 0x78, 0x3b, 0xb6, 0x0c, 0x75, 0x6d, 0xd5, + 0x50, 0x1d, 0x03, 0x24, 0xcf, 0x19, 0xe8, 0xaa, 0x8a, 0xa4, 0xf3, 0x2a, 0x03, 0xc1, 0x78, 0x82, + 0xff, 0x93, 0xe0, 0xbe, 0x1c, 0xb6, 0x0f, 0x36, 0xe3, 0xbf, 0x04, 0xf8, 0x8b, 0xf8, 0x8c, 0x8b, + 0xb6, 0xfe, 0x35, 0xa1, 0xfa, 0x1b, 0x00, 0x0b, 0x8f, 0x49, 0x48, 0x7c, 0x89, 0x1e, 0xc0, 0x3f, + 0x24, 0xe5, 0xae, 0x43, 0x39, 0xe9, 0x7b, 0xd4, 0xc5, 0xa0, 0x96, 0x6b, 0x94, 0xb7, 0x6a, 0xad, + 0x1b, 0x34, 0xb7, 0x76, 0x29, 0x77, 0xef, 0x1b, 0x5e, 0x37, 0x8b, 0x81, 0x5d, 0x96, 0x57, 0x01, + 0x74, 0x0b, 0x56, 0x5c, 0xfa, 0x8c, 0x44, 0x9e, 0x72, 0xae, 0x25, 0xcc, 0xd6, 0x40, 0xa3, 0x64, + 0xa3, 0x04, 0x5b, 0x48, 0xd1, 0xf9, 0xef, 0x68, 0x36, 0x69, 0x62, 0x53, 0x68, 0x43, 0xba, 0xfb, + 0xed, 0x43, 0x33, 0x42, 0xa3, 0xac, 0xbe, 0x0d, 0xcb, 0x0b, 0x6c, 0x54, 0x81, 0x79, 0x97, 0x72, + 0xe1, 0x63, 0x50, 0x03, 0x8d, 0x65, 0xdb, 0x38, 0x08, 0xc3, 0xe2, 0xf5, 0x42, 0xa9, 0xdb, 0x59, + 0xba, 0x3c, 0xae, 0x82, 0xfa, 0x27, 0x00, 0xf3, 0x3d, 0x1e, 0x44, 0x0a, 0x6d, 0xc1, 0x22, 0x71, + 0xdd, 0x90, 0x4a, 0x69, 0x32, 0x74, 0xf1, 0xe7, 0x93, 0x8d, 0x4a, 0xd2, 0xe6, 0x5d, 0x83, 0xec, + 0xaa, 0x90, 0xf1, 0xa1, 0x9d, 0x12, 0xd1, 0x73, 0x98, 0x8f, 0x27, 0x2c, 0x71, 0x56, 0x4f, 0x65, + 0xf5, 0x6a, 0x2a, 0x92, 0xce, 0xa7, 0xb2, 0x2d, 0x18, 0xef, 0xee, 0x9c, 0x9e, 0x57, 0x33, 0xef, + 0xbe, 0x56, 0x1b, 0x43, 0xa6, 0x46, 0x51, 0xbf, 0x35, 0x10, 0x7e, 0xb2, 0xbe, 0xf6, 0x42, 0x83, + 0x6a, 0x1c, 0x50, 0xa9, 0x1f, 0x90, 0xaf, 0x67, 0x93, 0xe6, 0x0a, 0x8f, 0x3c, 0xcf, 0x91, 0x1e, + 0x1b, 0x50, 0x87, 0x48, 0x87, 0xfa, 0x81, 0x1a, 0xbf, 0x9d, 0x4d, 0x9a, 0xc0, 0x36, 0x65, 0x3b, + 0x95, 0x97, 0xc7, 0xd5, 0xcc, 0xe5, 0x71, 0x35, 0xf3, 0x62, 0x36, 0x69, 0xa6, 0xaa, 0xea, 0x1f, + 0x00, 0x2c, 0x3c, 0x8a, 0xd4, 0xef, 0xda, 0x54, 0x29, 0x6d, 0xaa, 0xfe, 0x1e, 0xc0, 0xc2, 0x6e, + 0x14, 0x04, 0xde, 0x38, 0x16, 0xa5, 0x84, 0x22, 0x5e, 0x72, 0x7f, 0xbf, 0x50, 0x94, 0x2e, 0xdb, + 0x59, 0x4f, 0x44, 0x81, 0x8f, 0x27, 0x1b, 0xff, 0xde, 0x78, 0xfb, 0x5a, 0x67, 0x0f, 0x83, 0xfa, + 0x13, 0xb8, 0x7c, 0x2f, 0xbe, 0xbd, 0x3d, 0xce, 0xd4, 0x0f, 0xae, 0x72, 0x0d, 0x96, 0xe8, 0x61, + 0x20, 0x38, 0xe5, 0x4a, 0x9f, 0xe5, 0x9f, 0xf6, 0xdc, 0x8f, 0x2f, 0x96, 0x78, 0x8c, 0x48, 0x2a, + 0x71, 0xae, 0x96, 0x6b, 0x2c, 0xdb, 0xa9, 0x5b, 0x3f, 0xca, 0xc2, 0xd2, 0x0e, 0x55, 0xc4, 0x25, + 0x8a, 0xa0, 0x1a, 0x2c, 0xbb, 0x54, 0x0e, 0x42, 0x16, 0x28, 0x26, 0x78, 0x92, 0x7e, 0x31, 0x84, + 0xee, 0xc4, 0x0c, 0x2e, 0x7c, 0x27, 0xe2, 0x4c, 0xa5, 0xdb, 0xb4, 0x6e, 0x7c, 0x71, 0xe7, 0x7a, + 0x6d, 0xe8, 0xa6, 0xa6, 0x44, 0x08, 0x2e, 0xc5, 0xe3, 0xc5, 0x39, 0x9d, 0x5b, 0xdb, 0xb1, 0x3a, + 0x97, 0xc9, 0xc0, 0x23, 0x63, 0xbc, 0xa4, 0xc3, 0xa9, 0x1b, 0xb3, 0x39, 0xf1, 0x29, 0xce, 0x1b, + 0x76, 0x6c, 0xa3, 0xbf, 0x61, 0x41, 0x8e, 0xfd, 0xbe, 0xf0, 0x70, 0x41, 0x47, 0x13, 0x0f, 0xad, + 0xc2, 0x5c, 0x14, 0x32, 0x5c, 0xd4, 0x27, 0x59, 0x9c, 0x9e, 0x57, 0x73, 0x7b, 0x76, 0xcf, 0x8e, + 0x63, 0xe8, 0x7f, 0x58, 0x8a, 0x42, 0xe6, 0x8c, 0x88, 0x1c, 0xe1, 0x92, 0xc6, 0xcb, 0xd3, 0xf3, + 0x6a, 0x71, 0xcf, 0xee, 0x3d, 0x24, 0x72, 0x64, 0x17, 0xa3, 0x90, 0xc5, 0x46, 0x77, 0xfb, 0x74, + 0x6a, 0x81, 0xb3, 0xa9, 0x05, 0xbe, 0x4d, 0x2d, 0xf0, 0xea, 0xc2, 0xca, 0x9c, 0x5d, 0x58, 0x99, + 0x2f, 0x17, 0x56, 0xe6, 0xe9, 0xfa, 0x4f, 0x17, 0x9f, 0x7c, 0x43, 0xf4, 0xfe, 0xfb, 0x05, 0xfd, + 0xb9, 0xbb, 0xfd, 0x3d, 0x00, 0x00, 0xff, 0xff, 0x85, 0xe4, 0x67, 0xe8, 0xa2, 0x05, 0x00, 0x00, } func (this *SendEnabled) Equal(that interface{}) bool { diff --git a/x/bank/types/genesis.pb.go b/x/bank/types/genesis.pb.go index af5383cc7606..1cbe1661f781 100644 --- a/x/bank/types/genesis.pb.go +++ b/x/bank/types/genesis.pb.go @@ -162,35 +162,37 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/genesis.proto", fileDescriptor_8f007de11b420c6e) } var fileDescriptor_8f007de11b420c6e = []byte{ - // 445 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x92, 0xbd, 0xae, 0xd3, 0x30, - 0x1c, 0xc5, 0x13, 0xca, 0xed, 0xbd, 0xd7, 0xbd, 0x20, 0x61, 0x3a, 0xa4, 0x05, 0x92, 0xd2, 0xa9, - 0x20, 0x35, 0x51, 0x8b, 0x58, 0x18, 0x90, 0x48, 0x85, 0x98, 0xf8, 0x50, 0xbb, 0xb1, 0x54, 0x4e, - 0x6c, 0xd2, 0xa8, 0x8d, 0x1d, 0xc5, 0x2e, 0xa2, 0x6f, 0xc0, 0xc8, 0x13, 0xa0, 0x8e, 0x88, 0x05, - 0x06, 0x1e, 0xa2, 0x63, 0xc5, 0xc4, 0x04, 0xa8, 0x1d, 0xe0, 0x31, 0x50, 0x6c, 0x37, 0x8d, 0x44, - 0xc4, 0xc4, 0x92, 0x44, 0x3e, 0xe7, 0xfc, 0xfe, 0x27, 0xb6, 0xc1, 0xed, 0x90, 0xf1, 0x84, 0x71, - 0x2f, 0x40, 0x74, 0xee, 0xbd, 0x1e, 0x04, 0x44, 0xa0, 0x81, 0x17, 0x11, 0x4a, 0x78, 0xcc, 0xdd, - 0x34, 0x63, 0x82, 0xc1, 0xeb, 0xca, 0xe2, 0xe6, 0x16, 0x57, 0x5b, 0xda, 0xcd, 0x88, 0x45, 0x4c, - 0xea, 0x5e, 0xfe, 0xa5, 0xac, 0x6d, 0xbb, 0xa0, 0x71, 0x52, 0xd0, 0x42, 0x16, 0xd3, 0xbf, 0xf4, - 0xd2, 0x34, 0xc9, 0x55, 0x7a, 0x4b, 0xe9, 0x53, 0x05, 0xd6, 0x73, 0x95, 0x74, 0x0d, 0x25, 0x31, - 0x65, 0x9e, 0x7c, 0xaa, 0xa5, 0xee, 0xfb, 0x1a, 0xb8, 0x78, 0xa2, 0xaa, 0x4e, 0x04, 0x12, 0x04, - 0x3e, 0x04, 0xf5, 0x14, 0x65, 0x28, 0xe1, 0x96, 0xd9, 0x31, 0x7b, 0x8d, 0xe1, 0x0d, 0xb7, 0xa2, - 0xba, 0xfb, 0x42, 0x5a, 0xfc, 0xf3, 0xcd, 0x77, 0xc7, 0xf8, 0xf0, 0xeb, 0xf3, 0x5d, 0x73, 0xac, - 0x53, 0x70, 0x04, 0xce, 0x02, 0xb4, 0x40, 0x34, 0x24, 0xdc, 0xba, 0xd4, 0xa9, 0xf5, 0x1a, 0xc3, - 0x9b, 0x95, 0x04, 0x5f, 0x99, 0xca, 0x88, 0x22, 0x08, 0x67, 0xa0, 0xce, 0x97, 0x69, 0xba, 0x58, - 0x59, 0x35, 0x89, 0x68, 0x1d, 0x11, 0x9c, 0x14, 0x88, 0x11, 0x8b, 0xa9, 0x7f, 0x3f, 0xcf, 0x7f, - 0xfc, 0xe1, 0xf4, 0xa2, 0x58, 0xcc, 0x96, 0x81, 0x1b, 0xb2, 0x44, 0xff, 0xb4, 0x7e, 0xf5, 0x39, - 0x9e, 0x7b, 0x62, 0x95, 0x12, 0x2e, 0x03, 0x5c, 0xd7, 0x55, 0x7c, 0xf8, 0x1c, 0x5c, 0xc5, 0x84, - 0xb2, 0x64, 0x9a, 0x10, 0x81, 0x30, 0x12, 0xc8, 0xba, 0x2c, 0x27, 0xde, 0xaa, 0x2c, 0xfd, 0x54, - 0x9b, 0xca, 0xad, 0xaf, 0xc8, 0xfc, 0x41, 0x81, 0xcf, 0xc0, 0x05, 0x27, 0x14, 0x4f, 0x09, 0x45, - 0xc1, 0x82, 0x60, 0xeb, 0x44, 0xe2, 0x3a, 0x95, 0xb8, 0x09, 0xa1, 0xf8, 0xb1, 0xf2, 0x95, 0x89, - 0x0d, 0x7e, 0x5c, 0xef, 0x7e, 0x32, 0xc1, 0xa9, 0xde, 0x2b, 0x38, 0x04, 0xa7, 0x08, 0xe3, 0x8c, - 0x70, 0x75, 0x38, 0xe7, 0xbe, 0xf5, 0xf5, 0x4b, 0xbf, 0xa9, 0xc9, 0x8f, 0x94, 0x32, 0x11, 0x59, - 0x4c, 0xa3, 0xf1, 0xc1, 0x08, 0x5f, 0x81, 0x93, 0xfc, 0xf2, 0x1c, 0x0e, 0xe3, 0xff, 0xef, 0xa4, - 0xc2, 0x3f, 0x38, 0x7b, 0xbb, 0x76, 0x8c, 0xdf, 0x6b, 0xc7, 0xf0, 0x47, 0x9b, 0x9d, 0x6d, 0x6e, - 0x77, 0xb6, 0xf9, 0x73, 0x67, 0x9b, 0xef, 0xf6, 0xb6, 0xb1, 0xdd, 0xdb, 0xc6, 0xb7, 0xbd, 0x6d, - 0xbc, 0xbc, 0xf3, 0x4f, 0xf2, 0x1b, 0x75, 0xa5, 0xe5, 0x80, 0xa0, 0x2e, 0xaf, 0xe7, 0xbd, 0x3f, - 0x01, 0x00, 0x00, 0xff, 0xff, 0x5d, 0x88, 0xa3, 0x71, 0x5c, 0x03, 0x00, 0x00, + // 469 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x93, 0xb1, 0x6f, 0xd3, 0x40, + 0x14, 0xc6, 0x6d, 0x42, 0xd3, 0xf6, 0x52, 0x90, 0xb8, 0x76, 0x70, 0x0b, 0x38, 0xa1, 0x53, 0xa8, + 0x54, 0x5b, 0x0d, 0x1b, 0x03, 0x12, 0x8e, 0x10, 0x53, 0x01, 0x35, 0x1b, 0x8b, 0x75, 0xf6, 0x3d, + 0x19, 0xab, 0xf6, 0x9d, 0x95, 0x77, 0x41, 0x64, 0x41, 0x8c, 0x8c, 0xcc, 0x4c, 0x1d, 0x11, 0x53, + 0x07, 0x24, 0xfe, 0x04, 0x3a, 0x56, 0x4c, 0x4c, 0x80, 0x92, 0xa1, 0xfc, 0x19, 0x28, 0x77, 0x97, + 0x34, 0x12, 0x16, 0x63, 0x17, 0xdb, 0xba, 0xef, 0x7b, 0xbf, 0xef, 0xbd, 0xbb, 0x33, 0xb9, 0x97, + 0x4a, 0x2c, 0x25, 0x86, 0x09, 0x13, 0xc7, 0xe1, 0xeb, 0x83, 0x04, 0x14, 0x3b, 0x08, 0x33, 0x10, + 0x80, 0x39, 0x06, 0xd5, 0x50, 0x2a, 0x49, 0x37, 0x8d, 0x25, 0x98, 0x59, 0x02, 0x6b, 0xd9, 0xd9, + 0xca, 0x64, 0x26, 0xb5, 0x1e, 0xce, 0xbe, 0x8c, 0x75, 0xc7, 0x5f, 0xd0, 0x10, 0x16, 0xb4, 0x54, + 0xe6, 0xe2, 0x1f, 0x7d, 0x29, 0x4d, 0x73, 0x8d, 0xbe, 0x6d, 0xf4, 0xd8, 0x80, 0x6d, 0xae, 0x91, + 0x6e, 0xb1, 0x32, 0x17, 0x32, 0xd4, 0x4f, 0xb3, 0xb4, 0xfb, 0xb5, 0x41, 0x36, 0x9e, 0x9a, 0x56, + 0x07, 0x8a, 0x29, 0xa0, 0x8f, 0x48, 0xb3, 0x62, 0x43, 0x56, 0xa2, 0xe7, 0x76, 0xdc, 0x6e, 0xab, + 0x77, 0x3b, 0xa8, 0x69, 0x3d, 0x78, 0xa1, 0x2d, 0xd1, 0xfa, 0xd9, 0xcf, 0xb6, 0xf3, 0xe9, 0xe2, + 0x74, 0xcf, 0x3d, 0xb2, 0x55, 0xb4, 0x4f, 0xd6, 0x12, 0x56, 0x30, 0x91, 0x02, 0x7a, 0xd7, 0x3a, + 0x8d, 0x6e, 0xab, 0x77, 0xa7, 0x96, 0x10, 0x19, 0xd3, 0x32, 0x62, 0x51, 0x48, 0xdf, 0xb9, 0xa4, + 0x89, 0xa3, 0xaa, 0x2a, 0xc6, 0x5e, 0x43, 0x33, 0xb6, 0x2f, 0x19, 0x08, 0x0b, 0x46, 0x5f, 0xe6, + 0x22, 0x3a, 0x9c, 0x01, 0x3e, 0xff, 0x6a, 0x77, 0xb3, 0x5c, 0xbd, 0x1a, 0x25, 0x41, 0x2a, 0x4b, + 0x3b, 0xb5, 0x7d, 0xed, 0x23, 0x3f, 0x0e, 0xd5, 0xb8, 0x02, 0xd4, 0x05, 0xf8, 0xf1, 0xe2, 0x74, + 0x6f, 0x53, 0x8c, 0x8a, 0x22, 0xc6, 0x22, 0x4f, 0x21, 0x66, 0x18, 0x43, 0x59, 0xa9, 0xb1, 0x9d, + 0xc3, 0xe4, 0xd2, 0xe7, 0xe4, 0x26, 0x07, 0x21, 0xcb, 0xb8, 0x04, 0xc5, 0x38, 0x53, 0xcc, 0xbb, + 0xae, 0x3b, 0xb9, 0x5b, 0x3b, 0xcd, 0xa1, 0x35, 0x2d, 0x8f, 0x73, 0x43, 0xd7, 0xcf, 0x15, 0xfa, + 0x8c, 0x6c, 0x20, 0x08, 0x1e, 0x83, 0x60, 0x49, 0x01, 0xdc, 0x5b, 0xd1, 0xb8, 0x4e, 0x2d, 0x6e, + 0x00, 0x82, 0x3f, 0x31, 0xbe, 0x65, 0x62, 0x0b, 0x2f, 0xd7, 0x77, 0xbf, 0xb9, 0x64, 0xd5, 0x6e, + 0x22, 0xed, 0x91, 0x55, 0xc6, 0xf9, 0x10, 0xd0, 0x9c, 0xda, 0x7a, 0xe4, 0x7d, 0xff, 0xb2, 0xbf, + 0x65, 0xc9, 0x8f, 0x8d, 0x32, 0x50, 0xc3, 0x5c, 0x64, 0x47, 0x73, 0x23, 0x7d, 0x4b, 0x56, 0x66, + 0xb7, 0x6a, 0x7e, 0x4a, 0x57, 0xb7, 0xc3, 0x26, 0xf6, 0xe1, 0xda, 0xfb, 0x93, 0xb6, 0xf3, 0xe7, + 0xa4, 0xed, 0x44, 0xfd, 0xb3, 0x89, 0xef, 0x9e, 0x4f, 0x7c, 0xf7, 0xf7, 0xc4, 0x77, 0x3f, 0x4c, + 0x7d, 0xe7, 0x7c, 0xea, 0x3b, 0x3f, 0xa6, 0xbe, 0xf3, 0xf2, 0xfe, 0x7f, 0x13, 0xdf, 0x98, 0x7f, + 0x40, 0x07, 0x27, 0x4d, 0x7d, 0x9f, 0x1f, 0xfc, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x75, 0xe4, + 0x92, 0x8d, 0x03, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { diff --git a/x/bank/types/query.pb.go b/x/bank/types/query.pb.go index beaa0ab624ab..1c681006177b 100644 --- a/x/bank/types/query.pb.go +++ b/x/bank/types/query.pb.go @@ -1202,83 +1202,85 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/query.proto", fileDescriptor_9c6fc1939682df13) } var fileDescriptor_9c6fc1939682df13 = []byte{ - // 1211 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcf, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0xa4, 0xaa, 0x93, 0x3c, 0xa7, 0x95, 0x3a, 0x0d, 0x34, 0xd9, 0x10, 0x3b, 0x6c, 0xaa, - 0xc6, 0x09, 0xc9, 0x6e, 0xe3, 0x00, 0xa2, 0x55, 0x89, 0x54, 0xa7, 0xb4, 0x07, 0x84, 0x5a, 0x1c, - 0x7a, 0x81, 0x83, 0xb5, 0xf6, 0x0e, 0xae, 0x15, 0x7b, 0xc7, 0xf5, 0x6c, 0x5a, 0xac, 0xaa, 0x12, - 0x42, 0x42, 0xea, 0x11, 0x89, 0x9e, 0x90, 0x90, 0x22, 0x24, 0xa0, 0x02, 0x09, 0x21, 0xc4, 0x91, - 0x23, 0x87, 0x5e, 0x90, 0x0a, 0x1c, 0xca, 0x09, 0x50, 0x82, 0x04, 0x7f, 0x06, 0xf2, 0xfc, 0xf0, - 0xee, 0xda, 0xe3, 0x8d, 0x93, 0xba, 0x12, 0x5c, 0x5a, 0x7b, 0xe6, 0xbd, 0x79, 0xdf, 0xfb, 0xde, - 0x9b, 0x79, 0x9f, 0x03, 0x99, 0x32, 0x65, 0x75, 0xca, 0xec, 0x92, 0xe3, 0x6d, 0xd9, 0xb7, 0x56, - 0x4b, 0xc4, 0x77, 0x56, 0xed, 0x9b, 0xdb, 0xa4, 0xd9, 0xb2, 0x1a, 0x4d, 0xea, 0x53, 0x7c, 0x52, - 0x18, 0x58, 0x6d, 0x03, 0x4b, 0x1a, 0x18, 0x4b, 0x1d, 0x2f, 0x46, 0x84, 0x75, 0xc7, 0xb7, 0xe1, - 0x54, 0xaa, 0x9e, 0xe3, 0x57, 0xa9, 0x27, 0x0e, 0x30, 0x26, 0x2b, 0xb4, 0x42, 0xf9, 0x47, 0xbb, - 0xfd, 0x49, 0xae, 0x3e, 0x57, 0xa1, 0xb4, 0x52, 0x23, 0xb6, 0xd3, 0xa8, 0xda, 0x8e, 0xe7, 0x51, - 0x9f, 0xbb, 0x30, 0xb9, 0x9b, 0x0e, 0x9f, 0xaf, 0x4e, 0x2e, 0xd3, 0xaa, 0xd7, 0xb3, 0x1f, 0x42, - 0xcd, 0x11, 0x8a, 0xfd, 0x69, 0xb1, 0x5f, 0x14, 0x61, 0x65, 0x06, 0x62, 0x6b, 0x46, 0xba, 0x2a, - 0xd4, 0xe1, 0x64, 0x8d, 0x13, 0x4e, 0xbd, 0xea, 0x51, 0x9b, 0xff, 0x2b, 0x96, 0xcc, 0x2a, 0x9c, - 0x7c, 0xb3, 0x6d, 0x91, 0x77, 0x6a, 0x8e, 0x57, 0x26, 0x05, 0x72, 0x73, 0x9b, 0x30, 0x1f, 0xe7, - 0x60, 0xd4, 0x71, 0xdd, 0x26, 0x61, 0x6c, 0x0a, 0xcd, 0xa1, 0xec, 0x78, 0x7e, 0xea, 0x97, 0xef, - 0x57, 0x26, 0x65, 0xa4, 0x8b, 0x62, 0x67, 0xd3, 0x6f, 0x56, 0xbd, 0x4a, 0x41, 0x19, 0xe2, 0x49, - 0x38, 0xea, 0x12, 0x8f, 0xd6, 0xa7, 0x46, 0xda, 0x1e, 0x05, 0xf1, 0xe5, 0xfc, 0xd8, 0xbd, 0x9d, - 0x4c, 0xe2, 0x9f, 0x9d, 0x4c, 0xc2, 0x7c, 0x1d, 0x26, 0xa3, 0xa1, 0x58, 0x83, 0x7a, 0x8c, 0xe0, - 0x35, 0x18, 0x2d, 0x89, 0x25, 0x1e, 0x2b, 0x95, 0x9b, 0xb6, 0x3a, 0x45, 0x61, 0x44, 0x15, 0xc5, - 0xda, 0xa0, 0x55, 0xaf, 0xa0, 0x2c, 0xcd, 0x1f, 0x11, 0x9c, 0xe2, 0xa7, 0x5d, 0xac, 0xd5, 0xe4, - 0x81, 0xec, 0x49, 0xc0, 0x5f, 0x06, 0x08, 0x4a, 0xcb, 0x33, 0x48, 0xe5, 0xce, 0x44, 0x70, 0x08, - 0x22, 0x15, 0x9a, 0x6b, 0x4e, 0x45, 0x91, 0x55, 0x08, 0x79, 0xe2, 0x79, 0x38, 0xd6, 0x24, 0x8c, - 0xd6, 0x6e, 0x91, 0xa2, 0x20, 0xe3, 0xc8, 0x1c, 0xca, 0x8e, 0x15, 0x26, 0xe4, 0xe2, 0xa5, 0x2e, - 0x4e, 0x7e, 0x46, 0x30, 0xd5, 0x9b, 0x86, 0x24, 0xa6, 0x06, 0x63, 0x32, 0xdd, 0x76, 0x22, 0x47, - 0x62, 0x99, 0xc9, 0xbf, 0xf4, 0xf0, 0xf7, 0x4c, 0xe2, 0xab, 0x3f, 0x32, 0xd9, 0x4a, 0xd5, 0xbf, - 0xb1, 0x5d, 0xb2, 0xca, 0xb4, 0x2e, 0x3b, 0x43, 0xfe, 0xb7, 0xc2, 0xdc, 0x2d, 0xdb, 0x6f, 0x35, - 0x08, 0xe3, 0x0e, 0xec, 0xc1, 0xdf, 0xdf, 0x2e, 0xa1, 0x42, 0x27, 0x02, 0xbe, 0xa2, 0x61, 0x60, - 0x61, 0x5f, 0x06, 0x04, 0xd4, 0x30, 0x05, 0xe6, 0xe7, 0x08, 0x66, 0x79, 0x4e, 0x9b, 0x0d, 0xe2, - 0xb9, 0x4e, 0xa9, 0x46, 0xfe, 0x43, 0x05, 0x0a, 0x71, 0xff, 0x18, 0x41, 0xba, 0x1f, 0xce, 0xff, - 0x77, 0x05, 0x5a, 0x30, 0xaf, 0x4d, 0x2c, 0xdf, 0xe2, 0xfd, 0xf7, 0x34, 0x2f, 0xf9, 0x3b, 0x70, - 0x3a, 0x3e, 0xf4, 0x93, 0x5c, 0xfa, 0x2d, 0x79, 0xe7, 0xdf, 0xa2, 0xbe, 0x53, 0xdb, 0xdc, 0x6e, - 0x34, 0x6a, 0x2d, 0x95, 0x4b, 0xb4, 0x3d, 0xd0, 0x10, 0xda, 0xe3, 0x27, 0x75, 0x35, 0x23, 0xd1, - 0x24, 0xfc, 0x1b, 0x90, 0x64, 0x7c, 0xe5, 0xa9, 0xb5, 0x85, 0x3c, 0x7f, 0x78, 0x4d, 0xb1, 0x2c, - 0x9f, 0x5f, 0x91, 0xc9, 0xd5, 0x77, 0x15, 0x73, 0x9d, 0x8a, 0xa2, 0x50, 0x45, 0xcd, 0xeb, 0xf0, - 0x4c, 0x97, 0xb5, 0xcc, 0xfc, 0x02, 0x24, 0x9d, 0x3a, 0xdd, 0xf6, 0xfc, 0x7d, 0xeb, 0x96, 0x1f, - 0x6f, 0x67, 0x2e, 0xb3, 0x11, 0x3e, 0xe6, 0x24, 0x60, 0x7e, 0xec, 0x35, 0xa7, 0xe9, 0xd4, 0xd5, - 0x7b, 0x60, 0x5e, 0x97, 0x43, 0x48, 0xad, 0xca, 0x50, 0xeb, 0x90, 0x6c, 0xf0, 0x15, 0x19, 0x6a, - 0xc6, 0xd2, 0x0c, 0x6b, 0x4b, 0x38, 0x45, 0x82, 0x09, 0x2f, 0xd3, 0x05, 0x83, 0x1f, 0xcb, 0x3b, - 0x8f, 0xbd, 0x41, 0x7c, 0xc7, 0x75, 0x7c, 0x67, 0xc8, 0x1d, 0x63, 0x7e, 0x83, 0x60, 0x46, 0x1b, - 0x46, 0x66, 0x71, 0x19, 0xc6, 0xeb, 0x72, 0x4d, 0x3d, 0x22, 0xb3, 0xda, 0x44, 0x94, 0x67, 0x38, - 0x95, 0xc0, 0x75, 0x78, 0x8d, 0xb0, 0x0a, 0xd3, 0x01, 0xde, 0x6e, 0x56, 0xf4, 0xdd, 0x50, 0x0a, - 0x33, 0xd9, 0x93, 0xe1, 0x25, 0x18, 0x53, 0x30, 0x25, 0x8f, 0x83, 0x27, 0xd8, 0xf1, 0x34, 0x6f, - 0xcb, 0xcb, 0xcd, 0x63, 0x5c, 0xbd, 0xed, 0x91, 0x26, 0x8b, 0x05, 0x35, 0xac, 0x89, 0x60, 0xbe, - 0x8f, 0x00, 0x82, 0xa0, 0x87, 0x7a, 0x15, 0xd7, 0x83, 0xd7, 0x6c, 0xe4, 0x00, 0xb7, 0xa2, 0xf3, - 0xb0, 0x7d, 0xa9, 0xde, 0x9a, 0x48, 0xf2, 0x92, 0xde, 0x3c, 0x4c, 0xf0, 0x84, 0x8b, 0x94, 0xaf, - 0xcb, 0x1e, 0xca, 0x68, 0x29, 0x0e, 0xfc, 0x0b, 0x29, 0x37, 0x38, 0x6b, 0x98, 0xa3, 0x45, 0x54, - 0x69, 0x93, 0x78, 0xee, 0x6b, 0x5e, 0xfb, 0x81, 0x77, 0x55, 0x95, 0x9e, 0x85, 0x24, 0x0f, 0x29, - 0x10, 0x8e, 0x17, 0xe4, 0xb7, 0xae, 0x3a, 0x95, 0x0f, 0x5d, 0xa7, 0x07, 0x8a, 0xa4, 0x48, 0x6c, - 0x49, 0xd2, 0x06, 0x4c, 0x30, 0xe2, 0xb9, 0x45, 0x22, 0xd6, 0x25, 0x49, 0x73, 0x5a, 0x92, 0xc2, - 0xfe, 0x29, 0x16, 0x7c, 0xe9, 0x62, 0xa9, 0x7c, 0x68, 0x96, 0x72, 0xdf, 0x1d, 0x87, 0xa3, 0x1c, - 0x2a, 0xfe, 0x14, 0xc1, 0xa8, 0x1c, 0x81, 0x38, 0xab, 0x45, 0xa3, 0x91, 0xdf, 0xc6, 0xe2, 0x00, - 0x96, 0x22, 0xac, 0xf9, 0xea, 0xbd, 0x76, 0x2b, 0x7d, 0xf0, 0xeb, 0x5f, 0x1f, 0x8f, 0xe4, 0xf0, - 0x59, 0x5b, 0xff, 0xcb, 0x41, 0x08, 0x0c, 0xfb, 0x8e, 0xec, 0xd7, 0xbb, 0x76, 0xa9, 0x25, 0xe4, - 0x29, 0xde, 0x41, 0x90, 0x0a, 0x69, 0x4f, 0xbc, 0xdc, 0x3f, 0x72, 0xaf, 0xd2, 0x36, 0x56, 0x06, - 0xb4, 0x96, 0x58, 0x5f, 0x0c, 0xb0, 0x2e, 0xe2, 0x85, 0x01, 0xb1, 0xe2, 0x1f, 0x10, 0x9c, 0xe8, - 0x91, 0x68, 0x38, 0xd7, 0x3f, 0x74, 0x3f, 0xdd, 0x69, 0xac, 0x1d, 0xc8, 0x47, 0x82, 0x5e, 0x0f, - 0x40, 0xaf, 0xe1, 0x55, 0x2d, 0x68, 0xa6, 0x9c, 0x8b, 0x1a, 0xf8, 0x8f, 0x11, 0x9c, 0xea, 0xa3, - 0x86, 0xf0, 0x2b, 0x83, 0x03, 0x8a, 0x6a, 0x37, 0xe3, 0xdc, 0x21, 0x3c, 0x65, 0x42, 0x57, 0x82, - 0x84, 0x2e, 0xe0, 0xf3, 0x07, 0x4e, 0x28, 0xe8, 0x9d, 0xfb, 0x08, 0x52, 0x21, 0x71, 0x14, 0xd7, - 0x3b, 0xbd, 0x8a, 0x2d, 0xae, 0x77, 0x34, 0x8a, 0xcb, 0xcc, 0x06, 0xa8, 0x67, 0xf1, 0x8c, 0x1e, - 0xb5, 0x80, 0x71, 0x1f, 0xc1, 0x98, 0x92, 0x2d, 0x38, 0xe6, 0x26, 0x75, 0x09, 0x21, 0x63, 0x69, - 0x10, 0x53, 0x89, 0x66, 0x35, 0x40, 0x73, 0x06, 0x9f, 0x8e, 0x41, 0x13, 0xb0, 0xf5, 0x21, 0x82, - 0xa4, 0xd0, 0x2a, 0x78, 0xa1, 0x7f, 0xa4, 0x88, 0x30, 0x32, 0xb2, 0xfb, 0x1b, 0x0e, 0x4e, 0x8f, - 0x50, 0x45, 0xf8, 0x6b, 0x04, 0xc7, 0x22, 0x73, 0x1c, 0x5b, 0xfd, 0xa3, 0xe8, 0x34, 0x82, 0x61, - 0x0f, 0x6c, 0x2f, 0xc1, 0x9d, 0x0b, 0xc0, 0x59, 0x78, 0x59, 0x0b, 0x4e, 0xcc, 0x8a, 0xa2, 0x52, - 0x03, 0xf6, 0x1d, 0xbe, 0x70, 0x17, 0x7f, 0x81, 0xe0, 0x78, 0x54, 0x58, 0xe1, 0xfd, 0xc2, 0x77, - 0x2b, 0x3d, 0xe3, 0xec, 0xe0, 0x0e, 0x83, 0x97, 0xb7, 0x0b, 0x30, 0xfe, 0x0c, 0x41, 0x2a, 0x34, - 0xbd, 0xe3, 0x2e, 0x43, 0xaf, 0xc2, 0x89, 0xbb, 0x0c, 0x1a, 0x49, 0x60, 0xbe, 0x1c, 0xe0, 0x7b, - 0x01, 0x2f, 0xf6, 0xc7, 0x27, 0x25, 0x43, 0x87, 0xcd, 0x4f, 0x10, 0xa4, 0x42, 0xd3, 0x2f, 0x0e, - 0x64, 0xef, 0x80, 0x8f, 0x03, 0xa9, 0x19, 0xc9, 0xa6, 0x15, 0x80, 0x9c, 0xc7, 0xcf, 0xeb, 0xef, - 0x48, 0x68, 0x64, 0xe7, 0x37, 0x1e, 0xee, 0xa6, 0xd1, 0xa3, 0xdd, 0x34, 0xfa, 0x73, 0x37, 0x8d, - 0x3e, 0xda, 0x4b, 0x27, 0x1e, 0xed, 0xa5, 0x13, 0xbf, 0xed, 0xa5, 0x13, 0x6f, 0x2f, 0xc6, 0xfe, - 0x74, 0x7a, 0x4f, 0x9c, 0xc9, 0x7f, 0x41, 0x95, 0x92, 0xfc, 0xcf, 0x5a, 0x6b, 0xff, 0x06, 0x00, - 0x00, 0xff, 0xff, 0x37, 0xb5, 0xe0, 0x0a, 0xf9, 0x13, 0x00, 0x00, + // 1236 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0xf6, 0xb4, 0xaa, 0x93, 0x3c, 0xa7, 0x95, 0x3a, 0x09, 0x34, 0xd9, 0x10, 0x3b, 0x6c, 0xaa, + 0xc6, 0x09, 0xc9, 0x6e, 0xe3, 0x20, 0x44, 0xab, 0x12, 0xa9, 0x4e, 0x69, 0x0f, 0xa8, 0x6a, 0x71, + 0xe8, 0x05, 0x0e, 0xd6, 0xda, 0x3b, 0x18, 0x2b, 0xeb, 0x5d, 0xd7, 0xb3, 0x6e, 0xb1, 0xaa, 0x4a, + 0x15, 0x02, 0xa9, 0x47, 0x24, 0x7a, 0xaa, 0x84, 0x14, 0x21, 0x01, 0x15, 0x48, 0xa8, 0x42, 0x1c, + 0x39, 0x72, 0xe8, 0xb1, 0x82, 0x03, 0x9c, 0x00, 0x25, 0x88, 0x22, 0x4e, 0xfc, 0x09, 0xc8, 0xf3, + 0xc3, 0xbb, 0x6b, 0x8f, 0x37, 0x4e, 0x6a, 0x10, 0xe2, 0xd2, 0xda, 0x33, 0xef, 0xcd, 0xfb, 0xde, + 0xf7, 0xde, 0xcc, 0xfb, 0x1c, 0xc8, 0x94, 0x3d, 0x5a, 0xf3, 0xa8, 0x59, 0xb2, 0xdc, 0x2d, 0xf3, + 0xc6, 0x6a, 0x89, 0xf8, 0xd6, 0xaa, 0x79, 0xbd, 0x49, 0x1a, 0x2d, 0xa3, 0xde, 0xf0, 0x7c, 0x0f, + 0x4f, 0x70, 0x03, 0xa3, 0x6d, 0x60, 0x08, 0x03, 0x6d, 0xa9, 0xe3, 0x45, 0x09, 0xb7, 0xee, 0xf8, + 0xd6, 0xad, 0x4a, 0xd5, 0xb5, 0xfc, 0xaa, 0xe7, 0xf2, 0x03, 0xb4, 0xc9, 0x8a, 0x57, 0xf1, 0xd8, + 0x47, 0xb3, 0xfd, 0x49, 0xac, 0x3e, 0x57, 0xf1, 0xbc, 0x8a, 0x43, 0x4c, 0xab, 0x5e, 0x35, 0x2d, + 0xd7, 0xf5, 0x7c, 0xe6, 0x42, 0xc5, 0x6e, 0x3a, 0x7c, 0xbe, 0x3c, 0xb9, 0xec, 0x55, 0xdd, 0x9e, + 0xfd, 0x10, 0x6a, 0x86, 0x90, 0xef, 0x4f, 0xf3, 0xfd, 0x22, 0x0f, 0x2b, 0x32, 0xe0, 0x5b, 0x33, + 0xc2, 0x55, 0xa2, 0x0e, 0x27, 0xab, 0x1d, 0xb7, 0x6a, 0x55, 0xd7, 0x33, 0xd9, 0xbf, 0x7c, 0x49, + 0xaf, 0xc2, 0xc4, 0xeb, 0x6d, 0x8b, 0xbc, 0xe5, 0x58, 0x6e, 0x99, 0x14, 0xc8, 0xf5, 0x26, 0xa1, + 0x3e, 0xce, 0xc1, 0x88, 0x65, 0xdb, 0x0d, 0x42, 0xe9, 0x14, 0x9a, 0x43, 0xd9, 0xb1, 0xfc, 0xd4, + 0xf7, 0xdf, 0xac, 0x4c, 0x8a, 0x48, 0xe7, 0xf9, 0xce, 0xa6, 0xdf, 0xa8, 0xba, 0x95, 0x82, 0x34, + 0xc4, 0x93, 0x70, 0xc4, 0x26, 0xae, 0x57, 0x9b, 0x3a, 0xd4, 0xf6, 0x28, 0xf0, 0x2f, 0x67, 0x47, + 0xef, 0x6e, 0x67, 0x12, 0x7f, 0x6c, 0x67, 0x12, 0xfa, 0x6b, 0x30, 0x19, 0x0d, 0x45, 0xeb, 0x9e, + 0x4b, 0x09, 0x5e, 0x83, 0x91, 0x12, 0x5f, 0x62, 0xb1, 0x52, 0xb9, 0x69, 0xa3, 0x53, 0x14, 0x4a, + 0x64, 0x51, 0x8c, 0x0d, 0xaf, 0xea, 0x16, 0xa4, 0xa5, 0xfe, 0x1d, 0x82, 0x13, 0xec, 0xb4, 0xf3, + 0x8e, 0x23, 0x0e, 0xa4, 0x4f, 0x03, 0xfe, 0x22, 0x40, 0x50, 0x5a, 0x96, 0x41, 0x2a, 0x77, 0x2a, + 0x82, 0x83, 0x13, 0x29, 0xd1, 0x5c, 0xb5, 0x2a, 0x92, 0xac, 0x42, 0xc8, 0x13, 0xcf, 0xc3, 0xd1, + 0x06, 0xa1, 0x9e, 0x73, 0x83, 0x14, 0x39, 0x19, 0x87, 0xe7, 0x50, 0x76, 0xb4, 0x30, 0x2e, 0x16, + 0x2f, 0x74, 0x71, 0xf2, 0x27, 0x82, 0xa9, 0xde, 0x34, 0x04, 0x31, 0xef, 0x23, 0x18, 0x15, 0xf9, + 0xb6, 0x33, 0x39, 0x1c, 0x4b, 0x4d, 0xfe, 0xf2, 0xa3, 0x9f, 0x33, 0x89, 0x2f, 0x7e, 0xc9, 0x64, + 0x2b, 0x55, 0xff, 0x9d, 0x66, 0xc9, 0x28, 0x7b, 0x35, 0xd1, 0x1a, 0xe2, 0xbf, 0x15, 0x6a, 0x6f, + 0x99, 0x7e, 0xab, 0x4e, 0x28, 0x73, 0xa0, 0xf7, 0x9f, 0x3c, 0x5c, 0x9a, 0x70, 0x9b, 0x8e, 0x53, + 0xa4, 0x4e, 0xb5, 0x4c, 0x8a, 0x16, 0x2d, 0x92, 0x5a, 0xdd, 0x6f, 0x3d, 0x78, 0xf2, 0x70, 0x09, + 0x15, 0x3a, 0x91, 0xf1, 0x25, 0x05, 0x35, 0x0b, 0x7b, 0x52, 0xc3, 0x73, 0x08, 0x73, 0xa3, 0x7f, + 0x8a, 0x60, 0x96, 0x25, 0xbb, 0x59, 0x27, 0xae, 0x6d, 0x95, 0x1c, 0xf2, 0x1f, 0xaa, 0x5c, 0xa8, + 0x28, 0x7f, 0x21, 0x48, 0xf7, 0xc3, 0xf9, 0x3f, 0x2d, 0x4d, 0x0b, 0xe6, 0x95, 0x19, 0xe7, 0x5b, + 0xac, 0x63, 0xff, 0xc9, 0x67, 0xe1, 0x2d, 0x38, 0x19, 0x1f, 0xfa, 0x69, 0x9e, 0x89, 0x2d, 0xf1, + 0x4a, 0xbc, 0xe1, 0xf9, 0x96, 0xb3, 0xd9, 0xac, 0xd7, 0x9d, 0x96, 0xcc, 0x25, 0xda, 0x37, 0x68, + 0x08, 0x7d, 0xf3, 0xbb, 0xbc, 0xcc, 0x91, 0x68, 0x02, 0xfe, 0x1d, 0x04, 0x49, 0xca, 0x96, 0xfe, + 0xf5, 0x7e, 0x11, 0x71, 0x87, 0xd7, 0x2d, 0xcb, 0xe2, 0x25, 0xe7, 0x29, 0x5e, 0x79, 0x5b, 0x52, + 0xda, 0x29, 0x35, 0x0a, 0x95, 0x5a, 0xbf, 0x06, 0xcf, 0x74, 0x59, 0x0b, 0x4a, 0xce, 0x41, 0xd2, + 0xaa, 0x79, 0x4d, 0xd7, 0xdf, 0xb3, 0xa0, 0xf9, 0xb1, 0x36, 0x23, 0x22, 0x1b, 0xee, 0xa3, 0x4f, + 0x02, 0x66, 0xc7, 0x5e, 0xb5, 0x1a, 0x56, 0x4d, 0xbe, 0x20, 0xfa, 0x35, 0x31, 0xcf, 0xe4, 0xaa, + 0x08, 0xb5, 0x0e, 0xc9, 0x3a, 0x5b, 0x11, 0xa1, 0x66, 0x0c, 0xc5, 0xdc, 0x37, 0xb8, 0x53, 0x24, + 0x18, 0xf7, 0xd2, 0x6d, 0xd0, 0xd8, 0xb1, 0xac, 0x25, 0xe9, 0x65, 0xe2, 0x5b, 0xb6, 0xe5, 0x5b, + 0x43, 0x6e, 0x25, 0xfd, 0x2b, 0x04, 0x33, 0xca, 0x30, 0x22, 0x8b, 0x8b, 0x30, 0x56, 0x13, 0x6b, + 0xf2, 0xd5, 0x99, 0x55, 0x26, 0x22, 0x3d, 0xc3, 0xa9, 0x04, 0xae, 0xc3, 0x6b, 0x84, 0x55, 0x98, + 0x0e, 0xf0, 0x76, 0xb3, 0xa2, 0xee, 0x86, 0x52, 0x98, 0xc9, 0x9e, 0x0c, 0x2f, 0xc0, 0xa8, 0x84, + 0x29, 0x78, 0x1c, 0x3c, 0xc1, 0x8e, 0xa7, 0x7e, 0x53, 0xdc, 0x7a, 0x16, 0xe3, 0xca, 0x4d, 0x97, + 0x34, 0x68, 0x2c, 0xa8, 0x61, 0xcd, 0x10, 0xfd, 0x0e, 0x02, 0x08, 0x82, 0x1e, 0xe8, 0xb9, 0x5c, + 0x0f, 0x9e, 0xb9, 0x43, 0xfb, 0xb8, 0x15, 0x9d, 0x17, 0xef, 0x73, 0xf9, 0x08, 0x45, 0x92, 0x17, + 0xf4, 0xe6, 0x61, 0x9c, 0x25, 0x5c, 0xf4, 0xd8, 0xba, 0xe8, 0xa1, 0x8c, 0x92, 0xe2, 0xc0, 0xbf, + 0x90, 0xb2, 0x83, 0xb3, 0x86, 0x39, 0x73, 0x78, 0x95, 0x36, 0x89, 0x6b, 0xbf, 0xea, 0xb6, 0x5f, + 0x7e, 0x5b, 0x56, 0xe9, 0x59, 0x48, 0xb2, 0x90, 0x1c, 0xe1, 0x58, 0x41, 0x7c, 0xeb, 0xaa, 0x53, + 0xf9, 0xc0, 0x75, 0x7a, 0x20, 0x49, 0x8a, 0xc4, 0x16, 0x24, 0x6d, 0xc0, 0x38, 0x25, 0xae, 0x5d, + 0x24, 0x7c, 0x5d, 0x90, 0x34, 0xa7, 0x24, 0x29, 0xec, 0x9f, 0xa2, 0xc1, 0x97, 0x2e, 0x96, 0xca, + 0x07, 0x66, 0x29, 0xf7, 0xf5, 0x31, 0x38, 0xc2, 0xa0, 0xe2, 0x8f, 0x11, 0x8c, 0x88, 0xd9, 0x88, + 0xb3, 0x4a, 0x34, 0x0a, 0x25, 0xaf, 0x2d, 0x0e, 0x60, 0xc9, 0xc3, 0xea, 0xaf, 0xdc, 0x6d, 0xb7, + 0xd2, 0x7b, 0x3f, 0xfc, 0xf6, 0xd1, 0xa1, 0x1c, 0x3e, 0x6d, 0xaa, 0x7f, 0x84, 0x70, 0xe5, 0x61, + 0xde, 0x12, 0xfd, 0x7a, 0xdb, 0x2c, 0xb5, 0xb8, 0xd2, 0xc5, 0xdb, 0x08, 0x52, 0x21, 0x19, 0x8b, + 0x97, 0xfb, 0x47, 0xee, 0x15, 0xed, 0xda, 0xca, 0x80, 0xd6, 0x02, 0xeb, 0x8b, 0x01, 0xd6, 0x45, + 0xbc, 0x30, 0x20, 0x56, 0xfc, 0x2d, 0x82, 0xe3, 0x3d, 0xa2, 0x0e, 0xe7, 0xfa, 0x87, 0xee, 0xa7, + 0x54, 0xb5, 0xb5, 0x7d, 0xf9, 0x08, 0xd0, 0xeb, 0x01, 0xe8, 0x35, 0xbc, 0xaa, 0x04, 0x4d, 0xa5, + 0x73, 0x51, 0x01, 0xff, 0x47, 0x04, 0x27, 0xfa, 0xc8, 0x24, 0xfc, 0xf2, 0xe0, 0x80, 0xa2, 0xa2, + 0x4e, 0x3b, 0x73, 0x00, 0x4f, 0x91, 0xd0, 0xa5, 0x20, 0xa1, 0x73, 0xf8, 0xec, 0xbe, 0x13, 0x0a, + 0x7a, 0xe7, 0x1e, 0x82, 0x54, 0x48, 0x35, 0xc5, 0xf5, 0x4e, 0xaf, 0x94, 0x8b, 0xeb, 0x1d, 0x85, + 0x14, 0xd3, 0xb3, 0x01, 0xea, 0x59, 0x3c, 0xa3, 0x46, 0xcd, 0x61, 0xdc, 0x43, 0x30, 0x2a, 0x65, + 0x0b, 0x8e, 0xb9, 0x49, 0x5d, 0x42, 0x48, 0x5b, 0x1a, 0xc4, 0x54, 0xa0, 0x59, 0x0d, 0xd0, 0x9c, + 0xc2, 0x27, 0x63, 0xd0, 0x04, 0x6c, 0x7d, 0x80, 0x20, 0xc9, 0xb5, 0x0a, 0x5e, 0xe8, 0x1f, 0x29, + 0x22, 0x8c, 0xb4, 0xec, 0xde, 0x86, 0x83, 0xd3, 0xc3, 0x55, 0x11, 0xfe, 0x12, 0xc1, 0xd1, 0xc8, + 0x1c, 0xc7, 0x46, 0xff, 0x28, 0x2a, 0x8d, 0xa0, 0x99, 0x03, 0xdb, 0x0b, 0x70, 0x67, 0x02, 0x70, + 0x06, 0x5e, 0x56, 0x82, 0xe3, 0xb3, 0xa2, 0x28, 0xd5, 0x80, 0x79, 0x8b, 0x2d, 0xdc, 0xc6, 0x9f, + 0x21, 0x38, 0x16, 0x15, 0x56, 0x78, 0xaf, 0xf0, 0xdd, 0x4a, 0x4f, 0x3b, 0x3d, 0xb8, 0xc3, 0xe0, + 0xe5, 0xed, 0x02, 0x8c, 0x3f, 0x41, 0x90, 0x0a, 0x4d, 0xef, 0xb8, 0xcb, 0xd0, 0xab, 0x70, 0xe2, + 0x2e, 0x83, 0x42, 0x12, 0xe8, 0x2f, 0x05, 0xf8, 0x5e, 0xc0, 0x8b, 0xfd, 0xf1, 0x09, 0xc9, 0xd0, + 0x61, 0xf3, 0x3e, 0x82, 0x54, 0x68, 0xfa, 0xc5, 0x81, 0xec, 0x1d, 0xf0, 0x71, 0x20, 0x15, 0x23, + 0x59, 0x37, 0x02, 0x90, 0xf3, 0xf8, 0x79, 0xf5, 0x1d, 0x09, 0x8d, 0xec, 0xfc, 0xc6, 0xa3, 0x9d, + 0x34, 0x7a, 0xbc, 0x93, 0x46, 0xbf, 0xee, 0xa4, 0xd1, 0x87, 0xbb, 0xe9, 0xc4, 0xe3, 0xdd, 0x74, + 0xe2, 0xa7, 0xdd, 0x74, 0xe2, 0xcd, 0xc5, 0xd8, 0x9f, 0x54, 0xef, 0xf2, 0x33, 0xd9, 0x2f, 0xab, + 0x52, 0x92, 0xfd, 0x85, 0x6c, 0xed, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd3, 0xf0, 0xdb, 0xcc, + 0x44, 0x14, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/bank/types/tx.pb.go b/x/bank/types/tx.pb.go index b3fd1ea3d863..05ed288a8963 100644 --- a/x/bank/types/tx.pb.go +++ b/x/bank/types/tx.pb.go @@ -426,51 +426,52 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/tx.proto", fileDescriptor_1d8cb1613481f5b7) } var fileDescriptor_1d8cb1613481f5b7 = []byte{ - // 690 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xcd, 0x4f, 0xd4, 0x5e, - 0x14, 0x6d, 0x99, 0xdf, 0x6f, 0x48, 0x1f, 0xa3, 0x84, 0x4a, 0x84, 0x29, 0xa4, 0x03, 0x8d, 0x21, - 0x80, 0xd2, 0x0a, 0x7e, 0x25, 0x63, 0x34, 0x3a, 0xa8, 0x89, 0x26, 0x13, 0xcd, 0x10, 0x17, 0xba, - 0x99, 0xb4, 0xf4, 0xd1, 0x69, 0xa0, 0x7d, 0x4d, 0xdf, 0x2b, 0x81, 0x9d, 0xba, 0x32, 0xae, 0xdc, - 0xbb, 0x61, 0x69, 0x5c, 0xb1, 0x70, 0x69, 0xe2, 0x96, 0x25, 0x71, 0xe5, 0x4a, 0x0d, 0x2c, 0xd0, - 0xff, 0xc2, 0xbc, 0x8f, 0x96, 0xce, 0x30, 0xc3, 0x10, 0x37, 0xd3, 0xce, 0xbb, 0xe7, 0x9c, 0x7b, - 0xcf, 0xed, 0x69, 0xc1, 0xe4, 0x2a, 0xc2, 0x01, 0xc2, 0x96, 0x63, 0x87, 0xeb, 0xd6, 0xe6, 0xa2, - 0x03, 0x89, 0xbd, 0x68, 0x91, 0x2d, 0x33, 0x8a, 0x11, 0x41, 0xea, 0x05, 0x5e, 0x35, 0x69, 0xd5, - 0x14, 0x55, 0x6d, 0xd4, 0x43, 0x1e, 0x62, 0x75, 0x8b, 0xde, 0x71, 0xa8, 0xa6, 0x67, 0x42, 0x18, - 0x66, 0x42, 0xab, 0xc8, 0x0f, 0x4f, 0xd4, 0x73, 0x8d, 0x98, 0x2e, 0xaf, 0x97, 0x79, 0xbd, 0xc9, - 0x85, 0x45, 0x5f, 0x5e, 0x1a, 0x13, 0xd4, 0x00, 0x7b, 0xd6, 0xe6, 0x22, 0xbd, 0x88, 0xc2, 0x88, - 0x1d, 0xf8, 0x21, 0xb2, 0xd8, 0x2f, 0x3f, 0x32, 0x3e, 0x0c, 0x80, 0xc1, 0x3a, 0xf6, 0x56, 0x60, - 0xe8, 0xaa, 0xb7, 0x41, 0x69, 0x2d, 0x46, 0x41, 0xd3, 0x76, 0xdd, 0x18, 0x62, 0x3c, 0x2e, 0x4f, - 0xc9, 0xb3, 0x4a, 0x6d, 0xfc, 0xdb, 0xe7, 0x85, 0x51, 0xa1, 0x7f, 0x9f, 0x57, 0x56, 0x48, 0xec, - 0x87, 0x5e, 0x63, 0x88, 0xa2, 0xc5, 0x91, 0x7a, 0x0b, 0x00, 0x82, 0x32, 0xea, 0x40, 0x1f, 0xaa, - 0x42, 0x50, 0x4a, 0x6c, 0x81, 0xa2, 0x1d, 0xa0, 0x24, 0x24, 0xe3, 0x85, 0xa9, 0xc2, 0xec, 0xd0, - 0x52, 0xd9, 0xcc, 0x96, 0x88, 0x61, 0xba, 0x44, 0x73, 0x19, 0xf9, 0x61, 0xed, 0xc6, 0xde, 0x8f, - 0x8a, 0xf4, 0xe9, 0x67, 0x65, 0xd6, 0xf3, 0x49, 0x2b, 0x71, 0xcc, 0x55, 0x14, 0x08, 0xe7, 0xe2, - 0xb2, 0x80, 0xdd, 0x75, 0x8b, 0x6c, 0x47, 0x10, 0x33, 0x02, 0xfe, 0x78, 0xb4, 0x3b, 0x2f, 0x37, - 0x84, 0x7e, 0xf5, 0xea, 0xdb, 0x9d, 0x8a, 0xf4, 0x7b, 0xa7, 0x22, 0xbd, 0x39, 0xda, 0x9d, 0x6f, - 0xb3, 0xfa, 0xee, 0x68, 0x77, 0x5e, 0xcd, 0x49, 0x88, 0x8d, 0x18, 0x23, 0x60, 0x58, 0xdc, 0x36, - 0x20, 0x8e, 0x50, 0x88, 0xa1, 0xf1, 0x45, 0x06, 0xa5, 0x3a, 0xf6, 0xea, 0xc9, 0x06, 0xf1, 0xd9, - 0xd6, 0xee, 0x80, 0xa2, 0x1f, 0x46, 0x09, 0xa1, 0xfb, 0xa2, 0xf3, 0x6b, 0x66, 0x97, 0x10, 0x98, - 0x8f, 0x29, 0xa4, 0xa6, 0x50, 0x03, 0x62, 0x28, 0x4e, 0x52, 0xef, 0x81, 0x41, 0x94, 0x10, 0xc6, - 0x1f, 0x60, 0xfc, 0x89, 0xae, 0xfc, 0xa7, 0x0c, 0x93, 0x17, 0x48, 0x69, 0xd5, 0xcb, 0xa9, 0x25, - 0x21, 0x49, 0xcd, 0x8c, 0xb5, 0x9b, 0xc9, 0xa6, 0x35, 0x2e, 0x82, 0xd1, 0xfc, 0xff, 0xcc, 0xd6, - 0x57, 0x99, 0x59, 0x7d, 0x1e, 0xb9, 0x36, 0x81, 0xcf, 0xec, 0xd8, 0x0e, 0xb0, 0x7a, 0x13, 0x28, - 0x76, 0x42, 0x5a, 0x28, 0xf6, 0xc9, 0x76, 0xdf, 0x30, 0x1c, 0x43, 0xd5, 0xbb, 0xa0, 0x18, 0x31, - 0x05, 0x16, 0x83, 0x5e, 0x8e, 0x78, 0x93, 0xb6, 0x95, 0x70, 0x56, 0xf5, 0x3a, 0x35, 0x73, 0xac, - 0x47, 0xfd, 0x4c, 0xe7, 0xfc, 0x6c, 0xf1, 0x77, 0xa2, 0x63, 0x5a, 0xa3, 0x0c, 0xc6, 0x3a, 0x8e, - 0x32, 0x73, 0x7f, 0x64, 0x30, 0xc2, 0x9e, 0x23, 0xa1, 0x9e, 0x1f, 0x86, 0xb6, 0xb3, 0x01, 0xdd, - 0x7f, 0xb6, 0xb7, 0x0c, 0x4a, 0x18, 0x86, 0x6e, 0x13, 0x72, 0x1d, 0xf1, 0xd8, 0xa6, 0xba, 0x9a, - 0xcc, 0xf5, 0x6b, 0x0c, 0xe1, 0x5c, 0xf3, 0x19, 0x30, 0x9c, 0x60, 0xd8, 0x74, 0xe1, 0x9a, 0x9d, - 0x6c, 0x90, 0xe6, 0x1a, 0x8a, 0x59, 0xfc, 0x95, 0xc6, 0xb9, 0x04, 0xc3, 0x07, 0xfc, 0xf4, 0x11, - 0x8a, 0xab, 0xd6, 0xc9, 0x5d, 0x4c, 0x76, 0x06, 0x35, 0xef, 0xca, 0x98, 0x00, 0xe5, 0x13, 0x87, - 0xe9, 0x22, 0x96, 0x5e, 0x17, 0x40, 0xa1, 0x8e, 0x3d, 0xf5, 0x09, 0xf8, 0x8f, 0x65, 0x77, 0xb2, - 0xeb, 0xd0, 0x22, 0xf2, 0xda, 0xa5, 0xd3, 0xaa, 0xa9, 0xa6, 0xfa, 0x02, 0x28, 0xc7, 0x2f, 0xc3, - 0x74, 0x2f, 0x4a, 0x06, 0xd1, 0xe6, 0xfa, 0x42, 0x32, 0x69, 0x07, 0x94, 0xda, 0x02, 0xd9, 0x73, - 0xa0, 0x3c, 0x4a, 0xbb, 0x72, 0x16, 0x54, 0xd6, 0xa3, 0x05, 0xce, 0x77, 0xe4, 0x62, 0xa6, 0xb7, - 0xed, 0x3c, 0x4e, 0x33, 0xcf, 0x86, 0x4b, 0x3b, 0x69, 0xff, 0xbf, 0xa2, 0x29, 0xaf, 0x2d, 0xef, - 0x1d, 0xe8, 0xf2, 0xfe, 0x81, 0x2e, 0xff, 0x3a, 0xd0, 0xe5, 0xf7, 0x87, 0xba, 0xb4, 0x7f, 0xa8, - 0x4b, 0xdf, 0x0f, 0x75, 0xe9, 0xe5, 0xdc, 0xa9, 0x9f, 0x35, 0x11, 0x7b, 0xf6, 0x75, 0x73, 0x8a, - 0xec, 0xeb, 0x7d, 0xed, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2f, 0xe8, 0x90, 0x24, 0x8f, 0x06, - 0x00, 0x00, + // 710 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xbd, 0x6f, 0xd3, 0x4c, + 0x18, 0x8f, 0x9b, 0xf7, 0x4d, 0x95, 0x6b, 0xa0, 0xaa, 0x5b, 0xd1, 0xc6, 0xad, 0x9c, 0x36, 0x42, + 0x55, 0x1b, 0xa8, 0x4d, 0x0b, 0x02, 0x29, 0x08, 0x04, 0x29, 0x20, 0x81, 0x14, 0x81, 0x52, 0x31, + 0xc0, 0x62, 0x39, 0xf1, 0xd5, 0xb5, 0x6a, 0xfb, 0x2c, 0xdf, 0xb9, 0x6a, 0xb7, 0xc2, 0x84, 0x98, + 0x98, 0x99, 0x3a, 0x22, 0xa6, 0x0c, 0x1d, 0x91, 0x58, 0x3b, 0x56, 0x4c, 0x4c, 0x80, 0xda, 0x21, + 0xf0, 0x5f, 0xa0, 0xfb, 0xb0, 0xeb, 0xa4, 0x49, 0x5b, 0xb1, 0xc4, 0xce, 0xfd, 0x3e, 0x9e, 0xfb, + 0x3d, 0x7e, 0xee, 0xc0, 0x4c, 0x0b, 0x61, 0x0f, 0x61, 0xbd, 0x69, 0xfa, 0x9b, 0xfa, 0xd6, 0x72, + 0x13, 0x12, 0x73, 0x59, 0x27, 0xdb, 0x5a, 0x10, 0x22, 0x82, 0xe4, 0x71, 0x8e, 0x6a, 0x14, 0xd5, + 0x04, 0xaa, 0x4c, 0xd8, 0xc8, 0x46, 0x0c, 0xd7, 0xe9, 0x1b, 0xa7, 0x2a, 0x6a, 0x62, 0x84, 0x61, + 0x62, 0xd4, 0x42, 0x8e, 0x7f, 0x0a, 0x4f, 0x15, 0x62, 0xbe, 0x1c, 0x2f, 0x72, 0xdc, 0xe0, 0xc6, + 0xa2, 0x2e, 0x87, 0x26, 0x85, 0xd4, 0xc3, 0xb6, 0xbe, 0xb5, 0x4c, 0x1f, 0x02, 0x18, 0x33, 0x3d, + 0xc7, 0x47, 0x3a, 0xfb, 0xe5, 0x4b, 0xe5, 0xfd, 0x21, 0x30, 0x5c, 0xc7, 0xf6, 0x1a, 0xf4, 0x2d, + 0xf9, 0x2e, 0x28, 0xac, 0x87, 0xc8, 0x33, 0x4c, 0xcb, 0x0a, 0x21, 0xc6, 0x53, 0xd2, 0xac, 0xb4, + 0x90, 0xaf, 0x4d, 0x7d, 0xdb, 0x5f, 0x9a, 0x10, 0xfe, 0x0f, 0x39, 0xb2, 0x46, 0x42, 0xc7, 0xb7, + 0x1b, 0x23, 0x94, 0x2d, 0x96, 0xe4, 0x3b, 0x00, 0x10, 0x94, 0x48, 0x87, 0xce, 0x91, 0xe6, 0x09, + 0x8a, 0x85, 0xbb, 0x12, 0xc8, 0x99, 0x1e, 0x8a, 0x7c, 0x32, 0x95, 0x9d, 0xcd, 0x2e, 0x8c, 0xac, + 0x14, 0xb5, 0xa4, 0x8b, 0x18, 0xc6, 0x5d, 0xd4, 0x56, 0x91, 0xe3, 0xd7, 0xea, 0x07, 0x3f, 0x4a, + 0x99, 0xcf, 0x3f, 0x4b, 0x0b, 0xb6, 0x43, 0x36, 0xa2, 0xa6, 0xd6, 0x42, 0x9e, 0x88, 0x2e, 0x1e, + 0x4b, 0xd8, 0xda, 0xd4, 0xc9, 0x4e, 0x00, 0x31, 0x13, 0xe0, 0x8f, 0x9d, 0x76, 0x65, 0xdc, 0x8f, + 0x5c, 0xd7, 0xc0, 0xae, 0xd3, 0x82, 0x86, 0x89, 0x0d, 0xe8, 0x05, 0x64, 0xe7, 0x53, 0xa7, 0x5d, + 0x91, 0x1a, 0xa2, 0x6e, 0xf5, 0xc6, 0xbb, 0xbd, 0x52, 0xe6, 0xf7, 0x5e, 0x29, 0xf3, 0xb6, 0xd3, + 0xae, 0x74, 0xf5, 0xe0, 0x7d, 0xa7, 0x5d, 0x91, 0x53, 0xd6, 0xa2, 0x55, 0xe5, 0x31, 0x30, 0x2a, + 0x5e, 0x1b, 0x10, 0x07, 0xc8, 0xc7, 0xb0, 0xfc, 0x45, 0x02, 0x85, 0x3a, 0xb6, 0xeb, 0x91, 0x4b, + 0x1c, 0xd6, 0xce, 0x7b, 0x20, 0xe7, 0xf8, 0x41, 0x44, 0x68, 0x23, 0x69, 0x2e, 0x45, 0xeb, 0x33, + 0x1d, 0xda, 0x53, 0x4a, 0xa9, 0xe5, 0x69, 0x30, 0xb1, 0x29, 0x2e, 0x92, 0x1f, 0x80, 0x61, 0x14, + 0x11, 0xa6, 0x1f, 0x62, 0xfa, 0xe9, 0xbe, 0xfa, 0xe7, 0x8c, 0x93, 0x36, 0x88, 0x65, 0xd5, 0x6b, + 0x71, 0x24, 0x61, 0x49, 0xc3, 0x4c, 0x76, 0x87, 0x49, 0x76, 0x5b, 0xbe, 0x02, 0x26, 0xd2, 0xff, + 0x93, 0x58, 0x5f, 0x25, 0x16, 0xf5, 0x65, 0x60, 0x99, 0x04, 0xbe, 0x30, 0x43, 0xd3, 0xc3, 0xf2, + 0x6d, 0x90, 0x37, 0x23, 0xb2, 0x81, 0x42, 0x87, 0xec, 0x9c, 0x3b, 0x25, 0x27, 0x54, 0xf9, 0x3e, + 0xc8, 0x05, 0xcc, 0x81, 0xcd, 0xc7, 0xa0, 0x44, 0xbc, 0x48, 0x57, 0x4b, 0xb8, 0xaa, 0x7a, 0x8b, + 0x86, 0x39, 0xf1, 0xa3, 0x79, 0xe6, 0x52, 0x79, 0xb6, 0xf9, 0x61, 0xe9, 0xd9, 0x6d, 0xb9, 0x08, + 0x26, 0x7b, 0x96, 0x92, 0x70, 0x7f, 0x24, 0x30, 0xc6, 0xbe, 0x23, 0xa1, 0x99, 0x1f, 0xfb, 0x66, + 0xd3, 0x85, 0xd6, 0x3f, 0xc7, 0x5b, 0x05, 0x05, 0x0c, 0x7d, 0xcb, 0x80, 0xdc, 0x47, 0x7c, 0xb6, + 0xd9, 0xbe, 0x21, 0x53, 0xf5, 0x1a, 0x23, 0x38, 0x55, 0x7c, 0x1e, 0x8c, 0x46, 0x18, 0x1a, 0x16, + 0x5c, 0x37, 0x23, 0x97, 0x18, 0xeb, 0x28, 0x64, 0xc7, 0x22, 0xdf, 0xb8, 0x14, 0x61, 0xf8, 0x88, + 0xaf, 0x3e, 0x41, 0x61, 0x55, 0x3f, 0xdd, 0x8b, 0x99, 0xde, 0x41, 0x4d, 0xa7, 0x2a, 0x4f, 0x83, + 0xe2, 0xa9, 0xc5, 0xb8, 0x11, 0x2b, 0x6f, 0xb2, 0x20, 0x5b, 0xc7, 0xb6, 0xfc, 0x0c, 0xfc, 0xc7, + 0x66, 0x77, 0xa6, 0xef, 0xa6, 0xc5, 0xc8, 0x2b, 0x57, 0xcf, 0x42, 0x63, 0x4f, 0xf9, 0x15, 0xc8, + 0x9f, 0x1c, 0x86, 0xb9, 0x41, 0x92, 0x84, 0xa2, 0x2c, 0x9e, 0x4b, 0x49, 0xac, 0x9b, 0xa0, 0xd0, + 0x35, 0x90, 0x03, 0x37, 0x94, 0x66, 0x29, 0xd7, 0x2f, 0xc2, 0x4a, 0x6a, 0x6c, 0x80, 0xcb, 0x3d, + 0x73, 0x31, 0x3f, 0x38, 0x76, 0x9a, 0xa7, 0x68, 0x17, 0xe3, 0xc5, 0x95, 0x94, 0xff, 0x77, 0xe9, + 0x94, 0xd7, 0x56, 0x0f, 0x8e, 0x54, 0xe9, 0xf0, 0x48, 0x95, 0x7e, 0x1d, 0xa9, 0xd2, 0x87, 0x63, + 0x35, 0x73, 0x78, 0xac, 0x66, 0xbe, 0x1f, 0xab, 0x99, 0xd7, 0x8b, 0x67, 0x5e, 0x77, 0x62, 0xec, + 0xd9, 0xad, 0xd7, 0xcc, 0xb1, 0x6b, 0xfd, 0xe6, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x44, 0xa4, + 0xb2, 0x67, 0xa8, 0x06, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 6778ea46fb51..274b23eb53bb 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -260,7 +260,7 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e if found { v = zv } else if f.Cardinality() == protoreflect.Repeated { - fmt.Printf("WARN: not supported: dont_omit_empty=true on empty repeated field: %s\n", name) + //fmt.Printf("WARN: not supported: dont_omit_empty=true on empty repeated field: %s\n", name) //writeNil = true } else if f.Kind() == protoreflect.MessageKind && !v.Message().IsValid() { return errors.Errorf("not supported: dont_omit_empty=true on invalid (nil?) message field: %s", name) From 612dfb3b33adcb7755ffa00d2b8a5843699e0a5e Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sat, 11 Feb 2023 19:07:33 -0700 Subject: [PATCH 059/122] refactor, cleanup --- x/tx/aminojson/encoder.go | 86 ++++++++++++++++++++++++++++++++++ x/tx/aminojson/json_marshal.go | 74 ++--------------------------- 2 files changed, 90 insertions(+), 70 deletions(-) create mode 100644 x/tx/aminojson/encoder.go diff --git a/x/tx/aminojson/encoder.go b/x/tx/aminojson/encoder.go new file mode 100644 index 000000000000..5de2b07df626 --- /dev/null +++ b/x/tx/aminojson/encoder.go @@ -0,0 +1,86 @@ +package aminojson + +import ( + authapi "cosmossdk.io/api/cosmos/auth/v1beta1" + "encoding/base64" + "encoding/json" + "errors" + "fmt" + "google.golang.org/protobuf/reflect/protoreflect" + "io" +) + +// nullSliceAsEmptyEncoder replicates the behavior at: +// https://github.com/cosmos/cosmos-sdk/blob/be9bd7a8c1b41b115d58f4e76ee358e18a52c0af/types/coin.go#L199-L205 +func nullSliceAsEmptyEncoder(aj AminoJSON, v protoreflect.Value, w io.Writer) error { + switch list := v.Interface().(type) { + case protoreflect.List: + if list.Len() == 0 { + _, err := w.Write([]byte("[]")) + return err + } + return aj.marshalList(list, w) + default: + return fmt.Errorf("unsupported type %T", list) + } +} + +func emptyStringEncoder(_ AminoJSON, _ protoreflect.Value, w io.Writer) error { + _, err := w.Write([]byte(`""`)) + return err +} + +func jsonDefaultEncoder(_ AminoJSON, v protoreflect.Value, w io.Writer) error { + switch val := v.Interface().(type) { + case string, bool, int32, uint32, uint64, int64, protoreflect.EnumNumber: + return jsonMarshal(w, val) + default: + return fmt.Errorf("unsupported type %T", val) + } +} + +func keyFieldEncoder(msg protoreflect.Message, w io.Writer) error { + keyField := msg.Descriptor().Fields().ByName("key") + if keyField == nil { + return errors.New(`message encoder for key_field: no field named "key" found`) + } + + bz := msg.Get(keyField).Bytes() + + if len(bz) == 0 { + _, err := fmt.Fprint(w, "null") + return err + } + + _, err := fmt.Fprintf(w, `"%s"`, base64.StdEncoding.EncodeToString(bz)) + return err + +} + +// moduleAccountEncoder replicates the behavior in +// https://github.com/cosmos/cosmos-sdk/blob/41a3dfeced2953beba3a7d11ec798d17ee19f506/x/auth/types/account.go#L230-L254 +func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { + ma := msg.Interface().(*authapi.ModuleAccount) + pretty := moduleAccountPretty{ + PubKey: "", + Name: ma.Name, + Permissions: ma.Permissions, + } + if ma.BaseAccount != nil { + pretty.Address = ma.BaseAccount.Address + pretty.AccountNumber = ma.BaseAccount.AccountNumber + pretty.Sequence = ma.BaseAccount.Sequence + } else { + pretty.Address = "" + pretty.AccountNumber = 0 + pretty.Sequence = 0 + } + + bz, err := json.Marshal(pretty) + //bz, err := json.Marshal(pretty) + if err != nil { + return err + } + _, err = w.Write(bz) + return err +} diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 274b23eb53bb..4aab481d044b 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -15,7 +15,6 @@ import ( "google.golang.org/protobuf/reflect/protoreflect" "cosmossdk.io/api/amino" - authapi "cosmossdk.io/api/cosmos/auth/v1beta1" ) type MessageEncoder func(protoreflect.Message, io.Writer) error @@ -36,50 +35,13 @@ func NewAminoJSON() AminoJSON { }, }, messageEncoders: map[string]MessageEncoder{ - "key_field": func(msg protoreflect.Message, w io.Writer) error { - keyField := msg.Descriptor().Fields().ByName("key") - if keyField == nil { - return errors.New(`message encoder for key_field: no field named "key" found`) - } - - bz := msg.Get(keyField).Bytes() - - if len(bz) == 0 { - _, err := fmt.Fprint(w, "null") - return err - } - - _, err := fmt.Fprintf(w, `"%s"`, base64.StdEncoding.EncodeToString(bz)) - return err - }, + "key_field": keyFieldEncoder, "module_account": moduleAccountEncoder, }, fieldEncoders: map[string]FieldEncoder{ - "empty_string": func(_ AminoJSON, v protoreflect.Value, writer io.Writer) error { - _, err := writer.Write([]byte(`""`)) - return err - }, - "json_default": func(_ AminoJSON, v protoreflect.Value, writer io.Writer) error { - switch val := v.Interface().(type) { - case string, bool, int32, uint32, uint64, int64, protoreflect.EnumNumber: - return jsonMarshal(writer, val) - default: - return fmt.Errorf("unsupported type %T", val) - } - }, - // created to replicate: https://github.com/cosmos/cosmos-sdk/blob/be9bd7a8c1b41b115d58f4e76ee358e18a52c0af/types/coin.go#L199-L205 - "null_slice_as_empty": func(aj AminoJSON, v protoreflect.Value, writer io.Writer) error { - switch list := v.Interface().(type) { - case protoreflect.List: - if list.Len() == 0 { - _, err := writer.Write([]byte("[]")) - return err - } - return aj.marshalList(list, writer) - default: - return fmt.Errorf("unsupported type %T", list) - } - }, + "empty_string": emptyStringEncoder, + "json_default": jsonDefaultEncoder, + "null_slice_as_empty": nullSliceAsEmptyEncoder, }, } return aj @@ -453,34 +415,6 @@ type typeWrapper struct { Value any `json:"value"` } -// moduleAccountEncoder replicates the behavior in -// https://github.com/cosmos/cosmos-sdk/blob/41a3dfeced2953beba3a7d11ec798d17ee19f506/x/auth/types/account.go#L230-L254 -func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { - ma := msg.Interface().(*authapi.ModuleAccount) - pretty := moduleAccountPretty{ - PubKey: "", - Name: ma.Name, - Permissions: ma.Permissions, - } - if ma.BaseAccount != nil { - pretty.Address = ma.BaseAccount.Address - pretty.AccountNumber = ma.BaseAccount.AccountNumber - pretty.Sequence = ma.BaseAccount.Sequence - } else { - pretty.Address = "" - pretty.AccountNumber = 0 - pretty.Sequence = 0 - } - - bz, err := json.Marshal(pretty) - //bz, err := json.Marshal(pretty) - if err != nil { - return err - } - _, err = w.Write(bz) - return err -} - const ( timestampFullName protoreflect.FullName = "google.protobuf.Timestamp" durationFullName protoreflect.FullName = "google.protobuf.Duration" From ca9bfd04503aa5cddf96274277f184a670ddae54 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sat, 11 Feb 2023 20:25:52 -0700 Subject: [PATCH 060/122] all parity and gen tests passing for so far included modules --- tests/integration/aminojson/aminojson_test.go | 41 ++++-- x/tx/aminojson/encoder.go | 22 +++- x/tx/aminojson/json_marshal.go | 118 ++++-------------- x/tx/aminojson/time.go | 77 ++++++++++++ 4 files changed, 150 insertions(+), 108 deletions(-) create mode 100644 x/tx/aminojson/time.go diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 840bd25b1028..30b79695edc4 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -172,6 +172,14 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo gogoproto.Message pulsar proto.Message pulsarMarshalFails bool + + // this will fail in cases where a lossy encoding of an empty array to protobuf occurs. the unmarshalled bytes + // represent the array as nil, and a subsequent marshal to JSON represent the array as null instead of empty. + roundTripUnequal bool + + // pulsar does not support marshalling a math.Dec as anything except a string. Therefore, we cannot unmarshal + // a pulsar encoded Math.dec (the string representation of a Decimal) into a gogo Math.dec (expecting an int64). + protoUnmarshalFails bool }{ "auth/params": {gogo: &authtypes.Params{TxSigLimit: 10}, pulsar: &authapi.Params{TxSigLimit: 10}}, "auth/module_account": { @@ -179,6 +187,7 @@ func TestAminoJSON_LegacyParity(t *testing.T) { BaseAccount: authtypes.NewBaseAccountWithAddress(addr1), Permissions: []string{}}, pulsar: &authapi.ModuleAccount{ BaseAccount: &authapi.BaseAccount{Address: addr1.String()}, Permissions: []string{}}, + roundTripUnequal: true, }, "authz/msg_grant": { gogo: &authztypes.MsgGrant{ @@ -194,22 +203,19 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &authztypes.MsgExec{Msgs: []*codectypes.Any{}}, pulsar: &authzapi.MsgExec{Msgs: []*anypb.Any{}}, }, - //"authz/msg_exec/null_msg": { - // gogo: &authztypes.MsgExec{Msgs: []*codectypes.Any{(*codectypes.Any)(nil)}}, - // pulsar: &authzapi.MsgExec{Msgs: []*anypb.Any{(*anypb.Any)(nil)}}, - //}, "distribution/delegator_starting_info": { gogo: &disttypes.DelegatorStartingInfo{}, pulsar: &distapi.DelegatorStartingInfo{}, }, "distribution/delegator_starting_info/non_zero_dec": { - gogo: &disttypes.DelegatorStartingInfo{Stake: types.NewDec(10)}, - pulsar: &distapi.DelegatorStartingInfo{Stake: "10.000000000000000000"}, + gogo: &disttypes.DelegatorStartingInfo{Stake: types.NewDec(10)}, + pulsar: &distapi.DelegatorStartingInfo{Stake: "10.000000000000000000"}, + protoUnmarshalFails: true, + }, + "distribution/delegation_delegator_reward": { + gogo: &disttypes.DelegationDelegatorReward{}, + pulsar: &distapi.DelegationDelegatorReward{}, }, - //"distribution/delegation_delegator_reward": { - // gogo: &disttypes.DelegationDelegatorReward{}, - // pulsar: &distapi.DelegationDelegatorReward{}, - //}, "distribution/community_pool_spend_proposal_with_deposit": { gogo: &disttypes.CommunityPoolSpendProposalWithDeposit{}, pulsar: &distapi.CommunityPoolSpendProposalWithDeposit{}, @@ -272,6 +278,10 @@ func TestAminoJSON_LegacyParity(t *testing.T) { } require.NoError(t, err) + fmt.Printf("pulsar: %s\n", string(pulsarBytes)) + fmt.Printf(" gogo: %s\n", string(gogoBytes)) + require.Equal(t, string(gogoBytes), string(pulsarBytes)) + pulsarProtoBytes, err := proto.Marshal(tc.pulsar) require.NoError(t, err) @@ -279,12 +289,17 @@ func TestAminoJSON_LegacyParity(t *testing.T) { newGogo := reflect.New(gogoType).Interface().(gogoproto.Message) err = encCfg.Codec.Unmarshal(pulsarProtoBytes, newGogo) + if tc.protoUnmarshalFails { + require.Error(t, err) + return + } require.NoError(t, err) newGogoBytes, err := encCfg.Amino.MarshalJSON(newGogo) - - fmt.Printf("pulsar: %s\n", string(pulsarBytes)) - require.Equal(t, string(gogoBytes), string(pulsarBytes)) + if tc.roundTripUnequal { + require.NotEqual(t, string(gogoBytes), string(newGogoBytes)) + return + } require.Equal(t, string(gogoBytes), string(newGogoBytes)) }) } diff --git a/x/tx/aminojson/encoder.go b/x/tx/aminojson/encoder.go index 5de2b07df626..bafba1eea35d 100644 --- a/x/tx/aminojson/encoder.go +++ b/x/tx/aminojson/encoder.go @@ -10,6 +10,18 @@ import ( "io" ) +func cosmosDecEncoder(aj AminoJSON, v protoreflect.Value, w io.Writer) error { + switch s := v.Interface().(type) { + case string: + if s == "" { + return jsonMarshal(w, "0") + } + return jsonMarshal(w, s) + default: + return fmt.Errorf("unsupported type %T", s) + } +} + // nullSliceAsEmptyEncoder replicates the behavior at: // https://github.com/cosmos/cosmos-sdk/blob/be9bd7a8c1b41b115d58f4e76ee358e18a52c0af/types/coin.go#L199-L205 func nullSliceAsEmptyEncoder(aj AminoJSON, v protoreflect.Value, w io.Writer) error { @@ -57,6 +69,15 @@ func keyFieldEncoder(msg protoreflect.Message, w io.Writer) error { } +type moduleAccountPretty struct { + Address string `json:"address"` + PubKey string `json:"public_key"` + AccountNumber uint64 `json:"account_number"` + Sequence uint64 `json:"sequence"` + Name string `json:"name"` + Permissions []string `json:"permissions"` +} + // moduleAccountEncoder replicates the behavior in // https://github.com/cosmos/cosmos-sdk/blob/41a3dfeced2953beba3a7d11ec798d17ee19f506/x/auth/types/account.go#L230-L254 func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { @@ -77,7 +98,6 @@ func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { } bz, err := json.Marshal(pretty) - //bz, err := json.Marshal(pretty) if err != nil { return err } diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 4aab481d044b..a5251ee05c77 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -5,14 +5,11 @@ import ( "encoding/base64" "encoding/json" "fmt" - "io" - "math" - "time" - cosmos_proto "github.com/cosmos/cosmos-proto" "github.com/pkg/errors" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" + "io" "cosmossdk.io/api/amino" ) @@ -22,6 +19,7 @@ type FieldEncoder func(AminoJSON, protoreflect.Value, io.Writer) error type AminoJSON struct { // maps cosmos_proto.scalar -> zero value factory + scalarEncoders map[string]FieldEncoder zeroValues map[string]func() protoreflect.Value messageEncoders map[string]MessageEncoder fieldEncoders map[string]FieldEncoder @@ -34,6 +32,9 @@ func NewAminoJSON() AminoJSON { return protoreflect.ValueOfString("0") }, }, + scalarEncoders: map[string]FieldEncoder{ + "cosmos.Dec": cosmosDecEncoder, + }, messageEncoders: map[string]MessageEncoder{ "key_field": keyFieldEncoder, "module_account": moduleAccountEncoder, @@ -218,16 +219,21 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e if omitEmpty(f) { continue } else { - zv, found := aj.getZeroValue(f) - if found { - v = zv - } else if f.Cardinality() == protoreflect.Repeated { - //fmt.Printf("WARN: not supported: dont_omit_empty=true on empty repeated field: %s\n", name) - //writeNil = true - } else if f.Kind() == protoreflect.MessageKind && !v.Message().IsValid() { + if f.Kind() == protoreflect.MessageKind && + f.Cardinality() != protoreflect.Repeated && + !v.Message().IsValid() { return errors.Errorf("not supported: dont_omit_empty=true on invalid (nil?) message field: %s", name) - //fmt.Printf("WARN: not supported: dont_omit_empty=true on invalid (nil?) message field: %s\n", name) } + //zv, found := aj.getZeroValue(f) + //if found { + // v = zv + //} else if f.Cardinality() == protoreflect.Repeated { + // //fmt.Printf("WARN: not supported: dont_omit_empty=true on empty repeated field: %s\n", name) + // //writeNil = true + //} else if f.Kind() == protoreflect.MessageKind && !v.Message().IsValid() { + // return errors.Errorf("not supported: dont_omit_empty=true on invalid (nil?) message field: %s", name) + // //fmt.Printf("WARN: not supported: dont_omit_empty=true on invalid (nil?) message field: %s\n", name) + //} } } @@ -398,93 +404,17 @@ func (aj AminoJSON) getFieldEncoding(field protoreflect.FieldDescriptor) FieldEn return fn } } + if proto.HasExtension(opts, cosmos_proto.E_Scalar) { + scalar := proto.GetExtension(opts, cosmos_proto.E_Scalar).(string) + if fn, ok := aj.scalarEncoders[scalar]; ok { + return fn + } + } return nil } -type moduleAccountPretty struct { - Address string `json:"address"` - PubKey string `json:"public_key"` - AccountNumber uint64 `json:"account_number"` - Sequence uint64 `json:"sequence"` - Name string `json:"name"` - Permissions []string `json:"permissions"` -} - -type typeWrapper struct { - Type string `json:"type"` - Value any `json:"value"` -} - const ( timestampFullName protoreflect.FullName = "google.protobuf.Timestamp" durationFullName protoreflect.FullName = "google.protobuf.Duration" anyFullName protoreflect.FullName = "google.protobuf.Any" ) - -const ( - secondsName protoreflect.Name = "seconds" - nanosName protoreflect.Name = "nanos" -) - -func marshalTimestamp(message protoreflect.Message, writer io.Writer) error { - // PROTO3 SPEC: - // Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. - // Offsets other than "Z" are also accepted. - - fields := message.Descriptor().Fields() - secondsField := fields.ByName(secondsName) - if secondsField == nil { - return fmt.Errorf("expected seconds field") - } - - nanosField := fields.ByName(nanosName) - if nanosField == nil { - return fmt.Errorf("expected nanos field") - } - - seconds := message.Get(secondsField).Int() - nanos := message.Get(nanosField).Int() - if nanos < 0 { - return fmt.Errorf("nanos must be non-negative on timestamp %v", message) - } - - t := time.Unix(seconds, nanos).UTC() - var str string - if nanos == 0 { - str = t.Format(time.RFC3339) - } else { - str = t.Format(time.RFC3339Nano) - } - - _, err := fmt.Fprintf(writer, `"%s"`, str) - return err -} - -// MaxDurationSeconds the maximum number of seconds (when expressed as nanoseconds) which can fit in an int64. -// gogoproto encodes google.protobuf.Duration as a time.Duration, which is 64-bit signed integer. -const MaxDurationSeconds = int64(math.MaxInt64/int(1e9)) - 1 - -func marshalDuration(message protoreflect.Message, writer io.Writer) error { - fields := message.Descriptor().Fields() - secondsField := fields.ByName(secondsName) - if secondsField == nil { - return fmt.Errorf("expected seconds field") - } - - // todo - // check signs are consistent - seconds := message.Get(secondsField).Int() - if seconds > MaxDurationSeconds { - return fmt.Errorf("%d seconds would overflow an int64 when represented as nanoseconds", seconds) - } - - nanosField := fields.ByName(nanosName) - if nanosField == nil { - return fmt.Errorf("expected nanos field") - } - - nanos := message.Get(nanosField).Int() - totalNanos := nanos + (seconds * 1e9) - _, err := writer.Write([]byte(fmt.Sprintf(`"%d"`, totalNanos))) - return err -} diff --git a/x/tx/aminojson/time.go b/x/tx/aminojson/time.go new file mode 100644 index 000000000000..75f509180759 --- /dev/null +++ b/x/tx/aminojson/time.go @@ -0,0 +1,77 @@ +package aminojson + +import ( + "fmt" + "google.golang.org/protobuf/reflect/protoreflect" + "io" + "math" + "time" +) + +const ( + secondsName protoreflect.Name = "seconds" + nanosName protoreflect.Name = "nanos" +) + +func marshalTimestamp(message protoreflect.Message, writer io.Writer) error { + // PROTO3 SPEC: + // Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. + // Offsets other than "Z" are also accepted. + + fields := message.Descriptor().Fields() + secondsField := fields.ByName(secondsName) + if secondsField == nil { + return fmt.Errorf("expected seconds field") + } + + nanosField := fields.ByName(nanosName) + if nanosField == nil { + return fmt.Errorf("expected nanos field") + } + + seconds := message.Get(secondsField).Int() + nanos := message.Get(nanosField).Int() + if nanos < 0 { + return fmt.Errorf("nanos must be non-negative on timestamp %v", message) + } + + t := time.Unix(seconds, nanos).UTC() + var str string + if nanos == 0 { + str = t.Format(time.RFC3339) + } else { + str = t.Format(time.RFC3339Nano) + } + + _, err := fmt.Fprintf(writer, `"%s"`, str) + return err +} + +// MaxDurationSeconds the maximum number of seconds (when expressed as nanoseconds) which can fit in an int64. +// gogoproto encodes google.protobuf.Duration as a time.Duration, which is 64-bit signed integer. +const MaxDurationSeconds = int64(math.MaxInt64/int(1e9)) - 1 + +func marshalDuration(message protoreflect.Message, writer io.Writer) error { + fields := message.Descriptor().Fields() + secondsField := fields.ByName(secondsName) + if secondsField == nil { + return fmt.Errorf("expected seconds field") + } + + // todo + // check signs are consistent + seconds := message.Get(secondsField).Int() + if seconds > MaxDurationSeconds { + return fmt.Errorf("%d seconds would overflow an int64 when represented as nanoseconds", seconds) + } + + nanosField := fields.ByName(nanosName) + if nanosField == nil { + return fmt.Errorf("expected nanos field") + } + + nanos := message.Get(nanosField).Int() + totalNanos := nanos + (seconds * 1e9) + _, err := writer.Write([]byte(fmt.Sprintf(`"%d"`, totalNanos))) + return err +} From f841fb98bc403d3cca6c7da4c5f3126d2c5bbf37 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sat, 11 Feb 2023 20:30:33 -0700 Subject: [PATCH 061/122] rm confusion --- tests/integration/aminojson/aminojson_test.go | 77 ------------------- 1 file changed, 77 deletions(-) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 30b79695edc4..957133b832b4 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -8,7 +8,6 @@ import ( gogoproto "github.com/cosmos/gogoproto/proto" "github.com/stretchr/testify/require" - goamino "github.com/tendermint/go-amino" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/types/known/anypb" @@ -306,82 +305,6 @@ func TestAminoJSON_LegacyParity(t *testing.T) { } func TestScratch(t *testing.T) { - ti := newTypeIndex(msgTypes) - cdc := goamino.NewCodec() - aj := aminojson.NewAminoJSON() - - msg := &authzapi.MsgExec{Msgs: []*anypb.Any{{TypeUrl: "", Value: nil}}} - cdc.RegisterConcrete(&authztypes.MsgExec{}, "cosmos-sdk/MsgExec", nil) - goMsg := &authztypes.MsgExec{} - - ti.deepClone(msg, goMsg) - gobz, err := cdc.MarshalJSON(goMsg) - require.NoError(t, err) - bz, err := aj.MarshalAmino(msg) - require.NoError(t, err) - - require.Equal(t, string(gobz), string(bz), "gogo: %s vs pulsar: %s", string(gobz), string(bz)) - - fmt.Printf("gogo: %v\npulsar: %v\n", goMsg, msg) -} - -func TestAny(t *testing.T) { - cdc := goamino.NewCodec() - a := &codectypes.Any{TypeUrl: "foo", Value: []byte("bar")} - _, err := cdc.MarshalJSON(a) - require.NoError(t, err) -} - -func TestMsgMultiSend(t *testing.T) { - encCfg := testutil.MakeTestEncodingConfig(bank.AppModuleBasic{}) - - aj := aminojson.NewAminoJSON() - - pulsar := &bankapi.MsgMultiSend{Inputs: []*bankapi.Input{}, Outputs: []*bankapi.Output{}} - sanityPulsar := &bankapi.MsgMultiSend{} - gogo := &banktypes.MsgMultiSend{} - - protoBz, err := proto.Marshal(pulsar) - require.NoError(t, err) - - err = encCfg.Codec.Unmarshal(protoBz, gogo) - require.NoError(t, err) - - err = proto.Unmarshal(protoBz, sanityPulsar) - - // !!! - // empty []string is not the same as nil []string. this is a bug in gogo. - // `[]string` -> proto.Marshal -> legacyAmino.UnmarshalProto (unmarshals empty slice as nil) - // -> legacyAmino.MarshalJson -> `null` - // `[]string` -> [proto.Marshal -> pulsar.Unmarshal] -> amino.MarshalJson -> `[]` - require.Nil(t, gogo.Inputs) - require.Nil(t, sanityPulsar.Inputs) - require.NotNil(t, pulsar.Inputs) - require.Zero(t, len(pulsar.Inputs)) - - legacyAminoJson, err := encCfg.Amino.MarshalJSON(gogo) - require.NoError(t, err) - aminoJson, err := aj.MarshalAmino(sanityPulsar) - require.NoError(t, err) - aminoJson, err = aj.MarshalAmino(pulsar) - require.NoError(t, err) - - // These checks are (predictably) expected to fail since gogo.Inputs=nil and pulsar.Inputs=[] - require.NotEqual(t, string(legacyAminoJson), string(aminoJson)) - require.NotEqual(t, string(legacyAminoJson), string(aminoJson)) - - // setting all fields to empty lists are equivalent - gogo.Inputs = []banktypes.Input{} - gogo.Outputs = []banktypes.Output{} - legacyAminoJson, _ = encCfg.Amino.MarshalJSON(gogo) - require.Equal(t, string(legacyAminoJson), string(aminoJson)) - - // setting all fields to nil are equivalent - gogo = &banktypes.MsgMultiSend{} - pulsar = &bankapi.MsgMultiSend{} - legacyAminoJson, _ = encCfg.Amino.MarshalJSON(gogo) - aminoJson, err = aj.MarshalAmino(pulsar) - require.Equal(t, string(legacyAminoJson), string(aminoJson)) } func TestSendAuthorization(t *testing.T) { From 41c9791985a8030395ec7cd952dc4d5869bcd9aa Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sat, 11 Feb 2023 20:50:58 -0700 Subject: [PATCH 062/122] add distribution --- .../v1beta1/distribution.pulsar.go | 325 ++++++++-------- api/cosmos/distribution/v1beta1/tx.pulsar.go | 355 +++++++++--------- .../feegrant/v1beta1/feegrant.pulsar.go | 189 +++++----- .../distribution/v1beta1/distribution.proto | 4 + proto/cosmos/distribution/v1beta1/tx.proto | 7 + proto/cosmos/feegrant/v1beta1/feegrant.proto | 3 + tests/integration/aminojson/aminojson_test.go | 18 +- x/distribution/types/distribution.pb.go | 126 ++++--- x/distribution/types/tx.pb.go | 116 +++--- x/feegrant/feegrant.pb.go | 85 ++--- x/tx/rapidproto/rapidproto.go | 14 +- 11 files changed, 650 insertions(+), 592 deletions(-) diff --git a/api/cosmos/distribution/v1beta1/distribution.pulsar.go b/api/cosmos/distribution/v1beta1/distribution.pulsar.go index 9d82a7a487f2..d0bb8c4707bb 100644 --- a/api/cosmos/distribution/v1beta1/distribution.pulsar.go +++ b/api/cosmos/distribution/v1beta1/distribution.pulsar.go @@ -7214,178 +7214,181 @@ var file_cosmos_distribution_v1beta1_distribution_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0xac, 0x03, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x61, 0x0a, 0x0d, + 0x6f, 0x22, 0xbb, 0x03, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x66, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x61, 0x78, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, + 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, - 0x63, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x54, 0x61, 0x78, 0x12, - 0x70, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, - 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3e, 0x18, - 0x01, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, - 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x12, 0x62, - 0x61, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x72, 0x0a, 0x15, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x3e, 0x18, 0x01, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, - 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, - 0x52, 0x13, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, - 0x64, 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x25, 0x8a, 0xe7, 0xb0, 0x2a, 0x20, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x64, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x22, 0xd6, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, - 0x8e, 0x01, 0x0a, 0x17, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, - 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, - 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x15, 0x63, 0x75, 0x6d, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x69, 0x6f, - 0x12, 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x17, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x70, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x63, - 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, 0x67, 0x69, + 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x54, 0x61, 0x78, 0x12, 0x75, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x43, 0x18, 0x01, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, - 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, - 0x98, 0x01, 0x0a, 0x1e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, - 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x76, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x63, - 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x70, 0x0a, 0x07, 0x72, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, - 0xdf, 0x1f, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x22, 0x9a, 0x01, 0x0a, - 0x13, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, - 0x58, 0x0a, 0x08, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, - 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, - 0x08, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x14, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x71, 0x0a, 0x16, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x73, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x14, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x88, 0x01, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, - 0x6c, 0x12, 0x7d, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, - 0x6f, 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, - 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, - 0x22, 0x86, 0x02, 0x0a, 0x1a, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, - 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, - 0x28, 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x44, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, - 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, - 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x57, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, - 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x2c, 0xea, 0xde, 0x1f, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa2, 0xe7, 0xb0, 0x2a, 0x0f, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x19, - 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x6e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, + 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x77, 0x0a, 0x15, 0x62, + 0x6f, 0x6e, 0x75, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x5f, 0x72, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x43, 0x18, 0x01, 0xc8, 0xde, + 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x13, 0x62, 0x6f, 0x6e, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x13, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, + 0x72, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x25, 0x8a, 0xe7, 0xb0, 0x2a, 0x20, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, + 0xd6, 0x01, 0x0a, 0x1a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x8e, + 0x01, 0x0a, 0x17, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, - 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0xd3, 0x01, 0x0a, 0x25, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, - 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x3a, 0x22, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, - 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x88, 0x02, 0x0a, - 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x42, 0x11, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x15, 0x63, 0x75, 0x6d, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x76, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x12, + 0x27, 0x0a, 0x0f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, + 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x17, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x12, 0x70, 0x0a, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x43, + 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0x98, + 0x01, 0x0a, 0x1e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x63, 0x75, + 0x6d, 0x75, 0x6c, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x76, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x43, + 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x4f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x70, 0x0a, 0x07, 0x72, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, + 0x1f, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x07, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x22, 0x9a, 0x01, 0x0a, 0x13, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x58, + 0x0a, 0x08, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, + 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x08, + 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x14, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x71, 0x0a, 0x16, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, + 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x14, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x22, 0x88, 0x01, 0x0a, 0x07, 0x46, 0x65, 0x65, 0x50, 0x6f, 0x6f, 0x6c, + 0x12, 0x7d, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x5f, 0x70, 0x6f, + 0x6f, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, + 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x22, + 0x9f, 0x02, 0x0a, 0x1a, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, + 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x28, 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, + 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, + 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, + 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x12, 0x57, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, + 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x44, 0x0a, + 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x2c, 0xea, + 0xde, 0x1f, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0xa2, 0xe7, 0xb0, 0x2a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, + 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x6e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, + 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0xd3, + 0x01, 0x0a, 0x25, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, + 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, + 0x68, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x3a, 0x22, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x42, 0x88, 0x02, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x11, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, + 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/distribution/v1beta1/tx.pulsar.go b/api/cosmos/distribution/v1beta1/tx.pulsar.go index c485dd91cabf..71e7f0390c74 100644 --- a/api/cosmos/distribution/v1beta1/tx.pulsar.go +++ b/api/cosmos/distribution/v1beta1/tx.pulsar.go @@ -7092,188 +7092,199 @@ var file_cosmos_distribution_v1beta1_tx_proto_rawDesc = []byte{ 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x22, 0x4d, 0x73, 0x67, 0x57, + 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0xa7, 0x01, 0x0a, 0x22, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, - 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, + 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, + 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, + 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x46, 0x88, 0xa0, 0x1f, + 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x57, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x22, 0xab, 0x01, 0x0a, 0x26, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, + 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, + 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, + 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x8d, 0x02, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, + 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, + 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x3a, 0x3a, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, + 0xe7, 0xb0, 0x2a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, + 0x2a, 0x1f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, + 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x46, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x3a, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x27, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, 0x02, 0x0a, + 0x15, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1c, + 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x80, 0x01, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, + 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, + 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, + 0x39, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, + 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, + 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe4, 0x02, 0x0a, 0x1e, + 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, + 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x80, 0x01, + 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x1e, 0x4d, 0x73, 0x67, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x3a, 0x46, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, - 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x92, 0x01, 0x0a, 0x26, 0x4d, - 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0xf4, 0x01, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x3a, 0x3a, 0x88, 0xa0, 0x1f, 0x00, - 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, - 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, - 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x3a, 0x82, 0xe7, 0xb0, 0x2a, - 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x27, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x92, 0x02, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, - 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, - 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, - 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x39, 0x82, 0xe7, 0xb0, - 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x26, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, - 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x02, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x44, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, - 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, - 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x63, 0x0a, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x30, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x16, - 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x28, 0x0a, 0x26, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x32, 0xec, 0x07, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x84, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, + 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x3a, 0x40, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x2f, 0x4d, 0x73, + 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x22, 0x28, 0x0a, 0x26, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xec, 0x07, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x12, 0x84, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, + 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x93, 0x01, 0x0a, 0x17, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x37, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x1a, 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x31, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, - 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, - 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x17, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, - 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0c, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x43, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x84, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, - 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, 0x39, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, + 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x12, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, + 0x6e, 0x64, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, - 0x6f, 0x6f, 0x6c, 0x1a, 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, - 0xfe, 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xa2, 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, + 0x6f, 0x6c, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, + 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xfe, 0x01, 0x0a, 0x1f, + 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, + 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, + 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, + 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go b/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go index 4a575330ae67..06f86ab68b3b 100644 --- a/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go +++ b/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go @@ -2845,102 +2845,107 @@ var file_cosmos_feegrant_v1beta1_feegrant_proto_rawDesc = []byte{ 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0x8e, 0x02, 0x0a, 0x0e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x71, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, - 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x0a, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x47, 0xca, 0xb4, 0x2d, 0x25, 0x63, + 0x6f, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, + 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x47, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, + 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, + 0x2a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, + 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xe7, 0x04, 0x0a, 0x11, + 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x48, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, + 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x70, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x96, 0x01, + 0x0a, 0x12, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, + 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x70, 0x65, 0x6e, + 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x92, 0x01, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x5f, 0x63, 0x61, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, + 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, + 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, + 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x70, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x43, 0x61, 0x6e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x4c, 0x0a, 0x0c, 0x70, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, + 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x70, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x65, 0x74, 0x3a, 0x4a, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, - 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, - 0x63, 0x65, 0x22, 0xb5, 0x04, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, - 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, - 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, - 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x62, 0x61, 0x73, - 0x69, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0xc8, - 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x12, 0x7e, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, - 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x7a, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x63, - 0x61, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, - 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x0e, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x43, 0x61, 0x6e, 0x53, 0x70, 0x65, 0x6e, 0x64, - 0x12, 0x4c, 0x0a, 0x0c, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x65, 0x74, 0x3a, 0x4a, - 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, - 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, - 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x13, 0x41, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, + 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, + 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x13, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x4d, 0x73, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x5d, 0x0a, + 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, + 0x49, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x3a, 0x50, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x3a, 0x50, 0x88, 0xa0, - 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, - 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, - 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x4d, 0x73, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xce, - 0x01, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, - 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, - 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, - 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, - 0x12, 0x5d, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, - 0x6e, 0x63, 0x65, 0x49, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x42, - 0xe4, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, - 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, - 0x0d, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x38, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, - 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, 0x65, 0x65, 0x67, 0x72, - 0x61, 0x6e, 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x46, 0x58, - 0xaa, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x17, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x23, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, - 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x73, 0x67, + 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x05, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, + 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x12, 0x5d, 0x0a, 0x09, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x52, + 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x42, 0xe4, 0x01, 0x0a, 0x1b, 0x63, + 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0d, 0x46, 0x65, 0x65, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x46, 0x58, 0xaa, 0x02, 0x17, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, + 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, + 0x02, 0x23, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, + 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, + 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/distribution/v1beta1/distribution.proto b/proto/cosmos/distribution/v1beta1/distribution.proto index 0259437c6659..85f25937dc08 100644 --- a/proto/cosmos/distribution/v1beta1/distribution.proto +++ b/proto/cosmos/distribution/v1beta1/distribution.proto @@ -16,6 +16,7 @@ message Params { string community_tax = 1 [ (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (amino.dont_omitempty) = true, (gogoproto.nullable) = false ]; @@ -25,6 +26,7 @@ message Params { (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, deprecated = true ]; @@ -34,6 +36,7 @@ message Params { (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, deprecated = true ]; @@ -140,6 +143,7 @@ message CommunityPoolSpendProposal { repeated cosmos.base.v1beta1.Coin amount = 4 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/distribution/v1beta1/tx.proto b/proto/cosmos/distribution/v1beta1/tx.proto index 3625cac380c0..a9b7f0e7195f 100644 --- a/proto/cosmos/distribution/v1beta1/tx.proto +++ b/proto/cosmos/distribution/v1beta1/tx.proto @@ -95,6 +95,7 @@ message MsgWithdrawDelegatorRewardResponse { repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -118,6 +119,7 @@ message MsgWithdrawValidatorCommissionResponse { repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -134,6 +136,7 @@ message MsgFundCommunityPool { repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; @@ -180,6 +183,7 @@ message MsgCommunityPoolSpend { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -195,6 +199,7 @@ message MsgCommunityPoolSpendResponse {} // // Since: cosmos-sdk 0.48 message MsgDepositValidatorRewardsPool { + option (amino.name) = "cosmos-sdk/distr/MsgDepositValRewards"; option (cosmos.msg.v1.signer) = "authority"; option (gogoproto.equal) = false; @@ -204,6 +209,8 @@ message MsgDepositValidatorRewardsPool { string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, + (amino.encoding) = "null_slice_as_empty", + (amino.dont_omitempty) = true, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/feegrant/v1beta1/feegrant.proto b/proto/cosmos/feegrant/v1beta1/feegrant.proto index df57218df37f..e02a1e0136dd 100644 --- a/proto/cosmos/feegrant/v1beta1/feegrant.proto +++ b/proto/cosmos/feegrant/v1beta1/feegrant.proto @@ -24,6 +24,7 @@ message BasicAllowance { repeated cosmos.base.v1beta1.Coin spend_limit = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -50,6 +51,7 @@ message PeriodicAllowance { repeated cosmos.base.v1beta1.Coin period_spend_limit = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -57,6 +59,7 @@ message PeriodicAllowance { repeated cosmos.base.v1beta1.Coin period_can_spend = 4 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 957133b832b4..00a852c30f98 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -59,7 +59,10 @@ func genType(gogo gogoproto.Message, pulsar proto.Message, opts rapidproto.Gener } var ( - genOpts = rapidproto.GeneratorOptions{Resolver: protoregistry.GlobalTypes} + genOpts = rapidproto.GeneratorOptions{ + Resolver: protoregistry.GlobalTypes, + GogoUnmarshalCompatibleDecimal: true, + } genTypes = []generatedType{ // auth genType(&authtypes.Params{}, &authapi.Params{}, genOpts), @@ -97,12 +100,23 @@ var ( // consensus genType(&consensustypes.MsgUpdateParams{}, &consensusapi.MsgUpdateParams{}, genOpts.WithDisallowNil()), + + // distribution + genType(&disttypes.MsgWithdrawDelegatorReward{}, &distapi.MsgWithdrawDelegatorReward{}, genOpts), + genType(&disttypes.MsgWithdrawValidatorCommission{}, &distapi.MsgWithdrawValidatorCommission{}, genOpts), + genType(&disttypes.MsgSetWithdrawAddress{}, &distapi.MsgSetWithdrawAddress{}, genOpts), + genType(&disttypes.MsgFundCommunityPool{}, &distapi.MsgFundCommunityPool{}, genOpts), + genType(&disttypes.MsgUpdateParams{}, &distapi.MsgUpdateParams{}, genOpts.WithDisallowNil()), + genType(&disttypes.MsgCommunityPoolSpend{}, &distapi.MsgCommunityPoolSpend{}, genOpts), + genType(&disttypes.MsgDepositValidatorRewardsPool{}, &distapi.MsgDepositValidatorRewardsPool{}, genOpts), + genType(&disttypes.Params{}, &distapi.Params{}, genOpts), } ) func TestAminoJSON_Equivalence(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig( - auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, consensus.AppModuleBasic{}) + auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, consensus.AppModuleBasic{}, + distribution.AppModuleBasic{}) aj := aminojson.NewAminoJSON() for _, tt := range genTypes { diff --git a/x/distribution/types/distribution.pb.go b/x/distribution/types/distribution.pb.go index 8bfe554d1ea3..87de8638ef7b 100644 --- a/x/distribution/types/distribution.pb.go +++ b/x/distribution/types/distribution.pb.go @@ -642,69 +642,71 @@ func init() { } var fileDescriptor_cd78a31ea281a992 = []byte{ - // 989 bytes of a gzipped FileDescriptorProto + // 1013 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0x41, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0x34, 0x8e, 0xd3, 0x4c, 0x69, 0x42, 0x27, 0x4e, 0xea, 0xb8, 0x95, 0x6d, 0xad, 0x54, - 0x30, 0x81, 0xd8, 0xa4, 0x08, 0x09, 0x45, 0x08, 0x29, 0xb6, 0x83, 0xe0, 0xd4, 0x68, 0x83, 0x28, - 0xe2, 0xb2, 0x1a, 0xef, 0x4e, 0xec, 0x51, 0x77, 0x67, 0x96, 0x99, 0xb1, 0x93, 0x1e, 0xb8, 0xa2, - 0xc0, 0x01, 0x38, 0x22, 0x4e, 0x15, 0x5c, 0x2a, 0xc4, 0x21, 0x87, 0xfc, 0x88, 0x8a, 0x53, 0x55, - 0x24, 0x54, 0x71, 0x48, 0x51, 0x72, 0x08, 0xe2, 0x57, 0xa0, 0xd9, 0x19, 0xaf, 0x9d, 0x10, 0x4a, - 0xa4, 0x60, 0xf5, 0x92, 0x78, 0xde, 0xdb, 0xfd, 0xbe, 0xf7, 0xbd, 0xf9, 0xf6, 0xcd, 0xc0, 0x9a, - 0xcf, 0x65, 0xc4, 0x65, 0x3d, 0xa0, 0x52, 0x09, 0xda, 0xee, 0x29, 0xca, 0x59, 0xbd, 0xbf, 0xd2, - 0x26, 0x0a, 0xaf, 0x9c, 0x08, 0xd6, 0x62, 0xc1, 0x15, 0x47, 0x37, 0xcc, 0xf3, 0xb5, 0x13, 0x29, - 0xfb, 0x7c, 0x31, 0xdf, 0xe1, 0x1d, 0x9e, 0x3c, 0x57, 0xd7, 0xbf, 0xcc, 0x2b, 0xc5, 0x92, 0xa5, - 0x68, 0x63, 0x49, 0x52, 0x68, 0x9f, 0x53, 0x0b, 0x59, 0x5c, 0x34, 0x79, 0xcf, 0xbc, 0x68, 0xf1, - 0x4d, 0xea, 0x1a, 0x8e, 0x28, 0xe3, 0xf5, 0xe4, 0xaf, 0x09, 0x39, 0x3f, 0x4f, 0xc0, 0xdc, 0x06, - 0x16, 0x38, 0x92, 0x08, 0xc3, 0xab, 0x3e, 0x8f, 0xa2, 0x1e, 0xa3, 0xea, 0xbe, 0xa7, 0xf0, 0x4e, - 0x01, 0x54, 0x40, 0x75, 0xba, 0xf1, 0xee, 0xa3, 0x83, 0x72, 0xe6, 0xf7, 0x83, 0xf2, 0x2b, 0x1d, - 0xaa, 0xba, 0xbd, 0x76, 0xcd, 0xe7, 0x91, 0x45, 0xb5, 0xff, 0x96, 0x65, 0x70, 0xaf, 0xae, 0xee, - 0xc7, 0x44, 0xd6, 0x5a, 0xc4, 0x7f, 0xb2, 0xbf, 0x0c, 0x2d, 0x69, 0x8b, 0xf8, 0xee, 0x4b, 0x29, - 0xe4, 0x47, 0x78, 0x07, 0xc5, 0x30, 0xaf, 0xcb, 0xd6, 0xb5, 0xc5, 0x5c, 0x12, 0xe1, 0x09, 0xb2, - 0x8d, 0x45, 0x50, 0xb8, 0x94, 0x30, 0xbd, 0x77, 0x11, 0xa6, 0x02, 0x70, 0x91, 0xc6, 0xde, 0xb0, - 0xd0, 0x6e, 0x82, 0x8c, 0x04, 0x9c, 0x6f, 0x73, 0xd6, 0x93, 0xff, 0xa0, 0x9c, 0xf8, 0x5f, 0x28, - 0xe7, 0x12, 0xf0, 0x53, 0x9c, 0xb7, 0xe1, 0xfc, 0x36, 0x55, 0xdd, 0x40, 0xe0, 0x6d, 0x0f, 0x07, - 0x81, 0xf0, 0x08, 0xc3, 0xed, 0x90, 0x04, 0x85, 0x6c, 0x05, 0x54, 0x2f, 0xbb, 0x73, 0x83, 0xe4, - 0x5a, 0x10, 0x88, 0x75, 0x93, 0x5a, 0xbd, 0xf5, 0xd5, 0xf1, 0xde, 0x52, 0x65, 0x84, 0x73, 0xe7, - 0xa4, 0x87, 0xcc, 0x1e, 0x39, 0xbf, 0x01, 0x58, 0xfc, 0x18, 0x87, 0x34, 0xc0, 0x8a, 0x8b, 0x0f, - 0xa8, 0x54, 0x5c, 0x50, 0x1f, 0x87, 0x86, 0x58, 0xa2, 0xaf, 0x01, 0xbc, 0xee, 0xf7, 0xa2, 0x5e, - 0x88, 0x15, 0xed, 0x13, 0x2b, 0xd5, 0x13, 0x58, 0x51, 0x5e, 0x00, 0x95, 0x89, 0xea, 0x95, 0xdb, - 0x37, 0xad, 0x43, 0x6b, 0xba, 0x57, 0x03, 0xa7, 0x69, 0x31, 0x4d, 0x4e, 0x59, 0xe3, 0x1d, 0xdd, - 0x8e, 0x9f, 0x9e, 0x95, 0x5f, 0x3f, 0x5f, 0x3b, 0xf4, 0x3b, 0xf2, 0xe1, 0xf1, 0xde, 0x12, 0x70, - 0xe7, 0x87, 0xb4, 0xa6, 0x18, 0x57, 0x93, 0xa2, 0x57, 0xe1, 0xac, 0x20, 0x5b, 0x44, 0x10, 0xe6, - 0x13, 0xcf, 0xe7, 0x3d, 0xa6, 0x92, 0xbd, 0xbe, 0xea, 0xce, 0xa4, 0xe1, 0xa6, 0x8e, 0x3a, 0x3f, - 0x02, 0x78, 0x3d, 0x15, 0xd6, 0xec, 0x09, 0x41, 0x98, 0x1a, 0xa8, 0x8a, 0xe1, 0x94, 0x51, 0x22, - 0xc7, 0x2c, 0x62, 0x40, 0x83, 0x16, 0x60, 0x2e, 0x26, 0x82, 0x72, 0xe3, 0xcc, 0xac, 0x6b, 0x57, - 0xce, 0x77, 0x00, 0x96, 0xd2, 0x2a, 0xd7, 0x7c, 0xab, 0x99, 0x04, 0x4d, 0x1e, 0x45, 0x54, 0x4a, - 0xca, 0x19, 0xea, 0x43, 0xe8, 0xa7, 0xab, 0x31, 0xd7, 0x3b, 0xc2, 0xe4, 0x7c, 0x03, 0xe0, 0x8d, - 0xb4, 0xb4, 0x3b, 0x3d, 0x25, 0x15, 0x66, 0x01, 0x65, 0x9d, 0x17, 0xd6, 0x44, 0xe7, 0x7b, 0x00, - 0xe7, 0xd2, 0x8a, 0x36, 0x43, 0x2c, 0xbb, 0xeb, 0x7d, 0xc2, 0x14, 0x7a, 0x0d, 0xbe, 0xdc, 0x1f, - 0x84, 0x3d, 0xdb, 0x66, 0x90, 0xb4, 0x79, 0x36, 0x8d, 0x6f, 0x24, 0x61, 0xf4, 0x09, 0xbc, 0xbc, - 0x25, 0xb0, 0xaf, 0xbf, 0x00, 0x3b, 0x23, 0x2e, 0x36, 0x8d, 0x52, 0x34, 0xe7, 0x4b, 0x00, 0xf3, - 0x67, 0x14, 0x27, 0xd1, 0x67, 0x70, 0x61, 0x58, 0x9d, 0xd4, 0x09, 0x8f, 0x24, 0x19, 0xdb, 0xb6, - 0x37, 0x6b, 0xcf, 0x19, 0xd9, 0xb5, 0x33, 0x20, 0x1b, 0xd3, 0xba, 0x64, 0xd3, 0x9b, 0x7c, 0xff, - 0x0c, 0x4a, 0x67, 0x17, 0xc0, 0xa9, 0xf7, 0x09, 0xd9, 0xe0, 0x3c, 0x44, 0x9f, 0xc3, 0x99, 0xe1, - 0x10, 0x8e, 0x39, 0x0f, 0xc7, 0xbc, 0x5b, 0xc3, 0x91, 0xaf, 0xe9, 0x9d, 0x2f, 0x2e, 0xc1, 0x62, - 0x73, 0x34, 0xb2, 0x19, 0x13, 0x16, 0x98, 0xf9, 0x86, 0x43, 0x94, 0x87, 0x93, 0x8a, 0xaa, 0x90, - 0x98, 0xa3, 0xc1, 0x35, 0x0b, 0x54, 0x81, 0x57, 0x02, 0x22, 0x7d, 0x41, 0xe3, 0xe1, 0x46, 0xb9, - 0xa3, 0x21, 0x74, 0x13, 0x4e, 0x0b, 0xe2, 0xd3, 0x98, 0x12, 0xa6, 0xcc, 0xe4, 0x75, 0x87, 0x01, - 0xd4, 0x85, 0x39, 0x1c, 0x25, 0xb3, 0x21, 0x9b, 0x68, 0x5d, 0x3c, 0x53, 0x6b, 0x22, 0xf4, 0x6d, - 0x2b, 0xb4, 0x7a, 0x0e, 0xa1, 0x23, 0x2a, 0x2d, 0xfe, 0x6a, 0x75, 0xf7, 0x41, 0x39, 0xf3, 0xe7, - 0x83, 0x72, 0xe6, 0x97, 0xfd, 0xe5, 0xa2, 0x25, 0xe9, 0xf0, 0xfe, 0x08, 0x07, 0x53, 0xba, 0x44, - 0xe0, 0x3c, 0x03, 0x70, 0xbe, 0x45, 0x42, 0xd2, 0x49, 0x36, 0x4b, 0x61, 0xa1, 0x28, 0xeb, 0x7c, - 0xc8, 0xb6, 0x92, 0x91, 0x16, 0x0b, 0xd2, 0xa7, 0x5c, 0x1f, 0x2a, 0xa3, 0xee, 0x9d, 0x19, 0x84, - 0xad, 0x79, 0xef, 0xc2, 0x49, 0xa9, 0xf0, 0x3d, 0x62, 0x9d, 0xbb, 0x76, 0x11, 0xe7, 0x1a, 0x19, - 0x06, 0x0f, 0xb5, 0x60, 0xae, 0x4b, 0x68, 0xa7, 0x6b, 0x5a, 0x99, 0x6d, 0xbc, 0xf1, 0xd7, 0x41, - 0x79, 0xd6, 0x17, 0x44, 0x4f, 0x5c, 0xe6, 0x99, 0xd4, 0x0f, 0xc7, 0x7b, 0x4b, 0xa7, 0x63, 0xb6, - 0x17, 0x66, 0xe1, 0x3c, 0x05, 0x70, 0xd1, 0x2a, 0xa4, 0x9c, 0xa5, 0x5a, 0xed, 0x19, 0xb6, 0x0e, - 0xaf, 0x0d, 0x3f, 0x03, 0x7d, 0x88, 0x11, 0x29, 0xed, 0x85, 0xa0, 0xf0, 0x64, 0x7f, 0x39, 0x6f, - 0x4b, 0x5b, 0x33, 0x99, 0x4d, 0x25, 0xf4, 0xa8, 0x19, 0x7e, 0xd7, 0x36, 0x8e, 0x18, 0xcc, 0xa5, - 0x47, 0xfc, 0x38, 0x6d, 0x6c, 0x59, 0x56, 0xb3, 0x7a, 0x83, 0x9d, 0x5f, 0x01, 0xbc, 0xf5, 0xef, - 0x2e, 0xbe, 0x4b, 0x55, 0xb7, 0x45, 0x62, 0x2e, 0xa9, 0x1a, 0x93, 0xa1, 0x17, 0x46, 0x0c, 0xad, - 0x53, 0x76, 0x85, 0x0a, 0x70, 0x2a, 0x30, 0xc4, 0x85, 0xc9, 0x24, 0x31, 0x58, 0xae, 0x3a, 0xbb, - 0xff, 0x69, 0xca, 0xc6, 0x9d, 0x87, 0x87, 0x25, 0xf0, 0xe8, 0xb0, 0x04, 0x1e, 0x1f, 0x96, 0xc0, - 0x1f, 0x87, 0x25, 0xf0, 0xed, 0x51, 0x29, 0xf3, 0xf8, 0xa8, 0x94, 0x79, 0x7a, 0x54, 0xca, 0x7c, - 0xba, 0xf2, 0xdc, 0x9e, 0x9d, 0xba, 0x4d, 0x24, 0x2d, 0x6c, 0xe7, 0x92, 0x2b, 0xe0, 0x5b, 0x7f, - 0x07, 0x00, 0x00, 0xff, 0xff, 0x28, 0x8c, 0xb3, 0x24, 0xb5, 0x0a, 0x00, 0x00, + 0x14, 0xf6, 0x34, 0x89, 0xd3, 0x4c, 0x69, 0x42, 0x27, 0x4e, 0xea, 0xb8, 0x95, 0x1d, 0xad, 0x54, + 0x30, 0x81, 0xd8, 0xa4, 0x5c, 0x50, 0xc4, 0x25, 0xb6, 0x83, 0xe0, 0x80, 0x1a, 0x6d, 0x10, 0x45, + 0x5c, 0x56, 0xe3, 0xdd, 0x89, 0x3d, 0xea, 0xee, 0xcc, 0x32, 0x33, 0xeb, 0x24, 0x07, 0x24, 0x8e, + 0x81, 0x03, 0x70, 0x44, 0xbd, 0x50, 0xc1, 0xa5, 0xe2, 0x94, 0x43, 0x6e, 0xfc, 0x81, 0x8a, 0x53, + 0x55, 0x24, 0x54, 0x71, 0x48, 0x51, 0x72, 0x08, 0xe2, 0x57, 0xa0, 0xd9, 0x19, 0xaf, 0x9d, 0x10, + 0x4a, 0xa5, 0xd6, 0xea, 0x25, 0xf1, 0x7c, 0x6f, 0xe7, 0x7d, 0xef, 0x7b, 0xef, 0xcd, 0x9b, 0x81, + 0x35, 0x9f, 0xcb, 0x88, 0xcb, 0x7a, 0x40, 0xa5, 0x12, 0xb4, 0x9d, 0x28, 0xca, 0x59, 0xbd, 0xb7, + 0xd2, 0x26, 0x0a, 0xaf, 0x9c, 0x02, 0x6b, 0xb1, 0xe0, 0x8a, 0xa3, 0x6b, 0xe6, 0xfb, 0xda, 0x29, + 0x93, 0xfd, 0xbe, 0x54, 0xe8, 0xf0, 0x0e, 0x4f, 0xbf, 0xab, 0xeb, 0x5f, 0x66, 0x4b, 0xa9, 0x6c, + 0x29, 0xda, 0x58, 0x92, 0xcc, 0xb5, 0xcf, 0xa9, 0x75, 0x59, 0x5a, 0x30, 0x76, 0xcf, 0x6c, 0xb4, + 0xfe, 0x8d, 0xe9, 0x0a, 0x8e, 0x28, 0xe3, 0xf5, 0xf4, 0xaf, 0x81, 0x9c, 0x5f, 0xc6, 0x60, 0x7e, + 0x03, 0x0b, 0x1c, 0x49, 0xb4, 0x05, 0x2f, 0xfb, 0x3c, 0x8a, 0x12, 0x46, 0xd5, 0xae, 0xa7, 0xf0, + 0x4e, 0x11, 0x2c, 0x82, 0xea, 0x54, 0x63, 0xed, 0xc1, 0x61, 0x25, 0xf7, 0xc7, 0x61, 0xe5, 0xb5, + 0x0e, 0x55, 0xdd, 0xa4, 0x5d, 0xf3, 0x79, 0x64, 0xbd, 0xda, 0x7f, 0xcb, 0x32, 0xb8, 0x53, 0x57, + 0xbb, 0x31, 0x91, 0xb5, 0x16, 0xf1, 0x1f, 0x1d, 0x2c, 0x43, 0x4b, 0xda, 0x22, 0xfe, 0xfd, 0x93, + 0xfd, 0x25, 0xe0, 0xbe, 0x92, 0xf9, 0xfd, 0x18, 0xef, 0xa0, 0x04, 0x16, 0x74, 0xec, 0x3a, 0xc0, + 0x98, 0x4b, 0x22, 0x3c, 0x41, 0xb6, 0xb1, 0x08, 0x8a, 0x17, 0x52, 0xba, 0xe6, 0x73, 0xd3, 0x15, + 0x81, 0x8b, 0x34, 0xc1, 0x86, 0xf5, 0xef, 0xa6, 0xee, 0xd1, 0x36, 0x9c, 0x6b, 0x73, 0x96, 0xc8, + 0x7f, 0xf1, 0x8e, 0xbd, 0x38, 0xde, 0xd9, 0x94, 0xe1, 0x0c, 0xf1, 0x4d, 0x38, 0xb7, 0x4d, 0x55, + 0x37, 0x10, 0x78, 0xdb, 0xc3, 0x41, 0x20, 0x3c, 0xc2, 0x70, 0x3b, 0x24, 0x41, 0x71, 0x7c, 0x11, + 0x54, 0x2f, 0xba, 0xb3, 0x7d, 0xe3, 0x5a, 0x10, 0x88, 0x75, 0x63, 0x5a, 0xbd, 0xf1, 0xf5, 0xc9, + 0xfe, 0xd2, 0xe2, 0x10, 0xf1, 0xce, 0xe9, 0x96, 0x32, 0x25, 0x73, 0x7e, 0x07, 0xb0, 0xf4, 0x09, + 0x0e, 0x69, 0x80, 0x15, 0x17, 0x1f, 0x50, 0xa9, 0xb8, 0xa0, 0x3e, 0x0e, 0x0d, 0xb1, 0x44, 0xdf, + 0x00, 0x78, 0xd5, 0x4f, 0xa2, 0x24, 0xc4, 0x8a, 0xf6, 0x88, 0xd5, 0xeb, 0x09, 0xac, 0x28, 0x2f, + 0x82, 0xc5, 0xb1, 0xea, 0xa5, 0x9b, 0xd7, 0x6d, 0xc3, 0xd6, 0x74, 0xc2, 0xfa, 0x8d, 0xa7, 0x15, + 0x35, 0x39, 0x65, 0x8d, 0x77, 0x75, 0x4e, 0x7e, 0x7e, 0x52, 0x79, 0xf3, 0xd9, 0x72, 0xa2, 0xf7, + 0x48, 0x53, 0xf1, 0xb9, 0x01, 0xad, 0x09, 0xc6, 0xd5, 0xa4, 0xe8, 0x75, 0x38, 0x23, 0xc8, 0x16, + 0x11, 0x84, 0xf9, 0xc4, 0xf3, 0x79, 0xc2, 0x54, 0x5a, 0xf5, 0xcb, 0xee, 0x74, 0x06, 0x37, 0x35, + 0xea, 0xfc, 0x04, 0xe0, 0xd5, 0x4c, 0x58, 0x33, 0x11, 0x82, 0x30, 0xd5, 0x57, 0x15, 0xc3, 0x49, + 0xa3, 0x44, 0x8e, 0x58, 0x44, 0x9f, 0x06, 0xcd, 0xc3, 0x7c, 0x4c, 0x04, 0xe5, 0xa6, 0x47, 0xc7, + 0x5d, 0xbb, 0x72, 0xbe, 0x07, 0xb0, 0x9c, 0x45, 0xb9, 0xe6, 0x5b, 0xcd, 0x24, 0x68, 0xf2, 0x28, + 0xa2, 0x52, 0x52, 0xce, 0x50, 0x0f, 0x42, 0x3f, 0x5b, 0x8d, 0x38, 0xde, 0x21, 0x26, 0xe7, 0x5b, + 0x00, 0xaf, 0x65, 0xa1, 0xdd, 0x4a, 0x94, 0x54, 0x98, 0x05, 0x94, 0x75, 0x5e, 0x5a, 0x12, 0x9d, + 0xbb, 0x00, 0xce, 0x66, 0x11, 0x6d, 0x86, 0x58, 0x76, 0xd7, 0x7b, 0x84, 0x29, 0xf4, 0x06, 0x7c, + 0xb5, 0xd7, 0x87, 0x3d, 0x9b, 0x66, 0x90, 0xa6, 0x79, 0x26, 0xc3, 0x37, 0x52, 0x18, 0x7d, 0x0a, + 0x2f, 0x6e, 0x09, 0xec, 0xeb, 0x13, 0x60, 0xa7, 0xc5, 0x7b, 0xcf, 0x73, 0x6a, 0xdd, 0xcc, 0x9b, + 0xf3, 0x15, 0x80, 0x85, 0x73, 0x82, 0x93, 0xe8, 0x73, 0x38, 0x3f, 0x88, 0x4e, 0x6a, 0x83, 0x47, + 0x52, 0x8b, 0x4d, 0xdb, 0xdb, 0xb5, 0xa7, 0x4c, 0xf0, 0xda, 0x39, 0x2e, 0x1b, 0x53, 0x3a, 0x64, + 0x93, 0x9b, 0x42, 0xef, 0x1c, 0x4a, 0x67, 0x0f, 0xc0, 0xc9, 0xf7, 0x09, 0xd9, 0xe0, 0x3c, 0x44, + 0x5f, 0xc0, 0xe9, 0xc1, 0x4c, 0x8e, 0x39, 0x0f, 0x47, 0x5c, 0xad, 0xc1, 0x0d, 0xa0, 0xe9, 0x9d, + 0x1f, 0x2e, 0xc0, 0x52, 0x73, 0x18, 0xd9, 0x8c, 0x09, 0x0b, 0xcc, 0x7c, 0xc3, 0x21, 0x2a, 0xc0, + 0x09, 0x45, 0x55, 0x48, 0xcc, 0x4d, 0xe1, 0x9a, 0x05, 0x5a, 0x84, 0x97, 0x02, 0x22, 0x7d, 0x41, + 0xe3, 0x41, 0xa1, 0xdc, 0x61, 0x08, 0x5d, 0x87, 0x53, 0x82, 0xf8, 0x34, 0xa6, 0x84, 0x29, 0x33, + 0x7e, 0xdd, 0x01, 0x80, 0xbe, 0x04, 0x30, 0x8f, 0xa3, 0x74, 0x38, 0x8c, 0xa7, 0x62, 0x17, 0xce, + 0x15, 0x9b, 0x2a, 0xfd, 0xc8, 0x2a, 0xad, 0x3e, 0x83, 0xd2, 0x54, 0xe6, 0xdd, 0x93, 0xfd, 0xa5, + 0x59, 0x96, 0x84, 0xa1, 0x27, 0x43, 0xea, 0x13, 0x0f, 0x4b, 0x8f, 0x44, 0xb1, 0xda, 0x35, 0xf2, + 0x2d, 0xef, 0x6a, 0x75, 0xef, 0x5e, 0x25, 0xf7, 0xd7, 0xbd, 0x4a, 0xee, 0xd7, 0x83, 0xe5, 0x92, + 0x25, 0xef, 0xf0, 0xde, 0x10, 0x37, 0x53, 0x3a, 0x76, 0xe0, 0x3c, 0x01, 0x70, 0xae, 0x45, 0x42, + 0xd2, 0x49, 0xab, 0xa8, 0xb0, 0x50, 0x94, 0x75, 0x3e, 0x64, 0x5b, 0xe9, 0xac, 0x8b, 0x05, 0xe9, + 0x51, 0xae, 0xaf, 0x9c, 0xe1, 0xb6, 0x9e, 0xee, 0xc3, 0xb6, 0xab, 0x6f, 0xc3, 0x09, 0xa9, 0xf0, + 0x1d, 0x62, 0x5b, 0xfa, 0x05, 0xdc, 0xb7, 0xc6, 0x1f, 0x6a, 0xc1, 0x7c, 0x97, 0xd0, 0x4e, 0xd7, + 0xe4, 0x78, 0xbc, 0xf1, 0xd6, 0xdf, 0x87, 0x95, 0x19, 0x5f, 0x10, 0x3d, 0x8a, 0x99, 0x67, 0x4c, + 0x3f, 0x9e, 0xec, 0x2f, 0x9d, 0xc5, 0x6c, 0x2e, 0xcc, 0xc2, 0x79, 0x0c, 0xe0, 0x82, 0x55, 0x48, + 0x39, 0xcb, 0xb4, 0xda, 0xcb, 0x6d, 0x1d, 0x5e, 0x19, 0x9c, 0x0f, 0x7d, 0xbb, 0x11, 0x29, 0xed, + 0xc3, 0xa1, 0xf8, 0xe8, 0x60, 0xb9, 0x60, 0x43, 0x5b, 0x33, 0x96, 0x4d, 0x25, 0xf4, 0x0c, 0x1a, + 0x1c, 0x78, 0x8b, 0x23, 0x06, 0xf3, 0xd9, 0x2b, 0x60, 0x94, 0xfd, 0x6d, 0x59, 0x56, 0xc7, 0x75, + 0x81, 0x9d, 0xdf, 0x00, 0xbc, 0xf1, 0xdf, 0xed, 0x7d, 0x9b, 0xaa, 0x6e, 0x8b, 0xc4, 0x5c, 0x52, + 0x35, 0xa2, 0x4e, 0x9f, 0x1f, 0x6a, 0x74, 0x6d, 0xb2, 0x2b, 0x54, 0x84, 0x93, 0x81, 0x21, 0x2e, + 0x4e, 0xa4, 0x86, 0xfe, 0x72, 0xd5, 0xd9, 0xfb, 0xdf, 0xa6, 0x6c, 0xdc, 0xba, 0x7f, 0x54, 0x06, + 0x0f, 0x8e, 0xca, 0xe0, 0xe1, 0x51, 0x19, 0xfc, 0x79, 0x54, 0x06, 0xdf, 0x1d, 0x97, 0x73, 0x0f, + 0x8f, 0xcb, 0xb9, 0xc7, 0xc7, 0xe5, 0xdc, 0x67, 0x2b, 0x4f, 0xcd, 0xd9, 0x99, 0x67, 0x46, 0x9a, + 0xc2, 0x76, 0x3e, 0x7d, 0x2a, 0xbe, 0xf3, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1d, 0xc8, 0x78, + 0x0f, 0xdd, 0x0a, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { diff --git a/x/distribution/types/tx.pb.go b/x/distribution/types/tx.pb.go index c38dacf1f474..7a9296627967 100644 --- a/x/distribution/types/tx.pb.go +++ b/x/distribution/types/tx.pb.go @@ -675,63 +675,65 @@ func init() { } var fileDescriptor_ed4f433d965e58ca = []byte{ - // 895 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcf, 0x6f, 0xe3, 0x44, - 0x18, 0xcd, 0xb4, 0xa2, 0x28, 0x53, 0xa4, 0x36, 0x56, 0xa1, 0xad, 0x5b, 0x9c, 0xca, 0x45, 0x25, - 0xaa, 0xa8, 0x4d, 0xc2, 0x2f, 0x35, 0x1c, 0x10, 0x49, 0x5b, 0x89, 0x43, 0x44, 0x95, 0x0a, 0x90, - 0xb8, 0x54, 0x4e, 0x6c, 0x9c, 0x11, 0xb5, 0xc7, 0xf2, 0x4c, 0x9a, 0xe6, 0x06, 0x88, 0x03, 0xe2, - 0x80, 0x50, 0xb9, 0x22, 0xd1, 0x63, 0xc5, 0x85, 0x1e, 0xf8, 0x23, 0x7a, 0x41, 0xaa, 0x38, 0x71, - 0x02, 0x94, 0x1e, 0x8a, 0xc4, 0x1e, 0x77, 0xef, 0x2b, 0xff, 0x9a, 0xd8, 0xb1, 0x63, 0x37, 0xdd, - 0xee, 0xee, 0xa5, 0x8d, 0x66, 0xbe, 0xf7, 0xfc, 0xbe, 0xe7, 0x37, 0xdf, 0x24, 0xf0, 0xb5, 0x36, - 0x26, 0x06, 0x26, 0xb2, 0x8a, 0x08, 0xb5, 0x51, 0xab, 0x4b, 0x11, 0x36, 0xe5, 0xe3, 0x72, 0x4b, - 0xa3, 0x4a, 0x59, 0xa6, 0x27, 0x92, 0x65, 0x63, 0x8a, 0xb9, 0x15, 0xaf, 0x4a, 0x0a, 0x57, 0x49, - 0x7e, 0x15, 0xbf, 0xa0, 0x63, 0x1d, 0xbb, 0x75, 0xb2, 0xf3, 0xc9, 0x83, 0xf0, 0x82, 0x4f, 0xdc, - 0x52, 0x88, 0xc6, 0x08, 0xdb, 0x18, 0x99, 0xfe, 0xfe, 0xb2, 0xb7, 0x7f, 0xe8, 0x01, 0x7d, 0x7e, - 0x6f, 0x6b, 0xd1, 0x87, 0x1a, 0x44, 0x97, 0x8f, 0xcb, 0xce, 0x3f, 0x7f, 0xa3, 0xa0, 0x18, 0xc8, - 0xc4, 0xb2, 0xfb, 0xd7, 0x5f, 0x92, 0xd2, 0xf4, 0x47, 0xe4, 0xba, 0xf5, 0xe2, 0xff, 0x00, 0xbe, - 0xdc, 0x20, 0xfa, 0x81, 0x46, 0x3f, 0x43, 0xb4, 0xa3, 0xda, 0x4a, 0xef, 0x43, 0x55, 0xb5, 0x35, - 0x42, 0xb8, 0x5d, 0x58, 0x50, 0xb5, 0x23, 0x4d, 0x57, 0x28, 0xb6, 0x0f, 0x15, 0x6f, 0x71, 0x09, - 0xac, 0x81, 0x52, 0xbe, 0xb6, 0xf4, 0xe7, 0xef, 0x5b, 0x0b, 0xbe, 0x44, 0xbf, 0xfc, 0x80, 0xda, - 0xc8, 0xd4, 0x9b, 0xf3, 0x0c, 0x12, 0xd0, 0xd4, 0xe1, 0x7c, 0xcf, 0x67, 0x66, 0x2c, 0x53, 0x19, - 0x2c, 0x73, 0xbd, 0xa8, 0x96, 0xea, 0xde, 0x77, 0x67, 0xc5, 0xdc, 0x7f, 0x67, 0xc5, 0xdc, 0x37, - 0x37, 0x17, 0x9b, 0x71, 0x59, 0xdf, 0xdf, 0x5c, 0x6c, 0xae, 0x7b, 0x4c, 0x5b, 0x44, 0xfd, 0x52, - 0x6e, 0x10, 0xbd, 0x81, 0x55, 0xf4, 0x45, 0x7f, 0xa4, 0x27, 0xb1, 0x08, 0x5f, 0x4d, 0x6c, 0xb6, - 0xa9, 0x11, 0x0b, 0x9b, 0x44, 0x13, 0x1f, 0x01, 0xc8, 0x37, 0x88, 0x1e, 0x6c, 0xef, 0x04, 0x4f, - 0x6a, 0x6a, 0x3d, 0xc5, 0x56, 0xef, 0xcb, 0x93, 0x5d, 0x58, 0x38, 0x56, 0x8e, 0x90, 0x1a, 0xa1, - 0xc9, 0x32, 0x65, 0x9e, 0x41, 0x02, 0x57, 0x3e, 0xca, 0x76, 0x65, 0x23, 0xea, 0xca, 0x48, 0x5f, - 0x08, 0x9b, 0x5e, 0x63, 0xe2, 0x0f, 0x00, 0x8a, 0xe3, 0xfb, 0x0e, 0xec, 0xe1, 0x3a, 0x70, 0x46, - 0x31, 0x70, 0xd7, 0xa4, 0x4b, 0x60, 0x6d, 0xba, 0x34, 0x5b, 0x59, 0xf6, 0xe3, 0x26, 0x39, 0xa9, - 0x0e, 0x0e, 0x80, 0x54, 0xc7, 0xc8, 0xac, 0xbd, 0x73, 0xf9, 0x77, 0x31, 0xf7, 0xeb, 0x3f, 0xc5, - 0x92, 0x8e, 0x68, 0xa7, 0xdb, 0x92, 0xda, 0xd8, 0xf0, 0x53, 0x2d, 0x87, 0x34, 0xd1, 0xbe, 0xa5, - 0x11, 0x17, 0x40, 0xce, 0x6f, 0x2e, 0x36, 0x41, 0xd3, 0xe7, 0x17, 0x7f, 0x03, 0x50, 0x08, 0x09, - 0xfa, 0x34, 0xe8, 0xbd, 0x8e, 0x0d, 0x03, 0x11, 0x82, 0xb0, 0x99, 0xec, 0x22, 0x98, 0xd8, 0xc5, - 0x68, 0xb6, 0x62, 0x8c, 0x09, 0xd9, 0x0a, 0x89, 0x1a, 0xca, 0x11, 0x4f, 0x01, 0xdc, 0x48, 0x57, - 0xfc, 0x1c, 0x6c, 0x7c, 0x08, 0xe0, 0x42, 0x83, 0xe8, 0x7b, 0x5d, 0x53, 0x75, 0x74, 0x74, 0x4d, - 0x44, 0xfb, 0xfb, 0x18, 0x1f, 0x3d, 0x3b, 0x09, 0xdc, 0xbb, 0x30, 0xaf, 0x6a, 0x16, 0x26, 0x88, - 0x62, 0x3b, 0x33, 0xe4, 0xc3, 0xd2, 0x6a, 0x35, 0xfc, 0x5e, 0x86, 0xeb, 0xce, 0xfb, 0x28, 0x46, - 0xdf, 0x47, 0xac, 0x3b, 0x51, 0x80, 0xab, 0x49, 0xeb, 0xec, 0x98, 0xff, 0x01, 0xe0, 0x5c, 0x83, - 0xe8, 0x9f, 0x58, 0xaa, 0x42, 0xb5, 0x7d, 0xc5, 0x56, 0x0c, 0xe2, 0xe8, 0x54, 0xba, 0xb4, 0x83, - 0x6d, 0x44, 0xfb, 0x99, 0x31, 0x1a, 0x96, 0x72, 0x7b, 0x70, 0xc6, 0x72, 0x19, 0xdc, 0xe6, 0x66, - 0x2b, 0xeb, 0x52, 0xca, 0xe5, 0x20, 0x79, 0x0f, 0xab, 0xe5, 0x1d, 0x4f, 0x7d, 0x9f, 0x3c, 0x74, - 0xb5, 0xea, 0xf6, 0xc9, 0x78, 0x9d, 0x3e, 0x5f, 0x0f, 0xf5, 0x19, 0x19, 0xe8, 0x23, 0xda, 0xc5, - 0x65, 0xb8, 0x38, 0xb2, 0xc4, 0x5a, 0x3d, 0x9d, 0x72, 0x07, 0x7c, 0xc4, 0x87, 0x03, 0x4b, 0x33, - 0xd5, 0x3b, 0x37, 0xbc, 0x0a, 0xf3, 0xb6, 0xd6, 0x46, 0x16, 0xd2, 0x4c, 0xea, 0xbd, 0xd0, 0xe6, - 0x70, 0x21, 0x14, 0xac, 0xe9, 0xa7, 0x1b, 0xac, 0xea, 0x76, 0xdc, 0xb0, 0x8d, 0x51, 0xc3, 0xe4, - 0xc4, 0xd6, 0xfd, 0x7b, 0x20, 0xbe, 0xc1, 0x5c, 0xfb, 0x79, 0xca, 0x1d, 0x3f, 0x3b, 0x5e, 0xea, - 0xd8, 0x59, 0xf6, 0xc6, 0x21, 0x71, 0x4f, 0xd0, 0x5d, 0xed, 0xbb, 0x9f, 0xe1, 0xcf, 0xb5, 0x6f, - 0xef, 0xf3, 0x9b, 0x93, 0xfa, 0xcc, 0x2c, 0x7e, 0x25, 0x72, 0x06, 0x59, 0x0f, 0x62, 0xc9, 0x1d, - 0x75, 0x29, 0xee, 0x04, 0x46, 0x56, 0x1e, 0xbc, 0x08, 0xa7, 0x1b, 0x44, 0xe7, 0xbe, 0x05, 0x90, - 0x4b, 0xf8, 0x92, 0x51, 0x49, 0x3d, 0x2c, 0x89, 0x77, 0x35, 0x5f, 0x9d, 0x1c, 0xc3, 0x26, 0xef, - 0x4f, 0x00, 0x2e, 0x8e, 0xbb, 0xdc, 0xdf, 0xcb, 0xe2, 0x1d, 0x03, 0xe4, 0x3f, 0xb8, 0x23, 0x90, - 0xa9, 0xfa, 0x05, 0xc0, 0x95, 0xb4, 0x9b, 0xee, 0xfd, 0xdb, 0x3e, 0x20, 0x01, 0xcc, 0xd7, 0x9f, - 0x00, 0xcc, 0x14, 0x7e, 0x0d, 0x60, 0x21, 0x7e, 0x89, 0x94, 0xb3, 0xa8, 0x63, 0x10, 0x7e, 0x7b, - 0x62, 0x08, 0xd3, 0x60, 0xc3, 0x97, 0x22, 0x03, 0xfb, 0x8d, 0x2c, 0xaa, 0x70, 0x35, 0xff, 0xf6, - 0x24, 0xd5, 0xec, 0x99, 0x4e, 0x6c, 0x13, 0x46, 0x67, 0x66, 0x6c, 0xe3, 0x98, 0xec, 0xd8, 0x8e, - 0x1f, 0x47, 0x6e, 0x40, 0xd2, 0x66, 0x51, 0x66, 0x40, 0x52, 0xc0, 0xd9, 0x01, 0xb9, 0xc5, 0x39, - 0xe7, 0x5f, 0xf8, 0xca, 0x99, 0xcd, 0xb5, 0x8f, 0xcf, 0x07, 0x02, 0xb8, 0x1c, 0x08, 0xe0, 0x6a, - 0x20, 0x80, 0x7f, 0x07, 0x02, 0xf8, 0xf1, 0x5a, 0xc8, 0x5d, 0x5d, 0x0b, 0xb9, 0xbf, 0xae, 0x85, - 0xdc, 0xe7, 0xe5, 0xd4, 0x01, 0x74, 0x12, 0xbd, 0xe3, 0xdc, 0x79, 0xd4, 0x9a, 0x71, 0x7f, 0xa6, - 0xbc, 0xf5, 0x38, 0x00, 0x00, 0xff, 0xff, 0x5d, 0x28, 0x9c, 0xe1, 0x98, 0x0d, 0x00, 0x00, + // 922 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x41, 0x6f, 0xe3, 0x44, + 0x14, 0xce, 0xa4, 0xa2, 0x28, 0xb3, 0x48, 0xdb, 0x84, 0xa2, 0xb6, 0xde, 0xc5, 0x59, 0x79, 0xa1, + 0x44, 0x11, 0x6b, 0x2b, 0x01, 0x81, 0x36, 0x1c, 0x80, 0x64, 0xb7, 0x12, 0x07, 0x8b, 0x55, 0x2a, + 0x40, 0xe2, 0x12, 0x39, 0xf1, 0xe0, 0x8e, 0x88, 0x3d, 0x96, 0x67, 0xd2, 0x6c, 0x6e, 0x0b, 0xe2, + 0x80, 0x90, 0x90, 0x90, 0xb8, 0x71, 0x61, 0x6f, 0xac, 0xd8, 0x03, 0x39, 0xf0, 0x23, 0xf6, 0x82, + 0x54, 0x71, 0xe2, 0x04, 0x28, 0x45, 0x0a, 0x12, 0x5c, 0xb9, 0x23, 0xdb, 0x63, 0xc7, 0x8e, 0x1d, + 0xbb, 0x29, 0x95, 0xe8, 0xa5, 0xad, 0x66, 0xde, 0xf7, 0xe6, 0x7b, 0xdf, 0x7c, 0xf3, 0x9e, 0x0b, + 0x5f, 0x18, 0x10, 0x6a, 0x12, 0xaa, 0xe8, 0x98, 0x32, 0x07, 0xf7, 0x47, 0x0c, 0x13, 0x4b, 0x39, + 0x6e, 0xf4, 0x11, 0xd3, 0x1a, 0x0a, 0xbb, 0x2f, 0xdb, 0x0e, 0x61, 0xa4, 0x72, 0xcd, 0x8f, 0x92, + 0xa3, 0x51, 0x32, 0x8f, 0x12, 0xb6, 0x0d, 0x62, 0x10, 0x2f, 0x4e, 0x71, 0xff, 0xf2, 0x21, 0x82, + 0xc8, 0x13, 0xf7, 0x35, 0x8a, 0xc2, 0x84, 0x03, 0x82, 0x2d, 0xbe, 0xbf, 0xe7, 0xef, 0xf7, 0x7c, + 0x20, 0xcf, 0xef, 0x6f, 0xed, 0x70, 0xa8, 0x49, 0x0d, 0xe5, 0xb8, 0xe1, 0xfe, 0xe2, 0x1b, 0x65, + 0xcd, 0xc4, 0x16, 0x51, 0xbc, 0x9f, 0x7c, 0x49, 0xce, 0xe2, 0x1f, 0xa3, 0xeb, 0xc5, 0x4b, 0x7f, + 0x01, 0xf8, 0x9c, 0x4a, 0x8d, 0x43, 0xc4, 0x3e, 0xc0, 0xec, 0x48, 0x77, 0xb4, 0xf1, 0xdb, 0xba, + 0xee, 0x20, 0x4a, 0x2b, 0x77, 0x61, 0x59, 0x47, 0x43, 0x64, 0x68, 0x8c, 0x38, 0x3d, 0xcd, 0x5f, + 0xdc, 0x05, 0x37, 0x40, 0xad, 0xd4, 0xde, 0xfd, 0xf9, 0xc7, 0x5b, 0xdb, 0x9c, 0x22, 0x0f, 0x3f, + 0x64, 0x0e, 0xb6, 0x8c, 0xee, 0x56, 0x08, 0x09, 0xd2, 0x74, 0xe0, 0xd6, 0x98, 0x67, 0x0e, 0xb3, + 0x14, 0x73, 0xb2, 0x5c, 0x1d, 0xc7, 0xb9, 0xb4, 0x0e, 0x3e, 0x7f, 0x58, 0x2d, 0xfc, 0xf9, 0xb0, + 0x5a, 0xf8, 0x74, 0x3e, 0xad, 0x27, 0x69, 0x7d, 0x31, 0x9f, 0xd6, 0x6f, 0xfa, 0x99, 0x6e, 0x51, + 0xfd, 0x63, 0x45, 0xa5, 0x86, 0x4a, 0x74, 0xfc, 0xd1, 0x64, 0xa9, 0x26, 0xa9, 0x0a, 0x9f, 0x4f, + 0x2d, 0xb6, 0x8b, 0xa8, 0x4d, 0x2c, 0x8a, 0xa4, 0x7f, 0x00, 0x14, 0x54, 0x6a, 0x04, 0xdb, 0x77, + 0x82, 0x93, 0xba, 0x68, 0xac, 0x39, 0xfa, 0x45, 0x69, 0x72, 0x17, 0x96, 0x8f, 0xb5, 0x21, 0xd6, + 0x63, 0x69, 0xf2, 0x44, 0xd9, 0x0a, 0x21, 0x81, 0x2a, 0xef, 0xe4, 0xab, 0xb2, 0x1f, 0x57, 0x65, + 0xa9, 0x2e, 0x4c, 0x2c, 0xbf, 0x30, 0xe9, 0x3b, 0x00, 0xa5, 0xd5, 0x75, 0x07, 0xf2, 0x54, 0x1e, + 0x00, 0xb8, 0xa9, 0x99, 0x64, 0x64, 0xb1, 0x5d, 0x70, 0x63, 0xa3, 0x76, 0xa5, 0xb9, 0xc7, 0xfd, + 0x26, 0xbb, 0xb6, 0x0e, 0x5e, 0x80, 0xdc, 0x21, 0xd8, 0x6a, 0xab, 0x4f, 0x7e, 0xad, 0x16, 0xbe, + 0xff, 0xad, 0x5a, 0x33, 0x30, 0x3b, 0x1a, 0xf5, 0xe5, 0x01, 0x31, 0xb9, 0xad, 0x95, 0x08, 0x29, + 0x36, 0xb1, 0x11, 0xf5, 0x00, 0xf4, 0x9b, 0xf9, 0xb4, 0xfe, 0xac, 0x35, 0x1a, 0x0e, 0x7b, 0x74, + 0x88, 0x07, 0xa8, 0xa7, 0xd1, 0x1e, 0x32, 0x6d, 0x36, 0x79, 0x34, 0x9f, 0xd6, 0x41, 0x97, 0x9f, + 0x2b, 0xfd, 0x00, 0xa0, 0x18, 0x61, 0xfa, 0x7e, 0x20, 0x4a, 0x87, 0x98, 0x26, 0xa6, 0x14, 0x13, + 0x2b, 0x5d, 0x5e, 0xb0, 0xb6, 0xbc, 0x71, 0xd3, 0x25, 0x32, 0xa6, 0x98, 0x2e, 0x42, 0x6a, 0x41, + 0x47, 0x7a, 0x0c, 0xe0, 0x7e, 0x36, 0xe3, 0xcb, 0xa4, 0xef, 0x97, 0x45, 0xb8, 0xad, 0x52, 0xe3, + 0x60, 0x64, 0xe9, 0x2e, 0xc1, 0x91, 0x85, 0xd9, 0xe4, 0x1e, 0x21, 0xc3, 0x4b, 0xc0, 0xad, 0xf2, + 0x1a, 0x2c, 0xe9, 0xc8, 0x26, 0x14, 0x33, 0xe2, 0xe4, 0xbe, 0x97, 0x45, 0x68, 0xab, 0x15, 0xbd, + 0xc9, 0xc5, 0xba, 0x7b, 0x83, 0xd5, 0xf8, 0x0d, 0x26, 0xca, 0x96, 0x44, 0x78, 0x3d, 0x6d, 0x3d, + 0xec, 0x18, 0x3f, 0x01, 0x78, 0x55, 0xa5, 0xc6, 0x7b, 0xb6, 0xae, 0x31, 0x74, 0x4f, 0x73, 0x34, + 0x93, 0xba, 0x3c, 0xb5, 0x11, 0x3b, 0x22, 0x0e, 0x66, 0x93, 0x5c, 0xe3, 0x2d, 0x42, 0x2b, 0x07, + 0x70, 0xd3, 0xf6, 0x32, 0x78, 0xc5, 0x5d, 0x69, 0xde, 0x94, 0x33, 0xe6, 0x8c, 0xec, 0x1f, 0xd6, + 0x2e, 0xb9, 0x5a, 0x73, 0x9d, 0x7c, 0x74, 0xab, 0xe5, 0xd5, 0x19, 0xe6, 0x75, 0xeb, 0x7c, 0x29, + 0x52, 0x67, 0x6c, 0x36, 0x2c, 0x71, 0x97, 0xf6, 0xe0, 0xce, 0xd2, 0x52, 0x58, 0xea, 0xe3, 0xa2, + 0x37, 0x2b, 0x62, 0x3a, 0x1c, 0xda, 0xc8, 0xd2, 0xcf, 0x5d, 0xf0, 0x75, 0x58, 0x72, 0xd0, 0x00, + 0xdb, 0x18, 0x59, 0xcc, 0xbf, 0xd0, 0xee, 0x62, 0x21, 0xea, 0xb8, 0x8d, 0xff, 0xc7, 0x71, 0xad, + 0xdb, 0x49, 0x25, 0xf7, 0x97, 0x95, 0x54, 0x52, 0x35, 0xe1, 0xb3, 0x26, 0xb9, 0x11, 0xca, 0xf9, + 0x47, 0xd1, 0xeb, 0x64, 0x77, 0x7c, 0x3b, 0x86, 0x6d, 0xc1, 0x6f, 0xb9, 0xd4, 0x7b, 0x73, 0xe7, + 0xd5, 0xf5, 0x62, 0x06, 0xcc, 0x65, 0xb8, 0x80, 0xb7, 0x62, 0x4f, 0x37, 0x76, 0x11, 0x2f, 0xa6, + 0x5d, 0xc4, 0x42, 0x4d, 0xae, 0xa3, 0x54, 0xf3, 0xba, 0x6f, 0x86, 0xca, 0xc1, 0x85, 0x34, 0xff, + 0x7e, 0x1a, 0x6e, 0xa8, 0xd4, 0xa8, 0x7c, 0x06, 0x60, 0x25, 0xe5, 0x83, 0xa8, 0x99, 0xf9, 0x1a, + 0x53, 0xbf, 0x2b, 0x84, 0xd6, 0xfa, 0x98, 0x70, 0x18, 0x7c, 0x0d, 0xe0, 0xce, 0xaa, 0x0f, 0x91, + 0xd7, 0xf3, 0xf2, 0xae, 0x00, 0x0a, 0x6f, 0x9e, 0x13, 0x18, 0xb2, 0xfa, 0x16, 0xc0, 0x6b, 0x59, + 0xc3, 0xf7, 0x8d, 0xb3, 0x1e, 0x90, 0x02, 0x16, 0x3a, 0xff, 0x01, 0x1c, 0x32, 0xfc, 0x04, 0xc0, + 0x72, 0x72, 0x7c, 0x35, 0xf2, 0x52, 0x27, 0x20, 0xc2, 0xed, 0xb5, 0x21, 0x21, 0x07, 0x07, 0x3e, + 0x13, 0x9b, 0x08, 0x2f, 0xe7, 0xa5, 0x8a, 0x46, 0x0b, 0xaf, 0xae, 0x13, 0x1d, 0x9e, 0xe9, 0xda, + 0x36, 0xa5, 0x37, 0xe7, 0xda, 0x36, 0x89, 0xc9, 0xb7, 0xed, 0xea, 0xb6, 0xe6, 0x19, 0x24, 0xab, + 0xa7, 0xe5, 0x1a, 0x24, 0x03, 0x9c, 0x6f, 0x90, 0x33, 0xbc, 0x73, 0xe1, 0xa9, 0x07, 0x6e, 0x8b, + 0x69, 0xbf, 0xfb, 0x68, 0x26, 0x82, 0x27, 0x33, 0x11, 0x9c, 0xcc, 0x44, 0xf0, 0xfb, 0x4c, 0x04, + 0x5f, 0x9d, 0x8a, 0x85, 0x93, 0x53, 0xb1, 0xf0, 0xcb, 0xa9, 0x58, 0xf8, 0xb0, 0x91, 0xd9, 0xc7, + 0xee, 0xc7, 0x87, 0xa8, 0xd7, 0xd6, 0xfa, 0x9b, 0xde, 0xbf, 0x54, 0xaf, 0xfc, 0x1b, 0x00, 0x00, + 0xff, 0xff, 0x64, 0x0b, 0x1d, 0xdd, 0x44, 0x0e, 0x00, 0x00, } func (this *MsgSetWithdrawAddressResponse) Equal(that interface{}) bool { diff --git a/x/feegrant/feegrant.pb.go b/x/feegrant/feegrant.pb.go index e7a598d18792..e75560b57f92 100644 --- a/x/feegrant/feegrant.pb.go +++ b/x/feegrant/feegrant.pb.go @@ -295,48 +295,49 @@ func init() { } var fileDescriptor_7279582900c30aea = []byte{ - // 645 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xbf, 0x6f, 0xd3, 0x4e, - 0x14, 0x8f, 0x9b, 0xb6, 0x5f, 0xe5, 0xf2, 0xa5, 0xb4, 0xa6, 0x12, 0x4e, 0x85, 0xec, 0x2a, 0x12, - 0x90, 0x56, 0xaa, 0xad, 0x16, 0xb1, 0x74, 0x6a, 0x5c, 0x44, 0x01, 0xb5, 0x52, 0xe5, 0x32, 0x21, - 0xa1, 0xe8, 0x6c, 0x5f, 0xcd, 0xa9, 0xb1, 0xcf, 0xf8, 0x1c, 0x68, 0x18, 0x98, 0x11, 0x03, 0xca, - 0xc8, 0xc8, 0x88, 0x98, 0x3a, 0x94, 0xff, 0xa1, 0x62, 0x40, 0x15, 0x13, 0x13, 0x41, 0xc9, 0xd0, - 0x99, 0xff, 0x00, 0xf9, 0xee, 0xec, 0xb8, 0x09, 0x15, 0xad, 0x44, 0x97, 0xc4, 0xf7, 0xee, 0xbd, - 0xcf, 0x8f, 0xf7, 0x9e, 0x65, 0x70, 0xcb, 0x21, 0xd4, 0x27, 0xd4, 0xd8, 0x45, 0xc8, 0x8b, 0x60, - 0x10, 0x1b, 0x2f, 0x96, 0x6d, 0x14, 0xc3, 0xe5, 0x2c, 0xa0, 0x87, 0x11, 0x89, 0x89, 0x7c, 0x9d, - 0xe7, 0xe9, 0x59, 0x58, 0xe4, 0xcd, 0xcd, 0x7a, 0xc4, 0x23, 0x2c, 0xc7, 0x48, 0x9e, 0x78, 0xfa, - 0x5c, 0xc5, 0x23, 0xc4, 0x6b, 0x22, 0x83, 0x9d, 0xec, 0xd6, 0xae, 0x01, 0x83, 0x76, 0x7a, 0xc5, - 0x91, 0x1a, 0xbc, 0x46, 0xc0, 0xf2, 0x2b, 0x55, 0x88, 0xb1, 0x21, 0x45, 0x99, 0x10, 0x87, 0xe0, - 0x40, 0xdc, 0xcf, 0x40, 0x1f, 0x07, 0xc4, 0x60, 0xbf, 0x22, 0xa4, 0x0d, 0x13, 0xc5, 0xd8, 0x47, - 0x34, 0x86, 0x7e, 0x98, 0x62, 0x0e, 0x27, 0xb8, 0xad, 0x08, 0xc6, 0x98, 0x08, 0xcc, 0xea, 0xbb, - 0x31, 0x30, 0x65, 0x42, 0x8a, 0x9d, 0x7a, 0xb3, 0x49, 0x5e, 0xc2, 0xc0, 0x41, 0xf2, 0x73, 0x50, - 0xa6, 0x21, 0x0a, 0xdc, 0x46, 0x13, 0xfb, 0x38, 0x56, 0xa4, 0xf9, 0x62, 0xad, 0xbc, 0x52, 0xd1, - 0x85, 0xd4, 0x44, 0x5c, 0xea, 0x5e, 0x5f, 0x27, 0x38, 0x30, 0xef, 0x1e, 0xfd, 0xd0, 0x0a, 0x9f, - 0xba, 0x5a, 0xcd, 0xc3, 0xf1, 0xb3, 0x96, 0xad, 0x3b, 0xc4, 0x17, 0xbe, 0xc4, 0xdf, 0x12, 0x75, - 0xf7, 0x8c, 0xb8, 0x1d, 0x22, 0xca, 0x0a, 0xe8, 0xc7, 0x93, 0x83, 0x45, 0xc9, 0x02, 0x8c, 0x64, - 0x33, 0xe1, 0x90, 0xd7, 0x00, 0x40, 0xfb, 0x21, 0xe6, 0xca, 0x94, 0xb1, 0x79, 0xa9, 0x56, 0x5e, - 0x99, 0xd3, 0xb9, 0x74, 0x3d, 0x95, 0xae, 0x3f, 0x4e, 0xbd, 0x99, 0xe3, 0x9d, 0xae, 0x26, 0x59, - 0xb9, 0x9a, 0xd5, 0x8d, 0x2f, 0x87, 0x4b, 0x37, 0xcf, 0x18, 0x92, 0x7e, 0x1f, 0xa1, 0xcc, 0xde, - 0xc3, 0xb7, 0x27, 0x07, 0x8b, 0x95, 0x9c, 0xb0, 0xd3, 0xee, 0xab, 0x9f, 0xc7, 0xc1, 0xcc, 0x36, - 0x8a, 0x30, 0x71, 0xf3, 0x3d, 0x79, 0x00, 0x26, 0xec, 0x24, 0x4f, 0x91, 0x98, 0xb6, 0xdb, 0xfa, - 0x59, 0x54, 0xa7, 0xd1, 0xcc, 0x52, 0xd2, 0x1b, 0xee, 0x97, 0x03, 0xc8, 0x6b, 0x60, 0x32, 0x64, - 0xf0, 0xc2, 0x66, 0x65, 0xc4, 0xe6, 0x3d, 0x31, 0x21, 0xf3, 0x4a, 0x52, 0xfc, 0xbe, 0xab, 0x49, - 0x1c, 0x40, 0xd4, 0xc9, 0xaf, 0x81, 0xcc, 0x9f, 0x1a, 0xf9, 0x31, 0x15, 0x2f, 0x69, 0x4c, 0xd3, - 0x9c, 0x6b, 0x67, 0x30, 0xac, 0x57, 0x40, 0xc4, 0x1a, 0x0e, 0x0c, 0xb8, 0x06, 0x65, 0xfc, 0x92, - 0xd8, 0xa7, 0x38, 0xd3, 0x3a, 0x0c, 0x98, 0x00, 0x79, 0x13, 0xfc, 0x2f, 0xb8, 0x23, 0x44, 0x51, - 0xac, 0x4c, 0xfc, 0x75, 0x55, 0x58, 0x13, 0x3b, 0x59, 0x13, 0xcb, 0xbc, 0xdc, 0x4a, 0xaa, 0x57, - 0x1f, 0x5d, 0x68, 0x69, 0x6e, 0xe4, 0x84, 0x8e, 0x6c, 0x48, 0xf5, 0x97, 0x04, 0xae, 0xb1, 0x13, - 0x72, 0xb7, 0xa8, 0x37, 0xd8, 0x9c, 0xa7, 0xa0, 0x04, 0xd3, 0x83, 0xd8, 0x9e, 0xd9, 0x11, 0xb9, - 0xf5, 0xa0, 0x6d, 0x2e, 0x9c, 0x5b, 0x8c, 0x35, 0x40, 0x94, 0x17, 0xc0, 0x34, 0xe4, 0xac, 0x0d, - 0x1f, 0x51, 0x0a, 0x3d, 0x44, 0x95, 0xb1, 0xf9, 0x62, 0xad, 0x64, 0x5d, 0x15, 0xf1, 0x2d, 0x11, - 0x5e, 0xdd, 0x7e, 0xf3, 0x41, 0x2b, 0x5c, 0xc8, 0xb1, 0x9a, 0x73, 0xfc, 0x07, 0x6f, 0xd5, 0xaf, - 0x12, 0x98, 0xd8, 0x48, 0x20, 0xe4, 0x15, 0xf0, 0x1f, 0xc3, 0x42, 0x11, 0xf3, 0x58, 0x32, 0x95, - 0x6f, 0x87, 0x4b, 0xb3, 0x82, 0xa8, 0xee, 0xba, 0x11, 0xa2, 0x74, 0x27, 0x8e, 0x70, 0xe0, 0x59, - 0x69, 0xe2, 0xa0, 0x06, 0xb1, 0x57, 0xe1, 0x1c, 0x35, 0x43, 0xdd, 0x2c, 0xfe, 0xeb, 0x6e, 0x9a, - 0xcb, 0x47, 0x3d, 0x55, 0x3a, 0xee, 0xa9, 0xd2, 0xcf, 0x9e, 0x2a, 0x75, 0xfa, 0x6a, 0xe1, 0xb8, - 0xaf, 0x16, 0xbe, 0xf7, 0xd5, 0xc2, 0x13, 0xf1, 0x01, 0xa0, 0xee, 0x9e, 0x8e, 0x89, 0xb1, 0x9f, - 0x7d, 0x1f, 0xec, 0x49, 0x46, 0x7b, 0xe7, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x52, 0x13, 0x7a, - 0xee, 0x4a, 0x06, 0x00, 0x00, + // 667 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xc1, 0x4f, 0xd4, 0x4e, + 0x14, 0xde, 0x61, 0x81, 0x5f, 0x76, 0xf6, 0x27, 0x42, 0x21, 0xb1, 0x4b, 0x4c, 0x97, 0x6c, 0xa2, + 0x2e, 0x24, 0xb4, 0x01, 0x6f, 0x9c, 0xa0, 0x18, 0x51, 0x03, 0x09, 0x59, 0x3c, 0x99, 0x98, 0x66, + 0xb6, 0x1d, 0xea, 0x84, 0x76, 0xa6, 0xe9, 0xcc, 0x2a, 0xfb, 0x1f, 0xa8, 0x27, 0xe2, 0xc1, 0x18, + 0x4f, 0xde, 0x34, 0x9e, 0x38, 0xf0, 0x47, 0x10, 0x0f, 0x86, 0x78, 0xf2, 0x24, 0x06, 0x0e, 0x7b, + 0xf6, 0x3f, 0x30, 0x9d, 0x99, 0xee, 0x2e, 0x20, 0x11, 0x12, 0xc3, 0x65, 0xb7, 0xf3, 0xe6, 0x7d, + 0xdf, 0xfb, 0xbe, 0xf7, 0x5e, 0x53, 0x78, 0xdb, 0x67, 0x3c, 0x66, 0xdc, 0xd9, 0xc4, 0x38, 0x4c, + 0x11, 0x15, 0xce, 0xf3, 0xb9, 0x26, 0x16, 0x68, 0xae, 0x1b, 0xb0, 0x93, 0x94, 0x09, 0x66, 0xdc, + 0x50, 0x79, 0x76, 0x37, 0xac, 0xf3, 0x26, 0x27, 0x42, 0x16, 0x32, 0x99, 0xe3, 0x64, 0x4f, 0x2a, + 0x7d, 0xb2, 0x12, 0x32, 0x16, 0x46, 0xd8, 0x91, 0xa7, 0x66, 0x6b, 0xd3, 0x41, 0xb4, 0x9d, 0x5f, + 0x29, 0x26, 0x4f, 0x61, 0x34, 0xad, 0xba, 0xb2, 0xb4, 0x98, 0x26, 0xe2, 0xb8, 0x2b, 0xc4, 0x67, + 0x84, 0xea, 0xfb, 0x31, 0x14, 0x13, 0xca, 0x1c, 0xf9, 0xab, 0x43, 0xd5, 0xd3, 0x85, 0x04, 0x89, + 0x31, 0x17, 0x28, 0x4e, 0x72, 0xce, 0xd3, 0x09, 0x41, 0x2b, 0x45, 0x82, 0x30, 0xcd, 0x59, 0xfb, + 0x38, 0x00, 0x47, 0x5c, 0xc4, 0x89, 0xbf, 0x14, 0x45, 0xec, 0x05, 0xa2, 0x3e, 0x36, 0x5e, 0x01, + 0x58, 0xe6, 0x09, 0xa6, 0x81, 0x17, 0x91, 0x98, 0x08, 0x13, 0x4c, 0x15, 0xeb, 0xe5, 0xf9, 0x8a, + 0xad, 0xb5, 0x66, 0xea, 0x72, 0xfb, 0xf6, 0x32, 0x23, 0xd4, 0x5d, 0xdb, 0xff, 0x51, 0x2d, 0x7c, + 0x3e, 0xac, 0xd6, 0x43, 0x22, 0x9e, 0xb5, 0x9a, 0xb6, 0xcf, 0x62, 0x6d, 0x4c, 0xff, 0xcd, 0xf2, + 0x60, 0xcb, 0x11, 0xed, 0x04, 0x73, 0x09, 0xe0, 0xef, 0x3b, 0xbb, 0x33, 0xe3, 0xb4, 0x15, 0x45, + 0x1e, 0x8f, 0x88, 0x8f, 0x3d, 0xc4, 0x3d, 0x1c, 0x27, 0xa2, 0xfd, 0xa9, 0xb3, 0x3b, 0x03, 0x1a, + 0x50, 0x16, 0x5f, 0xcd, 0x6a, 0x1b, 0x8b, 0x10, 0xe2, 0xed, 0x84, 0x28, 0xc9, 0xe6, 0xc0, 0x14, + 0xa8, 0x97, 0xe7, 0x27, 0x6d, 0xe5, 0xc9, 0xce, 0x3d, 0xd9, 0x8f, 0x73, 0xd3, 0xee, 0xe0, 0xce, + 0x61, 0x15, 0x34, 0xfa, 0x30, 0x0b, 0x2b, 0x5f, 0xf6, 0x66, 0x6f, 0x9d, 0x33, 0x3d, 0xfb, 0x3e, + 0xc6, 0x5d, 0xdf, 0x0f, 0x5f, 0x77, 0x76, 0x67, 0x2a, 0x7d, 0x82, 0x4f, 0xb6, 0xa5, 0xd6, 0x19, + 0x84, 0x63, 0xeb, 0x38, 0x25, 0x2c, 0xe8, 0x6f, 0xd6, 0x03, 0x38, 0xd4, 0xcc, 0xf2, 0x4c, 0x20, + 0xb5, 0xdd, 0xb1, 0xcf, 0x2b, 0x75, 0x92, 0xcd, 0x2d, 0x65, 0x3d, 0x53, 0x7e, 0x15, 0x81, 0xb1, + 0x08, 0x87, 0x13, 0x49, 0xaf, 0x6d, 0x56, 0xce, 0xd8, 0xbc, 0xa7, 0x47, 0xe7, 0x5e, 0xcb, 0xc0, + 0xef, 0x0e, 0xab, 0x40, 0x11, 0x68, 0x9c, 0xf1, 0x16, 0x40, 0x43, 0x3d, 0x7a, 0xfd, 0xf3, 0x2b, + 0x5e, 0xf1, 0xfc, 0x46, 0x95, 0x86, 0x8d, 0xde, 0x14, 0xdf, 0x00, 0xa8, 0x83, 0x9e, 0x8f, 0xa8, + 0x12, 0x67, 0x0e, 0x5e, 0xb1, 0xac, 0x11, 0xa5, 0x60, 0x19, 0x51, 0xa9, 0xcc, 0x58, 0x85, 0xff, + 0x6b, 0x4d, 0x29, 0xe6, 0x58, 0x98, 0x43, 0x7f, 0x5d, 0x2e, 0xd9, 0xf6, 0x9d, 0x6e, 0xdb, 0xcb, + 0x0a, 0xde, 0xc8, 0xd0, 0x0b, 0x8f, 0x2e, 0xb5, 0x66, 0x37, 0xfb, 0x0c, 0x9c, 0xd9, 0xa9, 0xda, + 0x2f, 0x00, 0xc7, 0xe5, 0x09, 0x07, 0x6b, 0x3c, 0xec, 0xed, 0xda, 0x53, 0x58, 0x42, 0xf9, 0x41, + 0xef, 0xdb, 0xc4, 0x19, 0xb9, 0x4b, 0xb4, 0xed, 0x4e, 0x5f, 0x58, 0x4c, 0xa3, 0xc7, 0x68, 0x4c, + 0xc3, 0x51, 0xa4, 0xaa, 0x7a, 0x31, 0xe6, 0x1c, 0x85, 0x98, 0x9b, 0x03, 0x53, 0xc5, 0x7a, 0xa9, + 0x71, 0x5d, 0xc7, 0xd7, 0x74, 0x78, 0x61, 0xfd, 0xe5, 0x87, 0x6a, 0xe1, 0x52, 0x8e, 0xad, 0x3e, + 0xc7, 0x7f, 0xf0, 0x56, 0xfb, 0x0a, 0xe0, 0xd0, 0x4a, 0x46, 0x61, 0xcc, 0xc3, 0xff, 0x24, 0x17, + 0x4e, 0xa5, 0xc7, 0x92, 0x6b, 0x7e, 0xdb, 0x9b, 0x9d, 0xd0, 0x85, 0x96, 0x82, 0x20, 0xc5, 0x9c, + 0x6f, 0x88, 0x94, 0xd0, 0xb0, 0x91, 0x27, 0xf6, 0x30, 0x58, 0xbe, 0x3c, 0x17, 0xc0, 0x9c, 0xea, + 0x66, 0xf1, 0x5f, 0x77, 0xd3, 0x9d, 0xdb, 0x3f, 0xb2, 0xc0, 0xc1, 0x91, 0x05, 0x7e, 0x1e, 0x59, + 0x60, 0xe7, 0xd8, 0x2a, 0x1c, 0x1c, 0x5b, 0x85, 0xef, 0xc7, 0x56, 0xe1, 0x89, 0xfe, 0x96, 0xf0, + 0x60, 0xcb, 0x26, 0xcc, 0xd9, 0xee, 0x7e, 0x6a, 0x9a, 0xc3, 0xb2, 0xec, 0xdd, 0xdf, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x39, 0x59, 0xf5, 0xd3, 0x95, 0x06, 0x00, 0x00, } func (m *BasicAllowance) Marshal() (dAtA []byte, err error) { diff --git a/x/tx/rapidproto/rapidproto.go b/x/tx/rapidproto/rapidproto.go index cffa1994b9c5..f79579a1037b 100644 --- a/x/tx/rapidproto/rapidproto.go +++ b/x/tx/rapidproto/rapidproto.go @@ -30,8 +30,9 @@ type GeneratorOptions struct { // NoEmptyLists will cause the generator to not generate empty lists // Recall that an empty list will marshal (and unmarshal) to null. Some encodings may treat these states // differently. For example, in JSON, an empty list is encoded as [], while null is encoded as null. - NoEmptyLists bool - DisallowNilMessages bool + NoEmptyLists bool + DisallowNilMessages bool + GogoUnmarshalCompatibleDecimal bool } const depthLimit = 10 @@ -167,8 +168,13 @@ func (opts GeneratorOptions) genScalarFieldValue(t *rapid.T, field protoreflect. case "cosmos.Int": i32 := rapid.Int32().Draw(t, name) return protoreflect.ValueOfString(fmt.Sprintf("%d", i32)) - //default: - // t.Fatalf("unknown cosmos_proto.scalar type %s", scalar) + case "cosmos.Dec": + if opts.GogoUnmarshalCompatibleDecimal { + return protoreflect.ValueOfString("") + } + x := rapid.Int16().Draw(t, name) + y := rapid.Uint8().Draw(t, name) + return protoreflect.ValueOfString(fmt.Sprintf("%d.%d", x, y)) } } From bb2b03d29e59b30598f28b3f522b1752b47878c0 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sat, 11 Feb 2023 21:03:38 -0700 Subject: [PATCH 063/122] evidence --- codec/types/compat.go | 2 +- tests/integration/aminojson/aminojson_test.go | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/codec/types/compat.go b/codec/types/compat.go index a6f10b5833d2..ef1980fae50c 100644 --- a/codec/types/compat.go +++ b/codec/types/compat.go @@ -171,7 +171,7 @@ var _ AnyUnpacker = AminoJSONPacker{} func (a AminoJSONPacker) UnpackAny(any *Any, _ interface{}) error { if any == nil { - println("nil") + println("any is nil, what a problem!") } err := UnpackInterfaces(any.cachedValue, a) if err != nil { diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 00a852c30f98..0ab6c695095f 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -1,6 +1,8 @@ package aminojson import ( + "cosmossdk.io/x/evidence" + evidencetypes "cosmossdk.io/x/evidence/types" "fmt" "reflect" "testing" @@ -22,6 +24,7 @@ import ( consensusapi "cosmossdk.io/api/cosmos/consensus/v1" "cosmossdk.io/api/cosmos/crypto/ed25519" distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" + evidenceapi "cosmossdk.io/api/cosmos/evidence/v1beta1" govv1beta1 "cosmossdk.io/api/cosmos/gov/v1beta1" "cosmossdk.io/x/tx/aminojson" "cosmossdk.io/x/tx/rapidproto" @@ -110,13 +113,20 @@ var ( genType(&disttypes.MsgCommunityPoolSpend{}, &distapi.MsgCommunityPoolSpend{}, genOpts), genType(&disttypes.MsgDepositValidatorRewardsPool{}, &distapi.MsgDepositValidatorRewardsPool{}, genOpts), genType(&disttypes.Params{}, &distapi.Params{}, genOpts), + + // evidence + genType(&evidencetypes.Equivocation{}, &evidenceapi.Equivocation{}, genOpts.WithDisallowNil()), + genType(&evidencetypes.MsgSubmitEvidence{}, &evidenceapi.MsgSubmitEvidence{}, + genOpts.WithAnyTypes(&evidenceapi.Equivocation{}). + WithDisallowNil(). + WithInterfaceHint("cosmos.evidence.v1beta1.Evidence", &evidenceapi.Equivocation{})), } ) func TestAminoJSON_Equivalence(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig( auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, consensus.AppModuleBasic{}, - distribution.AppModuleBasic{}) + distribution.AppModuleBasic{}, evidence.AppModuleBasic{}) aj := aminojson.NewAminoJSON() for _, tt := range genTypes { From a62d3f7c490510cb9a9eb233adc54f19930c5867 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sat, 11 Feb 2023 21:17:42 -0700 Subject: [PATCH 064/122] add feegrant --- tests/integration/aminojson/aminojson_test.go | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 0ab6c695095f..e0e051dd72de 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -3,6 +3,7 @@ package aminojson import ( "cosmossdk.io/x/evidence" evidencetypes "cosmossdk.io/x/evidence/types" + feegrantmodule "cosmossdk.io/x/feegrant/module" "fmt" "reflect" "testing" @@ -25,7 +26,9 @@ import ( "cosmossdk.io/api/cosmos/crypto/ed25519" distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" evidenceapi "cosmossdk.io/api/cosmos/evidence/v1beta1" + feegrantapi "cosmossdk.io/api/cosmos/feegrant/v1beta1" govv1beta1 "cosmossdk.io/api/cosmos/gov/v1beta1" + feegranttypes "cosmossdk.io/x/feegrant" "cosmossdk.io/x/tx/aminojson" "cosmossdk.io/x/tx/rapidproto" codectypes "github.com/cosmos/cosmos-sdk/codec/types" @@ -120,13 +123,34 @@ var ( genOpts.WithAnyTypes(&evidenceapi.Equivocation{}). WithDisallowNil(). WithInterfaceHint("cosmos.evidence.v1beta1.Evidence", &evidenceapi.Equivocation{})), + + // feegrant + genType(&feegranttypes.MsgGrantAllowance{}, &feegrantapi.MsgGrantAllowance{}, + genOpts.WithDisallowNil(). + WithAnyTypes( + &feegrantapi.BasicAllowance{}, + &feegrantapi.PeriodicAllowance{}). + WithInterfaceHint("cosmos.feegrant.v1beta1.FeeAllowanceI", &feegrantapi.BasicAllowance{}). + WithInterfaceHint("cosmos.feegrant.v1beta1.FeeAllowanceI", &feegrantapi.PeriodicAllowance{}), + ), + genType(&feegranttypes.MsgRevokeAllowance{}, &feegrantapi.MsgRevokeAllowance{}, genOpts), + genType(&feegranttypes.BasicAllowance{}, &feegrantapi.BasicAllowance{}, genOpts.WithDisallowNil()), + genType(&feegranttypes.PeriodicAllowance{}, &feegrantapi.PeriodicAllowance{}, genOpts.WithDisallowNil()), + genType(&feegranttypes.AllowedMsgAllowance{}, &feegrantapi.AllowedMsgAllowance{}, + genOpts.WithDisallowNil(). + WithAnyTypes( + &feegrantapi.BasicAllowance{}, + &feegrantapi.PeriodicAllowance{}). + WithInterfaceHint("cosmos.feegrant.v1beta1.FeeAllowanceI", &feegrantapi.BasicAllowance{}). + WithInterfaceHint("cosmos.feegrant.v1beta1.FeeAllowanceI", &feegrantapi.PeriodicAllowance{}), + ), } ) func TestAminoJSON_Equivalence(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig( auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, consensus.AppModuleBasic{}, - distribution.AppModuleBasic{}, evidence.AppModuleBasic{}) + distribution.AppModuleBasic{}, evidence.AppModuleBasic{}, feegrantmodule.AppModuleBasic{}) aj := aminojson.NewAminoJSON() for _, tt := range genTypes { From 25e64ea919c0069e184fc065ad2cc0b2d26ab9f2 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sat, 11 Feb 2023 21:31:05 -0700 Subject: [PATCH 065/122] gov v1beta1 --- api/cosmos/gov/v1beta1/gov.pulsar.go | 396 +++++++++--------- api/cosmos/gov/v1beta1/tx.pulsar.go | 217 +++++----- proto/cosmos/gov/v1beta1/gov.proto | 1 + proto/cosmos/gov/v1beta1/tx.proto | 2 + tests/integration/aminojson/aminojson_test.go | 31 +- x/gov/types/v1beta1/gov.pb.go | 178 ++++---- x/gov/types/v1beta1/tx.pb.go | 96 ++--- 7 files changed, 471 insertions(+), 450 deletions(-) diff --git a/api/cosmos/gov/v1beta1/gov.pulsar.go b/api/cosmos/gov/v1beta1/gov.pulsar.go index 945c64342434..980e0000eb55 100644 --- a/api/cosmos/gov/v1beta1/gov.pulsar.go +++ b/api/cosmos/gov/v1beta1/gov.pulsar.go @@ -6170,216 +6170,216 @@ var file_cosmos_gov_v1beta1_gov_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x22, 0xa2, 0x01, 0x0a, 0x12, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x56, + 0x74, 0x6f, 0x22, 0xa7, 0x01, 0x0a, 0x12, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x54, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x6e, 0x12, 0x59, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, - 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, - 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x54, 0x65, 0x78, 0x74, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x3a, 0x3e, 0xe8, 0xa0, 0x1f, 0x01, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x8a, 0xe7, 0xb0, 0x2a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x54, 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x22, 0xd6, 0x01, 0x0a, 0x07, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x36, 0x0a, - 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, - 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xd9, 0x05, 0x0a, 0x08, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x1e, - 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x58, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x74, 0x61, 0x6c, - 0x6c, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x66, 0x69, 0x6e, - 0x61, 0x6c, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4a, 0x0a, - 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, - 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x10, 0x64, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, - 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, - 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x75, - 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, - 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x55, 0x0a, 0x11, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, - 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x76, 0x6f, 0x74, - 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x0f, - 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0x86, 0x01, 0x0a, + 0x0c, 0x54, 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3e, 0xe8, 0xa0, 0x1f, 0x01, 0xca, 0xb4, 0x2d, 0x1a, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x8a, 0xe7, 0xb0, 0x2a, 0x17, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x54, 0x65, 0x78, 0x74, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x22, 0xd6, 0x01, 0x0a, 0x07, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x49, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, + 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xd9, + 0x05, 0x0a, 0x08, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x4e, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x41, 0x6e, 0x79, 0x42, 0x1e, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x58, 0x0a, 0x12, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x5f, 0x74, 0x61, 0x6c, 0x6c, 0x79, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, + 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x10, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x4a, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x53, + 0x0a, 0x10, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x45, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x75, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x55, 0x0a, 0x11, 0x76, 0x6f, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x0d, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x3a, - 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xe9, 0x02, 0x0a, 0x0b, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4e, 0x0a, 0x03, 0x79, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, - 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, - 0x52, 0x03, 0x79, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x07, 0x61, 0x62, 0x73, 0x74, 0x61, 0x69, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, + 0x52, 0x0f, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x51, 0x0a, 0x0f, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xe9, 0x02, 0x0a, 0x0b, 0x54, + 0x61, 0x6c, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x4e, 0x0a, 0x03, 0x79, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x03, 0x79, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x07, 0x61, 0x62, + 0x73, 0x74, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, + 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x07, 0x61, 0x62, 0x73, 0x74, 0x61, + 0x69, 0x6e, 0x12, 0x4c, 0x0a, 0x02, 0x6e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, + 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, + 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x02, 0x6e, 0x6f, + 0x12, 0x5e, 0x0a, 0x0c, 0x6e, 0x6f, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x74, 0x6f, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x07, 0x61, 0x62, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x12, 0x4c, 0x0a, - 0x02, 0x6e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, - 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x02, 0x6e, 0x6f, 0x12, 0x5e, 0x0a, 0x0c, 0x6e, - 0x6f, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x5f, 0x76, 0x65, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, - 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, - 0x0a, 0x6e, 0x6f, 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x74, 0x6f, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, - 0x01, 0x22, 0xfa, 0x01, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, - 0x12, 0xea, 0xde, 0x1f, 0x02, 0x69, 0x64, 0xa2, 0xe7, 0xb0, 0x2a, 0x02, 0x69, 0x64, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, - 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, - 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x12, - 0x3a, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x02, 0x18, 0x01, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x8a, - 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x85, 0x01, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x42, 0x49, 0xc8, 0xde, 0x1f, 0x00, 0xea, 0xde, 0x1f, 0x15, 0x6d, 0x69, 0x6e, 0x5f, 0x64, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x52, 0x0a, 0x6d, 0x69, - 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x71, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x5f, - 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x28, 0xc8, 0xde, 0x1f, 0x00, 0xea, 0xde, 0x1f, 0x1c, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x2c, 0x6f, 0x6d, 0x69, 0x74, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x98, 0xdf, 0x1f, 0x01, 0x52, 0x10, 0x6d, 0x61, 0x78, 0x44, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0x73, 0x0a, 0x0c, 0x56, - 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x63, 0x0a, 0x0d, 0x76, - 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x23, 0xc8, - 0xde, 0x1f, 0x00, 0xea, 0xde, 0x1f, 0x17, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x98, 0xdf, - 0x1f, 0x01, 0x52, 0x0c, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x12, 0x5a, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, - 0x42, 0x42, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, - 0xea, 0xde, 0x1f, 0x10, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0x52, 0x06, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x12, 0x63, 0x0a, 0x09, - 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, - 0x45, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x0a, 0x6e, 0x6f, 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x74, 0x6f, + 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xfa, 0x01, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, + 0x33, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x12, 0xea, 0xde, 0x1f, 0x02, 0x69, 0x64, 0xa2, 0xe7, 0xb0, 0x2a, + 0x02, 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76, + 0x6f, 0x74, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, + 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x02, 0x18, 0x01, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x4b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x56, + 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x04, 0xe8, + 0xa0, 0x1f, 0x00, 0x22, 0x8a, 0x02, 0x0a, 0x0d, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x85, 0x01, 0x0a, 0x0b, 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x49, 0xc8, 0xde, 0x1f, 0x00, 0xea, 0xde, 0x1f, 0x15, + 0x6d, 0x69, 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x2c, 0x6f, 0x6d, 0x69, 0x74, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xea, - 0xde, 0x1f, 0x13, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x2c, 0x6f, 0x6d, 0x69, - 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, - 0x64, 0x12, 0x71, 0x0a, 0x0e, 0x76, 0x65, 0x74, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, - 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x4a, 0xc8, 0xde, 0x1f, 0x00, 0xda, - 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xea, 0xde, 0x1f, 0x18, 0x76, 0x65, 0x74, - 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x2c, 0x6f, 0x6d, 0x69, 0x74, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x0d, 0x76, 0x65, 0x74, 0x6f, 0x54, 0x68, 0x72, 0x65, 0x73, - 0x68, 0x6f, 0x6c, 0x64, 0x2a, 0xe6, 0x01, 0x0a, 0x0a, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x17, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, - 0x1a, 0x0f, 0x8a, 0x9d, 0x20, 0x0b, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x22, 0x0a, 0x0f, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x59, 0x45, 0x53, 0x10, 0x01, 0x1a, 0x0d, 0x8a, 0x9d, 0x20, 0x09, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x59, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x13, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, - 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x42, 0x53, 0x54, 0x41, 0x49, 0x4e, 0x10, 0x02, 0x1a, 0x11, - 0x8a, 0x9d, 0x20, 0x0d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x62, 0x73, 0x74, 0x61, 0x69, - 0x6e, 0x12, 0x20, 0x0a, 0x0e, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x4e, 0x4f, 0x10, 0x03, 0x1a, 0x0c, 0x8a, 0x9d, 0x20, 0x08, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x6f, 0x12, 0x32, 0x0a, 0x18, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, - 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, 0x56, 0x45, 0x54, 0x4f, 0x10, - 0x04, 0x1a, 0x14, 0x8a, 0x9d, 0x20, 0x10, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x57, - 0x69, 0x74, 0x68, 0x56, 0x65, 0x74, 0x6f, 0x1a, 0x04, 0x88, 0xa3, 0x1e, 0x00, 0x2a, 0xcc, 0x02, - 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x2e, 0x0a, 0x1b, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, - 0x00, 0x1a, 0x0d, 0x8a, 0x9d, 0x20, 0x09, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x69, 0x6c, - 0x12, 0x3b, 0x0a, 0x1e, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x5f, 0x50, 0x45, 0x52, 0x49, - 0x4f, 0x44, 0x10, 0x01, 0x1a, 0x17, 0x8a, 0x9d, 0x20, 0x13, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x39, 0x0a, - 0x1d, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x56, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x45, 0x52, 0x49, 0x4f, 0x44, 0x10, 0x02, - 0x1a, 0x16, 0x8a, 0x9d, 0x20, 0x12, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x6f, 0x74, 0x69, - 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x2c, 0x0a, 0x16, 0x50, 0x52, 0x4f, 0x50, - 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x41, 0x53, 0x53, - 0x45, 0x44, 0x10, 0x03, 0x1a, 0x10, 0x8a, 0x9d, 0x20, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x18, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, - 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, - 0x45, 0x44, 0x10, 0x04, 0x1a, 0x12, 0x8a, 0x9d, 0x20, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x16, 0x50, 0x52, 0x4f, 0x50, - 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, - 0x45, 0x44, 0x10, 0x05, 0x1a, 0x10, 0x8a, 0x9d, 0x20, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x1a, 0x04, 0x88, 0xa3, 0x1e, 0x00, 0x42, 0xc0, 0x01, 0x0a, - 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x08, 0x47, 0x6f, 0x76, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, - 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x47, 0x6f, 0x76, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, - 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, - 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x47, - 0x6f, 0x76, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xc8, 0xe1, 0x1e, 0x00, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x73, 0x52, 0x0a, 0x6d, 0x69, 0x6e, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x71, 0x0a, + 0x12, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x70, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x28, 0xc8, 0xde, 0x1f, 0x00, 0xea, 0xde, 0x1f, 0x1c, 0x6d, 0x61, + 0x78, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x98, 0xdf, 0x1f, 0x01, 0x52, 0x10, + 0x6d, 0x61, 0x78, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x22, 0x73, 0x0a, 0x0c, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x63, 0x0a, 0x0d, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x23, 0xc8, 0xde, 0x1f, 0x00, 0xea, 0xde, 0x1f, 0x17, 0x76, 0x6f, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x98, 0xdf, 0x1f, 0x01, 0x52, 0x0c, 0x76, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x22, 0xc1, 0x02, 0x0a, 0x0b, 0x54, 0x61, 0x6c, 0x6c, 0x79, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x5a, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x42, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x44, 0x65, 0x63, 0xea, 0xde, 0x1f, 0x10, 0x71, 0x75, 0x6f, 0x72, 0x75, 0x6d, 0x2c, + 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x06, 0x71, 0x75, 0x6f, 0x72, 0x75, + 0x6d, 0x12, 0x63, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x42, 0x45, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x44, 0x65, 0x63, 0xea, 0xde, 0x1f, 0x13, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x09, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x71, 0x0a, 0x0e, 0x76, 0x65, 0x74, 0x6f, 0x5f, 0x74, + 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x4a, + 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xea, 0xde, + 0x1f, 0x18, 0x76, 0x65, 0x74, 0x6f, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x2c, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x52, 0x0d, 0x76, 0x65, 0x74, 0x6f, + 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x2a, 0xe6, 0x01, 0x0a, 0x0a, 0x56, 0x6f, + 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x17, 0x56, 0x4f, 0x54, 0x45, + 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x0f, 0x8a, 0x9d, 0x20, 0x0b, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x22, 0x0a, 0x0f, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, + 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x59, 0x45, 0x53, 0x10, 0x01, 0x1a, 0x0d, 0x8a, 0x9d, 0x20, + 0x09, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x59, 0x65, 0x73, 0x12, 0x2a, 0x0a, 0x13, 0x56, 0x4f, + 0x54, 0x45, 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x42, 0x53, 0x54, 0x41, 0x49, + 0x4e, 0x10, 0x02, 0x1a, 0x11, 0x8a, 0x9d, 0x20, 0x0d, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x62, 0x73, 0x74, 0x61, 0x69, 0x6e, 0x12, 0x20, 0x0a, 0x0e, 0x56, 0x4f, 0x54, 0x45, 0x5f, 0x4f, + 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x10, 0x03, 0x1a, 0x0c, 0x8a, 0x9d, 0x20, 0x08, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x12, 0x32, 0x0a, 0x18, 0x56, 0x4f, 0x54, 0x45, + 0x5f, 0x4f, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x5f, 0x57, 0x49, 0x54, 0x48, 0x5f, + 0x56, 0x45, 0x54, 0x4f, 0x10, 0x04, 0x1a, 0x14, 0x8a, 0x9d, 0x20, 0x10, 0x4f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x4e, 0x6f, 0x57, 0x69, 0x74, 0x68, 0x56, 0x65, 0x74, 0x6f, 0x1a, 0x04, 0x88, 0xa3, + 0x1e, 0x00, 0x2a, 0xcc, 0x02, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2e, 0x0a, 0x1b, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, + 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x0d, 0x8a, 0x9d, 0x20, 0x09, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x4e, 0x69, 0x6c, 0x12, 0x3b, 0x0a, 0x1e, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, + 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, 0x50, 0x4f, 0x53, 0x49, 0x54, + 0x5f, 0x50, 0x45, 0x52, 0x49, 0x4f, 0x44, 0x10, 0x01, 0x1a, 0x17, 0x8a, 0x9d, 0x20, 0x13, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x50, 0x65, 0x72, 0x69, + 0x6f, 0x64, 0x12, 0x39, 0x0a, 0x1d, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x56, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x45, 0x52, + 0x49, 0x4f, 0x44, 0x10, 0x02, 0x1a, 0x16, 0x8a, 0x9d, 0x20, 0x12, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x56, 0x6f, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x2c, 0x0a, + 0x16, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x50, 0x41, 0x53, 0x53, 0x45, 0x44, 0x10, 0x03, 0x1a, 0x10, 0x8a, 0x9d, 0x20, 0x0c, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12, 0x30, 0x0a, 0x18, 0x50, + 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, + 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x04, 0x1a, 0x12, 0x8a, 0x9d, 0x20, 0x0e, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x2c, 0x0a, + 0x16, 0x50, 0x52, 0x4f, 0x50, 0x4f, 0x53, 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x1a, 0x10, 0x8a, 0x9d, 0x20, 0x0c, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x1a, 0x04, 0x88, 0xa3, 0x1e, + 0x00, 0x42, 0xc0, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x08, 0x47, 0x6f, + 0x76, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x67, 0x6f, + 0x76, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, + 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x47, 0x6f, 0x76, 0x2e, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xca, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x3a, 0x3a, 0x47, 0x6f, 0x76, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xc8, 0xe1, 0x1e, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/gov/v1beta1/tx.pulsar.go b/api/cosmos/gov/v1beta1/tx.pulsar.go index 87d4a9edc9db..3df1133e99f4 100644 --- a/api/cosmos/gov/v1beta1/tx.pulsar.go +++ b/api/cosmos/gov/v1beta1/tx.pulsar.go @@ -4228,119 +4228,122 @@ var file_cosmos_gov_v1beta1_tx_proto_rawDesc = []byte{ 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, - 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcc, 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, + 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe5, 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x4e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x1e, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, - 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x3a, 0x36, - 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x08, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x22, 0x52, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x07, 0x4d, - 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, - 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, - 0x29, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, - 0x74, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, - 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, - 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf8, 0x01, - 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, - 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x31, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, - 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1a, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x56, - 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x9b, 0x02, 0x0a, 0x0a, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, - 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, - 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, - 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x34, 0x88, 0xa0, 0x1f, - 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x80, 0xdc, 0x20, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x64, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x15, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x22, 0x14, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf3, 0x02, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, - 0x66, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x12, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, - 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x1a, 0x23, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x60, 0x0a, 0x0c, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, - 0x64, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, - 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x07, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x1e, + 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x91, 0x01, + 0x0a, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, + 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, + 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x3a, 0x36, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, + 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x8a, 0xe7, + 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, + 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x22, + 0x52, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, + 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x49, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, + 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, + 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x29, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, + 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, + 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, + 0x6f, 0x74, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x56, 0x6f, + 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, + 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, + 0x72, 0x12, 0x4b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, + 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x31, + 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, + 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, + 0x64, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb4, 0x02, 0x0a, + 0x0a, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, + 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x49, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, + 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, + 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x34, 0x88, + 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x80, 0xdc, 0x20, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, + 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x15, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf3, 0x02, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x12, 0x66, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x12, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x56, 0x6f, 0x74, + 0x65, 0x12, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x1a, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x1a, 0x26, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xbb, 0x01, - 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, - 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x47, 0x6f, 0x76, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, - 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, - 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x47, - 0x6f, 0x76, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0c, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x65, 0x64, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x07, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, + 0xbb, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, + 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, + 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, + 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x47, 0x6f, 0x76, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xca, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, + 0x6f, 0x76, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, + 0x3a, 0x47, 0x6f, 0x76, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/gov/v1beta1/gov.proto b/proto/cosmos/gov/v1beta1/gov.proto index e35c93f4edf0..37b4e8b2ce3e 100644 --- a/proto/cosmos/gov/v1beta1/gov.proto +++ b/proto/cosmos/gov/v1beta1/gov.proto @@ -40,6 +40,7 @@ message WeightedVoteOption { string weight = 2 [ (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", + (amino.dont_omitempty) = true, (gogoproto.nullable) = false ]; } diff --git a/proto/cosmos/gov/v1beta1/tx.proto b/proto/cosmos/gov/v1beta1/tx.proto index cf1acc9418cc..e0b603182622 100644 --- a/proto/cosmos/gov/v1beta1/tx.proto +++ b/proto/cosmos/gov/v1beta1/tx.proto @@ -46,6 +46,7 @@ message MsgSubmitProposal { repeated cosmos.base.v1beta1.Coin initial_deposit = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -124,6 +125,7 @@ message MsgDeposit { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index e0e051dd72de..e3452aed1ffe 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -5,6 +5,7 @@ import ( evidencetypes "cosmossdk.io/x/evidence/types" feegrantmodule "cosmossdk.io/x/feegrant/module" "fmt" + "github.com/cosmos/cosmos-sdk/x/gov" "reflect" "testing" "time" @@ -27,7 +28,7 @@ import ( distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" evidenceapi "cosmossdk.io/api/cosmos/evidence/v1beta1" feegrantapi "cosmossdk.io/api/cosmos/feegrant/v1beta1" - govv1beta1 "cosmossdk.io/api/cosmos/gov/v1beta1" + gov_v1beta1_api "cosmossdk.io/api/cosmos/gov/v1beta1" feegranttypes "cosmossdk.io/x/feegrant" "cosmossdk.io/x/tx/aminojson" "cosmossdk.io/x/tx/rapidproto" @@ -47,7 +48,7 @@ import ( consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types" "github.com/cosmos/cosmos-sdk/x/distribution" disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" - govtypes "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" + gov_v1beta1_types "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" ) type generatedType struct { @@ -144,13 +145,25 @@ var ( WithInterfaceHint("cosmos.feegrant.v1beta1.FeeAllowanceI", &feegrantapi.BasicAllowance{}). WithInterfaceHint("cosmos.feegrant.v1beta1.FeeAllowanceI", &feegrantapi.PeriodicAllowance{}), ), + + // gov v1beta1 + genType(&gov_v1beta1_types.MsgSubmitProposal{}, &gov_v1beta1_api.MsgSubmitProposal{}, + genOpts.WithAnyTypes(&gov_v1beta1_api.TextProposal{}). + WithDisallowNil(). + WithInterfaceHint("cosmos.gov.v1beta1.Content", &gov_v1beta1_api.TextProposal{}), + ), + genType(&gov_v1beta1_types.MsgDeposit{}, &gov_v1beta1_api.MsgDeposit{}, genOpts), + genType(&gov_v1beta1_types.MsgVote{}, &gov_v1beta1_api.MsgVote{}, genOpts), + genType(&gov_v1beta1_types.MsgVoteWeighted{}, &gov_v1beta1_api.MsgVoteWeighted{}, genOpts), + genType(&gov_v1beta1_types.TextProposal{}, &gov_v1beta1_api.TextProposal{}, genOpts), } ) func TestAminoJSON_Equivalence(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig( auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, consensus.AppModuleBasic{}, - distribution.AppModuleBasic{}, evidence.AppModuleBasic{}, feegrantmodule.AppModuleBasic{}) + distribution.AppModuleBasic{}, evidence.AppModuleBasic{}, feegrantmodule.AppModuleBasic{}, + gov.AppModuleBasic{}) aj := aminojson.NewAminoJSON() for _, tt := range genTypes { @@ -275,17 +288,17 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &cryptotypes.PubKey{Key: []byte("key")}, pulsar: &ed25519.PubKey{Key: []byte("key")}, }, "consensus/evidence_params/duration": { - gogo: &govtypes.VotingParams{VotingPeriod: 1e9 + 7}, - pulsar: &govv1beta1.VotingParams{VotingPeriod: &durationpb.Duration{Seconds: 1, Nanos: 7}}, + gogo: &gov_v1beta1_types.VotingParams{VotingPeriod: 1e9 + 7}, + pulsar: &gov_v1beta1_api.VotingParams{VotingPeriod: &durationpb.Duration{Seconds: 1, Nanos: 7}}, }, "consensus/evidence_params/big_duration": { - gogo: &govtypes.VotingParams{VotingPeriod: time.Duration(rapidproto.MaxDurationSeconds*1e9) + 999999999}, - pulsar: &govv1beta1.VotingParams{VotingPeriod: &durationpb.Duration{ + gogo: &gov_v1beta1_types.VotingParams{VotingPeriod: time.Duration(rapidproto.MaxDurationSeconds*1e9) + 999999999}, + pulsar: &gov_v1beta1_api.VotingParams{VotingPeriod: &durationpb.Duration{ Seconds: rapidproto.MaxDurationSeconds, Nanos: 999999999}}, }, "consensus/evidence_params/too_big_duration": { - gogo: &govtypes.VotingParams{VotingPeriod: time.Duration(rapidproto.MaxDurationSeconds*1e9) + 999999999}, - pulsar: &govv1beta1.VotingParams{VotingPeriod: &durationpb.Duration{ + gogo: &gov_v1beta1_types.VotingParams{VotingPeriod: time.Duration(rapidproto.MaxDurationSeconds*1e9) + 999999999}, + pulsar: &gov_v1beta1_api.VotingParams{VotingPeriod: &durationpb.Duration{ Seconds: rapidproto.MaxDurationSeconds + 1, Nanos: 999999999}}, pulsarMarshalFails: true, }, diff --git a/x/gov/types/v1beta1/gov.pb.go b/x/gov/types/v1beta1/gov.pb.go index f5c5d655191a..1acd514b717a 100644 --- a/x/gov/types/v1beta1/gov.pb.go +++ b/x/gov/types/v1beta1/gov.pb.go @@ -546,95 +546,95 @@ func init() { func init() { proto.RegisterFile("cosmos/gov/v1beta1/gov.proto", fileDescriptor_6e82113c1a9a4b7c) } var fileDescriptor_6e82113c1a9a4b7c = []byte{ - // 1393 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0x4f, 0x6f, 0x13, 0xd7, - 0x16, 0xf7, 0xd8, 0xce, 0xbf, 0x6b, 0x3b, 0x0c, 0x97, 0x3c, 0xe2, 0xcc, 0xe3, 0x79, 0x46, 0x7e, - 0x12, 0x8a, 0x22, 0x62, 0x43, 0x50, 0x91, 0x9a, 0x56, 0x95, 0x6c, 0x3c, 0xb4, 0xa6, 0xc8, 0x76, - 0xc7, 0x83, 0x29, 0x2c, 0x3a, 0x1a, 0x7b, 0x2e, 0xf6, 0xb4, 0x9e, 0xb9, 0xc6, 0x73, 0x1d, 0x92, - 0x0f, 0xd0, 0x0a, 0x79, 0xc5, 0xb2, 0x1b, 0x4b, 0x88, 0x6e, 0xaa, 0xae, 0x58, 0xf0, 0x05, 0xba, - 0x43, 0x55, 0x17, 0x88, 0x45, 0xd5, 0x76, 0x11, 0x5a, 0x90, 0x0a, 0xe5, 0x23, 0x74, 0x55, 0xcd, - 0xbd, 0x77, 0xe2, 0x89, 0x13, 0x11, 0x5c, 0xd4, 0x4d, 0x32, 0xbe, 0xe7, 0x77, 0x7e, 0xbf, 0x73, - 0x8e, 0xcf, 0x39, 0x73, 0x0d, 0x4e, 0xb5, 0xb0, 0xe7, 0x60, 0x2f, 0xdf, 0xc6, 0x5b, 0xf9, 0xad, - 0x73, 0x4d, 0x44, 0xcc, 0x73, 0xfe, 0x73, 0xae, 0xd7, 0xc7, 0x04, 0x43, 0xc8, 0xac, 0x39, 0xff, - 0x84, 0x5b, 0xa5, 0x0c, 0xf7, 0x68, 0x9a, 0x1e, 0xda, 0x73, 0x69, 0x61, 0xdb, 0x65, 0x3e, 0xd2, - 0x52, 0x1b, 0xb7, 0x31, 0x7d, 0xcc, 0xfb, 0x4f, 0xfc, 0x54, 0x6e, 0x63, 0xdc, 0xee, 0xa2, 0x3c, - 0xfd, 0xd4, 0x1c, 0xdc, 0xcc, 0x13, 0xdb, 0x41, 0x1e, 0x31, 0x9d, 0x1e, 0x07, 0xac, 0x4c, 0x02, - 0x4c, 0x77, 0x87, 0x9b, 0x32, 0x93, 0x26, 0x6b, 0xd0, 0x37, 0x89, 0x8d, 0x03, 0xc5, 0x15, 0x16, - 0x91, 0xc1, 0x44, 0x79, 0xc8, 0xcc, 0x74, 0xdc, 0x74, 0x6c, 0x17, 0xe7, 0xe9, 0x5f, 0x76, 0x94, - 0xbd, 0x2f, 0x00, 0x78, 0x0d, 0xd9, 0xed, 0x0e, 0x41, 0x56, 0x03, 0x13, 0x54, 0xed, 0xf9, 0x54, - 0xf0, 0x02, 0x98, 0xc5, 0xf4, 0x29, 0x2d, 0x28, 0xc2, 0xea, 0xe2, 0x46, 0x26, 0x77, 0x30, 0xf7, - 0xdc, 0x18, 0xaf, 0x71, 0x34, 0xd4, 0xc1, 0xec, 0x6d, 0xca, 0x96, 0x8e, 0x2a, 0xc2, 0xea, 0x42, - 0xf1, 0xfd, 0x47, 0xbb, 0x72, 0xe4, 0xd7, 0x5d, 0xf9, 0x74, 0xdb, 0x26, 0x9d, 0x41, 0x33, 0xd7, - 0xc2, 0x0e, 0x0f, 0x89, 0xff, 0x5b, 0xf7, 0xac, 0x2f, 0xf2, 0x64, 0xa7, 0x87, 0xbc, 0x5c, 0x09, - 0xb5, 0x9e, 0x3c, 0x5c, 0x07, 0x5c, 0xa8, 0x84, 0x5a, 0x1a, 0xe7, 0xca, 0x7e, 0x25, 0x80, 0xa4, - 0x8e, 0xb6, 0x49, 0xad, 0x8f, 0x7b, 0xd8, 0x33, 0xbb, 0x70, 0x09, 0xcc, 0x10, 0x9b, 0x74, 0x11, - 0x8d, 0x6e, 0x41, 0x63, 0x1f, 0xa0, 0x02, 0x12, 0x16, 0xf2, 0x5a, 0x7d, 0x9b, 0x45, 0x4e, 0x23, - 0xd0, 0xc2, 0x47, 0x9b, 0x1f, 0xbc, 0xbc, 0x27, 0x0b, 0x3f, 0x3c, 0x5c, 0x97, 0x0e, 0xc9, 0xe6, - 0x22, 0x76, 0x09, 0x72, 0xc9, 0xf0, 0xc5, 0x83, 0xb5, 0xe5, 0x50, 0x6c, 0x61, 0xdd, 0xec, 0x4f, - 0x02, 0x98, 0x2b, 0xa1, 0x1e, 0xf6, 0x6c, 0x02, 0x65, 0x90, 0xe8, 0xf1, 0x73, 0xc3, 0xb6, 0x68, - 0x24, 0x71, 0x0d, 0x04, 0x47, 0x65, 0x0b, 0x5e, 0x00, 0x0b, 0x16, 0xc3, 0xe2, 0x3e, 0x2f, 0x47, - 0xfa, 0xc9, 0xc3, 0xf5, 0x25, 0xae, 0x5d, 0xb0, 0xac, 0x3e, 0xf2, 0xbc, 0x3a, 0xe9, 0xdb, 0x6e, - 0x5b, 0x1b, 0x43, 0x61, 0x07, 0xcc, 0x9a, 0x0e, 0x1e, 0xb8, 0x24, 0x1d, 0x53, 0x62, 0xab, 0x89, - 0x8d, 0x95, 0xa0, 0xf6, 0x7e, 0x8f, 0x85, 0xc2, 0xb5, 0xdd, 0xe2, 0x3b, 0x7e, 0x79, 0xbf, 0x7b, - 0x2a, 0xaf, 0xbe, 0x41, 0x79, 0x7d, 0x07, 0xef, 0xdb, 0x17, 0x0f, 0xd6, 0x04, 0x8d, 0xf3, 0x6f, - 0xce, 0xdf, 0xb9, 0x27, 0x47, 0x5e, 0xde, 0x93, 0x23, 0xd9, 0x5f, 0x66, 0xc0, 0xfc, 0x5e, 0x75, - 0x8f, 0xcc, 0xac, 0x02, 0xe6, 0x5a, 0xac, 0x5a, 0x34, 0xaf, 0xc4, 0xc6, 0x52, 0x8e, 0x35, 0x65, - 0x2e, 0x68, 0xca, 0x5c, 0xc1, 0xdd, 0x29, 0x66, 0x5e, 0x5f, 0x69, 0x2d, 0x20, 0x81, 0x9b, 0x60, - 0xd6, 0x23, 0x26, 0x19, 0x78, 0xe9, 0x18, 0xed, 0xb6, 0xec, 0x61, 0xdd, 0x16, 0x84, 0x57, 0xa7, - 0x48, 0x8d, 0x7b, 0xc0, 0x4f, 0x01, 0xbc, 0x69, 0xbb, 0x66, 0xd7, 0x20, 0x66, 0xb7, 0xbb, 0x63, - 0xf4, 0x91, 0x37, 0xe8, 0x92, 0x74, 0x9c, 0x86, 0x25, 0x1f, 0xc6, 0xa3, 0xfb, 0x38, 0x8d, 0xc2, - 0x8a, 0x0b, 0x7e, 0xfd, 0x58, 0x4d, 0x44, 0xca, 0x12, 0x32, 0xc2, 0xcb, 0x20, 0xe1, 0x0d, 0x9a, - 0x8e, 0x4d, 0x0c, 0x7f, 0x3a, 0xd3, 0x33, 0x94, 0x52, 0x3a, 0x90, 0xa9, 0x1e, 0x8c, 0x6e, 0x31, - 0xe5, 0xb3, 0xdd, 0x7d, 0x2a, 0x0b, 0x8c, 0x11, 0x30, 0x6f, 0xdf, 0x0e, 0xeb, 0x40, 0xe4, 0x5f, - 0xb0, 0x81, 0x5c, 0x8b, 0x11, 0xce, 0x4e, 0x4b, 0xb8, 0xc8, 0x29, 0x54, 0xd7, 0xa2, 0xa4, 0x03, - 0x90, 0x22, 0x98, 0x98, 0x5d, 0x83, 0x9f, 0xa7, 0xe7, 0xfe, 0xa5, 0x7e, 0x49, 0x52, 0x99, 0xa0, - 0xf1, 0xaf, 0x82, 0xe3, 0x5b, 0x98, 0xd8, 0x6e, 0xdb, 0xf0, 0x88, 0xd9, 0xe7, 0xd5, 0x99, 0x9f, - 0x36, 0x99, 0x63, 0x8c, 0xa3, 0xee, 0x53, 0xd0, 0x6c, 0x3e, 0x01, 0xfc, 0x68, 0x5c, 0xa1, 0x85, - 0x69, 0x49, 0x53, 0x8c, 0x81, 0x17, 0x68, 0x33, 0xee, 0x8f, 0x7b, 0xf6, 0xcf, 0x28, 0x48, 0x84, - 0xbf, 0xd7, 0x0a, 0x88, 0xed, 0x20, 0x8f, 0xad, 0x8e, 0xa9, 0x16, 0x54, 0xd9, 0x25, 0xa1, 0x05, - 0x55, 0x76, 0x89, 0xe6, 0x13, 0xc1, 0x06, 0x98, 0x33, 0x9b, 0x1e, 0x31, 0x6d, 0xf7, 0x1f, 0x2c, - 0xbd, 0x83, 0x9c, 0x01, 0x19, 0xbc, 0x02, 0xa2, 0x2e, 0xa6, 0x13, 0xf1, 0xb6, 0x94, 0x51, 0x17, - 0xc3, 0xcf, 0x40, 0xd2, 0xc5, 0xc6, 0x6d, 0x9b, 0x74, 0x8c, 0x2d, 0x44, 0x30, 0x9d, 0x90, 0xb7, - 0xe5, 0x05, 0x2e, 0xbe, 0x66, 0x93, 0x4e, 0x03, 0x11, 0xcc, 0x6b, 0xfd, 0x97, 0x00, 0xe2, 0xfe, - 0x6b, 0x01, 0x9e, 0x3f, 0x64, 0x87, 0x14, 0xe1, 0xab, 0x5d, 0x39, 0x6a, 0x5b, 0xf7, 0x5f, 0x3c, - 0x58, 0x8b, 0xda, 0x16, 0x9f, 0x92, 0xd0, 0x5e, 0xc9, 0x81, 0x99, 0x2d, 0x4c, 0xd0, 0xd1, 0xdb, - 0x92, 0xc1, 0xfc, 0xbd, 0xc1, 0xdf, 0x52, 0xb1, 0x37, 0x79, 0x4b, 0x15, 0xa3, 0x69, 0x61, 0xef, - 0x4d, 0xf5, 0x31, 0x98, 0x63, 0x4f, 0x5e, 0x3a, 0x4e, 0xc7, 0xe6, 0xf4, 0x61, 0xce, 0x07, 0x5f, - 0x8d, 0xe1, 0x9d, 0x11, 0x30, 0xd0, 0xe4, 0x23, 0xd9, 0x61, 0x14, 0xa4, 0xf8, 0x90, 0xd4, 0xcc, - 0xbe, 0xe9, 0x78, 0xf0, 0x4b, 0x01, 0x24, 0x1c, 0xdb, 0xdd, 0x1b, 0x50, 0xe1, 0xa8, 0x01, 0x2d, - 0xfb, 0xe4, 0xaf, 0x76, 0xe5, 0xff, 0x84, 0xbc, 0xce, 0x60, 0xc7, 0x26, 0xc8, 0xe9, 0x91, 0x9d, - 0x69, 0x26, 0x57, 0x03, 0x8e, 0xed, 0x06, 0x23, 0x7b, 0x0b, 0x40, 0xc7, 0xdc, 0x0e, 0x08, 0x8d, - 0x1e, 0xea, 0xdb, 0xd8, 0xe2, 0xbb, 0x7b, 0xe5, 0xc0, 0x78, 0x95, 0xf8, 0x85, 0xa2, 0xb8, 0xca, - 0xa3, 0x39, 0x75, 0xd0, 0x79, 0x1c, 0xd4, 0xd7, 0x4f, 0x65, 0x41, 0x13, 0x1d, 0x73, 0x3b, 0x48, - 0x9d, 0xda, 0xb3, 0x1e, 0x48, 0x36, 0xe8, 0x30, 0xf2, 0x52, 0xb4, 0x00, 0x1f, 0xce, 0x40, 0x5d, - 0x38, 0x4a, 0xfd, 0xff, 0x5c, 0x7d, 0x79, 0x9f, 0xdf, 0x84, 0x70, 0x92, 0x19, 0xb9, 0xe8, 0xf7, - 0xc1, 0xa8, 0x73, 0xd1, 0x1b, 0x60, 0xf6, 0xd6, 0x00, 0xf7, 0x07, 0x0e, 0x55, 0x4b, 0x16, 0x8b, - 0xd3, 0x5d, 0x47, 0x5e, 0xed, 0xca, 0x22, 0xf3, 0x1f, 0xab, 0x6a, 0x9c, 0x11, 0xb6, 0xc0, 0x02, - 0xe9, 0xf4, 0x91, 0xd7, 0xc1, 0x5d, 0x56, 0xca, 0x64, 0x51, 0x9d, 0x9a, 0xfe, 0xc4, 0x1e, 0x45, - 0x48, 0x61, 0xcc, 0x0b, 0x6f, 0x81, 0x45, 0x7f, 0x5a, 0x8d, 0xb1, 0x52, 0x8c, 0x2a, 0x5d, 0x9e, - 0x5a, 0x29, 0xbd, 0x9f, 0x27, 0x24, 0x97, 0xf2, 0x2d, 0x7a, 0x60, 0x58, 0xfb, 0x43, 0x00, 0x20, - 0x74, 0x13, 0x3c, 0x03, 0x96, 0x1b, 0x55, 0x5d, 0x35, 0xaa, 0x35, 0xbd, 0x5c, 0xad, 0x18, 0x57, - 0x2b, 0xf5, 0x9a, 0x7a, 0xb1, 0x7c, 0xa9, 0xac, 0x96, 0xc4, 0x88, 0x74, 0x6c, 0x38, 0x52, 0x12, - 0x0c, 0xa8, 0xfa, 0x5c, 0x30, 0x0b, 0x8e, 0x85, 0xd1, 0xd7, 0xd5, 0xba, 0x28, 0x48, 0xa9, 0xe1, - 0x48, 0x59, 0x60, 0xa8, 0xeb, 0xc8, 0x83, 0x6b, 0xe0, 0x44, 0x18, 0x53, 0x28, 0xd6, 0xf5, 0x42, - 0xb9, 0x22, 0x46, 0xa5, 0xe3, 0xc3, 0x91, 0x92, 0x62, 0xb8, 0x02, 0xdf, 0x81, 0x0a, 0x58, 0x0c, - 0x63, 0x2b, 0x55, 0x31, 0x26, 0x25, 0x87, 0x23, 0x65, 0x9e, 0xc1, 0x2a, 0x18, 0x6e, 0x80, 0xf4, - 0x7e, 0x84, 0x71, 0xad, 0xac, 0x7f, 0x64, 0x34, 0x54, 0xbd, 0x2a, 0xc6, 0xa5, 0xa5, 0xe1, 0x48, - 0x11, 0x03, 0x6c, 0xb0, 0xab, 0xa4, 0xf8, 0x9d, 0x6f, 0x32, 0x91, 0xb5, 0x1f, 0xa3, 0x60, 0x71, - 0xff, 0xa5, 0x02, 0xe6, 0xc0, 0x7f, 0x6b, 0x5a, 0xb5, 0x56, 0xad, 0x17, 0xae, 0x18, 0x75, 0xbd, - 0xa0, 0x5f, 0xad, 0x4f, 0x24, 0x4c, 0x53, 0x61, 0xe0, 0x8a, 0xdd, 0x85, 0xef, 0x81, 0xcc, 0x24, - 0xbe, 0xa4, 0xd6, 0xaa, 0xf5, 0xb2, 0x6e, 0xd4, 0x54, 0xad, 0x5c, 0x2d, 0x89, 0x82, 0xb4, 0x3c, - 0x1c, 0x29, 0x27, 0x98, 0xcb, 0xbe, 0x09, 0x81, 0xef, 0x82, 0xff, 0x4d, 0x3a, 0x37, 0xaa, 0x7a, - 0xb9, 0xf2, 0x61, 0xe0, 0x1b, 0x95, 0x4e, 0x0e, 0x47, 0x0a, 0x64, 0xbe, 0x8d, 0x50, 0x9f, 0xc3, - 0x33, 0xe0, 0xe4, 0xa4, 0x6b, 0xad, 0x50, 0xaf, 0xab, 0x25, 0x31, 0x26, 0x89, 0xc3, 0x91, 0x92, - 0x64, 0x3e, 0x35, 0xd3, 0xf3, 0x90, 0x05, 0xcf, 0x82, 0xf4, 0x24, 0x5a, 0x53, 0x2f, 0xab, 0x17, - 0x75, 0xb5, 0x24, 0xc6, 0x25, 0x38, 0x1c, 0x29, 0x8b, 0xfc, 0x52, 0x85, 0x3e, 0x47, 0x2d, 0x82, - 0x0e, 0xe5, 0xbf, 0x54, 0x28, 0x5f, 0x51, 0x4b, 0xe2, 0x4c, 0x98, 0xff, 0x92, 0x69, 0x77, 0x91, - 0xc5, 0xca, 0x59, 0xac, 0x3c, 0xfa, 0x3d, 0x13, 0x79, 0xf4, 0x2c, 0x23, 0x3c, 0x7e, 0x96, 0x11, - 0x7e, 0x7b, 0x96, 0x11, 0xee, 0x3e, 0xcf, 0x44, 0x1e, 0x3f, 0xcf, 0x44, 0x7e, 0x7e, 0x9e, 0x89, - 0xdc, 0x38, 0xfb, 0xda, 0x46, 0xdd, 0xa6, 0xbf, 0xb8, 0x68, 0xbb, 0x06, 0x3f, 0xa2, 0x9a, 0xb3, - 0x74, 0x23, 0x9c, 0xff, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x22, 0x5a, 0x0e, 0x45, 0x94, 0x0d, 0x00, - 0x00, + // 1396 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xcf, 0x6f, 0x13, 0xc7, + 0x17, 0xf7, 0xda, 0xce, 0xaf, 0xb1, 0x13, 0x96, 0x21, 0x5f, 0xe2, 0xec, 0x97, 0x7a, 0x57, 0xae, + 0x84, 0xa2, 0x88, 0x38, 0x10, 0x54, 0xa4, 0xa6, 0x55, 0x25, 0x2f, 0x5e, 0x5a, 0x53, 0x64, 0xbb, + 0xeb, 0xc5, 0x14, 0x0e, 0x5d, 0xad, 0xbd, 0x83, 0xbd, 0xad, 0x77, 0xc7, 0x78, 0xc7, 0x21, 0xf9, + 0x03, 0x5a, 0x21, 0x9f, 0x38, 0xf6, 0x62, 0x09, 0xb5, 0x87, 0x56, 0x3d, 0x71, 0xe0, 0x1f, 0xe8, + 0x0d, 0x55, 0x3d, 0x20, 0x0e, 0x55, 0xdb, 0x43, 0x68, 0x41, 0x2a, 0x94, 0x3f, 0xa1, 0xa7, 0x6a, + 0x67, 0x66, 0xe3, 0x8d, 0x13, 0x11, 0x2c, 0xd4, 0x4b, 0xb2, 0x9e, 0xf7, 0x79, 0x9f, 0xcf, 0x7b, + 0xcf, 0xef, 0xbd, 0x1d, 0x83, 0x53, 0x4d, 0xec, 0xbb, 0xd8, 0x5f, 0x6f, 0xe1, 0xad, 0xf5, 0xad, + 0x73, 0x0d, 0x44, 0xac, 0x73, 0xc1, 0x73, 0xbe, 0xdb, 0xc3, 0x04, 0x43, 0xc8, 0xac, 0xf9, 0xe0, + 0x84, 0x5b, 0xa5, 0x2c, 0xf7, 0x68, 0x58, 0x3e, 0xda, 0x73, 0x69, 0x62, 0xc7, 0x63, 0x3e, 0xd2, + 0x62, 0x0b, 0xb7, 0x30, 0x7d, 0x5c, 0x0f, 0x9e, 0xf8, 0xa9, 0xdc, 0xc2, 0xb8, 0xd5, 0x41, 0xeb, + 0xf4, 0x53, 0xa3, 0x7f, 0x73, 0x9d, 0x38, 0x2e, 0xf2, 0x89, 0xe5, 0x76, 0x39, 0x60, 0x79, 0x1c, + 0x60, 0x79, 0x3b, 0xdc, 0x94, 0x1d, 0x37, 0xd9, 0xfd, 0x9e, 0x45, 0x1c, 0x1c, 0x2a, 0x2e, 0xb3, + 0x88, 0x4c, 0x26, 0xca, 0x43, 0x66, 0xa6, 0xe3, 0x96, 0xeb, 0x78, 0x78, 0x9d, 0xfe, 0x65, 0x47, + 0xb9, 0xef, 0x04, 0x00, 0xaf, 0x21, 0xa7, 0xd5, 0x26, 0xc8, 0xae, 0x63, 0x82, 0x2a, 0xdd, 0x80, + 0x0a, 0x5e, 0x00, 0xd3, 0x98, 0x3e, 0x65, 0x04, 0x45, 0x58, 0x59, 0xd8, 0xc8, 0xe6, 0x0f, 0xe6, + 0x9e, 0x1f, 0xe1, 0x75, 0x8e, 0x86, 0xd7, 0xc1, 0xf4, 0x6d, 0xca, 0x96, 0x89, 0x2b, 0xc2, 0xca, + 0x9c, 0x5a, 0x78, 0xb8, 0x2b, 0xc7, 0x7e, 0xdf, 0x95, 0x4f, 0xb7, 0x1c, 0xd2, 0xee, 0x37, 0xf2, + 0x4d, 0xec, 0xf2, 0x90, 0xf8, 0xbf, 0x35, 0xdf, 0xfe, 0x62, 0x9d, 0xec, 0x74, 0x91, 0x9f, 0x2f, + 0xa2, 0xe6, 0xe3, 0x07, 0x6b, 0x80, 0x0b, 0x15, 0x51, 0xf3, 0xfb, 0xe7, 0xf7, 0x57, 0x05, 0x9d, + 0x13, 0xe6, 0xbe, 0x12, 0x40, 0xda, 0x40, 0xdb, 0xa4, 0xda, 0xc3, 0x5d, 0xec, 0x5b, 0x1d, 0xb8, + 0x08, 0xa6, 0x88, 0x43, 0x3a, 0x88, 0x86, 0x38, 0xa7, 0xb3, 0x0f, 0x50, 0x01, 0x29, 0x1b, 0xf9, + 0xcd, 0x9e, 0xc3, 0xc2, 0xa7, 0x61, 0xe8, 0xd1, 0xa3, 0xcd, 0x0f, 0x5e, 0xdc, 0x93, 0x85, 0x9f, + 0x1e, 0xac, 0x49, 0x87, 0xa4, 0x74, 0x11, 0x7b, 0x04, 0x79, 0x64, 0xf0, 0xfc, 0xfe, 0xea, 0x52, + 0x24, 0xc0, 0xa8, 0x6e, 0xee, 0x17, 0x01, 0xcc, 0x14, 0x51, 0x17, 0xfb, 0x0e, 0x81, 0x32, 0x48, + 0x75, 0xf9, 0xb9, 0xe9, 0xd8, 0x34, 0x92, 0xa4, 0x0e, 0xc2, 0xa3, 0x92, 0x0d, 0x2f, 0x80, 0x39, + 0x9b, 0x61, 0x71, 0x8f, 0xd7, 0x24, 0xf3, 0xf8, 0xc1, 0xda, 0x22, 0xd7, 0x2e, 0xd8, 0x76, 0x0f, + 0xf9, 0x7e, 0x8d, 0xf4, 0x1c, 0xaf, 0xa5, 0x8f, 0xa0, 0xb0, 0x0d, 0xa6, 0x2d, 0x17, 0xf7, 0x3d, + 0x92, 0x49, 0x28, 0x89, 0x95, 0xd4, 0xc6, 0x72, 0xf8, 0x05, 0x04, 0x8d, 0x16, 0x09, 0xd7, 0xf1, + 0xd4, 0x77, 0x82, 0x1a, 0xff, 0xf0, 0x44, 0x5e, 0x79, 0x8d, 0x1a, 0x07, 0x0e, 0x3e, 0xaf, 0x2b, + 0xe3, 0xdf, 0x9c, 0xbd, 0x73, 0x4f, 0x8e, 0xbd, 0xb8, 0x27, 0xc7, 0x72, 0xbf, 0x4d, 0x81, 0xd9, + 0xbd, 0xea, 0x1e, 0x99, 0x59, 0x19, 0xcc, 0x34, 0x59, 0xb5, 0x68, 0x5e, 0xa9, 0x8d, 0xc5, 0x3c, + 0xeb, 0xcc, 0x7c, 0xd8, 0x99, 0xf9, 0x82, 0xb7, 0xa3, 0x66, 0x5f, 0x5d, 0x69, 0x3d, 0x24, 0x81, + 0x9b, 0x60, 0xda, 0x27, 0x16, 0xe9, 0xfb, 0x99, 0x04, 0x6d, 0xb9, 0xdc, 0x61, 0x2d, 0x17, 0x86, + 0x57, 0xa3, 0x48, 0x9d, 0x7b, 0xc0, 0x4f, 0x01, 0xbc, 0xe9, 0x78, 0x56, 0xc7, 0x24, 0x56, 0xa7, + 0xb3, 0x63, 0xf6, 0x90, 0xdf, 0xef, 0x90, 0x4c, 0x92, 0x86, 0x25, 0x1f, 0xc6, 0x63, 0x04, 0x38, + 0x9d, 0xc2, 0xd4, 0xb9, 0xa0, 0x7e, 0xac, 0x26, 0x22, 0x65, 0x89, 0x18, 0xe1, 0x65, 0x90, 0xf2, + 0xfb, 0x0d, 0xd7, 0x21, 0x66, 0x30, 0xa2, 0x99, 0x29, 0x4a, 0x29, 0x1d, 0xc8, 0xd4, 0x08, 0xe7, + 0x57, 0x9d, 0x0f, 0xd8, 0xee, 0x3e, 0x91, 0x05, 0xc6, 0x08, 0x98, 0x77, 0x60, 0x87, 0x35, 0x20, + 0xf2, 0x2f, 0xd8, 0x44, 0x9e, 0xcd, 0x08, 0xa7, 0x27, 0x25, 0x5c, 0xe0, 0x14, 0x9a, 0x67, 0x53, + 0xd2, 0x3e, 0x98, 0x27, 0x98, 0x58, 0x1d, 0x93, 0x9f, 0x67, 0x66, 0xfe, 0xa3, 0x7e, 0x49, 0x53, + 0x99, 0xb0, 0xf1, 0xaf, 0x82, 0xe3, 0x5b, 0x98, 0x38, 0x5e, 0xcb, 0xf4, 0x89, 0xd5, 0xe3, 0xd5, + 0x99, 0x9d, 0x34, 0x99, 0x63, 0x8c, 0xa3, 0x16, 0x50, 0xd0, 0x6c, 0x3e, 0x01, 0xfc, 0x68, 0x54, + 0xa1, 0xb9, 0x49, 0x49, 0xe7, 0x19, 0x03, 0x2f, 0xd0, 0x66, 0x32, 0x18, 0xf7, 0xdc, 0xdf, 0x71, + 0x90, 0x8a, 0x7e, 0xaf, 0x65, 0x90, 0xd8, 0x41, 0x3e, 0x5b, 0x1d, 0xea, 0xfb, 0x13, 0x6c, 0xa9, + 0x92, 0x47, 0x22, 0x5b, 0xaa, 0xe4, 0x11, 0x3d, 0x20, 0x82, 0x75, 0x30, 0x63, 0x35, 0x7c, 0x62, + 0x39, 0x7c, 0xe5, 0xbc, 0x21, 0x67, 0x48, 0x06, 0xaf, 0x80, 0xb8, 0x87, 0xe9, 0x44, 0xbc, 0x29, + 0x65, 0xdc, 0xc3, 0xf0, 0x33, 0x90, 0xf6, 0xb0, 0x79, 0xdb, 0x21, 0x6d, 0x73, 0x0b, 0x11, 0x4c, + 0x27, 0xe4, 0x4d, 0x79, 0x81, 0x87, 0xaf, 0x39, 0xa4, 0x5d, 0x47, 0x04, 0xf3, 0x5a, 0xff, 0x23, + 0x80, 0x64, 0xf0, 0x6e, 0x80, 0xe7, 0x0f, 0xd9, 0x21, 0x2a, 0x7c, 0xb9, 0x2b, 0xc7, 0x1d, 0xfb, + 0x9b, 0xe7, 0xf7, 0x57, 0xe3, 0x8e, 0xcd, 0xa7, 0x24, 0xb2, 0x57, 0xf2, 0x60, 0x6a, 0x0b, 0x13, + 0x74, 0xf4, 0xb6, 0x64, 0xb0, 0x60, 0x6f, 0xf0, 0x57, 0x55, 0xe2, 0x75, 0x5e, 0x55, 0x6a, 0x3c, + 0x23, 0xec, 0xbd, 0xae, 0x3e, 0x06, 0x33, 0xec, 0xc9, 0xcf, 0x24, 0xe9, 0xd8, 0x9c, 0x3e, 0xcc, + 0xf9, 0xe0, 0xfb, 0x31, 0xba, 0x33, 0x42, 0x06, 0x9a, 0x7c, 0x2c, 0x37, 0x88, 0x83, 0x79, 0x3e, + 0x24, 0x55, 0xab, 0x67, 0xb9, 0x3e, 0xfc, 0x52, 0x00, 0x29, 0xd7, 0xf1, 0xf6, 0x06, 0x54, 0x38, + 0x6a, 0x40, 0x4b, 0x01, 0xf9, 0xcb, 0x5d, 0xf9, 0x7f, 0x11, 0xaf, 0x33, 0xd8, 0x75, 0x08, 0x72, + 0xbb, 0x64, 0x67, 0x92, 0xc9, 0xd5, 0x81, 0xeb, 0x78, 0xe1, 0xc8, 0xde, 0x02, 0xd0, 0xb5, 0xb6, + 0x43, 0x42, 0xb3, 0x8b, 0x7a, 0x0e, 0xb6, 0xf9, 0xee, 0x5e, 0x3e, 0x30, 0x5e, 0x45, 0x7e, 0xab, + 0x50, 0x57, 0x78, 0x34, 0xa7, 0x0e, 0x3a, 0x8f, 0x82, 0xfa, 0xfa, 0x89, 0x2c, 0xe8, 0xa2, 0x6b, + 0x6d, 0x87, 0xa9, 0x53, 0x7b, 0xce, 0x07, 0xe9, 0x3a, 0x1d, 0x46, 0x5e, 0x8a, 0x26, 0xe0, 0xc3, + 0x19, 0xaa, 0x0b, 0x47, 0xa9, 0xbf, 0xcd, 0xd5, 0x97, 0xf6, 0xf9, 0x8d, 0x09, 0xa7, 0x99, 0x91, + 0x8b, 0xfe, 0x18, 0x8e, 0x3a, 0x17, 0xbd, 0x01, 0xa6, 0x6f, 0xf5, 0x71, 0xaf, 0xef, 0x52, 0xb5, + 0xb4, 0xaa, 0x4e, 0x76, 0x27, 0x79, 0xb9, 0x2b, 0x8b, 0xcc, 0x7f, 0xa4, 0xaa, 0x73, 0x46, 0xd8, + 0x04, 0x73, 0xa4, 0xdd, 0x43, 0x7e, 0x1b, 0x77, 0x58, 0x29, 0xd3, 0xaa, 0x36, 0x31, 0xfd, 0x89, + 0x3d, 0x8a, 0x88, 0xc2, 0x88, 0x17, 0xde, 0x02, 0x0b, 0xc1, 0xb4, 0x9a, 0x23, 0xa5, 0x04, 0x55, + 0xba, 0x3c, 0xb1, 0x52, 0x66, 0x3f, 0x4f, 0x44, 0x6e, 0x3e, 0xb0, 0x18, 0xa1, 0x61, 0xf5, 0x2f, + 0x01, 0x80, 0xc8, 0x75, 0xf0, 0x0c, 0x58, 0xaa, 0x57, 0x0c, 0xcd, 0xac, 0x54, 0x8d, 0x52, 0xa5, + 0x6c, 0x5e, 0x2d, 0xd7, 0xaa, 0xda, 0xc5, 0xd2, 0xa5, 0x92, 0x56, 0x14, 0x63, 0xd2, 0xb1, 0xc1, + 0x50, 0x49, 0x31, 0xa0, 0x16, 0x70, 0xc1, 0x1c, 0x38, 0x16, 0x45, 0x5f, 0xd7, 0x6a, 0xa2, 0x20, + 0xcd, 0x0f, 0x86, 0xca, 0x1c, 0x43, 0x5d, 0x47, 0x3e, 0x5c, 0x05, 0x27, 0xa2, 0x98, 0x82, 0x5a, + 0x33, 0x0a, 0xa5, 0xb2, 0x18, 0x97, 0x8e, 0x0f, 0x86, 0xca, 0x3c, 0xc3, 0x15, 0xf8, 0x0e, 0x54, + 0xc0, 0x42, 0x14, 0x5b, 0xae, 0x88, 0x09, 0x29, 0x3d, 0x18, 0x2a, 0xb3, 0x0c, 0x56, 0xc6, 0x70, + 0x03, 0x64, 0xf6, 0x23, 0xcc, 0x6b, 0x25, 0xe3, 0x23, 0xb3, 0xae, 0x19, 0x15, 0x31, 0x29, 0x2d, + 0x0e, 0x86, 0x8a, 0x18, 0x62, 0xc3, 0x5d, 0x25, 0x25, 0xef, 0x7c, 0x9b, 0x8d, 0xad, 0xfe, 0x1c, + 0x07, 0x0b, 0xfb, 0x2f, 0x15, 0x30, 0x0f, 0xfe, 0x5f, 0xd5, 0x2b, 0xd5, 0x4a, 0xad, 0x70, 0xc5, + 0xac, 0x19, 0x05, 0xe3, 0x6a, 0x6d, 0x2c, 0x61, 0x9a, 0x0a, 0x03, 0x97, 0x9d, 0x0e, 0x7c, 0x0f, + 0x64, 0xc7, 0xf1, 0x45, 0xad, 0x5a, 0xa9, 0x95, 0x0c, 0xb3, 0xaa, 0xe9, 0xa5, 0x4a, 0x51, 0x14, + 0xa4, 0xa5, 0xc1, 0x50, 0x39, 0xc1, 0x5c, 0xf6, 0x4d, 0x08, 0x7c, 0x17, 0xbc, 0x35, 0xee, 0x5c, + 0xaf, 0x18, 0xa5, 0xf2, 0x87, 0xa1, 0x6f, 0x5c, 0x3a, 0x39, 0x18, 0x2a, 0x90, 0xf9, 0xd6, 0x23, + 0x7d, 0x0e, 0xcf, 0x80, 0x93, 0xe3, 0xae, 0xd5, 0x42, 0xad, 0xa6, 0x15, 0xc5, 0x84, 0x24, 0x0e, + 0x86, 0x4a, 0x9a, 0xf9, 0x54, 0x2d, 0xdf, 0x47, 0x36, 0x3c, 0x0b, 0x32, 0xe3, 0x68, 0x5d, 0xbb, + 0xac, 0x5d, 0x34, 0xb4, 0xa2, 0x98, 0x94, 0xe0, 0x60, 0xa8, 0x2c, 0xf0, 0x4b, 0x15, 0xfa, 0x1c, + 0x35, 0x09, 0x3a, 0x94, 0xff, 0x52, 0xa1, 0x74, 0x45, 0x2b, 0x8a, 0x53, 0x51, 0xfe, 0x4b, 0x96, + 0xd3, 0x41, 0x36, 0x2b, 0xa7, 0x5a, 0x7e, 0xf8, 0x67, 0x36, 0xf6, 0xf0, 0x69, 0x56, 0x78, 0xf4, + 0x34, 0x2b, 0xfc, 0xf1, 0x34, 0x2b, 0xdc, 0x7d, 0x96, 0x8d, 0x3d, 0x7a, 0x96, 0x8d, 0xfd, 0xfa, + 0x2c, 0x1b, 0xbb, 0x71, 0xf6, 0x95, 0x8d, 0xba, 0x4d, 0x7f, 0x76, 0xd1, 0x76, 0x0d, 0x7f, 0x49, + 0x35, 0xa6, 0xe9, 0x46, 0x38, 0xff, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x78, 0xb6, 0x8e, 0xf7, + 0x99, 0x0d, 0x00, 0x00, } func (this *TextProposal) Equal(that interface{}) bool { diff --git a/x/gov/types/v1beta1/tx.pb.go b/x/gov/types/v1beta1/tx.pb.go index bd435422e49d..301d5273d2a9 100644 --- a/x/gov/types/v1beta1/tx.pb.go +++ b/x/gov/types/v1beta1/tx.pb.go @@ -382,53 +382,55 @@ func init() { func init() { proto.RegisterFile("cosmos/gov/v1beta1/tx.proto", fileDescriptor_3c053992595e3dce) } var fileDescriptor_3c053992595e3dce = []byte{ - // 734 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0x4d, 0x4c, 0x13, 0x41, - 0x14, 0xc7, 0xbb, 0x2d, 0x50, 0x19, 0x0c, 0x84, 0x4d, 0x0d, 0xed, 0x42, 0xb6, 0xcd, 0x1a, 0x49, - 0xc5, 0x74, 0xd7, 0x56, 0xe0, 0xd0, 0x1b, 0xd5, 0x83, 0x1f, 0xa9, 0x1f, 0x25, 0xd1, 0xc4, 0x0b, - 0x6e, 0xbb, 0xc3, 0xb0, 0x91, 0xee, 0x6c, 0x3a, 0xd3, 0x86, 0xde, 0x88, 0x27, 0xe3, 0xc9, 0xbb, - 0x17, 0x8e, 0xc6, 0x13, 0x07, 0xae, 0xde, 0x89, 0xf1, 0x40, 0x3c, 0x79, 0x30, 0x68, 0xe0, 0x80, - 0xf1, 0xea, 0xc5, 0xa3, 0xd9, 0xf9, 0xd8, 0x16, 0x5a, 0x0a, 0x12, 0x2f, 0xdd, 0x9d, 0xf7, 0xde, - 0xff, 0xbd, 0x7d, 0xbf, 0x79, 0xd3, 0x01, 0xd3, 0x35, 0x4c, 0xea, 0x98, 0x58, 0x08, 0xb7, 0xac, - 0x56, 0xbe, 0x0a, 0xa9, 0x9d, 0xb7, 0xe8, 0x86, 0xe9, 0x37, 0x30, 0xc5, 0xaa, 0xca, 0x9d, 0x26, - 0xc2, 0x2d, 0x53, 0x38, 0x35, 0x5d, 0x08, 0xaa, 0x36, 0x81, 0xa1, 0xa2, 0x86, 0x5d, 0x8f, 0x6b, - 0xb4, 0x99, 0x3e, 0x09, 0x03, 0x3d, 0xf7, 0xa6, 0xb8, 0x77, 0x85, 0xad, 0x2c, 0x91, 0x9e, 0xbb, - 0x12, 0x08, 0x23, 0xcc, 0xed, 0xc1, 0x9b, 0x14, 0x20, 0x8c, 0xd1, 0x3a, 0xb4, 0xd8, 0xaa, 0xda, - 0x5c, 0xb5, 0x6c, 0xaf, 0x2d, 0x5c, 0x53, 0xa2, 0x52, 0x9d, 0x20, 0xab, 0x95, 0x0f, 0x1e, 0xc2, - 0x31, 0x69, 0xd7, 0x5d, 0x0f, 0x5b, 0xec, 0x97, 0x9b, 0x8c, 0xcf, 0x51, 0x30, 0x59, 0x26, 0x68, - 0xb9, 0x59, 0xad, 0xbb, 0xf4, 0x71, 0x03, 0xfb, 0x98, 0xd8, 0xeb, 0xea, 0x43, 0x10, 0xaf, 0x61, - 0x8f, 0x42, 0x8f, 0x26, 0x95, 0x8c, 0x92, 0x1d, 0x2b, 0x24, 0x4c, 0x5e, 0xce, 0x94, 0xe5, 0xcc, - 0x25, 0xaf, 0x5d, 0xd2, 0x3f, 0xed, 0xe4, 0xb4, 0x5e, 0x14, 0xe6, 0x6d, 0xae, 0xad, 0xc8, 0x24, - 0x6a, 0x1b, 0x4c, 0xb8, 0x9e, 0x4b, 0x5d, 0x7b, 0x7d, 0xc5, 0x81, 0x3e, 0x26, 0x2e, 0x4d, 0x46, - 0x33, 0xb1, 0xec, 0x58, 0x21, 0x65, 0x0a, 0x79, 0x40, 0xad, 0x4b, 0xef, 0x7a, 0xa5, 0x85, 0xdd, - 0xfd, 0x74, 0xe4, 0xc3, 0xf7, 0x74, 0x16, 0xb9, 0x74, 0xad, 0x59, 0x35, 0x6b, 0xb8, 0x2e, 0xb8, - 0x88, 0x47, 0x8e, 0x38, 0x2f, 0x2d, 0xda, 0xf6, 0x21, 0x61, 0x02, 0xf2, 0xfe, 0x68, 0x7b, 0x4e, - 0xa9, 0x8c, 0x8b, 0x42, 0x77, 0x78, 0x1d, 0x75, 0x1e, 0x5c, 0xf2, 0x59, 0x5b, 0xb0, 0x91, 0x8c, - 0x65, 0x94, 0xec, 0x68, 0x29, 0xf9, 0x65, 0x27, 0x97, 0x10, 0x65, 0x97, 0x1c, 0xa7, 0x01, 0x09, - 0x59, 0xa6, 0x0d, 0xd7, 0x43, 0x95, 0x30, 0xb2, 0xb8, 0xf8, 0x7a, 0x2b, 0x1d, 0xf9, 0xb9, 0x95, - 0x8e, 0xbc, 0x3a, 0xda, 0x9e, 0x0b, 0xcd, 0x6f, 0x8e, 0xb6, 0xe7, 0x66, 0xba, 0x8a, 0xf7, 0x80, - 0x33, 0x2a, 0x20, 0xd5, 0x63, 0xac, 0x40, 0xe2, 0x63, 0x8f, 0x40, 0x75, 0x01, 0x8c, 0xf9, 0xc2, - 0xb6, 0xe2, 0x3a, 0x8c, 0xec, 0x50, 0x29, 0xf1, 0x6b, 0x3f, 0xdd, 0x6d, 0xe6, 0x5d, 0x00, 0x69, - 0xb9, 0xe7, 0x18, 0x1f, 0x15, 0x10, 0x2f, 0x13, 0xf4, 0x14, 0x53, 0xa8, 0xa6, 0xfb, 0xa4, 0xe8, - 0x0e, 0x56, 0x4d, 0x30, 0xdc, 0xc2, 0x14, 0x36, 0x92, 0xd1, 0x33, 0x7a, 0xe5, 0x61, 0xea, 0x22, - 0x18, 0xc1, 0x3e, 0x75, 0xb1, 0xc7, 0xe0, 0x8c, 0x17, 0x74, 0xb3, 0xcf, 0x7e, 0x06, 0xa5, 0x1f, - 0xb1, 0xa8, 0x8a, 0x88, 0x2e, 0x5e, 0xef, 0x06, 0xc4, 0x73, 0x05, 0x74, 0xd4, 0xe3, 0x74, 0x02, - 0xa1, 0x31, 0x09, 0x26, 0xc4, 0xab, 0x24, 0x61, 0xfc, 0x51, 0x42, 0xdb, 0x33, 0xe8, 0xa2, 0x35, - 0x0a, 0x9d, 0x0b, 0xd2, 0xf9, 0xe7, 0x86, 0x1f, 0x80, 0x38, 0x6f, 0x81, 0x24, 0x63, 0x6c, 0x04, - 0x67, 0xfb, 0x75, 0x2c, 0xbf, 0xaa, 0xd3, 0x79, 0x69, 0x34, 0x98, 0x47, 0x5e, 0x5f, 0x66, 0x28, - 0xe6, 0xfb, 0x53, 0xd0, 0x7a, 0x29, 0xc8, 0x84, 0x46, 0x0a, 0x4c, 0x9d, 0x30, 0x85, 0x54, 0xde, - 0x45, 0x01, 0x28, 0x13, 0x24, 0x27, 0xf7, 0x82, 0x40, 0x16, 0xc1, 0xa8, 0x38, 0x63, 0xf8, 0x6c, - 0x28, 0x9d, 0x50, 0x75, 0x0d, 0x8c, 0xd8, 0x75, 0xdc, 0xf4, 0xa8, 0xe0, 0xf2, 0xff, 0x8f, 0xa6, - 0xc8, 0x5f, 0x9c, 0x97, 0xd4, 0x36, 0xbf, 0x65, 0x18, 0xb9, 0xce, 0x57, 0x04, 0xf4, 0xae, 0x1c, - 0xa7, 0x27, 0x70, 0x18, 0x09, 0xa0, 0x76, 0x56, 0x92, 0x59, 0xe1, 0x77, 0x14, 0xc4, 0xca, 0x04, - 0xa9, 0xab, 0x60, 0xfc, 0xc4, 0x7f, 0xd8, 0xb5, 0x7e, 0xfb, 0xda, 0x73, 0x38, 0xb5, 0xdc, 0xb9, - 0xc2, 0xc2, 0x33, 0x7c, 0x17, 0x0c, 0xb1, 0x83, 0x38, 0x7d, 0x8a, 0x2c, 0x70, 0x6a, 0x57, 0x07, - 0x38, 0xc3, 0x4c, 0x2f, 0xc0, 0xe5, 0x63, 0xf3, 0x3f, 0x48, 0x24, 0x83, 0xb4, 0x1b, 0xe7, 0x08, - 0x0a, 0x2b, 0x3c, 0x01, 0x71, 0x39, 0x4b, 0xfa, 0x29, 0x3a, 0xe1, 0xd7, 0x66, 0x07, 0xfb, 0x65, - 0x4a, 0x6d, 0x78, 0x33, 0xd8, 0xc9, 0xd2, 0xfd, 0xdd, 0x03, 0x5d, 0xd9, 0x3b, 0xd0, 0x95, 0x1f, - 0x07, 0xba, 0xf2, 0xf6, 0x50, 0x8f, 0xec, 0x1d, 0xea, 0x91, 0xaf, 0x87, 0x7a, 0xe4, 0xf9, 0xcd, - 0x81, 0x23, 0xb1, 0xc1, 0x6e, 0x3f, 0x36, 0x18, 0xf2, 0x0e, 0xac, 0x8e, 0xb0, 0x2b, 0xe5, 0xd6, - 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x85, 0xed, 0xa7, 0x93, 0x71, 0x07, 0x00, 0x00, + // 760 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x95, 0x3d, 0x6c, 0xda, 0x5a, + 0x14, 0xc7, 0x31, 0x24, 0xe1, 0xe5, 0xe6, 0x29, 0x51, 0xfc, 0x78, 0x0a, 0x38, 0x91, 0x41, 0x3c, + 0xbd, 0x88, 0x52, 0x61, 0x17, 0x9a, 0x66, 0x60, 0x0b, 0xed, 0xd0, 0x0f, 0xd1, 0x0f, 0x22, 0xb5, + 0x52, 0x17, 0x6a, 0xe0, 0xc6, 0xb9, 0x2a, 0xf8, 0x5a, 0xdc, 0x0b, 0x0a, 0x5b, 0xd4, 0xa9, 0xea, + 0xd4, 0xae, 0x9d, 0x32, 0x56, 0x9d, 0x18, 0xb2, 0x76, 0x8f, 0x3a, 0x45, 0x9d, 0x3a, 0x54, 0x69, + 0x95, 0xa8, 0xa2, 0xea, 0xda, 0xa5, 0x63, 0xe5, 0xfb, 0x61, 0x48, 0x20, 0x24, 0xcd, 0xd0, 0x05, + 0xdb, 0xe7, 0x9c, 0xff, 0x39, 0xf7, 0xfc, 0x7c, 0x0e, 0x06, 0x8b, 0x55, 0x4c, 0x1a, 0x98, 0x98, + 0x36, 0x6e, 0x9b, 0xed, 0x6c, 0x05, 0x52, 0x2b, 0x6b, 0xd2, 0x2d, 0xc3, 0x6d, 0x62, 0x8a, 0x55, + 0x95, 0x3b, 0x0d, 0x1b, 0xb7, 0x0d, 0xe1, 0xd4, 0x74, 0x21, 0xa8, 0x58, 0x04, 0xfa, 0x8a, 0x2a, + 0x46, 0x0e, 0xd7, 0x68, 0x4b, 0x23, 0x12, 0x7a, 0x7a, 0xee, 0x8d, 0x71, 0x6f, 0x99, 0x3d, 0x99, + 0x22, 0x3d, 0x77, 0x45, 0x6c, 0x6c, 0x63, 0x6e, 0xf7, 0xee, 0xa4, 0xc0, 0xc6, 0xd8, 0xae, 0x43, + 0x93, 0x3d, 0x55, 0x5a, 0x1b, 0xa6, 0xe5, 0x74, 0x84, 0x6b, 0x41, 0x54, 0x6a, 0x10, 0xdb, 0x6c, + 0x67, 0xbd, 0x8b, 0x70, 0xcc, 0x5b, 0x0d, 0xe4, 0x60, 0x93, 0xfd, 0x72, 0x53, 0xf2, 0x6b, 0x10, + 0xcc, 0x17, 0x89, 0xbd, 0xde, 0xaa, 0x34, 0x10, 0xbd, 0xdf, 0xc4, 0x2e, 0x26, 0x56, 0x5d, 0xbd, + 0x0b, 0xc2, 0x55, 0xec, 0x50, 0xe8, 0xd0, 0xa8, 0x92, 0x50, 0x52, 0x33, 0xb9, 0x88, 0xc1, 0xcb, + 0x19, 0xb2, 0x9c, 0xb1, 0xe6, 0x74, 0x0a, 0xfa, 0xfb, 0xdd, 0x8c, 0x36, 0x8c, 0xc2, 0xb8, 0xce, + 0xb5, 0x25, 0x99, 0x44, 0x7d, 0xa5, 0x80, 0x39, 0xe4, 0x20, 0x8a, 0xac, 0x7a, 0xb9, 0x06, 0x5d, + 0x4c, 0x10, 0x8d, 0x06, 0x13, 0xa1, 0xd4, 0x4c, 0x2e, 0x66, 0x08, 0xbd, 0x87, 0x6d, 0x20, 0x01, + 0x72, 0x0a, 0xc5, 0xbd, 0x83, 0x78, 0xe0, 0xed, 0xe7, 0x78, 0xca, 0x46, 0x74, 0xb3, 0x55, 0x31, + 0xaa, 0xb8, 0x21, 0xc0, 0x88, 0x4b, 0x86, 0xd4, 0x9e, 0x9a, 0xb4, 0xe3, 0x42, 0xc2, 0x04, 0xe4, + 0x75, 0xaf, 0x9b, 0xfe, 0xc7, 0x69, 0xd5, 0xeb, 0x65, 0x52, 0x47, 0x55, 0x58, 0xb6, 0x48, 0x19, + 0x36, 0x5c, 0xda, 0x79, 0xd3, 0xeb, 0xa6, 0x95, 0xd2, 0xac, 0x38, 0xc0, 0x0d, 0x5e, 0x5f, 0x5d, + 0x01, 0x7f, 0xb9, 0xac, 0x5f, 0xd8, 0x8c, 0x86, 0x12, 0x4a, 0x6a, 0xba, 0x10, 0xfd, 0xb0, 0x9b, + 0x89, 0x88, 0xe3, 0xac, 0xd5, 0x6a, 0x4d, 0x48, 0xc8, 0x3a, 0x6d, 0x22, 0xc7, 0x2e, 0xf9, 0x91, + 0xf9, 0xd5, 0xe7, 0x3b, 0xf1, 0xc0, 0xb7, 0x9d, 0x78, 0xe0, 0x59, 0xaf, 0x9b, 0xf6, 0xcd, 0x2f, + 0x7a, 0xdd, 0xf4, 0xd2, 0xc0, 0xa1, 0x86, 0x88, 0x26, 0x4b, 0x20, 0x36, 0x64, 0x2c, 0x41, 0xe2, + 0x62, 0x87, 0x40, 0xf5, 0x1a, 0x98, 0x71, 0x85, 0xad, 0x8c, 0x6a, 0x0c, 0xf9, 0x44, 0x21, 0xf2, + 0xfd, 0x20, 0x3e, 0x68, 0xe6, 0x5d, 0x00, 0x69, 0xb9, 0x55, 0x4b, 0xbe, 0x53, 0x40, 0xb8, 0x48, + 0xec, 0x87, 0x98, 0x42, 0x35, 0x3e, 0x22, 0xc5, 0x60, 0xb0, 0x6a, 0x80, 0xc9, 0x36, 0xa6, 0xb0, + 0x19, 0x0d, 0x9e, 0xd1, 0x2b, 0x0f, 0x53, 0x57, 0xc1, 0x14, 0x76, 0x29, 0xc2, 0x0e, 0x83, 0x33, + 0x9b, 0xd3, 0x8d, 0x11, 0x2f, 0xda, 0x2b, 0x7d, 0x8f, 0x45, 0x95, 0x44, 0x74, 0xfe, 0xd2, 0x20, + 0x20, 0x9e, 0xcb, 0xa3, 0xa3, 0x1e, 0xa7, 0xe3, 0x09, 0x93, 0xf3, 0x60, 0x4e, 0xdc, 0x4a, 0x12, + 0xc9, 0x9f, 0x8a, 0x6f, 0x7b, 0x04, 0x91, 0xbd, 0x49, 0x61, 0xed, 0x82, 0x74, 0x7e, 0xbb, 0xe1, + 0x3b, 0x20, 0xcc, 0x5b, 0x20, 0xd1, 0x10, 0x1b, 0xcd, 0xe5, 0x51, 0x1d, 0xcb, 0x53, 0xf5, 0x3b, + 0x2f, 0x4c, 0x7b, 0x73, 0xca, 0xeb, 0xcb, 0x0c, 0xf9, 0xec, 0x68, 0x0a, 0xda, 0x30, 0x05, 0x99, + 0x30, 0x19, 0x03, 0x0b, 0x27, 0x4c, 0x3e, 0x95, 0xdd, 0x20, 0x00, 0x45, 0x62, 0xcb, 0xc9, 0xbd, + 0x20, 0x90, 0x55, 0x30, 0x2d, 0x76, 0x0f, 0x9f, 0x0d, 0xa5, 0x1f, 0xaa, 0x6e, 0x2b, 0x60, 0xca, + 0x6a, 0xe0, 0x96, 0x43, 0x05, 0x98, 0x3f, 0xb7, 0xb3, 0xa2, 0x6e, 0x7e, 0x45, 0xe2, 0xdc, 0xfe, + 0x94, 0x60, 0x48, 0xfb, 0xc7, 0xf3, 0xb0, 0xfe, 0x7b, 0x1c, 0xab, 0xe0, 0x94, 0x8c, 0x00, 0xb5, + 0xff, 0x24, 0x61, 0xe6, 0x7e, 0x04, 0x41, 0xa8, 0x48, 0x6c, 0x75, 0x03, 0xcc, 0x9e, 0xf8, 0xd7, + 0xfb, 0x7f, 0xd4, 0x0b, 0x1f, 0xda, 0x5a, 0x2d, 0x73, 0xae, 0x30, 0x7f, 0xb9, 0x6f, 0x82, 0x09, + 0xb6, 0xa1, 0x8b, 0xa7, 0xc8, 0x3c, 0xa7, 0xf6, 0xdf, 0x18, 0xa7, 0x9f, 0xe9, 0x09, 0xf8, 0xfb, + 0xd8, 0x62, 0x8c, 0x13, 0xc9, 0x20, 0xed, 0xf2, 0x39, 0x82, 0xfc, 0x0a, 0x0f, 0x40, 0x58, 0x0e, + 0x99, 0x7e, 0x8a, 0x4e, 0xf8, 0xb5, 0xe5, 0xf1, 0x7e, 0x99, 0x52, 0x9b, 0xdc, 0xf6, 0xde, 0x64, + 0xe1, 0xf6, 0xde, 0xa1, 0xae, 0xec, 0x1f, 0xea, 0xca, 0x97, 0x43, 0x5d, 0x79, 0x79, 0xa4, 0x07, + 0xf6, 0x8f, 0xf4, 0xc0, 0xc7, 0x23, 0x3d, 0xf0, 0xf8, 0xca, 0xd8, 0x51, 0xd9, 0x62, 0xdf, 0x4b, + 0x36, 0x30, 0xf2, 0xab, 0x59, 0x99, 0x62, 0x1f, 0xa1, 0xab, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, + 0x4a, 0xca, 0x38, 0x04, 0xa3, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. From e7fa02786df8a67edff486cd43d3908db04ef31e Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sat, 11 Feb 2023 21:51:02 -0700 Subject: [PATCH 066/122] gov v1 --- tests/integration/aminojson/aminojson_test.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index e3452aed1ffe..9ad9799c73f5 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -1,11 +1,13 @@ package aminojson import ( + gov_v1_api "cosmossdk.io/api/cosmos/gov/v1" "cosmossdk.io/x/evidence" evidencetypes "cosmossdk.io/x/evidence/types" feegrantmodule "cosmossdk.io/x/feegrant/module" "fmt" "github.com/cosmos/cosmos-sdk/x/gov" + gov_v1_types "github.com/cosmos/cosmos-sdk/x/gov/types/v1" "reflect" "testing" "time" @@ -156,6 +158,22 @@ var ( genType(&gov_v1beta1_types.MsgVote{}, &gov_v1beta1_api.MsgVote{}, genOpts), genType(&gov_v1beta1_types.MsgVoteWeighted{}, &gov_v1beta1_api.MsgVoteWeighted{}, genOpts), genType(&gov_v1beta1_types.TextProposal{}, &gov_v1beta1_api.TextProposal{}, genOpts), + + // gov v1 + genType(&gov_v1_types.MsgSubmitProposal{}, &gov_v1_api.MsgSubmitProposal{}, + genOpts.WithAnyTypes(&gov_v1_api.MsgVote{}, &gov_v1_api.MsgVoteWeighted{}, &gov_v1_api.MsgDeposit{}, + &gov_v1_api.MsgExecLegacyContent{}, &gov_v1_api.MsgUpdateParams{}). + WithInterfaceHint("cosmos.gov.v1beta1.Content", &gov_v1beta1_api.TextProposal{}). + WithDisallowNil(), + ), + genType(&gov_v1_types.MsgDeposit{}, &gov_v1_api.MsgDeposit{}, genOpts), + genType(&gov_v1_types.MsgVote{}, &gov_v1_api.MsgVote{}, genOpts), + genType(&gov_v1_types.MsgVoteWeighted{}, &gov_v1_api.MsgVoteWeighted{}, genOpts), + genType(&gov_v1_types.MsgExecLegacyContent{}, &gov_v1_api.MsgExecLegacyContent{}, + genOpts.WithAnyTypes(&gov_v1beta1_api.TextProposal{}). + WithDisallowNil(). + WithInterfaceHint("cosmos.gov.v1beta1.Content", &gov_v1beta1_api.TextProposal{})), + genType(&gov_v1_types.MsgUpdateParams{}, &gov_v1_api.MsgUpdateParams{}, genOpts.WithDisallowNil()), } ) From 338687f50a22958859cf54f093651deaf43467d3 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sun, 12 Feb 2023 16:54:10 -0700 Subject: [PATCH 067/122] group module --- tests/integration/aminojson/aminojson_test.go | 51 ++++++++++++++++--- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 9ad9799c73f5..3f6a0d9ecf7e 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -1,13 +1,9 @@ package aminojson import ( - gov_v1_api "cosmossdk.io/api/cosmos/gov/v1" - "cosmossdk.io/x/evidence" - evidencetypes "cosmossdk.io/x/evidence/types" - feegrantmodule "cosmossdk.io/x/feegrant/module" "fmt" - "github.com/cosmos/cosmos-sdk/x/gov" - gov_v1_types "github.com/cosmos/cosmos-sdk/x/gov/types/v1" + groupmodule "github.com/cosmos/cosmos-sdk/x/group/module" + "github.com/cosmos/cosmos-sdk/x/mint" "reflect" "testing" "time" @@ -30,8 +26,13 @@ import ( distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" evidenceapi "cosmossdk.io/api/cosmos/evidence/v1beta1" feegrantapi "cosmossdk.io/api/cosmos/feegrant/v1beta1" + gov_v1_api "cosmossdk.io/api/cosmos/gov/v1" gov_v1beta1_api "cosmossdk.io/api/cosmos/gov/v1beta1" + groupapi "cosmossdk.io/api/cosmos/group/v1" + "cosmossdk.io/x/evidence" + evidencetypes "cosmossdk.io/x/evidence/types" feegranttypes "cosmossdk.io/x/feegrant" + feegrantmodule "cosmossdk.io/x/feegrant/module" "cosmossdk.io/x/tx/aminojson" "cosmossdk.io/x/tx/rapidproto" codectypes "github.com/cosmos/cosmos-sdk/codec/types" @@ -50,7 +51,10 @@ import ( consensustypes "github.com/cosmos/cosmos-sdk/x/consensus/types" "github.com/cosmos/cosmos-sdk/x/distribution" disttypes "github.com/cosmos/cosmos-sdk/x/distribution/types" + "github.com/cosmos/cosmos-sdk/x/gov" + gov_v1_types "github.com/cosmos/cosmos-sdk/x/gov/types/v1" gov_v1beta1_types "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" + grouptypes "github.com/cosmos/cosmos-sdk/x/group" ) type generatedType struct { @@ -67,6 +71,16 @@ func genType(gogo gogoproto.Message, pulsar proto.Message, opts rapidproto.Gener } } +func withDecisionPolicy(opts rapidproto.GeneratorOptions) rapidproto.GeneratorOptions { + return opts. + WithAnyTypes( + &groupapi.ThresholdDecisionPolicy{}, + &groupapi.PercentageDecisionPolicy{}). + WithDisallowNil(). + WithInterfaceHint("cosmos.group.v1.DecisionPolicy", &groupapi.ThresholdDecisionPolicy{}). + WithInterfaceHint("cosmos.group.v1.DecisionPolicy", &groupapi.PercentageDecisionPolicy{}) +} + var ( genOpts = rapidproto.GeneratorOptions{ Resolver: protoregistry.GlobalTypes, @@ -174,6 +188,29 @@ var ( WithDisallowNil(). WithInterfaceHint("cosmos.gov.v1beta1.Content", &gov_v1beta1_api.TextProposal{})), genType(&gov_v1_types.MsgUpdateParams{}, &gov_v1_api.MsgUpdateParams{}, genOpts.WithDisallowNil()), + + // group + genType(&grouptypes.MsgCreateGroup{}, &groupapi.MsgCreateGroup{}, genOpts), + genType(&grouptypes.MsgUpdateGroupMembers{}, &groupapi.MsgUpdateGroupMembers{}, genOpts), + genType(&grouptypes.MsgUpdateGroupAdmin{}, &groupapi.MsgUpdateGroupAdmin{}, genOpts), + genType(&grouptypes.MsgUpdateGroupMetadata{}, &groupapi.MsgUpdateGroupMetadata{}, genOpts), + genType(&grouptypes.MsgCreateGroupWithPolicy{}, &groupapi.MsgCreateGroupWithPolicy{}, + withDecisionPolicy(genOpts)), + genType(&grouptypes.MsgCreateGroupPolicy{}, &groupapi.MsgCreateGroupPolicy{}, + withDecisionPolicy(genOpts)), + genType(&grouptypes.MsgUpdateGroupPolicyAdmin{}, &groupapi.MsgUpdateGroupPolicyAdmin{}, genOpts), + genType(&grouptypes.MsgUpdateGroupPolicyDecisionPolicy{}, &groupapi.MsgUpdateGroupPolicyDecisionPolicy{}, + withDecisionPolicy(genOpts)), + genType(&grouptypes.MsgUpdateGroupPolicyMetadata{}, &groupapi.MsgUpdateGroupPolicyMetadata{}, genOpts), + genType(&grouptypes.MsgSubmitProposal{}, &groupapi.MsgSubmitProposal{}, + genOpts.WithDisallowNil(). + WithAnyTypes(&groupapi.MsgCreateGroup{}, &groupapi.MsgUpdateGroupMembers{}). + WithInterfaceHint("cosmos.base.v1beta1.Msg", &groupapi.MsgCreateGroup{}). + WithInterfaceHint("cosmos.base.v1beta1.Msg", &groupapi.MsgUpdateGroupMembers{}), + ), + genType(&grouptypes.MsgVote{}, &groupapi.MsgVote{}, genOpts), + genType(&grouptypes.MsgExec{}, &groupapi.MsgExec{}, genOpts), + genType(&grouptypes.MsgLeaveGroup{}, &groupapi.MsgLeaveGroup{}, genOpts), } ) @@ -181,7 +218,7 @@ func TestAminoJSON_Equivalence(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig( auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, consensus.AppModuleBasic{}, distribution.AppModuleBasic{}, evidence.AppModuleBasic{}, feegrantmodule.AppModuleBasic{}, - gov.AppModuleBasic{}) + gov.AppModuleBasic{}, groupmodule.AppModuleBasic{}, mint.AppModuleBasic{}) aj := aminojson.NewAminoJSON() for _, tt := range genTypes { From 80684a5862770477f5384b3a5386d94b192e66b9 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sun, 12 Feb 2023 17:10:54 -0700 Subject: [PATCH 068/122] nft module --- api/cosmos/mint/v1beta1/mint.pulsar.go | 79 ++++++++++--------- proto/cosmos/mint/v1beta1/mint.proto | 12 ++- tests/integration/aminojson/aminojson_test.go | 6 ++ x/mint/types/mint.pb.go | 55 ++++++------- 4 files changed, 82 insertions(+), 70 deletions(-) diff --git a/api/cosmos/mint/v1beta1/mint.pulsar.go b/api/cosmos/mint/v1beta1/mint.pulsar.go index 80145d81b23a..25e3dac62039 100644 --- a/api/cosmos/mint/v1beta1/mint.pulsar.go +++ b/api/cosmos/mint/v1beta1/mint.pulsar.go @@ -1387,53 +1387,54 @@ var file_cosmos_mint_v1beta1_mint_proto_rawDesc = []byte{ 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x10, 0x61, 0x6e, 0x6e, 0x75, 0x61, - 0x6c, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x85, 0x04, 0x0a, 0x06, + 0x6c, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x99, 0x04, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x74, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x70, 0x0a, 0x15, 0x69, 0x6e, 0x66, 0x6c, 0x61, 0x74, 0x69, + 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x75, 0x0a, 0x15, 0x69, 0x6e, 0x66, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, - 0x65, 0x63, 0x52, 0x13, 0x69, 0x6e, 0x66, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x61, 0x0a, 0x0d, 0x69, 0x6e, 0x66, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, - 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, - 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0c, 0x69, 0x6e, - 0x66, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x61, 0x0a, 0x0d, 0x69, 0x6e, - 0x66, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x66, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x66, 0x0a, 0x0d, + 0x69, 0x6e, 0x66, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, + 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x69, 0x6e, 0x66, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x61, 0x78, 0x12, 0x66, 0x0a, 0x0d, 0x69, 0x6e, 0x66, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, + 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, + 0x69, 0x6e, 0x66, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x12, 0x62, 0x0a, 0x0b, + 0x67, 0x6f, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, - 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, - 0x0c, 0x69, 0x6e, 0x66, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x12, 0x5d, 0x0a, - 0x0b, 0x67, 0x6f, 0x61, 0x6c, 0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, - 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, - 0x52, 0x0a, 0x67, 0x6f, 0x61, 0x6c, 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, - 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x50, 0x65, 0x72, - 0x59, 0x65, 0x61, 0x72, 0x3a, 0x1d, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x42, 0xc4, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, - 0x09, 0x4d, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x3b, 0x6d, 0x69, 0x6e, 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x4d, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x4d, 0x69, - 0x6e, 0x74, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x5c, 0x4d, 0x69, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x4d, 0x69, 0x6e, 0x74, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x4d, 0x69, 0x6e, - 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x67, 0x6f, 0x61, 0x6c, 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, + 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x79, + 0x65, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x62, 0x6c, 0x6f, 0x63, 0x6b, + 0x73, 0x50, 0x65, 0x72, 0x59, 0x65, 0x61, 0x72, 0x3a, 0x1d, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x6d, 0x69, 0x6e, 0x74, + 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xc4, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x42, 0x09, 0x4d, 0x69, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x69, 0x6e, 0x74, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x6d, 0x69, 0x6e, 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x4d, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x4d, 0x69, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, + 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x4d, 0x69, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x4d, 0x69, + 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, + 0x3a, 0x4d, 0x69, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/mint/v1beta1/mint.proto b/proto/cosmos/mint/v1beta1/mint.proto index f582fd542791..28840255fbf2 100644 --- a/proto/cosmos/mint/v1beta1/mint.proto +++ b/proto/cosmos/mint/v1beta1/mint.proto @@ -33,25 +33,29 @@ message Params { string inflation_rate_change = 2 [ (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true ]; // maximum inflation rate string inflation_max = 3 [ (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true ]; // minimum inflation rate string inflation_min = 4 [ (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true ]; // goal of percent bonded atoms string goal_bonded = 5 [ (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true ]; // expected blocks per year uint64 blocks_per_year = 6; diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 3f6a0d9ecf7e..d9c0ebb27127 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -29,6 +29,7 @@ import ( gov_v1_api "cosmossdk.io/api/cosmos/gov/v1" gov_v1beta1_api "cosmossdk.io/api/cosmos/gov/v1beta1" groupapi "cosmossdk.io/api/cosmos/group/v1" + mintapi "cosmossdk.io/api/cosmos/mint/v1beta1" "cosmossdk.io/x/evidence" evidencetypes "cosmossdk.io/x/evidence/types" feegranttypes "cosmossdk.io/x/feegrant" @@ -55,6 +56,7 @@ import ( gov_v1_types "github.com/cosmos/cosmos-sdk/x/gov/types/v1" gov_v1beta1_types "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" grouptypes "github.com/cosmos/cosmos-sdk/x/group" + minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" ) type generatedType struct { @@ -211,6 +213,10 @@ var ( genType(&grouptypes.MsgVote{}, &groupapi.MsgVote{}, genOpts), genType(&grouptypes.MsgExec{}, &groupapi.MsgExec{}, genOpts), genType(&grouptypes.MsgLeaveGroup{}, &groupapi.MsgLeaveGroup{}, genOpts), + + // mint + genType(&minttypes.Params{}, &mintapi.Params{}, genOpts), + genType(&minttypes.MsgUpdateParams{}, &mintapi.MsgUpdateParams{}, genOpts.WithDisallowNil()), } ) diff --git a/x/mint/types/mint.pb.go b/x/mint/types/mint.pb.go index 03b46ce06a6a..63f5537f64fb 100644 --- a/x/mint/types/mint.pb.go +++ b/x/mint/types/mint.pb.go @@ -138,33 +138,34 @@ func init() { func init() { proto.RegisterFile("cosmos/mint/v1beta1/mint.proto", fileDescriptor_2df116d183c1e223) } var fileDescriptor_2df116d183c1e223 = []byte{ - // 412 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x93, 0x4f, 0x8b, 0xd3, 0x40, - 0x18, 0xc6, 0x13, 0xad, 0x81, 0x8e, 0x2e, 0xba, 0xb3, 0x0a, 0x71, 0x61, 0xb3, 0xcb, 0x1e, 0x96, - 0x2a, 0x34, 0xa1, 0x78, 0x13, 0x4f, 0x6d, 0xaf, 0x85, 0x92, 0x9b, 0x05, 0x09, 0x6f, 0x92, 0x31, - 0x1d, 0x9a, 0xcc, 0x84, 0x99, 0x69, 0x69, 0x3f, 0x80, 0x17, 0x4f, 0x7e, 0x14, 0x0f, 0x7e, 0x88, - 0xde, 0x2c, 0x9e, 0xc4, 0x43, 0x91, 0xf6, 0xe0, 0xd7, 0x90, 0xcc, 0x84, 0x54, 0x3c, 0xec, 0x29, - 0x97, 0xfc, 0x79, 0x9e, 0x37, 0xbf, 0xe7, 0x49, 0xc2, 0x8b, 0xbc, 0x84, 0xcb, 0x82, 0xcb, 0xa0, - 0xa0, 0x4c, 0x05, 0xab, 0x41, 0x4c, 0x14, 0x0c, 0xf4, 0x8d, 0x5f, 0x0a, 0xae, 0x38, 0xbe, 0x30, - 0xbe, 0xaf, 0xa5, 0xda, 0xbf, 0x7c, 0x9e, 0xf1, 0x8c, 0x6b, 0x3f, 0xa8, 0xae, 0xcc, 0xe8, 0xe5, - 0x4b, 0x33, 0x1a, 0x19, 0xa3, 0x7e, 0xce, 0x58, 0xe7, 0x50, 0x50, 0xc6, 0x03, 0x7d, 0x34, 0xd2, - 0xed, 0x77, 0x1b, 0x39, 0x13, 0xca, 0x14, 0x11, 0x78, 0x86, 0xba, 0x94, 0x7d, 0xcc, 0x41, 0x51, - 0xce, 0x5c, 0xfb, 0xc6, 0xee, 0x75, 0x87, 0xef, 0xb6, 0xfb, 0x6b, 0xeb, 0xd7, 0xfe, 0xfa, 0x2e, - 0xa3, 0x6a, 0xbe, 0x8c, 0xfd, 0x84, 0x17, 0x35, 0xb1, 0x3e, 0xf5, 0x65, 0xba, 0x08, 0xd4, 0xa6, - 0x24, 0xd2, 0x1f, 0x93, 0xe4, 0xc7, 0xb7, 0x3e, 0xaa, 0x03, 0xc7, 0x24, 0x09, 0x4f, 0x38, 0x4c, - 0xd1, 0x39, 0x30, 0xb6, 0x84, 0xbc, 0xaa, 0xb5, 0xa2, 0x92, 0x72, 0x26, 0xdd, 0x07, 0x2d, 0x64, - 0x3c, 0x33, 0xd8, 0x69, 0x43, 0xbd, 0xfd, 0xd4, 0x41, 0xce, 0x14, 0x04, 0x14, 0x12, 0x5f, 0x21, - 0x54, 0x7d, 0xb0, 0x28, 0x25, 0x8c, 0x17, 0xe6, 0x95, 0xc2, 0x6e, 0xa5, 0x8c, 0x2b, 0x01, 0x97, - 0xe8, 0x45, 0xd3, 0x30, 0x12, 0xa0, 0x48, 0x94, 0xcc, 0x81, 0x65, 0xa4, 0x95, 0x62, 0x17, 0x0d, - 0x3a, 0x04, 0x45, 0x46, 0x1a, 0x8c, 0x01, 0x9d, 0x9d, 0x12, 0x0b, 0x58, 0xbb, 0x0f, 0x5b, 0x48, - 0x7a, 0xd2, 0x20, 0x27, 0xb0, 0xfe, 0x2f, 0x82, 0x32, 0xb7, 0xd3, 0x6e, 0x04, 0x65, 0xf8, 0x03, - 0x7a, 0x9c, 0x71, 0xc8, 0xa3, 0x98, 0xb3, 0x94, 0xa4, 0xee, 0xa3, 0x16, 0x02, 0x50, 0x05, 0x1c, - 0x6a, 0x1e, 0xbe, 0x43, 0x4f, 0xe3, 0x9c, 0x27, 0x0b, 0x19, 0x95, 0x44, 0x44, 0x1b, 0x02, 0xc2, - 0x75, 0x6e, 0xec, 0x5e, 0x27, 0x3c, 0x33, 0xf2, 0x94, 0x88, 0xf7, 0x04, 0xc4, 0xdb, 0xab, 0xcf, - 0x7f, 0xbe, 0xbe, 0x76, 0xff, 0x81, 0xaf, 0xcd, 0xfa, 0x98, 0x9f, 0x3f, 0x1c, 0x6d, 0x0f, 0x9e, - 0xbd, 0x3b, 0x78, 0xf6, 0xef, 0x83, 0x67, 0x7f, 0x39, 0x7a, 0xd6, 0xee, 0xe8, 0x59, 0x3f, 0x8f, - 0x9e, 0x35, 0x7b, 0x75, 0x6f, 0xc5, 0x9a, 0xa2, 0x9b, 0xc6, 0x8e, 0xde, 0x92, 0x37, 0x7f, 0x03, - 0x00, 0x00, 0xff, 0xff, 0x05, 0x75, 0xa9, 0x8a, 0xa0, 0x03, 0x00, 0x00, + // 423 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x93, 0x4f, 0x8f, 0xd2, 0x40, + 0x18, 0xc6, 0x3b, 0x8a, 0x4d, 0x18, 0xdd, 0xe8, 0xce, 0x6a, 0x52, 0x37, 0xd9, 0xee, 0x66, 0x0f, + 0x04, 0x49, 0x68, 0x43, 0xbc, 0x19, 0x2f, 0x02, 0x57, 0x12, 0xd2, 0x9b, 0x5c, 0x9a, 0x69, 0x3b, + 0x94, 0x09, 0xed, 0x0c, 0x99, 0x19, 0x08, 0x7c, 0x05, 0x4f, 0x5e, 0xfd, 0x06, 0x1e, 0x39, 0xf8, + 0x21, 0xb8, 0x49, 0x3c, 0x19, 0x0f, 0xc4, 0xc0, 0x81, 0xaf, 0x61, 0x3a, 0xd3, 0x14, 0xe3, 0xc1, + 0x8b, 0x78, 0xe9, 0x9f, 0xe7, 0x79, 0xfb, 0x7b, 0x9e, 0x36, 0x7d, 0xa1, 0x1b, 0x73, 0x99, 0x73, + 0xe9, 0xe7, 0x94, 0x29, 0x7f, 0xd1, 0x89, 0x88, 0xc2, 0x1d, 0x7d, 0xe3, 0xcd, 0x04, 0x57, 0x1c, + 0x5d, 0x19, 0xdf, 0xd3, 0x52, 0xe9, 0x5f, 0x3f, 0x4f, 0x79, 0xca, 0xb5, 0xef, 0x17, 0x57, 0x66, + 0xf4, 0xfa, 0xa5, 0x19, 0x0d, 0x8d, 0x51, 0x3e, 0x67, 0xac, 0x4b, 0x9c, 0x53, 0xc6, 0x7d, 0x7d, + 0x34, 0xd2, 0xfd, 0x57, 0x00, 0xed, 0x01, 0x65, 0x8a, 0x08, 0x34, 0x82, 0x75, 0xca, 0xc6, 0x19, + 0x56, 0x94, 0x33, 0x07, 0xdc, 0x81, 0x66, 0xbd, 0xfb, 0x76, 0xb3, 0xbb, 0xb5, 0x7e, 0xec, 0x6e, + 0x1b, 0x29, 0x55, 0x93, 0x79, 0xe4, 0xc5, 0x3c, 0x2f, 0x89, 0xe5, 0xa9, 0x2d, 0x93, 0xa9, 0xaf, + 0x56, 0x33, 0x22, 0xbd, 0x3e, 0x89, 0xbf, 0x7d, 0x69, 0xc3, 0x32, 0xb0, 0x4f, 0xe2, 0xe0, 0x84, + 0x43, 0x14, 0x5e, 0x62, 0xc6, 0xe6, 0x38, 0x2b, 0x6a, 0x2d, 0xa8, 0xa4, 0x9c, 0x49, 0xe7, 0xc1, + 0x19, 0x32, 0x9e, 0x19, 0xec, 0xb0, 0xa2, 0xde, 0x7f, 0xaa, 0x41, 0x7b, 0x88, 0x05, 0xce, 0x25, + 0xba, 0x81, 0xb0, 0xf8, 0x60, 0x61, 0x42, 0x18, 0xcf, 0xcd, 0x2b, 0x05, 0xf5, 0x42, 0xe9, 0x17, + 0x02, 0x9a, 0xc3, 0x17, 0x55, 0xc3, 0x50, 0x60, 0x45, 0xc2, 0x78, 0x82, 0x59, 0x4a, 0xca, 0x62, + 0xef, 0xfe, 0xa5, 0xd8, 0xe7, 0xe3, 0xba, 0x05, 0x82, 0xab, 0x8a, 0x1f, 0x60, 0x45, 0x7a, 0x9a, + 0x8e, 0xc6, 0xf0, 0xe2, 0x14, 0x9b, 0xe3, 0xa5, 0xf3, 0xf0, 0x5c, 0x71, 0x4f, 0x2a, 0xee, 0x00, + 0x2f, 0xff, 0xc8, 0xa1, 0xcc, 0xa9, 0xfd, 0x87, 0x1c, 0xca, 0x50, 0x04, 0x1f, 0xa7, 0x1c, 0x67, + 0x61, 0xc4, 0x59, 0x42, 0x12, 0xe7, 0xd1, 0xb9, 0x52, 0x60, 0x41, 0xed, 0x6a, 0x28, 0x6a, 0xc0, + 0xa7, 0x51, 0xc6, 0xe3, 0xa9, 0x0c, 0x67, 0x44, 0x84, 0x2b, 0x82, 0x85, 0x63, 0xdf, 0x81, 0x66, + 0x2d, 0xb8, 0x30, 0xf2, 0x90, 0x88, 0xf7, 0x04, 0x8b, 0x37, 0x37, 0x1f, 0x8e, 0xeb, 0x96, 0xf3, + 0x5b, 0xc2, 0xd2, 0xac, 0x94, 0xf9, 0x21, 0xba, 0xbd, 0xcd, 0xde, 0x05, 0xdb, 0xbd, 0x0b, 0x7e, + 0xee, 0x5d, 0xf0, 0xf1, 0xe0, 0x5a, 0xdb, 0x83, 0x6b, 0x7d, 0x3f, 0xb8, 0xd6, 0xe8, 0xd5, 0x5f, + 0x7b, 0x96, 0x14, 0x5d, 0x37, 0xb2, 0xf5, 0xe6, 0xbc, 0xfe, 0x15, 0x00, 0x00, 0xff, 0xff, 0xe5, + 0xf6, 0x61, 0x3e, 0xb4, 0x03, 0x00, 0x00, } func (m *Minter) Marshal() (dAtA []byte, err error) { From e5076f5cefec3cc54cbf439dda77e4e839fc4cf8 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sun, 12 Feb 2023 17:14:49 -0700 Subject: [PATCH 069/122] params module --- tests/integration/aminojson/aminojson_test.go | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index d9c0ebb27127..15dbda676d9e 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -4,6 +4,7 @@ import ( "fmt" groupmodule "github.com/cosmos/cosmos-sdk/x/group/module" "github.com/cosmos/cosmos-sdk/x/mint" + "github.com/cosmos/cosmos-sdk/x/params" "reflect" "testing" "time" @@ -30,6 +31,7 @@ import ( gov_v1beta1_api "cosmossdk.io/api/cosmos/gov/v1beta1" groupapi "cosmossdk.io/api/cosmos/group/v1" mintapi "cosmossdk.io/api/cosmos/mint/v1beta1" + paramsapi "cosmossdk.io/api/cosmos/params/v1beta1" "cosmossdk.io/x/evidence" evidencetypes "cosmossdk.io/x/evidence/types" feegranttypes "cosmossdk.io/x/feegrant" @@ -57,6 +59,7 @@ import ( gov_v1beta1_types "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" grouptypes "github.com/cosmos/cosmos-sdk/x/group" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" + "github.com/cosmos/cosmos-sdk/x/params/types/proposal" ) type generatedType struct { @@ -217,6 +220,9 @@ var ( // mint genType(&minttypes.Params{}, &mintapi.Params{}, genOpts), genType(&minttypes.MsgUpdateParams{}, &mintapi.MsgUpdateParams{}, genOpts.WithDisallowNil()), + + // params + genType(&proposal.ParameterChangeProposal{}, ¶msapi.ParameterChangeProposal{}, genOpts), } ) @@ -224,7 +230,7 @@ func TestAminoJSON_Equivalence(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig( auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, consensus.AppModuleBasic{}, distribution.AppModuleBasic{}, evidence.AppModuleBasic{}, feegrantmodule.AppModuleBasic{}, - gov.AppModuleBasic{}, groupmodule.AppModuleBasic{}, mint.AppModuleBasic{}) + gov.AppModuleBasic{}, groupmodule.AppModuleBasic{}, mint.AppModuleBasic{}, params.AppModuleBasic{}) aj := aminojson.NewAminoJSON() for _, tt := range genTypes { From 583181cce8f2ea6ab33efedecb19168474f0e6db Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sun, 12 Feb 2023 18:18:38 -0700 Subject: [PATCH 070/122] slashing module --- .../slashing/v1beta1/slashing.pulsar.go | 90 ++++++++++--------- proto/cosmos/slashing/v1beta1/slashing.proto | 3 + tests/integration/aminojson/aminojson_test.go | 31 ++++++- x/slashing/types/slashing.pb.go | 80 +++++++++-------- x/tx/aminojson/encoder.go | 18 ++++ x/tx/aminojson/json_marshal.go | 1 + x/tx/rapidproto/rapidproto.go | 7 ++ 7 files changed, 146 insertions(+), 84 deletions(-) diff --git a/api/cosmos/slashing/v1beta1/slashing.pulsar.go b/api/cosmos/slashing/v1beta1/slashing.pulsar.go index 9f13cda1f50c..0b70d3683cd5 100644 --- a/api/cosmos/slashing/v1beta1/slashing.pulsar.go +++ b/api/cosmos/slashing/v1beta1/slashing.pulsar.go @@ -1597,54 +1597,58 @@ var file_cosmos_slashing_v1beta1_slashing_proto_rawDesc = []byte{ 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6d, 0x69, 0x73, 0x73, 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, - 0x01, 0x22, 0x84, 0x04, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x14, + 0x01, 0x22, 0xc5, 0x04, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x73, 0x69, 0x67, 0x6e, - 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x66, + 0x65, 0x64, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x73, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x7b, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x65, 0x72, - 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x33, 0xc8, + 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x48, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, 0x65, 0x72, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x5e, 0x0a, 0x16, 0x64, 0x6f, 0x77, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x5f, 0x6a, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x14, 0x64, 0x6f, 0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4a, 0x61, 0x69, 0x6c, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x70, 0x0a, 0x1a, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x5f, - 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, - 0x73, 0x69, 0x67, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x33, 0xc8, 0xde, 0x1f, 0x00, - 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x17, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x6f, - 0x75, 0x62, 0x6c, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x12, 0x6b, 0x0a, 0x17, 0x73, 0x6c, 0x61, 0x73, - 0x68, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x33, 0xc8, 0xde, 0x1f, 0x00, 0xda, - 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x15, - 0x73, 0x6c, 0x61, 0x73, 0x68, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x6f, 0x77, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x3a, 0x21, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, - 0x67, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xe8, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0d, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, - 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x3b, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xca, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x6c, 0x61, - 0x73, 0x68, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x23, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x5c, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x6c, - 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, - 0xe2, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x9a, 0xe7, 0xb0, + 0x2a, 0x10, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x63, 0x5f, 0x62, 0x79, 0x74, + 0x65, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x53, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x50, 0x65, 0x72, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x5e, 0x0a, 0x16, 0x64, + 0x6f, 0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6a, 0x61, 0x69, 0x6c, 0x5f, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x14, 0x64, 0x6f, 0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4a, + 0x61, 0x69, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x85, 0x01, 0x0a, 0x1a, + 0x73, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x42, 0x48, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, + 0x9a, 0xe7, 0xb0, 0x2a, 0x10, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x64, 0x65, 0x63, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x17, 0x73, 0x6c, 0x61, 0x73, + 0x68, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x53, + 0x69, 0x67, 0x6e, 0x12, 0x80, 0x01, 0x0a, 0x17, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x5f, 0x66, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x48, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x44, 0x65, 0x63, 0x9a, 0xe7, 0xb0, 0x2a, 0x10, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x5f, 0x64, 0x65, 0x63, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x15, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x6f, + 0x77, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x3a, 0x21, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, + 0x6e, 0x67, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xe8, 0x01, 0x0a, 0x1b, 0x63, 0x6f, + 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0d, 0x53, 0x6c, 0x61, 0x73, 0x68, + 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x17, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x6c, + 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, + 0x23, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, + 0x6c, 0x61, 0x73, 0x68, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xa8, 0xe2, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/slashing/v1beta1/slashing.proto b/proto/cosmos/slashing/v1beta1/slashing.proto index 154f76a02f1e..a4d2129b1438 100644 --- a/proto/cosmos/slashing/v1beta1/slashing.proto +++ b/proto/cosmos/slashing/v1beta1/slashing.proto @@ -41,6 +41,7 @@ message Params { bytes min_signed_per_window = 2 [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false, + (amino.encoding) = "cosmos_dec_bytes", (amino.dont_omitempty) = true ]; google.protobuf.Duration downtime_jail_duration = 3 @@ -48,11 +49,13 @@ message Params { bytes slash_fraction_double_sign = 4 [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false, + (amino.encoding) = "cosmos_dec_bytes", (amino.dont_omitempty) = true ]; bytes slash_fraction_downtime = 5 [ (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", (gogoproto.nullable) = false, + (amino.encoding) = "cosmos_dec_bytes", (amino.dont_omitempty) = true ]; } diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 15dbda676d9e..1e27b597303e 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -5,6 +5,7 @@ import ( groupmodule "github.com/cosmos/cosmos-sdk/x/group/module" "github.com/cosmos/cosmos-sdk/x/mint" "github.com/cosmos/cosmos-sdk/x/params" + "github.com/cosmos/cosmos-sdk/x/slashing" "reflect" "testing" "time" @@ -32,6 +33,7 @@ import ( groupapi "cosmossdk.io/api/cosmos/group/v1" mintapi "cosmossdk.io/api/cosmos/mint/v1beta1" paramsapi "cosmossdk.io/api/cosmos/params/v1beta1" + slashingapi "cosmossdk.io/api/cosmos/slashing/v1beta1" "cosmossdk.io/x/evidence" evidencetypes "cosmossdk.io/x/evidence/types" feegranttypes "cosmossdk.io/x/feegrant" @@ -60,6 +62,7 @@ import ( grouptypes "github.com/cosmos/cosmos-sdk/x/group" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" "github.com/cosmos/cosmos-sdk/x/params/types/proposal" + slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" ) type generatedType struct { @@ -223,6 +226,11 @@ var ( // params genType(&proposal.ParameterChangeProposal{}, ¶msapi.ParameterChangeProposal{}, genOpts), + + // slashing + genType(&slashingtypes.Params{}, &slashingapi.Params{}, genOpts.WithDisallowNil()), + genType(&slashingtypes.MsgUnjail{}, &slashingapi.MsgUnjail{}, genOpts), + genType(&slashingtypes.MsgUpdateParams{}, &slashingapi.MsgUpdateParams{}, genOpts.WithDisallowNil()), } ) @@ -230,7 +238,8 @@ func TestAminoJSON_Equivalence(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig( auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, consensus.AppModuleBasic{}, distribution.AppModuleBasic{}, evidence.AppModuleBasic{}, feegrantmodule.AppModuleBasic{}, - gov.AppModuleBasic{}, groupmodule.AppModuleBasic{}, mint.AppModuleBasic{}, params.AppModuleBasic{}) + gov.AppModuleBasic{}, groupmodule.AppModuleBasic{}, mint.AppModuleBasic{}, params.AppModuleBasic{}, + slashing.AppModuleBasic{}) aj := aminojson.NewAminoJSON() for _, tt := range genTypes { @@ -286,7 +295,7 @@ func newAny(t *testing.T, msg proto.Message) *anypb.Any { func TestAminoJSON_LegacyParity(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, - bank.AppModuleBasic{}, distribution.AppModuleBasic{}) + bank.AppModuleBasic{}, distribution.AppModuleBasic{}, slashing.AppModuleBasic{}) aj := aminojson.NewAminoJSON() addr1 := types.AccAddress([]byte("addr1")) @@ -294,6 +303,7 @@ func TestAminoJSON_LegacyParity(t *testing.T) { genericAuth, _ := codectypes.NewAnyWithValue(&authztypes.GenericAuthorization{Msg: "foo"}) genericAuthPulsar := newAny(t, &authzapi.GenericAuthorization{Msg: "foo"}) + dec10bz, _ := types.NewDec(10).Marshal() cases := map[string]struct { gogo gogoproto.Message @@ -392,6 +402,23 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &banktypes.MsgMultiSend{}, pulsar: &bankapi.MsgMultiSend{}, }, + "slashing/params/empty_dec": { + gogo: &slashingtypes.Params{DowntimeJailDuration: 1e9 + 7}, + pulsar: &slashingapi.Params{DowntimeJailDuration: &durationpb.Duration{Seconds: 1, Nanos: 7}}, + }, + // !! Important !! + // This test cases demonstrates the expected contract and proper way to set a cosmos.Dec field represented + // as bytes in protobuf message, namely: + // dec10bz, _ := types.NewDec(10).Marshal() + "slashing/params/dec": { + gogo: &slashingtypes.Params{ + DowntimeJailDuration: 1e9 + 7, + MinSignedPerWindow: types.NewDec(10)}, + pulsar: &slashingapi.Params{ + DowntimeJailDuration: &durationpb.Duration{Seconds: 1, Nanos: 7}, + MinSignedPerWindow: dec10bz, + }, + }, } for name, tc := range cases { t.Run(name, func(t *testing.T) { diff --git a/x/slashing/types/slashing.pb.go b/x/slashing/types/slashing.pb.go index 647e595b3827..ce901400b720 100644 --- a/x/slashing/types/slashing.pb.go +++ b/x/slashing/types/slashing.pb.go @@ -192,45 +192,47 @@ func init() { } var fileDescriptor_1078e5d96a74cc52 = []byte{ - // 607 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x53, 0xbf, 0x6f, 0xd3, 0x40, - 0x18, 0xcd, 0xb5, 0xa5, 0xc0, 0xa5, 0x0c, 0x1c, 0x29, 0x75, 0x23, 0xe4, 0xa4, 0x1d, 0xaa, 0xa8, - 0x52, 0x6d, 0x9a, 0x6e, 0xdd, 0x08, 0x15, 0xe2, 0x97, 0x44, 0x95, 0xf2, 0x43, 0x62, 0xc0, 0x3a, - 0xfb, 0xce, 0xce, 0x11, 0xfb, 0x2e, 0xf2, 0x9d, 0x49, 0xd9, 0x99, 0x98, 0x3a, 0x32, 0x32, 0x76, - 0xec, 0xc0, 0xc0, 0x9f, 0xd0, 0xb1, 0x62, 0x42, 0x0c, 0x05, 0x25, 0x43, 0xf9, 0x33, 0x90, 0xef, - 0xec, 0x34, 0x6a, 0x25, 0x86, 0x2e, 0x89, 0xfd, 0xde, 0xfb, 0xde, 0x77, 0xef, 0xfb, 0xce, 0x70, - 0x2d, 0x10, 0x32, 0x11, 0xd2, 0x95, 0x31, 0x96, 0x3d, 0xc6, 0x23, 0xf7, 0xc3, 0xa6, 0x4f, 0x15, - 0xde, 0x9c, 0x00, 0xce, 0x20, 0x15, 0x4a, 0xa0, 0x25, 0xa3, 0x73, 0x26, 0x70, 0xa1, 0xab, 0xd7, - 0x22, 0x11, 0x09, 0xad, 0x71, 0xf3, 0x27, 0x23, 0xaf, 0xdb, 0x91, 0x10, 0x51, 0x4c, 0x5d, 0xfd, - 0xe6, 0x67, 0xa1, 0x4b, 0xb2, 0x14, 0x2b, 0x26, 0x78, 0xc1, 0x37, 0x2e, 0xf2, 0x8a, 0x25, 0x54, - 0x2a, 0x9c, 0x0c, 0x0a, 0xc1, 0xb2, 0xe9, 0xe7, 0x19, 0xe7, 0xa2, 0xb9, 0xa1, 0x6e, 0xe3, 0x84, - 0x71, 0xe1, 0xea, 0x5f, 0x03, 0xad, 0x7e, 0x9f, 0x81, 0xb5, 0xd7, 0x38, 0x66, 0x04, 0x2b, 0x91, - 0xee, 0xb1, 0x88, 0x33, 0x1e, 0x3d, 0xe1, 0xa1, 0x40, 0x6d, 0x78, 0x1d, 0x13, 0x92, 0x52, 0x29, - 0x2d, 0xd0, 0x04, 0xad, 0x9b, 0x1d, 0xeb, 0xc7, 0xb7, 0x8d, 0x5a, 0x61, 0xf7, 0xc0, 0x30, 0x7b, - 0x2a, 0x65, 0x3c, 0xea, 0x96, 0x42, 0xb4, 0x02, 0x17, 0xa4, 0xc2, 0xa9, 0xf2, 0x7a, 0x94, 0x45, - 0x3d, 0x65, 0xcd, 0x34, 0x41, 0x6b, 0xb6, 0x5b, 0xd5, 0xd8, 0x63, 0x0d, 0xe5, 0x12, 0xc6, 0x09, - 0xdd, 0xf7, 0x44, 0x18, 0x4a, 0xaa, 0xac, 0x59, 0x23, 0xd1, 0xd8, 0x0b, 0x0d, 0xa1, 0xe7, 0x70, - 0xe1, 0x3d, 0x66, 0x31, 0x25, 0x5e, 0xc6, 0x15, 0x8b, 0xad, 0xb9, 0x26, 0x68, 0x55, 0xdb, 0x75, - 0xc7, 0x04, 0x77, 0xca, 0xe0, 0xce, 0xcb, 0x32, 0x78, 0xe7, 0xd6, 0xf1, 0x69, 0xa3, 0x72, 0xf0, - 0xbb, 0x01, 0x0e, 0xcf, 0x8e, 0xd6, 0x41, 0xb7, 0x6a, 0xca, 0x5f, 0xe5, 0xd5, 0xc8, 0x86, 0x50, - 0x89, 0xc4, 0x97, 0x4a, 0x70, 0x4a, 0xac, 0x6b, 0x4d, 0xd0, 0xba, 0xd1, 0x9d, 0x42, 0x50, 0x1b, - 0x2e, 0x26, 0x4c, 0x4a, 0x4a, 0x3c, 0x3f, 0x16, 0x41, 0x5f, 0x7a, 0x81, 0xc8, 0xb8, 0xa2, 0xa9, - 0x35, 0xaf, 0x4f, 0x76, 0xc7, 0x90, 0x1d, 0xcd, 0x3d, 0x34, 0xd4, 0xf6, 0xdc, 0xdf, 0xaf, 0x0d, - 0xb0, 0xfa, 0x69, 0x0e, 0xce, 0xef, 0xe2, 0x14, 0x27, 0x12, 0xdd, 0x87, 0x35, 0xc9, 0x22, 0x7e, - 0x6e, 0x32, 0x64, 0x9c, 0x88, 0xa1, 0x9e, 0xdc, 0x6c, 0x17, 0x19, 0xce, 0x78, 0xbc, 0xd1, 0x0c, - 0x0a, 0xf3, 0xb6, 0xdc, 0x2b, 0xaa, 0x06, 0x34, 0x2d, 0x4b, 0xf2, 0x99, 0x2d, 0x74, 0xb6, 0xf2, - 0x44, 0xbf, 0x4e, 0x1b, 0x6b, 0x11, 0x53, 0xbd, 0xcc, 0x77, 0x02, 0x91, 0x14, 0xab, 0x2c, 0xfe, - 0x36, 0x24, 0xe9, 0xbb, 0xea, 0xe3, 0x80, 0x4a, 0x67, 0x87, 0x06, 0x26, 0x37, 0x4a, 0x18, 0xdf, - 0xd3, 0x86, 0xbb, 0x34, 0x2d, 0xfa, 0xbc, 0x83, 0x77, 0x89, 0x18, 0xf2, 0xfc, 0x92, 0x78, 0xf9, - 0x58, 0xbc, 0xf2, 0x3a, 0xe9, 0xc9, 0x57, 0xdb, 0xcb, 0x97, 0xc6, 0xba, 0x53, 0x08, 0xcc, 0x54, - 0xbf, 0x4c, 0xa6, 0x5a, 0x2b, 0x7d, 0x9e, 0x62, 0x16, 0x97, 0x22, 0x34, 0x80, 0x75, 0x7d, 0xb1, - 0xbd, 0x30, 0xc5, 0x41, 0x8e, 0x78, 0x44, 0x64, 0x7e, 0x4c, 0x75, 0x32, 0xbd, 0xba, 0x2b, 0x86, - 0x59, 0xd2, 0xb6, 0x8f, 0x0a, 0xd7, 0x1d, 0x6d, 0x9a, 0x87, 0x43, 0x7d, 0xb8, 0x74, 0xa9, 0xa3, - 0x39, 0x98, 0xde, 0xee, 0x15, 0xdb, 0x2d, 0x5e, 0x68, 0x67, 0x1c, 0xb7, 0x57, 0x3e, 0x9f, 0x1d, - 0xad, 0xdf, 0x9b, 0x2a, 0xdb, 0x3f, 0xff, 0xde, 0xcd, 0xee, 0x3b, 0xcf, 0x0e, 0x47, 0x36, 0x38, - 0x1e, 0xd9, 0xe0, 0x64, 0x64, 0x83, 0x3f, 0x23, 0x1b, 0x1c, 0x8c, 0xed, 0xca, 0xc9, 0xd8, 0xae, - 0xfc, 0x1c, 0xdb, 0x95, 0xb7, 0x1b, 0xff, 0x3d, 0xc4, 0x94, 0x9b, 0x3e, 0x8f, 0x3f, 0xaf, 0xd7, - 0xb0, 0xf5, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x98, 0xa6, 0x14, 0x90, 0x5d, 0x04, 0x00, 0x00, + // 628 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x54, 0x3d, 0x4f, 0x14, 0x41, + 0x18, 0xbe, 0x01, 0x44, 0x9d, 0xc3, 0x44, 0xd7, 0x43, 0x96, 0x8b, 0xd9, 0x3b, 0x28, 0xc8, 0x85, + 0x84, 0x5d, 0x39, 0x3b, 0x3a, 0x4f, 0x62, 0xf0, 0x23, 0x91, 0x1c, 0x7e, 0x24, 0x16, 0x4e, 0x66, + 0x77, 0xe6, 0xf6, 0x46, 0x76, 0x67, 0x2e, 0x3b, 0xb3, 0x02, 0xb1, 0xb1, 0xb1, 0xb1, 0xa2, 0x34, + 0x56, 0x96, 0x94, 0x14, 0x16, 0xfe, 0x01, 0x13, 0x4a, 0x62, 0x65, 0x2c, 0xd0, 0x1c, 0x05, 0xfe, + 0x0c, 0xb3, 0x33, 0xb3, 0x40, 0x20, 0xb1, 0xa2, 0xb9, 0xdb, 0x7d, 0x9e, 0xe7, 0x7d, 0x9f, 0xf7, + 0x2b, 0x0b, 0xe7, 0x22, 0x21, 0x53, 0x21, 0x03, 0x99, 0x60, 0xd9, 0x67, 0x3c, 0x0e, 0xde, 0x2e, + 0x86, 0x54, 0xe1, 0xc5, 0x63, 0xc0, 0x1f, 0x64, 0x42, 0x09, 0x67, 0xca, 0xe8, 0xfc, 0x63, 0xd8, + 0xea, 0xea, 0xb5, 0x58, 0xc4, 0x42, 0x6b, 0x82, 0xe2, 0xc9, 0xc8, 0xeb, 0x5e, 0x2c, 0x44, 0x9c, + 0xd0, 0x40, 0xbf, 0x85, 0x79, 0x2f, 0x20, 0x79, 0x86, 0x15, 0x13, 0xdc, 0xf2, 0x8d, 0xb3, 0xbc, + 0x62, 0x29, 0x95, 0x0a, 0xa7, 0x03, 0x2b, 0x98, 0x36, 0x7e, 0xc8, 0x64, 0xb6, 0xe6, 0x86, 0xba, + 0x81, 0x53, 0xc6, 0x45, 0xa0, 0x7f, 0x0d, 0x34, 0xfb, 0x6d, 0x04, 0xd6, 0x5e, 0xe0, 0x84, 0x11, + 0xac, 0x44, 0xb6, 0xc6, 0x62, 0xce, 0x78, 0xfc, 0x90, 0xf7, 0x84, 0xd3, 0x86, 0x97, 0x31, 0x21, + 0x19, 0x95, 0xd2, 0x05, 0x4d, 0xd0, 0xba, 0xda, 0x71, 0x7f, 0x7c, 0x5d, 0xa8, 0xd9, 0x74, 0xf7, + 0x0c, 0xb3, 0xa6, 0x32, 0xc6, 0xe3, 0x6e, 0x29, 0x74, 0x66, 0xe0, 0x84, 0x54, 0x38, 0x53, 0xa8, + 0x4f, 0x59, 0xdc, 0x57, 0xee, 0x48, 0x13, 0xb4, 0x46, 0xbb, 0x55, 0x8d, 0xad, 0x68, 0xa8, 0x90, + 0x30, 0x4e, 0xe8, 0x26, 0x12, 0xbd, 0x9e, 0xa4, 0xca, 0x1d, 0x35, 0x12, 0x8d, 0x3d, 0xd5, 0x90, + 0xf3, 0x04, 0x4e, 0xbc, 0xc1, 0x2c, 0xa1, 0x04, 0xe5, 0x5c, 0xb1, 0xc4, 0x1d, 0x6b, 0x82, 0x56, + 0xb5, 0x5d, 0xf7, 0x4d, 0xe3, 0x7e, 0xd9, 0xb8, 0xff, 0xac, 0x6c, 0xbc, 0x73, 0x6d, 0xef, 0xa0, + 0x51, 0xd9, 0xfe, 0xdd, 0x00, 0x3b, 0x47, 0xbb, 0xf3, 0xa0, 0x5b, 0x35, 0xe1, 0xcf, 0x8b, 0x68, + 0xc7, 0x83, 0x50, 0x89, 0x34, 0x94, 0x4a, 0x70, 0x4a, 0xdc, 0x4b, 0x4d, 0xd0, 0xba, 0xd2, 0x3d, + 0x85, 0x38, 0x6d, 0x38, 0x99, 0x32, 0x29, 0x29, 0x41, 0x61, 0x22, 0xa2, 0x75, 0x89, 0x22, 0x91, + 0x73, 0x45, 0x33, 0x77, 0x5c, 0x57, 0x76, 0xd3, 0x90, 0x1d, 0xcd, 0xdd, 0x37, 0xd4, 0xd2, 0xd8, + 0xdf, 0x2f, 0x0d, 0x30, 0xfb, 0x7d, 0x0c, 0x8e, 0xaf, 0xe2, 0x0c, 0xa7, 0xd2, 0xb9, 0x03, 0x6b, + 0x92, 0xc5, 0xfc, 0x24, 0xc9, 0x06, 0xe3, 0x44, 0x6c, 0xe8, 0xc9, 0x8d, 0x76, 0x1d, 0xc3, 0x99, + 0x1c, 0x2f, 0x35, 0xe3, 0xbc, 0x2b, 0x6c, 0x39, 0xb2, 0x51, 0x03, 0x9a, 0x95, 0x21, 0xc5, 0xcc, + 0x26, 0x3a, 0x2b, 0x45, 0x47, 0xbf, 0x0e, 0x1a, 0x73, 0x31, 0x53, 0xfd, 0x3c, 0xf4, 0x23, 0x91, + 0xda, 0x55, 0xda, 0xbf, 0x05, 0x49, 0xd6, 0x03, 0xb5, 0x35, 0xa0, 0xd2, 0x5f, 0xa6, 0xd1, 0xe7, + 0xa3, 0xdd, 0xf9, 0xeb, 0x76, 0xef, 0x84, 0x46, 0x28, 0xdc, 0x52, 0x54, 0x9a, 0x61, 0x38, 0x29, + 0xe3, 0x6b, 0xda, 0x65, 0x95, 0x66, 0xd6, 0xfc, 0x35, 0xbc, 0x45, 0xc4, 0x06, 0x2f, 0x2e, 0x07, + 0x15, 0xb3, 0x42, 0xe5, 0x8d, 0xe9, 0x75, 0x54, 0xdb, 0xd3, 0xe7, 0x66, 0xbd, 0x6c, 0x05, 0x66, + 0xd4, 0x9f, 0x8e, 0x47, 0x5d, 0x2b, 0xf3, 0x3c, 0xc2, 0x2c, 0x29, 0x45, 0xce, 0x07, 0x00, 0xeb, + 0xfa, 0xdc, 0x51, 0x2f, 0xc3, 0x51, 0x01, 0x21, 0x22, 0xf2, 0x30, 0xa1, 0xba, 0x5f, 0xbd, 0xd0, + 0x8b, 0x6c, 0x71, 0x4a, 0x7b, 0x3d, 0xb0, 0x56, 0xcb, 0xda, 0xa9, 0x68, 0xd9, 0x79, 0x0f, 0xe0, + 0xd4, 0xb9, 0x3a, 0x4c, 0xbd, 0xfa, 0x12, 0x2e, 0xb2, 0x88, 0xc9, 0x33, 0x45, 0x18, 0x9b, 0xa5, + 0x99, 0x8f, 0x47, 0xbb, 0xf3, 0xb7, 0x4f, 0xe5, 0xda, 0x3c, 0xf9, 0x60, 0x98, 0xe3, 0xe9, 0x3c, + 0xde, 0x19, 0x7a, 0x60, 0x6f, 0xe8, 0x81, 0xfd, 0xa1, 0x07, 0xfe, 0x0c, 0x3d, 0xb0, 0x7d, 0xe8, + 0x55, 0xf6, 0x0f, 0xbd, 0xca, 0xcf, 0x43, 0xaf, 0xf2, 0x6a, 0xe1, 0xbf, 0x95, 0x9d, 0xca, 0xa6, + 0x8b, 0x0c, 0xc7, 0xf5, 0xca, 0xee, 0xfe, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xa6, 0xc8, 0xae, 0x4a, + 0x9e, 0x04, 0x00, 0x00, } func (this *ValidatorSigningInfo) Equal(that interface{}) bool { diff --git a/x/tx/aminojson/encoder.go b/x/tx/aminojson/encoder.go index bafba1eea35d..aaf8eee84c7f 100644 --- a/x/tx/aminojson/encoder.go +++ b/x/tx/aminojson/encoder.go @@ -2,6 +2,7 @@ package aminojson import ( authapi "cosmossdk.io/api/cosmos/auth/v1beta1" + "cosmossdk.io/math" "encoding/base64" "encoding/json" "errors" @@ -10,6 +11,23 @@ import ( "io" ) +func cosmosDecBytesEncoder(_ AminoJSON, v protoreflect.Value, w io.Writer) error { + switch bz := v.Interface().(type) { + case []byte: + if len(bz) == 0 { + return jsonMarshal(w, "0") + } + var dec math.LegacyDec + err := dec.Unmarshal(bz) + if err != nil { + return err + } + return jsonMarshal(w, dec.String()) + default: + return fmt.Errorf("unsupported type %T", bz) + } +} + func cosmosDecEncoder(aj AminoJSON, v protoreflect.Value, w io.Writer) error { switch s := v.Interface().(type) { case string: diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index a5251ee05c77..fcb47eacd891 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -43,6 +43,7 @@ func NewAminoJSON() AminoJSON { "empty_string": emptyStringEncoder, "json_default": jsonDefaultEncoder, "null_slice_as_empty": nullSliceAsEmptyEncoder, + "cosmos_dec_bytes": cosmosDecBytesEncoder, }, } return aj diff --git a/x/tx/rapidproto/rapidproto.go b/x/tx/rapidproto/rapidproto.go index f79579a1037b..c6fa29df822f 100644 --- a/x/tx/rapidproto/rapidproto.go +++ b/x/tx/rapidproto/rapidproto.go @@ -1,6 +1,7 @@ package rapidproto import ( + "cosmossdk.io/api/amino" "fmt" "math" @@ -190,6 +191,12 @@ func (opts GeneratorOptions) genScalarFieldValue(t *rapid.T, field protoreflect. case protoreflect.BoolKind: return protoreflect.ValueOfBool(rapid.Bool().Draw(t, name)) case protoreflect.BytesKind: + if proto.HasExtension(fopts, amino.E_Encoding) { + encoding := proto.GetExtension(fopts, amino.E_Encoding).(string) + if encoding == "cosmos_dec_bytes" && opts.GogoUnmarshalCompatibleDecimal { + return protoreflect.ValueOfBytes([]byte{}) + } + } return protoreflect.ValueOfBytes(rapid.SliceOf(rapid.Byte()).Draw(t, name)) case protoreflect.FloatKind: return protoreflect.ValueOfFloat32(rapid.Float32().Draw(t, name)) From ff8679839f25abd21f9fbbebc0e3608586b1d8eb Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sun, 12 Feb 2023 19:34:27 -0700 Subject: [PATCH 071/122] WIP staking --- api/cosmos/staking/v1beta1/staking.pulsar.go | 709 ++++---- api/cosmos/staking/v1beta1/tx.pulsar.go | 451 ++--- proto/cosmos/staking/v1beta1/staking.proto | 9 +- proto/cosmos/staking/v1beta1/tx.proto | 3 +- tests/integration/aminojson/aminojson_test.go | 41 +- x/staking/types/staking.pb.go | 1560 +++++++++-------- x/staking/types/tx.pb.go | 142 +- x/tx/aminojson/json_marshal.go | 1 + 8 files changed, 1479 insertions(+), 1437 deletions(-) diff --git a/api/cosmos/staking/v1beta1/staking.pulsar.go b/api/cosmos/staking/v1beta1/staking.pulsar.go index 869651027bc5..a2796517d552 100644 --- a/api/cosmos/staking/v1beta1/staking.pulsar.go +++ b/api/cosmos/staking/v1beta1/staking.pulsar.go @@ -14062,166 +14062,114 @@ var file_cosmos_staking_v1beta1_staking_proto_rawDesc = []byte{ 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x73, 0x65, 0x74, 0x22, - 0xa8, 0x02, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, - 0x74, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, + 0xb7, 0x02, 0x0a, 0x0f, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, + 0x74, 0x65, 0x73, 0x12, 0x55, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, - 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, - 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x57, 0x0a, 0x08, 0x6d, 0x61, 0x78, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, - 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x07, 0x6d, 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x64, - 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, - 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x52, 0x61, 0x74, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xc1, 0x01, 0x0a, 0x0a, 0x43, - 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x61, 0x0a, 0x10, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x42, 0x0d, 0xc8, 0xde, - 0x1f, 0x00, 0xd0, 0xde, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, - 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xa8, - 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x29, - 0x0a, 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, - 0x63, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, - 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xb7, 0x07, 0x0a, 0x09, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x43, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0f, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x59, 0x0a, 0x10, - 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x18, 0xca, 0xb4, - 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, - 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, - 0x73, 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, - 0x3a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x6e, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, 0x0a, 0x06, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, - 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x12, 0x67, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, - 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, - 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x50, 0x0a, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, - 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x75, 0x6e, 0x62, 0x6f, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x63, 0x6f, - 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x6c, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, - 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x49, 0x6e, 0x74, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x1b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x6e, 0x62, - 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x75, 0x6e, 0x62, - 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, - 0xa0, 0x1f, 0x00, 0x22, 0x46, 0x0a, 0x0c, 0x56, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0xa0, 0x01, 0x0a, 0x06, - 0x44, 0x56, 0x50, 0x61, 0x69, 0x72, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, - 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x4a, - 0x0a, 0x07, 0x44, 0x56, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x05, 0x70, 0x61, 0x69, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x44, 0x56, 0x50, 0x61, 0x69, 0x72, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0xf9, 0x01, 0x0a, 0x0a, 0x44, - 0x56, 0x56, 0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x4c, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x72, - 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x53, 0x72, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4c, - 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, - 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x44, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x08, 0x88, 0xa0, - 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x58, 0x0a, 0x0b, 0x44, 0x56, 0x56, 0x54, 0x72, 0x69, - 0x70, 0x6c, 0x65, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x08, 0x74, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x44, 0x56, 0x56, 0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, - 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x74, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, 0x73, - 0x22, 0xfa, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x54, 0x0a, - 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, - 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, - 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x06, 0x73, 0x68, 0x61, - 0x72, 0x65, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x84, 0x02, - 0x0a, 0x13, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x12, 0x5c, 0x0a, 0x08, 0x6d, 0x61, + 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, + 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x07, 0x6d, 0x61, 0x78, 0x52, 0x61, 0x74, 0x65, 0x12, 0x69, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, + 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, + 0x61, 0x74, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xc1, 0x01, 0x0a, 0x0a, 0x43, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x61, 0x0a, 0x10, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x42, 0x0d, 0xc8, 0xde, 0x1f, + 0x00, 0xd0, 0xde, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, + 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xa8, 0x01, + 0x0a, 0x0b, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x65, 0x62, 0x73, 0x69, 0x74, 0x65, 0x12, 0x29, 0x0a, + 0x10, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, + 0x79, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xb7, 0x07, 0x0a, 0x09, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x43, 0x0a, 0x10, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0f, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x59, 0x0a, 0x10, 0x63, + 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, 0x5f, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, + 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, + 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x0f, 0x63, 0x6f, 0x6e, 0x73, 0x65, 0x6e, 0x73, 0x75, 0x73, + 0x50, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x6a, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x3a, + 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x6f, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x54, 0x0a, 0x06, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, + 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x12, 0x67, 0x0a, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, + 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x53, 0x68, 0x61, 0x72, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x75, + 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x50, 0x0a, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, + 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, + 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x75, 0x6e, 0x62, 0x6f, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x6c, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x73, + 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, + 0x6e, 0x74, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x1b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x6e, 0x62, 0x6f, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, + 0x5f, 0x69, 0x64, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x04, 0x52, 0x0c, 0x75, 0x6e, 0x62, 0x6f, + 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, + 0x1f, 0x00, 0x22, 0x46, 0x0a, 0x0c, 0x56, 0x61, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x65, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, + 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x22, 0xa0, 0x01, 0x0a, 0x06, 0x44, + 0x56, 0x50, 0x61, 0x69, 0x72, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, @@ -14230,207 +14178,260 @@ var file_cosmos_staking_v1beta1_staking_proto_rawDesc = []byte{ 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x55, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, - 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, - 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xbd, 0x03, 0x0a, 0x18, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, - 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, - 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, - 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x65, - 0x0a, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, - 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x64, - 0x12, 0x3c, 0x0a, 0x1b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6e, - 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x4f, 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x04, - 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xbb, 0x03, 0x0a, 0x11, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, - 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x65, 0x0a, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, - 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x0e, - 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x5b, - 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x5f, 0x64, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, - 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, - 0x52, 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x44, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x75, - 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x04, 0x52, 0x0b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x3c, - 0x0a, 0x1b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, 0x68, - 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x6e, - 0x48, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x04, 0xe8, 0xa0, - 0x1f, 0x01, 0x22, 0xcb, 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, + 0x65, 0x73, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x4a, 0x0a, + 0x07, 0x44, 0x56, 0x50, 0x61, 0x69, 0x72, 0x73, 0x12, 0x3f, 0x0a, 0x05, 0x70, 0x61, 0x69, 0x72, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x44, 0x56, 0x50, 0x61, 0x69, 0x72, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x05, 0x70, 0x61, 0x69, 0x72, 0x73, 0x22, 0xf9, 0x01, 0x0a, 0x0a, 0x44, 0x56, + 0x56, 0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x4c, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4c, 0x0a, 0x15, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, + 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x53, 0x72, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4c, 0x0a, + 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, + 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x44, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, + 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x58, 0x0a, 0x0b, 0x44, 0x56, 0x56, 0x54, 0x72, 0x69, 0x70, + 0x6c, 0x65, 0x74, 0x73, 0x12, 0x49, 0x0a, 0x08, 0x74, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x44, 0x56, 0x56, 0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x74, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x74, 0x73, 0x22, + 0xfa, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, + 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x72, - 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4c, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x73, 0x74, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4e, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x65, - 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, - 0x22, 0x93, 0x03, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x75, - 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, - 0xc8, 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x75, - 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, - 0x6d, 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x45, 0x6e, 0x74, - 0x72, 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, - 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x11, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, - 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6f, 0x6e, 0x64, 0x5f, 0x64, 0x65, 0x6e, 0x6f, - 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6f, 0x6e, 0x64, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x12, 0x7c, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x4c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xf2, - 0xde, 0x1f, 0x1a, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, - 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0x52, 0x11, 0x6d, - 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, - 0x3a, 0x24, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, - 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x07, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x04, 0xe8, 0xa0, - 0x1f, 0x00, 0x22, 0xde, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x63, 0x0a, 0x12, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x11, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x56, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, + 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x54, 0x0a, 0x06, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, + 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x84, 0x02, 0x0a, + 0x13, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x55, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x55, 0x6e, 0x62, + 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, + 0xa0, 0x1f, 0x00, 0x22, 0xbd, 0x03, 0x0a, 0x18, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, + 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, + 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x65, 0x0a, + 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x04, 0xe8, - 0xa0, 0x1f, 0x01, 0x22, 0xc9, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0c, - 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x56, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x00, 0x22, - 0x8e, 0x02, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x82, 0x01, 0x0a, 0x11, 0x6e, 0x6f, 0x74, - 0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x56, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x49, 0x6e, 0x74, 0xea, 0xde, 0x1f, 0x11, 0x6e, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64, - 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x6e, 0x6f, - 0x74, 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x77, 0x0a, - 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x52, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x49, 0x6e, 0x74, 0xea, 0xde, 0x1f, 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x3a, 0x08, 0xe8, 0xa0, 0x1f, 0x01, 0xf0, 0xa0, 0x1f, 0x01, - 0x22, 0x59, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, - 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x2a, 0xb6, 0x01, 0x0a, 0x0a, - 0x42, 0x6f, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x17, 0x42, 0x4f, - 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x0f, 0x8a, 0x9d, 0x20, 0x0b, 0x55, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x14, 0x42, 0x4f, 0x4e, 0x44, - 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, - 0x10, 0x01, 0x1a, 0x0c, 0x8a, 0x9d, 0x20, 0x08, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, - 0x12, 0x28, 0x0a, 0x15, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x1a, 0x0d, 0x8a, 0x9d, 0x20, - 0x09, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x12, 0x42, 0x4f, - 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, - 0x10, 0x03, 0x1a, 0x0a, 0x8a, 0x9d, 0x20, 0x06, 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x1a, 0x04, - 0x88, 0xa3, 0x1e, 0x00, 0x2a, 0x5d, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, - 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x55, - 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, - 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x54, 0x49, 0x4d, - 0x45, 0x10, 0x02, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x42, 0x0c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, - 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, - 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x49, 0x6e, 0x74, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x04, 0x52, 0x0b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, + 0x3c, 0x0a, 0x1b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, + 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x17, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, + 0x6e, 0x48, 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x04, 0xe8, + 0xa0, 0x1f, 0x01, 0x22, 0xbb, 0x03, 0x0a, 0x11, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, + 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x65, 0x0a, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x6c, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, + 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x0e, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x5b, 0x0a, + 0x0a, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x5f, 0x64, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, + 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, + 0x09, 0x73, 0x68, 0x61, 0x72, 0x65, 0x73, 0x44, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x6e, + 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, + 0x52, 0x0b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x3c, 0x0a, + 0x1b, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x6f, 0x6e, 0x5f, 0x68, 0x6f, + 0x6c, 0x64, 0x5f, 0x72, 0x65, 0x66, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x17, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x6e, 0x48, + 0x6f, 0x6c, 0x64, 0x52, 0x65, 0x66, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, + 0x01, 0x22, 0xcb, 0x02, 0x0a, 0x0c, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, + 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4c, 0x0a, 0x15, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x72, 0x63, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4c, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x73, 0x74, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4e, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x65, 0x6e, + 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, + 0x93, 0x03, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x75, 0x6e, + 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0xc8, + 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x75, 0x6e, + 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6d, + 0x61, 0x78, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6d, 0x61, 0x78, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6d, 0x61, 0x78, 0x45, 0x6e, 0x74, 0x72, + 0x69, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x12, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, + 0x6c, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x11, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x69, + 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6f, 0x6e, 0x64, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6f, 0x6e, 0x64, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x12, 0x7c, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x4c, + 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xf2, 0xde, + 0x1f, 0x1a, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0x52, 0x11, 0x6d, 0x69, + 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x3a, + 0x24, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0a, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x07, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, + 0x00, 0x22, 0xde, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x63, 0x0a, 0x12, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x11, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x56, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x49, 0x6e, 0x74, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x04, 0xe8, 0xa0, + 0x1f, 0x01, 0x22, 0xc9, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0c, 0x72, + 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x56, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x8e, + 0x02, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x82, 0x01, 0x0a, 0x11, 0x6e, 0x6f, 0x74, 0x5f, + 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x56, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x49, 0x6e, 0x74, 0xea, 0xde, 0x1f, 0x11, 0x6e, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x65, + 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x6e, 0x6f, 0x74, + 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x77, 0x0a, 0x0d, + 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x52, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x49, 0x6e, 0x74, 0xea, 0xde, 0x1f, 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, + 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x3a, 0x08, 0xe8, 0xa0, 0x1f, 0x01, 0xf0, 0xa0, 0x1f, 0x01, 0x22, + 0x59, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, + 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x2a, 0xb6, 0x01, 0x0a, 0x0a, 0x42, + 0x6f, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x17, 0x42, 0x4f, 0x4e, + 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x0f, 0x8a, 0x9d, 0x20, 0x0b, 0x55, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x14, 0x42, 0x4f, 0x4e, 0x44, 0x5f, + 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, + 0x01, 0x1a, 0x0c, 0x8a, 0x9d, 0x20, 0x08, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x12, + 0x28, 0x0a, 0x15, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, + 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x1a, 0x0d, 0x8a, 0x9d, 0x20, 0x09, + 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x12, 0x42, 0x4f, 0x4e, + 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, + 0x03, 0x1a, 0x0a, 0x8a, 0x9d, 0x20, 0x06, 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x1a, 0x04, 0x88, + 0xa3, 0x1e, 0x00, 0x2a, 0x5d, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, + 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x55, 0x42, + 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x46, + 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x54, 0x49, 0x4d, 0x45, + 0x10, 0x02, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x42, 0x0c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, + 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, + 0x3a, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/staking/v1beta1/tx.pulsar.go b/api/cosmos/staking/v1beta1/tx.pulsar.go index 81789ad31a9c..9047038e5caa 100644 --- a/api/cosmos/staking/v1beta1/tx.pulsar.go +++ b/api/cosmos/staking/v1beta1/tx.pulsar.go @@ -7792,7 +7792,7 @@ var file_cosmos_staking_v1beta1_tx_proto_rawDesc = []byte{ 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, - 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfe, 0x04, 0x0a, 0x12, 0x4d, 0x73, 0x67, + 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x83, 0x05, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x50, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, @@ -7804,247 +7804,248 @@ var file_cosmos_staking_v1beta1_tx_proto_rawDesc = []byte{ 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x6c, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x71, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, + 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, - 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x1a, - 0x18, 0x01, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x11, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x18, 0xca, 0xb4, 0x2d, 0x14, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x2e, 0x50, 0x75, 0x62, - 0x4b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, 0x12, 0x3a, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x40, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x47, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x1a, 0x18, 0x01, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, + 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, + 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6b, + 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x18, + 0xca, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x6f, 0x2e, 0x50, 0x75, 0x62, 0x4b, 0x65, 0x79, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6b, 0x65, 0x79, + 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x40, 0x88, 0xa0, + 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, + 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1c, + 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb8, 0x03, 0x0a, + 0x10, 0x4d, 0x73, 0x67, 0x45, 0x64, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x50, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, + 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, + 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x61, 0x0a, 0x0f, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x38, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, + 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0e, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x68, 0x0a, + 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x38, 0xda, 0xde, 0x1f, 0x26, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3e, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x1d, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1c, 0x0a, 0x1a, 0x4d, 0x73, 0x67, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb8, 0x03, 0x0a, 0x10, 0x4d, 0x73, 0x67, 0x45, - 0x64, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x50, 0x0a, 0x0b, - 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, - 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x61, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x38, - 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x12, 0x68, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, - 0x73, 0x65, 0x6c, 0x66, 0x5f, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x38, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, - 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, - 0x11, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x6c, 0x66, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x3e, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, - 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x45, 0x64, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x45, 0x64, 0x69, 0x74, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x94, - 0x02, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x45, - 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x39, 0x88, 0xa0, 0x1f, 0x00, - 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x16, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, - 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf7, 0x02, 0x0a, - 0x12, 0x4d, 0x73, 0x67, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x45, 0x64, 0x69, 0x74, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x4d, 0x73, 0x67, 0x45, 0x64, + 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x94, 0x02, 0x0a, 0x0b, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4c, 0x0a, 0x15, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x72, - 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4c, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x44, 0x73, 0x74, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, - 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x40, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, - 0xb0, 0x2a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0x70, 0x0a, 0x1a, 0x4d, 0x73, 0x67, 0x42, 0x65, 0x67, - 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, - 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x98, 0x02, 0x0a, 0x0d, 0x4d, 0x73, 0x67, - 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, - 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3b, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, - 0x82, 0xe7, 0xb0, 0x2a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x55, 0x6e, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, - 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, - 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0xdf, 0x02, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x62, - 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, - 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, - 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3c, - 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x27, 0x0a, 0x0f, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x4a, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, - 0xe7, 0xb0, 0x2a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x27, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, - 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x26, 0x0a, 0x24, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, - 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x0f, 0x4d, 0x73, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, - 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, + 0x39, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x11, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, + 0xe7, 0xb0, 0x2a, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, + 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x4d, 0x73, + 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xf7, 0x02, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x52, 0x65, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x4c, 0x0a, 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, + 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x53, 0x72, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4c, 0x0a, + 0x15, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, + 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x13, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x44, 0x73, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x40, 0x88, 0xa0, 0x1f, 0x00, 0xe8, + 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x1d, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x42, 0x65, 0x67, 0x69, + 0x6e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0x70, 0x0a, 0x1a, 0x4d, + 0x73, 0x67, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, + 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x63, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x98, 0x02, + 0x0a, 0x0d, 0x4d, 0x73, 0x67, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, + 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3b, 0x88, 0xa0, 0x1f, + 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x6e, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x15, 0x4d, 0x73, 0x67, + 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, + 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xdf, 0x02, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x37, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x24, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, - 0x67, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x9d, 0x06, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x12, 0x71, 0x0a, 0x0f, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0d, 0x45, 0x64, 0x69, 0x74, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x45, 0x0a, 0x11, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, + 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3a, 0x4a, 0x88, 0xa0, 0x1f, 0x00, + 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x27, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x26, 0x0a, 0x24, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, + 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc5, + 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x41, 0x0a, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x37, 0x82, + 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, + 0x2a, 0x24, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x32, 0x9d, 0x06, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x71, 0x0a, 0x0f, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x2a, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x64, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, - 0x64, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x08, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, - 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x71, 0x0a, 0x0f, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6b, 0x0a, 0x0d, + 0x45, 0x64, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x28, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x64, 0x69, 0x74, 0x56, 0x61, + 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x4d, 0x73, 0x67, 0x45, 0x64, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x08, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x65, - 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0a, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, + 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x71, 0x0a, 0x0f, 0x42, 0x65, 0x67, 0x69, 0x6e, + 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, 0x01, 0x0a, 0x19, 0x43, 0x61, - 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x4d, 0x73, 0x67, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0a, 0x55, 0x6e, + 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x12, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x6e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x1a, + 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x6e, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x8f, + 0x01, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, + 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x1a, 0x3c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, + 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x68, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, + 0x01, 0x42, 0xd7, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, - 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x3c, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0c, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x27, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xd7, 0x01, 0x0a, - 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, - 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, - 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, - 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/staking/v1beta1/staking.proto b/proto/cosmos/staking/v1beta1/staking.proto index 5440ece292bd..20cfb9a91222 100644 --- a/proto/cosmos/staking/v1beta1/staking.proto +++ b/proto/cosmos/staking/v1beta1/staking.proto @@ -32,19 +32,22 @@ message CommissionRates { string rate = 1 [ (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true ]; // max_rate defines the maximum commission rate which validator can ever charge, as a fraction. string max_rate = 2 [ (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true ]; // max_change_rate defines the maximum daily increase of the validator commission, as a fraction. string max_change_rate = 3 [ (cosmos_proto.scalar) = "cosmos.Dec", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true ]; } diff --git a/proto/cosmos/staking/v1beta1/tx.proto b/proto/cosmos/staking/v1beta1/tx.proto index a7415fec135e..8824f441d8f5 100644 --- a/proto/cosmos/staking/v1beta1/tx.proto +++ b/proto/cosmos/staking/v1beta1/tx.proto @@ -60,7 +60,8 @@ message MsgCreateValidator { string min_self_delegation = 3 [ (cosmos_proto.scalar) = "cosmos.Int", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true ]; // Deprecated: Use of Delegator Address in MsgCreateValidator is deprecated. // The validator address bytes and delegator address bytes refer to the same account while creating validator (defer only in bech32 notation). diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 1e27b597303e..16fcbb306592 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -6,6 +6,7 @@ import ( "github.com/cosmos/cosmos-sdk/x/mint" "github.com/cosmos/cosmos-sdk/x/params" "github.com/cosmos/cosmos-sdk/x/slashing" + "github.com/cosmos/cosmos-sdk/x/staking" "reflect" "testing" "time" @@ -34,6 +35,7 @@ import ( mintapi "cosmossdk.io/api/cosmos/mint/v1beta1" paramsapi "cosmossdk.io/api/cosmos/params/v1beta1" slashingapi "cosmossdk.io/api/cosmos/slashing/v1beta1" + stakingapi "cosmossdk.io/api/cosmos/staking/v1beta1" "cosmossdk.io/x/evidence" evidencetypes "cosmossdk.io/x/evidence/types" feegranttypes "cosmossdk.io/x/feegrant" @@ -41,7 +43,7 @@ import ( "cosmossdk.io/x/tx/aminojson" "cosmossdk.io/x/tx/rapidproto" codectypes "github.com/cosmos/cosmos-sdk/codec/types" - cryptotypes "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" + ed25519types "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" "github.com/cosmos/cosmos-sdk/testutil/testdata" "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/bech32" @@ -63,6 +65,7 @@ import ( minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" "github.com/cosmos/cosmos-sdk/x/params/types/proposal" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" + stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" ) type generatedType struct { @@ -231,6 +234,21 @@ var ( genType(&slashingtypes.Params{}, &slashingapi.Params{}, genOpts.WithDisallowNil()), genType(&slashingtypes.MsgUnjail{}, &slashingapi.MsgUnjail{}, genOpts), genType(&slashingtypes.MsgUpdateParams{}, &slashingapi.MsgUpdateParams{}, genOpts.WithDisallowNil()), + + // staking + genType(&stakingtypes.MsgCreateValidator{}, &stakingapi.MsgCreateValidator{}, + genOpts.WithDisallowNil(). + WithAnyTypes(&ed25519.PubKey{}). + WithInterfaceHint("cosmos.crypto.PubKey", &ed25519.PubKey{}), + ), + genType(&stakingtypes.MsgEditValidator{}, &stakingapi.MsgEditValidator{}, genOpts), + genType(&stakingtypes.MsgDelegate{}, &stakingapi.MsgDelegate{}, genOpts), + genType(&stakingtypes.MsgUndelegate{}, &stakingapi.MsgUndelegate{}, genOpts), + genType(&stakingtypes.MsgBeginRedelegate{}, &stakingapi.MsgBeginRedelegate{}, genOpts), + genType(&stakingtypes.MsgCancelUnbondingDelegationResponse{}, + &stakingapi.MsgCancelUnbondingDelegationResponse{}, genOpts), + genType(&stakingtypes.MsgUpdateParams{}, &stakingapi.MsgUpdateParams{}, genOpts), + genType(&stakingtypes.StakeAuthorization{}, &stakingapi.StakeAuthorization{}, genOpts), } ) @@ -239,7 +257,7 @@ func TestAminoJSON_Equivalence(t *testing.T) { auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, consensus.AppModuleBasic{}, distribution.AppModuleBasic{}, evidence.AppModuleBasic{}, feegrantmodule.AppModuleBasic{}, gov.AppModuleBasic{}, groupmodule.AppModuleBasic{}, mint.AppModuleBasic{}, params.AppModuleBasic{}, - slashing.AppModuleBasic{}) + slashing.AppModuleBasic{}, staking.AppModuleBasic{}) aj := aminojson.NewAminoJSON() for _, tt := range genTypes { @@ -295,7 +313,7 @@ func newAny(t *testing.T, msg proto.Message) *anypb.Any { func TestAminoJSON_LegacyParity(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, - bank.AppModuleBasic{}, distribution.AppModuleBasic{}, slashing.AppModuleBasic{}) + bank.AppModuleBasic{}, distribution.AppModuleBasic{}, slashing.AppModuleBasic{}, staking.AppModuleBasic{}) aj := aminojson.NewAminoJSON() addr1 := types.AccAddress([]byte("addr1")) @@ -303,6 +321,8 @@ func TestAminoJSON_LegacyParity(t *testing.T) { genericAuth, _ := codectypes.NewAnyWithValue(&authztypes.GenericAuthorization{Msg: "foo"}) genericAuthPulsar := newAny(t, &authzapi.GenericAuthorization{Msg: "foo"}) + pubkeyAny, _ := codectypes.NewAnyWithValue(&ed25519.PubKey{Key: []byte("foo")}) + pubkeyAnyPulsar := newAny(t, &ed25519.PubKey{Key: []byte("foo")}) dec10bz, _ := types.NewDec(10).Marshal() cases := map[string]struct { @@ -326,6 +346,10 @@ func TestAminoJSON_LegacyParity(t *testing.T) { BaseAccount: &authapi.BaseAccount{Address: addr1.String()}, Permissions: []string{}}, roundTripUnequal: true, }, + "auth/base_account": { + gogo: &authtypes.BaseAccount{Address: addr1.String(), PubKey: pubkeyAny}, + pulsar: &authapi.BaseAccount{Address: addr1.String(), PubKey: pubkeyAnyPulsar}, + }, "authz/msg_grant": { gogo: &authztypes.MsgGrant{ Grant: authztypes.Grant{Expiration: &now, Authorization: genericAuth}}, @@ -362,7 +386,7 @@ func TestAminoJSON_LegacyParity(t *testing.T) { pulsar: &distapi.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, }, "crypto/pubkey": { - gogo: &cryptotypes.PubKey{Key: []byte("key")}, pulsar: &ed25519.PubKey{Key: []byte("key")}, + gogo: &ed25519types.PubKey{Key: []byte("key")}, pulsar: &ed25519.PubKey{Key: []byte("key")}, }, "consensus/evidence_params/duration": { gogo: &gov_v1beta1_types.VotingParams{VotingPeriod: 1e9 + 7}, @@ -419,6 +443,15 @@ func TestAminoJSON_LegacyParity(t *testing.T) { MinSignedPerWindow: dec10bz, }, }, + "staking/create_validator": { + gogo: &stakingtypes.MsgCreateValidator{Pubkey: pubkeyAny}, + pulsar: &stakingapi.MsgCreateValidator{ + Pubkey: pubkeyAnyPulsar, + Description: &stakingapi.Description{}, + Commission: &stakingapi.CommissionRates{}, + Value: &v1beta1.Coin{}, + }, + }, } for name, tc := range cases { t.Run(name, func(t *testing.T) { diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index 05307106602f..60e7ef5af77d 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -1276,124 +1276,125 @@ func init() { } var fileDescriptor_64c30c6cf92913c9 = []byte{ - // 1872 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x4d, 0x6c, 0x1b, 0xc7, - 0x15, 0xd6, 0x92, 0x0a, 0x25, 0x3d, 0x4a, 0x22, 0x35, 0x56, 0x6c, 0x9a, 0x6e, 0x45, 0x86, 0x71, - 0x13, 0xc5, 0x88, 0xa9, 0x5a, 0x05, 0x7a, 0x50, 0x83, 0x16, 0xa6, 0x28, 0xc7, 0x4c, 0x1d, 0x49, - 0x58, 0x4a, 0x4a, 0xd3, 0xa2, 0x58, 0x0c, 0x77, 0x47, 0xd4, 0x54, 0xdc, 0x59, 0x62, 0x67, 0xe8, - 0x88, 0x40, 0x4f, 0x45, 0x0f, 0x81, 0x0e, 0x45, 0x80, 0x5c, 0x7a, 0x31, 0x60, 0xa0, 0x17, 0xf7, - 0x96, 0x43, 0xd0, 0x1e, 0x8a, 0x1e, 0x7a, 0x4b, 0xdb, 0x8b, 0x91, 0x53, 0xd1, 0x83, 0x5a, 0xd8, - 0x87, 0x04, 0x3d, 0x15, 0xbd, 0xb5, 0xa7, 0x62, 0x66, 0x67, 0x7f, 0x28, 0x8a, 0x96, 0x64, 0xa8, - 0x45, 0x00, 0x5f, 0x24, 0xce, 0xcc, 0x7b, 0xdf, 0xbe, 0xf7, 0xbd, 0x9f, 0xf9, 0x81, 0xeb, 0xb6, - 0xc7, 0x5d, 0x8f, 0x2f, 0x71, 0x81, 0xf7, 0x29, 0x6b, 0x2f, 0xdd, 0xbf, 0xd5, 0x22, 0x02, 0xdf, - 0x0a, 0xc7, 0xd5, 0xae, 0xef, 0x09, 0x0f, 0x5d, 0x0e, 0xa4, 0xaa, 0xe1, 0xac, 0x96, 0x2a, 0xce, - 0xb7, 0xbd, 0xb6, 0xa7, 0x44, 0x96, 0xe4, 0xaf, 0x40, 0xba, 0x78, 0xb5, 0xed, 0x79, 0xed, 0x0e, - 0x59, 0x52, 0xa3, 0x56, 0x6f, 0x77, 0x09, 0xb3, 0xbe, 0x5e, 0x5a, 0x38, 0xbe, 0xe4, 0xf4, 0x7c, - 0x2c, 0xa8, 0xc7, 0xf4, 0x7a, 0xe9, 0xf8, 0xba, 0xa0, 0x2e, 0xe1, 0x02, 0xbb, 0xdd, 0x10, 0x3b, - 0xb0, 0xc4, 0x0a, 0x3e, 0xaa, 0xcd, 0xd2, 0xd8, 0xda, 0x95, 0x16, 0xe6, 0x24, 0xf2, 0xc3, 0xf6, - 0x68, 0x88, 0x3d, 0x87, 0x5d, 0xca, 0xbc, 0x25, 0xf5, 0x57, 0x4f, 0x7d, 0x4d, 0x10, 0xe6, 0x10, - 0xdf, 0xa5, 0x4c, 0x2c, 0x89, 0x7e, 0x97, 0xf0, 0xe0, 0xaf, 0x5e, 0xbd, 0x96, 0x58, 0xc5, 0x2d, - 0x9b, 0x26, 0x17, 0x2b, 0x1f, 0x1b, 0x30, 0x7b, 0x97, 0x72, 0xe1, 0xf9, 0xd4, 0xc6, 0x9d, 0x06, - 0xdb, 0xf5, 0xd0, 0x77, 0x20, 0xb3, 0x47, 0xb0, 0x43, 0xfc, 0x82, 0x51, 0x36, 0x16, 0xb3, 0xcb, - 0x85, 0x6a, 0x0c, 0x50, 0x0d, 0x74, 0xef, 0xaa, 0xf5, 0xda, 0xd4, 0x67, 0x47, 0xa5, 0xb1, 0x47, - 0x5f, 0x7c, 0x72, 0xc3, 0x30, 0xb5, 0x0a, 0xaa, 0x43, 0xe6, 0x3e, 0xee, 0x70, 0x22, 0x0a, 0xa9, - 0x72, 0x7a, 0x31, 0xbb, 0xfc, 0x4a, 0xf5, 0x64, 0xce, 0xab, 0x3b, 0xb8, 0x43, 0x1d, 0x2c, 0xbc, - 0x41, 0x94, 0x40, 0xb7, 0xf2, 0x28, 0x05, 0xb9, 0x55, 0xcf, 0x75, 0x29, 0xe7, 0xd4, 0x63, 0x26, - 0x16, 0x84, 0xa3, 0x4d, 0x18, 0xf7, 0xb1, 0x20, 0xca, 0xa8, 0xa9, 0xda, 0x5b, 0x52, 0xe9, 0xaf, - 0x47, 0xa5, 0xd7, 0xda, 0x54, 0xec, 0xf5, 0x5a, 0x55, 0xdb, 0x73, 0x35, 0x8d, 0xfa, 0xdf, 0x4d, - 0xee, 0xec, 0x6b, 0x4f, 0xeb, 0xc4, 0xfe, 0xfc, 0xd3, 0x9b, 0xa0, 0x0d, 0xa9, 0x13, 0xdb, 0x54, - 0x48, 0xe8, 0x3d, 0x98, 0x74, 0xf1, 0x81, 0xa5, 0x50, 0x53, 0x17, 0x80, 0x3a, 0xe1, 0xe2, 0x03, - 0x69, 0x2b, 0x72, 0x20, 0x27, 0x81, 0xed, 0x3d, 0xcc, 0xda, 0x24, 0xc0, 0x4f, 0x5f, 0x00, 0xfe, - 0x8c, 0x8b, 0x0f, 0x56, 0x15, 0xa6, 0xfc, 0xca, 0xca, 0xf8, 0x97, 0x0f, 0x4b, 0x46, 0xe5, 0x0f, - 0x06, 0x40, 0x4c, 0x15, 0xc2, 0x90, 0xb7, 0xa3, 0x91, 0xfa, 0x34, 0xd7, 0x61, 0x7c, 0x7d, 0x54, - 0x24, 0x8e, 0x11, 0x5d, 0x9b, 0x91, 0x46, 0x3e, 0x3e, 0x2a, 0x19, 0x41, 0x4c, 0x72, 0xf6, 0xb1, - 0x40, 0xbc, 0x03, 0xd9, 0x5e, 0xd7, 0xc1, 0x82, 0x58, 0x32, 0xab, 0x15, 0x73, 0xd9, 0xe5, 0x62, - 0x35, 0x48, 0xf9, 0x6a, 0x98, 0xf2, 0xd5, 0xad, 0x30, 0xe5, 0x03, 0xc0, 0x8f, 0xfe, 0x16, 0x02, - 0x42, 0xa0, 0x2d, 0xd7, 0xb5, 0x0f, 0x8f, 0x0c, 0xc8, 0xd6, 0x09, 0xb7, 0x7d, 0xda, 0x95, 0x45, - 0x84, 0x0a, 0x30, 0xe1, 0x7a, 0x8c, 0xee, 0xeb, 0x14, 0x9c, 0x32, 0xc3, 0x21, 0x2a, 0xc2, 0x24, - 0x75, 0x08, 0x13, 0x54, 0xf4, 0x83, 0x90, 0x99, 0xd1, 0x58, 0x6a, 0x7d, 0x40, 0x5a, 0x9c, 0x86, - 0x6c, 0x9b, 0xe1, 0x10, 0xbd, 0x01, 0x79, 0x4e, 0xec, 0x9e, 0x4f, 0x45, 0xdf, 0xb2, 0x3d, 0x26, - 0xb0, 0x2d, 0x0a, 0xe3, 0x4a, 0x24, 0x17, 0xce, 0xaf, 0x06, 0xd3, 0x12, 0xc4, 0x21, 0x02, 0xd3, - 0x0e, 0x2f, 0xbc, 0x14, 0x80, 0xe8, 0xa1, 0x36, 0xf5, 0xb7, 0x13, 0x30, 0x15, 0xa5, 0x2e, 0x5a, - 0x85, 0xbc, 0xd7, 0x25, 0xbe, 0xfc, 0x6d, 0x61, 0xc7, 0xf1, 0x09, 0xe7, 0x3a, 0x3f, 0x0b, 0x9f, - 0x7f, 0x7a, 0x73, 0x5e, 0x13, 0x7e, 0x3b, 0x58, 0x69, 0x0a, 0x9f, 0xb2, 0xb6, 0x99, 0x0b, 0x35, - 0xf4, 0x34, 0x7a, 0x5f, 0x86, 0x8c, 0x71, 0xc2, 0x78, 0x8f, 0x5b, 0xdd, 0x5e, 0x6b, 0x9f, 0xf4, - 0x35, 0xa9, 0xf3, 0x43, 0xa4, 0xde, 0x66, 0xfd, 0x5a, 0xe1, 0x4f, 0x31, 0xb4, 0xed, 0xf7, 0xbb, - 0xc2, 0xab, 0x6e, 0xf6, 0x5a, 0xdf, 0x27, 0x7d, 0x19, 0x2a, 0x8d, 0xb3, 0xa9, 0x60, 0xd0, 0x65, - 0xc8, 0xfc, 0x04, 0xd3, 0x0e, 0x71, 0x14, 0x23, 0x93, 0xa6, 0x1e, 0xa1, 0x15, 0xc8, 0x70, 0x81, - 0x45, 0x8f, 0x2b, 0x1a, 0x66, 0x97, 0x2b, 0xa3, 0x72, 0xa3, 0xe6, 0x31, 0xa7, 0xa9, 0x24, 0x4d, - 0xad, 0x81, 0xb6, 0x20, 0x23, 0xbc, 0x7d, 0xc2, 0x34, 0x41, 0xe7, 0xca, 0xe9, 0x06, 0x13, 0x89, - 0x9c, 0x6e, 0x30, 0x61, 0x6a, 0x2c, 0xd4, 0x86, 0xbc, 0x43, 0x3a, 0xa4, 0xad, 0xa8, 0xe4, 0x7b, - 0xd8, 0x27, 0xbc, 0x90, 0xb9, 0x80, 0x9a, 0xc9, 0x45, 0xa8, 0x4d, 0x05, 0x8a, 0x36, 0x21, 0xeb, - 0xc4, 0xa9, 0x56, 0x98, 0x50, 0x44, 0xbf, 0x3a, 0xca, 0xff, 0x44, 0x56, 0x26, 0xfb, 0x54, 0x12, - 0x42, 0x66, 0x57, 0x8f, 0xb5, 0x3c, 0xe6, 0x50, 0xd6, 0xb6, 0xf6, 0x08, 0x6d, 0xef, 0x89, 0xc2, - 0x64, 0xd9, 0x58, 0x4c, 0x9b, 0xb9, 0x68, 0xfe, 0xae, 0x9a, 0x46, 0x9b, 0x30, 0x1b, 0x8b, 0xaa, - 0xea, 0x99, 0x3a, 0x6f, 0xf5, 0xcc, 0x44, 0x00, 0x52, 0x04, 0xbd, 0x0b, 0x10, 0xd7, 0x67, 0x01, - 0x14, 0x5a, 0xe5, 0xf4, 0x4a, 0x4f, 0x3a, 0x93, 0x00, 0x40, 0x1d, 0xb8, 0xe4, 0x52, 0x66, 0x71, - 0xd2, 0xd9, 0xb5, 0x34, 0x73, 0x12, 0x37, 0x7b, 0x01, 0x91, 0x9e, 0x73, 0x29, 0x6b, 0x92, 0xce, - 0x6e, 0x3d, 0x82, 0x45, 0x6f, 0xc1, 0xb5, 0x98, 0x0e, 0x8f, 0x59, 0x7b, 0x5e, 0xc7, 0xb1, 0x7c, - 0xb2, 0x6b, 0xd9, 0x5e, 0x8f, 0x89, 0xc2, 0xb4, 0x22, 0xf1, 0x4a, 0x24, 0xb2, 0xc1, 0xee, 0x7a, - 0x1d, 0xc7, 0x24, 0xbb, 0xab, 0x72, 0x19, 0xbd, 0x0a, 0x31, 0x17, 0x16, 0x75, 0x78, 0x61, 0xa6, - 0x9c, 0x5e, 0x1c, 0x37, 0xa7, 0xa3, 0xc9, 0x86, 0xc3, 0x57, 0x26, 0x3f, 0x7c, 0x58, 0x1a, 0xfb, - 0xf2, 0x61, 0x69, 0xac, 0x72, 0x07, 0xa6, 0x77, 0x70, 0x47, 0x17, 0x1d, 0xe1, 0xe8, 0xdb, 0x30, - 0x85, 0xc3, 0x41, 0xc1, 0x28, 0xa7, 0x9f, 0x59, 0xb4, 0xb1, 0x68, 0xe5, 0xa1, 0x01, 0x99, 0xfa, - 0xce, 0x26, 0xa6, 0x3e, 0x5a, 0x83, 0xb9, 0x38, 0x69, 0xcf, 0x5a, 0xff, 0x71, 0x9e, 0x87, 0x0d, - 0x60, 0x0d, 0xe6, 0xee, 0x87, 0x2d, 0x25, 0x82, 0x49, 0x9d, 0x06, 0x13, 0xa9, 0xe8, 0xf9, 0x84, - 0xab, 0xef, 0xc0, 0x44, 0x60, 0x21, 0x47, 0xdf, 0x83, 0x97, 0xba, 0xf2, 0x87, 0xf2, 0x30, 0xbb, - 0xbc, 0x30, 0x32, 0xd1, 0x95, 0x7c, 0x32, 0x2d, 0x02, 0xbd, 0xca, 0xbf, 0x0d, 0x80, 0xfa, 0xce, - 0xce, 0x96, 0x4f, 0xbb, 0x1d, 0x22, 0x2e, 0xca, 0xe5, 0x7b, 0xf0, 0x72, 0xec, 0x32, 0xf7, 0xed, - 0x33, 0xbb, 0x7d, 0x29, 0x52, 0x6b, 0xfa, 0xf6, 0x89, 0x68, 0x0e, 0x17, 0x11, 0x5a, 0xfa, 0xcc, - 0x68, 0x75, 0x2e, 0x86, 0x79, 0xfc, 0x01, 0x64, 0x63, 0xd7, 0x39, 0x6a, 0xc0, 0xa4, 0xd0, 0xbf, - 0x35, 0x9d, 0x95, 0xd1, 0x74, 0x86, 0x6a, 0x49, 0x4a, 0x23, 0xf5, 0xca, 0x7f, 0x24, 0xab, 0x71, - 0x21, 0x7c, 0xa5, 0x12, 0x49, 0x76, 0x78, 0xdd, 0x81, 0x2f, 0xe2, 0xd4, 0xa2, 0xb1, 0x12, 0xb4, - 0xfe, 0x3c, 0x05, 0x97, 0xb6, 0xc3, 0x22, 0xfd, 0xca, 0xb2, 0xb0, 0x0d, 0x13, 0x84, 0x09, 0x9f, - 0x2a, 0x1a, 0x64, 0xb0, 0xbf, 0x39, 0x2a, 0xd8, 0x27, 0xf8, 0xb2, 0xc6, 0x84, 0xdf, 0x4f, 0x86, - 0x3e, 0xc4, 0x4a, 0xd0, 0xf0, 0xfb, 0x34, 0x14, 0x46, 0xa9, 0xa2, 0xd7, 0x21, 0x67, 0xfb, 0x44, - 0x4d, 0x84, 0x7b, 0x8a, 0xa1, 0xda, 0xe1, 0x6c, 0x38, 0xad, 0xb7, 0x14, 0x13, 0xe4, 0x01, 0x4d, - 0x66, 0x95, 0x14, 0x7d, 0xbe, 0x13, 0xd9, 0x6c, 0x8c, 0xa0, 0x36, 0x15, 0x02, 0x39, 0xca, 0xa8, - 0xa0, 0xb8, 0x63, 0xb5, 0x70, 0x07, 0x33, 0xfb, 0x79, 0xce, 0xaf, 0xc3, 0x3b, 0xc0, 0xac, 0x06, - 0xad, 0x05, 0x98, 0x68, 0x07, 0x26, 0x42, 0xf8, 0xf1, 0x0b, 0x80, 0x0f, 0xc1, 0xd0, 0x2b, 0x30, - 0x9d, 0xdc, 0x18, 0xd4, 0x39, 0x65, 0xdc, 0xcc, 0x26, 0xf6, 0x85, 0xd3, 0x76, 0x9e, 0xcc, 0x33, - 0x77, 0x1e, 0x7d, 0x14, 0xfc, 0x5d, 0x1a, 0xe6, 0x4c, 0xe2, 0xbc, 0x80, 0x81, 0xfb, 0x11, 0x40, - 0x50, 0xd4, 0xb2, 0xd9, 0x3e, 0x47, 0xec, 0x86, 0x9b, 0xc4, 0x54, 0x80, 0x57, 0xe7, 0xe2, 0xff, - 0x15, 0xbd, 0x3f, 0xa7, 0x60, 0x3a, 0x19, 0xbd, 0x17, 0x60, 0x67, 0x43, 0xeb, 0x71, 0x4b, 0x1b, - 0x57, 0x2d, 0xed, 0x8d, 0x51, 0x2d, 0x6d, 0x28, 0xaf, 0x4f, 0xe9, 0x65, 0x1f, 0xa7, 0x21, 0xb3, - 0x89, 0x7d, 0xec, 0x72, 0xb4, 0x31, 0x74, 0xc6, 0x0d, 0xee, 0x9f, 0x57, 0x87, 0xd2, 0xba, 0xae, - 0x1f, 0x4d, 0x82, 0xac, 0xfe, 0xe5, 0xa8, 0x23, 0xee, 0x37, 0x60, 0x56, 0xde, 0xa6, 0x23, 0x87, - 0x02, 0x2a, 0x67, 0xd4, 0x75, 0x38, 0xba, 0x8a, 0x71, 0x54, 0x82, 0xac, 0x14, 0x8b, 0x7b, 0xb6, - 0x94, 0x01, 0x17, 0x1f, 0xac, 0x05, 0x33, 0xe8, 0x26, 0xa0, 0xbd, 0xe8, 0xa5, 0xc3, 0x8a, 0x89, - 0x90, 0x72, 0x73, 0xf1, 0x4a, 0x28, 0xfe, 0x75, 0x00, 0x69, 0x85, 0xe5, 0x10, 0xe6, 0xb9, 0xfa, - 0x32, 0x38, 0x25, 0x67, 0xea, 0x72, 0x02, 0xfd, 0x34, 0x38, 0x29, 0x1f, 0xbb, 0x6c, 0xeb, 0x3b, - 0xcb, 0xbd, 0xf3, 0x15, 0xc3, 0xbf, 0x8e, 0x4a, 0xc5, 0x3e, 0x76, 0x3b, 0x2b, 0x95, 0x13, 0x20, - 0x2b, 0xea, 0xe4, 0x3c, 0x78, 0x49, 0x5f, 0xb9, 0x2e, 0x73, 0xf8, 0xf0, 0x8b, 0x4f, 0x6e, 0x5c, - 0x4b, 0xe0, 0x1d, 0x44, 0xcf, 0x5f, 0x41, 0x28, 0x2a, 0xbf, 0x36, 0x00, 0xc5, 0x1b, 0x8b, 0x49, - 0x78, 0x57, 0xde, 0x0f, 0xe5, 0x9d, 0x21, 0x71, 0xb6, 0x37, 0x9e, 0x7d, 0x67, 0x88, 0xf5, 0x07, - 0xee, 0x0c, 0x89, 0xc2, 0xf9, 0x6e, 0xdc, 0xc6, 0x53, 0x3a, 0xd2, 0x1a, 0xab, 0x85, 0x39, 0x49, - 0x5c, 0x3e, 0xe8, 0x00, 0x44, 0xa8, 0xa4, 0xea, 0x71, 0xac, 0x72, 0x64, 0xc0, 0xd5, 0xa1, 0xac, - 0x8b, 0x4c, 0xb6, 0x01, 0xf9, 0x89, 0x45, 0x15, 0xbd, 0xbe, 0x36, 0xfd, 0xf9, 0x92, 0x78, 0xce, - 0x1f, 0x6a, 0xdd, 0xff, 0xa3, 0xfd, 0x48, 0x37, 0x9c, 0x3f, 0x1a, 0x30, 0x9f, 0xb4, 0x28, 0xf2, - 0xad, 0x09, 0xd3, 0x49, 0x5b, 0xb4, 0x57, 0xd7, 0xcf, 0xe2, 0x55, 0xd2, 0xa1, 0x01, 0x10, 0xe9, - 0x4b, 0x98, 0xe1, 0xc1, 0x43, 0xdc, 0xad, 0x33, 0xb3, 0x14, 0x1a, 0x76, 0x62, 0xc9, 0x07, 0xc1, - 0xfa, 0x45, 0x0a, 0xc6, 0x37, 0x3d, 0xaf, 0x83, 0x7e, 0x66, 0xc0, 0x1c, 0xf3, 0x84, 0x25, 0xeb, - 0x82, 0x38, 0x96, 0x7e, 0x18, 0x08, 0xba, 0xe6, 0xce, 0xf9, 0xd8, 0xfb, 0xc7, 0x51, 0x69, 0x18, - 0x6a, 0x90, 0x52, 0xfd, 0x20, 0xc5, 0x3c, 0x51, 0x53, 0x42, 0x5b, 0xc1, 0xdb, 0xc1, 0x07, 0x30, - 0x33, 0xf8, 0xfd, 0xa0, 0xd5, 0x9a, 0xe7, 0xfe, 0xfe, 0xcc, 0xa9, 0xdf, 0x9e, 0x6e, 0x25, 0x3e, - 0xbc, 0x32, 0x29, 0x03, 0xfb, 0x4f, 0x19, 0xdc, 0xf7, 0x21, 0x1f, 0xb5, 0xa2, 0x6d, 0xf5, 0xbc, - 0x25, 0xcf, 0xa1, 0x13, 0xc1, 0x4b, 0x57, 0x78, 0x5b, 0x28, 0x27, 0x1f, 0x52, 0x71, 0xcb, 0xa6, - 0xd5, 0x63, 0x3a, 0x03, 0x8c, 0x6b, 0xdd, 0x1b, 0xbf, 0x31, 0x00, 0xe2, 0x67, 0x18, 0xf4, 0x26, - 0x5c, 0xa9, 0x6d, 0xac, 0xd7, 0xad, 0xe6, 0xd6, 0xed, 0xad, 0xed, 0xa6, 0xb5, 0xbd, 0xde, 0xdc, - 0x5c, 0x5b, 0x6d, 0xdc, 0x69, 0xac, 0xd5, 0xf3, 0x63, 0xc5, 0xdc, 0xe1, 0x83, 0x72, 0x76, 0x9b, - 0xf1, 0x2e, 0xb1, 0xe9, 0x2e, 0x25, 0x0e, 0x7a, 0x0d, 0xe6, 0x07, 0xa5, 0xe5, 0x68, 0xad, 0x9e, - 0x37, 0x8a, 0xd3, 0x87, 0x0f, 0xca, 0x93, 0xc1, 0xf1, 0x93, 0x38, 0x68, 0x11, 0x5e, 0x1e, 0x96, - 0x6b, 0xac, 0xbf, 0x9d, 0x4f, 0x15, 0x67, 0x0e, 0x1f, 0x94, 0xa7, 0xa2, 0x73, 0x2a, 0xaa, 0x00, - 0x4a, 0x4a, 0x6a, 0xbc, 0x74, 0x11, 0x0e, 0x1f, 0x94, 0x33, 0x41, 0x58, 0x8a, 0xe3, 0x1f, 0xfe, - 0x6a, 0x61, 0xec, 0xc6, 0x8f, 0x01, 0x1a, 0x6c, 0xd7, 0xc7, 0xb6, 0x4a, 0xc8, 0x22, 0x5c, 0x6e, - 0xac, 0xdf, 0x31, 0x6f, 0xaf, 0x6e, 0x35, 0x36, 0xd6, 0x07, 0xcd, 0x3e, 0xb6, 0x56, 0xdf, 0xd8, - 0xae, 0xdd, 0x5b, 0xb3, 0x9a, 0x8d, 0xb7, 0xd7, 0xf3, 0x06, 0xba, 0x02, 0x97, 0x06, 0xd6, 0xde, - 0x5b, 0xdf, 0x6a, 0xbc, 0xbb, 0x96, 0x4f, 0xd5, 0xee, 0x7c, 0xf6, 0x64, 0xc1, 0x78, 0xfc, 0x64, - 0xc1, 0xf8, 0xfb, 0x93, 0x05, 0xe3, 0xa3, 0xa7, 0x0b, 0x63, 0x8f, 0x9f, 0x2e, 0x8c, 0xfd, 0xe5, - 0xe9, 0xc2, 0xd8, 0x0f, 0xdf, 0x7c, 0x66, 0xc0, 0xe3, 0x2e, 0xa9, 0x42, 0xdf, 0xca, 0xa8, 0xfd, - 0xe8, 0x5b, 0xff, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xcd, 0xd9, 0x84, 0x3d, 0x43, 0x18, 0x00, 0x00, + // 1881 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x3d, 0x6c, 0x23, 0xc7, + 0xf5, 0xd7, 0x92, 0x32, 0x25, 0x3d, 0x4a, 0x22, 0x35, 0x27, 0xdf, 0xf1, 0x78, 0xff, 0xbf, 0x48, + 0xd3, 0x17, 0x5b, 0x3e, 0xf8, 0xa8, 0x9c, 0x02, 0xa4, 0x50, 0x8c, 0x04, 0xa2, 0xa8, 0xf3, 0xd1, + 0x39, 0x4b, 0xc2, 0x52, 0x52, 0xe2, 0x7c, 0x60, 0x31, 0xdc, 0x1d, 0x51, 0x13, 0x71, 0x67, 0x89, + 0x9d, 0xe1, 0x59, 0x04, 0x52, 0x05, 0x29, 0x0c, 0x15, 0x81, 0x01, 0x37, 0x69, 0x0e, 0x38, 0x20, + 0x8d, 0xd3, 0xb9, 0x30, 0xe2, 0x22, 0x48, 0x91, 0xce, 0x49, 0x9a, 0x83, 0xab, 0x20, 0x85, 0x12, + 0xdc, 0x15, 0x36, 0x52, 0x05, 0xe9, 0x92, 0x2a, 0x98, 0xd9, 0xd9, 0x0f, 0x8a, 0xe2, 0x49, 0x3a, + 0x28, 0x81, 0x01, 0x37, 0xe4, 0xce, 0xcc, 0x7b, 0xbf, 0x99, 0xf7, 0x7b, 0x1f, 0xf3, 0x01, 0x37, + 0x6d, 0x8f, 0xbb, 0x1e, 0x5f, 0xe2, 0x02, 0x1f, 0x50, 0xd6, 0x5e, 0x7a, 0x70, 0xa7, 0x45, 0x04, + 0xbe, 0x13, 0xb6, 0xab, 0x5d, 0xdf, 0x13, 0x1e, 0xba, 0x1a, 0x48, 0x55, 0xc3, 0x5e, 0x2d, 0x55, + 0x9c, 0x6f, 0x7b, 0x6d, 0x4f, 0x89, 0x2c, 0xc9, 0xaf, 0x40, 0xba, 0x78, 0xbd, 0xed, 0x79, 0xed, + 0x0e, 0x59, 0x52, 0xad, 0x56, 0x6f, 0x6f, 0x09, 0xb3, 0xbe, 0x1e, 0x5a, 0x38, 0x39, 0xe4, 0xf4, + 0x7c, 0x2c, 0xa8, 0xc7, 0xf4, 0x78, 0xe9, 0xe4, 0xb8, 0xa0, 0x2e, 0xe1, 0x02, 0xbb, 0xdd, 0x10, + 0x3b, 0x58, 0x89, 0x15, 0x4c, 0xaa, 0x97, 0xa5, 0xb1, 0xb5, 0x29, 0x2d, 0xcc, 0x49, 0x64, 0x87, + 0xed, 0xd1, 0x10, 0x7b, 0x0e, 0xbb, 0x94, 0x79, 0x4b, 0xea, 0x57, 0x77, 0xfd, 0x9f, 0x20, 0xcc, + 0x21, 0xbe, 0x4b, 0x99, 0x58, 0x12, 0xfd, 0x2e, 0xe1, 0xc1, 0xaf, 0x1e, 0xbd, 0x91, 0x18, 0xc5, + 0x2d, 0x9b, 0x26, 0x07, 0x2b, 0x1f, 0x18, 0x30, 0x7b, 0x8f, 0x72, 0xe1, 0xf9, 0xd4, 0xc6, 0x9d, + 0x06, 0xdb, 0xf3, 0xd0, 0xb7, 0x20, 0xb3, 0x4f, 0xb0, 0x43, 0xfc, 0x82, 0x51, 0x36, 0x16, 0xb3, + 0xcb, 0x85, 0x6a, 0x0c, 0x50, 0x0d, 0x74, 0xef, 0xa9, 0xf1, 0xda, 0xd4, 0xa7, 0xc7, 0xa5, 0xb1, + 0x0f, 0x3f, 0xff, 0xe8, 0x96, 0x61, 0x6a, 0x15, 0x54, 0x87, 0xcc, 0x03, 0xdc, 0xe1, 0x44, 0x14, + 0x52, 0xe5, 0xf4, 0x62, 0x76, 0xf9, 0xa5, 0xea, 0xe9, 0x9c, 0x57, 0x77, 0x71, 0x87, 0x3a, 0x58, + 0x78, 0x83, 0x28, 0x81, 0x6e, 0xe5, 0x93, 0x14, 0xe4, 0xd6, 0x3c, 0xd7, 0xa5, 0x9c, 0x53, 0x8f, + 0x99, 0x58, 0x10, 0x8e, 0x76, 0x60, 0xdc, 0xc7, 0x82, 0xa8, 0x45, 0x4d, 0xd5, 0x56, 0xa5, 0xd2, + 0x5f, 0x8e, 0x4b, 0xaf, 0xb4, 0xa9, 0xd8, 0xef, 0xb5, 0xaa, 0xb6, 0xe7, 0x6a, 0x1a, 0xf5, 0xdf, + 0x6d, 0xee, 0x1c, 0x68, 0x4b, 0xeb, 0xc4, 0xfe, 0xec, 0xe3, 0xdb, 0xa0, 0x17, 0x52, 0x27, 0x76, + 0x30, 0x99, 0x82, 0x43, 0x3f, 0x82, 0x49, 0x17, 0x1f, 0x5a, 0x0a, 0x3a, 0x75, 0x59, 0xd0, 0x13, + 0x2e, 0x3e, 0x94, 0xab, 0x46, 0x14, 0x72, 0x12, 0xdd, 0xde, 0xc7, 0xac, 0x4d, 0x82, 0x49, 0xd2, + 0x97, 0x35, 0xc9, 0x8c, 0x8b, 0x0f, 0xd7, 0x14, 0xb0, 0x9c, 0x6a, 0x65, 0xfc, 0x8b, 0x47, 0x25, + 0xa3, 0xf2, 0x7b, 0x03, 0x20, 0x66, 0x0e, 0x61, 0xc8, 0xdb, 0x51, 0x4b, 0xcd, 0xcf, 0xb5, 0x57, + 0x5f, 0x1d, 0xe5, 0x98, 0x13, 0xbc, 0xd7, 0x66, 0xe4, 0x4a, 0x1f, 0x1f, 0x97, 0x8c, 0x60, 0xd6, + 0x9c, 0x7d, 0xc2, 0x2f, 0x6f, 0x41, 0xb6, 0xd7, 0x75, 0xb0, 0x20, 0x96, 0x0c, 0x72, 0xc5, 0x61, + 0x76, 0xb9, 0x58, 0x0d, 0x32, 0xa0, 0x1a, 0x66, 0x40, 0x75, 0x3b, 0xcc, 0x80, 0x00, 0xf0, 0xfd, + 0xbf, 0x86, 0x80, 0x10, 0x68, 0xcb, 0x71, 0x6d, 0xc3, 0x87, 0x06, 0x64, 0xeb, 0x84, 0xdb, 0x3e, + 0xed, 0xca, 0x9c, 0x42, 0x05, 0x98, 0x70, 0x3d, 0x46, 0x0f, 0x74, 0x44, 0x4e, 0x99, 0x61, 0x13, + 0x15, 0x61, 0x92, 0x3a, 0x84, 0x09, 0x2a, 0xfa, 0x81, 0xf3, 0xcc, 0xa8, 0x2d, 0xb5, 0xde, 0x25, + 0x2d, 0x4e, 0x43, 0xca, 0xcd, 0xb0, 0x89, 0x5e, 0x83, 0x3c, 0x27, 0x76, 0xcf, 0xa7, 0xa2, 0x6f, + 0xd9, 0x1e, 0x13, 0xd8, 0x16, 0x85, 0x71, 0x25, 0x92, 0x0b, 0xfb, 0xd7, 0x82, 0x6e, 0x09, 0xe2, + 0x10, 0x81, 0x69, 0x87, 0x17, 0x5e, 0x08, 0x40, 0x74, 0x53, 0x2f, 0xf5, 0x93, 0x09, 0x98, 0x8a, + 0x22, 0x19, 0xad, 0x41, 0xde, 0xeb, 0x12, 0x5f, 0x7e, 0x5b, 0xd8, 0x71, 0x7c, 0xc2, 0xb9, 0x0e, + 0xd7, 0xc2, 0x67, 0x1f, 0xdf, 0x9e, 0xd7, 0x84, 0xaf, 0x06, 0x23, 0x4d, 0xe1, 0x53, 0xd6, 0x36, + 0x73, 0xa1, 0x86, 0xee, 0x46, 0xef, 0x48, 0x97, 0x31, 0x4e, 0x18, 0xef, 0x71, 0xab, 0xdb, 0x6b, + 0x1d, 0x90, 0xbe, 0x26, 0x75, 0x7e, 0x88, 0xd4, 0x55, 0xd6, 0xaf, 0x15, 0xfe, 0x18, 0x43, 0xdb, + 0x7e, 0xbf, 0x2b, 0xbc, 0xea, 0x56, 0xaf, 0xf5, 0x5d, 0xd2, 0x97, 0xae, 0xd2, 0x38, 0x5b, 0x0a, + 0x06, 0x5d, 0x85, 0xcc, 0x4f, 0x30, 0xed, 0x10, 0x47, 0x31, 0x32, 0x69, 0xea, 0x16, 0x5a, 0x81, + 0x0c, 0x17, 0x58, 0xf4, 0xb8, 0xa2, 0x61, 0x76, 0xb9, 0x32, 0x2a, 0x36, 0x6a, 0x1e, 0x73, 0x9a, + 0x4a, 0xd2, 0xd4, 0x1a, 0x68, 0x1b, 0x32, 0xc2, 0x3b, 0x20, 0x4c, 0x13, 0x54, 0x7b, 0xe3, 0x02, + 0x81, 0xdd, 0x60, 0x22, 0x11, 0xd8, 0x0d, 0x26, 0x4c, 0x8d, 0x85, 0xda, 0x90, 0x77, 0x48, 0x87, + 0xb4, 0x15, 0x95, 0x7c, 0x1f, 0xfb, 0x84, 0x17, 0x32, 0x17, 0xc6, 0x1f, 0x4a, 0x1c, 0x33, 0x17, + 0xa1, 0x36, 0x15, 0x28, 0xda, 0x82, 0xac, 0x13, 0x87, 0x5a, 0x61, 0x42, 0x11, 0xfd, 0xf2, 0x28, + 0xfb, 0x13, 0x51, 0x99, 0x2c, 0x5b, 0x49, 0x08, 0x19, 0x5d, 0x3d, 0xd6, 0xf2, 0x98, 0x43, 0x59, + 0xdb, 0xda, 0x27, 0xb4, 0xbd, 0x2f, 0x0a, 0x93, 0x65, 0x63, 0x31, 0x6d, 0xe6, 0xa2, 0xfe, 0x7b, + 0xaa, 0x1b, 0x6d, 0xc1, 0x6c, 0x2c, 0xaa, 0xb2, 0x67, 0xea, 0xa2, 0xd9, 0x33, 0x13, 0x01, 0x48, + 0x11, 0xf4, 0x36, 0x40, 0x9c, 0x9f, 0x05, 0x50, 0x68, 0x95, 0xb3, 0x33, 0x3d, 0x69, 0x4c, 0x02, + 0x00, 0x75, 0xe0, 0x8a, 0x4b, 0x99, 0xc5, 0x49, 0x67, 0xcf, 0xd2, 0xcc, 0x49, 0xdc, 0xec, 0x25, + 0x78, 0x7a, 0xce, 0xa5, 0xac, 0x49, 0x3a, 0x7b, 0xf5, 0x08, 0x16, 0xbd, 0x01, 0x37, 0x62, 0x3a, + 0x3c, 0x66, 0xed, 0x7b, 0x1d, 0xc7, 0xf2, 0xc9, 0x9e, 0x65, 0x7b, 0x3d, 0x26, 0x0a, 0xd3, 0x8a, + 0xc4, 0x6b, 0x91, 0xc8, 0x26, 0xbb, 0xe7, 0x75, 0x1c, 0x93, 0xec, 0xad, 0xc9, 0x61, 0xf4, 0x32, + 0xc4, 0x5c, 0x58, 0xd4, 0xe1, 0x85, 0x99, 0x72, 0x7a, 0x71, 0xdc, 0x9c, 0x8e, 0x3a, 0x1b, 0x0e, + 0x5f, 0x99, 0x7c, 0xef, 0x51, 0x69, 0xec, 0x8b, 0x47, 0xa5, 0xb1, 0xca, 0x5d, 0x98, 0xde, 0xc5, + 0x1d, 0x9d, 0x74, 0x84, 0xa3, 0x6f, 0xc2, 0x14, 0x0e, 0x1b, 0x05, 0xa3, 0x9c, 0x7e, 0x66, 0xd2, + 0xc6, 0xa2, 0x95, 0x47, 0x06, 0x64, 0xea, 0xbb, 0x5b, 0x98, 0xfa, 0x68, 0x1d, 0xe6, 0xe2, 0xa0, + 0x3d, 0x6f, 0xfe, 0xc7, 0x71, 0x1e, 0x16, 0x80, 0x75, 0x98, 0x7b, 0x10, 0x96, 0x94, 0x08, 0x26, + 0x75, 0x16, 0x4c, 0xa4, 0xa2, 0xfb, 0x13, 0xa6, 0xbe, 0x05, 0x13, 0xc1, 0x0a, 0x39, 0xfa, 0x0e, + 0xbc, 0xd0, 0x95, 0x1f, 0xca, 0xc2, 0xec, 0xf2, 0xc2, 0xc8, 0x40, 0x57, 0xf2, 0xc9, 0xb0, 0x08, + 0xf4, 0x2a, 0xff, 0x32, 0x00, 0xea, 0xbb, 0xbb, 0xdb, 0x3e, 0xed, 0x76, 0x88, 0xb8, 0x2c, 0x93, + 0xef, 0xc3, 0x8b, 0xb1, 0xc9, 0xdc, 0xb7, 0xcf, 0x6d, 0xf6, 0x95, 0x48, 0xad, 0xe9, 0xdb, 0xa7, + 0xa2, 0x39, 0x5c, 0x44, 0x68, 0xe9, 0x73, 0xa3, 0xd5, 0xb9, 0x18, 0xe6, 0xf1, 0xfb, 0x90, 0x8d, + 0x4d, 0xe7, 0xa8, 0x01, 0x93, 0x42, 0x7f, 0x6b, 0x3a, 0x2b, 0xa3, 0xe9, 0x0c, 0xd5, 0x92, 0x94, + 0x46, 0xea, 0x95, 0x7f, 0x4b, 0x56, 0xe3, 0x44, 0xf8, 0x52, 0x05, 0x92, 0xac, 0xf0, 0xba, 0x02, + 0xa7, 0x2f, 0xa1, 0x02, 0x6b, 0xac, 0x04, 0xad, 0x3f, 0x4f, 0xc1, 0x95, 0x9d, 0x30, 0x49, 0xbf, + 0xb4, 0x2c, 0xec, 0xc0, 0x04, 0x61, 0xc2, 0xa7, 0x8a, 0x06, 0xe9, 0xec, 0xaf, 0x8f, 0x72, 0xf6, + 0x29, 0xb6, 0xac, 0x33, 0xe1, 0xf7, 0x93, 0xae, 0x0f, 0xb1, 0x12, 0x34, 0xfc, 0x2e, 0x0d, 0x85, + 0x51, 0xaa, 0xe8, 0x55, 0xc8, 0xd9, 0x3e, 0x51, 0x1d, 0xe1, 0x9e, 0x62, 0xa8, 0x72, 0x38, 0x1b, + 0x76, 0xeb, 0x2d, 0xc5, 0x04, 0x79, 0x40, 0x93, 0x51, 0x25, 0x45, 0x9f, 0xef, 0x44, 0x36, 0x1b, + 0x23, 0xa8, 0x4d, 0x85, 0x40, 0x8e, 0x32, 0x2a, 0x28, 0xee, 0x58, 0x2d, 0xdc, 0xc1, 0xcc, 0x26, + 0xcf, 0x11, 0x09, 0xc3, 0x3b, 0xc0, 0xac, 0x06, 0xad, 0x05, 0x98, 0x68, 0x17, 0x26, 0x42, 0xf8, + 0xf1, 0x4b, 0x80, 0x0f, 0xc1, 0xd0, 0x4b, 0x30, 0x9d, 0xdc, 0x18, 0xd4, 0x39, 0x65, 0xdc, 0xcc, + 0x26, 0xf6, 0x85, 0xb3, 0x76, 0x9e, 0xcc, 0x33, 0x77, 0x1e, 0x7d, 0x14, 0xfc, 0x6d, 0x1a, 0xe6, + 0x4c, 0xe2, 0x7c, 0x05, 0x1d, 0xf7, 0x43, 0x80, 0x20, 0xa9, 0x65, 0xb1, 0x7d, 0x0e, 0xdf, 0x0d, + 0x17, 0x89, 0xa9, 0x00, 0xaf, 0xce, 0xc5, 0xff, 0xca, 0x7b, 0x7f, 0x4a, 0xc1, 0x74, 0xd2, 0x7b, + 0x5f, 0x81, 0x9d, 0x0d, 0x6d, 0xc4, 0x25, 0x6d, 0x5c, 0x95, 0xb4, 0xd7, 0x46, 0x95, 0xb4, 0xa1, + 0xb8, 0x3e, 0xa3, 0x96, 0x7d, 0x90, 0x86, 0xcc, 0x16, 0xf6, 0xb1, 0xcb, 0xd1, 0xe6, 0xd0, 0x19, + 0x37, 0xb8, 0x7f, 0x5e, 0x1f, 0x0a, 0xeb, 0xba, 0x7e, 0x43, 0x09, 0xa2, 0xfa, 0x97, 0xa3, 0x8e, + 0xb8, 0x5f, 0x83, 0x59, 0x79, 0xa5, 0x8e, 0x0c, 0x0a, 0xa8, 0x9c, 0x51, 0xd7, 0xe1, 0xe8, 0x2a, + 0xc6, 0x51, 0x09, 0xb2, 0x52, 0x2c, 0xae, 0xd9, 0x52, 0x06, 0x5c, 0x7c, 0xb8, 0x1e, 0xf4, 0xa0, + 0xdb, 0x80, 0xf6, 0xa3, 0x87, 0x0f, 0x2b, 0x26, 0x42, 0xca, 0xcd, 0xc5, 0x23, 0xa1, 0xf8, 0xff, + 0x03, 0xc8, 0x55, 0x58, 0x0e, 0x61, 0x9e, 0xab, 0x2f, 0x83, 0x53, 0xb2, 0xa7, 0x2e, 0x3b, 0xd0, + 0x4f, 0x83, 0x93, 0xf2, 0x89, 0xcb, 0xb6, 0xbe, 0xb3, 0xdc, 0xbf, 0x58, 0x32, 0xfc, 0xf3, 0xb8, + 0x54, 0xec, 0x63, 0xb7, 0xb3, 0x52, 0x39, 0x05, 0xb2, 0xa2, 0x4e, 0xce, 0x83, 0x97, 0xf4, 0x95, + 0x9b, 0x32, 0x86, 0x8f, 0x3e, 0xff, 0xe8, 0xd6, 0x8d, 0x04, 0xde, 0x61, 0xf4, 0x1a, 0x16, 0xb8, + 0xa2, 0xf2, 0x6b, 0x03, 0x50, 0xbc, 0xb1, 0x98, 0x84, 0x77, 0xe5, 0xfd, 0x50, 0xde, 0x19, 0x12, + 0x67, 0x7b, 0xe3, 0xd9, 0x77, 0x86, 0x58, 0x7f, 0xe0, 0xce, 0x90, 0x48, 0x9c, 0x6f, 0xc7, 0x65, + 0x3c, 0xa5, 0x3d, 0xad, 0xb1, 0x5a, 0x98, 0x93, 0xc4, 0xe5, 0x83, 0x0e, 0x40, 0x84, 0x4a, 0x2a, + 0x1f, 0xc7, 0x2a, 0xc7, 0x06, 0x5c, 0x1f, 0x8a, 0xba, 0x68, 0xc9, 0x36, 0x20, 0x3f, 0x31, 0xa8, + 0xbc, 0xd7, 0xd7, 0x4b, 0x7f, 0xbe, 0x20, 0x9e, 0xf3, 0x87, 0x4a, 0xf7, 0x7f, 0x69, 0x3f, 0xd2, + 0x05, 0xe7, 0x0f, 0x06, 0xcc, 0x27, 0x57, 0x14, 0xd9, 0xd6, 0x84, 0xe9, 0xe4, 0x5a, 0xb4, 0x55, + 0x37, 0xcf, 0x63, 0x55, 0xd2, 0xa0, 0x01, 0x10, 0x69, 0x4b, 0x18, 0xe1, 0xc1, 0xbb, 0xdc, 0x9d, + 0x73, 0xb3, 0x14, 0x2e, 0xec, 0xd4, 0x94, 0x0f, 0x9c, 0xf5, 0x8b, 0x14, 0x8c, 0x6f, 0x79, 0x5e, + 0x07, 0xfd, 0xcc, 0x80, 0x39, 0xe6, 0x09, 0x4b, 0xe6, 0x05, 0x71, 0x2c, 0xfd, 0x30, 0x10, 0x54, + 0xcd, 0xdd, 0x8b, 0xb1, 0xf7, 0xf7, 0xe3, 0xd2, 0x30, 0xd4, 0x20, 0xa5, 0xfa, 0x41, 0x8a, 0x79, + 0xa2, 0xa6, 0x84, 0xb6, 0x83, 0xb7, 0x83, 0x77, 0x61, 0x66, 0x70, 0xfe, 0xa0, 0xd4, 0x9a, 0x17, + 0x9e, 0x7f, 0xe6, 0xcc, 0xb9, 0xa7, 0x5b, 0x89, 0x89, 0x57, 0x26, 0xa5, 0x63, 0xff, 0x21, 0x9d, + 0xfb, 0x0e, 0xe4, 0xa3, 0x52, 0xb4, 0xa3, 0x9e, 0xb7, 0xe4, 0x39, 0x74, 0x22, 0x78, 0xe9, 0x0a, + 0x6f, 0x0b, 0xe5, 0xe4, 0xbb, 0x2a, 0x6e, 0xd9, 0xb4, 0x7a, 0x42, 0x67, 0x80, 0x71, 0xad, 0x7b, + 0xeb, 0x37, 0x06, 0x40, 0xfc, 0x0c, 0x83, 0x5e, 0x87, 0x6b, 0xb5, 0xcd, 0x8d, 0xba, 0xd5, 0xdc, + 0x5e, 0xdd, 0xde, 0x69, 0x5a, 0x3b, 0x1b, 0xcd, 0xad, 0xf5, 0xb5, 0xc6, 0xdd, 0xc6, 0x7a, 0x3d, + 0x3f, 0x56, 0xcc, 0x1d, 0x3d, 0x2c, 0x67, 0x77, 0x18, 0xef, 0x12, 0x9b, 0xee, 0x51, 0xe2, 0xa0, + 0x57, 0x60, 0x7e, 0x50, 0x5a, 0xb6, 0xd6, 0xeb, 0x79, 0xa3, 0x38, 0x7d, 0xf4, 0xb0, 0x3c, 0x19, + 0x1c, 0x3f, 0x89, 0x83, 0x16, 0xe1, 0xc5, 0x61, 0xb9, 0xc6, 0xc6, 0x9b, 0xf9, 0x54, 0x71, 0xe6, + 0xe8, 0x61, 0x79, 0x2a, 0x3a, 0xa7, 0xa2, 0x0a, 0xa0, 0xa4, 0xa4, 0xc6, 0x4b, 0x17, 0xe1, 0xe8, + 0x61, 0x39, 0x13, 0xb8, 0xa5, 0x38, 0xfe, 0xde, 0xaf, 0x16, 0xc6, 0x6e, 0xfd, 0x18, 0xa0, 0xc1, + 0xf6, 0x7c, 0x6c, 0xab, 0x80, 0x2c, 0xc2, 0xd5, 0xc6, 0xc6, 0x5d, 0x73, 0x75, 0x6d, 0xbb, 0xb1, + 0xb9, 0x31, 0xb8, 0xec, 0x13, 0x63, 0xf5, 0xcd, 0x9d, 0xda, 0xfd, 0x75, 0xab, 0xd9, 0x78, 0x73, + 0x23, 0x6f, 0xa0, 0x6b, 0x70, 0x65, 0x60, 0xec, 0x7b, 0x1b, 0xdb, 0x8d, 0xb7, 0xd7, 0xf3, 0xa9, + 0xda, 0xdd, 0x4f, 0x9f, 0x2c, 0x18, 0x8f, 0x9f, 0x2c, 0x18, 0x7f, 0x7b, 0xb2, 0x60, 0xbc, 0xff, + 0x74, 0x61, 0xec, 0xf1, 0xd3, 0x85, 0xb1, 0x3f, 0x3f, 0x5d, 0x18, 0xfb, 0xc1, 0xeb, 0xcf, 0x74, + 0x78, 0x5c, 0x25, 0x95, 0xeb, 0x5b, 0x19, 0xb5, 0x1f, 0x7d, 0xe3, 0x3f, 0x01, 0x00, 0x00, 0xff, + 0xff, 0xb5, 0x76, 0x71, 0x6f, 0x52, 0x18, 0x00, 0x00, } func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { @@ -1402,670 +1403,671 @@ func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_go func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 10606 bytes of a gzipped FileDescriptorSet + // 10615 bytes of a gzipped FileDescriptorSet 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0xbd, 0x7b, 0x70, 0x24, 0xd7, 0x75, 0x1f, 0x8c, 0x79, 0xcf, 0x9c, 0x19, 0xcc, 0x34, 0x2e, 0xc0, 0x5d, 0xec, 0x2c, 0x09, 0x80, 0xcd, 0xc7, 0x3e, 0x48, 0x62, 0xc9, 0x25, 0x77, 0x49, 0x62, 0x45, 0xd1, 0x33, 0x83, 0xd9, 0x5d, - 0x2c, 0xf1, 0x52, 0x0f, 0xb0, 0x7c, 0xf8, 0x93, 0x5a, 0x8d, 0x99, 0x0b, 0xa0, 0xb9, 0x33, 0xdd, - 0xad, 0xee, 0x9e, 0x5d, 0x80, 0xe5, 0xfa, 0x8a, 0xb6, 0xec, 0x44, 0xde, 0x38, 0x8a, 0x2c, 0xa5, - 0x6c, 0x59, 0xd6, 0x2a, 0x94, 0x15, 0x4b, 0xb4, 0x93, 0x38, 0xb2, 0xa5, 0xc8, 0x72, 0x5c, 0x76, - 0xc9, 0x79, 0xca, 0x4e, 0x2a, 0x25, 0xb9, 0x52, 0x89, 0x2b, 0x95, 0xd0, 0x0e, 0xa5, 0x8a, 0x14, - 0x59, 0x8e, 0x6d, 0x99, 0x4e, 0xe2, 0xa8, 0x52, 0x49, 0xdd, 0x57, 0x3f, 0xe6, 0x81, 0x1e, 0xac, - 0x48, 0xda, 0x29, 0xfd, 0xb3, 0x3b, 0x7d, 0xef, 0x39, 0xbf, 0xbe, 0xf7, 0xdc, 0x73, 0xcf, 0x3d, - 0xe7, 0xdc, 0xdb, 0x17, 0xf0, 0x67, 0x17, 0x60, 0x6e, 0xc7, 0x34, 0x77, 0xda, 0xf8, 0x8c, 0x65, - 0x9b, 0xae, 0xb9, 0xd5, 0xdd, 0x3e, 0xd3, 0xc2, 0x4e, 0xd3, 0xd6, 0x2d, 0xd7, 0xb4, 0xe7, 0x69, - 0x19, 0x2a, 0x31, 0x8a, 0x79, 0x41, 0x21, 0xaf, 0xc0, 0xc4, 0x45, 0xbd, 0x8d, 0x17, 0x3d, 0xc2, - 0x06, 0x76, 0xd1, 0x13, 0x90, 0xdc, 0xd6, 0xdb, 0x78, 0x3a, 0x36, 0x97, 0x38, 0x99, 0x3f, 0x7b, - 0xef, 0x7c, 0x0f, 0xd3, 0x7c, 0x98, 0x63, 0x9d, 0x14, 0x2b, 0x94, 0x43, 0xfe, 0x7a, 0x12, 0x26, - 0x07, 0xd4, 0x22, 0x04, 0x49, 0x43, 0xeb, 0x10, 0xc4, 0xd8, 0xc9, 0x9c, 0x42, 0x7f, 0xa3, 0x69, - 0xc8, 0x58, 0x5a, 0xf3, 0x9a, 0xb6, 0x83, 0xa7, 0xe3, 0xb4, 0x58, 0x3c, 0xa2, 0x19, 0x80, 0x16, - 0xb6, 0xb0, 0xd1, 0xc2, 0x46, 0x73, 0x7f, 0x3a, 0x31, 0x97, 0x38, 0x99, 0x53, 0x02, 0x25, 0xe8, - 0x01, 0x98, 0xb0, 0xba, 0x5b, 0x6d, 0xbd, 0xa9, 0x06, 0xc8, 0x60, 0x2e, 0x71, 0x32, 0xa5, 0x48, - 0xac, 0x62, 0xd1, 0x27, 0x3e, 0x01, 0xa5, 0x1b, 0x58, 0xbb, 0x16, 0x24, 0xcd, 0x53, 0xd2, 0x22, - 0x29, 0x0e, 0x10, 0xd6, 0xa0, 0xd0, 0xc1, 0x8e, 0xa3, 0xed, 0x60, 0xd5, 0xdd, 0xb7, 0xf0, 0x74, - 0x92, 0xf6, 0x7e, 0xae, 0xaf, 0xf7, 0xbd, 0x3d, 0xcf, 0x73, 0xae, 0x8d, 0x7d, 0x0b, 0xa3, 0x0a, - 0xe4, 0xb0, 0xd1, 0xed, 0x30, 0x84, 0xd4, 0x10, 0xf9, 0xd5, 0x8d, 0x6e, 0xa7, 0x17, 0x25, 0x4b, - 0xd8, 0x38, 0x44, 0xc6, 0xc1, 0xf6, 0x75, 0xbd, 0x89, 0xa7, 0xd3, 0x14, 0xe0, 0x44, 0x1f, 0x40, - 0x83, 0xd5, 0xf7, 0x62, 0x08, 0x3e, 0x54, 0x83, 0x1c, 0xde, 0x73, 0xb1, 0xe1, 0xe8, 0xa6, 0x31, - 0x9d, 0xa1, 0x20, 0xf7, 0x0d, 0x18, 0x45, 0xdc, 0x6e, 0xf5, 0x42, 0xf8, 0x7c, 0xe8, 0x3c, 0x64, - 0x4c, 0xcb, 0xd5, 0x4d, 0xc3, 0x99, 0xce, 0xce, 0xc5, 0x4e, 0xe6, 0xcf, 0xde, 0x39, 0x50, 0x11, - 0xd6, 0x18, 0x8d, 0x22, 0x88, 0xd1, 0x12, 0x48, 0x8e, 0xd9, 0xb5, 0x9b, 0x58, 0x6d, 0x9a, 0x2d, - 0xac, 0xea, 0xc6, 0xb6, 0x39, 0x9d, 0xa3, 0x00, 0xb3, 0xfd, 0x1d, 0xa1, 0x84, 0x35, 0xb3, 0x85, - 0x97, 0x8c, 0x6d, 0x53, 0x29, 0x3a, 0xa1, 0x67, 0x74, 0x04, 0xd2, 0xce, 0xbe, 0xe1, 0x6a, 0x7b, - 0xd3, 0x05, 0xaa, 0x21, 0xfc, 0x49, 0xfe, 0xb5, 0x34, 0x94, 0x46, 0x51, 0xb1, 0x0b, 0x90, 0xda, - 0x26, 0xbd, 0x9c, 0x8e, 0x1f, 0x46, 0x06, 0x8c, 0x27, 0x2c, 0xc4, 0xf4, 0x6d, 0x0a, 0xb1, 0x02, - 0x79, 0x03, 0x3b, 0x2e, 0x6e, 0x31, 0x8d, 0x48, 0x8c, 0xa8, 0x53, 0xc0, 0x98, 0xfa, 0x55, 0x2a, - 0x79, 0x5b, 0x2a, 0xf5, 0x1c, 0x94, 0xbc, 0x26, 0xa9, 0xb6, 0x66, 0xec, 0x08, 0xdd, 0x3c, 0x13, - 0xd5, 0x92, 0xf9, 0xba, 0xe0, 0x53, 0x08, 0x9b, 0x52, 0xc4, 0xa1, 0x67, 0xb4, 0x08, 0x60, 0x1a, - 0xd8, 0xdc, 0x56, 0x5b, 0xb8, 0xd9, 0x9e, 0xce, 0x0e, 0x91, 0xd2, 0x1a, 0x21, 0xe9, 0x93, 0x92, - 0xc9, 0x4a, 0x9b, 0x6d, 0xf4, 0xa4, 0xaf, 0x6a, 0x99, 0x21, 0x9a, 0xb2, 0xc2, 0x26, 0x59, 0x9f, - 0xb6, 0x6d, 0x42, 0xd1, 0xc6, 0x44, 0xef, 0x71, 0x8b, 0xf7, 0x2c, 0x47, 0x1b, 0x31, 0x1f, 0xd9, - 0x33, 0x85, 0xb3, 0xb1, 0x8e, 0x8d, 0xdb, 0xc1, 0x47, 0x74, 0x0f, 0x78, 0x05, 0x2a, 0x55, 0x2b, - 0xa0, 0x56, 0xa8, 0x20, 0x0a, 0x57, 0xb5, 0x0e, 0x2e, 0xbf, 0x04, 0xc5, 0xb0, 0x78, 0xd0, 0x14, - 0xa4, 0x1c, 0x57, 0xb3, 0x5d, 0xaa, 0x85, 0x29, 0x85, 0x3d, 0x20, 0x09, 0x12, 0xd8, 0x68, 0x51, - 0x2b, 0x97, 0x52, 0xc8, 0x4f, 0xf4, 0x03, 0x7e, 0x87, 0x13, 0xb4, 0xc3, 0xf7, 0xf7, 0x8f, 0x68, - 0x08, 0xb9, 0xb7, 0xdf, 0xe5, 0xc7, 0x61, 0x3c, 0xd4, 0x81, 0x51, 0x5f, 0x2d, 0xff, 0x10, 0xdc, - 0x31, 0x10, 0x1a, 0x3d, 0x07, 0x53, 0x5d, 0x43, 0x37, 0x5c, 0x6c, 0x5b, 0x36, 0x26, 0x1a, 0xcb, - 0x5e, 0x35, 0xfd, 0x8d, 0xcc, 0x10, 0x9d, 0xdb, 0x0c, 0x52, 0x33, 0x14, 0x65, 0xb2, 0xdb, 0x5f, - 0x78, 0x3a, 0x97, 0xfd, 0x66, 0x46, 0x7a, 0xf9, 0xe5, 0x97, 0x5f, 0x8e, 0xcb, 0xbf, 0x95, 0x86, - 0xa9, 0x41, 0x73, 0x66, 0xe0, 0xf4, 0x3d, 0x02, 0x69, 0xa3, 0xdb, 0xd9, 0xc2, 0x36, 0x15, 0x52, - 0x4a, 0xe1, 0x4f, 0xa8, 0x02, 0xa9, 0xb6, 0xb6, 0x85, 0xdb, 0xd3, 0xc9, 0xb9, 0xd8, 0xc9, 0xe2, - 0xd9, 0x07, 0x46, 0x9a, 0x95, 0xf3, 0xcb, 0x84, 0x45, 0x61, 0x9c, 0xe8, 0x9d, 0x90, 0xe4, 0x26, - 0x9a, 0x20, 0x9c, 0x1e, 0x0d, 0x81, 0xcc, 0x25, 0x85, 0xf2, 0xa1, 0xe3, 0x90, 0x23, 0xff, 0x33, - 0xdd, 0x48, 0xd3, 0x36, 0x67, 0x49, 0x01, 0xd1, 0x0b, 0x54, 0x86, 0x2c, 0x9d, 0x26, 0x2d, 0x2c, - 0x96, 0x36, 0xef, 0x99, 0x28, 0x56, 0x0b, 0x6f, 0x6b, 0xdd, 0xb6, 0xab, 0x5e, 0xd7, 0xda, 0x5d, - 0x4c, 0x15, 0x3e, 0xa7, 0x14, 0x78, 0xe1, 0x55, 0x52, 0x86, 0x66, 0x21, 0xcf, 0x66, 0x95, 0x6e, - 0xb4, 0xf0, 0x1e, 0xb5, 0x9e, 0x29, 0x85, 0x4d, 0xb4, 0x25, 0x52, 0x42, 0x5e, 0xff, 0xa2, 0x63, - 0x1a, 0x42, 0x35, 0xe9, 0x2b, 0x48, 0x01, 0x7d, 0xfd, 0xe3, 0xbd, 0x86, 0xfb, 0xae, 0xc1, 0xdd, - 0xeb, 0x9b, 0x4b, 0x27, 0xa0, 0x44, 0x29, 0x1e, 0xe5, 0x43, 0xaf, 0xb5, 0xa7, 0x27, 0xe6, 0x62, - 0x27, 0xb3, 0x4a, 0x91, 0x15, 0xaf, 0xf1, 0x52, 0xf9, 0x0b, 0x71, 0x48, 0x52, 0xc3, 0x52, 0x82, - 0xfc, 0xc6, 0xf3, 0xeb, 0x75, 0x75, 0x71, 0x6d, 0xb3, 0xba, 0x5c, 0x97, 0x62, 0xa8, 0x08, 0x40, - 0x0b, 0x2e, 0x2e, 0xaf, 0x55, 0x36, 0xa4, 0xb8, 0xf7, 0xbc, 0xb4, 0xba, 0x71, 0xfe, 0x31, 0x29, - 0xe1, 0x31, 0x6c, 0xb2, 0x82, 0x64, 0x90, 0xe0, 0xd1, 0xb3, 0x52, 0x0a, 0x49, 0x50, 0x60, 0x00, - 0x4b, 0xcf, 0xd5, 0x17, 0xcf, 0x3f, 0x26, 0xa5, 0xc3, 0x25, 0x8f, 0x9e, 0x95, 0x32, 0x68, 0x1c, - 0x72, 0xb4, 0xa4, 0xba, 0xb6, 0xb6, 0x2c, 0x65, 0x3d, 0xcc, 0xc6, 0x86, 0xb2, 0xb4, 0x7a, 0x49, - 0xca, 0x79, 0x98, 0x97, 0x94, 0xb5, 0xcd, 0x75, 0x09, 0x3c, 0x84, 0x95, 0x7a, 0xa3, 0x51, 0xb9, - 0x54, 0x97, 0xf2, 0x1e, 0x45, 0xf5, 0xf9, 0x8d, 0x7a, 0x43, 0x2a, 0x84, 0x9a, 0xf5, 0xe8, 0x59, - 0x69, 0xdc, 0x7b, 0x45, 0x7d, 0x75, 0x73, 0x45, 0x2a, 0xa2, 0x09, 0x18, 0x67, 0xaf, 0x10, 0x8d, - 0x28, 0xf5, 0x14, 0x9d, 0x7f, 0x4c, 0x92, 0xfc, 0x86, 0x30, 0x94, 0x89, 0x50, 0xc1, 0xf9, 0xc7, - 0x24, 0x24, 0xd7, 0x20, 0x45, 0xd5, 0x10, 0x21, 0x28, 0x2e, 0x57, 0xaa, 0xf5, 0x65, 0x75, 0x6d, - 0x7d, 0x63, 0x69, 0x6d, 0xb5, 0xb2, 0x2c, 0xc5, 0xfc, 0x32, 0xa5, 0xfe, 0xae, 0xcd, 0x25, 0xa5, - 0xbe, 0x28, 0xc5, 0x83, 0x65, 0xeb, 0xf5, 0xca, 0x46, 0x7d, 0x51, 0x4a, 0xc8, 0x4d, 0x98, 0x1a, - 0x64, 0x50, 0x07, 0x4e, 0xa1, 0x80, 0x2e, 0xc4, 0x87, 0xe8, 0x02, 0xc5, 0xea, 0xd5, 0x05, 0xf9, - 0x6b, 0x71, 0x98, 0x1c, 0xb0, 0xa8, 0x0c, 0x7c, 0xc9, 0xd3, 0x90, 0x62, 0xba, 0xcc, 0x96, 0xd9, - 0x53, 0x03, 0x57, 0x27, 0xaa, 0xd9, 0x7d, 0x4b, 0x2d, 0xe5, 0x0b, 0xba, 0x1a, 0x89, 0x21, 0xae, - 0x06, 0x81, 0xe8, 0x53, 0xd8, 0x77, 0xf7, 0x19, 0x7f, 0xb6, 0x3e, 0x9e, 0x1f, 0x65, 0x7d, 0xa4, - 0x65, 0x87, 0x5b, 0x04, 0x52, 0x03, 0x16, 0x81, 0x0b, 0x30, 0xd1, 0x07, 0x34, 0xb2, 0x31, 0x7e, - 0x7f, 0x0c, 0xa6, 0x87, 0x09, 0x27, 0xc2, 0x24, 0xc6, 0x43, 0x26, 0xf1, 0x42, 0xaf, 0x04, 0xef, - 0x1e, 0x3e, 0x08, 0x7d, 0x63, 0xfd, 0x99, 0x18, 0x1c, 0x19, 0xec, 0x52, 0x0e, 0x6c, 0xc3, 0x3b, - 0x21, 0xdd, 0xc1, 0xee, 0xae, 0x29, 0xdc, 0xaa, 0xfb, 0x07, 0x2c, 0xd6, 0xa4, 0xba, 0x77, 0xb0, - 0x39, 0x57, 0x70, 0xb5, 0x4f, 0x0c, 0xf3, 0x0b, 0x59, 0x6b, 0xfa, 0x5a, 0xfa, 0xe3, 0x71, 0xb8, - 0x63, 0x20, 0xf8, 0xc0, 0x86, 0xde, 0x05, 0xa0, 0x1b, 0x56, 0xd7, 0x65, 0xae, 0x13, 0xb3, 0xc4, - 0x39, 0x5a, 0x42, 0x8d, 0x17, 0xb1, 0xb2, 0x5d, 0xd7, 0xab, 0x4f, 0xd0, 0x7a, 0x60, 0x45, 0x94, - 0xe0, 0x09, 0xbf, 0xa1, 0x49, 0xda, 0xd0, 0x99, 0x21, 0x3d, 0xed, 0x53, 0xcc, 0x87, 0x41, 0x6a, - 0xb6, 0x75, 0x6c, 0xb8, 0xaa, 0xe3, 0xda, 0x58, 0xeb, 0xe8, 0xc6, 0x0e, 0x5d, 0x6a, 0xb2, 0x0b, - 0xa9, 0x6d, 0xad, 0xed, 0x60, 0xa5, 0xc4, 0xaa, 0x1b, 0xa2, 0x96, 0x70, 0x50, 0x05, 0xb2, 0x03, - 0x1c, 0xe9, 0x10, 0x07, 0xab, 0xf6, 0x38, 0xe4, 0x9f, 0xcc, 0x41, 0x3e, 0xe0, 0x80, 0xa3, 0xbb, - 0xa1, 0xf0, 0xa2, 0x76, 0x5d, 0x53, 0x45, 0x50, 0xc5, 0x24, 0x91, 0x27, 0x65, 0xeb, 0x3c, 0xb0, - 0x7a, 0x18, 0xa6, 0x28, 0x89, 0xd9, 0x75, 0xb1, 0xad, 0x36, 0xdb, 0x9a, 0xe3, 0x50, 0xa1, 0x65, - 0x29, 0x29, 0x22, 0x75, 0x6b, 0xa4, 0xaa, 0x26, 0x6a, 0xd0, 0x39, 0x98, 0xa4, 0x1c, 0x9d, 0x6e, - 0xdb, 0xd5, 0xad, 0x36, 0x56, 0x49, 0x98, 0xe7, 0xd0, 0x25, 0xc7, 0x6b, 0xd9, 0x04, 0xa1, 0x58, - 0xe1, 0x04, 0xa4, 0x45, 0x0e, 0x5a, 0x84, 0xbb, 0x28, 0xdb, 0x0e, 0x36, 0xb0, 0xad, 0xb9, 0x58, - 0xc5, 0xef, 0xeb, 0x6a, 0x6d, 0x47, 0xd5, 0x8c, 0x96, 0xba, 0xab, 0x39, 0xbb, 0xd3, 0x53, 0x04, - 0xa0, 0x1a, 0x9f, 0x8e, 0x29, 0xc7, 0x08, 0xe1, 0x25, 0x4e, 0x57, 0xa7, 0x64, 0x15, 0xa3, 0x75, - 0x59, 0x73, 0x76, 0xd1, 0x02, 0x1c, 0xa1, 0x28, 0x8e, 0x6b, 0xeb, 0xc6, 0x8e, 0xda, 0xdc, 0xc5, - 0xcd, 0x6b, 0x6a, 0xd7, 0xdd, 0x7e, 0x62, 0xfa, 0x78, 0xf0, 0xfd, 0xb4, 0x85, 0x0d, 0x4a, 0x53, - 0x23, 0x24, 0x9b, 0xee, 0xf6, 0x13, 0xa8, 0x01, 0x05, 0x32, 0x18, 0x1d, 0xfd, 0x25, 0xac, 0x6e, - 0x9b, 0x36, 0x5d, 0x43, 0x8b, 0x03, 0x4c, 0x53, 0x40, 0x82, 0xf3, 0x6b, 0x9c, 0x61, 0xc5, 0x6c, - 0xe1, 0x85, 0x54, 0x63, 0xbd, 0x5e, 0x5f, 0x54, 0xf2, 0x02, 0xe5, 0xa2, 0x69, 0x13, 0x85, 0xda, - 0x31, 0x3d, 0x01, 0xe7, 0x99, 0x42, 0xed, 0x98, 0x42, 0xbc, 0xe7, 0x60, 0xb2, 0xd9, 0x64, 0x7d, - 0xd6, 0x9b, 0x2a, 0x0f, 0xc6, 0x9c, 0x69, 0x29, 0x24, 0xac, 0x66, 0xf3, 0x12, 0x23, 0xe0, 0x3a, - 0xee, 0xa0, 0x27, 0xe1, 0x0e, 0x5f, 0x58, 0x41, 0xc6, 0x89, 0xbe, 0x5e, 0xf6, 0xb2, 0x9e, 0x83, - 0x49, 0x6b, 0xbf, 0x9f, 0x11, 0x85, 0xde, 0x68, 0xed, 0xf7, 0xb2, 0x3d, 0x0e, 0x53, 0xd6, 0xae, - 0xd5, 0xcf, 0x77, 0x3a, 0xc8, 0x87, 0xac, 0x5d, 0xab, 0x97, 0xf1, 0x3e, 0x1a, 0x99, 0xdb, 0xb8, - 0xa9, 0xb9, 0xb8, 0x35, 0x7d, 0x34, 0x48, 0x1e, 0xa8, 0x40, 0xf3, 0x20, 0x35, 0x9b, 0x2a, 0x36, - 0xb4, 0xad, 0x36, 0x56, 0x35, 0x1b, 0x1b, 0x9a, 0x33, 0x3d, 0x4b, 0x89, 0x93, 0xae, 0xdd, 0xc5, - 0x4a, 0xb1, 0xd9, 0xac, 0xd3, 0xca, 0x0a, 0xad, 0x43, 0xa7, 0x61, 0xc2, 0xdc, 0x7a, 0xb1, 0xc9, - 0x34, 0x52, 0xb5, 0x6c, 0xbc, 0xad, 0xef, 0x4d, 0xdf, 0x4b, 0xc5, 0x5b, 0x22, 0x15, 0x54, 0x1f, - 0xd7, 0x69, 0x31, 0x3a, 0x05, 0x52, 0xd3, 0xd9, 0xd5, 0x6c, 0x8b, 0x9a, 0x64, 0xc7, 0xd2, 0x9a, - 0x78, 0xfa, 0x3e, 0x46, 0xca, 0xca, 0x57, 0x45, 0x31, 0x99, 0x11, 0xce, 0x0d, 0x7d, 0xdb, 0x15, - 0x88, 0x27, 0xd8, 0x8c, 0xa0, 0x65, 0x1c, 0xed, 0x24, 0x48, 0x44, 0x12, 0xa1, 0x17, 0x9f, 0xa4, - 0x64, 0x45, 0x6b, 0xd7, 0x0a, 0xbe, 0xf7, 0x1e, 0x18, 0x27, 0x94, 0xfe, 0x4b, 0x4f, 0x31, 0xc7, - 0xcd, 0xda, 0x0d, 0xbc, 0xf1, 0x31, 0x38, 0x42, 0x88, 0x3a, 0xd8, 0xd5, 0x5a, 0x9a, 0xab, 0x05, - 0xa8, 0x1f, 0xa4, 0xd4, 0x44, 0xec, 0x2b, 0xbc, 0x32, 0xd4, 0x4e, 0xbb, 0xbb, 0xb5, 0xef, 0x29, - 0xd6, 0x43, 0xac, 0x9d, 0xa4, 0x4c, 0xa8, 0xd6, 0x5b, 0xe6, 0x9c, 0xcb, 0x0b, 0x50, 0x08, 0xea, - 0x3d, 0xca, 0x01, 0xd3, 0x7c, 0x29, 0x46, 0x9c, 0xa0, 0xda, 0xda, 0x22, 0x71, 0x5f, 0x5e, 0xa8, - 0x4b, 0x71, 0xe2, 0x46, 0x2d, 0x2f, 0x6d, 0xd4, 0x55, 0x65, 0x73, 0x75, 0x63, 0x69, 0xa5, 0x2e, - 0x25, 0x02, 0x8e, 0xfd, 0x95, 0x64, 0xf6, 0x7e, 0xe9, 0x04, 0xf1, 0x1a, 0x8a, 0xe1, 0x48, 0x0d, - 0xbd, 0x03, 0x8e, 0x8a, 0xb4, 0x8a, 0x83, 0x5d, 0xf5, 0x86, 0x6e, 0xd3, 0x09, 0xd9, 0xd1, 0xd8, - 0xe2, 0xe8, 0xe9, 0xcf, 0x14, 0xa7, 0x6a, 0x60, 0xf7, 0x59, 0xdd, 0x26, 0xd3, 0xad, 0xa3, 0xb9, - 0x68, 0x19, 0x66, 0x0d, 0x53, 0x75, 0x5c, 0xcd, 0x68, 0x69, 0x76, 0x4b, 0xf5, 0x13, 0x5a, 0xaa, - 0xd6, 0x6c, 0x62, 0xc7, 0x31, 0xd9, 0x42, 0xe8, 0xa1, 0xdc, 0x69, 0x98, 0x0d, 0x4e, 0xec, 0xaf, - 0x10, 0x15, 0x4e, 0xda, 0xa3, 0xbe, 0x89, 0x61, 0xea, 0x7b, 0x1c, 0x72, 0x1d, 0xcd, 0x52, 0xb1, - 0xe1, 0xda, 0xfb, 0xd4, 0x3f, 0xcf, 0x2a, 0xd9, 0x8e, 0x66, 0xd5, 0xc9, 0xf3, 0xdb, 0x12, 0x26, - 0x5d, 0x49, 0x66, 0x93, 0x52, 0xea, 0x4a, 0x32, 0x9b, 0x92, 0xd2, 0x57, 0x92, 0xd9, 0xb4, 0x94, - 0xb9, 0x92, 0xcc, 0x66, 0xa5, 0xdc, 0x95, 0x64, 0x36, 0x27, 0x81, 0xfc, 0xe1, 0x24, 0x14, 0x82, - 0x1e, 0x3c, 0x09, 0x88, 0x9a, 0x74, 0x0d, 0x8b, 0x51, 0x2b, 0x77, 0xcf, 0x81, 0xfe, 0xfe, 0x7c, - 0x8d, 0x2c, 0x6e, 0x0b, 0x69, 0xe6, 0x2e, 0x2b, 0x8c, 0x93, 0x38, 0x16, 0x44, 0xfd, 0x30, 0x73, - 0x4f, 0xb2, 0x0a, 0x7f, 0x42, 0x97, 0x20, 0xfd, 0xa2, 0x43, 0xb1, 0xd3, 0x14, 0xfb, 0xde, 0x83, - 0xb1, 0xaf, 0x34, 0x28, 0x78, 0xee, 0x4a, 0x43, 0x5d, 0x5d, 0x53, 0x56, 0x2a, 0xcb, 0x0a, 0x67, - 0x47, 0xc7, 0x20, 0xd9, 0xd6, 0x5e, 0xda, 0x0f, 0x2f, 0x83, 0xb4, 0x08, 0xcd, 0x43, 0xa9, 0x6b, - 0x5c, 0xc7, 0xb6, 0xbe, 0xad, 0xe3, 0x96, 0x4a, 0xa9, 0x4a, 0x41, 0xaa, 0xa2, 0x5f, 0xbb, 0x4c, - 0xe8, 0x47, 0x1c, 0xc6, 0x63, 0x90, 0xbc, 0x81, 0xb5, 0x6b, 0xe1, 0xc5, 0x8a, 0x16, 0xbd, 0x85, - 0xd3, 0xe9, 0x0c, 0xa4, 0xa8, 0x7c, 0x11, 0x00, 0x97, 0xb0, 0x34, 0x86, 0xb2, 0x90, 0xac, 0xad, - 0x29, 0x64, 0x4a, 0x49, 0x50, 0x60, 0xa5, 0xea, 0xfa, 0x52, 0xbd, 0x56, 0x97, 0xe2, 0xf2, 0x39, - 0x48, 0x33, 0xa1, 0x91, 0xe9, 0xe6, 0x89, 0x4d, 0x1a, 0xe3, 0x8f, 0x1c, 0x23, 0x26, 0x6a, 0x37, - 0x57, 0xaa, 0x75, 0x45, 0x8a, 0xf7, 0x29, 0x8b, 0xec, 0x40, 0x21, 0xe8, 0xc9, 0xbf, 0x3d, 0xe1, - 0xfc, 0x97, 0x62, 0x90, 0x0f, 0x78, 0xe6, 0xc4, 0xa5, 0xd2, 0xda, 0x6d, 0xf3, 0x86, 0xaa, 0xb5, - 0x75, 0xcd, 0xe1, 0xaa, 0x04, 0xb4, 0xa8, 0x42, 0x4a, 0x46, 0x1d, 0xba, 0xb7, 0x69, 0x92, 0xa5, - 0xa4, 0xb4, 0xfc, 0x89, 0x18, 0x48, 0xbd, 0xae, 0x71, 0x4f, 0x33, 0x63, 0x7f, 0x99, 0xcd, 0x94, - 0x3f, 0x1e, 0x83, 0x62, 0xd8, 0x1f, 0xee, 0x69, 0xde, 0xdd, 0x7f, 0xa9, 0xcd, 0xfb, 0x83, 0x38, - 0x8c, 0x87, 0xbc, 0xe0, 0x51, 0x5b, 0xf7, 0x3e, 0x98, 0xd0, 0x5b, 0xb8, 0x63, 0x99, 0x2e, 0x36, - 0x9a, 0xfb, 0x6a, 0x1b, 0x5f, 0xc7, 0xed, 0x69, 0x99, 0x1a, 0x99, 0x33, 0x07, 0xfb, 0xd9, 0xf3, - 0x4b, 0x3e, 0xdf, 0x32, 0x61, 0x5b, 0x98, 0x5c, 0x5a, 0xac, 0xaf, 0xac, 0xaf, 0x6d, 0xd4, 0x57, - 0x6b, 0xcf, 0xab, 0x9b, 0xab, 0xcf, 0xac, 0xae, 0x3d, 0xbb, 0xaa, 0x48, 0x7a, 0x0f, 0xd9, 0x5b, - 0x38, 0xed, 0xd7, 0x41, 0xea, 0x6d, 0x14, 0x3a, 0x0a, 0x83, 0x9a, 0x25, 0x8d, 0xa1, 0x49, 0x28, - 0xad, 0xae, 0xa9, 0x8d, 0xa5, 0xc5, 0xba, 0x5a, 0xbf, 0x78, 0xb1, 0x5e, 0xdb, 0x68, 0xb0, 0xcc, - 0x89, 0x47, 0xbd, 0x11, 0x9a, 0xe0, 0xf2, 0xc7, 0x12, 0x30, 0x39, 0xa0, 0x25, 0xa8, 0xc2, 0x63, - 0x1e, 0x16, 0x86, 0x3d, 0x34, 0x4a, 0xeb, 0xe7, 0x89, 0xd7, 0xb1, 0xae, 0xd9, 0x2e, 0x0f, 0x91, - 0x4e, 0x01, 0x91, 0x92, 0xe1, 0x12, 0xe3, 0x6a, 0xf3, 0x8c, 0x14, 0x0b, 0x84, 0x4a, 0x7e, 0x39, - 0x4b, 0x4a, 0x3d, 0x08, 0xc8, 0x32, 0x1d, 0xdd, 0xd5, 0xaf, 0x63, 0x55, 0x37, 0x44, 0xfa, 0x8a, - 0x04, 0x46, 0x49, 0x45, 0x12, 0x35, 0x4b, 0x86, 0xeb, 0x51, 0x1b, 0x78, 0x47, 0xeb, 0xa1, 0x26, - 0xc6, 0x3f, 0xa1, 0x48, 0xa2, 0xc6, 0xa3, 0xbe, 0x1b, 0x0a, 0x2d, 0xb3, 0x4b, 0xbc, 0x45, 0x46, - 0x47, 0xd6, 0x9a, 0x98, 0x92, 0x67, 0x65, 0x1e, 0x09, 0x8f, 0x03, 0xfc, 0xbc, 0x59, 0x41, 0xc9, - 0xb3, 0x32, 0x46, 0x72, 0x02, 0x4a, 0xda, 0xce, 0x8e, 0x4d, 0xc0, 0x05, 0x10, 0x8b, 0x6c, 0x8a, - 0x5e, 0x31, 0x25, 0x2c, 0x5f, 0x81, 0xac, 0x90, 0x03, 0x59, 0xec, 0x89, 0x24, 0x54, 0x8b, 0x85, - 0xeb, 0xf1, 0x93, 0x39, 0x25, 0x6b, 0x88, 0xca, 0xbb, 0xa1, 0xa0, 0x3b, 0xaa, 0xbf, 0x0d, 0x10, - 0x9f, 0x8b, 0x9f, 0xcc, 0x2a, 0x79, 0xdd, 0xf1, 0x52, 0xa8, 0xf2, 0x67, 0xe2, 0x50, 0x0c, 0x6f, - 0x63, 0xa0, 0x45, 0xc8, 0xb6, 0xcd, 0xa6, 0x46, 0x55, 0x8b, 0xed, 0xa1, 0x9d, 0x8c, 0xd8, 0xf9, - 0x98, 0x5f, 0xe6, 0xf4, 0x8a, 0xc7, 0x59, 0xfe, 0x37, 0x31, 0xc8, 0x8a, 0x62, 0x74, 0x04, 0x92, - 0x96, 0xe6, 0xee, 0x52, 0xb8, 0x54, 0x35, 0x2e, 0xc5, 0x14, 0xfa, 0x4c, 0xca, 0x1d, 0x4b, 0x33, - 0xa8, 0x0a, 0xf0, 0x72, 0xf2, 0x4c, 0xc6, 0xb5, 0x8d, 0xb5, 0x16, 0x0d, 0x9b, 0xcc, 0x4e, 0x07, - 0x1b, 0xae, 0x23, 0xc6, 0x95, 0x97, 0xd7, 0x78, 0x31, 0x7a, 0x00, 0x26, 0x5c, 0x5b, 0xd3, 0xdb, - 0x21, 0xda, 0x24, 0xa5, 0x95, 0x44, 0x85, 0x47, 0xbc, 0x00, 0xc7, 0x04, 0x6e, 0x0b, 0xbb, 0x5a, - 0x73, 0x17, 0xb7, 0x7c, 0xa6, 0x34, 0x4d, 0x8f, 0x1c, 0xe5, 0x04, 0x8b, 0xbc, 0x5e, 0xf0, 0xca, - 0x5f, 0x8d, 0xc1, 0x84, 0x08, 0xf4, 0x5a, 0x9e, 0xb0, 0x56, 0x00, 0x34, 0xc3, 0x30, 0xdd, 0xa0, - 0xb8, 0xfa, 0x55, 0xb9, 0x8f, 0x6f, 0xbe, 0xe2, 0x31, 0x29, 0x01, 0x80, 0x72, 0x07, 0xc0, 0xaf, - 0x19, 0x2a, 0xb6, 0x59, 0xc8, 0xf3, 0x3d, 0x2a, 0xba, 0xd1, 0xc9, 0x52, 0x03, 0xc0, 0x8a, 0x48, - 0x44, 0x88, 0xa6, 0x20, 0xb5, 0x85, 0x77, 0x74, 0x83, 0x67, 0x9e, 0xd9, 0x83, 0x48, 0xe0, 0x24, - 0xbd, 0x04, 0x4e, 0xf5, 0xff, 0x87, 0xc9, 0xa6, 0xd9, 0xe9, 0x6d, 0x6e, 0x55, 0xea, 0x49, 0x4f, - 0x38, 0x97, 0x63, 0x2f, 0x3c, 0xc4, 0x89, 0x76, 0xcc, 0xb6, 0x66, 0xec, 0xcc, 0x9b, 0xf6, 0x8e, - 0xbf, 0x51, 0x4b, 0x3c, 0x24, 0x27, 0xb0, 0x5d, 0x6b, 0x6d, 0xfd, 0xcf, 0x58, 0xec, 0xe7, 0xe2, - 0x89, 0x4b, 0xeb, 0xd5, 0x5f, 0x8c, 0x97, 0x2f, 0x31, 0xc6, 0x75, 0x21, 0x0c, 0x05, 0x6f, 0xb7, - 0x71, 0x93, 0x74, 0x10, 0xfe, 0xe8, 0x01, 0x98, 0xda, 0x31, 0x77, 0x4c, 0x8a, 0x74, 0x86, 0xfc, - 0xe2, 0x3b, 0xbd, 0x39, 0xaf, 0xb4, 0x1c, 0xb9, 0x2d, 0xbc, 0xb0, 0x0a, 0x93, 0x9c, 0x58, 0xa5, - 0x5b, 0x4d, 0x2c, 0x10, 0x42, 0x07, 0x66, 0xe1, 0xa6, 0x7f, 0xf9, 0xeb, 0x74, 0xf9, 0x56, 0x26, - 0x38, 0x2b, 0xa9, 0x63, 0xb1, 0xd2, 0x82, 0x02, 0x77, 0x84, 0xf0, 0xd8, 0x24, 0xc5, 0x76, 0x04, - 0xe2, 0x3f, 0xe7, 0x88, 0x93, 0x01, 0xc4, 0x06, 0x67, 0x5d, 0xa8, 0xc1, 0xf8, 0x61, 0xb0, 0xfe, - 0x05, 0xc7, 0x2a, 0xe0, 0x20, 0xc8, 0x25, 0x28, 0x51, 0x90, 0x66, 0xd7, 0x71, 0xcd, 0x0e, 0xb5, - 0x80, 0x07, 0xc3, 0xfc, 0xcb, 0xaf, 0xb3, 0x59, 0x53, 0x24, 0x6c, 0x35, 0x8f, 0x6b, 0x61, 0x01, - 0xe8, 0xee, 0x5a, 0x0b, 0x37, 0xdb, 0x11, 0x08, 0x5f, 0xe6, 0x0d, 0xf1, 0xe8, 0x17, 0xae, 0xc2, - 0x14, 0xf9, 0x4d, 0x0d, 0x54, 0xb0, 0x25, 0xd1, 0x29, 0xbb, 0xe9, 0xaf, 0xbe, 0x9f, 0x4d, 0xcc, - 0x49, 0x0f, 0x20, 0xd0, 0xa6, 0xc0, 0x28, 0xee, 0x60, 0xd7, 0xc5, 0xb6, 0xa3, 0x6a, 0xed, 0x41, - 0xcd, 0x0b, 0xe4, 0x3c, 0xa6, 0x7f, 0xe6, 0xdb, 0xe1, 0x51, 0xbc, 0xc4, 0x38, 0x2b, 0xed, 0xf6, - 0xc2, 0x26, 0x1c, 0x1d, 0xa0, 0x15, 0x23, 0x60, 0x7e, 0x8c, 0x63, 0x4e, 0xf5, 0x69, 0x06, 0x81, - 0x5d, 0x07, 0x51, 0xee, 0x8d, 0xe5, 0x08, 0x98, 0x3f, 0xcb, 0x31, 0x11, 0xe7, 0x15, 0x43, 0x4a, - 0x10, 0xaf, 0xc0, 0xc4, 0x75, 0x6c, 0x6f, 0x99, 0x0e, 0xcf, 0x33, 0x8d, 0x00, 0xf7, 0x71, 0x0e, - 0x57, 0xe2, 0x8c, 0x34, 0xf1, 0x44, 0xb0, 0x9e, 0x84, 0xec, 0xb6, 0xd6, 0xc4, 0x23, 0x40, 0xdc, - 0xe2, 0x10, 0x19, 0x42, 0x4f, 0x58, 0x2b, 0x50, 0xd8, 0x31, 0xf9, 0x1a, 0x15, 0xcd, 0xfe, 0x09, - 0xce, 0x9e, 0x17, 0x3c, 0x1c, 0xc2, 0x32, 0xad, 0x6e, 0x9b, 0x2c, 0x60, 0xd1, 0x10, 0x7f, 0x47, - 0x40, 0x08, 0x1e, 0x0e, 0x71, 0x08, 0xb1, 0xbe, 0x22, 0x20, 0x9c, 0x80, 0x3c, 0x9f, 0x86, 0xbc, - 0x69, 0xb4, 0xf7, 0x4d, 0x63, 0x94, 0x46, 0x7c, 0x92, 0x23, 0x00, 0x67, 0x21, 0x00, 0x17, 0x20, - 0x37, 0xea, 0x40, 0xfc, 0xfc, 0xb7, 0xc5, 0xf4, 0x10, 0x23, 0x70, 0x09, 0x4a, 0xc2, 0x40, 0xe9, - 0xa6, 0x31, 0x02, 0xc4, 0xa7, 0x39, 0x44, 0x31, 0xc0, 0xc6, 0xbb, 0xe1, 0x62, 0xc7, 0xdd, 0xc1, - 0xa3, 0x80, 0x7c, 0x46, 0x74, 0x83, 0xb3, 0x70, 0x51, 0x6e, 0x61, 0xa3, 0xb9, 0x3b, 0x1a, 0xc2, - 0xab, 0x42, 0x94, 0x82, 0x87, 0x40, 0xd4, 0x60, 0xbc, 0xa3, 0xd9, 0xce, 0xae, 0xd6, 0x1e, 0x69, - 0x38, 0x7e, 0x81, 0x63, 0x14, 0x3c, 0x26, 0x2e, 0x91, 0xae, 0x71, 0x18, 0x98, 0x5f, 0x14, 0x12, - 0x09, 0xb0, 0xf1, 0xa9, 0xe7, 0xb8, 0x34, 0x29, 0x77, 0x18, 0xb4, 0xbf, 0x27, 0xa6, 0x1e, 0xe3, - 0x5d, 0x09, 0x22, 0x5e, 0x80, 0x9c, 0xa3, 0xbf, 0x34, 0x12, 0xcc, 0xdf, 0x17, 0x23, 0x4d, 0x19, - 0x08, 0xf3, 0xf3, 0x70, 0x6c, 0xe0, 0x32, 0x31, 0x02, 0xd8, 0x3f, 0xe0, 0x60, 0x47, 0x06, 0x2c, - 0x15, 0xdc, 0x24, 0x1c, 0x16, 0xf2, 0x97, 0x84, 0x49, 0xc0, 0x3d, 0x58, 0xeb, 0x24, 0x6a, 0x70, - 0xb4, 0xed, 0xc3, 0x49, 0xed, 0x1f, 0x0a, 0xa9, 0x31, 0xde, 0x90, 0xd4, 0x36, 0xe0, 0x08, 0x47, - 0x3c, 0xdc, 0xb8, 0x7e, 0x56, 0x18, 0x56, 0xc6, 0xbd, 0x19, 0x1e, 0xdd, 0x1f, 0x84, 0xb2, 0x27, - 0x4e, 0xe1, 0x9e, 0x3a, 0x6a, 0x47, 0xb3, 0x46, 0x40, 0xfe, 0x65, 0x8e, 0x2c, 0x2c, 0xbe, 0xe7, - 0xdf, 0x3a, 0x2b, 0x9a, 0x45, 0xc0, 0x9f, 0x83, 0x69, 0x01, 0xde, 0x35, 0x6c, 0xdc, 0x34, 0x77, - 0x0c, 0xfd, 0x25, 0xdc, 0x1a, 0x01, 0xfa, 0x57, 0x7a, 0x86, 0x6a, 0x33, 0xc0, 0x4e, 0x90, 0x97, - 0x40, 0xf2, 0x7c, 0x15, 0x55, 0xef, 0x58, 0xa6, 0xed, 0x46, 0x20, 0x7e, 0x4e, 0x8c, 0x94, 0xc7, - 0xb7, 0x44, 0xd9, 0x16, 0xea, 0xc0, 0x76, 0xaa, 0x47, 0x55, 0xc9, 0xcf, 0x73, 0xa0, 0x71, 0x9f, - 0x8b, 0x1b, 0x8e, 0xa6, 0xd9, 0xb1, 0x34, 0x7b, 0x14, 0xfb, 0xf7, 0x8f, 0x84, 0xe1, 0xe0, 0x2c, - 0xdc, 0x70, 0x10, 0x8f, 0x8e, 0xac, 0xf6, 0x23, 0x20, 0x7c, 0x41, 0x18, 0x0e, 0xc1, 0xc3, 0x21, - 0x84, 0xc3, 0x30, 0x02, 0xc4, 0xaf, 0x0a, 0x08, 0xc1, 0x43, 0x20, 0xde, 0xe5, 0x2f, 0xb4, 0x36, - 0xde, 0xd1, 0x1d, 0xd7, 0x66, 0x4e, 0xf1, 0xc1, 0x50, 0x5f, 0xfc, 0x76, 0xd8, 0x09, 0x53, 0x02, - 0xac, 0xc4, 0x12, 0xf1, 0x34, 0x2d, 0x8d, 0x99, 0xa2, 0x1b, 0xf6, 0x6b, 0xc2, 0x12, 0x05, 0xd8, - 0x48, 0xdb, 0x02, 0x1e, 0x22, 0x11, 0x7b, 0x93, 0x44, 0x0a, 0x23, 0xc0, 0xfd, 0xe3, 0x9e, 0xc6, - 0x35, 0x04, 0x2f, 0xc1, 0x0c, 0xf8, 0x3f, 0x5d, 0xe3, 0x1a, 0xde, 0x1f, 0x49, 0x3b, 0x7f, 0xbd, - 0xc7, 0xff, 0xd9, 0x64, 0x9c, 0xcc, 0x86, 0x94, 0x7a, 0xfc, 0x29, 0x14, 0x75, 0x2e, 0x69, 0xfa, - 0x87, 0xdf, 0xe0, 0xfd, 0x0d, 0xbb, 0x53, 0x0b, 0xcb, 0x44, 0xc9, 0xc3, 0x4e, 0x4f, 0x34, 0xd8, - 0xfb, 0xdf, 0xf0, 0xf4, 0x3c, 0xe4, 0xf3, 0x2c, 0x5c, 0x84, 0xf1, 0x90, 0xc3, 0x13, 0x0d, 0xf5, - 0xa3, 0x1c, 0xaa, 0x10, 0xf4, 0x77, 0x16, 0xce, 0x41, 0x92, 0x38, 0x2f, 0xd1, 0xec, 0x3f, 0xc6, - 0xd9, 0x29, 0xf9, 0xc2, 0x53, 0x90, 0x15, 0x4e, 0x4b, 0x34, 0xeb, 0x5f, 0xe3, 0xac, 0x1e, 0x0b, - 0x61, 0x17, 0x0e, 0x4b, 0x34, 0xfb, 0x5f, 0x17, 0xec, 0x82, 0x85, 0xb0, 0x8f, 0x2e, 0xc2, 0x2f, - 0xfd, 0x8d, 0x24, 0x5f, 0x74, 0x84, 0xec, 0x2e, 0x40, 0x86, 0x7b, 0x2a, 0xd1, 0xdc, 0x3f, 0xce, - 0x5f, 0x2e, 0x38, 0x16, 0x1e, 0x87, 0xd4, 0x88, 0x02, 0xff, 0x9b, 0x9c, 0x95, 0xd1, 0x2f, 0xd4, - 0x20, 0x1f, 0xf0, 0x4e, 0xa2, 0xd9, 0x3f, 0xc8, 0xd9, 0x83, 0x5c, 0xa4, 0xe9, 0xdc, 0x3b, 0x89, - 0x06, 0xf8, 0x5b, 0xa2, 0xe9, 0x9c, 0x83, 0x88, 0x4d, 0x38, 0x26, 0xd1, 0xdc, 0x1f, 0x12, 0x52, - 0x17, 0x2c, 0x0b, 0x4f, 0x43, 0xce, 0x5b, 0x6c, 0xa2, 0xf9, 0x7f, 0x92, 0xf3, 0xfb, 0x3c, 0x44, - 0x02, 0x81, 0xc5, 0x2e, 0x1a, 0xe2, 0xc3, 0x42, 0x02, 0x01, 0x2e, 0x32, 0x8d, 0x7a, 0x1d, 0x98, - 0x68, 0xa4, 0x8f, 0x88, 0x69, 0xd4, 0xe3, 0xbf, 0x90, 0xd1, 0xa4, 0x36, 0x3f, 0x1a, 0xe2, 0x6f, - 0x8b, 0xd1, 0xa4, 0xf4, 0xa4, 0x19, 0xbd, 0x1e, 0x41, 0x34, 0xc6, 0x4f, 0x8b, 0x66, 0xf4, 0x38, - 0x04, 0x0b, 0xeb, 0x80, 0xfa, 0xbd, 0x81, 0x68, 0xbc, 0x8f, 0x72, 0xbc, 0x89, 0x3e, 0x67, 0x60, - 0xe1, 0x59, 0x38, 0x32, 0xd8, 0x13, 0x88, 0x46, 0xfd, 0x99, 0x37, 0x7a, 0x62, 0xb7, 0xa0, 0x23, - 0xb0, 0xb0, 0xe1, 0x2f, 0x29, 0x41, 0x2f, 0x20, 0x1a, 0xf6, 0x63, 0x6f, 0x84, 0x0d, 0x77, 0xd0, - 0x09, 0x58, 0xa8, 0x00, 0xf8, 0x0b, 0x70, 0x34, 0xd6, 0xc7, 0x39, 0x56, 0x80, 0x89, 0x4c, 0x0d, - 0xbe, 0xfe, 0x46, 0xf3, 0xdf, 0x12, 0x53, 0x83, 0x73, 0x90, 0xa9, 0x21, 0x96, 0xde, 0x68, 0xee, - 0x4f, 0x88, 0xa9, 0x21, 0x58, 0x88, 0x66, 0x07, 0x56, 0xb7, 0x68, 0x84, 0x4f, 0x0a, 0xcd, 0x0e, - 0x70, 0x2d, 0xac, 0xc2, 0x44, 0xdf, 0x82, 0x18, 0x0d, 0xf5, 0x73, 0x1c, 0x4a, 0xea, 0x5d, 0x0f, - 0x83, 0x8b, 0x17, 0x5f, 0x0c, 0xa3, 0xd1, 0x3e, 0xd5, 0xb3, 0x78, 0xf1, 0xb5, 0x70, 0xe1, 0x02, - 0x64, 0x8d, 0x6e, 0xbb, 0x4d, 0x26, 0x0f, 0x3a, 0xf8, 0x2c, 0xe1, 0xf4, 0x7f, 0xfd, 0x2e, 0x97, - 0x8e, 0x60, 0x58, 0x38, 0x07, 0x29, 0xdc, 0xd9, 0xc2, 0xad, 0x28, 0xce, 0x6f, 0x7d, 0x57, 0x18, - 0x4c, 0x42, 0xbd, 0xf0, 0x34, 0x00, 0x4b, 0x8d, 0xd0, 0xcd, 0xc3, 0x08, 0xde, 0x3f, 0xfc, 0x2e, - 0x3f, 0xbc, 0xe3, 0xb3, 0xf8, 0x00, 0xec, 0x28, 0xd0, 0xc1, 0x00, 0xdf, 0x0e, 0x03, 0xd0, 0x11, - 0x79, 0x12, 0x32, 0x2f, 0x3a, 0xa6, 0xe1, 0x6a, 0x3b, 0x51, 0xdc, 0x7f, 0xc4, 0xb9, 0x05, 0x3d, - 0x11, 0x58, 0xc7, 0xb4, 0xb1, 0xab, 0xed, 0x38, 0x51, 0xbc, 0xff, 0x8d, 0xf3, 0x7a, 0x0c, 0x84, - 0xb9, 0xa9, 0x39, 0xee, 0x28, 0xfd, 0xfe, 0x63, 0xc1, 0x2c, 0x18, 0x48, 0xa3, 0xc9, 0xef, 0x6b, - 0x78, 0x3f, 0x8a, 0xf7, 0x4f, 0x44, 0xa3, 0x39, 0xfd, 0xc2, 0x53, 0x90, 0x23, 0x3f, 0xd9, 0x89, - 0xbc, 0x08, 0xe6, 0x3f, 0xe5, 0xcc, 0x3e, 0x07, 0x79, 0xb3, 0xe3, 0xb6, 0x5c, 0x3d, 0x5a, 0xd8, - 0xdf, 0xe1, 0x23, 0x2d, 0xe8, 0x17, 0x2a, 0x90, 0x77, 0xdc, 0x56, 0xab, 0xcb, 0xfd, 0xd3, 0x08, - 0xf6, 0x3f, 0xfb, 0xae, 0x97, 0xb2, 0xf0, 0x78, 0xc8, 0x68, 0xdf, 0xb8, 0xe6, 0x5a, 0x26, 0xdd, - 0xf0, 0x88, 0x42, 0x78, 0x83, 0x23, 0x04, 0x58, 0x16, 0x6a, 0x50, 0x20, 0x7d, 0xb1, 0xb1, 0x85, - 0xe9, 0xee, 0x54, 0x04, 0xc4, 0x9f, 0x73, 0x01, 0x84, 0x98, 0xaa, 0xef, 0xfd, 0xf2, 0xeb, 0x33, - 0xb1, 0xaf, 0xbc, 0x3e, 0x13, 0xfb, 0x83, 0xd7, 0x67, 0x62, 0x1f, 0xfa, 0xda, 0xcc, 0xd8, 0x57, - 0xbe, 0x36, 0x33, 0xf6, 0x7b, 0x5f, 0x9b, 0x19, 0x1b, 0x9c, 0x25, 0x86, 0x4b, 0xe6, 0x25, 0x93, - 0xe5, 0x87, 0x5f, 0xb8, 0x6f, 0x47, 0x77, 0x77, 0xbb, 0x5b, 0xf3, 0x4d, 0xb3, 0x73, 0xa6, 0x69, - 0x3a, 0x1d, 0xd3, 0x39, 0x13, 0xce, 0xeb, 0xd2, 0x5f, 0xf0, 0xbf, 0x63, 0x24, 0x66, 0x0e, 0xa7, - 0x73, 0x35, 0x63, 0x7f, 0xd8, 0xe7, 0x3d, 0xe7, 0x21, 0x51, 0x31, 0xf6, 0xd1, 0x31, 0x66, 0xe0, - 0xd4, 0xae, 0xdd, 0xe6, 0xc7, 0xc2, 0x32, 0xe4, 0x79, 0xd3, 0x6e, 0xa3, 0x29, 0xff, 0xec, 0x66, - 0xec, 0x64, 0x81, 0x1f, 0xc8, 0xac, 0x7e, 0x30, 0x76, 0xb8, 0x9e, 0x64, 0x2b, 0xc6, 0x3e, 0xed, - 0xc8, 0x7a, 0xec, 0x85, 0x07, 0x23, 0xf3, 0xdc, 0xd7, 0x0c, 0xf3, 0x86, 0x41, 0x9a, 0x6d, 0x6d, - 0x89, 0x1c, 0xf7, 0x4c, 0x6f, 0x8e, 0xfb, 0x59, 0xdc, 0x6e, 0x3f, 0x43, 0xe8, 0x36, 0x08, 0xcb, - 0x56, 0x9a, 0x9d, 0x40, 0x86, 0x8f, 0xc4, 0x61, 0xa6, 0x2f, 0x9d, 0xcd, 0x95, 0x60, 0x98, 0x10, - 0x16, 0x20, 0xbb, 0x28, 0x74, 0x6b, 0x1a, 0x32, 0x0e, 0x6e, 0x9a, 0x46, 0xcb, 0xa1, 0x82, 0x48, - 0x28, 0xe2, 0x91, 0x08, 0xc2, 0xd0, 0x0c, 0xd3, 0xe1, 0x07, 0x2b, 0xd9, 0x43, 0xf5, 0x67, 0x0f, - 0x29, 0x88, 0x71, 0xf1, 0x26, 0x21, 0x8d, 0x47, 0x46, 0x94, 0x86, 0xe8, 0x44, 0x28, 0xf3, 0x3f, - 0xaa, 0x54, 0x7e, 0x3a, 0x0e, 0xb3, 0xbd, 0x52, 0x21, 0x33, 0xcb, 0x71, 0xb5, 0x8e, 0x35, 0x4c, - 0x2c, 0x17, 0x20, 0xb7, 0x21, 0x68, 0x0e, 0x2d, 0x97, 0x5b, 0x87, 0x94, 0x4b, 0xd1, 0x7b, 0x95, - 0x10, 0xcc, 0xd9, 0x11, 0x05, 0xe3, 0xf5, 0xe3, 0xb6, 0x24, 0xf3, 0x17, 0x69, 0x38, 0xc6, 0xa6, - 0x93, 0xca, 0xa6, 0x12, 0x7b, 0xe0, 0x32, 0x29, 0x04, 0xab, 0xa2, 0xf7, 0x49, 0xe4, 0x67, 0x60, - 0x72, 0x89, 0x58, 0x0b, 0x12, 0x05, 0xf9, 0x3b, 0x3c, 0x03, 0xcf, 0x9e, 0xce, 0x85, 0x1c, 0x7e, - 0xbe, 0xc3, 0x14, 0x2c, 0x92, 0x7f, 0x38, 0x06, 0x52, 0xa3, 0xa9, 0xb5, 0x35, 0xfb, 0x7b, 0x85, - 0x42, 0x8f, 0x03, 0xd0, 0x6f, 0x96, 0xfc, 0x8f, 0x8c, 0x8a, 0x67, 0xa7, 0xe7, 0x83, 0x9d, 0x9b, - 0x67, 0x6f, 0xa2, 0x5f, 0x30, 0xe4, 0x28, 0x2d, 0xf9, 0x79, 0xfa, 0x39, 0x00, 0xbf, 0x02, 0x1d, - 0x87, 0xa3, 0x8d, 0x5a, 0x65, 0xb9, 0xa2, 0xa8, 0xec, 0x30, 0xfc, 0x6a, 0x63, 0xbd, 0x5e, 0x5b, - 0xba, 0xb8, 0x54, 0x5f, 0x94, 0xc6, 0xd0, 0x11, 0x40, 0xc1, 0x4a, 0xef, 0x5c, 0xca, 0x1d, 0x30, - 0x11, 0x2c, 0x67, 0x27, 0xea, 0xe3, 0xc4, 0x53, 0xd4, 0x3b, 0x56, 0x1b, 0xd3, 0xad, 0x3f, 0x55, - 0x17, 0x52, 0x8b, 0x76, 0x42, 0x7e, 0xfb, 0xdf, 0xb1, 0x53, 0xd6, 0x93, 0x3e, 0xbb, 0x27, 0xf3, - 0x85, 0x65, 0x98, 0xd0, 0x9a, 0x4d, 0x6c, 0x85, 0x20, 0x23, 0x4c, 0x35, 0x01, 0xa4, 0x9b, 0x99, - 0x9c, 0xd3, 0x47, 0x7b, 0x1c, 0xd2, 0x0e, 0xed, 0x7d, 0x14, 0xc4, 0xef, 0x70, 0x08, 0x4e, 0xbe, - 0x60, 0xc0, 0x04, 0xf1, 0xfc, 0x34, 0x1b, 0x07, 0x9a, 0x71, 0x70, 0x9e, 0xe1, 0x37, 0x3e, 0xf7, - 0x30, 0xdd, 0xda, 0xbc, 0x3b, 0x3c, 0x2c, 0x03, 0xd4, 0x49, 0x91, 0x38, 0xb6, 0xdf, 0x50, 0x0c, - 0x45, 0xf1, 0x3e, 0xde, 0xe0, 0x83, 0x5f, 0xf6, 0x9b, 0xfc, 0x65, 0x33, 0x83, 0x74, 0x20, 0xf0, - 0xa6, 0x71, 0x8e, 0xca, 0x2a, 0xaa, 0xf5, 0x61, 0x73, 0xfa, 0x85, 0x07, 0xfa, 0x57, 0x27, 0xf6, - 0xdf, 0x43, 0x14, 0xf9, 0x42, 0xf0, 0x35, 0xde, 0xdc, 0xfb, 0x70, 0x12, 0x26, 0xb4, 0x8e, 0x6e, - 0x98, 0x67, 0xe8, 0xbf, 0x7c, 0xce, 0xa5, 0xe8, 0xc3, 0x08, 0x9b, 0x92, 0xe7, 0xd9, 0x54, 0x88, - 0xd6, 0x98, 0x3f, 0xfd, 0x89, 0x4f, 0xa7, 0xfc, 0xe9, 0xb2, 0xb0, 0x02, 0x92, 0x38, 0x70, 0x88, - 0x8d, 0xa6, 0xd9, 0x1a, 0x29, 0x4b, 0xf1, 0x1d, 0x81, 0x21, 0xf2, 0x5b, 0x75, 0xce, 0xba, 0xf0, - 0x0e, 0xc8, 0x7a, 0x30, 0x51, 0x9e, 0x89, 0x00, 0xf1, 0x38, 0x88, 0x5f, 0xc2, 0x66, 0xe6, 0x28, - 0x5e, 0xe8, 0x1b, 0x82, 0x9f, 0xcd, 0xd0, 0x55, 0xd2, 0x9b, 0x4b, 0x50, 0x6c, 0x99, 0x86, 0xab, - 0x9a, 0x1d, 0xdd, 0xc5, 0x1d, 0xcb, 0x8d, 0xf4, 0xeb, 0xfe, 0x9c, 0x81, 0x64, 0x95, 0x71, 0xc2, - 0xb7, 0x26, 0xd8, 0x16, 0xce, 0x8f, 0xe8, 0x87, 0xff, 0x77, 0xc1, 0xcf, 0xc8, 0x6f, 0x4b, 0x29, - 0x9c, 0xd6, 0x35, 0x6e, 0xc3, 0xdd, 0x3d, 0x36, 0xf8, 0x9e, 0x52, 0xfc, 0x71, 0x02, 0x66, 0x38, - 0xf1, 0x96, 0xe6, 0xe0, 0x33, 0xd7, 0x1f, 0xd9, 0xc2, 0xae, 0xf6, 0xc8, 0x99, 0xa6, 0xa9, 0x8b, - 0x05, 0x7c, 0x92, 0xdb, 0x68, 0x52, 0x3f, 0xcf, 0xeb, 0xcb, 0x03, 0x77, 0xb9, 0xcb, 0xc3, 0x6d, - 0x7b, 0xb9, 0x5f, 0xf5, 0xe4, 0x17, 0x20, 0x59, 0x33, 0x75, 0x83, 0x2c, 0x69, 0x2d, 0x6c, 0x98, - 0x1d, 0x6e, 0x65, 0xd9, 0x03, 0x3a, 0x0f, 0x69, 0xad, 0x63, 0x76, 0x0d, 0x97, 0x59, 0xd8, 0xea, - 0xcc, 0x97, 0x5f, 0x9b, 0x1d, 0xfb, 0x0f, 0xaf, 0xcd, 0x26, 0x96, 0x0c, 0xf7, 0x77, 0x3f, 0xff, - 0x10, 0x70, 0xf4, 0x25, 0xc3, 0x7d, 0xf5, 0x1b, 0x9f, 0x3d, 0x1d, 0x53, 0x38, 0xf5, 0x42, 0xf2, - 0x9b, 0xaf, 0xcc, 0xc6, 0xe4, 0xe7, 0x20, 0xb3, 0x88, 0x9b, 0x07, 0xc0, 0x3f, 0xd2, 0x03, 0x7f, - 0x4c, 0xc0, 0x2f, 0xe2, 0x66, 0x00, 0x7e, 0x11, 0x37, 0x7b, 0x90, 0x1f, 0x87, 0xec, 0x92, 0xe1, - 0xb2, 0xaf, 0x1c, 0x1e, 0x80, 0x84, 0x6e, 0xb0, 0x83, 0xb3, 0x01, 0x84, 0xbe, 0x06, 0x2a, 0x84, - 0x8a, 0x30, 0x2e, 0xe2, 0xa6, 0xc7, 0xd8, 0xc2, 0xcd, 0x5e, 0xc6, 0xfe, 0x57, 0x13, 0xaa, 0xea, - 0xe2, 0xef, 0xfd, 0xe7, 0x99, 0xb1, 0x97, 0x5f, 0x9f, 0x19, 0x1b, 0x3a, 0xf4, 0x72, 0xf4, 0xd0, - 0x7b, 0x23, 0xfe, 0xe9, 0x24, 0xdc, 0x45, 0x3f, 0x7e, 0xb3, 0x3b, 0xba, 0xe1, 0x9e, 0x69, 0xda, - 0xfb, 0x96, 0x6b, 0x92, 0x79, 0x6f, 0x6e, 0xf3, 0x01, 0x9f, 0xf0, 0xab, 0xe7, 0x59, 0xf5, 0xe0, - 0xe1, 0x96, 0xb7, 0x21, 0xb5, 0x4e, 0xf8, 0x88, 0x88, 0x5d, 0xd3, 0xd5, 0xda, 0xdc, 0x59, 0x61, - 0x0f, 0xa4, 0x94, 0x7d, 0x30, 0x17, 0x67, 0xa5, 0xba, 0xf8, 0x56, 0xae, 0x8d, 0xb5, 0x6d, 0xf6, - 0xdd, 0x41, 0x82, 0x7a, 0xb9, 0x59, 0x52, 0x40, 0x3f, 0x31, 0x98, 0x82, 0x94, 0xd6, 0x65, 0x07, - 0x5e, 0x12, 0xc4, 0xfd, 0xa5, 0x0f, 0xf2, 0x33, 0x90, 0xe1, 0xdb, 0xee, 0x48, 0x82, 0xc4, 0x35, - 0xbc, 0x4f, 0xdf, 0x53, 0x50, 0xc8, 0x4f, 0x34, 0x0f, 0x29, 0xda, 0x78, 0xfe, 0x41, 0xd5, 0xf4, - 0x7c, 0x5f, 0xeb, 0xe7, 0x69, 0x23, 0x15, 0x46, 0x26, 0x5f, 0x81, 0xec, 0xa2, 0x49, 0xb4, 0x30, - 0x8c, 0x96, 0x63, 0x68, 0xb4, 0xcd, 0x56, 0x97, 0x6b, 0x85, 0xc2, 0x1e, 0xd0, 0x11, 0x48, 0xb3, - 0xef, 0x50, 0xf8, 0xa1, 0x1d, 0xfe, 0x24, 0xd7, 0x20, 0x43, 0xb1, 0xd7, 0x2c, 0xe2, 0x29, 0x78, - 0x47, 0x7e, 0x73, 0xfc, 0xab, 0x44, 0x0e, 0x1f, 0xf7, 0x1b, 0x8b, 0x20, 0xd9, 0xd2, 0x5c, 0x8d, - 0xf7, 0x9b, 0xfe, 0x96, 0xdf, 0x09, 0x59, 0x0e, 0xe2, 0xa0, 0xb3, 0x90, 0x30, 0x2d, 0x87, 0x1f, - 0xbb, 0x29, 0x0f, 0xeb, 0xca, 0x9a, 0x55, 0x4d, 0x12, 0x9d, 0x51, 0x08, 0x71, 0x75, 0x75, 0xa8, - 0x5a, 0x3c, 0x16, 0x52, 0x8b, 0x0e, 0x76, 0xb7, 0xb6, 0x5d, 0xff, 0x07, 0x1b, 0xce, 0x3e, 0x55, - 0xf0, 0x14, 0xe5, 0x56, 0x1c, 0x66, 0x02, 0xb5, 0xd7, 0xb1, 0xed, 0xe8, 0xa6, 0xc1, 0xb4, 0x89, - 0x6b, 0x0a, 0x0a, 0x34, 0x90, 0xd7, 0x0f, 0x51, 0x95, 0xa7, 0x20, 0x51, 0xb1, 0x2c, 0x54, 0x86, - 0x2c, 0x7d, 0x6e, 0x9a, 0x4c, 0x57, 0x92, 0x8a, 0xf7, 0x4c, 0xea, 0x1c, 0x73, 0xdb, 0xbd, 0xa1, - 0xd9, 0xde, 0x67, 0x9a, 0xe2, 0x59, 0x7e, 0x12, 0x72, 0x35, 0xd3, 0x70, 0xb0, 0xe1, 0x74, 0xa9, - 0x0b, 0xbc, 0xd5, 0x36, 0x9b, 0xd7, 0x38, 0x02, 0x7b, 0x20, 0xc2, 0xd6, 0x2c, 0x8b, 0x72, 0x26, - 0x15, 0xf2, 0x93, 0xcd, 0xd7, 0xea, 0xda, 0x50, 0xf1, 0x9c, 0x3b, 0x9c, 0x78, 0x78, 0x07, 0x7d, - 0x5f, 0x36, 0x06, 0x77, 0xf6, 0x4f, 0xa4, 0x6b, 0x78, 0xdf, 0x39, 0xec, 0x3c, 0x7a, 0x0e, 0x72, - 0xeb, 0xf4, 0x9e, 0x84, 0x67, 0xf0, 0x3e, 0x2a, 0x43, 0x06, 0xb7, 0xce, 0x9e, 0x3b, 0xf7, 0xc8, - 0x93, 0x4c, 0xcb, 0x2f, 0x8f, 0x29, 0xa2, 0x00, 0xcd, 0x40, 0xce, 0xc1, 0x4d, 0xeb, 0xec, 0xb9, - 0xf3, 0xd7, 0x1e, 0x61, 0x6a, 0x75, 0x79, 0x4c, 0xf1, 0x8b, 0x16, 0xb2, 0xa4, 0xc7, 0xdf, 0xfc, - 0xe4, 0x6c, 0xac, 0x9a, 0x82, 0x84, 0xd3, 0xed, 0xbc, 0x65, 0xba, 0xf1, 0x53, 0x29, 0x98, 0x0b, - 0xd4, 0xb2, 0xc5, 0xe5, 0xba, 0xd6, 0xd6, 0x5b, 0x9a, 0x7f, 0xbb, 0x85, 0x14, 0xe8, 0x3f, 0xa5, - 0x18, 0xb2, 0x6a, 0x1c, 0x28, 0x45, 0xf9, 0x57, 0x62, 0x50, 0xb8, 0x2a, 0x90, 0x1b, 0xd8, 0x45, - 0x17, 0x00, 0xbc, 0x37, 0x89, 0xa9, 0x72, 0x7c, 0xbe, 0xf7, 0x5d, 0xf3, 0x1e, 0x8f, 0x12, 0x20, - 0x47, 0x8f, 0x53, 0x05, 0xb4, 0x4c, 0x87, 0x7f, 0xb2, 0x17, 0xc1, 0xea, 0x11, 0xa3, 0x07, 0x01, - 0x51, 0xab, 0xa6, 0x5e, 0x37, 0x5d, 0xdd, 0xd8, 0x51, 0x2d, 0xf3, 0x06, 0xff, 0x10, 0x3a, 0xa1, - 0x48, 0xb4, 0xe6, 0x2a, 0xad, 0x58, 0x27, 0xe5, 0xa4, 0xd1, 0x39, 0x0f, 0x85, 0x44, 0x73, 0x5a, - 0xab, 0x65, 0x63, 0xc7, 0xe1, 0x86, 0x4b, 0x3c, 0xa2, 0x0b, 0x90, 0xb1, 0xba, 0x5b, 0xaa, 0xb0, - 0x12, 0xf9, 0xb3, 0x77, 0x0e, 0x9a, 0xf3, 0x42, 0x37, 0xf8, 0xac, 0x4f, 0x5b, 0xdd, 0x2d, 0xa2, - 0x29, 0x77, 0x43, 0x61, 0x40, 0x63, 0xf2, 0xd7, 0xfd, 0x76, 0xd0, 0xab, 0x39, 0x78, 0x0f, 0x54, - 0xcb, 0xd6, 0x4d, 0x5b, 0x77, 0xf7, 0xe9, 0x79, 0xb9, 0x84, 0x22, 0x89, 0x8a, 0x75, 0x5e, 0x2e, - 0x5f, 0x83, 0x52, 0x83, 0x7a, 0xf9, 0x7e, 0xcb, 0xcf, 0xf9, 0xed, 0x8b, 0x45, 0xb7, 0x6f, 0x68, - 0xcb, 0xe2, 0x7d, 0x2d, 0xab, 0xae, 0x0c, 0xd5, 0xcc, 0x47, 0x0f, 0xa7, 0x99, 0xe1, 0xd5, 0xed, - 0x0f, 0x8f, 0x85, 0x26, 0x25, 0xf7, 0x7a, 0x02, 0x26, 0x6b, 0x54, 0xa5, 0x8c, 0x0a, 0xe0, 0xcb, - 0x07, 0x2f, 0xa2, 0xe5, 0x08, 0xd3, 0x59, 0x8e, 0x9c, 0x3e, 0xf2, 0x93, 0x30, 0xbe, 0xae, 0xd9, - 0x6e, 0x03, 0xbb, 0x97, 0xb1, 0xd6, 0xc2, 0x76, 0x78, 0x95, 0x1d, 0x17, 0xab, 0x2c, 0x82, 0x24, - 0x5d, 0x4a, 0xd9, 0x2a, 0x43, 0x7f, 0xcb, 0xbb, 0x90, 0xa4, 0xe7, 0x65, 0xbd, 0x15, 0x98, 0x73, - 0xb0, 0x15, 0x98, 0xd8, 0xcf, 0x7d, 0x17, 0x3b, 0x22, 0xc7, 0x44, 0x1f, 0xd0, 0x63, 0x62, 0x1d, - 0x4d, 0x1c, 0xbc, 0x8e, 0x72, 0x25, 0xe4, 0xab, 0x69, 0x1b, 0x32, 0x55, 0x62, 0x7e, 0x97, 0x16, - 0xbd, 0x86, 0xc4, 0xfc, 0x86, 0xa0, 0x15, 0x28, 0x59, 0x9a, 0xed, 0xd2, 0x4f, 0x8d, 0x76, 0x69, - 0x2f, 0xb8, 0x9e, 0xcf, 0xf6, 0xcf, 0xba, 0x50, 0x67, 0xf9, 0x5b, 0xc6, 0xad, 0x60, 0xa1, 0xfc, - 0x5f, 0x92, 0x90, 0xe6, 0xc2, 0x78, 0x0a, 0x32, 0x5c, 0xac, 0x5c, 0x33, 0xef, 0x9a, 0xef, 0x5f, - 0x8c, 0xe6, 0xbd, 0x45, 0x83, 0xe3, 0x09, 0x1e, 0x74, 0x3f, 0x64, 0x9b, 0xbb, 0x9a, 0x6e, 0xa8, - 0x7a, 0x8b, 0x3b, 0x80, 0xf9, 0xd7, 0x5f, 0x9b, 0xcd, 0xd4, 0x48, 0xd9, 0xd2, 0xa2, 0x92, 0xa1, - 0x95, 0x4b, 0x2d, 0xb2, 0xf2, 0xef, 0x62, 0x7d, 0x67, 0xd7, 0xe5, 0xb3, 0x8b, 0x3f, 0xa1, 0x27, - 0x20, 0x49, 0x14, 0x82, 0x7f, 0x88, 0x5a, 0xee, 0xf3, 0xe1, 0xbd, 0xfc, 0x4a, 0x35, 0x4b, 0x5e, - 0xfc, 0xa1, 0xdf, 0x9f, 0x8d, 0x29, 0x94, 0x03, 0xd5, 0x60, 0xbc, 0xad, 0x39, 0xae, 0x4a, 0x57, - 0x2d, 0xf2, 0xfa, 0x14, 0x85, 0x38, 0xd6, 0x2f, 0x10, 0x2e, 0x58, 0xde, 0xf4, 0x3c, 0xe1, 0x62, - 0x45, 0x2d, 0x74, 0x12, 0x24, 0x0a, 0xd2, 0x34, 0x3b, 0x1d, 0xdd, 0x65, 0xbe, 0x54, 0x9a, 0xca, - 0xbd, 0x48, 0xca, 0x6b, 0xb4, 0x98, 0x7a, 0x54, 0xc7, 0x21, 0x47, 0x3f, 0x7d, 0xa3, 0x24, 0xec, - 0x90, 0x76, 0x96, 0x14, 0xd0, 0xca, 0x13, 0x50, 0xf2, 0x6d, 0x23, 0x23, 0xc9, 0x32, 0x14, 0xbf, - 0x98, 0x12, 0x3e, 0x0c, 0x53, 0x06, 0xde, 0xa3, 0xc7, 0xc6, 0x43, 0xd4, 0x39, 0x4a, 0x8d, 0x48, - 0xdd, 0xd5, 0x30, 0xc7, 0x7d, 0x50, 0x6c, 0x0a, 0xe1, 0x33, 0x5a, 0xa0, 0xb4, 0xe3, 0x5e, 0x29, - 0x25, 0x3b, 0x06, 0x59, 0xcd, 0xb2, 0x18, 0x41, 0x9e, 0xdb, 0x46, 0xcb, 0xa2, 0x55, 0xa7, 0x61, - 0x82, 0xf6, 0xd1, 0xc6, 0x4e, 0xb7, 0xed, 0x72, 0x90, 0x02, 0xa5, 0x29, 0x91, 0x0a, 0x85, 0x95, - 0x53, 0xda, 0x7b, 0x60, 0x1c, 0x5f, 0xd7, 0x5b, 0xd8, 0x68, 0x62, 0x46, 0x37, 0x4e, 0xe9, 0x0a, - 0xa2, 0x90, 0x12, 0x9d, 0x02, 0xcf, 0xe6, 0xa9, 0xc2, 0x1e, 0x17, 0x19, 0x9e, 0x28, 0xaf, 0xb0, - 0x62, 0x79, 0x1a, 0x92, 0x8b, 0x9a, 0xab, 0x11, 0xa7, 0xc2, 0xdd, 0x63, 0x8b, 0x4c, 0x41, 0x21, - 0x3f, 0xe5, 0x6f, 0xc6, 0x21, 0x79, 0xd5, 0x74, 0x31, 0x7a, 0x34, 0xe0, 0xf0, 0x15, 0x07, 0xe9, - 0x73, 0x43, 0xdf, 0x31, 0x70, 0x6b, 0xc5, 0xd9, 0x09, 0xdc, 0x53, 0xe1, 0xab, 0x53, 0x3c, 0xa4, - 0x4e, 0x53, 0x90, 0xb2, 0xcd, 0xae, 0xd1, 0x12, 0xe7, 0x9b, 0xe9, 0x03, 0xaa, 0x43, 0xd6, 0xd3, - 0x92, 0x64, 0x94, 0x96, 0x94, 0x88, 0x96, 0x10, 0x1d, 0xe6, 0x05, 0x4a, 0x66, 0x8b, 0x2b, 0x4b, - 0x15, 0x72, 0x9e, 0xf1, 0xe2, 0xda, 0x36, 0x9a, 0xc2, 0xfa, 0x6c, 0x64, 0x21, 0xf1, 0xc6, 0xde, - 0x13, 0x1e, 0xd3, 0x38, 0xc9, 0xab, 0xe0, 0xd2, 0x0b, 0xa9, 0x15, 0xbf, 0x33, 0x23, 0x43, 0xfb, - 0xe5, 0xab, 0x15, 0xbb, 0x37, 0xe3, 0x4e, 0xc8, 0x39, 0xfa, 0x8e, 0xa1, 0xb9, 0x5d, 0x1b, 0x73, - 0xcd, 0xf3, 0x0b, 0xe4, 0x2f, 0xc5, 0x20, 0xcd, 0x34, 0x39, 0x20, 0xb7, 0xd8, 0x60, 0xb9, 0xc5, - 0x87, 0xc9, 0x2d, 0x71, 0xfb, 0x72, 0xab, 0x00, 0x78, 0x8d, 0x71, 0xf8, 0x55, 0x06, 0x03, 0xbc, - 0x05, 0xd6, 0xc4, 0x86, 0xbe, 0xc3, 0x27, 0x6a, 0x80, 0x49, 0xfe, 0x4f, 0x31, 0xe2, 0xb8, 0xf2, - 0x7a, 0x54, 0x81, 0x71, 0xd1, 0x2e, 0x75, 0xbb, 0xad, 0xed, 0x70, 0xdd, 0xb9, 0x6b, 0x68, 0xe3, - 0x2e, 0xb6, 0xb5, 0x1d, 0x25, 0xcf, 0xdb, 0x43, 0x1e, 0x06, 0x8f, 0x43, 0x7c, 0xc8, 0x38, 0x84, - 0x06, 0x3e, 0x71, 0x7b, 0x03, 0x1f, 0x1a, 0xa2, 0x64, 0xef, 0x10, 0x7d, 0x2e, 0x4e, 0x83, 0x17, - 0xcb, 0x74, 0xb4, 0xf6, 0xdb, 0x31, 0x23, 0x8e, 0x43, 0xce, 0x32, 0xdb, 0x2a, 0xab, 0x61, 0xe7, - 0xfe, 0xb3, 0x96, 0xd9, 0x56, 0xfa, 0x86, 0x3d, 0xf5, 0x26, 0x4d, 0x97, 0xf4, 0x9b, 0x20, 0xb5, - 0x4c, 0xaf, 0xd4, 0x6c, 0x28, 0x30, 0x51, 0xf0, 0xb5, 0xec, 0x61, 0x22, 0x03, 0xba, 0x38, 0xc6, - 0xfa, 0xd7, 0x5e, 0xd6, 0x6c, 0x46, 0xa9, 0x70, 0x3a, 0xc2, 0xc1, 0x4c, 0xff, 0xa0, 0xa8, 0x37, - 0xa8, 0x96, 0x0a, 0xa7, 0x93, 0x7f, 0x2a, 0x06, 0xb0, 0x4c, 0x24, 0x4b, 0xfb, 0x4b, 0x56, 0x21, - 0x87, 0x36, 0x41, 0x0d, 0xbd, 0x79, 0x66, 0xd8, 0xa0, 0xf1, 0xf7, 0x17, 0x9c, 0x60, 0xbb, 0x6b, - 0x30, 0xee, 0x2b, 0xa3, 0x83, 0x45, 0x63, 0x66, 0x0e, 0xf0, 0xa8, 0x1b, 0xd8, 0x55, 0x0a, 0xd7, - 0x03, 0x4f, 0xf2, 0x3f, 0x89, 0x41, 0x8e, 0xb6, 0x69, 0x05, 0xbb, 0x5a, 0x68, 0x0c, 0x63, 0xb7, - 0x3f, 0x86, 0x77, 0x01, 0x30, 0x18, 0x47, 0x7f, 0x09, 0x73, 0xcd, 0xca, 0xd1, 0x92, 0x86, 0xfe, - 0x12, 0x46, 0xe7, 0x3d, 0x81, 0x27, 0x0e, 0x16, 0xb8, 0xf0, 0xb8, 0xb9, 0xd8, 0x8f, 0x42, 0x86, - 0x5e, 0xfd, 0xb5, 0xe7, 0x70, 0x27, 0x3a, 0x6d, 0x74, 0x3b, 0x1b, 0x7b, 0x8e, 0xfc, 0x22, 0x64, - 0x36, 0xf6, 0x58, 0x2e, 0xe4, 0x38, 0xe4, 0x6c, 0xd3, 0xe4, 0x6b, 0x32, 0xf3, 0x85, 0xb2, 0xa4, - 0x80, 0x2e, 0x41, 0x22, 0xfe, 0x8f, 0xfb, 0xf1, 0xbf, 0x9f, 0xc0, 0x48, 0x8c, 0x94, 0xc0, 0x38, - 0xfd, 0xef, 0x63, 0x90, 0x0f, 0xd8, 0x07, 0xf4, 0x08, 0xdc, 0x51, 0x5d, 0x5e, 0xab, 0x3d, 0xa3, - 0x2e, 0x2d, 0xaa, 0x17, 0x97, 0x2b, 0x97, 0xfc, 0x2f, 0xdb, 0xca, 0x47, 0x6e, 0xde, 0x9a, 0x43, - 0x01, 0xda, 0x4d, 0x83, 0x6e, 0xe2, 0xa0, 0x33, 0x30, 0x15, 0x66, 0xa9, 0x54, 0x1b, 0xf5, 0xd5, - 0x0d, 0x29, 0x56, 0xbe, 0xe3, 0xe6, 0xad, 0xb9, 0x89, 0x00, 0x47, 0x65, 0xcb, 0xc1, 0x86, 0xdb, - 0xcf, 0x50, 0x5b, 0x5b, 0x59, 0x59, 0xda, 0x90, 0xe2, 0x7d, 0x0c, 0xdc, 0x60, 0x9f, 0x82, 0x89, - 0x30, 0xc3, 0xea, 0xd2, 0xb2, 0x94, 0x28, 0xa3, 0x9b, 0xb7, 0xe6, 0x8a, 0x01, 0xea, 0x55, 0xbd, - 0x5d, 0xce, 0x7e, 0xe0, 0x53, 0x33, 0x63, 0xaf, 0xfe, 0xdd, 0x99, 0x18, 0xe9, 0xd9, 0x78, 0xc8, - 0x46, 0xa0, 0x07, 0xe1, 0x68, 0x63, 0xe9, 0xd2, 0x6a, 0x7d, 0x51, 0x5d, 0x69, 0x5c, 0x12, 0xdb, - 0x20, 0xa2, 0x77, 0xa5, 0x9b, 0xb7, 0xe6, 0xf2, 0xbc, 0x4b, 0xc3, 0xa8, 0xd7, 0x95, 0xfa, 0xd5, - 0xb5, 0x8d, 0xba, 0x14, 0x63, 0xd4, 0xeb, 0x36, 0xbe, 0x6e, 0xba, 0xec, 0x6e, 0xc0, 0x87, 0xe1, - 0xd8, 0x00, 0x6a, 0xaf, 0x63, 0x13, 0x37, 0x6f, 0xcd, 0x8d, 0xaf, 0xdb, 0x98, 0xcd, 0x1f, 0xca, - 0x31, 0x0f, 0xd3, 0xfd, 0x1c, 0x6b, 0xeb, 0x6b, 0x8d, 0xca, 0xb2, 0x34, 0x57, 0x96, 0x6e, 0xde, - 0x9a, 0x2b, 0x08, 0x63, 0x48, 0xe8, 0xfd, 0x9e, 0xbd, 0x55, 0xd1, 0xce, 0x27, 0x32, 0xa1, 0x5c, - 0x1e, 0x8b, 0x23, 0x2c, 0xcd, 0xd6, 0x3a, 0xc3, 0xc3, 0x9d, 0xfe, 0x44, 0xec, 0x90, 0x08, 0x28, - 0x62, 0x63, 0x57, 0x7e, 0x39, 0x0e, 0x25, 0xcf, 0xbf, 0x5e, 0xa7, 0x2f, 0x45, 0x8f, 0x06, 0x53, - 0x33, 0xf9, 0xa1, 0x2b, 0x1b, 0xa3, 0x16, 0x99, 0x9b, 0x77, 0x40, 0x56, 0xf8, 0x69, 0xdc, 0x82, - 0xcc, 0xf5, 0xf3, 0xd5, 0x39, 0x05, 0x67, 0xf5, 0x38, 0xd0, 0xd3, 0x90, 0xf3, 0xec, 0x89, 0x77, - 0xd9, 0xce, 0x70, 0x03, 0xc4, 0xf9, 0x7d, 0x1e, 0xf4, 0xa4, 0x1f, 0x49, 0x24, 0x87, 0xc5, 0x26, - 0x57, 0x19, 0x01, 0x67, 0x16, 0xf4, 0xf2, 0x12, 0x9f, 0x89, 0xbc, 0xf7, 0xf4, 0xa2, 0x82, 0x3d, - 0x95, 0x05, 0x57, 0xcc, 0x51, 0xc9, 0x76, 0xb4, 0xbd, 0x2a, 0x8d, 0xaf, 0x8e, 0x42, 0x86, 0x54, - 0xee, 0xf0, 0xef, 0xb0, 0x13, 0x4a, 0xba, 0xa3, 0xed, 0x5d, 0xd2, 0x9c, 0x2b, 0xc9, 0x6c, 0x42, - 0x4a, 0xca, 0xbf, 0x14, 0x83, 0x62, 0xb8, 0x8f, 0xe8, 0x01, 0x40, 0x84, 0x43, 0xdb, 0xc1, 0x2a, - 0xb1, 0x3a, 0x54, 0x58, 0x02, 0xb7, 0xd4, 0xd1, 0xf6, 0x2a, 0x3b, 0x78, 0xb5, 0xdb, 0xa1, 0x0d, - 0x70, 0x90, 0x02, 0x92, 0x20, 0x16, 0xe3, 0xc4, 0x85, 0x79, 0xac, 0xff, 0xea, 0x3d, 0x4e, 0x50, - 0x1d, 0x27, 0xd6, 0xed, 0xa3, 0xbf, 0x3f, 0x1b, 0x63, 0x29, 0xf4, 0x22, 0x03, 0xf5, 0x76, 0xe7, - 0x43, 0xfd, 0x49, 0x84, 0xfb, 0x23, 0x3f, 0x0d, 0xa5, 0x1e, 0xa1, 0x22, 0x19, 0xc6, 0x79, 0xb6, - 0x80, 0xee, 0x7c, 0x32, 0xbf, 0x39, 0xa7, 0xe4, 0x59, 0x56, 0x80, 0xee, 0x04, 0x2f, 0x64, 0xbf, - 0xf8, 0xca, 0x6c, 0x8c, 0x26, 0xd2, 0x1f, 0x80, 0xf1, 0x90, 0x58, 0x45, 0x06, 0x2f, 0xe6, 0x67, - 0xf0, 0x7c, 0xe2, 0x17, 0xa0, 0x40, 0x0c, 0x28, 0x6e, 0x71, 0xda, 0xfb, 0xa1, 0xc4, 0x0c, 0x7c, - 0xaf, 0xc0, 0x99, 0x87, 0xb5, 0x22, 0xa4, 0x2e, 0x0b, 0x97, 0x2b, 0x2c, 0xfb, 0xbc, 0xa0, 0xba, - 0xa4, 0x39, 0xd5, 0x77, 0xbd, 0xfa, 0xfa, 0x4c, 0xec, 0xad, 0x99, 0xa0, 0x5f, 0x7d, 0x17, 0x1c, - 0x0f, 0x54, 0x6a, 0x5b, 0x4d, 0x3d, 0x94, 0x8d, 0x28, 0x05, 0x34, 0x8d, 0x54, 0x46, 0x65, 0x15, - 0x0e, 0xcc, 0x6d, 0x1c, 0x9c, 0x48, 0x2b, 0x1f, 0x6c, 0x29, 0xa2, 0x13, 0x1e, 0x83, 0x73, 0x97, - 0xff, 0x27, 0x0b, 0x19, 0x05, 0xbf, 0xaf, 0x8b, 0x1d, 0x17, 0x9d, 0x85, 0x24, 0x6e, 0xee, 0x9a, - 0x83, 0x52, 0x45, 0xa4, 0x73, 0xf3, 0x9c, 0xae, 0xde, 0xdc, 0x35, 0x2f, 0x8f, 0x29, 0x94, 0x16, - 0x9d, 0x83, 0xd4, 0x76, 0xbb, 0xcb, 0xf3, 0x17, 0x3d, 0x16, 0x23, 0xc8, 0x74, 0x91, 0x10, 0x5d, - 0x1e, 0x53, 0x18, 0x35, 0x79, 0x15, 0xbd, 0xc9, 0x34, 0x71, 0xf0, 0xab, 0x96, 0x8c, 0x6d, 0xfa, - 0x2a, 0x42, 0x8b, 0xaa, 0x00, 0xba, 0xa1, 0xbb, 0x2a, 0x8d, 0xed, 0xb9, 0x87, 0x78, 0xf7, 0x70, - 0x4e, 0xdd, 0xa5, 0xd9, 0x80, 0xcb, 0x63, 0x4a, 0x4e, 0x17, 0x0f, 0xa4, 0xb9, 0xef, 0xeb, 0x62, - 0x7b, 0x9f, 0x3b, 0x86, 0x43, 0x9b, 0xfb, 0x2e, 0x42, 0x44, 0x9a, 0x4b, 0xa9, 0x51, 0x1d, 0xf2, - 0xf4, 0x93, 0x55, 0x36, 0x89, 0xf9, 0xad, 0x9a, 0xf2, 0x30, 0xe6, 0x2a, 0x21, 0xa5, 0xf3, 0xfa, - 0xf2, 0x98, 0x02, 0x5b, 0xde, 0x13, 0xb1, 0x94, 0xec, 0xd6, 0x25, 0x77, 0x8f, 0xdf, 0x25, 0x38, - 0x3b, 0x0c, 0x83, 0x5e, 0xbd, 0xb4, 0xb1, 0x77, 0x79, 0x4c, 0xc9, 0x34, 0xd9, 0x4f, 0xd2, 0xff, - 0x16, 0x6e, 0xeb, 0xd7, 0xb1, 0x4d, 0xf8, 0x73, 0x07, 0xf7, 0x7f, 0x91, 0x51, 0x52, 0x84, 0x5c, - 0x4b, 0x3c, 0x10, 0x6b, 0x8b, 0x8d, 0x16, 0xef, 0x06, 0xf4, 0x1b, 0xeb, 0xd0, 0x38, 0x1b, 0x2d, - 0xd1, 0x89, 0x2c, 0xe6, 0xbf, 0xd1, 0x13, 0x9e, 0xe7, 0x9a, 0xef, 0x77, 0x16, 0x43, 0x1d, 0x60, - 0x39, 0x8c, 0x31, 0xe1, 0xc1, 0xa2, 0x55, 0x28, 0xb6, 0x75, 0xc7, 0x55, 0x1d, 0x43, 0xb3, 0x9c, - 0x5d, 0xd3, 0x75, 0x68, 0x32, 0x20, 0x7f, 0xf6, 0xbe, 0x61, 0x08, 0xcb, 0xba, 0xe3, 0x36, 0x04, - 0xf1, 0xe5, 0x31, 0x65, 0xbc, 0x1d, 0x2c, 0x20, 0x78, 0xe6, 0xf6, 0x36, 0xb6, 0x3d, 0x40, 0x9a, - 0x34, 0x38, 0x00, 0x6f, 0x8d, 0x50, 0x0b, 0x7e, 0x82, 0x67, 0x06, 0x0b, 0xd0, 0x0f, 0xc2, 0x64, - 0xdb, 0xd4, 0x5a, 0x1e, 0x9c, 0xda, 0xdc, 0xed, 0x1a, 0xd7, 0x68, 0x86, 0x21, 0x7f, 0xf6, 0xd4, - 0xd0, 0x46, 0x9a, 0x5a, 0x4b, 0x40, 0xd4, 0x08, 0xc3, 0xe5, 0x31, 0x65, 0xa2, 0xdd, 0x5b, 0x88, - 0xde, 0x03, 0x53, 0x9a, 0x65, 0xb5, 0xf7, 0x7b, 0xd1, 0x4b, 0x14, 0xfd, 0xf4, 0x30, 0xf4, 0x0a, - 0xe1, 0xe9, 0x85, 0x47, 0x5a, 0x5f, 0x29, 0xda, 0x00, 0xc9, 0xb2, 0x31, 0xfd, 0xc6, 0xc6, 0xe2, - 0x2e, 0x0c, 0xbd, 0x28, 0x2b, 0x7f, 0xf6, 0xc4, 0x30, 0xec, 0x75, 0x46, 0x2f, 0x3c, 0x9e, 0xcb, - 0x63, 0x4a, 0xc9, 0x0a, 0x17, 0x31, 0x54, 0xb3, 0x89, 0xe9, 0x65, 0x4e, 0x1c, 0x75, 0x22, 0x0a, - 0x95, 0xd2, 0x87, 0x51, 0x43, 0x45, 0xd5, 0x0c, 0x3f, 0x23, 0xc7, 0x6f, 0x5a, 0x39, 0x01, 0xf9, - 0x80, 0x61, 0x41, 0xd3, 0x90, 0xe1, 0x67, 0x06, 0xc4, 0xd9, 0x3a, 0xfe, 0x28, 0x17, 0xa1, 0x10, - 0x34, 0x26, 0xf2, 0x87, 0x62, 0x1e, 0x27, 0xfd, 0xf4, 0x7d, 0x3a, 0x9c, 0x52, 0xcc, 0xf9, 0xd9, - 0xc2, 0x7b, 0xc4, 0x2a, 0x22, 0xea, 0xd9, 0x2e, 0x53, 0x81, 0x16, 0xf2, 0x45, 0x0c, 0xcd, 0x42, - 0xde, 0x3a, 0x6b, 0x79, 0x24, 0x09, 0x4a, 0x02, 0xd6, 0x59, 0x4b, 0x10, 0xdc, 0x0d, 0x05, 0xd2, - 0x53, 0x35, 0xe8, 0x6d, 0xe4, 0x94, 0x3c, 0x29, 0xe3, 0x24, 0xf2, 0xbf, 0x8e, 0x83, 0xd4, 0x6b, - 0x80, 0xbc, 0x5c, 0x63, 0xec, 0xd0, 0xb9, 0xc6, 0x63, 0xbd, 0x59, 0x4e, 0x3f, 0xb1, 0xb9, 0x0c, - 0x92, 0x9f, 0x9f, 0x63, 0x0b, 0xc1, 0x70, 0xef, 0xa9, 0xc7, 0xcd, 0x53, 0x4a, 0xcd, 0x1e, 0xbf, - 0xef, 0x62, 0x68, 0x4f, 0x46, 0x5c, 0xd5, 0xdd, 0x3b, 0xc4, 0x9e, 0xbf, 0xb0, 0x69, 0xb5, 0x34, - 0x17, 0x8b, 0x7c, 0x49, 0x60, 0x7b, 0xe6, 0x7e, 0x28, 0x69, 0x96, 0xa5, 0x3a, 0xae, 0xe6, 0x62, - 0xbe, 0xac, 0xa7, 0x58, 0xda, 0x50, 0xb3, 0xac, 0x06, 0x29, 0x65, 0xcb, 0xfa, 0x7d, 0x50, 0x24, - 0x36, 0x59, 0xd7, 0xda, 0x2a, 0xcf, 0x1e, 0xa4, 0xd9, 0xea, 0xcf, 0x4b, 0x2f, 0xd3, 0x42, 0xb9, - 0xe5, 0x8d, 0x38, 0xb5, 0xc7, 0x5e, 0xf8, 0x15, 0x0b, 0x84, 0x5f, 0x88, 0xdf, 0x49, 0xc0, 0xe4, - 0x23, 0xae, 0x71, 0x18, 0x9c, 0xf5, 0x9d, 0xa2, 0xa1, 0xda, 0x75, 0x96, 0x08, 0xc9, 0x2a, 0xec, - 0x41, 0x7e, 0x7f, 0x1c, 0x26, 0xfa, 0x2c, 0xf7, 0xc0, 0x74, 0xb8, 0x1f, 0x77, 0xc6, 0x0f, 0x15, - 0x77, 0x3e, 0x13, 0x4e, 0xf7, 0x06, 0x56, 0xbe, 0xe3, 0x7d, 0x42, 0x66, 0x76, 0x93, 0x28, 0x34, - 0x07, 0x09, 0x64, 0x84, 0xa9, 0x9a, 0x6f, 0xc2, 0xd4, 0xd6, 0xfe, 0x4b, 0x9a, 0xe1, 0xea, 0x06, - 0x56, 0xfb, 0x46, 0xad, 0x7f, 0x29, 0x5d, 0xd1, 0x9d, 0x2d, 0xbc, 0xab, 0x5d, 0xd7, 0x4d, 0xd1, - 0xac, 0x49, 0x8f, 0xdf, 0x4f, 0xfa, 0xca, 0x0a, 0x14, 0xc3, 0x4b, 0x0f, 0x2a, 0x42, 0xdc, 0xdd, - 0xe3, 0xfd, 0x8f, 0xbb, 0x7b, 0xe8, 0x61, 0x9e, 0x1f, 0x8a, 0xd3, 0xfc, 0x50, 0xff, 0x8b, 0x38, - 0x9f, 0x9f, 0x1c, 0x92, 0x65, 0x6f, 0x36, 0x78, 0xcb, 0x51, 0x2f, 0xaa, 0x7c, 0x0a, 0x4a, 0x3d, - 0xeb, 0xcd, 0xb0, 0x6c, 0xa1, 0x5c, 0x82, 0xf1, 0xd0, 0xe2, 0x22, 0x1f, 0x81, 0xa9, 0x41, 0x6b, - 0x85, 0xbc, 0xeb, 0x95, 0x87, 0x6c, 0x3e, 0x3a, 0x07, 0x59, 0x6f, 0xb1, 0x18, 0x90, 0x9d, 0xa0, - 0xbd, 0x10, 0xc4, 0x8a, 0x47, 0x1a, 0x4a, 0x72, 0xc7, 0x43, 0x49, 0x6e, 0xf9, 0xbd, 0x30, 0x3d, - 0x6c, 0x21, 0xe8, 0xe9, 0x46, 0xd2, 0xd3, 0xc2, 0x23, 0x90, 0xe6, 0x37, 0xb6, 0xc5, 0xe9, 0xb6, - 0x0e, 0x7f, 0x22, 0xda, 0xc9, 0x16, 0x85, 0x04, 0xdb, 0xed, 0xa1, 0x0f, 0xb2, 0x0a, 0xc7, 0x86, - 0x2e, 0x06, 0xc3, 0x37, 0x88, 0x18, 0x10, 0xdf, 0x20, 0x6a, 0x8a, 0xe6, 0x38, 0xb4, 0xaf, 0xe2, - 0x10, 0x04, 0x7b, 0x92, 0x3f, 0x9a, 0x80, 0x23, 0x83, 0x97, 0x04, 0x34, 0x07, 0x05, 0xe2, 0x77, - 0xbb, 0x61, 0x17, 0x1d, 0x3a, 0xda, 0xde, 0x06, 0xf7, 0xcf, 0x79, 0x82, 0x3d, 0xee, 0x25, 0xd8, - 0xd1, 0x26, 0x4c, 0xb4, 0xcd, 0xa6, 0xd6, 0x56, 0x03, 0x1a, 0xcf, 0x95, 0xfd, 0x9e, 0x3e, 0x61, - 0xd7, 0xd9, 0x3d, 0xce, 0xad, 0x3e, 0xa5, 0x2f, 0x51, 0x8c, 0x65, 0x4f, 0xf3, 0xd1, 0x22, 0xe4, - 0x3b, 0xbe, 0x22, 0x1f, 0x42, 0xd9, 0x83, 0x6c, 0x81, 0x21, 0x49, 0x0d, 0xdc, 0x0e, 0x4a, 0x1f, - 0xda, 0x44, 0x0f, 0xdb, 0x59, 0xc9, 0x0c, 0xdd, 0x59, 0x19, 0xb4, 0x8d, 0x91, 0x1d, 0xbc, 0x8d, - 0xf1, 0x81, 0xe0, 0xd0, 0x84, 0x16, 0xd1, 0xfe, 0x9d, 0x0d, 0xd4, 0x80, 0x29, 0xce, 0xdf, 0x0a, - 0xc9, 0x3e, 0x3e, 0xaa, 0xa1, 0x41, 0x82, 0x7d, 0xb8, 0xd8, 0x13, 0xb7, 0x27, 0x76, 0x61, 0x4b, - 0x93, 0x01, 0x5b, 0xfa, 0xff, 0xd8, 0x50, 0xfc, 0xdb, 0x1c, 0x64, 0x15, 0xec, 0x58, 0x64, 0xe1, - 0x44, 0x55, 0xc8, 0xe1, 0xbd, 0x26, 0xb6, 0x5c, 0x7f, 0xfb, 0x72, 0x50, 0x30, 0xc0, 0xa8, 0xeb, - 0x82, 0x92, 0x78, 0xe2, 0x1e, 0x1b, 0x7a, 0x94, 0x07, 0x5b, 0xc3, 0xe3, 0x26, 0xce, 0x1e, 0x8c, - 0xb6, 0xce, 0x8b, 0x68, 0x2b, 0x31, 0xd4, 0xf9, 0x66, 0x5c, 0x3d, 0xe1, 0xd6, 0xa3, 0x3c, 0xdc, - 0x4a, 0x46, 0xbc, 0x2c, 0x14, 0x6f, 0xd5, 0x42, 0xf1, 0x56, 0x3a, 0xa2, 0x9b, 0x43, 0x02, 0xae, - 0xf3, 0x22, 0xe0, 0xca, 0x44, 0xb4, 0xb8, 0x27, 0xe2, 0xba, 0x18, 0x8e, 0xb8, 0xb2, 0x43, 0x0c, - 0x88, 0xe0, 0x1e, 0x1a, 0x72, 0x3d, 0x15, 0x08, 0xb9, 0x72, 0x43, 0xe3, 0x1d, 0x06, 0x32, 0x20, - 0xe6, 0xaa, 0x85, 0x62, 0x2e, 0x88, 0x90, 0xc1, 0x90, 0xa0, 0xeb, 0x07, 0x82, 0x41, 0x57, 0x7e, - 0x68, 0xdc, 0xc6, 0xc7, 0x7b, 0x50, 0xd4, 0xf5, 0xa4, 0x17, 0x75, 0x15, 0x86, 0x86, 0x8d, 0xbc, - 0x0f, 0xbd, 0x61, 0xd7, 0x5a, 0x5f, 0xd8, 0x35, 0xce, 0xff, 0x44, 0xc2, 0x30, 0x88, 0x88, 0xb8, - 0x6b, 0xad, 0x2f, 0xee, 0x2a, 0x46, 0x00, 0x46, 0x04, 0x5e, 0xff, 0xdf, 0xe0, 0xc0, 0x6b, 0x78, - 0x68, 0xc4, 0x9b, 0x39, 0x5a, 0xe4, 0xa5, 0x0e, 0x89, 0xbc, 0x58, 0x74, 0xf4, 0xc0, 0x50, 0xf8, - 0x91, 0x43, 0xaf, 0xcd, 0x01, 0xa1, 0x17, 0x0b, 0x92, 0x4e, 0x0e, 0x05, 0x1f, 0x21, 0xf6, 0xda, - 0x1c, 0x10, 0x7b, 0xa1, 0x48, 0xd8, 0xc3, 0x04, 0x5f, 0x29, 0x29, 0x2d, 0x9f, 0x22, 0xae, 0x6f, - 0x8f, 0x9d, 0x22, 0xfe, 0x03, 0xb6, 0x6d, 0xd3, 0x16, 0x27, 0x6e, 0xe9, 0x83, 0x7c, 0x92, 0x38, - 0xe3, 0xbe, 0x4d, 0x3a, 0x20, 0x50, 0xa3, 0x7e, 0x5a, 0xc0, 0x0e, 0xc9, 0x5f, 0x8c, 0xf9, 0xbc, - 0xd4, 0x87, 0x0d, 0x3a, 0xf2, 0x39, 0xee, 0xc8, 0x07, 0xc2, 0xb7, 0x78, 0x38, 0x7c, 0x9b, 0x85, - 0x3c, 0xf1, 0xbf, 0x7a, 0x22, 0x33, 0xcd, 0xf2, 0x22, 0x33, 0x71, 0xd4, 0x80, 0x05, 0x79, 0x7c, - 0x59, 0x61, 0x3b, 0x3c, 0x25, 0xef, 0xd8, 0x05, 0x8b, 0x29, 0xd0, 0x43, 0x30, 0x19, 0xa0, 0xf5, - 0xfc, 0x3a, 0x16, 0xa6, 0x48, 0x1e, 0x75, 0x85, 0x3b, 0x78, 0xff, 0x2c, 0xe6, 0x4b, 0xc8, 0x0f, - 0xe9, 0x06, 0x45, 0x5f, 0xb1, 0x37, 0x29, 0xfa, 0x8a, 0xdf, 0x76, 0xf4, 0x15, 0xf4, 0x53, 0x13, - 0x61, 0x3f, 0xf5, 0x7f, 0xc4, 0xfc, 0x31, 0xf1, 0x62, 0xa9, 0xa6, 0xd9, 0xc2, 0xdc, 0x73, 0xa4, - 0xbf, 0x89, 0x53, 0xd1, 0x36, 0x77, 0xb8, 0x7f, 0x48, 0x7e, 0x12, 0x2a, 0x6f, 0xe1, 0xc8, 0xf1, - 0x75, 0xc1, 0x73, 0x3a, 0x53, 0xc1, 0x73, 0xc1, 0xfc, 0xb0, 0x6c, 0xda, 0x3f, 0x2c, 0xeb, 0x7d, - 0x0b, 0x97, 0x09, 0x7c, 0x0b, 0x87, 0x9e, 0x80, 0x1c, 0xcd, 0x88, 0xaa, 0xa6, 0x25, 0xfe, 0xa0, - 0xc6, 0xf1, 0xe1, 0x07, 0x65, 0x1d, 0x7a, 0x84, 0x8f, 0x1d, 0xae, 0xf5, 0x3d, 0x86, 0x5c, 0xc8, - 0x63, 0xb8, 0x13, 0x72, 0xa4, 0xf5, 0xec, 0x62, 0x68, 0xe0, 0x1f, 0x52, 0x8a, 0x02, 0xf9, 0x3d, - 0x80, 0xfa, 0x17, 0x09, 0x74, 0x19, 0xd2, 0xf8, 0x3a, 0xbd, 0x65, 0x8f, 0x1d, 0x40, 0x3c, 0xd2, - 0xef, 0x9a, 0x92, 0xea, 0xea, 0x34, 0x11, 0xf2, 0xb7, 0x5e, 0x9b, 0x95, 0x18, 0xf5, 0x83, 0xde, - 0x77, 0x03, 0x0a, 0xe7, 0x97, 0xff, 0x63, 0x9c, 0x04, 0x30, 0xa1, 0x05, 0x64, 0xa0, 0x6c, 0x07, - 0x6d, 0x1d, 0x8e, 0x26, 0xef, 0x19, 0x80, 0x1d, 0xcd, 0x51, 0x6f, 0x68, 0x86, 0x8b, 0x5b, 0x5c, - 0xe8, 0x81, 0x12, 0x54, 0x86, 0x2c, 0x79, 0xea, 0x3a, 0xb8, 0xc5, 0xc3, 0x68, 0xef, 0x39, 0xd0, - 0xcf, 0xcc, 0xf7, 0xd6, 0xcf, 0xb0, 0x94, 0xb3, 0x3d, 0x52, 0x0e, 0x04, 0x17, 0xb9, 0x60, 0x70, - 0xc1, 0x0e, 0x0c, 0xf3, 0x73, 0x8b, 0xc0, 0xda, 0x26, 0x9e, 0xd1, 0x3d, 0x30, 0xde, 0xc1, 0x1d, - 0xcb, 0x34, 0xdb, 0x2a, 0x33, 0x37, 0xec, 0x06, 0xf8, 0x02, 0x2f, 0xac, 0x53, 0xab, 0xf3, 0x63, - 0x71, 0x7f, 0xfe, 0xf9, 0x41, 0xe4, 0xf7, 0x9d, 0x80, 0xe5, 0x9f, 0xa0, 0x99, 0xa5, 0xb0, 0x8b, - 0x80, 0x1a, 0xc1, 0xd3, 0x24, 0x5d, 0x6a, 0x16, 0x84, 0x42, 0x8f, 0x6a, 0x3f, 0xfc, 0x53, 0x27, - 0xac, 0xd8, 0x41, 0xcf, 0xc3, 0xd1, 0x1e, 0xdb, 0xe6, 0x41, 0xc7, 0x47, 0x35, 0x71, 0x77, 0x84, - 0x4d, 0x9c, 0x80, 0xf6, 0x85, 0x95, 0xf8, 0x1e, 0x67, 0xdd, 0x12, 0x14, 0xc3, 0x1e, 0xcf, 0xc0, - 0xe1, 0xa7, 0x7f, 0x71, 0xc4, 0xd5, 0x74, 0x43, 0x0d, 0xa5, 0x83, 0x0a, 0xac, 0x90, 0x27, 0x99, - 0xd6, 0xe1, 0x8e, 0x81, 0x9e, 0x0f, 0x7a, 0x1c, 0x72, 0xbe, 0xd3, 0xc4, 0xa4, 0x7a, 0x40, 0xba, - 0xc0, 0xa7, 0x95, 0x7f, 0x33, 0xe6, 0x43, 0x86, 0x13, 0x10, 0x75, 0x48, 0xb3, 0xe3, 0x70, 0xfc, - 0x90, 0xcd, 0x43, 0xa3, 0xf9, 0x4c, 0xf3, 0xec, 0xac, 0x9c, 0xc2, 0x99, 0xe5, 0xf7, 0x40, 0x9a, - 0x95, 0xa0, 0x3c, 0x64, 0xfc, 0x8b, 0x70, 0x01, 0xd2, 0x95, 0x5a, 0xad, 0xbe, 0xbe, 0x21, 0xc5, - 0x50, 0x0e, 0x52, 0x95, 0xea, 0x9a, 0xb2, 0x21, 0xc5, 0x49, 0xb1, 0x52, 0xbf, 0x52, 0xaf, 0x6d, - 0x48, 0x09, 0x34, 0x01, 0xe3, 0xec, 0xb7, 0x7a, 0x71, 0x4d, 0x59, 0xa9, 0x6c, 0x48, 0xc9, 0x40, - 0x51, 0xa3, 0xbe, 0xba, 0x58, 0x57, 0xa4, 0x94, 0xfc, 0x08, 0x1c, 0x1b, 0xea, 0x65, 0xf9, 0xd9, - 0x85, 0x58, 0x20, 0xbb, 0x20, 0x7f, 0x34, 0x0e, 0xe5, 0xe1, 0xae, 0x13, 0xba, 0xd2, 0xd3, 0xf1, - 0xb3, 0x87, 0xf0, 0xbb, 0x7a, 0x7a, 0x8f, 0xee, 0x83, 0xa2, 0x8d, 0xb7, 0xb1, 0xdb, 0xdc, 0x65, - 0xae, 0x1c, 0x5b, 0x32, 0xc7, 0x95, 0x71, 0x5e, 0x4a, 0x99, 0x1c, 0x46, 0xf6, 0x22, 0x6e, 0xba, - 0x2a, 0xb3, 0x45, 0x0e, 0xff, 0xd3, 0x87, 0xe3, 0xac, 0xb4, 0xc1, 0x0a, 0xe5, 0xf7, 0x1e, 0x4a, - 0x96, 0x39, 0x48, 0x29, 0xf5, 0x0d, 0xe5, 0x79, 0x29, 0x81, 0x10, 0x14, 0xe9, 0x4f, 0xb5, 0xb1, - 0x5a, 0x59, 0x6f, 0x5c, 0x5e, 0x23, 0xb2, 0x9c, 0x84, 0x92, 0x90, 0xa5, 0x28, 0x4c, 0xc9, 0x0f, - 0xc0, 0xd1, 0x21, 0x7e, 0xdf, 0x80, 0xf3, 0x89, 0x9f, 0x8c, 0x05, 0xa9, 0xc3, 0x31, 0xff, 0x1a, - 0xa4, 0x1d, 0x57, 0x73, 0xbb, 0x0e, 0x17, 0xe2, 0xe3, 0xa3, 0x3a, 0x82, 0xf3, 0xe2, 0x47, 0x83, - 0xb2, 0x2b, 0x1c, 0x46, 0x3e, 0x07, 0xc5, 0x70, 0xcd, 0x70, 0x19, 0xf8, 0x4a, 0x14, 0x97, 0x9f, - 0x07, 0x08, 0xe4, 0x23, 0xbd, 0x93, 0x5e, 0xb1, 0xe0, 0x49, 0xaf, 0x73, 0x90, 0xba, 0x6e, 0x32, - 0x9b, 0x31, 0x78, 0xe2, 0x5c, 0x35, 0x5d, 0x1c, 0x48, 0x3e, 0x30, 0x6a, 0x59, 0x07, 0xd4, 0x9f, - 0x13, 0x1a, 0xf2, 0x8a, 0xa7, 0xc2, 0xaf, 0xb8, 0x7b, 0x68, 0x76, 0x69, 0xf0, 0xab, 0x5e, 0x82, - 0x14, 0xb5, 0x36, 0x03, 0x3f, 0xfd, 0x79, 0x37, 0x80, 0xe6, 0xba, 0xb6, 0xbe, 0xd5, 0xf5, 0x5f, - 0x30, 0x3b, 0xd8, 0x5a, 0x55, 0x04, 0x5d, 0xf5, 0x4e, 0x6e, 0xb6, 0xa6, 0x7c, 0xd6, 0x80, 0xe9, - 0x0a, 0x00, 0xca, 0xab, 0x50, 0x0c, 0xf3, 0x0e, 0xfe, 0x94, 0xc9, 0xbf, 0x4a, 0x20, 0x27, 0xdc, - 0x27, 0xcf, 0xf9, 0xe2, 0xd7, 0x7b, 0xd0, 0x07, 0xf9, 0x66, 0x0c, 0xb2, 0x1b, 0x7b, 0x5c, 0x8f, - 0x0f, 0x38, 0x6c, 0xe9, 0x7f, 0xcf, 0xe5, 0x25, 0x0b, 0x59, 0x3e, 0x36, 0xe1, 0x65, 0x79, 0x7f, - 0xc0, 0x9b, 0xa9, 0xc9, 0x51, 0xa3, 0x5d, 0x91, 0xed, 0xe6, 0xd6, 0xe9, 0xc2, 0x68, 0xdf, 0x4e, - 0x4c, 0x41, 0x2a, 0xf8, 0xdd, 0x03, 0x7b, 0x90, 0x5b, 0x81, 0x63, 0x09, 0x6c, 0xd9, 0x08, 0x7e, - 0x64, 0x11, 0x3b, 0xf4, 0x47, 0x16, 0xde, 0x5b, 0xe2, 0xc1, 0xb7, 0x5c, 0x87, 0xac, 0x50, 0x0a, - 0xf4, 0xce, 0xe0, 0x01, 0x14, 0xb1, 0x47, 0x33, 0x74, 0xf1, 0xe4, 0xf0, 0x81, 0xf3, 0x27, 0xa7, - 0x61, 0x82, 0x1f, 0xc5, 0xf3, 0xe3, 0x0a, 0x7e, 0x55, 0x7f, 0x89, 0x55, 0x2c, 0x8b, 0xa0, 0x42, - 0xfe, 0xf9, 0x18, 0x48, 0xbd, 0x5a, 0xf9, 0x76, 0x36, 0x80, 0x18, 0x45, 0xa2, 0xfd, 0x81, 0x3b, - 0xb8, 0xd9, 0xc8, 0x8f, 0x93, 0x52, 0xff, 0x16, 0xee, 0xf7, 0xc7, 0x21, 0x1f, 0xc8, 0xe9, 0xa1, - 0xc7, 0x42, 0x47, 0x43, 0xe7, 0x0e, 0xca, 0xff, 0x05, 0xce, 0x86, 0x86, 0x3a, 0x16, 0x3f, 0x7c, - 0xc7, 0xde, 0xfc, 0xc3, 0xfb, 0x83, 0xbf, 0x02, 0x4a, 0x0d, 0xf9, 0x0a, 0xe8, 0x47, 0x62, 0x90, - 0xf5, 0x96, 0xee, 0xc3, 0x66, 0xf3, 0x8f, 0x40, 0x9a, 0xaf, 0x4e, 0x2c, 0x9d, 0xcf, 0x9f, 0x06, - 0xe6, 0x42, 0xcb, 0x90, 0x15, 0x7f, 0xe3, 0x86, 0x07, 0xa2, 0xde, 0xf3, 0xe9, 0x27, 0x21, 0x1f, - 0xd8, 0x58, 0x21, 0x76, 0x62, 0xb5, 0xfe, 0xac, 0x34, 0x56, 0xce, 0xdc, 0xbc, 0x35, 0x97, 0x58, - 0xc5, 0x37, 0xc8, 0x0c, 0x53, 0xea, 0xb5, 0xcb, 0xf5, 0xda, 0x33, 0x52, 0xac, 0x9c, 0xbf, 0x79, - 0x6b, 0x2e, 0xa3, 0x60, 0x9a, 0xbe, 0x3a, 0xfd, 0x0c, 0x94, 0x7a, 0x06, 0x26, 0x6c, 0xdf, 0x11, - 0x14, 0x17, 0x37, 0xd7, 0x97, 0x97, 0x6a, 0x95, 0x8d, 0xba, 0xca, 0x8e, 0xd9, 0xa1, 0xa3, 0x30, - 0xb9, 0xbc, 0x74, 0xe9, 0xf2, 0x86, 0x5a, 0x5b, 0x5e, 0xaa, 0xaf, 0x6e, 0xa8, 0x95, 0x8d, 0x8d, - 0x4a, 0xed, 0x19, 0x29, 0x7e, 0xf6, 0xbb, 0x00, 0xa5, 0x4a, 0xb5, 0xb6, 0x44, 0xd6, 0x67, 0x9d, - 0x5f, 0xa3, 0x5e, 0x83, 0x24, 0x4d, 0x05, 0x1c, 0x78, 0x54, 0xa4, 0x7c, 0x70, 0x6e, 0x13, 0x5d, - 0x84, 0x14, 0xcd, 0x12, 0xa0, 0x83, 0xcf, 0x8e, 0x94, 0x23, 0x92, 0x9d, 0xa4, 0x31, 0x74, 0x3a, - 0x1d, 0x78, 0x98, 0xa4, 0x7c, 0x70, 0xee, 0x13, 0x29, 0x90, 0xf3, 0xa3, 0x8c, 0xe8, 0xc3, 0x15, - 0xe5, 0x11, 0xac, 0x23, 0x5a, 0x86, 0x8c, 0x08, 0x0c, 0xa3, 0x8e, 0x7b, 0x94, 0x23, 0x93, 0x93, - 0x44, 0x5c, 0x2c, 0x80, 0x3f, 0xf8, 0xec, 0x4a, 0x39, 0x22, 0xd3, 0x8a, 0x96, 0xbc, 0xc3, 0xf9, - 0x11, 0x47, 0x38, 0xca, 0x51, 0xc9, 0x46, 0x22, 0x34, 0x3f, 0x35, 0x12, 0x7d, 0x22, 0xa7, 0x3c, - 0x42, 0x12, 0x19, 0x6d, 0x02, 0x04, 0xc2, 0xf5, 0x11, 0x8e, 0xda, 0x94, 0x47, 0x49, 0x0e, 0xa3, - 0x35, 0xc8, 0x7a, 0xd1, 0x53, 0xe4, 0xc1, 0x97, 0x72, 0x74, 0x96, 0x16, 0xbd, 0x07, 0xc6, 0xc3, - 0x51, 0xc3, 0x68, 0xc7, 0x59, 0xca, 0x23, 0xa6, 0x5f, 0x09, 0x7e, 0x38, 0x84, 0x18, 0xed, 0x78, - 0x4b, 0x79, 0xc4, 0x6c, 0x2c, 0x7a, 0x11, 0x26, 0xfa, 0x5d, 0xfc, 0xd1, 0x4f, 0xbb, 0x94, 0x0f, - 0x91, 0x9f, 0x45, 0x1d, 0x40, 0x03, 0x42, 0x83, 0x43, 0x1c, 0x7e, 0x29, 0x1f, 0x26, 0x5d, 0x8b, - 0x5a, 0x50, 0xea, 0xf5, 0xb7, 0x47, 0x3d, 0x0c, 0x53, 0x1e, 0x39, 0x75, 0xcb, 0xde, 0x12, 0xf6, - 0xd3, 0x47, 0x3d, 0x1c, 0x53, 0x1e, 0x39, 0x93, 0x5b, 0xad, 0x0c, 0x3d, 0xdf, 0x78, 0xe2, 0xc0, - 0xf3, 0x8d, 0xfe, 0x89, 0x45, 0xef, 0x4c, 0xe3, 0x3f, 0x7d, 0x18, 0xee, 0xe5, 0x97, 0x0c, 0x38, - 0xae, 0x76, 0x4d, 0x37, 0x76, 0xbc, 0x5b, 0x23, 0xf8, 0x33, 0x3f, 0xdc, 0x78, 0x84, 0x5f, 0x64, - 0x20, 0x4a, 0x23, 0xee, 0x8e, 0x18, 0x7a, 0x8f, 0x56, 0xd4, 0x49, 0xe4, 0xe8, 0xa3, 0x8b, 0x07, - 0xdc, 0x4b, 0x11, 0x71, 0xfb, 0xc5, 0xa0, 0xe3, 0xd2, 0x07, 0x1f, 0xc2, 0x3c, 0xe8, 0xbc, 0xa7, - 0xfc, 0x91, 0x18, 0x14, 0x2f, 0xeb, 0x8e, 0x6b, 0xda, 0x7a, 0x53, 0x6b, 0xd3, 0x15, 0xe3, 0xc2, - 0xa8, 0x1f, 0x7f, 0x54, 0x73, 0xc4, 0x19, 0xe1, 0x97, 0x5d, 0xf0, 0x83, 0x21, 0x8b, 0x90, 0xbe, - 0xae, 0xb5, 0xd9, 0xa7, 0x17, 0xc1, 0xeb, 0x6c, 0x7a, 0x65, 0x1e, 0xf0, 0x92, 0x82, 0x28, 0x8c, - 0x57, 0x7e, 0x95, 0x9e, 0xe4, 0xee, 0x74, 0x74, 0x87, 0xfd, 0x15, 0x6a, 0x17, 0x3b, 0x68, 0x1d, - 0x92, 0xb6, 0xe6, 0xf2, 0xa0, 0xa6, 0xfa, 0x0e, 0x7e, 0x45, 0xc5, 0xfd, 0xd1, 0x17, 0x4d, 0xcc, - 0xf7, 0xdf, 0x62, 0x41, 0x91, 0xd0, 0xb3, 0x90, 0xed, 0x68, 0x7b, 0x2a, 0x45, 0x8d, 0xbf, 0x09, - 0xa8, 0x99, 0x8e, 0xb6, 0x47, 0xda, 0x4a, 0x66, 0x10, 0x01, 0x6e, 0xee, 0x6a, 0xc6, 0x0e, 0x66, - 0xf8, 0x89, 0x37, 0x01, 0x7f, 0xbc, 0xa3, 0xed, 0xd5, 0x28, 0x26, 0x79, 0x0b, 0xbf, 0xfd, 0xe3, - 0xb7, 0x62, 0x3c, 0x76, 0xa5, 0xa2, 0x42, 0x1a, 0x48, 0x4d, 0xef, 0x89, 0xbe, 0x5a, 0xe4, 0xf1, - 0x4f, 0x0c, 0x1b, 0x89, 0x1e, 0x41, 0xb3, 0x33, 0xd8, 0x5f, 0x79, 0x4d, 0x9c, 0xc1, 0x2e, 0x35, - 0x7b, 0x06, 0xe2, 0x0a, 0xe4, 0x59, 0xfa, 0x4c, 0xa5, 0x3e, 0x6b, 0x3c, 0xd2, 0x67, 0x1d, 0x17, - 0x3e, 0x2b, 0x03, 0x04, 0xc6, 0x4d, 0xea, 0x79, 0x1f, 0x5e, 0x8d, 0x41, 0x7e, 0x31, 0x70, 0x5d, - 0xd5, 0x34, 0x64, 0x3a, 0xa6, 0xa1, 0x5f, 0xc3, 0xb6, 0xb7, 0x11, 0xc3, 0x1e, 0x89, 0x5f, 0xc9, - 0xfe, 0xec, 0x90, 0xbb, 0x2f, 0xae, 0x64, 0x10, 0xcf, 0x84, 0xeb, 0x06, 0xde, 0x72, 0x74, 0x21, - 0x6d, 0x45, 0x3c, 0xa2, 0x53, 0x20, 0x39, 0xb8, 0xd9, 0xb5, 0x75, 0x77, 0x5f, 0x6d, 0x9a, 0x86, - 0xab, 0x35, 0x5d, 0x9e, 0x2e, 0x2d, 0x89, 0xf2, 0x1a, 0x2b, 0x26, 0x20, 0x2d, 0xec, 0x6a, 0x7a, - 0x9b, 0x9d, 0xf3, 0xca, 0x29, 0xe2, 0x91, 0x37, 0xf5, 0x57, 0x33, 0xc1, 0x58, 0xb0, 0x06, 0x92, - 0x69, 0x61, 0x3b, 0xf4, 0xed, 0x1b, 0xd3, 0xcf, 0xe9, 0xdf, 0xfd, 0xfc, 0x43, 0x53, 0x5c, 0xe0, - 0x7c, 0xc7, 0x9d, 0xdd, 0xce, 0xac, 0x94, 0x04, 0x87, 0xf8, 0x28, 0xee, 0xf9, 0xd0, 0xd6, 0x4b, - 0x77, 0xcb, 0xff, 0xf6, 0x7e, 0xaa, 0x4f, 0xa8, 0x15, 0x63, 0xbf, 0x3a, 0xfd, 0x3b, 0x3e, 0xb4, - 0x1f, 0x2b, 0x3e, 0x83, 0xf7, 0x83, 0xfb, 0x30, 0x14, 0x86, 0xb8, 0xec, 0x2f, 0x6a, 0x7a, 0x5b, - 0xfc, 0x25, 0x35, 0x85, 0x3f, 0xa1, 0x05, 0x2f, 0xef, 0xc2, 0xfe, 0x42, 0xba, 0x3c, 0x4c, 0x37, - 0xaa, 0xa6, 0xd1, 0x0a, 0xa7, 0x58, 0xd0, 0x06, 0xa4, 0x5d, 0xf3, 0x1a, 0x36, 0xb8, 0x80, 0x0e, - 0xa5, 0xd3, 0xfd, 0x17, 0xd1, 0x70, 0x2c, 0xb4, 0x03, 0x52, 0x0b, 0xb7, 0xf1, 0x0e, 0xfb, 0x72, - 0x6b, 0x57, 0xb3, 0x31, 0xfb, 0x9a, 0xf3, 0x7b, 0x9d, 0x33, 0x25, 0x0f, 0xb5, 0x41, 0x41, 0xd1, - 0x7a, 0xf8, 0xb2, 0xb4, 0x0c, 0xdf, 0x86, 0x1f, 0xd2, 0xff, 0x80, 0x56, 0x06, 0xed, 0x54, 0xe8, - 0x72, 0xb5, 0x53, 0x20, 0x75, 0x8d, 0x2d, 0xd3, 0xa0, 0x7f, 0xf4, 0x88, 0x47, 0x54, 0x59, 0xb6, - 0x55, 0xe7, 0x95, 0xf3, 0xad, 0xba, 0x75, 0x28, 0xfa, 0xa4, 0x74, 0xf6, 0xe4, 0x0e, 0x3b, 0x7b, - 0xc6, 0x3d, 0x00, 0x42, 0x82, 0x56, 0x00, 0xfc, 0xf9, 0xe9, 0x6d, 0xe7, 0x47, 0xce, 0xf4, 0x60, - 0x67, 0x02, 0x00, 0xa8, 0x0d, 0x93, 0x1d, 0xdd, 0x50, 0x1d, 0xdc, 0xde, 0x56, 0xb9, 0xe4, 0x08, - 0x6e, 0xfe, 0x4d, 0x18, 0xe9, 0x89, 0x8e, 0x6e, 0x34, 0x70, 0x7b, 0x7b, 0xd1, 0x83, 0x45, 0xef, - 0x80, 0xe3, 0xbe, 0x38, 0x4c, 0x43, 0xdd, 0x35, 0xdb, 0x2d, 0xd5, 0xc6, 0xdb, 0x6a, 0x93, 0xde, - 0x83, 0x54, 0xa0, 0x42, 0x3c, 0xea, 0x91, 0xac, 0x19, 0x97, 0xcd, 0x76, 0x4b, 0xc1, 0xdb, 0x35, - 0x52, 0x8d, 0xee, 0x01, 0x5f, 0x16, 0xaa, 0xde, 0x72, 0xa6, 0xc7, 0xe7, 0x12, 0x27, 0x93, 0x4a, - 0xc1, 0x2b, 0x5c, 0x6a, 0x39, 0x0b, 0xd9, 0x0f, 0xbc, 0x32, 0x3b, 0xf6, 0xcd, 0x57, 0x66, 0xc7, - 0xe4, 0x8b, 0xf4, 0xd6, 0x0e, 0x3e, 0xe9, 0xb0, 0x83, 0xce, 0x43, 0x4e, 0x13, 0x0f, 0xec, 0xbb, - 0x90, 0x03, 0x26, 0xad, 0x4f, 0x2a, 0xbf, 0x12, 0x83, 0xf4, 0xe2, 0xd5, 0x75, 0x4d, 0xb7, 0x51, - 0x1d, 0x26, 0x7c, 0xa5, 0x1d, 0x75, 0xfe, 0xfb, 0x7a, 0x2e, 0x0c, 0x40, 0x7d, 0xd8, 0x27, 0xb4, - 0x07, 0xc2, 0xf4, 0x7e, 0x5c, 0x1b, 0xe8, 0xea, 0x15, 0xc8, 0xb0, 0x16, 0x3a, 0xe8, 0x69, 0x48, - 0x59, 0xe4, 0x07, 0x4f, 0xf7, 0xcf, 0x0c, 0x55, 0x74, 0x4a, 0x1f, 0x54, 0x0b, 0xc6, 0x27, 0xff, - 0x45, 0x0c, 0x60, 0xf1, 0xea, 0xd5, 0x0d, 0x5b, 0xb7, 0xda, 0xd8, 0x7d, 0xb3, 0xba, 0xbc, 0x0c, - 0x77, 0x04, 0x3e, 0xd4, 0xb4, 0x9b, 0x23, 0x77, 0x7b, 0xd2, 0xff, 0x54, 0xd3, 0x6e, 0x0e, 0x44, - 0x6b, 0x39, 0xae, 0x87, 0x96, 0x18, 0x19, 0x6d, 0xd1, 0x71, 0xfb, 0xe5, 0xf8, 0x1c, 0xe4, 0xfd, - 0xae, 0x3b, 0x68, 0x09, 0xb2, 0x2e, 0xff, 0xcd, 0xc5, 0x29, 0x0f, 0x17, 0xa7, 0x60, 0x0b, 0x8a, - 0xd4, 0x63, 0x97, 0xff, 0x17, 0x91, 0xaa, 0x3f, 0x11, 0xfe, 0x4a, 0x29, 0x12, 0xb1, 0xf0, 0xdc, - 0x02, 0xbf, 0x19, 0x5e, 0x0b, 0xc7, 0x0a, 0x88, 0xf5, 0x47, 0xe3, 0x30, 0xb9, 0x29, 0x26, 0xe9, - 0x5f, 0x59, 0x29, 0x6c, 0x42, 0x06, 0x1b, 0xae, 0xad, 0x63, 0xb1, 0xb7, 0xf7, 0xf0, 0xb0, 0xc1, - 0x1e, 0xd0, 0x17, 0xfa, 0xa7, 0x80, 0x83, 0x43, 0x2f, 0xb0, 0x02, 0x62, 0xf8, 0x8d, 0x04, 0x4c, - 0x0f, 0x63, 0x45, 0x27, 0xa0, 0xd4, 0xb4, 0x31, 0x2d, 0x50, 0x43, 0xb9, 0xef, 0xa2, 0x28, 0xe6, - 0x4b, 0x8a, 0x02, 0xc4, 0x41, 0x23, 0x5a, 0x45, 0x48, 0x6f, 0xcf, 0x23, 0x2b, 0xfa, 0x08, 0x74, - 0x51, 0xc1, 0x50, 0x12, 0x87, 0xd9, 0xb7, 0xb4, 0xb6, 0x66, 0x34, 0x6f, 0xc7, 0x7f, 0xed, 0x5f, - 0x01, 0xc4, 0x09, 0xf9, 0x2a, 0xc3, 0x44, 0x57, 0x21, 0x23, 0xe0, 0x93, 0x6f, 0x02, 0xbc, 0x00, - 0x43, 0x77, 0x43, 0x21, 0xb8, 0x30, 0x50, 0x3f, 0x25, 0xa9, 0xe4, 0x03, 0xeb, 0x42, 0xd4, 0xca, - 0x93, 0x3e, 0x70, 0xe5, 0xe1, 0xae, 0xe0, 0xaf, 0x27, 0x60, 0x42, 0xc1, 0xad, 0xef, 0xc3, 0x81, - 0xfb, 0x41, 0x00, 0x36, 0xa9, 0x89, 0xb1, 0xbd, 0x8d, 0xb1, 0xeb, 0x37, 0x12, 0x39, 0x86, 0xb7, - 0xe8, 0xb8, 0x6f, 0xd7, 0xe8, 0xfd, 0xab, 0x38, 0x14, 0x82, 0xa3, 0xf7, 0x7d, 0xb0, 0xb2, 0xa1, - 0x55, 0xdf, 0xa4, 0xb1, 0xe3, 0xe6, 0xa7, 0x86, 0x99, 0xb4, 0x3e, 0xbd, 0x8e, 0xb0, 0x65, 0x1f, - 0x49, 0x40, 0x9a, 0x9f, 0xfd, 0x5a, 0xeb, 0xf3, 0x71, 0x63, 0x87, 0xfc, 0xea, 0xb7, 0xc7, 0xc5, - 0xbd, 0x0f, 0x8a, 0x24, 0x9a, 0x0e, 0x1d, 0x28, 0x8b, 0x9d, 0x1c, 0xa7, 0xe1, 0xb0, 0x7f, 0xfc, - 0x19, 0xcd, 0x42, 0x9e, 0x90, 0xf9, 0x36, 0x9b, 0xd0, 0x40, 0x47, 0xdb, 0xab, 0xb3, 0x12, 0xf4, - 0x10, 0xa0, 0x5d, 0x2f, 0xd3, 0xa1, 0xfa, 0x82, 0x20, 0x74, 0x13, 0x7e, 0x8d, 0x20, 0xbf, 0x0b, - 0x80, 0xb4, 0x42, 0x65, 0x57, 0x75, 0xf2, 0x7b, 0x57, 0x49, 0xc9, 0x22, 0xbd, 0xae, 0xf3, 0x87, - 0x98, 0xa7, 0xdc, 0x13, 0x6c, 0xf3, 0x98, 0x65, 0xf9, 0x70, 0x93, 0xe1, 0x3b, 0xaf, 0xcd, 0x96, - 0xf7, 0xb5, 0x4e, 0x7b, 0x41, 0x1e, 0x00, 0x29, 0x53, 0xcf, 0x39, 0x1c, 0xa4, 0x2f, 0xdc, 0x4b, - 0x74, 0xf8, 0xe6, 0x37, 0x3e, 0x7b, 0xfa, 0x78, 0x00, 0x6f, 0xcf, 0x4b, 0x7f, 0xb1, 0xa1, 0x90, - 0x7f, 0x21, 0x06, 0xc8, 0x5f, 0x58, 0xbc, 0xc3, 0xde, 0x2b, 0xf4, 0x08, 0xb0, 0xf0, 0xed, 0x63, - 0x07, 0xc7, 0x0c, 0x3e, 0x7f, 0x28, 0x66, 0x08, 0x4c, 0x9c, 0x77, 0xfa, 0x66, 0x5c, 0x7c, 0xdf, - 0x3d, 0xe0, 0x82, 0xd6, 0xf9, 0x9a, 0xa9, 0x87, 0x20, 0x04, 0x13, 0x9d, 0x8f, 0x63, 0xf2, 0x6b, - 0x31, 0x38, 0xd6, 0xa7, 0x75, 0x5e, 0x93, 0x9b, 0x80, 0xec, 0x40, 0x25, 0xff, 0xd3, 0xfb, 0x31, - 0xfe, 0x25, 0xe3, 0xed, 0x28, 0xf1, 0x84, 0xdd, 0x67, 0xba, 0xdf, 0xa2, 0xf5, 0x88, 0x1b, 0x9c, - 0xdf, 0x8e, 0xc1, 0x54, 0xb0, 0x45, 0x5e, 0xdf, 0x1a, 0x50, 0x08, 0xb6, 0x85, 0xf7, 0xea, 0xde, - 0x51, 0x7a, 0x15, 0xec, 0x50, 0x08, 0x84, 0xf4, 0x45, 0x68, 0x38, 0x4b, 0xc4, 0x3d, 0x32, 0xb2, - 0x94, 0xbc, 0x4d, 0x86, 0x41, 0x53, 0x9e, 0x0d, 0xd6, 0x07, 0xe3, 0x90, 0x5c, 0x37, 0xcd, 0x36, - 0xfa, 0x91, 0x18, 0x4c, 0x18, 0xa6, 0xab, 0x92, 0x79, 0x81, 0x5b, 0x2a, 0x4f, 0x0c, 0x30, 0xab, - 0x79, 0xf5, 0x70, 0xd2, 0xfb, 0xd6, 0x6b, 0xb3, 0xfd, 0x50, 0x83, 0xee, 0xd5, 0x2d, 0x19, 0xa6, - 0x5b, 0xa5, 0x44, 0x1b, 0x2c, 0x77, 0x70, 0x03, 0xc6, 0xc3, 0xef, 0x67, 0xa6, 0x56, 0x39, 0xf4, - 0xfb, 0xc7, 0x23, 0xdf, 0x5d, 0xd8, 0x0a, 0xbc, 0x98, 0xdd, 0x6e, 0xf9, 0x27, 0x64, 0x70, 0x9f, - 0x07, 0xe9, 0x6a, 0xef, 0xb1, 0xb3, 0x3a, 0x64, 0x0e, 0x7b, 0x82, 0x2d, 0x28, 0x71, 0xce, 0x7b, - 0xfa, 0x0b, 0x31, 0x00, 0x3f, 0x0d, 0x83, 0x1e, 0x84, 0xa3, 0xd5, 0xb5, 0xd5, 0x45, 0xb5, 0xb1, - 0x51, 0xd9, 0xd8, 0x6c, 0x84, 0xef, 0x60, 0x17, 0x17, 0x90, 0x38, 0x16, 0x6e, 0xea, 0xdb, 0x3a, - 0x6e, 0xa1, 0xfb, 0x61, 0x2a, 0x4c, 0x4d, 0x9e, 0xea, 0x8b, 0x52, 0xac, 0x5c, 0xb8, 0x79, 0x6b, - 0x2e, 0xcb, 0xdc, 0x4f, 0xdc, 0x42, 0x27, 0xe1, 0x8e, 0x7e, 0xba, 0xa5, 0xd5, 0x4b, 0x52, 0xbc, - 0x3c, 0x7e, 0xf3, 0xd6, 0x5c, 0xce, 0xf3, 0x53, 0x91, 0x0c, 0x28, 0x48, 0xc9, 0xf1, 0x12, 0x65, - 0xb8, 0x79, 0x6b, 0x2e, 0xcd, 0x86, 0xa5, 0x9c, 0xfc, 0xc0, 0xa7, 0x66, 0xc6, 0x4e, 0xbf, 0x1b, - 0x60, 0xc9, 0xd8, 0xb6, 0x35, 0xfa, 0x87, 0x88, 0x51, 0x19, 0x8e, 0x2c, 0xad, 0x5e, 0x54, 0x2a, - 0xb5, 0x8d, 0xa5, 0xb5, 0xd5, 0x9e, 0xab, 0xe3, 0xc3, 0x75, 0x8b, 0x6b, 0x9b, 0xd5, 0xe5, 0xba, - 0xda, 0x58, 0xba, 0xb4, 0xca, 0xb6, 0x6f, 0x43, 0x75, 0xcf, 0xae, 0x6e, 0x2c, 0xad, 0xd4, 0xa5, - 0x78, 0xf5, 0xe2, 0xd0, 0x0d, 0x84, 0x07, 0x0f, 0x1c, 0x70, 0xdf, 0x4a, 0x86, 0x76, 0x11, 0xfe, - 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xa9, 0x02, 0x41, 0x2d, 0x20, 0x97, 0x00, 0x00, + 0x2c, 0xf1, 0x52, 0x0f, 0xb0, 0x7c, 0xd8, 0x52, 0xab, 0x31, 0x73, 0x01, 0x34, 0x77, 0xa6, 0xbb, + 0xd5, 0xdd, 0xb3, 0x0b, 0xb0, 0x5c, 0x5f, 0xd1, 0x96, 0xfd, 0x45, 0xde, 0x38, 0x8a, 0x2c, 0xa5, + 0x6c, 0x59, 0xd6, 0x2a, 0x94, 0x15, 0x4b, 0xb2, 0x93, 0x38, 0xb2, 0xa5, 0x48, 0x72, 0x5c, 0x76, + 0xc9, 0xa9, 0x3c, 0x64, 0x27, 0x95, 0x92, 0x54, 0xa9, 0xc4, 0x95, 0x4a, 0x68, 0x87, 0x52, 0x45, + 0x8a, 0x2c, 0xc7, 0xb6, 0x4c, 0x27, 0x71, 0x54, 0xa9, 0xa4, 0xee, 0xab, 0x1f, 0xf3, 0x40, 0x0f, + 0x56, 0x24, 0xed, 0x94, 0xfe, 0xd9, 0x9d, 0xbe, 0xf7, 0x9c, 0x5f, 0xdf, 0x7b, 0xee, 0xb9, 0xe7, + 0x9e, 0x73, 0xee, 0xed, 0x0b, 0xf8, 0xf3, 0x0b, 0x30, 0xb7, 0x63, 0x9a, 0x3b, 0x6d, 0x7c, 0xc6, + 0xb2, 0x4d, 0xd7, 0xdc, 0xea, 0x6e, 0x9f, 0x69, 0x61, 0xa7, 0x69, 0xeb, 0x96, 0x6b, 0xda, 0xf3, + 0xb4, 0x0c, 0x95, 0x18, 0xc5, 0xbc, 0xa0, 0x90, 0x57, 0x60, 0xe2, 0xa2, 0xde, 0xc6, 0x8b, 0x1e, + 0x61, 0x03, 0xbb, 0xe8, 0x09, 0x48, 0x6e, 0xeb, 0x6d, 0x3c, 0x1d, 0x9b, 0x4b, 0x9c, 0xcc, 0x9f, + 0xbd, 0x77, 0xbe, 0x87, 0x69, 0x3e, 0xcc, 0xb1, 0x4e, 0x8a, 0x15, 0xca, 0x21, 0x7f, 0x23, 0x09, + 0x93, 0x03, 0x6a, 0x11, 0x82, 0xa4, 0xa1, 0x75, 0x08, 0x62, 0xec, 0x64, 0x4e, 0xa1, 0xbf, 0xd1, + 0x34, 0x64, 0x2c, 0xad, 0x79, 0x4d, 0xdb, 0xc1, 0xd3, 0x71, 0x5a, 0x2c, 0x1e, 0xd1, 0x0c, 0x40, + 0x0b, 0x5b, 0xd8, 0x68, 0x61, 0xa3, 0xb9, 0x3f, 0x9d, 0x98, 0x4b, 0x9c, 0xcc, 0x29, 0x81, 0x12, + 0xf4, 0x00, 0x4c, 0x58, 0xdd, 0xad, 0xb6, 0xde, 0x54, 0x03, 0x64, 0x30, 0x97, 0x38, 0x99, 0x52, + 0x24, 0x56, 0xb1, 0xe8, 0x13, 0x9f, 0x80, 0xd2, 0x0d, 0xac, 0x5d, 0x0b, 0x92, 0xe6, 0x29, 0x69, + 0x91, 0x14, 0x07, 0x08, 0x6b, 0x50, 0xe8, 0x60, 0xc7, 0xd1, 0x76, 0xb0, 0xea, 0xee, 0x5b, 0x78, + 0x3a, 0x49, 0x7b, 0x3f, 0xd7, 0xd7, 0xfb, 0xde, 0x9e, 0xe7, 0x39, 0xd7, 0xc6, 0xbe, 0x85, 0x51, + 0x05, 0x72, 0xd8, 0xe8, 0x76, 0x18, 0x42, 0x6a, 0x88, 0xfc, 0xea, 0x46, 0xb7, 0xd3, 0x8b, 0x92, + 0x25, 0x6c, 0x1c, 0x22, 0xe3, 0x60, 0xfb, 0xba, 0xde, 0xc4, 0xd3, 0x69, 0x0a, 0x70, 0xa2, 0x0f, + 0xa0, 0xc1, 0xea, 0x7b, 0x31, 0x04, 0x1f, 0xaa, 0x41, 0x0e, 0xef, 0xb9, 0xd8, 0x70, 0x74, 0xd3, + 0x98, 0xce, 0x50, 0x90, 0xfb, 0x06, 0x8c, 0x22, 0x6e, 0xb7, 0x7a, 0x21, 0x7c, 0x3e, 0x74, 0x1e, + 0x32, 0xa6, 0xe5, 0xea, 0xa6, 0xe1, 0x4c, 0x67, 0xe7, 0x62, 0x27, 0xf3, 0x67, 0xef, 0x1c, 0xa8, + 0x08, 0x6b, 0x8c, 0x46, 0x11, 0xc4, 0x68, 0x09, 0x24, 0xc7, 0xec, 0xda, 0x4d, 0xac, 0x36, 0xcd, + 0x16, 0x56, 0x75, 0x63, 0xdb, 0x9c, 0xce, 0x51, 0x80, 0xd9, 0xfe, 0x8e, 0x50, 0xc2, 0x9a, 0xd9, + 0xc2, 0x4b, 0xc6, 0xb6, 0xa9, 0x14, 0x9d, 0xd0, 0x33, 0x3a, 0x02, 0x69, 0x67, 0xdf, 0x70, 0xb5, + 0xbd, 0xe9, 0x02, 0xd5, 0x10, 0xfe, 0x24, 0xff, 0x46, 0x1a, 0x4a, 0xa3, 0xa8, 0xd8, 0x05, 0x48, + 0x6d, 0x93, 0x5e, 0x4e, 0xc7, 0x0f, 0x23, 0x03, 0xc6, 0x13, 0x16, 0x62, 0xfa, 0x36, 0x85, 0x58, + 0x81, 0xbc, 0x81, 0x1d, 0x17, 0xb7, 0x98, 0x46, 0x24, 0x46, 0xd4, 0x29, 0x60, 0x4c, 0xfd, 0x2a, + 0x95, 0xbc, 0x2d, 0x95, 0x7a, 0x0e, 0x4a, 0x5e, 0x93, 0x54, 0x5b, 0x33, 0x76, 0x84, 0x6e, 0x9e, + 0x89, 0x6a, 0xc9, 0x7c, 0x5d, 0xf0, 0x29, 0x84, 0x4d, 0x29, 0xe2, 0xd0, 0x33, 0x5a, 0x04, 0x30, + 0x0d, 0x6c, 0x6e, 0xab, 0x2d, 0xdc, 0x6c, 0x4f, 0x67, 0x87, 0x48, 0x69, 0x8d, 0x90, 0xf4, 0x49, + 0xc9, 0x64, 0xa5, 0xcd, 0x36, 0x7a, 0xd2, 0x57, 0xb5, 0xcc, 0x10, 0x4d, 0x59, 0x61, 0x93, 0xac, + 0x4f, 0xdb, 0x36, 0xa1, 0x68, 0x63, 0xa2, 0xf7, 0xb8, 0xc5, 0x7b, 0x96, 0xa3, 0x8d, 0x98, 0x8f, + 0xec, 0x99, 0xc2, 0xd9, 0x58, 0xc7, 0xc6, 0xed, 0xe0, 0x23, 0xba, 0x07, 0xbc, 0x02, 0x95, 0xaa, + 0x15, 0x50, 0x2b, 0x54, 0x10, 0x85, 0xab, 0x5a, 0x07, 0x97, 0x5f, 0x82, 0x62, 0x58, 0x3c, 0x68, + 0x0a, 0x52, 0x8e, 0xab, 0xd9, 0x2e, 0xd5, 0xc2, 0x94, 0xc2, 0x1e, 0x90, 0x04, 0x09, 0x6c, 0xb4, + 0xa8, 0x95, 0x4b, 0x29, 0xe4, 0x27, 0xfa, 0x21, 0xbf, 0xc3, 0x09, 0xda, 0xe1, 0xfb, 0xfb, 0x47, + 0x34, 0x84, 0xdc, 0xdb, 0xef, 0xf2, 0xe3, 0x30, 0x1e, 0xea, 0xc0, 0xa8, 0xaf, 0x96, 0x7f, 0x14, + 0xee, 0x18, 0x08, 0x8d, 0x9e, 0x83, 0xa9, 0xae, 0xa1, 0x1b, 0x2e, 0xb6, 0x2d, 0x1b, 0x13, 0x8d, + 0x65, 0xaf, 0x9a, 0xfe, 0x66, 0x66, 0x88, 0xce, 0x6d, 0x06, 0xa9, 0x19, 0x8a, 0x32, 0xd9, 0xed, + 0x2f, 0x3c, 0x9d, 0xcb, 0x7e, 0x2b, 0x23, 0xbd, 0xfc, 0xf2, 0xcb, 0x2f, 0xc7, 0xe5, 0xdf, 0x49, + 0xc3, 0xd4, 0xa0, 0x39, 0x33, 0x70, 0xfa, 0x1e, 0x81, 0xb4, 0xd1, 0xed, 0x6c, 0x61, 0x9b, 0x0a, + 0x29, 0xa5, 0xf0, 0x27, 0x54, 0x81, 0x54, 0x5b, 0xdb, 0xc2, 0xed, 0xe9, 0xe4, 0x5c, 0xec, 0x64, + 0xf1, 0xec, 0x03, 0x23, 0xcd, 0xca, 0xf9, 0x65, 0xc2, 0xa2, 0x30, 0x4e, 0xf4, 0x76, 0x48, 0x72, + 0x13, 0x4d, 0x10, 0x4e, 0x8f, 0x86, 0x40, 0xe6, 0x92, 0x42, 0xf9, 0xd0, 0x71, 0xc8, 0x91, 0xff, + 0x99, 0x6e, 0xa4, 0x69, 0x9b, 0xb3, 0xa4, 0x80, 0xe8, 0x05, 0x2a, 0x43, 0x96, 0x4e, 0x93, 0x16, + 0x16, 0x4b, 0x9b, 0xf7, 0x4c, 0x14, 0xab, 0x85, 0xb7, 0xb5, 0x6e, 0xdb, 0x55, 0xaf, 0x6b, 0xed, + 0x2e, 0xa6, 0x0a, 0x9f, 0x53, 0x0a, 0xbc, 0xf0, 0x2a, 0x29, 0x43, 0xb3, 0x90, 0x67, 0xb3, 0x4a, + 0x37, 0x5a, 0x78, 0x8f, 0x5a, 0xcf, 0x94, 0xc2, 0x26, 0xda, 0x12, 0x29, 0x21, 0xaf, 0x7f, 0xd1, + 0x31, 0x0d, 0xa1, 0x9a, 0xf4, 0x15, 0xa4, 0x80, 0xbe, 0xfe, 0xf1, 0x5e, 0xc3, 0x7d, 0xd7, 0xe0, + 0xee, 0xf5, 0xcd, 0xa5, 0x13, 0x50, 0xa2, 0x14, 0x8f, 0xf2, 0xa1, 0xd7, 0xda, 0xd3, 0x13, 0x73, + 0xb1, 0x93, 0x59, 0xa5, 0xc8, 0x8a, 0xd7, 0x78, 0xa9, 0xfc, 0xf9, 0x38, 0x24, 0xa9, 0x61, 0x29, + 0x41, 0x7e, 0xe3, 0xf9, 0xf5, 0xba, 0xba, 0xb8, 0xb6, 0x59, 0x5d, 0xae, 0x4b, 0x31, 0x54, 0x04, + 0xa0, 0x05, 0x17, 0x97, 0xd7, 0x2a, 0x1b, 0x52, 0xdc, 0x7b, 0x5e, 0x5a, 0xdd, 0x38, 0xff, 0x98, + 0x94, 0xf0, 0x18, 0x36, 0x59, 0x41, 0x32, 0x48, 0xf0, 0xe8, 0x59, 0x29, 0x85, 0x24, 0x28, 0x30, + 0x80, 0xa5, 0xe7, 0xea, 0x8b, 0xe7, 0x1f, 0x93, 0xd2, 0xe1, 0x92, 0x47, 0xcf, 0x4a, 0x19, 0x34, + 0x0e, 0x39, 0x5a, 0x52, 0x5d, 0x5b, 0x5b, 0x96, 0xb2, 0x1e, 0x66, 0x63, 0x43, 0x59, 0x5a, 0xbd, + 0x24, 0xe5, 0x3c, 0xcc, 0x4b, 0xca, 0xda, 0xe6, 0xba, 0x04, 0x1e, 0xc2, 0x4a, 0xbd, 0xd1, 0xa8, + 0x5c, 0xaa, 0x4b, 0x79, 0x8f, 0xa2, 0xfa, 0xfc, 0x46, 0xbd, 0x21, 0x15, 0x42, 0xcd, 0x7a, 0xf4, + 0xac, 0x34, 0xee, 0xbd, 0xa2, 0xbe, 0xba, 0xb9, 0x22, 0x15, 0xd1, 0x04, 0x8c, 0xb3, 0x57, 0x88, + 0x46, 0x94, 0x7a, 0x8a, 0xce, 0x3f, 0x26, 0x49, 0x7e, 0x43, 0x18, 0xca, 0x44, 0xa8, 0xe0, 0xfc, + 0x63, 0x12, 0x92, 0x6b, 0x90, 0xa2, 0x6a, 0x88, 0x10, 0x14, 0x97, 0x2b, 0xd5, 0xfa, 0xb2, 0xba, + 0xb6, 0xbe, 0xb1, 0xb4, 0xb6, 0x5a, 0x59, 0x96, 0x62, 0x7e, 0x99, 0x52, 0x7f, 0xc7, 0xe6, 0x92, + 0x52, 0x5f, 0x94, 0xe2, 0xc1, 0xb2, 0xf5, 0x7a, 0x65, 0xa3, 0xbe, 0x28, 0x25, 0xe4, 0x26, 0x4c, + 0x0d, 0x32, 0xa8, 0x03, 0xa7, 0x50, 0x40, 0x17, 0xe2, 0x43, 0x74, 0x81, 0x62, 0xf5, 0xea, 0x82, + 0xfc, 0xf5, 0x38, 0x4c, 0x0e, 0x58, 0x54, 0x06, 0xbe, 0xe4, 0x69, 0x48, 0x31, 0x5d, 0x66, 0xcb, + 0xec, 0xa9, 0x81, 0xab, 0x13, 0xd5, 0xec, 0xbe, 0xa5, 0x96, 0xf2, 0x05, 0x5d, 0x8d, 0xc4, 0x10, + 0x57, 0x83, 0x40, 0xf4, 0x29, 0xec, 0x3b, 0xfb, 0x8c, 0x3f, 0x5b, 0x1f, 0xcf, 0x8f, 0xb2, 0x3e, + 0xd2, 0xb2, 0xc3, 0x2d, 0x02, 0xa9, 0x01, 0x8b, 0xc0, 0x05, 0x98, 0xe8, 0x03, 0x1a, 0xd9, 0x18, + 0xbf, 0x37, 0x06, 0xd3, 0xc3, 0x84, 0x13, 0x61, 0x12, 0xe3, 0x21, 0x93, 0x78, 0xa1, 0x57, 0x82, + 0x77, 0x0f, 0x1f, 0x84, 0xbe, 0xb1, 0xfe, 0x54, 0x0c, 0x8e, 0x0c, 0x76, 0x29, 0x07, 0xb6, 0xe1, + 0xed, 0x90, 0xee, 0x60, 0x77, 0xd7, 0x14, 0x6e, 0xd5, 0xfd, 0x03, 0x16, 0x6b, 0x52, 0xdd, 0x3b, + 0xd8, 0x9c, 0x2b, 0xb8, 0xda, 0x27, 0x86, 0xf9, 0x85, 0xac, 0x35, 0x7d, 0x2d, 0xfd, 0xa9, 0x38, + 0xdc, 0x31, 0x10, 0x7c, 0x60, 0x43, 0xef, 0x02, 0xd0, 0x0d, 0xab, 0xeb, 0x32, 0xd7, 0x89, 0x59, + 0xe2, 0x1c, 0x2d, 0xa1, 0xc6, 0x8b, 0x58, 0xd9, 0xae, 0xeb, 0xd5, 0x27, 0x68, 0x3d, 0xb0, 0x22, + 0x4a, 0xf0, 0x84, 0xdf, 0xd0, 0x24, 0x6d, 0xe8, 0xcc, 0x90, 0x9e, 0xf6, 0x29, 0xe6, 0xc3, 0x20, + 0x35, 0xdb, 0x3a, 0x36, 0x5c, 0xd5, 0x71, 0x6d, 0xac, 0x75, 0x74, 0x63, 0x87, 0x2e, 0x35, 0xd9, + 0x85, 0xd4, 0xb6, 0xd6, 0x76, 0xb0, 0x52, 0x62, 0xd5, 0x0d, 0x51, 0x4b, 0x38, 0xa8, 0x02, 0xd9, + 0x01, 0x8e, 0x74, 0x88, 0x83, 0x55, 0x7b, 0x1c, 0xf2, 0xcf, 0xe4, 0x20, 0x1f, 0x70, 0xc0, 0xd1, + 0xdd, 0x50, 0x78, 0x51, 0xbb, 0xae, 0xa9, 0x22, 0xa8, 0x62, 0x92, 0xc8, 0x93, 0xb2, 0x75, 0x1e, + 0x58, 0x3d, 0x0c, 0x53, 0x94, 0xc4, 0xec, 0xba, 0xd8, 0x56, 0x9b, 0x6d, 0xcd, 0x71, 0xa8, 0xd0, + 0xb2, 0x94, 0x14, 0x91, 0xba, 0x35, 0x52, 0x55, 0x13, 0x35, 0xe8, 0x1c, 0x4c, 0x52, 0x8e, 0x4e, + 0xb7, 0xed, 0xea, 0x56, 0x1b, 0xab, 0x24, 0xcc, 0x73, 0xe8, 0x92, 0xe3, 0xb5, 0x6c, 0x82, 0x50, + 0xac, 0x70, 0x02, 0xd2, 0x22, 0x07, 0x2d, 0xc2, 0x5d, 0x94, 0x6d, 0x07, 0x1b, 0xd8, 0xd6, 0x5c, + 0xac, 0xe2, 0xf7, 0x74, 0xb5, 0xb6, 0xa3, 0x6a, 0x46, 0x4b, 0xdd, 0xd5, 0x9c, 0xdd, 0xe9, 0x29, + 0x02, 0x50, 0x8d, 0x4f, 0xc7, 0x94, 0x63, 0x84, 0xf0, 0x12, 0xa7, 0xab, 0x53, 0xb2, 0x8a, 0xd1, + 0xba, 0xac, 0x39, 0xbb, 0x68, 0x01, 0x8e, 0x50, 0x14, 0xc7, 0xb5, 0x75, 0x63, 0x47, 0x6d, 0xee, + 0xe2, 0xe6, 0x35, 0xb5, 0xeb, 0x6e, 0x3f, 0x31, 0x7d, 0x3c, 0xf8, 0x7e, 0xda, 0xc2, 0x06, 0xa5, + 0xa9, 0x11, 0x92, 0x4d, 0x77, 0xfb, 0x09, 0xd4, 0x80, 0x02, 0x19, 0x8c, 0x8e, 0xfe, 0x12, 0x56, + 0xb7, 0x4d, 0x9b, 0xae, 0xa1, 0xc5, 0x01, 0xa6, 0x29, 0x20, 0xc1, 0xf9, 0x35, 0xce, 0xb0, 0x62, + 0xb6, 0xf0, 0x42, 0xaa, 0xb1, 0x5e, 0xaf, 0x2f, 0x2a, 0x79, 0x81, 0x72, 0xd1, 0xb4, 0x89, 0x42, + 0xed, 0x98, 0x9e, 0x80, 0xf3, 0x4c, 0xa1, 0x76, 0x4c, 0x21, 0xde, 0x73, 0x30, 0xd9, 0x6c, 0xb2, + 0x3e, 0xeb, 0x4d, 0x95, 0x07, 0x63, 0xce, 0xb4, 0x14, 0x12, 0x56, 0xb3, 0x79, 0x89, 0x11, 0x70, + 0x1d, 0x77, 0xd0, 0x93, 0x70, 0x87, 0x2f, 0xac, 0x20, 0xe3, 0x44, 0x5f, 0x2f, 0x7b, 0x59, 0xcf, + 0xc1, 0xa4, 0xb5, 0xdf, 0xcf, 0x88, 0x42, 0x6f, 0xb4, 0xf6, 0x7b, 0xd9, 0x1e, 0x87, 0x29, 0x6b, + 0xd7, 0xea, 0xe7, 0x3b, 0x1d, 0xe4, 0x43, 0xd6, 0xae, 0xd5, 0xcb, 0x78, 0x1f, 0x8d, 0xcc, 0x6d, + 0xdc, 0xd4, 0x5c, 0xdc, 0x9a, 0x3e, 0x1a, 0x24, 0x0f, 0x54, 0xa0, 0x79, 0x90, 0x9a, 0x4d, 0x15, + 0x1b, 0xda, 0x56, 0x1b, 0xab, 0x9a, 0x8d, 0x0d, 0xcd, 0x99, 0x9e, 0xa5, 0xc4, 0x49, 0xd7, 0xee, + 0x62, 0xa5, 0xd8, 0x6c, 0xd6, 0x69, 0x65, 0x85, 0xd6, 0xa1, 0xd3, 0x30, 0x61, 0x6e, 0xbd, 0xd8, + 0x64, 0x1a, 0xa9, 0x5a, 0x36, 0xde, 0xd6, 0xf7, 0xa6, 0xef, 0xa5, 0xe2, 0x2d, 0x91, 0x0a, 0xaa, + 0x8f, 0xeb, 0xb4, 0x18, 0x9d, 0x02, 0xa9, 0xe9, 0xec, 0x6a, 0xb6, 0x45, 0x4d, 0xb2, 0x63, 0x69, + 0x4d, 0x3c, 0x7d, 0x1f, 0x23, 0x65, 0xe5, 0xab, 0xa2, 0x98, 0xcc, 0x08, 0xe7, 0x86, 0xbe, 0xed, + 0x0a, 0xc4, 0x13, 0x6c, 0x46, 0xd0, 0x32, 0x8e, 0x76, 0x12, 0x24, 0x22, 0x89, 0xd0, 0x8b, 0x4f, + 0x52, 0xb2, 0xa2, 0xb5, 0x6b, 0x05, 0xdf, 0x7b, 0x0f, 0x8c, 0x13, 0x4a, 0xff, 0xa5, 0xa7, 0x98, + 0xe3, 0x66, 0xed, 0x06, 0xde, 0xf8, 0x18, 0x1c, 0x21, 0x44, 0x1d, 0xec, 0x6a, 0x2d, 0xcd, 0xd5, + 0x02, 0xd4, 0x0f, 0x52, 0x6a, 0x22, 0xf6, 0x15, 0x5e, 0x19, 0x6a, 0xa7, 0xdd, 0xdd, 0xda, 0xf7, + 0x14, 0xeb, 0x21, 0xd6, 0x4e, 0x52, 0x26, 0x54, 0xeb, 0x4d, 0x73, 0xce, 0xe5, 0x05, 0x28, 0x04, + 0xf5, 0x1e, 0xe5, 0x80, 0x69, 0xbe, 0x14, 0x23, 0x4e, 0x50, 0x6d, 0x6d, 0x91, 0xb8, 0x2f, 0x2f, + 0xd4, 0xa5, 0x38, 0x71, 0xa3, 0x96, 0x97, 0x36, 0xea, 0xaa, 0xb2, 0xb9, 0xba, 0xb1, 0xb4, 0x52, + 0x97, 0x12, 0x01, 0xc7, 0xfe, 0x4a, 0x32, 0x7b, 0xbf, 0x74, 0x82, 0x78, 0x0d, 0xc5, 0x70, 0xa4, + 0x86, 0xde, 0x06, 0x47, 0x45, 0x5a, 0xc5, 0xc1, 0xae, 0x7a, 0x43, 0xb7, 0xe9, 0x84, 0xec, 0x68, + 0x6c, 0x71, 0xf4, 0xf4, 0x67, 0x8a, 0x53, 0x35, 0xb0, 0xfb, 0xac, 0x6e, 0x93, 0xe9, 0xd6, 0xd1, + 0x5c, 0xb4, 0x0c, 0xb3, 0x86, 0xa9, 0x3a, 0xae, 0x66, 0xb4, 0x34, 0xbb, 0xa5, 0xfa, 0x09, 0x2d, + 0x55, 0x6b, 0x36, 0xb1, 0xe3, 0x98, 0x6c, 0x21, 0xf4, 0x50, 0xee, 0x34, 0xcc, 0x06, 0x27, 0xf6, + 0x57, 0x88, 0x0a, 0x27, 0xed, 0x51, 0xdf, 0xc4, 0x30, 0xf5, 0x3d, 0x0e, 0xb9, 0x8e, 0x66, 0xa9, + 0xd8, 0x70, 0xed, 0x7d, 0xea, 0x9f, 0x67, 0x95, 0x6c, 0x47, 0xb3, 0xea, 0xe4, 0xf9, 0x2d, 0x09, + 0x93, 0xae, 0x24, 0xb3, 0x49, 0x29, 0x75, 0x25, 0x99, 0x4d, 0x49, 0xe9, 0x2b, 0xc9, 0x6c, 0x5a, + 0xca, 0x5c, 0x49, 0x66, 0xb3, 0x52, 0xee, 0x4a, 0x32, 0x9b, 0x93, 0x40, 0xfe, 0x60, 0x12, 0x0a, + 0x41, 0x0f, 0x9e, 0x04, 0x44, 0x4d, 0xba, 0x86, 0xc5, 0xa8, 0x95, 0xbb, 0xe7, 0x40, 0x7f, 0x7f, + 0xbe, 0x46, 0x16, 0xb7, 0x85, 0x34, 0x73, 0x97, 0x15, 0xc6, 0x49, 0x1c, 0x0b, 0xa2, 0x7e, 0x98, + 0xb9, 0x27, 0x59, 0x85, 0x3f, 0xa1, 0x4b, 0x90, 0x7e, 0xd1, 0xa1, 0xd8, 0x69, 0x8a, 0x7d, 0xef, + 0xc1, 0xd8, 0x57, 0x1a, 0x14, 0x3c, 0x77, 0xa5, 0xa1, 0xae, 0xae, 0x29, 0x2b, 0x95, 0x65, 0x85, + 0xb3, 0xa3, 0x63, 0x90, 0x6c, 0x6b, 0x2f, 0xed, 0x87, 0x97, 0x41, 0x5a, 0x84, 0xe6, 0xa1, 0xd4, + 0x35, 0xae, 0x63, 0x5b, 0xdf, 0xd6, 0x71, 0x4b, 0xa5, 0x54, 0xa5, 0x20, 0x55, 0xd1, 0xaf, 0x5d, + 0x26, 0xf4, 0x23, 0x0e, 0xe3, 0x31, 0x48, 0xde, 0xc0, 0xda, 0xb5, 0xf0, 0x62, 0x45, 0x8b, 0xde, + 0xc4, 0xe9, 0x74, 0x06, 0x52, 0x54, 0xbe, 0x08, 0x80, 0x4b, 0x58, 0x1a, 0x43, 0x59, 0x48, 0xd6, + 0xd6, 0x14, 0x32, 0xa5, 0x24, 0x28, 0xb0, 0x52, 0x75, 0x7d, 0xa9, 0x5e, 0xab, 0x4b, 0x71, 0xf9, + 0x1c, 0xa4, 0x99, 0xd0, 0xc8, 0x74, 0xf3, 0xc4, 0x26, 0x8d, 0xf1, 0x47, 0x8e, 0x11, 0x13, 0xb5, + 0x9b, 0x2b, 0xd5, 0xba, 0x22, 0xc5, 0xfb, 0x94, 0x45, 0x76, 0xa0, 0x10, 0xf4, 0xe4, 0xdf, 0x9a, + 0x70, 0xfe, 0x4b, 0x31, 0xc8, 0x07, 0x3c, 0x73, 0xe2, 0x52, 0x69, 0xed, 0xb6, 0x79, 0x43, 0xd5, + 0xda, 0xba, 0xe6, 0x70, 0x55, 0x02, 0x5a, 0x54, 0x21, 0x25, 0xa3, 0x0e, 0xdd, 0x5b, 0x34, 0xc9, + 0x52, 0x52, 0x5a, 0xfe, 0x58, 0x0c, 0xa4, 0x5e, 0xd7, 0xb8, 0xa7, 0x99, 0xb1, 0xbf, 0xca, 0x66, + 0xca, 0x1f, 0x8d, 0x41, 0x31, 0xec, 0x0f, 0xf7, 0x34, 0xef, 0xee, 0xbf, 0xd2, 0xe6, 0xfd, 0x61, + 0x1c, 0xc6, 0x43, 0x5e, 0xf0, 0xa8, 0xad, 0x7b, 0x0f, 0x4c, 0xe8, 0x2d, 0xdc, 0xb1, 0x4c, 0x17, + 0x1b, 0xcd, 0x7d, 0xb5, 0x8d, 0xaf, 0xe3, 0xf6, 0xb4, 0x4c, 0x8d, 0xcc, 0x99, 0x83, 0xfd, 0xec, + 0xf9, 0x25, 0x9f, 0x6f, 0x99, 0xb0, 0x2d, 0x4c, 0x2e, 0x2d, 0xd6, 0x57, 0xd6, 0xd7, 0x36, 0xea, + 0xab, 0xb5, 0xe7, 0xd5, 0xcd, 0xd5, 0x67, 0x56, 0xd7, 0x9e, 0x5d, 0x55, 0x24, 0xbd, 0x87, 0xec, + 0x4d, 0x9c, 0xf6, 0xeb, 0x20, 0xf5, 0x36, 0x0a, 0x1d, 0x85, 0x41, 0xcd, 0x92, 0xc6, 0xd0, 0x24, + 0x94, 0x56, 0xd7, 0xd4, 0xc6, 0xd2, 0x62, 0x5d, 0xad, 0x5f, 0xbc, 0x58, 0xaf, 0x6d, 0x34, 0x58, + 0xe6, 0xc4, 0xa3, 0xde, 0x08, 0x4d, 0x70, 0xf9, 0x23, 0x09, 0x98, 0x1c, 0xd0, 0x12, 0x54, 0xe1, + 0x31, 0x0f, 0x0b, 0xc3, 0x1e, 0x1a, 0xa5, 0xf5, 0xf3, 0xc4, 0xeb, 0x58, 0xd7, 0x6c, 0x97, 0x87, + 0x48, 0xa7, 0x80, 0x48, 0xc9, 0x70, 0x89, 0x71, 0xb5, 0x79, 0x46, 0x8a, 0x05, 0x42, 0x25, 0xbf, + 0x9c, 0x25, 0xa5, 0x1e, 0x04, 0x64, 0x99, 0x8e, 0xee, 0xea, 0xd7, 0xb1, 0xaa, 0x1b, 0x22, 0x7d, + 0x45, 0x02, 0xa3, 0xa4, 0x22, 0x89, 0x9a, 0x25, 0xc3, 0xf5, 0xa8, 0x0d, 0xbc, 0xa3, 0xf5, 0x50, + 0x13, 0xe3, 0x9f, 0x50, 0x24, 0x51, 0xe3, 0x51, 0xdf, 0x0d, 0x85, 0x96, 0xd9, 0x25, 0xde, 0x22, + 0xa3, 0x23, 0x6b, 0x4d, 0x4c, 0xc9, 0xb3, 0x32, 0x8f, 0x84, 0xc7, 0x01, 0x7e, 0xde, 0xac, 0xa0, + 0xe4, 0x59, 0x19, 0x23, 0x39, 0x01, 0x25, 0x6d, 0x67, 0xc7, 0x26, 0xe0, 0x02, 0x88, 0x45, 0x36, + 0x45, 0xaf, 0x98, 0x12, 0x96, 0xaf, 0x40, 0x56, 0xc8, 0x81, 0x2c, 0xf6, 0x44, 0x12, 0xaa, 0xc5, + 0xc2, 0xf5, 0xf8, 0xc9, 0x9c, 0x92, 0x35, 0x44, 0xe5, 0xdd, 0x50, 0xd0, 0x1d, 0xd5, 0xdf, 0x06, + 0x88, 0xcf, 0xc5, 0x4f, 0x66, 0x95, 0xbc, 0xee, 0x78, 0x29, 0x54, 0xf9, 0x53, 0x71, 0x28, 0x86, + 0xb7, 0x31, 0xd0, 0x22, 0x64, 0xdb, 0x66, 0x53, 0xa3, 0xaa, 0xc5, 0xf6, 0xd0, 0x4e, 0x46, 0xec, + 0x7c, 0xcc, 0x2f, 0x73, 0x7a, 0xc5, 0xe3, 0x2c, 0xff, 0x9b, 0x18, 0x64, 0x45, 0x31, 0x3a, 0x02, + 0x49, 0x4b, 0x73, 0x77, 0x29, 0x5c, 0xaa, 0x1a, 0x97, 0x62, 0x0a, 0x7d, 0x26, 0xe5, 0x8e, 0xa5, + 0x19, 0x54, 0x05, 0x78, 0x39, 0x79, 0x26, 0xe3, 0xda, 0xc6, 0x5a, 0x8b, 0x86, 0x4d, 0x66, 0xa7, + 0x83, 0x0d, 0xd7, 0x11, 0xe3, 0xca, 0xcb, 0x6b, 0xbc, 0x18, 0x3d, 0x00, 0x13, 0xae, 0xad, 0xe9, + 0xed, 0x10, 0x6d, 0x92, 0xd2, 0x4a, 0xa2, 0xc2, 0x23, 0x5e, 0x80, 0x63, 0x02, 0xb7, 0x85, 0x5d, + 0xad, 0xb9, 0x8b, 0x5b, 0x3e, 0x53, 0x9a, 0xa6, 0x47, 0x8e, 0x72, 0x82, 0x45, 0x5e, 0x2f, 0x78, + 0xe5, 0xaf, 0xc6, 0x60, 0x42, 0x04, 0x7a, 0x2d, 0x4f, 0x58, 0x2b, 0x00, 0x9a, 0x61, 0x98, 0x6e, + 0x50, 0x5c, 0xfd, 0xaa, 0xdc, 0xc7, 0x37, 0x5f, 0xf1, 0x98, 0x94, 0x00, 0x40, 0xb9, 0x03, 0xe0, + 0xd7, 0x0c, 0x15, 0xdb, 0x2c, 0xe4, 0xf9, 0x1e, 0x15, 0xdd, 0xe8, 0x64, 0xa9, 0x01, 0x60, 0x45, + 0x24, 0x22, 0x44, 0x53, 0x90, 0xda, 0xc2, 0x3b, 0xba, 0xc1, 0x33, 0xcf, 0xec, 0x41, 0x24, 0x70, + 0x92, 0x5e, 0x02, 0xa7, 0xfa, 0xff, 0xc1, 0x64, 0xd3, 0xec, 0xf4, 0x36, 0xb7, 0x2a, 0xf5, 0xa4, + 0x27, 0x9c, 0xcb, 0xb1, 0x17, 0x1e, 0xe2, 0x44, 0x3b, 0x66, 0x5b, 0x33, 0x76, 0xe6, 0x4d, 0x7b, + 0xc7, 0xdf, 0xa8, 0x25, 0x1e, 0x92, 0x13, 0xd8, 0xae, 0xb5, 0xb6, 0xfe, 0x67, 0x2c, 0xf6, 0x8b, + 0xf1, 0xc4, 0xa5, 0xf5, 0xea, 0xaf, 0xc4, 0xcb, 0x97, 0x18, 0xe3, 0xba, 0x10, 0x86, 0x82, 0xb7, + 0xdb, 0xb8, 0x49, 0x3a, 0x08, 0x7f, 0xfc, 0x00, 0x4c, 0xed, 0x98, 0x3b, 0x26, 0x45, 0x3a, 0x43, + 0x7e, 0xf1, 0x9d, 0xde, 0x9c, 0x57, 0x5a, 0x8e, 0xdc, 0x16, 0x5e, 0x58, 0x85, 0x49, 0x4e, 0xac, + 0xd2, 0xad, 0x26, 0x16, 0x08, 0xa1, 0x03, 0xb3, 0x70, 0xd3, 0xbf, 0xf6, 0x0d, 0xba, 0x7c, 0x2b, + 0x13, 0x9c, 0x95, 0xd4, 0xb1, 0x58, 0x69, 0x41, 0x81, 0x3b, 0x42, 0x78, 0x6c, 0x92, 0x62, 0x3b, + 0x02, 0xf1, 0x9f, 0x73, 0xc4, 0xc9, 0x00, 0x62, 0x83, 0xb3, 0x2e, 0xd4, 0x60, 0xfc, 0x30, 0x58, + 0xff, 0x82, 0x63, 0x15, 0x70, 0x10, 0xe4, 0x12, 0x94, 0x28, 0x48, 0xb3, 0xeb, 0xb8, 0x66, 0x87, + 0x5a, 0xc0, 0x83, 0x61, 0xfe, 0xe5, 0x37, 0xd8, 0xac, 0x29, 0x12, 0xb6, 0x9a, 0xc7, 0xb5, 0xb0, + 0x00, 0x74, 0x77, 0xad, 0x85, 0x9b, 0xed, 0x08, 0x84, 0x2f, 0xf3, 0x86, 0x78, 0xf4, 0x0b, 0x57, + 0x61, 0x8a, 0xfc, 0xa6, 0x06, 0x2a, 0xd8, 0x92, 0xe8, 0x94, 0xdd, 0xf4, 0x57, 0xdf, 0xcb, 0x26, + 0xe6, 0xa4, 0x07, 0x10, 0x68, 0x53, 0x60, 0x14, 0x77, 0xb0, 0xeb, 0x62, 0xdb, 0x51, 0xb5, 0xf6, + 0xa0, 0xe6, 0x05, 0x72, 0x1e, 0xd3, 0x3f, 0xff, 0x9d, 0xf0, 0x28, 0x5e, 0x62, 0x9c, 0x95, 0x76, + 0x7b, 0x61, 0x13, 0x8e, 0x0e, 0xd0, 0x8a, 0x11, 0x30, 0x3f, 0xc2, 0x31, 0xa7, 0xfa, 0x34, 0x83, + 0xc0, 0xae, 0x83, 0x28, 0xf7, 0xc6, 0x72, 0x04, 0xcc, 0x5f, 0xe0, 0x98, 0x88, 0xf3, 0x8a, 0x21, + 0x25, 0x88, 0x57, 0x60, 0xe2, 0x3a, 0xb6, 0xb7, 0x4c, 0x87, 0xe7, 0x99, 0x46, 0x80, 0xfb, 0x28, + 0x87, 0x2b, 0x71, 0x46, 0x9a, 0x78, 0x22, 0x58, 0x4f, 0x42, 0x76, 0x5b, 0x6b, 0xe2, 0x11, 0x20, + 0x6e, 0x71, 0x88, 0x0c, 0xa1, 0x27, 0xac, 0x15, 0x28, 0xec, 0x98, 0x7c, 0x8d, 0x8a, 0x66, 0xff, + 0x18, 0x67, 0xcf, 0x0b, 0x1e, 0x0e, 0x61, 0x99, 0x56, 0xb7, 0x4d, 0x16, 0xb0, 0x68, 0x88, 0xbf, + 0x2b, 0x20, 0x04, 0x0f, 0x87, 0x38, 0x84, 0x58, 0x5f, 0x11, 0x10, 0x4e, 0x40, 0x9e, 0x4f, 0x43, + 0xde, 0x34, 0xda, 0xfb, 0xa6, 0x31, 0x4a, 0x23, 0x3e, 0xce, 0x11, 0x80, 0xb3, 0x10, 0x80, 0x0b, + 0x90, 0x1b, 0x75, 0x20, 0x7e, 0xe9, 0x3b, 0x62, 0x7a, 0x88, 0x11, 0xb8, 0x04, 0x25, 0x61, 0xa0, + 0x74, 0xd3, 0x18, 0x01, 0xe2, 0x93, 0x1c, 0xa2, 0x18, 0x60, 0xe3, 0xdd, 0x70, 0xb1, 0xe3, 0xee, + 0xe0, 0x51, 0x40, 0x3e, 0x25, 0xba, 0xc1, 0x59, 0xb8, 0x28, 0xb7, 0xb0, 0xd1, 0xdc, 0x1d, 0x0d, + 0xe1, 0xd3, 0x42, 0x94, 0x82, 0x87, 0x40, 0xd4, 0x60, 0xbc, 0xa3, 0xd9, 0xce, 0xae, 0xd6, 0x1e, + 0x69, 0x38, 0x7e, 0x99, 0x63, 0x14, 0x3c, 0x26, 0x2e, 0x91, 0xae, 0x71, 0x18, 0x98, 0x5f, 0x11, + 0x12, 0x09, 0xb0, 0xf1, 0xa9, 0xe7, 0xb8, 0x34, 0x29, 0x77, 0x18, 0xb4, 0xbf, 0x2f, 0xa6, 0x1e, + 0xe3, 0x5d, 0x09, 0x22, 0x5e, 0x80, 0x9c, 0xa3, 0xbf, 0x34, 0x12, 0xcc, 0x3f, 0x10, 0x23, 0x4d, + 0x19, 0x08, 0xf3, 0xf3, 0x70, 0x6c, 0xe0, 0x32, 0x31, 0x02, 0xd8, 0x3f, 0xe4, 0x60, 0x47, 0x06, + 0x2c, 0x15, 0xdc, 0x24, 0x1c, 0x16, 0xf2, 0x57, 0x85, 0x49, 0xc0, 0x3d, 0x58, 0xeb, 0x24, 0x6a, + 0x70, 0xb4, 0xed, 0xc3, 0x49, 0xed, 0x1f, 0x09, 0xa9, 0x31, 0xde, 0x90, 0xd4, 0x36, 0xe0, 0x08, + 0x47, 0x3c, 0xdc, 0xb8, 0x7e, 0x46, 0x18, 0x56, 0xc6, 0xbd, 0x19, 0x1e, 0xdd, 0x1f, 0x86, 0xb2, + 0x27, 0x4e, 0xe1, 0x9e, 0x3a, 0x6a, 0x47, 0xb3, 0x46, 0x40, 0xfe, 0x35, 0x8e, 0x2c, 0x2c, 0xbe, + 0xe7, 0xdf, 0x3a, 0x2b, 0x9a, 0x45, 0xc0, 0x9f, 0x83, 0x69, 0x01, 0xde, 0x35, 0x6c, 0xdc, 0x34, + 0x77, 0x0c, 0xfd, 0x25, 0xdc, 0x1a, 0x01, 0xfa, 0xd7, 0x7b, 0x86, 0x6a, 0x33, 0xc0, 0x4e, 0x90, + 0x97, 0x40, 0xf2, 0x7c, 0x15, 0x55, 0xef, 0x58, 0xa6, 0xed, 0x46, 0x20, 0x7e, 0x56, 0x8c, 0x94, + 0xc7, 0xb7, 0x44, 0xd9, 0x16, 0xea, 0xc0, 0x76, 0xaa, 0x47, 0x55, 0xc9, 0xcf, 0x71, 0xa0, 0x71, + 0x9f, 0x8b, 0x1b, 0x8e, 0xa6, 0xd9, 0xb1, 0x34, 0x7b, 0x14, 0xfb, 0xf7, 0x8f, 0x85, 0xe1, 0xe0, + 0x2c, 0xdc, 0x70, 0x10, 0x8f, 0x8e, 0xac, 0xf6, 0x23, 0x20, 0x7c, 0x5e, 0x18, 0x0e, 0xc1, 0xc3, + 0x21, 0x84, 0xc3, 0x30, 0x02, 0xc4, 0x17, 0x04, 0x84, 0xe0, 0x21, 0x10, 0xef, 0xf0, 0x17, 0x5a, + 0x1b, 0xef, 0xe8, 0x8e, 0x6b, 0x33, 0xa7, 0xf8, 0x60, 0xa8, 0x2f, 0x7e, 0x27, 0xec, 0x84, 0x29, + 0x01, 0x56, 0x62, 0x89, 0x78, 0x9a, 0x96, 0xc6, 0x4c, 0xd1, 0x0d, 0xfb, 0x0d, 0x61, 0x89, 0x02, + 0x6c, 0xa4, 0x6d, 0x01, 0x0f, 0x91, 0x88, 0xbd, 0x49, 0x22, 0x85, 0x11, 0xe0, 0xfe, 0x49, 0x4f, + 0xe3, 0x1a, 0x82, 0x97, 0x60, 0x06, 0xfc, 0x9f, 0xae, 0x71, 0x0d, 0xef, 0x8f, 0xa4, 0x9d, 0xbf, + 0xd9, 0xe3, 0xff, 0x6c, 0x32, 0x4e, 0x66, 0x43, 0x4a, 0x3d, 0xfe, 0x14, 0x8a, 0x3a, 0x97, 0x34, + 0xfd, 0x63, 0xaf, 0xf3, 0xfe, 0x86, 0xdd, 0xa9, 0x85, 0x65, 0xa2, 0xe4, 0x61, 0xa7, 0x27, 0x1a, + 0xec, 0xbd, 0xaf, 0x7b, 0x7a, 0x1e, 0xf2, 0x79, 0x16, 0x2e, 0xc2, 0x78, 0xc8, 0xe1, 0x89, 0x86, + 0xfa, 0x09, 0x0e, 0x55, 0x08, 0xfa, 0x3b, 0x0b, 0xe7, 0x20, 0x49, 0x9c, 0x97, 0x68, 0xf6, 0x9f, + 0xe4, 0xec, 0x94, 0x7c, 0xe1, 0x29, 0xc8, 0x0a, 0xa7, 0x25, 0x9a, 0xf5, 0xff, 0xe7, 0xac, 0x1e, + 0x0b, 0x61, 0x17, 0x0e, 0x4b, 0x34, 0xfb, 0xdf, 0x10, 0xec, 0x82, 0x85, 0xb0, 0x8f, 0x2e, 0xc2, + 0x2f, 0xfd, 0xcd, 0x24, 0x5f, 0x74, 0x84, 0xec, 0x2e, 0x40, 0x86, 0x7b, 0x2a, 0xd1, 0xdc, 0x3f, + 0xc5, 0x5f, 0x2e, 0x38, 0x16, 0x1e, 0x87, 0xd4, 0x88, 0x02, 0xff, 0x5b, 0x9c, 0x95, 0xd1, 0x2f, + 0xd4, 0x20, 0x1f, 0xf0, 0x4e, 0xa2, 0xd9, 0xdf, 0xcf, 0xd9, 0x83, 0x5c, 0xa4, 0xe9, 0xdc, 0x3b, + 0x89, 0x06, 0xf8, 0xdb, 0xa2, 0xe9, 0x9c, 0x83, 0x88, 0x4d, 0x38, 0x26, 0xd1, 0xdc, 0x1f, 0x10, + 0x52, 0x17, 0x2c, 0x0b, 0x4f, 0x43, 0xce, 0x5b, 0x6c, 0xa2, 0xf9, 0x7f, 0x86, 0xf3, 0xfb, 0x3c, + 0x44, 0x02, 0x81, 0xc5, 0x2e, 0x1a, 0xe2, 0x83, 0x42, 0x02, 0x01, 0x2e, 0x32, 0x8d, 0x7a, 0x1d, + 0x98, 0x68, 0xa4, 0x0f, 0x89, 0x69, 0xd4, 0xe3, 0xbf, 0x90, 0xd1, 0xa4, 0x36, 0x3f, 0x1a, 0xe2, + 0xef, 0x88, 0xd1, 0xa4, 0xf4, 0xa4, 0x19, 0xbd, 0x1e, 0x41, 0x34, 0xc6, 0xcf, 0x89, 0x66, 0xf4, + 0x38, 0x04, 0x0b, 0xeb, 0x80, 0xfa, 0xbd, 0x81, 0x68, 0xbc, 0x0f, 0x73, 0xbc, 0x89, 0x3e, 0x67, + 0x60, 0xe1, 0x59, 0x38, 0x32, 0xd8, 0x13, 0x88, 0x46, 0xfd, 0xf9, 0xd7, 0x7b, 0x62, 0xb7, 0xa0, + 0x23, 0xb0, 0xb0, 0xe1, 0x2f, 0x29, 0x41, 0x2f, 0x20, 0x1a, 0xf6, 0x23, 0xaf, 0x87, 0x0d, 0x77, + 0xd0, 0x09, 0x58, 0xa8, 0x00, 0xf8, 0x0b, 0x70, 0x34, 0xd6, 0x47, 0x39, 0x56, 0x80, 0x89, 0x4c, + 0x0d, 0xbe, 0xfe, 0x46, 0xf3, 0xdf, 0x12, 0x53, 0x83, 0x73, 0x90, 0xa9, 0x21, 0x96, 0xde, 0x68, + 0xee, 0x8f, 0x89, 0xa9, 0x21, 0x58, 0x88, 0x66, 0x07, 0x56, 0xb7, 0x68, 0x84, 0x8f, 0x0b, 0xcd, + 0x0e, 0x70, 0x2d, 0xac, 0xc2, 0x44, 0xdf, 0x82, 0x18, 0x0d, 0xf5, 0x8b, 0x1c, 0x4a, 0xea, 0x5d, + 0x0f, 0x83, 0x8b, 0x17, 0x5f, 0x0c, 0xa3, 0xd1, 0x3e, 0xd1, 0xb3, 0x78, 0xf1, 0xb5, 0x70, 0xe1, + 0x02, 0x64, 0x8d, 0x6e, 0xbb, 0x4d, 0x26, 0x0f, 0x3a, 0xf8, 0x2c, 0xe1, 0xf4, 0x7f, 0xfd, 0x1e, + 0x97, 0x8e, 0x60, 0x58, 0x38, 0x07, 0x29, 0xdc, 0xd9, 0xc2, 0xad, 0x28, 0xce, 0x6f, 0x7f, 0x4f, + 0x18, 0x4c, 0x42, 0xbd, 0xf0, 0x34, 0x00, 0x4b, 0x8d, 0xd0, 0xcd, 0xc3, 0x08, 0xde, 0x3f, 0xfa, + 0x1e, 0x3f, 0xbc, 0xe3, 0xb3, 0xf8, 0x00, 0xec, 0x28, 0xd0, 0xc1, 0x00, 0xdf, 0x09, 0x03, 0xd0, + 0x11, 0x79, 0x12, 0x32, 0x2f, 0x3a, 0xa6, 0xe1, 0x6a, 0x3b, 0x51, 0xdc, 0x7f, 0xcc, 0xb9, 0x05, + 0x3d, 0x11, 0x58, 0xc7, 0xb4, 0xb1, 0xab, 0xed, 0x38, 0x51, 0xbc, 0xff, 0x8d, 0xf3, 0x7a, 0x0c, + 0x84, 0xb9, 0xa9, 0x39, 0xee, 0x28, 0xfd, 0xfe, 0x13, 0xc1, 0x2c, 0x18, 0x48, 0xa3, 0xc9, 0xef, + 0x6b, 0x78, 0x3f, 0x8a, 0xf7, 0x4f, 0x45, 0xa3, 0x39, 0xfd, 0xc2, 0x53, 0x90, 0x23, 0x3f, 0xd9, + 0x89, 0xbc, 0x08, 0xe6, 0x3f, 0xe3, 0xcc, 0x3e, 0x07, 0x79, 0xb3, 0xe3, 0xb6, 0x5c, 0x3d, 0x5a, + 0xd8, 0xdf, 0xe5, 0x23, 0x2d, 0xe8, 0x17, 0x2a, 0x90, 0x77, 0xdc, 0x56, 0xab, 0xcb, 0xfd, 0xd3, + 0x08, 0xf6, 0x3f, 0xff, 0x9e, 0x97, 0xb2, 0xf0, 0x78, 0xc8, 0x68, 0xdf, 0xb8, 0xe6, 0x5a, 0x26, + 0xdd, 0xf0, 0x88, 0x42, 0x78, 0x9d, 0x23, 0x04, 0x58, 0x16, 0x6a, 0x50, 0x20, 0x7d, 0xb1, 0xb1, + 0x85, 0xe9, 0xee, 0x54, 0x04, 0xc4, 0x5f, 0x70, 0x01, 0x84, 0x98, 0xaa, 0xef, 0xfe, 0xf2, 0x6b, + 0x33, 0xb1, 0xaf, 0xbc, 0x36, 0x13, 0xfb, 0xc3, 0xd7, 0x66, 0x62, 0x1f, 0xf8, 0xfa, 0xcc, 0xd8, + 0x57, 0xbe, 0x3e, 0x33, 0xf6, 0xfb, 0x5f, 0x9f, 0x19, 0x1b, 0x9c, 0x25, 0x86, 0x4b, 0xe6, 0x25, + 0x93, 0xe5, 0x87, 0x5f, 0xb8, 0x6f, 0x47, 0x77, 0x77, 0xbb, 0x5b, 0xf3, 0x4d, 0xb3, 0x73, 0xa6, + 0x69, 0x3a, 0x1d, 0xd3, 0x39, 0x13, 0xce, 0xeb, 0xd2, 0x5f, 0xf0, 0xbf, 0x63, 0x24, 0x66, 0x0e, + 0xa7, 0x73, 0x35, 0x63, 0x7f, 0xd8, 0xe7, 0x3d, 0xe7, 0x21, 0x51, 0x31, 0xf6, 0xd1, 0x31, 0x66, + 0xe0, 0xd4, 0xae, 0xdd, 0xe6, 0xc7, 0xc2, 0x32, 0xe4, 0x79, 0xd3, 0x6e, 0xa3, 0x29, 0xff, 0xec, + 0x66, 0xec, 0x64, 0x81, 0x1f, 0xc8, 0xac, 0xbe, 0x3f, 0x76, 0xb8, 0x9e, 0x64, 0x2b, 0xc6, 0x3e, + 0xed, 0xc8, 0x7a, 0xec, 0x85, 0x07, 0x23, 0xf3, 0xdc, 0xd7, 0x0c, 0xf3, 0x86, 0x41, 0x9a, 0x6d, + 0x6d, 0x89, 0x1c, 0xf7, 0x4c, 0x6f, 0x8e, 0xfb, 0x59, 0xdc, 0x6e, 0x3f, 0x43, 0xe8, 0x36, 0x08, + 0xcb, 0x56, 0x9a, 0x9d, 0x40, 0x86, 0x0f, 0xc5, 0x61, 0xa6, 0x2f, 0x9d, 0xcd, 0x95, 0x60, 0x98, + 0x10, 0x16, 0x20, 0xbb, 0x28, 0x74, 0x6b, 0x1a, 0x32, 0x0e, 0x6e, 0x9a, 0x46, 0xcb, 0xa1, 0x82, + 0x48, 0x28, 0xe2, 0x91, 0x08, 0xc2, 0xd0, 0x0c, 0xd3, 0xe1, 0x07, 0x2b, 0xd9, 0x43, 0xf5, 0x17, + 0x0e, 0x29, 0x88, 0x71, 0xf1, 0x26, 0x21, 0x8d, 0x47, 0x46, 0x94, 0x86, 0xe8, 0x44, 0x28, 0xf3, + 0x3f, 0xaa, 0x54, 0x7e, 0x2e, 0x0e, 0xb3, 0xbd, 0x52, 0x21, 0x33, 0xcb, 0x71, 0xb5, 0x8e, 0x35, + 0x4c, 0x2c, 0x17, 0x20, 0xb7, 0x21, 0x68, 0x0e, 0x2d, 0x97, 0x5b, 0x87, 0x94, 0x4b, 0xd1, 0x7b, + 0x95, 0x10, 0xcc, 0xd9, 0x11, 0x05, 0xe3, 0xf5, 0xe3, 0xb6, 0x24, 0xf3, 0x97, 0x69, 0x38, 0xc6, + 0xa6, 0x93, 0xca, 0xa6, 0x12, 0x7b, 0xe0, 0x32, 0x29, 0x04, 0xab, 0xa2, 0xf7, 0x49, 0xe4, 0x67, + 0x60, 0x72, 0x89, 0x58, 0x0b, 0x12, 0x05, 0xf9, 0x3b, 0x3c, 0x03, 0xcf, 0x9e, 0xce, 0x85, 0x1c, + 0x7e, 0xbe, 0xc3, 0x14, 0x2c, 0x92, 0x7f, 0x2c, 0x06, 0x52, 0xa3, 0xa9, 0xb5, 0x35, 0xfb, 0xfb, + 0x85, 0x42, 0x8f, 0x03, 0xd0, 0x6f, 0x96, 0xfc, 0x8f, 0x8c, 0x8a, 0x67, 0xa7, 0xe7, 0x83, 0x9d, + 0x9b, 0x67, 0x6f, 0xa2, 0x5f, 0x30, 0xe4, 0x28, 0x2d, 0xf9, 0x79, 0xfa, 0x39, 0x00, 0xbf, 0x02, + 0x1d, 0x87, 0xa3, 0x8d, 0x5a, 0x65, 0xb9, 0xa2, 0xa8, 0xec, 0x30, 0xfc, 0x6a, 0x63, 0xbd, 0x5e, + 0x5b, 0xba, 0xb8, 0x54, 0x5f, 0x94, 0xc6, 0xd0, 0x11, 0x40, 0xc1, 0x4a, 0xef, 0x5c, 0xca, 0x1d, + 0x30, 0x11, 0x2c, 0x67, 0x27, 0xea, 0xe3, 0xc4, 0x53, 0xd4, 0x3b, 0x56, 0x1b, 0xd3, 0xad, 0x3f, + 0x55, 0x17, 0x52, 0x8b, 0x76, 0x42, 0x7e, 0xf7, 0xdf, 0xb1, 0x53, 0xd6, 0x93, 0x3e, 0xbb, 0x27, + 0xf3, 0x85, 0x65, 0x98, 0xd0, 0x9a, 0x4d, 0x6c, 0x85, 0x20, 0x23, 0x4c, 0x35, 0x01, 0xa4, 0x9b, + 0x99, 0x9c, 0xd3, 0x47, 0x7b, 0x1c, 0xd2, 0x0e, 0xed, 0x7d, 0x14, 0xc4, 0xef, 0x71, 0x08, 0x4e, + 0xbe, 0x60, 0xc0, 0x04, 0xf1, 0xfc, 0x34, 0x1b, 0x07, 0x9a, 0x71, 0x70, 0x9e, 0xe1, 0xb7, 0x3e, + 0xfb, 0x30, 0xdd, 0xda, 0xbc, 0x3b, 0x3c, 0x2c, 0x03, 0xd4, 0x49, 0x91, 0x38, 0xb6, 0xdf, 0x50, + 0x0c, 0x45, 0xf1, 0x3e, 0xde, 0xe0, 0x83, 0x5f, 0xf6, 0xdb, 0xfc, 0x65, 0x33, 0x83, 0x74, 0x20, + 0xf0, 0xa6, 0x71, 0x8e, 0xca, 0x2a, 0xaa, 0xf5, 0x61, 0x73, 0xfa, 0x85, 0x07, 0xfa, 0x57, 0x27, + 0xf6, 0xdf, 0x43, 0x14, 0xf9, 0x42, 0xf0, 0x35, 0xde, 0xdc, 0xfb, 0x60, 0x12, 0x26, 0xb4, 0x8e, + 0x6e, 0x98, 0x67, 0xe8, 0xbf, 0x7c, 0xce, 0xa5, 0xe8, 0xc3, 0x08, 0x9b, 0x92, 0xe7, 0xd9, 0x54, + 0x88, 0xd6, 0x98, 0x3f, 0xfb, 0xe9, 0x4f, 0xa6, 0xfc, 0xe9, 0xb2, 0xb0, 0x02, 0x92, 0x38, 0x70, + 0x88, 0x8d, 0xa6, 0xd9, 0x1a, 0x29, 0x4b, 0xf1, 0x5d, 0x81, 0x21, 0xf2, 0x5b, 0x75, 0xce, 0xba, + 0xf0, 0x36, 0xc8, 0x7a, 0x30, 0x51, 0x9e, 0x89, 0x00, 0xf1, 0x38, 0x88, 0x5f, 0xc2, 0x66, 0xe6, + 0x28, 0x5e, 0xe8, 0xeb, 0x82, 0x9f, 0xcd, 0xd0, 0x55, 0xd2, 0x9b, 0x4b, 0x50, 0x6c, 0x99, 0x86, + 0xab, 0x9a, 0x1d, 0xdd, 0xc5, 0x1d, 0xcb, 0x8d, 0xf4, 0xeb, 0xfe, 0x82, 0x81, 0x64, 0x95, 0x71, + 0xc2, 0xb7, 0x26, 0xd8, 0x16, 0xce, 0x8f, 0xe8, 0x87, 0xff, 0x77, 0xc1, 0xcf, 0xc8, 0x6f, 0x4b, + 0x29, 0x9c, 0xd6, 0x35, 0x6e, 0xc3, 0xdd, 0x3d, 0x36, 0xf8, 0x9e, 0x52, 0xfc, 0x49, 0x02, 0x66, + 0x38, 0xf1, 0x96, 0xe6, 0xe0, 0x33, 0xd7, 0x1f, 0xd9, 0xc2, 0xae, 0xf6, 0xc8, 0x99, 0xa6, 0xa9, + 0x8b, 0x05, 0x7c, 0x92, 0xdb, 0x68, 0x52, 0x3f, 0xcf, 0xeb, 0xcb, 0x03, 0x77, 0xb9, 0xcb, 0xc3, + 0x6d, 0x7b, 0xb9, 0x5f, 0xf5, 0xe4, 0x17, 0x20, 0x59, 0x33, 0x75, 0x83, 0x2c, 0x69, 0x2d, 0x6c, + 0x98, 0x1d, 0x6e, 0x65, 0xd9, 0x03, 0x3a, 0x0f, 0x69, 0xad, 0x63, 0x76, 0x0d, 0x97, 0x59, 0xd8, + 0xea, 0xcc, 0x97, 0x5f, 0x9d, 0x1d, 0xfb, 0x0f, 0xaf, 0xce, 0x26, 0x96, 0x0c, 0xf7, 0x6b, 0x9f, + 0x7b, 0x08, 0x38, 0xfa, 0x92, 0xe1, 0x7e, 0xfa, 0x9b, 0x9f, 0x39, 0x1d, 0x53, 0x38, 0xf5, 0x42, + 0xf2, 0x5b, 0xaf, 0xcc, 0xc6, 0xe4, 0xe7, 0x20, 0xb3, 0x88, 0x9b, 0x07, 0xc0, 0x3f, 0xd2, 0x03, + 0x7f, 0x4c, 0xc0, 0x2f, 0xe2, 0x66, 0x00, 0x7e, 0x11, 0x37, 0x7b, 0x90, 0x1f, 0x87, 0xec, 0x92, + 0xe1, 0xb2, 0xaf, 0x1c, 0x1e, 0x80, 0x84, 0x6e, 0xb0, 0x83, 0xb3, 0x01, 0x84, 0xbe, 0x06, 0x2a, + 0x84, 0x8a, 0x30, 0x2e, 0xe2, 0xa6, 0xc7, 0xd8, 0xc2, 0xcd, 0x5e, 0xc6, 0xfe, 0x57, 0x13, 0xaa, + 0xea, 0xe2, 0xef, 0xff, 0xe7, 0x99, 0xb1, 0x97, 0x5f, 0x9b, 0x19, 0x1b, 0x3a, 0xf4, 0x72, 0xf4, + 0xd0, 0x7b, 0x23, 0xfe, 0xc9, 0x24, 0xdc, 0x45, 0x3f, 0x7e, 0xb3, 0x3b, 0xba, 0xe1, 0x9e, 0x69, + 0xda, 0xfb, 0x96, 0x6b, 0x92, 0x79, 0x6f, 0x6e, 0xf3, 0x01, 0x9f, 0xf0, 0xab, 0xe7, 0x59, 0xf5, + 0xe0, 0xe1, 0x96, 0xb7, 0x21, 0xb5, 0x4e, 0xf8, 0x88, 0x88, 0x5d, 0xd3, 0xd5, 0xda, 0xdc, 0x59, + 0x61, 0x0f, 0xa4, 0x94, 0x7d, 0x30, 0x17, 0x67, 0xa5, 0xba, 0xf8, 0x56, 0xae, 0x8d, 0xb5, 0x6d, + 0xf6, 0xdd, 0x41, 0x82, 0x7a, 0xb9, 0x59, 0x52, 0x40, 0x3f, 0x31, 0x98, 0x82, 0x94, 0xd6, 0x65, + 0x07, 0x5e, 0x12, 0xc4, 0xfd, 0xa5, 0x0f, 0xf2, 0x33, 0x90, 0xe1, 0xdb, 0xee, 0x48, 0x82, 0xc4, + 0x35, 0xbc, 0x4f, 0xdf, 0x53, 0x50, 0xc8, 0x4f, 0x34, 0x0f, 0x29, 0xda, 0x78, 0xfe, 0x41, 0xd5, + 0xf4, 0x7c, 0x5f, 0xeb, 0xe7, 0x69, 0x23, 0x15, 0x46, 0x26, 0x5f, 0x81, 0xec, 0xa2, 0x49, 0xb4, + 0x30, 0x8c, 0x96, 0x63, 0x68, 0xb4, 0xcd, 0x56, 0x97, 0x6b, 0x85, 0xc2, 0x1e, 0xd0, 0x11, 0x48, + 0xb3, 0xef, 0x50, 0xf8, 0xa1, 0x1d, 0xfe, 0x24, 0xd7, 0x20, 0x43, 0xb1, 0xd7, 0x2c, 0xe2, 0x29, + 0x78, 0x47, 0x7e, 0x73, 0xfc, 0xab, 0x44, 0x0e, 0x1f, 0xf7, 0x1b, 0x8b, 0x20, 0xd9, 0xd2, 0x5c, + 0x8d, 0xf7, 0x9b, 0xfe, 0x96, 0xdf, 0x0e, 0x59, 0x0e, 0xe2, 0xa0, 0xb3, 0x90, 0x30, 0x2d, 0x87, + 0x1f, 0xbb, 0x29, 0x0f, 0xeb, 0xca, 0x9a, 0x55, 0x4d, 0x12, 0x9d, 0x51, 0x08, 0x71, 0x75, 0x75, + 0xa8, 0x5a, 0x3c, 0x16, 0x52, 0x8b, 0x0e, 0x76, 0xb7, 0xb6, 0x5d, 0xff, 0x07, 0x1b, 0xce, 0x3e, + 0x55, 0xf0, 0x14, 0xe5, 0x56, 0x1c, 0x66, 0x02, 0xb5, 0xd7, 0xb1, 0xed, 0xe8, 0xa6, 0xc1, 0xb4, + 0x89, 0x6b, 0x0a, 0x0a, 0x34, 0x90, 0xd7, 0x0f, 0x51, 0x95, 0xa7, 0x20, 0x51, 0xb1, 0x2c, 0x54, + 0x86, 0x2c, 0x7d, 0x6e, 0x9a, 0x4c, 0x57, 0x92, 0x8a, 0xf7, 0x4c, 0xea, 0x1c, 0x73, 0xdb, 0xbd, + 0xa1, 0xd9, 0xde, 0x67, 0x9a, 0xe2, 0x59, 0x7e, 0x12, 0x72, 0x35, 0xd3, 0x70, 0xb0, 0xe1, 0x74, + 0xa9, 0x0b, 0xbc, 0xd5, 0x36, 0x9b, 0xd7, 0x38, 0x02, 0x7b, 0x20, 0xc2, 0xd6, 0x2c, 0x8b, 0x72, + 0x26, 0x15, 0xf2, 0x93, 0xcd, 0xd7, 0xea, 0xda, 0x50, 0xf1, 0x9c, 0x3b, 0x9c, 0x78, 0x78, 0x07, + 0x7d, 0x5f, 0x36, 0x06, 0x77, 0xf6, 0x4f, 0xa4, 0x6b, 0x78, 0xdf, 0x39, 0xec, 0x3c, 0x7a, 0x0e, + 0x72, 0xeb, 0xf4, 0x9e, 0x84, 0x67, 0xf0, 0x3e, 0x2a, 0x43, 0x06, 0xb7, 0xce, 0x9e, 0x3b, 0xf7, + 0xc8, 0x93, 0x4c, 0xcb, 0x2f, 0x8f, 0x29, 0xa2, 0x00, 0xcd, 0x40, 0xce, 0xc1, 0x4d, 0xeb, 0xec, + 0xb9, 0xf3, 0xd7, 0x1e, 0x61, 0x6a, 0x75, 0x79, 0x4c, 0xf1, 0x8b, 0x16, 0xb2, 0xa4, 0xc7, 0xdf, + 0xfa, 0xf8, 0x6c, 0xac, 0x9a, 0x82, 0x84, 0xd3, 0xed, 0xbc, 0x69, 0xba, 0xf1, 0xb3, 0x29, 0x98, + 0x0b, 0xd4, 0xb2, 0xc5, 0xe5, 0xba, 0xd6, 0xd6, 0x5b, 0x9a, 0x7f, 0xbb, 0x85, 0x14, 0xe8, 0x3f, + 0xa5, 0x18, 0xb2, 0x6a, 0x1c, 0x28, 0x45, 0xf9, 0xd7, 0x63, 0x50, 0xb8, 0x2a, 0x90, 0x1b, 0xd8, + 0x45, 0x17, 0x00, 0xbc, 0x37, 0x89, 0xa9, 0x72, 0x7c, 0xbe, 0xf7, 0x5d, 0xf3, 0x1e, 0x8f, 0x12, + 0x20, 0x47, 0x8f, 0x53, 0x05, 0xb4, 0x4c, 0x87, 0x7f, 0xb2, 0x17, 0xc1, 0xea, 0x11, 0xa3, 0x07, + 0x01, 0x51, 0xab, 0xa6, 0x5e, 0x37, 0x5d, 0xdd, 0xd8, 0x51, 0x2d, 0xf3, 0x06, 0xff, 0x10, 0x3a, + 0xa1, 0x48, 0xb4, 0xe6, 0x2a, 0xad, 0x58, 0x27, 0xe5, 0xa4, 0xd1, 0x39, 0x0f, 0x85, 0x44, 0x73, + 0x5a, 0xab, 0x65, 0x63, 0xc7, 0xe1, 0x86, 0x4b, 0x3c, 0xa2, 0x0b, 0x90, 0xb1, 0xba, 0x5b, 0xaa, + 0xb0, 0x12, 0xf9, 0xb3, 0x77, 0x0e, 0x9a, 0xf3, 0x42, 0x37, 0xf8, 0xac, 0x4f, 0x5b, 0xdd, 0x2d, + 0xa2, 0x29, 0x77, 0x43, 0x61, 0x40, 0x63, 0xf2, 0xd7, 0xfd, 0x76, 0xd0, 0xab, 0x39, 0x78, 0x0f, + 0x54, 0xcb, 0xd6, 0x4d, 0x5b, 0x77, 0xf7, 0xe9, 0x79, 0xb9, 0x84, 0x22, 0x89, 0x8a, 0x75, 0x5e, + 0x2e, 0x5f, 0x83, 0x52, 0x83, 0x7a, 0xf9, 0x7e, 0xcb, 0xcf, 0xf9, 0xed, 0x8b, 0x45, 0xb7, 0x6f, + 0x68, 0xcb, 0xe2, 0x7d, 0x2d, 0xab, 0xae, 0x0c, 0xd5, 0xcc, 0x47, 0x0f, 0xa7, 0x99, 0xe1, 0xd5, + 0xed, 0x8f, 0x8e, 0x85, 0x26, 0x25, 0xf7, 0x7a, 0x02, 0x26, 0x6b, 0x54, 0xa5, 0x8c, 0x0a, 0xe0, + 0xcb, 0x07, 0x2f, 0xa2, 0xe5, 0x08, 0xd3, 0x59, 0x8e, 0x9c, 0x3e, 0xf2, 0x93, 0x30, 0xbe, 0xae, + 0xd9, 0x6e, 0x03, 0xbb, 0x97, 0xb1, 0xd6, 0xc2, 0x76, 0x78, 0x95, 0x1d, 0x17, 0xab, 0x2c, 0x82, + 0x24, 0x5d, 0x4a, 0xd9, 0x2a, 0x43, 0x7f, 0xcb, 0xbb, 0x90, 0xa4, 0xe7, 0x65, 0xbd, 0x15, 0x98, + 0x73, 0xb0, 0x15, 0x98, 0xd8, 0xcf, 0x7d, 0x17, 0x3b, 0x22, 0xc7, 0x44, 0x1f, 0xd0, 0x63, 0x62, + 0x1d, 0x4d, 0x1c, 0xbc, 0x8e, 0x72, 0x25, 0xe4, 0xab, 0x69, 0x1b, 0x32, 0x55, 0x62, 0x7e, 0x97, + 0x16, 0xbd, 0x86, 0xc4, 0xfc, 0x86, 0xa0, 0x15, 0x28, 0x59, 0x9a, 0xed, 0xd2, 0x4f, 0x8d, 0x76, + 0x69, 0x2f, 0xb8, 0x9e, 0xcf, 0xf6, 0xcf, 0xba, 0x50, 0x67, 0xf9, 0x5b, 0xc6, 0xad, 0x60, 0xa1, + 0xfc, 0x5f, 0x92, 0x90, 0xe6, 0xc2, 0x78, 0x0a, 0x32, 0x5c, 0xac, 0x5c, 0x33, 0xef, 0x9a, 0xef, + 0x5f, 0x8c, 0xe6, 0xbd, 0x45, 0x83, 0xe3, 0x09, 0x1e, 0x74, 0x3f, 0x64, 0x9b, 0xbb, 0x9a, 0x6e, + 0xa8, 0x7a, 0x8b, 0x3b, 0x80, 0xf9, 0xd7, 0x5e, 0x9d, 0xcd, 0xd4, 0x48, 0xd9, 0xd2, 0xa2, 0x92, + 0xa1, 0x95, 0x4b, 0x2d, 0xb2, 0xf2, 0xef, 0x62, 0x7d, 0x67, 0xd7, 0xe5, 0xb3, 0x8b, 0x3f, 0xa1, + 0x27, 0x20, 0x49, 0x14, 0x82, 0x7f, 0x88, 0x5a, 0xee, 0xf3, 0xe1, 0xbd, 0xfc, 0x4a, 0x35, 0x4b, + 0x5e, 0xfc, 0x81, 0x3f, 0x98, 0x8d, 0x29, 0x94, 0x03, 0xd5, 0x60, 0xbc, 0xad, 0x39, 0xae, 0x4a, + 0x57, 0x2d, 0xf2, 0xfa, 0x14, 0x85, 0x38, 0xd6, 0x2f, 0x10, 0x2e, 0x58, 0xde, 0xf4, 0x3c, 0xe1, + 0x62, 0x45, 0x2d, 0x74, 0x12, 0x24, 0x0a, 0xd2, 0x34, 0x3b, 0x1d, 0xdd, 0x65, 0xbe, 0x54, 0x9a, + 0xca, 0xbd, 0x48, 0xca, 0x6b, 0xb4, 0x98, 0x7a, 0x54, 0xc7, 0x21, 0x47, 0x3f, 0x7d, 0xa3, 0x24, + 0xec, 0x90, 0x76, 0x96, 0x14, 0xd0, 0xca, 0x13, 0x50, 0xf2, 0x6d, 0x23, 0x23, 0xc9, 0x32, 0x14, + 0xbf, 0x98, 0x12, 0x3e, 0x0c, 0x53, 0x06, 0xde, 0xa3, 0xc7, 0xc6, 0x43, 0xd4, 0x39, 0x4a, 0x8d, + 0x48, 0xdd, 0xd5, 0x30, 0xc7, 0x7d, 0x50, 0x6c, 0x0a, 0xe1, 0x33, 0x5a, 0xa0, 0xb4, 0xe3, 0x5e, + 0x29, 0x25, 0x3b, 0x06, 0x59, 0xcd, 0xb2, 0x18, 0x41, 0x9e, 0xdb, 0x46, 0xcb, 0xa2, 0x55, 0xa7, + 0x61, 0x82, 0xf6, 0xd1, 0xc6, 0x4e, 0xb7, 0xed, 0x72, 0x90, 0x02, 0xa5, 0x29, 0x91, 0x0a, 0x85, + 0x95, 0x53, 0xda, 0x7b, 0x60, 0x1c, 0x5f, 0xd7, 0x5b, 0xd8, 0x68, 0x62, 0x46, 0x37, 0x4e, 0xe9, + 0x0a, 0xa2, 0x90, 0x12, 0x9d, 0x02, 0xcf, 0xe6, 0xa9, 0xc2, 0x1e, 0x17, 0x19, 0x9e, 0x28, 0xaf, + 0xb0, 0x62, 0x79, 0x1a, 0x92, 0x8b, 0x9a, 0xab, 0x11, 0xa7, 0xc2, 0xdd, 0x63, 0x8b, 0x4c, 0x41, + 0x21, 0x3f, 0xe5, 0x6f, 0xc5, 0x21, 0x79, 0xd5, 0x74, 0x31, 0x7a, 0x34, 0xe0, 0xf0, 0x15, 0x07, + 0xe9, 0x73, 0x43, 0xdf, 0x31, 0x70, 0x6b, 0xc5, 0xd9, 0x09, 0xdc, 0x53, 0xe1, 0xab, 0x53, 0x3c, + 0xa4, 0x4e, 0x53, 0x90, 0xb2, 0xcd, 0xae, 0xd1, 0x12, 0xe7, 0x9b, 0xe9, 0x03, 0xaa, 0x43, 0xd6, + 0xd3, 0x92, 0x64, 0x94, 0x96, 0x94, 0x88, 0x96, 0x10, 0x1d, 0xe6, 0x05, 0x4a, 0x66, 0x8b, 0x2b, + 0x4b, 0x15, 0x72, 0x9e, 0xf1, 0xe2, 0xda, 0x36, 0x9a, 0xc2, 0xfa, 0x6c, 0x64, 0x21, 0xf1, 0xc6, + 0xde, 0x13, 0x1e, 0xd3, 0x38, 0xc9, 0xab, 0xe0, 0xd2, 0x0b, 0xa9, 0x15, 0xbf, 0x33, 0x23, 0x43, + 0xfb, 0xe5, 0xab, 0x15, 0xbb, 0x37, 0xe3, 0x4e, 0xc8, 0x39, 0xfa, 0x8e, 0xa1, 0xb9, 0x5d, 0x1b, + 0x73, 0xcd, 0xf3, 0x0b, 0xe4, 0x2f, 0xc5, 0x20, 0xcd, 0x34, 0x39, 0x20, 0xb7, 0xd8, 0x60, 0xb9, + 0xc5, 0x87, 0xc9, 0x2d, 0x71, 0xfb, 0x72, 0xab, 0x00, 0x78, 0x8d, 0x71, 0xf8, 0x55, 0x06, 0x03, + 0xbc, 0x05, 0xd6, 0xc4, 0x86, 0xbe, 0xc3, 0x27, 0x6a, 0x80, 0x49, 0xfe, 0x4f, 0x31, 0xe2, 0xb8, + 0xf2, 0x7a, 0x54, 0x81, 0x71, 0xd1, 0x2e, 0x75, 0xbb, 0xad, 0xed, 0x70, 0xdd, 0xb9, 0x6b, 0x68, + 0xe3, 0x2e, 0xb6, 0xb5, 0x1d, 0x25, 0xcf, 0xdb, 0x43, 0x1e, 0x06, 0x8f, 0x43, 0x7c, 0xc8, 0x38, + 0x84, 0x06, 0x3e, 0x71, 0x7b, 0x03, 0x1f, 0x1a, 0xa2, 0x64, 0xef, 0x10, 0x7d, 0x36, 0x4e, 0x83, + 0x17, 0xcb, 0x74, 0xb4, 0xf6, 0x5b, 0x31, 0x23, 0x8e, 0x43, 0xce, 0x32, 0xdb, 0x2a, 0xab, 0x61, + 0xe7, 0xfe, 0xb3, 0x96, 0xd9, 0x56, 0xfa, 0x86, 0x3d, 0xf5, 0x06, 0x4d, 0x97, 0xf4, 0x1b, 0x20, + 0xb5, 0x4c, 0xaf, 0xd4, 0x6c, 0x28, 0x30, 0x51, 0xf0, 0xb5, 0xec, 0x61, 0x22, 0x03, 0xba, 0x38, + 0xc6, 0xfa, 0xd7, 0x5e, 0xd6, 0x6c, 0x46, 0xa9, 0x70, 0x3a, 0xc2, 0xc1, 0x4c, 0xff, 0xa0, 0xa8, + 0x37, 0xa8, 0x96, 0x0a, 0xa7, 0x93, 0x7f, 0x36, 0x06, 0xb0, 0x4c, 0x24, 0x4b, 0xfb, 0x4b, 0x56, + 0x21, 0x87, 0x36, 0x41, 0x0d, 0xbd, 0x79, 0x66, 0xd8, 0xa0, 0xf1, 0xf7, 0x17, 0x9c, 0x60, 0xbb, + 0x6b, 0x30, 0xee, 0x2b, 0xa3, 0x83, 0x45, 0x63, 0x66, 0x0e, 0xf0, 0xa8, 0x1b, 0xd8, 0x55, 0x0a, + 0xd7, 0x03, 0x4f, 0xf2, 0x3f, 0x8d, 0x41, 0x8e, 0xb6, 0x69, 0x05, 0xbb, 0x5a, 0x68, 0x0c, 0x63, + 0xb7, 0x3f, 0x86, 0x77, 0x01, 0x30, 0x18, 0x47, 0x7f, 0x09, 0x73, 0xcd, 0xca, 0xd1, 0x92, 0x86, + 0xfe, 0x12, 0x46, 0xe7, 0x3d, 0x81, 0x27, 0x0e, 0x16, 0xb8, 0xf0, 0xb8, 0xb9, 0xd8, 0x8f, 0x42, + 0x86, 0x5e, 0xfd, 0xb5, 0xe7, 0x70, 0x27, 0x3a, 0x6d, 0x74, 0x3b, 0x1b, 0x7b, 0x8e, 0xfc, 0x22, + 0x64, 0x36, 0xf6, 0x58, 0x2e, 0xe4, 0x38, 0xe4, 0x6c, 0xd3, 0xe4, 0x6b, 0x32, 0xf3, 0x85, 0xb2, + 0xa4, 0x80, 0x2e, 0x41, 0x22, 0xfe, 0x8f, 0xfb, 0xf1, 0xbf, 0x9f, 0xc0, 0x48, 0x8c, 0x94, 0xc0, + 0x38, 0xfd, 0xef, 0x63, 0x90, 0x0f, 0xd8, 0x07, 0xf4, 0x08, 0xdc, 0x51, 0x5d, 0x5e, 0xab, 0x3d, + 0xa3, 0x2e, 0x2d, 0xaa, 0x17, 0x97, 0x2b, 0x97, 0xfc, 0x2f, 0xdb, 0xca, 0x47, 0x6e, 0xde, 0x9a, + 0x43, 0x01, 0xda, 0x4d, 0x83, 0x6e, 0xe2, 0xa0, 0x33, 0x30, 0x15, 0x66, 0xa9, 0x54, 0x1b, 0xf5, + 0xd5, 0x0d, 0x29, 0x56, 0xbe, 0xe3, 0xe6, 0xad, 0xb9, 0x89, 0x00, 0x47, 0x65, 0xcb, 0xc1, 0x86, + 0xdb, 0xcf, 0x50, 0x5b, 0x5b, 0x59, 0x59, 0xda, 0x90, 0xe2, 0x7d, 0x0c, 0xdc, 0x60, 0x9f, 0x82, + 0x89, 0x30, 0xc3, 0xea, 0xd2, 0xb2, 0x94, 0x28, 0xa3, 0x9b, 0xb7, 0xe6, 0x8a, 0x01, 0xea, 0x55, + 0xbd, 0x5d, 0xce, 0xbe, 0xef, 0x13, 0x33, 0x63, 0x9f, 0xfe, 0x7b, 0x33, 0x31, 0xd2, 0xb3, 0xf1, + 0x90, 0x8d, 0x40, 0x0f, 0xc2, 0xd1, 0xc6, 0xd2, 0xa5, 0xd5, 0xfa, 0xa2, 0xba, 0xd2, 0xb8, 0x24, + 0xb6, 0x41, 0x44, 0xef, 0x4a, 0x37, 0x6f, 0xcd, 0xe5, 0x79, 0x97, 0x86, 0x51, 0xaf, 0x2b, 0xf5, + 0xab, 0x6b, 0x1b, 0x75, 0x29, 0xc6, 0xa8, 0xd7, 0x6d, 0x7c, 0xdd, 0x74, 0xd9, 0xdd, 0x80, 0x0f, + 0xc3, 0xb1, 0x01, 0xd4, 0x5e, 0xc7, 0x26, 0x6e, 0xde, 0x9a, 0x1b, 0x5f, 0xb7, 0x31, 0x9b, 0x3f, + 0x94, 0x63, 0x1e, 0xa6, 0xfb, 0x39, 0xd6, 0xd6, 0xd7, 0x1a, 0x95, 0x65, 0x69, 0xae, 0x2c, 0xdd, + 0xbc, 0x35, 0x57, 0x10, 0xc6, 0x90, 0xd0, 0xfb, 0x3d, 0x7b, 0xb3, 0xa2, 0x9d, 0x8f, 0x65, 0x42, + 0xb9, 0x3c, 0x16, 0x47, 0x58, 0x9a, 0xad, 0x75, 0x86, 0x87, 0x3b, 0xfd, 0x89, 0xd8, 0x21, 0x11, + 0x50, 0xc4, 0xc6, 0xae, 0xfc, 0x72, 0x1c, 0x4a, 0x9e, 0x7f, 0xbd, 0x4e, 0x5f, 0x8a, 0x1e, 0x0d, + 0xa6, 0x66, 0xf2, 0x43, 0x57, 0x36, 0x46, 0x2d, 0x32, 0x37, 0x6f, 0x83, 0xac, 0xf0, 0xd3, 0xb8, + 0x05, 0x99, 0xeb, 0xe7, 0xab, 0x73, 0x0a, 0xce, 0xea, 0x71, 0xa0, 0xa7, 0x21, 0xe7, 0xd9, 0x13, + 0xef, 0xb2, 0x9d, 0xe1, 0x06, 0x88, 0xf3, 0xfb, 0x3c, 0xe8, 0x49, 0x3f, 0x92, 0x48, 0x0e, 0x8b, + 0x4d, 0xae, 0x32, 0x02, 0xce, 0x2c, 0xe8, 0xe5, 0x25, 0x3e, 0x13, 0x79, 0xef, 0xe9, 0x45, 0x05, + 0x7b, 0x2a, 0x0b, 0xae, 0x98, 0xa3, 0x92, 0xed, 0x68, 0x7b, 0x55, 0x1a, 0x5f, 0x1d, 0x85, 0x0c, + 0xa9, 0xdc, 0xe1, 0xdf, 0x61, 0x27, 0x94, 0x74, 0x47, 0xdb, 0xbb, 0xa4, 0x39, 0x57, 0x92, 0xd9, + 0x84, 0x94, 0x94, 0x7f, 0x35, 0x06, 0xc5, 0x70, 0x1f, 0xd1, 0x03, 0x80, 0x08, 0x87, 0xb6, 0x83, + 0x55, 0x62, 0x75, 0xa8, 0xb0, 0x04, 0x6e, 0xa9, 0xa3, 0xed, 0x55, 0x76, 0xf0, 0x6a, 0xb7, 0x43, + 0x1b, 0xe0, 0x20, 0x05, 0x24, 0x41, 0x2c, 0xc6, 0x89, 0x0b, 0xf3, 0x58, 0xff, 0xd5, 0x7b, 0x9c, + 0xa0, 0x3a, 0x4e, 0xac, 0xdb, 0x87, 0xff, 0x60, 0x36, 0xc6, 0x52, 0xe8, 0x45, 0x06, 0xea, 0xed, + 0xce, 0x87, 0xfa, 0x93, 0x08, 0xf7, 0x47, 0x7e, 0x1a, 0x4a, 0x3d, 0x42, 0x45, 0x32, 0x8c, 0xf3, + 0x6c, 0x01, 0xdd, 0xf9, 0x64, 0x7e, 0x73, 0x4e, 0xc9, 0xb3, 0xac, 0x00, 0xdd, 0x09, 0x5e, 0xc8, + 0x7e, 0xf1, 0x95, 0xd9, 0x18, 0x4d, 0xa4, 0x3f, 0x00, 0xe3, 0x21, 0xb1, 0x8a, 0x0c, 0x5e, 0xcc, + 0xcf, 0xe0, 0xf9, 0xc4, 0x2f, 0x40, 0x81, 0x18, 0x50, 0xdc, 0xe2, 0xb4, 0xf7, 0x43, 0x89, 0x19, + 0xf8, 0x5e, 0x81, 0x33, 0x0f, 0x6b, 0x45, 0x48, 0x5d, 0x16, 0x2e, 0x57, 0x58, 0xf6, 0x79, 0x41, + 0x75, 0x49, 0x73, 0xaa, 0xef, 0xf8, 0xf4, 0x6b, 0x33, 0xb1, 0x37, 0x67, 0x82, 0x7e, 0xf5, 0x1d, + 0x70, 0x3c, 0x50, 0xa9, 0x6d, 0x35, 0xf5, 0x50, 0x36, 0xa2, 0x14, 0xd0, 0x34, 0x52, 0x19, 0x95, + 0x55, 0x38, 0x30, 0xb7, 0x71, 0x70, 0x22, 0xad, 0x7c, 0xb0, 0xa5, 0x88, 0x4e, 0x78, 0x0c, 0xce, + 0x5d, 0xfe, 0x9f, 0x2c, 0x64, 0x14, 0xfc, 0x9e, 0x2e, 0x76, 0x5c, 0x74, 0x16, 0x92, 0xb8, 0xb9, + 0x6b, 0x0e, 0x4a, 0x15, 0x91, 0xce, 0xcd, 0x73, 0xba, 0x7a, 0x73, 0xd7, 0xbc, 0x3c, 0xa6, 0x50, + 0x5a, 0x74, 0x0e, 0x52, 0xdb, 0xed, 0x2e, 0xcf, 0x5f, 0xf4, 0x58, 0x8c, 0x20, 0xd3, 0x45, 0x42, + 0x74, 0x79, 0x4c, 0x61, 0xd4, 0xe4, 0x55, 0xf4, 0x26, 0xd3, 0xc4, 0xc1, 0xaf, 0x5a, 0x32, 0xb6, + 0xe9, 0xab, 0x08, 0x2d, 0xaa, 0x02, 0xe8, 0x86, 0xee, 0xaa, 0x34, 0xb6, 0xe7, 0x1e, 0xe2, 0xdd, + 0xc3, 0x39, 0x75, 0x97, 0x66, 0x03, 0x2e, 0x8f, 0x29, 0x39, 0x5d, 0x3c, 0x90, 0xe6, 0xbe, 0xa7, + 0x8b, 0xed, 0x7d, 0xee, 0x18, 0x0e, 0x6d, 0xee, 0x3b, 0x08, 0x11, 0x69, 0x2e, 0xa5, 0x46, 0x75, + 0xc8, 0xd3, 0x4f, 0x56, 0xd9, 0x24, 0xe6, 0xb7, 0x6a, 0xca, 0xc3, 0x98, 0xab, 0x84, 0x94, 0xce, + 0xeb, 0xcb, 0x63, 0x0a, 0x6c, 0x79, 0x4f, 0xc4, 0x52, 0xb2, 0x5b, 0x97, 0xdc, 0x3d, 0x7e, 0x97, + 0xe0, 0xec, 0x30, 0x0c, 0x7a, 0xf5, 0xd2, 0xc6, 0xde, 0xe5, 0x31, 0x25, 0xd3, 0x64, 0x3f, 0x49, + 0xff, 0x5b, 0xb8, 0xad, 0x5f, 0xc7, 0x36, 0xe1, 0xcf, 0x1d, 0xdc, 0xff, 0x45, 0x46, 0x49, 0x11, + 0x72, 0x2d, 0xf1, 0x40, 0xac, 0x2d, 0x36, 0x5a, 0xbc, 0x1b, 0xd0, 0x6f, 0xac, 0x43, 0xe3, 0x6c, + 0xb4, 0x44, 0x27, 0xb2, 0x98, 0xff, 0x46, 0x4f, 0x78, 0x9e, 0x6b, 0xbe, 0xdf, 0x59, 0x0c, 0x75, + 0x80, 0xe5, 0x30, 0xc6, 0x84, 0x07, 0x8b, 0x56, 0xa1, 0xd8, 0xd6, 0x1d, 0x57, 0x75, 0x0c, 0xcd, + 0x72, 0x76, 0x4d, 0xd7, 0xa1, 0xc9, 0x80, 0xfc, 0xd9, 0xfb, 0x86, 0x21, 0x2c, 0xeb, 0x8e, 0xdb, + 0x10, 0xc4, 0x97, 0xc7, 0x94, 0xf1, 0x76, 0xb0, 0x80, 0xe0, 0x99, 0xdb, 0xdb, 0xd8, 0xf6, 0x00, + 0x69, 0xd2, 0xe0, 0x00, 0xbc, 0x35, 0x42, 0x2d, 0xf8, 0x09, 0x9e, 0x19, 0x2c, 0x40, 0x3f, 0x0c, + 0x93, 0x6d, 0x53, 0x6b, 0x79, 0x70, 0x6a, 0x73, 0xb7, 0x6b, 0x5c, 0xa3, 0x19, 0x86, 0xfc, 0xd9, + 0x53, 0x43, 0x1b, 0x69, 0x6a, 0x2d, 0x01, 0x51, 0x23, 0x0c, 0x97, 0xc7, 0x94, 0x89, 0x76, 0x6f, + 0x21, 0x7a, 0x17, 0x4c, 0x69, 0x96, 0xd5, 0xde, 0xef, 0x45, 0x2f, 0x51, 0xf4, 0xd3, 0xc3, 0xd0, + 0x2b, 0x84, 0xa7, 0x17, 0x1e, 0x69, 0x7d, 0xa5, 0x68, 0x03, 0x24, 0xcb, 0xc6, 0xf4, 0x1b, 0x1b, + 0x8b, 0xbb, 0x30, 0xf4, 0xa2, 0xac, 0xfc, 0xd9, 0x13, 0xc3, 0xb0, 0xd7, 0x19, 0xbd, 0xf0, 0x78, + 0x2e, 0x8f, 0x29, 0x25, 0x2b, 0x5c, 0xc4, 0x50, 0xcd, 0x26, 0xa6, 0x97, 0x39, 0x71, 0xd4, 0x89, + 0x28, 0x54, 0x4a, 0x1f, 0x46, 0x0d, 0x15, 0x55, 0x33, 0xfc, 0x8c, 0x1c, 0xbf, 0x69, 0xe5, 0x04, + 0xe4, 0x03, 0x86, 0x05, 0x4d, 0x43, 0x86, 0x9f, 0x19, 0x10, 0x67, 0xeb, 0xf8, 0xa3, 0x5c, 0x84, + 0x42, 0xd0, 0x98, 0xc8, 0x1f, 0x88, 0x79, 0x9c, 0xf4, 0xd3, 0xf7, 0xe9, 0x70, 0x4a, 0x31, 0xe7, + 0x67, 0x0b, 0xef, 0x11, 0xab, 0x88, 0xa8, 0x67, 0xbb, 0x4c, 0x05, 0x5a, 0xc8, 0x17, 0x31, 0x34, + 0x0b, 0x79, 0xeb, 0xac, 0xe5, 0x91, 0x24, 0x28, 0x09, 0x58, 0x67, 0x2d, 0x41, 0x70, 0x37, 0x14, + 0x48, 0x4f, 0xd5, 0xa0, 0xb7, 0x91, 0x53, 0xf2, 0xa4, 0x8c, 0x93, 0xc8, 0xff, 0x3a, 0x0e, 0x52, + 0xaf, 0x01, 0xf2, 0x72, 0x8d, 0xb1, 0x43, 0xe7, 0x1a, 0x8f, 0xf5, 0x66, 0x39, 0xfd, 0xc4, 0xe6, + 0x32, 0x48, 0x7e, 0x7e, 0x8e, 0x2d, 0x04, 0xc3, 0xbd, 0xa7, 0x1e, 0x37, 0x4f, 0x29, 0x35, 0x7b, + 0xfc, 0xbe, 0x8b, 0xa1, 0x3d, 0x19, 0x71, 0x55, 0x77, 0xef, 0x10, 0x7b, 0xfe, 0xc2, 0xa6, 0xd5, + 0xd2, 0x5c, 0x2c, 0xf2, 0x25, 0x81, 0xed, 0x99, 0xfb, 0xa1, 0xa4, 0x59, 0x96, 0xea, 0xb8, 0x9a, + 0x8b, 0xf9, 0xb2, 0x9e, 0x62, 0x69, 0x43, 0xcd, 0xb2, 0x1a, 0xa4, 0x94, 0x2d, 0xeb, 0xf7, 0x41, + 0x91, 0xd8, 0x64, 0x5d, 0x6b, 0xab, 0x3c, 0x7b, 0x90, 0x66, 0xab, 0x3f, 0x2f, 0xbd, 0x4c, 0x0b, + 0xe5, 0x96, 0x37, 0xe2, 0xd4, 0x1e, 0x7b, 0xe1, 0x57, 0x2c, 0x10, 0x7e, 0x21, 0x7e, 0x27, 0x01, + 0x93, 0x8f, 0xb8, 0xc6, 0x61, 0x70, 0xd6, 0x77, 0x8a, 0x86, 0x6a, 0xd7, 0x59, 0x22, 0x24, 0xab, + 0xb0, 0x07, 0xf9, 0xbd, 0x71, 0x98, 0xe8, 0xb3, 0xdc, 0x03, 0xd3, 0xe1, 0x7e, 0xdc, 0x19, 0x3f, + 0x54, 0xdc, 0xf9, 0x4c, 0x38, 0xdd, 0x1b, 0x58, 0xf9, 0x8e, 0xf7, 0x09, 0x99, 0xd9, 0x4d, 0xa2, + 0xd0, 0x1c, 0x24, 0x90, 0x11, 0xa6, 0x6a, 0xbe, 0x09, 0x53, 0x5b, 0xfb, 0x2f, 0x69, 0x86, 0xab, + 0x1b, 0x58, 0xed, 0x1b, 0xb5, 0xfe, 0xa5, 0x74, 0x45, 0x77, 0xb6, 0xf0, 0xae, 0x76, 0x5d, 0x37, + 0x45, 0xb3, 0x26, 0x3d, 0x7e, 0x3f, 0xe9, 0x2b, 0x2b, 0x50, 0x0c, 0x2f, 0x3d, 0xa8, 0x08, 0x71, + 0x77, 0x8f, 0xf7, 0x3f, 0xee, 0xee, 0xa1, 0x87, 0x79, 0x7e, 0x28, 0x4e, 0xf3, 0x43, 0xfd, 0x2f, + 0xe2, 0x7c, 0x7e, 0x72, 0x48, 0x96, 0xbd, 0xd9, 0xe0, 0x2d, 0x47, 0xbd, 0xa8, 0xf2, 0x29, 0x28, + 0xf5, 0xac, 0x37, 0xc3, 0xb2, 0x85, 0x72, 0x09, 0xc6, 0x43, 0x8b, 0x8b, 0x7c, 0x04, 0xa6, 0x06, + 0xad, 0x15, 0xf2, 0xae, 0x57, 0x1e, 0xb2, 0xf9, 0xe8, 0x1c, 0x64, 0xbd, 0xc5, 0x62, 0x40, 0x76, + 0x82, 0xf6, 0x42, 0x10, 0x2b, 0x1e, 0x69, 0x28, 0xc9, 0x1d, 0x0f, 0x25, 0xb9, 0xe5, 0x77, 0xc3, + 0xf4, 0xb0, 0x85, 0xa0, 0xa7, 0x1b, 0x49, 0x4f, 0x0b, 0x8f, 0x40, 0x9a, 0xdf, 0xd8, 0x16, 0xa7, + 0xdb, 0x3a, 0xfc, 0x89, 0x68, 0x27, 0x5b, 0x14, 0x12, 0x6c, 0xb7, 0x87, 0x3e, 0xc8, 0x2a, 0x1c, + 0x1b, 0xba, 0x18, 0x0c, 0xdf, 0x20, 0x62, 0x40, 0x7c, 0x83, 0xa8, 0x29, 0x9a, 0xe3, 0xd0, 0xbe, + 0x8a, 0x43, 0x10, 0xec, 0x49, 0xfe, 0x70, 0x02, 0x8e, 0x0c, 0x5e, 0x12, 0xd0, 0x1c, 0x14, 0x88, + 0xdf, 0xed, 0x86, 0x5d, 0x74, 0xe8, 0x68, 0x7b, 0x1b, 0xdc, 0x3f, 0xe7, 0x09, 0xf6, 0xb8, 0x97, + 0x60, 0x47, 0x9b, 0x30, 0xd1, 0x36, 0x9b, 0x5a, 0x5b, 0x0d, 0x68, 0x3c, 0x57, 0xf6, 0x7b, 0xfa, + 0x84, 0x5d, 0x67, 0xf7, 0x38, 0xb7, 0xfa, 0x94, 0xbe, 0x44, 0x31, 0x96, 0x3d, 0xcd, 0x47, 0x8b, + 0x90, 0xef, 0xf8, 0x8a, 0x7c, 0x08, 0x65, 0x0f, 0xb2, 0x05, 0x86, 0x24, 0x35, 0x70, 0x3b, 0x28, + 0x7d, 0x68, 0x13, 0x3d, 0x6c, 0x67, 0x25, 0x33, 0x74, 0x67, 0x65, 0xd0, 0x36, 0x46, 0x76, 0xf0, + 0x36, 0xc6, 0xfb, 0x82, 0x43, 0x13, 0x5a, 0x44, 0xfb, 0x77, 0x36, 0x50, 0x03, 0xa6, 0x38, 0x7f, + 0x2b, 0x24, 0xfb, 0xf8, 0xa8, 0x86, 0x06, 0x09, 0xf6, 0xe1, 0x62, 0x4f, 0xdc, 0x9e, 0xd8, 0x85, + 0x2d, 0x4d, 0x06, 0x6c, 0xe9, 0xff, 0x63, 0x43, 0xf1, 0x6f, 0x73, 0x90, 0x55, 0xb0, 0x63, 0x91, + 0x85, 0x13, 0x55, 0x21, 0x87, 0xf7, 0x9a, 0xd8, 0x72, 0xfd, 0xed, 0xcb, 0x41, 0xc1, 0x00, 0xa3, + 0xae, 0x0b, 0x4a, 0xe2, 0x89, 0x7b, 0x6c, 0xe8, 0x51, 0x1e, 0x6c, 0x0d, 0x8f, 0x9b, 0x38, 0x7b, + 0x30, 0xda, 0x3a, 0x2f, 0xa2, 0xad, 0xc4, 0x50, 0xe7, 0x9b, 0x71, 0xf5, 0x84, 0x5b, 0x8f, 0xf2, + 0x70, 0x2b, 0x19, 0xf1, 0xb2, 0x50, 0xbc, 0x55, 0x0b, 0xc5, 0x5b, 0xe9, 0x88, 0x6e, 0x0e, 0x09, + 0xb8, 0xce, 0x8b, 0x80, 0x2b, 0x13, 0xd1, 0xe2, 0x9e, 0x88, 0xeb, 0x62, 0x38, 0xe2, 0xca, 0x0e, + 0x31, 0x20, 0x82, 0x7b, 0x68, 0xc8, 0xf5, 0x54, 0x20, 0xe4, 0xca, 0x0d, 0x8d, 0x77, 0x18, 0xc8, + 0x80, 0x98, 0xab, 0x16, 0x8a, 0xb9, 0x20, 0x42, 0x06, 0x43, 0x82, 0xae, 0x1f, 0x0a, 0x06, 0x5d, + 0xf9, 0xa1, 0x71, 0x1b, 0x1f, 0xef, 0x41, 0x51, 0xd7, 0x93, 0x5e, 0xd4, 0x55, 0x18, 0x1a, 0x36, + 0xf2, 0x3e, 0xf4, 0x86, 0x5d, 0x6b, 0x7d, 0x61, 0xd7, 0x38, 0xff, 0x13, 0x09, 0xc3, 0x20, 0x22, + 0xe2, 0xae, 0xb5, 0xbe, 0xb8, 0xab, 0x18, 0x01, 0x18, 0x11, 0x78, 0xfd, 0xc8, 0xe0, 0xc0, 0x6b, + 0x78, 0x68, 0xc4, 0x9b, 0x39, 0x5a, 0xe4, 0xa5, 0x0e, 0x89, 0xbc, 0x58, 0x74, 0xf4, 0xc0, 0x50, + 0xf8, 0x91, 0x43, 0xaf, 0xcd, 0x01, 0xa1, 0x17, 0x0b, 0x92, 0x4e, 0x0e, 0x05, 0x1f, 0x21, 0xf6, + 0xda, 0x1c, 0x10, 0x7b, 0xa1, 0x48, 0xd8, 0xc3, 0x04, 0x5f, 0x29, 0x29, 0x2d, 0x9f, 0x22, 0xae, + 0x6f, 0x8f, 0x9d, 0x22, 0xfe, 0x03, 0xb6, 0x6d, 0xd3, 0x16, 0x27, 0x6e, 0xe9, 0x83, 0x7c, 0x92, + 0x38, 0xe3, 0xbe, 0x4d, 0x3a, 0x20, 0x50, 0xa3, 0x7e, 0x5a, 0xc0, 0x0e, 0xc9, 0x5f, 0x8c, 0xf9, + 0xbc, 0xd4, 0x87, 0x0d, 0x3a, 0xf2, 0x39, 0xee, 0xc8, 0x07, 0xc2, 0xb7, 0x78, 0x38, 0x7c, 0x9b, + 0x85, 0x3c, 0xf1, 0xbf, 0x7a, 0x22, 0x33, 0xcd, 0xf2, 0x22, 0x33, 0x71, 0xd4, 0x80, 0x05, 0x79, + 0x7c, 0x59, 0x61, 0x3b, 0x3c, 0x25, 0xef, 0xd8, 0x05, 0x8b, 0x29, 0xd0, 0x43, 0x30, 0x19, 0xa0, + 0xf5, 0xfc, 0x3a, 0x16, 0xa6, 0x48, 0x1e, 0x75, 0x85, 0x3b, 0x78, 0xff, 0x2c, 0xe6, 0x4b, 0xc8, + 0x0f, 0xe9, 0x06, 0x45, 0x5f, 0xb1, 0x37, 0x28, 0xfa, 0x8a, 0xdf, 0x76, 0xf4, 0x15, 0xf4, 0x53, + 0x13, 0x61, 0x3f, 0xf5, 0x7f, 0xc4, 0xfc, 0x31, 0xf1, 0x62, 0xa9, 0xa6, 0xd9, 0xc2, 0xdc, 0x73, + 0xa4, 0xbf, 0x89, 0x53, 0xd1, 0x36, 0x77, 0xb8, 0x7f, 0x48, 0x7e, 0x12, 0x2a, 0x6f, 0xe1, 0xc8, + 0xf1, 0x75, 0xc1, 0x73, 0x3a, 0x53, 0xc1, 0x73, 0xc1, 0xfc, 0xb0, 0x6c, 0xda, 0x3f, 0x2c, 0xeb, + 0x7d, 0x0b, 0x97, 0x09, 0x7c, 0x0b, 0x87, 0x9e, 0x80, 0x1c, 0xcd, 0x88, 0xaa, 0xa6, 0x25, 0xfe, + 0xa0, 0xc6, 0xf1, 0xe1, 0x07, 0x65, 0x1d, 0x7a, 0x84, 0x8f, 0x1d, 0xae, 0xf5, 0x3d, 0x86, 0x5c, + 0xc8, 0x63, 0xb8, 0x13, 0x72, 0xa4, 0xf5, 0xec, 0x62, 0x68, 0xe0, 0x1f, 0x52, 0x8a, 0x02, 0xf9, + 0x5d, 0x80, 0xfa, 0x17, 0x09, 0x74, 0x19, 0xd2, 0xf8, 0x3a, 0xbd, 0x65, 0x8f, 0x1d, 0x40, 0x3c, + 0xd2, 0xef, 0x9a, 0x92, 0xea, 0xea, 0x34, 0x11, 0xf2, 0xb7, 0x5f, 0x9d, 0x95, 0x18, 0xf5, 0x83, + 0xde, 0x77, 0x03, 0x0a, 0xe7, 0x97, 0xff, 0x63, 0x9c, 0x04, 0x30, 0xa1, 0x05, 0x64, 0xa0, 0x6c, + 0x07, 0x6d, 0x1d, 0x8e, 0x26, 0xef, 0x19, 0x80, 0x1d, 0xcd, 0x51, 0x6f, 0x68, 0x86, 0x8b, 0x5b, + 0x5c, 0xe8, 0x81, 0x12, 0x54, 0x86, 0x2c, 0x79, 0xea, 0x3a, 0xb8, 0xc5, 0xc3, 0x68, 0xef, 0x39, + 0xd0, 0xcf, 0xcc, 0xf7, 0xd7, 0xcf, 0xb0, 0x94, 0xb3, 0x3d, 0x52, 0x0e, 0x04, 0x17, 0xb9, 0x60, + 0x70, 0xc1, 0x0e, 0x0c, 0xf3, 0x73, 0x8b, 0xc0, 0xda, 0x26, 0x9e, 0xd1, 0x3d, 0x30, 0xde, 0xc1, + 0x1d, 0xcb, 0x34, 0xdb, 0x2a, 0x33, 0x37, 0xec, 0x06, 0xf8, 0x02, 0x2f, 0xac, 0x53, 0xab, 0xf3, + 0x93, 0x71, 0x7f, 0xfe, 0xf9, 0x41, 0xe4, 0x0f, 0x9c, 0x80, 0xe5, 0x9f, 0xa6, 0x99, 0xa5, 0xb0, + 0x8b, 0x80, 0x1a, 0xc1, 0xd3, 0x24, 0x5d, 0x6a, 0x16, 0x84, 0x42, 0x8f, 0x6a, 0x3f, 0xfc, 0x53, + 0x27, 0xac, 0xd8, 0x41, 0xcf, 0xc3, 0xd1, 0x1e, 0xdb, 0xe6, 0x41, 0xc7, 0x47, 0x35, 0x71, 0x77, + 0x84, 0x4d, 0x9c, 0x80, 0xf6, 0x85, 0x95, 0xf8, 0x3e, 0x67, 0xdd, 0x12, 0x14, 0xc3, 0x1e, 0xcf, + 0xc0, 0xe1, 0xa7, 0x7f, 0x71, 0xc4, 0xd5, 0x74, 0x43, 0x0d, 0xa5, 0x83, 0x0a, 0xac, 0x90, 0x27, + 0x99, 0xd6, 0xe1, 0x8e, 0x81, 0x9e, 0x0f, 0x7a, 0x1c, 0x72, 0xbe, 0xd3, 0xc4, 0xa4, 0x7a, 0x40, + 0xba, 0xc0, 0xa7, 0x95, 0x7f, 0x3b, 0xe6, 0x43, 0x86, 0x13, 0x10, 0x75, 0x48, 0xb3, 0xe3, 0x70, + 0xfc, 0x90, 0xcd, 0x43, 0xa3, 0xf9, 0x4c, 0xf3, 0xec, 0xac, 0x9c, 0xc2, 0x99, 0xe5, 0x77, 0x41, + 0x9a, 0x95, 0xa0, 0x3c, 0x64, 0xfc, 0x8b, 0x70, 0x01, 0xd2, 0x95, 0x5a, 0xad, 0xbe, 0xbe, 0x21, + 0xc5, 0x50, 0x0e, 0x52, 0x95, 0xea, 0x9a, 0xb2, 0x21, 0xc5, 0x49, 0xb1, 0x52, 0xbf, 0x52, 0xaf, + 0x6d, 0x48, 0x09, 0x34, 0x01, 0xe3, 0xec, 0xb7, 0x7a, 0x71, 0x4d, 0x59, 0xa9, 0x6c, 0x48, 0xc9, + 0x40, 0x51, 0xa3, 0xbe, 0xba, 0x58, 0x57, 0xa4, 0x94, 0xfc, 0x08, 0x1c, 0x1b, 0xea, 0x65, 0xf9, + 0xd9, 0x85, 0x58, 0x20, 0xbb, 0x20, 0x7f, 0x38, 0x0e, 0xe5, 0xe1, 0xae, 0x13, 0xba, 0xd2, 0xd3, + 0xf1, 0xb3, 0x87, 0xf0, 0xbb, 0x7a, 0x7a, 0x8f, 0xee, 0x83, 0xa2, 0x8d, 0xb7, 0xb1, 0xdb, 0xdc, + 0x65, 0xae, 0x1c, 0x5b, 0x32, 0xc7, 0x95, 0x71, 0x5e, 0x4a, 0x99, 0x1c, 0x46, 0xf6, 0x22, 0x6e, + 0xba, 0x2a, 0xb3, 0x45, 0x0e, 0xff, 0xd3, 0x87, 0xe3, 0xac, 0xb4, 0xc1, 0x0a, 0xe5, 0x77, 0x1f, + 0x4a, 0x96, 0x39, 0x48, 0x29, 0xf5, 0x0d, 0xe5, 0x79, 0x29, 0x81, 0x10, 0x14, 0xe9, 0x4f, 0xb5, + 0xb1, 0x5a, 0x59, 0x6f, 0x5c, 0x5e, 0x23, 0xb2, 0x9c, 0x84, 0x92, 0x90, 0xa5, 0x28, 0x4c, 0xc9, + 0x0f, 0xc0, 0xd1, 0x21, 0x7e, 0xdf, 0x80, 0xf3, 0x89, 0x1f, 0x8f, 0x05, 0xa9, 0xc3, 0x31, 0xff, + 0x1a, 0xa4, 0x1d, 0x57, 0x73, 0xbb, 0x0e, 0x17, 0xe2, 0xe3, 0xa3, 0x3a, 0x82, 0xf3, 0xe2, 0x47, + 0x83, 0xb2, 0x2b, 0x1c, 0x46, 0x3e, 0x07, 0xc5, 0x70, 0xcd, 0x70, 0x19, 0xf8, 0x4a, 0x14, 0x97, + 0x9f, 0x07, 0x08, 0xe4, 0x23, 0xbd, 0x93, 0x5e, 0xb1, 0xe0, 0x49, 0xaf, 0x73, 0x90, 0xba, 0x6e, + 0x32, 0x9b, 0x31, 0x78, 0xe2, 0x5c, 0x35, 0x5d, 0x1c, 0x48, 0x3e, 0x30, 0x6a, 0x59, 0x07, 0xd4, + 0x9f, 0x13, 0x1a, 0xf2, 0x8a, 0xa7, 0xc2, 0xaf, 0xb8, 0x7b, 0x68, 0x76, 0x69, 0xf0, 0xab, 0x5e, + 0x82, 0x14, 0xb5, 0x36, 0x03, 0x3f, 0xfd, 0x79, 0x27, 0x80, 0xe6, 0xba, 0xb6, 0xbe, 0xd5, 0xf5, + 0x5f, 0x30, 0x3b, 0xd8, 0x5a, 0x55, 0x04, 0x5d, 0xf5, 0x4e, 0x6e, 0xb6, 0xa6, 0x7c, 0xd6, 0x80, + 0xe9, 0x0a, 0x00, 0xca, 0xab, 0x50, 0x0c, 0xf3, 0x0e, 0xfe, 0x94, 0xc9, 0xbf, 0x4a, 0x20, 0x27, + 0xdc, 0x27, 0xcf, 0xf9, 0xe2, 0xd7, 0x7b, 0xd0, 0x07, 0xf9, 0x66, 0x0c, 0xb2, 0x1b, 0x7b, 0x5c, + 0x8f, 0x0f, 0x38, 0x6c, 0xe9, 0x7f, 0xcf, 0xe5, 0x25, 0x0b, 0x59, 0x3e, 0x36, 0xe1, 0x65, 0x79, + 0x7f, 0xc8, 0x9b, 0xa9, 0xc9, 0x51, 0xa3, 0x5d, 0x91, 0xed, 0xe6, 0xd6, 0xe9, 0xc2, 0x68, 0xdf, + 0x4e, 0x4c, 0x41, 0x2a, 0xf8, 0xdd, 0x03, 0x7b, 0x90, 0x5b, 0x81, 0x63, 0x09, 0x6c, 0xd9, 0x08, + 0x7e, 0x64, 0x11, 0x3b, 0xf4, 0x47, 0x16, 0xde, 0x5b, 0xe2, 0xc1, 0xb7, 0x5c, 0x87, 0xac, 0x50, + 0x0a, 0xf4, 0xf6, 0xe0, 0x01, 0x14, 0xb1, 0x47, 0x33, 0x74, 0xf1, 0xe4, 0xf0, 0x81, 0xf3, 0x27, + 0xa7, 0x61, 0x82, 0x1f, 0xc5, 0xf3, 0xe3, 0x0a, 0x7e, 0x55, 0x7f, 0x89, 0x55, 0x2c, 0x8b, 0xa0, + 0x42, 0xfe, 0xa5, 0x18, 0x48, 0xbd, 0x5a, 0xf9, 0x56, 0x36, 0x80, 0x18, 0x45, 0xa2, 0xfd, 0x81, + 0x3b, 0xb8, 0xd9, 0xc8, 0x8f, 0x93, 0x52, 0xff, 0x16, 0xee, 0xf7, 0xc6, 0x21, 0x1f, 0xc8, 0xe9, + 0xa1, 0xc7, 0x42, 0x47, 0x43, 0xe7, 0x0e, 0xca, 0xff, 0x05, 0xce, 0x86, 0x86, 0x3a, 0x16, 0x3f, + 0x7c, 0xc7, 0xde, 0xf8, 0xc3, 0xfb, 0x83, 0xbf, 0x02, 0x4a, 0x0d, 0xf9, 0x0a, 0xe8, 0xc7, 0x63, + 0x90, 0xf5, 0x96, 0xee, 0xc3, 0x66, 0xf3, 0x8f, 0x40, 0x9a, 0xaf, 0x4e, 0x2c, 0x9d, 0xcf, 0x9f, + 0x06, 0xe6, 0x42, 0xcb, 0x90, 0x15, 0x7f, 0xe3, 0x86, 0x07, 0xa2, 0xde, 0xf3, 0xe9, 0x27, 0x21, + 0x1f, 0xd8, 0x58, 0x21, 0x76, 0x62, 0xb5, 0xfe, 0xac, 0x34, 0x56, 0xce, 0xdc, 0xbc, 0x35, 0x97, + 0x58, 0xc5, 0x37, 0xc8, 0x0c, 0x53, 0xea, 0xb5, 0xcb, 0xf5, 0xda, 0x33, 0x52, 0xac, 0x9c, 0xbf, + 0x79, 0x6b, 0x2e, 0xa3, 0x60, 0x9a, 0xbe, 0x3a, 0xfd, 0x0c, 0x94, 0x7a, 0x06, 0x26, 0x6c, 0xdf, + 0x11, 0x14, 0x17, 0x37, 0xd7, 0x97, 0x97, 0x6a, 0x95, 0x8d, 0xba, 0xca, 0x8e, 0xd9, 0xa1, 0xa3, + 0x30, 0xb9, 0xbc, 0x74, 0xe9, 0xf2, 0x86, 0x5a, 0x5b, 0x5e, 0xaa, 0xaf, 0x6e, 0xa8, 0x95, 0x8d, + 0x8d, 0x4a, 0xed, 0x19, 0x29, 0x7e, 0xf6, 0x7b, 0x00, 0xa5, 0x4a, 0xb5, 0xb6, 0x44, 0xd6, 0x67, + 0x9d, 0x5f, 0xa3, 0x5e, 0x83, 0x24, 0x4d, 0x05, 0x1c, 0x78, 0x54, 0xa4, 0x7c, 0x70, 0x6e, 0x13, + 0x5d, 0x84, 0x14, 0xcd, 0x12, 0xa0, 0x83, 0xcf, 0x8e, 0x94, 0x23, 0x92, 0x9d, 0xa4, 0x31, 0x74, + 0x3a, 0x1d, 0x78, 0x98, 0xa4, 0x7c, 0x70, 0xee, 0x13, 0x29, 0x90, 0xf3, 0xa3, 0x8c, 0xe8, 0xc3, + 0x15, 0xe5, 0x11, 0xac, 0x23, 0x5a, 0x86, 0x8c, 0x08, 0x0c, 0xa3, 0x8e, 0x7b, 0x94, 0x23, 0x93, + 0x93, 0x44, 0x5c, 0x2c, 0x80, 0x3f, 0xf8, 0xec, 0x4a, 0x39, 0x22, 0xd3, 0x8a, 0x96, 0xbc, 0xc3, + 0xf9, 0x11, 0x47, 0x38, 0xca, 0x51, 0xc9, 0x46, 0x22, 0x34, 0x3f, 0x35, 0x12, 0x7d, 0x22, 0xa7, + 0x3c, 0x42, 0x12, 0x19, 0x6d, 0x02, 0x04, 0xc2, 0xf5, 0x11, 0x8e, 0xda, 0x94, 0x47, 0x49, 0x0e, + 0xa3, 0x35, 0xc8, 0x7a, 0xd1, 0x53, 0xe4, 0xc1, 0x97, 0x72, 0x74, 0x96, 0x16, 0xbd, 0x0b, 0xc6, + 0xc3, 0x51, 0xc3, 0x68, 0xc7, 0x59, 0xca, 0x23, 0xa6, 0x5f, 0x09, 0x7e, 0x38, 0x84, 0x18, 0xed, + 0x78, 0x4b, 0x79, 0xc4, 0x6c, 0x2c, 0x7a, 0x11, 0x26, 0xfa, 0x5d, 0xfc, 0xd1, 0x4f, 0xbb, 0x94, + 0x0f, 0x91, 0x9f, 0x45, 0x1d, 0x40, 0x03, 0x42, 0x83, 0x43, 0x1c, 0x7e, 0x29, 0x1f, 0x26, 0x5d, + 0x8b, 0x5a, 0x50, 0xea, 0xf5, 0xb7, 0x47, 0x3d, 0x0c, 0x53, 0x1e, 0x39, 0x75, 0xcb, 0xde, 0x12, + 0xf6, 0xd3, 0x47, 0x3d, 0x1c, 0x53, 0x1e, 0x39, 0x93, 0x5b, 0xad, 0x0c, 0x3d, 0xdf, 0x78, 0xe2, + 0xc0, 0xf3, 0x8d, 0xfe, 0x89, 0x45, 0xef, 0x4c, 0xe3, 0xd7, 0x1e, 0x86, 0x7b, 0xf9, 0x25, 0x03, + 0x8e, 0xab, 0x5d, 0xd3, 0x8d, 0x1d, 0xef, 0xd6, 0x08, 0xfe, 0xcc, 0x0f, 0x37, 0x1e, 0xe1, 0x17, + 0x19, 0x88, 0xd2, 0x88, 0xbb, 0x23, 0x86, 0xde, 0xa3, 0x15, 0x75, 0x12, 0x39, 0xfa, 0xe8, 0xe2, + 0x01, 0xf7, 0x52, 0x44, 0xdc, 0x7e, 0x31, 0xe8, 0xb8, 0xf4, 0xc1, 0x87, 0x30, 0x0f, 0x3a, 0xef, + 0x29, 0x7f, 0x28, 0x06, 0xc5, 0xcb, 0xba, 0xe3, 0x9a, 0xb6, 0xde, 0xd4, 0xda, 0x74, 0xc5, 0xb8, + 0x30, 0xea, 0xc7, 0x1f, 0xd5, 0x1c, 0x71, 0x46, 0xf8, 0x65, 0x17, 0xfc, 0x60, 0xc8, 0x22, 0xa4, + 0xaf, 0x6b, 0x6d, 0xf6, 0xe9, 0x45, 0xf0, 0x3a, 0x9b, 0x5e, 0x99, 0x07, 0xbc, 0xa4, 0x20, 0x0a, + 0xe3, 0x95, 0xbf, 0x40, 0x4f, 0x72, 0x77, 0x3a, 0xba, 0xc3, 0xfe, 0x0a, 0xb5, 0x8b, 0x1d, 0xb4, + 0x09, 0x49, 0x5b, 0x73, 0x79, 0x50, 0x53, 0xad, 0xf0, 0x2b, 0x2a, 0xee, 0x8f, 0xbe, 0x68, 0x62, + 0xbe, 0xef, 0x16, 0x0b, 0xf6, 0x32, 0x0a, 0x87, 0x7e, 0x04, 0xb2, 0x1d, 0x6d, 0x4f, 0xa5, 0xd0, + 0xf1, 0x37, 0x0a, 0x3a, 0xd3, 0xd1, 0xf6, 0x48, 0xab, 0x91, 0x0e, 0x25, 0x82, 0xde, 0xdc, 0xd5, + 0x8c, 0x1d, 0xcc, 0x5e, 0x92, 0x78, 0xa3, 0x5e, 0x32, 0xde, 0xd1, 0xf6, 0x6a, 0x14, 0x98, 0xbc, + 0x8a, 0x5f, 0x06, 0xf2, 0x3b, 0x31, 0x1e, 0xca, 0x52, 0xc9, 0x21, 0x0d, 0xa4, 0xa6, 0xf7, 0x44, + 0xdf, 0x2f, 0xd2, 0xfa, 0x27, 0x86, 0x0d, 0x4c, 0x8f, 0xdc, 0xd9, 0x91, 0xec, 0xaf, 0xbc, 0x2a, + 0x8e, 0x64, 0x97, 0x9a, 0x3d, 0xe3, 0x72, 0x05, 0xf2, 0x2c, 0x9b, 0xa6, 0x52, 0x17, 0x36, 0x1e, + 0xe9, 0xc2, 0x8e, 0x0b, 0x17, 0x96, 0x01, 0x02, 0xe3, 0x26, 0xf5, 0xbc, 0x0f, 0x9f, 0x8e, 0x41, + 0x7e, 0x31, 0x70, 0x7b, 0xd5, 0x34, 0x64, 0x3a, 0xa6, 0xa1, 0x5f, 0xc3, 0xb6, 0xb7, 0x2f, 0xc3, + 0x1e, 0x89, 0x9b, 0xc9, 0xfe, 0x0a, 0x91, 0xbb, 0x2f, 0x6e, 0x68, 0x10, 0xcf, 0x84, 0xeb, 0x06, + 0xde, 0x72, 0x74, 0x21, 0x72, 0x45, 0x3c, 0xa2, 0x53, 0x20, 0x39, 0xb8, 0xd9, 0xb5, 0x75, 0x77, + 0x5f, 0x6d, 0x9a, 0x86, 0xab, 0x35, 0x5d, 0x9e, 0x3d, 0x2d, 0x89, 0xf2, 0x1a, 0x2b, 0x26, 0x20, + 0x2d, 0xec, 0x6a, 0x7a, 0x9b, 0x1d, 0xfb, 0xca, 0x29, 0xe2, 0x91, 0x37, 0xf5, 0x0b, 0x99, 0x60, + 0x68, 0x58, 0x03, 0xc9, 0xb4, 0xb0, 0x1d, 0xfa, 0x14, 0x8e, 0xa9, 0xeb, 0xf4, 0xd7, 0x3e, 0xf7, + 0xd0, 0x14, 0x17, 0x38, 0xdf, 0x80, 0x67, 0x97, 0x35, 0x2b, 0x25, 0xc1, 0x21, 0xbe, 0x91, 0x7b, + 0x3e, 0xb4, 0x13, 0xd3, 0xdd, 0xf2, 0x3f, 0xc5, 0x9f, 0xea, 0x13, 0x6a, 0xc5, 0xd8, 0xaf, 0x4e, + 0xff, 0x9e, 0x0f, 0xed, 0x87, 0x8e, 0xcf, 0xe0, 0xfd, 0xe0, 0xb6, 0x0c, 0x85, 0x21, 0x1e, 0xfc, + 0x8b, 0x9a, 0xde, 0x16, 0x7f, 0x58, 0x4d, 0xe1, 0x4f, 0x68, 0xc1, 0x4b, 0xc3, 0xb0, 0x3f, 0x98, + 0x2e, 0x0f, 0xd3, 0x8d, 0xaa, 0x69, 0xb4, 0xc2, 0x19, 0x17, 0xb4, 0x01, 0x69, 0xd7, 0xbc, 0x86, + 0x0d, 0x2e, 0xa0, 0xea, 0xdb, 0x0e, 0xa1, 0xd8, 0xfd, 0xf7, 0xd2, 0x70, 0x2c, 0xb4, 0x03, 0x52, + 0x0b, 0xb7, 0xf1, 0x0e, 0xfb, 0x90, 0x6b, 0x57, 0xb3, 0x31, 0xfb, 0xb8, 0xf3, 0x70, 0xf8, 0xfd, + 0xd7, 0xd7, 0x94, 0x3c, 0xd4, 0x06, 0x05, 0x45, 0xeb, 0xe1, 0xbb, 0xd3, 0x32, 0x7c, 0x57, 0x7e, + 0x48, 0xff, 0x03, 0x5a, 0x19, 0x34, 0x5b, 0xa1, 0xbb, 0xd6, 0x4e, 0x81, 0xd4, 0x35, 0xb6, 0x4c, + 0x83, 0xfe, 0x0d, 0x24, 0x1e, 0x60, 0x65, 0xd9, 0xce, 0x9d, 0x57, 0xce, 0x77, 0xee, 0xd6, 0xa1, + 0xe8, 0x93, 0xd2, 0xd9, 0x93, 0x3b, 0xec, 0xec, 0x19, 0xf7, 0x00, 0x08, 0x09, 0x5a, 0x01, 0xf0, + 0xe7, 0xa7, 0xb7, 0xbb, 0x1f, 0x39, 0xd3, 0x83, 0x9d, 0x09, 0x00, 0xa0, 0x36, 0x4c, 0x76, 0x74, + 0x43, 0x75, 0x70, 0x7b, 0x5b, 0xe5, 0x92, 0x23, 0xb8, 0xf9, 0x37, 0x60, 0xa4, 0x27, 0x3a, 0xba, + 0xd1, 0xc0, 0xed, 0xed, 0x45, 0x0f, 0x16, 0xbd, 0x0d, 0x8e, 0xfb, 0xe2, 0x30, 0x0d, 0x75, 0xd7, + 0x6c, 0xb7, 0x54, 0x1b, 0x6f, 0xab, 0x4d, 0x7a, 0x2d, 0x52, 0x81, 0x0a, 0xf1, 0xa8, 0x47, 0xb2, + 0x66, 0x5c, 0x36, 0xdb, 0x2d, 0x05, 0x6f, 0xd7, 0x48, 0x35, 0xba, 0x07, 0x7c, 0x59, 0xa8, 0x7a, + 0xcb, 0x99, 0x1e, 0x9f, 0x4b, 0x9c, 0x4c, 0x2a, 0x05, 0xaf, 0x70, 0xa9, 0xe5, 0x2c, 0x64, 0xdf, + 0xf7, 0xca, 0xec, 0xd8, 0xb7, 0x5e, 0x99, 0x1d, 0x93, 0x2f, 0xd2, 0x4b, 0x3c, 0xf8, 0xa4, 0xc3, + 0x0e, 0x3a, 0x0f, 0x39, 0x4d, 0x3c, 0xb0, 0xcf, 0x44, 0x0e, 0x98, 0xb4, 0x3e, 0xa9, 0xfc, 0x4a, + 0x0c, 0xd2, 0x8b, 0x57, 0xd7, 0x35, 0xdd, 0x46, 0x75, 0x98, 0xf0, 0x95, 0x76, 0xd4, 0xf9, 0xef, + 0xeb, 0xb9, 0x30, 0x00, 0xf5, 0x61, 0x5f, 0xd4, 0x1e, 0x08, 0xd3, 0xfb, 0xad, 0x6d, 0xa0, 0xab, + 0x57, 0x20, 0xc3, 0x5a, 0xe8, 0xa0, 0xa7, 0x21, 0x65, 0x91, 0x1f, 0x3c, 0xfb, 0x3f, 0x33, 0x54, + 0xd1, 0x29, 0x7d, 0x50, 0x2d, 0x18, 0x9f, 0xfc, 0x97, 0x31, 0x80, 0xc5, 0xab, 0x57, 0x37, 0x6c, + 0xdd, 0x6a, 0x63, 0xf7, 0x8d, 0xea, 0xf2, 0x32, 0xdc, 0x11, 0xf8, 0x6e, 0xd3, 0x6e, 0x8e, 0xdc, + 0xed, 0x49, 0xff, 0xcb, 0x4d, 0xbb, 0x39, 0x10, 0xad, 0xe5, 0xb8, 0x1e, 0x5a, 0x62, 0x64, 0xb4, + 0x45, 0xc7, 0xed, 0x97, 0xe3, 0x73, 0x90, 0xf7, 0xbb, 0xee, 0xa0, 0x25, 0xc8, 0xba, 0xfc, 0x37, + 0x17, 0xa7, 0x3c, 0x5c, 0x9c, 0x82, 0x2d, 0x28, 0x52, 0x8f, 0x5d, 0xfe, 0x5f, 0x44, 0xaa, 0xfe, + 0x44, 0xf8, 0x6b, 0xa5, 0x48, 0xc4, 0xc2, 0x73, 0x0b, 0x9c, 0x78, 0x03, 0x2c, 0x30, 0xc7, 0x0a, + 0x88, 0xf5, 0x27, 0xe2, 0x30, 0xb9, 0x29, 0x26, 0xe9, 0x5f, 0x5b, 0x29, 0x6c, 0x42, 0x06, 0x1b, + 0xae, 0xad, 0x63, 0xb1, 0xd5, 0xf7, 0xf0, 0xb0, 0xc1, 0x1e, 0xd0, 0x17, 0xfa, 0x97, 0x81, 0x83, + 0x43, 0x2f, 0xb0, 0x02, 0x62, 0xf8, 0xad, 0x04, 0x4c, 0x0f, 0x63, 0x45, 0x27, 0xa0, 0xd4, 0xb4, + 0x31, 0x2d, 0x50, 0x43, 0xa9, 0xf0, 0xa2, 0x28, 0xe6, 0x4b, 0x8a, 0x02, 0xc4, 0x41, 0x23, 0x5a, + 0x45, 0x48, 0x6f, 0xcf, 0x23, 0x2b, 0xfa, 0x08, 0x74, 0x51, 0xc1, 0x50, 0x12, 0x67, 0xdb, 0xb7, + 0xb4, 0xb6, 0x66, 0x34, 0xf1, 0x6d, 0x68, 0x42, 0xff, 0x0a, 0x20, 0x0e, 0xcc, 0x57, 0x19, 0x26, + 0xba, 0x0a, 0x19, 0x01, 0x9f, 0x7c, 0x03, 0xe0, 0x05, 0x18, 0xba, 0x1b, 0x0a, 0xc1, 0x85, 0x81, + 0xfa, 0x29, 0x49, 0x25, 0x1f, 0x58, 0x17, 0xa2, 0x56, 0x9e, 0xf4, 0x81, 0x2b, 0x0f, 0x77, 0x05, + 0x7f, 0x33, 0x01, 0x13, 0x0a, 0x6e, 0xfd, 0x00, 0x0e, 0xdc, 0x0f, 0x03, 0xb0, 0x49, 0x4d, 0x8c, + 0xed, 0x6d, 0x8c, 0x5d, 0xbf, 0x91, 0xc8, 0x31, 0xbc, 0x45, 0xc7, 0x7d, 0xab, 0x46, 0xef, 0x5f, + 0xc5, 0xa1, 0x10, 0x1c, 0xbd, 0x1f, 0x80, 0x95, 0x0d, 0xad, 0xfa, 0x26, 0x8d, 0x9d, 0x3e, 0x3f, + 0x35, 0xcc, 0xa4, 0xf5, 0xe9, 0x75, 0x84, 0x2d, 0xfb, 0x50, 0x02, 0xd2, 0xfc, 0x28, 0xd8, 0x5a, + 0x9f, 0x8f, 0x1b, 0x3b, 0xe4, 0x47, 0xc0, 0x3d, 0x2e, 0xee, 0x7d, 0x50, 0x24, 0x21, 0x75, 0xe8, + 0x7c, 0x59, 0xec, 0xe4, 0x38, 0x0d, 0x87, 0xfd, 0xd3, 0xd0, 0x68, 0x16, 0xf2, 0x84, 0xcc, 0xb7, + 0xd9, 0x84, 0x06, 0x3a, 0xda, 0x5e, 0x9d, 0x95, 0xa0, 0x87, 0x00, 0xed, 0x7a, 0x89, 0x0f, 0xd5, + 0x17, 0x04, 0xa1, 0x9b, 0xf0, 0x6b, 0x04, 0xf9, 0x5d, 0x00, 0xa4, 0x15, 0x2a, 0xbb, 0xb9, 0x93, + 0x5f, 0xc3, 0x4a, 0x4a, 0x16, 0xe9, 0xed, 0x9d, 0x3f, 0xca, 0x3c, 0xe5, 0x9e, 0x60, 0x9b, 0xc7, + 0x2c, 0xcb, 0x87, 0x9b, 0x0c, 0xdf, 0x7d, 0x75, 0xb6, 0xbc, 0xaf, 0x75, 0xda, 0x0b, 0xf2, 0x00, + 0x48, 0x99, 0x7a, 0xce, 0xe1, 0x20, 0x7d, 0xe1, 0x5e, 0xa2, 0xc3, 0x37, 0xbf, 0xf9, 0x99, 0xd3, + 0xc7, 0x03, 0x78, 0x7b, 0x5e, 0x36, 0x8c, 0x0d, 0x85, 0xfc, 0xcb, 0x31, 0x40, 0xfe, 0xc2, 0xe2, + 0x9d, 0xfd, 0x5e, 0xa1, 0x27, 0x82, 0x85, 0x6f, 0x1f, 0x3b, 0x38, 0x66, 0xf0, 0xf9, 0x43, 0x31, + 0x43, 0x60, 0xe2, 0xbc, 0xdd, 0x37, 0xe3, 0xe2, 0x73, 0xef, 0x01, 0xf7, 0xb5, 0xce, 0xd7, 0x4c, + 0x3d, 0x04, 0x21, 0x98, 0xe8, 0x7c, 0x1c, 0x93, 0x5f, 0x8d, 0xc1, 0xb1, 0x3e, 0xad, 0xf3, 0x9a, + 0xdc, 0x04, 0x64, 0x07, 0x2a, 0xf9, 0x5f, 0xe2, 0x8f, 0xf1, 0x0f, 0x1b, 0x6f, 0x47, 0x89, 0x27, + 0xec, 0x3e, 0xd3, 0xfd, 0x26, 0xad, 0x47, 0xdc, 0xe0, 0xfc, 0x6e, 0x0c, 0xa6, 0x82, 0x2d, 0xf2, + 0xfa, 0xd6, 0x80, 0x42, 0xb0, 0x2d, 0xbc, 0x57, 0xf7, 0x8e, 0xd2, 0xab, 0x60, 0x87, 0x42, 0x20, + 0xa4, 0x2f, 0x42, 0xc3, 0x59, 0x5e, 0xee, 0x91, 0x91, 0xa5, 0xe4, 0xed, 0x39, 0x0c, 0x9a, 0xf2, + 0x6c, 0xb0, 0xde, 0x1f, 0x87, 0xe4, 0xba, 0x69, 0xb6, 0xd1, 0x8f, 0xc7, 0x60, 0xc2, 0x30, 0x5d, + 0x95, 0xcc, 0x0b, 0xdc, 0x52, 0x79, 0x62, 0x80, 0x59, 0xcd, 0xab, 0x87, 0x93, 0xde, 0xb7, 0x5f, + 0x9d, 0xed, 0x87, 0x1a, 0x74, 0xcd, 0x6e, 0xc9, 0x30, 0xdd, 0x2a, 0x25, 0xda, 0x60, 0xb9, 0x83, + 0x1b, 0x30, 0x1e, 0x7e, 0x3f, 0x33, 0xb5, 0xca, 0xa1, 0xdf, 0x3f, 0x1e, 0xf9, 0xee, 0xc2, 0x56, + 0xe0, 0xc5, 0xec, 0xb2, 0xcb, 0x3f, 0x25, 0x83, 0xfb, 0x3c, 0x48, 0x57, 0x7b, 0x4f, 0xa1, 0xd5, + 0x21, 0x73, 0xd8, 0x03, 0x6d, 0x41, 0x89, 0x73, 0xde, 0xd3, 0x9f, 0x8f, 0x01, 0xf8, 0x69, 0x18, + 0xf4, 0x20, 0x1c, 0xad, 0xae, 0xad, 0x2e, 0xaa, 0x8d, 0x8d, 0xca, 0xc6, 0x66, 0x23, 0x7c, 0x25, + 0xbb, 0xb8, 0x8f, 0xc4, 0xb1, 0x70, 0x53, 0xdf, 0xd6, 0x71, 0x0b, 0xdd, 0x0f, 0x53, 0x61, 0x6a, + 0xf2, 0x54, 0x5f, 0x94, 0x62, 0xe5, 0xc2, 0xcd, 0x5b, 0x73, 0x59, 0xe6, 0x7e, 0xe2, 0x16, 0x3a, + 0x09, 0x77, 0xf4, 0xd3, 0x2d, 0xad, 0x5e, 0x92, 0xe2, 0xe5, 0xf1, 0x9b, 0xb7, 0xe6, 0x72, 0x9e, + 0x9f, 0x8a, 0x64, 0x40, 0x41, 0x4a, 0x8e, 0x97, 0x28, 0xc3, 0xcd, 0x5b, 0x73, 0x69, 0x36, 0x2c, + 0xe5, 0xe4, 0xfb, 0x3e, 0x31, 0x33, 0x76, 0xfa, 0x9d, 0x00, 0x4b, 0xc6, 0xb6, 0xad, 0xd1, 0xbf, + 0x4b, 0x8c, 0xca, 0x70, 0x64, 0x69, 0xf5, 0xa2, 0x52, 0xa9, 0x6d, 0x2c, 0xad, 0xad, 0xf6, 0xdc, + 0x24, 0x1f, 0xae, 0x5b, 0x5c, 0xdb, 0xac, 0x2e, 0xd7, 0xd5, 0xc6, 0xd2, 0xa5, 0x55, 0xb6, 0x9b, + 0x1b, 0xaa, 0x7b, 0x76, 0x75, 0x63, 0x69, 0xa5, 0x2e, 0xc5, 0xab, 0x17, 0x87, 0xee, 0x27, 0x3c, + 0x78, 0xe0, 0x80, 0xfb, 0x56, 0x32, 0xb4, 0xa9, 0xf0, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xbf, + 0x2c, 0xec, 0xa9, 0x2f, 0x97, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) diff --git a/x/staking/types/tx.pb.go b/x/staking/types/tx.pb.go index cb04fc3198f7..c87b4c5c7fbf 100644 --- a/x/staking/types/tx.pb.go +++ b/x/staking/types/tx.pb.go @@ -668,77 +668,77 @@ func init() { func init() { proto.RegisterFile("cosmos/staking/v1beta1/tx.proto", fileDescriptor_0926ef28816b35ab) } var fileDescriptor_0926ef28816b35ab = []byte{ - // 1115 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x56, 0x4d, 0x6f, 0x1b, 0x45, - 0x18, 0xf6, 0x3a, 0x89, 0x21, 0x13, 0xf2, 0xb5, 0x49, 0x5a, 0x67, 0x29, 0x76, 0xb5, 0x0d, 0x4d, - 0x14, 0xc8, 0x9a, 0x06, 0xc4, 0x87, 0x89, 0x50, 0xe3, 0xba, 0x85, 0x02, 0x96, 0xa2, 0x0d, 0xe5, - 0x80, 0x90, 0xac, 0xf1, 0xee, 0x64, 0xbd, 0x8a, 0x77, 0x67, 0xbb, 0x33, 0x8e, 0xea, 0x1b, 0xe2, - 0x84, 0xb8, 0xd0, 0x03, 0x07, 0x2e, 0x48, 0x3d, 0xc2, 0x2d, 0x87, 0x1e, 0xf8, 0x03, 0x48, 0x15, - 0xa7, 0xaa, 0x27, 0xc4, 0xa1, 0x45, 0xc9, 0x21, 0xfc, 0x03, 0x6e, 0x08, 0xcd, 0xee, 0xec, 0xa7, - 0x63, 0x7b, 0x53, 0xb5, 0x97, 0x5e, 0xe2, 0xcd, 0xcc, 0xf3, 0x3e, 0x33, 0xf3, 0x3c, 0xef, 0x3b, - 0xf3, 0x82, 0xb2, 0x86, 0x89, 0x85, 0x49, 0x85, 0x50, 0xb8, 0x6f, 0xda, 0x46, 0xe5, 0xe0, 0x4a, - 0x0b, 0x51, 0x78, 0xa5, 0x42, 0xef, 0x28, 0x8e, 0x8b, 0x29, 0x16, 0xcf, 0xf9, 0x00, 0x85, 0x03, - 0x14, 0x0e, 0x90, 0x96, 0x0d, 0x8c, 0x8d, 0x0e, 0xaa, 0x78, 0xa8, 0x56, 0x77, 0xaf, 0x02, 0xed, - 0x9e, 0x1f, 0x22, 0x95, 0xd3, 0x53, 0xd4, 0xb4, 0x10, 0xa1, 0xd0, 0x72, 0x38, 0x60, 0xd1, 0xc0, - 0x06, 0xf6, 0x3e, 0x2b, 0xec, 0x8b, 0x8f, 0x2e, 0xfb, 0x2b, 0x35, 0xfd, 0x09, 0xbe, 0xac, 0x3f, - 0x55, 0xe2, 0xbb, 0x6c, 0x41, 0x82, 0xc2, 0x2d, 0x6a, 0xd8, 0xb4, 0xf9, 0xfc, 0xca, 0x80, 0x53, - 0x04, 0x9b, 0xf6, 0x51, 0xe7, 0x39, 0xca, 0x22, 0x0c, 0xc1, 0x7e, 0xf8, 0xc4, 0x3c, 0xb4, 0x4c, - 0x1b, 0x57, 0xbc, 0xbf, 0xfe, 0x90, 0xfc, 0xdf, 0x38, 0x10, 0x1b, 0xc4, 0xb8, 0xe6, 0x22, 0x48, - 0xd1, 0x97, 0xb0, 0x63, 0xea, 0x90, 0x62, 0x57, 0xdc, 0x01, 0x53, 0x3a, 0x22, 0x9a, 0x6b, 0x3a, - 0xd4, 0xc4, 0x76, 0x51, 0xb8, 0x28, 0xac, 0x4d, 0x6d, 0x5e, 0x52, 0x4e, 0xd7, 0x48, 0xa9, 0x47, - 0xd0, 0xda, 0xe4, 0x83, 0xc7, 0xe5, 0xdc, 0x2f, 0x27, 0x87, 0xeb, 0x82, 0x1a, 0xa7, 0x10, 0x55, - 0x00, 0x34, 0x6c, 0x59, 0x26, 0x21, 0x8c, 0x30, 0xef, 0x11, 0xae, 0x0e, 0x22, 0xbc, 0x16, 0x22, - 0x55, 0x48, 0x11, 0x89, 0x93, 0xc6, 0x58, 0xc4, 0x0e, 0x58, 0xb0, 0x4c, 0xbb, 0x49, 0x50, 0x67, - 0xaf, 0xa9, 0xa3, 0x0e, 0x32, 0xa0, 0xb7, 0xdb, 0xb1, 0x8b, 0xc2, 0xda, 0x64, 0x6d, 0x8b, 0xc5, - 0xfc, 0xf5, 0xb8, 0x7c, 0xd9, 0x30, 0x69, 0xbb, 0xdb, 0x52, 0x34, 0x6c, 0x71, 0xb1, 0xf9, 0xcf, - 0x06, 0xd1, 0xf7, 0x2b, 0xb4, 0xe7, 0x20, 0xa2, 0xdc, 0xb4, 0xe9, 0xa3, 0xfb, 0x1b, 0x80, 0xef, - 0xe6, 0xa6, 0x4d, 0xd5, 0x79, 0xcb, 0xb4, 0x77, 0x51, 0x67, 0xaf, 0x1e, 0xd2, 0x8a, 0x1f, 0x83, - 0x79, 0xbe, 0x08, 0x76, 0x9b, 0x50, 0xd7, 0x5d, 0x44, 0x48, 0x71, 0xdc, 0x5b, 0x4b, 0x7a, 0x74, - 0x7f, 0x63, 0x91, 0x47, 0x6f, 0xfb, 0x33, 0xbb, 0xd4, 0x35, 0x6d, 0xa3, 0x28, 0xa8, 0x73, 0x61, - 0x10, 0x9f, 0x11, 0xaf, 0x83, 0xf9, 0x83, 0x40, 0xe9, 0x90, 0x68, 0xc2, 0x23, 0x2a, 0x0e, 0x22, - 0x52, 0xe7, 0xc2, 0x90, 0x80, 0xe6, 0x06, 0x28, 0x38, 0xdd, 0xd6, 0x3e, 0xea, 0x15, 0x0b, 0x9e, - 0x9a, 0x8b, 0x8a, 0x9f, 0x8f, 0x4a, 0x90, 0x8f, 0xca, 0xb6, 0xdd, 0xab, 0x15, 0xff, 0x88, 0x18, - 0x35, 0xb7, 0xe7, 0x50, 0xac, 0xec, 0x74, 0x5b, 0x9f, 0xa1, 0x9e, 0xca, 0xa3, 0xc5, 0x2a, 0x98, - 0x38, 0x80, 0x9d, 0x2e, 0x2a, 0xbe, 0xe4, 0xd1, 0x2c, 0x07, 0xa6, 0xb0, 0x24, 0x8c, 0x39, 0x62, - 0x26, 0xbc, 0xf5, 0x43, 0xaa, 0x57, 0xbf, 0xbb, 0x57, 0xce, 0xfd, 0x73, 0xaf, 0x9c, 0xfb, 0xf6, - 0xe4, 0x70, 0xbd, 0xff, 0x54, 0xdf, 0x9f, 0x1c, 0xae, 0xbf, 0x16, 0x53, 0xbb, 0x3f, 0xd3, 0xe4, - 0x0b, 0x40, 0xea, 0x1f, 0x55, 0x11, 0x71, 0xb0, 0x4d, 0x90, 0xfc, 0xdb, 0x18, 0x98, 0x6b, 0x10, - 0xe3, 0xba, 0x6e, 0xd2, 0xe7, 0x99, 0x9c, 0xa7, 0x3a, 0x92, 0x3f, 0xb3, 0x23, 0x10, 0xcc, 0x46, - 0xd9, 0xd9, 0x74, 0x21, 0x45, 0x3c, 0x17, 0xdf, 0xcf, 0x98, 0x87, 0x75, 0xa4, 0xc5, 0xf2, 0xb0, - 0x8e, 0x34, 0x75, 0x46, 0x4b, 0x94, 0x82, 0xd8, 0x3e, 0x3d, 0xe5, 0xc7, 0xcf, 0xb4, 0x4c, 0x96, - 0x74, 0xaf, 0x7e, 0x34, 0xda, 0xda, 0x57, 0x93, 0xd6, 0x26, 0x5c, 0x92, 0x25, 0x50, 0x4c, 0x8f, - 0x85, 0xb6, 0xfe, 0x98, 0x07, 0x53, 0x0d, 0x62, 0xf0, 0xd5, 0x10, 0xd3, 0xbf, 0xbf, 0xb4, 0x84, - 0x51, 0xfa, 0x67, 0x2b, 0xac, 0xb3, 0xdb, 0xb8, 0x05, 0x0a, 0xd0, 0xc2, 0x5d, 0x9b, 0x7a, 0xee, - 0x65, 0xad, 0x08, 0x1e, 0x53, 0xfd, 0x20, 0xa1, 0x5b, 0xdf, 0xb1, 0x98, 0x6e, 0xe7, 0x92, 0xba, - 0x05, 0x32, 0xc8, 0x4b, 0x60, 0x21, 0xf6, 0x6f, 0xa8, 0xd6, 0xbf, 0x79, 0xef, 0x8e, 0xae, 0x21, - 0xc3, 0xb4, 0x55, 0xa4, 0x3f, 0x63, 0xd1, 0x3e, 0x07, 0x4b, 0x91, 0x68, 0xc4, 0xd5, 0x32, 0x0b, - 0xb7, 0x10, 0x86, 0xed, 0xba, 0xda, 0xa9, 0x6c, 0x3a, 0xa1, 0x21, 0xdb, 0x58, 0x66, 0xb6, 0x3a, - 0xa1, 0xfd, 0x4e, 0x8c, 0x3f, 0x85, 0x13, 0x57, 0x47, 0x3b, 0x91, 0xba, 0x9c, 0x52, 0x12, 0xcb, - 0x8e, 0x77, 0x39, 0xa5, 0x46, 0x03, 0x5f, 0x44, 0xd5, 0x2b, 0x77, 0xa7, 0x83, 0x58, 0xbd, 0x34, - 0xd9, 0xe3, 0xcf, 0xef, 0x22, 0xa9, 0xef, 0x26, 0xfe, 0x22, 0xe8, 0x0c, 0x6a, 0xd3, 0x6c, 0x9f, - 0x77, 0x9f, 0x94, 0x05, 0x7f, 0xaf, 0x33, 0x11, 0x03, 0xc3, 0xc8, 0x3f, 0xe5, 0xc1, 0x74, 0x83, - 0x18, 0xb7, 0x6c, 0xfd, 0x45, 0xac, 0x8d, 0x0f, 0x47, 0x3b, 0x52, 0x4c, 0x3a, 0x12, 0x09, 0x21, - 0xff, 0x2a, 0x80, 0xa5, 0xc4, 0xc8, 0xf3, 0x34, 0x22, 0x76, 0xd0, 0xfc, 0xd9, 0x0f, 0x2a, 0x3f, - 0xc9, 0x83, 0x0b, 0xec, 0x59, 0x83, 0xb6, 0x86, 0x3a, 0xb7, 0xec, 0x16, 0xb6, 0x75, 0xd3, 0x36, - 0x62, 0xcd, 0xc4, 0x0b, 0xe4, 0xaa, 0xb8, 0x0a, 0x66, 0x35, 0xf6, 0x7e, 0x33, 0xf1, 0xdb, 0xc8, - 0x34, 0xda, 0x7e, 0xb9, 0x8e, 0xa9, 0x33, 0xc1, 0xf0, 0x27, 0xde, 0x68, 0xf5, 0xd3, 0xd1, 0xf6, - 0xaf, 0xa6, 0xba, 0x85, 0x41, 0x02, 0xca, 0x97, 0xc1, 0xca, 0xb0, 0xf9, 0xf0, 0xf2, 0xfc, 0x5d, - 0x00, 0xb3, 0x2c, 0x6b, 0x1c, 0x1d, 0x52, 0xb4, 0x03, 0x5d, 0x68, 0x11, 0xf1, 0x5d, 0x30, 0x09, - 0xbb, 0xb4, 0x8d, 0x5d, 0x93, 0xf6, 0x46, 0x8a, 0x1e, 0x41, 0xc5, 0x6d, 0x50, 0x70, 0x3c, 0x06, - 0x9e, 0x13, 0xa5, 0x41, 0x3d, 0x87, 0xbf, 0x4e, 0x42, 0x2b, 0x3f, 0xb0, 0xfa, 0x1e, 0x3b, 0x7a, - 0x44, 0xc9, 0x8e, 0xbc, 0x12, 0x3b, 0xf2, 0x9d, 0xb0, 0xb5, 0x4f, 0xed, 0x59, 0x5e, 0x06, 0xe7, - 0x53, 0x43, 0xc1, 0x11, 0x37, 0x7f, 0x2e, 0x80, 0xb1, 0x06, 0x31, 0xc4, 0xdb, 0x60, 0x36, 0xdd, - 0xc7, 0xaf, 0x0f, 0xda, 0x61, 0x7f, 0xcf, 0x25, 0x6d, 0x66, 0xc7, 0x86, 0x95, 0xb7, 0x0f, 0xa6, - 0x93, 0xbd, 0xd9, 0xda, 0x10, 0x92, 0x04, 0x52, 0x7a, 0x2b, 0x2b, 0x32, 0x5c, 0xec, 0x6b, 0xf0, - 0x72, 0xd8, 0x31, 0x5c, 0x1a, 0x12, 0x1d, 0x80, 0xa4, 0x37, 0x32, 0x80, 0x42, 0xf6, 0xdb, 0x60, - 0x36, 0xfd, 0xc2, 0x0e, 0x53, 0x2f, 0x85, 0x1d, 0xaa, 0xde, 0xa0, 0x07, 0xa4, 0x05, 0x40, 0xec, - 0xa2, 0x7f, 0x7d, 0x08, 0x43, 0x04, 0x93, 0x36, 0x32, 0xc1, 0xc2, 0x35, 0x7e, 0x10, 0xc0, 0xf2, - 0xe0, 0x6b, 0xe8, 0x9d, 0x61, 0x9e, 0x0f, 0x8a, 0x92, 0xb6, 0x9e, 0x26, 0x2a, 0xdc, 0x51, 0x1b, - 0xbc, 0x92, 0xa8, 0xc6, 0xd5, 0x61, 0x07, 0x8a, 0x01, 0xa5, 0x4a, 0x46, 0x60, 0xb0, 0x92, 0x34, - 0xf1, 0x0d, 0xab, 0xbd, 0xda, 0x8d, 0x07, 0x47, 0x25, 0xe1, 0xe1, 0x51, 0x49, 0xf8, 0xfb, 0xa8, - 0x24, 0xdc, 0x3d, 0x2e, 0xe5, 0x1e, 0x1e, 0x97, 0x72, 0x7f, 0x1e, 0x97, 0x72, 0x5f, 0xbd, 0x39, - 0xb4, 0x59, 0x8e, 0x8a, 0xd1, 0x6b, 0x9b, 0x5b, 0x05, 0xef, 0x15, 0x79, 0xfb, 0xff, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x16, 0x60, 0xcc, 0xba, 0x4c, 0x10, 0x00, 0x00, + // 1118 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x56, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0xf6, 0xda, 0x89, 0x21, 0x13, 0x12, 0x27, 0x9b, 0xa4, 0xb5, 0x97, 0x62, 0x57, 0xdb, 0xd0, + 0x44, 0x81, 0xac, 0x69, 0x40, 0xfc, 0x30, 0x15, 0x6a, 0x5c, 0xb7, 0x50, 0xc0, 0x52, 0xb4, 0xa1, + 0x1c, 0x10, 0x92, 0x35, 0xde, 0x9d, 0xac, 0x57, 0xf1, 0xee, 0x6c, 0x76, 0xc6, 0x51, 0x7d, 0x43, + 0x70, 0x41, 0x5c, 0xe8, 0x81, 0x03, 0x17, 0xa4, 0x1e, 0xe1, 0x96, 0x43, 0x0f, 0xfc, 0x03, 0x48, + 0x15, 0xa7, 0xaa, 0x27, 0xc4, 0xa1, 0x45, 0xc9, 0x21, 0xfc, 0x07, 0x5c, 0xd1, 0xee, 0xce, 0xfe, + 0xf4, 0xaf, 0x4d, 0xd5, 0x5e, 0x7a, 0x69, 0xdc, 0x99, 0xef, 0x7d, 0x6f, 0xe6, 0xfb, 0xde, 0x9b, + 0x7d, 0xa0, 0xa2, 0x60, 0x62, 0x60, 0x52, 0x25, 0x14, 0xee, 0xeb, 0xa6, 0x56, 0x3d, 0xbc, 0xd2, + 0x46, 0x14, 0x5e, 0xa9, 0xd2, 0x3b, 0x92, 0x65, 0x63, 0x8a, 0xf9, 0x73, 0x1e, 0x40, 0x62, 0x00, + 0x89, 0x01, 0x84, 0x92, 0x86, 0xb1, 0xd6, 0x45, 0x55, 0x17, 0xd5, 0xee, 0xed, 0x55, 0xa1, 0xd9, + 0xf7, 0x42, 0x84, 0x4a, 0x72, 0x8b, 0xea, 0x06, 0x22, 0x14, 0x1a, 0x16, 0x03, 0x2c, 0x6b, 0x58, + 0xc3, 0xee, 0xcf, 0xaa, 0xf3, 0x8b, 0xad, 0x96, 0xbc, 0x4c, 0x2d, 0x6f, 0x83, 0xa5, 0xf5, 0xb6, + 0xca, 0xec, 0x94, 0x6d, 0x48, 0x50, 0x70, 0x44, 0x05, 0xeb, 0x26, 0xdb, 0x5f, 0x1d, 0x71, 0x0b, + 0xff, 0xd0, 0x1e, 0xea, 0x3c, 0x43, 0x19, 0xc4, 0x41, 0x38, 0x7f, 0xd8, 0xc6, 0x22, 0x34, 0x74, + 0x13, 0x57, 0xdd, 0x7f, 0xbd, 0x25, 0xf1, 0xbb, 0x69, 0xc0, 0x37, 0x89, 0x76, 0xdd, 0x46, 0x90, + 0xa2, 0x2f, 0x61, 0x57, 0x57, 0x21, 0xc5, 0x36, 0xbf, 0x03, 0x66, 0x55, 0x44, 0x14, 0x5b, 0xb7, + 0xa8, 0x8e, 0xcd, 0x22, 0x77, 0x91, 0x5b, 0x9f, 0xdd, 0xba, 0x24, 0x0d, 0xd7, 0x48, 0x6a, 0x84, + 0xd0, 0xfa, 0xcc, 0x83, 0xc7, 0x95, 0xcc, 0xaf, 0xa7, 0x47, 0x1b, 0x9c, 0x1c, 0xa5, 0xe0, 0x65, + 0x00, 0x14, 0x6c, 0x18, 0x3a, 0x21, 0x0e, 0x61, 0xd6, 0x25, 0x5c, 0x1b, 0x45, 0x78, 0x3d, 0x40, + 0xca, 0x90, 0x22, 0x12, 0x25, 0x8d, 0xb0, 0xf0, 0x07, 0x60, 0xc9, 0xd0, 0xcd, 0x16, 0x41, 0xdd, + 0xbd, 0x96, 0x8a, 0xba, 0x48, 0x83, 0xee, 0x69, 0x73, 0x17, 0xb9, 0xf5, 0x99, 0xfa, 0xb6, 0x13, + 0xf3, 0xf7, 0xe3, 0xca, 0x65, 0x4d, 0xa7, 0x9d, 0x5e, 0x5b, 0x52, 0xb0, 0xc1, 0xc4, 0x66, 0x7f, + 0x36, 0x89, 0xba, 0x5f, 0xa5, 0x7d, 0x0b, 0x11, 0xe9, 0x96, 0x49, 0x1f, 0xdd, 0xdf, 0x04, 0xec, + 0x34, 0xb7, 0x4c, 0xea, 0xe5, 0x5a, 0x34, 0x74, 0x73, 0x17, 0x75, 0xf7, 0x1a, 0x01, 0x37, 0xff, + 0x31, 0x58, 0x64, 0x99, 0xb0, 0xdd, 0x82, 0xaa, 0x6a, 0x23, 0x42, 0x8a, 0x53, 0x6e, 0x42, 0xe1, + 0xd1, 0xfd, 0xcd, 0x65, 0x46, 0xb1, 0xed, 0xed, 0xec, 0x52, 0x5b, 0x37, 0xb5, 0x22, 0x27, 0x2f, + 0x04, 0x41, 0x6c, 0x87, 0xbf, 0x01, 0x16, 0x0f, 0x7d, 0xb9, 0x03, 0xa2, 0x69, 0x97, 0xa8, 0x38, + 0x8a, 0x48, 0x5e, 0x08, 0x42, 0x7c, 0x9a, 0x9b, 0x20, 0x6f, 0xf5, 0xda, 0xfb, 0xa8, 0x5f, 0xcc, + 0xbb, 0x92, 0x2e, 0x4b, 0x5e, 0x51, 0x4a, 0x7e, 0x51, 0x4a, 0xdb, 0x66, 0xbf, 0x5e, 0xfc, 0x33, + 0x64, 0x54, 0xec, 0xbe, 0x45, 0xb1, 0xb4, 0xd3, 0x6b, 0x7f, 0x86, 0xfa, 0x32, 0x8b, 0xe6, 0x6b, + 0x60, 0xfa, 0x10, 0x76, 0x7b, 0xa8, 0xf8, 0x92, 0x4b, 0x53, 0xf2, 0x9d, 0x71, 0x2a, 0x31, 0x62, + 0x8b, 0x1e, 0x33, 0xd8, 0x0b, 0xa9, 0x5d, 0xfb, 0xfe, 0x5e, 0x25, 0xf3, 0xef, 0xbd, 0x4a, 0xe6, + 0xdb, 0xd3, 0xa3, 0x8d, 0xc1, 0x5b, 0xfd, 0x70, 0x7a, 0xb4, 0xf1, 0x5a, 0x44, 0xf2, 0xc1, 0x72, + 0x13, 0x2f, 0x00, 0x61, 0x70, 0x55, 0x46, 0xc4, 0xc2, 0x26, 0x41, 0xe2, 0xef, 0x39, 0xb0, 0xd0, + 0x24, 0xda, 0x0d, 0x55, 0xa7, 0xcf, 0xb3, 0x42, 0x87, 0x3a, 0x92, 0x3d, 0xb3, 0x23, 0x10, 0x14, + 0xc2, 0x12, 0x6d, 0xd9, 0x90, 0x22, 0x56, 0x90, 0xef, 0xa7, 0x2c, 0xc6, 0x06, 0x52, 0x22, 0xc5, + 0xd8, 0x40, 0x8a, 0x3c, 0xaf, 0xc4, 0xfa, 0x81, 0xef, 0x0c, 0xaf, 0xfb, 0xa9, 0x33, 0xa5, 0x19, + 0xa8, 0xf9, 0x21, 0xe5, 0x5e, 0xfb, 0x68, 0xb2, 0xb5, 0xaf, 0xc6, 0xad, 0x8d, 0xb9, 0x24, 0x0a, + 0xa0, 0x98, 0x5c, 0x0b, 0x6c, 0xfd, 0x29, 0x0b, 0x66, 0x9b, 0x44, 0x63, 0xd9, 0x90, 0xa3, 0xff, + 0x60, 0x6b, 0x71, 0x93, 0xf4, 0x4f, 0xd7, 0x58, 0x67, 0xb7, 0xf1, 0x2a, 0xc8, 0x43, 0x03, 0xf7, + 0x4c, 0xea, 0xba, 0x97, 0xb6, 0x23, 0x58, 0x4c, 0xed, 0x83, 0x98, 0x6e, 0x03, 0xd7, 0x72, 0x74, + 0x3b, 0x17, 0xd7, 0xcd, 0x97, 0x41, 0x5c, 0x01, 0x4b, 0x91, 0xff, 0x06, 0x6a, 0xfd, 0x97, 0x75, + 0x1f, 0xea, 0x3a, 0xd2, 0x74, 0x53, 0x46, 0xea, 0x33, 0x16, 0xed, 0x73, 0xb0, 0x12, 0x8a, 0x46, + 0x6c, 0x25, 0xb5, 0x70, 0x4b, 0x41, 0xd8, 0xae, 0xad, 0x0c, 0x65, 0x53, 0x09, 0x0d, 0xd8, 0x72, + 0xa9, 0xd9, 0x1a, 0x84, 0x0e, 0x3a, 0x31, 0xf5, 0x14, 0x4e, 0x5c, 0x9b, 0xec, 0x44, 0xe2, 0x71, + 0x4a, 0x48, 0x2c, 0x5a, 0xee, 0xe3, 0x94, 0x58, 0xf5, 0x7d, 0xe1, 0x65, 0xb7, 0xdd, 0xad, 0x2e, + 0x72, 0xfa, 0xa5, 0xe5, 0x4c, 0x00, 0xec, 0x2d, 0x12, 0x06, 0x5e, 0xe2, 0x2f, 0xfc, 0xf1, 0xa0, + 0x3e, 0xe7, 0x9c, 0xf3, 0xee, 0x93, 0x0a, 0xe7, 0x9d, 0x75, 0x3e, 0x64, 0x70, 0x30, 0xe2, 0xcf, + 0x59, 0x30, 0xd7, 0x24, 0xda, 0x6d, 0x53, 0x7d, 0x11, 0x7b, 0xe3, 0xc3, 0xc9, 0x8e, 0x14, 0xe3, + 0x8e, 0x84, 0x42, 0x88, 0xbf, 0x71, 0x60, 0x25, 0xb6, 0xf2, 0x3c, 0x8d, 0x88, 0x5c, 0x34, 0x7b, + 0xf6, 0x8b, 0x8a, 0x4f, 0xb2, 0xe0, 0x82, 0xf3, 0x59, 0x83, 0xa6, 0x82, 0xba, 0xb7, 0xcd, 0x36, + 0x36, 0x55, 0xdd, 0xd4, 0x22, 0xc3, 0xc4, 0x0b, 0xe4, 0x2a, 0xbf, 0x06, 0x0a, 0x8a, 0xf3, 0xfd, + 0x76, 0xc4, 0xef, 0x20, 0x5d, 0xeb, 0x78, 0xed, 0x9a, 0x93, 0xe7, 0xfd, 0xe5, 0x4f, 0xdc, 0xd5, + 0xda, 0xa7, 0x93, 0xed, 0x5f, 0x4b, 0x4c, 0x0b, 0xa3, 0x04, 0x14, 0x2f, 0x83, 0xd5, 0x71, 0xfb, + 0xc1, 0xe3, 0xf9, 0x07, 0x07, 0x0a, 0x4e, 0xd5, 0x58, 0x2a, 0xa4, 0x68, 0x07, 0xda, 0xd0, 0x20, + 0xfc, 0xbb, 0x60, 0x06, 0xf6, 0x68, 0x07, 0xdb, 0x3a, 0xed, 0x4f, 0x14, 0x3d, 0x84, 0xf2, 0xdb, + 0x20, 0x6f, 0xb9, 0x0c, 0xac, 0x26, 0xca, 0xa3, 0x66, 0x0e, 0x2f, 0x4f, 0x4c, 0x2b, 0x2f, 0xb0, + 0xf6, 0x9e, 0x73, 0xf5, 0x90, 0xd2, 0xb9, 0xf2, 0x6a, 0xe4, 0xca, 0x77, 0x82, 0xf9, 0x3e, 0x71, + 0x66, 0xb1, 0x04, 0xce, 0x27, 0x96, 0xfc, 0x2b, 0x6e, 0xfd, 0x92, 0x07, 0xb9, 0x26, 0xd1, 0xf8, + 0x03, 0x50, 0x48, 0x0e, 0xf3, 0x1b, 0xa3, 0x4e, 0x38, 0x38, 0x73, 0x09, 0x5b, 0xe9, 0xb1, 0x41, + 0xe7, 0xed, 0x83, 0xb9, 0xf8, 0x6c, 0xb6, 0x3e, 0x86, 0x24, 0x86, 0x14, 0xde, 0x4a, 0x8b, 0x0c, + 0x92, 0x7d, 0x0d, 0x5e, 0x0e, 0x26, 0x86, 0x4b, 0x63, 0xa2, 0x7d, 0x90, 0xf0, 0x46, 0x0a, 0x50, + 0xc0, 0x7e, 0x00, 0x0a, 0xc9, 0x2f, 0xec, 0x38, 0xf5, 0x12, 0xd8, 0xb1, 0xea, 0x8d, 0xfa, 0x80, + 0xb4, 0x01, 0x88, 0x3c, 0xf4, 0xaf, 0x8f, 0x61, 0x08, 0x61, 0xc2, 0x66, 0x2a, 0x58, 0x90, 0xe3, + 0x47, 0x0e, 0x94, 0x46, 0x3f, 0x43, 0xef, 0x8c, 0xf3, 0x7c, 0x54, 0x94, 0x70, 0xf5, 0x69, 0xa2, + 0x82, 0x13, 0x75, 0xc0, 0x2b, 0xb1, 0x6e, 0x5c, 0x1b, 0x77, 0xa1, 0x08, 0x50, 0xa8, 0xa6, 0x04, + 0xfa, 0x99, 0x84, 0xe9, 0x6f, 0x9c, 0xde, 0xab, 0xdf, 0x7c, 0x70, 0x5c, 0xe6, 0x1e, 0x1e, 0x97, + 0xb9, 0x7f, 0x8e, 0xcb, 0xdc, 0xdd, 0x93, 0x72, 0xe6, 0xe1, 0x49, 0x39, 0xf3, 0xd7, 0x49, 0x39, + 0xf3, 0xd5, 0x9b, 0x63, 0x87, 0xe5, 0xb0, 0x19, 0xdd, 0xb1, 0xb9, 0x9d, 0x77, 0xbf, 0x22, 0x6f, + 0xff, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x78, 0x31, 0x24, 0xdd, 0x51, 0x10, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index fcb47eacd891..92526fef7262 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -34,6 +34,7 @@ func NewAminoJSON() AminoJSON { }, scalarEncoders: map[string]FieldEncoder{ "cosmos.Dec": cosmosDecEncoder, + "cosmos.Int": cosmosDecEncoder, }, messageEncoders: map[string]MessageEncoder{ "key_field": keyFieldEncoder, From 9f0f51af47e7f4f49c3d8eabfedf2864fc98ee75 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sun, 12 Feb 2023 19:51:31 -0700 Subject: [PATCH 072/122] test clean up --- tests/integration/aminojson/aminojson_test.go | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 16fcbb306592..09c520ea04ed 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -1,6 +1,7 @@ package aminojson import ( + "cosmossdk.io/api/cosmos/crypto/secp256k1" "fmt" groupmodule "github.com/cosmos/cosmos-sdk/x/group/module" "github.com/cosmos/cosmos-sdk/x/mint" @@ -44,6 +45,7 @@ import ( "cosmossdk.io/x/tx/rapidproto" codectypes "github.com/cosmos/cosmos-sdk/codec/types" ed25519types "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" + secp256k1types "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" "github.com/cosmos/cosmos-sdk/testutil/testdata" "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/bech32" @@ -321,8 +323,10 @@ func TestAminoJSON_LegacyParity(t *testing.T) { genericAuth, _ := codectypes.NewAnyWithValue(&authztypes.GenericAuthorization{Msg: "foo"}) genericAuthPulsar := newAny(t, &authzapi.GenericAuthorization{Msg: "foo"}) - pubkeyAny, _ := codectypes.NewAnyWithValue(&ed25519.PubKey{Key: []byte("foo")}) - pubkeyAnyPulsar := newAny(t, &ed25519.PubKey{Key: []byte("foo")}) + //pubkeyAny, _ := codectypes.NewAnyWithValue(&ed25519.PubKey{Key: []byte("foo")}) + //pubkeyAnyPulsar := newAny(t, &ed25519.PubKey{Key: []byte("foo")}) + pubkeyAny, _ := codectypes.NewAnyWithValue(&secp256k1types.PubKey{Key: []byte("foo")}) + pubkeyAnyPulsar := newAny(t, &secp256k1.PubKey{Key: []byte("foo")}) dec10bz, _ := types.NewDec(10).Marshal() cases := map[string]struct { @@ -385,8 +389,13 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &disttypes.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, pulsar: &distapi.MsgWithdrawDelegatorReward{DelegatorAddress: "foo"}, }, - "crypto/pubkey": { - gogo: &ed25519types.PubKey{Key: []byte("key")}, pulsar: &ed25519.PubKey{Key: []byte("key")}, + "crypto/ed25519": { + gogo: &ed25519types.PubKey{Key: []byte("key")}, + pulsar: &ed25519.PubKey{Key: []byte("key")}, + }, + "crypto/secp256k1": { + gogo: &secp256k1types.PubKey{Key: []byte("key")}, + pulsar: &secp256k1.PubKey{Key: []byte("key")}, }, "consensus/evidence_params/duration": { gogo: &gov_v1beta1_types.VotingParams{VotingPeriod: 1e9 + 7}, From 8b04d2f29afb05b8b169a8f1d28ec4bf4c383e2e Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Sun, 12 Feb 2023 20:21:37 -0700 Subject: [PATCH 073/122] add breaking oneof tests --- api/cosmos/staking/v1beta1/staking.pulsar.go | 207 +-- proto/cosmos/staking/v1beta1/staking.proto | 4 +- tests/integration/aminojson/aminojson_test.go | 30 +- x/staking/types/staking.pb.go | 1566 ++++++++--------- x/tx/aminojson/json_marshal.go | 3 + 5 files changed, 916 insertions(+), 894 deletions(-) diff --git a/api/cosmos/staking/v1beta1/staking.pulsar.go b/api/cosmos/staking/v1beta1/staking.pulsar.go index a2796517d552..a86d038bb8ab 100644 --- a/api/cosmos/staking/v1beta1/staking.pulsar.go +++ b/api/cosmos/staking/v1beta1/staking.pulsar.go @@ -14314,7 +14314,7 @@ var file_cosmos_staking_v1beta1_staking_proto_rawDesc = []byte{ 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, - 0x93, 0x03, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x75, 0x6e, + 0xa7, 0x03, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x4f, 0x0a, 0x0e, 0x75, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0xc8, @@ -14329,109 +14329,110 @@ var file_cosmos_staking_v1beta1_staking_proto_rawDesc = []byte{ 0x11, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x69, 0x63, 0x61, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x6f, 0x6e, 0x64, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x6f, 0x6e, 0x64, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x12, 0x7c, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, 0x4c, - 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xf2, 0xde, - 0x1f, 0x1a, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0x52, 0x11, 0x6d, 0x69, - 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x3a, - 0x24, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x0a, - 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x07, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, - 0x00, 0x22, 0xde, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x63, 0x0a, 0x12, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x11, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x56, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x49, 0x6e, 0x74, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, 0x04, 0xe8, 0xa0, - 0x1f, 0x01, 0x22, 0xc9, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x53, 0x0a, 0x0c, 0x72, - 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x56, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x8e, - 0x02, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x82, 0x01, 0x0a, 0x11, 0x6e, 0x6f, 0x74, 0x5f, - 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x56, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, - 0x49, 0x6e, 0x74, 0xea, 0xde, 0x1f, 0x11, 0x6e, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x65, + 0x6d, 0x12, 0x8f, 0x01, 0x0a, 0x13, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x5f, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xf2, + 0xde, 0x1f, 0x1a, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0xd2, 0xb4, 0x2d, + 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x11, 0x6d, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x61, 0x74, 0x65, 0x3a, 0x24, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x1b, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0xa9, 0x01, 0x0a, 0x12, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, + 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x3a, + 0x04, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xde, 0x01, 0x0a, 0x19, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x12, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x11, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x56, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x3c, 0xc8, 0xde, 0x1f, 0x00, 0xda, + 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xc9, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x53, 0x0a, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, + 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, + 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x56, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x52, + 0x65, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x3a, 0x04, 0xe8, 0xa0, + 0x1f, 0x00, 0x22, 0x8e, 0x02, 0x0a, 0x04, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x82, 0x01, 0x0a, 0x11, + 0x6e, 0x6f, 0x74, 0x5f, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x56, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xea, 0xde, 0x1f, 0x11, 0x6e, 0x6f, 0x74, 0x5f, 0x62, + 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0xd2, 0xb4, 0x2d, 0x0a, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x0f, 0x6e, 0x6f, 0x74, 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x12, 0x77, 0x0a, 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x52, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xea, 0xde, 0x1f, 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x6e, 0x6f, 0x74, - 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x77, 0x0a, 0x0d, - 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x52, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, - 0x49, 0x6e, 0x74, 0xea, 0xde, 0x1f, 0x0d, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, - 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x3a, 0x08, 0xe8, 0xa0, 0x1f, 0x01, 0xf0, 0xa0, 0x1f, 0x01, 0x22, - 0x59, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x6d, 0x69, 0x6e, - 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x2a, 0xb6, 0x01, 0x0a, 0x0a, 0x42, - 0x6f, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x17, 0x42, 0x4f, 0x4e, - 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x0f, 0x8a, 0x9d, 0x20, 0x0b, 0x55, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x14, 0x42, 0x4f, 0x4e, 0x44, 0x5f, - 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, - 0x01, 0x1a, 0x0c, 0x8a, 0x9d, 0x20, 0x08, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x12, - 0x28, 0x0a, 0x15, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, - 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x1a, 0x0d, 0x8a, 0x9d, 0x20, 0x09, - 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, 0x12, 0x42, 0x4f, 0x4e, - 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x4f, 0x4e, 0x44, 0x45, 0x44, 0x10, - 0x03, 0x1a, 0x0a, 0x8a, 0x9d, 0x20, 0x06, 0x42, 0x6f, 0x6e, 0x64, 0x65, 0x64, 0x1a, 0x04, 0x88, - 0xa3, 0x1e, 0x00, 0x2a, 0x5d, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, - 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x55, 0x42, - 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x4e, 0x46, - 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x54, 0x49, 0x4d, 0x45, - 0x10, 0x02, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x42, 0x0c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, - 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, - 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, - 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, - 0x3a, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0c, 0x62, 0x6f, 0x6e, + 0x64, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x3a, 0x08, 0xe8, 0xa0, 0x1f, 0x01, 0xf0, + 0xa0, 0x1f, 0x01, 0x22, 0x59, 0x0a, 0x10, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x74, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x6d, 0x69, 0x6e, 0x74, 0x2e, 0x61, 0x62, 0x63, 0x69, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x2a, 0xb6, + 0x01, 0x0a, 0x0a, 0x42, 0x6f, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, + 0x17, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x1a, 0x0f, 0x8a, 0x9d, 0x20, 0x0b, + 0x55, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x14, 0x42, + 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, + 0x44, 0x45, 0x44, 0x10, 0x01, 0x1a, 0x0c, 0x8a, 0x9d, 0x20, 0x08, 0x55, 0x6e, 0x62, 0x6f, 0x6e, + 0x64, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x15, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x42, 0x4f, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x1a, 0x0d, + 0x8a, 0x9d, 0x20, 0x09, 0x55, 0x6e, 0x62, 0x6f, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x22, 0x0a, + 0x12, 0x42, 0x4f, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x42, 0x4f, 0x4e, + 0x44, 0x45, 0x44, 0x10, 0x03, 0x1a, 0x0a, 0x8a, 0x9d, 0x20, 0x06, 0x42, 0x6f, 0x6e, 0x64, 0x65, + 0x64, 0x1a, 0x04, 0x88, 0xa3, 0x1e, 0x00, 0x2a, 0x5d, 0x0a, 0x0a, 0x49, 0x6e, 0x66, 0x72, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, + 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x01, 0x12, 0x17, 0x0a, + 0x13, 0x49, 0x4e, 0x46, 0x52, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x4f, 0x57, 0x4e, + 0x54, 0x49, 0x4d, 0x45, 0x10, 0x02, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, + 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, + 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/staking/v1beta1/staking.proto b/proto/cosmos/staking/v1beta1/staking.proto index 20cfb9a91222..231a200c89dd 100644 --- a/proto/cosmos/staking/v1beta1/staking.proto +++ b/proto/cosmos/staking/v1beta1/staking.proto @@ -316,7 +316,9 @@ message Params { string min_commission_rate = 6 [ (gogoproto.moretags) = "yaml:\"min_commission_rate\"", (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Dec", - (gogoproto.nullable) = false + (gogoproto.nullable) = false, + (amino.dont_omitempty) = true, + (cosmos_proto.scalar) = "cosmos.Dec" ]; } diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 09c520ea04ed..27ddb8bde802 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -243,13 +243,11 @@ var ( WithAnyTypes(&ed25519.PubKey{}). WithInterfaceHint("cosmos.crypto.PubKey", &ed25519.PubKey{}), ), - genType(&stakingtypes.MsgEditValidator{}, &stakingapi.MsgEditValidator{}, genOpts), - genType(&stakingtypes.MsgDelegate{}, &stakingapi.MsgDelegate{}, genOpts), - genType(&stakingtypes.MsgUndelegate{}, &stakingapi.MsgUndelegate{}, genOpts), - genType(&stakingtypes.MsgBeginRedelegate{}, &stakingapi.MsgBeginRedelegate{}, genOpts), - genType(&stakingtypes.MsgCancelUnbondingDelegationResponse{}, - &stakingapi.MsgCancelUnbondingDelegationResponse{}, genOpts), - genType(&stakingtypes.MsgUpdateParams{}, &stakingapi.MsgUpdateParams{}, genOpts), + genType(&stakingtypes.MsgEditValidator{}, &stakingapi.MsgEditValidator{}, genOpts.WithDisallowNil()), + genType(&stakingtypes.MsgDelegate{}, &stakingapi.MsgDelegate{}, genOpts.WithDisallowNil()), + genType(&stakingtypes.MsgUndelegate{}, &stakingapi.MsgUndelegate{}, genOpts.WithDisallowNil()), + genType(&stakingtypes.MsgBeginRedelegate{}, &stakingapi.MsgBeginRedelegate{}, genOpts.WithDisallowNil()), + genType(&stakingtypes.MsgUpdateParams{}, &stakingapi.MsgUpdateParams{}, genOpts.WithDisallowNil()), genType(&stakingtypes.StakeAuthorization{}, &stakingapi.StakeAuthorization{}, genOpts), } ) @@ -461,6 +459,24 @@ func TestAminoJSON_LegacyParity(t *testing.T) { Value: &v1beta1.Coin{}, }, }, + "staking/msg_cancel_unbonding_delegation_response": { + gogo: &stakingtypes.MsgCancelUnbondingDelegationResponse{}, + pulsar: &stakingapi.MsgCancelUnbondingDelegationResponse{}, + }, + "staking/stake_authorization_empty": { + gogo: &stakingtypes.StakeAuthorization{}, + pulsar: &stakingapi.StakeAuthorization{}, + }, + "staking/stake_authorization_allow": { + gogo: &stakingtypes.StakeAuthorization{ + Validators: &stakingtypes.StakeAuthorization_AllowList{ + AllowList: &stakingtypes.StakeAuthorization_Validators{Address: []string{"foo"}}, + }}, + pulsar: &stakingapi.StakeAuthorization{ + Validators: &stakingapi.StakeAuthorization_AllowList{ + AllowList: &stakingapi.StakeAuthorization_Validators{Address: []string{"foo"}}, + }}, + }, } for name, tc := range cases { t.Run(name, func(t *testing.T) { diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index 60e7ef5af77d..67aba9e75c92 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -1276,125 +1276,125 @@ func init() { } var fileDescriptor_64c30c6cf92913c9 = []byte{ - // 1881 bytes of a gzipped FileDescriptorProto + // 1883 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x3d, 0x6c, 0x23, 0xc7, - 0xf5, 0xd7, 0x92, 0x32, 0x25, 0x3d, 0x4a, 0x22, 0x35, 0x27, 0xdf, 0xf1, 0x78, 0xff, 0xbf, 0x48, - 0xd3, 0x17, 0x5b, 0x3e, 0xf8, 0xa8, 0x9c, 0x02, 0xa4, 0x50, 0x8c, 0x04, 0xa2, 0xa8, 0xf3, 0xd1, - 0x39, 0x4b, 0xc2, 0x52, 0x52, 0xe2, 0x7c, 0x60, 0x31, 0xdc, 0x1d, 0x51, 0x13, 0x71, 0x67, 0x89, - 0x9d, 0xe1, 0x59, 0x04, 0x52, 0x05, 0x29, 0x0c, 0x15, 0x81, 0x01, 0x37, 0x69, 0x0e, 0x38, 0x20, - 0x8d, 0xd3, 0xb9, 0x30, 0xe2, 0x22, 0x48, 0x91, 0xce, 0x49, 0x9a, 0x83, 0xab, 0x20, 0x85, 0x12, - 0xdc, 0x15, 0x36, 0x52, 0x05, 0xe9, 0x92, 0x2a, 0x98, 0xd9, 0xd9, 0x0f, 0x8a, 0xe2, 0x49, 0x3a, - 0x28, 0x81, 0x01, 0x37, 0xe4, 0xce, 0xcc, 0x7b, 0xbf, 0x99, 0xf7, 0x7b, 0x1f, 0xf3, 0x01, 0x37, - 0x6d, 0x8f, 0xbb, 0x1e, 0x5f, 0xe2, 0x02, 0x1f, 0x50, 0xd6, 0x5e, 0x7a, 0x70, 0xa7, 0x45, 0x04, - 0xbe, 0x13, 0xb6, 0xab, 0x5d, 0xdf, 0x13, 0x1e, 0xba, 0x1a, 0x48, 0x55, 0xc3, 0x5e, 0x2d, 0x55, - 0x9c, 0x6f, 0x7b, 0x6d, 0x4f, 0x89, 0x2c, 0xc9, 0xaf, 0x40, 0xba, 0x78, 0xbd, 0xed, 0x79, 0xed, - 0x0e, 0x59, 0x52, 0xad, 0x56, 0x6f, 0x6f, 0x09, 0xb3, 0xbe, 0x1e, 0x5a, 0x38, 0x39, 0xe4, 0xf4, - 0x7c, 0x2c, 0xa8, 0xc7, 0xf4, 0x78, 0xe9, 0xe4, 0xb8, 0xa0, 0x2e, 0xe1, 0x02, 0xbb, 0xdd, 0x10, - 0x3b, 0x58, 0x89, 0x15, 0x4c, 0xaa, 0x97, 0xa5, 0xb1, 0xb5, 0x29, 0x2d, 0xcc, 0x49, 0x64, 0x87, - 0xed, 0xd1, 0x10, 0x7b, 0x0e, 0xbb, 0x94, 0x79, 0x4b, 0xea, 0x57, 0x77, 0xfd, 0x9f, 0x20, 0xcc, - 0x21, 0xbe, 0x4b, 0x99, 0x58, 0x12, 0xfd, 0x2e, 0xe1, 0xc1, 0xaf, 0x1e, 0xbd, 0x91, 0x18, 0xc5, - 0x2d, 0x9b, 0x26, 0x07, 0x2b, 0x1f, 0x18, 0x30, 0x7b, 0x8f, 0x72, 0xe1, 0xf9, 0xd4, 0xc6, 0x9d, - 0x06, 0xdb, 0xf3, 0xd0, 0xb7, 0x20, 0xb3, 0x4f, 0xb0, 0x43, 0xfc, 0x82, 0x51, 0x36, 0x16, 0xb3, - 0xcb, 0x85, 0x6a, 0x0c, 0x50, 0x0d, 0x74, 0xef, 0xa9, 0xf1, 0xda, 0xd4, 0xa7, 0xc7, 0xa5, 0xb1, - 0x0f, 0x3f, 0xff, 0xe8, 0x96, 0x61, 0x6a, 0x15, 0x54, 0x87, 0xcc, 0x03, 0xdc, 0xe1, 0x44, 0x14, - 0x52, 0xe5, 0xf4, 0x62, 0x76, 0xf9, 0xa5, 0xea, 0xe9, 0x9c, 0x57, 0x77, 0x71, 0x87, 0x3a, 0x58, - 0x78, 0x83, 0x28, 0x81, 0x6e, 0xe5, 0x93, 0x14, 0xe4, 0xd6, 0x3c, 0xd7, 0xa5, 0x9c, 0x53, 0x8f, - 0x99, 0x58, 0x10, 0x8e, 0x76, 0x60, 0xdc, 0xc7, 0x82, 0xa8, 0x45, 0x4d, 0xd5, 0x56, 0xa5, 0xd2, - 0x5f, 0x8e, 0x4b, 0xaf, 0xb4, 0xa9, 0xd8, 0xef, 0xb5, 0xaa, 0xb6, 0xe7, 0x6a, 0x1a, 0xf5, 0xdf, - 0x6d, 0xee, 0x1c, 0x68, 0x4b, 0xeb, 0xc4, 0xfe, 0xec, 0xe3, 0xdb, 0xa0, 0x17, 0x52, 0x27, 0x76, - 0x30, 0x99, 0x82, 0x43, 0x3f, 0x82, 0x49, 0x17, 0x1f, 0x5a, 0x0a, 0x3a, 0x75, 0x59, 0xd0, 0x13, - 0x2e, 0x3e, 0x94, 0xab, 0x46, 0x14, 0x72, 0x12, 0xdd, 0xde, 0xc7, 0xac, 0x4d, 0x82, 0x49, 0xd2, - 0x97, 0x35, 0xc9, 0x8c, 0x8b, 0x0f, 0xd7, 0x14, 0xb0, 0x9c, 0x6a, 0x65, 0xfc, 0x8b, 0x47, 0x25, - 0xa3, 0xf2, 0x7b, 0x03, 0x20, 0x66, 0x0e, 0x61, 0xc8, 0xdb, 0x51, 0x4b, 0xcd, 0xcf, 0xb5, 0x57, - 0x5f, 0x1d, 0xe5, 0x98, 0x13, 0xbc, 0xd7, 0x66, 0xe4, 0x4a, 0x1f, 0x1f, 0x97, 0x8c, 0x60, 0xd6, - 0x9c, 0x7d, 0xc2, 0x2f, 0x6f, 0x41, 0xb6, 0xd7, 0x75, 0xb0, 0x20, 0x96, 0x0c, 0x72, 0xc5, 0x61, - 0x76, 0xb9, 0x58, 0x0d, 0x32, 0xa0, 0x1a, 0x66, 0x40, 0x75, 0x3b, 0xcc, 0x80, 0x00, 0xf0, 0xfd, - 0xbf, 0x86, 0x80, 0x10, 0x68, 0xcb, 0x71, 0x6d, 0xc3, 0x87, 0x06, 0x64, 0xeb, 0x84, 0xdb, 0x3e, - 0xed, 0xca, 0x9c, 0x42, 0x05, 0x98, 0x70, 0x3d, 0x46, 0x0f, 0x74, 0x44, 0x4e, 0x99, 0x61, 0x13, - 0x15, 0x61, 0x92, 0x3a, 0x84, 0x09, 0x2a, 0xfa, 0x81, 0xf3, 0xcc, 0xa8, 0x2d, 0xb5, 0xde, 0x25, - 0x2d, 0x4e, 0x43, 0xca, 0xcd, 0xb0, 0x89, 0x5e, 0x83, 0x3c, 0x27, 0x76, 0xcf, 0xa7, 0xa2, 0x6f, - 0xd9, 0x1e, 0x13, 0xd8, 0x16, 0x85, 0x71, 0x25, 0x92, 0x0b, 0xfb, 0xd7, 0x82, 0x6e, 0x09, 0xe2, - 0x10, 0x81, 0x69, 0x87, 0x17, 0x5e, 0x08, 0x40, 0x74, 0x53, 0x2f, 0xf5, 0x93, 0x09, 0x98, 0x8a, - 0x22, 0x19, 0xad, 0x41, 0xde, 0xeb, 0x12, 0x5f, 0x7e, 0x5b, 0xd8, 0x71, 0x7c, 0xc2, 0xb9, 0x0e, - 0xd7, 0xc2, 0x67, 0x1f, 0xdf, 0x9e, 0xd7, 0x84, 0xaf, 0x06, 0x23, 0x4d, 0xe1, 0x53, 0xd6, 0x36, - 0x73, 0xa1, 0x86, 0xee, 0x46, 0xef, 0x48, 0x97, 0x31, 0x4e, 0x18, 0xef, 0x71, 0xab, 0xdb, 0x6b, - 0x1d, 0x90, 0xbe, 0x26, 0x75, 0x7e, 0x88, 0xd4, 0x55, 0xd6, 0xaf, 0x15, 0xfe, 0x18, 0x43, 0xdb, - 0x7e, 0xbf, 0x2b, 0xbc, 0xea, 0x56, 0xaf, 0xf5, 0x5d, 0xd2, 0x97, 0xae, 0xd2, 0x38, 0x5b, 0x0a, - 0x06, 0x5d, 0x85, 0xcc, 0x4f, 0x30, 0xed, 0x10, 0x47, 0x31, 0x32, 0x69, 0xea, 0x16, 0x5a, 0x81, - 0x0c, 0x17, 0x58, 0xf4, 0xb8, 0xa2, 0x61, 0x76, 0xb9, 0x32, 0x2a, 0x36, 0x6a, 0x1e, 0x73, 0x9a, - 0x4a, 0xd2, 0xd4, 0x1a, 0x68, 0x1b, 0x32, 0xc2, 0x3b, 0x20, 0x4c, 0x13, 0x54, 0x7b, 0xe3, 0x02, - 0x81, 0xdd, 0x60, 0x22, 0x11, 0xd8, 0x0d, 0x26, 0x4c, 0x8d, 0x85, 0xda, 0x90, 0x77, 0x48, 0x87, - 0xb4, 0x15, 0x95, 0x7c, 0x1f, 0xfb, 0x84, 0x17, 0x32, 0x17, 0xc6, 0x1f, 0x4a, 0x1c, 0x33, 0x17, - 0xa1, 0x36, 0x15, 0x28, 0xda, 0x82, 0xac, 0x13, 0x87, 0x5a, 0x61, 0x42, 0x11, 0xfd, 0xf2, 0x28, - 0xfb, 0x13, 0x51, 0x99, 0x2c, 0x5b, 0x49, 0x08, 0x19, 0x5d, 0x3d, 0xd6, 0xf2, 0x98, 0x43, 0x59, - 0xdb, 0xda, 0x27, 0xb4, 0xbd, 0x2f, 0x0a, 0x93, 0x65, 0x63, 0x31, 0x6d, 0xe6, 0xa2, 0xfe, 0x7b, - 0xaa, 0x1b, 0x6d, 0xc1, 0x6c, 0x2c, 0xaa, 0xb2, 0x67, 0xea, 0xa2, 0xd9, 0x33, 0x13, 0x01, 0x48, - 0x11, 0xf4, 0x36, 0x40, 0x9c, 0x9f, 0x05, 0x50, 0x68, 0x95, 0xb3, 0x33, 0x3d, 0x69, 0x4c, 0x02, - 0x00, 0x75, 0xe0, 0x8a, 0x4b, 0x99, 0xc5, 0x49, 0x67, 0xcf, 0xd2, 0xcc, 0x49, 0xdc, 0xec, 0x25, - 0x78, 0x7a, 0xce, 0xa5, 0xac, 0x49, 0x3a, 0x7b, 0xf5, 0x08, 0x16, 0xbd, 0x01, 0x37, 0x62, 0x3a, - 0x3c, 0x66, 0xed, 0x7b, 0x1d, 0xc7, 0xf2, 0xc9, 0x9e, 0x65, 0x7b, 0x3d, 0x26, 0x0a, 0xd3, 0x8a, - 0xc4, 0x6b, 0x91, 0xc8, 0x26, 0xbb, 0xe7, 0x75, 0x1c, 0x93, 0xec, 0xad, 0xc9, 0x61, 0xf4, 0x32, - 0xc4, 0x5c, 0x58, 0xd4, 0xe1, 0x85, 0x99, 0x72, 0x7a, 0x71, 0xdc, 0x9c, 0x8e, 0x3a, 0x1b, 0x0e, - 0x5f, 0x99, 0x7c, 0xef, 0x51, 0x69, 0xec, 0x8b, 0x47, 0xa5, 0xb1, 0xca, 0x5d, 0x98, 0xde, 0xc5, - 0x1d, 0x9d, 0x74, 0x84, 0xa3, 0x6f, 0xc2, 0x14, 0x0e, 0x1b, 0x05, 0xa3, 0x9c, 0x7e, 0x66, 0xd2, - 0xc6, 0xa2, 0x95, 0x47, 0x06, 0x64, 0xea, 0xbb, 0x5b, 0x98, 0xfa, 0x68, 0x1d, 0xe6, 0xe2, 0xa0, - 0x3d, 0x6f, 0xfe, 0xc7, 0x71, 0x1e, 0x16, 0x80, 0x75, 0x98, 0x7b, 0x10, 0x96, 0x94, 0x08, 0x26, - 0x75, 0x16, 0x4c, 0xa4, 0xa2, 0xfb, 0x13, 0xa6, 0xbe, 0x05, 0x13, 0xc1, 0x0a, 0x39, 0xfa, 0x0e, - 0xbc, 0xd0, 0x95, 0x1f, 0xca, 0xc2, 0xec, 0xf2, 0xc2, 0xc8, 0x40, 0x57, 0xf2, 0xc9, 0xb0, 0x08, - 0xf4, 0x2a, 0xff, 0x32, 0x00, 0xea, 0xbb, 0xbb, 0xdb, 0x3e, 0xed, 0x76, 0x88, 0xb8, 0x2c, 0x93, - 0xef, 0xc3, 0x8b, 0xb1, 0xc9, 0xdc, 0xb7, 0xcf, 0x6d, 0xf6, 0x95, 0x48, 0xad, 0xe9, 0xdb, 0xa7, - 0xa2, 0x39, 0x5c, 0x44, 0x68, 0xe9, 0x73, 0xa3, 0xd5, 0xb9, 0x18, 0xe6, 0xf1, 0xfb, 0x90, 0x8d, - 0x4d, 0xe7, 0xa8, 0x01, 0x93, 0x42, 0x7f, 0x6b, 0x3a, 0x2b, 0xa3, 0xe9, 0x0c, 0xd5, 0x92, 0x94, - 0x46, 0xea, 0x95, 0x7f, 0x4b, 0x56, 0xe3, 0x44, 0xf8, 0x52, 0x05, 0x92, 0xac, 0xf0, 0xba, 0x02, - 0xa7, 0x2f, 0xa1, 0x02, 0x6b, 0xac, 0x04, 0xad, 0x3f, 0x4f, 0xc1, 0x95, 0x9d, 0x30, 0x49, 0xbf, - 0xb4, 0x2c, 0xec, 0xc0, 0x04, 0x61, 0xc2, 0xa7, 0x8a, 0x06, 0xe9, 0xec, 0xaf, 0x8f, 0x72, 0xf6, - 0x29, 0xb6, 0xac, 0x33, 0xe1, 0xf7, 0x93, 0xae, 0x0f, 0xb1, 0x12, 0x34, 0xfc, 0x2e, 0x0d, 0x85, - 0x51, 0xaa, 0xe8, 0x55, 0xc8, 0xd9, 0x3e, 0x51, 0x1d, 0xe1, 0x9e, 0x62, 0xa8, 0x72, 0x38, 0x1b, - 0x76, 0xeb, 0x2d, 0xc5, 0x04, 0x79, 0x40, 0x93, 0x51, 0x25, 0x45, 0x9f, 0xef, 0x44, 0x36, 0x1b, - 0x23, 0xa8, 0x4d, 0x85, 0x40, 0x8e, 0x32, 0x2a, 0x28, 0xee, 0x58, 0x2d, 0xdc, 0xc1, 0xcc, 0x26, - 0xcf, 0x11, 0x09, 0xc3, 0x3b, 0xc0, 0xac, 0x06, 0xad, 0x05, 0x98, 0x68, 0x17, 0x26, 0x42, 0xf8, - 0xf1, 0x4b, 0x80, 0x0f, 0xc1, 0xd0, 0x4b, 0x30, 0x9d, 0xdc, 0x18, 0xd4, 0x39, 0x65, 0xdc, 0xcc, - 0x26, 0xf6, 0x85, 0xb3, 0x76, 0x9e, 0xcc, 0x33, 0x77, 0x1e, 0x7d, 0x14, 0xfc, 0x6d, 0x1a, 0xe6, - 0x4c, 0xe2, 0x7c, 0x05, 0x1d, 0xf7, 0x43, 0x80, 0x20, 0xa9, 0x65, 0xb1, 0x7d, 0x0e, 0xdf, 0x0d, - 0x17, 0x89, 0xa9, 0x00, 0xaf, 0xce, 0xc5, 0xff, 0xca, 0x7b, 0x7f, 0x4a, 0xc1, 0x74, 0xd2, 0x7b, - 0x5f, 0x81, 0x9d, 0x0d, 0x6d, 0xc4, 0x25, 0x6d, 0x5c, 0x95, 0xb4, 0xd7, 0x46, 0x95, 0xb4, 0xa1, - 0xb8, 0x3e, 0xa3, 0x96, 0x7d, 0x90, 0x86, 0xcc, 0x16, 0xf6, 0xb1, 0xcb, 0xd1, 0xe6, 0xd0, 0x19, - 0x37, 0xb8, 0x7f, 0x5e, 0x1f, 0x0a, 0xeb, 0xba, 0x7e, 0x43, 0x09, 0xa2, 0xfa, 0x97, 0xa3, 0x8e, - 0xb8, 0x5f, 0x83, 0x59, 0x79, 0xa5, 0x8e, 0x0c, 0x0a, 0xa8, 0x9c, 0x51, 0xd7, 0xe1, 0xe8, 0x2a, - 0xc6, 0x51, 0x09, 0xb2, 0x52, 0x2c, 0xae, 0xd9, 0x52, 0x06, 0x5c, 0x7c, 0xb8, 0x1e, 0xf4, 0xa0, - 0xdb, 0x80, 0xf6, 0xa3, 0x87, 0x0f, 0x2b, 0x26, 0x42, 0xca, 0xcd, 0xc5, 0x23, 0xa1, 0xf8, 0xff, - 0x03, 0xc8, 0x55, 0x58, 0x0e, 0x61, 0x9e, 0xab, 0x2f, 0x83, 0x53, 0xb2, 0xa7, 0x2e, 0x3b, 0xd0, - 0x4f, 0x83, 0x93, 0xf2, 0x89, 0xcb, 0xb6, 0xbe, 0xb3, 0xdc, 0xbf, 0x58, 0x32, 0xfc, 0xf3, 0xb8, - 0x54, 0xec, 0x63, 0xb7, 0xb3, 0x52, 0x39, 0x05, 0xb2, 0xa2, 0x4e, 0xce, 0x83, 0x97, 0xf4, 0x95, - 0x9b, 0x32, 0x86, 0x8f, 0x3e, 0xff, 0xe8, 0xd6, 0x8d, 0x04, 0xde, 0x61, 0xf4, 0x1a, 0x16, 0xb8, - 0xa2, 0xf2, 0x6b, 0x03, 0x50, 0xbc, 0xb1, 0x98, 0x84, 0x77, 0xe5, 0xfd, 0x50, 0xde, 0x19, 0x12, - 0x67, 0x7b, 0xe3, 0xd9, 0x77, 0x86, 0x58, 0x7f, 0xe0, 0xce, 0x90, 0x48, 0x9c, 0x6f, 0xc7, 0x65, - 0x3c, 0xa5, 0x3d, 0xad, 0xb1, 0x5a, 0x98, 0x93, 0xc4, 0xe5, 0x83, 0x0e, 0x40, 0x84, 0x4a, 0x2a, - 0x1f, 0xc7, 0x2a, 0xc7, 0x06, 0x5c, 0x1f, 0x8a, 0xba, 0x68, 0xc9, 0x36, 0x20, 0x3f, 0x31, 0xa8, - 0xbc, 0xd7, 0xd7, 0x4b, 0x7f, 0xbe, 0x20, 0x9e, 0xf3, 0x87, 0x4a, 0xf7, 0x7f, 0x69, 0x3f, 0xd2, - 0x05, 0xe7, 0x0f, 0x06, 0xcc, 0x27, 0x57, 0x14, 0xd9, 0xd6, 0x84, 0xe9, 0xe4, 0x5a, 0xb4, 0x55, - 0x37, 0xcf, 0x63, 0x55, 0xd2, 0xa0, 0x01, 0x10, 0x69, 0x4b, 0x18, 0xe1, 0xc1, 0xbb, 0xdc, 0x9d, - 0x73, 0xb3, 0x14, 0x2e, 0xec, 0xd4, 0x94, 0x0f, 0x9c, 0xf5, 0x8b, 0x14, 0x8c, 0x6f, 0x79, 0x5e, - 0x07, 0xfd, 0xcc, 0x80, 0x39, 0xe6, 0x09, 0x4b, 0xe6, 0x05, 0x71, 0x2c, 0xfd, 0x30, 0x10, 0x54, - 0xcd, 0xdd, 0x8b, 0xb1, 0xf7, 0xf7, 0xe3, 0xd2, 0x30, 0xd4, 0x20, 0xa5, 0xfa, 0x41, 0x8a, 0x79, - 0xa2, 0xa6, 0x84, 0xb6, 0x83, 0xb7, 0x83, 0x77, 0x61, 0x66, 0x70, 0xfe, 0xa0, 0xd4, 0x9a, 0x17, - 0x9e, 0x7f, 0xe6, 0xcc, 0xb9, 0xa7, 0x5b, 0x89, 0x89, 0x57, 0x26, 0xa5, 0x63, 0xff, 0x21, 0x9d, - 0xfb, 0x0e, 0xe4, 0xa3, 0x52, 0xb4, 0xa3, 0x9e, 0xb7, 0xe4, 0x39, 0x74, 0x22, 0x78, 0xe9, 0x0a, - 0x6f, 0x0b, 0xe5, 0xe4, 0xbb, 0x2a, 0x6e, 0xd9, 0xb4, 0x7a, 0x42, 0x67, 0x80, 0x71, 0xad, 0x7b, - 0xeb, 0x37, 0x06, 0x40, 0xfc, 0x0c, 0x83, 0x5e, 0x87, 0x6b, 0xb5, 0xcd, 0x8d, 0xba, 0xd5, 0xdc, - 0x5e, 0xdd, 0xde, 0x69, 0x5a, 0x3b, 0x1b, 0xcd, 0xad, 0xf5, 0xb5, 0xc6, 0xdd, 0xc6, 0x7a, 0x3d, - 0x3f, 0x56, 0xcc, 0x1d, 0x3d, 0x2c, 0x67, 0x77, 0x18, 0xef, 0x12, 0x9b, 0xee, 0x51, 0xe2, 0xa0, - 0x57, 0x60, 0x7e, 0x50, 0x5a, 0xb6, 0xd6, 0xeb, 0x79, 0xa3, 0x38, 0x7d, 0xf4, 0xb0, 0x3c, 0x19, - 0x1c, 0x3f, 0x89, 0x83, 0x16, 0xe1, 0xc5, 0x61, 0xb9, 0xc6, 0xc6, 0x9b, 0xf9, 0x54, 0x71, 0xe6, - 0xe8, 0x61, 0x79, 0x2a, 0x3a, 0xa7, 0xa2, 0x0a, 0xa0, 0xa4, 0xa4, 0xc6, 0x4b, 0x17, 0xe1, 0xe8, - 0x61, 0x39, 0x13, 0xb8, 0xa5, 0x38, 0xfe, 0xde, 0xaf, 0x16, 0xc6, 0x6e, 0xfd, 0x18, 0xa0, 0xc1, - 0xf6, 0x7c, 0x6c, 0xab, 0x80, 0x2c, 0xc2, 0xd5, 0xc6, 0xc6, 0x5d, 0x73, 0x75, 0x6d, 0xbb, 0xb1, - 0xb9, 0x31, 0xb8, 0xec, 0x13, 0x63, 0xf5, 0xcd, 0x9d, 0xda, 0xfd, 0x75, 0xab, 0xd9, 0x78, 0x73, - 0x23, 0x6f, 0xa0, 0x6b, 0x70, 0x65, 0x60, 0xec, 0x7b, 0x1b, 0xdb, 0x8d, 0xb7, 0xd7, 0xf3, 0xa9, - 0xda, 0xdd, 0x4f, 0x9f, 0x2c, 0x18, 0x8f, 0x9f, 0x2c, 0x18, 0x7f, 0x7b, 0xb2, 0x60, 0xbc, 0xff, - 0x74, 0x61, 0xec, 0xf1, 0xd3, 0x85, 0xb1, 0x3f, 0x3f, 0x5d, 0x18, 0xfb, 0xc1, 0xeb, 0xcf, 0x74, - 0x78, 0x5c, 0x25, 0x95, 0xeb, 0x5b, 0x19, 0xb5, 0x1f, 0x7d, 0xe3, 0x3f, 0x01, 0x00, 0x00, 0xff, - 0xff, 0xb5, 0x76, 0x71, 0x6f, 0x52, 0x18, 0x00, 0x00, + 0x15, 0xd6, 0x92, 0x32, 0x25, 0x3d, 0x4a, 0x22, 0x35, 0x27, 0xdf, 0xf1, 0x78, 0x89, 0x48, 0xd3, + 0x17, 0x5b, 0x3e, 0xf8, 0xa8, 0x9c, 0x02, 0xa4, 0x50, 0x8c, 0x04, 0xa2, 0xa8, 0xf3, 0xd1, 0xb1, + 0x25, 0x61, 0x29, 0x29, 0x71, 0x7e, 0xb0, 0x18, 0xee, 0x8e, 0xa8, 0x89, 0xb8, 0xb3, 0xc4, 0xce, + 0xf0, 0x2c, 0xb6, 0x41, 0x0a, 0x43, 0x45, 0x62, 0x20, 0x4d, 0x9a, 0x03, 0x0e, 0x48, 0x11, 0xa7, + 0x73, 0x61, 0xc4, 0x45, 0x90, 0x22, 0x9d, 0x93, 0x34, 0x07, 0x57, 0x41, 0x0a, 0x25, 0xb8, 0x2b, + 0x6c, 0xa4, 0x0a, 0xd2, 0x25, 0x55, 0x30, 0xb3, 0xb3, 0x3f, 0x14, 0xc5, 0x93, 0x74, 0x50, 0x0c, + 0x03, 0x6e, 0xc8, 0x9d, 0x99, 0xf7, 0xbe, 0x99, 0xf7, 0xbd, 0x9f, 0xf9, 0x81, 0x9b, 0xb6, 0xc7, + 0x5d, 0x8f, 0x2f, 0x71, 0x81, 0x0f, 0x28, 0x6b, 0x2f, 0xdd, 0xbf, 0xd3, 0x22, 0x02, 0xdf, 0x09, + 0xdb, 0xd5, 0xae, 0xef, 0x09, 0x0f, 0x5d, 0x0d, 0xa4, 0xaa, 0x61, 0xaf, 0x96, 0x2a, 0xce, 0xb7, + 0xbd, 0xb6, 0xa7, 0x44, 0x96, 0xe4, 0x57, 0x20, 0x5d, 0xbc, 0xde, 0xf6, 0xbc, 0x76, 0x87, 0x2c, + 0xa9, 0x56, 0xab, 0xb7, 0xb7, 0x84, 0x59, 0x5f, 0x0f, 0x2d, 0x9c, 0x1c, 0x72, 0x7a, 0x3e, 0x16, + 0xd4, 0x63, 0x7a, 0xbc, 0x74, 0x72, 0x5c, 0x50, 0x97, 0x70, 0x81, 0xdd, 0x6e, 0x88, 0x1d, 0xac, + 0xc4, 0x0a, 0x26, 0xd5, 0xcb, 0xd2, 0xd8, 0xda, 0x94, 0x16, 0xe6, 0x24, 0xb2, 0xc3, 0xf6, 0x68, + 0x88, 0x3d, 0x87, 0x5d, 0xca, 0xbc, 0x25, 0xf5, 0xab, 0xbb, 0xbe, 0x22, 0x08, 0x73, 0x88, 0xef, + 0x52, 0x26, 0x96, 0x44, 0xbf, 0x4b, 0x78, 0xf0, 0xab, 0x47, 0x6f, 0x24, 0x46, 0x71, 0xcb, 0xa6, + 0xc9, 0xc1, 0xca, 0x2f, 0x0d, 0x98, 0xbd, 0x47, 0xb9, 0xf0, 0x7c, 0x6a, 0xe3, 0x4e, 0x83, 0xed, + 0x79, 0xe8, 0x5b, 0x90, 0xd9, 0x27, 0xd8, 0x21, 0x7e, 0xc1, 0x28, 0x1b, 0x8b, 0xd9, 0xe5, 0x42, + 0x35, 0x06, 0xa8, 0x06, 0xba, 0xf7, 0xd4, 0x78, 0x6d, 0xea, 0xe3, 0xe3, 0xd2, 0xd8, 0xfb, 0x9f, + 0x7e, 0x70, 0xcb, 0x30, 0xb5, 0x0a, 0xaa, 0x43, 0xe6, 0x3e, 0xee, 0x70, 0x22, 0x0a, 0xa9, 0x72, + 0x7a, 0x31, 0xbb, 0xfc, 0x42, 0xf5, 0x74, 0xce, 0xab, 0xbb, 0xb8, 0x43, 0x1d, 0x2c, 0xbc, 0x41, + 0x94, 0x40, 0xb7, 0xf2, 0x51, 0x0a, 0x72, 0x6b, 0x9e, 0xeb, 0x52, 0xce, 0xa9, 0xc7, 0x4c, 0x2c, + 0x08, 0x47, 0x3b, 0x30, 0xee, 0x63, 0x41, 0xd4, 0xa2, 0xa6, 0x6a, 0xab, 0x52, 0xe9, 0x6f, 0xc7, + 0xa5, 0x97, 0xda, 0x54, 0xec, 0xf7, 0x5a, 0x55, 0xdb, 0x73, 0x35, 0x8d, 0xfa, 0xef, 0x36, 0x77, + 0x0e, 0xb4, 0xa5, 0x75, 0x62, 0x7f, 0xf2, 0xe1, 0x6d, 0xd0, 0x0b, 0xa9, 0x13, 0x3b, 0x98, 0x4c, + 0xc1, 0xa1, 0x1f, 0xc1, 0xa4, 0x8b, 0x0f, 0x2d, 0x05, 0x9d, 0xba, 0x2c, 0xe8, 0x09, 0x17, 0x1f, + 0xca, 0x55, 0x23, 0x0a, 0x39, 0x89, 0x6e, 0xef, 0x63, 0xd6, 0x26, 0xc1, 0x24, 0xe9, 0xcb, 0x9a, + 0x64, 0xc6, 0xc5, 0x87, 0x6b, 0x0a, 0x58, 0x4e, 0xb5, 0x32, 0xfe, 0xd9, 0xc3, 0x92, 0x51, 0xf9, + 0xa3, 0x01, 0x10, 0x33, 0x87, 0x30, 0xe4, 0xed, 0xa8, 0xa5, 0xe6, 0xe7, 0xda, 0xab, 0x2f, 0x8f, + 0x72, 0xcc, 0x09, 0xde, 0x6b, 0x33, 0x72, 0xa5, 0x8f, 0x8e, 0x4b, 0x46, 0x30, 0x6b, 0xce, 0x3e, + 0xe1, 0x97, 0x37, 0x20, 0xdb, 0xeb, 0x3a, 0x58, 0x10, 0x4b, 0x06, 0xb9, 0xe2, 0x30, 0xbb, 0x5c, + 0xac, 0x06, 0x19, 0x50, 0x0d, 0x33, 0xa0, 0xba, 0x1d, 0x66, 0x40, 0x00, 0xf8, 0xde, 0xdf, 0x43, + 0x40, 0x08, 0xb4, 0xe5, 0xb8, 0xb6, 0xe1, 0x7d, 0x03, 0xb2, 0x75, 0xc2, 0x6d, 0x9f, 0x76, 0x65, + 0x4e, 0xa1, 0x02, 0x4c, 0xb8, 0x1e, 0xa3, 0x07, 0x3a, 0x22, 0xa7, 0xcc, 0xb0, 0x89, 0x8a, 0x30, + 0x49, 0x1d, 0xc2, 0x04, 0x15, 0xfd, 0xc0, 0x79, 0x66, 0xd4, 0x96, 0x5a, 0xef, 0x90, 0x16, 0xa7, + 0x21, 0xe5, 0x66, 0xd8, 0x44, 0xaf, 0x40, 0x9e, 0x13, 0xbb, 0xe7, 0x53, 0xd1, 0xb7, 0x6c, 0x8f, + 0x09, 0x6c, 0x8b, 0xc2, 0xb8, 0x12, 0xc9, 0x85, 0xfd, 0x6b, 0x41, 0xb7, 0x04, 0x71, 0x88, 0xc0, + 0xb4, 0xc3, 0x0b, 0xcf, 0x05, 0x20, 0xba, 0xa9, 0x97, 0xfa, 0xd1, 0x04, 0x4c, 0x45, 0x91, 0x8c, + 0xd6, 0x20, 0xef, 0x75, 0x89, 0x2f, 0xbf, 0x2d, 0xec, 0x38, 0x3e, 0xe1, 0x5c, 0x87, 0x6b, 0xe1, + 0x93, 0x0f, 0x6f, 0xcf, 0x6b, 0xc2, 0x57, 0x83, 0x91, 0xa6, 0xf0, 0x29, 0x6b, 0x9b, 0xb9, 0x50, + 0x43, 0x77, 0xa3, 0xb7, 0xa5, 0xcb, 0x18, 0x27, 0x8c, 0xf7, 0xb8, 0xd5, 0xed, 0xb5, 0x0e, 0x48, + 0x5f, 0x93, 0x3a, 0x3f, 0x44, 0xea, 0x2a, 0xeb, 0xd7, 0x0a, 0x7f, 0x8e, 0xa1, 0x6d, 0xbf, 0xdf, + 0x15, 0x5e, 0x75, 0xab, 0xd7, 0xfa, 0x2e, 0xe9, 0x4b, 0x57, 0x69, 0x9c, 0x2d, 0x05, 0x83, 0xae, + 0x42, 0xe6, 0x27, 0x98, 0x76, 0x88, 0xa3, 0x18, 0x99, 0x34, 0x75, 0x0b, 0xad, 0x40, 0x86, 0x0b, + 0x2c, 0x7a, 0x5c, 0xd1, 0x30, 0xbb, 0x5c, 0x19, 0x15, 0x1b, 0x35, 0x8f, 0x39, 0x4d, 0x25, 0x69, + 0x6a, 0x0d, 0xb4, 0x0d, 0x19, 0xe1, 0x1d, 0x10, 0xa6, 0x09, 0xaa, 0xbd, 0x76, 0x81, 0xc0, 0x6e, + 0x30, 0x91, 0x08, 0xec, 0x06, 0x13, 0xa6, 0xc6, 0x42, 0x6d, 0xc8, 0x3b, 0xa4, 0x43, 0xda, 0x8a, + 0x4a, 0xbe, 0x8f, 0x7d, 0xc2, 0x0b, 0x99, 0x0b, 0xe3, 0x0f, 0x25, 0x8e, 0x99, 0x8b, 0x50, 0x9b, + 0x0a, 0x14, 0x6d, 0x41, 0xd6, 0x89, 0x43, 0xad, 0x30, 0xa1, 0x88, 0x7e, 0x71, 0x94, 0xfd, 0x89, + 0xa8, 0x4c, 0x96, 0xad, 0x24, 0x84, 0x8c, 0xae, 0x1e, 0x6b, 0x79, 0xcc, 0xa1, 0xac, 0x6d, 0xed, + 0x13, 0xda, 0xde, 0x17, 0x85, 0xc9, 0xb2, 0xb1, 0x98, 0x36, 0x73, 0x51, 0xff, 0x3d, 0xd5, 0x8d, + 0xb6, 0x60, 0x36, 0x16, 0x55, 0xd9, 0x33, 0x75, 0xd1, 0xec, 0x99, 0x89, 0x00, 0xa4, 0x08, 0x7a, + 0x0b, 0x20, 0xce, 0xcf, 0x02, 0x28, 0xb4, 0xca, 0xd9, 0x99, 0x9e, 0x34, 0x26, 0x01, 0x80, 0x3a, + 0x70, 0xc5, 0xa5, 0xcc, 0xe2, 0xa4, 0xb3, 0x67, 0x69, 0xe6, 0x24, 0x6e, 0xf6, 0x12, 0x3c, 0x3d, + 0xe7, 0x52, 0xd6, 0x24, 0x9d, 0xbd, 0x7a, 0x04, 0x8b, 0x5e, 0x83, 0x1b, 0x31, 0x1d, 0x1e, 0xb3, + 0xf6, 0xbd, 0x8e, 0x63, 0xf9, 0x64, 0xcf, 0xb2, 0xbd, 0x1e, 0x13, 0x85, 0x69, 0x45, 0xe2, 0xb5, + 0x48, 0x64, 0x93, 0xdd, 0xf3, 0x3a, 0x8e, 0x49, 0xf6, 0xd6, 0xe4, 0x30, 0x7a, 0x11, 0x62, 0x2e, + 0x2c, 0xea, 0xf0, 0xc2, 0x4c, 0x39, 0xbd, 0x38, 0x6e, 0x4e, 0x47, 0x9d, 0x0d, 0x87, 0xaf, 0x4c, + 0xbe, 0xfb, 0xb0, 0x34, 0xf6, 0xd9, 0xc3, 0xd2, 0x58, 0xe5, 0x2e, 0x4c, 0xef, 0xe2, 0x8e, 0x4e, + 0x3a, 0xc2, 0xd1, 0x37, 0x61, 0x0a, 0x87, 0x8d, 0x82, 0x51, 0x4e, 0x3f, 0x35, 0x69, 0x63, 0xd1, + 0xca, 0x43, 0x03, 0x32, 0xf5, 0xdd, 0x2d, 0x4c, 0x7d, 0xb4, 0x0e, 0x73, 0x71, 0xd0, 0x9e, 0x37, + 0xff, 0xe3, 0x38, 0x0f, 0x0b, 0xc0, 0x3a, 0xcc, 0xdd, 0x0f, 0x4b, 0x4a, 0x04, 0x93, 0x3a, 0x0b, + 0x26, 0x52, 0xd1, 0xfd, 0x09, 0x53, 0xdf, 0x80, 0x89, 0x60, 0x85, 0x1c, 0x7d, 0x07, 0x9e, 0xeb, + 0xca, 0x0f, 0x65, 0x61, 0x76, 0x79, 0x61, 0x64, 0xa0, 0x2b, 0xf9, 0x64, 0x58, 0x04, 0x7a, 0x95, + 0xff, 0x18, 0x00, 0xf5, 0xdd, 0xdd, 0x6d, 0x9f, 0x76, 0x3b, 0x44, 0x5c, 0x96, 0xc9, 0x6f, 0xc2, + 0xf3, 0xb1, 0xc9, 0xdc, 0xb7, 0xcf, 0x6d, 0xf6, 0x95, 0x48, 0xad, 0xe9, 0xdb, 0xa7, 0xa2, 0x39, + 0x5c, 0x44, 0x68, 0xe9, 0x73, 0xa3, 0xd5, 0xb9, 0x18, 0xe6, 0xf1, 0xfb, 0x90, 0x8d, 0x4d, 0xe7, + 0xa8, 0x01, 0x93, 0x42, 0x7f, 0x6b, 0x3a, 0x2b, 0xa3, 0xe9, 0x0c, 0xd5, 0x92, 0x94, 0x46, 0xea, + 0x95, 0xff, 0x4a, 0x56, 0xe3, 0x44, 0xf8, 0x42, 0x05, 0x92, 0xac, 0xf0, 0xba, 0x02, 0xa7, 0x2f, + 0xa1, 0x02, 0x6b, 0xac, 0x04, 0xad, 0x3f, 0x4b, 0xc1, 0x95, 0x9d, 0x30, 0x49, 0xbf, 0xb0, 0x2c, + 0xec, 0xc0, 0x04, 0x61, 0xc2, 0xa7, 0x8a, 0x06, 0xe9, 0xec, 0xaf, 0x8f, 0x72, 0xf6, 0x29, 0xb6, + 0xac, 0x33, 0xe1, 0xf7, 0x93, 0xae, 0x0f, 0xb1, 0x12, 0x34, 0xfc, 0x21, 0x0d, 0x85, 0x51, 0xaa, + 0xe8, 0x65, 0xc8, 0xd9, 0x3e, 0x51, 0x1d, 0xe1, 0x9e, 0x62, 0xa8, 0x72, 0x38, 0x1b, 0x76, 0xeb, + 0x2d, 0xc5, 0x04, 0x79, 0x40, 0x93, 0x51, 0x25, 0x45, 0x9f, 0xed, 0x44, 0x36, 0x1b, 0x23, 0xa8, + 0x4d, 0x85, 0x40, 0x8e, 0x32, 0x2a, 0x28, 0xee, 0x58, 0x2d, 0xdc, 0xc1, 0xcc, 0x26, 0xcf, 0x10, + 0x09, 0xc3, 0x3b, 0xc0, 0xac, 0x06, 0xad, 0x05, 0x98, 0x68, 0x17, 0x26, 0x42, 0xf8, 0xf1, 0x4b, + 0x80, 0x0f, 0xc1, 0xd0, 0x0b, 0x30, 0x9d, 0xdc, 0x18, 0xd4, 0x39, 0x65, 0xdc, 0xcc, 0x26, 0xf6, + 0x85, 0xb3, 0x76, 0x9e, 0xcc, 0x53, 0x77, 0x1e, 0x7d, 0x14, 0xfc, 0x7d, 0x1a, 0xe6, 0x4c, 0xe2, + 0x7c, 0x09, 0x1d, 0xf7, 0x43, 0x80, 0x20, 0xa9, 0x65, 0xb1, 0x7d, 0x06, 0xdf, 0x0d, 0x17, 0x89, + 0xa9, 0x00, 0xaf, 0xce, 0xc5, 0xe7, 0xe5, 0xbd, 0xbf, 0xa4, 0x60, 0x3a, 0xe9, 0xbd, 0x2f, 0xc1, + 0xce, 0x86, 0x36, 0xe2, 0x92, 0x36, 0xae, 0x4a, 0xda, 0x2b, 0xa3, 0x4a, 0xda, 0x50, 0x5c, 0x9f, + 0x51, 0xcb, 0x7e, 0x93, 0x86, 0xcc, 0x16, 0xf6, 0xb1, 0xcb, 0xd1, 0xe6, 0xd0, 0x19, 0x37, 0xb8, + 0x7f, 0x5e, 0x1f, 0x0a, 0xeb, 0xba, 0x7e, 0x43, 0x09, 0xa2, 0xfa, 0x57, 0xa3, 0x8e, 0xb8, 0x5f, + 0x83, 0x59, 0x79, 0xa5, 0x8e, 0x0c, 0x0a, 0xa8, 0x9c, 0x51, 0xd7, 0xe1, 0xe8, 0x2a, 0xc6, 0x51, + 0x09, 0xb2, 0x52, 0x2c, 0xae, 0xd9, 0x52, 0x06, 0x5c, 0x7c, 0xb8, 0x1e, 0xf4, 0xa0, 0xdb, 0x80, + 0xf6, 0xa3, 0x87, 0x0f, 0x2b, 0x26, 0x42, 0xca, 0xcd, 0xc5, 0x23, 0xa1, 0xf8, 0x57, 0x01, 0xe4, + 0x2a, 0x2c, 0x87, 0x30, 0xcf, 0xd5, 0x97, 0xc1, 0x29, 0xd9, 0x53, 0x97, 0x1d, 0xe8, 0x17, 0x46, + 0x70, 0x54, 0x3e, 0x71, 0xdb, 0xd6, 0x97, 0x16, 0xeb, 0x62, 0xd9, 0xf0, 0xef, 0xe3, 0x52, 0xb1, + 0x8f, 0xdd, 0xce, 0x4a, 0xe5, 0x14, 0xc8, 0xca, 0x69, 0x6f, 0x01, 0xf2, 0x34, 0x3d, 0x78, 0x71, + 0x5f, 0xb9, 0x29, 0xe3, 0xfa, 0xe8, 0xd3, 0x0f, 0x6e, 0xdd, 0x48, 0x4c, 0x71, 0x18, 0xbd, 0x90, + 0x05, 0xee, 0xa9, 0xfc, 0xd6, 0x00, 0x14, 0x6f, 0x36, 0x26, 0xe1, 0x5d, 0x79, 0x67, 0x94, 0xf7, + 0x88, 0xc4, 0x79, 0xdf, 0x78, 0xfa, 0x3d, 0x22, 0xd6, 0x1f, 0xb8, 0x47, 0x24, 0x92, 0xe9, 0xdb, + 0x71, 0x69, 0x4f, 0x69, 0xef, 0x6b, 0xac, 0x16, 0xe6, 0x24, 0x71, 0x21, 0xa1, 0x03, 0x10, 0xa1, + 0x92, 0xca, 0xd1, 0xb1, 0xca, 0xb1, 0x01, 0xd7, 0x87, 0x22, 0x31, 0x5a, 0xb2, 0x0d, 0xc8, 0x4f, + 0x0c, 0x2a, 0x8f, 0xf6, 0xf5, 0xd2, 0x9f, 0x2d, 0xb0, 0xe7, 0xfc, 0xa1, 0x72, 0xfe, 0x7f, 0xda, + 0xa3, 0x74, 0x11, 0xfa, 0x93, 0x01, 0xf3, 0xc9, 0x15, 0x45, 0xb6, 0x35, 0x61, 0x3a, 0xb9, 0x16, + 0x6d, 0xd5, 0xcd, 0xf3, 0x58, 0x95, 0x34, 0x68, 0x00, 0x44, 0xda, 0x12, 0x46, 0x7d, 0xf0, 0x56, + 0x77, 0xe7, 0xdc, 0x2c, 0x85, 0x0b, 0x3b, 0xb5, 0x0c, 0x04, 0xce, 0xfa, 0x79, 0x0a, 0xc6, 0xb7, + 0x3c, 0xaf, 0x83, 0x7e, 0x6a, 0xc0, 0x1c, 0xf3, 0x84, 0x25, 0x73, 0x85, 0x38, 0x96, 0x7e, 0x2c, + 0x08, 0x2a, 0xe9, 0xee, 0xc5, 0xd8, 0xfb, 0xe7, 0x71, 0x69, 0x18, 0x6a, 0x90, 0x52, 0xfd, 0x48, + 0xc5, 0x3c, 0x51, 0x53, 0x42, 0xdb, 0xc1, 0x7b, 0xc2, 0x3b, 0x30, 0x33, 0x38, 0x7f, 0x50, 0x7e, + 0xcd, 0x0b, 0xcf, 0x3f, 0x73, 0xe6, 0xdc, 0xd3, 0xad, 0xc4, 0xc4, 0x2b, 0x93, 0xd2, 0xb1, 0xff, + 0x92, 0xce, 0x7d, 0x1b, 0xf2, 0x51, 0x79, 0xda, 0x51, 0x4f, 0x5e, 0xf2, 0x6c, 0x3a, 0x11, 0xbc, + 0x7e, 0x85, 0x37, 0x88, 0x72, 0xf2, 0xad, 0x15, 0xb7, 0x6c, 0x5a, 0x3d, 0xa1, 0x33, 0xc0, 0xb8, + 0xd6, 0xbd, 0xf5, 0x3b, 0x03, 0x20, 0x7e, 0x9a, 0x41, 0xaf, 0xc2, 0xb5, 0xda, 0xe6, 0x46, 0xdd, + 0x6a, 0x6e, 0xaf, 0x6e, 0xef, 0x34, 0xad, 0x9d, 0x8d, 0xe6, 0xd6, 0xfa, 0x5a, 0xe3, 0x6e, 0x63, + 0xbd, 0x9e, 0x1f, 0x2b, 0xe6, 0x8e, 0x1e, 0x94, 0xb3, 0x3b, 0x8c, 0x77, 0x89, 0x4d, 0xf7, 0x28, + 0x71, 0xd0, 0x4b, 0x30, 0x3f, 0x28, 0x2d, 0x5b, 0xeb, 0xf5, 0xbc, 0x51, 0x9c, 0x3e, 0x7a, 0x50, + 0x9e, 0x0c, 0x8e, 0xa4, 0xc4, 0x41, 0x8b, 0xf0, 0xfc, 0xb0, 0x5c, 0x63, 0xe3, 0xf5, 0x7c, 0xaa, + 0x38, 0x73, 0xf4, 0xa0, 0x3c, 0x15, 0x9d, 0x5d, 0x51, 0x05, 0x50, 0x52, 0x52, 0xe3, 0xa5, 0x8b, + 0x70, 0xf4, 0xa0, 0x9c, 0x09, 0xdc, 0x52, 0x1c, 0x7f, 0xf7, 0xd7, 0x0b, 0x63, 0xb7, 0x7e, 0x0c, + 0xd0, 0x60, 0x7b, 0x3e, 0xb6, 0x55, 0x40, 0x16, 0xe1, 0x6a, 0x63, 0xe3, 0xae, 0xb9, 0xba, 0xb6, + 0xdd, 0xd8, 0xdc, 0x18, 0x5c, 0xf6, 0x89, 0xb1, 0xfa, 0xe6, 0x4e, 0xed, 0xcd, 0x75, 0xab, 0xd9, + 0x78, 0x7d, 0x23, 0x6f, 0xa0, 0x6b, 0x70, 0x65, 0x60, 0xec, 0x7b, 0x1b, 0xdb, 0x8d, 0xb7, 0xd6, + 0xf3, 0xa9, 0xda, 0xdd, 0x8f, 0x1f, 0x2f, 0x18, 0x8f, 0x1e, 0x2f, 0x18, 0xff, 0x78, 0xbc, 0x60, + 0xbc, 0xf7, 0x64, 0x61, 0xec, 0xd1, 0x93, 0x85, 0xb1, 0xbf, 0x3e, 0x59, 0x18, 0xfb, 0xc1, 0xab, + 0x4f, 0x75, 0x78, 0x5c, 0x25, 0x95, 0xeb, 0x5b, 0x19, 0xb5, 0x47, 0x7d, 0xe3, 0x7f, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x93, 0xd7, 0xc2, 0x0d, 0x66, 0x18, 0x00, 0x00, } func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { @@ -1403,671 +1403,671 @@ func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_go func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 10615 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0xbd, 0x7b, 0x70, 0x24, 0xd7, - 0x75, 0x1f, 0x8c, 0x79, 0xcf, 0x9c, 0x19, 0xcc, 0x34, 0x2e, 0xc0, 0x5d, 0xec, 0x2c, 0x09, 0x80, - 0xcd, 0xc7, 0x3e, 0x48, 0x62, 0xc9, 0x25, 0x77, 0x49, 0x62, 0x45, 0xd1, 0x33, 0x83, 0xd9, 0x5d, - 0x2c, 0xf1, 0x52, 0x0f, 0xb0, 0x7c, 0xd8, 0x52, 0xab, 0x31, 0x73, 0x01, 0x34, 0x77, 0xa6, 0xbb, - 0xd5, 0xdd, 0xb3, 0x0b, 0xb0, 0x5c, 0x5f, 0xd1, 0x96, 0xfd, 0x45, 0xde, 0x38, 0x8a, 0x2c, 0xa5, - 0x6c, 0x59, 0xd6, 0x2a, 0x94, 0x15, 0x4b, 0xb2, 0x93, 0x38, 0xb2, 0xa5, 0x48, 0x72, 0x5c, 0x76, - 0xc9, 0xa9, 0x3c, 0x64, 0x27, 0x95, 0x92, 0x54, 0xa9, 0xc4, 0x95, 0x4a, 0x68, 0x87, 0x52, 0x45, - 0x8a, 0x2c, 0xc7, 0xb6, 0x4c, 0x27, 0x71, 0x54, 0xa9, 0xa4, 0xee, 0xab, 0x1f, 0xf3, 0x40, 0x0f, - 0x56, 0x24, 0xed, 0x94, 0xfe, 0xd9, 0x9d, 0xbe, 0xf7, 0x9c, 0x5f, 0xdf, 0x7b, 0xee, 0xb9, 0xe7, - 0x9e, 0x73, 0xee, 0xed, 0x0b, 0xf8, 0xf3, 0x0b, 0x30, 0xb7, 0x63, 0x9a, 0x3b, 0x6d, 0x7c, 0xc6, - 0xb2, 0x4d, 0xd7, 0xdc, 0xea, 0x6e, 0x9f, 0x69, 0x61, 0xa7, 0x69, 0xeb, 0x96, 0x6b, 0xda, 0xf3, - 0xb4, 0x0c, 0x95, 0x18, 0xc5, 0xbc, 0xa0, 0x90, 0x57, 0x60, 0xe2, 0xa2, 0xde, 0xc6, 0x8b, 0x1e, - 0x61, 0x03, 0xbb, 0xe8, 0x09, 0x48, 0x6e, 0xeb, 0x6d, 0x3c, 0x1d, 0x9b, 0x4b, 0x9c, 0xcc, 0x9f, - 0xbd, 0x77, 0xbe, 0x87, 0x69, 0x3e, 0xcc, 0xb1, 0x4e, 0x8a, 0x15, 0xca, 0x21, 0x7f, 0x23, 0x09, - 0x93, 0x03, 0x6a, 0x11, 0x82, 0xa4, 0xa1, 0x75, 0x08, 0x62, 0xec, 0x64, 0x4e, 0xa1, 0xbf, 0xd1, - 0x34, 0x64, 0x2c, 0xad, 0x79, 0x4d, 0xdb, 0xc1, 0xd3, 0x71, 0x5a, 0x2c, 0x1e, 0xd1, 0x0c, 0x40, - 0x0b, 0x5b, 0xd8, 0x68, 0x61, 0xa3, 0xb9, 0x3f, 0x9d, 0x98, 0x4b, 0x9c, 0xcc, 0x29, 0x81, 0x12, - 0xf4, 0x00, 0x4c, 0x58, 0xdd, 0xad, 0xb6, 0xde, 0x54, 0x03, 0x64, 0x30, 0x97, 0x38, 0x99, 0x52, - 0x24, 0x56, 0xb1, 0xe8, 0x13, 0x9f, 0x80, 0xd2, 0x0d, 0xac, 0x5d, 0x0b, 0x92, 0xe6, 0x29, 0x69, - 0x91, 0x14, 0x07, 0x08, 0x6b, 0x50, 0xe8, 0x60, 0xc7, 0xd1, 0x76, 0xb0, 0xea, 0xee, 0x5b, 0x78, - 0x3a, 0x49, 0x7b, 0x3f, 0xd7, 0xd7, 0xfb, 0xde, 0x9e, 0xe7, 0x39, 0xd7, 0xc6, 0xbe, 0x85, 0x51, - 0x05, 0x72, 0xd8, 0xe8, 0x76, 0x18, 0x42, 0x6a, 0x88, 0xfc, 0xea, 0x46, 0xb7, 0xd3, 0x8b, 0x92, - 0x25, 0x6c, 0x1c, 0x22, 0xe3, 0x60, 0xfb, 0xba, 0xde, 0xc4, 0xd3, 0x69, 0x0a, 0x70, 0xa2, 0x0f, - 0xa0, 0xc1, 0xea, 0x7b, 0x31, 0x04, 0x1f, 0xaa, 0x41, 0x0e, 0xef, 0xb9, 0xd8, 0x70, 0x74, 0xd3, - 0x98, 0xce, 0x50, 0x90, 0xfb, 0x06, 0x8c, 0x22, 0x6e, 0xb7, 0x7a, 0x21, 0x7c, 0x3e, 0x74, 0x1e, - 0x32, 0xa6, 0xe5, 0xea, 0xa6, 0xe1, 0x4c, 0x67, 0xe7, 0x62, 0x27, 0xf3, 0x67, 0xef, 0x1c, 0xa8, - 0x08, 0x6b, 0x8c, 0x46, 0x11, 0xc4, 0x68, 0x09, 0x24, 0xc7, 0xec, 0xda, 0x4d, 0xac, 0x36, 0xcd, - 0x16, 0x56, 0x75, 0x63, 0xdb, 0x9c, 0xce, 0x51, 0x80, 0xd9, 0xfe, 0x8e, 0x50, 0xc2, 0x9a, 0xd9, - 0xc2, 0x4b, 0xc6, 0xb6, 0xa9, 0x14, 0x9d, 0xd0, 0x33, 0x3a, 0x02, 0x69, 0x67, 0xdf, 0x70, 0xb5, - 0xbd, 0xe9, 0x02, 0xd5, 0x10, 0xfe, 0x24, 0xff, 0x46, 0x1a, 0x4a, 0xa3, 0xa8, 0xd8, 0x05, 0x48, - 0x6d, 0x93, 0x5e, 0x4e, 0xc7, 0x0f, 0x23, 0x03, 0xc6, 0x13, 0x16, 0x62, 0xfa, 0x36, 0x85, 0x58, - 0x81, 0xbc, 0x81, 0x1d, 0x17, 0xb7, 0x98, 0x46, 0x24, 0x46, 0xd4, 0x29, 0x60, 0x4c, 0xfd, 0x2a, - 0x95, 0xbc, 0x2d, 0x95, 0x7a, 0x0e, 0x4a, 0x5e, 0x93, 0x54, 0x5b, 0x33, 0x76, 0x84, 0x6e, 0x9e, - 0x89, 0x6a, 0xc9, 0x7c, 0x5d, 0xf0, 0x29, 0x84, 0x4d, 0x29, 0xe2, 0xd0, 0x33, 0x5a, 0x04, 0x30, - 0x0d, 0x6c, 0x6e, 0xab, 0x2d, 0xdc, 0x6c, 0x4f, 0x67, 0x87, 0x48, 0x69, 0x8d, 0x90, 0xf4, 0x49, - 0xc9, 0x64, 0xa5, 0xcd, 0x36, 0x7a, 0xd2, 0x57, 0xb5, 0xcc, 0x10, 0x4d, 0x59, 0x61, 0x93, 0xac, - 0x4f, 0xdb, 0x36, 0xa1, 0x68, 0x63, 0xa2, 0xf7, 0xb8, 0xc5, 0x7b, 0x96, 0xa3, 0x8d, 0x98, 0x8f, - 0xec, 0x99, 0xc2, 0xd9, 0x58, 0xc7, 0xc6, 0xed, 0xe0, 0x23, 0xba, 0x07, 0xbc, 0x02, 0x95, 0xaa, - 0x15, 0x50, 0x2b, 0x54, 0x10, 0x85, 0xab, 0x5a, 0x07, 0x97, 0x5f, 0x82, 0x62, 0x58, 0x3c, 0x68, - 0x0a, 0x52, 0x8e, 0xab, 0xd9, 0x2e, 0xd5, 0xc2, 0x94, 0xc2, 0x1e, 0x90, 0x04, 0x09, 0x6c, 0xb4, - 0xa8, 0x95, 0x4b, 0x29, 0xe4, 0x27, 0xfa, 0x21, 0xbf, 0xc3, 0x09, 0xda, 0xe1, 0xfb, 0xfb, 0x47, - 0x34, 0x84, 0xdc, 0xdb, 0xef, 0xf2, 0xe3, 0x30, 0x1e, 0xea, 0xc0, 0xa8, 0xaf, 0x96, 0x7f, 0x14, - 0xee, 0x18, 0x08, 0x8d, 0x9e, 0x83, 0xa9, 0xae, 0xa1, 0x1b, 0x2e, 0xb6, 0x2d, 0x1b, 0x13, 0x8d, - 0x65, 0xaf, 0x9a, 0xfe, 0x66, 0x66, 0x88, 0xce, 0x6d, 0x06, 0xa9, 0x19, 0x8a, 0x32, 0xd9, 0xed, - 0x2f, 0x3c, 0x9d, 0xcb, 0x7e, 0x2b, 0x23, 0xbd, 0xfc, 0xf2, 0xcb, 0x2f, 0xc7, 0xe5, 0xdf, 0x49, - 0xc3, 0xd4, 0xa0, 0x39, 0x33, 0x70, 0xfa, 0x1e, 0x81, 0xb4, 0xd1, 0xed, 0x6c, 0x61, 0x9b, 0x0a, - 0x29, 0xa5, 0xf0, 0x27, 0x54, 0x81, 0x54, 0x5b, 0xdb, 0xc2, 0xed, 0xe9, 0xe4, 0x5c, 0xec, 0x64, - 0xf1, 0xec, 0x03, 0x23, 0xcd, 0xca, 0xf9, 0x65, 0xc2, 0xa2, 0x30, 0x4e, 0xf4, 0x76, 0x48, 0x72, - 0x13, 0x4d, 0x10, 0x4e, 0x8f, 0x86, 0x40, 0xe6, 0x92, 0x42, 0xf9, 0xd0, 0x71, 0xc8, 0x91, 0xff, - 0x99, 0x6e, 0xa4, 0x69, 0x9b, 0xb3, 0xa4, 0x80, 0xe8, 0x05, 0x2a, 0x43, 0x96, 0x4e, 0x93, 0x16, - 0x16, 0x4b, 0x9b, 0xf7, 0x4c, 0x14, 0xab, 0x85, 0xb7, 0xb5, 0x6e, 0xdb, 0x55, 0xaf, 0x6b, 0xed, - 0x2e, 0xa6, 0x0a, 0x9f, 0x53, 0x0a, 0xbc, 0xf0, 0x2a, 0x29, 0x43, 0xb3, 0x90, 0x67, 0xb3, 0x4a, - 0x37, 0x5a, 0x78, 0x8f, 0x5a, 0xcf, 0x94, 0xc2, 0x26, 0xda, 0x12, 0x29, 0x21, 0xaf, 0x7f, 0xd1, - 0x31, 0x0d, 0xa1, 0x9a, 0xf4, 0x15, 0xa4, 0x80, 0xbe, 0xfe, 0xf1, 0x5e, 0xc3, 0x7d, 0xd7, 0xe0, - 0xee, 0xf5, 0xcd, 0xa5, 0x13, 0x50, 0xa2, 0x14, 0x8f, 0xf2, 0xa1, 0xd7, 0xda, 0xd3, 0x13, 0x73, - 0xb1, 0x93, 0x59, 0xa5, 0xc8, 0x8a, 0xd7, 0x78, 0xa9, 0xfc, 0xf9, 0x38, 0x24, 0xa9, 0x61, 0x29, - 0x41, 0x7e, 0xe3, 0xf9, 0xf5, 0xba, 0xba, 0xb8, 0xb6, 0x59, 0x5d, 0xae, 0x4b, 0x31, 0x54, 0x04, - 0xa0, 0x05, 0x17, 0x97, 0xd7, 0x2a, 0x1b, 0x52, 0xdc, 0x7b, 0x5e, 0x5a, 0xdd, 0x38, 0xff, 0x98, - 0x94, 0xf0, 0x18, 0x36, 0x59, 0x41, 0x32, 0x48, 0xf0, 0xe8, 0x59, 0x29, 0x85, 0x24, 0x28, 0x30, - 0x80, 0xa5, 0xe7, 0xea, 0x8b, 0xe7, 0x1f, 0x93, 0xd2, 0xe1, 0x92, 0x47, 0xcf, 0x4a, 0x19, 0x34, - 0x0e, 0x39, 0x5a, 0x52, 0x5d, 0x5b, 0x5b, 0x96, 0xb2, 0x1e, 0x66, 0x63, 0x43, 0x59, 0x5a, 0xbd, - 0x24, 0xe5, 0x3c, 0xcc, 0x4b, 0xca, 0xda, 0xe6, 0xba, 0x04, 0x1e, 0xc2, 0x4a, 0xbd, 0xd1, 0xa8, - 0x5c, 0xaa, 0x4b, 0x79, 0x8f, 0xa2, 0xfa, 0xfc, 0x46, 0xbd, 0x21, 0x15, 0x42, 0xcd, 0x7a, 0xf4, - 0xac, 0x34, 0xee, 0xbd, 0xa2, 0xbe, 0xba, 0xb9, 0x22, 0x15, 0xd1, 0x04, 0x8c, 0xb3, 0x57, 0x88, - 0x46, 0x94, 0x7a, 0x8a, 0xce, 0x3f, 0x26, 0x49, 0x7e, 0x43, 0x18, 0xca, 0x44, 0xa8, 0xe0, 0xfc, - 0x63, 0x12, 0x92, 0x6b, 0x90, 0xa2, 0x6a, 0x88, 0x10, 0x14, 0x97, 0x2b, 0xd5, 0xfa, 0xb2, 0xba, - 0xb6, 0xbe, 0xb1, 0xb4, 0xb6, 0x5a, 0x59, 0x96, 0x62, 0x7e, 0x99, 0x52, 0x7f, 0xc7, 0xe6, 0x92, - 0x52, 0x5f, 0x94, 0xe2, 0xc1, 0xb2, 0xf5, 0x7a, 0x65, 0xa3, 0xbe, 0x28, 0x25, 0xe4, 0x26, 0x4c, - 0x0d, 0x32, 0xa8, 0x03, 0xa7, 0x50, 0x40, 0x17, 0xe2, 0x43, 0x74, 0x81, 0x62, 0xf5, 0xea, 0x82, - 0xfc, 0xf5, 0x38, 0x4c, 0x0e, 0x58, 0x54, 0x06, 0xbe, 0xe4, 0x69, 0x48, 0x31, 0x5d, 0x66, 0xcb, - 0xec, 0xa9, 0x81, 0xab, 0x13, 0xd5, 0xec, 0xbe, 0xa5, 0x96, 0xf2, 0x05, 0x5d, 0x8d, 0xc4, 0x10, - 0x57, 0x83, 0x40, 0xf4, 0x29, 0xec, 0x3b, 0xfb, 0x8c, 0x3f, 0x5b, 0x1f, 0xcf, 0x8f, 0xb2, 0x3e, - 0xd2, 0xb2, 0xc3, 0x2d, 0x02, 0xa9, 0x01, 0x8b, 0xc0, 0x05, 0x98, 0xe8, 0x03, 0x1a, 0xd9, 0x18, - 0xbf, 0x37, 0x06, 0xd3, 0xc3, 0x84, 0x13, 0x61, 0x12, 0xe3, 0x21, 0x93, 0x78, 0xa1, 0x57, 0x82, - 0x77, 0x0f, 0x1f, 0x84, 0xbe, 0xb1, 0xfe, 0x54, 0x0c, 0x8e, 0x0c, 0x76, 0x29, 0x07, 0xb6, 0xe1, - 0xed, 0x90, 0xee, 0x60, 0x77, 0xd7, 0x14, 0x6e, 0xd5, 0xfd, 0x03, 0x16, 0x6b, 0x52, 0xdd, 0x3b, - 0xd8, 0x9c, 0x2b, 0xb8, 0xda, 0x27, 0x86, 0xf9, 0x85, 0xac, 0x35, 0x7d, 0x2d, 0xfd, 0xa9, 0x38, - 0xdc, 0x31, 0x10, 0x7c, 0x60, 0x43, 0xef, 0x02, 0xd0, 0x0d, 0xab, 0xeb, 0x32, 0xd7, 0x89, 0x59, - 0xe2, 0x1c, 0x2d, 0xa1, 0xc6, 0x8b, 0x58, 0xd9, 0xae, 0xeb, 0xd5, 0x27, 0x68, 0x3d, 0xb0, 0x22, - 0x4a, 0xf0, 0x84, 0xdf, 0xd0, 0x24, 0x6d, 0xe8, 0xcc, 0x90, 0x9e, 0xf6, 0x29, 0xe6, 0xc3, 0x20, - 0x35, 0xdb, 0x3a, 0x36, 0x5c, 0xd5, 0x71, 0x6d, 0xac, 0x75, 0x74, 0x63, 0x87, 0x2e, 0x35, 0xd9, - 0x85, 0xd4, 0xb6, 0xd6, 0x76, 0xb0, 0x52, 0x62, 0xd5, 0x0d, 0x51, 0x4b, 0x38, 0xa8, 0x02, 0xd9, - 0x01, 0x8e, 0x74, 0x88, 0x83, 0x55, 0x7b, 0x1c, 0xf2, 0xcf, 0xe4, 0x20, 0x1f, 0x70, 0xc0, 0xd1, - 0xdd, 0x50, 0x78, 0x51, 0xbb, 0xae, 0xa9, 0x22, 0xa8, 0x62, 0x92, 0xc8, 0x93, 0xb2, 0x75, 0x1e, - 0x58, 0x3d, 0x0c, 0x53, 0x94, 0xc4, 0xec, 0xba, 0xd8, 0x56, 0x9b, 0x6d, 0xcd, 0x71, 0xa8, 0xd0, - 0xb2, 0x94, 0x14, 0x91, 0xba, 0x35, 0x52, 0x55, 0x13, 0x35, 0xe8, 0x1c, 0x4c, 0x52, 0x8e, 0x4e, - 0xb7, 0xed, 0xea, 0x56, 0x1b, 0xab, 0x24, 0xcc, 0x73, 0xe8, 0x92, 0xe3, 0xb5, 0x6c, 0x82, 0x50, - 0xac, 0x70, 0x02, 0xd2, 0x22, 0x07, 0x2d, 0xc2, 0x5d, 0x94, 0x6d, 0x07, 0x1b, 0xd8, 0xd6, 0x5c, - 0xac, 0xe2, 0xf7, 0x74, 0xb5, 0xb6, 0xa3, 0x6a, 0x46, 0x4b, 0xdd, 0xd5, 0x9c, 0xdd, 0xe9, 0x29, - 0x02, 0x50, 0x8d, 0x4f, 0xc7, 0x94, 0x63, 0x84, 0xf0, 0x12, 0xa7, 0xab, 0x53, 0xb2, 0x8a, 0xd1, - 0xba, 0xac, 0x39, 0xbb, 0x68, 0x01, 0x8e, 0x50, 0x14, 0xc7, 0xb5, 0x75, 0x63, 0x47, 0x6d, 0xee, - 0xe2, 0xe6, 0x35, 0xb5, 0xeb, 0x6e, 0x3f, 0x31, 0x7d, 0x3c, 0xf8, 0x7e, 0xda, 0xc2, 0x06, 0xa5, - 0xa9, 0x11, 0x92, 0x4d, 0x77, 0xfb, 0x09, 0xd4, 0x80, 0x02, 0x19, 0x8c, 0x8e, 0xfe, 0x12, 0x56, - 0xb7, 0x4d, 0x9b, 0xae, 0xa1, 0xc5, 0x01, 0xa6, 0x29, 0x20, 0xc1, 0xf9, 0x35, 0xce, 0xb0, 0x62, - 0xb6, 0xf0, 0x42, 0xaa, 0xb1, 0x5e, 0xaf, 0x2f, 0x2a, 0x79, 0x81, 0x72, 0xd1, 0xb4, 0x89, 0x42, - 0xed, 0x98, 0x9e, 0x80, 0xf3, 0x4c, 0xa1, 0x76, 0x4c, 0x21, 0xde, 0x73, 0x30, 0xd9, 0x6c, 0xb2, - 0x3e, 0xeb, 0x4d, 0x95, 0x07, 0x63, 0xce, 0xb4, 0x14, 0x12, 0x56, 0xb3, 0x79, 0x89, 0x11, 0x70, - 0x1d, 0x77, 0xd0, 0x93, 0x70, 0x87, 0x2f, 0xac, 0x20, 0xe3, 0x44, 0x5f, 0x2f, 0x7b, 0x59, 0xcf, - 0xc1, 0xa4, 0xb5, 0xdf, 0xcf, 0x88, 0x42, 0x6f, 0xb4, 0xf6, 0x7b, 0xd9, 0x1e, 0x87, 0x29, 0x6b, - 0xd7, 0xea, 0xe7, 0x3b, 0x1d, 0xe4, 0x43, 0xd6, 0xae, 0xd5, 0xcb, 0x78, 0x1f, 0x8d, 0xcc, 0x6d, - 0xdc, 0xd4, 0x5c, 0xdc, 0x9a, 0x3e, 0x1a, 0x24, 0x0f, 0x54, 0xa0, 0x79, 0x90, 0x9a, 0x4d, 0x15, - 0x1b, 0xda, 0x56, 0x1b, 0xab, 0x9a, 0x8d, 0x0d, 0xcd, 0x99, 0x9e, 0xa5, 0xc4, 0x49, 0xd7, 0xee, - 0x62, 0xa5, 0xd8, 0x6c, 0xd6, 0x69, 0x65, 0x85, 0xd6, 0xa1, 0xd3, 0x30, 0x61, 0x6e, 0xbd, 0xd8, - 0x64, 0x1a, 0xa9, 0x5a, 0x36, 0xde, 0xd6, 0xf7, 0xa6, 0xef, 0xa5, 0xe2, 0x2d, 0x91, 0x0a, 0xaa, - 0x8f, 0xeb, 0xb4, 0x18, 0x9d, 0x02, 0xa9, 0xe9, 0xec, 0x6a, 0xb6, 0x45, 0x4d, 0xb2, 0x63, 0x69, - 0x4d, 0x3c, 0x7d, 0x1f, 0x23, 0x65, 0xe5, 0xab, 0xa2, 0x98, 0xcc, 0x08, 0xe7, 0x86, 0xbe, 0xed, - 0x0a, 0xc4, 0x13, 0x6c, 0x46, 0xd0, 0x32, 0x8e, 0x76, 0x12, 0x24, 0x22, 0x89, 0xd0, 0x8b, 0x4f, - 0x52, 0xb2, 0xa2, 0xb5, 0x6b, 0x05, 0xdf, 0x7b, 0x0f, 0x8c, 0x13, 0x4a, 0xff, 0xa5, 0xa7, 0x98, - 0xe3, 0x66, 0xed, 0x06, 0xde, 0xf8, 0x18, 0x1c, 0x21, 0x44, 0x1d, 0xec, 0x6a, 0x2d, 0xcd, 0xd5, - 0x02, 0xd4, 0x0f, 0x52, 0x6a, 0x22, 0xf6, 0x15, 0x5e, 0x19, 0x6a, 0xa7, 0xdd, 0xdd, 0xda, 0xf7, - 0x14, 0xeb, 0x21, 0xd6, 0x4e, 0x52, 0x26, 0x54, 0xeb, 0x4d, 0x73, 0xce, 0xe5, 0x05, 0x28, 0x04, - 0xf5, 0x1e, 0xe5, 0x80, 0x69, 0xbe, 0x14, 0x23, 0x4e, 0x50, 0x6d, 0x6d, 0x91, 0xb8, 0x2f, 0x2f, - 0xd4, 0xa5, 0x38, 0x71, 0xa3, 0x96, 0x97, 0x36, 0xea, 0xaa, 0xb2, 0xb9, 0xba, 0xb1, 0xb4, 0x52, - 0x97, 0x12, 0x01, 0xc7, 0xfe, 0x4a, 0x32, 0x7b, 0xbf, 0x74, 0x82, 0x78, 0x0d, 0xc5, 0x70, 0xa4, - 0x86, 0xde, 0x06, 0x47, 0x45, 0x5a, 0xc5, 0xc1, 0xae, 0x7a, 0x43, 0xb7, 0xe9, 0x84, 0xec, 0x68, - 0x6c, 0x71, 0xf4, 0xf4, 0x67, 0x8a, 0x53, 0x35, 0xb0, 0xfb, 0xac, 0x6e, 0x93, 0xe9, 0xd6, 0xd1, - 0x5c, 0xb4, 0x0c, 0xb3, 0x86, 0xa9, 0x3a, 0xae, 0x66, 0xb4, 0x34, 0xbb, 0xa5, 0xfa, 0x09, 0x2d, - 0x55, 0x6b, 0x36, 0xb1, 0xe3, 0x98, 0x6c, 0x21, 0xf4, 0x50, 0xee, 0x34, 0xcc, 0x06, 0x27, 0xf6, - 0x57, 0x88, 0x0a, 0x27, 0xed, 0x51, 0xdf, 0xc4, 0x30, 0xf5, 0x3d, 0x0e, 0xb9, 0x8e, 0x66, 0xa9, - 0xd8, 0x70, 0xed, 0x7d, 0xea, 0x9f, 0x67, 0x95, 0x6c, 0x47, 0xb3, 0xea, 0xe4, 0xf9, 0x2d, 0x09, - 0x93, 0xae, 0x24, 0xb3, 0x49, 0x29, 0x75, 0x25, 0x99, 0x4d, 0x49, 0xe9, 0x2b, 0xc9, 0x6c, 0x5a, - 0xca, 0x5c, 0x49, 0x66, 0xb3, 0x52, 0xee, 0x4a, 0x32, 0x9b, 0x93, 0x40, 0xfe, 0x60, 0x12, 0x0a, - 0x41, 0x0f, 0x9e, 0x04, 0x44, 0x4d, 0xba, 0x86, 0xc5, 0xa8, 0x95, 0xbb, 0xe7, 0x40, 0x7f, 0x7f, - 0xbe, 0x46, 0x16, 0xb7, 0x85, 0x34, 0x73, 0x97, 0x15, 0xc6, 0x49, 0x1c, 0x0b, 0xa2, 0x7e, 0x98, - 0xb9, 0x27, 0x59, 0x85, 0x3f, 0xa1, 0x4b, 0x90, 0x7e, 0xd1, 0xa1, 0xd8, 0x69, 0x8a, 0x7d, 0xef, - 0xc1, 0xd8, 0x57, 0x1a, 0x14, 0x3c, 0x77, 0xa5, 0xa1, 0xae, 0xae, 0x29, 0x2b, 0x95, 0x65, 0x85, - 0xb3, 0xa3, 0x63, 0x90, 0x6c, 0x6b, 0x2f, 0xed, 0x87, 0x97, 0x41, 0x5a, 0x84, 0xe6, 0xa1, 0xd4, - 0x35, 0xae, 0x63, 0x5b, 0xdf, 0xd6, 0x71, 0x4b, 0xa5, 0x54, 0xa5, 0x20, 0x55, 0xd1, 0xaf, 0x5d, - 0x26, 0xf4, 0x23, 0x0e, 0xe3, 0x31, 0x48, 0xde, 0xc0, 0xda, 0xb5, 0xf0, 0x62, 0x45, 0x8b, 0xde, - 0xc4, 0xe9, 0x74, 0x06, 0x52, 0x54, 0xbe, 0x08, 0x80, 0x4b, 0x58, 0x1a, 0x43, 0x59, 0x48, 0xd6, - 0xd6, 0x14, 0x32, 0xa5, 0x24, 0x28, 0xb0, 0x52, 0x75, 0x7d, 0xa9, 0x5e, 0xab, 0x4b, 0x71, 0xf9, - 0x1c, 0xa4, 0x99, 0xd0, 0xc8, 0x74, 0xf3, 0xc4, 0x26, 0x8d, 0xf1, 0x47, 0x8e, 0x11, 0x13, 0xb5, - 0x9b, 0x2b, 0xd5, 0xba, 0x22, 0xc5, 0xfb, 0x94, 0x45, 0x76, 0xa0, 0x10, 0xf4, 0xe4, 0xdf, 0x9a, - 0x70, 0xfe, 0x4b, 0x31, 0xc8, 0x07, 0x3c, 0x73, 0xe2, 0x52, 0x69, 0xed, 0xb6, 0x79, 0x43, 0xd5, - 0xda, 0xba, 0xe6, 0x70, 0x55, 0x02, 0x5a, 0x54, 0x21, 0x25, 0xa3, 0x0e, 0xdd, 0x5b, 0x34, 0xc9, - 0x52, 0x52, 0x5a, 0xfe, 0x58, 0x0c, 0xa4, 0x5e, 0xd7, 0xb8, 0xa7, 0x99, 0xb1, 0xbf, 0xca, 0x66, - 0xca, 0x1f, 0x8d, 0x41, 0x31, 0xec, 0x0f, 0xf7, 0x34, 0xef, 0xee, 0xbf, 0xd2, 0xe6, 0xfd, 0x61, - 0x1c, 0xc6, 0x43, 0x5e, 0xf0, 0xa8, 0xad, 0x7b, 0x0f, 0x4c, 0xe8, 0x2d, 0xdc, 0xb1, 0x4c, 0x17, - 0x1b, 0xcd, 0x7d, 0xb5, 0x8d, 0xaf, 0xe3, 0xf6, 0xb4, 0x4c, 0x8d, 0xcc, 0x99, 0x83, 0xfd, 0xec, - 0xf9, 0x25, 0x9f, 0x6f, 0x99, 0xb0, 0x2d, 0x4c, 0x2e, 0x2d, 0xd6, 0x57, 0xd6, 0xd7, 0x36, 0xea, - 0xab, 0xb5, 0xe7, 0xd5, 0xcd, 0xd5, 0x67, 0x56, 0xd7, 0x9e, 0x5d, 0x55, 0x24, 0xbd, 0x87, 0xec, - 0x4d, 0x9c, 0xf6, 0xeb, 0x20, 0xf5, 0x36, 0x0a, 0x1d, 0x85, 0x41, 0xcd, 0x92, 0xc6, 0xd0, 0x24, - 0x94, 0x56, 0xd7, 0xd4, 0xc6, 0xd2, 0x62, 0x5d, 0xad, 0x5f, 0xbc, 0x58, 0xaf, 0x6d, 0x34, 0x58, - 0xe6, 0xc4, 0xa3, 0xde, 0x08, 0x4d, 0x70, 0xf9, 0x23, 0x09, 0x98, 0x1c, 0xd0, 0x12, 0x54, 0xe1, - 0x31, 0x0f, 0x0b, 0xc3, 0x1e, 0x1a, 0xa5, 0xf5, 0xf3, 0xc4, 0xeb, 0x58, 0xd7, 0x6c, 0x97, 0x87, - 0x48, 0xa7, 0x80, 0x48, 0xc9, 0x70, 0x89, 0x71, 0xb5, 0x79, 0x46, 0x8a, 0x05, 0x42, 0x25, 0xbf, - 0x9c, 0x25, 0xa5, 0x1e, 0x04, 0x64, 0x99, 0x8e, 0xee, 0xea, 0xd7, 0xb1, 0xaa, 0x1b, 0x22, 0x7d, - 0x45, 0x02, 0xa3, 0xa4, 0x22, 0x89, 0x9a, 0x25, 0xc3, 0xf5, 0xa8, 0x0d, 0xbc, 0xa3, 0xf5, 0x50, - 0x13, 0xe3, 0x9f, 0x50, 0x24, 0x51, 0xe3, 0x51, 0xdf, 0x0d, 0x85, 0x96, 0xd9, 0x25, 0xde, 0x22, - 0xa3, 0x23, 0x6b, 0x4d, 0x4c, 0xc9, 0xb3, 0x32, 0x8f, 0x84, 0xc7, 0x01, 0x7e, 0xde, 0xac, 0xa0, - 0xe4, 0x59, 0x19, 0x23, 0x39, 0x01, 0x25, 0x6d, 0x67, 0xc7, 0x26, 0xe0, 0x02, 0x88, 0x45, 0x36, - 0x45, 0xaf, 0x98, 0x12, 0x96, 0xaf, 0x40, 0x56, 0xc8, 0x81, 0x2c, 0xf6, 0x44, 0x12, 0xaa, 0xc5, - 0xc2, 0xf5, 0xf8, 0xc9, 0x9c, 0x92, 0x35, 0x44, 0xe5, 0xdd, 0x50, 0xd0, 0x1d, 0xd5, 0xdf, 0x06, - 0x88, 0xcf, 0xc5, 0x4f, 0x66, 0x95, 0xbc, 0xee, 0x78, 0x29, 0x54, 0xf9, 0x53, 0x71, 0x28, 0x86, - 0xb7, 0x31, 0xd0, 0x22, 0x64, 0xdb, 0x66, 0x53, 0xa3, 0xaa, 0xc5, 0xf6, 0xd0, 0x4e, 0x46, 0xec, - 0x7c, 0xcc, 0x2f, 0x73, 0x7a, 0xc5, 0xe3, 0x2c, 0xff, 0x9b, 0x18, 0x64, 0x45, 0x31, 0x3a, 0x02, - 0x49, 0x4b, 0x73, 0x77, 0x29, 0x5c, 0xaa, 0x1a, 0x97, 0x62, 0x0a, 0x7d, 0x26, 0xe5, 0x8e, 0xa5, - 0x19, 0x54, 0x05, 0x78, 0x39, 0x79, 0x26, 0xe3, 0xda, 0xc6, 0x5a, 0x8b, 0x86, 0x4d, 0x66, 0xa7, - 0x83, 0x0d, 0xd7, 0x11, 0xe3, 0xca, 0xcb, 0x6b, 0xbc, 0x18, 0x3d, 0x00, 0x13, 0xae, 0xad, 0xe9, - 0xed, 0x10, 0x6d, 0x92, 0xd2, 0x4a, 0xa2, 0xc2, 0x23, 0x5e, 0x80, 0x63, 0x02, 0xb7, 0x85, 0x5d, - 0xad, 0xb9, 0x8b, 0x5b, 0x3e, 0x53, 0x9a, 0xa6, 0x47, 0x8e, 0x72, 0x82, 0x45, 0x5e, 0x2f, 0x78, - 0xe5, 0xaf, 0xc6, 0x60, 0x42, 0x04, 0x7a, 0x2d, 0x4f, 0x58, 0x2b, 0x00, 0x9a, 0x61, 0x98, 0x6e, - 0x50, 0x5c, 0xfd, 0xaa, 0xdc, 0xc7, 0x37, 0x5f, 0xf1, 0x98, 0x94, 0x00, 0x40, 0xb9, 0x03, 0xe0, - 0xd7, 0x0c, 0x15, 0xdb, 0x2c, 0xe4, 0xf9, 0x1e, 0x15, 0xdd, 0xe8, 0x64, 0xa9, 0x01, 0x60, 0x45, - 0x24, 0x22, 0x44, 0x53, 0x90, 0xda, 0xc2, 0x3b, 0xba, 0xc1, 0x33, 0xcf, 0xec, 0x41, 0x24, 0x70, - 0x92, 0x5e, 0x02, 0xa7, 0xfa, 0xff, 0xc1, 0x64, 0xd3, 0xec, 0xf4, 0x36, 0xb7, 0x2a, 0xf5, 0xa4, - 0x27, 0x9c, 0xcb, 0xb1, 0x17, 0x1e, 0xe2, 0x44, 0x3b, 0x66, 0x5b, 0x33, 0x76, 0xe6, 0x4d, 0x7b, - 0xc7, 0xdf, 0xa8, 0x25, 0x1e, 0x92, 0x13, 0xd8, 0xae, 0xb5, 0xb6, 0xfe, 0x67, 0x2c, 0xf6, 0x8b, - 0xf1, 0xc4, 0xa5, 0xf5, 0xea, 0xaf, 0xc4, 0xcb, 0x97, 0x18, 0xe3, 0xba, 0x10, 0x86, 0x82, 0xb7, - 0xdb, 0xb8, 0x49, 0x3a, 0x08, 0x7f, 0xfc, 0x00, 0x4c, 0xed, 0x98, 0x3b, 0x26, 0x45, 0x3a, 0x43, - 0x7e, 0xf1, 0x9d, 0xde, 0x9c, 0x57, 0x5a, 0x8e, 0xdc, 0x16, 0x5e, 0x58, 0x85, 0x49, 0x4e, 0xac, - 0xd2, 0xad, 0x26, 0x16, 0x08, 0xa1, 0x03, 0xb3, 0x70, 0xd3, 0xbf, 0xf6, 0x0d, 0xba, 0x7c, 0x2b, - 0x13, 0x9c, 0x95, 0xd4, 0xb1, 0x58, 0x69, 0x41, 0x81, 0x3b, 0x42, 0x78, 0x6c, 0x92, 0x62, 0x3b, - 0x02, 0xf1, 0x9f, 0x73, 0xc4, 0xc9, 0x00, 0x62, 0x83, 0xb3, 0x2e, 0xd4, 0x60, 0xfc, 0x30, 0x58, - 0xff, 0x82, 0x63, 0x15, 0x70, 0x10, 0xe4, 0x12, 0x94, 0x28, 0x48, 0xb3, 0xeb, 0xb8, 0x66, 0x87, - 0x5a, 0xc0, 0x83, 0x61, 0xfe, 0xe5, 0x37, 0xd8, 0xac, 0x29, 0x12, 0xb6, 0x9a, 0xc7, 0xb5, 0xb0, - 0x00, 0x74, 0x77, 0xad, 0x85, 0x9b, 0xed, 0x08, 0x84, 0x2f, 0xf3, 0x86, 0x78, 0xf4, 0x0b, 0x57, - 0x61, 0x8a, 0xfc, 0xa6, 0x06, 0x2a, 0xd8, 0x92, 0xe8, 0x94, 0xdd, 0xf4, 0x57, 0xdf, 0xcb, 0x26, - 0xe6, 0xa4, 0x07, 0x10, 0x68, 0x53, 0x60, 0x14, 0x77, 0xb0, 0xeb, 0x62, 0xdb, 0x51, 0xb5, 0xf6, - 0xa0, 0xe6, 0x05, 0x72, 0x1e, 0xd3, 0x3f, 0xff, 0x9d, 0xf0, 0x28, 0x5e, 0x62, 0x9c, 0x95, 0x76, - 0x7b, 0x61, 0x13, 0x8e, 0x0e, 0xd0, 0x8a, 0x11, 0x30, 0x3f, 0xc2, 0x31, 0xa7, 0xfa, 0x34, 0x83, - 0xc0, 0xae, 0x83, 0x28, 0xf7, 0xc6, 0x72, 0x04, 0xcc, 0x5f, 0xe0, 0x98, 0x88, 0xf3, 0x8a, 0x21, - 0x25, 0x88, 0x57, 0x60, 0xe2, 0x3a, 0xb6, 0xb7, 0x4c, 0x87, 0xe7, 0x99, 0x46, 0x80, 0xfb, 0x28, - 0x87, 0x2b, 0x71, 0x46, 0x9a, 0x78, 0x22, 0x58, 0x4f, 0x42, 0x76, 0x5b, 0x6b, 0xe2, 0x11, 0x20, - 0x6e, 0x71, 0x88, 0x0c, 0xa1, 0x27, 0xac, 0x15, 0x28, 0xec, 0x98, 0x7c, 0x8d, 0x8a, 0x66, 0xff, - 0x18, 0x67, 0xcf, 0x0b, 0x1e, 0x0e, 0x61, 0x99, 0x56, 0xb7, 0x4d, 0x16, 0xb0, 0x68, 0x88, 0xbf, - 0x2b, 0x20, 0x04, 0x0f, 0x87, 0x38, 0x84, 0x58, 0x5f, 0x11, 0x10, 0x4e, 0x40, 0x9e, 0x4f, 0x43, - 0xde, 0x34, 0xda, 0xfb, 0xa6, 0x31, 0x4a, 0x23, 0x3e, 0xce, 0x11, 0x80, 0xb3, 0x10, 0x80, 0x0b, - 0x90, 0x1b, 0x75, 0x20, 0x7e, 0xe9, 0x3b, 0x62, 0x7a, 0x88, 0x11, 0xb8, 0x04, 0x25, 0x61, 0xa0, - 0x74, 0xd3, 0x18, 0x01, 0xe2, 0x93, 0x1c, 0xa2, 0x18, 0x60, 0xe3, 0xdd, 0x70, 0xb1, 0xe3, 0xee, - 0xe0, 0x51, 0x40, 0x3e, 0x25, 0xba, 0xc1, 0x59, 0xb8, 0x28, 0xb7, 0xb0, 0xd1, 0xdc, 0x1d, 0x0d, - 0xe1, 0xd3, 0x42, 0x94, 0x82, 0x87, 0x40, 0xd4, 0x60, 0xbc, 0xa3, 0xd9, 0xce, 0xae, 0xd6, 0x1e, - 0x69, 0x38, 0x7e, 0x99, 0x63, 0x14, 0x3c, 0x26, 0x2e, 0x91, 0xae, 0x71, 0x18, 0x98, 0x5f, 0x11, - 0x12, 0x09, 0xb0, 0xf1, 0xa9, 0xe7, 0xb8, 0x34, 0x29, 0x77, 0x18, 0xb4, 0xbf, 0x2f, 0xa6, 0x1e, - 0xe3, 0x5d, 0x09, 0x22, 0x5e, 0x80, 0x9c, 0xa3, 0xbf, 0x34, 0x12, 0xcc, 0x3f, 0x10, 0x23, 0x4d, - 0x19, 0x08, 0xf3, 0xf3, 0x70, 0x6c, 0xe0, 0x32, 0x31, 0x02, 0xd8, 0x3f, 0xe4, 0x60, 0x47, 0x06, - 0x2c, 0x15, 0xdc, 0x24, 0x1c, 0x16, 0xf2, 0x57, 0x85, 0x49, 0xc0, 0x3d, 0x58, 0xeb, 0x24, 0x6a, - 0x70, 0xb4, 0xed, 0xc3, 0x49, 0xed, 0x1f, 0x09, 0xa9, 0x31, 0xde, 0x90, 0xd4, 0x36, 0xe0, 0x08, - 0x47, 0x3c, 0xdc, 0xb8, 0x7e, 0x46, 0x18, 0x56, 0xc6, 0xbd, 0x19, 0x1e, 0xdd, 0x1f, 0x86, 0xb2, - 0x27, 0x4e, 0xe1, 0x9e, 0x3a, 0x6a, 0x47, 0xb3, 0x46, 0x40, 0xfe, 0x35, 0x8e, 0x2c, 0x2c, 0xbe, - 0xe7, 0xdf, 0x3a, 0x2b, 0x9a, 0x45, 0xc0, 0x9f, 0x83, 0x69, 0x01, 0xde, 0x35, 0x6c, 0xdc, 0x34, - 0x77, 0x0c, 0xfd, 0x25, 0xdc, 0x1a, 0x01, 0xfa, 0xd7, 0x7b, 0x86, 0x6a, 0x33, 0xc0, 0x4e, 0x90, - 0x97, 0x40, 0xf2, 0x7c, 0x15, 0x55, 0xef, 0x58, 0xa6, 0xed, 0x46, 0x20, 0x7e, 0x56, 0x8c, 0x94, - 0xc7, 0xb7, 0x44, 0xd9, 0x16, 0xea, 0xc0, 0x76, 0xaa, 0x47, 0x55, 0xc9, 0xcf, 0x71, 0xa0, 0x71, - 0x9f, 0x8b, 0x1b, 0x8e, 0xa6, 0xd9, 0xb1, 0x34, 0x7b, 0x14, 0xfb, 0xf7, 0x8f, 0x85, 0xe1, 0xe0, - 0x2c, 0xdc, 0x70, 0x10, 0x8f, 0x8e, 0xac, 0xf6, 0x23, 0x20, 0x7c, 0x5e, 0x18, 0x0e, 0xc1, 0xc3, - 0x21, 0x84, 0xc3, 0x30, 0x02, 0xc4, 0x17, 0x04, 0x84, 0xe0, 0x21, 0x10, 0xef, 0xf0, 0x17, 0x5a, - 0x1b, 0xef, 0xe8, 0x8e, 0x6b, 0x33, 0xa7, 0xf8, 0x60, 0xa8, 0x2f, 0x7e, 0x27, 0xec, 0x84, 0x29, - 0x01, 0x56, 0x62, 0x89, 0x78, 0x9a, 0x96, 0xc6, 0x4c, 0xd1, 0x0d, 0xfb, 0x0d, 0x61, 0x89, 0x02, - 0x6c, 0xa4, 0x6d, 0x01, 0x0f, 0x91, 0x88, 0xbd, 0x49, 0x22, 0x85, 0x11, 0xe0, 0xfe, 0x49, 0x4f, - 0xe3, 0x1a, 0x82, 0x97, 0x60, 0x06, 0xfc, 0x9f, 0xae, 0x71, 0x0d, 0xef, 0x8f, 0xa4, 0x9d, 0xbf, - 0xd9, 0xe3, 0xff, 0x6c, 0x32, 0x4e, 0x66, 0x43, 0x4a, 0x3d, 0xfe, 0x14, 0x8a, 0x3a, 0x97, 0x34, - 0xfd, 0x63, 0xaf, 0xf3, 0xfe, 0x86, 0xdd, 0xa9, 0x85, 0x65, 0xa2, 0xe4, 0x61, 0xa7, 0x27, 0x1a, - 0xec, 0xbd, 0xaf, 0x7b, 0x7a, 0x1e, 0xf2, 0x79, 0x16, 0x2e, 0xc2, 0x78, 0xc8, 0xe1, 0x89, 0x86, - 0xfa, 0x09, 0x0e, 0x55, 0x08, 0xfa, 0x3b, 0x0b, 0xe7, 0x20, 0x49, 0x9c, 0x97, 0x68, 0xf6, 0x9f, - 0xe4, 0xec, 0x94, 0x7c, 0xe1, 0x29, 0xc8, 0x0a, 0xa7, 0x25, 0x9a, 0xf5, 0xff, 0xe7, 0xac, 0x1e, - 0x0b, 0x61, 0x17, 0x0e, 0x4b, 0x34, 0xfb, 0xdf, 0x10, 0xec, 0x82, 0x85, 0xb0, 0x8f, 0x2e, 0xc2, - 0x2f, 0xfd, 0xcd, 0x24, 0x5f, 0x74, 0x84, 0xec, 0x2e, 0x40, 0x86, 0x7b, 0x2a, 0xd1, 0xdc, 0x3f, - 0xc5, 0x5f, 0x2e, 0x38, 0x16, 0x1e, 0x87, 0xd4, 0x88, 0x02, 0xff, 0x5b, 0x9c, 0x95, 0xd1, 0x2f, - 0xd4, 0x20, 0x1f, 0xf0, 0x4e, 0xa2, 0xd9, 0xdf, 0xcf, 0xd9, 0x83, 0x5c, 0xa4, 0xe9, 0xdc, 0x3b, - 0x89, 0x06, 0xf8, 0xdb, 0xa2, 0xe9, 0x9c, 0x83, 0x88, 0x4d, 0x38, 0x26, 0xd1, 0xdc, 0x1f, 0x10, - 0x52, 0x17, 0x2c, 0x0b, 0x4f, 0x43, 0xce, 0x5b, 0x6c, 0xa2, 0xf9, 0x7f, 0x86, 0xf3, 0xfb, 0x3c, - 0x44, 0x02, 0x81, 0xc5, 0x2e, 0x1a, 0xe2, 0x83, 0x42, 0x02, 0x01, 0x2e, 0x32, 0x8d, 0x7a, 0x1d, - 0x98, 0x68, 0xa4, 0x0f, 0x89, 0x69, 0xd4, 0xe3, 0xbf, 0x90, 0xd1, 0xa4, 0x36, 0x3f, 0x1a, 0xe2, - 0xef, 0x88, 0xd1, 0xa4, 0xf4, 0xa4, 0x19, 0xbd, 0x1e, 0x41, 0x34, 0xc6, 0xcf, 0x89, 0x66, 0xf4, - 0x38, 0x04, 0x0b, 0xeb, 0x80, 0xfa, 0xbd, 0x81, 0x68, 0xbc, 0x0f, 0x73, 0xbc, 0x89, 0x3e, 0x67, - 0x60, 0xe1, 0x59, 0x38, 0x32, 0xd8, 0x13, 0x88, 0x46, 0xfd, 0xf9, 0xd7, 0x7b, 0x62, 0xb7, 0xa0, - 0x23, 0xb0, 0xb0, 0xe1, 0x2f, 0x29, 0x41, 0x2f, 0x20, 0x1a, 0xf6, 0x23, 0xaf, 0x87, 0x0d, 0x77, - 0xd0, 0x09, 0x58, 0xa8, 0x00, 0xf8, 0x0b, 0x70, 0x34, 0xd6, 0x47, 0x39, 0x56, 0x80, 0x89, 0x4c, - 0x0d, 0xbe, 0xfe, 0x46, 0xf3, 0xdf, 0x12, 0x53, 0x83, 0x73, 0x90, 0xa9, 0x21, 0x96, 0xde, 0x68, - 0xee, 0x8f, 0x89, 0xa9, 0x21, 0x58, 0x88, 0x66, 0x07, 0x56, 0xb7, 0x68, 0x84, 0x8f, 0x0b, 0xcd, - 0x0e, 0x70, 0x2d, 0xac, 0xc2, 0x44, 0xdf, 0x82, 0x18, 0x0d, 0xf5, 0x8b, 0x1c, 0x4a, 0xea, 0x5d, - 0x0f, 0x83, 0x8b, 0x17, 0x5f, 0x0c, 0xa3, 0xd1, 0x3e, 0xd1, 0xb3, 0x78, 0xf1, 0xb5, 0x70, 0xe1, - 0x02, 0x64, 0x8d, 0x6e, 0xbb, 0x4d, 0x26, 0x0f, 0x3a, 0xf8, 0x2c, 0xe1, 0xf4, 0x7f, 0xfd, 0x1e, - 0x97, 0x8e, 0x60, 0x58, 0x38, 0x07, 0x29, 0xdc, 0xd9, 0xc2, 0xad, 0x28, 0xce, 0x6f, 0x7f, 0x4f, - 0x18, 0x4c, 0x42, 0xbd, 0xf0, 0x34, 0x00, 0x4b, 0x8d, 0xd0, 0xcd, 0xc3, 0x08, 0xde, 0x3f, 0xfa, - 0x1e, 0x3f, 0xbc, 0xe3, 0xb3, 0xf8, 0x00, 0xec, 0x28, 0xd0, 0xc1, 0x00, 0xdf, 0x09, 0x03, 0xd0, - 0x11, 0x79, 0x12, 0x32, 0x2f, 0x3a, 0xa6, 0xe1, 0x6a, 0x3b, 0x51, 0xdc, 0x7f, 0xcc, 0xb9, 0x05, - 0x3d, 0x11, 0x58, 0xc7, 0xb4, 0xb1, 0xab, 0xed, 0x38, 0x51, 0xbc, 0xff, 0x8d, 0xf3, 0x7a, 0x0c, - 0x84, 0xb9, 0xa9, 0x39, 0xee, 0x28, 0xfd, 0xfe, 0x13, 0xc1, 0x2c, 0x18, 0x48, 0xa3, 0xc9, 0xef, - 0x6b, 0x78, 0x3f, 0x8a, 0xf7, 0x4f, 0x45, 0xa3, 0x39, 0xfd, 0xc2, 0x53, 0x90, 0x23, 0x3f, 0xd9, - 0x89, 0xbc, 0x08, 0xe6, 0x3f, 0xe3, 0xcc, 0x3e, 0x07, 0x79, 0xb3, 0xe3, 0xb6, 0x5c, 0x3d, 0x5a, - 0xd8, 0xdf, 0xe5, 0x23, 0x2d, 0xe8, 0x17, 0x2a, 0x90, 0x77, 0xdc, 0x56, 0xab, 0xcb, 0xfd, 0xd3, - 0x08, 0xf6, 0x3f, 0xff, 0x9e, 0x97, 0xb2, 0xf0, 0x78, 0xc8, 0x68, 0xdf, 0xb8, 0xe6, 0x5a, 0x26, - 0xdd, 0xf0, 0x88, 0x42, 0x78, 0x9d, 0x23, 0x04, 0x58, 0x16, 0x6a, 0x50, 0x20, 0x7d, 0xb1, 0xb1, - 0x85, 0xe9, 0xee, 0x54, 0x04, 0xc4, 0x5f, 0x70, 0x01, 0x84, 0x98, 0xaa, 0xef, 0xfe, 0xf2, 0x6b, - 0x33, 0xb1, 0xaf, 0xbc, 0x36, 0x13, 0xfb, 0xc3, 0xd7, 0x66, 0x62, 0x1f, 0xf8, 0xfa, 0xcc, 0xd8, - 0x57, 0xbe, 0x3e, 0x33, 0xf6, 0xfb, 0x5f, 0x9f, 0x19, 0x1b, 0x9c, 0x25, 0x86, 0x4b, 0xe6, 0x25, - 0x93, 0xe5, 0x87, 0x5f, 0xb8, 0x6f, 0x47, 0x77, 0x77, 0xbb, 0x5b, 0xf3, 0x4d, 0xb3, 0x73, 0xa6, - 0x69, 0x3a, 0x1d, 0xd3, 0x39, 0x13, 0xce, 0xeb, 0xd2, 0x5f, 0xf0, 0xbf, 0x63, 0x24, 0x66, 0x0e, - 0xa7, 0x73, 0x35, 0x63, 0x7f, 0xd8, 0xe7, 0x3d, 0xe7, 0x21, 0x51, 0x31, 0xf6, 0xd1, 0x31, 0x66, - 0xe0, 0xd4, 0xae, 0xdd, 0xe6, 0xc7, 0xc2, 0x32, 0xe4, 0x79, 0xd3, 0x6e, 0xa3, 0x29, 0xff, 0xec, - 0x66, 0xec, 0x64, 0x81, 0x1f, 0xc8, 0xac, 0xbe, 0x3f, 0x76, 0xb8, 0x9e, 0x64, 0x2b, 0xc6, 0x3e, - 0xed, 0xc8, 0x7a, 0xec, 0x85, 0x07, 0x23, 0xf3, 0xdc, 0xd7, 0x0c, 0xf3, 0x86, 0x41, 0x9a, 0x6d, - 0x6d, 0x89, 0x1c, 0xf7, 0x4c, 0x6f, 0x8e, 0xfb, 0x59, 0xdc, 0x6e, 0x3f, 0x43, 0xe8, 0x36, 0x08, - 0xcb, 0x56, 0x9a, 0x9d, 0x40, 0x86, 0x0f, 0xc5, 0x61, 0xa6, 0x2f, 0x9d, 0xcd, 0x95, 0x60, 0x98, - 0x10, 0x16, 0x20, 0xbb, 0x28, 0x74, 0x6b, 0x1a, 0x32, 0x0e, 0x6e, 0x9a, 0x46, 0xcb, 0xa1, 0x82, - 0x48, 0x28, 0xe2, 0x91, 0x08, 0xc2, 0xd0, 0x0c, 0xd3, 0xe1, 0x07, 0x2b, 0xd9, 0x43, 0xf5, 0x17, - 0x0e, 0x29, 0x88, 0x71, 0xf1, 0x26, 0x21, 0x8d, 0x47, 0x46, 0x94, 0x86, 0xe8, 0x44, 0x28, 0xf3, - 0x3f, 0xaa, 0x54, 0x7e, 0x2e, 0x0e, 0xb3, 0xbd, 0x52, 0x21, 0x33, 0xcb, 0x71, 0xb5, 0x8e, 0x35, - 0x4c, 0x2c, 0x17, 0x20, 0xb7, 0x21, 0x68, 0x0e, 0x2d, 0x97, 0x5b, 0x87, 0x94, 0x4b, 0xd1, 0x7b, - 0x95, 0x10, 0xcc, 0xd9, 0x11, 0x05, 0xe3, 0xf5, 0xe3, 0xb6, 0x24, 0xf3, 0x97, 0x69, 0x38, 0xc6, - 0xa6, 0x93, 0xca, 0xa6, 0x12, 0x7b, 0xe0, 0x32, 0x29, 0x04, 0xab, 0xa2, 0xf7, 0x49, 0xe4, 0x67, - 0x60, 0x72, 0x89, 0x58, 0x0b, 0x12, 0x05, 0xf9, 0x3b, 0x3c, 0x03, 0xcf, 0x9e, 0xce, 0x85, 0x1c, - 0x7e, 0xbe, 0xc3, 0x14, 0x2c, 0x92, 0x7f, 0x2c, 0x06, 0x52, 0xa3, 0xa9, 0xb5, 0x35, 0xfb, 0xfb, - 0x85, 0x42, 0x8f, 0x03, 0xd0, 0x6f, 0x96, 0xfc, 0x8f, 0x8c, 0x8a, 0x67, 0xa7, 0xe7, 0x83, 0x9d, - 0x9b, 0x67, 0x6f, 0xa2, 0x5f, 0x30, 0xe4, 0x28, 0x2d, 0xf9, 0x79, 0xfa, 0x39, 0x00, 0xbf, 0x02, - 0x1d, 0x87, 0xa3, 0x8d, 0x5a, 0x65, 0xb9, 0xa2, 0xa8, 0xec, 0x30, 0xfc, 0x6a, 0x63, 0xbd, 0x5e, - 0x5b, 0xba, 0xb8, 0x54, 0x5f, 0x94, 0xc6, 0xd0, 0x11, 0x40, 0xc1, 0x4a, 0xef, 0x5c, 0xca, 0x1d, - 0x30, 0x11, 0x2c, 0x67, 0x27, 0xea, 0xe3, 0xc4, 0x53, 0xd4, 0x3b, 0x56, 0x1b, 0xd3, 0xad, 0x3f, - 0x55, 0x17, 0x52, 0x8b, 0x76, 0x42, 0x7e, 0xf7, 0xdf, 0xb1, 0x53, 0xd6, 0x93, 0x3e, 0xbb, 0x27, - 0xf3, 0x85, 0x65, 0x98, 0xd0, 0x9a, 0x4d, 0x6c, 0x85, 0x20, 0x23, 0x4c, 0x35, 0x01, 0xa4, 0x9b, - 0x99, 0x9c, 0xd3, 0x47, 0x7b, 0x1c, 0xd2, 0x0e, 0xed, 0x7d, 0x14, 0xc4, 0xef, 0x71, 0x08, 0x4e, - 0xbe, 0x60, 0xc0, 0x04, 0xf1, 0xfc, 0x34, 0x1b, 0x07, 0x9a, 0x71, 0x70, 0x9e, 0xe1, 0xb7, 0x3e, - 0xfb, 0x30, 0xdd, 0xda, 0xbc, 0x3b, 0x3c, 0x2c, 0x03, 0xd4, 0x49, 0x91, 0x38, 0xb6, 0xdf, 0x50, - 0x0c, 0x45, 0xf1, 0x3e, 0xde, 0xe0, 0x83, 0x5f, 0xf6, 0xdb, 0xfc, 0x65, 0x33, 0x83, 0x74, 0x20, - 0xf0, 0xa6, 0x71, 0x8e, 0xca, 0x2a, 0xaa, 0xf5, 0x61, 0x73, 0xfa, 0x85, 0x07, 0xfa, 0x57, 0x27, - 0xf6, 0xdf, 0x43, 0x14, 0xf9, 0x42, 0xf0, 0x35, 0xde, 0xdc, 0xfb, 0x60, 0x12, 0x26, 0xb4, 0x8e, - 0x6e, 0x98, 0x67, 0xe8, 0xbf, 0x7c, 0xce, 0xa5, 0xe8, 0xc3, 0x08, 0x9b, 0x92, 0xe7, 0xd9, 0x54, - 0x88, 0xd6, 0x98, 0x3f, 0xfb, 0xe9, 0x4f, 0xa6, 0xfc, 0xe9, 0xb2, 0xb0, 0x02, 0x92, 0x38, 0x70, - 0x88, 0x8d, 0xa6, 0xd9, 0x1a, 0x29, 0x4b, 0xf1, 0x5d, 0x81, 0x21, 0xf2, 0x5b, 0x75, 0xce, 0xba, - 0xf0, 0x36, 0xc8, 0x7a, 0x30, 0x51, 0x9e, 0x89, 0x00, 0xf1, 0x38, 0x88, 0x5f, 0xc2, 0x66, 0xe6, - 0x28, 0x5e, 0xe8, 0xeb, 0x82, 0x9f, 0xcd, 0xd0, 0x55, 0xd2, 0x9b, 0x4b, 0x50, 0x6c, 0x99, 0x86, - 0xab, 0x9a, 0x1d, 0xdd, 0xc5, 0x1d, 0xcb, 0x8d, 0xf4, 0xeb, 0xfe, 0x82, 0x81, 0x64, 0x95, 0x71, - 0xc2, 0xb7, 0x26, 0xd8, 0x16, 0xce, 0x8f, 0xe8, 0x87, 0xff, 0x77, 0xc1, 0xcf, 0xc8, 0x6f, 0x4b, - 0x29, 0x9c, 0xd6, 0x35, 0x6e, 0xc3, 0xdd, 0x3d, 0x36, 0xf8, 0x9e, 0x52, 0xfc, 0x49, 0x02, 0x66, - 0x38, 0xf1, 0x96, 0xe6, 0xe0, 0x33, 0xd7, 0x1f, 0xd9, 0xc2, 0xae, 0xf6, 0xc8, 0x99, 0xa6, 0xa9, - 0x8b, 0x05, 0x7c, 0x92, 0xdb, 0x68, 0x52, 0x3f, 0xcf, 0xeb, 0xcb, 0x03, 0x77, 0xb9, 0xcb, 0xc3, - 0x6d, 0x7b, 0xb9, 0x5f, 0xf5, 0xe4, 0x17, 0x20, 0x59, 0x33, 0x75, 0x83, 0x2c, 0x69, 0x2d, 0x6c, - 0x98, 0x1d, 0x6e, 0x65, 0xd9, 0x03, 0x3a, 0x0f, 0x69, 0xad, 0x63, 0x76, 0x0d, 0x97, 0x59, 0xd8, - 0xea, 0xcc, 0x97, 0x5f, 0x9d, 0x1d, 0xfb, 0x0f, 0xaf, 0xce, 0x26, 0x96, 0x0c, 0xf7, 0x6b, 0x9f, - 0x7b, 0x08, 0x38, 0xfa, 0x92, 0xe1, 0x7e, 0xfa, 0x9b, 0x9f, 0x39, 0x1d, 0x53, 0x38, 0xf5, 0x42, - 0xf2, 0x5b, 0xaf, 0xcc, 0xc6, 0xe4, 0xe7, 0x20, 0xb3, 0x88, 0x9b, 0x07, 0xc0, 0x3f, 0xd2, 0x03, - 0x7f, 0x4c, 0xc0, 0x2f, 0xe2, 0x66, 0x00, 0x7e, 0x11, 0x37, 0x7b, 0x90, 0x1f, 0x87, 0xec, 0x92, - 0xe1, 0xb2, 0xaf, 0x1c, 0x1e, 0x80, 0x84, 0x6e, 0xb0, 0x83, 0xb3, 0x01, 0x84, 0xbe, 0x06, 0x2a, - 0x84, 0x8a, 0x30, 0x2e, 0xe2, 0xa6, 0xc7, 0xd8, 0xc2, 0xcd, 0x5e, 0xc6, 0xfe, 0x57, 0x13, 0xaa, - 0xea, 0xe2, 0xef, 0xff, 0xe7, 0x99, 0xb1, 0x97, 0x5f, 0x9b, 0x19, 0x1b, 0x3a, 0xf4, 0x72, 0xf4, - 0xd0, 0x7b, 0x23, 0xfe, 0xc9, 0x24, 0xdc, 0x45, 0x3f, 0x7e, 0xb3, 0x3b, 0xba, 0xe1, 0x9e, 0x69, - 0xda, 0xfb, 0x96, 0x6b, 0x92, 0x79, 0x6f, 0x6e, 0xf3, 0x01, 0x9f, 0xf0, 0xab, 0xe7, 0x59, 0xf5, - 0xe0, 0xe1, 0x96, 0xb7, 0x21, 0xb5, 0x4e, 0xf8, 0x88, 0x88, 0x5d, 0xd3, 0xd5, 0xda, 0xdc, 0x59, - 0x61, 0x0f, 0xa4, 0x94, 0x7d, 0x30, 0x17, 0x67, 0xa5, 0xba, 0xf8, 0x56, 0xae, 0x8d, 0xb5, 0x6d, - 0xf6, 0xdd, 0x41, 0x82, 0x7a, 0xb9, 0x59, 0x52, 0x40, 0x3f, 0x31, 0x98, 0x82, 0x94, 0xd6, 0x65, - 0x07, 0x5e, 0x12, 0xc4, 0xfd, 0xa5, 0x0f, 0xf2, 0x33, 0x90, 0xe1, 0xdb, 0xee, 0x48, 0x82, 0xc4, - 0x35, 0xbc, 0x4f, 0xdf, 0x53, 0x50, 0xc8, 0x4f, 0x34, 0x0f, 0x29, 0xda, 0x78, 0xfe, 0x41, 0xd5, - 0xf4, 0x7c, 0x5f, 0xeb, 0xe7, 0x69, 0x23, 0x15, 0x46, 0x26, 0x5f, 0x81, 0xec, 0xa2, 0x49, 0xb4, - 0x30, 0x8c, 0x96, 0x63, 0x68, 0xb4, 0xcd, 0x56, 0x97, 0x6b, 0x85, 0xc2, 0x1e, 0xd0, 0x11, 0x48, - 0xb3, 0xef, 0x50, 0xf8, 0xa1, 0x1d, 0xfe, 0x24, 0xd7, 0x20, 0x43, 0xb1, 0xd7, 0x2c, 0xe2, 0x29, - 0x78, 0x47, 0x7e, 0x73, 0xfc, 0xab, 0x44, 0x0e, 0x1f, 0xf7, 0x1b, 0x8b, 0x20, 0xd9, 0xd2, 0x5c, - 0x8d, 0xf7, 0x9b, 0xfe, 0x96, 0xdf, 0x0e, 0x59, 0x0e, 0xe2, 0xa0, 0xb3, 0x90, 0x30, 0x2d, 0x87, - 0x1f, 0xbb, 0x29, 0x0f, 0xeb, 0xca, 0x9a, 0x55, 0x4d, 0x12, 0x9d, 0x51, 0x08, 0x71, 0x75, 0x75, - 0xa8, 0x5a, 0x3c, 0x16, 0x52, 0x8b, 0x0e, 0x76, 0xb7, 0xb6, 0x5d, 0xff, 0x07, 0x1b, 0xce, 0x3e, - 0x55, 0xf0, 0x14, 0xe5, 0x56, 0x1c, 0x66, 0x02, 0xb5, 0xd7, 0xb1, 0xed, 0xe8, 0xa6, 0xc1, 0xb4, - 0x89, 0x6b, 0x0a, 0x0a, 0x34, 0x90, 0xd7, 0x0f, 0x51, 0x95, 0xa7, 0x20, 0x51, 0xb1, 0x2c, 0x54, - 0x86, 0x2c, 0x7d, 0x6e, 0x9a, 0x4c, 0x57, 0x92, 0x8a, 0xf7, 0x4c, 0xea, 0x1c, 0x73, 0xdb, 0xbd, - 0xa1, 0xd9, 0xde, 0x67, 0x9a, 0xe2, 0x59, 0x7e, 0x12, 0x72, 0x35, 0xd3, 0x70, 0xb0, 0xe1, 0x74, - 0xa9, 0x0b, 0xbc, 0xd5, 0x36, 0x9b, 0xd7, 0x38, 0x02, 0x7b, 0x20, 0xc2, 0xd6, 0x2c, 0x8b, 0x72, - 0x26, 0x15, 0xf2, 0x93, 0xcd, 0xd7, 0xea, 0xda, 0x50, 0xf1, 0x9c, 0x3b, 0x9c, 0x78, 0x78, 0x07, - 0x7d, 0x5f, 0x36, 0x06, 0x77, 0xf6, 0x4f, 0xa4, 0x6b, 0x78, 0xdf, 0x39, 0xec, 0x3c, 0x7a, 0x0e, - 0x72, 0xeb, 0xf4, 0x9e, 0x84, 0x67, 0xf0, 0x3e, 0x2a, 0x43, 0x06, 0xb7, 0xce, 0x9e, 0x3b, 0xf7, - 0xc8, 0x93, 0x4c, 0xcb, 0x2f, 0x8f, 0x29, 0xa2, 0x00, 0xcd, 0x40, 0xce, 0xc1, 0x4d, 0xeb, 0xec, - 0xb9, 0xf3, 0xd7, 0x1e, 0x61, 0x6a, 0x75, 0x79, 0x4c, 0xf1, 0x8b, 0x16, 0xb2, 0xa4, 0xc7, 0xdf, - 0xfa, 0xf8, 0x6c, 0xac, 0x9a, 0x82, 0x84, 0xd3, 0xed, 0xbc, 0x69, 0xba, 0xf1, 0xb3, 0x29, 0x98, - 0x0b, 0xd4, 0xb2, 0xc5, 0xe5, 0xba, 0xd6, 0xd6, 0x5b, 0x9a, 0x7f, 0xbb, 0x85, 0x14, 0xe8, 0x3f, - 0xa5, 0x18, 0xb2, 0x6a, 0x1c, 0x28, 0x45, 0xf9, 0xd7, 0x63, 0x50, 0xb8, 0x2a, 0x90, 0x1b, 0xd8, - 0x45, 0x17, 0x00, 0xbc, 0x37, 0x89, 0xa9, 0x72, 0x7c, 0xbe, 0xf7, 0x5d, 0xf3, 0x1e, 0x8f, 0x12, - 0x20, 0x47, 0x8f, 0x53, 0x05, 0xb4, 0x4c, 0x87, 0x7f, 0xb2, 0x17, 0xc1, 0xea, 0x11, 0xa3, 0x07, - 0x01, 0x51, 0xab, 0xa6, 0x5e, 0x37, 0x5d, 0xdd, 0xd8, 0x51, 0x2d, 0xf3, 0x06, 0xff, 0x10, 0x3a, - 0xa1, 0x48, 0xb4, 0xe6, 0x2a, 0xad, 0x58, 0x27, 0xe5, 0xa4, 0xd1, 0x39, 0x0f, 0x85, 0x44, 0x73, - 0x5a, 0xab, 0x65, 0x63, 0xc7, 0xe1, 0x86, 0x4b, 0x3c, 0xa2, 0x0b, 0x90, 0xb1, 0xba, 0x5b, 0xaa, - 0xb0, 0x12, 0xf9, 0xb3, 0x77, 0x0e, 0x9a, 0xf3, 0x42, 0x37, 0xf8, 0xac, 0x4f, 0x5b, 0xdd, 0x2d, - 0xa2, 0x29, 0x77, 0x43, 0x61, 0x40, 0x63, 0xf2, 0xd7, 0xfd, 0x76, 0xd0, 0xab, 0x39, 0x78, 0x0f, - 0x54, 0xcb, 0xd6, 0x4d, 0x5b, 0x77, 0xf7, 0xe9, 0x79, 0xb9, 0x84, 0x22, 0x89, 0x8a, 0x75, 0x5e, - 0x2e, 0x5f, 0x83, 0x52, 0x83, 0x7a, 0xf9, 0x7e, 0xcb, 0xcf, 0xf9, 0xed, 0x8b, 0x45, 0xb7, 0x6f, - 0x68, 0xcb, 0xe2, 0x7d, 0x2d, 0xab, 0xae, 0x0c, 0xd5, 0xcc, 0x47, 0x0f, 0xa7, 0x99, 0xe1, 0xd5, - 0xed, 0x8f, 0x8e, 0x85, 0x26, 0x25, 0xf7, 0x7a, 0x02, 0x26, 0x6b, 0x54, 0xa5, 0x8c, 0x0a, 0xe0, - 0xcb, 0x07, 0x2f, 0xa2, 0xe5, 0x08, 0xd3, 0x59, 0x8e, 0x9c, 0x3e, 0xf2, 0x93, 0x30, 0xbe, 0xae, - 0xd9, 0x6e, 0x03, 0xbb, 0x97, 0xb1, 0xd6, 0xc2, 0x76, 0x78, 0x95, 0x1d, 0x17, 0xab, 0x2c, 0x82, - 0x24, 0x5d, 0x4a, 0xd9, 0x2a, 0x43, 0x7f, 0xcb, 0xbb, 0x90, 0xa4, 0xe7, 0x65, 0xbd, 0x15, 0x98, - 0x73, 0xb0, 0x15, 0x98, 0xd8, 0xcf, 0x7d, 0x17, 0x3b, 0x22, 0xc7, 0x44, 0x1f, 0xd0, 0x63, 0x62, - 0x1d, 0x4d, 0x1c, 0xbc, 0x8e, 0x72, 0x25, 0xe4, 0xab, 0x69, 0x1b, 0x32, 0x55, 0x62, 0x7e, 0x97, - 0x16, 0xbd, 0x86, 0xc4, 0xfc, 0x86, 0xa0, 0x15, 0x28, 0x59, 0x9a, 0xed, 0xd2, 0x4f, 0x8d, 0x76, - 0x69, 0x2f, 0xb8, 0x9e, 0xcf, 0xf6, 0xcf, 0xba, 0x50, 0x67, 0xf9, 0x5b, 0xc6, 0xad, 0x60, 0xa1, - 0xfc, 0x5f, 0x92, 0x90, 0xe6, 0xc2, 0x78, 0x0a, 0x32, 0x5c, 0xac, 0x5c, 0x33, 0xef, 0x9a, 0xef, - 0x5f, 0x8c, 0xe6, 0xbd, 0x45, 0x83, 0xe3, 0x09, 0x1e, 0x74, 0x3f, 0x64, 0x9b, 0xbb, 0x9a, 0x6e, - 0xa8, 0x7a, 0x8b, 0x3b, 0x80, 0xf9, 0xd7, 0x5e, 0x9d, 0xcd, 0xd4, 0x48, 0xd9, 0xd2, 0xa2, 0x92, - 0xa1, 0x95, 0x4b, 0x2d, 0xb2, 0xf2, 0xef, 0x62, 0x7d, 0x67, 0xd7, 0xe5, 0xb3, 0x8b, 0x3f, 0xa1, - 0x27, 0x20, 0x49, 0x14, 0x82, 0x7f, 0x88, 0x5a, 0xee, 0xf3, 0xe1, 0xbd, 0xfc, 0x4a, 0x35, 0x4b, - 0x5e, 0xfc, 0x81, 0x3f, 0x98, 0x8d, 0x29, 0x94, 0x03, 0xd5, 0x60, 0xbc, 0xad, 0x39, 0xae, 0x4a, - 0x57, 0x2d, 0xf2, 0xfa, 0x14, 0x85, 0x38, 0xd6, 0x2f, 0x10, 0x2e, 0x58, 0xde, 0xf4, 0x3c, 0xe1, - 0x62, 0x45, 0x2d, 0x74, 0x12, 0x24, 0x0a, 0xd2, 0x34, 0x3b, 0x1d, 0xdd, 0x65, 0xbe, 0x54, 0x9a, - 0xca, 0xbd, 0x48, 0xca, 0x6b, 0xb4, 0x98, 0x7a, 0x54, 0xc7, 0x21, 0x47, 0x3f, 0x7d, 0xa3, 0x24, - 0xec, 0x90, 0x76, 0x96, 0x14, 0xd0, 0xca, 0x13, 0x50, 0xf2, 0x6d, 0x23, 0x23, 0xc9, 0x32, 0x14, - 0xbf, 0x98, 0x12, 0x3e, 0x0c, 0x53, 0x06, 0xde, 0xa3, 0xc7, 0xc6, 0x43, 0xd4, 0x39, 0x4a, 0x8d, - 0x48, 0xdd, 0xd5, 0x30, 0xc7, 0x7d, 0x50, 0x6c, 0x0a, 0xe1, 0x33, 0x5a, 0xa0, 0xb4, 0xe3, 0x5e, - 0x29, 0x25, 0x3b, 0x06, 0x59, 0xcd, 0xb2, 0x18, 0x41, 0x9e, 0xdb, 0x46, 0xcb, 0xa2, 0x55, 0xa7, - 0x61, 0x82, 0xf6, 0xd1, 0xc6, 0x4e, 0xb7, 0xed, 0x72, 0x90, 0x02, 0xa5, 0x29, 0x91, 0x0a, 0x85, - 0x95, 0x53, 0xda, 0x7b, 0x60, 0x1c, 0x5f, 0xd7, 0x5b, 0xd8, 0x68, 0x62, 0x46, 0x37, 0x4e, 0xe9, - 0x0a, 0xa2, 0x90, 0x12, 0x9d, 0x02, 0xcf, 0xe6, 0xa9, 0xc2, 0x1e, 0x17, 0x19, 0x9e, 0x28, 0xaf, - 0xb0, 0x62, 0x79, 0x1a, 0x92, 0x8b, 0x9a, 0xab, 0x11, 0xa7, 0xc2, 0xdd, 0x63, 0x8b, 0x4c, 0x41, - 0x21, 0x3f, 0xe5, 0x6f, 0xc5, 0x21, 0x79, 0xd5, 0x74, 0x31, 0x7a, 0x34, 0xe0, 0xf0, 0x15, 0x07, - 0xe9, 0x73, 0x43, 0xdf, 0x31, 0x70, 0x6b, 0xc5, 0xd9, 0x09, 0xdc, 0x53, 0xe1, 0xab, 0x53, 0x3c, - 0xa4, 0x4e, 0x53, 0x90, 0xb2, 0xcd, 0xae, 0xd1, 0x12, 0xe7, 0x9b, 0xe9, 0x03, 0xaa, 0x43, 0xd6, - 0xd3, 0x92, 0x64, 0x94, 0x96, 0x94, 0x88, 0x96, 0x10, 0x1d, 0xe6, 0x05, 0x4a, 0x66, 0x8b, 0x2b, - 0x4b, 0x15, 0x72, 0x9e, 0xf1, 0xe2, 0xda, 0x36, 0x9a, 0xc2, 0xfa, 0x6c, 0x64, 0x21, 0xf1, 0xc6, - 0xde, 0x13, 0x1e, 0xd3, 0x38, 0xc9, 0xab, 0xe0, 0xd2, 0x0b, 0xa9, 0x15, 0xbf, 0x33, 0x23, 0x43, - 0xfb, 0xe5, 0xab, 0x15, 0xbb, 0x37, 0xe3, 0x4e, 0xc8, 0x39, 0xfa, 0x8e, 0xa1, 0xb9, 0x5d, 0x1b, - 0x73, 0xcd, 0xf3, 0x0b, 0xe4, 0x2f, 0xc5, 0x20, 0xcd, 0x34, 0x39, 0x20, 0xb7, 0xd8, 0x60, 0xb9, - 0xc5, 0x87, 0xc9, 0x2d, 0x71, 0xfb, 0x72, 0xab, 0x00, 0x78, 0x8d, 0x71, 0xf8, 0x55, 0x06, 0x03, - 0xbc, 0x05, 0xd6, 0xc4, 0x86, 0xbe, 0xc3, 0x27, 0x6a, 0x80, 0x49, 0xfe, 0x4f, 0x31, 0xe2, 0xb8, - 0xf2, 0x7a, 0x54, 0x81, 0x71, 0xd1, 0x2e, 0x75, 0xbb, 0xad, 0xed, 0x70, 0xdd, 0xb9, 0x6b, 0x68, - 0xe3, 0x2e, 0xb6, 0xb5, 0x1d, 0x25, 0xcf, 0xdb, 0x43, 0x1e, 0x06, 0x8f, 0x43, 0x7c, 0xc8, 0x38, - 0x84, 0x06, 0x3e, 0x71, 0x7b, 0x03, 0x1f, 0x1a, 0xa2, 0x64, 0xef, 0x10, 0x7d, 0x36, 0x4e, 0x83, - 0x17, 0xcb, 0x74, 0xb4, 0xf6, 0x5b, 0x31, 0x23, 0x8e, 0x43, 0xce, 0x32, 0xdb, 0x2a, 0xab, 0x61, - 0xe7, 0xfe, 0xb3, 0x96, 0xd9, 0x56, 0xfa, 0x86, 0x3d, 0xf5, 0x06, 0x4d, 0x97, 0xf4, 0x1b, 0x20, - 0xb5, 0x4c, 0xaf, 0xd4, 0x6c, 0x28, 0x30, 0x51, 0xf0, 0xb5, 0xec, 0x61, 0x22, 0x03, 0xba, 0x38, - 0xc6, 0xfa, 0xd7, 0x5e, 0xd6, 0x6c, 0x46, 0xa9, 0x70, 0x3a, 0xc2, 0xc1, 0x4c, 0xff, 0xa0, 0xa8, - 0x37, 0xa8, 0x96, 0x0a, 0xa7, 0x93, 0x7f, 0x36, 0x06, 0xb0, 0x4c, 0x24, 0x4b, 0xfb, 0x4b, 0x56, - 0x21, 0x87, 0x36, 0x41, 0x0d, 0xbd, 0x79, 0x66, 0xd8, 0xa0, 0xf1, 0xf7, 0x17, 0x9c, 0x60, 0xbb, - 0x6b, 0x30, 0xee, 0x2b, 0xa3, 0x83, 0x45, 0x63, 0x66, 0x0e, 0xf0, 0xa8, 0x1b, 0xd8, 0x55, 0x0a, - 0xd7, 0x03, 0x4f, 0xf2, 0x3f, 0x8d, 0x41, 0x8e, 0xb6, 0x69, 0x05, 0xbb, 0x5a, 0x68, 0x0c, 0x63, - 0xb7, 0x3f, 0x86, 0x77, 0x01, 0x30, 0x18, 0x47, 0x7f, 0x09, 0x73, 0xcd, 0xca, 0xd1, 0x92, 0x86, - 0xfe, 0x12, 0x46, 0xe7, 0x3d, 0x81, 0x27, 0x0e, 0x16, 0xb8, 0xf0, 0xb8, 0xb9, 0xd8, 0x8f, 0x42, - 0x86, 0x5e, 0xfd, 0xb5, 0xe7, 0x70, 0x27, 0x3a, 0x6d, 0x74, 0x3b, 0x1b, 0x7b, 0x8e, 0xfc, 0x22, - 0x64, 0x36, 0xf6, 0x58, 0x2e, 0xe4, 0x38, 0xe4, 0x6c, 0xd3, 0xe4, 0x6b, 0x32, 0xf3, 0x85, 0xb2, - 0xa4, 0x80, 0x2e, 0x41, 0x22, 0xfe, 0x8f, 0xfb, 0xf1, 0xbf, 0x9f, 0xc0, 0x48, 0x8c, 0x94, 0xc0, - 0x38, 0xfd, 0xef, 0x63, 0x90, 0x0f, 0xd8, 0x07, 0xf4, 0x08, 0xdc, 0x51, 0x5d, 0x5e, 0xab, 0x3d, - 0xa3, 0x2e, 0x2d, 0xaa, 0x17, 0x97, 0x2b, 0x97, 0xfc, 0x2f, 0xdb, 0xca, 0x47, 0x6e, 0xde, 0x9a, - 0x43, 0x01, 0xda, 0x4d, 0x83, 0x6e, 0xe2, 0xa0, 0x33, 0x30, 0x15, 0x66, 0xa9, 0x54, 0x1b, 0xf5, - 0xd5, 0x0d, 0x29, 0x56, 0xbe, 0xe3, 0xe6, 0xad, 0xb9, 0x89, 0x00, 0x47, 0x65, 0xcb, 0xc1, 0x86, - 0xdb, 0xcf, 0x50, 0x5b, 0x5b, 0x59, 0x59, 0xda, 0x90, 0xe2, 0x7d, 0x0c, 0xdc, 0x60, 0x9f, 0x82, - 0x89, 0x30, 0xc3, 0xea, 0xd2, 0xb2, 0x94, 0x28, 0xa3, 0x9b, 0xb7, 0xe6, 0x8a, 0x01, 0xea, 0x55, - 0xbd, 0x5d, 0xce, 0xbe, 0xef, 0x13, 0x33, 0x63, 0x9f, 0xfe, 0x7b, 0x33, 0x31, 0xd2, 0xb3, 0xf1, - 0x90, 0x8d, 0x40, 0x0f, 0xc2, 0xd1, 0xc6, 0xd2, 0xa5, 0xd5, 0xfa, 0xa2, 0xba, 0xd2, 0xb8, 0x24, - 0xb6, 0x41, 0x44, 0xef, 0x4a, 0x37, 0x6f, 0xcd, 0xe5, 0x79, 0x97, 0x86, 0x51, 0xaf, 0x2b, 0xf5, - 0xab, 0x6b, 0x1b, 0x75, 0x29, 0xc6, 0xa8, 0xd7, 0x6d, 0x7c, 0xdd, 0x74, 0xd9, 0xdd, 0x80, 0x0f, - 0xc3, 0xb1, 0x01, 0xd4, 0x5e, 0xc7, 0x26, 0x6e, 0xde, 0x9a, 0x1b, 0x5f, 0xb7, 0x31, 0x9b, 0x3f, - 0x94, 0x63, 0x1e, 0xa6, 0xfb, 0x39, 0xd6, 0xd6, 0xd7, 0x1a, 0x95, 0x65, 0x69, 0xae, 0x2c, 0xdd, - 0xbc, 0x35, 0x57, 0x10, 0xc6, 0x90, 0xd0, 0xfb, 0x3d, 0x7b, 0xb3, 0xa2, 0x9d, 0x8f, 0x65, 0x42, - 0xb9, 0x3c, 0x16, 0x47, 0x58, 0x9a, 0xad, 0x75, 0x86, 0x87, 0x3b, 0xfd, 0x89, 0xd8, 0x21, 0x11, - 0x50, 0xc4, 0xc6, 0xae, 0xfc, 0x72, 0x1c, 0x4a, 0x9e, 0x7f, 0xbd, 0x4e, 0x5f, 0x8a, 0x1e, 0x0d, - 0xa6, 0x66, 0xf2, 0x43, 0x57, 0x36, 0x46, 0x2d, 0x32, 0x37, 0x6f, 0x83, 0xac, 0xf0, 0xd3, 0xb8, - 0x05, 0x99, 0xeb, 0xe7, 0xab, 0x73, 0x0a, 0xce, 0xea, 0x71, 0xa0, 0xa7, 0x21, 0xe7, 0xd9, 0x13, - 0xef, 0xb2, 0x9d, 0xe1, 0x06, 0x88, 0xf3, 0xfb, 0x3c, 0xe8, 0x49, 0x3f, 0x92, 0x48, 0x0e, 0x8b, - 0x4d, 0xae, 0x32, 0x02, 0xce, 0x2c, 0xe8, 0xe5, 0x25, 0x3e, 0x13, 0x79, 0xef, 0xe9, 0x45, 0x05, - 0x7b, 0x2a, 0x0b, 0xae, 0x98, 0xa3, 0x92, 0xed, 0x68, 0x7b, 0x55, 0x1a, 0x5f, 0x1d, 0x85, 0x0c, - 0xa9, 0xdc, 0xe1, 0xdf, 0x61, 0x27, 0x94, 0x74, 0x47, 0xdb, 0xbb, 0xa4, 0x39, 0x57, 0x92, 0xd9, - 0x84, 0x94, 0x94, 0x7f, 0x35, 0x06, 0xc5, 0x70, 0x1f, 0xd1, 0x03, 0x80, 0x08, 0x87, 0xb6, 0x83, - 0x55, 0x62, 0x75, 0xa8, 0xb0, 0x04, 0x6e, 0xa9, 0xa3, 0xed, 0x55, 0x76, 0xf0, 0x6a, 0xb7, 0x43, - 0x1b, 0xe0, 0x20, 0x05, 0x24, 0x41, 0x2c, 0xc6, 0x89, 0x0b, 0xf3, 0x58, 0xff, 0xd5, 0x7b, 0x9c, - 0xa0, 0x3a, 0x4e, 0xac, 0xdb, 0x87, 0xff, 0x60, 0x36, 0xc6, 0x52, 0xe8, 0x45, 0x06, 0xea, 0xed, - 0xce, 0x87, 0xfa, 0x93, 0x08, 0xf7, 0x47, 0x7e, 0x1a, 0x4a, 0x3d, 0x42, 0x45, 0x32, 0x8c, 0xf3, - 0x6c, 0x01, 0xdd, 0xf9, 0x64, 0x7e, 0x73, 0x4e, 0xc9, 0xb3, 0xac, 0x00, 0xdd, 0x09, 0x5e, 0xc8, - 0x7e, 0xf1, 0x95, 0xd9, 0x18, 0x4d, 0xa4, 0x3f, 0x00, 0xe3, 0x21, 0xb1, 0x8a, 0x0c, 0x5e, 0xcc, - 0xcf, 0xe0, 0xf9, 0xc4, 0x2f, 0x40, 0x81, 0x18, 0x50, 0xdc, 0xe2, 0xb4, 0xf7, 0x43, 0x89, 0x19, - 0xf8, 0x5e, 0x81, 0x33, 0x0f, 0x6b, 0x45, 0x48, 0x5d, 0x16, 0x2e, 0x57, 0x58, 0xf6, 0x79, 0x41, - 0x75, 0x49, 0x73, 0xaa, 0xef, 0xf8, 0xf4, 0x6b, 0x33, 0xb1, 0x37, 0x67, 0x82, 0x7e, 0xf5, 0x1d, - 0x70, 0x3c, 0x50, 0xa9, 0x6d, 0x35, 0xf5, 0x50, 0x36, 0xa2, 0x14, 0xd0, 0x34, 0x52, 0x19, 0x95, - 0x55, 0x38, 0x30, 0xb7, 0x71, 0x70, 0x22, 0xad, 0x7c, 0xb0, 0xa5, 0x88, 0x4e, 0x78, 0x0c, 0xce, - 0x5d, 0xfe, 0x9f, 0x2c, 0x64, 0x14, 0xfc, 0x9e, 0x2e, 0x76, 0x5c, 0x74, 0x16, 0x92, 0xb8, 0xb9, - 0x6b, 0x0e, 0x4a, 0x15, 0x91, 0xce, 0xcd, 0x73, 0xba, 0x7a, 0x73, 0xd7, 0xbc, 0x3c, 0xa6, 0x50, - 0x5a, 0x74, 0x0e, 0x52, 0xdb, 0xed, 0x2e, 0xcf, 0x5f, 0xf4, 0x58, 0x8c, 0x20, 0xd3, 0x45, 0x42, - 0x74, 0x79, 0x4c, 0x61, 0xd4, 0xe4, 0x55, 0xf4, 0x26, 0xd3, 0xc4, 0xc1, 0xaf, 0x5a, 0x32, 0xb6, - 0xe9, 0xab, 0x08, 0x2d, 0xaa, 0x02, 0xe8, 0x86, 0xee, 0xaa, 0x34, 0xb6, 0xe7, 0x1e, 0xe2, 0xdd, - 0xc3, 0x39, 0x75, 0x97, 0x66, 0x03, 0x2e, 0x8f, 0x29, 0x39, 0x5d, 0x3c, 0x90, 0xe6, 0xbe, 0xa7, - 0x8b, 0xed, 0x7d, 0xee, 0x18, 0x0e, 0x6d, 0xee, 0x3b, 0x08, 0x11, 0x69, 0x2e, 0xa5, 0x46, 0x75, - 0xc8, 0xd3, 0x4f, 0x56, 0xd9, 0x24, 0xe6, 0xb7, 0x6a, 0xca, 0xc3, 0x98, 0xab, 0x84, 0x94, 0xce, - 0xeb, 0xcb, 0x63, 0x0a, 0x6c, 0x79, 0x4f, 0xc4, 0x52, 0xb2, 0x5b, 0x97, 0xdc, 0x3d, 0x7e, 0x97, - 0xe0, 0xec, 0x30, 0x0c, 0x7a, 0xf5, 0xd2, 0xc6, 0xde, 0xe5, 0x31, 0x25, 0xd3, 0x64, 0x3f, 0x49, - 0xff, 0x5b, 0xb8, 0xad, 0x5f, 0xc7, 0x36, 0xe1, 0xcf, 0x1d, 0xdc, 0xff, 0x45, 0x46, 0x49, 0x11, - 0x72, 0x2d, 0xf1, 0x40, 0xac, 0x2d, 0x36, 0x5a, 0xbc, 0x1b, 0xd0, 0x6f, 0xac, 0x43, 0xe3, 0x6c, - 0xb4, 0x44, 0x27, 0xb2, 0x98, 0xff, 0x46, 0x4f, 0x78, 0x9e, 0x6b, 0xbe, 0xdf, 0x59, 0x0c, 0x75, - 0x80, 0xe5, 0x30, 0xc6, 0x84, 0x07, 0x8b, 0x56, 0xa1, 0xd8, 0xd6, 0x1d, 0x57, 0x75, 0x0c, 0xcd, - 0x72, 0x76, 0x4d, 0xd7, 0xa1, 0xc9, 0x80, 0xfc, 0xd9, 0xfb, 0x86, 0x21, 0x2c, 0xeb, 0x8e, 0xdb, - 0x10, 0xc4, 0x97, 0xc7, 0x94, 0xf1, 0x76, 0xb0, 0x80, 0xe0, 0x99, 0xdb, 0xdb, 0xd8, 0xf6, 0x00, - 0x69, 0xd2, 0xe0, 0x00, 0xbc, 0x35, 0x42, 0x2d, 0xf8, 0x09, 0x9e, 0x19, 0x2c, 0x40, 0x3f, 0x0c, - 0x93, 0x6d, 0x53, 0x6b, 0x79, 0x70, 0x6a, 0x73, 0xb7, 0x6b, 0x5c, 0xa3, 0x19, 0x86, 0xfc, 0xd9, - 0x53, 0x43, 0x1b, 0x69, 0x6a, 0x2d, 0x01, 0x51, 0x23, 0x0c, 0x97, 0xc7, 0x94, 0x89, 0x76, 0x6f, - 0x21, 0x7a, 0x17, 0x4c, 0x69, 0x96, 0xd5, 0xde, 0xef, 0x45, 0x2f, 0x51, 0xf4, 0xd3, 0xc3, 0xd0, - 0x2b, 0x84, 0xa7, 0x17, 0x1e, 0x69, 0x7d, 0xa5, 0x68, 0x03, 0x24, 0xcb, 0xc6, 0xf4, 0x1b, 0x1b, - 0x8b, 0xbb, 0x30, 0xf4, 0xa2, 0xac, 0xfc, 0xd9, 0x13, 0xc3, 0xb0, 0xd7, 0x19, 0xbd, 0xf0, 0x78, - 0x2e, 0x8f, 0x29, 0x25, 0x2b, 0x5c, 0xc4, 0x50, 0xcd, 0x26, 0xa6, 0x97, 0x39, 0x71, 0xd4, 0x89, - 0x28, 0x54, 0x4a, 0x1f, 0x46, 0x0d, 0x15, 0x55, 0x33, 0xfc, 0x8c, 0x1c, 0xbf, 0x69, 0xe5, 0x04, - 0xe4, 0x03, 0x86, 0x05, 0x4d, 0x43, 0x86, 0x9f, 0x19, 0x10, 0x67, 0xeb, 0xf8, 0xa3, 0x5c, 0x84, - 0x42, 0xd0, 0x98, 0xc8, 0x1f, 0x88, 0x79, 0x9c, 0xf4, 0xd3, 0xf7, 0xe9, 0x70, 0x4a, 0x31, 0xe7, - 0x67, 0x0b, 0xef, 0x11, 0xab, 0x88, 0xa8, 0x67, 0xbb, 0x4c, 0x05, 0x5a, 0xc8, 0x17, 0x31, 0x34, - 0x0b, 0x79, 0xeb, 0xac, 0xe5, 0x91, 0x24, 0x28, 0x09, 0x58, 0x67, 0x2d, 0x41, 0x70, 0x37, 0x14, - 0x48, 0x4f, 0xd5, 0xa0, 0xb7, 0x91, 0x53, 0xf2, 0xa4, 0x8c, 0x93, 0xc8, 0xff, 0x3a, 0x0e, 0x52, - 0xaf, 0x01, 0xf2, 0x72, 0x8d, 0xb1, 0x43, 0xe7, 0x1a, 0x8f, 0xf5, 0x66, 0x39, 0xfd, 0xc4, 0xe6, - 0x32, 0x48, 0x7e, 0x7e, 0x8e, 0x2d, 0x04, 0xc3, 0xbd, 0xa7, 0x1e, 0x37, 0x4f, 0x29, 0x35, 0x7b, - 0xfc, 0xbe, 0x8b, 0xa1, 0x3d, 0x19, 0x71, 0x55, 0x77, 0xef, 0x10, 0x7b, 0xfe, 0xc2, 0xa6, 0xd5, - 0xd2, 0x5c, 0x2c, 0xf2, 0x25, 0x81, 0xed, 0x99, 0xfb, 0xa1, 0xa4, 0x59, 0x96, 0xea, 0xb8, 0x9a, - 0x8b, 0xf9, 0xb2, 0x9e, 0x62, 0x69, 0x43, 0xcd, 0xb2, 0x1a, 0xa4, 0x94, 0x2d, 0xeb, 0xf7, 0x41, - 0x91, 0xd8, 0x64, 0x5d, 0x6b, 0xab, 0x3c, 0x7b, 0x90, 0x66, 0xab, 0x3f, 0x2f, 0xbd, 0x4c, 0x0b, - 0xe5, 0x96, 0x37, 0xe2, 0xd4, 0x1e, 0x7b, 0xe1, 0x57, 0x2c, 0x10, 0x7e, 0x21, 0x7e, 0x27, 0x01, - 0x93, 0x8f, 0xb8, 0xc6, 0x61, 0x70, 0xd6, 0x77, 0x8a, 0x86, 0x6a, 0xd7, 0x59, 0x22, 0x24, 0xab, - 0xb0, 0x07, 0xf9, 0xbd, 0x71, 0x98, 0xe8, 0xb3, 0xdc, 0x03, 0xd3, 0xe1, 0x7e, 0xdc, 0x19, 0x3f, - 0x54, 0xdc, 0xf9, 0x4c, 0x38, 0xdd, 0x1b, 0x58, 0xf9, 0x8e, 0xf7, 0x09, 0x99, 0xd9, 0x4d, 0xa2, - 0xd0, 0x1c, 0x24, 0x90, 0x11, 0xa6, 0x6a, 0xbe, 0x09, 0x53, 0x5b, 0xfb, 0x2f, 0x69, 0x86, 0xab, - 0x1b, 0x58, 0xed, 0x1b, 0xb5, 0xfe, 0xa5, 0x74, 0x45, 0x77, 0xb6, 0xf0, 0xae, 0x76, 0x5d, 0x37, - 0x45, 0xb3, 0x26, 0x3d, 0x7e, 0x3f, 0xe9, 0x2b, 0x2b, 0x50, 0x0c, 0x2f, 0x3d, 0xa8, 0x08, 0x71, - 0x77, 0x8f, 0xf7, 0x3f, 0xee, 0xee, 0xa1, 0x87, 0x79, 0x7e, 0x28, 0x4e, 0xf3, 0x43, 0xfd, 0x2f, - 0xe2, 0x7c, 0x7e, 0x72, 0x48, 0x96, 0xbd, 0xd9, 0xe0, 0x2d, 0x47, 0xbd, 0xa8, 0xf2, 0x29, 0x28, - 0xf5, 0xac, 0x37, 0xc3, 0xb2, 0x85, 0x72, 0x09, 0xc6, 0x43, 0x8b, 0x8b, 0x7c, 0x04, 0xa6, 0x06, - 0xad, 0x15, 0xf2, 0xae, 0x57, 0x1e, 0xb2, 0xf9, 0xe8, 0x1c, 0x64, 0xbd, 0xc5, 0x62, 0x40, 0x76, - 0x82, 0xf6, 0x42, 0x10, 0x2b, 0x1e, 0x69, 0x28, 0xc9, 0x1d, 0x0f, 0x25, 0xb9, 0xe5, 0x77, 0xc3, - 0xf4, 0xb0, 0x85, 0xa0, 0xa7, 0x1b, 0x49, 0x4f, 0x0b, 0x8f, 0x40, 0x9a, 0xdf, 0xd8, 0x16, 0xa7, - 0xdb, 0x3a, 0xfc, 0x89, 0x68, 0x27, 0x5b, 0x14, 0x12, 0x6c, 0xb7, 0x87, 0x3e, 0xc8, 0x2a, 0x1c, - 0x1b, 0xba, 0x18, 0x0c, 0xdf, 0x20, 0x62, 0x40, 0x7c, 0x83, 0xa8, 0x29, 0x9a, 0xe3, 0xd0, 0xbe, - 0x8a, 0x43, 0x10, 0xec, 0x49, 0xfe, 0x70, 0x02, 0x8e, 0x0c, 0x5e, 0x12, 0xd0, 0x1c, 0x14, 0x88, - 0xdf, 0xed, 0x86, 0x5d, 0x74, 0xe8, 0x68, 0x7b, 0x1b, 0xdc, 0x3f, 0xe7, 0x09, 0xf6, 0xb8, 0x97, - 0x60, 0x47, 0x9b, 0x30, 0xd1, 0x36, 0x9b, 0x5a, 0x5b, 0x0d, 0x68, 0x3c, 0x57, 0xf6, 0x7b, 0xfa, - 0x84, 0x5d, 0x67, 0xf7, 0x38, 0xb7, 0xfa, 0x94, 0xbe, 0x44, 0x31, 0x96, 0x3d, 0xcd, 0x47, 0x8b, - 0x90, 0xef, 0xf8, 0x8a, 0x7c, 0x08, 0x65, 0x0f, 0xb2, 0x05, 0x86, 0x24, 0x35, 0x70, 0x3b, 0x28, - 0x7d, 0x68, 0x13, 0x3d, 0x6c, 0x67, 0x25, 0x33, 0x74, 0x67, 0x65, 0xd0, 0x36, 0x46, 0x76, 0xf0, - 0x36, 0xc6, 0xfb, 0x82, 0x43, 0x13, 0x5a, 0x44, 0xfb, 0x77, 0x36, 0x50, 0x03, 0xa6, 0x38, 0x7f, - 0x2b, 0x24, 0xfb, 0xf8, 0xa8, 0x86, 0x06, 0x09, 0xf6, 0xe1, 0x62, 0x4f, 0xdc, 0x9e, 0xd8, 0x85, - 0x2d, 0x4d, 0x06, 0x6c, 0xe9, 0xff, 0x63, 0x43, 0xf1, 0x6f, 0x73, 0x90, 0x55, 0xb0, 0x63, 0x91, - 0x85, 0x13, 0x55, 0x21, 0x87, 0xf7, 0x9a, 0xd8, 0x72, 0xfd, 0xed, 0xcb, 0x41, 0xc1, 0x00, 0xa3, - 0xae, 0x0b, 0x4a, 0xe2, 0x89, 0x7b, 0x6c, 0xe8, 0x51, 0x1e, 0x6c, 0x0d, 0x8f, 0x9b, 0x38, 0x7b, - 0x30, 0xda, 0x3a, 0x2f, 0xa2, 0xad, 0xc4, 0x50, 0xe7, 0x9b, 0x71, 0xf5, 0x84, 0x5b, 0x8f, 0xf2, - 0x70, 0x2b, 0x19, 0xf1, 0xb2, 0x50, 0xbc, 0x55, 0x0b, 0xc5, 0x5b, 0xe9, 0x88, 0x6e, 0x0e, 0x09, - 0xb8, 0xce, 0x8b, 0x80, 0x2b, 0x13, 0xd1, 0xe2, 0x9e, 0x88, 0xeb, 0x62, 0x38, 0xe2, 0xca, 0x0e, - 0x31, 0x20, 0x82, 0x7b, 0x68, 0xc8, 0xf5, 0x54, 0x20, 0xe4, 0xca, 0x0d, 0x8d, 0x77, 0x18, 0xc8, - 0x80, 0x98, 0xab, 0x16, 0x8a, 0xb9, 0x20, 0x42, 0x06, 0x43, 0x82, 0xae, 0x1f, 0x0a, 0x06, 0x5d, - 0xf9, 0xa1, 0x71, 0x1b, 0x1f, 0xef, 0x41, 0x51, 0xd7, 0x93, 0x5e, 0xd4, 0x55, 0x18, 0x1a, 0x36, - 0xf2, 0x3e, 0xf4, 0x86, 0x5d, 0x6b, 0x7d, 0x61, 0xd7, 0x38, 0xff, 0x13, 0x09, 0xc3, 0x20, 0x22, - 0xe2, 0xae, 0xb5, 0xbe, 0xb8, 0xab, 0x18, 0x01, 0x18, 0x11, 0x78, 0xfd, 0xc8, 0xe0, 0xc0, 0x6b, - 0x78, 0x68, 0xc4, 0x9b, 0x39, 0x5a, 0xe4, 0xa5, 0x0e, 0x89, 0xbc, 0x58, 0x74, 0xf4, 0xc0, 0x50, - 0xf8, 0x91, 0x43, 0xaf, 0xcd, 0x01, 0xa1, 0x17, 0x0b, 0x92, 0x4e, 0x0e, 0x05, 0x1f, 0x21, 0xf6, - 0xda, 0x1c, 0x10, 0x7b, 0xa1, 0x48, 0xd8, 0xc3, 0x04, 0x5f, 0x29, 0x29, 0x2d, 0x9f, 0x22, 0xae, - 0x6f, 0x8f, 0x9d, 0x22, 0xfe, 0x03, 0xb6, 0x6d, 0xd3, 0x16, 0x27, 0x6e, 0xe9, 0x83, 0x7c, 0x92, - 0x38, 0xe3, 0xbe, 0x4d, 0x3a, 0x20, 0x50, 0xa3, 0x7e, 0x5a, 0xc0, 0x0e, 0xc9, 0x5f, 0x8c, 0xf9, - 0xbc, 0xd4, 0x87, 0x0d, 0x3a, 0xf2, 0x39, 0xee, 0xc8, 0x07, 0xc2, 0xb7, 0x78, 0x38, 0x7c, 0x9b, - 0x85, 0x3c, 0xf1, 0xbf, 0x7a, 0x22, 0x33, 0xcd, 0xf2, 0x22, 0x33, 0x71, 0xd4, 0x80, 0x05, 0x79, - 0x7c, 0x59, 0x61, 0x3b, 0x3c, 0x25, 0xef, 0xd8, 0x05, 0x8b, 0x29, 0xd0, 0x43, 0x30, 0x19, 0xa0, - 0xf5, 0xfc, 0x3a, 0x16, 0xa6, 0x48, 0x1e, 0x75, 0x85, 0x3b, 0x78, 0xff, 0x2c, 0xe6, 0x4b, 0xc8, - 0x0f, 0xe9, 0x06, 0x45, 0x5f, 0xb1, 0x37, 0x28, 0xfa, 0x8a, 0xdf, 0x76, 0xf4, 0x15, 0xf4, 0x53, - 0x13, 0x61, 0x3f, 0xf5, 0x7f, 0xc4, 0xfc, 0x31, 0xf1, 0x62, 0xa9, 0xa6, 0xd9, 0xc2, 0xdc, 0x73, - 0xa4, 0xbf, 0x89, 0x53, 0xd1, 0x36, 0x77, 0xb8, 0x7f, 0x48, 0x7e, 0x12, 0x2a, 0x6f, 0xe1, 0xc8, - 0xf1, 0x75, 0xc1, 0x73, 0x3a, 0x53, 0xc1, 0x73, 0xc1, 0xfc, 0xb0, 0x6c, 0xda, 0x3f, 0x2c, 0xeb, - 0x7d, 0x0b, 0x97, 0x09, 0x7c, 0x0b, 0x87, 0x9e, 0x80, 0x1c, 0xcd, 0x88, 0xaa, 0xa6, 0x25, 0xfe, - 0xa0, 0xc6, 0xf1, 0xe1, 0x07, 0x65, 0x1d, 0x7a, 0x84, 0x8f, 0x1d, 0xae, 0xf5, 0x3d, 0x86, 0x5c, - 0xc8, 0x63, 0xb8, 0x13, 0x72, 0xa4, 0xf5, 0xec, 0x62, 0x68, 0xe0, 0x1f, 0x52, 0x8a, 0x02, 0xf9, - 0x5d, 0x80, 0xfa, 0x17, 0x09, 0x74, 0x19, 0xd2, 0xf8, 0x3a, 0xbd, 0x65, 0x8f, 0x1d, 0x40, 0x3c, - 0xd2, 0xef, 0x9a, 0x92, 0xea, 0xea, 0x34, 0x11, 0xf2, 0xb7, 0x5f, 0x9d, 0x95, 0x18, 0xf5, 0x83, - 0xde, 0x77, 0x03, 0x0a, 0xe7, 0x97, 0xff, 0x63, 0x9c, 0x04, 0x30, 0xa1, 0x05, 0x64, 0xa0, 0x6c, - 0x07, 0x6d, 0x1d, 0x8e, 0x26, 0xef, 0x19, 0x80, 0x1d, 0xcd, 0x51, 0x6f, 0x68, 0x86, 0x8b, 0x5b, - 0x5c, 0xe8, 0x81, 0x12, 0x54, 0x86, 0x2c, 0x79, 0xea, 0x3a, 0xb8, 0xc5, 0xc3, 0x68, 0xef, 0x39, - 0xd0, 0xcf, 0xcc, 0xf7, 0xd7, 0xcf, 0xb0, 0x94, 0xb3, 0x3d, 0x52, 0x0e, 0x04, 0x17, 0xb9, 0x60, - 0x70, 0xc1, 0x0e, 0x0c, 0xf3, 0x73, 0x8b, 0xc0, 0xda, 0x26, 0x9e, 0xd1, 0x3d, 0x30, 0xde, 0xc1, - 0x1d, 0xcb, 0x34, 0xdb, 0x2a, 0x33, 0x37, 0xec, 0x06, 0xf8, 0x02, 0x2f, 0xac, 0x53, 0xab, 0xf3, - 0x93, 0x71, 0x7f, 0xfe, 0xf9, 0x41, 0xe4, 0x0f, 0x9c, 0x80, 0xe5, 0x9f, 0xa6, 0x99, 0xa5, 0xb0, - 0x8b, 0x80, 0x1a, 0xc1, 0xd3, 0x24, 0x5d, 0x6a, 0x16, 0x84, 0x42, 0x8f, 0x6a, 0x3f, 0xfc, 0x53, - 0x27, 0xac, 0xd8, 0x41, 0xcf, 0xc3, 0xd1, 0x1e, 0xdb, 0xe6, 0x41, 0xc7, 0x47, 0x35, 0x71, 0x77, - 0x84, 0x4d, 0x9c, 0x80, 0xf6, 0x85, 0x95, 0xf8, 0x3e, 0x67, 0xdd, 0x12, 0x14, 0xc3, 0x1e, 0xcf, - 0xc0, 0xe1, 0xa7, 0x7f, 0x71, 0xc4, 0xd5, 0x74, 0x43, 0x0d, 0xa5, 0x83, 0x0a, 0xac, 0x90, 0x27, - 0x99, 0xd6, 0xe1, 0x8e, 0x81, 0x9e, 0x0f, 0x7a, 0x1c, 0x72, 0xbe, 0xd3, 0xc4, 0xa4, 0x7a, 0x40, - 0xba, 0xc0, 0xa7, 0x95, 0x7f, 0x3b, 0xe6, 0x43, 0x86, 0x13, 0x10, 0x75, 0x48, 0xb3, 0xe3, 0x70, - 0xfc, 0x90, 0xcd, 0x43, 0xa3, 0xf9, 0x4c, 0xf3, 0xec, 0xac, 0x9c, 0xc2, 0x99, 0xe5, 0x77, 0x41, - 0x9a, 0x95, 0xa0, 0x3c, 0x64, 0xfc, 0x8b, 0x70, 0x01, 0xd2, 0x95, 0x5a, 0xad, 0xbe, 0xbe, 0x21, - 0xc5, 0x50, 0x0e, 0x52, 0x95, 0xea, 0x9a, 0xb2, 0x21, 0xc5, 0x49, 0xb1, 0x52, 0xbf, 0x52, 0xaf, - 0x6d, 0x48, 0x09, 0x34, 0x01, 0xe3, 0xec, 0xb7, 0x7a, 0x71, 0x4d, 0x59, 0xa9, 0x6c, 0x48, 0xc9, - 0x40, 0x51, 0xa3, 0xbe, 0xba, 0x58, 0x57, 0xa4, 0x94, 0xfc, 0x08, 0x1c, 0x1b, 0xea, 0x65, 0xf9, - 0xd9, 0x85, 0x58, 0x20, 0xbb, 0x20, 0x7f, 0x38, 0x0e, 0xe5, 0xe1, 0xae, 0x13, 0xba, 0xd2, 0xd3, - 0xf1, 0xb3, 0x87, 0xf0, 0xbb, 0x7a, 0x7a, 0x8f, 0xee, 0x83, 0xa2, 0x8d, 0xb7, 0xb1, 0xdb, 0xdc, - 0x65, 0xae, 0x1c, 0x5b, 0x32, 0xc7, 0x95, 0x71, 0x5e, 0x4a, 0x99, 0x1c, 0x46, 0xf6, 0x22, 0x6e, - 0xba, 0x2a, 0xb3, 0x45, 0x0e, 0xff, 0xd3, 0x87, 0xe3, 0xac, 0xb4, 0xc1, 0x0a, 0xe5, 0x77, 0x1f, - 0x4a, 0x96, 0x39, 0x48, 0x29, 0xf5, 0x0d, 0xe5, 0x79, 0x29, 0x81, 0x10, 0x14, 0xe9, 0x4f, 0xb5, - 0xb1, 0x5a, 0x59, 0x6f, 0x5c, 0x5e, 0x23, 0xb2, 0x9c, 0x84, 0x92, 0x90, 0xa5, 0x28, 0x4c, 0xc9, - 0x0f, 0xc0, 0xd1, 0x21, 0x7e, 0xdf, 0x80, 0xf3, 0x89, 0x1f, 0x8f, 0x05, 0xa9, 0xc3, 0x31, 0xff, - 0x1a, 0xa4, 0x1d, 0x57, 0x73, 0xbb, 0x0e, 0x17, 0xe2, 0xe3, 0xa3, 0x3a, 0x82, 0xf3, 0xe2, 0x47, - 0x83, 0xb2, 0x2b, 0x1c, 0x46, 0x3e, 0x07, 0xc5, 0x70, 0xcd, 0x70, 0x19, 0xf8, 0x4a, 0x14, 0x97, - 0x9f, 0x07, 0x08, 0xe4, 0x23, 0xbd, 0x93, 0x5e, 0xb1, 0xe0, 0x49, 0xaf, 0x73, 0x90, 0xba, 0x6e, - 0x32, 0x9b, 0x31, 0x78, 0xe2, 0x5c, 0x35, 0x5d, 0x1c, 0x48, 0x3e, 0x30, 0x6a, 0x59, 0x07, 0xd4, - 0x9f, 0x13, 0x1a, 0xf2, 0x8a, 0xa7, 0xc2, 0xaf, 0xb8, 0x7b, 0x68, 0x76, 0x69, 0xf0, 0xab, 0x5e, - 0x82, 0x14, 0xb5, 0x36, 0x03, 0x3f, 0xfd, 0x79, 0x27, 0x80, 0xe6, 0xba, 0xb6, 0xbe, 0xd5, 0xf5, - 0x5f, 0x30, 0x3b, 0xd8, 0x5a, 0x55, 0x04, 0x5d, 0xf5, 0x4e, 0x6e, 0xb6, 0xa6, 0x7c, 0xd6, 0x80, - 0xe9, 0x0a, 0x00, 0xca, 0xab, 0x50, 0x0c, 0xf3, 0x0e, 0xfe, 0x94, 0xc9, 0xbf, 0x4a, 0x20, 0x27, - 0xdc, 0x27, 0xcf, 0xf9, 0xe2, 0xd7, 0x7b, 0xd0, 0x07, 0xf9, 0x66, 0x0c, 0xb2, 0x1b, 0x7b, 0x5c, - 0x8f, 0x0f, 0x38, 0x6c, 0xe9, 0x7f, 0xcf, 0xe5, 0x25, 0x0b, 0x59, 0x3e, 0x36, 0xe1, 0x65, 0x79, - 0x7f, 0xc8, 0x9b, 0xa9, 0xc9, 0x51, 0xa3, 0x5d, 0x91, 0xed, 0xe6, 0xd6, 0xe9, 0xc2, 0x68, 0xdf, - 0x4e, 0x4c, 0x41, 0x2a, 0xf8, 0xdd, 0x03, 0x7b, 0x90, 0x5b, 0x81, 0x63, 0x09, 0x6c, 0xd9, 0x08, - 0x7e, 0x64, 0x11, 0x3b, 0xf4, 0x47, 0x16, 0xde, 0x5b, 0xe2, 0xc1, 0xb7, 0x5c, 0x87, 0xac, 0x50, - 0x0a, 0xf4, 0xf6, 0xe0, 0x01, 0x14, 0xb1, 0x47, 0x33, 0x74, 0xf1, 0xe4, 0xf0, 0x81, 0xf3, 0x27, - 0xa7, 0x61, 0x82, 0x1f, 0xc5, 0xf3, 0xe3, 0x0a, 0x7e, 0x55, 0x7f, 0x89, 0x55, 0x2c, 0x8b, 0xa0, - 0x42, 0xfe, 0xa5, 0x18, 0x48, 0xbd, 0x5a, 0xf9, 0x56, 0x36, 0x80, 0x18, 0x45, 0xa2, 0xfd, 0x81, - 0x3b, 0xb8, 0xd9, 0xc8, 0x8f, 0x93, 0x52, 0xff, 0x16, 0xee, 0xf7, 0xc6, 0x21, 0x1f, 0xc8, 0xe9, - 0xa1, 0xc7, 0x42, 0x47, 0x43, 0xe7, 0x0e, 0xca, 0xff, 0x05, 0xce, 0x86, 0x86, 0x3a, 0x16, 0x3f, - 0x7c, 0xc7, 0xde, 0xf8, 0xc3, 0xfb, 0x83, 0xbf, 0x02, 0x4a, 0x0d, 0xf9, 0x0a, 0xe8, 0xc7, 0x63, - 0x90, 0xf5, 0x96, 0xee, 0xc3, 0x66, 0xf3, 0x8f, 0x40, 0x9a, 0xaf, 0x4e, 0x2c, 0x9d, 0xcf, 0x9f, - 0x06, 0xe6, 0x42, 0xcb, 0x90, 0x15, 0x7f, 0xe3, 0x86, 0x07, 0xa2, 0xde, 0xf3, 0xe9, 0x27, 0x21, - 0x1f, 0xd8, 0x58, 0x21, 0x76, 0x62, 0xb5, 0xfe, 0xac, 0x34, 0x56, 0xce, 0xdc, 0xbc, 0x35, 0x97, - 0x58, 0xc5, 0x37, 0xc8, 0x0c, 0x53, 0xea, 0xb5, 0xcb, 0xf5, 0xda, 0x33, 0x52, 0xac, 0x9c, 0xbf, - 0x79, 0x6b, 0x2e, 0xa3, 0x60, 0x9a, 0xbe, 0x3a, 0xfd, 0x0c, 0x94, 0x7a, 0x06, 0x26, 0x6c, 0xdf, - 0x11, 0x14, 0x17, 0x37, 0xd7, 0x97, 0x97, 0x6a, 0x95, 0x8d, 0xba, 0xca, 0x8e, 0xd9, 0xa1, 0xa3, - 0x30, 0xb9, 0xbc, 0x74, 0xe9, 0xf2, 0x86, 0x5a, 0x5b, 0x5e, 0xaa, 0xaf, 0x6e, 0xa8, 0x95, 0x8d, - 0x8d, 0x4a, 0xed, 0x19, 0x29, 0x7e, 0xf6, 0x7b, 0x00, 0xa5, 0x4a, 0xb5, 0xb6, 0x44, 0xd6, 0x67, - 0x9d, 0x5f, 0xa3, 0x5e, 0x83, 0x24, 0x4d, 0x05, 0x1c, 0x78, 0x54, 0xa4, 0x7c, 0x70, 0x6e, 0x13, - 0x5d, 0x84, 0x14, 0xcd, 0x12, 0xa0, 0x83, 0xcf, 0x8e, 0x94, 0x23, 0x92, 0x9d, 0xa4, 0x31, 0x74, - 0x3a, 0x1d, 0x78, 0x98, 0xa4, 0x7c, 0x70, 0xee, 0x13, 0x29, 0x90, 0xf3, 0xa3, 0x8c, 0xe8, 0xc3, - 0x15, 0xe5, 0x11, 0xac, 0x23, 0x5a, 0x86, 0x8c, 0x08, 0x0c, 0xa3, 0x8e, 0x7b, 0x94, 0x23, 0x93, - 0x93, 0x44, 0x5c, 0x2c, 0x80, 0x3f, 0xf8, 0xec, 0x4a, 0x39, 0x22, 0xd3, 0x8a, 0x96, 0xbc, 0xc3, - 0xf9, 0x11, 0x47, 0x38, 0xca, 0x51, 0xc9, 0x46, 0x22, 0x34, 0x3f, 0x35, 0x12, 0x7d, 0x22, 0xa7, - 0x3c, 0x42, 0x12, 0x19, 0x6d, 0x02, 0x04, 0xc2, 0xf5, 0x11, 0x8e, 0xda, 0x94, 0x47, 0x49, 0x0e, - 0xa3, 0x35, 0xc8, 0x7a, 0xd1, 0x53, 0xe4, 0xc1, 0x97, 0x72, 0x74, 0x96, 0x16, 0xbd, 0x0b, 0xc6, - 0xc3, 0x51, 0xc3, 0x68, 0xc7, 0x59, 0xca, 0x23, 0xa6, 0x5f, 0x09, 0x7e, 0x38, 0x84, 0x18, 0xed, - 0x78, 0x4b, 0x79, 0xc4, 0x6c, 0x2c, 0x7a, 0x11, 0x26, 0xfa, 0x5d, 0xfc, 0xd1, 0x4f, 0xbb, 0x94, - 0x0f, 0x91, 0x9f, 0x45, 0x1d, 0x40, 0x03, 0x42, 0x83, 0x43, 0x1c, 0x7e, 0x29, 0x1f, 0x26, 0x5d, - 0x8b, 0x5a, 0x50, 0xea, 0xf5, 0xb7, 0x47, 0x3d, 0x0c, 0x53, 0x1e, 0x39, 0x75, 0xcb, 0xde, 0x12, - 0xf6, 0xd3, 0x47, 0x3d, 0x1c, 0x53, 0x1e, 0x39, 0x93, 0x5b, 0xad, 0x0c, 0x3d, 0xdf, 0x78, 0xe2, - 0xc0, 0xf3, 0x8d, 0xfe, 0x89, 0x45, 0xef, 0x4c, 0xe3, 0xd7, 0x1e, 0x86, 0x7b, 0xf9, 0x25, 0x03, - 0x8e, 0xab, 0x5d, 0xd3, 0x8d, 0x1d, 0xef, 0xd6, 0x08, 0xfe, 0xcc, 0x0f, 0x37, 0x1e, 0xe1, 0x17, - 0x19, 0x88, 0xd2, 0x88, 0xbb, 0x23, 0x86, 0xde, 0xa3, 0x15, 0x75, 0x12, 0x39, 0xfa, 0xe8, 0xe2, - 0x01, 0xf7, 0x52, 0x44, 0xdc, 0x7e, 0x31, 0xe8, 0xb8, 0xf4, 0xc1, 0x87, 0x30, 0x0f, 0x3a, 0xef, - 0x29, 0x7f, 0x28, 0x06, 0xc5, 0xcb, 0xba, 0xe3, 0x9a, 0xb6, 0xde, 0xd4, 0xda, 0x74, 0xc5, 0xb8, - 0x30, 0xea, 0xc7, 0x1f, 0xd5, 0x1c, 0x71, 0x46, 0xf8, 0x65, 0x17, 0xfc, 0x60, 0xc8, 0x22, 0xa4, - 0xaf, 0x6b, 0x6d, 0xf6, 0xe9, 0x45, 0xf0, 0x3a, 0x9b, 0x5e, 0x99, 0x07, 0xbc, 0xa4, 0x20, 0x0a, - 0xe3, 0x95, 0xbf, 0x40, 0x4f, 0x72, 0x77, 0x3a, 0xba, 0xc3, 0xfe, 0x0a, 0xb5, 0x8b, 0x1d, 0xb4, - 0x09, 0x49, 0x5b, 0x73, 0x79, 0x50, 0x53, 0xad, 0xf0, 0x2b, 0x2a, 0xee, 0x8f, 0xbe, 0x68, 0x62, - 0xbe, 0xef, 0x16, 0x0b, 0xf6, 0x32, 0x0a, 0x87, 0x7e, 0x04, 0xb2, 0x1d, 0x6d, 0x4f, 0xa5, 0xd0, - 0xf1, 0x37, 0x0a, 0x3a, 0xd3, 0xd1, 0xf6, 0x48, 0xab, 0x91, 0x0e, 0x25, 0x82, 0xde, 0xdc, 0xd5, - 0x8c, 0x1d, 0xcc, 0x5e, 0x92, 0x78, 0xa3, 0x5e, 0x32, 0xde, 0xd1, 0xf6, 0x6a, 0x14, 0x98, 0xbc, - 0x8a, 0x5f, 0x06, 0xf2, 0x3b, 0x31, 0x1e, 0xca, 0x52, 0xc9, 0x21, 0x0d, 0xa4, 0xa6, 0xf7, 0x44, - 0xdf, 0x2f, 0xd2, 0xfa, 0x27, 0x86, 0x0d, 0x4c, 0x8f, 0xdc, 0xd9, 0x91, 0xec, 0xaf, 0xbc, 0x2a, - 0x8e, 0x64, 0x97, 0x9a, 0x3d, 0xe3, 0x72, 0x05, 0xf2, 0x2c, 0x9b, 0xa6, 0x52, 0x17, 0x36, 0x1e, - 0xe9, 0xc2, 0x8e, 0x0b, 0x17, 0x96, 0x01, 0x02, 0xe3, 0x26, 0xf5, 0xbc, 0x0f, 0x9f, 0x8e, 0x41, - 0x7e, 0x31, 0x70, 0x7b, 0xd5, 0x34, 0x64, 0x3a, 0xa6, 0xa1, 0x5f, 0xc3, 0xb6, 0xb7, 0x2f, 0xc3, - 0x1e, 0x89, 0x9b, 0xc9, 0xfe, 0x0a, 0x91, 0xbb, 0x2f, 0x6e, 0x68, 0x10, 0xcf, 0x84, 0xeb, 0x06, - 0xde, 0x72, 0x74, 0x21, 0x72, 0x45, 0x3c, 0xa2, 0x53, 0x20, 0x39, 0xb8, 0xd9, 0xb5, 0x75, 0x77, - 0x5f, 0x6d, 0x9a, 0x86, 0xab, 0x35, 0x5d, 0x9e, 0x3d, 0x2d, 0x89, 0xf2, 0x1a, 0x2b, 0x26, 0x20, - 0x2d, 0xec, 0x6a, 0x7a, 0x9b, 0x1d, 0xfb, 0xca, 0x29, 0xe2, 0x91, 0x37, 0xf5, 0x0b, 0x99, 0x60, - 0x68, 0x58, 0x03, 0xc9, 0xb4, 0xb0, 0x1d, 0xfa, 0x14, 0x8e, 0xa9, 0xeb, 0xf4, 0xd7, 0x3e, 0xf7, - 0xd0, 0x14, 0x17, 0x38, 0xdf, 0x80, 0x67, 0x97, 0x35, 0x2b, 0x25, 0xc1, 0x21, 0xbe, 0x91, 0x7b, - 0x3e, 0xb4, 0x13, 0xd3, 0xdd, 0xf2, 0x3f, 0xc5, 0x9f, 0xea, 0x13, 0x6a, 0xc5, 0xd8, 0xaf, 0x4e, - 0xff, 0x9e, 0x0f, 0xed, 0x87, 0x8e, 0xcf, 0xe0, 0xfd, 0xe0, 0xb6, 0x0c, 0x85, 0x21, 0x1e, 0xfc, - 0x8b, 0x9a, 0xde, 0x16, 0x7f, 0x58, 0x4d, 0xe1, 0x4f, 0x68, 0xc1, 0x4b, 0xc3, 0xb0, 0x3f, 0x98, - 0x2e, 0x0f, 0xd3, 0x8d, 0xaa, 0x69, 0xb4, 0xc2, 0x19, 0x17, 0xb4, 0x01, 0x69, 0xd7, 0xbc, 0x86, - 0x0d, 0x2e, 0xa0, 0xea, 0xdb, 0x0e, 0xa1, 0xd8, 0xfd, 0xf7, 0xd2, 0x70, 0x2c, 0xb4, 0x03, 0x52, - 0x0b, 0xb7, 0xf1, 0x0e, 0xfb, 0x90, 0x6b, 0x57, 0xb3, 0x31, 0xfb, 0xb8, 0xf3, 0x70, 0xf8, 0xfd, - 0xd7, 0xd7, 0x94, 0x3c, 0xd4, 0x06, 0x05, 0x45, 0xeb, 0xe1, 0xbb, 0xd3, 0x32, 0x7c, 0x57, 0x7e, - 0x48, 0xff, 0x03, 0x5a, 0x19, 0x34, 0x5b, 0xa1, 0xbb, 0xd6, 0x4e, 0x81, 0xd4, 0x35, 0xb6, 0x4c, - 0x83, 0xfe, 0x0d, 0x24, 0x1e, 0x60, 0x65, 0xd9, 0xce, 0x9d, 0x57, 0xce, 0x77, 0xee, 0xd6, 0xa1, - 0xe8, 0x93, 0xd2, 0xd9, 0x93, 0x3b, 0xec, 0xec, 0x19, 0xf7, 0x00, 0x08, 0x09, 0x5a, 0x01, 0xf0, - 0xe7, 0xa7, 0xb7, 0xbb, 0x1f, 0x39, 0xd3, 0x83, 0x9d, 0x09, 0x00, 0xa0, 0x36, 0x4c, 0x76, 0x74, - 0x43, 0x75, 0x70, 0x7b, 0x5b, 0xe5, 0x92, 0x23, 0xb8, 0xf9, 0x37, 0x60, 0xa4, 0x27, 0x3a, 0xba, - 0xd1, 0xc0, 0xed, 0xed, 0x45, 0x0f, 0x16, 0xbd, 0x0d, 0x8e, 0xfb, 0xe2, 0x30, 0x0d, 0x75, 0xd7, - 0x6c, 0xb7, 0x54, 0x1b, 0x6f, 0xab, 0x4d, 0x7a, 0x2d, 0x52, 0x81, 0x0a, 0xf1, 0xa8, 0x47, 0xb2, - 0x66, 0x5c, 0x36, 0xdb, 0x2d, 0x05, 0x6f, 0xd7, 0x48, 0x35, 0xba, 0x07, 0x7c, 0x59, 0xa8, 0x7a, - 0xcb, 0x99, 0x1e, 0x9f, 0x4b, 0x9c, 0x4c, 0x2a, 0x05, 0xaf, 0x70, 0xa9, 0xe5, 0x2c, 0x64, 0xdf, - 0xf7, 0xca, 0xec, 0xd8, 0xb7, 0x5e, 0x99, 0x1d, 0x93, 0x2f, 0xd2, 0x4b, 0x3c, 0xf8, 0xa4, 0xc3, - 0x0e, 0x3a, 0x0f, 0x39, 0x4d, 0x3c, 0xb0, 0xcf, 0x44, 0x0e, 0x98, 0xb4, 0x3e, 0xa9, 0xfc, 0x4a, - 0x0c, 0xd2, 0x8b, 0x57, 0xd7, 0x35, 0xdd, 0x46, 0x75, 0x98, 0xf0, 0x95, 0x76, 0xd4, 0xf9, 0xef, - 0xeb, 0xb9, 0x30, 0x00, 0xf5, 0x61, 0x5f, 0xd4, 0x1e, 0x08, 0xd3, 0xfb, 0xad, 0x6d, 0xa0, 0xab, - 0x57, 0x20, 0xc3, 0x5a, 0xe8, 0xa0, 0xa7, 0x21, 0x65, 0x91, 0x1f, 0x3c, 0xfb, 0x3f, 0x33, 0x54, - 0xd1, 0x29, 0x7d, 0x50, 0x2d, 0x18, 0x9f, 0xfc, 0x97, 0x31, 0x80, 0xc5, 0xab, 0x57, 0x37, 0x6c, - 0xdd, 0x6a, 0x63, 0xf7, 0x8d, 0xea, 0xf2, 0x32, 0xdc, 0x11, 0xf8, 0x6e, 0xd3, 0x6e, 0x8e, 0xdc, - 0xed, 0x49, 0xff, 0xcb, 0x4d, 0xbb, 0x39, 0x10, 0xad, 0xe5, 0xb8, 0x1e, 0x5a, 0x62, 0x64, 0xb4, - 0x45, 0xc7, 0xed, 0x97, 0xe3, 0x73, 0x90, 0xf7, 0xbb, 0xee, 0xa0, 0x25, 0xc8, 0xba, 0xfc, 0x37, - 0x17, 0xa7, 0x3c, 0x5c, 0x9c, 0x82, 0x2d, 0x28, 0x52, 0x8f, 0x5d, 0xfe, 0x5f, 0x44, 0xaa, 0xfe, - 0x44, 0xf8, 0x6b, 0xa5, 0x48, 0xc4, 0xc2, 0x73, 0x0b, 0x9c, 0x78, 0x03, 0x2c, 0x30, 0xc7, 0x0a, - 0x88, 0xf5, 0x27, 0xe2, 0x30, 0xb9, 0x29, 0x26, 0xe9, 0x5f, 0x5b, 0x29, 0x6c, 0x42, 0x06, 0x1b, - 0xae, 0xad, 0x63, 0xb1, 0xd5, 0xf7, 0xf0, 0xb0, 0xc1, 0x1e, 0xd0, 0x17, 0xfa, 0x97, 0x81, 0x83, - 0x43, 0x2f, 0xb0, 0x02, 0x62, 0xf8, 0xad, 0x04, 0x4c, 0x0f, 0x63, 0x45, 0x27, 0xa0, 0xd4, 0xb4, - 0x31, 0x2d, 0x50, 0x43, 0xa9, 0xf0, 0xa2, 0x28, 0xe6, 0x4b, 0x8a, 0x02, 0xc4, 0x41, 0x23, 0x5a, - 0x45, 0x48, 0x6f, 0xcf, 0x23, 0x2b, 0xfa, 0x08, 0x74, 0x51, 0xc1, 0x50, 0x12, 0x67, 0xdb, 0xb7, - 0xb4, 0xb6, 0x66, 0x34, 0xf1, 0x6d, 0x68, 0x42, 0xff, 0x0a, 0x20, 0x0e, 0xcc, 0x57, 0x19, 0x26, - 0xba, 0x0a, 0x19, 0x01, 0x9f, 0x7c, 0x03, 0xe0, 0x05, 0x18, 0xba, 0x1b, 0x0a, 0xc1, 0x85, 0x81, - 0xfa, 0x29, 0x49, 0x25, 0x1f, 0x58, 0x17, 0xa2, 0x56, 0x9e, 0xf4, 0x81, 0x2b, 0x0f, 0x77, 0x05, - 0x7f, 0x33, 0x01, 0x13, 0x0a, 0x6e, 0xfd, 0x00, 0x0e, 0xdc, 0x0f, 0x03, 0xb0, 0x49, 0x4d, 0x8c, - 0xed, 0x6d, 0x8c, 0x5d, 0xbf, 0x91, 0xc8, 0x31, 0xbc, 0x45, 0xc7, 0x7d, 0xab, 0x46, 0xef, 0x5f, - 0xc5, 0xa1, 0x10, 0x1c, 0xbd, 0x1f, 0x80, 0x95, 0x0d, 0xad, 0xfa, 0x26, 0x8d, 0x9d, 0x3e, 0x3f, - 0x35, 0xcc, 0xa4, 0xf5, 0xe9, 0x75, 0x84, 0x2d, 0xfb, 0x50, 0x02, 0xd2, 0xfc, 0x28, 0xd8, 0x5a, - 0x9f, 0x8f, 0x1b, 0x3b, 0xe4, 0x47, 0xc0, 0x3d, 0x2e, 0xee, 0x7d, 0x50, 0x24, 0x21, 0x75, 0xe8, - 0x7c, 0x59, 0xec, 0xe4, 0x38, 0x0d, 0x87, 0xfd, 0xd3, 0xd0, 0x68, 0x16, 0xf2, 0x84, 0xcc, 0xb7, - 0xd9, 0x84, 0x06, 0x3a, 0xda, 0x5e, 0x9d, 0x95, 0xa0, 0x87, 0x00, 0xed, 0x7a, 0x89, 0x0f, 0xd5, - 0x17, 0x04, 0xa1, 0x9b, 0xf0, 0x6b, 0x04, 0xf9, 0x5d, 0x00, 0xa4, 0x15, 0x2a, 0xbb, 0xb9, 0x93, - 0x5f, 0xc3, 0x4a, 0x4a, 0x16, 0xe9, 0xed, 0x9d, 0x3f, 0xca, 0x3c, 0xe5, 0x9e, 0x60, 0x9b, 0xc7, - 0x2c, 0xcb, 0x87, 0x9b, 0x0c, 0xdf, 0x7d, 0x75, 0xb6, 0xbc, 0xaf, 0x75, 0xda, 0x0b, 0xf2, 0x00, - 0x48, 0x99, 0x7a, 0xce, 0xe1, 0x20, 0x7d, 0xe1, 0x5e, 0xa2, 0xc3, 0x37, 0xbf, 0xf9, 0x99, 0xd3, - 0xc7, 0x03, 0x78, 0x7b, 0x5e, 0x36, 0x8c, 0x0d, 0x85, 0xfc, 0xcb, 0x31, 0x40, 0xfe, 0xc2, 0xe2, - 0x9d, 0xfd, 0x5e, 0xa1, 0x27, 0x82, 0x85, 0x6f, 0x1f, 0x3b, 0x38, 0x66, 0xf0, 0xf9, 0x43, 0x31, - 0x43, 0x60, 0xe2, 0xbc, 0xdd, 0x37, 0xe3, 0xe2, 0x73, 0xef, 0x01, 0xf7, 0xb5, 0xce, 0xd7, 0x4c, - 0x3d, 0x04, 0x21, 0x98, 0xe8, 0x7c, 0x1c, 0x93, 0x5f, 0x8d, 0xc1, 0xb1, 0x3e, 0xad, 0xf3, 0x9a, - 0xdc, 0x04, 0x64, 0x07, 0x2a, 0xf9, 0x5f, 0xe2, 0x8f, 0xf1, 0x0f, 0x1b, 0x6f, 0x47, 0x89, 0x27, - 0xec, 0x3e, 0xd3, 0xfd, 0x26, 0xad, 0x47, 0xdc, 0xe0, 0xfc, 0x6e, 0x0c, 0xa6, 0x82, 0x2d, 0xf2, - 0xfa, 0xd6, 0x80, 0x42, 0xb0, 0x2d, 0xbc, 0x57, 0xf7, 0x8e, 0xd2, 0xab, 0x60, 0x87, 0x42, 0x20, - 0xa4, 0x2f, 0x42, 0xc3, 0x59, 0x5e, 0xee, 0x91, 0x91, 0xa5, 0xe4, 0xed, 0x39, 0x0c, 0x9a, 0xf2, - 0x6c, 0xb0, 0xde, 0x1f, 0x87, 0xe4, 0xba, 0x69, 0xb6, 0xd1, 0x8f, 0xc7, 0x60, 0xc2, 0x30, 0x5d, - 0x95, 0xcc, 0x0b, 0xdc, 0x52, 0x79, 0x62, 0x80, 0x59, 0xcd, 0xab, 0x87, 0x93, 0xde, 0xb7, 0x5f, - 0x9d, 0xed, 0x87, 0x1a, 0x74, 0xcd, 0x6e, 0xc9, 0x30, 0xdd, 0x2a, 0x25, 0xda, 0x60, 0xb9, 0x83, - 0x1b, 0x30, 0x1e, 0x7e, 0x3f, 0x33, 0xb5, 0xca, 0xa1, 0xdf, 0x3f, 0x1e, 0xf9, 0xee, 0xc2, 0x56, - 0xe0, 0xc5, 0xec, 0xb2, 0xcb, 0x3f, 0x25, 0x83, 0xfb, 0x3c, 0x48, 0x57, 0x7b, 0x4f, 0xa1, 0xd5, - 0x21, 0x73, 0xd8, 0x03, 0x6d, 0x41, 0x89, 0x73, 0xde, 0xd3, 0x9f, 0x8f, 0x01, 0xf8, 0x69, 0x18, - 0xf4, 0x20, 0x1c, 0xad, 0xae, 0xad, 0x2e, 0xaa, 0x8d, 0x8d, 0xca, 0xc6, 0x66, 0x23, 0x7c, 0x25, - 0xbb, 0xb8, 0x8f, 0xc4, 0xb1, 0x70, 0x53, 0xdf, 0xd6, 0x71, 0x0b, 0xdd, 0x0f, 0x53, 0x61, 0x6a, - 0xf2, 0x54, 0x5f, 0x94, 0x62, 0xe5, 0xc2, 0xcd, 0x5b, 0x73, 0x59, 0xe6, 0x7e, 0xe2, 0x16, 0x3a, - 0x09, 0x77, 0xf4, 0xd3, 0x2d, 0xad, 0x5e, 0x92, 0xe2, 0xe5, 0xf1, 0x9b, 0xb7, 0xe6, 0x72, 0x9e, - 0x9f, 0x8a, 0x64, 0x40, 0x41, 0x4a, 0x8e, 0x97, 0x28, 0xc3, 0xcd, 0x5b, 0x73, 0x69, 0x36, 0x2c, - 0xe5, 0xe4, 0xfb, 0x3e, 0x31, 0x33, 0x76, 0xfa, 0x9d, 0x00, 0x4b, 0xc6, 0xb6, 0xad, 0xd1, 0xbf, - 0x4b, 0x8c, 0xca, 0x70, 0x64, 0x69, 0xf5, 0xa2, 0x52, 0xa9, 0x6d, 0x2c, 0xad, 0xad, 0xf6, 0xdc, - 0x24, 0x1f, 0xae, 0x5b, 0x5c, 0xdb, 0xac, 0x2e, 0xd7, 0xd5, 0xc6, 0xd2, 0xa5, 0x55, 0xb6, 0x9b, - 0x1b, 0xaa, 0x7b, 0x76, 0x75, 0x63, 0x69, 0xa5, 0x2e, 0xc5, 0xab, 0x17, 0x87, 0xee, 0x27, 0x3c, - 0x78, 0xe0, 0x80, 0xfb, 0x56, 0x32, 0xb4, 0xa9, 0xf0, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xbf, - 0x2c, 0xec, 0xa9, 0x2f, 0x97, 0x00, 0x00, + // 10617 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x7b, 0x70, 0x24, 0xc7, + 0x79, 0x1f, 0xf6, 0xbd, 0xfb, 0xed, 0x62, 0x77, 0xd0, 0x00, 0xef, 0x70, 0x7b, 0x24, 0x00, 0x0e, + 0x1f, 0xf7, 0x20, 0x89, 0x23, 0x8f, 0xbc, 0x23, 0x89, 0x13, 0x45, 0xef, 0x2e, 0xf6, 0xee, 0x70, + 0xc4, 0x4b, 0xb3, 0xc0, 0xf1, 0x61, 0x4b, 0xa3, 0xc1, 0x6e, 0x03, 0x18, 0xde, 0xee, 0xcc, 0x68, + 0x66, 0xf6, 0x0e, 0x60, 0xa5, 0x52, 0xb4, 0x65, 0x27, 0xf2, 0xc5, 0x91, 0x65, 0x29, 0x65, 0xcb, + 0xb2, 0x4e, 0xa1, 0xac, 0x58, 0x92, 0x9d, 0xc4, 0x91, 0x2d, 0x45, 0x92, 0xe3, 0xb2, 0x4b, 0x4e, + 0xe5, 0x21, 0x3b, 0xa9, 0x94, 0xe4, 0x4a, 0x25, 0xae, 0x54, 0x42, 0x3b, 0x94, 0xca, 0x52, 0x64, + 0x39, 0xb6, 0x65, 0x3a, 0x89, 0xa3, 0x4a, 0x25, 0xd5, 0xaf, 0x79, 0xec, 0x03, 0xb3, 0x38, 0x91, + 0xb4, 0x53, 0xfa, 0xe7, 0x6e, 0xa7, 0xfb, 0xfb, 0x7e, 0xd3, 0xfd, 0xf5, 0xd7, 0x5f, 0x7f, 0xdf, + 0xd7, 0x3d, 0x0d, 0xf8, 0xf3, 0x0b, 0x30, 0xb7, 0x63, 0x9a, 0x3b, 0x6d, 0x7c, 0xc6, 0xb2, 0x4d, + 0xd7, 0xdc, 0xea, 0x6e, 0x9f, 0x69, 0x61, 0xa7, 0x69, 0xeb, 0x96, 0x6b, 0xda, 0xf3, 0xb4, 0x0c, + 0x95, 0x18, 0xc5, 0xbc, 0xa0, 0x90, 0x57, 0x60, 0xe2, 0xa2, 0xde, 0xc6, 0x8b, 0x1e, 0x61, 0x03, + 0xbb, 0xe8, 0x09, 0x48, 0x6e, 0xeb, 0x6d, 0x3c, 0x1d, 0x9b, 0x4b, 0x9c, 0xcc, 0x9f, 0xbd, 0x77, + 0xbe, 0x87, 0x69, 0x3e, 0xcc, 0xb1, 0x4e, 0x8a, 0x15, 0xca, 0x21, 0x7f, 0x3d, 0x09, 0x93, 0x03, + 0x6a, 0x11, 0x82, 0xa4, 0xa1, 0x75, 0x08, 0x62, 0xec, 0x64, 0x4e, 0xa1, 0xbf, 0xd1, 0x34, 0x64, + 0x2c, 0xad, 0x79, 0x4d, 0xdb, 0xc1, 0xd3, 0x71, 0x5a, 0x2c, 0x1e, 0xd1, 0x0c, 0x40, 0x0b, 0x5b, + 0xd8, 0x68, 0x61, 0xa3, 0xb9, 0x3f, 0x9d, 0x98, 0x4b, 0x9c, 0xcc, 0x29, 0x81, 0x12, 0xf4, 0x00, + 0x4c, 0x58, 0xdd, 0xad, 0xb6, 0xde, 0x54, 0x03, 0x64, 0x30, 0x97, 0x38, 0x99, 0x52, 0x24, 0x56, + 0xb1, 0xe8, 0x13, 0x9f, 0x80, 0xd2, 0x0d, 0xac, 0x5d, 0x0b, 0x92, 0xe6, 0x29, 0x69, 0x91, 0x14, + 0x07, 0x08, 0x6b, 0x50, 0xe8, 0x60, 0xc7, 0xd1, 0x76, 0xb0, 0xea, 0xee, 0x5b, 0x78, 0x3a, 0x49, + 0x7b, 0x3f, 0xd7, 0xd7, 0xfb, 0xde, 0x9e, 0xe7, 0x39, 0xd7, 0xc6, 0xbe, 0x85, 0x51, 0x05, 0x72, + 0xd8, 0xe8, 0x76, 0x18, 0x42, 0x6a, 0x88, 0xfc, 0xea, 0x46, 0xb7, 0xd3, 0x8b, 0x92, 0x25, 0x6c, + 0x1c, 0x22, 0xe3, 0x60, 0xfb, 0xba, 0xde, 0xc4, 0xd3, 0x69, 0x0a, 0x70, 0xa2, 0x0f, 0xa0, 0xc1, + 0xea, 0x7b, 0x31, 0x04, 0x1f, 0xaa, 0x41, 0x0e, 0xef, 0xb9, 0xd8, 0x70, 0x74, 0xd3, 0x98, 0xce, + 0x50, 0x90, 0xfb, 0x06, 0x8c, 0x22, 0x6e, 0xb7, 0x7a, 0x21, 0x7c, 0x3e, 0x74, 0x1e, 0x32, 0xa6, + 0xe5, 0xea, 0xa6, 0xe1, 0x4c, 0x67, 0xe7, 0x62, 0x27, 0xf3, 0x67, 0xef, 0x1c, 0xa8, 0x08, 0x6b, + 0x8c, 0x46, 0x11, 0xc4, 0x68, 0x09, 0x24, 0xc7, 0xec, 0xda, 0x4d, 0xac, 0x36, 0xcd, 0x16, 0x56, + 0x75, 0x63, 0xdb, 0x9c, 0xce, 0x51, 0x80, 0xd9, 0xfe, 0x8e, 0x50, 0xc2, 0x9a, 0xd9, 0xc2, 0x4b, + 0xc6, 0xb6, 0xa9, 0x14, 0x9d, 0xd0, 0x33, 0x3a, 0x02, 0x69, 0x67, 0xdf, 0x70, 0xb5, 0xbd, 0xe9, + 0x02, 0xd5, 0x10, 0xfe, 0x24, 0xff, 0x5a, 0x1a, 0x4a, 0xa3, 0xa8, 0xd8, 0x05, 0x48, 0x6d, 0x93, + 0x5e, 0x4e, 0xc7, 0x0f, 0x23, 0x03, 0xc6, 0x13, 0x16, 0x62, 0xfa, 0x36, 0x85, 0x58, 0x81, 0xbc, + 0x81, 0x1d, 0x17, 0xb7, 0x98, 0x46, 0x24, 0x46, 0xd4, 0x29, 0x60, 0x4c, 0xfd, 0x2a, 0x95, 0xbc, + 0x2d, 0x95, 0x7a, 0x0e, 0x4a, 0x5e, 0x93, 0x54, 0x5b, 0x33, 0x76, 0x84, 0x6e, 0x9e, 0x89, 0x6a, + 0xc9, 0x7c, 0x5d, 0xf0, 0x29, 0x84, 0x4d, 0x29, 0xe2, 0xd0, 0x33, 0x5a, 0x04, 0x30, 0x0d, 0x6c, + 0x6e, 0xab, 0x2d, 0xdc, 0x6c, 0x4f, 0x67, 0x87, 0x48, 0x69, 0x8d, 0x90, 0xf4, 0x49, 0xc9, 0x64, + 0xa5, 0xcd, 0x36, 0x7a, 0xd2, 0x57, 0xb5, 0xcc, 0x10, 0x4d, 0x59, 0x61, 0x93, 0xac, 0x4f, 0xdb, + 0x36, 0xa1, 0x68, 0x63, 0xa2, 0xf7, 0xb8, 0xc5, 0x7b, 0x96, 0xa3, 0x8d, 0x98, 0x8f, 0xec, 0x99, + 0xc2, 0xd9, 0x58, 0xc7, 0xc6, 0xed, 0xe0, 0x23, 0xba, 0x07, 0xbc, 0x02, 0x95, 0xaa, 0x15, 0x50, + 0x2b, 0x54, 0x10, 0x85, 0xab, 0x5a, 0x07, 0x97, 0x5f, 0x82, 0x62, 0x58, 0x3c, 0x68, 0x0a, 0x52, + 0x8e, 0xab, 0xd9, 0x2e, 0xd5, 0xc2, 0x94, 0xc2, 0x1e, 0x90, 0x04, 0x09, 0x6c, 0xb4, 0xa8, 0x95, + 0x4b, 0x29, 0xe4, 0x27, 0xfa, 0x01, 0xbf, 0xc3, 0x09, 0xda, 0xe1, 0xfb, 0xfb, 0x47, 0x34, 0x84, + 0xdc, 0xdb, 0xef, 0xf2, 0xe3, 0x30, 0x1e, 0xea, 0xc0, 0xa8, 0xaf, 0x96, 0xff, 0x06, 0xdc, 0x31, + 0x10, 0x1a, 0x3d, 0x07, 0x53, 0x5d, 0x43, 0x37, 0x5c, 0x6c, 0x5b, 0x36, 0x26, 0x1a, 0xcb, 0x5e, + 0x35, 0xfd, 0x8d, 0xcc, 0x10, 0x9d, 0xdb, 0x0c, 0x52, 0x33, 0x14, 0x65, 0xb2, 0xdb, 0x5f, 0x78, + 0x3a, 0x97, 0xfd, 0x66, 0x46, 0x7a, 0xf9, 0xe5, 0x97, 0x5f, 0x8e, 0xcb, 0xbf, 0x95, 0x86, 0xa9, + 0x41, 0x73, 0x66, 0xe0, 0xf4, 0x3d, 0x02, 0x69, 0xa3, 0xdb, 0xd9, 0xc2, 0x36, 0x15, 0x52, 0x4a, + 0xe1, 0x4f, 0xa8, 0x02, 0xa9, 0xb6, 0xb6, 0x85, 0xdb, 0xd3, 0xc9, 0xb9, 0xd8, 0xc9, 0xe2, 0xd9, + 0x07, 0x46, 0x9a, 0x95, 0xf3, 0xcb, 0x84, 0x45, 0x61, 0x9c, 0xe8, 0xed, 0x90, 0xe4, 0x26, 0x9a, + 0x20, 0x9c, 0x1e, 0x0d, 0x81, 0xcc, 0x25, 0x85, 0xf2, 0xa1, 0xe3, 0x90, 0x23, 0xff, 0x33, 0xdd, + 0x48, 0xd3, 0x36, 0x67, 0x49, 0x01, 0xd1, 0x0b, 0x54, 0x86, 0x2c, 0x9d, 0x26, 0x2d, 0x2c, 0x96, + 0x36, 0xef, 0x99, 0x28, 0x56, 0x0b, 0x6f, 0x6b, 0xdd, 0xb6, 0xab, 0x5e, 0xd7, 0xda, 0x5d, 0x4c, + 0x15, 0x3e, 0xa7, 0x14, 0x78, 0xe1, 0x55, 0x52, 0x86, 0x66, 0x21, 0xcf, 0x66, 0x95, 0x6e, 0xb4, + 0xf0, 0x1e, 0xb5, 0x9e, 0x29, 0x85, 0x4d, 0xb4, 0x25, 0x52, 0x42, 0x5e, 0xff, 0xa2, 0x63, 0x1a, + 0x42, 0x35, 0xe9, 0x2b, 0x48, 0x01, 0x7d, 0xfd, 0xe3, 0xbd, 0x86, 0xfb, 0xae, 0xc1, 0xdd, 0xeb, + 0x9b, 0x4b, 0x27, 0xa0, 0x44, 0x29, 0x1e, 0xe5, 0x43, 0xaf, 0xb5, 0xa7, 0x27, 0xe6, 0x62, 0x27, + 0xb3, 0x4a, 0x91, 0x15, 0xaf, 0xf1, 0x52, 0xf9, 0xf3, 0x71, 0x48, 0x52, 0xc3, 0x52, 0x82, 0xfc, + 0xc6, 0xf3, 0xeb, 0x75, 0x75, 0x71, 0x6d, 0xb3, 0xba, 0x5c, 0x97, 0x62, 0xa8, 0x08, 0x40, 0x0b, + 0x2e, 0x2e, 0xaf, 0x55, 0x36, 0xa4, 0xb8, 0xf7, 0xbc, 0xb4, 0xba, 0x71, 0xfe, 0x31, 0x29, 0xe1, + 0x31, 0x6c, 0xb2, 0x82, 0x64, 0x90, 0xe0, 0xd1, 0xb3, 0x52, 0x0a, 0x49, 0x50, 0x60, 0x00, 0x4b, + 0xcf, 0xd5, 0x17, 0xcf, 0x3f, 0x26, 0xa5, 0xc3, 0x25, 0x8f, 0x9e, 0x95, 0x32, 0x68, 0x1c, 0x72, + 0xb4, 0xa4, 0xba, 0xb6, 0xb6, 0x2c, 0x65, 0x3d, 0xcc, 0xc6, 0x86, 0xb2, 0xb4, 0x7a, 0x49, 0xca, + 0x79, 0x98, 0x97, 0x94, 0xb5, 0xcd, 0x75, 0x09, 0x3c, 0x84, 0x95, 0x7a, 0xa3, 0x51, 0xb9, 0x54, + 0x97, 0xf2, 0x1e, 0x45, 0xf5, 0xf9, 0x8d, 0x7a, 0x43, 0x2a, 0x84, 0x9a, 0xf5, 0xe8, 0x59, 0x69, + 0xdc, 0x7b, 0x45, 0x7d, 0x75, 0x73, 0x45, 0x2a, 0xa2, 0x09, 0x18, 0x67, 0xaf, 0x10, 0x8d, 0x28, + 0xf5, 0x14, 0x9d, 0x7f, 0x4c, 0x92, 0xfc, 0x86, 0x30, 0x94, 0x89, 0x50, 0xc1, 0xf9, 0xc7, 0x24, + 0x24, 0xd7, 0x20, 0x45, 0xd5, 0x10, 0x21, 0x28, 0x2e, 0x57, 0xaa, 0xf5, 0x65, 0x75, 0x6d, 0x7d, + 0x63, 0x69, 0x6d, 0xb5, 0xb2, 0x2c, 0xc5, 0xfc, 0x32, 0xa5, 0xfe, 0x8e, 0xcd, 0x25, 0xa5, 0xbe, + 0x28, 0xc5, 0x83, 0x65, 0xeb, 0xf5, 0xca, 0x46, 0x7d, 0x51, 0x4a, 0xc8, 0x4d, 0x98, 0x1a, 0x64, + 0x50, 0x07, 0x4e, 0xa1, 0x80, 0x2e, 0xc4, 0x87, 0xe8, 0x02, 0xc5, 0xea, 0xd5, 0x05, 0xf9, 0x6b, + 0x71, 0x98, 0x1c, 0xb0, 0xa8, 0x0c, 0x7c, 0xc9, 0xd3, 0x90, 0x62, 0xba, 0xcc, 0x96, 0xd9, 0x53, + 0x03, 0x57, 0x27, 0xaa, 0xd9, 0x7d, 0x4b, 0x2d, 0xe5, 0x0b, 0xba, 0x1a, 0x89, 0x21, 0xae, 0x06, + 0x81, 0xe8, 0x53, 0xd8, 0x77, 0xf6, 0x19, 0x7f, 0xb6, 0x3e, 0x9e, 0x1f, 0x65, 0x7d, 0xa4, 0x65, + 0x87, 0x5b, 0x04, 0x52, 0x03, 0x16, 0x81, 0x0b, 0x30, 0xd1, 0x07, 0x34, 0xb2, 0x31, 0x7e, 0x6f, + 0x0c, 0xa6, 0x87, 0x09, 0x27, 0xc2, 0x24, 0xc6, 0x43, 0x26, 0xf1, 0x42, 0xaf, 0x04, 0xef, 0x1e, + 0x3e, 0x08, 0x7d, 0x63, 0xfd, 0xa9, 0x18, 0x1c, 0x19, 0xec, 0x52, 0x0e, 0x6c, 0xc3, 0xdb, 0x21, + 0xdd, 0xc1, 0xee, 0xae, 0x29, 0xdc, 0xaa, 0xfb, 0x07, 0x2c, 0xd6, 0xa4, 0xba, 0x77, 0xb0, 0x39, + 0x57, 0x70, 0xb5, 0x4f, 0x0c, 0xf3, 0x0b, 0x59, 0x6b, 0xfa, 0x5a, 0xfa, 0xe3, 0x71, 0xb8, 0x63, + 0x20, 0xf8, 0xc0, 0x86, 0xde, 0x05, 0xa0, 0x1b, 0x56, 0xd7, 0x65, 0xae, 0x13, 0xb3, 0xc4, 0x39, + 0x5a, 0x42, 0x8d, 0x17, 0xb1, 0xb2, 0x5d, 0xd7, 0xab, 0x4f, 0xd0, 0x7a, 0x60, 0x45, 0x94, 0xe0, + 0x09, 0xbf, 0xa1, 0x49, 0xda, 0xd0, 0x99, 0x21, 0x3d, 0xed, 0x53, 0xcc, 0x87, 0x41, 0x6a, 0xb6, + 0x75, 0x6c, 0xb8, 0xaa, 0xe3, 0xda, 0x58, 0xeb, 0xe8, 0xc6, 0x0e, 0x5d, 0x6a, 0xb2, 0x0b, 0xa9, + 0x6d, 0xad, 0xed, 0x60, 0xa5, 0xc4, 0xaa, 0x1b, 0xa2, 0x96, 0x70, 0x50, 0x05, 0xb2, 0x03, 0x1c, + 0xe9, 0x10, 0x07, 0xab, 0xf6, 0x38, 0xe4, 0x9f, 0xca, 0x41, 0x3e, 0xe0, 0x80, 0xa3, 0xbb, 0xa1, + 0xf0, 0xa2, 0x76, 0x5d, 0x53, 0x45, 0x50, 0xc5, 0x24, 0x91, 0x27, 0x65, 0xeb, 0x3c, 0xb0, 0x7a, + 0x18, 0xa6, 0x28, 0x89, 0xd9, 0x75, 0xb1, 0xad, 0x36, 0xdb, 0x9a, 0xe3, 0x50, 0xa1, 0x65, 0x29, + 0x29, 0x22, 0x75, 0x6b, 0xa4, 0xaa, 0x26, 0x6a, 0xd0, 0x39, 0x98, 0xa4, 0x1c, 0x9d, 0x6e, 0xdb, + 0xd5, 0xad, 0x36, 0x56, 0x49, 0x98, 0xe7, 0xd0, 0x25, 0xc7, 0x6b, 0xd9, 0x04, 0xa1, 0x58, 0xe1, + 0x04, 0xa4, 0x45, 0x0e, 0x5a, 0x84, 0xbb, 0x28, 0xdb, 0x0e, 0x36, 0xb0, 0xad, 0xb9, 0x58, 0xc5, + 0xef, 0xe9, 0x6a, 0x6d, 0x47, 0xd5, 0x8c, 0x96, 0xba, 0xab, 0x39, 0xbb, 0xd3, 0x53, 0x04, 0xa0, + 0x1a, 0x9f, 0x8e, 0x29, 0xc7, 0x08, 0xe1, 0x25, 0x4e, 0x57, 0xa7, 0x64, 0x15, 0xa3, 0x75, 0x59, + 0x73, 0x76, 0xd1, 0x02, 0x1c, 0xa1, 0x28, 0x8e, 0x6b, 0xeb, 0xc6, 0x8e, 0xda, 0xdc, 0xc5, 0xcd, + 0x6b, 0x6a, 0xd7, 0xdd, 0x7e, 0x62, 0xfa, 0x78, 0xf0, 0xfd, 0xb4, 0x85, 0x0d, 0x4a, 0x53, 0x23, + 0x24, 0x9b, 0xee, 0xf6, 0x13, 0xa8, 0x01, 0x05, 0x32, 0x18, 0x1d, 0xfd, 0x25, 0xac, 0x6e, 0x9b, + 0x36, 0x5d, 0x43, 0x8b, 0x03, 0x4c, 0x53, 0x40, 0x82, 0xf3, 0x6b, 0x9c, 0x61, 0xc5, 0x6c, 0xe1, + 0x85, 0x54, 0x63, 0xbd, 0x5e, 0x5f, 0x54, 0xf2, 0x02, 0xe5, 0xa2, 0x69, 0x13, 0x85, 0xda, 0x31, + 0x3d, 0x01, 0xe7, 0x99, 0x42, 0xed, 0x98, 0x42, 0xbc, 0xe7, 0x60, 0xb2, 0xd9, 0x64, 0x7d, 0xd6, + 0x9b, 0x2a, 0x0f, 0xc6, 0x9c, 0x69, 0x29, 0x24, 0xac, 0x66, 0xf3, 0x12, 0x23, 0xe0, 0x3a, 0xee, + 0xa0, 0x27, 0xe1, 0x0e, 0x5f, 0x58, 0x41, 0xc6, 0x89, 0xbe, 0x5e, 0xf6, 0xb2, 0x9e, 0x83, 0x49, + 0x6b, 0xbf, 0x9f, 0x11, 0x85, 0xde, 0x68, 0xed, 0xf7, 0xb2, 0x3d, 0x0e, 0x53, 0xd6, 0xae, 0xd5, + 0xcf, 0x77, 0x3a, 0xc8, 0x87, 0xac, 0x5d, 0xab, 0x97, 0xf1, 0x3e, 0x1a, 0x99, 0xdb, 0xb8, 0xa9, + 0xb9, 0xb8, 0x35, 0x7d, 0x34, 0x48, 0x1e, 0xa8, 0x40, 0xf3, 0x20, 0x35, 0x9b, 0x2a, 0x36, 0xb4, + 0xad, 0x36, 0x56, 0x35, 0x1b, 0x1b, 0x9a, 0x33, 0x3d, 0x4b, 0x89, 0x93, 0xae, 0xdd, 0xc5, 0x4a, + 0xb1, 0xd9, 0xac, 0xd3, 0xca, 0x0a, 0xad, 0x43, 0xa7, 0x61, 0xc2, 0xdc, 0x7a, 0xb1, 0xc9, 0x34, + 0x52, 0xb5, 0x6c, 0xbc, 0xad, 0xef, 0x4d, 0xdf, 0x4b, 0xc5, 0x5b, 0x22, 0x15, 0x54, 0x1f, 0xd7, + 0x69, 0x31, 0x3a, 0x05, 0x52, 0xd3, 0xd9, 0xd5, 0x6c, 0x8b, 0x9a, 0x64, 0xc7, 0xd2, 0x9a, 0x78, + 0xfa, 0x3e, 0x46, 0xca, 0xca, 0x57, 0x45, 0x31, 0x99, 0x11, 0xce, 0x0d, 0x7d, 0xdb, 0x15, 0x88, + 0x27, 0xd8, 0x8c, 0xa0, 0x65, 0x1c, 0xed, 0x24, 0x48, 0x44, 0x12, 0xa1, 0x17, 0x9f, 0xa4, 0x64, + 0x45, 0x6b, 0xd7, 0x0a, 0xbe, 0xf7, 0x1e, 0x18, 0x27, 0x94, 0xfe, 0x4b, 0x4f, 0x31, 0xc7, 0xcd, + 0xda, 0x0d, 0xbc, 0xf1, 0x31, 0x38, 0x42, 0x88, 0x3a, 0xd8, 0xd5, 0x5a, 0x9a, 0xab, 0x05, 0xa8, + 0x1f, 0xa4, 0xd4, 0x44, 0xec, 0x2b, 0xbc, 0x32, 0xd4, 0x4e, 0xbb, 0xbb, 0xb5, 0xef, 0x29, 0xd6, + 0x43, 0xac, 0x9d, 0xa4, 0x4c, 0xa8, 0xd6, 0x9b, 0xe6, 0x9c, 0xcb, 0x0b, 0x50, 0x08, 0xea, 0x3d, + 0xca, 0x01, 0xd3, 0x7c, 0x29, 0x46, 0x9c, 0xa0, 0xda, 0xda, 0x22, 0x71, 0x5f, 0x5e, 0xa8, 0x4b, + 0x71, 0xe2, 0x46, 0x2d, 0x2f, 0x6d, 0xd4, 0x55, 0x65, 0x73, 0x75, 0x63, 0x69, 0xa5, 0x2e, 0x25, + 0x02, 0x8e, 0xfd, 0x95, 0x64, 0xf6, 0x7e, 0xe9, 0x04, 0xf1, 0x1a, 0x8a, 0xe1, 0x48, 0x0d, 0xbd, + 0x0d, 0x8e, 0x8a, 0xb4, 0x8a, 0x83, 0x5d, 0xf5, 0x86, 0x6e, 0xd3, 0x09, 0xd9, 0xd1, 0xd8, 0xe2, + 0xe8, 0xe9, 0xcf, 0x14, 0xa7, 0x6a, 0x60, 0xf7, 0x59, 0xdd, 0x26, 0xd3, 0xad, 0xa3, 0xb9, 0x68, + 0x19, 0x66, 0x0d, 0x53, 0x75, 0x5c, 0xcd, 0x68, 0x69, 0x76, 0x4b, 0xf5, 0x13, 0x5a, 0xaa, 0xd6, + 0x6c, 0x62, 0xc7, 0x31, 0xd9, 0x42, 0xe8, 0xa1, 0xdc, 0x69, 0x98, 0x0d, 0x4e, 0xec, 0xaf, 0x10, + 0x15, 0x4e, 0xda, 0xa3, 0xbe, 0x89, 0x61, 0xea, 0x7b, 0x1c, 0x72, 0x1d, 0xcd, 0x52, 0xb1, 0xe1, + 0xda, 0xfb, 0xd4, 0x3f, 0xcf, 0x2a, 0xd9, 0x8e, 0x66, 0xd5, 0xc9, 0xf3, 0x5b, 0x12, 0x26, 0x5d, + 0x49, 0x66, 0x93, 0x52, 0xea, 0x4a, 0x32, 0x9b, 0x92, 0xd2, 0x57, 0x92, 0xd9, 0xb4, 0x94, 0xb9, + 0x92, 0xcc, 0x66, 0xa5, 0xdc, 0x95, 0x64, 0x36, 0x27, 0x81, 0xfc, 0xc1, 0x24, 0x14, 0x82, 0x1e, + 0x3c, 0x09, 0x88, 0x9a, 0x74, 0x0d, 0x8b, 0x51, 0x2b, 0x77, 0xcf, 0x81, 0xfe, 0xfe, 0x7c, 0x8d, + 0x2c, 0x6e, 0x0b, 0x69, 0xe6, 0x2e, 0x2b, 0x8c, 0x93, 0x38, 0x16, 0x44, 0xfd, 0x30, 0x73, 0x4f, + 0xb2, 0x0a, 0x7f, 0x42, 0x97, 0x20, 0xfd, 0xa2, 0x43, 0xb1, 0xd3, 0x14, 0xfb, 0xde, 0x83, 0xb1, + 0xaf, 0x34, 0x28, 0x78, 0xee, 0x4a, 0x43, 0x5d, 0x5d, 0x53, 0x56, 0x2a, 0xcb, 0x0a, 0x67, 0x47, + 0xc7, 0x20, 0xd9, 0xd6, 0x5e, 0xda, 0x0f, 0x2f, 0x83, 0xb4, 0x08, 0xcd, 0x43, 0xa9, 0x6b, 0x5c, + 0xc7, 0xb6, 0xbe, 0xad, 0xe3, 0x96, 0x4a, 0xa9, 0x4a, 0x41, 0xaa, 0xa2, 0x5f, 0xbb, 0x4c, 0xe8, + 0x47, 0x1c, 0xc6, 0x63, 0x90, 0xbc, 0x81, 0xb5, 0x6b, 0xe1, 0xc5, 0x8a, 0x16, 0xbd, 0x89, 0xd3, + 0xe9, 0x0c, 0xa4, 0xa8, 0x7c, 0x11, 0x00, 0x97, 0xb0, 0x34, 0x86, 0xb2, 0x90, 0xac, 0xad, 0x29, + 0x64, 0x4a, 0x49, 0x50, 0x60, 0xa5, 0xea, 0xfa, 0x52, 0xbd, 0x56, 0x97, 0xe2, 0xf2, 0x39, 0x48, + 0x33, 0xa1, 0x91, 0xe9, 0xe6, 0x89, 0x4d, 0x1a, 0xe3, 0x8f, 0x1c, 0x23, 0x26, 0x6a, 0x37, 0x57, + 0xaa, 0x75, 0x45, 0x8a, 0xf7, 0x29, 0x8b, 0xec, 0x40, 0x21, 0xe8, 0xc9, 0xbf, 0x35, 0xe1, 0xfc, + 0x97, 0x62, 0x90, 0x0f, 0x78, 0xe6, 0xc4, 0xa5, 0xd2, 0xda, 0x6d, 0xf3, 0x86, 0xaa, 0xb5, 0x75, + 0xcd, 0xe1, 0xaa, 0x04, 0xb4, 0xa8, 0x42, 0x4a, 0x46, 0x1d, 0xba, 0xb7, 0x68, 0x92, 0xa5, 0xa4, + 0xb4, 0xfc, 0xb1, 0x18, 0x48, 0xbd, 0xae, 0x71, 0x4f, 0x33, 0x63, 0x7f, 0x95, 0xcd, 0x94, 0x3f, + 0x1a, 0x83, 0x62, 0xd8, 0x1f, 0xee, 0x69, 0xde, 0xdd, 0x7f, 0xa5, 0xcd, 0xfb, 0x83, 0x38, 0x8c, + 0x87, 0xbc, 0xe0, 0x51, 0x5b, 0xf7, 0x1e, 0x98, 0xd0, 0x5b, 0xb8, 0x63, 0x99, 0x2e, 0x36, 0x9a, + 0xfb, 0x6a, 0x1b, 0x5f, 0xc7, 0xed, 0x69, 0x99, 0x1a, 0x99, 0x33, 0x07, 0xfb, 0xd9, 0xf3, 0x4b, + 0x3e, 0xdf, 0x32, 0x61, 0x5b, 0x98, 0x5c, 0x5a, 0xac, 0xaf, 0xac, 0xaf, 0x6d, 0xd4, 0x57, 0x6b, + 0xcf, 0xab, 0x9b, 0xab, 0xcf, 0xac, 0xae, 0x3d, 0xbb, 0xaa, 0x48, 0x7a, 0x0f, 0xd9, 0x9b, 0x38, + 0xed, 0xd7, 0x41, 0xea, 0x6d, 0x14, 0x3a, 0x0a, 0x83, 0x9a, 0x25, 0x8d, 0xa1, 0x49, 0x28, 0xad, + 0xae, 0xa9, 0x8d, 0xa5, 0xc5, 0xba, 0x5a, 0xbf, 0x78, 0xb1, 0x5e, 0xdb, 0x68, 0xb0, 0xcc, 0x89, + 0x47, 0xbd, 0x11, 0x9a, 0xe0, 0xf2, 0x47, 0x12, 0x30, 0x39, 0xa0, 0x25, 0xa8, 0xc2, 0x63, 0x1e, + 0x16, 0x86, 0x3d, 0x34, 0x4a, 0xeb, 0xe7, 0x89, 0xd7, 0xb1, 0xae, 0xd9, 0x2e, 0x0f, 0x91, 0x4e, + 0x01, 0x91, 0x92, 0xe1, 0x12, 0xe3, 0x6a, 0xf3, 0x8c, 0x14, 0x0b, 0x84, 0x4a, 0x7e, 0x39, 0x4b, + 0x4a, 0x3d, 0x08, 0xc8, 0x32, 0x1d, 0xdd, 0xd5, 0xaf, 0x63, 0x55, 0x37, 0x44, 0xfa, 0x8a, 0x04, + 0x46, 0x49, 0x45, 0x12, 0x35, 0x4b, 0x86, 0xeb, 0x51, 0x1b, 0x78, 0x47, 0xeb, 0xa1, 0x26, 0xc6, + 0x3f, 0xa1, 0x48, 0xa2, 0xc6, 0xa3, 0xbe, 0x1b, 0x0a, 0x2d, 0xb3, 0x4b, 0xbc, 0x45, 0x46, 0x47, + 0xd6, 0x9a, 0x98, 0x92, 0x67, 0x65, 0x1e, 0x09, 0x8f, 0x03, 0xfc, 0xbc, 0x59, 0x41, 0xc9, 0xb3, + 0x32, 0x46, 0x72, 0x02, 0x4a, 0xda, 0xce, 0x8e, 0x4d, 0xc0, 0x05, 0x10, 0x8b, 0x6c, 0x8a, 0x5e, + 0x31, 0x25, 0x2c, 0x5f, 0x81, 0xac, 0x90, 0x03, 0x59, 0xec, 0x89, 0x24, 0x54, 0x8b, 0x85, 0xeb, + 0xf1, 0x93, 0x39, 0x25, 0x6b, 0x88, 0xca, 0xbb, 0xa1, 0xa0, 0x3b, 0xaa, 0xbf, 0x0d, 0x10, 0x9f, + 0x8b, 0x9f, 0xcc, 0x2a, 0x79, 0xdd, 0xf1, 0x52, 0xa8, 0xf2, 0xa7, 0xe2, 0x50, 0x0c, 0x6f, 0x63, + 0xa0, 0x45, 0xc8, 0xb6, 0xcd, 0xa6, 0x46, 0x55, 0x8b, 0xed, 0xa1, 0x9d, 0x8c, 0xd8, 0xf9, 0x98, + 0x5f, 0xe6, 0xf4, 0x8a, 0xc7, 0x59, 0xfe, 0x77, 0x31, 0xc8, 0x8a, 0x62, 0x74, 0x04, 0x92, 0x96, + 0xe6, 0xee, 0x52, 0xb8, 0x54, 0x35, 0x2e, 0xc5, 0x14, 0xfa, 0x4c, 0xca, 0x1d, 0x4b, 0x33, 0xa8, + 0x0a, 0xf0, 0x72, 0xf2, 0x4c, 0xc6, 0xb5, 0x8d, 0xb5, 0x16, 0x0d, 0x9b, 0xcc, 0x4e, 0x07, 0x1b, + 0xae, 0x23, 0xc6, 0x95, 0x97, 0xd7, 0x78, 0x31, 0x7a, 0x00, 0x26, 0x5c, 0x5b, 0xd3, 0xdb, 0x21, + 0xda, 0x24, 0xa5, 0x95, 0x44, 0x85, 0x47, 0xbc, 0x00, 0xc7, 0x04, 0x6e, 0x0b, 0xbb, 0x5a, 0x73, + 0x17, 0xb7, 0x7c, 0xa6, 0x34, 0x4d, 0x8f, 0x1c, 0xe5, 0x04, 0x8b, 0xbc, 0x5e, 0xf0, 0xca, 0x5f, + 0x8d, 0xc1, 0x84, 0x08, 0xf4, 0x5a, 0x9e, 0xb0, 0x56, 0x00, 0x34, 0xc3, 0x30, 0xdd, 0xa0, 0xb8, + 0xfa, 0x55, 0xb9, 0x8f, 0x6f, 0xbe, 0xe2, 0x31, 0x29, 0x01, 0x80, 0x72, 0x07, 0xc0, 0xaf, 0x19, + 0x2a, 0xb6, 0x59, 0xc8, 0xf3, 0x3d, 0x2a, 0xba, 0xd1, 0xc9, 0x52, 0x03, 0xc0, 0x8a, 0x48, 0x44, + 0x88, 0xa6, 0x20, 0xb5, 0x85, 0x77, 0x74, 0x83, 0x67, 0x9e, 0xd9, 0x83, 0x48, 0xe0, 0x24, 0xbd, + 0x04, 0x4e, 0xf5, 0x6f, 0xc2, 0x64, 0xd3, 0xec, 0xf4, 0x36, 0xb7, 0x2a, 0xf5, 0xa4, 0x27, 0x9c, + 0xcb, 0xb1, 0x17, 0x1e, 0xe2, 0x44, 0x3b, 0x66, 0x5b, 0x33, 0x76, 0xe6, 0x4d, 0x7b, 0xc7, 0xdf, + 0xa8, 0x25, 0x1e, 0x92, 0x13, 0xd8, 0xae, 0xb5, 0xb6, 0xfe, 0x57, 0x2c, 0xf6, 0xf3, 0xf1, 0xc4, + 0xa5, 0xf5, 0xea, 0x2f, 0xc5, 0xcb, 0x97, 0x18, 0xe3, 0xba, 0x10, 0x86, 0x82, 0xb7, 0xdb, 0xb8, + 0x49, 0x3a, 0x08, 0x7f, 0xfc, 0x00, 0x4c, 0xed, 0x98, 0x3b, 0x26, 0x45, 0x3a, 0x43, 0x7e, 0xf1, + 0x9d, 0xde, 0x9c, 0x57, 0x5a, 0x8e, 0xdc, 0x16, 0x5e, 0x58, 0x85, 0x49, 0x4e, 0xac, 0xd2, 0xad, + 0x26, 0x16, 0x08, 0xa1, 0x03, 0xb3, 0x70, 0xd3, 0xbf, 0xf2, 0x75, 0xba, 0x7c, 0x2b, 0x13, 0x9c, + 0x95, 0xd4, 0xb1, 0x58, 0x69, 0x41, 0x81, 0x3b, 0x42, 0x78, 0x6c, 0x92, 0x62, 0x3b, 0x02, 0xf1, + 0x5f, 0x72, 0xc4, 0xc9, 0x00, 0x62, 0x83, 0xb3, 0x2e, 0xd4, 0x60, 0xfc, 0x30, 0x58, 0xff, 0x8a, + 0x63, 0x15, 0x70, 0x10, 0xe4, 0x12, 0x94, 0x28, 0x48, 0xb3, 0xeb, 0xb8, 0x66, 0x87, 0x5a, 0xc0, + 0x83, 0x61, 0xfe, 0xf5, 0xd7, 0xd9, 0xac, 0x29, 0x12, 0xb6, 0x9a, 0xc7, 0xb5, 0xb0, 0x00, 0x74, + 0x77, 0xad, 0x85, 0x9b, 0xed, 0x08, 0x84, 0x2f, 0xf3, 0x86, 0x78, 0xf4, 0x0b, 0x57, 0x61, 0x8a, + 0xfc, 0xa6, 0x06, 0x2a, 0xd8, 0x92, 0xe8, 0x94, 0xdd, 0xf4, 0x57, 0xdf, 0xcb, 0x26, 0xe6, 0xa4, + 0x07, 0x10, 0x68, 0x53, 0x60, 0x14, 0x77, 0xb0, 0xeb, 0x62, 0xdb, 0x51, 0xb5, 0xf6, 0xa0, 0xe6, + 0x05, 0x72, 0x1e, 0xd3, 0x3f, 0xfb, 0xed, 0xf0, 0x28, 0x5e, 0x62, 0x9c, 0x95, 0x76, 0x7b, 0x61, + 0x13, 0x8e, 0x0e, 0xd0, 0x8a, 0x11, 0x30, 0x3f, 0xc2, 0x31, 0xa7, 0xfa, 0x34, 0x83, 0xc0, 0xae, + 0x83, 0x28, 0xf7, 0xc6, 0x72, 0x04, 0xcc, 0x9f, 0xe3, 0x98, 0x88, 0xf3, 0x8a, 0x21, 0x25, 0x88, + 0x57, 0x60, 0xe2, 0x3a, 0xb6, 0xb7, 0x4c, 0x87, 0xe7, 0x99, 0x46, 0x80, 0xfb, 0x28, 0x87, 0x2b, + 0x71, 0x46, 0x9a, 0x78, 0x22, 0x58, 0x4f, 0x42, 0x76, 0x5b, 0x6b, 0xe2, 0x11, 0x20, 0x6e, 0x71, + 0x88, 0x0c, 0xa1, 0x27, 0xac, 0x15, 0x28, 0xec, 0x98, 0x7c, 0x8d, 0x8a, 0x66, 0xff, 0x18, 0x67, + 0xcf, 0x0b, 0x1e, 0x0e, 0x61, 0x99, 0x56, 0xb7, 0x4d, 0x16, 0xb0, 0x68, 0x88, 0xbf, 0x2f, 0x20, + 0x04, 0x0f, 0x87, 0x38, 0x84, 0x58, 0x5f, 0x11, 0x10, 0x4e, 0x40, 0x9e, 0x4f, 0x43, 0xde, 0x34, + 0xda, 0xfb, 0xa6, 0x31, 0x4a, 0x23, 0x3e, 0xce, 0x11, 0x80, 0xb3, 0x10, 0x80, 0x0b, 0x90, 0x1b, + 0x75, 0x20, 0x7e, 0xe1, 0xdb, 0x62, 0x7a, 0x88, 0x11, 0xb8, 0x04, 0x25, 0x61, 0xa0, 0x74, 0xd3, + 0x18, 0x01, 0xe2, 0x93, 0x1c, 0xa2, 0x18, 0x60, 0xe3, 0xdd, 0x70, 0xb1, 0xe3, 0xee, 0xe0, 0x51, + 0x40, 0x3e, 0x25, 0xba, 0xc1, 0x59, 0xb8, 0x28, 0xb7, 0xb0, 0xd1, 0xdc, 0x1d, 0x0d, 0xe1, 0xd3, + 0x42, 0x94, 0x82, 0x87, 0x40, 0xd4, 0x60, 0xbc, 0xa3, 0xd9, 0xce, 0xae, 0xd6, 0x1e, 0x69, 0x38, + 0x7e, 0x91, 0x63, 0x14, 0x3c, 0x26, 0x2e, 0x91, 0xae, 0x71, 0x18, 0x98, 0x5f, 0x12, 0x12, 0x09, + 0xb0, 0xf1, 0xa9, 0xe7, 0xb8, 0x34, 0x29, 0x77, 0x18, 0xb4, 0x7f, 0x28, 0xa6, 0x1e, 0xe3, 0x5d, + 0x09, 0x22, 0x5e, 0x80, 0x9c, 0xa3, 0xbf, 0x34, 0x12, 0xcc, 0x3f, 0x12, 0x23, 0x4d, 0x19, 0x08, + 0xf3, 0xf3, 0x70, 0x6c, 0xe0, 0x32, 0x31, 0x02, 0xd8, 0x3f, 0xe6, 0x60, 0x47, 0x06, 0x2c, 0x15, + 0xdc, 0x24, 0x1c, 0x16, 0xf2, 0x97, 0x85, 0x49, 0xc0, 0x3d, 0x58, 0xeb, 0x24, 0x6a, 0x70, 0xb4, + 0xed, 0xc3, 0x49, 0xed, 0x9f, 0x08, 0xa9, 0x31, 0xde, 0x90, 0xd4, 0x36, 0xe0, 0x08, 0x47, 0x3c, + 0xdc, 0xb8, 0x7e, 0x46, 0x18, 0x56, 0xc6, 0xbd, 0x19, 0x1e, 0xdd, 0x1f, 0x84, 0xb2, 0x27, 0x4e, + 0xe1, 0x9e, 0x3a, 0x6a, 0x47, 0xb3, 0x46, 0x40, 0xfe, 0x15, 0x8e, 0x2c, 0x2c, 0xbe, 0xe7, 0xdf, + 0x3a, 0x2b, 0x9a, 0x45, 0xc0, 0x9f, 0x83, 0x69, 0x01, 0xde, 0x35, 0x6c, 0xdc, 0x34, 0x77, 0x0c, + 0xfd, 0x25, 0xdc, 0x1a, 0x01, 0xfa, 0x57, 0x7b, 0x86, 0x6a, 0x33, 0xc0, 0x4e, 0x90, 0x97, 0x40, + 0xf2, 0x7c, 0x15, 0x55, 0xef, 0x58, 0xa6, 0xed, 0x46, 0x20, 0x7e, 0x56, 0x8c, 0x94, 0xc7, 0xb7, + 0x44, 0xd9, 0x16, 0xea, 0xc0, 0x76, 0xaa, 0x47, 0x55, 0xc9, 0xcf, 0x71, 0xa0, 0x71, 0x9f, 0x8b, + 0x1b, 0x8e, 0xa6, 0xd9, 0xb1, 0x34, 0x7b, 0x14, 0xfb, 0xf7, 0x4f, 0x85, 0xe1, 0xe0, 0x2c, 0xdc, + 0x70, 0x10, 0x8f, 0x8e, 0xac, 0xf6, 0x23, 0x20, 0x7c, 0x5e, 0x18, 0x0e, 0xc1, 0xc3, 0x21, 0x84, + 0xc3, 0x30, 0x02, 0xc4, 0x17, 0x04, 0x84, 0xe0, 0x21, 0x10, 0xef, 0xf0, 0x17, 0x5a, 0x1b, 0xef, + 0xe8, 0x8e, 0x6b, 0x33, 0xa7, 0xf8, 0x60, 0xa8, 0x2f, 0x7e, 0x3b, 0xec, 0x84, 0x29, 0x01, 0x56, + 0x62, 0x89, 0x78, 0x9a, 0x96, 0xc6, 0x4c, 0xd1, 0x0d, 0xfb, 0x35, 0x61, 0x89, 0x02, 0x6c, 0xa4, + 0x6d, 0x01, 0x0f, 0x91, 0x88, 0xbd, 0x49, 0x22, 0x85, 0x11, 0xe0, 0xfe, 0x59, 0x4f, 0xe3, 0x1a, + 0x82, 0x97, 0x60, 0x06, 0xfc, 0x9f, 0xae, 0x71, 0x0d, 0xef, 0x8f, 0xa4, 0x9d, 0xbf, 0xde, 0xe3, + 0xff, 0x6c, 0x32, 0x4e, 0x66, 0x43, 0x4a, 0x3d, 0xfe, 0x14, 0x8a, 0x3a, 0x97, 0x34, 0xfd, 0xc3, + 0xaf, 0xf3, 0xfe, 0x86, 0xdd, 0xa9, 0x85, 0x65, 0xa2, 0xe4, 0x61, 0xa7, 0x27, 0x1a, 0xec, 0xbd, + 0xaf, 0x7b, 0x7a, 0x1e, 0xf2, 0x79, 0x16, 0x2e, 0xc2, 0x78, 0xc8, 0xe1, 0x89, 0x86, 0xfa, 0x51, + 0x0e, 0x55, 0x08, 0xfa, 0x3b, 0x0b, 0xe7, 0x20, 0x49, 0x9c, 0x97, 0x68, 0xf6, 0x1f, 0xe3, 0xec, + 0x94, 0x7c, 0xe1, 0x29, 0xc8, 0x0a, 0xa7, 0x25, 0x9a, 0xf5, 0x6f, 0x71, 0x56, 0x8f, 0x85, 0xb0, + 0x0b, 0x87, 0x25, 0x9a, 0xfd, 0x6f, 0x0b, 0x76, 0xc1, 0x42, 0xd8, 0x47, 0x17, 0xe1, 0x97, 0xfe, + 0x4e, 0x92, 0x2f, 0x3a, 0x42, 0x76, 0x17, 0x20, 0xc3, 0x3d, 0x95, 0x68, 0xee, 0x1f, 0xe7, 0x2f, + 0x17, 0x1c, 0x0b, 0x8f, 0x43, 0x6a, 0x44, 0x81, 0xff, 0x5d, 0xce, 0xca, 0xe8, 0x17, 0x6a, 0x90, + 0x0f, 0x78, 0x27, 0xd1, 0xec, 0xef, 0xe7, 0xec, 0x41, 0x2e, 0xd2, 0x74, 0xee, 0x9d, 0x44, 0x03, + 0xfc, 0xa4, 0x68, 0x3a, 0xe7, 0x20, 0x62, 0x13, 0x8e, 0x49, 0x34, 0xf7, 0x07, 0x84, 0xd4, 0x05, + 0xcb, 0xc2, 0xd3, 0x90, 0xf3, 0x16, 0x9b, 0x68, 0xfe, 0x9f, 0xe2, 0xfc, 0x3e, 0x0f, 0x91, 0x40, + 0x60, 0xb1, 0x8b, 0x86, 0xf8, 0xa0, 0x90, 0x40, 0x80, 0x8b, 0x4c, 0xa3, 0x5e, 0x07, 0x26, 0x1a, + 0xe9, 0x43, 0x62, 0x1a, 0xf5, 0xf8, 0x2f, 0x64, 0x34, 0xa9, 0xcd, 0x8f, 0x86, 0xf8, 0x7b, 0x62, + 0x34, 0x29, 0x3d, 0x69, 0x46, 0xaf, 0x47, 0x10, 0x8d, 0xf1, 0x33, 0xa2, 0x19, 0x3d, 0x0e, 0xc1, + 0xc2, 0x3a, 0xa0, 0x7e, 0x6f, 0x20, 0x1a, 0xef, 0xc3, 0x1c, 0x6f, 0xa2, 0xcf, 0x19, 0x58, 0x78, + 0x16, 0x8e, 0x0c, 0xf6, 0x04, 0xa2, 0x51, 0x7f, 0xf6, 0xf5, 0x9e, 0xd8, 0x2d, 0xe8, 0x08, 0x2c, + 0x6c, 0xf8, 0x4b, 0x4a, 0xd0, 0x0b, 0x88, 0x86, 0xfd, 0xc8, 0xeb, 0x61, 0xc3, 0x1d, 0x74, 0x02, + 0x16, 0x2a, 0x00, 0xfe, 0x02, 0x1c, 0x8d, 0xf5, 0x51, 0x8e, 0x15, 0x60, 0x22, 0x53, 0x83, 0xaf, + 0xbf, 0xd1, 0xfc, 0xb7, 0xc4, 0xd4, 0xe0, 0x1c, 0x64, 0x6a, 0x88, 0xa5, 0x37, 0x9a, 0xfb, 0x63, + 0x62, 0x6a, 0x08, 0x16, 0xa2, 0xd9, 0x81, 0xd5, 0x2d, 0x1a, 0xe1, 0xe3, 0x42, 0xb3, 0x03, 0x5c, + 0x0b, 0xab, 0x30, 0xd1, 0xb7, 0x20, 0x46, 0x43, 0xfd, 0x3c, 0x87, 0x92, 0x7a, 0xd7, 0xc3, 0xe0, + 0xe2, 0xc5, 0x17, 0xc3, 0x68, 0xb4, 0x4f, 0xf4, 0x2c, 0x5e, 0x7c, 0x2d, 0x5c, 0xb8, 0x00, 0x59, + 0xa3, 0xdb, 0x6e, 0x93, 0xc9, 0x83, 0x0e, 0x3e, 0x4b, 0x38, 0xfd, 0xdf, 0xbe, 0xcb, 0xa5, 0x23, + 0x18, 0x16, 0xce, 0x41, 0x0a, 0x77, 0xb6, 0x70, 0x2b, 0x8a, 0xf3, 0x5b, 0xdf, 0x15, 0x06, 0x93, + 0x50, 0x2f, 0x3c, 0x0d, 0xc0, 0x52, 0x23, 0x74, 0xf3, 0x30, 0x82, 0xf7, 0x8f, 0xbe, 0xcb, 0x0f, + 0xef, 0xf8, 0x2c, 0x3e, 0x00, 0x3b, 0x0a, 0x74, 0x30, 0xc0, 0xb7, 0xc3, 0x00, 0x74, 0x44, 0x9e, + 0x84, 0xcc, 0x8b, 0x8e, 0x69, 0xb8, 0xda, 0x4e, 0x14, 0xf7, 0x1f, 0x73, 0x6e, 0x41, 0x4f, 0x04, + 0xd6, 0x31, 0x6d, 0xec, 0x6a, 0x3b, 0x4e, 0x14, 0xef, 0x7f, 0xe7, 0xbc, 0x1e, 0x03, 0x61, 0x6e, + 0x6a, 0x8e, 0x3b, 0x4a, 0xbf, 0xff, 0x44, 0x30, 0x0b, 0x06, 0xd2, 0x68, 0xf2, 0xfb, 0x1a, 0xde, + 0x8f, 0xe2, 0xfd, 0x53, 0xd1, 0x68, 0x4e, 0xbf, 0xf0, 0x14, 0xe4, 0xc8, 0x4f, 0x76, 0x22, 0x2f, + 0x82, 0xf9, 0xcf, 0x38, 0xb3, 0xcf, 0x41, 0xde, 0xec, 0xb8, 0x2d, 0x57, 0x8f, 0x16, 0xf6, 0x77, + 0xf8, 0x48, 0x0b, 0xfa, 0x85, 0x0a, 0xe4, 0x1d, 0xb7, 0xd5, 0xea, 0x72, 0xff, 0x34, 0x82, 0xfd, + 0xcf, 0xbf, 0xeb, 0xa5, 0x2c, 0x3c, 0x1e, 0x32, 0xda, 0x37, 0xae, 0xb9, 0x96, 0x49, 0x37, 0x3c, + 0xa2, 0x10, 0x5e, 0xe7, 0x08, 0x01, 0x96, 0x85, 0x1a, 0x14, 0x48, 0x5f, 0x6c, 0x6c, 0x61, 0xba, + 0x3b, 0x15, 0x01, 0xf1, 0x17, 0x5c, 0x00, 0x21, 0xa6, 0xea, 0xbb, 0xbf, 0xfc, 0xda, 0x4c, 0xec, + 0x2b, 0xaf, 0xcd, 0xc4, 0xfe, 0xe0, 0xb5, 0x99, 0xd8, 0x07, 0xbe, 0x36, 0x33, 0xf6, 0x95, 0xaf, + 0xcd, 0x8c, 0xfd, 0xde, 0xd7, 0x66, 0xc6, 0x06, 0x67, 0x89, 0xe1, 0x92, 0x79, 0xc9, 0x64, 0xf9, + 0xe1, 0x17, 0xee, 0xdb, 0xd1, 0xdd, 0xdd, 0xee, 0xd6, 0x7c, 0xd3, 0xec, 0x9c, 0x69, 0x9a, 0x4e, + 0xc7, 0x74, 0xce, 0x84, 0xf3, 0xba, 0xf4, 0x17, 0xfc, 0x9f, 0x18, 0x89, 0x99, 0xc3, 0xe9, 0x5c, + 0xcd, 0xd8, 0x1f, 0xf6, 0x79, 0xcf, 0x79, 0x48, 0x54, 0x8c, 0x7d, 0x74, 0x8c, 0x19, 0x38, 0xb5, + 0x6b, 0xb7, 0xf9, 0xb1, 0xb0, 0x0c, 0x79, 0xde, 0xb4, 0xdb, 0x68, 0xca, 0x3f, 0xbb, 0x19, 0x3b, + 0x59, 0xe0, 0x07, 0x32, 0xab, 0xef, 0x8f, 0x1d, 0xae, 0x27, 0xd9, 0x8a, 0xb1, 0x4f, 0x3b, 0xb2, + 0x1e, 0x7b, 0xe1, 0xc1, 0xc8, 0x3c, 0xf7, 0x35, 0xc3, 0xbc, 0x61, 0x90, 0x66, 0x5b, 0x5b, 0x22, + 0xc7, 0x3d, 0xd3, 0x9b, 0xe3, 0x7e, 0x16, 0xb7, 0xdb, 0xcf, 0x10, 0xba, 0x0d, 0xc2, 0xb2, 0x95, + 0x66, 0x27, 0x90, 0xe1, 0x43, 0x71, 0x98, 0xe9, 0x4b, 0x67, 0x73, 0x25, 0x18, 0x26, 0x84, 0x05, + 0xc8, 0x2e, 0x0a, 0xdd, 0x9a, 0x86, 0x8c, 0x83, 0x9b, 0xa6, 0xd1, 0x72, 0xa8, 0x20, 0x12, 0x8a, + 0x78, 0x24, 0x82, 0x30, 0x34, 0xc3, 0x74, 0xf8, 0xc1, 0x4a, 0xf6, 0x50, 0xfd, 0xb9, 0x43, 0x0a, + 0x62, 0x5c, 0xbc, 0x49, 0x48, 0xe3, 0x91, 0x11, 0xa5, 0x21, 0x3a, 0x11, 0xca, 0xfc, 0x8f, 0x2a, + 0x95, 0x9f, 0x89, 0xc3, 0x6c, 0xaf, 0x54, 0xc8, 0xcc, 0x72, 0x5c, 0xad, 0x63, 0x0d, 0x13, 0xcb, + 0x05, 0xc8, 0x6d, 0x08, 0x9a, 0x43, 0xcb, 0xe5, 0xd6, 0x21, 0xe5, 0x52, 0xf4, 0x5e, 0x25, 0x04, + 0x73, 0x76, 0x44, 0xc1, 0x78, 0xfd, 0xb8, 0x2d, 0xc9, 0xfc, 0x65, 0x1a, 0x8e, 0xb1, 0xe9, 0xa4, + 0xb2, 0xa9, 0xc4, 0x1e, 0xb8, 0x4c, 0x0a, 0xc1, 0xaa, 0xe8, 0x7d, 0x12, 0xf9, 0x19, 0x98, 0x5c, + 0x22, 0xd6, 0x82, 0x44, 0x41, 0xfe, 0x0e, 0xcf, 0xc0, 0xb3, 0xa7, 0x73, 0x21, 0x87, 0x9f, 0xef, + 0x30, 0x05, 0x8b, 0xe4, 0x1f, 0x8e, 0x81, 0xd4, 0x68, 0x6a, 0x6d, 0xcd, 0xfe, 0x5e, 0xa1, 0xd0, + 0xe3, 0x00, 0xf4, 0x9b, 0x25, 0xff, 0x23, 0xa3, 0xe2, 0xd9, 0xe9, 0xf9, 0x60, 0xe7, 0xe6, 0xd9, + 0x9b, 0xe8, 0x17, 0x0c, 0x39, 0x4a, 0x4b, 0x7e, 0x9e, 0x7e, 0x0e, 0xc0, 0xaf, 0x40, 0xc7, 0xe1, + 0x68, 0xa3, 0x56, 0x59, 0xae, 0x28, 0x2a, 0x3b, 0x0c, 0xbf, 0xda, 0x58, 0xaf, 0xd7, 0x96, 0x2e, + 0x2e, 0xd5, 0x17, 0xa5, 0x31, 0x74, 0x04, 0x50, 0xb0, 0xd2, 0x3b, 0x97, 0x72, 0x07, 0x4c, 0x04, + 0xcb, 0xd9, 0x89, 0xfa, 0x38, 0xf1, 0x14, 0xf5, 0x8e, 0xd5, 0xc6, 0x74, 0xeb, 0x4f, 0xd5, 0x85, + 0xd4, 0xa2, 0x9d, 0x90, 0xdf, 0xfe, 0x0f, 0xec, 0x94, 0xf5, 0xa4, 0xcf, 0xee, 0xc9, 0x7c, 0x61, + 0x19, 0x26, 0xb4, 0x66, 0x13, 0x5b, 0x21, 0xc8, 0x08, 0x53, 0x4d, 0x00, 0xe9, 0x66, 0x26, 0xe7, + 0xf4, 0xd1, 0x1e, 0x87, 0xb4, 0x43, 0x7b, 0x1f, 0x05, 0xf1, 0x3b, 0x1c, 0x82, 0x93, 0x2f, 0x18, + 0x30, 0x41, 0x3c, 0x3f, 0xcd, 0xc6, 0x81, 0x66, 0x1c, 0x9c, 0x67, 0xf8, 0x8d, 0xcf, 0x3e, 0x4c, + 0xb7, 0x36, 0xef, 0x0e, 0x0f, 0xcb, 0x00, 0x75, 0x52, 0x24, 0x8e, 0xed, 0x37, 0x14, 0x43, 0x51, + 0xbc, 0x8f, 0x37, 0xf8, 0xe0, 0x97, 0xfd, 0x26, 0x7f, 0xd9, 0xcc, 0x20, 0x1d, 0x08, 0xbc, 0x69, + 0x9c, 0xa3, 0xb2, 0x8a, 0x6a, 0x7d, 0xd8, 0x9c, 0x7e, 0xe1, 0x81, 0xfe, 0xd5, 0x89, 0xfd, 0xf7, + 0x10, 0x45, 0xbe, 0x10, 0x7c, 0x8d, 0x37, 0xf7, 0x3e, 0x98, 0x84, 0x09, 0xad, 0xa3, 0x1b, 0xe6, + 0x19, 0xfa, 0x2f, 0x9f, 0x73, 0x29, 0xfa, 0x30, 0xc2, 0xa6, 0xe4, 0x79, 0x36, 0x15, 0xa2, 0x35, + 0xe6, 0xcf, 0x7e, 0xe2, 0x93, 0x29, 0x7f, 0xba, 0x2c, 0xac, 0x80, 0x24, 0x0e, 0x1c, 0x62, 0xa3, + 0x69, 0xb6, 0x46, 0xca, 0x52, 0x7c, 0x47, 0x60, 0x88, 0xfc, 0x56, 0x9d, 0xb3, 0x2e, 0xbc, 0x0d, + 0xb2, 0x1e, 0x4c, 0x94, 0x67, 0x22, 0x40, 0x3c, 0x0e, 0xe2, 0x97, 0xb0, 0x99, 0x39, 0x8a, 0x17, + 0xfa, 0xba, 0xe0, 0x67, 0x33, 0x74, 0x95, 0xf4, 0xe6, 0x12, 0x14, 0x5b, 0xa6, 0xe1, 0xaa, 0x66, + 0x47, 0x77, 0x71, 0xc7, 0x72, 0x23, 0xfd, 0xba, 0xbf, 0x60, 0x20, 0x59, 0x65, 0x9c, 0xf0, 0xad, + 0x09, 0xb6, 0x85, 0xf3, 0x23, 0xfa, 0xe1, 0xff, 0x43, 0xf0, 0x33, 0xf2, 0xdb, 0x52, 0x0a, 0xa7, + 0x75, 0x8d, 0xdb, 0x70, 0x77, 0x8f, 0x0d, 0xbe, 0xa7, 0x14, 0x7f, 0x92, 0x80, 0x19, 0x4e, 0xbc, + 0xa5, 0x39, 0xf8, 0xcc, 0xf5, 0x47, 0xb6, 0xb0, 0xab, 0x3d, 0x72, 0xa6, 0x69, 0xea, 0x62, 0x01, + 0x9f, 0xe4, 0x36, 0x9a, 0xd4, 0xcf, 0xf3, 0xfa, 0xf2, 0xc0, 0x5d, 0xee, 0xf2, 0x70, 0xdb, 0x5e, + 0xee, 0x57, 0x3d, 0xf9, 0x05, 0x48, 0xd6, 0x4c, 0xdd, 0x20, 0x4b, 0x5a, 0x0b, 0x1b, 0x66, 0x87, + 0x5b, 0x59, 0xf6, 0x80, 0xce, 0x43, 0x5a, 0xeb, 0x98, 0x5d, 0xc3, 0x65, 0x16, 0xb6, 0x3a, 0xf3, + 0xe5, 0x57, 0x67, 0xc7, 0xfe, 0xd3, 0xab, 0xb3, 0x89, 0x25, 0xc3, 0xfd, 0xdd, 0xcf, 0x3d, 0x04, + 0x1c, 0x7d, 0xc9, 0x70, 0x3f, 0xfd, 0x8d, 0xcf, 0x9c, 0x8e, 0x29, 0x9c, 0x7a, 0x21, 0xf9, 0xcd, + 0x57, 0x66, 0x63, 0xf2, 0x73, 0x90, 0x59, 0xc4, 0xcd, 0x03, 0xe0, 0x1f, 0xe9, 0x81, 0x3f, 0x26, + 0xe0, 0x17, 0x71, 0x33, 0x00, 0xbf, 0x88, 0x9b, 0x3d, 0xc8, 0x8f, 0x43, 0x76, 0xc9, 0x70, 0xd9, + 0x57, 0x0e, 0x0f, 0x40, 0x42, 0x37, 0xd8, 0xc1, 0xd9, 0x00, 0x42, 0x5f, 0x03, 0x15, 0x42, 0x45, + 0x18, 0x17, 0x71, 0xd3, 0x63, 0x6c, 0xe1, 0x66, 0x2f, 0x63, 0xff, 0xab, 0x09, 0x55, 0x75, 0xf1, + 0xf7, 0xfe, 0xeb, 0xcc, 0xd8, 0xcb, 0xaf, 0xcd, 0x8c, 0x0d, 0x1d, 0x7a, 0x39, 0x7a, 0xe8, 0xbd, + 0x11, 0xff, 0x64, 0x12, 0xee, 0xa2, 0x1f, 0xbf, 0xd9, 0x1d, 0xdd, 0x70, 0xcf, 0x34, 0xed, 0x7d, + 0xcb, 0x35, 0xc9, 0xbc, 0x37, 0xb7, 0xf9, 0x80, 0x4f, 0xf8, 0xd5, 0xf3, 0xac, 0x7a, 0xf0, 0x70, + 0xcb, 0xdb, 0x90, 0x5a, 0x27, 0x7c, 0x44, 0xc4, 0xae, 0xe9, 0x6a, 0x6d, 0xee, 0xac, 0xb0, 0x07, + 0x52, 0xca, 0x3e, 0x98, 0x8b, 0xb3, 0x52, 0x5d, 0x7c, 0x2b, 0xd7, 0xc6, 0xda, 0x36, 0xfb, 0xee, + 0x20, 0x41, 0xbd, 0xdc, 0x2c, 0x29, 0xa0, 0x9f, 0x18, 0x4c, 0x41, 0x4a, 0xeb, 0xb2, 0x03, 0x2f, + 0x09, 0xe2, 0xfe, 0xd2, 0x07, 0xf9, 0x19, 0xc8, 0xf0, 0x6d, 0x77, 0x24, 0x41, 0xe2, 0x1a, 0xde, + 0xa7, 0xef, 0x29, 0x28, 0xe4, 0x27, 0x9a, 0x87, 0x14, 0x6d, 0x3c, 0xff, 0xa0, 0x6a, 0x7a, 0xbe, + 0xaf, 0xf5, 0xf3, 0xb4, 0x91, 0x0a, 0x23, 0x93, 0xaf, 0x40, 0x76, 0xd1, 0x24, 0x5a, 0x18, 0x46, + 0xcb, 0x31, 0x34, 0xda, 0x66, 0xab, 0xcb, 0xb5, 0x42, 0x61, 0x0f, 0xe8, 0x08, 0xa4, 0xd9, 0x77, + 0x28, 0xfc, 0xd0, 0x0e, 0x7f, 0x92, 0x6b, 0x90, 0xa1, 0xd8, 0x6b, 0x16, 0xf1, 0x14, 0xbc, 0x23, + 0xbf, 0x39, 0xfe, 0x55, 0x22, 0x87, 0x8f, 0xfb, 0x8d, 0x45, 0x90, 0x6c, 0x69, 0xae, 0xc6, 0xfb, + 0x4d, 0x7f, 0xcb, 0x6f, 0x87, 0x2c, 0x07, 0x71, 0xd0, 0x59, 0x48, 0x98, 0x96, 0xc3, 0x8f, 0xdd, + 0x94, 0x87, 0x75, 0x65, 0xcd, 0xaa, 0x26, 0x89, 0xce, 0x28, 0x84, 0xb8, 0xba, 0x3a, 0x54, 0x2d, + 0x1e, 0x0b, 0xa9, 0x45, 0x07, 0xbb, 0x5b, 0xdb, 0xae, 0xff, 0x83, 0x0d, 0x67, 0x9f, 0x2a, 0x78, + 0x8a, 0x72, 0x2b, 0x0e, 0x33, 0x81, 0xda, 0xeb, 0xd8, 0x76, 0x74, 0xd3, 0x60, 0xda, 0xc4, 0x35, + 0x05, 0x05, 0x1a, 0xc8, 0xeb, 0x87, 0xa8, 0xca, 0x53, 0x90, 0xa8, 0x58, 0x16, 0x2a, 0x43, 0x96, + 0x3e, 0x37, 0x4d, 0xa6, 0x2b, 0x49, 0xc5, 0x7b, 0x26, 0x75, 0x8e, 0xb9, 0xed, 0xde, 0xd0, 0x6c, + 0xef, 0x33, 0x4d, 0xf1, 0x2c, 0x3f, 0x09, 0xb9, 0x9a, 0x69, 0x38, 0xd8, 0x70, 0xba, 0xd4, 0x05, + 0xde, 0x6a, 0x9b, 0xcd, 0x6b, 0x1c, 0x81, 0x3d, 0x10, 0x61, 0x6b, 0x96, 0x45, 0x39, 0x93, 0x0a, + 0xf9, 0xc9, 0xe6, 0x6b, 0x75, 0x6d, 0xa8, 0x78, 0xce, 0x1d, 0x4e, 0x3c, 0xbc, 0x83, 0xbe, 0x2f, + 0x1b, 0x83, 0x3b, 0xfb, 0x27, 0xd2, 0x35, 0xbc, 0xef, 0x1c, 0x76, 0x1e, 0x3d, 0x07, 0xb9, 0x75, + 0x7a, 0x4f, 0xc2, 0x33, 0x78, 0x1f, 0x95, 0x21, 0x83, 0x5b, 0x67, 0xcf, 0x9d, 0x7b, 0xe4, 0x49, + 0xa6, 0xe5, 0x97, 0xc7, 0x14, 0x51, 0x80, 0x66, 0x20, 0xe7, 0xe0, 0xa6, 0x75, 0xf6, 0xdc, 0xf9, + 0x6b, 0x8f, 0x30, 0xb5, 0xba, 0x3c, 0xa6, 0xf8, 0x45, 0x0b, 0x59, 0xd2, 0xe3, 0x6f, 0x7e, 0x7c, + 0x36, 0x56, 0x4d, 0x41, 0xc2, 0xe9, 0x76, 0xde, 0x34, 0xdd, 0xf8, 0xe9, 0x14, 0xcc, 0x05, 0x6a, + 0xd9, 0xe2, 0x72, 0x5d, 0x6b, 0xeb, 0x2d, 0xcd, 0xbf, 0xdd, 0x42, 0x0a, 0xf4, 0x9f, 0x52, 0x0c, + 0x59, 0x35, 0x0e, 0x94, 0xa2, 0xfc, 0xab, 0x31, 0x28, 0x5c, 0x15, 0xc8, 0x0d, 0xec, 0xa2, 0x0b, + 0x00, 0xde, 0x9b, 0xc4, 0x54, 0x39, 0x3e, 0xdf, 0xfb, 0xae, 0x79, 0x8f, 0x47, 0x09, 0x90, 0xa3, + 0xc7, 0xa9, 0x02, 0x5a, 0xa6, 0xc3, 0x3f, 0xd9, 0x8b, 0x60, 0xf5, 0x88, 0xd1, 0x83, 0x80, 0xa8, + 0x55, 0x53, 0xaf, 0x9b, 0xae, 0x6e, 0xec, 0xa8, 0x96, 0x79, 0x83, 0x7f, 0x08, 0x9d, 0x50, 0x24, + 0x5a, 0x73, 0x95, 0x56, 0xac, 0x93, 0x72, 0xd2, 0xe8, 0x9c, 0x87, 0x42, 0xa2, 0x39, 0xad, 0xd5, + 0xb2, 0xb1, 0xe3, 0x70, 0xc3, 0x25, 0x1e, 0xd1, 0x05, 0xc8, 0x58, 0xdd, 0x2d, 0x55, 0x58, 0x89, + 0xfc, 0xd9, 0x3b, 0x07, 0xcd, 0x79, 0xa1, 0x1b, 0x7c, 0xd6, 0xa7, 0xad, 0xee, 0x16, 0xd1, 0x94, + 0xbb, 0xa1, 0x30, 0xa0, 0x31, 0xf9, 0xeb, 0x7e, 0x3b, 0xe8, 0xd5, 0x1c, 0xbc, 0x07, 0xaa, 0x65, + 0xeb, 0xa6, 0xad, 0xbb, 0xfb, 0xf4, 0xbc, 0x5c, 0x42, 0x91, 0x44, 0xc5, 0x3a, 0x2f, 0x97, 0xaf, + 0x41, 0xa9, 0x41, 0xbd, 0x7c, 0xbf, 0xe5, 0xe7, 0xfc, 0xf6, 0xc5, 0xa2, 0xdb, 0x37, 0xb4, 0x65, + 0xf1, 0xbe, 0x96, 0x55, 0x57, 0x86, 0x6a, 0xe6, 0xa3, 0x87, 0xd3, 0xcc, 0xf0, 0xea, 0xf6, 0x47, + 0xc7, 0x42, 0x93, 0x92, 0x7b, 0x3d, 0x01, 0x93, 0x35, 0xaa, 0x52, 0x46, 0x05, 0xf0, 0xe5, 0x83, + 0x17, 0xd1, 0x72, 0x84, 0xe9, 0x2c, 0x47, 0x4e, 0x1f, 0xf9, 0x49, 0x18, 0x5f, 0xd7, 0x6c, 0xb7, + 0x81, 0xdd, 0xcb, 0x58, 0x6b, 0x61, 0x3b, 0xbc, 0xca, 0x8e, 0x8b, 0x55, 0x16, 0x41, 0x92, 0x2e, + 0xa5, 0x6c, 0x95, 0xa1, 0xbf, 0xe5, 0x5d, 0x48, 0xd2, 0xf3, 0xb2, 0xde, 0x0a, 0xcc, 0x39, 0xd8, + 0x0a, 0x4c, 0xec, 0xe7, 0xbe, 0x8b, 0x1d, 0x91, 0x63, 0xa2, 0x0f, 0xe8, 0x31, 0xb1, 0x8e, 0x26, + 0x0e, 0x5e, 0x47, 0xb9, 0x12, 0xf2, 0xd5, 0xb4, 0x0d, 0x99, 0x2a, 0x31, 0xbf, 0x4b, 0x8b, 0x5e, + 0x43, 0x62, 0x7e, 0x43, 0xd0, 0x0a, 0x94, 0x2c, 0xcd, 0x76, 0xe9, 0xa7, 0x46, 0xbb, 0xb4, 0x17, + 0x5c, 0xcf, 0x67, 0xfb, 0x67, 0x5d, 0xa8, 0xb3, 0xfc, 0x2d, 0xe3, 0x56, 0xb0, 0x50, 0xfe, 0xc3, + 0x24, 0xa4, 0xb9, 0x30, 0x9e, 0x82, 0x0c, 0x17, 0x2b, 0xd7, 0xcc, 0xbb, 0xe6, 0xfb, 0x17, 0xa3, + 0x79, 0x6f, 0xd1, 0xe0, 0x78, 0x82, 0x07, 0xdd, 0x0f, 0xd9, 0xe6, 0xae, 0xa6, 0x1b, 0xaa, 0xde, + 0xe2, 0x0e, 0x60, 0xfe, 0xb5, 0x57, 0x67, 0x33, 0x35, 0x52, 0xb6, 0xb4, 0xa8, 0x64, 0x68, 0xe5, + 0x52, 0x8b, 0xac, 0xfc, 0xbb, 0x58, 0xdf, 0xd9, 0x75, 0xf9, 0xec, 0xe2, 0x4f, 0xe8, 0x09, 0x48, + 0x12, 0x85, 0xe0, 0x1f, 0xa2, 0x96, 0xfb, 0x7c, 0x78, 0x2f, 0xbf, 0x52, 0xcd, 0x92, 0x17, 0x7f, + 0xe0, 0xf7, 0x67, 0x63, 0x0a, 0xe5, 0x40, 0x35, 0x18, 0x6f, 0x6b, 0x8e, 0xab, 0xd2, 0x55, 0x8b, + 0xbc, 0x3e, 0x45, 0x21, 0x8e, 0xf5, 0x0b, 0x84, 0x0b, 0x96, 0x37, 0x3d, 0x4f, 0xb8, 0x58, 0x51, + 0x0b, 0x9d, 0x04, 0x89, 0x82, 0x34, 0xcd, 0x4e, 0x47, 0x77, 0x99, 0x2f, 0x95, 0xa6, 0x72, 0x2f, + 0x92, 0xf2, 0x1a, 0x2d, 0xa6, 0x1e, 0xd5, 0x71, 0xc8, 0xd1, 0x4f, 0xdf, 0x28, 0x09, 0x3b, 0xa4, + 0x9d, 0x25, 0x05, 0xb4, 0xf2, 0x04, 0x94, 0x7c, 0xdb, 0xc8, 0x48, 0xb2, 0x0c, 0xc5, 0x2f, 0xa6, + 0x84, 0x0f, 0xc3, 0x94, 0x81, 0xf7, 0xe8, 0xb1, 0xf1, 0x10, 0x75, 0x8e, 0x52, 0x23, 0x52, 0x77, + 0x35, 0xcc, 0x71, 0x1f, 0x14, 0x9b, 0x42, 0xf8, 0x8c, 0x16, 0x28, 0xed, 0xb8, 0x57, 0x4a, 0xc9, + 0x8e, 0x41, 0x56, 0xb3, 0x2c, 0x46, 0x90, 0xe7, 0xb6, 0xd1, 0xb2, 0x68, 0xd5, 0x69, 0x98, 0xa0, + 0x7d, 0xb4, 0xb1, 0xd3, 0x6d, 0xbb, 0x1c, 0xa4, 0x40, 0x69, 0x4a, 0xa4, 0x42, 0x61, 0xe5, 0x94, + 0xf6, 0x1e, 0x18, 0xc7, 0xd7, 0xf5, 0x16, 0x36, 0x9a, 0x98, 0xd1, 0x8d, 0x53, 0xba, 0x82, 0x28, + 0xa4, 0x44, 0xa7, 0xc0, 0xb3, 0x79, 0xaa, 0xb0, 0xc7, 0x45, 0x86, 0x27, 0xca, 0x2b, 0xac, 0x58, + 0x9e, 0x86, 0xe4, 0xa2, 0xe6, 0x6a, 0xc4, 0xa9, 0x70, 0xf7, 0xd8, 0x22, 0x53, 0x50, 0xc8, 0x4f, + 0xf9, 0x9b, 0x71, 0x48, 0x5e, 0x35, 0x5d, 0x8c, 0x1e, 0x0d, 0x38, 0x7c, 0xc5, 0x41, 0xfa, 0xdc, + 0xd0, 0x77, 0x0c, 0xdc, 0x5a, 0x71, 0x76, 0x02, 0xf7, 0x54, 0xf8, 0xea, 0x14, 0x0f, 0xa9, 0xd3, + 0x14, 0xa4, 0x6c, 0xb3, 0x6b, 0xb4, 0xc4, 0xf9, 0x66, 0xfa, 0x80, 0xea, 0x90, 0xf5, 0xb4, 0x24, + 0x19, 0xa5, 0x25, 0x25, 0xa2, 0x25, 0x44, 0x87, 0x79, 0x81, 0x92, 0xd9, 0xe2, 0xca, 0x52, 0x85, + 0x9c, 0x67, 0xbc, 0xb8, 0xb6, 0x8d, 0xa6, 0xb0, 0x3e, 0x1b, 0x59, 0x48, 0xbc, 0xb1, 0xf7, 0x84, + 0xc7, 0x34, 0x4e, 0xf2, 0x2a, 0xb8, 0xf4, 0x42, 0x6a, 0xc5, 0xef, 0xcc, 0xc8, 0xd0, 0x7e, 0xf9, + 0x6a, 0xc5, 0xee, 0xcd, 0xb8, 0x13, 0x72, 0x8e, 0xbe, 0x63, 0x68, 0x6e, 0xd7, 0xc6, 0x5c, 0xf3, + 0xfc, 0x02, 0xf9, 0x4b, 0x31, 0x48, 0x33, 0x4d, 0x0e, 0xc8, 0x2d, 0x36, 0x58, 0x6e, 0xf1, 0x61, + 0x72, 0x4b, 0xdc, 0xbe, 0xdc, 0x2a, 0x00, 0x5e, 0x63, 0x1c, 0x7e, 0x95, 0xc1, 0x00, 0x6f, 0x81, + 0x35, 0xb1, 0xa1, 0xef, 0xf0, 0x89, 0x1a, 0x60, 0x92, 0xff, 0x4b, 0x8c, 0x38, 0xae, 0xbc, 0x1e, + 0x55, 0x60, 0x5c, 0xb4, 0x4b, 0xdd, 0x6e, 0x6b, 0x3b, 0x5c, 0x77, 0xee, 0x1a, 0xda, 0xb8, 0x8b, + 0x6d, 0x6d, 0x47, 0xc9, 0xf3, 0xf6, 0x90, 0x87, 0xc1, 0xe3, 0x10, 0x1f, 0x32, 0x0e, 0xa1, 0x81, + 0x4f, 0xdc, 0xde, 0xc0, 0x87, 0x86, 0x28, 0xd9, 0x3b, 0x44, 0x9f, 0x8d, 0xd3, 0xe0, 0xc5, 0x32, + 0x1d, 0xad, 0xfd, 0x56, 0xcc, 0x88, 0xe3, 0x90, 0xb3, 0xcc, 0xb6, 0xca, 0x6a, 0xd8, 0xb9, 0xff, + 0xac, 0x65, 0xb6, 0x95, 0xbe, 0x61, 0x4f, 0xbd, 0x41, 0xd3, 0x25, 0xfd, 0x06, 0x48, 0x2d, 0xd3, + 0x2b, 0x35, 0x1b, 0x0a, 0x4c, 0x14, 0x7c, 0x2d, 0x7b, 0x98, 0xc8, 0x80, 0x2e, 0x8e, 0xb1, 0xfe, + 0xb5, 0x97, 0x35, 0x9b, 0x51, 0x2a, 0x9c, 0x8e, 0x70, 0x30, 0xd3, 0x3f, 0x28, 0xea, 0x0d, 0xaa, + 0xa5, 0xc2, 0xe9, 0xe4, 0x9f, 0x8e, 0x01, 0x2c, 0x13, 0xc9, 0xd2, 0xfe, 0x92, 0x55, 0xc8, 0xa1, + 0x4d, 0x50, 0x43, 0x6f, 0x9e, 0x19, 0x36, 0x68, 0xfc, 0xfd, 0x05, 0x27, 0xd8, 0xee, 0x1a, 0x8c, + 0xfb, 0xca, 0xe8, 0x60, 0xd1, 0x98, 0x99, 0x03, 0x3c, 0xea, 0x06, 0x76, 0x95, 0xc2, 0xf5, 0xc0, + 0x93, 0xfc, 0xcf, 0x63, 0x90, 0xa3, 0x6d, 0x5a, 0xc1, 0xae, 0x16, 0x1a, 0xc3, 0xd8, 0xed, 0x8f, + 0xe1, 0x5d, 0x00, 0x0c, 0xc6, 0xd1, 0x5f, 0xc2, 0x5c, 0xb3, 0x72, 0xb4, 0xa4, 0xa1, 0xbf, 0x84, + 0xd1, 0x79, 0x4f, 0xe0, 0x89, 0x83, 0x05, 0x2e, 0x3c, 0x6e, 0x2e, 0xf6, 0xa3, 0x90, 0xa1, 0x57, + 0x7f, 0xed, 0x39, 0xdc, 0x89, 0x4e, 0x1b, 0xdd, 0xce, 0xc6, 0x9e, 0x23, 0xbf, 0x08, 0x99, 0x8d, + 0x3d, 0x96, 0x0b, 0x39, 0x0e, 0x39, 0xdb, 0x34, 0xf9, 0x9a, 0xcc, 0x7c, 0xa1, 0x2c, 0x29, 0xa0, + 0x4b, 0x90, 0x88, 0xff, 0xe3, 0x7e, 0xfc, 0xef, 0x27, 0x30, 0x12, 0x23, 0x25, 0x30, 0x4e, 0xff, + 0xc7, 0x18, 0xe4, 0x03, 0xf6, 0x01, 0x3d, 0x02, 0x77, 0x54, 0x97, 0xd7, 0x6a, 0xcf, 0xa8, 0x4b, + 0x8b, 0xea, 0xc5, 0xe5, 0xca, 0x25, 0xff, 0xcb, 0xb6, 0xf2, 0x91, 0x9b, 0xb7, 0xe6, 0x50, 0x80, + 0x76, 0xd3, 0xa0, 0x9b, 0x38, 0xe8, 0x0c, 0x4c, 0x85, 0x59, 0x2a, 0xd5, 0x46, 0x7d, 0x75, 0x43, + 0x8a, 0x95, 0xef, 0xb8, 0x79, 0x6b, 0x6e, 0x22, 0xc0, 0x51, 0xd9, 0x72, 0xb0, 0xe1, 0xf6, 0x33, + 0xd4, 0xd6, 0x56, 0x56, 0x96, 0x36, 0xa4, 0x78, 0x1f, 0x03, 0x37, 0xd8, 0xa7, 0x60, 0x22, 0xcc, + 0xb0, 0xba, 0xb4, 0x2c, 0x25, 0xca, 0xe8, 0xe6, 0xad, 0xb9, 0x62, 0x80, 0x7a, 0x55, 0x6f, 0x97, + 0xb3, 0xef, 0xfb, 0xc4, 0xcc, 0xd8, 0xa7, 0xff, 0xc1, 0x4c, 0x8c, 0xf4, 0x6c, 0x3c, 0x64, 0x23, + 0xd0, 0x83, 0x70, 0xb4, 0xb1, 0x74, 0x69, 0xb5, 0xbe, 0xa8, 0xae, 0x34, 0x2e, 0x89, 0x6d, 0x10, + 0xd1, 0xbb, 0xd2, 0xcd, 0x5b, 0x73, 0x79, 0xde, 0xa5, 0x61, 0xd4, 0xeb, 0x4a, 0xfd, 0xea, 0xda, + 0x46, 0x5d, 0x8a, 0x31, 0xea, 0x75, 0x1b, 0x5f, 0x37, 0x5d, 0x76, 0x37, 0xe0, 0xc3, 0x70, 0x6c, + 0x00, 0xb5, 0xd7, 0xb1, 0x89, 0x9b, 0xb7, 0xe6, 0xc6, 0xd7, 0x6d, 0xcc, 0xe6, 0x0f, 0xe5, 0x98, + 0x87, 0xe9, 0x7e, 0x8e, 0xb5, 0xf5, 0xb5, 0x46, 0x65, 0x59, 0x9a, 0x2b, 0x4b, 0x37, 0x6f, 0xcd, + 0x15, 0x84, 0x31, 0x24, 0xf4, 0x7e, 0xcf, 0xde, 0xac, 0x68, 0xe7, 0x63, 0x99, 0x50, 0x2e, 0x8f, + 0xc5, 0x11, 0x96, 0x66, 0x6b, 0x9d, 0xe1, 0xe1, 0x4e, 0x7f, 0x22, 0x76, 0x48, 0x04, 0x14, 0xb1, + 0xb1, 0x2b, 0xbf, 0x1c, 0x87, 0x92, 0xe7, 0x5f, 0xaf, 0xd3, 0x97, 0xa2, 0x47, 0x83, 0xa9, 0x99, + 0xfc, 0xd0, 0x95, 0x8d, 0x51, 0x8b, 0xcc, 0xcd, 0xdb, 0x20, 0x2b, 0xfc, 0x34, 0x6e, 0x41, 0xe6, + 0xfa, 0xf9, 0xea, 0x9c, 0x82, 0xb3, 0x7a, 0x1c, 0xe8, 0x69, 0xc8, 0x79, 0xf6, 0xc4, 0xbb, 0x6c, + 0x67, 0xb8, 0x01, 0xe2, 0xfc, 0x3e, 0x0f, 0x7a, 0xd2, 0x8f, 0x24, 0x92, 0xc3, 0x62, 0x93, 0xab, + 0x8c, 0x80, 0x33, 0x0b, 0x7a, 0x79, 0x89, 0xcf, 0x44, 0xde, 0x7b, 0x7a, 0x51, 0xc1, 0x9e, 0xca, + 0x82, 0x2b, 0xe6, 0xa8, 0x64, 0x3b, 0xda, 0x5e, 0x95, 0xc6, 0x57, 0x47, 0x21, 0x43, 0x2a, 0x77, + 0xf8, 0x77, 0xd8, 0x09, 0x25, 0xdd, 0xd1, 0xf6, 0x2e, 0x69, 0xce, 0x95, 0x64, 0x36, 0x21, 0x25, + 0xe5, 0x5f, 0x8e, 0x41, 0x31, 0xdc, 0x47, 0xf4, 0x00, 0x20, 0xc2, 0xa1, 0xed, 0x60, 0x95, 0x58, + 0x1d, 0x2a, 0x2c, 0x81, 0x5b, 0xea, 0x68, 0x7b, 0x95, 0x1d, 0xbc, 0xda, 0xed, 0xd0, 0x06, 0x38, + 0x48, 0x01, 0x49, 0x10, 0x8b, 0x71, 0xe2, 0xc2, 0x3c, 0xd6, 0x7f, 0xf5, 0x1e, 0x27, 0xa8, 0x8e, + 0x13, 0xeb, 0xf6, 0xe1, 0xdf, 0x9f, 0x8d, 0xb1, 0x14, 0x7a, 0x91, 0x81, 0x7a, 0xbb, 0xf3, 0xa1, + 0xfe, 0x24, 0xc2, 0xfd, 0x91, 0x9f, 0x86, 0x52, 0x8f, 0x50, 0x91, 0x0c, 0xe3, 0x3c, 0x5b, 0x40, + 0x77, 0x3e, 0x99, 0xdf, 0x9c, 0x53, 0xf2, 0x2c, 0x2b, 0x40, 0x77, 0x82, 0x17, 0xb2, 0x5f, 0x7c, + 0x65, 0x36, 0x46, 0x13, 0xe9, 0x0f, 0xc0, 0x78, 0x48, 0xac, 0x22, 0x83, 0x17, 0xf3, 0x33, 0x78, + 0x3e, 0xf1, 0x0b, 0x50, 0x20, 0x06, 0x14, 0xb7, 0x38, 0xed, 0xfd, 0x50, 0x62, 0x06, 0xbe, 0x57, + 0xe0, 0xcc, 0xc3, 0x5a, 0x11, 0x52, 0x97, 0x85, 0xcb, 0x15, 0x96, 0x7d, 0x5e, 0x50, 0x5d, 0xd2, + 0x9c, 0xea, 0x3b, 0x3e, 0xfd, 0xda, 0x4c, 0xec, 0xcd, 0x99, 0xa0, 0x5f, 0x7d, 0x07, 0x1c, 0x0f, + 0x54, 0x6a, 0x5b, 0x4d, 0x3d, 0x94, 0x8d, 0x28, 0x05, 0x34, 0x8d, 0x54, 0x46, 0x65, 0x15, 0x0e, + 0xcc, 0x6d, 0x1c, 0x9c, 0x48, 0x2b, 0x1f, 0x6c, 0x29, 0xa2, 0x13, 0x1e, 0x83, 0x73, 0x97, 0xff, + 0x37, 0x0b, 0x19, 0x05, 0xbf, 0xa7, 0x8b, 0x1d, 0x17, 0x9d, 0x85, 0x24, 0x6e, 0xee, 0x9a, 0x83, + 0x52, 0x45, 0xa4, 0x73, 0xf3, 0x9c, 0xae, 0xde, 0xdc, 0x35, 0x2f, 0x8f, 0x29, 0x94, 0x16, 0x9d, + 0x83, 0xd4, 0x76, 0xbb, 0xcb, 0xf3, 0x17, 0x3d, 0x16, 0x23, 0xc8, 0x74, 0x91, 0x10, 0x5d, 0x1e, + 0x53, 0x18, 0x35, 0x79, 0x15, 0xbd, 0xc9, 0x34, 0x71, 0xf0, 0xab, 0x96, 0x8c, 0x6d, 0xfa, 0x2a, + 0x42, 0x8b, 0xaa, 0x00, 0xba, 0xa1, 0xbb, 0x2a, 0x8d, 0xed, 0xb9, 0x87, 0x78, 0xf7, 0x70, 0x4e, + 0xdd, 0xa5, 0xd9, 0x80, 0xcb, 0x63, 0x4a, 0x4e, 0x17, 0x0f, 0xa4, 0xb9, 0xef, 0xe9, 0x62, 0x7b, + 0x9f, 0x3b, 0x86, 0x43, 0x9b, 0xfb, 0x0e, 0x42, 0x44, 0x9a, 0x4b, 0xa9, 0x51, 0x1d, 0xf2, 0xf4, + 0x93, 0x55, 0x36, 0x89, 0xf9, 0xad, 0x9a, 0xf2, 0x30, 0xe6, 0x2a, 0x21, 0xa5, 0xf3, 0xfa, 0xf2, + 0x98, 0x02, 0x5b, 0xde, 0x13, 0xb1, 0x94, 0xec, 0xd6, 0x25, 0x77, 0x8f, 0xdf, 0x25, 0x38, 0x3b, + 0x0c, 0x83, 0x5e, 0xbd, 0xb4, 0xb1, 0x77, 0x79, 0x4c, 0xc9, 0x34, 0xd9, 0x4f, 0xd2, 0xff, 0x16, + 0x6e, 0xeb, 0xd7, 0xb1, 0x4d, 0xf8, 0x73, 0x07, 0xf7, 0x7f, 0x91, 0x51, 0x52, 0x84, 0x5c, 0x4b, + 0x3c, 0x10, 0x6b, 0x8b, 0x8d, 0x16, 0xef, 0x06, 0xf4, 0x1b, 0xeb, 0xd0, 0x38, 0x1b, 0x2d, 0xd1, + 0x89, 0x2c, 0xe6, 0xbf, 0xd1, 0x13, 0x9e, 0xe7, 0x9a, 0xef, 0x77, 0x16, 0x43, 0x1d, 0x60, 0x39, + 0x8c, 0x31, 0xe1, 0xc1, 0xa2, 0x55, 0x28, 0xb6, 0x75, 0xc7, 0x55, 0x1d, 0x43, 0xb3, 0x9c, 0x5d, + 0xd3, 0x75, 0x68, 0x32, 0x20, 0x7f, 0xf6, 0xbe, 0x61, 0x08, 0xcb, 0xba, 0xe3, 0x36, 0x04, 0xf1, + 0xe5, 0x31, 0x65, 0xbc, 0x1d, 0x2c, 0x20, 0x78, 0xe6, 0xf6, 0x36, 0xb6, 0x3d, 0x40, 0x9a, 0x34, + 0x38, 0x00, 0x6f, 0x8d, 0x50, 0x0b, 0x7e, 0x82, 0x67, 0x06, 0x0b, 0xd0, 0x0f, 0xc2, 0x64, 0xdb, + 0xd4, 0x5a, 0x1e, 0x9c, 0xda, 0xdc, 0xed, 0x1a, 0xd7, 0x68, 0x86, 0x21, 0x7f, 0xf6, 0xd4, 0xd0, + 0x46, 0x9a, 0x5a, 0x4b, 0x40, 0xd4, 0x08, 0xc3, 0xe5, 0x31, 0x65, 0xa2, 0xdd, 0x5b, 0x88, 0xde, + 0x05, 0x53, 0x9a, 0x65, 0xb5, 0xf7, 0x7b, 0xd1, 0x4b, 0x14, 0xfd, 0xf4, 0x30, 0xf4, 0x0a, 0xe1, + 0xe9, 0x85, 0x47, 0x5a, 0x5f, 0x29, 0xda, 0x00, 0xc9, 0xb2, 0x31, 0xfd, 0xc6, 0xc6, 0xe2, 0x2e, + 0x0c, 0xbd, 0x28, 0x2b, 0x7f, 0xf6, 0xc4, 0x30, 0xec, 0x75, 0x46, 0x2f, 0x3c, 0x9e, 0xcb, 0x63, + 0x4a, 0xc9, 0x0a, 0x17, 0x31, 0x54, 0xb3, 0x89, 0xe9, 0x65, 0x4e, 0x1c, 0x75, 0x22, 0x0a, 0x95, + 0xd2, 0x87, 0x51, 0x43, 0x45, 0xd5, 0x0c, 0x3f, 0x23, 0xc7, 0x6f, 0x5a, 0x39, 0x01, 0xf9, 0x80, + 0x61, 0x41, 0xd3, 0x90, 0xe1, 0x67, 0x06, 0xc4, 0xd9, 0x3a, 0xfe, 0x28, 0x17, 0xa1, 0x10, 0x34, + 0x26, 0xf2, 0x07, 0x62, 0x1e, 0x27, 0xfd, 0xf4, 0x7d, 0x3a, 0x9c, 0x52, 0xcc, 0xf9, 0xd9, 0xc2, + 0x7b, 0xc4, 0x2a, 0x22, 0xea, 0xd9, 0x2e, 0x53, 0x81, 0x16, 0xf2, 0x45, 0x0c, 0xcd, 0x42, 0xde, + 0x3a, 0x6b, 0x79, 0x24, 0x09, 0x4a, 0x02, 0xd6, 0x59, 0x4b, 0x10, 0xdc, 0x0d, 0x05, 0xd2, 0x53, + 0x35, 0xe8, 0x6d, 0xe4, 0x94, 0x3c, 0x29, 0xe3, 0x24, 0xf2, 0xbf, 0x8d, 0x83, 0xd4, 0x6b, 0x80, + 0xbc, 0x5c, 0x63, 0xec, 0xd0, 0xb9, 0xc6, 0x63, 0xbd, 0x59, 0x4e, 0x3f, 0xb1, 0xb9, 0x0c, 0x92, + 0x9f, 0x9f, 0x63, 0x0b, 0xc1, 0x70, 0xef, 0xa9, 0xc7, 0xcd, 0x53, 0x4a, 0xcd, 0x1e, 0xbf, 0xef, + 0x62, 0x68, 0x4f, 0x46, 0x5c, 0xd5, 0xdd, 0x3b, 0xc4, 0x9e, 0xbf, 0xb0, 0x69, 0xb5, 0x34, 0x17, + 0x8b, 0x7c, 0x49, 0x60, 0x7b, 0xe6, 0x7e, 0x28, 0x69, 0x96, 0xa5, 0x3a, 0xae, 0xe6, 0x62, 0xbe, + 0xac, 0xa7, 0x58, 0xda, 0x50, 0xb3, 0xac, 0x06, 0x29, 0x65, 0xcb, 0xfa, 0x7d, 0x50, 0x24, 0x36, + 0x59, 0xd7, 0xda, 0x2a, 0xcf, 0x1e, 0xa4, 0xd9, 0xea, 0xcf, 0x4b, 0x2f, 0xd3, 0x42, 0xb9, 0xe5, + 0x8d, 0x38, 0xb5, 0xc7, 0x5e, 0xf8, 0x15, 0x0b, 0x84, 0x5f, 0x88, 0xdf, 0x49, 0xc0, 0xe4, 0x23, + 0xae, 0x71, 0x18, 0x9c, 0xf5, 0x9d, 0xa2, 0xa1, 0xda, 0x75, 0x96, 0x08, 0xc9, 0x2a, 0xec, 0x41, + 0x7e, 0x6f, 0x1c, 0x26, 0xfa, 0x2c, 0xf7, 0xc0, 0x74, 0xb8, 0x1f, 0x77, 0xc6, 0x0f, 0x15, 0x77, + 0x3e, 0x13, 0x4e, 0xf7, 0x06, 0x56, 0xbe, 0xe3, 0x7d, 0x42, 0x66, 0x76, 0x93, 0x28, 0x34, 0x07, + 0x09, 0x64, 0x84, 0xa9, 0x9a, 0x6f, 0xc2, 0xd4, 0xd6, 0xfe, 0x4b, 0x9a, 0xe1, 0xea, 0x06, 0x56, + 0xfb, 0x46, 0xad, 0x7f, 0x29, 0x5d, 0xd1, 0x9d, 0x2d, 0xbc, 0xab, 0x5d, 0xd7, 0x4d, 0xd1, 0xac, + 0x49, 0x8f, 0xdf, 0x4f, 0xfa, 0xca, 0x0a, 0x14, 0xc3, 0x4b, 0x0f, 0x2a, 0x42, 0xdc, 0xdd, 0xe3, + 0xfd, 0x8f, 0xbb, 0x7b, 0xe8, 0x61, 0x9e, 0x1f, 0x8a, 0xd3, 0xfc, 0x50, 0xff, 0x8b, 0x38, 0x9f, + 0x9f, 0x1c, 0x92, 0x65, 0x6f, 0x36, 0x78, 0xcb, 0x51, 0x2f, 0xaa, 0x7c, 0x0a, 0x4a, 0x3d, 0xeb, + 0xcd, 0xb0, 0x6c, 0xa1, 0x5c, 0x82, 0xf1, 0xd0, 0xe2, 0x22, 0x1f, 0x81, 0xa9, 0x41, 0x6b, 0x85, + 0xbc, 0xeb, 0x95, 0x87, 0x6c, 0x3e, 0x3a, 0x07, 0x59, 0x6f, 0xb1, 0x18, 0x90, 0x9d, 0xa0, 0xbd, + 0x10, 0xc4, 0x8a, 0x47, 0x1a, 0x4a, 0x72, 0xc7, 0x43, 0x49, 0x6e, 0xf9, 0xdd, 0x30, 0x3d, 0x6c, + 0x21, 0xe8, 0xe9, 0x46, 0xd2, 0xd3, 0xc2, 0x23, 0x90, 0xe6, 0x37, 0xb6, 0xc5, 0xe9, 0xb6, 0x0e, + 0x7f, 0x22, 0xda, 0xc9, 0x16, 0x85, 0x04, 0xdb, 0xed, 0xa1, 0x0f, 0xb2, 0x0a, 0xc7, 0x86, 0x2e, + 0x06, 0xc3, 0x37, 0x88, 0x18, 0x10, 0xdf, 0x20, 0x6a, 0x8a, 0xe6, 0x38, 0xb4, 0xaf, 0xe2, 0x10, + 0x04, 0x7b, 0x92, 0x3f, 0x9c, 0x80, 0x23, 0x83, 0x97, 0x04, 0x34, 0x07, 0x05, 0xe2, 0x77, 0xbb, + 0x61, 0x17, 0x1d, 0x3a, 0xda, 0xde, 0x06, 0xf7, 0xcf, 0x79, 0x82, 0x3d, 0xee, 0x25, 0xd8, 0xd1, + 0x26, 0x4c, 0xb4, 0xcd, 0xa6, 0xd6, 0x56, 0x03, 0x1a, 0xcf, 0x95, 0xfd, 0x9e, 0x3e, 0x61, 0xd7, + 0xd9, 0x3d, 0xce, 0xad, 0x3e, 0xa5, 0x2f, 0x51, 0x8c, 0x65, 0x4f, 0xf3, 0xd1, 0x22, 0xe4, 0x3b, + 0xbe, 0x22, 0x1f, 0x42, 0xd9, 0x83, 0x6c, 0x81, 0x21, 0x49, 0x0d, 0xdc, 0x0e, 0x4a, 0x1f, 0xda, + 0x44, 0x0f, 0xdb, 0x59, 0xc9, 0x0c, 0xdd, 0x59, 0x19, 0xb4, 0x8d, 0x91, 0x1d, 0xbc, 0x8d, 0xf1, + 0xbe, 0xe0, 0xd0, 0x84, 0x16, 0xd1, 0xfe, 0x9d, 0x0d, 0xd4, 0x80, 0x29, 0xce, 0xdf, 0x0a, 0xc9, + 0x3e, 0x3e, 0xaa, 0xa1, 0x41, 0x82, 0x7d, 0xb8, 0xd8, 0x13, 0xb7, 0x27, 0x76, 0x61, 0x4b, 0x93, + 0x01, 0x5b, 0xfa, 0xff, 0xd9, 0x50, 0xfc, 0xfb, 0x1c, 0x64, 0x15, 0xec, 0x58, 0x64, 0xe1, 0x44, + 0x55, 0xc8, 0xe1, 0xbd, 0x26, 0xb6, 0x5c, 0x7f, 0xfb, 0x72, 0x50, 0x30, 0xc0, 0xa8, 0xeb, 0x82, + 0x92, 0x78, 0xe2, 0x1e, 0x1b, 0x7a, 0x94, 0x07, 0x5b, 0xc3, 0xe3, 0x26, 0xce, 0x1e, 0x8c, 0xb6, + 0xce, 0x8b, 0x68, 0x2b, 0x31, 0xd4, 0xf9, 0x66, 0x5c, 0x3d, 0xe1, 0xd6, 0xa3, 0x3c, 0xdc, 0x4a, + 0x46, 0xbc, 0x2c, 0x14, 0x6f, 0xd5, 0x42, 0xf1, 0x56, 0x3a, 0xa2, 0x9b, 0x43, 0x02, 0xae, 0xf3, + 0x22, 0xe0, 0xca, 0x44, 0xb4, 0xb8, 0x27, 0xe2, 0xba, 0x18, 0x8e, 0xb8, 0xb2, 0x43, 0x0c, 0x88, + 0xe0, 0x1e, 0x1a, 0x72, 0x3d, 0x15, 0x08, 0xb9, 0x72, 0x43, 0xe3, 0x1d, 0x06, 0x32, 0x20, 0xe6, + 0xaa, 0x85, 0x62, 0x2e, 0x88, 0x90, 0xc1, 0x90, 0xa0, 0xeb, 0x07, 0x82, 0x41, 0x57, 0x7e, 0x68, + 0xdc, 0xc6, 0xc7, 0x7b, 0x50, 0xd4, 0xf5, 0xa4, 0x17, 0x75, 0x15, 0x86, 0x86, 0x8d, 0xbc, 0x0f, + 0xbd, 0x61, 0xd7, 0x5a, 0x5f, 0xd8, 0x35, 0xce, 0xff, 0x44, 0xc2, 0x30, 0x88, 0x88, 0xb8, 0x6b, + 0xad, 0x2f, 0xee, 0x2a, 0x46, 0x00, 0x46, 0x04, 0x5e, 0x3f, 0x34, 0x38, 0xf0, 0x1a, 0x1e, 0x1a, + 0xf1, 0x66, 0x8e, 0x16, 0x79, 0xa9, 0x43, 0x22, 0x2f, 0x16, 0x1d, 0x3d, 0x30, 0x14, 0x7e, 0xe4, + 0xd0, 0x6b, 0x73, 0x40, 0xe8, 0xc5, 0x82, 0xa4, 0x93, 0x43, 0xc1, 0x47, 0x88, 0xbd, 0x36, 0x07, + 0xc4, 0x5e, 0x28, 0x12, 0xf6, 0x30, 0xc1, 0x57, 0x4a, 0x4a, 0xcb, 0xa7, 0x88, 0xeb, 0xdb, 0x63, + 0xa7, 0x88, 0xff, 0x80, 0x6d, 0xdb, 0xb4, 0xc5, 0x89, 0x5b, 0xfa, 0x20, 0x9f, 0x24, 0xce, 0xb8, + 0x6f, 0x93, 0x0e, 0x08, 0xd4, 0xa8, 0x9f, 0x16, 0xb0, 0x43, 0xf2, 0x17, 0x63, 0x3e, 0x2f, 0xf5, + 0x61, 0x83, 0x8e, 0x7c, 0x8e, 0x3b, 0xf2, 0x81, 0xf0, 0x2d, 0x1e, 0x0e, 0xdf, 0x66, 0x21, 0x4f, + 0xfc, 0xaf, 0x9e, 0xc8, 0x4c, 0xb3, 0xbc, 0xc8, 0x4c, 0x1c, 0x35, 0x60, 0x41, 0x1e, 0x5f, 0x56, + 0xd8, 0x0e, 0x4f, 0xc9, 0x3b, 0x76, 0xc1, 0x62, 0x0a, 0xf4, 0x10, 0x4c, 0x06, 0x68, 0x3d, 0xbf, + 0x8e, 0x85, 0x29, 0x92, 0x47, 0x5d, 0xe1, 0x0e, 0xde, 0xbf, 0x88, 0xf9, 0x12, 0xf2, 0x43, 0xba, + 0x41, 0xd1, 0x57, 0xec, 0x0d, 0x8a, 0xbe, 0xe2, 0xb7, 0x1d, 0x7d, 0x05, 0xfd, 0xd4, 0x44, 0xd8, + 0x4f, 0xfd, 0x9f, 0x31, 0x7f, 0x4c, 0xbc, 0x58, 0xaa, 0x69, 0xb6, 0x30, 0xf7, 0x1c, 0xe9, 0x6f, + 0xe2, 0x54, 0xb4, 0xcd, 0x1d, 0xee, 0x1f, 0x92, 0x9f, 0x84, 0xca, 0x5b, 0x38, 0x72, 0x7c, 0x5d, + 0xf0, 0x9c, 0xce, 0x54, 0xf0, 0x5c, 0x30, 0x3f, 0x2c, 0x9b, 0xf6, 0x0f, 0xcb, 0x7a, 0xdf, 0xc2, + 0x65, 0x02, 0xdf, 0xc2, 0xa1, 0x27, 0x20, 0x47, 0x33, 0xa2, 0xaa, 0x69, 0x89, 0x3f, 0xa8, 0x71, + 0x7c, 0xf8, 0x41, 0x59, 0x87, 0x1e, 0xe1, 0x63, 0x87, 0x6b, 0x7d, 0x8f, 0x21, 0x17, 0xf2, 0x18, + 0xee, 0x84, 0x1c, 0x69, 0x3d, 0xbb, 0x18, 0x1a, 0xf8, 0x87, 0x94, 0xa2, 0x40, 0x7e, 0x17, 0xa0, + 0xfe, 0x45, 0x02, 0x5d, 0x86, 0x34, 0xbe, 0x4e, 0x6f, 0xd9, 0x63, 0x07, 0x10, 0x8f, 0xf4, 0xbb, + 0xa6, 0xa4, 0xba, 0x3a, 0x4d, 0x84, 0xfc, 0xad, 0x57, 0x67, 0x25, 0x46, 0xfd, 0xa0, 0xf7, 0xdd, + 0x80, 0xc2, 0xf9, 0xe5, 0xff, 0x1c, 0x27, 0x01, 0x4c, 0x68, 0x01, 0x19, 0x28, 0xdb, 0x41, 0x5b, + 0x87, 0xa3, 0xc9, 0x7b, 0x06, 0x60, 0x47, 0x73, 0xd4, 0x1b, 0x9a, 0xe1, 0xe2, 0x16, 0x17, 0x7a, + 0xa0, 0x04, 0x95, 0x21, 0x4b, 0x9e, 0xba, 0x0e, 0x6e, 0xf1, 0x30, 0xda, 0x7b, 0x0e, 0xf4, 0x33, + 0xf3, 0xbd, 0xf5, 0x33, 0x2c, 0xe5, 0x6c, 0x8f, 0x94, 0x03, 0xc1, 0x45, 0x2e, 0x18, 0x5c, 0xb0, + 0x03, 0xc3, 0xfc, 0xdc, 0x22, 0xb0, 0xb6, 0x89, 0x67, 0x74, 0x0f, 0x8c, 0x77, 0x70, 0xc7, 0x32, + 0xcd, 0xb6, 0xca, 0xcc, 0x0d, 0xbb, 0x01, 0xbe, 0xc0, 0x0b, 0xeb, 0xd4, 0xea, 0xfc, 0x58, 0xdc, + 0x9f, 0x7f, 0x7e, 0x10, 0xf9, 0x7d, 0x27, 0x60, 0xf9, 0x27, 0x68, 0x66, 0x29, 0xec, 0x22, 0xa0, + 0x46, 0xf0, 0x34, 0x49, 0x97, 0x9a, 0x05, 0xa1, 0xd0, 0xa3, 0xda, 0x0f, 0xff, 0xd4, 0x09, 0x2b, + 0x76, 0xd0, 0xf3, 0x70, 0xb4, 0xc7, 0xb6, 0x79, 0xd0, 0xf1, 0x51, 0x4d, 0xdc, 0x1d, 0x61, 0x13, + 0x27, 0xa0, 0x7d, 0x61, 0x25, 0xbe, 0xc7, 0x59, 0xb7, 0x04, 0xc5, 0xb0, 0xc7, 0x33, 0x70, 0xf8, + 0xe9, 0x5f, 0x1c, 0x71, 0x35, 0xdd, 0x50, 0x43, 0xe9, 0xa0, 0x02, 0x2b, 0xe4, 0x49, 0xa6, 0x75, + 0xb8, 0x63, 0xa0, 0xe7, 0x83, 0x1e, 0x87, 0x9c, 0xef, 0x34, 0x31, 0xa9, 0x1e, 0x90, 0x2e, 0xf0, + 0x69, 0xe5, 0xdf, 0x8c, 0xf9, 0x90, 0xe1, 0x04, 0x44, 0x1d, 0xd2, 0xec, 0x38, 0x1c, 0x3f, 0x64, + 0xf3, 0xd0, 0x68, 0x3e, 0xd3, 0x3c, 0x3b, 0x2b, 0xa7, 0x70, 0x66, 0xf9, 0x5d, 0x90, 0x66, 0x25, + 0x28, 0x0f, 0x19, 0xff, 0x22, 0x5c, 0x80, 0x74, 0xa5, 0x56, 0xab, 0xaf, 0x6f, 0x48, 0x31, 0x94, + 0x83, 0x54, 0xa5, 0xba, 0xa6, 0x6c, 0x48, 0x71, 0x52, 0xac, 0xd4, 0xaf, 0xd4, 0x6b, 0x1b, 0x52, + 0x02, 0x4d, 0xc0, 0x38, 0xfb, 0xad, 0x5e, 0x5c, 0x53, 0x56, 0x2a, 0x1b, 0x52, 0x32, 0x50, 0xd4, + 0xa8, 0xaf, 0x2e, 0xd6, 0x15, 0x29, 0x25, 0x3f, 0x02, 0xc7, 0x86, 0x7a, 0x59, 0x7e, 0x76, 0x21, + 0x16, 0xc8, 0x2e, 0xc8, 0x1f, 0x8e, 0x43, 0x79, 0xb8, 0xeb, 0x84, 0xae, 0xf4, 0x74, 0xfc, 0xec, + 0x21, 0xfc, 0xae, 0x9e, 0xde, 0xa3, 0xfb, 0xa0, 0x68, 0xe3, 0x6d, 0xec, 0x36, 0x77, 0x99, 0x2b, + 0xc7, 0x96, 0xcc, 0x71, 0x65, 0x9c, 0x97, 0x52, 0x26, 0x87, 0x91, 0xbd, 0x88, 0x9b, 0xae, 0xca, + 0x6c, 0x91, 0xc3, 0xff, 0xf4, 0xe1, 0x38, 0x2b, 0x6d, 0xb0, 0x42, 0xf9, 0xdd, 0x87, 0x92, 0x65, + 0x0e, 0x52, 0x4a, 0x7d, 0x43, 0x79, 0x5e, 0x4a, 0x20, 0x04, 0x45, 0xfa, 0x53, 0x6d, 0xac, 0x56, + 0xd6, 0x1b, 0x97, 0xd7, 0x88, 0x2c, 0x27, 0xa1, 0x24, 0x64, 0x29, 0x0a, 0x53, 0xf2, 0x03, 0x70, + 0x74, 0x88, 0xdf, 0x37, 0xe0, 0x7c, 0xe2, 0xc7, 0x63, 0x41, 0xea, 0x70, 0xcc, 0xbf, 0x06, 0x69, + 0xc7, 0xd5, 0xdc, 0xae, 0xc3, 0x85, 0xf8, 0xf8, 0xa8, 0x8e, 0xe0, 0xbc, 0xf8, 0xd1, 0xa0, 0xec, + 0x0a, 0x87, 0x91, 0xcf, 0x41, 0x31, 0x5c, 0x33, 0x5c, 0x06, 0xbe, 0x12, 0xc5, 0xe5, 0xe7, 0x01, + 0x02, 0xf9, 0x48, 0xef, 0xa4, 0x57, 0x2c, 0x78, 0xd2, 0xeb, 0x1c, 0xa4, 0xae, 0x9b, 0xcc, 0x66, + 0x0c, 0x9e, 0x38, 0x57, 0x4d, 0x17, 0x07, 0x92, 0x0f, 0x8c, 0x5a, 0xd6, 0x01, 0xf5, 0xe7, 0x84, + 0x86, 0xbc, 0xe2, 0xa9, 0xf0, 0x2b, 0xee, 0x1e, 0x9a, 0x5d, 0x1a, 0xfc, 0xaa, 0x97, 0x20, 0x45, + 0xad, 0xcd, 0xc0, 0x4f, 0x7f, 0xde, 0x09, 0xa0, 0xb9, 0xae, 0xad, 0x6f, 0x75, 0xfd, 0x17, 0xcc, + 0x0e, 0xb6, 0x56, 0x15, 0x41, 0x57, 0xbd, 0x93, 0x9b, 0xad, 0x29, 0x9f, 0x35, 0x60, 0xba, 0x02, + 0x80, 0xf2, 0x2a, 0x14, 0xc3, 0xbc, 0x83, 0x3f, 0x65, 0xf2, 0xaf, 0x12, 0xc8, 0x09, 0xf7, 0xc9, + 0x73, 0xbe, 0xf8, 0xf5, 0x1e, 0xf4, 0x41, 0xbe, 0x19, 0x83, 0xec, 0xc6, 0x1e, 0xd7, 0xe3, 0x03, + 0x0e, 0x5b, 0xfa, 0xdf, 0x73, 0x79, 0xc9, 0x42, 0x96, 0x8f, 0x4d, 0x78, 0x59, 0xde, 0x1f, 0xf0, + 0x66, 0x6a, 0x72, 0xd4, 0x68, 0x57, 0x64, 0xbb, 0xb9, 0x75, 0xba, 0x30, 0xda, 0xb7, 0x13, 0x53, + 0x90, 0x0a, 0x7e, 0xf7, 0xc0, 0x1e, 0xe4, 0x56, 0xe0, 0x58, 0x02, 0x5b, 0x36, 0x82, 0x1f, 0x59, + 0xc4, 0x0e, 0xfd, 0x91, 0x85, 0xf7, 0x96, 0x78, 0xf0, 0x2d, 0xd7, 0x21, 0x2b, 0x94, 0x02, 0xbd, + 0x3d, 0x78, 0x00, 0x45, 0xec, 0xd1, 0x0c, 0x5d, 0x3c, 0x39, 0x7c, 0xe0, 0xfc, 0xc9, 0x69, 0x98, + 0xe0, 0x47, 0xf1, 0xfc, 0xb8, 0x82, 0x5f, 0xd5, 0x5f, 0x62, 0x15, 0xcb, 0x22, 0xa8, 0x90, 0x7f, + 0x21, 0x06, 0x52, 0xaf, 0x56, 0xbe, 0x95, 0x0d, 0x20, 0x46, 0x91, 0x68, 0x7f, 0xe0, 0x0e, 0x6e, + 0x36, 0xf2, 0xe3, 0xa4, 0xd4, 0xbf, 0x85, 0xfb, 0xbd, 0x71, 0xc8, 0x07, 0x72, 0x7a, 0xe8, 0xb1, + 0xd0, 0xd1, 0xd0, 0xb9, 0x83, 0xf2, 0x7f, 0x81, 0xb3, 0xa1, 0xa1, 0x8e, 0xc5, 0x0f, 0xdf, 0xb1, + 0x37, 0xfe, 0xf0, 0xfe, 0xe0, 0xaf, 0x80, 0x52, 0x43, 0xbe, 0x02, 0xfa, 0x91, 0x18, 0x64, 0xbd, + 0xa5, 0xfb, 0xb0, 0xd9, 0xfc, 0x23, 0x90, 0xe6, 0xab, 0x13, 0x4b, 0xe7, 0xf3, 0xa7, 0x81, 0xb9, + 0xd0, 0x32, 0x64, 0xc5, 0xdf, 0xb8, 0xe1, 0x81, 0xa8, 0xf7, 0x7c, 0xfa, 0x49, 0xc8, 0x07, 0x36, + 0x56, 0x88, 0x9d, 0x58, 0xad, 0x3f, 0x2b, 0x8d, 0x95, 0x33, 0x37, 0x6f, 0xcd, 0x25, 0x56, 0xf1, + 0x0d, 0x32, 0xc3, 0x94, 0x7a, 0xed, 0x72, 0xbd, 0xf6, 0x8c, 0x14, 0x2b, 0xe7, 0x6f, 0xde, 0x9a, + 0xcb, 0x28, 0x98, 0xa6, 0xaf, 0x4e, 0x3f, 0x03, 0xa5, 0x9e, 0x81, 0x09, 0xdb, 0x77, 0x04, 0xc5, + 0xc5, 0xcd, 0xf5, 0xe5, 0xa5, 0x5a, 0x65, 0xa3, 0xae, 0xb2, 0x63, 0x76, 0xe8, 0x28, 0x4c, 0x2e, + 0x2f, 0x5d, 0xba, 0xbc, 0xa1, 0xd6, 0x96, 0x97, 0xea, 0xab, 0x1b, 0x6a, 0x65, 0x63, 0xa3, 0x52, + 0x7b, 0x46, 0x8a, 0x9f, 0xfd, 0x2e, 0x40, 0xa9, 0x52, 0xad, 0x2d, 0x91, 0xf5, 0x59, 0xe7, 0xd7, + 0xa8, 0xd7, 0x20, 0x49, 0x53, 0x01, 0x07, 0x1e, 0x15, 0x29, 0x1f, 0x9c, 0xdb, 0x44, 0x17, 0x21, + 0x45, 0xb3, 0x04, 0xe8, 0xe0, 0xb3, 0x23, 0xe5, 0x88, 0x64, 0x27, 0x69, 0x0c, 0x9d, 0x4e, 0x07, + 0x1e, 0x26, 0x29, 0x1f, 0x9c, 0xfb, 0x44, 0x0a, 0xe4, 0xfc, 0x28, 0x23, 0xfa, 0x70, 0x45, 0x79, + 0x04, 0xeb, 0x88, 0x96, 0x21, 0x23, 0x02, 0xc3, 0xa8, 0xe3, 0x1e, 0xe5, 0xc8, 0xe4, 0x24, 0x11, + 0x17, 0x0b, 0xe0, 0x0f, 0x3e, 0xbb, 0x52, 0x8e, 0xc8, 0xb4, 0xa2, 0x25, 0xef, 0x70, 0x7e, 0xc4, + 0x11, 0x8e, 0x72, 0x54, 0xb2, 0x91, 0x08, 0xcd, 0x4f, 0x8d, 0x44, 0x9f, 0xc8, 0x29, 0x8f, 0x90, + 0x44, 0x46, 0x9b, 0x00, 0x81, 0x70, 0x7d, 0x84, 0xa3, 0x36, 0xe5, 0x51, 0x92, 0xc3, 0x68, 0x0d, + 0xb2, 0x5e, 0xf4, 0x14, 0x79, 0xf0, 0xa5, 0x1c, 0x9d, 0xa5, 0x45, 0xef, 0x82, 0xf1, 0x70, 0xd4, + 0x30, 0xda, 0x71, 0x96, 0xf2, 0x88, 0xe9, 0x57, 0x82, 0x1f, 0x0e, 0x21, 0x46, 0x3b, 0xde, 0x52, + 0x1e, 0x31, 0x1b, 0x8b, 0x5e, 0x84, 0x89, 0x7e, 0x17, 0x7f, 0xf4, 0xd3, 0x2e, 0xe5, 0x43, 0xe4, + 0x67, 0x51, 0x07, 0xd0, 0x80, 0xd0, 0xe0, 0x10, 0x87, 0x5f, 0xca, 0x87, 0x49, 0xd7, 0xa2, 0x16, + 0x94, 0x7a, 0xfd, 0xed, 0x51, 0x0f, 0xc3, 0x94, 0x47, 0x4e, 0xdd, 0xb2, 0xb7, 0x84, 0xfd, 0xf4, + 0x51, 0x0f, 0xc7, 0x94, 0x47, 0xce, 0xe4, 0x56, 0x2b, 0x43, 0xcf, 0x37, 0x9e, 0x38, 0xf0, 0x7c, + 0xa3, 0x7f, 0x62, 0xd1, 0x3b, 0xd3, 0xf8, 0x87, 0x0f, 0xc3, 0xbd, 0xfc, 0x92, 0x01, 0xc7, 0xd5, + 0xae, 0xe9, 0xc6, 0x8e, 0x77, 0x6b, 0x04, 0x7f, 0xe6, 0x87, 0x1b, 0x8f, 0xf0, 0x8b, 0x0c, 0x44, + 0x69, 0xc4, 0xdd, 0x11, 0x43, 0xef, 0xd1, 0x8a, 0x3a, 0x89, 0x1c, 0x7d, 0x74, 0xf1, 0x80, 0x7b, + 0x29, 0x22, 0x6e, 0xbf, 0x18, 0x74, 0x5c, 0xfa, 0xe0, 0x43, 0x98, 0x07, 0x9d, 0xf7, 0x94, 0x3f, + 0x14, 0x83, 0xe2, 0x65, 0xdd, 0x71, 0x4d, 0x5b, 0x6f, 0x6a, 0x6d, 0xba, 0x62, 0x5c, 0x18, 0xf5, + 0xe3, 0x8f, 0x6a, 0x8e, 0x38, 0x23, 0xfc, 0xb2, 0x0b, 0x7e, 0x30, 0x64, 0x11, 0xd2, 0xd7, 0xb5, + 0x36, 0xfb, 0xf4, 0x22, 0x78, 0x9d, 0x4d, 0xaf, 0xcc, 0x03, 0x5e, 0x52, 0x10, 0x85, 0xf1, 0xca, + 0x5f, 0xa0, 0x27, 0xb9, 0x3b, 0x1d, 0xdd, 0x61, 0x7f, 0x85, 0xda, 0xc5, 0x0e, 0xda, 0x84, 0xa4, + 0xad, 0xb9, 0x3c, 0xa8, 0xa9, 0x56, 0xf8, 0x15, 0x15, 0xf7, 0x47, 0x5f, 0x34, 0x31, 0xdf, 0x77, + 0x8b, 0x05, 0x7b, 0x19, 0x85, 0x43, 0x3f, 0x04, 0xd9, 0x8e, 0xb6, 0xa7, 0x52, 0xe8, 0xf8, 0x1b, + 0x05, 0x9d, 0xe9, 0x68, 0x7b, 0xa4, 0xd5, 0x48, 0x87, 0x12, 0x41, 0x6f, 0xee, 0x6a, 0xc6, 0x0e, + 0x66, 0x2f, 0x49, 0xbc, 0x51, 0x2f, 0x19, 0xef, 0x68, 0x7b, 0x35, 0x0a, 0x4c, 0x5e, 0xc5, 0x2f, + 0x03, 0xf9, 0xad, 0x18, 0x0f, 0x65, 0xa9, 0xe4, 0x90, 0x06, 0x52, 0xd3, 0x7b, 0xa2, 0xef, 0x17, + 0x69, 0xfd, 0x13, 0xc3, 0x06, 0xa6, 0x47, 0xee, 0xec, 0x48, 0xf6, 0x57, 0x5e, 0x15, 0x47, 0xb2, + 0x4b, 0xcd, 0x9e, 0x71, 0xb9, 0x02, 0x79, 0x96, 0x4d, 0x53, 0xa9, 0x0b, 0x1b, 0x8f, 0x74, 0x61, + 0xc7, 0x85, 0x0b, 0xcb, 0x00, 0x81, 0x71, 0x93, 0x7a, 0xde, 0x87, 0x4f, 0xc7, 0x20, 0xbf, 0x18, + 0xb8, 0xbd, 0x6a, 0x1a, 0x32, 0x1d, 0xd3, 0xd0, 0xaf, 0x61, 0xdb, 0xdb, 0x97, 0x61, 0x8f, 0xc4, + 0xcd, 0x64, 0x7f, 0x85, 0xc8, 0xdd, 0x17, 0x37, 0x34, 0x88, 0x67, 0xc2, 0x75, 0x03, 0x6f, 0x39, + 0xba, 0x10, 0xb9, 0x22, 0x1e, 0xd1, 0x29, 0x90, 0x1c, 0xdc, 0xec, 0xda, 0xba, 0xbb, 0xaf, 0x36, + 0x4d, 0xc3, 0xd5, 0x9a, 0x2e, 0xcf, 0x9e, 0x96, 0x44, 0x79, 0x8d, 0x15, 0x13, 0x90, 0x16, 0x76, + 0x35, 0xbd, 0xcd, 0x8e, 0x7d, 0xe5, 0x14, 0xf1, 0xc8, 0x9b, 0xfa, 0x85, 0x4c, 0x30, 0x34, 0xac, + 0x81, 0x64, 0x5a, 0xd8, 0x0e, 0x7d, 0x0a, 0xc7, 0xd4, 0x75, 0xfa, 0x77, 0x3f, 0xf7, 0xd0, 0x14, + 0x17, 0x38, 0xdf, 0x80, 0x67, 0x97, 0x35, 0x2b, 0x25, 0xc1, 0x21, 0xbe, 0x91, 0x7b, 0x3e, 0xb4, + 0x13, 0xd3, 0xdd, 0xf2, 0x3f, 0xc5, 0x9f, 0xea, 0x13, 0x6a, 0xc5, 0xd8, 0xaf, 0x4e, 0xff, 0x8e, + 0x0f, 0xed, 0x87, 0x8e, 0xcf, 0xe0, 0xfd, 0xe0, 0xb6, 0x0c, 0x85, 0x21, 0x1e, 0xfc, 0x8b, 0x9a, + 0xde, 0x16, 0x7f, 0x58, 0x4d, 0xe1, 0x4f, 0x68, 0xc1, 0x4b, 0xc3, 0xb0, 0x3f, 0x98, 0x2e, 0x0f, + 0xd3, 0x8d, 0xaa, 0x69, 0xb4, 0xc2, 0x19, 0x17, 0xb4, 0x01, 0x69, 0xd7, 0xbc, 0x86, 0x0d, 0x2e, + 0xa0, 0xea, 0xdb, 0x0e, 0xa1, 0xd8, 0xfd, 0xf7, 0xd2, 0x70, 0x2c, 0xb4, 0x03, 0x52, 0x0b, 0xb7, + 0xf1, 0x0e, 0xfb, 0x90, 0x6b, 0x57, 0xb3, 0x31, 0xfb, 0xb8, 0xf3, 0x70, 0xf8, 0xfd, 0xd7, 0xd7, + 0x94, 0x3c, 0xd4, 0x06, 0x05, 0x45, 0xeb, 0xe1, 0xbb, 0xd3, 0x32, 0x7c, 0x57, 0x7e, 0x48, 0xff, + 0x03, 0x5a, 0x19, 0x34, 0x5b, 0xa1, 0xbb, 0xd6, 0x4e, 0x81, 0xd4, 0x35, 0xb6, 0x4c, 0x83, 0xfe, + 0x0d, 0x24, 0x1e, 0x60, 0x65, 0xd9, 0xce, 0x9d, 0x57, 0xce, 0x77, 0xee, 0xd6, 0xa1, 0xe8, 0x93, + 0xd2, 0xd9, 0x93, 0x3b, 0xec, 0xec, 0x19, 0xf7, 0x00, 0x08, 0x09, 0x5a, 0x01, 0xf0, 0xe7, 0xa7, + 0xb7, 0xbb, 0x1f, 0x39, 0xd3, 0x83, 0x9d, 0x09, 0x00, 0xa0, 0x36, 0x4c, 0x76, 0x74, 0x43, 0x75, + 0x70, 0x7b, 0x5b, 0xe5, 0x92, 0x23, 0xb8, 0xf9, 0x37, 0x60, 0xa4, 0x27, 0x3a, 0xba, 0xd1, 0xc0, + 0xed, 0xed, 0x45, 0x0f, 0x16, 0xbd, 0x0d, 0x8e, 0xfb, 0xe2, 0x30, 0x0d, 0x75, 0xd7, 0x6c, 0xb7, + 0x54, 0x1b, 0x6f, 0xab, 0x4d, 0x7a, 0x2d, 0x52, 0x81, 0x0a, 0xf1, 0xa8, 0x47, 0xb2, 0x66, 0x5c, + 0x36, 0xdb, 0x2d, 0x05, 0x6f, 0xd7, 0x48, 0x35, 0xba, 0x07, 0x7c, 0x59, 0xa8, 0x7a, 0xcb, 0x99, + 0x1e, 0x9f, 0x4b, 0x9c, 0x4c, 0x2a, 0x05, 0xaf, 0x70, 0xa9, 0xe5, 0x2c, 0x64, 0xdf, 0xf7, 0xca, + 0xec, 0xd8, 0x37, 0x5f, 0x99, 0x1d, 0x93, 0x2f, 0xd2, 0x4b, 0x3c, 0xf8, 0xa4, 0xc3, 0x0e, 0x3a, + 0x0f, 0x39, 0x4d, 0x3c, 0xb0, 0xcf, 0x44, 0x0e, 0x98, 0xb4, 0x3e, 0xa9, 0xfc, 0x4a, 0x0c, 0xd2, + 0x8b, 0x57, 0xd7, 0x35, 0xdd, 0x46, 0x75, 0x98, 0xf0, 0x95, 0x76, 0xd4, 0xf9, 0xef, 0xeb, 0xb9, + 0x30, 0x00, 0xf5, 0x61, 0x5f, 0xd4, 0x1e, 0x08, 0xd3, 0xfb, 0xad, 0x6d, 0xa0, 0xab, 0x57, 0x20, + 0xc3, 0x5a, 0xe8, 0xa0, 0xa7, 0x21, 0x65, 0x91, 0x1f, 0x3c, 0xfb, 0x3f, 0x33, 0x54, 0xd1, 0x29, + 0x7d, 0x50, 0x2d, 0x18, 0x9f, 0xfc, 0x97, 0x31, 0x80, 0xc5, 0xab, 0x57, 0x37, 0x6c, 0xdd, 0x6a, + 0x63, 0xf7, 0x8d, 0xea, 0xf2, 0x32, 0xdc, 0x11, 0xf8, 0x6e, 0xd3, 0x6e, 0x8e, 0xdc, 0xed, 0x49, + 0xff, 0xcb, 0x4d, 0xbb, 0x39, 0x10, 0xad, 0xe5, 0xb8, 0x1e, 0x5a, 0x62, 0x64, 0xb4, 0x45, 0xc7, + 0xed, 0x97, 0xe3, 0x73, 0x90, 0xf7, 0xbb, 0xee, 0xa0, 0x25, 0xc8, 0xba, 0xfc, 0x37, 0x17, 0xa7, + 0x3c, 0x5c, 0x9c, 0x82, 0x2d, 0x28, 0x52, 0x8f, 0x5d, 0xfe, 0xdf, 0x44, 0xaa, 0xfe, 0x44, 0xf8, + 0x6b, 0xa5, 0x48, 0xc4, 0xc2, 0x73, 0x0b, 0x9c, 0x78, 0x03, 0x2c, 0x30, 0xc7, 0x0a, 0x88, 0xf5, + 0x47, 0xe3, 0x30, 0xb9, 0x29, 0x26, 0xe9, 0x5f, 0x5b, 0x29, 0x6c, 0x42, 0x06, 0x1b, 0xae, 0xad, + 0x63, 0xb1, 0xd5, 0xf7, 0xf0, 0xb0, 0xc1, 0x1e, 0xd0, 0x17, 0xfa, 0x97, 0x81, 0x83, 0x43, 0x2f, + 0xb0, 0x02, 0x62, 0xf8, 0x8d, 0x04, 0x4c, 0x0f, 0x63, 0x45, 0x27, 0xa0, 0xd4, 0xb4, 0x31, 0x2d, + 0x50, 0x43, 0xa9, 0xf0, 0xa2, 0x28, 0xe6, 0x4b, 0x8a, 0x02, 0xc4, 0x41, 0x23, 0x5a, 0x45, 0x48, + 0x6f, 0xcf, 0x23, 0x2b, 0xfa, 0x08, 0x74, 0x51, 0xc1, 0x50, 0x12, 0x67, 0xdb, 0xb7, 0xb4, 0xb6, + 0x66, 0x34, 0xf1, 0x6d, 0x68, 0x42, 0xff, 0x0a, 0x20, 0x0e, 0xcc, 0x57, 0x19, 0x26, 0xba, 0x0a, + 0x19, 0x01, 0x9f, 0x7c, 0x03, 0xe0, 0x05, 0x18, 0xba, 0x1b, 0x0a, 0xc1, 0x85, 0x81, 0xfa, 0x29, + 0x49, 0x25, 0x1f, 0x58, 0x17, 0xa2, 0x56, 0x9e, 0xf4, 0x81, 0x2b, 0x0f, 0x77, 0x05, 0x7f, 0x3d, + 0x01, 0x13, 0x0a, 0x6e, 0x7d, 0x1f, 0x0e, 0xdc, 0x0f, 0x02, 0xb0, 0x49, 0x4d, 0x8c, 0xed, 0x6d, + 0x8c, 0x5d, 0xbf, 0x91, 0xc8, 0x31, 0xbc, 0x45, 0xc7, 0x7d, 0xab, 0x46, 0xef, 0xdf, 0xc4, 0xa1, + 0x10, 0x1c, 0xbd, 0xef, 0x83, 0x95, 0x0d, 0xad, 0xfa, 0x26, 0x8d, 0x9d, 0x3e, 0x3f, 0x35, 0xcc, + 0xa4, 0xf5, 0xe9, 0x75, 0x84, 0x2d, 0xfb, 0x54, 0x02, 0xd2, 0xfc, 0x28, 0xd8, 0x5a, 0x9f, 0x8f, + 0x1b, 0x3b, 0xe4, 0x47, 0xc0, 0x3d, 0x2e, 0xee, 0x7d, 0x50, 0x24, 0x21, 0x75, 0xe8, 0x7c, 0x59, + 0xec, 0xe4, 0x38, 0x0d, 0x87, 0xfd, 0xd3, 0xd0, 0x68, 0x16, 0xf2, 0x84, 0xcc, 0xb7, 0xd9, 0x84, + 0x06, 0x3a, 0xda, 0x5e, 0x9d, 0x95, 0xa0, 0x87, 0x00, 0xed, 0x7a, 0x89, 0x0f, 0xd5, 0x17, 0x04, + 0xa1, 0x9b, 0xf0, 0x6b, 0x04, 0xf9, 0x5d, 0x00, 0xa4, 0x15, 0x2a, 0xbb, 0xb9, 0x93, 0x5f, 0xc3, + 0x4a, 0x4a, 0x16, 0xe9, 0xed, 0x9d, 0x3f, 0x19, 0x63, 0xae, 0x72, 0x4f, 0xb4, 0xcd, 0x83, 0x16, + 0xf5, 0x70, 0xb3, 0xe1, 0x3b, 0xaf, 0xce, 0x96, 0xf7, 0xb5, 0x4e, 0x7b, 0x41, 0x1e, 0x00, 0x29, + 0x0f, 0xca, 0x05, 0x10, 0x6f, 0x3a, 0x1c, 0xb8, 0x2f, 0xdc, 0x4b, 0xf4, 0xfa, 0xe6, 0x37, 0x3e, + 0x73, 0xfa, 0x78, 0xe0, 0x15, 0x7b, 0x5e, 0x86, 0x8c, 0x0d, 0x8f, 0xfc, 0x8b, 0x31, 0x40, 0xfe, + 0x62, 0xe3, 0x9d, 0x07, 0x5f, 0xa1, 0xa7, 0x84, 0x85, 0xbf, 0x1f, 0x3b, 0x38, 0x8e, 0xf0, 0xf9, + 0x43, 0x71, 0x44, 0x60, 0x32, 0xbd, 0xdd, 0x37, 0xed, 0xe2, 0x13, 0xf0, 0x01, 0x77, 0xb8, 0xce, + 0xd7, 0x4c, 0x3d, 0x04, 0x21, 0x98, 0xe8, 0x1c, 0x1d, 0x93, 0x5f, 0x8d, 0xc1, 0xb1, 0x3e, 0x4d, + 0xf4, 0x9a, 0xdc, 0x04, 0x64, 0x07, 0x2a, 0xf9, 0x5f, 0xe7, 0x8f, 0xf1, 0x8f, 0x1d, 0x6f, 0x47, + 0xb1, 0x27, 0xec, 0x3e, 0x73, 0xfe, 0x26, 0xad, 0x51, 0xdc, 0x08, 0xfd, 0x76, 0x0c, 0xa6, 0x82, + 0x2d, 0xf2, 0xfa, 0xd6, 0x80, 0x42, 0xb0, 0x2d, 0xbc, 0x57, 0xf7, 0x8e, 0xd2, 0xab, 0x60, 0x87, + 0x42, 0x20, 0xa4, 0x2f, 0x42, 0xeb, 0x59, 0xae, 0xee, 0x91, 0x91, 0xa5, 0xe4, 0xed, 0x43, 0x0c, + 0x32, 0x03, 0x6c, 0xb0, 0xde, 0x1f, 0x87, 0xe4, 0xba, 0x69, 0xb6, 0xd1, 0x8f, 0xc4, 0x60, 0xc2, + 0x30, 0x5d, 0x95, 0xcc, 0x15, 0xdc, 0x52, 0x79, 0xb2, 0x80, 0x59, 0xd2, 0xab, 0x87, 0x93, 0xde, + 0xb7, 0x5e, 0x9d, 0xed, 0x87, 0x1a, 0x74, 0xf5, 0x6e, 0xc9, 0x30, 0xdd, 0x2a, 0x25, 0xda, 0x60, + 0xf9, 0x84, 0x1b, 0x30, 0x1e, 0x7e, 0x3f, 0x33, 0xbf, 0xca, 0xa1, 0xdf, 0x3f, 0x1e, 0xf9, 0xee, + 0xc2, 0x56, 0xe0, 0xc5, 0xec, 0x02, 0xcc, 0x3f, 0x25, 0x83, 0xfb, 0x3c, 0x48, 0x57, 0x7b, 0x4f, + 0xa6, 0xd5, 0x21, 0x73, 0xd8, 0x43, 0x6e, 0x41, 0x89, 0x73, 0xde, 0xd3, 0x9f, 0x8f, 0x01, 0xf8, + 0xa9, 0x19, 0xf4, 0x20, 0x1c, 0xad, 0xae, 0xad, 0x2e, 0xaa, 0x8d, 0x8d, 0xca, 0xc6, 0x66, 0x23, + 0x7c, 0x4d, 0xbb, 0xb8, 0xa3, 0xc4, 0xb1, 0x70, 0x53, 0xdf, 0xd6, 0x71, 0x0b, 0xdd, 0x0f, 0x53, + 0x61, 0x6a, 0xf2, 0x54, 0x5f, 0x94, 0x62, 0xe5, 0xc2, 0xcd, 0x5b, 0x73, 0x59, 0xe6, 0x92, 0xe2, + 0x16, 0x3a, 0x09, 0x77, 0xf4, 0xd3, 0x2d, 0xad, 0x5e, 0x92, 0xe2, 0xe5, 0xf1, 0x9b, 0xb7, 0xe6, + 0x72, 0x9e, 0xef, 0x8a, 0x64, 0x40, 0x41, 0x4a, 0x8e, 0x97, 0x28, 0xc3, 0xcd, 0x5b, 0x73, 0x69, + 0x36, 0x2c, 0xe5, 0xe4, 0xfb, 0x3e, 0x31, 0x33, 0x76, 0xfa, 0x9d, 0x00, 0x4b, 0xc6, 0xb6, 0xad, + 0xd1, 0xbf, 0x55, 0x8c, 0xca, 0x70, 0x64, 0x69, 0xf5, 0xa2, 0x52, 0xa9, 0x6d, 0x2c, 0xad, 0xad, + 0xf6, 0xdc, 0x2e, 0x1f, 0xae, 0x5b, 0x5c, 0xdb, 0xac, 0x2e, 0xd7, 0xd5, 0xc6, 0xd2, 0xa5, 0x55, + 0xb6, 0xc3, 0x1b, 0xaa, 0x7b, 0x76, 0x75, 0x63, 0x69, 0xa5, 0x2e, 0xc5, 0xab, 0x17, 0x87, 0xee, + 0x31, 0x3c, 0x78, 0xe0, 0x80, 0xfb, 0x56, 0x32, 0xb4, 0xd1, 0xf0, 0xff, 0x02, 0x00, 0x00, 0xff, + 0xff, 0x3e, 0x3f, 0x7e, 0xb8, 0x43, 0x97, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 92526fef7262..0dbd30b210a3 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -345,6 +345,9 @@ func omitEmpty(field protoreflect.FieldDescriptor) bool { dontOmitEmpty := proto.GetExtension(opts, amino.E_DontOmitempty).(bool) return !dontOmitEmpty } + //if field.ContainingOneof() != nil { + // return false + //} // legacy support for gogoproto would need to look something like below. // // if gproto.GetBoolExtension(opts, gogoproto.E_Nullable, true) { From 594632037d88e849f1e6f718a195ed159501cb18 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 13 Feb 2023 12:08:20 -0700 Subject: [PATCH 074/122] oneof tests passing, trying a refactor though --- api/amino/amino.pulsar.go | 61 +- api/cosmos/staking/v1beta1/authz.pulsar.go | 105 +- proto/amino/amino.proto | 6 + proto/cosmos/staking/v1beta1/authz.proto | 5 +- types/tx/amino/amino.pb.go | 63 +- x/staking/types/authz.pb.go | 68 +- x/staking/types/staking.pb.go | 1333 ++++++++++---------- x/tx/aminojson/json_marshal.go | 75 +- 8 files changed, 918 insertions(+), 798 deletions(-) diff --git a/api/amino/amino.pulsar.go b/api/amino/amino.pulsar.go index fd81ce7e04c0..13550ec7b68d 100644 --- a/api/amino/amino.pulsar.go +++ b/api/amino/amino.pulsar.go @@ -70,6 +70,22 @@ var file_amino_amino_proto_extTypes = []protoimpl.ExtensionInfo{ Tag: "varint,11110006,opt,name=embed", Filename: "amino/amino.proto", }, + { + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 11110007, + Name: "amino.oneof_type_name", + Tag: "bytes,11110007,opt,name=oneof_type_name", + Filename: "amino/amino.proto", + }, + { + ExtendedType: (*descriptorpb.OneofOptions)(nil), + ExtensionType: (*string)(nil), + Field: 11110008, + Name: "amino.oneof_field_name", + Tag: "bytes,11110008,opt,name=oneof_field_name", + Filename: "amino/amino.proto", + }, } // Extension fields to descriptorpb.MessageOptions. @@ -151,6 +167,14 @@ var ( E_DontOmitempty = &file_amino_amino_proto_extTypes[4] // optional bool embed = 11110006; E_Embed = &file_amino_amino_proto_extTypes[5] + // optional string oneof_type_name = 11110007; + E_OneofTypeName = &file_amino_amino_proto_extTypes[6] +) + +// Extension fields to descriptorpb.OneofOptions. +var ( + // optional string oneof_field_name = 11110008; + E_OneofFieldName = &file_amino_amino_proto_extTypes[7] ) var File_amino_amino_proto protoreflect.FileDescriptor @@ -184,18 +208,29 @@ var file_amino_amino_proto_rawDesc = []byte{ 0x6d, 0x62, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf6, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x6d, - 0x62, 0x65, 0x64, 0x42, 0x63, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6d, 0x69, 0x6e, 0x6f, - 0x42, 0x0a, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x05, 0x41, - 0x6d, 0x69, 0x6e, 0x6f, 0xca, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0xe2, 0x02, 0x11, 0x41, - 0x6d, 0x69, 0x6e, 0x6f, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xea, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x62, 0x65, 0x64, 0x3a, 0x48, 0x0a, 0x0f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf7, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x4a, 0x0a, + 0x10, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0xf8, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x6e, 0x65, 0x6f, 0x66, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x63, 0x0a, 0x09, 0x63, 0x6f, 0x6d, + 0x2e, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x42, 0x0a, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, + 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0xa2, 0x02, 0x03, 0x41, + 0x58, 0x58, 0xaa, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0xca, 0x02, 0x05, 0x41, 0x6d, 0x69, + 0x6e, 0x6f, 0xe2, 0x02, 0x11, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_amino_amino_proto_goTypes = []interface{}{ (*descriptorpb.MessageOptions)(nil), // 0: google.protobuf.MessageOptions (*descriptorpb.FieldOptions)(nil), // 1: google.protobuf.FieldOptions + (*descriptorpb.OneofOptions)(nil), // 2: google.protobuf.OneofOptions } var file_amino_amino_proto_depIdxs = []int32{ 0, // 0: amino.name:extendee -> google.protobuf.MessageOptions @@ -204,10 +239,12 @@ var file_amino_amino_proto_depIdxs = []int32{ 1, // 3: amino.field_name:extendee -> google.protobuf.FieldOptions 1, // 4: amino.dont_omitempty:extendee -> google.protobuf.FieldOptions 1, // 5: amino.embed:extendee -> google.protobuf.FieldOptions - 6, // [6:6] is the sub-list for method output_type - 6, // [6:6] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 0, // [0:6] is the sub-list for extension extendee + 1, // 6: amino.oneof_type_name:extendee -> google.protobuf.FieldOptions + 2, // 7: amino.oneof_field_name:extendee -> google.protobuf.OneofOptions + 8, // [8:8] is the sub-list for method output_type + 8, // [8:8] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 0, // [0:8] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } @@ -223,7 +260,7 @@ func file_amino_amino_proto_init() { RawDescriptor: file_amino_amino_proto_rawDesc, NumEnums: 0, NumMessages: 0, - NumExtensions: 6, + NumExtensions: 8, NumServices: 0, }, GoTypes: file_amino_amino_proto_goTypes, diff --git a/api/cosmos/staking/v1beta1/authz.pulsar.go b/api/cosmos/staking/v1beta1/authz.pulsar.go index 5502902bf0c6..5e1edd095e4d 100644 --- a/api/cosmos/staking/v1beta1/authz.pulsar.go +++ b/api/cosmos/staking/v1beta1/authz.pulsar.go @@ -1418,65 +1418,72 @@ var file_cosmos_staking_v1beta1_authz_proto_rawDesc = []byte{ 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0x9d, 0x04, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x22, 0x8b, 0x05, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x2b, 0xaa, 0xdf, 0x1f, 0x27, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x56, - 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x6b, - 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x54, 0x0a, 0x09, 0x64, 0x65, 0x6e, 0x79, 0x5f, 0x6c, + 0x6f, 0x69, 0x6e, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x84, + 0x01, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x2c, 0xba, 0xe7, 0xb0, 0x2a, + 0x27, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x74, 0x61, 0x6b, + 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x81, 0x01, 0x0a, 0x09, 0x64, 0x65, 0x6e, 0x79, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x48, 0x00, 0x52, 0x08, 0x64, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x12, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x52, 0x11, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x40, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x48, 0xca, 0xb4, 0x2d, 0x22, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x8a, 0xe7, 0xb0, 0x2a, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x2a, 0x9e, 0x01, 0x0a, 0x11, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, - 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, - 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x55, - 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, - 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x41, - 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x44, 0x45, 0x4c, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x21, - 0x0a, 0x1d, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x52, 0x45, 0x44, 0x45, 0x4c, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, - 0x03, 0x42, 0xda, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x42, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, - 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, - 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x42, 0x2b, 0xba, 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x44, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, + 0x08, 0x64, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x12, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x11, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x1a, 0x40, 0x0a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, + 0x73, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x48, 0xca, 0xb4, 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x8a, 0xe7, 0xb0, + 0x2a, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x74, 0x61, + 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x0f, 0xc2, + 0xe7, 0xb0, 0x2a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2a, 0x9e, + 0x01, 0x0a, 0x11, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x55, 0x54, 0x48, + 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, + 0x45, 0x4c, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x55, 0x54, + 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x55, 0x4e, 0x44, 0x45, 0x4c, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, + 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, + 0x50, 0x45, 0x5f, 0x52, 0x45, 0x44, 0x45, 0x4c, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x03, 0x42, + 0xda, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, + 0x41, 0x75, 0x74, 0x68, 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, + 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/amino/amino.proto b/proto/amino/amino.proto index e78d98309738..991b8817bb03 100644 --- a/proto/amino/amino.proto +++ b/proto/amino/amino.proto @@ -78,4 +78,10 @@ extend google.protobuf.FieldOptions { bool dont_omitempty = 11110005; bool embed = 11110006; + + string oneof_type_name = 11110007; } + +extend google.protobuf.OneofOptions { + string oneof_field_name = 11110008; +} \ No newline at end of file diff --git a/proto/cosmos/staking/v1beta1/authz.proto b/proto/cosmos/staking/v1beta1/authz.proto index 055d1b645288..f08c5effdcda 100644 --- a/proto/cosmos/staking/v1beta1/authz.proto +++ b/proto/cosmos/staking/v1beta1/authz.proto @@ -20,11 +20,12 @@ message StakeAuthorization { cosmos.base.v1beta1.Coin max_tokens = 1 [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coin"]; // validators is the oneof that represents either allow_list or deny_list oneof validators { + option (amino.oneof_field_name) = "Validators"; // allow_list specifies list of validator addresses to whom grantee can delegate tokens on behalf of granter's // account. - Validators allow_list = 2; + Validators allow_list = 2 [(amino.oneof_type_name) = "cosmos-sdk/StakeAuthorization/AllowList"]; // deny_list specifies list of validator addresses to whom grantee can not delegate tokens. - Validators deny_list = 3; + Validators deny_list = 3 [(amino.oneof_type_name) = "cosmos-sdk/StakeAuthorization/DenyList"]; } // Validators defines list of validator addresses. message Validators { diff --git a/types/tx/amino/amino.pb.go b/types/tx/amino/amino.pb.go index ec6f2c2f2942..cbbf149a6040 100644 --- a/types/tx/amino/amino.pb.go +++ b/types/tx/amino/amino.pb.go @@ -75,6 +75,24 @@ var E_Embed = &proto.ExtensionDesc{ Filename: "amino/amino.proto", } +var E_OneofTypeName = &proto.ExtensionDesc{ + ExtendedType: (*descriptorpb.FieldOptions)(nil), + ExtensionType: (*string)(nil), + Field: 11110007, + Name: "amino.oneof_type_name", + Tag: "bytes,11110007,opt,name=oneof_type_name", + Filename: "amino/amino.proto", +} + +var E_OneofFieldName = &proto.ExtensionDesc{ + ExtendedType: (*descriptorpb.OneofOptions)(nil), + ExtensionType: (*string)(nil), + Field: 11110008, + Name: "amino.oneof_field_name", + Tag: "bytes,11110008,opt,name=oneof_field_name", + Filename: "amino/amino.proto", +} + func init() { proto.RegisterExtension(E_Name) proto.RegisterExtension(E_MessageEncoding) @@ -82,29 +100,34 @@ func init() { proto.RegisterExtension(E_FieldName) proto.RegisterExtension(E_DontOmitempty) proto.RegisterExtension(E_Embed) + proto.RegisterExtension(E_OneofTypeName) + proto.RegisterExtension(E_OneofFieldName) } func init() { proto.RegisterFile("amino/amino.proto", fileDescriptor_115c1f70afec6bc5) } var fileDescriptor_115c1f70afec6bc5 = []byte{ - // 300 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4c, 0xcc, 0xcd, 0xcc, - 0xcb, 0xd7, 0x07, 0x93, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0xac, 0x60, 0x8e, 0x94, 0x42, - 0x7a, 0x7e, 0x7e, 0x7a, 0x4e, 0xaa, 0x3e, 0x58, 0x30, 0xa9, 0x34, 0x4d, 0x3f, 0x25, 0xb5, 0x38, - 0xb9, 0x28, 0xb3, 0xa0, 0x24, 0xbf, 0x08, 0xa2, 0xd0, 0xca, 0x8c, 0x8b, 0x25, 0x2f, 0x31, 0x37, - 0x55, 0x48, 0x5e, 0x0f, 0xa2, 0x54, 0x0f, 0xa6, 0x54, 0xcf, 0x37, 0xb5, 0xb8, 0x38, 0x31, 0x3d, - 0xd5, 0xbf, 0xa0, 0x24, 0x33, 0x3f, 0xaf, 0x58, 0xe2, 0x63, 0xcf, 0x32, 0x56, 0x05, 0x46, 0x0d, - 0xce, 0x20, 0xb0, 0x7a, 0x2b, 0x5f, 0x2e, 0x81, 0x5c, 0x88, 0x82, 0xf8, 0xd4, 0xbc, 0xe4, 0xfc, - 0x94, 0xcc, 0xbc, 0x74, 0xc2, 0x66, 0x7c, 0x82, 0x99, 0xc1, 0x0f, 0xd5, 0xeb, 0x0a, 0xd5, 0x6a, - 0x65, 0xc3, 0xc5, 0x01, 0x37, 0x46, 0x16, 0xc3, 0x18, 0xb7, 0xcc, 0xd4, 0x9c, 0x14, 0x98, 0x21, - 0x9f, 0x61, 0x86, 0xc0, 0x75, 0x58, 0xd9, 0x73, 0x71, 0xa5, 0x81, 0x94, 0xc4, 0x83, 0xbd, 0x42, - 0x40, 0xff, 0x17, 0x98, 0x7e, 0x4e, 0xb0, 0x1e, 0x3f, 0x90, 0x6f, 0xdc, 0xb9, 0xf8, 0x52, 0xf2, - 0xf3, 0x4a, 0xe2, 0xf3, 0x73, 0x33, 0x4b, 0x52, 0x73, 0x0b, 0x4a, 0x2a, 0x09, 0x19, 0xf2, 0x15, - 0x62, 0x08, 0x47, 0x10, 0x2f, 0x48, 0x9f, 0x3f, 0x4c, 0x9b, 0x95, 0x19, 0x17, 0x6b, 0x6a, 0x6e, - 0x52, 0x6a, 0x0a, 0x21, 0xfd, 0xdf, 0x60, 0xfa, 0x21, 0xca, 0x9d, 0x5c, 0x4f, 0x3c, 0x92, 0x63, - 0xbc, 0xf0, 0x48, 0x8e, 0xf1, 0xc1, 0x23, 0x39, 0xc6, 0x09, 0x8f, 0xe5, 0x18, 0x2e, 0x3c, 0x96, - 0x63, 0xb8, 0xf1, 0x58, 0x8e, 0x21, 0x4a, 0x3b, 0x3d, 0xb3, 0x24, 0xa3, 0x34, 0x49, 0x2f, 0x39, - 0x3f, 0x57, 0x3f, 0x39, 0xbf, 0x38, 0x37, 0xbf, 0x18, 0x4a, 0xe9, 0x16, 0xa7, 0x64, 0xeb, 0x97, - 0x54, 0x16, 0xa4, 0x16, 0xeb, 0x97, 0x54, 0x40, 0x22, 0x3f, 0x89, 0x0d, 0x6c, 0x9b, 0x31, 0x20, - 0x00, 0x00, 0xff, 0xff, 0x54, 0x58, 0x30, 0x86, 0x12, 0x02, 0x00, 0x00, + // 345 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcd, 0x4a, 0xf3, 0x40, + 0x18, 0x46, 0x1b, 0xf8, 0xfa, 0xd1, 0x0e, 0xf4, 0xc7, 0xae, 0x44, 0x30, 0x76, 0x29, 0x88, 0xc9, + 0x42, 0xe8, 0x22, 0x08, 0x82, 0xd0, 0x2a, 0x42, 0x2d, 0x14, 0x57, 0x6e, 0x42, 0x93, 0xbc, 0x8d, + 0x83, 0x9d, 0x79, 0x87, 0xce, 0x14, 0xec, 0x3d, 0xb8, 0xf0, 0x2a, 0xbc, 0x16, 0x97, 0x5d, 0xba, + 0x94, 0xf6, 0x0a, 0xfc, 0x77, 0x29, 0x99, 0xc9, 0x74, 0x23, 0x18, 0x37, 0x09, 0x09, 0xe7, 0x9c, + 0xf0, 0x0c, 0x21, 0x1b, 0x23, 0x46, 0x39, 0xfa, 0xfa, 0xea, 0x89, 0x29, 0x2a, 0x6c, 0x95, 0xf5, + 0xc3, 0x56, 0x3b, 0x45, 0x4c, 0x27, 0xe0, 0xeb, 0x97, 0xd1, 0x6c, 0xec, 0x27, 0x20, 0xe3, 0x29, + 0x15, 0x0a, 0xa7, 0x06, 0x0c, 0x3a, 0xe4, 0x1f, 0x1f, 0x31, 0x68, 0xed, 0x78, 0x06, 0xf5, 0x2c, + 0xea, 0xf5, 0x41, 0xca, 0x51, 0x0a, 0x03, 0xa1, 0x28, 0x72, 0xb9, 0xf9, 0x7c, 0x7b, 0x5f, 0x6e, + 0x3b, 0xbb, 0xd5, 0xa1, 0xe6, 0x83, 0x3e, 0x69, 0x32, 0x03, 0x84, 0xc0, 0x63, 0x4c, 0x28, 0x4f, + 0x8b, 0x1b, 0x2f, 0xb6, 0xd1, 0xc8, 0xdd, 0x6e, 0xae, 0x06, 0x87, 0xa4, 0xb2, 0xce, 0x6c, 0xff, + 0xc8, 0xf4, 0x28, 0x4c, 0x12, 0x1b, 0x79, 0xb5, 0x91, 0xb5, 0x11, 0x1c, 0x11, 0x32, 0xce, 0x90, + 0x50, 0x4f, 0x29, 0xf0, 0xdf, 0xac, 0x5f, 0xd5, 0xce, 0x79, 0xb6, 0xe6, 0x84, 0xd4, 0x13, 0xe4, + 0x2a, 0x44, 0x46, 0x15, 0x30, 0xa1, 0xe6, 0x45, 0x91, 0x77, 0x13, 0xa9, 0x0c, 0x6b, 0x99, 0x37, + 0xb0, 0x5a, 0xd0, 0x21, 0x65, 0x60, 0x11, 0x24, 0x45, 0xfe, 0x87, 0xf5, 0x0d, 0x1e, 0x9c, 0x92, + 0x06, 0x72, 0xc0, 0x71, 0xa8, 0xe6, 0x02, 0xfe, 0x34, 0xe3, 0xd3, 0xce, 0xa8, 0x69, 0xf1, 0x62, + 0x2e, 0x40, 0x4f, 0x39, 0x23, 0x4d, 0x53, 0xfa, 0xf5, 0x44, 0x06, 0x19, 0x62, 0x53, 0x5f, 0x36, + 0x55, 0xd7, 0x66, 0xcf, 0x1e, 0xcb, 0x71, 0xf7, 0x61, 0xe9, 0x3a, 0x8b, 0xa5, 0xeb, 0x3c, 0x2d, + 0x5d, 0xe7, 0x6e, 0xe5, 0x96, 0x16, 0x2b, 0xb7, 0xf4, 0xb8, 0x72, 0x4b, 0x97, 0x7b, 0x29, 0x55, + 0x57, 0xb3, 0xc8, 0x8b, 0x91, 0xf9, 0x31, 0x4a, 0x86, 0x32, 0xbf, 0xed, 0xcb, 0xe4, 0xda, 0xcf, + 0x46, 0x48, 0x5f, 0xdd, 0x98, 0x5f, 0x32, 0xfa, 0xaf, 0x3f, 0x7b, 0xf0, 0x1d, 0x00, 0x00, 0xff, + 0xff, 0x03, 0x89, 0x6e, 0x4d, 0xa8, 0x02, 0x00, 0x00, } diff --git a/x/staking/types/authz.pb.go b/x/staking/types/authz.pb.go index 7f790975a108..5935a704a980 100644 --- a/x/staking/types/authz.pb.go +++ b/x/staking/types/authz.pb.go @@ -229,39 +229,41 @@ func init() { } var fileDescriptor_d6d8cdbc6f4432f0 = []byte{ - // 503 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x93, 0xc1, 0x6e, 0xd3, 0x30, - 0x18, 0x80, 0x93, 0x75, 0x02, 0x6a, 0x10, 0x5a, 0xad, 0x09, 0x75, 0x45, 0xcb, 0x46, 0x2f, 0x94, - 0x41, 0x1d, 0xad, 0x88, 0x0b, 0x27, 0xd2, 0x2d, 0xa3, 0x95, 0xa6, 0x6d, 0x4a, 0xb3, 0x09, 0x76, - 0x89, 0xdc, 0x26, 0x4a, 0xad, 0x36, 0x71, 0x15, 0xbb, 0xa3, 0xdd, 0x23, 0x70, 0xe2, 0x05, 0xe0, - 0x01, 0x38, 0x71, 0xd8, 0x43, 0x20, 0x4e, 0x13, 0x27, 0x6e, 0xa0, 0xf6, 0xc0, 0x6b, 0xa0, 0xd8, - 0x5e, 0x18, 0xb4, 0xe5, 0xc2, 0x25, 0x89, 0xfc, 0x7f, 0xf9, 0xfe, 0xff, 0xb7, 0x7f, 0x83, 0x72, - 0x87, 0xb2, 0x88, 0x32, 0x93, 0x71, 0xdc, 0x23, 0x71, 0x68, 0x9e, 0x6d, 0xb7, 0x03, 0x8e, 0xb7, - 0x4d, 0x3c, 0xe4, 0xdd, 0x73, 0x34, 0x48, 0x28, 0xa7, 0xf0, 0x9e, 0x64, 0x90, 0x62, 0x90, 0x62, - 0x4a, 0xab, 0x21, 0x0d, 0xa9, 0x40, 0xcc, 0xf4, 0x4b, 0xd2, 0xa5, 0x35, 0x49, 0x7b, 0x32, 0xa0, - 0x7e, 0x95, 0x21, 0x43, 0x25, 0x6b, 0x63, 0x16, 0x64, 0x99, 0x3a, 0x94, 0xc4, 0x2a, 0x5e, 0xc0, - 0x11, 0x89, 0xa9, 0x29, 0x9e, 0x72, 0xa9, 0xfc, 0x7e, 0x19, 0xc0, 0x16, 0xc7, 0xbd, 0xc0, 0x1a, - 0xf2, 0x2e, 0x4d, 0xc8, 0x39, 0xe6, 0x84, 0xc6, 0x30, 0x00, 0x20, 0xc2, 0x23, 0x8f, 0xd3, 0x5e, - 0x10, 0xb3, 0xa2, 0xbe, 0xa9, 0x57, 0x6e, 0xd7, 0xd6, 0x90, 0x4a, 0x96, 0xea, 0xaf, 0x8a, 0x44, - 0x3b, 0x94, 0xc4, 0xf5, 0xc7, 0x1f, 0xbf, 0x6f, 0x3c, 0x0c, 0x09, 0xef, 0x0e, 0xdb, 0xa8, 0x43, - 0x23, 0x55, 0x95, 0x7a, 0x55, 0x99, 0xdf, 0x33, 0xf9, 0x78, 0x10, 0x30, 0x01, 0x3b, 0xf9, 0x08, - 0x8f, 0x5c, 0x21, 0x86, 0x27, 0x00, 0xe0, 0x7e, 0x9f, 0xbe, 0xf1, 0xfa, 0x84, 0xf1, 0xe2, 0x92, - 0x48, 0xf3, 0x0c, 0xcd, 0xdf, 0x0e, 0x34, 0x5b, 0x26, 0x3a, 0xc1, 0x7d, 0xe2, 0x63, 0x4e, 0x13, - 0xd6, 0xd0, 0x9c, 0xbc, 0x50, 0xed, 0x13, 0xc6, 0xa1, 0x0b, 0xf2, 0x7e, 0x10, 0x8f, 0xa5, 0x36, - 0xf7, 0x7f, 0xda, 0x5b, 0xa9, 0x49, 0x58, 0x5f, 0x01, 0x88, 0xaf, 0x73, 0x5e, 0xda, 0x54, 0x71, - 0x79, 0x53, 0xaf, 0xdc, 0xad, 0x3d, 0x5a, 0xa4, 0xff, 0xc3, 0xec, 0x8e, 0x07, 0x81, 0x53, 0xc0, - 0x7f, 0x2f, 0x95, 0x5e, 0x00, 0xf0, 0x3b, 0x27, 0xac, 0x81, 0x9b, 0xd8, 0xf7, 0x93, 0x80, 0xa5, - 0x3b, 0x9f, 0xab, 0xe4, 0xeb, 0xc5, 0xaf, 0x17, 0xd5, 0x55, 0xe5, 0xb7, 0x64, 0xa4, 0xc5, 0x13, - 0x12, 0x87, 0xce, 0x15, 0xf8, 0xbc, 0xf1, 0xe5, 0xa2, 0xaa, 0x66, 0x0d, 0xc9, 0xd9, 0x9a, 0x5b, - 0xc0, 0xdb, 0x9f, 0x9f, 0xb6, 0xd6, 0xaf, 0x1d, 0xcb, 0x6c, 0xf3, 0xf5, 0x3b, 0x00, 0x9c, 0x65, - 0xb5, 0x6c, 0x7d, 0xd0, 0x41, 0x61, 0xa6, 0x05, 0x58, 0x06, 0x86, 0x75, 0xec, 0x36, 0x0e, 0x9d, - 0xe6, 0xa9, 0xe5, 0x36, 0x0f, 0x0f, 0x3c, 0xf7, 0xf5, 0x91, 0xed, 0x1d, 0x1f, 0xb4, 0x8e, 0xec, - 0x9d, 0xe6, 0x5e, 0xd3, 0xde, 0x5d, 0xd1, 0xe0, 0x06, 0xb8, 0x3f, 0x87, 0xd9, 0xb5, 0xf7, 0xed, - 0x97, 0x96, 0x6b, 0xaf, 0xe8, 0xf0, 0x01, 0x58, 0x9f, 0x2b, 0xc9, 0x90, 0xa5, 0x05, 0x88, 0x63, - 0x67, 0x48, 0xae, 0xbe, 0xf7, 0x79, 0x62, 0xe8, 0x97, 0x13, 0x43, 0xff, 0x31, 0x31, 0xf4, 0x77, - 0x53, 0x43, 0xbb, 0x9c, 0x1a, 0xda, 0xb7, 0xa9, 0xa1, 0x9d, 0x3e, 0xf9, 0xe7, 0x40, 0x8e, 0xb2, - 0x2b, 0x29, 0x46, 0xb3, 0x7d, 0x43, 0xdc, 0x87, 0xa7, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0x21, - 0xe8, 0xb9, 0x05, 0xb1, 0x03, 0x00, 0x00, + // 542 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x41, 0x6f, 0x12, 0x4f, + 0x14, 0xc0, 0xd9, 0xf2, 0xff, 0xab, 0x8c, 0x89, 0x96, 0x49, 0x63, 0x28, 0x86, 0x6d, 0xe5, 0x60, + 0x91, 0x96, 0xd9, 0x14, 0xe3, 0xc5, 0x93, 0x4b, 0xd9, 0x0a, 0x49, 0xd3, 0x36, 0xcb, 0xd6, 0x68, + 0x2f, 0x9b, 0x81, 0x9d, 0xc0, 0x04, 0xd8, 0x21, 0x3b, 0x43, 0x85, 0xde, 0x4c, 0x3c, 0xe9, 0xc5, + 0x4f, 0xe0, 0x07, 0xf0, 0xc4, 0xa1, 0x27, 0x8f, 0x9e, 0x8c, 0xa7, 0xc6, 0x93, 0x37, 0x0d, 0x1c, + 0xf8, 0x1a, 0x66, 0x77, 0x07, 0x8a, 0x42, 0xb9, 0x78, 0xd9, 0x9d, 0x9d, 0xf7, 0xdb, 0xf7, 0x7e, + 0x33, 0xfb, 0x66, 0x41, 0xba, 0xc6, 0x78, 0x9b, 0x71, 0x8d, 0x0b, 0xdc, 0xa4, 0x6e, 0x5d, 0x3b, + 0xdb, 0xad, 0x12, 0x81, 0x77, 0x35, 0xdc, 0x15, 0x8d, 0x73, 0xd4, 0xf1, 0x98, 0x60, 0xf0, 0x5e, + 0xc8, 0x20, 0xc9, 0x20, 0xc9, 0x24, 0xd7, 0xea, 0xac, 0xce, 0x02, 0x44, 0xf3, 0x47, 0x21, 0x9d, + 0x5c, 0x0f, 0x69, 0x3b, 0x0c, 0xc8, 0x57, 0xc3, 0x90, 0x2a, 0x8b, 0x55, 0x31, 0x27, 0xd3, 0x4a, + 0x35, 0x46, 0x5d, 0x19, 0x8f, 0xe3, 0x36, 0x75, 0x99, 0x16, 0x5c, 0xc3, 0xa9, 0xf4, 0xfb, 0xff, + 0x01, 0xac, 0x08, 0xdc, 0x24, 0x7a, 0x57, 0x34, 0x98, 0x47, 0xcf, 0xb1, 0xa0, 0xcc, 0x85, 0x04, + 0x80, 0x36, 0xee, 0xd9, 0x82, 0x35, 0x89, 0xcb, 0x13, 0xca, 0xa6, 0x92, 0xb9, 0x9d, 0x5f, 0x47, + 0xb2, 0x98, 0x9f, 0x7e, 0x22, 0x89, 0xf6, 0x18, 0x75, 0x0b, 0xdb, 0x9f, 0x7e, 0x6e, 0x6c, 0xd5, + 0xa9, 0x68, 0x74, 0xab, 0xa8, 0xc6, 0xda, 0xd2, 0x4a, 0xde, 0x72, 0xdc, 0x69, 0x6a, 0xa2, 0xdf, + 0x21, 0x3c, 0x80, 0xcd, 0x58, 0x1b, 0xf7, 0xac, 0x20, 0x31, 0x7c, 0xab, 0x00, 0x80, 0x5b, 0x2d, + 0xf6, 0xda, 0x6e, 0x51, 0x2e, 0x12, 0x2b, 0x41, 0x9d, 0x27, 0x68, 0xf1, 0x7e, 0xa0, 0x79, 0x4f, + 0xf4, 0x02, 0xb7, 0xa8, 0x83, 0x05, 0xf3, 0x78, 0x61, 0xe7, 0xf3, 0x78, 0x90, 0xdd, 0x9a, 0x29, + 0x39, 0x8f, 0x6b, 0xba, 0x5f, 0xeb, 0x80, 0x72, 0x51, 0x8a, 0x98, 0x31, 0x3c, 0x79, 0x80, 0x6f, + 0x14, 0x10, 0x73, 0x88, 0xdb, 0x0f, 0x2d, 0xa2, 0xff, 0x62, 0xb1, 0xed, 0x5b, 0x3c, 0x5c, 0x6e, + 0x51, 0x24, 0x6e, 0x5f, 0x4a, 0xdc, 0x72, 0xe4, 0x18, 0xbe, 0x04, 0x10, 0xcf, 0x52, 0xb6, 0xbf, + 0x63, 0x89, 0xff, 0x36, 0x95, 0xcc, 0x9d, 0xfc, 0xa3, 0xeb, 0x5c, 0xfe, 0xc8, 0x6b, 0xf5, 0x3b, + 0xc4, 0x8c, 0xe3, 0xbf, 0xa7, 0x92, 0xcf, 0x00, 0xb8, 0x12, 0x84, 0x79, 0x70, 0x13, 0x3b, 0x8e, + 0x47, 0xb8, 0xff, 0x59, 0xa3, 0x99, 0x58, 0x21, 0xf1, 0xfd, 0x22, 0xb7, 0x26, 0xf3, 0xeb, 0x61, + 0xa4, 0x22, 0x3c, 0xea, 0xd6, 0xcd, 0x09, 0xf8, 0xb4, 0xf4, 0xed, 0x22, 0x27, 0x1b, 0x19, 0x85, + 0x8d, 0xbb, 0x50, 0xe0, 0xdd, 0x78, 0x90, 0x4d, 0x2d, 0x5d, 0x7a, 0x21, 0x05, 0xc0, 0xd9, 0x95, + 0xcb, 0xdd, 0x2f, 0xe3, 0x41, 0x76, 0x46, 0x2e, 0xfb, 0x51, 0x01, 0xf1, 0xb9, 0x35, 0xc1, 0x34, + 0x50, 0xf5, 0x13, 0xab, 0x74, 0x64, 0x96, 0x4f, 0x75, 0xab, 0x7c, 0x74, 0x68, 0x5b, 0xaf, 0x8e, + 0x0d, 0xfb, 0xe4, 0xb0, 0x72, 0x6c, 0xec, 0x95, 0xf7, 0xcb, 0x46, 0x71, 0x35, 0x02, 0x37, 0xc0, + 0xfd, 0x05, 0x4c, 0xd1, 0x38, 0x30, 0x9e, 0xeb, 0x96, 0xb1, 0xaa, 0xc0, 0x07, 0x20, 0xb5, 0x30, + 0xc9, 0x14, 0x59, 0xb9, 0x06, 0x31, 0x8d, 0x29, 0x12, 0x2d, 0xec, 0x7f, 0x1d, 0xaa, 0xca, 0xe5, + 0x50, 0x55, 0x7e, 0x0d, 0x55, 0xe5, 0xc3, 0x48, 0x8d, 0x5c, 0x8e, 0xd4, 0xc8, 0x8f, 0x91, 0x1a, + 0x39, 0xdd, 0x59, 0xda, 0xfe, 0xbd, 0xe9, 0x0f, 0x20, 0x38, 0x08, 0xd5, 0x1b, 0xc1, 0xe9, 0x7b, + 0xfc, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x65, 0x80, 0x55, 0xbe, 0x1f, 0x04, 0x00, 0x00, } func (m *StakeAuthorization) Marshal() (dAtA []byte, err error) { diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index 67aba9e75c92..1af9ed9c0a2b 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -1403,671 +1403,674 @@ func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_go func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 10617 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x7b, 0x70, 0x24, 0xc7, - 0x79, 0x1f, 0xf6, 0xbd, 0xfb, 0xed, 0x62, 0x77, 0xd0, 0x00, 0xef, 0x70, 0x7b, 0x24, 0x00, 0x0e, - 0x1f, 0xf7, 0x20, 0x89, 0x23, 0x8f, 0xbc, 0x23, 0x89, 0x13, 0x45, 0xef, 0x2e, 0xf6, 0xee, 0x70, - 0xc4, 0x4b, 0xb3, 0xc0, 0xf1, 0x61, 0x4b, 0xa3, 0xc1, 0x6e, 0x03, 0x18, 0xde, 0xee, 0xcc, 0x68, - 0x66, 0xf6, 0x0e, 0x60, 0xa5, 0x52, 0xb4, 0x65, 0x27, 0xf2, 0xc5, 0x91, 0x65, 0x29, 0x65, 0xcb, - 0xb2, 0x4e, 0xa1, 0xac, 0x58, 0x92, 0x9d, 0xc4, 0x91, 0x2d, 0x45, 0x92, 0xe3, 0xb2, 0x4b, 0x4e, - 0xe5, 0x21, 0x3b, 0xa9, 0x94, 0xe4, 0x4a, 0x25, 0xae, 0x54, 0x42, 0x3b, 0x94, 0xca, 0x52, 0x64, - 0x39, 0xb6, 0x65, 0x3a, 0x89, 0xa3, 0x4a, 0x25, 0xd5, 0xaf, 0x79, 0xec, 0x03, 0xb3, 0x38, 0x91, - 0xb4, 0x53, 0xfa, 0xe7, 0x6e, 0xa7, 0xfb, 0xfb, 0x7e, 0xd3, 0xfd, 0xf5, 0xd7, 0x5f, 0x7f, 0xdf, - 0xd7, 0x3d, 0x0d, 0xf8, 0xf3, 0x0b, 0x30, 0xb7, 0x63, 0x9a, 0x3b, 0x6d, 0x7c, 0xc6, 0xb2, 0x4d, - 0xd7, 0xdc, 0xea, 0x6e, 0x9f, 0x69, 0x61, 0xa7, 0x69, 0xeb, 0x96, 0x6b, 0xda, 0xf3, 0xb4, 0x0c, - 0x95, 0x18, 0xc5, 0xbc, 0xa0, 0x90, 0x57, 0x60, 0xe2, 0xa2, 0xde, 0xc6, 0x8b, 0x1e, 0x61, 0x03, - 0xbb, 0xe8, 0x09, 0x48, 0x6e, 0xeb, 0x6d, 0x3c, 0x1d, 0x9b, 0x4b, 0x9c, 0xcc, 0x9f, 0xbd, 0x77, - 0xbe, 0x87, 0x69, 0x3e, 0xcc, 0xb1, 0x4e, 0x8a, 0x15, 0xca, 0x21, 0x7f, 0x3d, 0x09, 0x93, 0x03, - 0x6a, 0x11, 0x82, 0xa4, 0xa1, 0x75, 0x08, 0x62, 0xec, 0x64, 0x4e, 0xa1, 0xbf, 0xd1, 0x34, 0x64, - 0x2c, 0xad, 0x79, 0x4d, 0xdb, 0xc1, 0xd3, 0x71, 0x5a, 0x2c, 0x1e, 0xd1, 0x0c, 0x40, 0x0b, 0x5b, - 0xd8, 0x68, 0x61, 0xa3, 0xb9, 0x3f, 0x9d, 0x98, 0x4b, 0x9c, 0xcc, 0x29, 0x81, 0x12, 0xf4, 0x00, - 0x4c, 0x58, 0xdd, 0xad, 0xb6, 0xde, 0x54, 0x03, 0x64, 0x30, 0x97, 0x38, 0x99, 0x52, 0x24, 0x56, - 0xb1, 0xe8, 0x13, 0x9f, 0x80, 0xd2, 0x0d, 0xac, 0x5d, 0x0b, 0x92, 0xe6, 0x29, 0x69, 0x91, 0x14, - 0x07, 0x08, 0x6b, 0x50, 0xe8, 0x60, 0xc7, 0xd1, 0x76, 0xb0, 0xea, 0xee, 0x5b, 0x78, 0x3a, 0x49, - 0x7b, 0x3f, 0xd7, 0xd7, 0xfb, 0xde, 0x9e, 0xe7, 0x39, 0xd7, 0xc6, 0xbe, 0x85, 0x51, 0x05, 0x72, - 0xd8, 0xe8, 0x76, 0x18, 0x42, 0x6a, 0x88, 0xfc, 0xea, 0x46, 0xb7, 0xd3, 0x8b, 0x92, 0x25, 0x6c, - 0x1c, 0x22, 0xe3, 0x60, 0xfb, 0xba, 0xde, 0xc4, 0xd3, 0x69, 0x0a, 0x70, 0xa2, 0x0f, 0xa0, 0xc1, - 0xea, 0x7b, 0x31, 0x04, 0x1f, 0xaa, 0x41, 0x0e, 0xef, 0xb9, 0xd8, 0x70, 0x74, 0xd3, 0x98, 0xce, - 0x50, 0x90, 0xfb, 0x06, 0x8c, 0x22, 0x6e, 0xb7, 0x7a, 0x21, 0x7c, 0x3e, 0x74, 0x1e, 0x32, 0xa6, - 0xe5, 0xea, 0xa6, 0xe1, 0x4c, 0x67, 0xe7, 0x62, 0x27, 0xf3, 0x67, 0xef, 0x1c, 0xa8, 0x08, 0x6b, - 0x8c, 0x46, 0x11, 0xc4, 0x68, 0x09, 0x24, 0xc7, 0xec, 0xda, 0x4d, 0xac, 0x36, 0xcd, 0x16, 0x56, - 0x75, 0x63, 0xdb, 0x9c, 0xce, 0x51, 0x80, 0xd9, 0xfe, 0x8e, 0x50, 0xc2, 0x9a, 0xd9, 0xc2, 0x4b, - 0xc6, 0xb6, 0xa9, 0x14, 0x9d, 0xd0, 0x33, 0x3a, 0x02, 0x69, 0x67, 0xdf, 0x70, 0xb5, 0xbd, 0xe9, - 0x02, 0xd5, 0x10, 0xfe, 0x24, 0xff, 0x5a, 0x1a, 0x4a, 0xa3, 0xa8, 0xd8, 0x05, 0x48, 0x6d, 0x93, - 0x5e, 0x4e, 0xc7, 0x0f, 0x23, 0x03, 0xc6, 0x13, 0x16, 0x62, 0xfa, 0x36, 0x85, 0x58, 0x81, 0xbc, - 0x81, 0x1d, 0x17, 0xb7, 0x98, 0x46, 0x24, 0x46, 0xd4, 0x29, 0x60, 0x4c, 0xfd, 0x2a, 0x95, 0xbc, - 0x2d, 0x95, 0x7a, 0x0e, 0x4a, 0x5e, 0x93, 0x54, 0x5b, 0x33, 0x76, 0x84, 0x6e, 0x9e, 0x89, 0x6a, - 0xc9, 0x7c, 0x5d, 0xf0, 0x29, 0x84, 0x4d, 0x29, 0xe2, 0xd0, 0x33, 0x5a, 0x04, 0x30, 0x0d, 0x6c, - 0x6e, 0xab, 0x2d, 0xdc, 0x6c, 0x4f, 0x67, 0x87, 0x48, 0x69, 0x8d, 0x90, 0xf4, 0x49, 0xc9, 0x64, - 0xa5, 0xcd, 0x36, 0x7a, 0xd2, 0x57, 0xb5, 0xcc, 0x10, 0x4d, 0x59, 0x61, 0x93, 0xac, 0x4f, 0xdb, - 0x36, 0xa1, 0x68, 0x63, 0xa2, 0xf7, 0xb8, 0xc5, 0x7b, 0x96, 0xa3, 0x8d, 0x98, 0x8f, 0xec, 0x99, - 0xc2, 0xd9, 0x58, 0xc7, 0xc6, 0xed, 0xe0, 0x23, 0xba, 0x07, 0xbc, 0x02, 0x95, 0xaa, 0x15, 0x50, - 0x2b, 0x54, 0x10, 0x85, 0xab, 0x5a, 0x07, 0x97, 0x5f, 0x82, 0x62, 0x58, 0x3c, 0x68, 0x0a, 0x52, - 0x8e, 0xab, 0xd9, 0x2e, 0xd5, 0xc2, 0x94, 0xc2, 0x1e, 0x90, 0x04, 0x09, 0x6c, 0xb4, 0xa8, 0x95, - 0x4b, 0x29, 0xe4, 0x27, 0xfa, 0x01, 0xbf, 0xc3, 0x09, 0xda, 0xe1, 0xfb, 0xfb, 0x47, 0x34, 0x84, - 0xdc, 0xdb, 0xef, 0xf2, 0xe3, 0x30, 0x1e, 0xea, 0xc0, 0xa8, 0xaf, 0x96, 0xff, 0x06, 0xdc, 0x31, - 0x10, 0x1a, 0x3d, 0x07, 0x53, 0x5d, 0x43, 0x37, 0x5c, 0x6c, 0x5b, 0x36, 0x26, 0x1a, 0xcb, 0x5e, - 0x35, 0xfd, 0x8d, 0xcc, 0x10, 0x9d, 0xdb, 0x0c, 0x52, 0x33, 0x14, 0x65, 0xb2, 0xdb, 0x5f, 0x78, - 0x3a, 0x97, 0xfd, 0x66, 0x46, 0x7a, 0xf9, 0xe5, 0x97, 0x5f, 0x8e, 0xcb, 0xbf, 0x95, 0x86, 0xa9, - 0x41, 0x73, 0x66, 0xe0, 0xf4, 0x3d, 0x02, 0x69, 0xa3, 0xdb, 0xd9, 0xc2, 0x36, 0x15, 0x52, 0x4a, - 0xe1, 0x4f, 0xa8, 0x02, 0xa9, 0xb6, 0xb6, 0x85, 0xdb, 0xd3, 0xc9, 0xb9, 0xd8, 0xc9, 0xe2, 0xd9, - 0x07, 0x46, 0x9a, 0x95, 0xf3, 0xcb, 0x84, 0x45, 0x61, 0x9c, 0xe8, 0xed, 0x90, 0xe4, 0x26, 0x9a, - 0x20, 0x9c, 0x1e, 0x0d, 0x81, 0xcc, 0x25, 0x85, 0xf2, 0xa1, 0xe3, 0x90, 0x23, 0xff, 0x33, 0xdd, - 0x48, 0xd3, 0x36, 0x67, 0x49, 0x01, 0xd1, 0x0b, 0x54, 0x86, 0x2c, 0x9d, 0x26, 0x2d, 0x2c, 0x96, - 0x36, 0xef, 0x99, 0x28, 0x56, 0x0b, 0x6f, 0x6b, 0xdd, 0xb6, 0xab, 0x5e, 0xd7, 0xda, 0x5d, 0x4c, - 0x15, 0x3e, 0xa7, 0x14, 0x78, 0xe1, 0x55, 0x52, 0x86, 0x66, 0x21, 0xcf, 0x66, 0x95, 0x6e, 0xb4, - 0xf0, 0x1e, 0xb5, 0x9e, 0x29, 0x85, 0x4d, 0xb4, 0x25, 0x52, 0x42, 0x5e, 0xff, 0xa2, 0x63, 0x1a, - 0x42, 0x35, 0xe9, 0x2b, 0x48, 0x01, 0x7d, 0xfd, 0xe3, 0xbd, 0x86, 0xfb, 0xae, 0xc1, 0xdd, 0xeb, - 0x9b, 0x4b, 0x27, 0xa0, 0x44, 0x29, 0x1e, 0xe5, 0x43, 0xaf, 0xb5, 0xa7, 0x27, 0xe6, 0x62, 0x27, - 0xb3, 0x4a, 0x91, 0x15, 0xaf, 0xf1, 0x52, 0xf9, 0xf3, 0x71, 0x48, 0x52, 0xc3, 0x52, 0x82, 0xfc, - 0xc6, 0xf3, 0xeb, 0x75, 0x75, 0x71, 0x6d, 0xb3, 0xba, 0x5c, 0x97, 0x62, 0xa8, 0x08, 0x40, 0x0b, - 0x2e, 0x2e, 0xaf, 0x55, 0x36, 0xa4, 0xb8, 0xf7, 0xbc, 0xb4, 0xba, 0x71, 0xfe, 0x31, 0x29, 0xe1, - 0x31, 0x6c, 0xb2, 0x82, 0x64, 0x90, 0xe0, 0xd1, 0xb3, 0x52, 0x0a, 0x49, 0x50, 0x60, 0x00, 0x4b, - 0xcf, 0xd5, 0x17, 0xcf, 0x3f, 0x26, 0xa5, 0xc3, 0x25, 0x8f, 0x9e, 0x95, 0x32, 0x68, 0x1c, 0x72, - 0xb4, 0xa4, 0xba, 0xb6, 0xb6, 0x2c, 0x65, 0x3d, 0xcc, 0xc6, 0x86, 0xb2, 0xb4, 0x7a, 0x49, 0xca, - 0x79, 0x98, 0x97, 0x94, 0xb5, 0xcd, 0x75, 0x09, 0x3c, 0x84, 0x95, 0x7a, 0xa3, 0x51, 0xb9, 0x54, - 0x97, 0xf2, 0x1e, 0x45, 0xf5, 0xf9, 0x8d, 0x7a, 0x43, 0x2a, 0x84, 0x9a, 0xf5, 0xe8, 0x59, 0x69, - 0xdc, 0x7b, 0x45, 0x7d, 0x75, 0x73, 0x45, 0x2a, 0xa2, 0x09, 0x18, 0x67, 0xaf, 0x10, 0x8d, 0x28, - 0xf5, 0x14, 0x9d, 0x7f, 0x4c, 0x92, 0xfc, 0x86, 0x30, 0x94, 0x89, 0x50, 0xc1, 0xf9, 0xc7, 0x24, - 0x24, 0xd7, 0x20, 0x45, 0xd5, 0x10, 0x21, 0x28, 0x2e, 0x57, 0xaa, 0xf5, 0x65, 0x75, 0x6d, 0x7d, - 0x63, 0x69, 0x6d, 0xb5, 0xb2, 0x2c, 0xc5, 0xfc, 0x32, 0xa5, 0xfe, 0x8e, 0xcd, 0x25, 0xa5, 0xbe, - 0x28, 0xc5, 0x83, 0x65, 0xeb, 0xf5, 0xca, 0x46, 0x7d, 0x51, 0x4a, 0xc8, 0x4d, 0x98, 0x1a, 0x64, - 0x50, 0x07, 0x4e, 0xa1, 0x80, 0x2e, 0xc4, 0x87, 0xe8, 0x02, 0xc5, 0xea, 0xd5, 0x05, 0xf9, 0x6b, - 0x71, 0x98, 0x1c, 0xb0, 0xa8, 0x0c, 0x7c, 0xc9, 0xd3, 0x90, 0x62, 0xba, 0xcc, 0x96, 0xd9, 0x53, - 0x03, 0x57, 0x27, 0xaa, 0xd9, 0x7d, 0x4b, 0x2d, 0xe5, 0x0b, 0xba, 0x1a, 0x89, 0x21, 0xae, 0x06, - 0x81, 0xe8, 0x53, 0xd8, 0x77, 0xf6, 0x19, 0x7f, 0xb6, 0x3e, 0x9e, 0x1f, 0x65, 0x7d, 0xa4, 0x65, - 0x87, 0x5b, 0x04, 0x52, 0x03, 0x16, 0x81, 0x0b, 0x30, 0xd1, 0x07, 0x34, 0xb2, 0x31, 0x7e, 0x6f, - 0x0c, 0xa6, 0x87, 0x09, 0x27, 0xc2, 0x24, 0xc6, 0x43, 0x26, 0xf1, 0x42, 0xaf, 0x04, 0xef, 0x1e, - 0x3e, 0x08, 0x7d, 0x63, 0xfd, 0xa9, 0x18, 0x1c, 0x19, 0xec, 0x52, 0x0e, 0x6c, 0xc3, 0xdb, 0x21, - 0xdd, 0xc1, 0xee, 0xae, 0x29, 0xdc, 0xaa, 0xfb, 0x07, 0x2c, 0xd6, 0xa4, 0xba, 0x77, 0xb0, 0x39, - 0x57, 0x70, 0xb5, 0x4f, 0x0c, 0xf3, 0x0b, 0x59, 0x6b, 0xfa, 0x5a, 0xfa, 0xe3, 0x71, 0xb8, 0x63, - 0x20, 0xf8, 0xc0, 0x86, 0xde, 0x05, 0xa0, 0x1b, 0x56, 0xd7, 0x65, 0xae, 0x13, 0xb3, 0xc4, 0x39, - 0x5a, 0x42, 0x8d, 0x17, 0xb1, 0xb2, 0x5d, 0xd7, 0xab, 0x4f, 0xd0, 0x7a, 0x60, 0x45, 0x94, 0xe0, - 0x09, 0xbf, 0xa1, 0x49, 0xda, 0xd0, 0x99, 0x21, 0x3d, 0xed, 0x53, 0xcc, 0x87, 0x41, 0x6a, 0xb6, - 0x75, 0x6c, 0xb8, 0xaa, 0xe3, 0xda, 0x58, 0xeb, 0xe8, 0xc6, 0x0e, 0x5d, 0x6a, 0xb2, 0x0b, 0xa9, - 0x6d, 0xad, 0xed, 0x60, 0xa5, 0xc4, 0xaa, 0x1b, 0xa2, 0x96, 0x70, 0x50, 0x05, 0xb2, 0x03, 0x1c, - 0xe9, 0x10, 0x07, 0xab, 0xf6, 0x38, 0xe4, 0x9f, 0xca, 0x41, 0x3e, 0xe0, 0x80, 0xa3, 0xbb, 0xa1, - 0xf0, 0xa2, 0x76, 0x5d, 0x53, 0x45, 0x50, 0xc5, 0x24, 0x91, 0x27, 0x65, 0xeb, 0x3c, 0xb0, 0x7a, - 0x18, 0xa6, 0x28, 0x89, 0xd9, 0x75, 0xb1, 0xad, 0x36, 0xdb, 0x9a, 0xe3, 0x50, 0xa1, 0x65, 0x29, - 0x29, 0x22, 0x75, 0x6b, 0xa4, 0xaa, 0x26, 0x6a, 0xd0, 0x39, 0x98, 0xa4, 0x1c, 0x9d, 0x6e, 0xdb, - 0xd5, 0xad, 0x36, 0x56, 0x49, 0x98, 0xe7, 0xd0, 0x25, 0xc7, 0x6b, 0xd9, 0x04, 0xa1, 0x58, 0xe1, - 0x04, 0xa4, 0x45, 0x0e, 0x5a, 0x84, 0xbb, 0x28, 0xdb, 0x0e, 0x36, 0xb0, 0xad, 0xb9, 0x58, 0xc5, - 0xef, 0xe9, 0x6a, 0x6d, 0x47, 0xd5, 0x8c, 0x96, 0xba, 0xab, 0x39, 0xbb, 0xd3, 0x53, 0x04, 0xa0, - 0x1a, 0x9f, 0x8e, 0x29, 0xc7, 0x08, 0xe1, 0x25, 0x4e, 0x57, 0xa7, 0x64, 0x15, 0xa3, 0x75, 0x59, - 0x73, 0x76, 0xd1, 0x02, 0x1c, 0xa1, 0x28, 0x8e, 0x6b, 0xeb, 0xc6, 0x8e, 0xda, 0xdc, 0xc5, 0xcd, - 0x6b, 0x6a, 0xd7, 0xdd, 0x7e, 0x62, 0xfa, 0x78, 0xf0, 0xfd, 0xb4, 0x85, 0x0d, 0x4a, 0x53, 0x23, - 0x24, 0x9b, 0xee, 0xf6, 0x13, 0xa8, 0x01, 0x05, 0x32, 0x18, 0x1d, 0xfd, 0x25, 0xac, 0x6e, 0x9b, - 0x36, 0x5d, 0x43, 0x8b, 0x03, 0x4c, 0x53, 0x40, 0x82, 0xf3, 0x6b, 0x9c, 0x61, 0xc5, 0x6c, 0xe1, - 0x85, 0x54, 0x63, 0xbd, 0x5e, 0x5f, 0x54, 0xf2, 0x02, 0xe5, 0xa2, 0x69, 0x13, 0x85, 0xda, 0x31, - 0x3d, 0x01, 0xe7, 0x99, 0x42, 0xed, 0x98, 0x42, 0xbc, 0xe7, 0x60, 0xb2, 0xd9, 0x64, 0x7d, 0xd6, - 0x9b, 0x2a, 0x0f, 0xc6, 0x9c, 0x69, 0x29, 0x24, 0xac, 0x66, 0xf3, 0x12, 0x23, 0xe0, 0x3a, 0xee, - 0xa0, 0x27, 0xe1, 0x0e, 0x5f, 0x58, 0x41, 0xc6, 0x89, 0xbe, 0x5e, 0xf6, 0xb2, 0x9e, 0x83, 0x49, - 0x6b, 0xbf, 0x9f, 0x11, 0x85, 0xde, 0x68, 0xed, 0xf7, 0xb2, 0x3d, 0x0e, 0x53, 0xd6, 0xae, 0xd5, - 0xcf, 0x77, 0x3a, 0xc8, 0x87, 0xac, 0x5d, 0xab, 0x97, 0xf1, 0x3e, 0x1a, 0x99, 0xdb, 0xb8, 0xa9, - 0xb9, 0xb8, 0x35, 0x7d, 0x34, 0x48, 0x1e, 0xa8, 0x40, 0xf3, 0x20, 0x35, 0x9b, 0x2a, 0x36, 0xb4, - 0xad, 0x36, 0x56, 0x35, 0x1b, 0x1b, 0x9a, 0x33, 0x3d, 0x4b, 0x89, 0x93, 0xae, 0xdd, 0xc5, 0x4a, - 0xb1, 0xd9, 0xac, 0xd3, 0xca, 0x0a, 0xad, 0x43, 0xa7, 0x61, 0xc2, 0xdc, 0x7a, 0xb1, 0xc9, 0x34, - 0x52, 0xb5, 0x6c, 0xbc, 0xad, 0xef, 0x4d, 0xdf, 0x4b, 0xc5, 0x5b, 0x22, 0x15, 0x54, 0x1f, 0xd7, - 0x69, 0x31, 0x3a, 0x05, 0x52, 0xd3, 0xd9, 0xd5, 0x6c, 0x8b, 0x9a, 0x64, 0xc7, 0xd2, 0x9a, 0x78, - 0xfa, 0x3e, 0x46, 0xca, 0xca, 0x57, 0x45, 0x31, 0x99, 0x11, 0xce, 0x0d, 0x7d, 0xdb, 0x15, 0x88, - 0x27, 0xd8, 0x8c, 0xa0, 0x65, 0x1c, 0xed, 0x24, 0x48, 0x44, 0x12, 0xa1, 0x17, 0x9f, 0xa4, 0x64, - 0x45, 0x6b, 0xd7, 0x0a, 0xbe, 0xf7, 0x1e, 0x18, 0x27, 0x94, 0xfe, 0x4b, 0x4f, 0x31, 0xc7, 0xcd, - 0xda, 0x0d, 0xbc, 0xf1, 0x31, 0x38, 0x42, 0x88, 0x3a, 0xd8, 0xd5, 0x5a, 0x9a, 0xab, 0x05, 0xa8, - 0x1f, 0xa4, 0xd4, 0x44, 0xec, 0x2b, 0xbc, 0x32, 0xd4, 0x4e, 0xbb, 0xbb, 0xb5, 0xef, 0x29, 0xd6, - 0x43, 0xac, 0x9d, 0xa4, 0x4c, 0xa8, 0xd6, 0x9b, 0xe6, 0x9c, 0xcb, 0x0b, 0x50, 0x08, 0xea, 0x3d, - 0xca, 0x01, 0xd3, 0x7c, 0x29, 0x46, 0x9c, 0xa0, 0xda, 0xda, 0x22, 0x71, 0x5f, 0x5e, 0xa8, 0x4b, - 0x71, 0xe2, 0x46, 0x2d, 0x2f, 0x6d, 0xd4, 0x55, 0x65, 0x73, 0x75, 0x63, 0x69, 0xa5, 0x2e, 0x25, - 0x02, 0x8e, 0xfd, 0x95, 0x64, 0xf6, 0x7e, 0xe9, 0x04, 0xf1, 0x1a, 0x8a, 0xe1, 0x48, 0x0d, 0xbd, - 0x0d, 0x8e, 0x8a, 0xb4, 0x8a, 0x83, 0x5d, 0xf5, 0x86, 0x6e, 0xd3, 0x09, 0xd9, 0xd1, 0xd8, 0xe2, - 0xe8, 0xe9, 0xcf, 0x14, 0xa7, 0x6a, 0x60, 0xf7, 0x59, 0xdd, 0x26, 0xd3, 0xad, 0xa3, 0xb9, 0x68, - 0x19, 0x66, 0x0d, 0x53, 0x75, 0x5c, 0xcd, 0x68, 0x69, 0x76, 0x4b, 0xf5, 0x13, 0x5a, 0xaa, 0xd6, - 0x6c, 0x62, 0xc7, 0x31, 0xd9, 0x42, 0xe8, 0xa1, 0xdc, 0x69, 0x98, 0x0d, 0x4e, 0xec, 0xaf, 0x10, - 0x15, 0x4e, 0xda, 0xa3, 0xbe, 0x89, 0x61, 0xea, 0x7b, 0x1c, 0x72, 0x1d, 0xcd, 0x52, 0xb1, 0xe1, - 0xda, 0xfb, 0xd4, 0x3f, 0xcf, 0x2a, 0xd9, 0x8e, 0x66, 0xd5, 0xc9, 0xf3, 0x5b, 0x12, 0x26, 0x5d, - 0x49, 0x66, 0x93, 0x52, 0xea, 0x4a, 0x32, 0x9b, 0x92, 0xd2, 0x57, 0x92, 0xd9, 0xb4, 0x94, 0xb9, - 0x92, 0xcc, 0x66, 0xa5, 0xdc, 0x95, 0x64, 0x36, 0x27, 0x81, 0xfc, 0xc1, 0x24, 0x14, 0x82, 0x1e, - 0x3c, 0x09, 0x88, 0x9a, 0x74, 0x0d, 0x8b, 0x51, 0x2b, 0x77, 0xcf, 0x81, 0xfe, 0xfe, 0x7c, 0x8d, - 0x2c, 0x6e, 0x0b, 0x69, 0xe6, 0x2e, 0x2b, 0x8c, 0x93, 0x38, 0x16, 0x44, 0xfd, 0x30, 0x73, 0x4f, - 0xb2, 0x0a, 0x7f, 0x42, 0x97, 0x20, 0xfd, 0xa2, 0x43, 0xb1, 0xd3, 0x14, 0xfb, 0xde, 0x83, 0xb1, - 0xaf, 0x34, 0x28, 0x78, 0xee, 0x4a, 0x43, 0x5d, 0x5d, 0x53, 0x56, 0x2a, 0xcb, 0x0a, 0x67, 0x47, - 0xc7, 0x20, 0xd9, 0xd6, 0x5e, 0xda, 0x0f, 0x2f, 0x83, 0xb4, 0x08, 0xcd, 0x43, 0xa9, 0x6b, 0x5c, - 0xc7, 0xb6, 0xbe, 0xad, 0xe3, 0x96, 0x4a, 0xa9, 0x4a, 0x41, 0xaa, 0xa2, 0x5f, 0xbb, 0x4c, 0xe8, - 0x47, 0x1c, 0xc6, 0x63, 0x90, 0xbc, 0x81, 0xb5, 0x6b, 0xe1, 0xc5, 0x8a, 0x16, 0xbd, 0x89, 0xd3, - 0xe9, 0x0c, 0xa4, 0xa8, 0x7c, 0x11, 0x00, 0x97, 0xb0, 0x34, 0x86, 0xb2, 0x90, 0xac, 0xad, 0x29, - 0x64, 0x4a, 0x49, 0x50, 0x60, 0xa5, 0xea, 0xfa, 0x52, 0xbd, 0x56, 0x97, 0xe2, 0xf2, 0x39, 0x48, - 0x33, 0xa1, 0x91, 0xe9, 0xe6, 0x89, 0x4d, 0x1a, 0xe3, 0x8f, 0x1c, 0x23, 0x26, 0x6a, 0x37, 0x57, - 0xaa, 0x75, 0x45, 0x8a, 0xf7, 0x29, 0x8b, 0xec, 0x40, 0x21, 0xe8, 0xc9, 0xbf, 0x35, 0xe1, 0xfc, - 0x97, 0x62, 0x90, 0x0f, 0x78, 0xe6, 0xc4, 0xa5, 0xd2, 0xda, 0x6d, 0xf3, 0x86, 0xaa, 0xb5, 0x75, - 0xcd, 0xe1, 0xaa, 0x04, 0xb4, 0xa8, 0x42, 0x4a, 0x46, 0x1d, 0xba, 0xb7, 0x68, 0x92, 0xa5, 0xa4, - 0xb4, 0xfc, 0xb1, 0x18, 0x48, 0xbd, 0xae, 0x71, 0x4f, 0x33, 0x63, 0x7f, 0x95, 0xcd, 0x94, 0x3f, - 0x1a, 0x83, 0x62, 0xd8, 0x1f, 0xee, 0x69, 0xde, 0xdd, 0x7f, 0xa5, 0xcd, 0xfb, 0x83, 0x38, 0x8c, - 0x87, 0xbc, 0xe0, 0x51, 0x5b, 0xf7, 0x1e, 0x98, 0xd0, 0x5b, 0xb8, 0x63, 0x99, 0x2e, 0x36, 0x9a, - 0xfb, 0x6a, 0x1b, 0x5f, 0xc7, 0xed, 0x69, 0x99, 0x1a, 0x99, 0x33, 0x07, 0xfb, 0xd9, 0xf3, 0x4b, - 0x3e, 0xdf, 0x32, 0x61, 0x5b, 0x98, 0x5c, 0x5a, 0xac, 0xaf, 0xac, 0xaf, 0x6d, 0xd4, 0x57, 0x6b, - 0xcf, 0xab, 0x9b, 0xab, 0xcf, 0xac, 0xae, 0x3d, 0xbb, 0xaa, 0x48, 0x7a, 0x0f, 0xd9, 0x9b, 0x38, - 0xed, 0xd7, 0x41, 0xea, 0x6d, 0x14, 0x3a, 0x0a, 0x83, 0x9a, 0x25, 0x8d, 0xa1, 0x49, 0x28, 0xad, - 0xae, 0xa9, 0x8d, 0xa5, 0xc5, 0xba, 0x5a, 0xbf, 0x78, 0xb1, 0x5e, 0xdb, 0x68, 0xb0, 0xcc, 0x89, - 0x47, 0xbd, 0x11, 0x9a, 0xe0, 0xf2, 0x47, 0x12, 0x30, 0x39, 0xa0, 0x25, 0xa8, 0xc2, 0x63, 0x1e, - 0x16, 0x86, 0x3d, 0x34, 0x4a, 0xeb, 0xe7, 0x89, 0xd7, 0xb1, 0xae, 0xd9, 0x2e, 0x0f, 0x91, 0x4e, - 0x01, 0x91, 0x92, 0xe1, 0x12, 0xe3, 0x6a, 0xf3, 0x8c, 0x14, 0x0b, 0x84, 0x4a, 0x7e, 0x39, 0x4b, - 0x4a, 0x3d, 0x08, 0xc8, 0x32, 0x1d, 0xdd, 0xd5, 0xaf, 0x63, 0x55, 0x37, 0x44, 0xfa, 0x8a, 0x04, - 0x46, 0x49, 0x45, 0x12, 0x35, 0x4b, 0x86, 0xeb, 0x51, 0x1b, 0x78, 0x47, 0xeb, 0xa1, 0x26, 0xc6, - 0x3f, 0xa1, 0x48, 0xa2, 0xc6, 0xa3, 0xbe, 0x1b, 0x0a, 0x2d, 0xb3, 0x4b, 0xbc, 0x45, 0x46, 0x47, - 0xd6, 0x9a, 0x98, 0x92, 0x67, 0x65, 0x1e, 0x09, 0x8f, 0x03, 0xfc, 0xbc, 0x59, 0x41, 0xc9, 0xb3, - 0x32, 0x46, 0x72, 0x02, 0x4a, 0xda, 0xce, 0x8e, 0x4d, 0xc0, 0x05, 0x10, 0x8b, 0x6c, 0x8a, 0x5e, - 0x31, 0x25, 0x2c, 0x5f, 0x81, 0xac, 0x90, 0x03, 0x59, 0xec, 0x89, 0x24, 0x54, 0x8b, 0x85, 0xeb, - 0xf1, 0x93, 0x39, 0x25, 0x6b, 0x88, 0xca, 0xbb, 0xa1, 0xa0, 0x3b, 0xaa, 0xbf, 0x0d, 0x10, 0x9f, - 0x8b, 0x9f, 0xcc, 0x2a, 0x79, 0xdd, 0xf1, 0x52, 0xa8, 0xf2, 0xa7, 0xe2, 0x50, 0x0c, 0x6f, 0x63, - 0xa0, 0x45, 0xc8, 0xb6, 0xcd, 0xa6, 0x46, 0x55, 0x8b, 0xed, 0xa1, 0x9d, 0x8c, 0xd8, 0xf9, 0x98, - 0x5f, 0xe6, 0xf4, 0x8a, 0xc7, 0x59, 0xfe, 0x77, 0x31, 0xc8, 0x8a, 0x62, 0x74, 0x04, 0x92, 0x96, - 0xe6, 0xee, 0x52, 0xb8, 0x54, 0x35, 0x2e, 0xc5, 0x14, 0xfa, 0x4c, 0xca, 0x1d, 0x4b, 0x33, 0xa8, - 0x0a, 0xf0, 0x72, 0xf2, 0x4c, 0xc6, 0xb5, 0x8d, 0xb5, 0x16, 0x0d, 0x9b, 0xcc, 0x4e, 0x07, 0x1b, - 0xae, 0x23, 0xc6, 0x95, 0x97, 0xd7, 0x78, 0x31, 0x7a, 0x00, 0x26, 0x5c, 0x5b, 0xd3, 0xdb, 0x21, - 0xda, 0x24, 0xa5, 0x95, 0x44, 0x85, 0x47, 0xbc, 0x00, 0xc7, 0x04, 0x6e, 0x0b, 0xbb, 0x5a, 0x73, - 0x17, 0xb7, 0x7c, 0xa6, 0x34, 0x4d, 0x8f, 0x1c, 0xe5, 0x04, 0x8b, 0xbc, 0x5e, 0xf0, 0xca, 0x5f, - 0x8d, 0xc1, 0x84, 0x08, 0xf4, 0x5a, 0x9e, 0xb0, 0x56, 0x00, 0x34, 0xc3, 0x30, 0xdd, 0xa0, 0xb8, - 0xfa, 0x55, 0xb9, 0x8f, 0x6f, 0xbe, 0xe2, 0x31, 0x29, 0x01, 0x80, 0x72, 0x07, 0xc0, 0xaf, 0x19, - 0x2a, 0xb6, 0x59, 0xc8, 0xf3, 0x3d, 0x2a, 0xba, 0xd1, 0xc9, 0x52, 0x03, 0xc0, 0x8a, 0x48, 0x44, - 0x88, 0xa6, 0x20, 0xb5, 0x85, 0x77, 0x74, 0x83, 0x67, 0x9e, 0xd9, 0x83, 0x48, 0xe0, 0x24, 0xbd, - 0x04, 0x4e, 0xf5, 0x6f, 0xc2, 0x64, 0xd3, 0xec, 0xf4, 0x36, 0xb7, 0x2a, 0xf5, 0xa4, 0x27, 0x9c, - 0xcb, 0xb1, 0x17, 0x1e, 0xe2, 0x44, 0x3b, 0x66, 0x5b, 0x33, 0x76, 0xe6, 0x4d, 0x7b, 0xc7, 0xdf, - 0xa8, 0x25, 0x1e, 0x92, 0x13, 0xd8, 0xae, 0xb5, 0xb6, 0xfe, 0x57, 0x2c, 0xf6, 0xf3, 0xf1, 0xc4, - 0xa5, 0xf5, 0xea, 0x2f, 0xc5, 0xcb, 0x97, 0x18, 0xe3, 0xba, 0x10, 0x86, 0x82, 0xb7, 0xdb, 0xb8, - 0x49, 0x3a, 0x08, 0x7f, 0xfc, 0x00, 0x4c, 0xed, 0x98, 0x3b, 0x26, 0x45, 0x3a, 0x43, 0x7e, 0xf1, - 0x9d, 0xde, 0x9c, 0x57, 0x5a, 0x8e, 0xdc, 0x16, 0x5e, 0x58, 0x85, 0x49, 0x4e, 0xac, 0xd2, 0xad, - 0x26, 0x16, 0x08, 0xa1, 0x03, 0xb3, 0x70, 0xd3, 0xbf, 0xf2, 0x75, 0xba, 0x7c, 0x2b, 0x13, 0x9c, - 0x95, 0xd4, 0xb1, 0x58, 0x69, 0x41, 0x81, 0x3b, 0x42, 0x78, 0x6c, 0x92, 0x62, 0x3b, 0x02, 0xf1, - 0x5f, 0x72, 0xc4, 0xc9, 0x00, 0x62, 0x83, 0xb3, 0x2e, 0xd4, 0x60, 0xfc, 0x30, 0x58, 0xff, 0x8a, - 0x63, 0x15, 0x70, 0x10, 0xe4, 0x12, 0x94, 0x28, 0x48, 0xb3, 0xeb, 0xb8, 0x66, 0x87, 0x5a, 0xc0, - 0x83, 0x61, 0xfe, 0xf5, 0xd7, 0xd9, 0xac, 0x29, 0x12, 0xb6, 0x9a, 0xc7, 0xb5, 0xb0, 0x00, 0x74, - 0x77, 0xad, 0x85, 0x9b, 0xed, 0x08, 0x84, 0x2f, 0xf3, 0x86, 0x78, 0xf4, 0x0b, 0x57, 0x61, 0x8a, - 0xfc, 0xa6, 0x06, 0x2a, 0xd8, 0x92, 0xe8, 0x94, 0xdd, 0xf4, 0x57, 0xdf, 0xcb, 0x26, 0xe6, 0xa4, - 0x07, 0x10, 0x68, 0x53, 0x60, 0x14, 0x77, 0xb0, 0xeb, 0x62, 0xdb, 0x51, 0xb5, 0xf6, 0xa0, 0xe6, - 0x05, 0x72, 0x1e, 0xd3, 0x3f, 0xfb, 0xed, 0xf0, 0x28, 0x5e, 0x62, 0x9c, 0x95, 0x76, 0x7b, 0x61, - 0x13, 0x8e, 0x0e, 0xd0, 0x8a, 0x11, 0x30, 0x3f, 0xc2, 0x31, 0xa7, 0xfa, 0x34, 0x83, 0xc0, 0xae, - 0x83, 0x28, 0xf7, 0xc6, 0x72, 0x04, 0xcc, 0x9f, 0xe3, 0x98, 0x88, 0xf3, 0x8a, 0x21, 0x25, 0x88, - 0x57, 0x60, 0xe2, 0x3a, 0xb6, 0xb7, 0x4c, 0x87, 0xe7, 0x99, 0x46, 0x80, 0xfb, 0x28, 0x87, 0x2b, - 0x71, 0x46, 0x9a, 0x78, 0x22, 0x58, 0x4f, 0x42, 0x76, 0x5b, 0x6b, 0xe2, 0x11, 0x20, 0x6e, 0x71, - 0x88, 0x0c, 0xa1, 0x27, 0xac, 0x15, 0x28, 0xec, 0x98, 0x7c, 0x8d, 0x8a, 0x66, 0xff, 0x18, 0x67, - 0xcf, 0x0b, 0x1e, 0x0e, 0x61, 0x99, 0x56, 0xb7, 0x4d, 0x16, 0xb0, 0x68, 0x88, 0xbf, 0x2f, 0x20, - 0x04, 0x0f, 0x87, 0x38, 0x84, 0x58, 0x5f, 0x11, 0x10, 0x4e, 0x40, 0x9e, 0x4f, 0x43, 0xde, 0x34, - 0xda, 0xfb, 0xa6, 0x31, 0x4a, 0x23, 0x3e, 0xce, 0x11, 0x80, 0xb3, 0x10, 0x80, 0x0b, 0x90, 0x1b, - 0x75, 0x20, 0x7e, 0xe1, 0xdb, 0x62, 0x7a, 0x88, 0x11, 0xb8, 0x04, 0x25, 0x61, 0xa0, 0x74, 0xd3, - 0x18, 0x01, 0xe2, 0x93, 0x1c, 0xa2, 0x18, 0x60, 0xe3, 0xdd, 0x70, 0xb1, 0xe3, 0xee, 0xe0, 0x51, - 0x40, 0x3e, 0x25, 0xba, 0xc1, 0x59, 0xb8, 0x28, 0xb7, 0xb0, 0xd1, 0xdc, 0x1d, 0x0d, 0xe1, 0xd3, - 0x42, 0x94, 0x82, 0x87, 0x40, 0xd4, 0x60, 0xbc, 0xa3, 0xd9, 0xce, 0xae, 0xd6, 0x1e, 0x69, 0x38, - 0x7e, 0x91, 0x63, 0x14, 0x3c, 0x26, 0x2e, 0x91, 0xae, 0x71, 0x18, 0x98, 0x5f, 0x12, 0x12, 0x09, - 0xb0, 0xf1, 0xa9, 0xe7, 0xb8, 0x34, 0x29, 0x77, 0x18, 0xb4, 0x7f, 0x28, 0xa6, 0x1e, 0xe3, 0x5d, - 0x09, 0x22, 0x5e, 0x80, 0x9c, 0xa3, 0xbf, 0x34, 0x12, 0xcc, 0x3f, 0x12, 0x23, 0x4d, 0x19, 0x08, - 0xf3, 0xf3, 0x70, 0x6c, 0xe0, 0x32, 0x31, 0x02, 0xd8, 0x3f, 0xe6, 0x60, 0x47, 0x06, 0x2c, 0x15, - 0xdc, 0x24, 0x1c, 0x16, 0xf2, 0x97, 0x85, 0x49, 0xc0, 0x3d, 0x58, 0xeb, 0x24, 0x6a, 0x70, 0xb4, - 0xed, 0xc3, 0x49, 0xed, 0x9f, 0x08, 0xa9, 0x31, 0xde, 0x90, 0xd4, 0x36, 0xe0, 0x08, 0x47, 0x3c, - 0xdc, 0xb8, 0x7e, 0x46, 0x18, 0x56, 0xc6, 0xbd, 0x19, 0x1e, 0xdd, 0x1f, 0x84, 0xb2, 0x27, 0x4e, - 0xe1, 0x9e, 0x3a, 0x6a, 0x47, 0xb3, 0x46, 0x40, 0xfe, 0x15, 0x8e, 0x2c, 0x2c, 0xbe, 0xe7, 0xdf, - 0x3a, 0x2b, 0x9a, 0x45, 0xc0, 0x9f, 0x83, 0x69, 0x01, 0xde, 0x35, 0x6c, 0xdc, 0x34, 0x77, 0x0c, - 0xfd, 0x25, 0xdc, 0x1a, 0x01, 0xfa, 0x57, 0x7b, 0x86, 0x6a, 0x33, 0xc0, 0x4e, 0x90, 0x97, 0x40, - 0xf2, 0x7c, 0x15, 0x55, 0xef, 0x58, 0xa6, 0xed, 0x46, 0x20, 0x7e, 0x56, 0x8c, 0x94, 0xc7, 0xb7, - 0x44, 0xd9, 0x16, 0xea, 0xc0, 0x76, 0xaa, 0x47, 0x55, 0xc9, 0xcf, 0x71, 0xa0, 0x71, 0x9f, 0x8b, - 0x1b, 0x8e, 0xa6, 0xd9, 0xb1, 0x34, 0x7b, 0x14, 0xfb, 0xf7, 0x4f, 0x85, 0xe1, 0xe0, 0x2c, 0xdc, - 0x70, 0x10, 0x8f, 0x8e, 0xac, 0xf6, 0x23, 0x20, 0x7c, 0x5e, 0x18, 0x0e, 0xc1, 0xc3, 0x21, 0x84, - 0xc3, 0x30, 0x02, 0xc4, 0x17, 0x04, 0x84, 0xe0, 0x21, 0x10, 0xef, 0xf0, 0x17, 0x5a, 0x1b, 0xef, - 0xe8, 0x8e, 0x6b, 0x33, 0xa7, 0xf8, 0x60, 0xa8, 0x2f, 0x7e, 0x3b, 0xec, 0x84, 0x29, 0x01, 0x56, - 0x62, 0x89, 0x78, 0x9a, 0x96, 0xc6, 0x4c, 0xd1, 0x0d, 0xfb, 0x35, 0x61, 0x89, 0x02, 0x6c, 0xa4, - 0x6d, 0x01, 0x0f, 0x91, 0x88, 0xbd, 0x49, 0x22, 0x85, 0x11, 0xe0, 0xfe, 0x59, 0x4f, 0xe3, 0x1a, - 0x82, 0x97, 0x60, 0x06, 0xfc, 0x9f, 0xae, 0x71, 0x0d, 0xef, 0x8f, 0xa4, 0x9d, 0xbf, 0xde, 0xe3, - 0xff, 0x6c, 0x32, 0x4e, 0x66, 0x43, 0x4a, 0x3d, 0xfe, 0x14, 0x8a, 0x3a, 0x97, 0x34, 0xfd, 0xc3, - 0xaf, 0xf3, 0xfe, 0x86, 0xdd, 0xa9, 0x85, 0x65, 0xa2, 0xe4, 0x61, 0xa7, 0x27, 0x1a, 0xec, 0xbd, - 0xaf, 0x7b, 0x7a, 0x1e, 0xf2, 0x79, 0x16, 0x2e, 0xc2, 0x78, 0xc8, 0xe1, 0x89, 0x86, 0xfa, 0x51, - 0x0e, 0x55, 0x08, 0xfa, 0x3b, 0x0b, 0xe7, 0x20, 0x49, 0x9c, 0x97, 0x68, 0xf6, 0x1f, 0xe3, 0xec, - 0x94, 0x7c, 0xe1, 0x29, 0xc8, 0x0a, 0xa7, 0x25, 0x9a, 0xf5, 0x6f, 0x71, 0x56, 0x8f, 0x85, 0xb0, - 0x0b, 0x87, 0x25, 0x9a, 0xfd, 0x6f, 0x0b, 0x76, 0xc1, 0x42, 0xd8, 0x47, 0x17, 0xe1, 0x97, 0xfe, - 0x4e, 0x92, 0x2f, 0x3a, 0x42, 0x76, 0x17, 0x20, 0xc3, 0x3d, 0x95, 0x68, 0xee, 0x1f, 0xe7, 0x2f, - 0x17, 0x1c, 0x0b, 0x8f, 0x43, 0x6a, 0x44, 0x81, 0xff, 0x5d, 0xce, 0xca, 0xe8, 0x17, 0x6a, 0x90, - 0x0f, 0x78, 0x27, 0xd1, 0xec, 0xef, 0xe7, 0xec, 0x41, 0x2e, 0xd2, 0x74, 0xee, 0x9d, 0x44, 0x03, - 0xfc, 0xa4, 0x68, 0x3a, 0xe7, 0x20, 0x62, 0x13, 0x8e, 0x49, 0x34, 0xf7, 0x07, 0x84, 0xd4, 0x05, - 0xcb, 0xc2, 0xd3, 0x90, 0xf3, 0x16, 0x9b, 0x68, 0xfe, 0x9f, 0xe2, 0xfc, 0x3e, 0x0f, 0x91, 0x40, - 0x60, 0xb1, 0x8b, 0x86, 0xf8, 0xa0, 0x90, 0x40, 0x80, 0x8b, 0x4c, 0xa3, 0x5e, 0x07, 0x26, 0x1a, - 0xe9, 0x43, 0x62, 0x1a, 0xf5, 0xf8, 0x2f, 0x64, 0x34, 0xa9, 0xcd, 0x8f, 0x86, 0xf8, 0x7b, 0x62, - 0x34, 0x29, 0x3d, 0x69, 0x46, 0xaf, 0x47, 0x10, 0x8d, 0xf1, 0x33, 0xa2, 0x19, 0x3d, 0x0e, 0xc1, - 0xc2, 0x3a, 0xa0, 0x7e, 0x6f, 0x20, 0x1a, 0xef, 0xc3, 0x1c, 0x6f, 0xa2, 0xcf, 0x19, 0x58, 0x78, - 0x16, 0x8e, 0x0c, 0xf6, 0x04, 0xa2, 0x51, 0x7f, 0xf6, 0xf5, 0x9e, 0xd8, 0x2d, 0xe8, 0x08, 0x2c, - 0x6c, 0xf8, 0x4b, 0x4a, 0xd0, 0x0b, 0x88, 0x86, 0xfd, 0xc8, 0xeb, 0x61, 0xc3, 0x1d, 0x74, 0x02, - 0x16, 0x2a, 0x00, 0xfe, 0x02, 0x1c, 0x8d, 0xf5, 0x51, 0x8e, 0x15, 0x60, 0x22, 0x53, 0x83, 0xaf, - 0xbf, 0xd1, 0xfc, 0xb7, 0xc4, 0xd4, 0xe0, 0x1c, 0x64, 0x6a, 0x88, 0xa5, 0x37, 0x9a, 0xfb, 0x63, - 0x62, 0x6a, 0x08, 0x16, 0xa2, 0xd9, 0x81, 0xd5, 0x2d, 0x1a, 0xe1, 0xe3, 0x42, 0xb3, 0x03, 0x5c, - 0x0b, 0xab, 0x30, 0xd1, 0xb7, 0x20, 0x46, 0x43, 0xfd, 0x3c, 0x87, 0x92, 0x7a, 0xd7, 0xc3, 0xe0, - 0xe2, 0xc5, 0x17, 0xc3, 0x68, 0xb4, 0x4f, 0xf4, 0x2c, 0x5e, 0x7c, 0x2d, 0x5c, 0xb8, 0x00, 0x59, - 0xa3, 0xdb, 0x6e, 0x93, 0xc9, 0x83, 0x0e, 0x3e, 0x4b, 0x38, 0xfd, 0xdf, 0xbe, 0xcb, 0xa5, 0x23, - 0x18, 0x16, 0xce, 0x41, 0x0a, 0x77, 0xb6, 0x70, 0x2b, 0x8a, 0xf3, 0x5b, 0xdf, 0x15, 0x06, 0x93, - 0x50, 0x2f, 0x3c, 0x0d, 0xc0, 0x52, 0x23, 0x74, 0xf3, 0x30, 0x82, 0xf7, 0x8f, 0xbe, 0xcb, 0x0f, - 0xef, 0xf8, 0x2c, 0x3e, 0x00, 0x3b, 0x0a, 0x74, 0x30, 0xc0, 0xb7, 0xc3, 0x00, 0x74, 0x44, 0x9e, - 0x84, 0xcc, 0x8b, 0x8e, 0x69, 0xb8, 0xda, 0x4e, 0x14, 0xf7, 0x1f, 0x73, 0x6e, 0x41, 0x4f, 0x04, - 0xd6, 0x31, 0x6d, 0xec, 0x6a, 0x3b, 0x4e, 0x14, 0xef, 0x7f, 0xe7, 0xbc, 0x1e, 0x03, 0x61, 0x6e, - 0x6a, 0x8e, 0x3b, 0x4a, 0xbf, 0xff, 0x44, 0x30, 0x0b, 0x06, 0xd2, 0x68, 0xf2, 0xfb, 0x1a, 0xde, - 0x8f, 0xe2, 0xfd, 0x53, 0xd1, 0x68, 0x4e, 0xbf, 0xf0, 0x14, 0xe4, 0xc8, 0x4f, 0x76, 0x22, 0x2f, - 0x82, 0xf9, 0xcf, 0x38, 0xb3, 0xcf, 0x41, 0xde, 0xec, 0xb8, 0x2d, 0x57, 0x8f, 0x16, 0xf6, 0x77, - 0xf8, 0x48, 0x0b, 0xfa, 0x85, 0x0a, 0xe4, 0x1d, 0xb7, 0xd5, 0xea, 0x72, 0xff, 0x34, 0x82, 0xfd, - 0xcf, 0xbf, 0xeb, 0xa5, 0x2c, 0x3c, 0x1e, 0x32, 0xda, 0x37, 0xae, 0xb9, 0x96, 0x49, 0x37, 0x3c, - 0xa2, 0x10, 0x5e, 0xe7, 0x08, 0x01, 0x96, 0x85, 0x1a, 0x14, 0x48, 0x5f, 0x6c, 0x6c, 0x61, 0xba, - 0x3b, 0x15, 0x01, 0xf1, 0x17, 0x5c, 0x00, 0x21, 0xa6, 0xea, 0xbb, 0xbf, 0xfc, 0xda, 0x4c, 0xec, - 0x2b, 0xaf, 0xcd, 0xc4, 0xfe, 0xe0, 0xb5, 0x99, 0xd8, 0x07, 0xbe, 0x36, 0x33, 0xf6, 0x95, 0xaf, - 0xcd, 0x8c, 0xfd, 0xde, 0xd7, 0x66, 0xc6, 0x06, 0x67, 0x89, 0xe1, 0x92, 0x79, 0xc9, 0x64, 0xf9, - 0xe1, 0x17, 0xee, 0xdb, 0xd1, 0xdd, 0xdd, 0xee, 0xd6, 0x7c, 0xd3, 0xec, 0x9c, 0x69, 0x9a, 0x4e, - 0xc7, 0x74, 0xce, 0x84, 0xf3, 0xba, 0xf4, 0x17, 0xfc, 0x9f, 0x18, 0x89, 0x99, 0xc3, 0xe9, 0x5c, - 0xcd, 0xd8, 0x1f, 0xf6, 0x79, 0xcf, 0x79, 0x48, 0x54, 0x8c, 0x7d, 0x74, 0x8c, 0x19, 0x38, 0xb5, - 0x6b, 0xb7, 0xf9, 0xb1, 0xb0, 0x0c, 0x79, 0xde, 0xb4, 0xdb, 0x68, 0xca, 0x3f, 0xbb, 0x19, 0x3b, - 0x59, 0xe0, 0x07, 0x32, 0xab, 0xef, 0x8f, 0x1d, 0xae, 0x27, 0xd9, 0x8a, 0xb1, 0x4f, 0x3b, 0xb2, - 0x1e, 0x7b, 0xe1, 0xc1, 0xc8, 0x3c, 0xf7, 0x35, 0xc3, 0xbc, 0x61, 0x90, 0x66, 0x5b, 0x5b, 0x22, - 0xc7, 0x3d, 0xd3, 0x9b, 0xe3, 0x7e, 0x16, 0xb7, 0xdb, 0xcf, 0x10, 0xba, 0x0d, 0xc2, 0xb2, 0x95, - 0x66, 0x27, 0x90, 0xe1, 0x43, 0x71, 0x98, 0xe9, 0x4b, 0x67, 0x73, 0x25, 0x18, 0x26, 0x84, 0x05, - 0xc8, 0x2e, 0x0a, 0xdd, 0x9a, 0x86, 0x8c, 0x83, 0x9b, 0xa6, 0xd1, 0x72, 0xa8, 0x20, 0x12, 0x8a, - 0x78, 0x24, 0x82, 0x30, 0x34, 0xc3, 0x74, 0xf8, 0xc1, 0x4a, 0xf6, 0x50, 0xfd, 0xb9, 0x43, 0x0a, - 0x62, 0x5c, 0xbc, 0x49, 0x48, 0xe3, 0x91, 0x11, 0xa5, 0x21, 0x3a, 0x11, 0xca, 0xfc, 0x8f, 0x2a, - 0x95, 0x9f, 0x89, 0xc3, 0x6c, 0xaf, 0x54, 0xc8, 0xcc, 0x72, 0x5c, 0xad, 0x63, 0x0d, 0x13, 0xcb, - 0x05, 0xc8, 0x6d, 0x08, 0x9a, 0x43, 0xcb, 0xe5, 0xd6, 0x21, 0xe5, 0x52, 0xf4, 0x5e, 0x25, 0x04, - 0x73, 0x76, 0x44, 0xc1, 0x78, 0xfd, 0xb8, 0x2d, 0xc9, 0xfc, 0x65, 0x1a, 0x8e, 0xb1, 0xe9, 0xa4, - 0xb2, 0xa9, 0xc4, 0x1e, 0xb8, 0x4c, 0x0a, 0xc1, 0xaa, 0xe8, 0x7d, 0x12, 0xf9, 0x19, 0x98, 0x5c, - 0x22, 0xd6, 0x82, 0x44, 0x41, 0xfe, 0x0e, 0xcf, 0xc0, 0xb3, 0xa7, 0x73, 0x21, 0x87, 0x9f, 0xef, - 0x30, 0x05, 0x8b, 0xe4, 0x1f, 0x8e, 0x81, 0xd4, 0x68, 0x6a, 0x6d, 0xcd, 0xfe, 0x5e, 0xa1, 0xd0, - 0xe3, 0x00, 0xf4, 0x9b, 0x25, 0xff, 0x23, 0xa3, 0xe2, 0xd9, 0xe9, 0xf9, 0x60, 0xe7, 0xe6, 0xd9, - 0x9b, 0xe8, 0x17, 0x0c, 0x39, 0x4a, 0x4b, 0x7e, 0x9e, 0x7e, 0x0e, 0xc0, 0xaf, 0x40, 0xc7, 0xe1, - 0x68, 0xa3, 0x56, 0x59, 0xae, 0x28, 0x2a, 0x3b, 0x0c, 0xbf, 0xda, 0x58, 0xaf, 0xd7, 0x96, 0x2e, - 0x2e, 0xd5, 0x17, 0xa5, 0x31, 0x74, 0x04, 0x50, 0xb0, 0xd2, 0x3b, 0x97, 0x72, 0x07, 0x4c, 0x04, - 0xcb, 0xd9, 0x89, 0xfa, 0x38, 0xf1, 0x14, 0xf5, 0x8e, 0xd5, 0xc6, 0x74, 0xeb, 0x4f, 0xd5, 0x85, - 0xd4, 0xa2, 0x9d, 0x90, 0xdf, 0xfe, 0x0f, 0xec, 0x94, 0xf5, 0xa4, 0xcf, 0xee, 0xc9, 0x7c, 0x61, - 0x19, 0x26, 0xb4, 0x66, 0x13, 0x5b, 0x21, 0xc8, 0x08, 0x53, 0x4d, 0x00, 0xe9, 0x66, 0x26, 0xe7, - 0xf4, 0xd1, 0x1e, 0x87, 0xb4, 0x43, 0x7b, 0x1f, 0x05, 0xf1, 0x3b, 0x1c, 0x82, 0x93, 0x2f, 0x18, - 0x30, 0x41, 0x3c, 0x3f, 0xcd, 0xc6, 0x81, 0x66, 0x1c, 0x9c, 0x67, 0xf8, 0x8d, 0xcf, 0x3e, 0x4c, - 0xb7, 0x36, 0xef, 0x0e, 0x0f, 0xcb, 0x00, 0x75, 0x52, 0x24, 0x8e, 0xed, 0x37, 0x14, 0x43, 0x51, - 0xbc, 0x8f, 0x37, 0xf8, 0xe0, 0x97, 0xfd, 0x26, 0x7f, 0xd9, 0xcc, 0x20, 0x1d, 0x08, 0xbc, 0x69, - 0x9c, 0xa3, 0xb2, 0x8a, 0x6a, 0x7d, 0xd8, 0x9c, 0x7e, 0xe1, 0x81, 0xfe, 0xd5, 0x89, 0xfd, 0xf7, - 0x10, 0x45, 0xbe, 0x10, 0x7c, 0x8d, 0x37, 0xf7, 0x3e, 0x98, 0x84, 0x09, 0xad, 0xa3, 0x1b, 0xe6, - 0x19, 0xfa, 0x2f, 0x9f, 0x73, 0x29, 0xfa, 0x30, 0xc2, 0xa6, 0xe4, 0x79, 0x36, 0x15, 0xa2, 0x35, - 0xe6, 0xcf, 0x7e, 0xe2, 0x93, 0x29, 0x7f, 0xba, 0x2c, 0xac, 0x80, 0x24, 0x0e, 0x1c, 0x62, 0xa3, - 0x69, 0xb6, 0x46, 0xca, 0x52, 0x7c, 0x47, 0x60, 0x88, 0xfc, 0x56, 0x9d, 0xb3, 0x2e, 0xbc, 0x0d, - 0xb2, 0x1e, 0x4c, 0x94, 0x67, 0x22, 0x40, 0x3c, 0x0e, 0xe2, 0x97, 0xb0, 0x99, 0x39, 0x8a, 0x17, - 0xfa, 0xba, 0xe0, 0x67, 0x33, 0x74, 0x95, 0xf4, 0xe6, 0x12, 0x14, 0x5b, 0xa6, 0xe1, 0xaa, 0x66, - 0x47, 0x77, 0x71, 0xc7, 0x72, 0x23, 0xfd, 0xba, 0xbf, 0x60, 0x20, 0x59, 0x65, 0x9c, 0xf0, 0xad, - 0x09, 0xb6, 0x85, 0xf3, 0x23, 0xfa, 0xe1, 0xff, 0x43, 0xf0, 0x33, 0xf2, 0xdb, 0x52, 0x0a, 0xa7, - 0x75, 0x8d, 0xdb, 0x70, 0x77, 0x8f, 0x0d, 0xbe, 0xa7, 0x14, 0x7f, 0x92, 0x80, 0x19, 0x4e, 0xbc, - 0xa5, 0x39, 0xf8, 0xcc, 0xf5, 0x47, 0xb6, 0xb0, 0xab, 0x3d, 0x72, 0xa6, 0x69, 0xea, 0x62, 0x01, - 0x9f, 0xe4, 0x36, 0x9a, 0xd4, 0xcf, 0xf3, 0xfa, 0xf2, 0xc0, 0x5d, 0xee, 0xf2, 0x70, 0xdb, 0x5e, - 0xee, 0x57, 0x3d, 0xf9, 0x05, 0x48, 0xd6, 0x4c, 0xdd, 0x20, 0x4b, 0x5a, 0x0b, 0x1b, 0x66, 0x87, - 0x5b, 0x59, 0xf6, 0x80, 0xce, 0x43, 0x5a, 0xeb, 0x98, 0x5d, 0xc3, 0x65, 0x16, 0xb6, 0x3a, 0xf3, - 0xe5, 0x57, 0x67, 0xc7, 0xfe, 0xd3, 0xab, 0xb3, 0x89, 0x25, 0xc3, 0xfd, 0xdd, 0xcf, 0x3d, 0x04, - 0x1c, 0x7d, 0xc9, 0x70, 0x3f, 0xfd, 0x8d, 0xcf, 0x9c, 0x8e, 0x29, 0x9c, 0x7a, 0x21, 0xf9, 0xcd, - 0x57, 0x66, 0x63, 0xf2, 0x73, 0x90, 0x59, 0xc4, 0xcd, 0x03, 0xe0, 0x1f, 0xe9, 0x81, 0x3f, 0x26, - 0xe0, 0x17, 0x71, 0x33, 0x00, 0xbf, 0x88, 0x9b, 0x3d, 0xc8, 0x8f, 0x43, 0x76, 0xc9, 0x70, 0xd9, - 0x57, 0x0e, 0x0f, 0x40, 0x42, 0x37, 0xd8, 0xc1, 0xd9, 0x00, 0x42, 0x5f, 0x03, 0x15, 0x42, 0x45, - 0x18, 0x17, 0x71, 0xd3, 0x63, 0x6c, 0xe1, 0x66, 0x2f, 0x63, 0xff, 0xab, 0x09, 0x55, 0x75, 0xf1, - 0xf7, 0xfe, 0xeb, 0xcc, 0xd8, 0xcb, 0xaf, 0xcd, 0x8c, 0x0d, 0x1d, 0x7a, 0x39, 0x7a, 0xe8, 0xbd, - 0x11, 0xff, 0x64, 0x12, 0xee, 0xa2, 0x1f, 0xbf, 0xd9, 0x1d, 0xdd, 0x70, 0xcf, 0x34, 0xed, 0x7d, - 0xcb, 0x35, 0xc9, 0xbc, 0x37, 0xb7, 0xf9, 0x80, 0x4f, 0xf8, 0xd5, 0xf3, 0xac, 0x7a, 0xf0, 0x70, - 0xcb, 0xdb, 0x90, 0x5a, 0x27, 0x7c, 0x44, 0xc4, 0xae, 0xe9, 0x6a, 0x6d, 0xee, 0xac, 0xb0, 0x07, - 0x52, 0xca, 0x3e, 0x98, 0x8b, 0xb3, 0x52, 0x5d, 0x7c, 0x2b, 0xd7, 0xc6, 0xda, 0x36, 0xfb, 0xee, - 0x20, 0x41, 0xbd, 0xdc, 0x2c, 0x29, 0xa0, 0x9f, 0x18, 0x4c, 0x41, 0x4a, 0xeb, 0xb2, 0x03, 0x2f, - 0x09, 0xe2, 0xfe, 0xd2, 0x07, 0xf9, 0x19, 0xc8, 0xf0, 0x6d, 0x77, 0x24, 0x41, 0xe2, 0x1a, 0xde, - 0xa7, 0xef, 0x29, 0x28, 0xe4, 0x27, 0x9a, 0x87, 0x14, 0x6d, 0x3c, 0xff, 0xa0, 0x6a, 0x7a, 0xbe, - 0xaf, 0xf5, 0xf3, 0xb4, 0x91, 0x0a, 0x23, 0x93, 0xaf, 0x40, 0x76, 0xd1, 0x24, 0x5a, 0x18, 0x46, - 0xcb, 0x31, 0x34, 0xda, 0x66, 0xab, 0xcb, 0xb5, 0x42, 0x61, 0x0f, 0xe8, 0x08, 0xa4, 0xd9, 0x77, - 0x28, 0xfc, 0xd0, 0x0e, 0x7f, 0x92, 0x6b, 0x90, 0xa1, 0xd8, 0x6b, 0x16, 0xf1, 0x14, 0xbc, 0x23, - 0xbf, 0x39, 0xfe, 0x55, 0x22, 0x87, 0x8f, 0xfb, 0x8d, 0x45, 0x90, 0x6c, 0x69, 0xae, 0xc6, 0xfb, - 0x4d, 0x7f, 0xcb, 0x6f, 0x87, 0x2c, 0x07, 0x71, 0xd0, 0x59, 0x48, 0x98, 0x96, 0xc3, 0x8f, 0xdd, - 0x94, 0x87, 0x75, 0x65, 0xcd, 0xaa, 0x26, 0x89, 0xce, 0x28, 0x84, 0xb8, 0xba, 0x3a, 0x54, 0x2d, - 0x1e, 0x0b, 0xa9, 0x45, 0x07, 0xbb, 0x5b, 0xdb, 0xae, 0xff, 0x83, 0x0d, 0x67, 0x9f, 0x2a, 0x78, - 0x8a, 0x72, 0x2b, 0x0e, 0x33, 0x81, 0xda, 0xeb, 0xd8, 0x76, 0x74, 0xd3, 0x60, 0xda, 0xc4, 0x35, - 0x05, 0x05, 0x1a, 0xc8, 0xeb, 0x87, 0xa8, 0xca, 0x53, 0x90, 0xa8, 0x58, 0x16, 0x2a, 0x43, 0x96, - 0x3e, 0x37, 0x4d, 0xa6, 0x2b, 0x49, 0xc5, 0x7b, 0x26, 0x75, 0x8e, 0xb9, 0xed, 0xde, 0xd0, 0x6c, - 0xef, 0x33, 0x4d, 0xf1, 0x2c, 0x3f, 0x09, 0xb9, 0x9a, 0x69, 0x38, 0xd8, 0x70, 0xba, 0xd4, 0x05, - 0xde, 0x6a, 0x9b, 0xcd, 0x6b, 0x1c, 0x81, 0x3d, 0x10, 0x61, 0x6b, 0x96, 0x45, 0x39, 0x93, 0x0a, - 0xf9, 0xc9, 0xe6, 0x6b, 0x75, 0x6d, 0xa8, 0x78, 0xce, 0x1d, 0x4e, 0x3c, 0xbc, 0x83, 0xbe, 0x2f, - 0x1b, 0x83, 0x3b, 0xfb, 0x27, 0xd2, 0x35, 0xbc, 0xef, 0x1c, 0x76, 0x1e, 0x3d, 0x07, 0xb9, 0x75, - 0x7a, 0x4f, 0xc2, 0x33, 0x78, 0x1f, 0x95, 0x21, 0x83, 0x5b, 0x67, 0xcf, 0x9d, 0x7b, 0xe4, 0x49, - 0xa6, 0xe5, 0x97, 0xc7, 0x14, 0x51, 0x80, 0x66, 0x20, 0xe7, 0xe0, 0xa6, 0x75, 0xf6, 0xdc, 0xf9, - 0x6b, 0x8f, 0x30, 0xb5, 0xba, 0x3c, 0xa6, 0xf8, 0x45, 0x0b, 0x59, 0xd2, 0xe3, 0x6f, 0x7e, 0x7c, - 0x36, 0x56, 0x4d, 0x41, 0xc2, 0xe9, 0x76, 0xde, 0x34, 0xdd, 0xf8, 0xe9, 0x14, 0xcc, 0x05, 0x6a, - 0xd9, 0xe2, 0x72, 0x5d, 0x6b, 0xeb, 0x2d, 0xcd, 0xbf, 0xdd, 0x42, 0x0a, 0xf4, 0x9f, 0x52, 0x0c, - 0x59, 0x35, 0x0e, 0x94, 0xa2, 0xfc, 0xab, 0x31, 0x28, 0x5c, 0x15, 0xc8, 0x0d, 0xec, 0xa2, 0x0b, - 0x00, 0xde, 0x9b, 0xc4, 0x54, 0x39, 0x3e, 0xdf, 0xfb, 0xae, 0x79, 0x8f, 0x47, 0x09, 0x90, 0xa3, - 0xc7, 0xa9, 0x02, 0x5a, 0xa6, 0xc3, 0x3f, 0xd9, 0x8b, 0x60, 0xf5, 0x88, 0xd1, 0x83, 0x80, 0xa8, - 0x55, 0x53, 0xaf, 0x9b, 0xae, 0x6e, 0xec, 0xa8, 0x96, 0x79, 0x83, 0x7f, 0x08, 0x9d, 0x50, 0x24, - 0x5a, 0x73, 0x95, 0x56, 0xac, 0x93, 0x72, 0xd2, 0xe8, 0x9c, 0x87, 0x42, 0xa2, 0x39, 0xad, 0xd5, - 0xb2, 0xb1, 0xe3, 0x70, 0xc3, 0x25, 0x1e, 0xd1, 0x05, 0xc8, 0x58, 0xdd, 0x2d, 0x55, 0x58, 0x89, - 0xfc, 0xd9, 0x3b, 0x07, 0xcd, 0x79, 0xa1, 0x1b, 0x7c, 0xd6, 0xa7, 0xad, 0xee, 0x16, 0xd1, 0x94, - 0xbb, 0xa1, 0x30, 0xa0, 0x31, 0xf9, 0xeb, 0x7e, 0x3b, 0xe8, 0xd5, 0x1c, 0xbc, 0x07, 0xaa, 0x65, - 0xeb, 0xa6, 0xad, 0xbb, 0xfb, 0xf4, 0xbc, 0x5c, 0x42, 0x91, 0x44, 0xc5, 0x3a, 0x2f, 0x97, 0xaf, - 0x41, 0xa9, 0x41, 0xbd, 0x7c, 0xbf, 0xe5, 0xe7, 0xfc, 0xf6, 0xc5, 0xa2, 0xdb, 0x37, 0xb4, 0x65, - 0xf1, 0xbe, 0x96, 0x55, 0x57, 0x86, 0x6a, 0xe6, 0xa3, 0x87, 0xd3, 0xcc, 0xf0, 0xea, 0xf6, 0x47, - 0xc7, 0x42, 0x93, 0x92, 0x7b, 0x3d, 0x01, 0x93, 0x35, 0xaa, 0x52, 0x46, 0x05, 0xf0, 0xe5, 0x83, - 0x17, 0xd1, 0x72, 0x84, 0xe9, 0x2c, 0x47, 0x4e, 0x1f, 0xf9, 0x49, 0x18, 0x5f, 0xd7, 0x6c, 0xb7, - 0x81, 0xdd, 0xcb, 0x58, 0x6b, 0x61, 0x3b, 0xbc, 0xca, 0x8e, 0x8b, 0x55, 0x16, 0x41, 0x92, 0x2e, - 0xa5, 0x6c, 0x95, 0xa1, 0xbf, 0xe5, 0x5d, 0x48, 0xd2, 0xf3, 0xb2, 0xde, 0x0a, 0xcc, 0x39, 0xd8, - 0x0a, 0x4c, 0xec, 0xe7, 0xbe, 0x8b, 0x1d, 0x91, 0x63, 0xa2, 0x0f, 0xe8, 0x31, 0xb1, 0x8e, 0x26, - 0x0e, 0x5e, 0x47, 0xb9, 0x12, 0xf2, 0xd5, 0xb4, 0x0d, 0x99, 0x2a, 0x31, 0xbf, 0x4b, 0x8b, 0x5e, - 0x43, 0x62, 0x7e, 0x43, 0xd0, 0x0a, 0x94, 0x2c, 0xcd, 0x76, 0xe9, 0xa7, 0x46, 0xbb, 0xb4, 0x17, - 0x5c, 0xcf, 0x67, 0xfb, 0x67, 0x5d, 0xa8, 0xb3, 0xfc, 0x2d, 0xe3, 0x56, 0xb0, 0x50, 0xfe, 0xc3, - 0x24, 0xa4, 0xb9, 0x30, 0x9e, 0x82, 0x0c, 0x17, 0x2b, 0xd7, 0xcc, 0xbb, 0xe6, 0xfb, 0x17, 0xa3, - 0x79, 0x6f, 0xd1, 0xe0, 0x78, 0x82, 0x07, 0xdd, 0x0f, 0xd9, 0xe6, 0xae, 0xa6, 0x1b, 0xaa, 0xde, - 0xe2, 0x0e, 0x60, 0xfe, 0xb5, 0x57, 0x67, 0x33, 0x35, 0x52, 0xb6, 0xb4, 0xa8, 0x64, 0x68, 0xe5, - 0x52, 0x8b, 0xac, 0xfc, 0xbb, 0x58, 0xdf, 0xd9, 0x75, 0xf9, 0xec, 0xe2, 0x4f, 0xe8, 0x09, 0x48, - 0x12, 0x85, 0xe0, 0x1f, 0xa2, 0x96, 0xfb, 0x7c, 0x78, 0x2f, 0xbf, 0x52, 0xcd, 0x92, 0x17, 0x7f, - 0xe0, 0xf7, 0x67, 0x63, 0x0a, 0xe5, 0x40, 0x35, 0x18, 0x6f, 0x6b, 0x8e, 0xab, 0xd2, 0x55, 0x8b, - 0xbc, 0x3e, 0x45, 0x21, 0x8e, 0xf5, 0x0b, 0x84, 0x0b, 0x96, 0x37, 0x3d, 0x4f, 0xb8, 0x58, 0x51, - 0x0b, 0x9d, 0x04, 0x89, 0x82, 0x34, 0xcd, 0x4e, 0x47, 0x77, 0x99, 0x2f, 0x95, 0xa6, 0x72, 0x2f, - 0x92, 0xf2, 0x1a, 0x2d, 0xa6, 0x1e, 0xd5, 0x71, 0xc8, 0xd1, 0x4f, 0xdf, 0x28, 0x09, 0x3b, 0xa4, - 0x9d, 0x25, 0x05, 0xb4, 0xf2, 0x04, 0x94, 0x7c, 0xdb, 0xc8, 0x48, 0xb2, 0x0c, 0xc5, 0x2f, 0xa6, - 0x84, 0x0f, 0xc3, 0x94, 0x81, 0xf7, 0xe8, 0xb1, 0xf1, 0x10, 0x75, 0x8e, 0x52, 0x23, 0x52, 0x77, - 0x35, 0xcc, 0x71, 0x1f, 0x14, 0x9b, 0x42, 0xf8, 0x8c, 0x16, 0x28, 0xed, 0xb8, 0x57, 0x4a, 0xc9, - 0x8e, 0x41, 0x56, 0xb3, 0x2c, 0x46, 0x90, 0xe7, 0xb6, 0xd1, 0xb2, 0x68, 0xd5, 0x69, 0x98, 0xa0, - 0x7d, 0xb4, 0xb1, 0xd3, 0x6d, 0xbb, 0x1c, 0xa4, 0x40, 0x69, 0x4a, 0xa4, 0x42, 0x61, 0xe5, 0x94, - 0xf6, 0x1e, 0x18, 0xc7, 0xd7, 0xf5, 0x16, 0x36, 0x9a, 0x98, 0xd1, 0x8d, 0x53, 0xba, 0x82, 0x28, - 0xa4, 0x44, 0xa7, 0xc0, 0xb3, 0x79, 0xaa, 0xb0, 0xc7, 0x45, 0x86, 0x27, 0xca, 0x2b, 0xac, 0x58, - 0x9e, 0x86, 0xe4, 0xa2, 0xe6, 0x6a, 0xc4, 0xa9, 0x70, 0xf7, 0xd8, 0x22, 0x53, 0x50, 0xc8, 0x4f, - 0xf9, 0x9b, 0x71, 0x48, 0x5e, 0x35, 0x5d, 0x8c, 0x1e, 0x0d, 0x38, 0x7c, 0xc5, 0x41, 0xfa, 0xdc, - 0xd0, 0x77, 0x0c, 0xdc, 0x5a, 0x71, 0x76, 0x02, 0xf7, 0x54, 0xf8, 0xea, 0x14, 0x0f, 0xa9, 0xd3, - 0x14, 0xa4, 0x6c, 0xb3, 0x6b, 0xb4, 0xc4, 0xf9, 0x66, 0xfa, 0x80, 0xea, 0x90, 0xf5, 0xb4, 0x24, - 0x19, 0xa5, 0x25, 0x25, 0xa2, 0x25, 0x44, 0x87, 0x79, 0x81, 0x92, 0xd9, 0xe2, 0xca, 0x52, 0x85, - 0x9c, 0x67, 0xbc, 0xb8, 0xb6, 0x8d, 0xa6, 0xb0, 0x3e, 0x1b, 0x59, 0x48, 0xbc, 0xb1, 0xf7, 0x84, - 0xc7, 0x34, 0x4e, 0xf2, 0x2a, 0xb8, 0xf4, 0x42, 0x6a, 0xc5, 0xef, 0xcc, 0xc8, 0xd0, 0x7e, 0xf9, - 0x6a, 0xc5, 0xee, 0xcd, 0xb8, 0x13, 0x72, 0x8e, 0xbe, 0x63, 0x68, 0x6e, 0xd7, 0xc6, 0x5c, 0xf3, - 0xfc, 0x02, 0xf9, 0x4b, 0x31, 0x48, 0x33, 0x4d, 0x0e, 0xc8, 0x2d, 0x36, 0x58, 0x6e, 0xf1, 0x61, - 0x72, 0x4b, 0xdc, 0xbe, 0xdc, 0x2a, 0x00, 0x5e, 0x63, 0x1c, 0x7e, 0x95, 0xc1, 0x00, 0x6f, 0x81, - 0x35, 0xb1, 0xa1, 0xef, 0xf0, 0x89, 0x1a, 0x60, 0x92, 0xff, 0x4b, 0x8c, 0x38, 0xae, 0xbc, 0x1e, - 0x55, 0x60, 0x5c, 0xb4, 0x4b, 0xdd, 0x6e, 0x6b, 0x3b, 0x5c, 0x77, 0xee, 0x1a, 0xda, 0xb8, 0x8b, - 0x6d, 0x6d, 0x47, 0xc9, 0xf3, 0xf6, 0x90, 0x87, 0xc1, 0xe3, 0x10, 0x1f, 0x32, 0x0e, 0xa1, 0x81, - 0x4f, 0xdc, 0xde, 0xc0, 0x87, 0x86, 0x28, 0xd9, 0x3b, 0x44, 0x9f, 0x8d, 0xd3, 0xe0, 0xc5, 0x32, - 0x1d, 0xad, 0xfd, 0x56, 0xcc, 0x88, 0xe3, 0x90, 0xb3, 0xcc, 0xb6, 0xca, 0x6a, 0xd8, 0xb9, 0xff, - 0xac, 0x65, 0xb6, 0x95, 0xbe, 0x61, 0x4f, 0xbd, 0x41, 0xd3, 0x25, 0xfd, 0x06, 0x48, 0x2d, 0xd3, - 0x2b, 0x35, 0x1b, 0x0a, 0x4c, 0x14, 0x7c, 0x2d, 0x7b, 0x98, 0xc8, 0x80, 0x2e, 0x8e, 0xb1, 0xfe, - 0xb5, 0x97, 0x35, 0x9b, 0x51, 0x2a, 0x9c, 0x8e, 0x70, 0x30, 0xd3, 0x3f, 0x28, 0xea, 0x0d, 0xaa, - 0xa5, 0xc2, 0xe9, 0xe4, 0x9f, 0x8e, 0x01, 0x2c, 0x13, 0xc9, 0xd2, 0xfe, 0x92, 0x55, 0xc8, 0xa1, - 0x4d, 0x50, 0x43, 0x6f, 0x9e, 0x19, 0x36, 0x68, 0xfc, 0xfd, 0x05, 0x27, 0xd8, 0xee, 0x1a, 0x8c, - 0xfb, 0xca, 0xe8, 0x60, 0xd1, 0x98, 0x99, 0x03, 0x3c, 0xea, 0x06, 0x76, 0x95, 0xc2, 0xf5, 0xc0, - 0x93, 0xfc, 0xcf, 0x63, 0x90, 0xa3, 0x6d, 0x5a, 0xc1, 0xae, 0x16, 0x1a, 0xc3, 0xd8, 0xed, 0x8f, - 0xe1, 0x5d, 0x00, 0x0c, 0xc6, 0xd1, 0x5f, 0xc2, 0x5c, 0xb3, 0x72, 0xb4, 0xa4, 0xa1, 0xbf, 0x84, - 0xd1, 0x79, 0x4f, 0xe0, 0x89, 0x83, 0x05, 0x2e, 0x3c, 0x6e, 0x2e, 0xf6, 0xa3, 0x90, 0xa1, 0x57, - 0x7f, 0xed, 0x39, 0xdc, 0x89, 0x4e, 0x1b, 0xdd, 0xce, 0xc6, 0x9e, 0x23, 0xbf, 0x08, 0x99, 0x8d, - 0x3d, 0x96, 0x0b, 0x39, 0x0e, 0x39, 0xdb, 0x34, 0xf9, 0x9a, 0xcc, 0x7c, 0xa1, 0x2c, 0x29, 0xa0, - 0x4b, 0x90, 0x88, 0xff, 0xe3, 0x7e, 0xfc, 0xef, 0x27, 0x30, 0x12, 0x23, 0x25, 0x30, 0x4e, 0xff, - 0xc7, 0x18, 0xe4, 0x03, 0xf6, 0x01, 0x3d, 0x02, 0x77, 0x54, 0x97, 0xd7, 0x6a, 0xcf, 0xa8, 0x4b, - 0x8b, 0xea, 0xc5, 0xe5, 0xca, 0x25, 0xff, 0xcb, 0xb6, 0xf2, 0x91, 0x9b, 0xb7, 0xe6, 0x50, 0x80, - 0x76, 0xd3, 0xa0, 0x9b, 0x38, 0xe8, 0x0c, 0x4c, 0x85, 0x59, 0x2a, 0xd5, 0x46, 0x7d, 0x75, 0x43, - 0x8a, 0x95, 0xef, 0xb8, 0x79, 0x6b, 0x6e, 0x22, 0xc0, 0x51, 0xd9, 0x72, 0xb0, 0xe1, 0xf6, 0x33, - 0xd4, 0xd6, 0x56, 0x56, 0x96, 0x36, 0xa4, 0x78, 0x1f, 0x03, 0x37, 0xd8, 0xa7, 0x60, 0x22, 0xcc, - 0xb0, 0xba, 0xb4, 0x2c, 0x25, 0xca, 0xe8, 0xe6, 0xad, 0xb9, 0x62, 0x80, 0x7a, 0x55, 0x6f, 0x97, - 0xb3, 0xef, 0xfb, 0xc4, 0xcc, 0xd8, 0xa7, 0xff, 0xc1, 0x4c, 0x8c, 0xf4, 0x6c, 0x3c, 0x64, 0x23, - 0xd0, 0x83, 0x70, 0xb4, 0xb1, 0x74, 0x69, 0xb5, 0xbe, 0xa8, 0xae, 0x34, 0x2e, 0x89, 0x6d, 0x10, - 0xd1, 0xbb, 0xd2, 0xcd, 0x5b, 0x73, 0x79, 0xde, 0xa5, 0x61, 0xd4, 0xeb, 0x4a, 0xfd, 0xea, 0xda, - 0x46, 0x5d, 0x8a, 0x31, 0xea, 0x75, 0x1b, 0x5f, 0x37, 0x5d, 0x76, 0x37, 0xe0, 0xc3, 0x70, 0x6c, - 0x00, 0xb5, 0xd7, 0xb1, 0x89, 0x9b, 0xb7, 0xe6, 0xc6, 0xd7, 0x6d, 0xcc, 0xe6, 0x0f, 0xe5, 0x98, - 0x87, 0xe9, 0x7e, 0x8e, 0xb5, 0xf5, 0xb5, 0x46, 0x65, 0x59, 0x9a, 0x2b, 0x4b, 0x37, 0x6f, 0xcd, - 0x15, 0x84, 0x31, 0x24, 0xf4, 0x7e, 0xcf, 0xde, 0xac, 0x68, 0xe7, 0x63, 0x99, 0x50, 0x2e, 0x8f, - 0xc5, 0x11, 0x96, 0x66, 0x6b, 0x9d, 0xe1, 0xe1, 0x4e, 0x7f, 0x22, 0x76, 0x48, 0x04, 0x14, 0xb1, - 0xb1, 0x2b, 0xbf, 0x1c, 0x87, 0x92, 0xe7, 0x5f, 0xaf, 0xd3, 0x97, 0xa2, 0x47, 0x83, 0xa9, 0x99, - 0xfc, 0xd0, 0x95, 0x8d, 0x51, 0x8b, 0xcc, 0xcd, 0xdb, 0x20, 0x2b, 0xfc, 0x34, 0x6e, 0x41, 0xe6, - 0xfa, 0xf9, 0xea, 0x9c, 0x82, 0xb3, 0x7a, 0x1c, 0xe8, 0x69, 0xc8, 0x79, 0xf6, 0xc4, 0xbb, 0x6c, - 0x67, 0xb8, 0x01, 0xe2, 0xfc, 0x3e, 0x0f, 0x7a, 0xd2, 0x8f, 0x24, 0x92, 0xc3, 0x62, 0x93, 0xab, - 0x8c, 0x80, 0x33, 0x0b, 0x7a, 0x79, 0x89, 0xcf, 0x44, 0xde, 0x7b, 0x7a, 0x51, 0xc1, 0x9e, 0xca, - 0x82, 0x2b, 0xe6, 0xa8, 0x64, 0x3b, 0xda, 0x5e, 0x95, 0xc6, 0x57, 0x47, 0x21, 0x43, 0x2a, 0x77, - 0xf8, 0x77, 0xd8, 0x09, 0x25, 0xdd, 0xd1, 0xf6, 0x2e, 0x69, 0xce, 0x95, 0x64, 0x36, 0x21, 0x25, - 0xe5, 0x5f, 0x8e, 0x41, 0x31, 0xdc, 0x47, 0xf4, 0x00, 0x20, 0xc2, 0xa1, 0xed, 0x60, 0x95, 0x58, - 0x1d, 0x2a, 0x2c, 0x81, 0x5b, 0xea, 0x68, 0x7b, 0x95, 0x1d, 0xbc, 0xda, 0xed, 0xd0, 0x06, 0x38, - 0x48, 0x01, 0x49, 0x10, 0x8b, 0x71, 0xe2, 0xc2, 0x3c, 0xd6, 0x7f, 0xf5, 0x1e, 0x27, 0xa8, 0x8e, - 0x13, 0xeb, 0xf6, 0xe1, 0xdf, 0x9f, 0x8d, 0xb1, 0x14, 0x7a, 0x91, 0x81, 0x7a, 0xbb, 0xf3, 0xa1, - 0xfe, 0x24, 0xc2, 0xfd, 0x91, 0x9f, 0x86, 0x52, 0x8f, 0x50, 0x91, 0x0c, 0xe3, 0x3c, 0x5b, 0x40, - 0x77, 0x3e, 0x99, 0xdf, 0x9c, 0x53, 0xf2, 0x2c, 0x2b, 0x40, 0x77, 0x82, 0x17, 0xb2, 0x5f, 0x7c, - 0x65, 0x36, 0x46, 0x13, 0xe9, 0x0f, 0xc0, 0x78, 0x48, 0xac, 0x22, 0x83, 0x17, 0xf3, 0x33, 0x78, - 0x3e, 0xf1, 0x0b, 0x50, 0x20, 0x06, 0x14, 0xb7, 0x38, 0xed, 0xfd, 0x50, 0x62, 0x06, 0xbe, 0x57, - 0xe0, 0xcc, 0xc3, 0x5a, 0x11, 0x52, 0x97, 0x85, 0xcb, 0x15, 0x96, 0x7d, 0x5e, 0x50, 0x5d, 0xd2, - 0x9c, 0xea, 0x3b, 0x3e, 0xfd, 0xda, 0x4c, 0xec, 0xcd, 0x99, 0xa0, 0x5f, 0x7d, 0x07, 0x1c, 0x0f, - 0x54, 0x6a, 0x5b, 0x4d, 0x3d, 0x94, 0x8d, 0x28, 0x05, 0x34, 0x8d, 0x54, 0x46, 0x65, 0x15, 0x0e, - 0xcc, 0x6d, 0x1c, 0x9c, 0x48, 0x2b, 0x1f, 0x6c, 0x29, 0xa2, 0x13, 0x1e, 0x83, 0x73, 0x97, 0xff, - 0x37, 0x0b, 0x19, 0x05, 0xbf, 0xa7, 0x8b, 0x1d, 0x17, 0x9d, 0x85, 0x24, 0x6e, 0xee, 0x9a, 0x83, - 0x52, 0x45, 0xa4, 0x73, 0xf3, 0x9c, 0xae, 0xde, 0xdc, 0x35, 0x2f, 0x8f, 0x29, 0x94, 0x16, 0x9d, - 0x83, 0xd4, 0x76, 0xbb, 0xcb, 0xf3, 0x17, 0x3d, 0x16, 0x23, 0xc8, 0x74, 0x91, 0x10, 0x5d, 0x1e, - 0x53, 0x18, 0x35, 0x79, 0x15, 0xbd, 0xc9, 0x34, 0x71, 0xf0, 0xab, 0x96, 0x8c, 0x6d, 0xfa, 0x2a, - 0x42, 0x8b, 0xaa, 0x00, 0xba, 0xa1, 0xbb, 0x2a, 0x8d, 0xed, 0xb9, 0x87, 0x78, 0xf7, 0x70, 0x4e, - 0xdd, 0xa5, 0xd9, 0x80, 0xcb, 0x63, 0x4a, 0x4e, 0x17, 0x0f, 0xa4, 0xb9, 0xef, 0xe9, 0x62, 0x7b, - 0x9f, 0x3b, 0x86, 0x43, 0x9b, 0xfb, 0x0e, 0x42, 0x44, 0x9a, 0x4b, 0xa9, 0x51, 0x1d, 0xf2, 0xf4, - 0x93, 0x55, 0x36, 0x89, 0xf9, 0xad, 0x9a, 0xf2, 0x30, 0xe6, 0x2a, 0x21, 0xa5, 0xf3, 0xfa, 0xf2, - 0x98, 0x02, 0x5b, 0xde, 0x13, 0xb1, 0x94, 0xec, 0xd6, 0x25, 0x77, 0x8f, 0xdf, 0x25, 0x38, 0x3b, - 0x0c, 0x83, 0x5e, 0xbd, 0xb4, 0xb1, 0x77, 0x79, 0x4c, 0xc9, 0x34, 0xd9, 0x4f, 0xd2, 0xff, 0x16, - 0x6e, 0xeb, 0xd7, 0xb1, 0x4d, 0xf8, 0x73, 0x07, 0xf7, 0x7f, 0x91, 0x51, 0x52, 0x84, 0x5c, 0x4b, - 0x3c, 0x10, 0x6b, 0x8b, 0x8d, 0x16, 0xef, 0x06, 0xf4, 0x1b, 0xeb, 0xd0, 0x38, 0x1b, 0x2d, 0xd1, - 0x89, 0x2c, 0xe6, 0xbf, 0xd1, 0x13, 0x9e, 0xe7, 0x9a, 0xef, 0x77, 0x16, 0x43, 0x1d, 0x60, 0x39, - 0x8c, 0x31, 0xe1, 0xc1, 0xa2, 0x55, 0x28, 0xb6, 0x75, 0xc7, 0x55, 0x1d, 0x43, 0xb3, 0x9c, 0x5d, - 0xd3, 0x75, 0x68, 0x32, 0x20, 0x7f, 0xf6, 0xbe, 0x61, 0x08, 0xcb, 0xba, 0xe3, 0x36, 0x04, 0xf1, - 0xe5, 0x31, 0x65, 0xbc, 0x1d, 0x2c, 0x20, 0x78, 0xe6, 0xf6, 0x36, 0xb6, 0x3d, 0x40, 0x9a, 0x34, - 0x38, 0x00, 0x6f, 0x8d, 0x50, 0x0b, 0x7e, 0x82, 0x67, 0x06, 0x0b, 0xd0, 0x0f, 0xc2, 0x64, 0xdb, - 0xd4, 0x5a, 0x1e, 0x9c, 0xda, 0xdc, 0xed, 0x1a, 0xd7, 0x68, 0x86, 0x21, 0x7f, 0xf6, 0xd4, 0xd0, - 0x46, 0x9a, 0x5a, 0x4b, 0x40, 0xd4, 0x08, 0xc3, 0xe5, 0x31, 0x65, 0xa2, 0xdd, 0x5b, 0x88, 0xde, - 0x05, 0x53, 0x9a, 0x65, 0xb5, 0xf7, 0x7b, 0xd1, 0x4b, 0x14, 0xfd, 0xf4, 0x30, 0xf4, 0x0a, 0xe1, - 0xe9, 0x85, 0x47, 0x5a, 0x5f, 0x29, 0xda, 0x00, 0xc9, 0xb2, 0x31, 0xfd, 0xc6, 0xc6, 0xe2, 0x2e, - 0x0c, 0xbd, 0x28, 0x2b, 0x7f, 0xf6, 0xc4, 0x30, 0xec, 0x75, 0x46, 0x2f, 0x3c, 0x9e, 0xcb, 0x63, - 0x4a, 0xc9, 0x0a, 0x17, 0x31, 0x54, 0xb3, 0x89, 0xe9, 0x65, 0x4e, 0x1c, 0x75, 0x22, 0x0a, 0x95, - 0xd2, 0x87, 0x51, 0x43, 0x45, 0xd5, 0x0c, 0x3f, 0x23, 0xc7, 0x6f, 0x5a, 0x39, 0x01, 0xf9, 0x80, - 0x61, 0x41, 0xd3, 0x90, 0xe1, 0x67, 0x06, 0xc4, 0xd9, 0x3a, 0xfe, 0x28, 0x17, 0xa1, 0x10, 0x34, - 0x26, 0xf2, 0x07, 0x62, 0x1e, 0x27, 0xfd, 0xf4, 0x7d, 0x3a, 0x9c, 0x52, 0xcc, 0xf9, 0xd9, 0xc2, - 0x7b, 0xc4, 0x2a, 0x22, 0xea, 0xd9, 0x2e, 0x53, 0x81, 0x16, 0xf2, 0x45, 0x0c, 0xcd, 0x42, 0xde, - 0x3a, 0x6b, 0x79, 0x24, 0x09, 0x4a, 0x02, 0xd6, 0x59, 0x4b, 0x10, 0xdc, 0x0d, 0x05, 0xd2, 0x53, - 0x35, 0xe8, 0x6d, 0xe4, 0x94, 0x3c, 0x29, 0xe3, 0x24, 0xf2, 0xbf, 0x8d, 0x83, 0xd4, 0x6b, 0x80, - 0xbc, 0x5c, 0x63, 0xec, 0xd0, 0xb9, 0xc6, 0x63, 0xbd, 0x59, 0x4e, 0x3f, 0xb1, 0xb9, 0x0c, 0x92, - 0x9f, 0x9f, 0x63, 0x0b, 0xc1, 0x70, 0xef, 0xa9, 0xc7, 0xcd, 0x53, 0x4a, 0xcd, 0x1e, 0xbf, 0xef, - 0x62, 0x68, 0x4f, 0x46, 0x5c, 0xd5, 0xdd, 0x3b, 0xc4, 0x9e, 0xbf, 0xb0, 0x69, 0xb5, 0x34, 0x17, - 0x8b, 0x7c, 0x49, 0x60, 0x7b, 0xe6, 0x7e, 0x28, 0x69, 0x96, 0xa5, 0x3a, 0xae, 0xe6, 0x62, 0xbe, - 0xac, 0xa7, 0x58, 0xda, 0x50, 0xb3, 0xac, 0x06, 0x29, 0x65, 0xcb, 0xfa, 0x7d, 0x50, 0x24, 0x36, - 0x59, 0xd7, 0xda, 0x2a, 0xcf, 0x1e, 0xa4, 0xd9, 0xea, 0xcf, 0x4b, 0x2f, 0xd3, 0x42, 0xb9, 0xe5, - 0x8d, 0x38, 0xb5, 0xc7, 0x5e, 0xf8, 0x15, 0x0b, 0x84, 0x5f, 0x88, 0xdf, 0x49, 0xc0, 0xe4, 0x23, - 0xae, 0x71, 0x18, 0x9c, 0xf5, 0x9d, 0xa2, 0xa1, 0xda, 0x75, 0x96, 0x08, 0xc9, 0x2a, 0xec, 0x41, - 0x7e, 0x6f, 0x1c, 0x26, 0xfa, 0x2c, 0xf7, 0xc0, 0x74, 0xb8, 0x1f, 0x77, 0xc6, 0x0f, 0x15, 0x77, - 0x3e, 0x13, 0x4e, 0xf7, 0x06, 0x56, 0xbe, 0xe3, 0x7d, 0x42, 0x66, 0x76, 0x93, 0x28, 0x34, 0x07, - 0x09, 0x64, 0x84, 0xa9, 0x9a, 0x6f, 0xc2, 0xd4, 0xd6, 0xfe, 0x4b, 0x9a, 0xe1, 0xea, 0x06, 0x56, - 0xfb, 0x46, 0xad, 0x7f, 0x29, 0x5d, 0xd1, 0x9d, 0x2d, 0xbc, 0xab, 0x5d, 0xd7, 0x4d, 0xd1, 0xac, - 0x49, 0x8f, 0xdf, 0x4f, 0xfa, 0xca, 0x0a, 0x14, 0xc3, 0x4b, 0x0f, 0x2a, 0x42, 0xdc, 0xdd, 0xe3, - 0xfd, 0x8f, 0xbb, 0x7b, 0xe8, 0x61, 0x9e, 0x1f, 0x8a, 0xd3, 0xfc, 0x50, 0xff, 0x8b, 0x38, 0x9f, - 0x9f, 0x1c, 0x92, 0x65, 0x6f, 0x36, 0x78, 0xcb, 0x51, 0x2f, 0xaa, 0x7c, 0x0a, 0x4a, 0x3d, 0xeb, - 0xcd, 0xb0, 0x6c, 0xa1, 0x5c, 0x82, 0xf1, 0xd0, 0xe2, 0x22, 0x1f, 0x81, 0xa9, 0x41, 0x6b, 0x85, - 0xbc, 0xeb, 0x95, 0x87, 0x6c, 0x3e, 0x3a, 0x07, 0x59, 0x6f, 0xb1, 0x18, 0x90, 0x9d, 0xa0, 0xbd, - 0x10, 0xc4, 0x8a, 0x47, 0x1a, 0x4a, 0x72, 0xc7, 0x43, 0x49, 0x6e, 0xf9, 0xdd, 0x30, 0x3d, 0x6c, - 0x21, 0xe8, 0xe9, 0x46, 0xd2, 0xd3, 0xc2, 0x23, 0x90, 0xe6, 0x37, 0xb6, 0xc5, 0xe9, 0xb6, 0x0e, - 0x7f, 0x22, 0xda, 0xc9, 0x16, 0x85, 0x04, 0xdb, 0xed, 0xa1, 0x0f, 0xb2, 0x0a, 0xc7, 0x86, 0x2e, - 0x06, 0xc3, 0x37, 0x88, 0x18, 0x10, 0xdf, 0x20, 0x6a, 0x8a, 0xe6, 0x38, 0xb4, 0xaf, 0xe2, 0x10, - 0x04, 0x7b, 0x92, 0x3f, 0x9c, 0x80, 0x23, 0x83, 0x97, 0x04, 0x34, 0x07, 0x05, 0xe2, 0x77, 0xbb, - 0x61, 0x17, 0x1d, 0x3a, 0xda, 0xde, 0x06, 0xf7, 0xcf, 0x79, 0x82, 0x3d, 0xee, 0x25, 0xd8, 0xd1, - 0x26, 0x4c, 0xb4, 0xcd, 0xa6, 0xd6, 0x56, 0x03, 0x1a, 0xcf, 0x95, 0xfd, 0x9e, 0x3e, 0x61, 0xd7, - 0xd9, 0x3d, 0xce, 0xad, 0x3e, 0xa5, 0x2f, 0x51, 0x8c, 0x65, 0x4f, 0xf3, 0xd1, 0x22, 0xe4, 0x3b, - 0xbe, 0x22, 0x1f, 0x42, 0xd9, 0x83, 0x6c, 0x81, 0x21, 0x49, 0x0d, 0xdc, 0x0e, 0x4a, 0x1f, 0xda, - 0x44, 0x0f, 0xdb, 0x59, 0xc9, 0x0c, 0xdd, 0x59, 0x19, 0xb4, 0x8d, 0x91, 0x1d, 0xbc, 0x8d, 0xf1, - 0xbe, 0xe0, 0xd0, 0x84, 0x16, 0xd1, 0xfe, 0x9d, 0x0d, 0xd4, 0x80, 0x29, 0xce, 0xdf, 0x0a, 0xc9, - 0x3e, 0x3e, 0xaa, 0xa1, 0x41, 0x82, 0x7d, 0xb8, 0xd8, 0x13, 0xb7, 0x27, 0x76, 0x61, 0x4b, 0x93, - 0x01, 0x5b, 0xfa, 0xff, 0xd9, 0x50, 0xfc, 0xfb, 0x1c, 0x64, 0x15, 0xec, 0x58, 0x64, 0xe1, 0x44, - 0x55, 0xc8, 0xe1, 0xbd, 0x26, 0xb6, 0x5c, 0x7f, 0xfb, 0x72, 0x50, 0x30, 0xc0, 0xa8, 0xeb, 0x82, - 0x92, 0x78, 0xe2, 0x1e, 0x1b, 0x7a, 0x94, 0x07, 0x5b, 0xc3, 0xe3, 0x26, 0xce, 0x1e, 0x8c, 0xb6, - 0xce, 0x8b, 0x68, 0x2b, 0x31, 0xd4, 0xf9, 0x66, 0x5c, 0x3d, 0xe1, 0xd6, 0xa3, 0x3c, 0xdc, 0x4a, - 0x46, 0xbc, 0x2c, 0x14, 0x6f, 0xd5, 0x42, 0xf1, 0x56, 0x3a, 0xa2, 0x9b, 0x43, 0x02, 0xae, 0xf3, - 0x22, 0xe0, 0xca, 0x44, 0xb4, 0xb8, 0x27, 0xe2, 0xba, 0x18, 0x8e, 0xb8, 0xb2, 0x43, 0x0c, 0x88, - 0xe0, 0x1e, 0x1a, 0x72, 0x3d, 0x15, 0x08, 0xb9, 0x72, 0x43, 0xe3, 0x1d, 0x06, 0x32, 0x20, 0xe6, - 0xaa, 0x85, 0x62, 0x2e, 0x88, 0x90, 0xc1, 0x90, 0xa0, 0xeb, 0x07, 0x82, 0x41, 0x57, 0x7e, 0x68, - 0xdc, 0xc6, 0xc7, 0x7b, 0x50, 0xd4, 0xf5, 0xa4, 0x17, 0x75, 0x15, 0x86, 0x86, 0x8d, 0xbc, 0x0f, - 0xbd, 0x61, 0xd7, 0x5a, 0x5f, 0xd8, 0x35, 0xce, 0xff, 0x44, 0xc2, 0x30, 0x88, 0x88, 0xb8, 0x6b, - 0xad, 0x2f, 0xee, 0x2a, 0x46, 0x00, 0x46, 0x04, 0x5e, 0x3f, 0x34, 0x38, 0xf0, 0x1a, 0x1e, 0x1a, - 0xf1, 0x66, 0x8e, 0x16, 0x79, 0xa9, 0x43, 0x22, 0x2f, 0x16, 0x1d, 0x3d, 0x30, 0x14, 0x7e, 0xe4, - 0xd0, 0x6b, 0x73, 0x40, 0xe8, 0xc5, 0x82, 0xa4, 0x93, 0x43, 0xc1, 0x47, 0x88, 0xbd, 0x36, 0x07, - 0xc4, 0x5e, 0x28, 0x12, 0xf6, 0x30, 0xc1, 0x57, 0x4a, 0x4a, 0xcb, 0xa7, 0x88, 0xeb, 0xdb, 0x63, - 0xa7, 0x88, 0xff, 0x80, 0x6d, 0xdb, 0xb4, 0xc5, 0x89, 0x5b, 0xfa, 0x20, 0x9f, 0x24, 0xce, 0xb8, - 0x6f, 0x93, 0x0e, 0x08, 0xd4, 0xa8, 0x9f, 0x16, 0xb0, 0x43, 0xf2, 0x17, 0x63, 0x3e, 0x2f, 0xf5, - 0x61, 0x83, 0x8e, 0x7c, 0x8e, 0x3b, 0xf2, 0x81, 0xf0, 0x2d, 0x1e, 0x0e, 0xdf, 0x66, 0x21, 0x4f, - 0xfc, 0xaf, 0x9e, 0xc8, 0x4c, 0xb3, 0xbc, 0xc8, 0x4c, 0x1c, 0x35, 0x60, 0x41, 0x1e, 0x5f, 0x56, - 0xd8, 0x0e, 0x4f, 0xc9, 0x3b, 0x76, 0xc1, 0x62, 0x0a, 0xf4, 0x10, 0x4c, 0x06, 0x68, 0x3d, 0xbf, - 0x8e, 0x85, 0x29, 0x92, 0x47, 0x5d, 0xe1, 0x0e, 0xde, 0xbf, 0x88, 0xf9, 0x12, 0xf2, 0x43, 0xba, - 0x41, 0xd1, 0x57, 0xec, 0x0d, 0x8a, 0xbe, 0xe2, 0xb7, 0x1d, 0x7d, 0x05, 0xfd, 0xd4, 0x44, 0xd8, - 0x4f, 0xfd, 0x9f, 0x31, 0x7f, 0x4c, 0xbc, 0x58, 0xaa, 0x69, 0xb6, 0x30, 0xf7, 0x1c, 0xe9, 0x6f, - 0xe2, 0x54, 0xb4, 0xcd, 0x1d, 0xee, 0x1f, 0x92, 0x9f, 0x84, 0xca, 0x5b, 0x38, 0x72, 0x7c, 0x5d, - 0xf0, 0x9c, 0xce, 0x54, 0xf0, 0x5c, 0x30, 0x3f, 0x2c, 0x9b, 0xf6, 0x0f, 0xcb, 0x7a, 0xdf, 0xc2, - 0x65, 0x02, 0xdf, 0xc2, 0xa1, 0x27, 0x20, 0x47, 0x33, 0xa2, 0xaa, 0x69, 0x89, 0x3f, 0xa8, 0x71, - 0x7c, 0xf8, 0x41, 0x59, 0x87, 0x1e, 0xe1, 0x63, 0x87, 0x6b, 0x7d, 0x8f, 0x21, 0x17, 0xf2, 0x18, - 0xee, 0x84, 0x1c, 0x69, 0x3d, 0xbb, 0x18, 0x1a, 0xf8, 0x87, 0x94, 0xa2, 0x40, 0x7e, 0x17, 0xa0, - 0xfe, 0x45, 0x02, 0x5d, 0x86, 0x34, 0xbe, 0x4e, 0x6f, 0xd9, 0x63, 0x07, 0x10, 0x8f, 0xf4, 0xbb, - 0xa6, 0xa4, 0xba, 0x3a, 0x4d, 0x84, 0xfc, 0xad, 0x57, 0x67, 0x25, 0x46, 0xfd, 0xa0, 0xf7, 0xdd, - 0x80, 0xc2, 0xf9, 0xe5, 0xff, 0x1c, 0x27, 0x01, 0x4c, 0x68, 0x01, 0x19, 0x28, 0xdb, 0x41, 0x5b, - 0x87, 0xa3, 0xc9, 0x7b, 0x06, 0x60, 0x47, 0x73, 0xd4, 0x1b, 0x9a, 0xe1, 0xe2, 0x16, 0x17, 0x7a, - 0xa0, 0x04, 0x95, 0x21, 0x4b, 0x9e, 0xba, 0x0e, 0x6e, 0xf1, 0x30, 0xda, 0x7b, 0x0e, 0xf4, 0x33, - 0xf3, 0xbd, 0xf5, 0x33, 0x2c, 0xe5, 0x6c, 0x8f, 0x94, 0x03, 0xc1, 0x45, 0x2e, 0x18, 0x5c, 0xb0, - 0x03, 0xc3, 0xfc, 0xdc, 0x22, 0xb0, 0xb6, 0x89, 0x67, 0x74, 0x0f, 0x8c, 0x77, 0x70, 0xc7, 0x32, - 0xcd, 0xb6, 0xca, 0xcc, 0x0d, 0xbb, 0x01, 0xbe, 0xc0, 0x0b, 0xeb, 0xd4, 0xea, 0xfc, 0x58, 0xdc, - 0x9f, 0x7f, 0x7e, 0x10, 0xf9, 0x7d, 0x27, 0x60, 0xf9, 0x27, 0x68, 0x66, 0x29, 0xec, 0x22, 0xa0, - 0x46, 0xf0, 0x34, 0x49, 0x97, 0x9a, 0x05, 0xa1, 0xd0, 0xa3, 0xda, 0x0f, 0xff, 0xd4, 0x09, 0x2b, - 0x76, 0xd0, 0xf3, 0x70, 0xb4, 0xc7, 0xb6, 0x79, 0xd0, 0xf1, 0x51, 0x4d, 0xdc, 0x1d, 0x61, 0x13, - 0x27, 0xa0, 0x7d, 0x61, 0x25, 0xbe, 0xc7, 0x59, 0xb7, 0x04, 0xc5, 0xb0, 0xc7, 0x33, 0x70, 0xf8, - 0xe9, 0x5f, 0x1c, 0x71, 0x35, 0xdd, 0x50, 0x43, 0xe9, 0xa0, 0x02, 0x2b, 0xe4, 0x49, 0xa6, 0x75, - 0xb8, 0x63, 0xa0, 0xe7, 0x83, 0x1e, 0x87, 0x9c, 0xef, 0x34, 0x31, 0xa9, 0x1e, 0x90, 0x2e, 0xf0, - 0x69, 0xe5, 0xdf, 0x8c, 0xf9, 0x90, 0xe1, 0x04, 0x44, 0x1d, 0xd2, 0xec, 0x38, 0x1c, 0x3f, 0x64, - 0xf3, 0xd0, 0x68, 0x3e, 0xd3, 0x3c, 0x3b, 0x2b, 0xa7, 0x70, 0x66, 0xf9, 0x5d, 0x90, 0x66, 0x25, - 0x28, 0x0f, 0x19, 0xff, 0x22, 0x5c, 0x80, 0x74, 0xa5, 0x56, 0xab, 0xaf, 0x6f, 0x48, 0x31, 0x94, - 0x83, 0x54, 0xa5, 0xba, 0xa6, 0x6c, 0x48, 0x71, 0x52, 0xac, 0xd4, 0xaf, 0xd4, 0x6b, 0x1b, 0x52, - 0x02, 0x4d, 0xc0, 0x38, 0xfb, 0xad, 0x5e, 0x5c, 0x53, 0x56, 0x2a, 0x1b, 0x52, 0x32, 0x50, 0xd4, - 0xa8, 0xaf, 0x2e, 0xd6, 0x15, 0x29, 0x25, 0x3f, 0x02, 0xc7, 0x86, 0x7a, 0x59, 0x7e, 0x76, 0x21, - 0x16, 0xc8, 0x2e, 0xc8, 0x1f, 0x8e, 0x43, 0x79, 0xb8, 0xeb, 0x84, 0xae, 0xf4, 0x74, 0xfc, 0xec, - 0x21, 0xfc, 0xae, 0x9e, 0xde, 0xa3, 0xfb, 0xa0, 0x68, 0xe3, 0x6d, 0xec, 0x36, 0x77, 0x99, 0x2b, - 0xc7, 0x96, 0xcc, 0x71, 0x65, 0x9c, 0x97, 0x52, 0x26, 0x87, 0x91, 0xbd, 0x88, 0x9b, 0xae, 0xca, - 0x6c, 0x91, 0xc3, 0xff, 0xf4, 0xe1, 0x38, 0x2b, 0x6d, 0xb0, 0x42, 0xf9, 0xdd, 0x87, 0x92, 0x65, - 0x0e, 0x52, 0x4a, 0x7d, 0x43, 0x79, 0x5e, 0x4a, 0x20, 0x04, 0x45, 0xfa, 0x53, 0x6d, 0xac, 0x56, - 0xd6, 0x1b, 0x97, 0xd7, 0x88, 0x2c, 0x27, 0xa1, 0x24, 0x64, 0x29, 0x0a, 0x53, 0xf2, 0x03, 0x70, - 0x74, 0x88, 0xdf, 0x37, 0xe0, 0x7c, 0xe2, 0xc7, 0x63, 0x41, 0xea, 0x70, 0xcc, 0xbf, 0x06, 0x69, - 0xc7, 0xd5, 0xdc, 0xae, 0xc3, 0x85, 0xf8, 0xf8, 0xa8, 0x8e, 0xe0, 0xbc, 0xf8, 0xd1, 0xa0, 0xec, - 0x0a, 0x87, 0x91, 0xcf, 0x41, 0x31, 0x5c, 0x33, 0x5c, 0x06, 0xbe, 0x12, 0xc5, 0xe5, 0xe7, 0x01, - 0x02, 0xf9, 0x48, 0xef, 0xa4, 0x57, 0x2c, 0x78, 0xd2, 0xeb, 0x1c, 0xa4, 0xae, 0x9b, 0xcc, 0x66, - 0x0c, 0x9e, 0x38, 0x57, 0x4d, 0x17, 0x07, 0x92, 0x0f, 0x8c, 0x5a, 0xd6, 0x01, 0xf5, 0xe7, 0x84, - 0x86, 0xbc, 0xe2, 0xa9, 0xf0, 0x2b, 0xee, 0x1e, 0x9a, 0x5d, 0x1a, 0xfc, 0xaa, 0x97, 0x20, 0x45, - 0xad, 0xcd, 0xc0, 0x4f, 0x7f, 0xde, 0x09, 0xa0, 0xb9, 0xae, 0xad, 0x6f, 0x75, 0xfd, 0x17, 0xcc, - 0x0e, 0xb6, 0x56, 0x15, 0x41, 0x57, 0xbd, 0x93, 0x9b, 0xad, 0x29, 0x9f, 0x35, 0x60, 0xba, 0x02, - 0x80, 0xf2, 0x2a, 0x14, 0xc3, 0xbc, 0x83, 0x3f, 0x65, 0xf2, 0xaf, 0x12, 0xc8, 0x09, 0xf7, 0xc9, - 0x73, 0xbe, 0xf8, 0xf5, 0x1e, 0xf4, 0x41, 0xbe, 0x19, 0x83, 0xec, 0xc6, 0x1e, 0xd7, 0xe3, 0x03, - 0x0e, 0x5b, 0xfa, 0xdf, 0x73, 0x79, 0xc9, 0x42, 0x96, 0x8f, 0x4d, 0x78, 0x59, 0xde, 0x1f, 0xf0, - 0x66, 0x6a, 0x72, 0xd4, 0x68, 0x57, 0x64, 0xbb, 0xb9, 0x75, 0xba, 0x30, 0xda, 0xb7, 0x13, 0x53, - 0x90, 0x0a, 0x7e, 0xf7, 0xc0, 0x1e, 0xe4, 0x56, 0xe0, 0x58, 0x02, 0x5b, 0x36, 0x82, 0x1f, 0x59, - 0xc4, 0x0e, 0xfd, 0x91, 0x85, 0xf7, 0x96, 0x78, 0xf0, 0x2d, 0xd7, 0x21, 0x2b, 0x94, 0x02, 0xbd, - 0x3d, 0x78, 0x00, 0x45, 0xec, 0xd1, 0x0c, 0x5d, 0x3c, 0x39, 0x7c, 0xe0, 0xfc, 0xc9, 0x69, 0x98, - 0xe0, 0x47, 0xf1, 0xfc, 0xb8, 0x82, 0x5f, 0xd5, 0x5f, 0x62, 0x15, 0xcb, 0x22, 0xa8, 0x90, 0x7f, - 0x21, 0x06, 0x52, 0xaf, 0x56, 0xbe, 0x95, 0x0d, 0x20, 0x46, 0x91, 0x68, 0x7f, 0xe0, 0x0e, 0x6e, - 0x36, 0xf2, 0xe3, 0xa4, 0xd4, 0xbf, 0x85, 0xfb, 0xbd, 0x71, 0xc8, 0x07, 0x72, 0x7a, 0xe8, 0xb1, - 0xd0, 0xd1, 0xd0, 0xb9, 0x83, 0xf2, 0x7f, 0x81, 0xb3, 0xa1, 0xa1, 0x8e, 0xc5, 0x0f, 0xdf, 0xb1, - 0x37, 0xfe, 0xf0, 0xfe, 0xe0, 0xaf, 0x80, 0x52, 0x43, 0xbe, 0x02, 0xfa, 0x91, 0x18, 0x64, 0xbd, - 0xa5, 0xfb, 0xb0, 0xd9, 0xfc, 0x23, 0x90, 0xe6, 0xab, 0x13, 0x4b, 0xe7, 0xf3, 0xa7, 0x81, 0xb9, - 0xd0, 0x32, 0x64, 0xc5, 0xdf, 0xb8, 0xe1, 0x81, 0xa8, 0xf7, 0x7c, 0xfa, 0x49, 0xc8, 0x07, 0x36, - 0x56, 0x88, 0x9d, 0x58, 0xad, 0x3f, 0x2b, 0x8d, 0x95, 0x33, 0x37, 0x6f, 0xcd, 0x25, 0x56, 0xf1, - 0x0d, 0x32, 0xc3, 0x94, 0x7a, 0xed, 0x72, 0xbd, 0xf6, 0x8c, 0x14, 0x2b, 0xe7, 0x6f, 0xde, 0x9a, - 0xcb, 0x28, 0x98, 0xa6, 0xaf, 0x4e, 0x3f, 0x03, 0xa5, 0x9e, 0x81, 0x09, 0xdb, 0x77, 0x04, 0xc5, - 0xc5, 0xcd, 0xf5, 0xe5, 0xa5, 0x5a, 0x65, 0xa3, 0xae, 0xb2, 0x63, 0x76, 0xe8, 0x28, 0x4c, 0x2e, - 0x2f, 0x5d, 0xba, 0xbc, 0xa1, 0xd6, 0x96, 0x97, 0xea, 0xab, 0x1b, 0x6a, 0x65, 0x63, 0xa3, 0x52, - 0x7b, 0x46, 0x8a, 0x9f, 0xfd, 0x2e, 0x40, 0xa9, 0x52, 0xad, 0x2d, 0x91, 0xf5, 0x59, 0xe7, 0xd7, - 0xa8, 0xd7, 0x20, 0x49, 0x53, 0x01, 0x07, 0x1e, 0x15, 0x29, 0x1f, 0x9c, 0xdb, 0x44, 0x17, 0x21, - 0x45, 0xb3, 0x04, 0xe8, 0xe0, 0xb3, 0x23, 0xe5, 0x88, 0x64, 0x27, 0x69, 0x0c, 0x9d, 0x4e, 0x07, - 0x1e, 0x26, 0x29, 0x1f, 0x9c, 0xfb, 0x44, 0x0a, 0xe4, 0xfc, 0x28, 0x23, 0xfa, 0x70, 0x45, 0x79, - 0x04, 0xeb, 0x88, 0x96, 0x21, 0x23, 0x02, 0xc3, 0xa8, 0xe3, 0x1e, 0xe5, 0xc8, 0xe4, 0x24, 0x11, - 0x17, 0x0b, 0xe0, 0x0f, 0x3e, 0xbb, 0x52, 0x8e, 0xc8, 0xb4, 0xa2, 0x25, 0xef, 0x70, 0x7e, 0xc4, - 0x11, 0x8e, 0x72, 0x54, 0xb2, 0x91, 0x08, 0xcd, 0x4f, 0x8d, 0x44, 0x9f, 0xc8, 0x29, 0x8f, 0x90, - 0x44, 0x46, 0x9b, 0x00, 0x81, 0x70, 0x7d, 0x84, 0xa3, 0x36, 0xe5, 0x51, 0x92, 0xc3, 0x68, 0x0d, - 0xb2, 0x5e, 0xf4, 0x14, 0x79, 0xf0, 0xa5, 0x1c, 0x9d, 0xa5, 0x45, 0xef, 0x82, 0xf1, 0x70, 0xd4, - 0x30, 0xda, 0x71, 0x96, 0xf2, 0x88, 0xe9, 0x57, 0x82, 0x1f, 0x0e, 0x21, 0x46, 0x3b, 0xde, 0x52, - 0x1e, 0x31, 0x1b, 0x8b, 0x5e, 0x84, 0x89, 0x7e, 0x17, 0x7f, 0xf4, 0xd3, 0x2e, 0xe5, 0x43, 0xe4, - 0x67, 0x51, 0x07, 0xd0, 0x80, 0xd0, 0xe0, 0x10, 0x87, 0x5f, 0xca, 0x87, 0x49, 0xd7, 0xa2, 0x16, - 0x94, 0x7a, 0xfd, 0xed, 0x51, 0x0f, 0xc3, 0x94, 0x47, 0x4e, 0xdd, 0xb2, 0xb7, 0x84, 0xfd, 0xf4, - 0x51, 0x0f, 0xc7, 0x94, 0x47, 0xce, 0xe4, 0x56, 0x2b, 0x43, 0xcf, 0x37, 0x9e, 0x38, 0xf0, 0x7c, - 0xa3, 0x7f, 0x62, 0xd1, 0x3b, 0xd3, 0xf8, 0x87, 0x0f, 0xc3, 0xbd, 0xfc, 0x92, 0x01, 0xc7, 0xd5, - 0xae, 0xe9, 0xc6, 0x8e, 0x77, 0x6b, 0x04, 0x7f, 0xe6, 0x87, 0x1b, 0x8f, 0xf0, 0x8b, 0x0c, 0x44, - 0x69, 0xc4, 0xdd, 0x11, 0x43, 0xef, 0xd1, 0x8a, 0x3a, 0x89, 0x1c, 0x7d, 0x74, 0xf1, 0x80, 0x7b, - 0x29, 0x22, 0x6e, 0xbf, 0x18, 0x74, 0x5c, 0xfa, 0xe0, 0x43, 0x98, 0x07, 0x9d, 0xf7, 0x94, 0x3f, - 0x14, 0x83, 0xe2, 0x65, 0xdd, 0x71, 0x4d, 0x5b, 0x6f, 0x6a, 0x6d, 0xba, 0x62, 0x5c, 0x18, 0xf5, - 0xe3, 0x8f, 0x6a, 0x8e, 0x38, 0x23, 0xfc, 0xb2, 0x0b, 0x7e, 0x30, 0x64, 0x11, 0xd2, 0xd7, 0xb5, - 0x36, 0xfb, 0xf4, 0x22, 0x78, 0x9d, 0x4d, 0xaf, 0xcc, 0x03, 0x5e, 0x52, 0x10, 0x85, 0xf1, 0xca, - 0x5f, 0xa0, 0x27, 0xb9, 0x3b, 0x1d, 0xdd, 0x61, 0x7f, 0x85, 0xda, 0xc5, 0x0e, 0xda, 0x84, 0xa4, - 0xad, 0xb9, 0x3c, 0xa8, 0xa9, 0x56, 0xf8, 0x15, 0x15, 0xf7, 0x47, 0x5f, 0x34, 0x31, 0xdf, 0x77, - 0x8b, 0x05, 0x7b, 0x19, 0x85, 0x43, 0x3f, 0x04, 0xd9, 0x8e, 0xb6, 0xa7, 0x52, 0xe8, 0xf8, 0x1b, - 0x05, 0x9d, 0xe9, 0x68, 0x7b, 0xa4, 0xd5, 0x48, 0x87, 0x12, 0x41, 0x6f, 0xee, 0x6a, 0xc6, 0x0e, - 0x66, 0x2f, 0x49, 0xbc, 0x51, 0x2f, 0x19, 0xef, 0x68, 0x7b, 0x35, 0x0a, 0x4c, 0x5e, 0xc5, 0x2f, - 0x03, 0xf9, 0xad, 0x18, 0x0f, 0x65, 0xa9, 0xe4, 0x90, 0x06, 0x52, 0xd3, 0x7b, 0xa2, 0xef, 0x17, - 0x69, 0xfd, 0x13, 0xc3, 0x06, 0xa6, 0x47, 0xee, 0xec, 0x48, 0xf6, 0x57, 0x5e, 0x15, 0x47, 0xb2, - 0x4b, 0xcd, 0x9e, 0x71, 0xb9, 0x02, 0x79, 0x96, 0x4d, 0x53, 0xa9, 0x0b, 0x1b, 0x8f, 0x74, 0x61, - 0xc7, 0x85, 0x0b, 0xcb, 0x00, 0x81, 0x71, 0x93, 0x7a, 0xde, 0x87, 0x4f, 0xc7, 0x20, 0xbf, 0x18, - 0xb8, 0xbd, 0x6a, 0x1a, 0x32, 0x1d, 0xd3, 0xd0, 0xaf, 0x61, 0xdb, 0xdb, 0x97, 0x61, 0x8f, 0xc4, - 0xcd, 0x64, 0x7f, 0x85, 0xc8, 0xdd, 0x17, 0x37, 0x34, 0x88, 0x67, 0xc2, 0x75, 0x03, 0x6f, 0x39, - 0xba, 0x10, 0xb9, 0x22, 0x1e, 0xd1, 0x29, 0x90, 0x1c, 0xdc, 0xec, 0xda, 0xba, 0xbb, 0xaf, 0x36, - 0x4d, 0xc3, 0xd5, 0x9a, 0x2e, 0xcf, 0x9e, 0x96, 0x44, 0x79, 0x8d, 0x15, 0x13, 0x90, 0x16, 0x76, - 0x35, 0xbd, 0xcd, 0x8e, 0x7d, 0xe5, 0x14, 0xf1, 0xc8, 0x9b, 0xfa, 0x85, 0x4c, 0x30, 0x34, 0xac, - 0x81, 0x64, 0x5a, 0xd8, 0x0e, 0x7d, 0x0a, 0xc7, 0xd4, 0x75, 0xfa, 0x77, 0x3f, 0xf7, 0xd0, 0x14, - 0x17, 0x38, 0xdf, 0x80, 0x67, 0x97, 0x35, 0x2b, 0x25, 0xc1, 0x21, 0xbe, 0x91, 0x7b, 0x3e, 0xb4, - 0x13, 0xd3, 0xdd, 0xf2, 0x3f, 0xc5, 0x9f, 0xea, 0x13, 0x6a, 0xc5, 0xd8, 0xaf, 0x4e, 0xff, 0x8e, - 0x0f, 0xed, 0x87, 0x8e, 0xcf, 0xe0, 0xfd, 0xe0, 0xb6, 0x0c, 0x85, 0x21, 0x1e, 0xfc, 0x8b, 0x9a, - 0xde, 0x16, 0x7f, 0x58, 0x4d, 0xe1, 0x4f, 0x68, 0xc1, 0x4b, 0xc3, 0xb0, 0x3f, 0x98, 0x2e, 0x0f, - 0xd3, 0x8d, 0xaa, 0x69, 0xb4, 0xc2, 0x19, 0x17, 0xb4, 0x01, 0x69, 0xd7, 0xbc, 0x86, 0x0d, 0x2e, - 0xa0, 0xea, 0xdb, 0x0e, 0xa1, 0xd8, 0xfd, 0xf7, 0xd2, 0x70, 0x2c, 0xb4, 0x03, 0x52, 0x0b, 0xb7, - 0xf1, 0x0e, 0xfb, 0x90, 0x6b, 0x57, 0xb3, 0x31, 0xfb, 0xb8, 0xf3, 0x70, 0xf8, 0xfd, 0xd7, 0xd7, - 0x94, 0x3c, 0xd4, 0x06, 0x05, 0x45, 0xeb, 0xe1, 0xbb, 0xd3, 0x32, 0x7c, 0x57, 0x7e, 0x48, 0xff, - 0x03, 0x5a, 0x19, 0x34, 0x5b, 0xa1, 0xbb, 0xd6, 0x4e, 0x81, 0xd4, 0x35, 0xb6, 0x4c, 0x83, 0xfe, - 0x0d, 0x24, 0x1e, 0x60, 0x65, 0xd9, 0xce, 0x9d, 0x57, 0xce, 0x77, 0xee, 0xd6, 0xa1, 0xe8, 0x93, - 0xd2, 0xd9, 0x93, 0x3b, 0xec, 0xec, 0x19, 0xf7, 0x00, 0x08, 0x09, 0x5a, 0x01, 0xf0, 0xe7, 0xa7, - 0xb7, 0xbb, 0x1f, 0x39, 0xd3, 0x83, 0x9d, 0x09, 0x00, 0xa0, 0x36, 0x4c, 0x76, 0x74, 0x43, 0x75, - 0x70, 0x7b, 0x5b, 0xe5, 0x92, 0x23, 0xb8, 0xf9, 0x37, 0x60, 0xa4, 0x27, 0x3a, 0xba, 0xd1, 0xc0, - 0xed, 0xed, 0x45, 0x0f, 0x16, 0xbd, 0x0d, 0x8e, 0xfb, 0xe2, 0x30, 0x0d, 0x75, 0xd7, 0x6c, 0xb7, - 0x54, 0x1b, 0x6f, 0xab, 0x4d, 0x7a, 0x2d, 0x52, 0x81, 0x0a, 0xf1, 0xa8, 0x47, 0xb2, 0x66, 0x5c, - 0x36, 0xdb, 0x2d, 0x05, 0x6f, 0xd7, 0x48, 0x35, 0xba, 0x07, 0x7c, 0x59, 0xa8, 0x7a, 0xcb, 0x99, - 0x1e, 0x9f, 0x4b, 0x9c, 0x4c, 0x2a, 0x05, 0xaf, 0x70, 0xa9, 0xe5, 0x2c, 0x64, 0xdf, 0xf7, 0xca, - 0xec, 0xd8, 0x37, 0x5f, 0x99, 0x1d, 0x93, 0x2f, 0xd2, 0x4b, 0x3c, 0xf8, 0xa4, 0xc3, 0x0e, 0x3a, - 0x0f, 0x39, 0x4d, 0x3c, 0xb0, 0xcf, 0x44, 0x0e, 0x98, 0xb4, 0x3e, 0xa9, 0xfc, 0x4a, 0x0c, 0xd2, - 0x8b, 0x57, 0xd7, 0x35, 0xdd, 0x46, 0x75, 0x98, 0xf0, 0x95, 0x76, 0xd4, 0xf9, 0xef, 0xeb, 0xb9, - 0x30, 0x00, 0xf5, 0x61, 0x5f, 0xd4, 0x1e, 0x08, 0xd3, 0xfb, 0xad, 0x6d, 0xa0, 0xab, 0x57, 0x20, - 0xc3, 0x5a, 0xe8, 0xa0, 0xa7, 0x21, 0x65, 0x91, 0x1f, 0x3c, 0xfb, 0x3f, 0x33, 0x54, 0xd1, 0x29, - 0x7d, 0x50, 0x2d, 0x18, 0x9f, 0xfc, 0x97, 0x31, 0x80, 0xc5, 0xab, 0x57, 0x37, 0x6c, 0xdd, 0x6a, - 0x63, 0xf7, 0x8d, 0xea, 0xf2, 0x32, 0xdc, 0x11, 0xf8, 0x6e, 0xd3, 0x6e, 0x8e, 0xdc, 0xed, 0x49, - 0xff, 0xcb, 0x4d, 0xbb, 0x39, 0x10, 0xad, 0xe5, 0xb8, 0x1e, 0x5a, 0x62, 0x64, 0xb4, 0x45, 0xc7, - 0xed, 0x97, 0xe3, 0x73, 0x90, 0xf7, 0xbb, 0xee, 0xa0, 0x25, 0xc8, 0xba, 0xfc, 0x37, 0x17, 0xa7, - 0x3c, 0x5c, 0x9c, 0x82, 0x2d, 0x28, 0x52, 0x8f, 0x5d, 0xfe, 0xdf, 0x44, 0xaa, 0xfe, 0x44, 0xf8, - 0x6b, 0xa5, 0x48, 0xc4, 0xc2, 0x73, 0x0b, 0x9c, 0x78, 0x03, 0x2c, 0x30, 0xc7, 0x0a, 0x88, 0xf5, - 0x47, 0xe3, 0x30, 0xb9, 0x29, 0x26, 0xe9, 0x5f, 0x5b, 0x29, 0x6c, 0x42, 0x06, 0x1b, 0xae, 0xad, - 0x63, 0xb1, 0xd5, 0xf7, 0xf0, 0xb0, 0xc1, 0x1e, 0xd0, 0x17, 0xfa, 0x97, 0x81, 0x83, 0x43, 0x2f, - 0xb0, 0x02, 0x62, 0xf8, 0x8d, 0x04, 0x4c, 0x0f, 0x63, 0x45, 0x27, 0xa0, 0xd4, 0xb4, 0x31, 0x2d, - 0x50, 0x43, 0xa9, 0xf0, 0xa2, 0x28, 0xe6, 0x4b, 0x8a, 0x02, 0xc4, 0x41, 0x23, 0x5a, 0x45, 0x48, - 0x6f, 0xcf, 0x23, 0x2b, 0xfa, 0x08, 0x74, 0x51, 0xc1, 0x50, 0x12, 0x67, 0xdb, 0xb7, 0xb4, 0xb6, - 0x66, 0x34, 0xf1, 0x6d, 0x68, 0x42, 0xff, 0x0a, 0x20, 0x0e, 0xcc, 0x57, 0x19, 0x26, 0xba, 0x0a, - 0x19, 0x01, 0x9f, 0x7c, 0x03, 0xe0, 0x05, 0x18, 0xba, 0x1b, 0x0a, 0xc1, 0x85, 0x81, 0xfa, 0x29, - 0x49, 0x25, 0x1f, 0x58, 0x17, 0xa2, 0x56, 0x9e, 0xf4, 0x81, 0x2b, 0x0f, 0x77, 0x05, 0x7f, 0x3d, - 0x01, 0x13, 0x0a, 0x6e, 0x7d, 0x1f, 0x0e, 0xdc, 0x0f, 0x02, 0xb0, 0x49, 0x4d, 0x8c, 0xed, 0x6d, - 0x8c, 0x5d, 0xbf, 0x91, 0xc8, 0x31, 0xbc, 0x45, 0xc7, 0x7d, 0xab, 0x46, 0xef, 0xdf, 0xc4, 0xa1, - 0x10, 0x1c, 0xbd, 0xef, 0x83, 0x95, 0x0d, 0xad, 0xfa, 0x26, 0x8d, 0x9d, 0x3e, 0x3f, 0x35, 0xcc, - 0xa4, 0xf5, 0xe9, 0x75, 0x84, 0x2d, 0xfb, 0x54, 0x02, 0xd2, 0xfc, 0x28, 0xd8, 0x5a, 0x9f, 0x8f, - 0x1b, 0x3b, 0xe4, 0x47, 0xc0, 0x3d, 0x2e, 0xee, 0x7d, 0x50, 0x24, 0x21, 0x75, 0xe8, 0x7c, 0x59, - 0xec, 0xe4, 0x38, 0x0d, 0x87, 0xfd, 0xd3, 0xd0, 0x68, 0x16, 0xf2, 0x84, 0xcc, 0xb7, 0xd9, 0x84, - 0x06, 0x3a, 0xda, 0x5e, 0x9d, 0x95, 0xa0, 0x87, 0x00, 0xed, 0x7a, 0x89, 0x0f, 0xd5, 0x17, 0x04, - 0xa1, 0x9b, 0xf0, 0x6b, 0x04, 0xf9, 0x5d, 0x00, 0xa4, 0x15, 0x2a, 0xbb, 0xb9, 0x93, 0x5f, 0xc3, - 0x4a, 0x4a, 0x16, 0xe9, 0xed, 0x9d, 0x3f, 0x19, 0x63, 0xae, 0x72, 0x4f, 0xb4, 0xcd, 0x83, 0x16, - 0xf5, 0x70, 0xb3, 0xe1, 0x3b, 0xaf, 0xce, 0x96, 0xf7, 0xb5, 0x4e, 0x7b, 0x41, 0x1e, 0x00, 0x29, - 0x0f, 0xca, 0x05, 0x10, 0x6f, 0x3a, 0x1c, 0xb8, 0x2f, 0xdc, 0x4b, 0xf4, 0xfa, 0xe6, 0x37, 0x3e, - 0x73, 0xfa, 0x78, 0xe0, 0x15, 0x7b, 0x5e, 0x86, 0x8c, 0x0d, 0x8f, 0xfc, 0x8b, 0x31, 0x40, 0xfe, - 0x62, 0xe3, 0x9d, 0x07, 0x5f, 0xa1, 0xa7, 0x84, 0x85, 0xbf, 0x1f, 0x3b, 0x38, 0x8e, 0xf0, 0xf9, - 0x43, 0x71, 0x44, 0x60, 0x32, 0xbd, 0xdd, 0x37, 0xed, 0xe2, 0x13, 0xf0, 0x01, 0x77, 0xb8, 0xce, - 0xd7, 0x4c, 0x3d, 0x04, 0x21, 0x98, 0xe8, 0x1c, 0x1d, 0x93, 0x5f, 0x8d, 0xc1, 0xb1, 0x3e, 0x4d, - 0xf4, 0x9a, 0xdc, 0x04, 0x64, 0x07, 0x2a, 0xf9, 0x5f, 0xe7, 0x8f, 0xf1, 0x8f, 0x1d, 0x6f, 0x47, - 0xb1, 0x27, 0xec, 0x3e, 0x73, 0xfe, 0x26, 0xad, 0x51, 0xdc, 0x08, 0xfd, 0x76, 0x0c, 0xa6, 0x82, - 0x2d, 0xf2, 0xfa, 0xd6, 0x80, 0x42, 0xb0, 0x2d, 0xbc, 0x57, 0xf7, 0x8e, 0xd2, 0xab, 0x60, 0x87, - 0x42, 0x20, 0xa4, 0x2f, 0x42, 0xeb, 0x59, 0xae, 0xee, 0x91, 0x91, 0xa5, 0xe4, 0xed, 0x43, 0x0c, - 0x32, 0x03, 0x6c, 0xb0, 0xde, 0x1f, 0x87, 0xe4, 0xba, 0x69, 0xb6, 0xd1, 0x8f, 0xc4, 0x60, 0xc2, - 0x30, 0x5d, 0x95, 0xcc, 0x15, 0xdc, 0x52, 0x79, 0xb2, 0x80, 0x59, 0xd2, 0xab, 0x87, 0x93, 0xde, - 0xb7, 0x5e, 0x9d, 0xed, 0x87, 0x1a, 0x74, 0xf5, 0x6e, 0xc9, 0x30, 0xdd, 0x2a, 0x25, 0xda, 0x60, - 0xf9, 0x84, 0x1b, 0x30, 0x1e, 0x7e, 0x3f, 0x33, 0xbf, 0xca, 0xa1, 0xdf, 0x3f, 0x1e, 0xf9, 0xee, - 0xc2, 0x56, 0xe0, 0xc5, 0xec, 0x02, 0xcc, 0x3f, 0x25, 0x83, 0xfb, 0x3c, 0x48, 0x57, 0x7b, 0x4f, - 0xa6, 0xd5, 0x21, 0x73, 0xd8, 0x43, 0x6e, 0x41, 0x89, 0x73, 0xde, 0xd3, 0x9f, 0x8f, 0x01, 0xf8, - 0xa9, 0x19, 0xf4, 0x20, 0x1c, 0xad, 0xae, 0xad, 0x2e, 0xaa, 0x8d, 0x8d, 0xca, 0xc6, 0x66, 0x23, - 0x7c, 0x4d, 0xbb, 0xb8, 0xa3, 0xc4, 0xb1, 0x70, 0x53, 0xdf, 0xd6, 0x71, 0x0b, 0xdd, 0x0f, 0x53, - 0x61, 0x6a, 0xf2, 0x54, 0x5f, 0x94, 0x62, 0xe5, 0xc2, 0xcd, 0x5b, 0x73, 0x59, 0xe6, 0x92, 0xe2, - 0x16, 0x3a, 0x09, 0x77, 0xf4, 0xd3, 0x2d, 0xad, 0x5e, 0x92, 0xe2, 0xe5, 0xf1, 0x9b, 0xb7, 0xe6, - 0x72, 0x9e, 0xef, 0x8a, 0x64, 0x40, 0x41, 0x4a, 0x8e, 0x97, 0x28, 0xc3, 0xcd, 0x5b, 0x73, 0x69, - 0x36, 0x2c, 0xe5, 0xe4, 0xfb, 0x3e, 0x31, 0x33, 0x76, 0xfa, 0x9d, 0x00, 0x4b, 0xc6, 0xb6, 0xad, - 0xd1, 0xbf, 0x55, 0x8c, 0xca, 0x70, 0x64, 0x69, 0xf5, 0xa2, 0x52, 0xa9, 0x6d, 0x2c, 0xad, 0xad, - 0xf6, 0xdc, 0x2e, 0x1f, 0xae, 0x5b, 0x5c, 0xdb, 0xac, 0x2e, 0xd7, 0xd5, 0xc6, 0xd2, 0xa5, 0x55, - 0xb6, 0xc3, 0x1b, 0xaa, 0x7b, 0x76, 0x75, 0x63, 0x69, 0xa5, 0x2e, 0xc5, 0xab, 0x17, 0x87, 0xee, - 0x31, 0x3c, 0x78, 0xe0, 0x80, 0xfb, 0x56, 0x32, 0xb4, 0xd1, 0xf0, 0xff, 0x02, 0x00, 0x00, 0xff, - 0xff, 0x3e, 0x3f, 0x7e, 0xb8, 0x43, 0x97, 0x00, 0x00, + // 10657 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x7b, 0x90, 0x1c, 0xc7, + 0x79, 0xdf, 0xed, 0x7b, 0xf7, 0xdb, 0xd7, 0x5c, 0xdf, 0x11, 0x38, 0x2c, 0xc8, 0xbb, 0xe3, 0xf0, + 0x81, 0x07, 0xc9, 0x03, 0x09, 0x12, 0x20, 0xb9, 0x10, 0x45, 0xef, 0xee, 0x2d, 0x80, 0x03, 0xef, + 0xa5, 0xd9, 0x3b, 0xf0, 0x61, 0x5b, 0xe3, 0xb9, 0xdd, 0xbe, 0xbb, 0x21, 0x76, 0x67, 0x56, 0x33, + 0xb3, 0xc0, 0x1d, 0x2b, 0x95, 0xa2, 0x2d, 0x3b, 0x91, 0x11, 0x47, 0x96, 0xad, 0x94, 0x2d, 0xcb, + 0x82, 0x42, 0x59, 0xb1, 0x44, 0x3b, 0x89, 0x23, 0x5b, 0x8a, 0x24, 0xc7, 0x65, 0x97, 0x9c, 0xca, + 0x43, 0x76, 0x52, 0x29, 0xc9, 0x95, 0x4a, 0x5c, 0xa9, 0x84, 0x76, 0x28, 0x95, 0xa5, 0xc8, 0x72, + 0x6c, 0xcb, 0x74, 0x6c, 0x47, 0x95, 0x4a, 0xaa, 0x5f, 0xf3, 0xd8, 0xc7, 0xcd, 0x1e, 0x44, 0xd2, + 0x4e, 0xe9, 0x1f, 0x60, 0xa7, 0xfb, 0xfb, 0x7e, 0xd3, 0xfd, 0xf5, 0xd7, 0x5f, 0x7f, 0xdf, 0xd7, + 0x3d, 0x7d, 0xf0, 0x67, 0x17, 0x60, 0x7e, 0xc7, 0x34, 0x77, 0xda, 0xf8, 0x4c, 0xd7, 0x32, 0x1d, + 0x73, 0xab, 0xb7, 0x7d, 0xa6, 0x85, 0xed, 0xa6, 0xa5, 0x77, 0x1d, 0xd3, 0x5a, 0xa0, 0x65, 0xa8, + 0xc8, 0x28, 0x16, 0x04, 0x85, 0xbc, 0x02, 0x93, 0x17, 0xf5, 0x36, 0x5e, 0x74, 0x09, 0x1b, 0xd8, + 0x41, 0x4f, 0x40, 0x7c, 0x5b, 0x6f, 0xe3, 0x99, 0xc8, 0x7c, 0xec, 0x64, 0xf6, 0xec, 0xbd, 0x0b, + 0x7d, 0x4c, 0x0b, 0x41, 0x8e, 0x75, 0x52, 0xac, 0x50, 0x0e, 0xf9, 0xab, 0x71, 0x98, 0x1a, 0x52, + 0x8b, 0x10, 0xc4, 0x0d, 0xad, 0x43, 0x10, 0x23, 0x27, 0x33, 0x0a, 0xfd, 0x8d, 0x66, 0x20, 0xd5, + 0xd5, 0x9a, 0xd7, 0xb4, 0x1d, 0x3c, 0x13, 0xa5, 0xc5, 0xe2, 0x11, 0xcd, 0x02, 0xb4, 0x70, 0x17, + 0x1b, 0x2d, 0x6c, 0x34, 0xf7, 0x67, 0x62, 0xf3, 0xb1, 0x93, 0x19, 0xc5, 0x57, 0x82, 0x1e, 0x80, + 0xc9, 0x6e, 0x6f, 0xab, 0xad, 0x37, 0x55, 0x1f, 0x19, 0xcc, 0xc7, 0x4e, 0x26, 0x14, 0x89, 0x55, + 0x2c, 0x7a, 0xc4, 0x27, 0xa0, 0x78, 0x03, 0x6b, 0xd7, 0xfc, 0xa4, 0x59, 0x4a, 0x5a, 0x20, 0xc5, + 0x3e, 0xc2, 0x1a, 0xe4, 0x3a, 0xd8, 0xb6, 0xb5, 0x1d, 0xac, 0x3a, 0xfb, 0x5d, 0x3c, 0x13, 0xa7, + 0xbd, 0x9f, 0x1f, 0xe8, 0x7d, 0x7f, 0xcf, 0xb3, 0x9c, 0x6b, 0x63, 0xbf, 0x8b, 0x51, 0x05, 0x32, + 0xd8, 0xe8, 0x75, 0x18, 0x42, 0x62, 0x84, 0xfc, 0xea, 0x46, 0xaf, 0xd3, 0x8f, 0x92, 0x26, 0x6c, + 0x1c, 0x22, 0x65, 0x63, 0xeb, 0xba, 0xde, 0xc4, 0x33, 0x49, 0x0a, 0x70, 0x62, 0x00, 0xa0, 0xc1, + 0xea, 0xfb, 0x31, 0x04, 0x1f, 0xaa, 0x41, 0x06, 0xef, 0x39, 0xd8, 0xb0, 0x75, 0xd3, 0x98, 0x49, + 0x51, 0x90, 0xfb, 0x86, 0x8c, 0x22, 0x6e, 0xb7, 0xfa, 0x21, 0x3c, 0x3e, 0x74, 0x1e, 0x52, 0x66, + 0xd7, 0xd1, 0x4d, 0xc3, 0x9e, 0x49, 0xcf, 0x47, 0x4e, 0x66, 0xcf, 0xde, 0x39, 0x54, 0x11, 0xd6, + 0x18, 0x8d, 0x22, 0x88, 0xd1, 0x12, 0x48, 0xb6, 0xd9, 0xb3, 0x9a, 0x58, 0x6d, 0x9a, 0x2d, 0xac, + 0xea, 0xc6, 0xb6, 0x39, 0x93, 0xa1, 0x00, 0x73, 0x83, 0x1d, 0xa1, 0x84, 0x35, 0xb3, 0x85, 0x97, + 0x8c, 0x6d, 0x53, 0x29, 0xd8, 0x81, 0x67, 0x74, 0x04, 0x92, 0xf6, 0xbe, 0xe1, 0x68, 0x7b, 0x33, + 0x39, 0xaa, 0x21, 0xfc, 0x49, 0xfe, 0xd5, 0x24, 0x14, 0xc7, 0x51, 0xb1, 0x0b, 0x90, 0xd8, 0x26, + 0xbd, 0x9c, 0x89, 0x1e, 0x46, 0x06, 0x8c, 0x27, 0x28, 0xc4, 0xe4, 0x6d, 0x0a, 0xb1, 0x02, 0x59, + 0x03, 0xdb, 0x0e, 0x6e, 0x31, 0x8d, 0x88, 0x8d, 0xa9, 0x53, 0xc0, 0x98, 0x06, 0x55, 0x2a, 0x7e, + 0x5b, 0x2a, 0xf5, 0x1c, 0x14, 0xdd, 0x26, 0xa9, 0x96, 0x66, 0xec, 0x08, 0xdd, 0x3c, 0x13, 0xd6, + 0x92, 0x85, 0xba, 0xe0, 0x53, 0x08, 0x9b, 0x52, 0xc0, 0x81, 0x67, 0xb4, 0x08, 0x60, 0x1a, 0xd8, + 0xdc, 0x56, 0x5b, 0xb8, 0xd9, 0x9e, 0x49, 0x8f, 0x90, 0xd2, 0x1a, 0x21, 0x19, 0x90, 0x92, 0xc9, + 0x4a, 0x9b, 0x6d, 0xf4, 0xa4, 0xa7, 0x6a, 0xa9, 0x11, 0x9a, 0xb2, 0xc2, 0x26, 0xd9, 0x80, 0xb6, + 0x6d, 0x42, 0xc1, 0xc2, 0x44, 0xef, 0x71, 0x8b, 0xf7, 0x2c, 0x43, 0x1b, 0xb1, 0x10, 0xda, 0x33, + 0x85, 0xb3, 0xb1, 0x8e, 0xe5, 0x2d, 0xff, 0x23, 0xba, 0x07, 0xdc, 0x02, 0x95, 0xaa, 0x15, 0x50, + 0x2b, 0x94, 0x13, 0x85, 0xab, 0x5a, 0x07, 0x97, 0x5e, 0x82, 0x42, 0x50, 0x3c, 0x68, 0x1a, 0x12, + 0xb6, 0xa3, 0x59, 0x0e, 0xd5, 0xc2, 0x84, 0xc2, 0x1e, 0x90, 0x04, 0x31, 0x6c, 0xb4, 0xa8, 0x95, + 0x4b, 0x28, 0xe4, 0x27, 0xfa, 0x1e, 0xaf, 0xc3, 0x31, 0xda, 0xe1, 0xfb, 0x07, 0x47, 0x34, 0x80, + 0xdc, 0xdf, 0xef, 0xd2, 0xe3, 0x90, 0x0f, 0x74, 0x60, 0xdc, 0x57, 0xcb, 0x7f, 0x0b, 0xee, 0x18, + 0x0a, 0x8d, 0x9e, 0x83, 0xe9, 0x9e, 0xa1, 0x1b, 0x0e, 0xb6, 0xba, 0x16, 0x26, 0x1a, 0xcb, 0x5e, + 0x35, 0xf3, 0xb5, 0xd4, 0x08, 0x9d, 0xdb, 0xf4, 0x53, 0x33, 0x14, 0x65, 0xaa, 0x37, 0x58, 0x78, + 0x3a, 0x93, 0xfe, 0x7a, 0x4a, 0x7a, 0xf9, 0xe5, 0x97, 0x5f, 0x8e, 0xca, 0xbf, 0x99, 0x84, 0xe9, + 0x61, 0x73, 0x66, 0xe8, 0xf4, 0x3d, 0x02, 0x49, 0xa3, 0xd7, 0xd9, 0xc2, 0x16, 0x15, 0x52, 0x42, + 0xe1, 0x4f, 0xa8, 0x02, 0x89, 0xb6, 0xb6, 0x85, 0xdb, 0x33, 0xf1, 0xf9, 0xc8, 0xc9, 0xc2, 0xd9, + 0x07, 0xc6, 0x9a, 0x95, 0x0b, 0xcb, 0x84, 0x45, 0x61, 0x9c, 0xe8, 0x9d, 0x10, 0xe7, 0x26, 0x9a, + 0x20, 0x9c, 0x1e, 0x0f, 0x81, 0xcc, 0x25, 0x85, 0xf2, 0xa1, 0xe3, 0x90, 0x21, 0xff, 0x33, 0xdd, + 0x48, 0xd2, 0x36, 0xa7, 0x49, 0x01, 0xd1, 0x0b, 0x54, 0x82, 0x34, 0x9d, 0x26, 0x2d, 0x2c, 0x96, + 0x36, 0xf7, 0x99, 0x28, 0x56, 0x0b, 0x6f, 0x6b, 0xbd, 0xb6, 0xa3, 0x5e, 0xd7, 0xda, 0x3d, 0x4c, + 0x15, 0x3e, 0xa3, 0xe4, 0x78, 0xe1, 0x55, 0x52, 0x86, 0xe6, 0x20, 0xcb, 0x66, 0x95, 0x6e, 0xb4, + 0xf0, 0x1e, 0xb5, 0x9e, 0x09, 0x85, 0x4d, 0xb4, 0x25, 0x52, 0x42, 0x5e, 0xff, 0xa2, 0x6d, 0x1a, + 0x42, 0x35, 0xe9, 0x2b, 0x48, 0x01, 0x7d, 0xfd, 0xe3, 0xfd, 0x86, 0xfb, 0xae, 0xe1, 0xdd, 0x1b, + 0x98, 0x4b, 0x27, 0xa0, 0x48, 0x29, 0x1e, 0xe5, 0x43, 0xaf, 0xb5, 0x67, 0x26, 0xe7, 0x23, 0x27, + 0xd3, 0x4a, 0x81, 0x15, 0xaf, 0xf1, 0x52, 0xf9, 0xb3, 0x51, 0x88, 0x53, 0xc3, 0x52, 0x84, 0xec, + 0xc6, 0xf3, 0xeb, 0x75, 0x75, 0x71, 0x6d, 0xb3, 0xba, 0x5c, 0x97, 0x22, 0xa8, 0x00, 0x40, 0x0b, + 0x2e, 0x2e, 0xaf, 0x55, 0x36, 0xa4, 0xa8, 0xfb, 0xbc, 0xb4, 0xba, 0x71, 0xfe, 0x31, 0x29, 0xe6, + 0x32, 0x6c, 0xb2, 0x82, 0xb8, 0x9f, 0xe0, 0xd1, 0xb3, 0x52, 0x02, 0x49, 0x90, 0x63, 0x00, 0x4b, + 0xcf, 0xd5, 0x17, 0xcf, 0x3f, 0x26, 0x25, 0x83, 0x25, 0x8f, 0x9e, 0x95, 0x52, 0x28, 0x0f, 0x19, + 0x5a, 0x52, 0x5d, 0x5b, 0x5b, 0x96, 0xd2, 0x2e, 0x66, 0x63, 0x43, 0x59, 0x5a, 0xbd, 0x24, 0x65, + 0x5c, 0xcc, 0x4b, 0xca, 0xda, 0xe6, 0xba, 0x04, 0x2e, 0xc2, 0x4a, 0xbd, 0xd1, 0xa8, 0x5c, 0xaa, + 0x4b, 0x59, 0x97, 0xa2, 0xfa, 0xfc, 0x46, 0xbd, 0x21, 0xe5, 0x02, 0xcd, 0x7a, 0xf4, 0xac, 0x94, + 0x77, 0x5f, 0x51, 0x5f, 0xdd, 0x5c, 0x91, 0x0a, 0x68, 0x12, 0xf2, 0xec, 0x15, 0xa2, 0x11, 0xc5, + 0xbe, 0xa2, 0xf3, 0x8f, 0x49, 0x92, 0xd7, 0x10, 0x86, 0x32, 0x19, 0x28, 0x38, 0xff, 0x98, 0x84, + 0xe4, 0x1a, 0x24, 0xa8, 0x1a, 0x22, 0x04, 0x85, 0xe5, 0x4a, 0xb5, 0xbe, 0xac, 0xae, 0xad, 0x6f, + 0x2c, 0xad, 0xad, 0x56, 0x96, 0xa5, 0x88, 0x57, 0xa6, 0xd4, 0xdf, 0xb5, 0xb9, 0xa4, 0xd4, 0x17, + 0xa5, 0xa8, 0xbf, 0x6c, 0xbd, 0x5e, 0xd9, 0xa8, 0x2f, 0x4a, 0x31, 0xb9, 0x09, 0xd3, 0xc3, 0x0c, + 0xea, 0xd0, 0x29, 0xe4, 0xd3, 0x85, 0xe8, 0x08, 0x5d, 0xa0, 0x58, 0xfd, 0xba, 0x20, 0x7f, 0x25, + 0x0a, 0x53, 0x43, 0x16, 0x95, 0xa1, 0x2f, 0x79, 0x1a, 0x12, 0x4c, 0x97, 0xd9, 0x32, 0x7b, 0x6a, + 0xe8, 0xea, 0x44, 0x35, 0x7b, 0x60, 0xa9, 0xa5, 0x7c, 0x7e, 0x57, 0x23, 0x36, 0xc2, 0xd5, 0x20, + 0x10, 0x03, 0x0a, 0xfb, 0xfd, 0x03, 0xc6, 0x9f, 0xad, 0x8f, 0xe7, 0xc7, 0x59, 0x1f, 0x69, 0xd9, + 0xe1, 0x16, 0x81, 0xc4, 0x90, 0x45, 0xe0, 0x02, 0x4c, 0x0e, 0x00, 0x8d, 0x6d, 0x8c, 0xdf, 0x1b, + 0x81, 0x99, 0x51, 0xc2, 0x09, 0x31, 0x89, 0xd1, 0x80, 0x49, 0xbc, 0xd0, 0x2f, 0xc1, 0xbb, 0x47, + 0x0f, 0xc2, 0xc0, 0x58, 0x7f, 0x32, 0x02, 0x47, 0x86, 0xbb, 0x94, 0x43, 0xdb, 0xf0, 0x4e, 0x48, + 0x76, 0xb0, 0xb3, 0x6b, 0x0a, 0xb7, 0xea, 0xfe, 0x21, 0x8b, 0x35, 0xa9, 0xee, 0x1f, 0x6c, 0xce, + 0xe5, 0x5f, 0xed, 0x63, 0xa3, 0xfc, 0x42, 0xd6, 0x9a, 0x81, 0x96, 0xfe, 0x68, 0x14, 0xee, 0x18, + 0x0a, 0x3e, 0xb4, 0xa1, 0x77, 0x01, 0xe8, 0x46, 0xb7, 0xe7, 0x30, 0xd7, 0x89, 0x59, 0xe2, 0x0c, + 0x2d, 0xa1, 0xc6, 0x8b, 0x58, 0xd9, 0x9e, 0xe3, 0xd6, 0xc7, 0x68, 0x3d, 0xb0, 0x22, 0x4a, 0xf0, + 0x84, 0xd7, 0xd0, 0x38, 0x6d, 0xe8, 0xec, 0x88, 0x9e, 0x0e, 0x28, 0xe6, 0xc3, 0x20, 0x35, 0xdb, + 0x3a, 0x36, 0x1c, 0xd5, 0x76, 0x2c, 0xac, 0x75, 0x74, 0x63, 0x87, 0x2e, 0x35, 0xe9, 0x72, 0x62, + 0x5b, 0x6b, 0xdb, 0x58, 0x29, 0xb2, 0xea, 0x86, 0xa8, 0x25, 0x1c, 0x54, 0x81, 0x2c, 0x1f, 0x47, + 0x32, 0xc0, 0xc1, 0xaa, 0x5d, 0x0e, 0xf9, 0x27, 0x32, 0x90, 0xf5, 0x39, 0xe0, 0xe8, 0x6e, 0xc8, + 0xbd, 0xa8, 0x5d, 0xd7, 0x54, 0x11, 0x54, 0x31, 0x49, 0x64, 0x49, 0xd9, 0x3a, 0x0f, 0xac, 0x1e, + 0x86, 0x69, 0x4a, 0x62, 0xf6, 0x1c, 0x6c, 0xa9, 0xcd, 0xb6, 0x66, 0xdb, 0x54, 0x68, 0x69, 0x4a, + 0x8a, 0x48, 0xdd, 0x1a, 0xa9, 0xaa, 0x89, 0x1a, 0x74, 0x0e, 0xa6, 0x28, 0x47, 0xa7, 0xd7, 0x76, + 0xf4, 0x6e, 0x1b, 0xab, 0x24, 0xcc, 0xb3, 0xe9, 0x92, 0xe3, 0xb6, 0x6c, 0x92, 0x50, 0xac, 0x70, + 0x02, 0xd2, 0x22, 0x1b, 0x2d, 0xc2, 0x5d, 0x94, 0x6d, 0x07, 0x1b, 0xd8, 0xd2, 0x1c, 0xac, 0xe2, + 0xf7, 0xf4, 0xb4, 0xb6, 0xad, 0x6a, 0x46, 0x4b, 0xdd, 0xd5, 0xec, 0xdd, 0x99, 0x69, 0x02, 0x50, + 0x8d, 0xce, 0x44, 0x94, 0x63, 0x84, 0xf0, 0x12, 0xa7, 0xab, 0x53, 0xb2, 0x8a, 0xd1, 0xba, 0xac, + 0xd9, 0xbb, 0xa8, 0x0c, 0x47, 0x28, 0x8a, 0xed, 0x58, 0xba, 0xb1, 0xa3, 0x36, 0x77, 0x71, 0xf3, + 0x9a, 0xda, 0x73, 0xb6, 0x9f, 0x98, 0x39, 0xee, 0x7f, 0x3f, 0x6d, 0x61, 0x83, 0xd2, 0xd4, 0x08, + 0xc9, 0xa6, 0xb3, 0xfd, 0x04, 0x6a, 0x40, 0x8e, 0x0c, 0x46, 0x47, 0x7f, 0x09, 0xab, 0xdb, 0xa6, + 0x45, 0xd7, 0xd0, 0xc2, 0x10, 0xd3, 0xe4, 0x93, 0xe0, 0xc2, 0x1a, 0x67, 0x58, 0x31, 0x5b, 0xb8, + 0x9c, 0x68, 0xac, 0xd7, 0xeb, 0x8b, 0x4a, 0x56, 0xa0, 0x5c, 0x34, 0x2d, 0xa2, 0x50, 0x3b, 0xa6, + 0x2b, 0xe0, 0x2c, 0x53, 0xa8, 0x1d, 0x53, 0x88, 0xf7, 0x1c, 0x4c, 0x35, 0x9b, 0xac, 0xcf, 0x7a, + 0x53, 0xe5, 0xc1, 0x98, 0x3d, 0x23, 0x05, 0x84, 0xd5, 0x6c, 0x5e, 0x62, 0x04, 0x5c, 0xc7, 0x6d, + 0xf4, 0x24, 0xdc, 0xe1, 0x09, 0xcb, 0xcf, 0x38, 0x39, 0xd0, 0xcb, 0x7e, 0xd6, 0x73, 0x30, 0xd5, + 0xdd, 0x1f, 0x64, 0x44, 0x81, 0x37, 0x76, 0xf7, 0xfb, 0xd9, 0x1e, 0x87, 0xe9, 0xee, 0x6e, 0x77, + 0x90, 0xef, 0xb4, 0x9f, 0x0f, 0x75, 0x77, 0xbb, 0xfd, 0x8c, 0xf7, 0xd1, 0xc8, 0xdc, 0xc2, 0x4d, + 0xcd, 0xc1, 0xad, 0x99, 0xa3, 0x7e, 0x72, 0x5f, 0x05, 0x5a, 0x00, 0xa9, 0xd9, 0x54, 0xb1, 0xa1, + 0x6d, 0xb5, 0xb1, 0xaa, 0x59, 0xd8, 0xd0, 0xec, 0x99, 0x39, 0x4a, 0x1c, 0x77, 0xac, 0x1e, 0x56, + 0x0a, 0xcd, 0x66, 0x9d, 0x56, 0x56, 0x68, 0x1d, 0x3a, 0x0d, 0x93, 0xe6, 0xd6, 0x8b, 0x4d, 0xa6, + 0x91, 0x6a, 0xd7, 0xc2, 0xdb, 0xfa, 0xde, 0xcc, 0xbd, 0x54, 0xbc, 0x45, 0x52, 0x41, 0xf5, 0x71, + 0x9d, 0x16, 0xa3, 0x53, 0x20, 0x35, 0xed, 0x5d, 0xcd, 0xea, 0x52, 0x93, 0x6c, 0x77, 0xb5, 0x26, + 0x9e, 0xb9, 0x8f, 0x91, 0xb2, 0xf2, 0x55, 0x51, 0x4c, 0x66, 0x84, 0x7d, 0x43, 0xdf, 0x76, 0x04, + 0xe2, 0x09, 0x36, 0x23, 0x68, 0x19, 0x47, 0x3b, 0x09, 0x12, 0x91, 0x44, 0xe0, 0xc5, 0x27, 0x29, + 0x59, 0xa1, 0xbb, 0xdb, 0xf5, 0xbf, 0xf7, 0x1e, 0xc8, 0x13, 0x4a, 0xef, 0xa5, 0xa7, 0x98, 0xe3, + 0xd6, 0xdd, 0xf5, 0xbd, 0xf1, 0x31, 0x38, 0x42, 0x88, 0x3a, 0xd8, 0xd1, 0x5a, 0x9a, 0xa3, 0xf9, + 0xa8, 0x1f, 0xa4, 0xd4, 0x44, 0xec, 0x2b, 0xbc, 0x32, 0xd0, 0x4e, 0xab, 0xb7, 0xb5, 0xef, 0x2a, + 0xd6, 0x43, 0xac, 0x9d, 0xa4, 0x4c, 0xa8, 0xd6, 0x5b, 0xe6, 0x9c, 0xcb, 0x65, 0xc8, 0xf9, 0xf5, + 0x1e, 0x65, 0x80, 0x69, 0xbe, 0x14, 0x21, 0x4e, 0x50, 0x6d, 0x6d, 0x91, 0xb8, 0x2f, 0x2f, 0xd4, + 0xa5, 0x28, 0x71, 0xa3, 0x96, 0x97, 0x36, 0xea, 0xaa, 0xb2, 0xb9, 0xba, 0xb1, 0xb4, 0x52, 0x97, + 0x62, 0x3e, 0xc7, 0xfe, 0x4a, 0x3c, 0x7d, 0xbf, 0x74, 0x82, 0x78, 0x0d, 0x85, 0x60, 0xa4, 0x86, + 0xde, 0x01, 0x47, 0x45, 0x5a, 0xc5, 0xc6, 0x8e, 0x7a, 0x43, 0xb7, 0xe8, 0x84, 0xec, 0x68, 0x6c, + 0x71, 0x74, 0xf5, 0x67, 0x9a, 0x53, 0x35, 0xb0, 0xf3, 0xac, 0x6e, 0x91, 0xe9, 0xd6, 0xd1, 0x1c, + 0xb4, 0x0c, 0x73, 0x86, 0xa9, 0xda, 0x8e, 0x66, 0xb4, 0x34, 0xab, 0xa5, 0x7a, 0x09, 0x2d, 0x55, + 0x6b, 0x36, 0xb1, 0x6d, 0x9b, 0x6c, 0x21, 0x74, 0x51, 0xee, 0x34, 0xcc, 0x06, 0x27, 0xf6, 0x56, + 0x88, 0x0a, 0x27, 0xed, 0x53, 0xdf, 0xd8, 0x28, 0xf5, 0x3d, 0x0e, 0x99, 0x8e, 0xd6, 0x55, 0xb1, + 0xe1, 0x58, 0xfb, 0xd4, 0x3f, 0x4f, 0x2b, 0xe9, 0x8e, 0xd6, 0xad, 0x93, 0xe7, 0xb7, 0x25, 0x4c, + 0xba, 0x12, 0x4f, 0xc7, 0xa5, 0xc4, 0x95, 0x78, 0x3a, 0x21, 0x25, 0xaf, 0xc4, 0xd3, 0x49, 0x29, + 0x75, 0x25, 0x9e, 0x4e, 0x4b, 0x99, 0x2b, 0xf1, 0x74, 0x46, 0x02, 0xf9, 0x27, 0xe3, 0x90, 0xf3, + 0x7b, 0xf0, 0x24, 0x20, 0x6a, 0xd2, 0x35, 0x2c, 0x42, 0xad, 0xdc, 0x3d, 0x07, 0xfa, 0xfb, 0x0b, + 0x35, 0xb2, 0xb8, 0x95, 0x93, 0xcc, 0x5d, 0x56, 0x18, 0x27, 0x71, 0x2c, 0x88, 0xfa, 0x61, 0xe6, + 0x9e, 0xa4, 0x15, 0xfe, 0x84, 0x2e, 0x41, 0xf2, 0x45, 0x9b, 0x62, 0x27, 0x29, 0xf6, 0xbd, 0x07, + 0x63, 0x5f, 0x69, 0x50, 0xf0, 0xcc, 0x95, 0x86, 0xba, 0xba, 0xa6, 0xac, 0x54, 0x96, 0x15, 0xce, + 0x8e, 0x8e, 0x41, 0xbc, 0xad, 0xbd, 0xb4, 0x1f, 0x5c, 0x06, 0x69, 0x11, 0x5a, 0x80, 0x62, 0xcf, + 0xb8, 0x8e, 0x2d, 0x7d, 0x5b, 0xc7, 0x2d, 0x95, 0x52, 0x15, 0xfd, 0x54, 0x05, 0xaf, 0x76, 0x99, + 0xd0, 0x8f, 0x39, 0x8c, 0xc7, 0x20, 0x7e, 0x03, 0x6b, 0xd7, 0x82, 0x8b, 0x15, 0x2d, 0x7a, 0x0b, + 0xa7, 0xd3, 0x19, 0x48, 0x50, 0xf9, 0x22, 0x00, 0x2e, 0x61, 0x69, 0x02, 0xa5, 0x21, 0x5e, 0x5b, + 0x53, 0xc8, 0x94, 0x92, 0x20, 0xc7, 0x4a, 0xd5, 0xf5, 0xa5, 0x7a, 0xad, 0x2e, 0x45, 0xe5, 0x73, + 0x90, 0x64, 0x42, 0x23, 0xd3, 0xcd, 0x15, 0x9b, 0x34, 0xc1, 0x1f, 0x39, 0x46, 0x44, 0xd4, 0x6e, + 0xae, 0x54, 0xeb, 0x8a, 0x14, 0x1d, 0x50, 0x16, 0xd9, 0x86, 0x9c, 0xdf, 0x93, 0x7f, 0x7b, 0xc2, + 0xf9, 0x2f, 0x44, 0x20, 0xeb, 0xf3, 0xcc, 0x89, 0x4b, 0xa5, 0xb5, 0xdb, 0xe6, 0x0d, 0x55, 0x6b, + 0xeb, 0x9a, 0xcd, 0x55, 0x09, 0x68, 0x51, 0x85, 0x94, 0x8c, 0x3b, 0x74, 0x6f, 0xd3, 0x24, 0x4b, + 0x48, 0x49, 0xf9, 0xa3, 0x11, 0x90, 0xfa, 0x5d, 0xe3, 0xbe, 0x66, 0x46, 0xfe, 0x3a, 0x9b, 0x29, + 0x7f, 0x24, 0x02, 0x85, 0xa0, 0x3f, 0xdc, 0xd7, 0xbc, 0xbb, 0xff, 0x5a, 0x9b, 0xf7, 0xfb, 0x51, + 0xc8, 0x07, 0xbc, 0xe0, 0x71, 0x5b, 0xf7, 0x1e, 0x98, 0xd4, 0x5b, 0xb8, 0xd3, 0x35, 0x1d, 0x6c, + 0x34, 0xf7, 0xd5, 0x36, 0xbe, 0x8e, 0xdb, 0x33, 0x32, 0x35, 0x32, 0x67, 0x0e, 0xf6, 0xb3, 0x17, + 0x96, 0x3c, 0xbe, 0x65, 0xc2, 0x56, 0x9e, 0x5a, 0x5a, 0xac, 0xaf, 0xac, 0xaf, 0x6d, 0xd4, 0x57, + 0x6b, 0xcf, 0xab, 0x9b, 0xab, 0xcf, 0xac, 0xae, 0x3d, 0xbb, 0xaa, 0x48, 0x7a, 0x1f, 0xd9, 0x5b, + 0x38, 0xed, 0xd7, 0x41, 0xea, 0x6f, 0x14, 0x3a, 0x0a, 0xc3, 0x9a, 0x25, 0x4d, 0xa0, 0x29, 0x28, + 0xae, 0xae, 0xa9, 0x8d, 0xa5, 0xc5, 0xba, 0x5a, 0xbf, 0x78, 0xb1, 0x5e, 0xdb, 0x68, 0xb0, 0xcc, + 0x89, 0x4b, 0xbd, 0x11, 0x98, 0xe0, 0xf2, 0x87, 0x63, 0x30, 0x35, 0xa4, 0x25, 0xa8, 0xc2, 0x63, + 0x1e, 0x16, 0x86, 0x3d, 0x34, 0x4e, 0xeb, 0x17, 0x88, 0xd7, 0xb1, 0xae, 0x59, 0x0e, 0x0f, 0x91, + 0x4e, 0x01, 0x91, 0x92, 0xe1, 0x10, 0xe3, 0x6a, 0xf1, 0x8c, 0x14, 0x0b, 0x84, 0x8a, 0x5e, 0x39, + 0x4b, 0x4a, 0x3d, 0x08, 0xa8, 0x6b, 0xda, 0xba, 0xa3, 0x5f, 0xc7, 0xaa, 0x6e, 0x88, 0xf4, 0x15, + 0x09, 0x8c, 0xe2, 0x8a, 0x24, 0x6a, 0x96, 0x0c, 0xc7, 0xa5, 0x36, 0xf0, 0x8e, 0xd6, 0x47, 0x4d, + 0x8c, 0x7f, 0x4c, 0x91, 0x44, 0x8d, 0x4b, 0x7d, 0x37, 0xe4, 0x5a, 0x66, 0x8f, 0x78, 0x8b, 0x8c, + 0x8e, 0xac, 0x35, 0x11, 0x25, 0xcb, 0xca, 0x5c, 0x12, 0x1e, 0x07, 0x78, 0x79, 0xb3, 0x9c, 0x92, + 0x65, 0x65, 0x8c, 0xe4, 0x04, 0x14, 0xb5, 0x9d, 0x1d, 0x8b, 0x80, 0x0b, 0x20, 0x16, 0xd9, 0x14, + 0xdc, 0x62, 0x4a, 0x58, 0xba, 0x02, 0x69, 0x21, 0x07, 0xb2, 0xd8, 0x13, 0x49, 0xa8, 0x5d, 0x16, + 0xae, 0x47, 0x4f, 0x66, 0x94, 0xb4, 0x21, 0x2a, 0xef, 0x86, 0x9c, 0x6e, 0xab, 0xde, 0x36, 0x40, + 0x74, 0x3e, 0x7a, 0x32, 0xad, 0x64, 0x75, 0xdb, 0x4d, 0xa1, 0xca, 0x9f, 0x8c, 0x42, 0x21, 0xb8, + 0x8d, 0x81, 0x16, 0x21, 0xdd, 0x36, 0x9b, 0x1a, 0x55, 0x2d, 0xb6, 0x87, 0x76, 0x32, 0x64, 0xe7, + 0x63, 0x61, 0x99, 0xd3, 0x2b, 0x2e, 0x67, 0xe9, 0x3f, 0x44, 0x20, 0x2d, 0x8a, 0xd1, 0x11, 0x88, + 0x77, 0x35, 0x67, 0x97, 0xc2, 0x25, 0xaa, 0x51, 0x29, 0xa2, 0xd0, 0x67, 0x52, 0x6e, 0x77, 0x35, + 0x83, 0xaa, 0x00, 0x2f, 0x27, 0xcf, 0x64, 0x5c, 0xdb, 0x58, 0x6b, 0xd1, 0xb0, 0xc9, 0xec, 0x74, + 0xb0, 0xe1, 0xd8, 0x62, 0x5c, 0x79, 0x79, 0x8d, 0x17, 0xa3, 0x07, 0x60, 0xd2, 0xb1, 0x34, 0xbd, + 0x1d, 0xa0, 0x8d, 0x53, 0x5a, 0x49, 0x54, 0xb8, 0xc4, 0x65, 0x38, 0x26, 0x70, 0x5b, 0xd8, 0xd1, + 0x9a, 0xbb, 0xb8, 0xe5, 0x31, 0x25, 0x69, 0x7a, 0xe4, 0x28, 0x27, 0x58, 0xe4, 0xf5, 0x82, 0x57, + 0xfe, 0x72, 0x04, 0x26, 0x45, 0xa0, 0xd7, 0x72, 0x85, 0xb5, 0x02, 0xa0, 0x19, 0x86, 0xe9, 0xf8, + 0xc5, 0x35, 0xa8, 0xca, 0x03, 0x7c, 0x0b, 0x15, 0x97, 0x49, 0xf1, 0x01, 0x94, 0x3a, 0x00, 0x5e, + 0xcd, 0x48, 0xb1, 0xcd, 0x41, 0x96, 0xef, 0x51, 0xd1, 0x8d, 0x4e, 0x96, 0x1a, 0x00, 0x56, 0x44, + 0x22, 0x42, 0x34, 0x0d, 0x89, 0x2d, 0xbc, 0xa3, 0x1b, 0x3c, 0xf3, 0xcc, 0x1e, 0x44, 0x02, 0x27, + 0xee, 0x26, 0x70, 0xaa, 0x7f, 0x1b, 0xa6, 0x9a, 0x66, 0xa7, 0xbf, 0xb9, 0x55, 0xa9, 0x2f, 0x3d, + 0x61, 0x5f, 0x8e, 0xbc, 0xf0, 0x10, 0x27, 0xda, 0x31, 0xdb, 0x9a, 0xb1, 0xb3, 0x60, 0x5a, 0x3b, + 0xde, 0x46, 0x2d, 0xf1, 0x90, 0x6c, 0xdf, 0x76, 0x6d, 0x77, 0xeb, 0x2f, 0x23, 0x91, 0x9f, 0x8b, + 0xc6, 0x2e, 0xad, 0x57, 0x7f, 0x31, 0x5a, 0xba, 0xc4, 0x18, 0xd7, 0x85, 0x30, 0x14, 0xbc, 0xdd, + 0xc6, 0x4d, 0xd2, 0x41, 0xf8, 0xa3, 0x07, 0x60, 0x7a, 0xc7, 0xdc, 0x31, 0x29, 0xd2, 0x19, 0xf2, + 0x8b, 0xef, 0xf4, 0x66, 0xdc, 0xd2, 0x52, 0xe8, 0xb6, 0x70, 0x79, 0x15, 0xa6, 0x38, 0xb1, 0x4a, + 0xb7, 0x9a, 0x58, 0x20, 0x84, 0x0e, 0xcc, 0xc2, 0xcd, 0xfc, 0xf2, 0x57, 0xe9, 0xf2, 0xad, 0x4c, + 0x72, 0x56, 0x52, 0xc7, 0x62, 0xa5, 0xb2, 0x02, 0x77, 0x04, 0xf0, 0xd8, 0x24, 0xc5, 0x56, 0x08, + 0xe2, 0xbf, 0xe6, 0x88, 0x53, 0x3e, 0xc4, 0x06, 0x67, 0x2d, 0xd7, 0x20, 0x7f, 0x18, 0xac, 0x7f, + 0xc3, 0xb1, 0x72, 0xd8, 0x0f, 0x72, 0x09, 0x8a, 0x14, 0xa4, 0xd9, 0xb3, 0x1d, 0xb3, 0x43, 0x2d, + 0xe0, 0xc1, 0x30, 0xff, 0xf6, 0xab, 0x6c, 0xd6, 0x14, 0x08, 0x5b, 0xcd, 0xe5, 0x2a, 0x97, 0x81, + 0xee, 0xae, 0xb5, 0x70, 0xb3, 0x1d, 0x82, 0xf0, 0x45, 0xde, 0x10, 0x97, 0xbe, 0x7c, 0x15, 0xa6, + 0xc9, 0x6f, 0x6a, 0xa0, 0xfc, 0x2d, 0x09, 0x4f, 0xd9, 0xcd, 0x7c, 0xf9, 0xbd, 0x6c, 0x62, 0x4e, + 0xb9, 0x00, 0xbe, 0x36, 0xf9, 0x46, 0x71, 0x07, 0x3b, 0x0e, 0xb6, 0x6c, 0x55, 0x6b, 0x0f, 0x6b, + 0x9e, 0x2f, 0xe7, 0x31, 0xf3, 0x33, 0xdf, 0x0c, 0x8e, 0xe2, 0x25, 0xc6, 0x59, 0x69, 0xb7, 0xcb, + 0x9b, 0x70, 0x74, 0x88, 0x56, 0x8c, 0x81, 0xf9, 0x61, 0x8e, 0x39, 0x3d, 0xa0, 0x19, 0x04, 0x76, + 0x1d, 0x44, 0xb9, 0x3b, 0x96, 0x63, 0x60, 0xfe, 0x2c, 0xc7, 0x44, 0x9c, 0x57, 0x0c, 0x29, 0x41, + 0xbc, 0x02, 0x93, 0xd7, 0xb1, 0xb5, 0x65, 0xda, 0x3c, 0xcf, 0x34, 0x06, 0xdc, 0x47, 0x38, 0x5c, + 0x91, 0x33, 0xd2, 0xc4, 0x13, 0xc1, 0x7a, 0x12, 0xd2, 0xdb, 0x5a, 0x13, 0x8f, 0x01, 0x71, 0x8b, + 0x43, 0xa4, 0x08, 0x3d, 0x61, 0xad, 0x40, 0x6e, 0xc7, 0xe4, 0x6b, 0x54, 0x38, 0xfb, 0x47, 0x39, + 0x7b, 0x56, 0xf0, 0x70, 0x88, 0xae, 0xd9, 0xed, 0xb5, 0xc9, 0x02, 0x16, 0x0e, 0xf1, 0x0f, 0x05, + 0x84, 0xe0, 0xe1, 0x10, 0x87, 0x10, 0xeb, 0x2b, 0x02, 0xc2, 0xf6, 0xc9, 0xf3, 0x69, 0xc8, 0x9a, + 0x46, 0x7b, 0xdf, 0x34, 0xc6, 0x69, 0xc4, 0xc7, 0x38, 0x02, 0x70, 0x16, 0x02, 0x70, 0x01, 0x32, + 0xe3, 0x0e, 0xc4, 0xcf, 0x7f, 0x53, 0x4c, 0x0f, 0x31, 0x02, 0x97, 0xa0, 0x28, 0x0c, 0x94, 0x6e, + 0x1a, 0x63, 0x40, 0x7c, 0x82, 0x43, 0x14, 0x7c, 0x6c, 0xbc, 0x1b, 0x0e, 0xb6, 0x9d, 0x1d, 0x3c, + 0x0e, 0xc8, 0x27, 0x45, 0x37, 0x38, 0x0b, 0x17, 0xe5, 0x16, 0x36, 0x9a, 0xbb, 0xe3, 0x21, 0xbc, + 0x2a, 0x44, 0x29, 0x78, 0x08, 0x44, 0x0d, 0xf2, 0x1d, 0xcd, 0xb2, 0x77, 0xb5, 0xf6, 0x58, 0xc3, + 0xf1, 0x0b, 0x1c, 0x23, 0xe7, 0x32, 0x71, 0x89, 0xf4, 0x8c, 0xc3, 0xc0, 0xfc, 0xa2, 0x90, 0x88, + 0x8f, 0x8d, 0x4f, 0x3d, 0xdb, 0xa1, 0x49, 0xb9, 0xc3, 0xa0, 0xfd, 0x63, 0x31, 0xf5, 0x18, 0xef, + 0x8a, 0x1f, 0xf1, 0x02, 0x64, 0x6c, 0xfd, 0xa5, 0xb1, 0x60, 0xfe, 0x89, 0x18, 0x69, 0xca, 0x40, + 0x98, 0x9f, 0x87, 0x63, 0x43, 0x97, 0x89, 0x31, 0xc0, 0xfe, 0x29, 0x07, 0x3b, 0x32, 0x64, 0xa9, + 0xe0, 0x26, 0xe1, 0xb0, 0x90, 0xbf, 0x24, 0x4c, 0x02, 0xee, 0xc3, 0x5a, 0x27, 0x51, 0x83, 0xad, + 0x6d, 0x1f, 0x4e, 0x6a, 0xff, 0x4c, 0x48, 0x8d, 0xf1, 0x06, 0xa4, 0xb6, 0x01, 0x47, 0x38, 0xe2, + 0xe1, 0xc6, 0xf5, 0x53, 0xc2, 0xb0, 0x32, 0xee, 0xcd, 0xe0, 0xe8, 0x7e, 0x2f, 0x94, 0x5c, 0x71, + 0x0a, 0xf7, 0xd4, 0x56, 0x3b, 0x5a, 0x77, 0x0c, 0xe4, 0x5f, 0xe6, 0xc8, 0xc2, 0xe2, 0xbb, 0xfe, + 0xad, 0xbd, 0xa2, 0x75, 0x09, 0xf8, 0x73, 0x30, 0x23, 0xc0, 0x7b, 0x86, 0x85, 0x9b, 0xe6, 0x8e, + 0xa1, 0xbf, 0x84, 0x5b, 0x63, 0x40, 0xff, 0x4a, 0xdf, 0x50, 0x6d, 0xfa, 0xd8, 0x09, 0xf2, 0x12, + 0x48, 0xae, 0xaf, 0xa2, 0xea, 0x9d, 0xae, 0x69, 0x39, 0x21, 0x88, 0x9f, 0x16, 0x23, 0xe5, 0xf2, + 0x2d, 0x51, 0xb6, 0x72, 0x1d, 0xd8, 0x4e, 0xf5, 0xb8, 0x2a, 0xf9, 0x19, 0x0e, 0x94, 0xf7, 0xb8, + 0xb8, 0xe1, 0x68, 0x9a, 0x9d, 0xae, 0x66, 0x8d, 0x63, 0xff, 0xfe, 0xb9, 0x30, 0x1c, 0x9c, 0x85, + 0x1b, 0x0e, 0xe2, 0xd1, 0x91, 0xd5, 0x7e, 0x0c, 0x84, 0xcf, 0x0a, 0xc3, 0x21, 0x78, 0x38, 0x84, + 0x70, 0x18, 0xc6, 0x80, 0xf8, 0x9c, 0x80, 0x10, 0x3c, 0x04, 0xe2, 0x5d, 0xde, 0x42, 0x6b, 0xe1, + 0x1d, 0xdd, 0x76, 0x2c, 0xe6, 0x14, 0x1f, 0x0c, 0xf5, 0xf9, 0x6f, 0x06, 0x9d, 0x30, 0xc5, 0xc7, + 0x4a, 0x2c, 0x11, 0x4f, 0xd3, 0xd2, 0x98, 0x29, 0xbc, 0x61, 0xbf, 0x2a, 0x2c, 0x91, 0x8f, 0x8d, + 0xb4, 0xcd, 0xe7, 0x21, 0x12, 0xb1, 0x37, 0x49, 0xa4, 0x30, 0x06, 0xdc, 0xbf, 0xe8, 0x6b, 0x5c, + 0x43, 0xf0, 0x12, 0x4c, 0x9f, 0xff, 0xd3, 0x33, 0xae, 0xe1, 0xfd, 0xb1, 0xb4, 0xf3, 0xd7, 0xfa, + 0xfc, 0x9f, 0x4d, 0xc6, 0xc9, 0x6c, 0x48, 0xb1, 0xcf, 0x9f, 0x42, 0x61, 0xe7, 0x92, 0x66, 0x7e, + 0xf0, 0x0d, 0xde, 0xdf, 0xa0, 0x3b, 0x55, 0x5e, 0x26, 0x4a, 0x1e, 0x74, 0x7a, 0xc2, 0xc1, 0xde, + 0xfb, 0x86, 0xab, 0xe7, 0x01, 0x9f, 0xa7, 0x7c, 0x11, 0xf2, 0x01, 0x87, 0x27, 0x1c, 0xea, 0x87, + 0x39, 0x54, 0xce, 0xef, 0xef, 0x94, 0xcf, 0x41, 0x9c, 0x38, 0x2f, 0xe1, 0xec, 0x3f, 0xc2, 0xd9, + 0x29, 0x79, 0xf9, 0x29, 0x48, 0x0b, 0xa7, 0x25, 0x9c, 0xf5, 0xef, 0x70, 0x56, 0x97, 0x85, 0xb0, + 0x0b, 0x87, 0x25, 0x9c, 0xfd, 0xef, 0x0a, 0x76, 0xc1, 0x42, 0xd8, 0xc7, 0x17, 0xe1, 0x17, 0xfe, + 0x5e, 0x9c, 0x2f, 0x3a, 0x42, 0x76, 0x17, 0x20, 0xc5, 0x3d, 0x95, 0x70, 0xee, 0x1f, 0xe5, 0x2f, + 0x17, 0x1c, 0xe5, 0xc7, 0x21, 0x31, 0xa6, 0xc0, 0xff, 0x3e, 0x67, 0x65, 0xf4, 0xe5, 0x1a, 0x64, + 0x7d, 0xde, 0x49, 0x38, 0xfb, 0xfb, 0x39, 0xbb, 0x9f, 0x8b, 0x34, 0x9d, 0x7b, 0x27, 0xe1, 0x00, + 0x3f, 0x2e, 0x9a, 0xce, 0x39, 0x88, 0xd8, 0x84, 0x63, 0x12, 0xce, 0xfd, 0x01, 0x21, 0x75, 0xc1, + 0x52, 0x7e, 0x1a, 0x32, 0xee, 0x62, 0x13, 0xce, 0xff, 0x13, 0x9c, 0xdf, 0xe3, 0x21, 0x12, 0xf0, + 0x2d, 0x76, 0xe1, 0x10, 0x3f, 0x29, 0x24, 0xe0, 0xe3, 0x22, 0xd3, 0xa8, 0xdf, 0x81, 0x09, 0x47, + 0xfa, 0xa0, 0x98, 0x46, 0x7d, 0xfe, 0x0b, 0x19, 0x4d, 0x6a, 0xf3, 0xc3, 0x21, 0xfe, 0x81, 0x18, + 0x4d, 0x4a, 0x4f, 0x9a, 0xd1, 0xef, 0x11, 0x84, 0x63, 0xfc, 0xb4, 0x68, 0x46, 0x9f, 0x43, 0x50, + 0x5e, 0x07, 0x34, 0xe8, 0x0d, 0x84, 0xe3, 0x7d, 0x88, 0xe3, 0x4d, 0x0e, 0x38, 0x03, 0xe5, 0x67, + 0xe1, 0xc8, 0x70, 0x4f, 0x20, 0x1c, 0xf5, 0x67, 0xde, 0xe8, 0x8b, 0xdd, 0xfc, 0x8e, 0x40, 0x79, + 0xc3, 0x5b, 0x52, 0xfc, 0x5e, 0x40, 0x38, 0xec, 0x87, 0xdf, 0x08, 0x1a, 0x6e, 0xbf, 0x13, 0x50, + 0xae, 0x00, 0x78, 0x0b, 0x70, 0x38, 0xd6, 0x47, 0x38, 0x96, 0x8f, 0x89, 0x4c, 0x0d, 0xbe, 0xfe, + 0x86, 0xf3, 0xdf, 0x12, 0x53, 0x83, 0x73, 0x90, 0xa9, 0x21, 0x96, 0xde, 0x70, 0xee, 0x8f, 0x8a, + 0xa9, 0x21, 0x58, 0x88, 0x66, 0xfb, 0x56, 0xb7, 0x70, 0x84, 0x8f, 0x09, 0xcd, 0xf6, 0x71, 0x95, + 0x57, 0x61, 0x72, 0x60, 0x41, 0x0c, 0x87, 0xfa, 0x39, 0x0e, 0x25, 0xf5, 0xaf, 0x87, 0xfe, 0xc5, + 0x8b, 0x2f, 0x86, 0xe1, 0x68, 0x1f, 0xef, 0x5b, 0xbc, 0xf8, 0x5a, 0x58, 0xbe, 0x00, 0x69, 0xa3, + 0xd7, 0x6e, 0x93, 0xc9, 0x83, 0x0e, 0x3e, 0x4b, 0x38, 0xf3, 0x3f, 0xbe, 0xcd, 0xa5, 0x23, 0x18, + 0xca, 0xe7, 0x20, 0x81, 0x3b, 0x5b, 0xb8, 0x15, 0xc6, 0xf9, 0x8d, 0x6f, 0x0b, 0x83, 0x49, 0xa8, + 0xcb, 0x4f, 0x03, 0xb0, 0xd4, 0x08, 0xdd, 0x3c, 0x0c, 0xe1, 0xfd, 0xc3, 0x6f, 0xf3, 0xc3, 0x3b, + 0x1e, 0x8b, 0x07, 0xc0, 0x8e, 0x02, 0x1d, 0x0c, 0xf0, 0xcd, 0x20, 0x00, 0x1d, 0x91, 0x27, 0x21, + 0xf5, 0xa2, 0x6d, 0x1a, 0x8e, 0xb6, 0x13, 0xc6, 0xfd, 0x47, 0x9c, 0x5b, 0xd0, 0x13, 0x81, 0x75, + 0x4c, 0x0b, 0x3b, 0xda, 0x8e, 0x1d, 0xc6, 0xfb, 0x3f, 0x39, 0xaf, 0xcb, 0x40, 0x98, 0x9b, 0x9a, + 0xed, 0x8c, 0xd3, 0xef, 0x3f, 0x16, 0xcc, 0x82, 0x81, 0x34, 0x9a, 0xfc, 0xbe, 0x86, 0xf7, 0xc3, + 0x78, 0xff, 0x44, 0x34, 0x9a, 0xd3, 0x97, 0x9f, 0x82, 0x0c, 0xf9, 0xc9, 0x4e, 0xe4, 0x85, 0x30, + 0xff, 0x29, 0x67, 0xf6, 0x38, 0xc8, 0x9b, 0x6d, 0xa7, 0xe5, 0xe8, 0xe1, 0xc2, 0xfe, 0x16, 0x1f, + 0x69, 0x41, 0x5f, 0xae, 0x40, 0xd6, 0x76, 0x5a, 0xad, 0x1e, 0xf7, 0x4f, 0x43, 0xd8, 0xff, 0xec, + 0xdb, 0x6e, 0xca, 0xc2, 0xe5, 0x21, 0xa3, 0x7d, 0xe3, 0x9a, 0xd3, 0x35, 0xe9, 0x86, 0x47, 0x18, + 0xc2, 0x1b, 0x1c, 0xc1, 0xc7, 0x52, 0xae, 0x41, 0x8e, 0xf4, 0xc5, 0xc2, 0x5d, 0x4c, 0x77, 0xa7, + 0x42, 0x20, 0xfe, 0x9c, 0x0b, 0x20, 0xc0, 0x54, 0xfd, 0x81, 0x2f, 0xbe, 0x3e, 0x1b, 0xf9, 0xd2, + 0xeb, 0xb3, 0x91, 0xdf, 0x7f, 0x7d, 0x36, 0xf2, 0x81, 0xaf, 0xcc, 0x4e, 0x7c, 0xe9, 0x2b, 0xb3, + 0x13, 0xbf, 0xfb, 0x95, 0xd9, 0x89, 0xe1, 0x59, 0x62, 0xb8, 0x64, 0x5e, 0x32, 0x59, 0x7e, 0xf8, + 0x85, 0xfb, 0x76, 0x74, 0x67, 0xb7, 0xb7, 0xb5, 0xd0, 0x34, 0x3b, 0x67, 0x9a, 0xa6, 0xdd, 0x31, + 0xed, 0x33, 0xc1, 0xbc, 0x2e, 0xfd, 0x05, 0xff, 0x27, 0x42, 0x62, 0xe6, 0x60, 0x3a, 0x57, 0x33, + 0xf6, 0x47, 0x7d, 0xde, 0x73, 0x1e, 0x62, 0x15, 0x63, 0x1f, 0x1d, 0x63, 0x06, 0x4e, 0xed, 0x59, + 0x6d, 0x7e, 0x2c, 0x2c, 0x45, 0x9e, 0x37, 0xad, 0x36, 0x9a, 0xf6, 0xce, 0x6e, 0x46, 0x4e, 0xe6, + 0xf8, 0x81, 0xcc, 0xea, 0xfb, 0x23, 0x87, 0xeb, 0x49, 0xba, 0x62, 0xec, 0xd3, 0x8e, 0xac, 0x47, + 0x5e, 0x78, 0x30, 0x34, 0xcf, 0x7d, 0xcd, 0x30, 0x6f, 0x18, 0xa4, 0xd9, 0xdd, 0x2d, 0x91, 0xe3, + 0x9e, 0xed, 0xcf, 0x71, 0x3f, 0x8b, 0xdb, 0xed, 0x67, 0x08, 0xdd, 0x06, 0x61, 0xd9, 0x4a, 0xb2, + 0x13, 0xc8, 0xf0, 0xc1, 0x28, 0xcc, 0x0e, 0xa4, 0xb3, 0xb9, 0x12, 0x8c, 0x12, 0x42, 0x19, 0xd2, + 0x8b, 0x42, 0xb7, 0x66, 0x20, 0x65, 0xe3, 0xa6, 0x69, 0xb4, 0x6c, 0x2a, 0x88, 0x98, 0x22, 0x1e, + 0x89, 0x20, 0x0c, 0xcd, 0x30, 0x6d, 0x7e, 0xb0, 0x92, 0x3d, 0x54, 0x7f, 0xf6, 0x90, 0x82, 0xc8, + 0x8b, 0x37, 0x09, 0x69, 0x3c, 0x32, 0xa6, 0x34, 0x44, 0x27, 0x02, 0x99, 0xff, 0x71, 0xa5, 0xf2, + 0xd3, 0x51, 0x98, 0xeb, 0x97, 0x0a, 0x99, 0x59, 0xb6, 0xa3, 0x75, 0xba, 0xa3, 0xc4, 0x72, 0x01, + 0x32, 0x1b, 0x82, 0xe6, 0xd0, 0x72, 0xb9, 0x75, 0x48, 0xb9, 0x14, 0xdc, 0x57, 0x09, 0xc1, 0x9c, + 0x1d, 0x53, 0x30, 0x6e, 0x3f, 0x6e, 0x4b, 0x32, 0x7f, 0x95, 0x84, 0x63, 0x6c, 0x3a, 0xa9, 0x6c, + 0x2a, 0xb1, 0x07, 0x2e, 0x93, 0x9c, 0xbf, 0x2a, 0x7c, 0x9f, 0x44, 0x7e, 0x06, 0xa6, 0x96, 0x88, + 0xb5, 0x20, 0x51, 0x90, 0xb7, 0xc3, 0x33, 0xf4, 0xec, 0xe9, 0x7c, 0xc0, 0xe1, 0xe7, 0x3b, 0x4c, + 0xfe, 0x22, 0xf9, 0x07, 0x23, 0x20, 0x35, 0x9a, 0x5a, 0x5b, 0xb3, 0xbe, 0x53, 0x28, 0xf4, 0x38, + 0x00, 0xfd, 0x66, 0xc9, 0xfb, 0xc8, 0xa8, 0x70, 0x76, 0x66, 0xc1, 0xdf, 0xb9, 0x05, 0xf6, 0x26, + 0xfa, 0x05, 0x43, 0x86, 0xd2, 0x92, 0x9f, 0xa7, 0x9f, 0x03, 0xf0, 0x2a, 0xd0, 0x71, 0x38, 0xda, + 0xa8, 0x55, 0x96, 0x2b, 0x8a, 0xca, 0x0e, 0xc3, 0xaf, 0x36, 0xd6, 0xeb, 0xb5, 0xa5, 0x8b, 0x4b, + 0xf5, 0x45, 0x69, 0x02, 0x1d, 0x01, 0xe4, 0xaf, 0x74, 0xcf, 0xa5, 0xdc, 0x01, 0x93, 0xfe, 0x72, + 0x76, 0xa2, 0x3e, 0x4a, 0x3c, 0x45, 0xbd, 0xd3, 0x6d, 0x63, 0xba, 0xf5, 0xa7, 0xea, 0x42, 0x6a, + 0xe1, 0x4e, 0xc8, 0x6f, 0xfd, 0x27, 0x76, 0xca, 0x7a, 0xca, 0x63, 0x77, 0x65, 0x5e, 0x5e, 0x86, + 0x49, 0xad, 0xd9, 0xc4, 0xdd, 0x00, 0x64, 0x88, 0xa9, 0x26, 0x80, 0x74, 0x33, 0x93, 0x73, 0x7a, + 0x68, 0x8f, 0x43, 0xd2, 0xa6, 0xbd, 0x0f, 0x83, 0xf8, 0x6d, 0x0e, 0xc1, 0xc9, 0xcb, 0x06, 0x4c, + 0x12, 0xcf, 0x4f, 0xb3, 0xb0, 0xaf, 0x19, 0x07, 0xe7, 0x19, 0x7e, 0xfd, 0xd3, 0x0f, 0xd3, 0xad, + 0xcd, 0xbb, 0x83, 0xc3, 0x32, 0x44, 0x9d, 0x14, 0x89, 0x63, 0x7b, 0x0d, 0xc5, 0x50, 0x10, 0xef, + 0xe3, 0x0d, 0x3e, 0xf8, 0x65, 0xbf, 0xc1, 0x5f, 0x36, 0x3b, 0x4c, 0x07, 0x7c, 0x6f, 0xca, 0x73, + 0x54, 0x56, 0x51, 0xad, 0x8f, 0x9a, 0xd3, 0x2f, 0x3c, 0x30, 0xb8, 0x3a, 0xb1, 0xff, 0x1e, 0xa2, + 0xc8, 0x17, 0xfc, 0xaf, 0x71, 0xe7, 0xde, 0xab, 0x09, 0x98, 0xd4, 0x3a, 0xba, 0x61, 0x9e, 0xa1, + 0xff, 0xf2, 0x39, 0x97, 0xa0, 0x0f, 0x63, 0x6c, 0x4a, 0x9e, 0x67, 0x53, 0x21, 0x5c, 0x63, 0xfe, + 0xf4, 0xc7, 0x3e, 0x91, 0xf0, 0xa6, 0x4b, 0x79, 0x05, 0x24, 0x71, 0xe0, 0x10, 0x1b, 0x4d, 0xb3, + 0x35, 0x56, 0x96, 0xe2, 0x5b, 0x02, 0x43, 0xe4, 0xb7, 0xea, 0x9c, 0xb5, 0xfc, 0x0e, 0x48, 0xbb, + 0x30, 0x61, 0x9e, 0x89, 0x00, 0x71, 0x39, 0x88, 0x5f, 0xc2, 0x66, 0xe6, 0x38, 0x5e, 0xe8, 0x1b, + 0x82, 0x9f, 0xcd, 0xd0, 0x55, 0xd2, 0x9b, 0x4b, 0x50, 0x68, 0x99, 0x86, 0xa3, 0x9a, 0x1d, 0xdd, + 0xc1, 0x9d, 0xae, 0x13, 0xea, 0xd7, 0xfd, 0x39, 0x03, 0x49, 0x2b, 0x79, 0xc2, 0xb7, 0x26, 0xd8, + 0xca, 0xe7, 0xc7, 0xf4, 0xc3, 0xff, 0x97, 0xe0, 0xe7, 0x8e, 0xf8, 0x65, 0x28, 0xb2, 0x6f, 0x91, + 0xdc, 0xef, 0x9d, 0xc2, 0x10, 0xfe, 0x42, 0x74, 0x23, 0x4f, 0x19, 0x37, 0xf8, 0x67, 0x51, 0xe5, + 0x2b, 0x20, 0x31, 0xa4, 0x03, 0x25, 0xe2, 0x3f, 0xc4, 0x36, 0xf3, 0x97, 0x02, 0xaa, 0x40, 0x39, + 0x2f, 0x0a, 0xb1, 0xdc, 0x96, 0xaa, 0xda, 0xad, 0x6b, 0x7c, 0x65, 0x71, 0xf6, 0x98, 0x4a, 0xba, + 0xaa, 0xfa, 0xc7, 0x31, 0x98, 0xe5, 0xc4, 0x5b, 0x9a, 0x8d, 0xcf, 0x5c, 0x7f, 0x64, 0x0b, 0x3b, + 0xda, 0x23, 0x67, 0x9a, 0xa6, 0x2e, 0xdc, 0x8a, 0x29, 0xbe, 0x72, 0x90, 0xfa, 0x05, 0x5e, 0x5f, + 0x1a, 0xba, 0xf7, 0x5e, 0x1a, 0xbd, 0xe2, 0x94, 0x06, 0x27, 0x84, 0xfc, 0x02, 0xc4, 0x6b, 0xa6, + 0x6e, 0x90, 0x85, 0xb6, 0x85, 0x0d, 0xb3, 0xc3, 0x6d, 0x3f, 0x7b, 0x40, 0xe7, 0x21, 0xa9, 0x75, + 0xcc, 0x9e, 0xe1, 0x30, 0xbb, 0x5f, 0x9d, 0xfd, 0xe2, 0x6b, 0x73, 0x13, 0xff, 0xe5, 0xb5, 0xb9, + 0xd8, 0x92, 0xe1, 0xfc, 0xce, 0x67, 0x1e, 0x02, 0x8e, 0xbe, 0x64, 0x38, 0xaf, 0x7e, 0xed, 0x53, + 0xa7, 0x23, 0x0a, 0xa7, 0x2e, 0xc7, 0xbf, 0xfe, 0xca, 0x5c, 0x44, 0x7e, 0x0e, 0x52, 0x8b, 0xb8, + 0x79, 0x00, 0xfc, 0x23, 0x7d, 0xf0, 0xc7, 0x04, 0xfc, 0x22, 0x6e, 0xfa, 0xe0, 0x17, 0x71, 0xb3, + 0x0f, 0xf9, 0x71, 0x48, 0x2f, 0x19, 0x0e, 0xfb, 0xf6, 0xe2, 0x01, 0x88, 0xe9, 0x06, 0x3b, 0xce, + 0xeb, 0x43, 0x18, 0x68, 0xa0, 0x42, 0xa8, 0x08, 0xe3, 0x22, 0x6e, 0xba, 0x8c, 0x2d, 0xdc, 0xec, + 0x67, 0x1c, 0x7c, 0x35, 0xa1, 0xaa, 0x2e, 0xfe, 0xee, 0x7f, 0x9f, 0x9d, 0x78, 0xf9, 0xf5, 0xd9, + 0x89, 0x91, 0x43, 0x2f, 0x87, 0x0f, 0xbd, 0x3b, 0xe2, 0x9f, 0x88, 0xc3, 0x5d, 0xf4, 0x93, 0x3c, + 0xab, 0xa3, 0x1b, 0xce, 0x99, 0xa6, 0xb5, 0xdf, 0x75, 0x4c, 0x62, 0x8d, 0xcc, 0x6d, 0x3e, 0xe0, + 0x93, 0x5e, 0xf5, 0x02, 0xab, 0x1e, 0x3e, 0xdc, 0xf2, 0x36, 0x24, 0xd6, 0x09, 0x1f, 0x11, 0xb1, + 0x63, 0x3a, 0x5a, 0x9b, 0xbb, 0x50, 0xec, 0x81, 0x94, 0xb2, 0xcf, 0xf8, 0xa2, 0xac, 0x54, 0x17, + 0x5f, 0xf0, 0xb5, 0xb1, 0xb6, 0xcd, 0xbe, 0x86, 0x88, 0x51, 0xdf, 0x3b, 0x4d, 0x0a, 0xe8, 0x87, + 0x0f, 0xd3, 0x90, 0xd0, 0x7a, 0xec, 0x18, 0x4e, 0x8c, 0x38, 0xe5, 0xf4, 0x41, 0x7e, 0x06, 0x52, + 0xfc, 0x30, 0x00, 0x92, 0x20, 0x76, 0x0d, 0xef, 0xd3, 0xf7, 0xe4, 0x14, 0xf2, 0x13, 0x2d, 0x40, + 0x82, 0x36, 0x9e, 0x7f, 0xe6, 0x35, 0xb3, 0x30, 0xd0, 0xfa, 0x05, 0xda, 0x48, 0x85, 0x91, 0xc9, + 0x57, 0x20, 0xbd, 0x68, 0x12, 0x2d, 0x0c, 0xa2, 0x65, 0x18, 0x1a, 0x6d, 0x73, 0xb7, 0xc7, 0xb5, + 0x42, 0x61, 0x0f, 0xe8, 0x08, 0x24, 0xd9, 0xd7, 0x31, 0xfc, 0x28, 0x11, 0x7f, 0x92, 0x6b, 0x90, + 0xa2, 0xd8, 0x6b, 0x5d, 0xe2, 0xbf, 0xb8, 0x07, 0x91, 0x33, 0xfc, 0x5b, 0x49, 0x0e, 0x1f, 0xf5, + 0x1a, 0x8b, 0x20, 0xde, 0xd2, 0x1c, 0x8d, 0xf7, 0x9b, 0xfe, 0x96, 0xdf, 0x09, 0x69, 0x0e, 0x62, + 0xa3, 0xb3, 0x10, 0x33, 0xbb, 0x36, 0x3f, 0x0c, 0x54, 0x1a, 0xd5, 0x95, 0xb5, 0x6e, 0x35, 0x4e, + 0x74, 0x46, 0x21, 0xc4, 0xd5, 0xd5, 0x91, 0x6a, 0xf1, 0x58, 0x40, 0x2d, 0x3a, 0xd8, 0xd9, 0xda, + 0x76, 0xbc, 0x1f, 0x6c, 0x38, 0x07, 0x54, 0xc1, 0x55, 0x94, 0x5b, 0x51, 0x98, 0xf5, 0xd5, 0x5e, + 0xc7, 0x96, 0xad, 0x9b, 0x06, 0xd3, 0x26, 0xae, 0x29, 0xc8, 0xd7, 0x40, 0x5e, 0x3f, 0x42, 0x55, + 0x9e, 0x82, 0x58, 0xa5, 0xdb, 0x45, 0x25, 0x48, 0xd3, 0xe7, 0xa6, 0xc9, 0x74, 0x25, 0xae, 0xb8, + 0xcf, 0xa4, 0xce, 0x36, 0xb7, 0x9d, 0x1b, 0x9a, 0xe5, 0x7e, 0x3c, 0x2a, 0x9e, 0xe5, 0x27, 0x21, + 0x53, 0x33, 0x0d, 0x1b, 0x1b, 0x76, 0x8f, 0x3a, 0xe6, 0x5b, 0x6d, 0xb3, 0x79, 0x8d, 0x23, 0xb0, + 0x07, 0x22, 0x6c, 0xad, 0xdb, 0xa5, 0x9c, 0x71, 0x85, 0xfc, 0x64, 0xf3, 0xb5, 0xba, 0x36, 0x52, + 0x3c, 0xe7, 0x0e, 0x27, 0x1e, 0xde, 0x41, 0xcf, 0xc3, 0x8e, 0xc0, 0x9d, 0x83, 0x13, 0xe9, 0x1a, + 0xde, 0xb7, 0x0f, 0x3b, 0x8f, 0x9e, 0x83, 0xcc, 0x3a, 0xbd, 0xbd, 0xe1, 0x19, 0xbc, 0x8f, 0x4a, + 0x90, 0xc2, 0xad, 0xb3, 0xe7, 0xce, 0x3d, 0xf2, 0x24, 0xd3, 0xf2, 0xcb, 0x13, 0x8a, 0x28, 0x40, + 0xb3, 0x90, 0xb1, 0x71, 0xb3, 0x7b, 0xf6, 0xdc, 0xf9, 0x6b, 0x8f, 0x30, 0xb5, 0xba, 0x3c, 0xa1, + 0x78, 0x45, 0xe5, 0x34, 0xe9, 0xf1, 0xd7, 0x3f, 0x36, 0x17, 0xa9, 0x26, 0x20, 0x66, 0xf7, 0x3a, + 0x6f, 0x99, 0x6e, 0xfc, 0x54, 0x02, 0xe6, 0x7d, 0xb5, 0x6c, 0x71, 0xb9, 0xae, 0xb5, 0xf5, 0x96, + 0xe6, 0xdd, 0xb9, 0x21, 0xf9, 0xfa, 0x4f, 0x29, 0x46, 0xac, 0x1a, 0x07, 0x4a, 0x51, 0xfe, 0x95, + 0x08, 0xe4, 0xae, 0x0a, 0xe4, 0x06, 0x76, 0xd0, 0x05, 0x00, 0xf7, 0x4d, 0x62, 0xaa, 0x1c, 0x5f, + 0xe8, 0x7f, 0xd7, 0x82, 0xcb, 0xa3, 0xf8, 0xc8, 0xd1, 0xe3, 0x54, 0x01, 0xbb, 0xa6, 0xcd, 0x3f, + 0x24, 0x0c, 0x61, 0x75, 0x89, 0xd1, 0x83, 0x80, 0xa8, 0x55, 0x53, 0xaf, 0x9b, 0x8e, 0x6e, 0xec, + 0xa8, 0x5d, 0xf3, 0x06, 0xff, 0x3c, 0x3b, 0xa6, 0x48, 0xb4, 0xe6, 0x2a, 0xad, 0x58, 0x27, 0xe5, + 0xa4, 0xd1, 0x19, 0x17, 0x85, 0xc4, 0x98, 0x5a, 0xab, 0x65, 0x61, 0xdb, 0xe6, 0x86, 0x4b, 0x3c, + 0xa2, 0x0b, 0x90, 0xea, 0xf6, 0xb6, 0x54, 0x61, 0x25, 0xb2, 0x67, 0xef, 0x1c, 0x36, 0xe7, 0x85, + 0x6e, 0xf0, 0x59, 0x9f, 0xec, 0xf6, 0xb6, 0x88, 0xa6, 0xdc, 0x0d, 0xb9, 0x21, 0x8d, 0xc9, 0x5e, + 0xf7, 0xda, 0x41, 0x2f, 0x0c, 0xe1, 0x3d, 0x50, 0xbb, 0x96, 0x6e, 0x5a, 0xba, 0xb3, 0x4f, 0x4f, + 0xf1, 0xc5, 0x14, 0x49, 0x54, 0xac, 0xf3, 0x72, 0xf9, 0x1a, 0x14, 0x1b, 0x34, 0xf6, 0xf0, 0x5a, + 0x7e, 0xce, 0x6b, 0x5f, 0x24, 0xbc, 0x7d, 0x23, 0x5b, 0x16, 0x1d, 0x68, 0x59, 0x75, 0x65, 0xa4, + 0x66, 0x3e, 0x7a, 0x38, 0xcd, 0x0c, 0xae, 0x6e, 0x7f, 0x78, 0x2c, 0x30, 0x29, 0xb9, 0xd7, 0xe3, + 0x33, 0x59, 0xe3, 0x2a, 0x65, 0x58, 0x5a, 0xa1, 0x74, 0xf0, 0x22, 0x5a, 0x0a, 0x31, 0x9d, 0xa5, + 0xd0, 0xe9, 0x23, 0x3f, 0x09, 0xf9, 0x75, 0xcd, 0x72, 0x1a, 0xd8, 0xb9, 0x8c, 0xb5, 0x16, 0xb6, + 0x82, 0xab, 0x6c, 0x5e, 0xac, 0xb2, 0x08, 0xe2, 0x74, 0x29, 0x65, 0xab, 0x0c, 0xfd, 0x2d, 0xef, + 0x42, 0x9c, 0x9e, 0xe2, 0x75, 0x57, 0x60, 0xce, 0xc1, 0x56, 0x60, 0x62, 0x3f, 0xf7, 0x1d, 0x6c, + 0x8b, 0xcc, 0x17, 0x7d, 0x40, 0x8f, 0x89, 0x75, 0x34, 0x76, 0xf0, 0x3a, 0xca, 0x95, 0x90, 0xaf, + 0xa6, 0x6d, 0x48, 0x55, 0x89, 0xf9, 0x5d, 0x5a, 0x74, 0x1b, 0x12, 0xf1, 0x1a, 0x82, 0x56, 0xa0, + 0xd8, 0xd5, 0x2c, 0x87, 0x7e, 0x00, 0xb5, 0x4b, 0x7b, 0xc1, 0xf5, 0x7c, 0x6e, 0x70, 0xd6, 0x05, + 0x3a, 0xcb, 0xdf, 0x92, 0xef, 0xfa, 0x0b, 0xe5, 0x3f, 0x88, 0x43, 0x92, 0x0b, 0xe3, 0x29, 0x48, + 0x71, 0xb1, 0x72, 0xcd, 0xbc, 0x6b, 0x61, 0x70, 0x31, 0x5a, 0x70, 0x17, 0x0d, 0x8e, 0x27, 0x78, + 0xd0, 0xfd, 0x90, 0x6e, 0xee, 0x6a, 0xba, 0xa1, 0xea, 0x2d, 0xee, 0x00, 0x66, 0x5f, 0x7f, 0x6d, + 0x2e, 0x55, 0x23, 0x65, 0x4b, 0x8b, 0x4a, 0x8a, 0x56, 0x2e, 0xb5, 0xc8, 0xca, 0xbf, 0x8b, 0xf5, + 0x9d, 0x5d, 0x87, 0xcf, 0x2e, 0xfe, 0x84, 0x9e, 0x80, 0x38, 0x51, 0x08, 0xfe, 0x79, 0x6c, 0x69, + 0xc0, 0x99, 0x77, 0xb3, 0x3e, 0xd5, 0x34, 0x79, 0xf1, 0x07, 0x7e, 0x6f, 0x2e, 0xa2, 0x50, 0x0e, + 0x54, 0x83, 0x7c, 0x5b, 0xb3, 0x1d, 0x95, 0xae, 0x5a, 0xe4, 0xf5, 0x09, 0x0a, 0x71, 0x6c, 0x50, + 0x20, 0x5c, 0xb0, 0xbc, 0xe9, 0x59, 0xc2, 0xc5, 0x8a, 0x5a, 0xe8, 0x24, 0x48, 0x14, 0xa4, 0x69, + 0x76, 0x3a, 0xba, 0xc3, 0x7c, 0xa9, 0x24, 0x95, 0x7b, 0x81, 0x94, 0xd7, 0x68, 0x31, 0xf5, 0xa8, + 0x8e, 0x43, 0x86, 0x7e, 0x90, 0x47, 0x49, 0xd8, 0xd1, 0xf1, 0x34, 0x29, 0xa0, 0x95, 0x27, 0xa0, + 0xe8, 0xd9, 0x46, 0x46, 0x92, 0x66, 0x28, 0x5e, 0x31, 0x25, 0x7c, 0x18, 0xa6, 0x0d, 0xbc, 0x47, + 0x0f, 0xb3, 0x07, 0xa8, 0x33, 0x94, 0x1a, 0x91, 0xba, 0xab, 0x41, 0x8e, 0xfb, 0xa0, 0xd0, 0x14, + 0xc2, 0x67, 0xb4, 0x40, 0x69, 0xf3, 0x6e, 0x29, 0x25, 0x3b, 0x06, 0x69, 0xad, 0xdb, 0x65, 0x04, + 0x59, 0x6e, 0x1b, 0xbb, 0x5d, 0x5a, 0x75, 0x1a, 0x26, 0x69, 0x1f, 0x2d, 0x6c, 0xf7, 0xda, 0x0e, + 0x07, 0xc9, 0x51, 0x9a, 0x22, 0xa9, 0x50, 0x58, 0x39, 0xa5, 0xbd, 0x07, 0xf2, 0xf8, 0xba, 0xde, + 0xc2, 0x46, 0x13, 0x33, 0xba, 0x3c, 0xa5, 0xcb, 0x89, 0x42, 0x4a, 0x74, 0x0a, 0x5c, 0x9b, 0xa7, + 0x0a, 0x7b, 0x5c, 0x60, 0x78, 0xa2, 0xbc, 0xc2, 0x8a, 0xe5, 0x19, 0x88, 0x2f, 0x6a, 0x8e, 0x46, + 0x9c, 0x0a, 0x67, 0x8f, 0x2d, 0x32, 0x39, 0x85, 0xfc, 0x94, 0xbf, 0x1e, 0x85, 0xf8, 0x55, 0xd3, + 0xc1, 0xe8, 0x51, 0x9f, 0xc3, 0x57, 0x18, 0xa6, 0xcf, 0x0d, 0x7d, 0xc7, 0xc0, 0xad, 0x15, 0x7b, + 0xc7, 0x77, 0x7b, 0x86, 0xa7, 0x4e, 0xd1, 0x80, 0x3a, 0x4d, 0x43, 0xc2, 0x32, 0x7b, 0x46, 0x4b, + 0x9c, 0xba, 0xa6, 0x0f, 0xa8, 0x0e, 0x69, 0x57, 0x4b, 0xe2, 0x61, 0x5a, 0x52, 0x24, 0x5a, 0x42, + 0x74, 0x98, 0x17, 0x28, 0xa9, 0x2d, 0xae, 0x2c, 0x55, 0xc8, 0xb8, 0xc6, 0x8b, 0x6b, 0xdb, 0x78, + 0x0a, 0xeb, 0xb1, 0x91, 0x85, 0xc4, 0x1d, 0x7b, 0x57, 0x78, 0x4c, 0xe3, 0x24, 0xb7, 0x82, 0x4b, + 0x2f, 0xa0, 0x56, 0xfc, 0x26, 0x8f, 0x14, 0xed, 0x97, 0xa7, 0x56, 0xec, 0x36, 0x8f, 0x3b, 0x21, + 0x63, 0xeb, 0x3b, 0x86, 0xe6, 0xf4, 0x2c, 0xcc, 0x35, 0xcf, 0x2b, 0x90, 0xbf, 0x10, 0x81, 0x24, + 0xd3, 0x64, 0x9f, 0xdc, 0x22, 0xc3, 0xe5, 0x16, 0x1d, 0x25, 0xb7, 0xd8, 0xed, 0xcb, 0xad, 0x02, + 0xe0, 0x36, 0xc6, 0xe6, 0x17, 0x2c, 0x0c, 0xf1, 0x16, 0x58, 0x13, 0x1b, 0xfa, 0x0e, 0x9f, 0xa8, + 0x3e, 0x26, 0xf9, 0xbf, 0x45, 0x88, 0xe3, 0xca, 0xeb, 0x51, 0x05, 0xf2, 0xa2, 0x5d, 0xea, 0x76, + 0x5b, 0xdb, 0xe1, 0xba, 0x73, 0xd7, 0xc8, 0xc6, 0x5d, 0x6c, 0x6b, 0x3b, 0x4a, 0x96, 0xb7, 0x87, + 0x3c, 0x0c, 0x1f, 0x87, 0xe8, 0x88, 0x71, 0x08, 0x0c, 0x7c, 0xec, 0xf6, 0x06, 0x3e, 0x30, 0x44, + 0xf1, 0xfe, 0x21, 0xfa, 0x74, 0x94, 0x06, 0x2f, 0x5d, 0xd3, 0xd6, 0xda, 0x6f, 0xc7, 0x8c, 0x38, + 0x0e, 0x99, 0xae, 0xd9, 0x56, 0x59, 0x0d, 0xfb, 0x1a, 0x21, 0xdd, 0x35, 0xdb, 0xca, 0xc0, 0xb0, + 0x27, 0xde, 0xa4, 0xe9, 0x92, 0x7c, 0x13, 0xa4, 0x96, 0xea, 0x97, 0x9a, 0x05, 0x39, 0x26, 0x0a, + 0xbe, 0x96, 0x3d, 0x4c, 0x64, 0x40, 0x17, 0xc7, 0xc8, 0xe0, 0xda, 0xcb, 0x9a, 0xcd, 0x28, 0x15, + 0x4e, 0x47, 0x38, 0x98, 0xe9, 0x1f, 0x16, 0xf5, 0xfa, 0xd5, 0x52, 0xe1, 0x74, 0xf2, 0x4f, 0x45, + 0x00, 0x96, 0x89, 0x64, 0x69, 0x7f, 0xc9, 0x2a, 0x64, 0xd3, 0x26, 0xa8, 0x81, 0x37, 0xcf, 0x8e, + 0x1a, 0x34, 0xfe, 0xfe, 0x9c, 0xed, 0x6f, 0x77, 0x0d, 0xf2, 0x9e, 0x32, 0xda, 0x58, 0x34, 0x66, + 0xf6, 0x00, 0x8f, 0xba, 0x81, 0x1d, 0x25, 0x77, 0xdd, 0xf7, 0x24, 0xff, 0xcb, 0x08, 0x64, 0x68, + 0x9b, 0x56, 0xb0, 0xa3, 0x05, 0xc6, 0x30, 0x72, 0xfb, 0x63, 0x78, 0x17, 0x00, 0x83, 0xb1, 0xf5, + 0x97, 0x30, 0xd7, 0xac, 0x0c, 0x2d, 0x69, 0xe8, 0x2f, 0x61, 0x74, 0xde, 0x15, 0x78, 0xec, 0x60, + 0x81, 0x0b, 0x8f, 0x9b, 0x8b, 0xfd, 0x28, 0xa4, 0xe8, 0x85, 0x64, 0x7b, 0x36, 0x77, 0xa2, 0x93, + 0x46, 0xaf, 0xb3, 0xb1, 0x67, 0xcb, 0x2f, 0x42, 0x6a, 0x63, 0x8f, 0xe5, 0x42, 0x8e, 0x43, 0xc6, + 0x32, 0x4d, 0xbe, 0x26, 0x33, 0x5f, 0x28, 0x4d, 0x0a, 0xe8, 0x12, 0x24, 0xe2, 0xff, 0xa8, 0x17, + 0xff, 0x7b, 0x09, 0x8c, 0xd8, 0x58, 0x09, 0x8c, 0xd3, 0xff, 0x39, 0x02, 0x59, 0x9f, 0x7d, 0x40, + 0x8f, 0xc0, 0x1d, 0xd5, 0xe5, 0xb5, 0xda, 0x33, 0xea, 0xd2, 0xa2, 0x7a, 0x71, 0xb9, 0x72, 0xc9, + 0xfb, 0xde, 0xae, 0x74, 0xe4, 0xe6, 0xad, 0x79, 0xe4, 0xa3, 0xdd, 0x34, 0xe8, 0xd6, 0x12, 0x3a, + 0x03, 0xd3, 0x41, 0x96, 0x4a, 0xb5, 0x51, 0x5f, 0xdd, 0x90, 0x22, 0xa5, 0x3b, 0x6e, 0xde, 0x9a, + 0x9f, 0xf4, 0x71, 0x54, 0xb6, 0x6c, 0x6c, 0x38, 0x83, 0x0c, 0xb5, 0xb5, 0x95, 0x95, 0xa5, 0x0d, + 0x29, 0x3a, 0xc0, 0xc0, 0x0d, 0xf6, 0x29, 0x98, 0x0c, 0x32, 0xac, 0x2e, 0x2d, 0x4b, 0xb1, 0x12, + 0xba, 0x79, 0x6b, 0xbe, 0xe0, 0xa3, 0x5e, 0xd5, 0xdb, 0xa5, 0xf4, 0xfb, 0x3e, 0x3e, 0x3b, 0xf1, + 0xea, 0x3f, 0x9a, 0x8d, 0x90, 0x9e, 0xe5, 0x03, 0x36, 0x02, 0x3d, 0x08, 0x47, 0x1b, 0x4b, 0x97, + 0x56, 0xeb, 0x8b, 0xea, 0x4a, 0xe3, 0x92, 0xd8, 0x9c, 0x11, 0xbd, 0x2b, 0xde, 0xbc, 0x35, 0x9f, + 0xe5, 0x5d, 0x1a, 0x45, 0xbd, 0xae, 0xd4, 0xaf, 0xae, 0x6d, 0xd4, 0xa5, 0x08, 0xa3, 0x5e, 0xb7, + 0xf0, 0x75, 0xd3, 0x61, 0x37, 0x16, 0x3e, 0x0c, 0xc7, 0x86, 0x50, 0xbb, 0x1d, 0x9b, 0xbc, 0x79, + 0x6b, 0x3e, 0xbf, 0x6e, 0x61, 0x36, 0x7f, 0x28, 0xc7, 0x02, 0xcc, 0x0c, 0x72, 0xac, 0xad, 0xaf, + 0x35, 0x2a, 0xcb, 0xd2, 0x7c, 0x49, 0xba, 0x79, 0x6b, 0x3e, 0x27, 0x8c, 0x21, 0xa1, 0xf7, 0x7a, + 0xf6, 0x56, 0x45, 0x3b, 0x1f, 0x4d, 0x05, 0x72, 0x79, 0x2c, 0x8e, 0xe8, 0x6a, 0x96, 0xd6, 0x19, + 0x1d, 0xee, 0x0c, 0x26, 0x62, 0x47, 0x44, 0x40, 0x21, 0xdb, 0xcd, 0xf2, 0xcb, 0x51, 0x28, 0xba, + 0xfe, 0xf5, 0x3a, 0x7d, 0x29, 0x7a, 0xd4, 0x9f, 0x9a, 0xc9, 0x8e, 0x5c, 0xd9, 0x18, 0xb5, 0xc8, + 0xdc, 0xbc, 0x03, 0xd2, 0xc2, 0x4f, 0xe3, 0x16, 0x64, 0x7e, 0x90, 0xaf, 0xce, 0x29, 0x38, 0xab, + 0xcb, 0x81, 0x9e, 0x86, 0x8c, 0x6b, 0x4f, 0xdc, 0x2b, 0x80, 0x46, 0x1b, 0x20, 0xce, 0xef, 0xf1, + 0xa0, 0x27, 0xbd, 0x48, 0x22, 0x3e, 0x2a, 0x36, 0xb9, 0xca, 0x08, 0x38, 0xb3, 0xa0, 0x97, 0x97, + 0xf8, 0x4c, 0xe4, 0xbd, 0xa7, 0xd7, 0x27, 0xec, 0xa9, 0x2c, 0xb8, 0x62, 0x8e, 0x4a, 0xba, 0xa3, + 0xed, 0x55, 0x69, 0x7c, 0x75, 0x14, 0x52, 0xa4, 0x72, 0x87, 0x7f, 0x1d, 0x1e, 0x53, 0x92, 0x1d, + 0x6d, 0xef, 0x92, 0x66, 0x5f, 0x89, 0xa7, 0x63, 0x52, 0x5c, 0xfe, 0xa5, 0x08, 0x14, 0x82, 0x7d, + 0x44, 0x0f, 0x00, 0x22, 0x1c, 0xda, 0x0e, 0x56, 0x89, 0xd5, 0xa1, 0xc2, 0x12, 0xb8, 0xc5, 0x8e, + 0xb6, 0x57, 0xd9, 0xc1, 0xab, 0xbd, 0x0e, 0x6d, 0x80, 0x8d, 0x14, 0x90, 0x04, 0xb1, 0x18, 0x27, + 0x2e, 0xcc, 0x63, 0x83, 0x17, 0x02, 0x72, 0x82, 0x6a, 0x9e, 0x58, 0xb7, 0x0f, 0xfd, 0xde, 0x5c, + 0x84, 0xa5, 0xd0, 0x0b, 0x0c, 0xd4, 0x3d, 0x33, 0x10, 0xe8, 0x4f, 0x2c, 0xd8, 0x1f, 0xf9, 0x69, + 0x28, 0xf6, 0x09, 0x15, 0xc9, 0x90, 0xe7, 0xd9, 0x02, 0xba, 0x67, 0xc2, 0xfc, 0xe6, 0x8c, 0x92, + 0x65, 0x59, 0x01, 0xba, 0x3f, 0x5d, 0x4e, 0x7f, 0xfe, 0x95, 0xb9, 0x08, 0x4d, 0xa4, 0x3f, 0x00, + 0xf9, 0x80, 0x58, 0x45, 0x06, 0x2f, 0xe2, 0x65, 0xf0, 0x3c, 0xe2, 0x17, 0x20, 0x47, 0x0c, 0x28, + 0x6e, 0x71, 0xda, 0xfb, 0xa1, 0xc8, 0x0c, 0x7c, 0xbf, 0xc0, 0x99, 0x87, 0xb5, 0x22, 0xa4, 0x2e, + 0x0b, 0x97, 0x2b, 0x28, 0xfb, 0xac, 0xa0, 0xba, 0xa4, 0xd9, 0xd5, 0x77, 0xbd, 0xfa, 0xfa, 0x6c, + 0xe4, 0xad, 0x99, 0xa0, 0x5f, 0x7e, 0x17, 0x1c, 0xf7, 0x55, 0x6a, 0x5b, 0x4d, 0x3d, 0x90, 0x8d, + 0x28, 0xfa, 0x34, 0x8d, 0x54, 0x86, 0x65, 0x15, 0x0e, 0xcc, 0x6d, 0x1c, 0x9c, 0x48, 0x2b, 0x1d, + 0x6c, 0x29, 0xc2, 0x13, 0x1e, 0xc3, 0x73, 0x97, 0xff, 0x37, 0x0d, 0x29, 0x05, 0xbf, 0xa7, 0x87, + 0x6d, 0x07, 0x9d, 0x85, 0x38, 0x6e, 0xee, 0x9a, 0xc3, 0x52, 0x45, 0xa4, 0x73, 0x0b, 0x9c, 0xae, + 0xde, 0xdc, 0x35, 0x2f, 0x4f, 0x28, 0x94, 0x16, 0x9d, 0x83, 0xc4, 0x76, 0xbb, 0xc7, 0xf3, 0x17, + 0x7d, 0x16, 0xc3, 0xcf, 0x74, 0x91, 0x10, 0x5d, 0x9e, 0x50, 0x18, 0x35, 0x79, 0x15, 0xbd, 0x5f, + 0x35, 0x76, 0xf0, 0xab, 0x96, 0x8c, 0x6d, 0xfa, 0x2a, 0x42, 0x8b, 0xaa, 0x00, 0xba, 0xa1, 0x3b, + 0x2a, 0x8d, 0xed, 0xb9, 0x87, 0x78, 0xf7, 0x68, 0x4e, 0xdd, 0xa1, 0xd9, 0x80, 0xcb, 0x13, 0x4a, + 0x46, 0x17, 0x0f, 0xa4, 0xb9, 0xef, 0xe9, 0x61, 0x6b, 0x9f, 0x3b, 0x86, 0x23, 0x9b, 0xfb, 0x2e, + 0x42, 0x44, 0x9a, 0x4b, 0xa9, 0x51, 0x1d, 0xb2, 0xf4, 0x43, 0x5a, 0x36, 0x89, 0xf9, 0x5d, 0x9f, + 0xf2, 0x28, 0xe6, 0x2a, 0x21, 0xa5, 0xf3, 0xfa, 0xf2, 0x84, 0x02, 0x5b, 0xee, 0x13, 0xb1, 0x94, + 0xec, 0x2e, 0x28, 0x67, 0x8f, 0xdf, 0x70, 0x38, 0x37, 0x0a, 0x83, 0x5e, 0x08, 0xb5, 0xb1, 0x77, + 0x79, 0x42, 0x49, 0x35, 0xd9, 0x4f, 0xd2, 0xff, 0x16, 0x6e, 0xeb, 0xd7, 0xb1, 0x45, 0xf8, 0x33, + 0x07, 0xf7, 0x7f, 0x91, 0x51, 0x52, 0x84, 0x4c, 0x4b, 0x3c, 0x10, 0x6b, 0x8b, 0x8d, 0x16, 0xef, + 0x06, 0x0c, 0x1a, 0xeb, 0xc0, 0x38, 0x1b, 0x2d, 0xd1, 0x89, 0x34, 0xe6, 0xbf, 0xd1, 0x13, 0xae, + 0xe7, 0x9a, 0x1d, 0x74, 0x16, 0x03, 0x1d, 0x60, 0x39, 0x8c, 0x09, 0xe1, 0xc1, 0xa2, 0x55, 0x28, + 0xb4, 0x75, 0xdb, 0x51, 0x6d, 0x43, 0xeb, 0xda, 0xbb, 0xa6, 0x63, 0xd3, 0x64, 0x40, 0xf6, 0xec, + 0x7d, 0xa3, 0x10, 0x96, 0x75, 0xdb, 0x69, 0x08, 0xe2, 0xcb, 0x13, 0x4a, 0xbe, 0xed, 0x2f, 0x20, + 0x78, 0xe6, 0xf6, 0x36, 0xb6, 0x5c, 0x40, 0x9a, 0x34, 0x38, 0x00, 0x6f, 0x8d, 0x50, 0x0b, 0x7e, + 0x82, 0x67, 0xfa, 0x0b, 0xd0, 0xf7, 0xc2, 0x54, 0xdb, 0xd4, 0x5a, 0x2e, 0x9c, 0xda, 0xdc, 0xed, + 0x19, 0xd7, 0x68, 0x86, 0x21, 0x7b, 0xf6, 0xd4, 0xc8, 0x46, 0x9a, 0x5a, 0x4b, 0x40, 0xd4, 0x08, + 0xc3, 0xe5, 0x09, 0x65, 0xb2, 0xdd, 0x5f, 0x88, 0xde, 0x0d, 0xd3, 0x5a, 0xb7, 0xdb, 0xde, 0xef, + 0x47, 0x2f, 0x52, 0xf4, 0xd3, 0xa3, 0xd0, 0x2b, 0x84, 0xa7, 0x1f, 0x1e, 0x69, 0x03, 0xa5, 0x68, + 0x03, 0xa4, 0xae, 0x85, 0xe9, 0x97, 0x3f, 0x5d, 0xee, 0xc2, 0xd0, 0xeb, 0xbb, 0xb2, 0x67, 0x4f, + 0x8c, 0xc2, 0x5e, 0x67, 0xf4, 0xc2, 0xe3, 0xb9, 0x3c, 0xa1, 0x14, 0xbb, 0xc1, 0x22, 0x86, 0x6a, + 0x36, 0x31, 0xbd, 0x62, 0x8a, 0xa3, 0x4e, 0x86, 0xa1, 0x52, 0xfa, 0x20, 0x6a, 0xa0, 0xa8, 0x9a, + 0xe2, 0x27, 0xf7, 0xf8, 0xfd, 0x2f, 0x27, 0x20, 0xeb, 0x33, 0x2c, 0x68, 0x06, 0x52, 0xfc, 0x24, + 0x83, 0x38, 0xf1, 0xc7, 0x1f, 0xe5, 0x02, 0xe4, 0xfc, 0xc6, 0x44, 0xfe, 0x40, 0xc4, 0xe5, 0xa4, + 0x1f, 0xe4, 0xcf, 0x04, 0x53, 0x8a, 0x19, 0x2f, 0x5b, 0x78, 0x8f, 0x58, 0x45, 0x44, 0x3d, 0xdb, + 0x65, 0xca, 0xd1, 0x42, 0xbe, 0x88, 0xa1, 0x39, 0xc8, 0x76, 0xcf, 0x76, 0x5d, 0x92, 0x18, 0x25, + 0x81, 0xee, 0xd9, 0xae, 0x20, 0xb8, 0x1b, 0x72, 0xa4, 0xa7, 0xaa, 0xdf, 0xdb, 0xc8, 0x28, 0x59, + 0x52, 0xc6, 0x49, 0xe4, 0x7f, 0x1f, 0x05, 0xa9, 0xdf, 0x00, 0xb9, 0xb9, 0xc6, 0xc8, 0xa1, 0x73, + 0x8d, 0xc7, 0xfa, 0xb3, 0x9c, 0x5e, 0x62, 0x73, 0x19, 0x24, 0x2f, 0x3f, 0xc7, 0x16, 0x82, 0xd1, + 0xde, 0x53, 0x9f, 0x9b, 0xa7, 0x14, 0x9b, 0x7d, 0x7e, 0xdf, 0xc5, 0xc0, 0x9e, 0x8c, 0xb8, 0x40, + 0xbc, 0x7f, 0x88, 0x5d, 0x7f, 0x61, 0xb3, 0xdb, 0xd2, 0x1c, 0x2c, 0xf2, 0x25, 0xbe, 0xed, 0x99, + 0xfb, 0xa1, 0xa8, 0x75, 0xbb, 0xaa, 0xed, 0x68, 0x0e, 0xe6, 0xcb, 0x7a, 0x82, 0xa5, 0x0d, 0xb5, + 0x6e, 0xb7, 0x41, 0x4a, 0xd9, 0xb2, 0x7e, 0x1f, 0x14, 0x88, 0x4d, 0xd6, 0xb5, 0xb6, 0xca, 0xb3, + 0x07, 0x49, 0xb6, 0xfa, 0xf3, 0xd2, 0xcb, 0xb4, 0x50, 0x6e, 0xb9, 0x23, 0x4e, 0xed, 0xb1, 0x1b, + 0x7e, 0x45, 0x7c, 0xe1, 0x17, 0xe2, 0x37, 0x25, 0x30, 0xf9, 0x88, 0xcb, 0x25, 0x86, 0x67, 0x7d, + 0xa7, 0x69, 0xa8, 0x76, 0x9d, 0x25, 0x42, 0xd2, 0x0a, 0x7b, 0x90, 0xdf, 0x1b, 0x85, 0xc9, 0x01, + 0xcb, 0x3d, 0x34, 0x1d, 0xee, 0xc5, 0x9d, 0xd1, 0x43, 0xc5, 0x9d, 0xcf, 0x04, 0xd3, 0xbd, 0xbe, + 0x95, 0xef, 0xf8, 0x80, 0x90, 0x99, 0xdd, 0x24, 0x0a, 0xcd, 0x41, 0x7c, 0x19, 0x61, 0xaa, 0xe6, + 0x9b, 0x30, 0xbd, 0xb5, 0xff, 0x92, 0x66, 0x38, 0xba, 0x81, 0xd5, 0x81, 0x51, 0x1b, 0x5c, 0x4a, + 0x57, 0x74, 0x7b, 0x0b, 0xef, 0x6a, 0xd7, 0x75, 0x53, 0x34, 0x6b, 0xca, 0xe5, 0xf7, 0x92, 0xbe, + 0xb2, 0x02, 0x85, 0xe0, 0xd2, 0x83, 0x0a, 0x10, 0x75, 0xf6, 0x78, 0xff, 0xa3, 0xce, 0x1e, 0x7a, + 0x98, 0xe7, 0x87, 0xa2, 0x34, 0x3f, 0x34, 0xf8, 0x22, 0xce, 0xe7, 0x25, 0x87, 0x64, 0xd9, 0x9d, + 0x0d, 0xee, 0x72, 0xd4, 0x8f, 0x2a, 0x9f, 0x82, 0x62, 0xdf, 0x7a, 0x33, 0x2a, 0x5b, 0x28, 0x17, + 0x21, 0x1f, 0x58, 0x5c, 0xe4, 0x23, 0x30, 0x3d, 0x6c, 0xad, 0x90, 0x77, 0xdd, 0xf2, 0x80, 0xcd, + 0x47, 0xe7, 0x20, 0xed, 0x2e, 0x16, 0x43, 0xb2, 0x13, 0xb4, 0x17, 0x82, 0x58, 0x71, 0x49, 0x03, + 0x49, 0xee, 0x68, 0x20, 0xc9, 0x2d, 0xff, 0x00, 0xcc, 0x8c, 0x5a, 0x08, 0xfa, 0xba, 0x11, 0x77, + 0xb5, 0xf0, 0x08, 0x24, 0xf9, 0x3d, 0x72, 0x51, 0xba, 0xad, 0xc3, 0x9f, 0x88, 0x76, 0xb2, 0x45, + 0x21, 0xc6, 0x76, 0x7b, 0xe8, 0x83, 0xac, 0xc2, 0xb1, 0x91, 0x8b, 0xc1, 0xe8, 0x0d, 0x22, 0x06, + 0xc4, 0x37, 0x88, 0x9a, 0xa2, 0x39, 0x36, 0xed, 0xab, 0x38, 0x04, 0xc1, 0x9e, 0xe4, 0x0f, 0xc5, + 0xe0, 0xc8, 0xf0, 0x25, 0x01, 0xcd, 0x43, 0x8e, 0xf8, 0xdd, 0x4e, 0xd0, 0x45, 0x87, 0x8e, 0xb6, + 0xb7, 0xc1, 0xfd, 0x73, 0x9e, 0x60, 0x8f, 0xba, 0x09, 0x76, 0xb4, 0x09, 0x93, 0x6d, 0xb3, 0xa9, + 0xb5, 0x55, 0x9f, 0xc6, 0x73, 0x65, 0xbf, 0x67, 0x40, 0xd8, 0x75, 0x76, 0xbb, 0x74, 0x6b, 0x40, + 0xe9, 0x8b, 0x14, 0x63, 0xd9, 0xd5, 0x7c, 0xb4, 0x08, 0xd9, 0x8e, 0xa7, 0xc8, 0x87, 0x50, 0x76, + 0x3f, 0x9b, 0x6f, 0x48, 0x12, 0x43, 0xb7, 0x83, 0x92, 0x87, 0x36, 0xd1, 0xa3, 0x76, 0x56, 0x52, + 0x23, 0x77, 0x56, 0x86, 0x6d, 0x63, 0xa4, 0x87, 0x6f, 0x63, 0xbc, 0xcf, 0x3f, 0x34, 0x81, 0x45, + 0x74, 0x70, 0x67, 0x03, 0x35, 0x60, 0x9a, 0xf3, 0xb7, 0x02, 0xb2, 0x8f, 0x8e, 0x6b, 0x68, 0x90, + 0x60, 0x1f, 0x2d, 0xf6, 0xd8, 0xed, 0x89, 0x5d, 0xd8, 0xd2, 0xb8, 0xcf, 0x96, 0xfe, 0x7f, 0x36, + 0x14, 0xff, 0x31, 0x03, 0x69, 0x05, 0xdb, 0x5d, 0xb2, 0x70, 0xa2, 0x2a, 0x64, 0xf0, 0x5e, 0x13, + 0x77, 0x1d, 0x6f, 0xfb, 0x72, 0x58, 0x30, 0xc0, 0xa8, 0xeb, 0x82, 0x92, 0x78, 0xe2, 0x2e, 0x1b, + 0x7a, 0x94, 0x07, 0x5b, 0xa3, 0xe3, 0x26, 0xce, 0xee, 0x8f, 0xb6, 0xce, 0x8b, 0x68, 0x2b, 0x36, + 0xd2, 0xf9, 0x66, 0x5c, 0x7d, 0xe1, 0xd6, 0xa3, 0x3c, 0xdc, 0x8a, 0x87, 0xbc, 0x2c, 0x10, 0x6f, + 0xd5, 0x02, 0xf1, 0x56, 0x32, 0xa4, 0x9b, 0x23, 0x02, 0xae, 0xf3, 0x22, 0xe0, 0x4a, 0x85, 0xb4, + 0xb8, 0x2f, 0xe2, 0xba, 0x18, 0x8c, 0xb8, 0xd2, 0x23, 0x0c, 0x88, 0xe0, 0x1e, 0x19, 0x72, 0x3d, + 0xe5, 0x0b, 0xb9, 0x32, 0x23, 0xe3, 0x1d, 0x06, 0x32, 0x24, 0xe6, 0xaa, 0x05, 0x62, 0x2e, 0x08, + 0x91, 0xc1, 0x88, 0xa0, 0xeb, 0x7b, 0xfc, 0x41, 0x57, 0x76, 0x64, 0xdc, 0xc6, 0xc7, 0x7b, 0x58, + 0xd4, 0xf5, 0xa4, 0x1b, 0x75, 0xe5, 0x46, 0x86, 0x8d, 0xbc, 0x0f, 0xfd, 0x61, 0xd7, 0xda, 0x40, + 0xd8, 0x95, 0xe7, 0x7f, 0xb8, 0x61, 0x14, 0x44, 0x48, 0xdc, 0xb5, 0x36, 0x10, 0x77, 0x15, 0x42, + 0x00, 0x43, 0x02, 0xaf, 0xef, 0x1b, 0x1e, 0x78, 0x8d, 0x0e, 0x8d, 0x78, 0x33, 0xc7, 0x8b, 0xbc, + 0xd4, 0x11, 0x91, 0x17, 0x8b, 0x8e, 0x1e, 0x18, 0x09, 0x3f, 0x76, 0xe8, 0xb5, 0x39, 0x24, 0xf4, + 0x62, 0x41, 0xd2, 0xc9, 0x91, 0xe0, 0x63, 0xc4, 0x5e, 0x9b, 0x43, 0x62, 0x2f, 0x14, 0x0a, 0x7b, + 0x98, 0xe0, 0x2b, 0x21, 0x25, 0xe5, 0x53, 0xc4, 0xf5, 0xed, 0xb3, 0x53, 0xc4, 0x7f, 0xc0, 0x96, + 0x65, 0x5a, 0xe2, 0xc4, 0x2d, 0x7d, 0x90, 0x4f, 0x12, 0x67, 0xdc, 0xb3, 0x49, 0x07, 0x04, 0x6a, + 0xd4, 0x4f, 0xf3, 0xd9, 0x21, 0xf9, 0xf3, 0x11, 0x8f, 0x97, 0xfa, 0xb0, 0x7e, 0x47, 0x3e, 0xc3, + 0x1d, 0x79, 0x5f, 0xf8, 0x16, 0x0d, 0x86, 0x6f, 0x73, 0x90, 0x25, 0xfe, 0x57, 0x5f, 0x64, 0xa6, + 0x75, 0xdd, 0xc8, 0x4c, 0x1c, 0x35, 0x60, 0x41, 0x1e, 0x5f, 0x56, 0xd8, 0x0e, 0x4f, 0xd1, 0x3d, + 0x76, 0xc1, 0x62, 0x0a, 0xf4, 0x10, 0x4c, 0xf9, 0x68, 0x5d, 0xbf, 0x8e, 0x85, 0x29, 0x92, 0x4b, + 0x5d, 0xe1, 0x0e, 0xde, 0xbf, 0x8a, 0x78, 0x12, 0xf2, 0x42, 0xba, 0x61, 0xd1, 0x57, 0xe4, 0x4d, + 0x8a, 0xbe, 0xa2, 0xb7, 0x1d, 0x7d, 0xf9, 0xfd, 0xd4, 0x58, 0xd0, 0x4f, 0xfd, 0x8b, 0x88, 0x37, + 0x26, 0x6e, 0x2c, 0xd5, 0x34, 0x5b, 0x98, 0x7b, 0x8e, 0xf4, 0x37, 0x71, 0x2a, 0xda, 0xe6, 0x0e, + 0xf7, 0x0f, 0xc9, 0x4f, 0x42, 0xe5, 0x2e, 0x1c, 0x19, 0xbe, 0x2e, 0xb8, 0x4e, 0x67, 0xc2, 0x7f, + 0x2e, 0x98, 0x1f, 0x96, 0x4d, 0x7a, 0x87, 0x65, 0xdd, 0x2f, 0xf4, 0x52, 0xbe, 0x2f, 0xf4, 0xd0, + 0x13, 0x90, 0xa1, 0x19, 0x51, 0xd5, 0xec, 0x8a, 0x3f, 0xf3, 0x71, 0x7c, 0xf4, 0x41, 0x59, 0x9b, + 0x1e, 0xe1, 0x63, 0x87, 0x6b, 0x3d, 0x8f, 0x21, 0x13, 0xf0, 0x18, 0xee, 0x84, 0x0c, 0x69, 0x3d, + 0xbb, 0xae, 0x1a, 0xf8, 0xe7, 0x9d, 0xa2, 0x40, 0x7e, 0x37, 0xa0, 0xc1, 0x45, 0x02, 0x5d, 0x86, + 0x24, 0xbe, 0x4e, 0xef, 0xfe, 0x63, 0x07, 0x10, 0x8f, 0x0c, 0xba, 0xa6, 0xa4, 0xba, 0x3a, 0x43, + 0x84, 0xfc, 0x8d, 0xd7, 0xe6, 0x24, 0x46, 0xfd, 0xa0, 0xfb, 0x35, 0x83, 0xc2, 0xf9, 0xe5, 0xff, + 0x1a, 0x25, 0x01, 0x4c, 0x60, 0x01, 0x19, 0x2a, 0xdb, 0x61, 0x5b, 0x87, 0xe3, 0xc9, 0x7b, 0x16, + 0x60, 0x47, 0xb3, 0xd5, 0x1b, 0x9a, 0xe1, 0xe0, 0x16, 0x17, 0xba, 0xaf, 0x04, 0x95, 0x20, 0x4d, + 0x9e, 0x7a, 0x36, 0x6e, 0xf1, 0x30, 0xda, 0x7d, 0xf6, 0xf5, 0x33, 0xf5, 0x9d, 0xf5, 0x33, 0x28, + 0xe5, 0x74, 0x9f, 0x94, 0x7d, 0xc1, 0x45, 0xc6, 0x1f, 0x5c, 0xb0, 0x03, 0xc3, 0xfc, 0xdc, 0x22, + 0xb0, 0xb6, 0x89, 0x67, 0x74, 0x0f, 0xe4, 0x3b, 0xb8, 0xd3, 0x35, 0xcd, 0xb6, 0xca, 0xcc, 0x0d, + 0xbb, 0x97, 0x3e, 0xc7, 0x0b, 0xeb, 0xd4, 0xea, 0xfc, 0x48, 0xd4, 0x9b, 0x7f, 0x5e, 0x10, 0xf9, + 0x5d, 0x27, 0x60, 0xf9, 0xc7, 0x68, 0x66, 0x29, 0xe8, 0x22, 0xa0, 0x86, 0xff, 0x34, 0x49, 0x8f, + 0x9a, 0x05, 0xa1, 0xd0, 0xe3, 0xda, 0x0f, 0xef, 0xd4, 0x09, 0x2b, 0xb6, 0xd1, 0xf3, 0x70, 0xb4, + 0xcf, 0xb6, 0xb9, 0xd0, 0xd1, 0x71, 0x4d, 0xdc, 0x1d, 0x41, 0x13, 0x27, 0xa0, 0x3d, 0x61, 0xc5, + 0xbe, 0xc3, 0x59, 0xb7, 0x04, 0x85, 0xa0, 0xc7, 0x33, 0x74, 0xf8, 0xe9, 0xdf, 0x41, 0x71, 0x34, + 0xdd, 0x50, 0x03, 0xe9, 0xa0, 0x1c, 0x2b, 0xe4, 0x49, 0xa6, 0x75, 0xb8, 0x63, 0xa8, 0xe7, 0x83, + 0x1e, 0x87, 0x8c, 0xe7, 0x34, 0x31, 0xa9, 0x1e, 0x90, 0x2e, 0xf0, 0x68, 0xe5, 0xdf, 0x88, 0x78, + 0x90, 0xc1, 0x04, 0x44, 0x1d, 0x92, 0xec, 0x38, 0x1c, 0x3f, 0x64, 0xf3, 0xd0, 0x78, 0x3e, 0xd3, + 0x02, 0x3b, 0x2b, 0xa7, 0x70, 0x66, 0xf9, 0xdd, 0x90, 0x64, 0x25, 0x28, 0x0b, 0x29, 0xef, 0x7a, + 0x5e, 0x80, 0x64, 0xa5, 0x56, 0xab, 0xaf, 0x6f, 0x48, 0x11, 0x94, 0x81, 0x44, 0xa5, 0xba, 0xa6, + 0x6c, 0x48, 0x51, 0x52, 0xac, 0xd4, 0xaf, 0xd4, 0x6b, 0x1b, 0x52, 0x0c, 0x4d, 0x42, 0x9e, 0xfd, + 0x56, 0x2f, 0xae, 0x29, 0x2b, 0x95, 0x0d, 0x29, 0xee, 0x2b, 0x6a, 0xd4, 0x57, 0x17, 0xeb, 0x8a, + 0x94, 0x90, 0x1f, 0x81, 0x63, 0x23, 0xbd, 0x2c, 0x2f, 0xbb, 0x10, 0xf1, 0x65, 0x17, 0xe4, 0x0f, + 0x45, 0xa1, 0x34, 0xda, 0x75, 0x42, 0x57, 0xfa, 0x3a, 0x7e, 0xf6, 0x10, 0x7e, 0x57, 0x5f, 0xef, + 0xd1, 0x7d, 0x50, 0xb0, 0xf0, 0x36, 0x76, 0x9a, 0xbb, 0xcc, 0x95, 0x63, 0x4b, 0x66, 0x5e, 0xc9, + 0xf3, 0x52, 0xca, 0x64, 0x33, 0xb2, 0x17, 0x71, 0xd3, 0x51, 0x99, 0x2d, 0xb2, 0xf9, 0x1f, 0x64, + 0xcc, 0xb3, 0xd2, 0x06, 0x2b, 0x94, 0x7f, 0xe0, 0x50, 0xb2, 0xcc, 0x40, 0x42, 0xa9, 0x6f, 0x28, + 0xcf, 0x4b, 0x31, 0x84, 0xa0, 0x40, 0x7f, 0xaa, 0x8d, 0xd5, 0xca, 0x7a, 0xe3, 0xf2, 0x1a, 0x91, + 0xe5, 0x14, 0x14, 0x85, 0x2c, 0x45, 0x61, 0x42, 0x7e, 0x00, 0x8e, 0x8e, 0xf0, 0xfb, 0x86, 0x9c, + 0x4f, 0xfc, 0x58, 0xc4, 0x4f, 0x1d, 0x8c, 0xf9, 0xd7, 0x20, 0x69, 0x3b, 0x9a, 0xd3, 0xb3, 0xb9, + 0x10, 0x1f, 0x1f, 0xd7, 0x11, 0x5c, 0x10, 0x3f, 0x1a, 0x94, 0x5d, 0xe1, 0x30, 0xf2, 0x39, 0x28, + 0x04, 0x6b, 0x46, 0xcb, 0xc0, 0x53, 0xa2, 0xa8, 0xfc, 0x3c, 0x80, 0x2f, 0x1f, 0xe9, 0x9e, 0xf4, + 0x8a, 0xf8, 0x4f, 0x7a, 0x9d, 0x83, 0xc4, 0x75, 0x93, 0xd9, 0x8c, 0xe1, 0x13, 0xe7, 0xaa, 0xe9, + 0x60, 0x5f, 0xf2, 0x81, 0x51, 0xcb, 0x3a, 0xa0, 0xc1, 0x9c, 0xd0, 0x88, 0x57, 0x3c, 0x15, 0x7c, + 0xc5, 0xdd, 0x23, 0xb3, 0x4b, 0xc3, 0x5f, 0xf5, 0x12, 0x24, 0xa8, 0xb5, 0x19, 0xfa, 0xe9, 0xcf, + 0xf7, 0x03, 0x68, 0x8e, 0x63, 0xe9, 0x5b, 0x3d, 0xef, 0x05, 0x73, 0xc3, 0xad, 0x55, 0x45, 0xd0, + 0x55, 0xef, 0xe4, 0x66, 0x6b, 0xda, 0x63, 0xf5, 0x99, 0x2e, 0x1f, 0xa0, 0xbc, 0x0a, 0x85, 0x20, + 0xef, 0xf0, 0x4f, 0x99, 0xbc, 0x0b, 0x0e, 0x32, 0xc2, 0x7d, 0x72, 0x9d, 0x2f, 0x7e, 0xe9, 0x08, + 0x7d, 0x90, 0x6f, 0x46, 0x20, 0xbd, 0xb1, 0xc7, 0xf5, 0xf8, 0x80, 0xc3, 0x96, 0xde, 0xf7, 0x5c, + 0x6e, 0xb2, 0x90, 0xe5, 0x63, 0x63, 0x6e, 0x96, 0xf7, 0x7b, 0xdc, 0x99, 0x1a, 0x1f, 0x37, 0xda, + 0x15, 0xd9, 0x6e, 0x6e, 0x9d, 0x2e, 0x8c, 0xf7, 0xed, 0xc4, 0x34, 0x24, 0xfc, 0xdf, 0x3d, 0xb0, + 0x07, 0xb9, 0xe5, 0x3b, 0x96, 0xc0, 0x96, 0x0d, 0xff, 0x47, 0x16, 0x91, 0x43, 0x7f, 0x64, 0xe1, + 0xbe, 0x25, 0xea, 0x7f, 0xcb, 0x75, 0x48, 0x0b, 0xa5, 0x40, 0xef, 0xf4, 0x1f, 0x40, 0x11, 0x7b, + 0x34, 0x23, 0x17, 0x4f, 0x0e, 0xef, 0x3b, 0x7f, 0x72, 0x1a, 0x26, 0xf9, 0x51, 0x3c, 0x2f, 0xae, + 0xe0, 0x7f, 0x40, 0xa0, 0xc8, 0x2a, 0x96, 0x45, 0x50, 0x21, 0xff, 0x7c, 0x04, 0xa4, 0x7e, 0xad, + 0x7c, 0x3b, 0x1b, 0x40, 0x8c, 0x22, 0xd1, 0x7e, 0xdf, 0xcd, 0xe0, 0x6c, 0xe4, 0xf3, 0xa4, 0xd4, + 0xbb, 0x1b, 0xfc, 0xbd, 0x51, 0xc8, 0xfa, 0x72, 0x7a, 0xe8, 0xb1, 0xc0, 0xd1, 0xd0, 0xf9, 0x83, + 0xf2, 0x7f, 0xbe, 0xb3, 0xa1, 0x81, 0x8e, 0x45, 0x0f, 0xdf, 0xb1, 0x37, 0xff, 0xf0, 0xfe, 0xf0, + 0xaf, 0x80, 0x12, 0x23, 0xbe, 0x02, 0xfa, 0xa1, 0x08, 0xa4, 0xdd, 0xa5, 0xfb, 0xb0, 0xd9, 0xfc, + 0x23, 0x90, 0xe4, 0xab, 0x13, 0x4b, 0xe7, 0xf3, 0xa7, 0xa1, 0xb9, 0xd0, 0x12, 0xa4, 0xc5, 0x5f, + 0xde, 0xe1, 0x81, 0xa8, 0xfb, 0x7c, 0xfa, 0x49, 0xc8, 0xfa, 0x36, 0x56, 0x88, 0x9d, 0x58, 0xad, + 0x3f, 0x2b, 0x4d, 0x94, 0x52, 0x37, 0x6f, 0xcd, 0xc7, 0x56, 0xf1, 0x0d, 0x32, 0xc3, 0x94, 0x7a, + 0xed, 0x72, 0xbd, 0xf6, 0x8c, 0x14, 0x29, 0x65, 0x6f, 0xde, 0x9a, 0x4f, 0x29, 0x98, 0xa6, 0xaf, + 0x4e, 0x3f, 0x03, 0xc5, 0xbe, 0x81, 0x09, 0xda, 0x77, 0x04, 0x85, 0xc5, 0xcd, 0xf5, 0xe5, 0xa5, + 0x5a, 0x65, 0xa3, 0xae, 0xb2, 0x63, 0x76, 0xe8, 0x28, 0x4c, 0x2d, 0x2f, 0x5d, 0xba, 0xbc, 0xa1, + 0xd6, 0x96, 0x97, 0xea, 0xab, 0x1b, 0x6a, 0x65, 0x63, 0xa3, 0x52, 0x7b, 0x46, 0x8a, 0x9e, 0xfd, + 0x36, 0x40, 0xb1, 0x52, 0xad, 0x2d, 0x91, 0xf5, 0x59, 0xe7, 0x97, 0xbb, 0xd7, 0x20, 0x4e, 0x53, + 0x01, 0x07, 0x1e, 0x15, 0x29, 0x1d, 0x9c, 0xdb, 0x44, 0x17, 0x21, 0x41, 0xb3, 0x04, 0xe8, 0xe0, + 0xb3, 0x23, 0xa5, 0x90, 0x64, 0x27, 0x69, 0x0c, 0x9d, 0x4e, 0x07, 0x1e, 0x26, 0x29, 0x1d, 0x9c, + 0xfb, 0x44, 0x0a, 0x64, 0xbc, 0x28, 0x23, 0xfc, 0x70, 0x45, 0x69, 0x0c, 0xeb, 0x88, 0x96, 0x21, + 0x25, 0x02, 0xc3, 0xb0, 0xe3, 0x1e, 0xa5, 0xd0, 0xe4, 0x24, 0x11, 0x17, 0x0b, 0xe0, 0x0f, 0x3e, + 0xbb, 0x52, 0x0a, 0xc9, 0xb4, 0xa2, 0x25, 0xf7, 0x70, 0x7e, 0xc8, 0x11, 0x8e, 0x52, 0x58, 0xb2, + 0x91, 0x08, 0xcd, 0x4b, 0x8d, 0x84, 0x9f, 0xc8, 0x29, 0x8d, 0x91, 0x44, 0x46, 0x9b, 0x00, 0xbe, + 0x70, 0x7d, 0x8c, 0xa3, 0x36, 0xa5, 0x71, 0x92, 0xc3, 0x68, 0x0d, 0xd2, 0x6e, 0xf4, 0x14, 0x7a, + 0xf0, 0xa5, 0x14, 0x9e, 0xa5, 0x45, 0xef, 0x86, 0x7c, 0x30, 0x6a, 0x18, 0xef, 0x38, 0x4b, 0x69, + 0xcc, 0xf4, 0x2b, 0xc1, 0x0f, 0x86, 0x10, 0xe3, 0x1d, 0x6f, 0x29, 0x8d, 0x99, 0x8d, 0x45, 0x2f, + 0xc2, 0xe4, 0xa0, 0x8b, 0x3f, 0xfe, 0x69, 0x97, 0xd2, 0x21, 0xf2, 0xb3, 0xa8, 0x03, 0x68, 0x48, + 0x68, 0x70, 0x88, 0xc3, 0x2f, 0xa5, 0xc3, 0xa4, 0x6b, 0x51, 0x0b, 0x8a, 0xfd, 0xfe, 0xf6, 0xb8, + 0x87, 0x61, 0x4a, 0x63, 0xa7, 0x6e, 0xd9, 0x5b, 0x82, 0x7e, 0xfa, 0xb8, 0x87, 0x63, 0x4a, 0x63, + 0x67, 0x72, 0xab, 0x95, 0x91, 0xe7, 0x1b, 0x4f, 0x1c, 0x78, 0xbe, 0xd1, 0x3b, 0xb1, 0xe8, 0x9e, + 0x69, 0xfc, 0x83, 0x87, 0xe1, 0x5e, 0x7e, 0xc9, 0x80, 0xed, 0x68, 0xd7, 0x74, 0x63, 0xc7, 0xbd, + 0x35, 0x82, 0x3f, 0xf3, 0xc3, 0x8d, 0x47, 0xf8, 0x45, 0x06, 0xa2, 0x34, 0xe4, 0xee, 0x88, 0x91, + 0xb7, 0x7b, 0x85, 0x9d, 0x44, 0x0e, 0x3f, 0xba, 0x78, 0xc0, 0xbd, 0x14, 0x21, 0xb7, 0x5f, 0x0c, + 0x3b, 0x2e, 0x7d, 0xf0, 0x21, 0xcc, 0x83, 0xce, 0x7b, 0xca, 0x1f, 0x8c, 0x40, 0xe1, 0xb2, 0x6e, + 0x3b, 0xa6, 0xa5, 0x37, 0xb5, 0x36, 0x5d, 0x31, 0x2e, 0x8c, 0xfb, 0xf1, 0x47, 0x35, 0x43, 0x9c, + 0x11, 0x7e, 0xd9, 0x05, 0x3f, 0x18, 0xb2, 0x08, 0xc9, 0xeb, 0x5a, 0x9b, 0x7d, 0x7a, 0xe1, 0xbf, + 0x64, 0xa7, 0x5f, 0xe6, 0x3e, 0x2f, 0xc9, 0x8f, 0xc2, 0x78, 0xe5, 0xcf, 0xd1, 0x93, 0xdc, 0x9d, + 0x8e, 0x6e, 0xb3, 0xbf, 0x8d, 0xed, 0x60, 0x1b, 0x6d, 0x42, 0xdc, 0xd2, 0x1c, 0x1e, 0xd4, 0x54, + 0x2b, 0xfc, 0x8a, 0x8a, 0xfb, 0xc3, 0x2f, 0x9a, 0x58, 0x18, 0xb8, 0xc5, 0x82, 0xbd, 0x8c, 0xc2, + 0xa1, 0xef, 0x83, 0x74, 0x47, 0xdb, 0x53, 0x29, 0x74, 0xf4, 0xcd, 0x82, 0x4e, 0x75, 0xb4, 0x3d, + 0xd2, 0x6a, 0xa4, 0x43, 0x91, 0xa0, 0x37, 0x77, 0x35, 0x63, 0x07, 0xb3, 0x97, 0xc4, 0xde, 0xac, + 0x97, 0xe4, 0x3b, 0xda, 0x5e, 0x8d, 0x02, 0x93, 0x57, 0xf1, 0xcb, 0x40, 0x7e, 0x33, 0xc2, 0x43, + 0x59, 0x2a, 0x39, 0xa4, 0x81, 0xd4, 0x74, 0x9f, 0xe8, 0xfb, 0x45, 0x5a, 0xff, 0xc4, 0xa8, 0x81, + 0xe9, 0x93, 0x3b, 0x3b, 0x92, 0xfd, 0xa5, 0xd7, 0xc4, 0x91, 0xec, 0x62, 0xb3, 0x6f, 0x5c, 0xae, + 0x40, 0x96, 0x65, 0xd3, 0x54, 0xea, 0xc2, 0x46, 0x43, 0x5d, 0xd8, 0xbc, 0x70, 0x61, 0x19, 0x20, + 0x30, 0x6e, 0x52, 0xcf, 0xfb, 0xf0, 0x6a, 0x04, 0xb2, 0x8b, 0xbe, 0x3b, 0xb5, 0x66, 0x20, 0xd5, + 0x31, 0x0d, 0xfd, 0x1a, 0xb6, 0xdc, 0x7d, 0x19, 0xf6, 0x48, 0xdc, 0x4c, 0xf6, 0xb7, 0x91, 0x9c, + 0x7d, 0x71, 0x43, 0x83, 0x78, 0x26, 0x5c, 0x37, 0xf0, 0x96, 0xad, 0x0b, 0x91, 0x2b, 0xe2, 0x11, + 0x9d, 0x02, 0xc9, 0xc6, 0xcd, 0x9e, 0xa5, 0x3b, 0xfb, 0x6a, 0xd3, 0x34, 0x1c, 0xad, 0xe9, 0xf0, + 0xec, 0x69, 0x51, 0x94, 0xd7, 0x58, 0x31, 0x01, 0x69, 0x61, 0x47, 0xd3, 0xdb, 0xec, 0xd8, 0x57, + 0x46, 0x11, 0x8f, 0xbc, 0xa9, 0x9f, 0x4b, 0xf9, 0x43, 0xc3, 0x1a, 0x48, 0x66, 0x17, 0x5b, 0x81, + 0x4f, 0xe1, 0x98, 0xba, 0xce, 0xfc, 0xce, 0x67, 0x1e, 0x9a, 0xe6, 0x02, 0xe7, 0x1b, 0xf0, 0xec, + 0x0a, 0x69, 0xa5, 0x28, 0x38, 0xc4, 0x37, 0x72, 0xcf, 0x07, 0x76, 0x62, 0x7a, 0x5b, 0xde, 0xa7, + 0xf8, 0xd3, 0x03, 0x42, 0xad, 0x18, 0xfb, 0xd5, 0x99, 0xdf, 0xf6, 0xa0, 0xbd, 0xd0, 0xf1, 0x19, + 0xbc, 0xef, 0xdf, 0x96, 0xa1, 0x30, 0xc4, 0x83, 0x7f, 0x51, 0xd3, 0xdb, 0xe2, 0xcf, 0xbd, 0x29, + 0xfc, 0x09, 0x95, 0xdd, 0x34, 0x0c, 0xfb, 0x33, 0xee, 0xf2, 0x28, 0xdd, 0xa8, 0x9a, 0x46, 0x2b, + 0x98, 0x71, 0x41, 0x1b, 0x90, 0x74, 0xcc, 0x6b, 0xd8, 0xe0, 0x02, 0xaa, 0xbe, 0xe3, 0x10, 0x8a, + 0x3d, 0x78, 0x2f, 0x0d, 0xc7, 0x42, 0x3b, 0x20, 0xb5, 0x70, 0x1b, 0xef, 0xb0, 0x0f, 0xb9, 0x76, + 0x35, 0x0b, 0xb3, 0x8f, 0x3b, 0x0f, 0x87, 0x3f, 0x78, 0x7d, 0x4d, 0xd1, 0x45, 0x6d, 0x50, 0x50, + 0xb4, 0x1e, 0xbc, 0xd1, 0x2d, 0xc5, 0x77, 0xe5, 0x47, 0xf4, 0xdf, 0xa7, 0x95, 0x7e, 0xb3, 0x15, + 0xb8, 0x01, 0xee, 0x14, 0x48, 0x3d, 0x63, 0xcb, 0x34, 0xe8, 0x5f, 0x66, 0xe2, 0x01, 0x56, 0x9a, + 0xed, 0xdc, 0xb9, 0xe5, 0x7c, 0xe7, 0x6e, 0x1d, 0x0a, 0x1e, 0x29, 0x9d, 0x3d, 0x99, 0xc3, 0xce, + 0x9e, 0xbc, 0x0b, 0x40, 0x48, 0xd0, 0x0a, 0x80, 0x37, 0x3f, 0xdd, 0xdd, 0xfd, 0xd0, 0x99, 0xee, + 0xef, 0x8c, 0x0f, 0x00, 0xb5, 0x61, 0xaa, 0xa3, 0x1b, 0xaa, 0x8d, 0xdb, 0xdb, 0x2a, 0x97, 0x1c, + 0xc1, 0xcd, 0xbe, 0x09, 0x23, 0x3d, 0xd9, 0xd1, 0x8d, 0x06, 0x6e, 0x6f, 0x2f, 0xba, 0xb0, 0xe8, + 0x1d, 0x70, 0xdc, 0x13, 0x87, 0x69, 0xa8, 0xbb, 0x66, 0xbb, 0xa5, 0x5a, 0x78, 0x5b, 0x6d, 0xd2, + 0x6b, 0x91, 0x72, 0x54, 0x88, 0x47, 0x5d, 0x92, 0x35, 0xe3, 0xb2, 0xd9, 0x6e, 0x29, 0x78, 0xbb, + 0x46, 0xaa, 0xd1, 0x3d, 0xe0, 0xc9, 0x42, 0xd5, 0x5b, 0xf6, 0x4c, 0x7e, 0x3e, 0x76, 0x32, 0xae, + 0xe4, 0xdc, 0xc2, 0xa5, 0x96, 0x5d, 0x4e, 0xbf, 0xef, 0x95, 0xb9, 0x89, 0xaf, 0xbf, 0x32, 0x37, + 0x21, 0x5f, 0xa4, 0x97, 0x78, 0xf0, 0x49, 0x87, 0x6d, 0x74, 0x1e, 0x32, 0x9a, 0x78, 0x60, 0x9f, + 0x89, 0x1c, 0x30, 0x69, 0x3d, 0x52, 0xf9, 0x95, 0x08, 0x24, 0x17, 0xaf, 0xae, 0x6b, 0xba, 0x85, + 0xea, 0x30, 0xe9, 0x29, 0xed, 0xb8, 0xf3, 0xdf, 0xd3, 0x73, 0x61, 0x00, 0xea, 0xa3, 0xbe, 0xa8, + 0x3d, 0x10, 0xa6, 0xff, 0x5b, 0x5b, 0x5f, 0x57, 0xaf, 0x40, 0x8a, 0xb5, 0xd0, 0x46, 0x4f, 0x43, + 0xa2, 0x4b, 0x7e, 0xf0, 0xec, 0xff, 0xec, 0x48, 0x45, 0xa7, 0xf4, 0x7e, 0xb5, 0x60, 0x7c, 0xf2, + 0x5f, 0x45, 0x00, 0x16, 0xaf, 0x5e, 0xdd, 0xb0, 0xf4, 0x6e, 0x1b, 0x3b, 0x6f, 0x56, 0x97, 0x97, + 0xe1, 0x0e, 0xdf, 0x77, 0x9b, 0x56, 0x73, 0xec, 0x6e, 0x4f, 0x79, 0x5f, 0x6e, 0x5a, 0xcd, 0xa1, + 0x68, 0x2d, 0xdb, 0x71, 0xd1, 0x62, 0x63, 0xa3, 0x2d, 0xda, 0xce, 0xa0, 0x1c, 0x9f, 0x83, 0xac, + 0xd7, 0x75, 0x1b, 0x2d, 0x41, 0xda, 0xe1, 0xbf, 0xb9, 0x38, 0xe5, 0xd1, 0xe2, 0x14, 0x6c, 0x7e, + 0x91, 0xba, 0xec, 0xf2, 0xff, 0x26, 0x52, 0xf5, 0x26, 0xc2, 0xdf, 0x28, 0x45, 0x22, 0x16, 0x9e, + 0x5b, 0xe0, 0xd8, 0x9b, 0x60, 0x81, 0x39, 0x96, 0x4f, 0xac, 0x3f, 0x1c, 0x85, 0xa9, 0x4d, 0x31, + 0x49, 0xff, 0xc6, 0x4a, 0x61, 0x13, 0x52, 0xd8, 0x70, 0x2c, 0x1d, 0x8b, 0xad, 0xbe, 0x87, 0x47, + 0x0d, 0xf6, 0x90, 0xbe, 0xd0, 0xbf, 0x57, 0xec, 0x1f, 0x7a, 0x81, 0xe5, 0x13, 0xc3, 0xaf, 0xc7, + 0x60, 0x66, 0x14, 0x2b, 0x3a, 0x01, 0xc5, 0xa6, 0x85, 0x69, 0x81, 0x1a, 0x48, 0x85, 0x17, 0x44, + 0x31, 0x5f, 0x52, 0x14, 0x20, 0x0e, 0x1a, 0xd1, 0x2a, 0x42, 0x7a, 0x7b, 0x1e, 0x59, 0xc1, 0x43, + 0xa0, 0x8b, 0x0a, 0x86, 0xa2, 0x38, 0xdb, 0xbe, 0xa5, 0xb5, 0x35, 0xa3, 0x89, 0x6f, 0x43, 0x13, + 0x06, 0x57, 0x00, 0x71, 0x60, 0xbe, 0xca, 0x30, 0xd1, 0x55, 0x48, 0x09, 0xf8, 0xf8, 0x9b, 0x00, + 0x2f, 0xc0, 0xd0, 0xdd, 0x90, 0xf3, 0x2f, 0x0c, 0xd4, 0x4f, 0x89, 0x2b, 0x59, 0xdf, 0xba, 0x10, + 0xb6, 0xf2, 0x24, 0x0f, 0x5c, 0x79, 0xb8, 0x2b, 0xf8, 0x6b, 0x31, 0x98, 0x54, 0x70, 0xeb, 0xbb, + 0x70, 0xe0, 0xbe, 0x17, 0x80, 0x4d, 0x6a, 0x62, 0x6c, 0x6f, 0x63, 0xec, 0x06, 0x8d, 0x44, 0x86, + 0xe1, 0x2d, 0xda, 0xce, 0xdb, 0x35, 0x7a, 0xff, 0x2e, 0x0a, 0x39, 0xff, 0xe8, 0x7d, 0x17, 0xac, + 0x6c, 0x68, 0xd5, 0x33, 0x69, 0xec, 0xf4, 0xf9, 0xa9, 0x51, 0x26, 0x6d, 0x40, 0xaf, 0x43, 0x6c, + 0xd9, 0x27, 0x63, 0x90, 0xe4, 0x47, 0xc1, 0xd6, 0x06, 0x7c, 0xdc, 0xc8, 0x21, 0x3f, 0x02, 0xee, + 0x73, 0x71, 0xef, 0x83, 0x02, 0x09, 0xa9, 0x03, 0xe7, 0xcb, 0x22, 0x27, 0xf3, 0x34, 0x1c, 0xf6, + 0x4e, 0x43, 0xa3, 0x39, 0xc8, 0x12, 0x32, 0xcf, 0x66, 0x13, 0x1a, 0xe8, 0x68, 0x7b, 0x75, 0x56, + 0x82, 0x1e, 0x02, 0xb4, 0xeb, 0x26, 0x3e, 0x54, 0x4f, 0x10, 0x84, 0x6e, 0xd2, 0xab, 0x11, 0xe4, + 0x77, 0x01, 0x90, 0x56, 0xa8, 0xec, 0xe6, 0x4e, 0x7e, 0x39, 0x2c, 0x29, 0x59, 0xa4, 0xb7, 0x77, + 0xfe, 0x78, 0x84, 0xb9, 0xca, 0x7d, 0xd1, 0x36, 0x0f, 0x5a, 0xd4, 0xc3, 0xcd, 0x86, 0x6f, 0xbd, + 0x36, 0x57, 0xda, 0xd7, 0x3a, 0xed, 0xb2, 0x3c, 0x04, 0x52, 0x1e, 0x96, 0x0b, 0x20, 0xde, 0x74, + 0x30, 0x70, 0x2f, 0xdf, 0x4b, 0xf4, 0xfa, 0xe6, 0xd7, 0x3e, 0x75, 0xfa, 0xb8, 0xef, 0x15, 0x7b, + 0x6e, 0x86, 0x8c, 0x0d, 0x8f, 0xfc, 0x0b, 0x11, 0x40, 0xde, 0x62, 0xe3, 0x9e, 0x07, 0x5f, 0xa1, + 0xa7, 0x84, 0x85, 0xbf, 0x1f, 0x39, 0x38, 0x8e, 0xf0, 0xf8, 0x03, 0x71, 0x84, 0x6f, 0x32, 0xbd, + 0xd3, 0x33, 0xed, 0xe2, 0x13, 0xf0, 0x21, 0x77, 0xb8, 0x2e, 0xd4, 0x4c, 0x3d, 0x00, 0x21, 0x98, + 0xe8, 0x1c, 0x9d, 0x90, 0x5f, 0x8b, 0xc0, 0xb1, 0x01, 0x4d, 0x74, 0x9b, 0xdc, 0x04, 0x64, 0xf9, + 0x2a, 0xe9, 0x88, 0x8a, 0xfd, 0xd5, 0xdb, 0x53, 0xec, 0x49, 0x6b, 0xc0, 0x9c, 0xbf, 0x45, 0x6b, + 0x14, 0x37, 0x42, 0xbf, 0x15, 0x81, 0x69, 0x7f, 0x8b, 0xdc, 0xbe, 0x35, 0x20, 0xe7, 0x6f, 0x0b, + 0xef, 0xd5, 0xbd, 0xe3, 0xf4, 0xca, 0xdf, 0xa1, 0x00, 0x08, 0xe9, 0x8b, 0xd0, 0x7a, 0x96, 0xab, + 0x7b, 0x64, 0x6c, 0x29, 0xb9, 0xfb, 0x10, 0xc3, 0xcc, 0x00, 0x1b, 0xac, 0xf7, 0x47, 0x21, 0xbe, + 0x6e, 0x9a, 0x6d, 0xf4, 0x43, 0x11, 0x98, 0x34, 0x4c, 0x47, 0x25, 0x73, 0x05, 0xb7, 0x54, 0x9e, + 0x2c, 0x60, 0x96, 0xf4, 0xea, 0xe1, 0xa4, 0xf7, 0x8d, 0xd7, 0xe6, 0x06, 0xa1, 0x86, 0x5d, 0xbd, + 0x5b, 0x34, 0x4c, 0xa7, 0x4a, 0x89, 0x36, 0x58, 0x3e, 0xe1, 0x06, 0xe4, 0x83, 0xef, 0x67, 0xe6, + 0x57, 0x39, 0xf4, 0xfb, 0xf3, 0xa1, 0xef, 0xce, 0x6d, 0xf9, 0x5e, 0xcc, 0x2e, 0xc0, 0xfc, 0x13, + 0x32, 0xb8, 0xcf, 0x83, 0x74, 0xb5, 0xff, 0x64, 0x5a, 0x1d, 0x52, 0x87, 0x3d, 0xe4, 0xe6, 0x97, + 0x38, 0xe7, 0x3d, 0xfd, 0xd9, 0x08, 0x80, 0x97, 0x9a, 0x41, 0x0f, 0xc2, 0xd1, 0xea, 0xda, 0xea, + 0xa2, 0xda, 0xd8, 0xa8, 0x6c, 0x6c, 0x36, 0x82, 0x97, 0xc7, 0x8b, 0x3b, 0x4a, 0xec, 0x2e, 0x6e, + 0xea, 0xdb, 0x3a, 0x6e, 0xa1, 0xfb, 0x61, 0x3a, 0x48, 0x4d, 0x9e, 0xea, 0x8b, 0x52, 0xa4, 0x94, + 0xbb, 0x79, 0x6b, 0x3e, 0xcd, 0x5c, 0x52, 0xdc, 0x42, 0x27, 0xe1, 0x8e, 0x41, 0xba, 0xa5, 0xd5, + 0x4b, 0x52, 0xb4, 0x94, 0xbf, 0x79, 0x6b, 0x3e, 0xe3, 0xfa, 0xae, 0x48, 0x06, 0xe4, 0xa7, 0xe4, + 0x78, 0xb1, 0x12, 0xdc, 0xbc, 0x35, 0x9f, 0x64, 0xc3, 0x52, 0x8a, 0xbf, 0xef, 0xe3, 0xb3, 0x13, + 0xa7, 0xbf, 0x1f, 0x60, 0xc9, 0xd8, 0xb6, 0x34, 0xfa, 0x17, 0x94, 0x51, 0x09, 0x8e, 0x2c, 0xad, + 0x5e, 0x54, 0x2a, 0xb5, 0x8d, 0xa5, 0xb5, 0xd5, 0xbe, 0x3b, 0xef, 0x83, 0x75, 0x8b, 0x6b, 0x9b, + 0xd5, 0xe5, 0xba, 0xda, 0x58, 0xba, 0xb4, 0xca, 0x76, 0x78, 0x03, 0x75, 0xcf, 0xae, 0x6e, 0x2c, + 0xad, 0xd4, 0xa5, 0x68, 0xf5, 0xe2, 0xc8, 0x3d, 0x86, 0x07, 0x0f, 0x1c, 0x70, 0xcf, 0x4a, 0x06, + 0x36, 0x1a, 0xfe, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x63, 0xe2, 0x99, 0x22, 0xd9, 0x97, 0x00, + 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 0dbd30b210a3..25424f3af724 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -211,31 +211,32 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e fields := msg.Descriptor().Fields() first := true + emptyOneOfWritten := map[string]bool{} for i := 0; i < fields.Len(); i++ { f := fields.Get(i) v := msg.Get(f) name := getFieldName(f) + oneof := f.ContainingOneof() + isOneOf := oneof != nil + oneofFieldName, oneofTypeName, err := getOneOfNames(f) + if err != nil && isOneOf { + return err + } writeNil := false if !msg.Has(f) { - if omitEmpty(f) { + // msg.WhichOneof(oneof) == nil: no field of the oneof has been set + // !emptyOneOfWritten: we haven't written a null for this oneof yet (only write one null per empty oneof) + if isOneOf && msg.WhichOneof(oneof) == nil && emptyOneOfWritten[oneofFieldName] != true { + name = oneofFieldName + writeNil = true + emptyOneOfWritten[oneofFieldName] = true + } else if omitEmpty(f) { continue - } else { - if f.Kind() == protoreflect.MessageKind && - f.Cardinality() != protoreflect.Repeated && - !v.Message().IsValid() { - return errors.Errorf("not supported: dont_omit_empty=true on invalid (nil?) message field: %s", name) - } - //zv, found := aj.getZeroValue(f) - //if found { - // v = zv - //} else if f.Cardinality() == protoreflect.Repeated { - // //fmt.Printf("WARN: not supported: dont_omit_empty=true on empty repeated field: %s\n", name) - // //writeNil = true - //} else if f.Kind() == protoreflect.MessageKind && !v.Message().IsValid() { - // return errors.Errorf("not supported: dont_omit_empty=true on invalid (nil?) message field: %s", name) - // //fmt.Printf("WARN: not supported: dont_omit_empty=true on invalid (nil?) message field: %s\n", name) - //} + } else if f.Kind() == protoreflect.MessageKind && + f.Cardinality() != protoreflect.Repeated && + !v.Message().IsValid() { + return errors.Errorf("not supported: dont_omit_empty=true on invalid (nil?) message field: %s", name) } } @@ -257,6 +258,14 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e } } + if isOneOf && !writeNil { + _, err = writer.Write([]byte(fmt.Sprintf(`"%s":{"type":"%s","value":{`, + oneofFieldName, oneofTypeName))) + if err != nil { + return err + } + } + err = jsonMarshal(writer, name) if err != nil { return err @@ -285,6 +294,13 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e } } + if isOneOf && !writeNil { + _, err = writer.Write([]byte("}}")) + if err != nil { + return err + } + } + first = false } @@ -348,6 +364,7 @@ func omitEmpty(field protoreflect.FieldDescriptor) bool { //if field.ContainingOneof() != nil { // return false //} + // legacy support for gogoproto would need to look something like below. // // if gproto.GetBoolExtension(opts, gogoproto.E_Nullable, true) { @@ -364,6 +381,30 @@ func getFieldName(field protoreflect.FieldDescriptor) string { return string(field.Name()) } +func getOneOfNames(field protoreflect.FieldDescriptor) (string, string, error) { + opts := field.Options() + oneOf := field.ContainingOneof() + if oneOf == nil { + return "", "", errors.Errorf("field %s must be within a oneof", field.Name()) + } + oneOfOpts := oneOf.Options() + + var fieldName, typeName string + if proto.HasExtension(oneOfOpts, amino.E_OneofFieldName) { + fieldName = proto.GetExtension(oneOfOpts, amino.E_OneofFieldName).(string) + } else { + return "", "", errors.Errorf("oneof %s must have the amino.oneof_field_name option set", oneOf.Name()) + } + if proto.HasExtension(opts, amino.E_OneofTypeName) { + typeName = proto.GetExtension(opts, amino.E_OneofTypeName).(string) + } else { + return "", "", errors.Errorf("field %s within a oneof must have the amino.oneof_type_name option set", + field.Name()) + } + + return fieldName, typeName, nil +} + func (aj AminoJSON) getZeroValue(field protoreflect.FieldDescriptor) (protoreflect.Value, bool) { opts := field.Options() if proto.HasExtension(opts, cosmos_proto.E_Scalar) { From 30930d97e9e40886025b73fbb8dba8ed98fb6113 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 13 Feb 2023 12:16:48 -0700 Subject: [PATCH 075/122] upgrade module --- tests/integration/aminojson/aminojson_test.go | 12 +++++++++++- x/tx/aminojson/json_marshal.go | 2 +- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 27ddb8bde802..6aab53a8b172 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -2,6 +2,8 @@ package aminojson import ( "cosmossdk.io/api/cosmos/crypto/secp256k1" + "cosmossdk.io/x/upgrade" + upgradetypes "cosmossdk.io/x/upgrade/types" "fmt" groupmodule "github.com/cosmos/cosmos-sdk/x/group/module" "github.com/cosmos/cosmos-sdk/x/mint" @@ -37,6 +39,7 @@ import ( paramsapi "cosmossdk.io/api/cosmos/params/v1beta1" slashingapi "cosmossdk.io/api/cosmos/slashing/v1beta1" stakingapi "cosmossdk.io/api/cosmos/staking/v1beta1" + upgradeapi "cosmossdk.io/api/cosmos/upgrade/v1beta1" "cosmossdk.io/x/evidence" evidencetypes "cosmossdk.io/x/evidence/types" feegranttypes "cosmossdk.io/x/feegrant" @@ -249,6 +252,13 @@ var ( genType(&stakingtypes.MsgBeginRedelegate{}, &stakingapi.MsgBeginRedelegate{}, genOpts.WithDisallowNil()), genType(&stakingtypes.MsgUpdateParams{}, &stakingapi.MsgUpdateParams{}, genOpts.WithDisallowNil()), genType(&stakingtypes.StakeAuthorization{}, &stakingapi.StakeAuthorization{}, genOpts), + + // upgrade + genType(&upgradetypes.Plan{}, &upgradeapi.Plan{}, genOpts.WithDisallowNil()), + genType(&upgradetypes.SoftwareUpgradeProposal{}, &upgradeapi.SoftwareUpgradeProposal{}, genOpts.WithDisallowNil()), + genType(&upgradetypes.CancelSoftwareUpgradeProposal{}, &upgradeapi.CancelSoftwareUpgradeProposal{}, genOpts), + genType(&upgradetypes.MsgSoftwareUpgrade{}, &upgradeapi.MsgSoftwareUpgrade{}, genOpts.WithDisallowNil()), + genType(&upgradetypes.MsgCancelUpgrade{}, &upgradeapi.MsgCancelUpgrade{}, genOpts), } ) @@ -257,7 +267,7 @@ func TestAminoJSON_Equivalence(t *testing.T) { auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, consensus.AppModuleBasic{}, distribution.AppModuleBasic{}, evidence.AppModuleBasic{}, feegrantmodule.AppModuleBasic{}, gov.AppModuleBasic{}, groupmodule.AppModuleBasic{}, mint.AppModuleBasic{}, params.AppModuleBasic{}, - slashing.AppModuleBasic{}, staking.AppModuleBasic{}) + slashing.AppModuleBasic{}, staking.AppModuleBasic{}, upgrade.AppModuleBasic{}) aj := aminojson.NewAminoJSON() for _, tt := range genTypes { diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 25424f3af724..a2414972ccfe 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -227,7 +227,7 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e if !msg.Has(f) { // msg.WhichOneof(oneof) == nil: no field of the oneof has been set // !emptyOneOfWritten: we haven't written a null for this oneof yet (only write one null per empty oneof) - if isOneOf && msg.WhichOneof(oneof) == nil && emptyOneOfWritten[oneofFieldName] != true { + if isOneOf && msg.WhichOneof(oneof) == nil && !emptyOneOfWritten[oneofFieldName] { name = oneofFieldName writeNil = true emptyOneOfWritten[oneofFieldName] = true From 5f0db4d9d8181e851e00234de00455f227db4613 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 13 Feb 2023 13:43:36 -0700 Subject: [PATCH 076/122] vesting module --- api/cosmos/vesting/v1beta1/tx.pulsar.go | 199 ++++++++--------- api/cosmos/vesting/v1beta1/vesting.pulsar.go | 204 +++++++++--------- proto/cosmos/vesting/v1beta1/tx.proto | 4 +- proto/cosmos/vesting/v1beta1/vesting.proto | 4 + tests/integration/aminojson/aminojson_test.go | 26 ++- x/auth/vesting/types/tx.pb.go | 87 ++++---- x/auth/vesting/types/vesting.pb.go | 78 +++---- 7 files changed, 321 insertions(+), 281 deletions(-) diff --git a/api/cosmos/vesting/v1beta1/tx.pulsar.go b/api/cosmos/vesting/v1beta1/tx.pulsar.go index ef7ee1eaecf8..7df32383e855 100644 --- a/api/cosmos/vesting/v1beta1/tx.pulsar.go +++ b/api/cosmos/vesting/v1beta1/tx.pulsar.go @@ -3405,7 +3405,7 @@ var file_cosmos_vesting_v1beta1_tx_proto_rawDesc = []byte{ 0x61, 0x31, 0x2f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, - 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xec, 0x02, 0x0a, + 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x85, 0x03, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, @@ -3414,109 +3414,112 @@ var file_cosmos_vesting_v1beta1_tx_proto_rawDesc = []byte{ 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x68, + 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x80, + 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, + 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, + 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x3a, 0x3c, 0xe8, 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, + 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, + 0x2a, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd7, 0x02, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, + 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x0c, 0x66, + 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x17, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x66, 0x72, 0x6f, + 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x15, 0xf2, 0xde, 0x1f, + 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x22, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x3a, 0x3c, 0xe8, - 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x4d, - 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbe, - 0x02, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, - 0x6d, 0x6c, 0x3a, 0x22, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x22, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, - 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x15, 0xf2, 0xde, 0x1f, 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, 0x6f, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, - 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3f, - 0xe8, 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, - 0x72, 0x6d, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x29, 0x0a, 0x27, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9c, 0x02, 0x0a, 0x1f, 0x4d, - 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, - 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, - 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x52, 0x0a, 0x0f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, - 0x6f, 0x64, 0x73, 0x3a, 0x44, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, - 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x2a, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, + 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x3a, 0x3f, 0xe8, 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x50, 0x65, 0x72, 0x6d, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x29, 0x0a, 0x27, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, + 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x97, 0x02, 0x0a, + 0x1f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x73, 0x3a, 0x3f, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, + 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, + 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x56, 0x65, 0x73, 0x74, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x29, 0x0a, 0x27, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x29, 0x0a, 0x27, 0x4d, 0x73, 0x67, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xc5, 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x80, 0x01, 0x0a, - 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x32, 0xc5, 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x80, 0x01, 0x0a, 0x14, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, + 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, + 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x98, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, - 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, - 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x1c, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xd7, 0x01, 0x0a, - 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, - 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, - 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x56, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, - 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, + 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xd7, 0x01, 0x0a, 0x1a, 0x63, 0x6f, + 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, + 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x56, + 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x3a, 0x3a, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/vesting/v1beta1/vesting.pulsar.go b/api/cosmos/vesting/v1beta1/vesting.pulsar.go index b852cbc75308..da849a3ca6e3 100644 --- a/api/cosmos/vesting/v1beta1/vesting.pulsar.go +++ b/api/cosmos/vesting/v1beta1/vesting.pulsar.go @@ -3744,116 +3744,122 @@ var file_cosmos_vesting_v1beta1_vesting_proto_rawDesc = []byte{ 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x75, 0x74, - 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x97, 0x04, 0x0a, 0x12, 0x42, 0x61, 0x73, 0x65, + 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe2, 0x04, 0x0a, 0x12, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x0b, 0x62, 0x61, - 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x7b, 0x0a, 0x10, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, - 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x56, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x77, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, - 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x65, 0x65, 0x12, - 0x7d, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x26, 0x88, 0xa0, 0x1f, 0x00, 0x8a, - 0xe7, 0xb0, 0x2a, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, - 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xcb, 0x01, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, - 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, - 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, - 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x3a, 0x2c, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, - 0x73, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0xa6, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, + 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x93, 0x01, 0x0a, 0x10, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, + 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, + 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x8f, 0x01, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, + 0x65, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, + 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, + 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x65, + 0x65, 0x12, 0x95, 0x01, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, + 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, + 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x26, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x1d, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xcb, 0x01, 0x0a, + 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x29, 0x88, - 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, - 0x64, 0x6b, 0x2f, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x06, 0x50, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x68, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x02, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, - 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x09, 0xc8, 0xde, - 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, - 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, - 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, - 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, - 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, - 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0xdc, - 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x56, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x56, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x56, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x2c, 0x88, 0xa0, + 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x56, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x15, 0x44, + 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, + 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, + 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x29, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, + 0xb0, 0x2a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x44, 0x65, + 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, + 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, + 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x02, 0x0a, 0x16, 0x50, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, + 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, + 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x76, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, + 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x6d, + 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, + 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, + 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x6d, + 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x42, 0x0c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x56, 0x58, 0xaa, + 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, + 0x3a, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/vesting/v1beta1/tx.proto b/proto/cosmos/vesting/v1beta1/tx.proto index b159e83ef866..52f146d9d1f7 100644 --- a/proto/cosmos/vesting/v1beta1/tx.proto +++ b/proto/cosmos/vesting/v1beta1/tx.proto @@ -42,6 +42,7 @@ message MsgCreateVestingAccount { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -67,6 +68,7 @@ message MsgCreatePermanentLockedAccount { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -82,7 +84,7 @@ message MsgCreatePermanentLockedAccountResponse {} // Since: cosmos-sdk 0.46 message MsgCreatePeriodicVestingAccount { option (cosmos.msg.v1.signer) = "from_address"; - option (amino.name) = "cosmos-sdk/MsgCreatePeriodicVestingAccount"; + option (amino.name) = "cosmos-sdk/MsgCreatePeriodVestAccount"; option (gogoproto.equal) = false; diff --git a/proto/cosmos/vesting/v1beta1/vesting.proto b/proto/cosmos/vesting/v1beta1/vesting.proto index 88f6c7583855..c532c263fd65 100644 --- a/proto/cosmos/vesting/v1beta1/vesting.proto +++ b/proto/cosmos/vesting/v1beta1/vesting.proto @@ -18,16 +18,19 @@ message BaseVestingAccount { repeated cosmos.base.v1beta1.Coin original_vesting = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; repeated cosmos.base.v1beta1.Coin delegated_free = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; repeated cosmos.base.v1beta1.Coin delegated_vesting = 4 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; int64 end_time = 5; @@ -59,6 +62,7 @@ message Period { repeated cosmos.base.v1beta1.Coin amount = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 6aab53a8b172..a08a955fb680 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -5,6 +5,8 @@ import ( "cosmossdk.io/x/upgrade" upgradetypes "cosmossdk.io/x/upgrade/types" "fmt" + "github.com/cosmos/cosmos-sdk/x/auth/vesting" + vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" groupmodule "github.com/cosmos/cosmos-sdk/x/group/module" "github.com/cosmos/cosmos-sdk/x/mint" "github.com/cosmos/cosmos-sdk/x/params" @@ -40,6 +42,7 @@ import ( slashingapi "cosmossdk.io/api/cosmos/slashing/v1beta1" stakingapi "cosmossdk.io/api/cosmos/staking/v1beta1" upgradeapi "cosmossdk.io/api/cosmos/upgrade/v1beta1" + vestingapi "cosmossdk.io/api/cosmos/vesting/v1beta1" "cosmossdk.io/x/evidence" evidencetypes "cosmossdk.io/x/evidence/types" feegranttypes "cosmossdk.io/x/feegrant" @@ -259,6 +262,16 @@ var ( genType(&upgradetypes.CancelSoftwareUpgradeProposal{}, &upgradeapi.CancelSoftwareUpgradeProposal{}, genOpts), genType(&upgradetypes.MsgSoftwareUpgrade{}, &upgradeapi.MsgSoftwareUpgrade{}, genOpts.WithDisallowNil()), genType(&upgradetypes.MsgCancelUpgrade{}, &upgradeapi.MsgCancelUpgrade{}, genOpts), + + // vesting + genType(&vestingtypes.BaseVestingAccount{}, &vestingapi.BaseVestingAccount{}, genOpts.WithDisallowNil()), + genType(&vestingtypes.ContinuousVestingAccount{}, &vestingapi.ContinuousVestingAccount{}, genOpts.WithDisallowNil()), + genType(&vestingtypes.DelayedVestingAccount{}, &vestingapi.DelayedVestingAccount{}, genOpts.WithDisallowNil()), + genType(&vestingtypes.PeriodicVestingAccount{}, &vestingapi.PeriodicVestingAccount{}, genOpts.WithDisallowNil()), + genType(&vestingtypes.PermanentLockedAccount{}, &vestingapi.PermanentLockedAccount{}, genOpts.WithDisallowNil()), + genType(&vestingtypes.MsgCreateVestingAccount{}, &vestingapi.MsgCreateVestingAccount{}, genOpts), + genType(&vestingtypes.MsgCreatePermanentLockedAccount{}, &vestingapi.MsgCreatePermanentLockedAccount{}, genOpts), + genType(&vestingtypes.MsgCreatePeriodicVestingAccount{}, &vestingapi.MsgCreatePeriodicVestingAccount{}, genOpts), } ) @@ -267,7 +280,7 @@ func TestAminoJSON_Equivalence(t *testing.T) { auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, consensus.AppModuleBasic{}, distribution.AppModuleBasic{}, evidence.AppModuleBasic{}, feegrantmodule.AppModuleBasic{}, gov.AppModuleBasic{}, groupmodule.AppModuleBasic{}, mint.AppModuleBasic{}, params.AppModuleBasic{}, - slashing.AppModuleBasic{}, staking.AppModuleBasic{}, upgrade.AppModuleBasic{}) + slashing.AppModuleBasic{}, staking.AppModuleBasic{}, upgrade.AppModuleBasic{}, vesting.AppModuleBasic{}) aj := aminojson.NewAminoJSON() for _, tt := range genTypes { @@ -323,7 +336,8 @@ func newAny(t *testing.T, msg proto.Message) *anypb.Any { func TestAminoJSON_LegacyParity(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, - bank.AppModuleBasic{}, distribution.AppModuleBasic{}, slashing.AppModuleBasic{}, staking.AppModuleBasic{}) + bank.AppModuleBasic{}, distribution.AppModuleBasic{}, slashing.AppModuleBasic{}, staking.AppModuleBasic{}, + vesting.AppModuleBasic{}) aj := aminojson.NewAminoJSON() addr1 := types.AccAddress([]byte("addr1")) @@ -487,6 +501,14 @@ func TestAminoJSON_LegacyParity(t *testing.T) { AllowList: &stakingapi.StakeAuthorization_Validators{Address: []string{"foo"}}, }}, }, + "vesting/base_account_empty": { + gogo: &vestingtypes.BaseVestingAccount{BaseAccount: &authtypes.BaseAccount{}}, + pulsar: &vestingapi.BaseVestingAccount{BaseAccount: &authapi.BaseAccount{}}, + }, + "vesting/base_account_pubkey": { + gogo: &vestingtypes.BaseVestingAccount{BaseAccount: &authtypes.BaseAccount{PubKey: pubkeyAny}}, + pulsar: &vestingapi.BaseVestingAccount{BaseAccount: &authapi.BaseAccount{PubKey: pubkeyAnyPulsar}}, + }, } for name, tc := range cases { t.Run(name, func(t *testing.T) { diff --git a/x/auth/vesting/types/tx.pb.go b/x/auth/vesting/types/tx.pb.go index 0e6a9e277b62..4bb66e9a378e 100644 --- a/x/auth/vesting/types/tx.pb.go +++ b/x/auth/vesting/types/tx.pb.go @@ -381,49 +381,50 @@ func init() { func init() { proto.RegisterFile("cosmos/vesting/v1beta1/tx.proto", fileDescriptor_5338ca97811f9792) } var fileDescriptor_5338ca97811f9792 = []byte{ - // 661 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x95, 0xbf, 0x6f, 0xd3, 0x40, - 0x14, 0xc7, 0xe3, 0xba, 0xbf, 0x72, 0x45, 0xa0, 0x9a, 0x42, 0xdd, 0x88, 0xda, 0xa9, 0x05, 0x22, - 0x44, 0xaa, 0xad, 0x16, 0x50, 0xa5, 0x80, 0x54, 0x35, 0x65, 0x83, 0x4a, 0xc8, 0x20, 0x06, 0x96, - 0xc8, 0xb1, 0x0f, 0xd7, 0x6a, 0xed, 0x8b, 0x7c, 0x97, 0xaa, 0xd9, 0x2a, 0x46, 0x26, 0x46, 0x06, - 0x86, 0x8e, 0x88, 0x29, 0x03, 0x33, 0x1b, 0x52, 0xc7, 0x8a, 0x89, 0x29, 0xa0, 0x64, 0x48, 0x07, - 0xa6, 0xfe, 0x05, 0xc8, 0xbe, 0x73, 0x48, 0xc2, 0x39, 0x29, 0x2c, 0x2c, 0x71, 0x7c, 0xef, 0xfb, - 0x7d, 0xf7, 0xfc, 0x79, 0xf7, 0x6c, 0xa0, 0xda, 0x08, 0xfb, 0x08, 0x1b, 0x07, 0x10, 0x13, 0x2f, - 0x70, 0x8d, 0x83, 0xb5, 0x2a, 0x24, 0xd6, 0x9a, 0x41, 0x0e, 0xf5, 0x5a, 0x88, 0x08, 0x92, 0xae, - 0x53, 0x81, 0xce, 0x04, 0x3a, 0x13, 0xe4, 0x16, 0x5c, 0xe4, 0xa2, 0x58, 0x62, 0x44, 0xff, 0xa8, - 0x3a, 0xa7, 0xb0, 0x74, 0x55, 0x0b, 0xc3, 0x5e, 0x2e, 0x1b, 0x79, 0x01, 0x8b, 0x2f, 0xd1, 0x78, - 0x85, 0x1a, 0x59, 0x6a, 0x1a, 0xba, 0x99, 0x52, 0x49, 0xb2, 0x31, 0x55, 0x2d, 0x32, 0x95, 0x8f, - 0x23, 0x45, 0x74, 0x61, 0x81, 0x79, 0xcb, 0xf7, 0x02, 0x64, 0xc4, 0xbf, 0x74, 0x49, 0xfb, 0x39, - 0x01, 0x16, 0x77, 0xb0, 0xbb, 0x1d, 0x42, 0x8b, 0xc0, 0x17, 0x34, 0xcd, 0x96, 0x6d, 0xa3, 0x7a, - 0x40, 0xa4, 0x07, 0xe0, 0xd2, 0xab, 0x10, 0xf9, 0x15, 0xcb, 0x71, 0x42, 0x88, 0xb1, 0x2c, 0xe4, - 0x85, 0x42, 0xb6, 0x2c, 0x7f, 0xfd, 0xb4, 0xba, 0xc0, 0xaa, 0xda, 0xa2, 0x91, 0x67, 0x24, 0xf4, - 0x02, 0xd7, 0x9c, 0x8b, 0xd4, 0x6c, 0x49, 0xda, 0x00, 0x80, 0xa0, 0x9e, 0x75, 0x62, 0x8c, 0x35, - 0x4b, 0x50, 0x62, 0xdc, 0x05, 0xd3, 0x96, 0x1f, 0xed, 0x2f, 0x8b, 0x79, 0xb1, 0x30, 0xb7, 0xbe, - 0xa4, 0x33, 0x47, 0xc4, 0x2b, 0x41, 0xab, 0x6f, 0x23, 0x2f, 0x28, 0xdf, 0x3f, 0x69, 0xa9, 0x99, - 0x8f, 0xdf, 0xd5, 0x82, 0xeb, 0x91, 0xdd, 0x7a, 0x55, 0xb7, 0x91, 0xcf, 0x78, 0xb1, 0xcb, 0x2a, - 0x76, 0xf6, 0x0c, 0xd2, 0xa8, 0x41, 0x1c, 0x1b, 0xf0, 0x87, 0x6e, 0xb3, 0x28, 0x98, 0x2c, 0xbf, - 0xb4, 0x04, 0x66, 0x61, 0xe0, 0x54, 0x88, 0xe7, 0x43, 0x79, 0x32, 0x2f, 0x14, 0x44, 0x73, 0x06, - 0x06, 0xce, 0x73, 0xcf, 0x87, 0x92, 0x0c, 0x66, 0x1c, 0xb8, 0x6f, 0x35, 0xa0, 0x23, 0x4f, 0xe5, - 0x85, 0xc2, 0xac, 0x99, 0xdc, 0x96, 0x1e, 0x9e, 0x1d, 0xab, 0xc2, 0xeb, 0x6e, 0xb3, 0x38, 0xc0, - 0xe6, 0x4d, 0xb7, 0x59, 0xd4, 0xfa, 0xf6, 0x4c, 0x41, 0xaa, 0xad, 0x00, 0x35, 0x25, 0x64, 0x42, - 0x5c, 0x43, 0x01, 0x86, 0xda, 0xe7, 0x89, 0x3e, 0xcd, 0x53, 0x18, 0xfa, 0x56, 0x00, 0x03, 0xf2, - 0x04, 0xd9, 0x7b, 0xd0, 0x49, 0x3a, 0x53, 0xe2, 0x76, 0x66, 0xf1, 0xbc, 0xa5, 0x5e, 0x6d, 0x58, - 0xfe, 0x7e, 0x49, 0xeb, 0x8f, 0x6a, 0x83, 0x8d, 0xb9, 0xc7, 0x69, 0xcc, 0xb5, 0xf3, 0x96, 0x3a, - 0x4f, 0x9d, 0xbf, 0x63, 0xda, 0x7f, 0xe9, 0x4a, 0x69, 0x33, 0x15, 0xf0, 0x2d, 0x1e, 0xe0, 0x88, - 0xd0, 0x00, 0x1c, 0xed, 0x0e, 0xb8, 0x3d, 0x86, 0x5f, 0x8f, 0xf5, 0xfb, 0x21, 0xd6, 0x1e, 0x72, - 0x3c, 0x7b, 0x68, 0x0a, 0x56, 0x78, 0xac, 0x07, 0x91, 0x2e, 0xff, 0x89, 0xb4, 0x9f, 0xdd, 0x32, - 0x00, 0x98, 0x58, 0x21, 0xa1, 0x27, 0x4d, 0x8c, 0x4f, 0x5a, 0x36, 0x5e, 0x89, 0xcf, 0x9a, 0x09, - 0xae, 0xb0, 0xf9, 0xad, 0xd4, 0xe2, 0x12, 0xb0, 0x3c, 0x19, 0x33, 0x56, 0x74, 0xfe, 0x7b, 0x45, - 0xa7, 0x95, 0x96, 0xb3, 0x11, 0x68, 0x0a, 0xef, 0x32, 0x93, 0xd0, 0x08, 0x2e, 0x3d, 0x3a, 0x3b, - 0x56, 0x33, 0x5c, 0x88, 0xc5, 0x14, 0x88, 0x9c, 0x47, 0x1f, 0x26, 0xc9, 0x91, 0x24, 0x24, 0xd7, - 0xbf, 0x88, 0x40, 0xdc, 0xc1, 0xae, 0x74, 0x24, 0x80, 0x05, 0xee, 0xcb, 0xc4, 0x48, 0x7b, 0x98, - 0x94, 0x79, 0xc8, 0x6d, 0xfc, 0xa5, 0x21, 0x29, 0x45, 0x7a, 0x27, 0x80, 0x1b, 0x23, 0xa7, 0x67, - 0x7c, 0x66, 0xbe, 0x31, 0xb7, 0xf9, 0x8f, 0x46, 0x7e, 0x69, 0xbc, 0xc3, 0x76, 0xa1, 0xd2, 0x38, - 0xc6, 0x8b, 0x95, 0x36, 0xa2, 0x81, 0xb9, 0xa9, 0xa3, 0xe8, 0x20, 0x95, 0x1f, 0x9f, 0xb4, 0x15, - 0xe1, 0xb4, 0xad, 0x08, 0x3f, 0xda, 0x8a, 0xf0, 0xb6, 0xa3, 0x64, 0x4e, 0x3b, 0x4a, 0xe6, 0x5b, - 0x47, 0xc9, 0xbc, 0x5c, 0x1b, 0x39, 0xce, 0x87, 0x86, 0x55, 0x27, 0xbb, 0xbd, 0x0f, 0x53, 0x3c, - 0xdd, 0xd5, 0xe9, 0xf8, 0x1b, 0x73, 0xf7, 0x57, 0x00, 0x00, 0x00, 0xff, 0xff, 0x53, 0x83, 0x9d, - 0x65, 0x41, 0x07, 0x00, 0x00, + // 679 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0x3f, 0x6f, 0xd3, 0x4e, + 0x18, 0xc7, 0xe3, 0xba, 0xff, 0x72, 0xfd, 0xe9, 0x87, 0x9a, 0x16, 0xea, 0x46, 0xd4, 0x4e, 0x2d, + 0x10, 0x21, 0x52, 0x6d, 0xb5, 0x20, 0x55, 0x0a, 0x48, 0x55, 0xd3, 0x11, 0x2a, 0xa1, 0x80, 0x18, + 0x58, 0xac, 0x8b, 0x7d, 0xb8, 0xa7, 0xc6, 0x77, 0x91, 0xef, 0x52, 0x35, 0x5b, 0x85, 0xc4, 0xc2, + 0xc4, 0x06, 0x62, 0x62, 0x44, 0x4c, 0x19, 0x78, 0x0b, 0x48, 0x1d, 0x2b, 0x16, 0x98, 0x0a, 0x6a, + 0x87, 0x30, 0xf7, 0x15, 0x20, 0xfb, 0xce, 0x21, 0x29, 0x76, 0xff, 0x30, 0xb1, 0xd4, 0xcd, 0x3d, + 0xdf, 0xef, 0xe3, 0xc7, 0x9f, 0xe7, 0x79, 0x6c, 0x60, 0xb8, 0x94, 0x05, 0x94, 0xd9, 0x3b, 0x88, + 0x71, 0x4c, 0x7c, 0x7b, 0x67, 0xb9, 0x81, 0x38, 0x5c, 0xb6, 0xf9, 0xae, 0xd5, 0x0a, 0x29, 0xa7, + 0x85, 0x6b, 0x42, 0x60, 0x49, 0x81, 0x25, 0x05, 0xc5, 0x59, 0x9f, 0xfa, 0x34, 0x96, 0xd8, 0xd1, + 0x7f, 0x42, 0x5d, 0xd4, 0x65, 0xba, 0x06, 0x64, 0xa8, 0x9f, 0xcb, 0xa5, 0x98, 0xc8, 0xf8, 0xbc, + 0x88, 0x3b, 0xc2, 0x28, 0x53, 0x8b, 0xd0, 0x8d, 0x8c, 0x4a, 0x92, 0x1b, 0x0b, 0xd5, 0x9c, 0x54, + 0x05, 0x2c, 0x52, 0x44, 0x17, 0x19, 0x98, 0x86, 0x01, 0x26, 0xd4, 0x8e, 0xff, 0x8a, 0x23, 0xf3, + 0xa5, 0x0a, 0xe6, 0x36, 0x99, 0xbf, 0x11, 0x22, 0xc8, 0xd1, 0x53, 0x91, 0x66, 0xdd, 0x75, 0x69, + 0x9b, 0xf0, 0xc2, 0x3d, 0xf0, 0xdf, 0xf3, 0x90, 0x06, 0x0e, 0xf4, 0xbc, 0x10, 0x31, 0xa6, 0x29, + 0x25, 0xa5, 0x9c, 0xaf, 0x69, 0x5f, 0x3e, 0x2d, 0xcd, 0xca, 0xaa, 0xd6, 0x45, 0xe4, 0x31, 0x0f, + 0x31, 0xf1, 0xeb, 0x53, 0x91, 0x5a, 0x1e, 0x15, 0x56, 0x01, 0xe0, 0xb4, 0x6f, 0x1d, 0x39, 0xc7, + 0x9a, 0xe7, 0x34, 0x31, 0xee, 0x29, 0x60, 0x1c, 0x06, 0x51, 0x01, 0x9a, 0x5a, 0x52, 0xcb, 0x53, + 0x2b, 0xf3, 0x96, 0xb4, 0x44, 0xc0, 0x12, 0xb6, 0xd6, 0x06, 0xc5, 0xa4, 0xb6, 0xb9, 0x7f, 0x68, + 0xe4, 0x3e, 0x7e, 0x37, 0xca, 0x3e, 0xe6, 0x5b, 0xed, 0x86, 0xe5, 0xd2, 0x40, 0x02, 0x93, 0x97, + 0x25, 0xe6, 0x6d, 0xdb, 0xbc, 0xd3, 0x42, 0x2c, 0x36, 0xb0, 0x77, 0xbd, 0x6e, 0x65, 0x86, 0xb4, + 0x9b, 0x4d, 0x87, 0x35, 0xb1, 0x8b, 0x1c, 0xc8, 0x1c, 0x14, 0xb4, 0x78, 0xe7, 0x43, 0xaf, 0x5b, + 0x51, 0xea, 0xf2, 0xbe, 0x85, 0x79, 0x30, 0x89, 0x88, 0xe7, 0x70, 0x1c, 0x20, 0x6d, 0xb4, 0xa4, + 0x94, 0xd5, 0xfa, 0x04, 0x22, 0xde, 0x13, 0x1c, 0xa0, 0x82, 0x06, 0x26, 0x3c, 0xd4, 0x84, 0x1d, + 0xe4, 0x69, 0x63, 0x25, 0xa5, 0x3c, 0x59, 0x4f, 0x7e, 0x56, 0xef, 0xff, 0x7c, 0x6f, 0x28, 0x2f, + 0x7a, 0xdd, 0xca, 0x10, 0xb4, 0x57, 0xbd, 0x6e, 0xc5, 0x1c, 0xa8, 0x25, 0x83, 0xb5, 0xb9, 0x08, + 0x8c, 0x8c, 0x50, 0x1d, 0xb1, 0x16, 0x25, 0x0c, 0x99, 0x5f, 0x47, 0x06, 0x34, 0x8f, 0x50, 0x18, + 0x40, 0x82, 0x08, 0x7f, 0x48, 0xdd, 0x6d, 0xe4, 0x25, 0x2d, 0xab, 0xa6, 0xb6, 0x6c, 0xee, 0xe4, + 0xd0, 0x98, 0xe9, 0xc0, 0xa0, 0x59, 0x35, 0x07, 0xa3, 0xe6, 0x70, 0xc7, 0xee, 0xa6, 0x74, 0xec, + 0xea, 0xc9, 0xa1, 0x31, 0x2d, 0x9c, 0xbf, 0x63, 0xe6, 0xbf, 0xd5, 0xae, 0xea, 0x5a, 0x26, 0xf9, + 0x9b, 0x69, 0xe4, 0x23, 0x74, 0x43, 0xd4, 0xcc, 0xdb, 0xe0, 0xd6, 0x39, 0x60, 0xfb, 0x4d, 0x78, + 0x73, 0xaa, 0x09, 0x98, 0x7a, 0xd8, 0x3d, 0xb5, 0x37, 0x8b, 0x69, 0x4d, 0x18, 0x66, 0xbd, 0xf0, + 0x27, 0xeb, 0x41, 0xa8, 0x0b, 0x00, 0x30, 0x0e, 0x43, 0x2e, 0x46, 0x50, 0x8d, 0x47, 0x30, 0x1f, + 0x9f, 0xc4, 0x43, 0x58, 0x07, 0x57, 0xe4, 0xc6, 0x3b, 0xad, 0xb8, 0x04, 0xa6, 0x8d, 0xc6, 0xec, + 0x75, 0x2b, 0xfd, 0x4d, 0x64, 0x89, 0x4a, 0x6b, 0xf9, 0xa8, 0x01, 0x02, 0xde, 0xff, 0x52, 0x22, + 0x22, 0x2c, 0x86, 0x98, 0xbb, 0x14, 0x44, 0x4c, 0xbd, 0xe8, 0xc1, 0x33, 0x20, 0xa6, 0x80, 0x49, + 0x20, 0xae, 0x7c, 0x56, 0x81, 0xba, 0xc9, 0xfc, 0x68, 0x76, 0x66, 0x53, 0xdf, 0x3c, 0x76, 0xd6, + 0x73, 0x64, 0xec, 0x48, 0x71, 0xf5, 0x92, 0x86, 0xa4, 0x94, 0xc2, 0x5b, 0x05, 0x5c, 0x3f, 0x73, + 0xa3, 0xce, 0xcf, 0x9c, 0x6e, 0x2c, 0xae, 0xfd, 0xa5, 0x31, 0xbd, 0xb4, 0xb4, 0x39, 0xbb, 0x50, + 0x69, 0x29, 0xc6, 0x8b, 0x95, 0x76, 0x46, 0x03, 0x8b, 0x63, 0x7b, 0xd1, 0x0c, 0xd5, 0x1e, 0xec, + 0x1f, 0xe9, 0xca, 0xc1, 0x91, 0xae, 0xfc, 0x38, 0xd2, 0x95, 0xd7, 0xc7, 0x7a, 0xee, 0xe0, 0x58, + 0xcf, 0x7d, 0x3b, 0xd6, 0x73, 0xcf, 0x96, 0xcf, 0xdc, 0xf0, 0x5d, 0x1b, 0xb6, 0xf9, 0x56, 0xff, + 0x2b, 0x16, 0x2f, 0x7c, 0x63, 0x3c, 0xfe, 0x20, 0xdd, 0xf9, 0x15, 0x00, 0x00, 0xff, 0xff, 0xa3, + 0x43, 0xde, 0x6f, 0x6e, 0x07, 0x00, 0x00, } func (this *MsgCreateVestingAccount) Equal(that interface{}) bool { diff --git a/x/auth/vesting/types/vesting.pb.go b/x/auth/vesting/types/vesting.pb.go index f384d720038a..27cd62a7ee0c 100644 --- a/x/auth/vesting/types/vesting.pb.go +++ b/x/auth/vesting/types/vesting.pb.go @@ -300,44 +300,46 @@ func init() { } var fileDescriptor_89e80273ca606d6e = []byte{ - // 592 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0x3d, 0x6f, 0xd3, 0x40, - 0x18, 0xce, 0x25, 0x21, 0xd0, 0x0b, 0xf4, 0xc3, 0x2a, 0x51, 0x5a, 0xa9, 0x4e, 0x30, 0x08, 0x85, - 0x08, 0x6c, 0xa5, 0x88, 0x25, 0x1b, 0x29, 0x42, 0x42, 0x30, 0xa0, 0x08, 0x31, 0xb0, 0x44, 0x67, - 0xfb, 0x70, 0x4e, 0x8d, 0xef, 0x22, 0xdf, 0xa5, 0x50, 0x21, 0x76, 0xd4, 0x89, 0x8d, 0x81, 0x85, - 0x09, 0x55, 0x4c, 0xfd, 0x19, 0x95, 0x58, 0x32, 0x32, 0x15, 0x94, 0x0c, 0xfd, 0x1b, 0xc8, 0x77, - 0x67, 0x37, 0xca, 0x07, 0x5b, 0x2a, 0x96, 0xc4, 0xef, 0xc7, 0xbd, 0xcf, 0xf3, 0xbc, 0x7e, 0xac, - 0x83, 0x77, 0x3c, 0xc6, 0x43, 0xc6, 0x9d, 0x03, 0xcc, 0x05, 0xa1, 0x81, 0x73, 0xd0, 0x70, 0xb1, - 0x40, 0x8d, 0x24, 0xb6, 0xfb, 0x11, 0x13, 0xcc, 0x28, 0xa9, 0x2e, 0x3b, 0xc9, 0xea, 0xae, 0xed, - 0x0d, 0x14, 0x12, 0xca, 0x1c, 0xf9, 0xab, 0x5a, 0xb7, 0x37, 0x03, 0x16, 0x30, 0xf9, 0xe8, 0xc4, - 0x4f, 0x3a, 0x6b, 0x6a, 0x18, 0x17, 0x71, 0x9c, 0x62, 0x78, 0x8c, 0xd0, 0xa9, 0x3a, 0x1a, 0x88, - 0x6e, 0x5a, 0x8f, 0x03, 0x55, 0xb7, 0xbe, 0xe4, 0xa1, 0xd1, 0x42, 0x1c, 0xbf, 0x56, 0x04, 0x1e, - 0x7b, 0x1e, 0x1b, 0x50, 0x61, 0x3c, 0x83, 0xd7, 0xe3, 0x89, 0x1d, 0xa4, 0xe2, 0x32, 0xa8, 0x82, - 0x5a, 0x71, 0xb7, 0x6a, 0x6b, 0xba, 0x72, 0x80, 0x9e, 0x66, 0xc7, 0xc7, 0xf5, 0xb9, 0x56, 0x7e, - 0x78, 0x56, 0x01, 0xed, 0xa2, 0x7b, 0x91, 0x32, 0x3e, 0xc0, 0x75, 0x16, 0x91, 0x80, 0x50, 0xd4, - 0xeb, 0x68, 0x99, 0xe5, 0x6c, 0x35, 0x57, 0x2b, 0xee, 0x6e, 0x25, 0xe3, 0xe2, 0xf6, 0x74, 0xdc, - 0x1e, 0x23, 0xb4, 0xf5, 0xe8, 0xf4, 0xac, 0x92, 0xf9, 0xf1, 0xbb, 0x52, 0x0b, 0x88, 0xe8, 0x0e, - 0x5c, 0xdb, 0x63, 0xa1, 0xa3, 0x95, 0xa8, 0xbf, 0x07, 0xdc, 0xdf, 0x77, 0xc4, 0x61, 0x1f, 0x73, - 0x79, 0x80, 0x1f, 0x9f, 0x9f, 0xd4, 0x41, 0x7b, 0x2d, 0x41, 0xd2, 0x72, 0x8c, 0x77, 0x70, 0xd5, - 0xc7, 0x3d, 0x1c, 0x20, 0x81, 0xfd, 0xce, 0xdb, 0x08, 0xe3, 0x72, 0x6e, 0x49, 0xd0, 0x37, 0x52, - 0x9c, 0xa7, 0x11, 0xc6, 0xc6, 0x47, 0xb8, 0x71, 0x01, 0x9c, 0xc8, 0xce, 0x2f, 0x09, 0x7b, 0x3d, - 0x85, 0x4a, 0x74, 0x6f, 0xc1, 0x6b, 0x98, 0xfa, 0x1d, 0x41, 0x42, 0x5c, 0xbe, 0x52, 0x05, 0xb5, - 0x5c, 0xfb, 0x2a, 0xa6, 0xfe, 0x2b, 0x12, 0xe2, 0xe6, 0xdd, 0x4f, 0xdf, 0x2a, 0x99, 0xa3, 0xf3, - 0x93, 0xfa, 0xce, 0xc4, 0xc8, 0x59, 0x0b, 0x58, 0x3f, 0x01, 0x2c, 0xef, 0x31, 0x2a, 0x08, 0x1d, - 0xb0, 0x01, 0x9f, 0xf2, 0x87, 0x0b, 0x37, 0xa5, 0x3f, 0xb4, 0xb2, 0x29, 0x9f, 0xd4, 0xed, 0xf9, - 0xb6, 0xb6, 0x67, 0x61, 0xb4, 0x63, 0x0c, 0x77, 0xd6, 0x83, 0x3b, 0x10, 0x72, 0x81, 0x22, 0xa1, - 0x54, 0x64, 0xa5, 0x8a, 0x15, 0x99, 0x91, 0x3a, 0xee, 0x27, 0x3a, 0x6e, 0x4f, 0xe8, 0x58, 0x44, - 0xd8, 0xfa, 0x0e, 0xe0, 0xcd, 0x27, 0xb8, 0x87, 0x0e, 0xd3, 0x1d, 0x5d, 0xa2, 0x94, 0xe6, 0xbd, - 0x84, 0x6b, 0x75, 0x82, 0xeb, 0x5c, 0x3a, 0xd6, 0x11, 0x80, 0x85, 0x97, 0x38, 0x22, 0xcc, 0x37, - 0x4a, 0xb0, 0xd0, 0xc3, 0x34, 0x10, 0x5d, 0xc9, 0x25, 0xd7, 0xd6, 0x91, 0xd1, 0x85, 0x05, 0x14, - 0x4a, 0x8e, 0xcb, 0xfa, 0x8e, 0xf4, 0x7c, 0xeb, 0x6b, 0x16, 0x96, 0x14, 0x19, 0xe2, 0xfd, 0x77, - 0x0e, 0x30, 0xda, 0x70, 0x2d, 0x41, 0xef, 0x4b, 0x92, 0x5c, 0x7f, 0xdd, 0xe6, 0x22, 0x74, 0xa5, - 0xa5, 0xb5, 0x12, 0x6f, 0x45, 0x29, 0x5d, 0xd5, 0x2d, 0xaa, 0xc2, 0x9b, 0xf5, 0xe4, 0x4d, 0xdd, - 0x9a, 0xd8, 0xcf, 0xfc, 0x15, 0x58, 0xc7, 0x40, 0x6e, 0x27, 0x44, 0x14, 0x53, 0xf1, 0x82, 0x79, - 0xfb, 0xd8, 0xbf, 0x4c, 0x53, 0x2d, 0xa2, 0x3a, 0x87, 0x4f, 0xeb, 0xf9, 0xe9, 0xc8, 0x04, 0xc3, - 0x91, 0x09, 0xfe, 0x8c, 0x4c, 0xf0, 0x79, 0x6c, 0x66, 0x86, 0x63, 0x33, 0xf3, 0x6b, 0x6c, 0x66, - 0xde, 0x34, 0xfe, 0xe9, 0x8c, 0xf7, 0xfa, 0xe2, 0xd0, 0x97, 0x98, 0x34, 0x8a, 0x5b, 0x90, 0x57, - 0xc7, 0xc3, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x44, 0x3b, 0x1e, 0xcd, 0xe3, 0x06, 0x00, 0x00, + // 618 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0xcf, 0x8b, 0xd3, 0x40, + 0x14, 0xc7, 0x3b, 0xdb, 0xb5, 0xba, 0xb3, 0xba, 0x3f, 0xe2, 0xba, 0x74, 0x17, 0x36, 0xad, 0x51, + 0xa4, 0x16, 0x4d, 0xd8, 0xf5, 0xd6, 0x9b, 0x5d, 0x11, 0x44, 0x05, 0x29, 0xe2, 0xc1, 0x4b, 0x98, + 0x24, 0x63, 0x3a, 0x6c, 0x32, 0x53, 0x32, 0x93, 0xc5, 0xde, 0x3c, 0x8a, 0x17, 0x05, 0xf1, 0xa2, + 0x17, 0x41, 0x90, 0xc5, 0x53, 0xff, 0x8c, 0x05, 0x2f, 0x3d, 0x7a, 0x5a, 0xa5, 0x3d, 0xf4, 0xdf, + 0x90, 0x4c, 0x26, 0xd9, 0xd2, 0x1f, 0x1e, 0x8b, 0x97, 0x36, 0x33, 0xef, 0xcd, 0x7b, 0x9f, 0xef, + 0xeb, 0x37, 0x1d, 0x78, 0xd3, 0x65, 0x3c, 0x64, 0xdc, 0x3a, 0xc6, 0x5c, 0x10, 0xea, 0x5b, 0xc7, + 0xfb, 0x0e, 0x16, 0x68, 0x3f, 0x5b, 0x9b, 0x9d, 0x88, 0x09, 0xa6, 0x6d, 0xa7, 0x59, 0x66, 0xb6, + 0xab, 0xb2, 0x76, 0x37, 0x51, 0x48, 0x28, 0xb3, 0xe4, 0x67, 0x9a, 0xba, 0xbb, 0xe5, 0x33, 0x9f, + 0xc9, 0x47, 0x2b, 0x79, 0x52, 0xbb, 0xba, 0x6a, 0xe3, 0x20, 0x8e, 0xf3, 0x1e, 0x2e, 0x23, 0x74, + 0x22, 0x8e, 0x62, 0xd1, 0xce, 0xe3, 0xc9, 0x22, 0x8d, 0x1b, 0x83, 0x65, 0xa8, 0x35, 0x11, 0xc7, + 0x2f, 0x52, 0x80, 0xfb, 0xae, 0xcb, 0x62, 0x2a, 0xb4, 0x47, 0xf0, 0x72, 0x52, 0xd1, 0x46, 0xe9, + 0xba, 0x0c, 0xaa, 0xa0, 0xb6, 0x7a, 0x50, 0x35, 0x15, 0xae, 0x2c, 0xa0, 0xaa, 0x99, 0xc9, 0x71, + 0x75, 0xae, 0xb9, 0xdc, 0x3f, 0xab, 0x80, 0xd6, 0xaa, 0x73, 0xbe, 0xa5, 0x7d, 0x04, 0x70, 0x83, + 0x45, 0xc4, 0x27, 0x14, 0x05, 0xb6, 0xd2, 0x59, 0x5e, 0xaa, 0x16, 0x6b, 0xab, 0x07, 0x3b, 0x59, + 0xbd, 0x24, 0x3f, 0xaf, 0x77, 0xc8, 0x08, 0x6d, 0x3e, 0x3d, 0x3d, 0xab, 0x14, 0x7e, 0xfc, 0xae, + 0xd4, 0x7c, 0x22, 0xda, 0xb1, 0x63, 0xba, 0x2c, 0xb4, 0x94, 0x94, 0xf4, 0xeb, 0x2e, 0xf7, 0x8e, + 0x2c, 0xd1, 0xed, 0x60, 0x2e, 0x0f, 0xf0, 0xcf, 0xa3, 0x5e, 0xfd, 0x2a, 0x8d, 0x83, 0xc0, 0xe6, + 0x01, 0x71, 0xb1, 0x8d, 0xb8, 0x8d, 0xc3, 0x8e, 0xe8, 0x9e, 0x8c, 0x7a, 0x75, 0xd0, 0x5a, 0xcf, + 0x08, 0x94, 0x4e, 0xed, 0x3d, 0x80, 0x6b, 0x1e, 0x0e, 0xb0, 0x8f, 0x04, 0xf6, 0xec, 0x57, 0x11, + 0xc6, 0xe5, 0xe2, 0x82, 0x99, 0xae, 0xe4, 0xfd, 0x1f, 0x46, 0x18, 0x6b, 0x9f, 0x00, 0xdc, 0x3c, + 0x27, 0xca, 0x06, 0xb5, 0xbc, 0x60, 0xa8, 0x8d, 0x1c, 0x21, 0x9b, 0xd4, 0x0e, 0xbc, 0x84, 0xa9, + 0x67, 0x0b, 0x12, 0xe2, 0xf2, 0x85, 0x2a, 0xa8, 0x15, 0x5b, 0x17, 0x31, 0xf5, 0x9e, 0x93, 0x10, + 0x37, 0x6e, 0xbd, 0xfd, 0x5a, 0x29, 0xbc, 0x1b, 0xf5, 0xea, 0x7b, 0x63, 0xad, 0xa6, 0xdd, 0x64, + 0xfc, 0x04, 0xb0, 0x7c, 0xc8, 0xa8, 0x20, 0x34, 0x66, 0x31, 0x9f, 0xb0, 0x9a, 0x03, 0xb7, 0xa4, + 0xd5, 0x94, 0xe2, 0x09, 0xcb, 0xd5, 0xcd, 0xd9, 0x6f, 0x88, 0x39, 0xdd, 0x46, 0x99, 0x4f, 0x73, + 0xa6, 0xed, 0xbc, 0x07, 0x21, 0x17, 0x28, 0x12, 0xa9, 0x8a, 0x25, 0xa9, 0x62, 0x45, 0xee, 0x48, + 0x1d, 0x77, 0x32, 0x1d, 0x37, 0xc6, 0x74, 0xcc, 0x03, 0x36, 0xbe, 0x03, 0x78, 0xed, 0x01, 0x0e, + 0x50, 0x37, 0x9f, 0xd1, 0x02, 0xa5, 0x34, 0x6e, 0x67, 0xac, 0xd5, 0x31, 0xd6, 0x99, 0x38, 0xc6, + 0x37, 0x00, 0x4b, 0xcf, 0x70, 0x44, 0x98, 0xa7, 0x6d, 0xc3, 0x52, 0x80, 0xa9, 0x2f, 0xda, 0x92, + 0xa5, 0xd8, 0x52, 0x2b, 0xed, 0x0d, 0x80, 0x25, 0x14, 0x4a, 0xc8, 0x45, 0xbf, 0x92, 0xaa, 0xaf, + 0xf1, 0x65, 0x09, 0x6e, 0xa7, 0x94, 0xc4, 0xfd, 0xef, 0xac, 0xa1, 0xb5, 0xe0, 0x7a, 0xd6, 0xbd, + 0x23, 0x21, 0xb9, 0xfa, 0x9f, 0xd0, 0xe7, 0x75, 0x4f, 0xb5, 0x34, 0x57, 0x92, 0x69, 0xa5, 0x4a, + 0xd7, 0x54, 0x4a, 0x1a, 0xe1, 0x8d, 0x7a, 0xf6, 0x13, 0x5e, 0x1f, 0x9b, 0xdb, 0xec, 0x11, 0x18, + 0x27, 0x40, 0x4e, 0x27, 0x44, 0x14, 0x53, 0xf1, 0x84, 0xb9, 0x47, 0xd8, 0x5b, 0xa4, 0xdb, 0xe6, + 0xa1, 0xce, 0xe0, 0x69, 0x3e, 0x3e, 0x1d, 0xe8, 0xa0, 0x3f, 0xd0, 0xc1, 0x9f, 0x81, 0x0e, 0x3e, + 0x0c, 0xf5, 0x42, 0x7f, 0xa8, 0x17, 0x7e, 0x0d, 0xf5, 0xc2, 0xcb, 0xfd, 0x7f, 0x3a, 0xe6, 0xb5, + 0xba, 0x9c, 0xd4, 0x45, 0x29, 0x0d, 0xe4, 0x94, 0xe4, 0xf5, 0x74, 0xef, 0x6f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xe6, 0x60, 0xfb, 0xe0, 0x47, 0x07, 0x00, 0x00, } func (m *BaseVestingAccount) Marshal() (dAtA []byte, err error) { From 732bcafde4b280d8516ddc8abaad2ad04f0ddb58 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 13 Feb 2023 13:45:51 -0700 Subject: [PATCH 077/122] remove embedded handling --- proto/amino/amino.proto | 6 +-- x/tx/aminojson/json_marshal.go | 85 ---------------------------------- 2 files changed, 2 insertions(+), 89 deletions(-) diff --git a/proto/amino/amino.proto b/proto/amino/amino.proto index 991b8817bb03..55c6ff20e2a8 100644 --- a/proto/amino/amino.proto +++ b/proto/amino/amino.proto @@ -77,11 +77,9 @@ extend google.protobuf.FieldOptions { // out == {"baz":""} bool dont_omitempty = 11110005; - bool embed = 11110006; - - string oneof_type_name = 11110007; + string oneof_type_name = 11110006; } extend google.protobuf.OneofOptions { - string oneof_field_name = 11110008; + string oneof_field_name = 11110007; } \ No newline at end of file diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index a2414972ccfe..7d6e98a89cc6 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -125,65 +125,6 @@ func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { } } -// TODO -// merge with marshalMessage or if embed ends up not being needed delete it. -func (aj AminoJSON) marshalEmbedded(msg protoreflect.Message, writer io.Writer) (bool, error) { - fields := msg.Descriptor().Fields() - first := true - wrote := false - for i := 0; i < fields.Len(); i++ { - f := fields.Get(i) - v := msg.Get(f) - name := getFieldName(f) - - if !msg.Has(f) { - if omitEmpty(f) { - continue - } else { - zv, found := aj.getZeroValue(f) - if found { - v = zv - } - } - } - - if !first { - _, err := writer.Write([]byte(",")) - if err != nil { - return wrote, err - } - } - - err := jsonMarshal(writer, name) - wrote = true - if err != nil { - return wrote, err - } - - _, err = writer.Write([]byte(":")) - if err != nil { - return wrote, err - } - - // encode value - if encoder := aj.getFieldEncoding(f); encoder != nil { - err = encoder(aj, v, writer) - if err != nil { - return wrote, err - } - } else { - err = aj.marshal(v, writer) - if err != nil { - return wrote, err - } - } - - first = false - } - - return wrote, nil -} - func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) error { if msg == nil { return errors.New("nil message") @@ -240,17 +181,6 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e } } - if isFieldEmbedded(v, f) { - wrote, err := aj.marshalEmbedded(v.Message(), writer) - if err != nil { - return err - } - if wrote { - first = false - } - continue - } - if !first { _, err = writer.Write([]byte(",")) if err != nil { @@ -427,21 +357,6 @@ func (aj AminoJSON) getMessageEncoder(message protoreflect.Message) MessageEncod return nil } -func isFieldEmbedded(fieldValue protoreflect.Value, field protoreflect.FieldDescriptor) bool { - opts := field.Options() - if proto.HasExtension(opts, amino.E_Embed) { - embedded := proto.GetExtension(opts, amino.E_Embed).(bool) - switch fieldValue.Interface().(type) { - case protoreflect.Message: - return embedded - default: - fmt.Printf("WARN: field %s is not a message, but has the embedded option set to true. Ignoring option.\n", field.Name()) - return false - } - } - return false -} - func (aj AminoJSON) getFieldEncoding(field protoreflect.FieldDescriptor) FieldEncoder { opts := field.Options() if proto.HasExtension(opts, amino.E_Encoding) { From 54ee03dd18932ffcf0cc480a006f87c3f4248ecf Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 13 Feb 2023 13:47:46 -0700 Subject: [PATCH 078/122] rm defunct tests --- tests/integration/aminojson/clone.go | 289 ---------------------- tests/integration/aminojson/clone_test.go | 85 ------- 2 files changed, 374 deletions(-) delete mode 100644 tests/integration/aminojson/clone.go delete mode 100644 tests/integration/aminojson/clone_test.go diff --git a/tests/integration/aminojson/clone.go b/tests/integration/aminojson/clone.go deleted file mode 100644 index dfe783341516..000000000000 --- a/tests/integration/aminojson/clone.go +++ /dev/null @@ -1,289 +0,0 @@ -package aminojson - -import ( - "fmt" - "reflect" - "strings" - "testing" - "time" - - gogoproto "github.com/cosmos/gogoproto/proto" - "github.com/stretchr/testify/require" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoregistry" - "google.golang.org/protobuf/types/known/anypb" - "google.golang.org/protobuf/types/known/timestamppb" - "pgregory.net/rapid" - - authapi "cosmossdk.io/api/cosmos/auth/v1beta1" - authzapi "cosmossdk.io/api/cosmos/authz/v1beta1" - "cosmossdk.io/x/tx/rapidproto" - codectypes "github.com/cosmos/cosmos-sdk/codec/types" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" - authztypes "github.com/cosmos/cosmos-sdk/x/authz" -) - -type typeUnderTest struct { - gogo gogoproto.Message - pulsar proto.Message -} - -type typeIndex struct { - gogoFields map[string]map[string]reflect.StructField - pulsarFields map[string]map[string]reflect.StructField - pulsarToGogo map[string]string -} - -func fqTypeName(msg any) string { - return fullyQualifiedTypeName(reflect.TypeOf(msg).Elem()) -} - -func fullyQualifiedTypeName(typ reflect.Type) string { - pkgType := typ - if typ.Kind() == reflect.Pointer || typ.Kind() == reflect.Slice || typ.Kind() == reflect.Map || typ.Kind() == reflect.Array { - pkgType = typ.Elem() - } - pkgPath := pkgType.PkgPath() - if pkgPath == "" { - return fmt.Sprintf("%v", typ) - } - - return fmt.Sprintf("%s/%v", pkgPath, typ) -} - -func newTypeIndex(types []typeUnderTest) typeIndex { - ti := typeIndex{ - gogoFields: make(map[string]map[string]reflect.StructField), - pulsarFields: make(map[string]map[string]reflect.StructField), - pulsarToGogo: make(map[string]string), - } - for _, t := range types { - gogoType := reflect.TypeOf(t.gogo).Elem() - pulsarType := reflect.TypeOf(t.pulsar).Elem() - - ti.gogoFields[fqTypeName(t.gogo)] = make(map[string]reflect.StructField) - ti.pulsarFields[fqTypeName(t.pulsar)] = make(map[string]reflect.StructField) - ti.pulsarToGogo[fqTypeName(t.pulsar)] = fqTypeName(t.gogo) - - for i := 0; i < gogoType.NumField(); i++ { - field := gogoType.Field(i) - tag := field.Tag.Get("protobuf") - if tag == "" { - continue - } - n := strings.Split(tag, ",")[3] - name := strings.Split(n, "=")[1] - - ti.gogoFields[fqTypeName(t.gogo)][name] = gogoType.Field(i) - } - for i := 0; i < pulsarType.NumField(); i++ { - field := pulsarType.Field(i) - tag := field.Tag.Get("protobuf") - if tag == "" { - continue - } - n := strings.Split(tag, ",")[3] - name := strings.Split(n, "=")[1] - ti.pulsarFields[fqTypeName(t.pulsar)][name] = pulsarType.Field(i) - } - } - - return ti -} - -func (ti typeIndex) reflectedDeepClone(pulsar reflect.Value, gogo reflect.Value) { - pulsarTypeName := fullyQualifiedTypeName(pulsar.Type()) - gogoTypeName := fullyQualifiedTypeName(gogo.Type()) - structFields, found := ti.pulsarFields[pulsarTypeName] - if !found { - panic(fmt.Sprintf("no pulsar fields for type %s", pulsarTypeName)) - } - for n, pStructField := range structFields { - gStructField := ti.gogoFields[gogoTypeName][n] - pulsarField := pulsar.FieldByName(pStructField.Name) - // todo init a new "gogo" since its nil - gogoField := gogo.FieldByName(gStructField.Name) - if !gogoField.IsValid() { - gogoField = reflect.New(gStructField.Type) - gogo.FieldByName(gStructField.Name).Set(gogoField) - } - //fmt.Printf("copying %s to %s\n", pStructField.Name, gStructField.Name) - ti.setField(pulsarField, gogoField) - } -} - -func (ti typeIndex) deepClone(pulsar proto.Message, gogo gogoproto.Message) { - pulsarTypeName := fqTypeName(pulsar) - gogoTypeName := fqTypeName(gogo) - structFields, found := ti.pulsarFields[pulsarTypeName] - if !found { - panic(fmt.Sprintf("no pulsar fields for type %s", pulsarTypeName)) - } - for n, pStructField := range structFields { - gStructField := ti.gogoFields[gogoTypeName][n] - pulsarField := reflect.ValueOf(pulsar).Elem().FieldByName(pStructField.Name) - gogoField := reflect.ValueOf(gogo).Elem().FieldByName(gStructField.Name) - //fmt.Printf("copying %s to %s\n", pStructField.Name, gStructField.Name) - ti.setField(pulsarField, gogoField) - } -} - -func (ti typeIndex) setField(pulsar reflect.Value, gogo reflect.Value) { - switch pulsar.Type().Kind() { - case reflect.Ptr: - if !gogo.IsValid() { - fmt.Printf("gogo field is invalid; gogo: %v\n", gogo) - } - if gogo.Type().Kind() != reflect.Ptr && gogo.Type().Kind() != reflect.Struct { - panic(fmt.Sprintf("gogo field is not a pointer; pulsar: %s, gogo: %s", pulsar.Type(), gogo.Type())) - } - if pulsar.IsNil() { - return - } - ti.setField(pulsar.Elem(), gogo) - //panic(fmt.Sprintf("pointer not supported: %s", pulsar.Type())) - case reflect.Struct: - switch val := pulsar.Interface().(type) { - case anypb.Any: - //codectypes.NewAnyWithValue(val.Value) - a := &codectypes.Any{ - TypeUrl: val.TypeUrl, - Value: val.Value, - } - gogo.Set(reflect.ValueOf(a)) - case timestamppb.Timestamp: - // will panic if field is not of type *time.Time, hopefully it is. - t := time.Unix(val.Seconds, int64(val.Nanos)) - gogo.Set(reflect.ValueOf(&t)) - default: - if gogo.Type().Kind() == reflect.Ptr { - gogoType := gogo.Type().Elem() - newGogo := reflect.New(gogoType) - gogo.Set(newGogo) - ti.reflectedDeepClone(pulsar, gogo.Elem()) - } else { - gogoType := gogo.Type() - newGogo := reflect.New(gogoType).Elem() - gogo.Set(newGogo) - ti.reflectedDeepClone(pulsar, gogo) - } - } - case reflect.Slice: - // if slices are different types then we need to create a new slice - if pulsar.Type().Elem() != gogo.Type().Elem() { - gogoSlice := reflect.MakeSlice(gogo.Type(), 0, 0) - gogoType := gogoSlice.Type().Elem() - for i := 0; i < pulsar.Len(); i++ { - p := pulsar.Index(i) - g := reflect.New(gogoType).Elem() - ti.setField(p, g) - gogoSlice = reflect.Append(gogoSlice, g) - } - gogo.Set(gogoSlice) - return - } - // otherwise we can just copy the slice - fallthrough - default: - if pulsar.IsZero() { - return - } - gogo.Set(pulsar) - } -} - -func newGogoMessage(t reflect.Type) gogoproto.Message { - msg := reflect.New(t).Interface() - switch msg.(type) { - case *authtypes.ModuleAccount: - return &authtypes.ModuleAccount{BaseAccount: &authtypes.BaseAccount{}} - default: - return msg.(gogoproto.Message) - } -} - -func TestDeepClone(t *testing.T) { - ti := newTypeIndex(msgTypes) - //tt := msgTypes[0] - var anyTypeURLs []string - for _, msgType := range msgTypes { - anyTypeURLs = append(anyTypeURLs, string(msgType.pulsar.ProtoReflect().Descriptor().FullName())) - } - - for _, tt := range msgTypes { - fmt.Printf("testing %s\n", tt.pulsar.ProtoReflect().Descriptor().FullName()) - gen := rapidproto.MessageGenerator(tt.pulsar, rapidproto.GeneratorOptions{ - AnyTypeURLs: anyTypeURLs, - Resolver: protoregistry.GlobalTypes, - }) - - rapid.Check(t, func(rt *rapid.T) { - msg := gen.Draw(rt, "msg").(proto.Message) - //fmt.Printf("msg %v\n", msg) - goMsg := reflect.New(reflect.TypeOf(tt.gogo).Elem()).Interface().(gogoproto.Message) - //fmt.Println("clone") - ti.deepClone(msg, goMsg) - //fmt.Println("assert") - //ti.assertEquals(t, msg, goMsg) - }) - } -} - -func (ti typeIndex) assertEquals(t *testing.T, pulsar proto.Message, gogo gogoproto.Message) { - for n, pStructField := range ti.pulsarFields[fqTypeName(pulsar)] { - gStructField := ti.gogoFields[fqTypeName(gogo)][n] - pulsarField := reflect.ValueOf(pulsar).Elem().FieldByName(pStructField.Name) - gogoField := reflect.ValueOf(gogo).Elem().FieldByName(gStructField.Name) - ti.assertFieldEquals(t, pulsarField, gogoField) - } -} - -func (ti typeIndex) assertFieldEquals(t *testing.T, pulsarField reflect.Value, gogoField reflect.Value) { - switch pulsarField.Type().Kind() { - case reflect.Ptr: - if gogoField.Type().Kind() != reflect.Ptr && gogoField.Type().Kind() != reflect.Struct { - panic(fmt.Sprintf("gogo field is not a pointer; pulsar: %s", pulsarField.Type())) - } - if pulsarField.IsNil() { - if gogoField.Type().Kind() == reflect.Struct { - // TODO rewrite comparison as hash concatenation to avoid this hack and potential bug - return - } else if !gogoField.IsNil() { - println("failing") - require.Fail(t, "pulsar field is nil, but gogo field is not") - } else { - // both nil, return - return - } - } - // otherwise recurse - ti.assertFieldEquals(t, pulsarField.Elem(), gogoField.Elem()) - //panic(fmt.Sprintf("pointer not supported: %s", pulsarField.Type())) - case reflect.Struct: - - default: - require.Equal(t, pulsarField.Interface(), gogoField.Interface()) - } -} - -var msgTypes = []typeUnderTest{ - // auth - {gogo: &authtypes.Params{}, pulsar: &authapi.Params{}}, - {gogo: &authtypes.BaseAccount{}, pulsar: &authapi.BaseAccount{}}, - - // omitted from the test because of the custom MarshalJSON. It is tested separately. Pulsar types - // may be generated with data which is invalid for the gogo type, but valid for the pulsar type. - {gogo: &authtypes.ModuleAccount{}, pulsar: &authapi.ModuleAccount{}}, - - // missing name extension, do we need it? - // {gogo: &authtypes.ModuleCredential{}, pulsar: &authapi.ModuleCredential{}}, - - {gogo: &authtypes.MsgUpdateParams{}, pulsar: &authapi.MsgUpdateParams{}}, - - // authz - {gogo: &authztypes.Grant{}, pulsar: &authzapi.Grant{}}, - {gogo: &authztypes.MsgGrant{}, pulsar: &authzapi.MsgGrant{}}, - {gogo: &authztypes.MsgRevoke{}, pulsar: &authzapi.MsgRevoke{}}, - {gogo: &authztypes.MsgExec{}, pulsar: &authzapi.MsgExec{}}, - {gogo: &authztypes.GenericAuthorization{}, pulsar: &authzapi.GenericAuthorization{}}, -} diff --git a/tests/integration/aminojson/clone_test.go b/tests/integration/aminojson/clone_test.go deleted file mode 100644 index 77c69eea6a3a..000000000000 --- a/tests/integration/aminojson/clone_test.go +++ /dev/null @@ -1,85 +0,0 @@ -package aminojson - -import ( - "bytes" - "fmt" - "reflect" - "testing" - - "github.com/stretchr/testify/require" - goamino "github.com/tendermint/go-amino" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoregistry" - "pgregory.net/rapid" - - "cosmossdk.io/api/amino" - authapi "cosmossdk.io/api/cosmos/auth/v1beta1" - "cosmossdk.io/x/tx/aminojson" - "cosmossdk.io/x/tx/rapidproto" - authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" -) - -func Test_newGogoMessage(t *testing.T) { - ma := &authtypes.ModuleAccount{} - rma := newGogoMessage(reflect.TypeOf(ma).Elem()) - require.NotPanics(t, func() { - x := rma.(*authtypes.ModuleAccount) - require.NotNil(t, x.Address) - }) -} - -func TestTypeIndex(t *testing.T) { - ti := newTypeIndex(msgTypes) - require.Equal(t, len(msgTypes), len(ti.gogoFields)) - require.Equal(t, len(msgTypes), len(ti.pulsarFields)) - for k, v := range ti.pulsarFields { - require.Equal(t, len(v), len(ti.gogoFields[ti.pulsarToGogo[k]]), "failed on type: %s", k) - } -} - -func TestAminoJSON_AllTypes(t *testing.T) { - ti := newTypeIndex(msgTypes) - cdc := goamino.NewCodec() - aj := aminojson.NewAminoJSON() - for _, tt := range msgTypes { - desc := tt.pulsar.ProtoReflect().Descriptor() - opts := desc.Options() - if !proto.HasExtension(opts, amino.E_Name) { - fmt.Printf("WARN: missing name extension for %s", desc.FullName()) - continue - } - name := proto.GetExtension(opts, amino.E_Name).(string) - cdc.RegisterConcrete(tt.gogo, name, nil) - } - - params := &authapi.Params{} - genOpts := rapidproto.GeneratorOptions{ - AnyTypeURLs: []string{string(params.ProtoReflect().Descriptor().FullName())}, - Resolver: protoregistry.GlobalTypes, - } - - for _, tt := range msgTypes { - gen := rapidproto.MessageGenerator(tt.pulsar, genOpts) - fmt.Printf("testing %s\n", tt.pulsar.ProtoReflect().Descriptor().FullName()) - rapid.Check(t, func(t *rapid.T) { - defer func() { - if r := recover(); r != nil { - fmt.Printf("Panic: %+v\n", r) - t.FailNow() - } - }() - msg := gen.Draw(t, "msg") - postFixPulsarMessage(msg) - //goMsg := reflect.New(reflect.TypeOf(tt.gogo).Elem()).Interface().(gogoproto.Message) - goMsg := newGogoMessage(reflect.TypeOf(tt.gogo).Elem()) - ti.deepClone(msg, goMsg) - gogobz, err := cdc.MarshalJSON(goMsg) - require.NoError(t, err, "failed to marshal gogo message") - pulsarbz, err := aj.MarshalAmino(msg) - if !bytes.Equal(gogobz, pulsarbz) { - require.Fail(t, fmt.Sprintf("marshalled messages not equal, are the unmarshalled messages semantically equivalent?\nmarshalled gogo: %s != %s\nunmarshalled gogo: %v vs %v", string(gogobz), string(pulsarbz), goMsg, msg)) - } - require.Equal(t, string(gogobz), string(pulsarbz)) - }) - } -} From 144df3169dc1b791e0d3ad41cfc4ad46625e6e6f Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 13 Feb 2023 13:56:14 -0700 Subject: [PATCH 079/122] merge, go.mod --- tests/go.mod | 3 ++- tests/go.sum | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/go.mod b/tests/go.mod index e721a47b3e3c..6c88f462b687 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -12,6 +12,7 @@ require ( cosmossdk.io/x/evidence v0.1.0 cosmossdk.io/x/feegrant v0.0.0-20230117113717-50e7c4a4ceff cosmossdk.io/x/nft v0.0.0-20230113085233-fae3332d62fc + cosmossdk.io/x/tx v0.2.0 cosmossdk.io/x/upgrade v0.0.0-20230127052425-54c8e1568335 github.com/cometbft/cometbft v0.0.0-20230203130311-387422ac220d github.com/cosmos/cosmos-db v1.0.0-rc.1 @@ -37,7 +38,6 @@ require ( cosmossdk.io/collections v0.0.0-20230204135315-697871069999 // indirect cosmossdk.io/core v0.5.1 // indirect cosmossdk.io/errors v1.0.0-beta.7 // indirect - cosmossdk.io/x/tx v0.2.0 // indirect filippo.io/edwards25519 v1.0.0-rc.1 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect @@ -191,6 +191,7 @@ replace ( cosmossdk.io/x/evidence => ../x/evidence cosmossdk.io/x/feegrant => ../x/feegrant cosmossdk.io/x/nft => ../x/nft + cosmossdk.io/x/tx => ../x/tx cosmossdk.io/x/upgrade => ../x/upgrade // This can be deleted after the CometBFT PR is merged github.com/cometbft/cometbft => github.com/cometbft/cometbft v0.0.0-20230203130311-387422ac220d diff --git a/tests/go.sum b/tests/go.sum index 650a4bb9853a..518ee73919db 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -62,8 +62,6 @@ cosmossdk.io/math v1.0.0-beta.6 h1:WF29SiFYNde5eYvqO2kdOM9nYbDb44j3YW5B8M1m9KE= cosmossdk.io/math v1.0.0-beta.6/go.mod h1:gUVtWwIzfSXqcOT+lBVz2jyjfua8DoBdzRsIyaUAT/8= cosmossdk.io/store v0.0.0-20230206092147-e03195e4b8a7 h1:IwyDN/YaQmF+Pmuv8d7vRWMM/k2RjSmPBycMcmd3ICE= cosmossdk.io/store v0.0.0-20230206092147-e03195e4b8a7/go.mod h1:1XOtuYs7jsfQkn7G3VQXB6I+2tHXKHZw2U/AafNbnlk= -cosmossdk.io/x/tx v0.2.0 h1:53f5TIXhpPYJGMm47SUslcV2i8JNBEN3eE08BmxE/Zg= -cosmossdk.io/x/tx v0.2.0/go.mod h1:CTko7wgt7aBdbxOesZ+Wo1uO/03ueKzIQ0iI323Rqgk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= From 8960d4300bae88f73eb1e6f4356af38cdd3dd519 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 13 Feb 2023 14:01:24 -0700 Subject: [PATCH 080/122] rm defunct option --- proto/cosmos/auth/v1beta1/auth.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/proto/cosmos/auth/v1beta1/auth.proto b/proto/cosmos/auth/v1beta1/auth.proto index cde750f561ed..2a55265a9ef4 100644 --- a/proto/cosmos/auth/v1beta1/auth.proto +++ b/proto/cosmos/auth/v1beta1/auth.proto @@ -36,7 +36,7 @@ message ModuleAccount { option (gogoproto.goproto_getters) = false; option (cosmos_proto.implements_interface) = "cosmos.auth.v1beta1.ModuleAccountI"; - BaseAccount base_account = 1 [(gogoproto.embed) = true, (amino.embed) = true]; + BaseAccount base_account = 1 [(gogoproto.embed) = true]; string name = 2 [(amino.dont_omitempty) = true]; repeated string permissions = 3 [(amino.dont_omitempty) = true]; } From 721d30a9a5197d395ea3daf6f737709e0cf646b3 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 13 Feb 2023 14:49:18 -0700 Subject: [PATCH 081/122] clean up module account proto --- api/amino/amino.pulsar.go | 79 +- api/cosmos/auth/v1beta1/auth.pulsar.go | 113 +- api/cosmos/staking/v1beta1/authz.pulsar.go | 6 +- proto/cosmos/auth/v1beta1/auth.proto | 4 +- types/tx/amino/amino.pb.go | 63 +- x/auth/types/auth.pb.go | 95 +- x/staking/types/authz.pb.go | 64 +- x/staking/types/staking.pb.go | 1335 ++++++++++---------- 8 files changed, 865 insertions(+), 894 deletions(-) diff --git a/api/amino/amino.pulsar.go b/api/amino/amino.pulsar.go index 13550ec7b68d..74e13c0f9f2a 100644 --- a/api/amino/amino.pulsar.go +++ b/api/amino/amino.pulsar.go @@ -62,28 +62,20 @@ var file_amino_amino_proto_extTypes = []protoimpl.ExtensionInfo{ Tag: "varint,11110005,opt,name=dont_omitempty", Filename: "amino/amino.proto", }, - { - ExtendedType: (*descriptorpb.FieldOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 11110006, - Name: "amino.embed", - Tag: "varint,11110006,opt,name=embed", - Filename: "amino/amino.proto", - }, { ExtendedType: (*descriptorpb.FieldOptions)(nil), ExtensionType: (*string)(nil), - Field: 11110007, + Field: 11110006, Name: "amino.oneof_type_name", - Tag: "bytes,11110007,opt,name=oneof_type_name", + Tag: "bytes,11110006,opt,name=oneof_type_name", Filename: "amino/amino.proto", }, { ExtendedType: (*descriptorpb.OneofOptions)(nil), ExtensionType: (*string)(nil), - Field: 11110008, + Field: 11110007, Name: "amino.oneof_field_name", - Tag: "bytes,11110008,opt,name=oneof_field_name", + Tag: "bytes,11110007,opt,name=oneof_field_name", Filename: "amino/amino.proto", }, } @@ -165,16 +157,14 @@ var ( // // optional bool dont_omitempty = 11110005; E_DontOmitempty = &file_amino_amino_proto_extTypes[4] - // optional bool embed = 11110006; - E_Embed = &file_amino_amino_proto_extTypes[5] - // optional string oneof_type_name = 11110007; - E_OneofTypeName = &file_amino_amino_proto_extTypes[6] + // optional string oneof_type_name = 11110006; + E_OneofTypeName = &file_amino_amino_proto_extTypes[5] ) // Extension fields to descriptorpb.OneofOptions. var ( - // optional string oneof_field_name = 11110008; - E_OneofFieldName = &file_amino_amino_proto_extTypes[7] + // optional string oneof_field_name = 11110007; + E_OneofFieldName = &file_amino_amino_proto_extTypes[6] ) var File_amino_amino_proto protoreflect.FileDescriptor @@ -204,27 +194,23 @@ var file_amino_amino_proto_rawDesc = []byte{ 0x6d, 0x70, 0x74, 0x79, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf5, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x6f, - 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x36, 0x0a, 0x05, 0x65, - 0x6d, 0x62, 0x65, 0x64, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0xf6, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x65, 0x6d, - 0x62, 0x65, 0x64, 0x3a, 0x48, 0x0a, 0x0f, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf7, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x54, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x4a, 0x0a, - 0x10, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0xf8, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x6e, 0x65, 0x6f, 0x66, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x63, 0x0a, 0x09, 0x63, 0x6f, 0x6d, - 0x2e, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x42, 0x0a, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, - 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0xa2, 0x02, 0x03, 0x41, - 0x58, 0x58, 0xaa, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0xca, 0x02, 0x05, 0x41, 0x6d, 0x69, - 0x6e, 0x6f, 0xe2, 0x02, 0x11, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x48, 0x0a, 0x0f, 0x6f, + 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf6, 0x8c, + 0xa6, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x54, 0x79, 0x70, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x4a, 0x0a, 0x10, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, + 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf7, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, + 0x65, 0x42, 0x63, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x42, 0x0a, + 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, + 0x6d, 0x69, 0x6e, 0x6f, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x05, 0x41, 0x6d, 0x69, + 0x6e, 0x6f, 0xca, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0xe2, 0x02, 0x11, 0x41, 0x6d, 0x69, + 0x6e, 0x6f, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_amino_amino_proto_goTypes = []interface{}{ @@ -238,13 +224,12 @@ var file_amino_amino_proto_depIdxs = []int32{ 1, // 2: amino.encoding:extendee -> google.protobuf.FieldOptions 1, // 3: amino.field_name:extendee -> google.protobuf.FieldOptions 1, // 4: amino.dont_omitempty:extendee -> google.protobuf.FieldOptions - 1, // 5: amino.embed:extendee -> google.protobuf.FieldOptions - 1, // 6: amino.oneof_type_name:extendee -> google.protobuf.FieldOptions - 2, // 7: amino.oneof_field_name:extendee -> google.protobuf.OneofOptions - 8, // [8:8] is the sub-list for method output_type - 8, // [8:8] is the sub-list for method input_type - 8, // [8:8] is the sub-list for extension type_name - 0, // [0:8] is the sub-list for extension extendee + 1, // 5: amino.oneof_type_name:extendee -> google.protobuf.FieldOptions + 2, // 6: amino.oneof_field_name:extendee -> google.protobuf.OneofOptions + 7, // [7:7] is the sub-list for method output_type + 7, // [7:7] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 0, // [0:7] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } @@ -260,7 +245,7 @@ func file_amino_amino_proto_init() { RawDescriptor: file_amino_amino_proto_rawDesc, NumEnums: 0, NumMessages: 0, - NumExtensions: 8, + NumExtensions: 7, NumServices: 0, }, GoTypes: file_amino_amino_proto_goTypes, diff --git a/api/cosmos/auth/v1beta1/auth.pulsar.go b/api/cosmos/auth/v1beta1/auth.pulsar.go index e16a204fd6da..d0ae8ddf2524 100644 --- a/api/cosmos/auth/v1beta1/auth.pulsar.go +++ b/api/cosmos/auth/v1beta1/auth.pulsar.go @@ -2648,66 +2648,65 @@ var file_cosmos_auth_v1beta1_auth_proto_rawDesc = []byte{ 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, - 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xff, 0x01, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, - 0x75, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x4e, 0x0a, 0x0c, 0x62, 0x61, + 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xec, 0x01, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, + 0x75, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0x09, 0xd0, 0xde, 0x1f, 0x01, 0xb0, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x62, - 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x05, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x42, 0x05, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x5a, - 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x92, 0xe7, 0xb0, 0x2a, 0x0e, 0x6d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x4d, - 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, - 0x1f, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x27, 0x0a, 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, - 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x64, 0x65, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x26, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x22, 0xd7, 0x02, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x13, - 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x4d, 0x65, - 0x6d, 0x6f, 0x43, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0c, - 0x74, 0x78, 0x5f, 0x73, 0x69, 0x67, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x04, 0x52, 0x0a, 0x74, 0x78, 0x53, 0x69, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x30, - 0x0a, 0x15, 0x74, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x70, - 0x65, 0x72, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x74, - 0x78, 0x53, 0x69, 0x7a, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x50, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, - 0x12, 0x4f, 0x0a, 0x17, 0x73, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x63, - 0x6f, 0x73, 0x74, 0x5f, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x18, 0xe2, 0xde, 0x1f, 0x14, 0x53, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, - 0x43, 0x6f, 0x73, 0x74, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x52, 0x14, 0x73, 0x69, 0x67, - 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, - 0x39, 0x12, 0x55, 0x0a, 0x19, 0x73, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, - 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x04, 0x42, 0x1a, 0xe2, 0xde, 0x1f, 0x16, 0x53, 0x69, 0x67, 0x56, 0x65, 0x72, - 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, - 0x52, 0x16, 0x73, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x53, - 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x3a, 0x21, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, - 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, - 0x61, 0x75, 0x74, 0x68, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xc4, 0x01, 0x0a, 0x17, - 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, - 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, - 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, 0x58, 0xaa, 0x02, 0x13, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, - 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x0b, 0x62, 0x61, 0x73, 0x65, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, + 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x5a, 0x88, 0xa0, 0x1f, + 0x00, 0xca, 0xb4, 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x92, 0xe7, 0xb0, 0x2a, 0x0e, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x10, 0x4d, 0x6f, 0x64, 0x75, + 0x6c, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, + 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x27, 0x0a, + 0x0f, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0e, 0x64, 0x65, 0x72, 0x69, 0x76, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4b, 0x65, 0x79, 0x73, 0x3a, 0x26, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x22, 0xd7, + 0x02, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6d, 0x61, 0x78, + 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x6d, 0x61, 0x78, 0x4d, 0x65, 0x6d, 0x6f, 0x43, + 0x68, 0x61, 0x72, 0x61, 0x63, 0x74, 0x65, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x78, 0x5f, + 0x73, 0x69, 0x67, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x74, 0x78, 0x53, 0x69, 0x67, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x30, 0x0a, 0x15, 0x74, + 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x5f, + 0x62, 0x79, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x11, 0x74, 0x78, 0x53, 0x69, + 0x7a, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x50, 0x65, 0x72, 0x42, 0x79, 0x74, 0x65, 0x12, 0x4f, 0x0a, + 0x17, 0x73, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, + 0x5f, 0x65, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x42, 0x18, + 0xe2, 0xde, 0x1f, 0x14, 0x53, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, + 0x74, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x52, 0x14, 0x73, 0x69, 0x67, 0x56, 0x65, 0x72, + 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x45, 0x64, 0x32, 0x35, 0x35, 0x31, 0x39, 0x12, 0x55, + 0x0a, 0x19, 0x73, 0x69, 0x67, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x79, 0x5f, 0x63, 0x6f, 0x73, + 0x74, 0x5f, 0x73, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x1a, 0xe2, 0xde, 0x1f, 0x16, 0x53, 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, + 0x43, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x63, 0x70, 0x32, 0x35, 0x36, 0x6b, 0x31, 0x52, 0x16, 0x73, + 0x69, 0x67, 0x56, 0x65, 0x72, 0x69, 0x66, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x53, 0x65, 0x63, 0x70, + 0x32, 0x35, 0x36, 0x6b, 0x31, 0x3a, 0x21, 0xe8, 0xa0, 0x1f, 0x01, 0x8a, 0xe7, 0xb0, 0x2a, 0x18, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x61, 0x75, 0x74, + 0x68, 0x2f, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0xc4, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x41, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, + 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x41, + 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x3a, 0x3a, 0x41, 0x75, 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/staking/v1beta1/authz.pulsar.go b/api/cosmos/staking/v1beta1/authz.pulsar.go index 5e1edd095e4d..f4c7cbf4b6db 100644 --- a/api/cosmos/staking/v1beta1/authz.pulsar.go +++ b/api/cosmos/staking/v1beta1/authz.pulsar.go @@ -1430,7 +1430,7 @@ var file_cosmos_staking_v1beta1_authz_proto_rawDesc = []byte{ 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x2c, 0xba, 0xe7, 0xb0, 0x2a, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x42, 0x2c, 0xb2, 0xe7, 0xb0, 0x2a, 0x27, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, @@ -1439,7 +1439,7 @@ var file_cosmos_staking_v1beta1_authz_proto_rawDesc = []byte{ 0x6f, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, - 0x42, 0x2b, 0xba, 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x42, 0x2b, 0xb2, 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x44, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x00, 0x52, 0x08, 0x64, 0x65, 0x6e, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x58, 0x0a, 0x12, 0x61, 0x75, 0x74, @@ -1457,7 +1457,7 @@ var file_cosmos_staking_v1beta1_authz_proto_rawDesc = []byte{ 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x8a, 0xe7, 0xb0, 0x2a, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x0f, 0xc2, + 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x0f, 0xba, 0xe7, 0xb0, 0x2a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2a, 0x9e, 0x01, 0x0a, 0x11, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, diff --git a/proto/cosmos/auth/v1beta1/auth.proto b/proto/cosmos/auth/v1beta1/auth.proto index 2a55265a9ef4..bcac98314597 100644 --- a/proto/cosmos/auth/v1beta1/auth.proto +++ b/proto/cosmos/auth/v1beta1/auth.proto @@ -37,8 +37,8 @@ message ModuleAccount { option (cosmos_proto.implements_interface) = "cosmos.auth.v1beta1.ModuleAccountI"; BaseAccount base_account = 1 [(gogoproto.embed) = true]; - string name = 2 [(amino.dont_omitempty) = true]; - repeated string permissions = 3 [(amino.dont_omitempty) = true]; + string name = 2; + repeated string permissions = 3; } // ModuleCredential represents a unclaimable pubkey for base accounts controlled by modules. diff --git a/types/tx/amino/amino.pb.go b/types/tx/amino/amino.pb.go index cbbf149a6040..75973e8e8ad7 100644 --- a/types/tx/amino/amino.pb.go +++ b/types/tx/amino/amino.pb.go @@ -66,30 +66,21 @@ var E_DontOmitempty = &proto.ExtensionDesc{ Filename: "amino/amino.proto", } -var E_Embed = &proto.ExtensionDesc{ - ExtendedType: (*descriptorpb.FieldOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 11110006, - Name: "amino.embed", - Tag: "varint,11110006,opt,name=embed", - Filename: "amino/amino.proto", -} - var E_OneofTypeName = &proto.ExtensionDesc{ ExtendedType: (*descriptorpb.FieldOptions)(nil), ExtensionType: (*string)(nil), - Field: 11110007, + Field: 11110006, Name: "amino.oneof_type_name", - Tag: "bytes,11110007,opt,name=oneof_type_name", + Tag: "bytes,11110006,opt,name=oneof_type_name", Filename: "amino/amino.proto", } var E_OneofFieldName = &proto.ExtensionDesc{ ExtendedType: (*descriptorpb.OneofOptions)(nil), ExtensionType: (*string)(nil), - Field: 11110008, + Field: 11110007, Name: "amino.oneof_field_name", - Tag: "bytes,11110008,opt,name=oneof_field_name", + Tag: "bytes,11110007,opt,name=oneof_field_name", Filename: "amino/amino.proto", } @@ -99,7 +90,6 @@ func init() { proto.RegisterExtension(E_Encoding) proto.RegisterExtension(E_FieldName) proto.RegisterExtension(E_DontOmitempty) - proto.RegisterExtension(E_Embed) proto.RegisterExtension(E_OneofTypeName) proto.RegisterExtension(E_OneofFieldName) } @@ -107,27 +97,26 @@ func init() { func init() { proto.RegisterFile("amino/amino.proto", fileDescriptor_115c1f70afec6bc5) } var fileDescriptor_115c1f70afec6bc5 = []byte{ - // 345 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcd, 0x4a, 0xf3, 0x40, - 0x18, 0x46, 0x1b, 0xf8, 0xfa, 0xd1, 0x0e, 0xf4, 0xc7, 0xae, 0x44, 0x30, 0x76, 0x29, 0x88, 0xc9, - 0x42, 0xe8, 0x22, 0x08, 0x82, 0xd0, 0x2a, 0x42, 0x2d, 0x14, 0x57, 0x6e, 0x42, 0x93, 0xbc, 0x8d, - 0x83, 0x9d, 0x79, 0x87, 0xce, 0x14, 0xec, 0x3d, 0xb8, 0xf0, 0x2a, 0xbc, 0x16, 0x97, 0x5d, 0xba, - 0x94, 0xf6, 0x0a, 0xfc, 0x77, 0x29, 0x99, 0xc9, 0x74, 0x23, 0x18, 0x37, 0x09, 0x09, 0xe7, 0x9c, - 0xf0, 0x0c, 0x21, 0x1b, 0x23, 0x46, 0x39, 0xfa, 0xfa, 0xea, 0x89, 0x29, 0x2a, 0x6c, 0x95, 0xf5, - 0xc3, 0x56, 0x3b, 0x45, 0x4c, 0x27, 0xe0, 0xeb, 0x97, 0xd1, 0x6c, 0xec, 0x27, 0x20, 0xe3, 0x29, - 0x15, 0x0a, 0xa7, 0x06, 0x0c, 0x3a, 0xe4, 0x1f, 0x1f, 0x31, 0x68, 0xed, 0x78, 0x06, 0xf5, 0x2c, - 0xea, 0xf5, 0x41, 0xca, 0x51, 0x0a, 0x03, 0xa1, 0x28, 0x72, 0xb9, 0xf9, 0x7c, 0x7b, 0x5f, 0x6e, - 0x3b, 0xbb, 0xd5, 0xa1, 0xe6, 0x83, 0x3e, 0x69, 0x32, 0x03, 0x84, 0xc0, 0x63, 0x4c, 0x28, 0x4f, - 0x8b, 0x1b, 0x2f, 0xb6, 0xd1, 0xc8, 0xdd, 0x6e, 0xae, 0x06, 0x87, 0xa4, 0xb2, 0xce, 0x6c, 0xff, - 0xc8, 0xf4, 0x28, 0x4c, 0x12, 0x1b, 0x79, 0xb5, 0x91, 0xb5, 0x11, 0x1c, 0x11, 0x32, 0xce, 0x90, - 0x50, 0x4f, 0x29, 0xf0, 0xdf, 0xac, 0x5f, 0xd5, 0xce, 0x79, 0xb6, 0xe6, 0x84, 0xd4, 0x13, 0xe4, - 0x2a, 0x44, 0x46, 0x15, 0x30, 0xa1, 0xe6, 0x45, 0x91, 0x77, 0x13, 0xa9, 0x0c, 0x6b, 0x99, 0x37, - 0xb0, 0x5a, 0xd0, 0x21, 0x65, 0x60, 0x11, 0x24, 0x45, 0xfe, 0x87, 0xf5, 0x0d, 0x1e, 0x9c, 0x92, - 0x06, 0x72, 0xc0, 0x71, 0xa8, 0xe6, 0x02, 0xfe, 0x34, 0xe3, 0xd3, 0xce, 0xa8, 0x69, 0xf1, 0x62, - 0x2e, 0x40, 0x4f, 0x39, 0x23, 0x4d, 0x53, 0xfa, 0xf5, 0x44, 0x06, 0x19, 0x62, 0x53, 0x5f, 0x36, - 0x55, 0xd7, 0x66, 0xcf, 0x1e, 0xcb, 0x71, 0xf7, 0x61, 0xe9, 0x3a, 0x8b, 0xa5, 0xeb, 0x3c, 0x2d, - 0x5d, 0xe7, 0x6e, 0xe5, 0x96, 0x16, 0x2b, 0xb7, 0xf4, 0xb8, 0x72, 0x4b, 0x97, 0x7b, 0x29, 0x55, - 0x57, 0xb3, 0xc8, 0x8b, 0x91, 0xf9, 0x31, 0x4a, 0x86, 0x32, 0xbf, 0xed, 0xcb, 0xe4, 0xda, 0xcf, - 0x46, 0x48, 0x5f, 0xdd, 0x98, 0x5f, 0x32, 0xfa, 0xaf, 0x3f, 0x7b, 0xf0, 0x1d, 0x00, 0x00, 0xff, - 0xff, 0x03, 0x89, 0x6e, 0x4d, 0xa8, 0x02, 0x00, 0x00, + // 333 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcb, 0x4a, 0x33, 0x31, + 0x18, 0x86, 0x3b, 0xf0, 0xf7, 0xa7, 0x0d, 0xf4, 0x60, 0x57, 0x22, 0x18, 0xbb, 0x14, 0xc4, 0xc9, + 0x42, 0x70, 0x31, 0x08, 0x82, 0xd0, 0x2a, 0x42, 0x2d, 0x14, 0x57, 0x6e, 0x86, 0x76, 0x26, 0x1d, + 0x83, 0x4d, 0xbe, 0xd0, 0xa4, 0x60, 0xef, 0xc1, 0x85, 0x57, 0xe1, 0xb5, 0xb8, 0xec, 0xd2, 0xa5, + 0xcc, 0x5c, 0x81, 0xe7, 0xad, 0x4c, 0x32, 0xe9, 0x46, 0x70, 0xdc, 0x24, 0x24, 0xbc, 0xcf, 0x93, + 0xef, 0x85, 0xa0, 0x8d, 0x31, 0x67, 0x02, 0x88, 0x59, 0x7d, 0x39, 0x07, 0x0d, 0x9d, 0xaa, 0x39, + 0x6c, 0x75, 0x13, 0x80, 0x64, 0x46, 0x89, 0xb9, 0x9c, 0x2c, 0xa6, 0x24, 0xa6, 0x2a, 0x9a, 0x33, + 0xa9, 0x61, 0x6e, 0x83, 0xc1, 0x21, 0xfa, 0x27, 0xc6, 0x9c, 0x76, 0x76, 0x7c, 0x1b, 0xf5, 0x5d, + 0xd4, 0x1f, 0x50, 0xa5, 0xc6, 0x09, 0x1d, 0x4a, 0xcd, 0x40, 0xa8, 0xcd, 0x97, 0xbb, 0x87, 0x6a, + 0xd7, 0xdb, 0xad, 0x8f, 0x4c, 0x3e, 0x18, 0xa0, 0x36, 0xb7, 0x81, 0x90, 0x8a, 0x08, 0x62, 0x26, + 0x92, 0x72, 0xc7, 0xab, 0x73, 0xb4, 0x0a, 0xb6, 0x57, 0xa0, 0xc1, 0x11, 0xaa, 0xad, 0x35, 0xdb, + 0x3f, 0x34, 0x7d, 0x46, 0x67, 0xb1, 0x93, 0xbc, 0x39, 0xc9, 0x9a, 0x08, 0x8e, 0x11, 0x9a, 0xe6, + 0x91, 0xd0, 0x54, 0x29, 0xe1, 0xdf, 0x1d, 0x5f, 0x37, 0xcc, 0x45, 0xde, 0xe6, 0x14, 0x35, 0x63, + 0x10, 0x3a, 0x04, 0xce, 0x34, 0xe5, 0x52, 0x2f, 0xcb, 0x24, 0x1f, 0x56, 0x52, 0x1b, 0x35, 0x72, + 0x6e, 0xe8, 0xb0, 0xe0, 0x0c, 0xb5, 0x40, 0x50, 0x98, 0x86, 0x7a, 0x29, 0xe9, 0x9f, 0xc6, 0xf9, + 0x74, 0xe3, 0x34, 0x0c, 0x78, 0xb9, 0x94, 0xd4, 0x8c, 0x74, 0x8e, 0xda, 0xd6, 0xf4, 0x6b, 0xb3, + 0x61, 0x1e, 0x71, 0xaa, 0x2f, 0xa7, 0x6a, 0x1a, 0xb2, 0xef, 0xea, 0x9d, 0xf4, 0x1e, 0x53, 0xec, + 0xad, 0x52, 0xec, 0x3d, 0xa7, 0xd8, 0xbb, 0xcf, 0x70, 0x65, 0x95, 0xe1, 0xca, 0x53, 0x86, 0x2b, + 0x57, 0x7b, 0x09, 0xd3, 0xd7, 0x8b, 0x89, 0x1f, 0x01, 0x27, 0x11, 0x28, 0x0e, 0xaa, 0xd8, 0xf6, + 0x55, 0x7c, 0x43, 0xf2, 0x12, 0x8a, 0xe8, 0x5b, 0xfb, 0xb5, 0x26, 0xff, 0xcd, 0xb3, 0x07, 0xdf, + 0x01, 0x00, 0x00, 0xff, 0xff, 0x13, 0xb1, 0xdc, 0x29, 0x70, 0x02, 0x00, 0x00, } diff --git a/x/auth/types/auth.pb.go b/x/auth/types/auth.pb.go index 4c870906ebe8..1dd471249d75 100644 --- a/x/auth/types/auth.pb.go +++ b/x/auth/types/auth.pb.go @@ -254,54 +254,53 @@ func init() { func init() { proto.RegisterFile("cosmos/auth/v1beta1/auth.proto", fileDescriptor_7e1f7e915d020d2d) } var fileDescriptor_7e1f7e915d020d2d = []byte{ - // 740 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x54, 0x41, 0x6f, 0xe3, 0x44, - 0x18, 0x8d, 0x93, 0x6c, 0x97, 0x4e, 0xba, 0x85, 0x7a, 0x43, 0x71, 0x23, 0x14, 0x67, 0x23, 0xc1, - 0x86, 0x88, 0xda, 0x24, 0xa8, 0x48, 0xe4, 0x56, 0x07, 0x84, 0x50, 0x69, 0xa9, 0x1c, 0xd1, 0x43, - 0x2f, 0xd6, 0xd8, 0x99, 0xba, 0xa3, 0x66, 0x3c, 0xc6, 0x33, 0xae, 0xe2, 0x9e, 0x39, 0x54, 0x9c, - 0x10, 0xbf, 0xa0, 0x70, 0xe2, 0x98, 0x43, 0x7f, 0x04, 0xe2, 0x54, 0x71, 0x81, 0x53, 0x84, 0xd2, - 0x43, 0x2a, 0xfe, 0x04, 0xc8, 0x33, 0x4e, 0x93, 0x74, 0x73, 0x89, 0x32, 0xef, 0xbd, 0xef, 0xfb, - 0xde, 0xf7, 0x3c, 0x36, 0xa8, 0x7a, 0x94, 0x11, 0xca, 0x4c, 0x18, 0xf3, 0x73, 0xf3, 0xb2, 0xe5, - 0x22, 0x0e, 0x5b, 0xe2, 0x60, 0x84, 0x11, 0xe5, 0x54, 0x7d, 0x29, 0x79, 0x43, 0x40, 0x19, 0x5f, - 0xd9, 0x82, 0x04, 0x07, 0xd4, 0x14, 0xbf, 0x52, 0x57, 0xd9, 0x91, 0x3a, 0x47, 0x9c, 0xcc, 0xac, - 0x48, 0x52, 0x65, 0x9f, 0xfa, 0x54, 0xe2, 0xe9, 0xbf, 0x59, 0x81, 0x4f, 0xa9, 0x3f, 0x40, 0xa6, - 0x38, 0xb9, 0xf1, 0x99, 0x09, 0x83, 0x44, 0x52, 0xf5, 0x5f, 0xf2, 0xa0, 0x64, 0x41, 0x86, 0xf6, - 0x3d, 0x8f, 0xc6, 0x01, 0x57, 0xdb, 0xe0, 0x39, 0xec, 0xf7, 0x23, 0xc4, 0x98, 0xa6, 0xd4, 0x94, - 0xc6, 0xba, 0xa5, 0xfd, 0x79, 0xbb, 0x5b, 0xce, 0x66, 0xec, 0x4b, 0xa6, 0xc7, 0x23, 0x1c, 0xf8, - 0xf6, 0x4c, 0xa8, 0x9e, 0x80, 0xe7, 0x61, 0xec, 0x3a, 0x17, 0x28, 0xd1, 0xf2, 0x35, 0xa5, 0x51, - 0x6a, 0x97, 0x0d, 0x39, 0xd0, 0x98, 0x0d, 0x34, 0xf6, 0x83, 0xc4, 0x7a, 0xfd, 0xef, 0x58, 0x2f, - 0x87, 0xb1, 0x3b, 0xc0, 0x5e, 0xaa, 0xfd, 0x98, 0x12, 0xcc, 0x11, 0x09, 0x79, 0xf2, 0xeb, 0x74, - 0xd4, 0x04, 0x73, 0xc2, 0x5e, 0x0b, 0x63, 0xf7, 0x00, 0x25, 0xea, 0x07, 0x60, 0x13, 0x4a, 0x5b, - 0x4e, 0x10, 0x13, 0x17, 0x45, 0x5a, 0xa1, 0xa6, 0x34, 0x8a, 0xf6, 0x8b, 0x0c, 0x3d, 0x12, 0xa0, - 0x5a, 0x01, 0x6f, 0x31, 0xf4, 0x7d, 0x8c, 0x02, 0x0f, 0x69, 0x45, 0x21, 0x78, 0x3c, 0x77, 0xba, - 0xd7, 0x37, 0x7a, 0xee, 0xe1, 0x46, 0xcf, 0xfd, 0x71, 0xbb, 0xfb, 0xfe, 0x8a, 0x78, 0x8d, 0x6c, - 0xef, 0xaf, 0x7f, 0x9c, 0x8e, 0x9a, 0xdb, 0x52, 0xb0, 0xcb, 0xfa, 0x17, 0xe6, 0x42, 0x26, 0xf5, - 0xff, 0x14, 0xf0, 0xe2, 0x90, 0xf6, 0xe3, 0xc1, 0x63, 0x4a, 0x47, 0x60, 0xc3, 0x85, 0x0c, 0x39, - 0x99, 0x11, 0x11, 0x55, 0xa9, 0x5d, 0x33, 0x56, 0x4d, 0x58, 0xe8, 0x64, 0xad, 0xdf, 0x8d, 0x75, - 0x65, 0x34, 0x1d, 0x35, 0x15, 0xbb, 0xe4, 0x2e, 0xa4, 0xbe, 0x03, 0x8a, 0x01, 0x24, 0x48, 0xc4, - 0xb7, 0x6e, 0x3d, 0xfb, 0x4d, 0x28, 0x04, 0xa4, 0xbe, 0x06, 0xa5, 0x10, 0x45, 0x04, 0x33, 0x86, - 0x69, 0xc0, 0xb4, 0x42, 0xad, 0x30, 0x57, 0x2c, 0x32, 0x9d, 0xd3, 0x6b, 0xb9, 0x66, 0x7d, 0x95, - 0x89, 0x25, 0xfb, 0x62, 0x59, 0x6d, 0x61, 0xd9, 0x25, 0xf6, 0xe7, 0xe9, 0xa8, 0xb9, 0x49, 0x04, - 0x32, 0xdb, 0xaf, 0xfe, 0x83, 0x02, 0xde, 0x91, 0xa2, 0x6e, 0x84, 0xfa, 0x28, 0xe0, 0x18, 0x0e, - 0x54, 0x1d, 0x94, 0x32, 0x99, 0xf0, 0x2e, 0xae, 0x8b, 0x0d, 0x24, 0x74, 0x24, 0xad, 0xbf, 0xdd, - 0x47, 0x11, 0xbe, 0x84, 0x1c, 0xd3, 0x20, 0x7d, 0xb2, 0x4c, 0xcb, 0xd7, 0x0a, 0x8d, 0x0d, 0x7b, - 0x73, 0x0e, 0x1f, 0xa0, 0x84, 0x75, 0x3e, 0x4c, 0x0d, 0xbd, 0x5a, 0x30, 0xf4, 0x55, 0x44, 0xe3, - 0x30, 0xf3, 0x33, 0x9f, 0x58, 0xff, 0x2b, 0x0f, 0xd6, 0x8e, 0x61, 0x04, 0x09, 0x53, 0x0d, 0xf0, - 0x92, 0xc0, 0xa1, 0x43, 0x10, 0xa1, 0x8e, 0x77, 0x0e, 0x23, 0xe8, 0x71, 0x14, 0xc9, 0x3b, 0x5b, - 0xb4, 0xb7, 0x08, 0x1c, 0x1e, 0x22, 0x42, 0xbb, 0x8f, 0x84, 0x5a, 0x03, 0x1b, 0x7c, 0xe8, 0x30, - 0xec, 0x3b, 0x03, 0x4c, 0x30, 0x17, 0x49, 0x17, 0x6d, 0xc0, 0x87, 0x3d, 0xec, 0x7f, 0x93, 0x22, - 0xea, 0x27, 0xe0, 0x5d, 0xa1, 0xb8, 0x42, 0x8e, 0x47, 0x19, 0x77, 0x42, 0x14, 0x39, 0x6e, 0xc2, - 0x51, 0x76, 0xe9, 0xb6, 0x52, 0xe9, 0x15, 0xea, 0x52, 0xc6, 0x8f, 0x51, 0x64, 0x25, 0x1c, 0xa9, - 0xdf, 0x82, 0xf7, 0xd2, 0x86, 0x97, 0x28, 0xc2, 0x67, 0x89, 0x2c, 0x42, 0xfd, 0xf6, 0xde, 0x5e, - 0xeb, 0x73, 0x79, 0x0f, 0x2d, 0x6d, 0x32, 0xd6, 0xcb, 0x3d, 0xec, 0x9f, 0x08, 0x45, 0x5a, 0xfa, - 0xe5, 0x17, 0x82, 0xb7, 0xcb, 0x6c, 0x09, 0x95, 0x55, 0xea, 0x77, 0x60, 0xe7, 0x69, 0x43, 0x86, - 0xbc, 0xb0, 0xbd, 0xf7, 0xd9, 0x45, 0x4b, 0x7b, 0x26, 0x5a, 0x56, 0x26, 0x63, 0x7d, 0x7b, 0xa9, - 0x65, 0x6f, 0xa6, 0xb0, 0xb7, 0xd9, 0x4a, 0xbc, 0xf3, 0xea, 0xe1, 0x46, 0x57, 0x9e, 0x3e, 0xf3, - 0xa1, 0xfc, 0x0c, 0xc9, 0x38, 0xad, 0xee, 0xef, 0x93, 0xaa, 0x72, 0x37, 0xa9, 0x2a, 0xff, 0x4c, - 0xaa, 0xca, 0x4f, 0xf7, 0xd5, 0xdc, 0xdd, 0x7d, 0x35, 0xf7, 0xf7, 0x7d, 0x35, 0x77, 0xfa, 0x91, - 0x8f, 0xf9, 0x79, 0xec, 0x1a, 0x1e, 0x25, 0xd9, 0xa7, 0xc6, 0x7c, 0xb3, 0x0b, 0x4f, 0x42, 0xc4, - 0xdc, 0x35, 0xf1, 0xba, 0x7f, 0xfa, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xba, 0xca, 0x7d, 0xc7, - 0xe8, 0x04, 0x00, 0x00, + // 733 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x54, 0xc1, 0x4e, 0xeb, 0x46, + 0x14, 0x8d, 0x93, 0x14, 0xca, 0x04, 0x68, 0x31, 0x29, 0x35, 0x51, 0x15, 0x9b, 0x48, 0x2d, 0x29, + 0x2a, 0x76, 0x93, 0x8a, 0x4a, 0xcd, 0x8e, 0xa4, 0x55, 0x85, 0x28, 0x14, 0x39, 0x2a, 0x0b, 0x36, + 0xd6, 0xd8, 0x19, 0xcc, 0x88, 0x8c, 0xc7, 0xf5, 0x8c, 0x51, 0xcc, 0xba, 0x0b, 0xd4, 0x55, 0xd5, + 0x2f, 0xa0, 0xfd, 0x02, 0x16, 0x7c, 0x44, 0xd5, 0x15, 0xea, 0xa6, 0x6f, 0x15, 0x3d, 0x85, 0x05, + 0xe8, 0xe9, 0x7d, 0xc4, 0x93, 0x67, 0x1c, 0x48, 0x78, 0xd9, 0x44, 0x9e, 0x73, 0xce, 0xbd, 0xf7, + 0xdc, 0xe3, 0x89, 0x41, 0xd5, 0xa3, 0x8c, 0x50, 0x66, 0xc1, 0x98, 0x9f, 0x59, 0x17, 0x0d, 0x17, + 0x71, 0xd8, 0x10, 0x07, 0x33, 0x8c, 0x28, 0xa7, 0xea, 0xaa, 0xe4, 0x4d, 0x01, 0x65, 0x7c, 0x65, + 0x05, 0x12, 0x1c, 0x50, 0x4b, 0xfc, 0x4a, 0x5d, 0x65, 0x5d, 0xea, 0x1c, 0x71, 0xb2, 0xb2, 0x22, + 0x49, 0x95, 0x7d, 0xea, 0x53, 0x89, 0xa7, 0x4f, 0xe3, 0x02, 0x9f, 0x52, 0xbf, 0x8f, 0x2c, 0x71, + 0x72, 0xe3, 0x53, 0x0b, 0x06, 0x89, 0xa4, 0x6a, 0x7f, 0xe5, 0x41, 0xa9, 0x0d, 0x19, 0xda, 0xf5, + 0x3c, 0x1a, 0x07, 0x5c, 0x6d, 0x82, 0x79, 0xd8, 0xeb, 0x45, 0x88, 0x31, 0x4d, 0x31, 0x94, 0xfa, + 0x42, 0x5b, 0xfb, 0xef, 0x76, 0xbb, 0x9c, 0xcd, 0xd8, 0x95, 0x4c, 0x97, 0x47, 0x38, 0xf0, 0xed, + 0xb1, 0x50, 0x3d, 0x06, 0xf3, 0x61, 0xec, 0x3a, 0xe7, 0x28, 0xd1, 0xf2, 0x86, 0x52, 0x2f, 0x35, + 0xcb, 0xa6, 0x1c, 0x68, 0x8e, 0x07, 0x9a, 0xbb, 0x41, 0xd2, 0xde, 0x7c, 0x33, 0xd4, 0xcb, 0x61, + 0xec, 0xf6, 0xb1, 0x97, 0x6a, 0xbf, 0xa2, 0x04, 0x73, 0x44, 0x42, 0x9e, 0xfc, 0xfd, 0x70, 0xb3, + 0x05, 0x9e, 0x09, 0x7b, 0x2e, 0x8c, 0xdd, 0x7d, 0x94, 0xa8, 0x9f, 0x83, 0x65, 0x28, 0x6d, 0x39, + 0x41, 0x4c, 0x5c, 0x14, 0x69, 0x05, 0x43, 0xa9, 0x17, 0xed, 0xa5, 0x0c, 0x3d, 0x14, 0xa0, 0x5a, + 0x01, 0x1f, 0x32, 0xf4, 0x6b, 0x8c, 0x02, 0x0f, 0x69, 0x45, 0x21, 0x78, 0x3a, 0xb7, 0x3a, 0x57, + 0xd7, 0x7a, 0xee, 0xf1, 0x5a, 0xcf, 0xfd, 0x7b, 0xbb, 0xfd, 0xd9, 0x8c, 0x78, 0xcd, 0x6c, 0xef, + 0xbd, 0xdf, 0x1f, 0x6e, 0xb6, 0xd6, 0xa4, 0x60, 0x9b, 0xf5, 0xce, 0xad, 0x89, 0x4c, 0x6a, 0x6f, + 0x15, 0xb0, 0x74, 0x40, 0x7b, 0x71, 0xff, 0x29, 0xa5, 0x3d, 0xb0, 0xe8, 0x42, 0x86, 0x9c, 0xcc, + 0x88, 0x88, 0xaa, 0xd4, 0x34, 0xcc, 0x59, 0x13, 0x26, 0x3a, 0xb5, 0x8b, 0x77, 0x43, 0x5d, 0xb1, + 0x4b, 0xee, 0x44, 0xe0, 0x2a, 0x28, 0x06, 0x90, 0x20, 0x91, 0xdc, 0x82, 0x2d, 0x9e, 0x55, 0x03, + 0x94, 0x42, 0x14, 0x11, 0xcc, 0x18, 0xa6, 0x01, 0xd3, 0x0a, 0x46, 0xa1, 0xbe, 0x60, 0x4f, 0x42, + 0xad, 0x93, 0x2b, 0xb9, 0x53, 0x6d, 0xd6, 0xc4, 0x29, 0xaf, 0x62, 0x33, 0x6d, 0x62, 0xb3, 0x29, + 0xf6, 0xcf, 0x87, 0x9b, 0xad, 0x65, 0x22, 0x90, 0xf1, 0x32, 0xb5, 0xdf, 0x14, 0xf0, 0xb1, 0x14, + 0x75, 0x22, 0xd4, 0x43, 0x01, 0xc7, 0xb0, 0xaf, 0xea, 0xa0, 0x94, 0xc9, 0x84, 0x5b, 0x71, 0x37, + 0x6c, 0x20, 0xa1, 0xc3, 0xd4, 0xf3, 0x26, 0xf8, 0xa8, 0x87, 0x22, 0x7c, 0x01, 0x39, 0xa6, 0x41, + 0xfa, 0x1a, 0x99, 0x96, 0x37, 0x0a, 0xf5, 0x45, 0x7b, 0xf9, 0x19, 0xde, 0x47, 0x09, 0x6b, 0x7d, + 0x91, 0x1a, 0xda, 0x98, 0x30, 0xf4, 0x63, 0x44, 0xe3, 0x30, 0xf3, 0xf3, 0x3c, 0xb1, 0xf6, 0x7f, + 0x1e, 0xcc, 0x1d, 0xc1, 0x08, 0x12, 0xa6, 0x9a, 0x60, 0x95, 0xc0, 0x81, 0x43, 0x10, 0xa1, 0x8e, + 0x77, 0x06, 0x23, 0xe8, 0x71, 0x14, 0xc9, 0x0b, 0x5a, 0xb4, 0x57, 0x08, 0x1c, 0x1c, 0x20, 0x42, + 0x3b, 0x4f, 0x84, 0x6a, 0x80, 0x45, 0x3e, 0x70, 0x18, 0xf6, 0x9d, 0x3e, 0x26, 0x98, 0x8b, 0x6c, + 0x8b, 0x36, 0xe0, 0x83, 0x2e, 0xf6, 0x7f, 0x4a, 0x11, 0xf5, 0x6b, 0xf0, 0x89, 0x50, 0x5c, 0x22, + 0xc7, 0xa3, 0x8c, 0x3b, 0x21, 0x8a, 0x1c, 0x37, 0xe1, 0x28, 0xbb, 0x61, 0x2b, 0xa9, 0xf4, 0x12, + 0x75, 0x28, 0xe3, 0x47, 0x28, 0x6a, 0x27, 0x1c, 0xa9, 0x3f, 0x83, 0x4f, 0xd3, 0x86, 0x17, 0x28, + 0xc2, 0xa7, 0x89, 0x2c, 0x42, 0xbd, 0xe6, 0xce, 0x4e, 0xe3, 0x3b, 0x79, 0xe9, 0xda, 0xda, 0x68, + 0xa8, 0x97, 0xbb, 0xd8, 0x3f, 0x16, 0x8a, 0xb4, 0xf4, 0x87, 0xef, 0x05, 0x6f, 0x97, 0xd9, 0x14, + 0x2a, 0xab, 0xd4, 0x5f, 0xc0, 0xfa, 0xcb, 0x86, 0x0c, 0x79, 0x61, 0x73, 0xe7, 0xdb, 0xf3, 0x86, + 0xf6, 0x81, 0x68, 0x59, 0x19, 0x0d, 0xf5, 0xb5, 0xa9, 0x96, 0xdd, 0xb1, 0xc2, 0x5e, 0x63, 0x33, + 0xf1, 0xd6, 0xc6, 0xe3, 0xb5, 0xae, 0xbc, 0x7c, 0xe7, 0x03, 0xf9, 0xcd, 0x91, 0x71, 0xb6, 0x3b, + 0xff, 0x8c, 0xaa, 0xca, 0xdd, 0xa8, 0xaa, 0xbc, 0x1e, 0x55, 0x95, 0x3f, 0xee, 0xab, 0xb9, 0xbb, + 0xfb, 0x6a, 0xee, 0xd5, 0x7d, 0x35, 0x77, 0xf2, 0xa5, 0x8f, 0xf9, 0x59, 0xec, 0x9a, 0x1e, 0x25, + 0xd9, 0x77, 0xc5, 0x7a, 0xbf, 0x0b, 0x4f, 0x42, 0xc4, 0xdc, 0x39, 0xf1, 0xdf, 0xfe, 0xe6, 0x5d, + 0x00, 0x00, 0x00, 0xff, 0xff, 0xc4, 0x84, 0x5b, 0x40, 0xd5, 0x04, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { diff --git a/x/staking/types/authz.pb.go b/x/staking/types/authz.pb.go index 5935a704a980..a08d8141a7b4 100644 --- a/x/staking/types/authz.pb.go +++ b/x/staking/types/authz.pb.go @@ -230,40 +230,40 @@ func init() { var fileDescriptor_d6d8cdbc6f4432f0 = []byte{ // 542 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0x41, 0x6f, 0x12, 0x4f, - 0x14, 0xc0, 0xd9, 0xf2, 0xff, 0xab, 0x8c, 0x89, 0x96, 0x49, 0x63, 0x28, 0x86, 0x6d, 0xe5, 0x60, + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0xc1, 0x6e, 0x12, 0x4f, + 0x18, 0xc0, 0xd9, 0xf2, 0xff, 0xab, 0x8c, 0x89, 0x96, 0x49, 0x63, 0x28, 0x86, 0x6d, 0xe5, 0x60, 0x91, 0x96, 0xd9, 0x14, 0xe3, 0xc5, 0x93, 0x4b, 0xd9, 0x0a, 0x49, 0xd3, 0x36, 0xcb, 0xd6, 0x68, 0x2f, 0x9b, 0x81, 0x9d, 0xc0, 0x04, 0xd8, 0x21, 0x3b, 0x43, 0x85, 0xde, 0x4c, 0x3c, 0xe9, 0xc5, - 0x4f, 0xe0, 0x07, 0xf0, 0xc4, 0xa1, 0x27, 0x8f, 0x9e, 0x8c, 0xa7, 0xc6, 0x93, 0x37, 0x0d, 0x1c, - 0xf8, 0x1a, 0x66, 0x77, 0x07, 0x8a, 0x42, 0xb9, 0x78, 0xd9, 0x9d, 0x9d, 0xf7, 0xdb, 0xf7, 0x7e, - 0x33, 0xfb, 0x66, 0x41, 0xba, 0xc6, 0x78, 0x9b, 0x71, 0x8d, 0x0b, 0xdc, 0xa4, 0x6e, 0x5d, 0x3b, - 0xdb, 0xad, 0x12, 0x81, 0x77, 0x35, 0xdc, 0x15, 0x8d, 0x73, 0xd4, 0xf1, 0x98, 0x60, 0xf0, 0x5e, - 0xc8, 0x20, 0xc9, 0x20, 0xc9, 0x24, 0xd7, 0xea, 0xac, 0xce, 0x02, 0x44, 0xf3, 0x47, 0x21, 0x9d, - 0x5c, 0x0f, 0x69, 0x3b, 0x0c, 0xc8, 0x57, 0xc3, 0x90, 0x2a, 0x8b, 0x55, 0x31, 0x27, 0xd3, 0x4a, - 0x35, 0x46, 0x5d, 0x19, 0x8f, 0xe3, 0x36, 0x75, 0x99, 0x16, 0x5c, 0xc3, 0xa9, 0xf4, 0xfb, 0xff, - 0x01, 0xac, 0x08, 0xdc, 0x24, 0x7a, 0x57, 0x34, 0x98, 0x47, 0xcf, 0xb1, 0xa0, 0xcc, 0x85, 0x04, - 0x80, 0x36, 0xee, 0xd9, 0x82, 0x35, 0x89, 0xcb, 0x13, 0xca, 0xa6, 0x92, 0xb9, 0x9d, 0x5f, 0x47, - 0xb2, 0x98, 0x9f, 0x7e, 0x22, 0x89, 0xf6, 0x18, 0x75, 0x0b, 0xdb, 0x9f, 0x7e, 0x6e, 0x6c, 0xd5, - 0xa9, 0x68, 0x74, 0xab, 0xa8, 0xc6, 0xda, 0xd2, 0x4a, 0xde, 0x72, 0xdc, 0x69, 0x6a, 0xa2, 0xdf, - 0x21, 0x3c, 0x80, 0xcd, 0x58, 0x1b, 0xf7, 0xac, 0x20, 0x31, 0x7c, 0xab, 0x00, 0x80, 0x5b, 0x2d, - 0xf6, 0xda, 0x6e, 0x51, 0x2e, 0x12, 0x2b, 0x41, 0x9d, 0x27, 0x68, 0xf1, 0x7e, 0xa0, 0x79, 0x4f, - 0xf4, 0x02, 0xb7, 0xa8, 0x83, 0x05, 0xf3, 0x78, 0x61, 0xe7, 0xf3, 0x78, 0x90, 0xdd, 0x9a, 0x29, - 0x39, 0x8f, 0x6b, 0xba, 0x5f, 0xeb, 0x80, 0x72, 0x51, 0x8a, 0x98, 0x31, 0x3c, 0x79, 0x80, 0x6f, - 0x14, 0x10, 0x73, 0x88, 0xdb, 0x0f, 0x2d, 0xa2, 0xff, 0x62, 0xb1, 0xed, 0x5b, 0x3c, 0x5c, 0x6e, - 0x51, 0x24, 0x6e, 0x5f, 0x4a, 0xdc, 0x72, 0xe4, 0x18, 0xbe, 0x04, 0x10, 0xcf, 0x52, 0xb6, 0xbf, - 0x63, 0x89, 0xff, 0x36, 0x95, 0xcc, 0x9d, 0xfc, 0xa3, 0xeb, 0x5c, 0xfe, 0xc8, 0x6b, 0xf5, 0x3b, - 0xc4, 0x8c, 0xe3, 0xbf, 0xa7, 0x92, 0xcf, 0x00, 0xb8, 0x12, 0x84, 0x79, 0x70, 0x13, 0x3b, 0x8e, - 0x47, 0xb8, 0xff, 0x59, 0xa3, 0x99, 0x58, 0x21, 0xf1, 0xfd, 0x22, 0xb7, 0x26, 0xf3, 0xeb, 0x61, - 0xa4, 0x22, 0x3c, 0xea, 0xd6, 0xcd, 0x09, 0xf8, 0xb4, 0xf4, 0xed, 0x22, 0x27, 0x1b, 0x19, 0x85, - 0x8d, 0xbb, 0x50, 0xe0, 0xdd, 0x78, 0x90, 0x4d, 0x2d, 0x5d, 0x7a, 0x21, 0x05, 0xc0, 0xd9, 0x95, - 0xcb, 0xdd, 0x2f, 0xe3, 0x41, 0x76, 0x46, 0x2e, 0xfb, 0x51, 0x01, 0xf1, 0xb9, 0x35, 0xc1, 0x34, - 0x50, 0xf5, 0x13, 0xab, 0x74, 0x64, 0x96, 0x4f, 0x75, 0xab, 0x7c, 0x74, 0x68, 0x5b, 0xaf, 0x8e, - 0x0d, 0xfb, 0xe4, 0xb0, 0x72, 0x6c, 0xec, 0x95, 0xf7, 0xcb, 0x46, 0x71, 0x35, 0x02, 0x37, 0xc0, - 0xfd, 0x05, 0x4c, 0xd1, 0x38, 0x30, 0x9e, 0xeb, 0x96, 0xb1, 0xaa, 0xc0, 0x07, 0x20, 0xb5, 0x30, - 0xc9, 0x14, 0x59, 0xb9, 0x06, 0x31, 0x8d, 0x29, 0x12, 0x2d, 0xec, 0x7f, 0x1d, 0xaa, 0xca, 0xe5, - 0x50, 0x55, 0x7e, 0x0d, 0x55, 0xe5, 0xc3, 0x48, 0x8d, 0x5c, 0x8e, 0xd4, 0xc8, 0x8f, 0x91, 0x1a, - 0x39, 0xdd, 0x59, 0xda, 0xfe, 0xbd, 0xe9, 0x0f, 0x20, 0x38, 0x08, 0xd5, 0x1b, 0xc1, 0xe9, 0x7b, - 0xfc, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x65, 0x80, 0x55, 0xbe, 0x1f, 0x04, 0x00, 0x00, + 0x27, 0xf0, 0x01, 0x3c, 0x11, 0xd3, 0x93, 0x4f, 0x60, 0x3c, 0x35, 0x9e, 0xbc, 0x69, 0xe0, 0xc0, + 0x6b, 0x98, 0xdd, 0x1d, 0x28, 0x0a, 0xe5, 0xe2, 0x65, 0x77, 0x76, 0xbe, 0xdf, 0x7e, 0xdf, 0x6f, + 0x66, 0xbf, 0x59, 0x90, 0xae, 0x31, 0xde, 0x66, 0x5c, 0xe3, 0x02, 0x37, 0xa9, 0x5b, 0xd7, 0xce, + 0x76, 0xab, 0x44, 0xe0, 0x5d, 0x0d, 0x77, 0x45, 0xe3, 0x1c, 0x75, 0x3c, 0x26, 0x18, 0xbc, 0x17, + 0x32, 0x48, 0x32, 0x48, 0x32, 0xc9, 0xb5, 0x3a, 0xab, 0xb3, 0x00, 0xd1, 0xfc, 0x51, 0x48, 0x27, + 0xd7, 0x43, 0xda, 0x0e, 0x03, 0xf2, 0xd5, 0x30, 0xa4, 0xca, 0x62, 0x55, 0xcc, 0xc9, 0xb4, 0x52, + 0x8d, 0x51, 0x57, 0xc6, 0xe3, 0xb8, 0x4d, 0x5d, 0xa6, 0x05, 0xd7, 0x70, 0x2a, 0xfd, 0xfe, 0x7f, + 0x00, 0x2b, 0x02, 0x37, 0x89, 0xde, 0x15, 0x0d, 0xe6, 0xd1, 0x73, 0x2c, 0x28, 0x73, 0x21, 0x01, + 0xa0, 0x8d, 0x7b, 0xb6, 0x60, 0x4d, 0xe2, 0xf2, 0x84, 0xb2, 0xa9, 0x64, 0x6e, 0xe7, 0xd7, 0x91, + 0x2c, 0xe6, 0xa7, 0x9f, 0x48, 0xa2, 0x3d, 0x46, 0xdd, 0xc2, 0xf6, 0xa7, 0x9f, 0x1b, 0x5b, 0x75, + 0x2a, 0x1a, 0xdd, 0x2a, 0xaa, 0xb1, 0xb6, 0xb4, 0x92, 0xb7, 0x1c, 0x77, 0x9a, 0x9a, 0xe8, 0x77, + 0x08, 0x0f, 0x60, 0x33, 0xd6, 0xc6, 0x3d, 0x2b, 0x48, 0x0c, 0xdf, 0x2a, 0x00, 0xe0, 0x56, 0x8b, + 0xbd, 0xb6, 0x5b, 0x94, 0x8b, 0xc4, 0x4a, 0x50, 0xe7, 0x09, 0x5a, 0xbc, 0x1f, 0x68, 0xde, 0x13, + 0xbd, 0xc0, 0x2d, 0xea, 0x60, 0xc1, 0x3c, 0x5e, 0xd8, 0xf9, 0x3c, 0x1e, 0x64, 0xb7, 0x66, 0x4a, + 0xce, 0xe3, 0x9a, 0xee, 0xd7, 0x3a, 0xa0, 0x5c, 0x94, 0x22, 0x66, 0x0c, 0x4f, 0x1e, 0xe0, 0x1b, + 0x05, 0xc4, 0x1c, 0xe2, 0xf6, 0x43, 0x8b, 0xe8, 0xbf, 0x58, 0x6c, 0xfb, 0x16, 0x0f, 0x97, 0x5b, + 0x14, 0x89, 0xdb, 0x97, 0x12, 0xb7, 0x1c, 0x39, 0x86, 0x2f, 0x01, 0xc4, 0xb3, 0x94, 0xed, 0xef, + 0x58, 0xe2, 0xbf, 0x4d, 0x25, 0x73, 0x27, 0xff, 0xe8, 0x3a, 0x97, 0x3f, 0xf2, 0x5a, 0xfd, 0x0e, + 0x31, 0xe3, 0xf8, 0xef, 0xa9, 0xe4, 0x33, 0x00, 0xae, 0x04, 0x61, 0x1e, 0xdc, 0xc4, 0x8e, 0xe3, + 0x11, 0xee, 0x7f, 0xd6, 0x68, 0x26, 0x56, 0x48, 0x7c, 0xbf, 0xc8, 0xad, 0xc9, 0xfc, 0x7a, 0x18, + 0xa9, 0x08, 0x8f, 0xba, 0x75, 0x73, 0x02, 0x3e, 0x2d, 0x7d, 0xbb, 0xc8, 0xc9, 0x46, 0x46, 0x61, + 0xe3, 0x2e, 0x14, 0x78, 0x37, 0x1e, 0x64, 0x53, 0x4b, 0x97, 0x5e, 0x48, 0x01, 0x70, 0x76, 0xe5, + 0x72, 0xf7, 0xcb, 0x78, 0x90, 0x9d, 0x91, 0xcb, 0x7e, 0x54, 0x40, 0x7c, 0x6e, 0x4d, 0x30, 0x0d, + 0x54, 0xfd, 0xc4, 0x2a, 0x1d, 0x99, 0xe5, 0x53, 0xdd, 0x2a, 0x1f, 0x1d, 0xda, 0xd6, 0xab, 0x63, + 0xc3, 0x3e, 0x39, 0xac, 0x1c, 0x1b, 0x7b, 0xe5, 0xfd, 0xb2, 0x51, 0x5c, 0x8d, 0xc0, 0x0d, 0x70, + 0x7f, 0x01, 0x53, 0x34, 0x0e, 0x8c, 0xe7, 0xba, 0x65, 0xac, 0x2a, 0xf0, 0x01, 0x48, 0x2d, 0x4c, + 0x32, 0x45, 0x56, 0xae, 0x41, 0x4c, 0x63, 0x8a, 0x44, 0x0b, 0xfb, 0x5f, 0x87, 0xaa, 0x72, 0x39, + 0x54, 0x95, 0x5f, 0x43, 0x55, 0xf9, 0x30, 0x52, 0x23, 0x97, 0x23, 0x35, 0xf2, 0x63, 0xa4, 0x46, + 0x4e, 0x77, 0x96, 0xb6, 0x7f, 0x6f, 0xfa, 0x03, 0x08, 0x0e, 0x42, 0xf5, 0x46, 0x70, 0xfa, 0x1e, + 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xca, 0x9a, 0xfc, 0xe0, 0x1f, 0x04, 0x00, 0x00, } func (m *StakeAuthorization) Marshal() (dAtA []byte, err error) { diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index 1af9ed9c0a2b..4cf1f09938bb 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -1403,674 +1403,673 @@ func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_go func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 10657 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x7b, 0x90, 0x1c, 0xc7, - 0x79, 0xdf, 0xed, 0x7b, 0xf7, 0xdb, 0xd7, 0x5c, 0xdf, 0x11, 0x38, 0x2c, 0xc8, 0xbb, 0xe3, 0xf0, - 0x81, 0x07, 0xc9, 0x03, 0x09, 0x12, 0x20, 0xb9, 0x10, 0x45, 0xef, 0xee, 0x2d, 0x80, 0x03, 0xef, - 0xa5, 0xd9, 0x3b, 0xf0, 0x61, 0x5b, 0xe3, 0xb9, 0xdd, 0xbe, 0xbb, 0x21, 0x76, 0x67, 0x56, 0x33, - 0xb3, 0xc0, 0x1d, 0x2b, 0x95, 0xa2, 0x2d, 0x3b, 0x91, 0x11, 0x47, 0x96, 0xad, 0x94, 0x2d, 0xcb, - 0x82, 0x42, 0x59, 0xb1, 0x44, 0x3b, 0x89, 0x23, 0x5b, 0x8a, 0x24, 0xc7, 0x65, 0x97, 0x9c, 0xca, - 0x43, 0x76, 0x52, 0x29, 0xc9, 0x95, 0x4a, 0x5c, 0xa9, 0x84, 0x76, 0x28, 0x95, 0xa5, 0xc8, 0x72, - 0x6c, 0xcb, 0x74, 0x6c, 0x47, 0x95, 0x4a, 0xaa, 0x5f, 0xf3, 0xd8, 0xc7, 0xcd, 0x1e, 0x44, 0xd2, - 0x4e, 0xe9, 0x1f, 0x60, 0xa7, 0xfb, 0xfb, 0x7e, 0xd3, 0xfd, 0xf5, 0xd7, 0x5f, 0x7f, 0xdf, 0xd7, - 0x3d, 0x7d, 0xf0, 0x67, 0x17, 0x60, 0x7e, 0xc7, 0x34, 0x77, 0xda, 0xf8, 0x4c, 0xd7, 0x32, 0x1d, - 0x73, 0xab, 0xb7, 0x7d, 0xa6, 0x85, 0xed, 0xa6, 0xa5, 0x77, 0x1d, 0xd3, 0x5a, 0xa0, 0x65, 0xa8, - 0xc8, 0x28, 0x16, 0x04, 0x85, 0xbc, 0x02, 0x93, 0x17, 0xf5, 0x36, 0x5e, 0x74, 0x09, 0x1b, 0xd8, - 0x41, 0x4f, 0x40, 0x7c, 0x5b, 0x6f, 0xe3, 0x99, 0xc8, 0x7c, 0xec, 0x64, 0xf6, 0xec, 0xbd, 0x0b, - 0x7d, 0x4c, 0x0b, 0x41, 0x8e, 0x75, 0x52, 0xac, 0x50, 0x0e, 0xf9, 0xab, 0x71, 0x98, 0x1a, 0x52, - 0x8b, 0x10, 0xc4, 0x0d, 0xad, 0x43, 0x10, 0x23, 0x27, 0x33, 0x0a, 0xfd, 0x8d, 0x66, 0x20, 0xd5, - 0xd5, 0x9a, 0xd7, 0xb4, 0x1d, 0x3c, 0x13, 0xa5, 0xc5, 0xe2, 0x11, 0xcd, 0x02, 0xb4, 0x70, 0x17, - 0x1b, 0x2d, 0x6c, 0x34, 0xf7, 0x67, 0x62, 0xf3, 0xb1, 0x93, 0x19, 0xc5, 0x57, 0x82, 0x1e, 0x80, - 0xc9, 0x6e, 0x6f, 0xab, 0xad, 0x37, 0x55, 0x1f, 0x19, 0xcc, 0xc7, 0x4e, 0x26, 0x14, 0x89, 0x55, - 0x2c, 0x7a, 0xc4, 0x27, 0xa0, 0x78, 0x03, 0x6b, 0xd7, 0xfc, 0xa4, 0x59, 0x4a, 0x5a, 0x20, 0xc5, - 0x3e, 0xc2, 0x1a, 0xe4, 0x3a, 0xd8, 0xb6, 0xb5, 0x1d, 0xac, 0x3a, 0xfb, 0x5d, 0x3c, 0x13, 0xa7, - 0xbd, 0x9f, 0x1f, 0xe8, 0x7d, 0x7f, 0xcf, 0xb3, 0x9c, 0x6b, 0x63, 0xbf, 0x8b, 0x51, 0x05, 0x32, - 0xd8, 0xe8, 0x75, 0x18, 0x42, 0x62, 0x84, 0xfc, 0xea, 0x46, 0xaf, 0xd3, 0x8f, 0x92, 0x26, 0x6c, - 0x1c, 0x22, 0x65, 0x63, 0xeb, 0xba, 0xde, 0xc4, 0x33, 0x49, 0x0a, 0x70, 0x62, 0x00, 0xa0, 0xc1, - 0xea, 0xfb, 0x31, 0x04, 0x1f, 0xaa, 0x41, 0x06, 0xef, 0x39, 0xd8, 0xb0, 0x75, 0xd3, 0x98, 0x49, - 0x51, 0x90, 0xfb, 0x86, 0x8c, 0x22, 0x6e, 0xb7, 0xfa, 0x21, 0x3c, 0x3e, 0x74, 0x1e, 0x52, 0x66, - 0xd7, 0xd1, 0x4d, 0xc3, 0x9e, 0x49, 0xcf, 0x47, 0x4e, 0x66, 0xcf, 0xde, 0x39, 0x54, 0x11, 0xd6, - 0x18, 0x8d, 0x22, 0x88, 0xd1, 0x12, 0x48, 0xb6, 0xd9, 0xb3, 0x9a, 0x58, 0x6d, 0x9a, 0x2d, 0xac, - 0xea, 0xc6, 0xb6, 0x39, 0x93, 0xa1, 0x00, 0x73, 0x83, 0x1d, 0xa1, 0x84, 0x35, 0xb3, 0x85, 0x97, - 0x8c, 0x6d, 0x53, 0x29, 0xd8, 0x81, 0x67, 0x74, 0x04, 0x92, 0xf6, 0xbe, 0xe1, 0x68, 0x7b, 0x33, - 0x39, 0xaa, 0x21, 0xfc, 0x49, 0xfe, 0xd5, 0x24, 0x14, 0xc7, 0x51, 0xb1, 0x0b, 0x90, 0xd8, 0x26, - 0xbd, 0x9c, 0x89, 0x1e, 0x46, 0x06, 0x8c, 0x27, 0x28, 0xc4, 0xe4, 0x6d, 0x0a, 0xb1, 0x02, 0x59, - 0x03, 0xdb, 0x0e, 0x6e, 0x31, 0x8d, 0x88, 0x8d, 0xa9, 0x53, 0xc0, 0x98, 0x06, 0x55, 0x2a, 0x7e, - 0x5b, 0x2a, 0xf5, 0x1c, 0x14, 0xdd, 0x26, 0xa9, 0x96, 0x66, 0xec, 0x08, 0xdd, 0x3c, 0x13, 0xd6, - 0x92, 0x85, 0xba, 0xe0, 0x53, 0x08, 0x9b, 0x52, 0xc0, 0x81, 0x67, 0xb4, 0x08, 0x60, 0x1a, 0xd8, - 0xdc, 0x56, 0x5b, 0xb8, 0xd9, 0x9e, 0x49, 0x8f, 0x90, 0xd2, 0x1a, 0x21, 0x19, 0x90, 0x92, 0xc9, - 0x4a, 0x9b, 0x6d, 0xf4, 0xa4, 0xa7, 0x6a, 0xa9, 0x11, 0x9a, 0xb2, 0xc2, 0x26, 0xd9, 0x80, 0xb6, - 0x6d, 0x42, 0xc1, 0xc2, 0x44, 0xef, 0x71, 0x8b, 0xf7, 0x2c, 0x43, 0x1b, 0xb1, 0x10, 0xda, 0x33, - 0x85, 0xb3, 0xb1, 0x8e, 0xe5, 0x2d, 0xff, 0x23, 0xba, 0x07, 0xdc, 0x02, 0x95, 0xaa, 0x15, 0x50, - 0x2b, 0x94, 0x13, 0x85, 0xab, 0x5a, 0x07, 0x97, 0x5e, 0x82, 0x42, 0x50, 0x3c, 0x68, 0x1a, 0x12, - 0xb6, 0xa3, 0x59, 0x0e, 0xd5, 0xc2, 0x84, 0xc2, 0x1e, 0x90, 0x04, 0x31, 0x6c, 0xb4, 0xa8, 0x95, - 0x4b, 0x28, 0xe4, 0x27, 0xfa, 0x1e, 0xaf, 0xc3, 0x31, 0xda, 0xe1, 0xfb, 0x07, 0x47, 0x34, 0x80, - 0xdc, 0xdf, 0xef, 0xd2, 0xe3, 0x90, 0x0f, 0x74, 0x60, 0xdc, 0x57, 0xcb, 0x7f, 0x0b, 0xee, 0x18, - 0x0a, 0x8d, 0x9e, 0x83, 0xe9, 0x9e, 0xa1, 0x1b, 0x0e, 0xb6, 0xba, 0x16, 0x26, 0x1a, 0xcb, 0x5e, - 0x35, 0xf3, 0xb5, 0xd4, 0x08, 0x9d, 0xdb, 0xf4, 0x53, 0x33, 0x14, 0x65, 0xaa, 0x37, 0x58, 0x78, - 0x3a, 0x93, 0xfe, 0x7a, 0x4a, 0x7a, 0xf9, 0xe5, 0x97, 0x5f, 0x8e, 0xca, 0xbf, 0x99, 0x84, 0xe9, - 0x61, 0x73, 0x66, 0xe8, 0xf4, 0x3d, 0x02, 0x49, 0xa3, 0xd7, 0xd9, 0xc2, 0x16, 0x15, 0x52, 0x42, - 0xe1, 0x4f, 0xa8, 0x02, 0x89, 0xb6, 0xb6, 0x85, 0xdb, 0x33, 0xf1, 0xf9, 0xc8, 0xc9, 0xc2, 0xd9, - 0x07, 0xc6, 0x9a, 0x95, 0x0b, 0xcb, 0x84, 0x45, 0x61, 0x9c, 0xe8, 0x9d, 0x10, 0xe7, 0x26, 0x9a, - 0x20, 0x9c, 0x1e, 0x0f, 0x81, 0xcc, 0x25, 0x85, 0xf2, 0xa1, 0xe3, 0x90, 0x21, 0xff, 0x33, 0xdd, - 0x48, 0xd2, 0x36, 0xa7, 0x49, 0x01, 0xd1, 0x0b, 0x54, 0x82, 0x34, 0x9d, 0x26, 0x2d, 0x2c, 0x96, - 0x36, 0xf7, 0x99, 0x28, 0x56, 0x0b, 0x6f, 0x6b, 0xbd, 0xb6, 0xa3, 0x5e, 0xd7, 0xda, 0x3d, 0x4c, - 0x15, 0x3e, 0xa3, 0xe4, 0x78, 0xe1, 0x55, 0x52, 0x86, 0xe6, 0x20, 0xcb, 0x66, 0x95, 0x6e, 0xb4, - 0xf0, 0x1e, 0xb5, 0x9e, 0x09, 0x85, 0x4d, 0xb4, 0x25, 0x52, 0x42, 0x5e, 0xff, 0xa2, 0x6d, 0x1a, - 0x42, 0x35, 0xe9, 0x2b, 0x48, 0x01, 0x7d, 0xfd, 0xe3, 0xfd, 0x86, 0xfb, 0xae, 0xe1, 0xdd, 0x1b, - 0x98, 0x4b, 0x27, 0xa0, 0x48, 0x29, 0x1e, 0xe5, 0x43, 0xaf, 0xb5, 0x67, 0x26, 0xe7, 0x23, 0x27, - 0xd3, 0x4a, 0x81, 0x15, 0xaf, 0xf1, 0x52, 0xf9, 0xb3, 0x51, 0x88, 0x53, 0xc3, 0x52, 0x84, 0xec, - 0xc6, 0xf3, 0xeb, 0x75, 0x75, 0x71, 0x6d, 0xb3, 0xba, 0x5c, 0x97, 0x22, 0xa8, 0x00, 0x40, 0x0b, - 0x2e, 0x2e, 0xaf, 0x55, 0x36, 0xa4, 0xa8, 0xfb, 0xbc, 0xb4, 0xba, 0x71, 0xfe, 0x31, 0x29, 0xe6, - 0x32, 0x6c, 0xb2, 0x82, 0xb8, 0x9f, 0xe0, 0xd1, 0xb3, 0x52, 0x02, 0x49, 0x90, 0x63, 0x00, 0x4b, - 0xcf, 0xd5, 0x17, 0xcf, 0x3f, 0x26, 0x25, 0x83, 0x25, 0x8f, 0x9e, 0x95, 0x52, 0x28, 0x0f, 0x19, - 0x5a, 0x52, 0x5d, 0x5b, 0x5b, 0x96, 0xd2, 0x2e, 0x66, 0x63, 0x43, 0x59, 0x5a, 0xbd, 0x24, 0x65, - 0x5c, 0xcc, 0x4b, 0xca, 0xda, 0xe6, 0xba, 0x04, 0x2e, 0xc2, 0x4a, 0xbd, 0xd1, 0xa8, 0x5c, 0xaa, - 0x4b, 0x59, 0x97, 0xa2, 0xfa, 0xfc, 0x46, 0xbd, 0x21, 0xe5, 0x02, 0xcd, 0x7a, 0xf4, 0xac, 0x94, - 0x77, 0x5f, 0x51, 0x5f, 0xdd, 0x5c, 0x91, 0x0a, 0x68, 0x12, 0xf2, 0xec, 0x15, 0xa2, 0x11, 0xc5, - 0xbe, 0xa2, 0xf3, 0x8f, 0x49, 0x92, 0xd7, 0x10, 0x86, 0x32, 0x19, 0x28, 0x38, 0xff, 0x98, 0x84, - 0xe4, 0x1a, 0x24, 0xa8, 0x1a, 0x22, 0x04, 0x85, 0xe5, 0x4a, 0xb5, 0xbe, 0xac, 0xae, 0xad, 0x6f, - 0x2c, 0xad, 0xad, 0x56, 0x96, 0xa5, 0x88, 0x57, 0xa6, 0xd4, 0xdf, 0xb5, 0xb9, 0xa4, 0xd4, 0x17, - 0xa5, 0xa8, 0xbf, 0x6c, 0xbd, 0x5e, 0xd9, 0xa8, 0x2f, 0x4a, 0x31, 0xb9, 0x09, 0xd3, 0xc3, 0x0c, - 0xea, 0xd0, 0x29, 0xe4, 0xd3, 0x85, 0xe8, 0x08, 0x5d, 0xa0, 0x58, 0xfd, 0xba, 0x20, 0x7f, 0x25, - 0x0a, 0x53, 0x43, 0x16, 0x95, 0xa1, 0x2f, 0x79, 0x1a, 0x12, 0x4c, 0x97, 0xd9, 0x32, 0x7b, 0x6a, - 0xe8, 0xea, 0x44, 0x35, 0x7b, 0x60, 0xa9, 0xa5, 0x7c, 0x7e, 0x57, 0x23, 0x36, 0xc2, 0xd5, 0x20, - 0x10, 0x03, 0x0a, 0xfb, 0xfd, 0x03, 0xc6, 0x9f, 0xad, 0x8f, 0xe7, 0xc7, 0x59, 0x1f, 0x69, 0xd9, - 0xe1, 0x16, 0x81, 0xc4, 0x90, 0x45, 0xe0, 0x02, 0x4c, 0x0e, 0x00, 0x8d, 0x6d, 0x8c, 0xdf, 0x1b, - 0x81, 0x99, 0x51, 0xc2, 0x09, 0x31, 0x89, 0xd1, 0x80, 0x49, 0xbc, 0xd0, 0x2f, 0xc1, 0xbb, 0x47, - 0x0f, 0xc2, 0xc0, 0x58, 0x7f, 0x32, 0x02, 0x47, 0x86, 0xbb, 0x94, 0x43, 0xdb, 0xf0, 0x4e, 0x48, - 0x76, 0xb0, 0xb3, 0x6b, 0x0a, 0xb7, 0xea, 0xfe, 0x21, 0x8b, 0x35, 0xa9, 0xee, 0x1f, 0x6c, 0xce, - 0xe5, 0x5f, 0xed, 0x63, 0xa3, 0xfc, 0x42, 0xd6, 0x9a, 0x81, 0x96, 0xfe, 0x68, 0x14, 0xee, 0x18, - 0x0a, 0x3e, 0xb4, 0xa1, 0x77, 0x01, 0xe8, 0x46, 0xb7, 0xe7, 0x30, 0xd7, 0x89, 0x59, 0xe2, 0x0c, - 0x2d, 0xa1, 0xc6, 0x8b, 0x58, 0xd9, 0x9e, 0xe3, 0xd6, 0xc7, 0x68, 0x3d, 0xb0, 0x22, 0x4a, 0xf0, - 0x84, 0xd7, 0xd0, 0x38, 0x6d, 0xe8, 0xec, 0x88, 0x9e, 0x0e, 0x28, 0xe6, 0xc3, 0x20, 0x35, 0xdb, - 0x3a, 0x36, 0x1c, 0xd5, 0x76, 0x2c, 0xac, 0x75, 0x74, 0x63, 0x87, 0x2e, 0x35, 0xe9, 0x72, 0x62, - 0x5b, 0x6b, 0xdb, 0x58, 0x29, 0xb2, 0xea, 0x86, 0xa8, 0x25, 0x1c, 0x54, 0x81, 0x2c, 0x1f, 0x47, - 0x32, 0xc0, 0xc1, 0xaa, 0x5d, 0x0e, 0xf9, 0x27, 0x32, 0x90, 0xf5, 0x39, 0xe0, 0xe8, 0x6e, 0xc8, - 0xbd, 0xa8, 0x5d, 0xd7, 0x54, 0x11, 0x54, 0x31, 0x49, 0x64, 0x49, 0xd9, 0x3a, 0x0f, 0xac, 0x1e, - 0x86, 0x69, 0x4a, 0x62, 0xf6, 0x1c, 0x6c, 0xa9, 0xcd, 0xb6, 0x66, 0xdb, 0x54, 0x68, 0x69, 0x4a, - 0x8a, 0x48, 0xdd, 0x1a, 0xa9, 0xaa, 0x89, 0x1a, 0x74, 0x0e, 0xa6, 0x28, 0x47, 0xa7, 0xd7, 0x76, - 0xf4, 0x6e, 0x1b, 0xab, 0x24, 0xcc, 0xb3, 0xe9, 0x92, 0xe3, 0xb6, 0x6c, 0x92, 0x50, 0xac, 0x70, - 0x02, 0xd2, 0x22, 0x1b, 0x2d, 0xc2, 0x5d, 0x94, 0x6d, 0x07, 0x1b, 0xd8, 0xd2, 0x1c, 0xac, 0xe2, - 0xf7, 0xf4, 0xb4, 0xb6, 0xad, 0x6a, 0x46, 0x4b, 0xdd, 0xd5, 0xec, 0xdd, 0x99, 0x69, 0x02, 0x50, - 0x8d, 0xce, 0x44, 0x94, 0x63, 0x84, 0xf0, 0x12, 0xa7, 0xab, 0x53, 0xb2, 0x8a, 0xd1, 0xba, 0xac, - 0xd9, 0xbb, 0xa8, 0x0c, 0x47, 0x28, 0x8a, 0xed, 0x58, 0xba, 0xb1, 0xa3, 0x36, 0x77, 0x71, 0xf3, - 0x9a, 0xda, 0x73, 0xb6, 0x9f, 0x98, 0x39, 0xee, 0x7f, 0x3f, 0x6d, 0x61, 0x83, 0xd2, 0xd4, 0x08, - 0xc9, 0xa6, 0xb3, 0xfd, 0x04, 0x6a, 0x40, 0x8e, 0x0c, 0x46, 0x47, 0x7f, 0x09, 0xab, 0xdb, 0xa6, - 0x45, 0xd7, 0xd0, 0xc2, 0x10, 0xd3, 0xe4, 0x93, 0xe0, 0xc2, 0x1a, 0x67, 0x58, 0x31, 0x5b, 0xb8, - 0x9c, 0x68, 0xac, 0xd7, 0xeb, 0x8b, 0x4a, 0x56, 0xa0, 0x5c, 0x34, 0x2d, 0xa2, 0x50, 0x3b, 0xa6, - 0x2b, 0xe0, 0x2c, 0x53, 0xa8, 0x1d, 0x53, 0x88, 0xf7, 0x1c, 0x4c, 0x35, 0x9b, 0xac, 0xcf, 0x7a, - 0x53, 0xe5, 0xc1, 0x98, 0x3d, 0x23, 0x05, 0x84, 0xd5, 0x6c, 0x5e, 0x62, 0x04, 0x5c, 0xc7, 0x6d, - 0xf4, 0x24, 0xdc, 0xe1, 0x09, 0xcb, 0xcf, 0x38, 0x39, 0xd0, 0xcb, 0x7e, 0xd6, 0x73, 0x30, 0xd5, - 0xdd, 0x1f, 0x64, 0x44, 0x81, 0x37, 0x76, 0xf7, 0xfb, 0xd9, 0x1e, 0x87, 0xe9, 0xee, 0x6e, 0x77, - 0x90, 0xef, 0xb4, 0x9f, 0x0f, 0x75, 0x77, 0xbb, 0xfd, 0x8c, 0xf7, 0xd1, 0xc8, 0xdc, 0xc2, 0x4d, - 0xcd, 0xc1, 0xad, 0x99, 0xa3, 0x7e, 0x72, 0x5f, 0x05, 0x5a, 0x00, 0xa9, 0xd9, 0x54, 0xb1, 0xa1, - 0x6d, 0xb5, 0xb1, 0xaa, 0x59, 0xd8, 0xd0, 0xec, 0x99, 0x39, 0x4a, 0x1c, 0x77, 0xac, 0x1e, 0x56, - 0x0a, 0xcd, 0x66, 0x9d, 0x56, 0x56, 0x68, 0x1d, 0x3a, 0x0d, 0x93, 0xe6, 0xd6, 0x8b, 0x4d, 0xa6, - 0x91, 0x6a, 0xd7, 0xc2, 0xdb, 0xfa, 0xde, 0xcc, 0xbd, 0x54, 0xbc, 0x45, 0x52, 0x41, 0xf5, 0x71, - 0x9d, 0x16, 0xa3, 0x53, 0x20, 0x35, 0xed, 0x5d, 0xcd, 0xea, 0x52, 0x93, 0x6c, 0x77, 0xb5, 0x26, - 0x9e, 0xb9, 0x8f, 0x91, 0xb2, 0xf2, 0x55, 0x51, 0x4c, 0x66, 0x84, 0x7d, 0x43, 0xdf, 0x76, 0x04, - 0xe2, 0x09, 0x36, 0x23, 0x68, 0x19, 0x47, 0x3b, 0x09, 0x12, 0x91, 0x44, 0xe0, 0xc5, 0x27, 0x29, - 0x59, 0xa1, 0xbb, 0xdb, 0xf5, 0xbf, 0xf7, 0x1e, 0xc8, 0x13, 0x4a, 0xef, 0xa5, 0xa7, 0x98, 0xe3, - 0xd6, 0xdd, 0xf5, 0xbd, 0xf1, 0x31, 0x38, 0x42, 0x88, 0x3a, 0xd8, 0xd1, 0x5a, 0x9a, 0xa3, 0xf9, - 0xa8, 0x1f, 0xa4, 0xd4, 0x44, 0xec, 0x2b, 0xbc, 0x32, 0xd0, 0x4e, 0xab, 0xb7, 0xb5, 0xef, 0x2a, - 0xd6, 0x43, 0xac, 0x9d, 0xa4, 0x4c, 0xa8, 0xd6, 0x5b, 0xe6, 0x9c, 0xcb, 0x65, 0xc8, 0xf9, 0xf5, - 0x1e, 0x65, 0x80, 0x69, 0xbe, 0x14, 0x21, 0x4e, 0x50, 0x6d, 0x6d, 0x91, 0xb8, 0x2f, 0x2f, 0xd4, - 0xa5, 0x28, 0x71, 0xa3, 0x96, 0x97, 0x36, 0xea, 0xaa, 0xb2, 0xb9, 0xba, 0xb1, 0xb4, 0x52, 0x97, - 0x62, 0x3e, 0xc7, 0xfe, 0x4a, 0x3c, 0x7d, 0xbf, 0x74, 0x82, 0x78, 0x0d, 0x85, 0x60, 0xa4, 0x86, - 0xde, 0x01, 0x47, 0x45, 0x5a, 0xc5, 0xc6, 0x8e, 0x7a, 0x43, 0xb7, 0xe8, 0x84, 0xec, 0x68, 0x6c, - 0x71, 0x74, 0xf5, 0x67, 0x9a, 0x53, 0x35, 0xb0, 0xf3, 0xac, 0x6e, 0x91, 0xe9, 0xd6, 0xd1, 0x1c, - 0xb4, 0x0c, 0x73, 0x86, 0xa9, 0xda, 0x8e, 0x66, 0xb4, 0x34, 0xab, 0xa5, 0x7a, 0x09, 0x2d, 0x55, - 0x6b, 0x36, 0xb1, 0x6d, 0x9b, 0x6c, 0x21, 0x74, 0x51, 0xee, 0x34, 0xcc, 0x06, 0x27, 0xf6, 0x56, - 0x88, 0x0a, 0x27, 0xed, 0x53, 0xdf, 0xd8, 0x28, 0xf5, 0x3d, 0x0e, 0x99, 0x8e, 0xd6, 0x55, 0xb1, - 0xe1, 0x58, 0xfb, 0xd4, 0x3f, 0x4f, 0x2b, 0xe9, 0x8e, 0xd6, 0xad, 0x93, 0xe7, 0xb7, 0x25, 0x4c, - 0xba, 0x12, 0x4f, 0xc7, 0xa5, 0xc4, 0x95, 0x78, 0x3a, 0x21, 0x25, 0xaf, 0xc4, 0xd3, 0x49, 0x29, - 0x75, 0x25, 0x9e, 0x4e, 0x4b, 0x99, 0x2b, 0xf1, 0x74, 0x46, 0x02, 0xf9, 0x27, 0xe3, 0x90, 0xf3, - 0x7b, 0xf0, 0x24, 0x20, 0x6a, 0xd2, 0x35, 0x2c, 0x42, 0xad, 0xdc, 0x3d, 0x07, 0xfa, 0xfb, 0x0b, - 0x35, 0xb2, 0xb8, 0x95, 0x93, 0xcc, 0x5d, 0x56, 0x18, 0x27, 0x71, 0x2c, 0x88, 0xfa, 0x61, 0xe6, - 0x9e, 0xa4, 0x15, 0xfe, 0x84, 0x2e, 0x41, 0xf2, 0x45, 0x9b, 0x62, 0x27, 0x29, 0xf6, 0xbd, 0x07, - 0x63, 0x5f, 0x69, 0x50, 0xf0, 0xcc, 0x95, 0x86, 0xba, 0xba, 0xa6, 0xac, 0x54, 0x96, 0x15, 0xce, - 0x8e, 0x8e, 0x41, 0xbc, 0xad, 0xbd, 0xb4, 0x1f, 0x5c, 0x06, 0x69, 0x11, 0x5a, 0x80, 0x62, 0xcf, - 0xb8, 0x8e, 0x2d, 0x7d, 0x5b, 0xc7, 0x2d, 0x95, 0x52, 0x15, 0xfd, 0x54, 0x05, 0xaf, 0x76, 0x99, - 0xd0, 0x8f, 0x39, 0x8c, 0xc7, 0x20, 0x7e, 0x03, 0x6b, 0xd7, 0x82, 0x8b, 0x15, 0x2d, 0x7a, 0x0b, - 0xa7, 0xd3, 0x19, 0x48, 0x50, 0xf9, 0x22, 0x00, 0x2e, 0x61, 0x69, 0x02, 0xa5, 0x21, 0x5e, 0x5b, - 0x53, 0xc8, 0x94, 0x92, 0x20, 0xc7, 0x4a, 0xd5, 0xf5, 0xa5, 0x7a, 0xad, 0x2e, 0x45, 0xe5, 0x73, - 0x90, 0x64, 0x42, 0x23, 0xd3, 0xcd, 0x15, 0x9b, 0x34, 0xc1, 0x1f, 0x39, 0x46, 0x44, 0xd4, 0x6e, - 0xae, 0x54, 0xeb, 0x8a, 0x14, 0x1d, 0x50, 0x16, 0xd9, 0x86, 0x9c, 0xdf, 0x93, 0x7f, 0x7b, 0xc2, - 0xf9, 0x2f, 0x44, 0x20, 0xeb, 0xf3, 0xcc, 0x89, 0x4b, 0xa5, 0xb5, 0xdb, 0xe6, 0x0d, 0x55, 0x6b, - 0xeb, 0x9a, 0xcd, 0x55, 0x09, 0x68, 0x51, 0x85, 0x94, 0x8c, 0x3b, 0x74, 0x6f, 0xd3, 0x24, 0x4b, - 0x48, 0x49, 0xf9, 0xa3, 0x11, 0x90, 0xfa, 0x5d, 0xe3, 0xbe, 0x66, 0x46, 0xfe, 0x3a, 0x9b, 0x29, - 0x7f, 0x24, 0x02, 0x85, 0xa0, 0x3f, 0xdc, 0xd7, 0xbc, 0xbb, 0xff, 0x5a, 0x9b, 0xf7, 0xfb, 0x51, - 0xc8, 0x07, 0xbc, 0xe0, 0x71, 0x5b, 0xf7, 0x1e, 0x98, 0xd4, 0x5b, 0xb8, 0xd3, 0x35, 0x1d, 0x6c, - 0x34, 0xf7, 0xd5, 0x36, 0xbe, 0x8e, 0xdb, 0x33, 0x32, 0x35, 0x32, 0x67, 0x0e, 0xf6, 0xb3, 0x17, - 0x96, 0x3c, 0xbe, 0x65, 0xc2, 0x56, 0x9e, 0x5a, 0x5a, 0xac, 0xaf, 0xac, 0xaf, 0x6d, 0xd4, 0x57, - 0x6b, 0xcf, 0xab, 0x9b, 0xab, 0xcf, 0xac, 0xae, 0x3d, 0xbb, 0xaa, 0x48, 0x7a, 0x1f, 0xd9, 0x5b, - 0x38, 0xed, 0xd7, 0x41, 0xea, 0x6f, 0x14, 0x3a, 0x0a, 0xc3, 0x9a, 0x25, 0x4d, 0xa0, 0x29, 0x28, - 0xae, 0xae, 0xa9, 0x8d, 0xa5, 0xc5, 0xba, 0x5a, 0xbf, 0x78, 0xb1, 0x5e, 0xdb, 0x68, 0xb0, 0xcc, - 0x89, 0x4b, 0xbd, 0x11, 0x98, 0xe0, 0xf2, 0x87, 0x63, 0x30, 0x35, 0xa4, 0x25, 0xa8, 0xc2, 0x63, - 0x1e, 0x16, 0x86, 0x3d, 0x34, 0x4e, 0xeb, 0x17, 0x88, 0xd7, 0xb1, 0xae, 0x59, 0x0e, 0x0f, 0x91, - 0x4e, 0x01, 0x91, 0x92, 0xe1, 0x10, 0xe3, 0x6a, 0xf1, 0x8c, 0x14, 0x0b, 0x84, 0x8a, 0x5e, 0x39, - 0x4b, 0x4a, 0x3d, 0x08, 0xa8, 0x6b, 0xda, 0xba, 0xa3, 0x5f, 0xc7, 0xaa, 0x6e, 0x88, 0xf4, 0x15, - 0x09, 0x8c, 0xe2, 0x8a, 0x24, 0x6a, 0x96, 0x0c, 0xc7, 0xa5, 0x36, 0xf0, 0x8e, 0xd6, 0x47, 0x4d, - 0x8c, 0x7f, 0x4c, 0x91, 0x44, 0x8d, 0x4b, 0x7d, 0x37, 0xe4, 0x5a, 0x66, 0x8f, 0x78, 0x8b, 0x8c, - 0x8e, 0xac, 0x35, 0x11, 0x25, 0xcb, 0xca, 0x5c, 0x12, 0x1e, 0x07, 0x78, 0x79, 0xb3, 0x9c, 0x92, - 0x65, 0x65, 0x8c, 0xe4, 0x04, 0x14, 0xb5, 0x9d, 0x1d, 0x8b, 0x80, 0x0b, 0x20, 0x16, 0xd9, 0x14, - 0xdc, 0x62, 0x4a, 0x58, 0xba, 0x02, 0x69, 0x21, 0x07, 0xb2, 0xd8, 0x13, 0x49, 0xa8, 0x5d, 0x16, - 0xae, 0x47, 0x4f, 0x66, 0x94, 0xb4, 0x21, 0x2a, 0xef, 0x86, 0x9c, 0x6e, 0xab, 0xde, 0x36, 0x40, - 0x74, 0x3e, 0x7a, 0x32, 0xad, 0x64, 0x75, 0xdb, 0x4d, 0xa1, 0xca, 0x9f, 0x8c, 0x42, 0x21, 0xb8, - 0x8d, 0x81, 0x16, 0x21, 0xdd, 0x36, 0x9b, 0x1a, 0x55, 0x2d, 0xb6, 0x87, 0x76, 0x32, 0x64, 0xe7, - 0x63, 0x61, 0x99, 0xd3, 0x2b, 0x2e, 0x67, 0xe9, 0x3f, 0x44, 0x20, 0x2d, 0x8a, 0xd1, 0x11, 0x88, - 0x77, 0x35, 0x67, 0x97, 0xc2, 0x25, 0xaa, 0x51, 0x29, 0xa2, 0xd0, 0x67, 0x52, 0x6e, 0x77, 0x35, - 0x83, 0xaa, 0x00, 0x2f, 0x27, 0xcf, 0x64, 0x5c, 0xdb, 0x58, 0x6b, 0xd1, 0xb0, 0xc9, 0xec, 0x74, - 0xb0, 0xe1, 0xd8, 0x62, 0x5c, 0x79, 0x79, 0x8d, 0x17, 0xa3, 0x07, 0x60, 0xd2, 0xb1, 0x34, 0xbd, - 0x1d, 0xa0, 0x8d, 0x53, 0x5a, 0x49, 0x54, 0xb8, 0xc4, 0x65, 0x38, 0x26, 0x70, 0x5b, 0xd8, 0xd1, - 0x9a, 0xbb, 0xb8, 0xe5, 0x31, 0x25, 0x69, 0x7a, 0xe4, 0x28, 0x27, 0x58, 0xe4, 0xf5, 0x82, 0x57, - 0xfe, 0x72, 0x04, 0x26, 0x45, 0xa0, 0xd7, 0x72, 0x85, 0xb5, 0x02, 0xa0, 0x19, 0x86, 0xe9, 0xf8, - 0xc5, 0x35, 0xa8, 0xca, 0x03, 0x7c, 0x0b, 0x15, 0x97, 0x49, 0xf1, 0x01, 0x94, 0x3a, 0x00, 0x5e, - 0xcd, 0x48, 0xb1, 0xcd, 0x41, 0x96, 0xef, 0x51, 0xd1, 0x8d, 0x4e, 0x96, 0x1a, 0x00, 0x56, 0x44, - 0x22, 0x42, 0x34, 0x0d, 0x89, 0x2d, 0xbc, 0xa3, 0x1b, 0x3c, 0xf3, 0xcc, 0x1e, 0x44, 0x02, 0x27, - 0xee, 0x26, 0x70, 0xaa, 0x7f, 0x1b, 0xa6, 0x9a, 0x66, 0xa7, 0xbf, 0xb9, 0x55, 0xa9, 0x2f, 0x3d, - 0x61, 0x5f, 0x8e, 0xbc, 0xf0, 0x10, 0x27, 0xda, 0x31, 0xdb, 0x9a, 0xb1, 0xb3, 0x60, 0x5a, 0x3b, - 0xde, 0x46, 0x2d, 0xf1, 0x90, 0x6c, 0xdf, 0x76, 0x6d, 0x77, 0xeb, 0x2f, 0x23, 0x91, 0x9f, 0x8b, - 0xc6, 0x2e, 0xad, 0x57, 0x7f, 0x31, 0x5a, 0xba, 0xc4, 0x18, 0xd7, 0x85, 0x30, 0x14, 0xbc, 0xdd, - 0xc6, 0x4d, 0xd2, 0x41, 0xf8, 0xa3, 0x07, 0x60, 0x7a, 0xc7, 0xdc, 0x31, 0x29, 0xd2, 0x19, 0xf2, - 0x8b, 0xef, 0xf4, 0x66, 0xdc, 0xd2, 0x52, 0xe8, 0xb6, 0x70, 0x79, 0x15, 0xa6, 0x38, 0xb1, 0x4a, - 0xb7, 0x9a, 0x58, 0x20, 0x84, 0x0e, 0xcc, 0xc2, 0xcd, 0xfc, 0xf2, 0x57, 0xe9, 0xf2, 0xad, 0x4c, - 0x72, 0x56, 0x52, 0xc7, 0x62, 0xa5, 0xb2, 0x02, 0x77, 0x04, 0xf0, 0xd8, 0x24, 0xc5, 0x56, 0x08, - 0xe2, 0xbf, 0xe6, 0x88, 0x53, 0x3e, 0xc4, 0x06, 0x67, 0x2d, 0xd7, 0x20, 0x7f, 0x18, 0xac, 0x7f, - 0xc3, 0xb1, 0x72, 0xd8, 0x0f, 0x72, 0x09, 0x8a, 0x14, 0xa4, 0xd9, 0xb3, 0x1d, 0xb3, 0x43, 0x2d, - 0xe0, 0xc1, 0x30, 0xff, 0xf6, 0xab, 0x6c, 0xd6, 0x14, 0x08, 0x5b, 0xcd, 0xe5, 0x2a, 0x97, 0x81, - 0xee, 0xae, 0xb5, 0x70, 0xb3, 0x1d, 0x82, 0xf0, 0x45, 0xde, 0x10, 0x97, 0xbe, 0x7c, 0x15, 0xa6, - 0xc9, 0x6f, 0x6a, 0xa0, 0xfc, 0x2d, 0x09, 0x4f, 0xd9, 0xcd, 0x7c, 0xf9, 0xbd, 0x6c, 0x62, 0x4e, - 0xb9, 0x00, 0xbe, 0x36, 0xf9, 0x46, 0x71, 0x07, 0x3b, 0x0e, 0xb6, 0x6c, 0x55, 0x6b, 0x0f, 0x6b, - 0x9e, 0x2f, 0xe7, 0x31, 0xf3, 0x33, 0xdf, 0x0c, 0x8e, 0xe2, 0x25, 0xc6, 0x59, 0x69, 0xb7, 0xcb, - 0x9b, 0x70, 0x74, 0x88, 0x56, 0x8c, 0x81, 0xf9, 0x61, 0x8e, 0x39, 0x3d, 0xa0, 0x19, 0x04, 0x76, - 0x1d, 0x44, 0xb9, 0x3b, 0x96, 0x63, 0x60, 0xfe, 0x2c, 0xc7, 0x44, 0x9c, 0x57, 0x0c, 0x29, 0x41, - 0xbc, 0x02, 0x93, 0xd7, 0xb1, 0xb5, 0x65, 0xda, 0x3c, 0xcf, 0x34, 0x06, 0xdc, 0x47, 0x38, 0x5c, - 0x91, 0x33, 0xd2, 0xc4, 0x13, 0xc1, 0x7a, 0x12, 0xd2, 0xdb, 0x5a, 0x13, 0x8f, 0x01, 0x71, 0x8b, - 0x43, 0xa4, 0x08, 0x3d, 0x61, 0xad, 0x40, 0x6e, 0xc7, 0xe4, 0x6b, 0x54, 0x38, 0xfb, 0x47, 0x39, - 0x7b, 0x56, 0xf0, 0x70, 0x88, 0xae, 0xd9, 0xed, 0xb5, 0xc9, 0x02, 0x16, 0x0e, 0xf1, 0x0f, 0x05, - 0x84, 0xe0, 0xe1, 0x10, 0x87, 0x10, 0xeb, 0x2b, 0x02, 0xc2, 0xf6, 0xc9, 0xf3, 0x69, 0xc8, 0x9a, - 0x46, 0x7b, 0xdf, 0x34, 0xc6, 0x69, 0xc4, 0xc7, 0x38, 0x02, 0x70, 0x16, 0x02, 0x70, 0x01, 0x32, - 0xe3, 0x0e, 0xc4, 0xcf, 0x7f, 0x53, 0x4c, 0x0f, 0x31, 0x02, 0x97, 0xa0, 0x28, 0x0c, 0x94, 0x6e, - 0x1a, 0x63, 0x40, 0x7c, 0x82, 0x43, 0x14, 0x7c, 0x6c, 0xbc, 0x1b, 0x0e, 0xb6, 0x9d, 0x1d, 0x3c, - 0x0e, 0xc8, 0x27, 0x45, 0x37, 0x38, 0x0b, 0x17, 0xe5, 0x16, 0x36, 0x9a, 0xbb, 0xe3, 0x21, 0xbc, - 0x2a, 0x44, 0x29, 0x78, 0x08, 0x44, 0x0d, 0xf2, 0x1d, 0xcd, 0xb2, 0x77, 0xb5, 0xf6, 0x58, 0xc3, - 0xf1, 0x0b, 0x1c, 0x23, 0xe7, 0x32, 0x71, 0x89, 0xf4, 0x8c, 0xc3, 0xc0, 0xfc, 0xa2, 0x90, 0x88, - 0x8f, 0x8d, 0x4f, 0x3d, 0xdb, 0xa1, 0x49, 0xb9, 0xc3, 0xa0, 0xfd, 0x63, 0x31, 0xf5, 0x18, 0xef, - 0x8a, 0x1f, 0xf1, 0x02, 0x64, 0x6c, 0xfd, 0xa5, 0xb1, 0x60, 0xfe, 0x89, 0x18, 0x69, 0xca, 0x40, - 0x98, 0x9f, 0x87, 0x63, 0x43, 0x97, 0x89, 0x31, 0xc0, 0xfe, 0x29, 0x07, 0x3b, 0x32, 0x64, 0xa9, - 0xe0, 0x26, 0xe1, 0xb0, 0x90, 0xbf, 0x24, 0x4c, 0x02, 0xee, 0xc3, 0x5a, 0x27, 0x51, 0x83, 0xad, - 0x6d, 0x1f, 0x4e, 0x6a, 0xff, 0x4c, 0x48, 0x8d, 0xf1, 0x06, 0xa4, 0xb6, 0x01, 0x47, 0x38, 0xe2, - 0xe1, 0xc6, 0xf5, 0x53, 0xc2, 0xb0, 0x32, 0xee, 0xcd, 0xe0, 0xe8, 0x7e, 0x2f, 0x94, 0x5c, 0x71, - 0x0a, 0xf7, 0xd4, 0x56, 0x3b, 0x5a, 0x77, 0x0c, 0xe4, 0x5f, 0xe6, 0xc8, 0xc2, 0xe2, 0xbb, 0xfe, - 0xad, 0xbd, 0xa2, 0x75, 0x09, 0xf8, 0x73, 0x30, 0x23, 0xc0, 0x7b, 0x86, 0x85, 0x9b, 0xe6, 0x8e, - 0xa1, 0xbf, 0x84, 0x5b, 0x63, 0x40, 0xff, 0x4a, 0xdf, 0x50, 0x6d, 0xfa, 0xd8, 0x09, 0xf2, 0x12, - 0x48, 0xae, 0xaf, 0xa2, 0xea, 0x9d, 0xae, 0x69, 0x39, 0x21, 0x88, 0x9f, 0x16, 0x23, 0xe5, 0xf2, - 0x2d, 0x51, 0xb6, 0x72, 0x1d, 0xd8, 0x4e, 0xf5, 0xb8, 0x2a, 0xf9, 0x19, 0x0e, 0x94, 0xf7, 0xb8, - 0xb8, 0xe1, 0x68, 0x9a, 0x9d, 0xae, 0x66, 0x8d, 0x63, 0xff, 0xfe, 0xb9, 0x30, 0x1c, 0x9c, 0x85, - 0x1b, 0x0e, 0xe2, 0xd1, 0x91, 0xd5, 0x7e, 0x0c, 0x84, 0xcf, 0x0a, 0xc3, 0x21, 0x78, 0x38, 0x84, - 0x70, 0x18, 0xc6, 0x80, 0xf8, 0x9c, 0x80, 0x10, 0x3c, 0x04, 0xe2, 0x5d, 0xde, 0x42, 0x6b, 0xe1, - 0x1d, 0xdd, 0x76, 0x2c, 0xe6, 0x14, 0x1f, 0x0c, 0xf5, 0xf9, 0x6f, 0x06, 0x9d, 0x30, 0xc5, 0xc7, - 0x4a, 0x2c, 0x11, 0x4f, 0xd3, 0xd2, 0x98, 0x29, 0xbc, 0x61, 0xbf, 0x2a, 0x2c, 0x91, 0x8f, 0x8d, - 0xb4, 0xcd, 0xe7, 0x21, 0x12, 0xb1, 0x37, 0x49, 0xa4, 0x30, 0x06, 0xdc, 0xbf, 0xe8, 0x6b, 0x5c, - 0x43, 0xf0, 0x12, 0x4c, 0x9f, 0xff, 0xd3, 0x33, 0xae, 0xe1, 0xfd, 0xb1, 0xb4, 0xf3, 0xd7, 0xfa, - 0xfc, 0x9f, 0x4d, 0xc6, 0xc9, 0x6c, 0x48, 0xb1, 0xcf, 0x9f, 0x42, 0x61, 0xe7, 0x92, 0x66, 0x7e, - 0xf0, 0x0d, 0xde, 0xdf, 0xa0, 0x3b, 0x55, 0x5e, 0x26, 0x4a, 0x1e, 0x74, 0x7a, 0xc2, 0xc1, 0xde, - 0xfb, 0x86, 0xab, 0xe7, 0x01, 0x9f, 0xa7, 0x7c, 0x11, 0xf2, 0x01, 0x87, 0x27, 0x1c, 0xea, 0x87, - 0x39, 0x54, 0xce, 0xef, 0xef, 0x94, 0xcf, 0x41, 0x9c, 0x38, 0x2f, 0xe1, 0xec, 0x3f, 0xc2, 0xd9, - 0x29, 0x79, 0xf9, 0x29, 0x48, 0x0b, 0xa7, 0x25, 0x9c, 0xf5, 0xef, 0x70, 0x56, 0x97, 0x85, 0xb0, - 0x0b, 0x87, 0x25, 0x9c, 0xfd, 0xef, 0x0a, 0x76, 0xc1, 0x42, 0xd8, 0xc7, 0x17, 0xe1, 0x17, 0xfe, - 0x5e, 0x9c, 0x2f, 0x3a, 0x42, 0x76, 0x17, 0x20, 0xc5, 0x3d, 0x95, 0x70, 0xee, 0x1f, 0xe5, 0x2f, - 0x17, 0x1c, 0xe5, 0xc7, 0x21, 0x31, 0xa6, 0xc0, 0xff, 0x3e, 0x67, 0x65, 0xf4, 0xe5, 0x1a, 0x64, - 0x7d, 0xde, 0x49, 0x38, 0xfb, 0xfb, 0x39, 0xbb, 0x9f, 0x8b, 0x34, 0x9d, 0x7b, 0x27, 0xe1, 0x00, - 0x3f, 0x2e, 0x9a, 0xce, 0x39, 0x88, 0xd8, 0x84, 0x63, 0x12, 0xce, 0xfd, 0x01, 0x21, 0x75, 0xc1, - 0x52, 0x7e, 0x1a, 0x32, 0xee, 0x62, 0x13, 0xce, 0xff, 0x13, 0x9c, 0xdf, 0xe3, 0x21, 0x12, 0xf0, - 0x2d, 0x76, 0xe1, 0x10, 0x3f, 0x29, 0x24, 0xe0, 0xe3, 0x22, 0xd3, 0xa8, 0xdf, 0x81, 0x09, 0x47, - 0xfa, 0xa0, 0x98, 0x46, 0x7d, 0xfe, 0x0b, 0x19, 0x4d, 0x6a, 0xf3, 0xc3, 0x21, 0xfe, 0x81, 0x18, - 0x4d, 0x4a, 0x4f, 0x9a, 0xd1, 0xef, 0x11, 0x84, 0x63, 0xfc, 0xb4, 0x68, 0x46, 0x9f, 0x43, 0x50, - 0x5e, 0x07, 0x34, 0xe8, 0x0d, 0x84, 0xe3, 0x7d, 0x88, 0xe3, 0x4d, 0x0e, 0x38, 0x03, 0xe5, 0x67, - 0xe1, 0xc8, 0x70, 0x4f, 0x20, 0x1c, 0xf5, 0x67, 0xde, 0xe8, 0x8b, 0xdd, 0xfc, 0x8e, 0x40, 0x79, - 0xc3, 0x5b, 0x52, 0xfc, 0x5e, 0x40, 0x38, 0xec, 0x87, 0xdf, 0x08, 0x1a, 0x6e, 0xbf, 0x13, 0x50, - 0xae, 0x00, 0x78, 0x0b, 0x70, 0x38, 0xd6, 0x47, 0x38, 0x96, 0x8f, 0x89, 0x4c, 0x0d, 0xbe, 0xfe, - 0x86, 0xf3, 0xdf, 0x12, 0x53, 0x83, 0x73, 0x90, 0xa9, 0x21, 0x96, 0xde, 0x70, 0xee, 0x8f, 0x8a, - 0xa9, 0x21, 0x58, 0x88, 0x66, 0xfb, 0x56, 0xb7, 0x70, 0x84, 0x8f, 0x09, 0xcd, 0xf6, 0x71, 0x95, - 0x57, 0x61, 0x72, 0x60, 0x41, 0x0c, 0x87, 0xfa, 0x39, 0x0e, 0x25, 0xf5, 0xaf, 0x87, 0xfe, 0xc5, - 0x8b, 0x2f, 0x86, 0xe1, 0x68, 0x1f, 0xef, 0x5b, 0xbc, 0xf8, 0x5a, 0x58, 0xbe, 0x00, 0x69, 0xa3, - 0xd7, 0x6e, 0x93, 0xc9, 0x83, 0x0e, 0x3e, 0x4b, 0x38, 0xf3, 0x3f, 0xbe, 0xcd, 0xa5, 0x23, 0x18, - 0xca, 0xe7, 0x20, 0x81, 0x3b, 0x5b, 0xb8, 0x15, 0xc6, 0xf9, 0x8d, 0x6f, 0x0b, 0x83, 0x49, 0xa8, - 0xcb, 0x4f, 0x03, 0xb0, 0xd4, 0x08, 0xdd, 0x3c, 0x0c, 0xe1, 0xfd, 0xc3, 0x6f, 0xf3, 0xc3, 0x3b, - 0x1e, 0x8b, 0x07, 0xc0, 0x8e, 0x02, 0x1d, 0x0c, 0xf0, 0xcd, 0x20, 0x00, 0x1d, 0x91, 0x27, 0x21, - 0xf5, 0xa2, 0x6d, 0x1a, 0x8e, 0xb6, 0x13, 0xc6, 0xfd, 0x47, 0x9c, 0x5b, 0xd0, 0x13, 0x81, 0x75, - 0x4c, 0x0b, 0x3b, 0xda, 0x8e, 0x1d, 0xc6, 0xfb, 0x3f, 0x39, 0xaf, 0xcb, 0x40, 0x98, 0x9b, 0x9a, - 0xed, 0x8c, 0xd3, 0xef, 0x3f, 0x16, 0xcc, 0x82, 0x81, 0x34, 0x9a, 0xfc, 0xbe, 0x86, 0xf7, 0xc3, - 0x78, 0xff, 0x44, 0x34, 0x9a, 0xd3, 0x97, 0x9f, 0x82, 0x0c, 0xf9, 0xc9, 0x4e, 0xe4, 0x85, 0x30, - 0xff, 0x29, 0x67, 0xf6, 0x38, 0xc8, 0x9b, 0x6d, 0xa7, 0xe5, 0xe8, 0xe1, 0xc2, 0xfe, 0x16, 0x1f, - 0x69, 0x41, 0x5f, 0xae, 0x40, 0xd6, 0x76, 0x5a, 0xad, 0x1e, 0xf7, 0x4f, 0x43, 0xd8, 0xff, 0xec, - 0xdb, 0x6e, 0xca, 0xc2, 0xe5, 0x21, 0xa3, 0x7d, 0xe3, 0x9a, 0xd3, 0x35, 0xe9, 0x86, 0x47, 0x18, - 0xc2, 0x1b, 0x1c, 0xc1, 0xc7, 0x52, 0xae, 0x41, 0x8e, 0xf4, 0xc5, 0xc2, 0x5d, 0x4c, 0x77, 0xa7, - 0x42, 0x20, 0xfe, 0x9c, 0x0b, 0x20, 0xc0, 0x54, 0xfd, 0x81, 0x2f, 0xbe, 0x3e, 0x1b, 0xf9, 0xd2, - 0xeb, 0xb3, 0x91, 0xdf, 0x7f, 0x7d, 0x36, 0xf2, 0x81, 0xaf, 0xcc, 0x4e, 0x7c, 0xe9, 0x2b, 0xb3, - 0x13, 0xbf, 0xfb, 0x95, 0xd9, 0x89, 0xe1, 0x59, 0x62, 0xb8, 0x64, 0x5e, 0x32, 0x59, 0x7e, 0xf8, - 0x85, 0xfb, 0x76, 0x74, 0x67, 0xb7, 0xb7, 0xb5, 0xd0, 0x34, 0x3b, 0x67, 0x9a, 0xa6, 0xdd, 0x31, - 0xed, 0x33, 0xc1, 0xbc, 0x2e, 0xfd, 0x05, 0xff, 0x27, 0x42, 0x62, 0xe6, 0x60, 0x3a, 0x57, 0x33, - 0xf6, 0x47, 0x7d, 0xde, 0x73, 0x1e, 0x62, 0x15, 0x63, 0x1f, 0x1d, 0x63, 0x06, 0x4e, 0xed, 0x59, - 0x6d, 0x7e, 0x2c, 0x2c, 0x45, 0x9e, 0x37, 0xad, 0x36, 0x9a, 0xf6, 0xce, 0x6e, 0x46, 0x4e, 0xe6, - 0xf8, 0x81, 0xcc, 0xea, 0xfb, 0x23, 0x87, 0xeb, 0x49, 0xba, 0x62, 0xec, 0xd3, 0x8e, 0xac, 0x47, - 0x5e, 0x78, 0x30, 0x34, 0xcf, 0x7d, 0xcd, 0x30, 0x6f, 0x18, 0xa4, 0xd9, 0xdd, 0x2d, 0x91, 0xe3, - 0x9e, 0xed, 0xcf, 0x71, 0x3f, 0x8b, 0xdb, 0xed, 0x67, 0x08, 0xdd, 0x06, 0x61, 0xd9, 0x4a, 0xb2, - 0x13, 0xc8, 0xf0, 0xc1, 0x28, 0xcc, 0x0e, 0xa4, 0xb3, 0xb9, 0x12, 0x8c, 0x12, 0x42, 0x19, 0xd2, - 0x8b, 0x42, 0xb7, 0x66, 0x20, 0x65, 0xe3, 0xa6, 0x69, 0xb4, 0x6c, 0x2a, 0x88, 0x98, 0x22, 0x1e, - 0x89, 0x20, 0x0c, 0xcd, 0x30, 0x6d, 0x7e, 0xb0, 0x92, 0x3d, 0x54, 0x7f, 0xf6, 0x90, 0x82, 0xc8, - 0x8b, 0x37, 0x09, 0x69, 0x3c, 0x32, 0xa6, 0x34, 0x44, 0x27, 0x02, 0x99, 0xff, 0x71, 0xa5, 0xf2, - 0xd3, 0x51, 0x98, 0xeb, 0x97, 0x0a, 0x99, 0x59, 0xb6, 0xa3, 0x75, 0xba, 0xa3, 0xc4, 0x72, 0x01, - 0x32, 0x1b, 0x82, 0xe6, 0xd0, 0x72, 0xb9, 0x75, 0x48, 0xb9, 0x14, 0xdc, 0x57, 0x09, 0xc1, 0x9c, - 0x1d, 0x53, 0x30, 0x6e, 0x3f, 0x6e, 0x4b, 0x32, 0x7f, 0x95, 0x84, 0x63, 0x6c, 0x3a, 0xa9, 0x6c, - 0x2a, 0xb1, 0x07, 0x2e, 0x93, 0x9c, 0xbf, 0x2a, 0x7c, 0x9f, 0x44, 0x7e, 0x06, 0xa6, 0x96, 0x88, - 0xb5, 0x20, 0x51, 0x90, 0xb7, 0xc3, 0x33, 0xf4, 0xec, 0xe9, 0x7c, 0xc0, 0xe1, 0xe7, 0x3b, 0x4c, - 0xfe, 0x22, 0xf9, 0x07, 0x23, 0x20, 0x35, 0x9a, 0x5a, 0x5b, 0xb3, 0xbe, 0x53, 0x28, 0xf4, 0x38, - 0x00, 0xfd, 0x66, 0xc9, 0xfb, 0xc8, 0xa8, 0x70, 0x76, 0x66, 0xc1, 0xdf, 0xb9, 0x05, 0xf6, 0x26, - 0xfa, 0x05, 0x43, 0x86, 0xd2, 0x92, 0x9f, 0xa7, 0x9f, 0x03, 0xf0, 0x2a, 0xd0, 0x71, 0x38, 0xda, - 0xa8, 0x55, 0x96, 0x2b, 0x8a, 0xca, 0x0e, 0xc3, 0xaf, 0x36, 0xd6, 0xeb, 0xb5, 0xa5, 0x8b, 0x4b, - 0xf5, 0x45, 0x69, 0x02, 0x1d, 0x01, 0xe4, 0xaf, 0x74, 0xcf, 0xa5, 0xdc, 0x01, 0x93, 0xfe, 0x72, - 0x76, 0xa2, 0x3e, 0x4a, 0x3c, 0x45, 0xbd, 0xd3, 0x6d, 0x63, 0xba, 0xf5, 0xa7, 0xea, 0x42, 0x6a, - 0xe1, 0x4e, 0xc8, 0x6f, 0xfd, 0x27, 0x76, 0xca, 0x7a, 0xca, 0x63, 0x77, 0x65, 0x5e, 0x5e, 0x86, - 0x49, 0xad, 0xd9, 0xc4, 0xdd, 0x00, 0x64, 0x88, 0xa9, 0x26, 0x80, 0x74, 0x33, 0x93, 0x73, 0x7a, - 0x68, 0x8f, 0x43, 0xd2, 0xa6, 0xbd, 0x0f, 0x83, 0xf8, 0x6d, 0x0e, 0xc1, 0xc9, 0xcb, 0x06, 0x4c, - 0x12, 0xcf, 0x4f, 0xb3, 0xb0, 0xaf, 0x19, 0x07, 0xe7, 0x19, 0x7e, 0xfd, 0xd3, 0x0f, 0xd3, 0xad, - 0xcd, 0xbb, 0x83, 0xc3, 0x32, 0x44, 0x9d, 0x14, 0x89, 0x63, 0x7b, 0x0d, 0xc5, 0x50, 0x10, 0xef, - 0xe3, 0x0d, 0x3e, 0xf8, 0x65, 0xbf, 0xc1, 0x5f, 0x36, 0x3b, 0x4c, 0x07, 0x7c, 0x6f, 0xca, 0x73, - 0x54, 0x56, 0x51, 0xad, 0x8f, 0x9a, 0xd3, 0x2f, 0x3c, 0x30, 0xb8, 0x3a, 0xb1, 0xff, 0x1e, 0xa2, - 0xc8, 0x17, 0xfc, 0xaf, 0x71, 0xe7, 0xde, 0xab, 0x09, 0x98, 0xd4, 0x3a, 0xba, 0x61, 0x9e, 0xa1, - 0xff, 0xf2, 0x39, 0x97, 0xa0, 0x0f, 0x63, 0x6c, 0x4a, 0x9e, 0x67, 0x53, 0x21, 0x5c, 0x63, 0xfe, - 0xf4, 0xc7, 0x3e, 0x91, 0xf0, 0xa6, 0x4b, 0x79, 0x05, 0x24, 0x71, 0xe0, 0x10, 0x1b, 0x4d, 0xb3, - 0x35, 0x56, 0x96, 0xe2, 0x5b, 0x02, 0x43, 0xe4, 0xb7, 0xea, 0x9c, 0xb5, 0xfc, 0x0e, 0x48, 0xbb, - 0x30, 0x61, 0x9e, 0x89, 0x00, 0x71, 0x39, 0x88, 0x5f, 0xc2, 0x66, 0xe6, 0x38, 0x5e, 0xe8, 0x1b, - 0x82, 0x9f, 0xcd, 0xd0, 0x55, 0xd2, 0x9b, 0x4b, 0x50, 0x68, 0x99, 0x86, 0xa3, 0x9a, 0x1d, 0xdd, - 0xc1, 0x9d, 0xae, 0x13, 0xea, 0xd7, 0xfd, 0x39, 0x03, 0x49, 0x2b, 0x79, 0xc2, 0xb7, 0x26, 0xd8, - 0xca, 0xe7, 0xc7, 0xf4, 0xc3, 0xff, 0x97, 0xe0, 0xe7, 0x8e, 0xf8, 0x65, 0x28, 0xb2, 0x6f, 0x91, - 0xdc, 0xef, 0x9d, 0xc2, 0x10, 0xfe, 0x42, 0x74, 0x23, 0x4f, 0x19, 0x37, 0xf8, 0x67, 0x51, 0xe5, - 0x2b, 0x20, 0x31, 0xa4, 0x03, 0x25, 0xe2, 0x3f, 0xc4, 0x36, 0xf3, 0x97, 0x02, 0xaa, 0x40, 0x39, - 0x2f, 0x0a, 0xb1, 0xdc, 0x96, 0xaa, 0xda, 0xad, 0x6b, 0x7c, 0x65, 0x71, 0xf6, 0x98, 0x4a, 0xba, - 0xaa, 0xfa, 0xc7, 0x31, 0x98, 0xe5, 0xc4, 0x5b, 0x9a, 0x8d, 0xcf, 0x5c, 0x7f, 0x64, 0x0b, 0x3b, - 0xda, 0x23, 0x67, 0x9a, 0xa6, 0x2e, 0xdc, 0x8a, 0x29, 0xbe, 0x72, 0x90, 0xfa, 0x05, 0x5e, 0x5f, - 0x1a, 0xba, 0xf7, 0x5e, 0x1a, 0xbd, 0xe2, 0x94, 0x06, 0x27, 0x84, 0xfc, 0x02, 0xc4, 0x6b, 0xa6, - 0x6e, 0x90, 0x85, 0xb6, 0x85, 0x0d, 0xb3, 0xc3, 0x6d, 0x3f, 0x7b, 0x40, 0xe7, 0x21, 0xa9, 0x75, - 0xcc, 0x9e, 0xe1, 0x30, 0xbb, 0x5f, 0x9d, 0xfd, 0xe2, 0x6b, 0x73, 0x13, 0xff, 0xe5, 0xb5, 0xb9, - 0xd8, 0x92, 0xe1, 0xfc, 0xce, 0x67, 0x1e, 0x02, 0x8e, 0xbe, 0x64, 0x38, 0xaf, 0x7e, 0xed, 0x53, - 0xa7, 0x23, 0x0a, 0xa7, 0x2e, 0xc7, 0xbf, 0xfe, 0xca, 0x5c, 0x44, 0x7e, 0x0e, 0x52, 0x8b, 0xb8, - 0x79, 0x00, 0xfc, 0x23, 0x7d, 0xf0, 0xc7, 0x04, 0xfc, 0x22, 0x6e, 0xfa, 0xe0, 0x17, 0x71, 0xb3, - 0x0f, 0xf9, 0x71, 0x48, 0x2f, 0x19, 0x0e, 0xfb, 0xf6, 0xe2, 0x01, 0x88, 0xe9, 0x06, 0x3b, 0xce, - 0xeb, 0x43, 0x18, 0x68, 0xa0, 0x42, 0xa8, 0x08, 0xe3, 0x22, 0x6e, 0xba, 0x8c, 0x2d, 0xdc, 0xec, - 0x67, 0x1c, 0x7c, 0x35, 0xa1, 0xaa, 0x2e, 0xfe, 0xee, 0x7f, 0x9f, 0x9d, 0x78, 0xf9, 0xf5, 0xd9, - 0x89, 0x91, 0x43, 0x2f, 0x87, 0x0f, 0xbd, 0x3b, 0xe2, 0x9f, 0x88, 0xc3, 0x5d, 0xf4, 0x93, 0x3c, - 0xab, 0xa3, 0x1b, 0xce, 0x99, 0xa6, 0xb5, 0xdf, 0x75, 0x4c, 0x62, 0x8d, 0xcc, 0x6d, 0x3e, 0xe0, - 0x93, 0x5e, 0xf5, 0x02, 0xab, 0x1e, 0x3e, 0xdc, 0xf2, 0x36, 0x24, 0xd6, 0x09, 0x1f, 0x11, 0xb1, - 0x63, 0x3a, 0x5a, 0x9b, 0xbb, 0x50, 0xec, 0x81, 0x94, 0xb2, 0xcf, 0xf8, 0xa2, 0xac, 0x54, 0x17, - 0x5f, 0xf0, 0xb5, 0xb1, 0xb6, 0xcd, 0xbe, 0x86, 0x88, 0x51, 0xdf, 0x3b, 0x4d, 0x0a, 0xe8, 0x87, - 0x0f, 0xd3, 0x90, 0xd0, 0x7a, 0xec, 0x18, 0x4e, 0x8c, 0x38, 0xe5, 0xf4, 0x41, 0x7e, 0x06, 0x52, - 0xfc, 0x30, 0x00, 0x92, 0x20, 0x76, 0x0d, 0xef, 0xd3, 0xf7, 0xe4, 0x14, 0xf2, 0x13, 0x2d, 0x40, - 0x82, 0x36, 0x9e, 0x7f, 0xe6, 0x35, 0xb3, 0x30, 0xd0, 0xfa, 0x05, 0xda, 0x48, 0x85, 0x91, 0xc9, - 0x57, 0x20, 0xbd, 0x68, 0x12, 0x2d, 0x0c, 0xa2, 0x65, 0x18, 0x1a, 0x6d, 0x73, 0xb7, 0xc7, 0xb5, - 0x42, 0x61, 0x0f, 0xe8, 0x08, 0x24, 0xd9, 0xd7, 0x31, 0xfc, 0x28, 0x11, 0x7f, 0x92, 0x6b, 0x90, - 0xa2, 0xd8, 0x6b, 0x5d, 0xe2, 0xbf, 0xb8, 0x07, 0x91, 0x33, 0xfc, 0x5b, 0x49, 0x0e, 0x1f, 0xf5, - 0x1a, 0x8b, 0x20, 0xde, 0xd2, 0x1c, 0x8d, 0xf7, 0x9b, 0xfe, 0x96, 0xdf, 0x09, 0x69, 0x0e, 0x62, - 0xa3, 0xb3, 0x10, 0x33, 0xbb, 0x36, 0x3f, 0x0c, 0x54, 0x1a, 0xd5, 0x95, 0xb5, 0x6e, 0x35, 0x4e, - 0x74, 0x46, 0x21, 0xc4, 0xd5, 0xd5, 0x91, 0x6a, 0xf1, 0x58, 0x40, 0x2d, 0x3a, 0xd8, 0xd9, 0xda, - 0x76, 0xbc, 0x1f, 0x6c, 0x38, 0x07, 0x54, 0xc1, 0x55, 0x94, 0x5b, 0x51, 0x98, 0xf5, 0xd5, 0x5e, - 0xc7, 0x96, 0xad, 0x9b, 0x06, 0xd3, 0x26, 0xae, 0x29, 0xc8, 0xd7, 0x40, 0x5e, 0x3f, 0x42, 0x55, - 0x9e, 0x82, 0x58, 0xa5, 0xdb, 0x45, 0x25, 0x48, 0xd3, 0xe7, 0xa6, 0xc9, 0x74, 0x25, 0xae, 0xb8, - 0xcf, 0xa4, 0xce, 0x36, 0xb7, 0x9d, 0x1b, 0x9a, 0xe5, 0x7e, 0x3c, 0x2a, 0x9e, 0xe5, 0x27, 0x21, - 0x53, 0x33, 0x0d, 0x1b, 0x1b, 0x76, 0x8f, 0x3a, 0xe6, 0x5b, 0x6d, 0xb3, 0x79, 0x8d, 0x23, 0xb0, - 0x07, 0x22, 0x6c, 0xad, 0xdb, 0xa5, 0x9c, 0x71, 0x85, 0xfc, 0x64, 0xf3, 0xb5, 0xba, 0x36, 0x52, - 0x3c, 0xe7, 0x0e, 0x27, 0x1e, 0xde, 0x41, 0xcf, 0xc3, 0x8e, 0xc0, 0x9d, 0x83, 0x13, 0xe9, 0x1a, - 0xde, 0xb7, 0x0f, 0x3b, 0x8f, 0x9e, 0x83, 0xcc, 0x3a, 0xbd, 0xbd, 0xe1, 0x19, 0xbc, 0x8f, 0x4a, - 0x90, 0xc2, 0xad, 0xb3, 0xe7, 0xce, 0x3d, 0xf2, 0x24, 0xd3, 0xf2, 0xcb, 0x13, 0x8a, 0x28, 0x40, - 0xb3, 0x90, 0xb1, 0x71, 0xb3, 0x7b, 0xf6, 0xdc, 0xf9, 0x6b, 0x8f, 0x30, 0xb5, 0xba, 0x3c, 0xa1, - 0x78, 0x45, 0xe5, 0x34, 0xe9, 0xf1, 0xd7, 0x3f, 0x36, 0x17, 0xa9, 0x26, 0x20, 0x66, 0xf7, 0x3a, - 0x6f, 0x99, 0x6e, 0xfc, 0x54, 0x02, 0xe6, 0x7d, 0xb5, 0x6c, 0x71, 0xb9, 0xae, 0xb5, 0xf5, 0x96, - 0xe6, 0xdd, 0xb9, 0x21, 0xf9, 0xfa, 0x4f, 0x29, 0x46, 0xac, 0x1a, 0x07, 0x4a, 0x51, 0xfe, 0x95, - 0x08, 0xe4, 0xae, 0x0a, 0xe4, 0x06, 0x76, 0xd0, 0x05, 0x00, 0xf7, 0x4d, 0x62, 0xaa, 0x1c, 0x5f, - 0xe8, 0x7f, 0xd7, 0x82, 0xcb, 0xa3, 0xf8, 0xc8, 0xd1, 0xe3, 0x54, 0x01, 0xbb, 0xa6, 0xcd, 0x3f, - 0x24, 0x0c, 0x61, 0x75, 0x89, 0xd1, 0x83, 0x80, 0xa8, 0x55, 0x53, 0xaf, 0x9b, 0x8e, 0x6e, 0xec, - 0xa8, 0x5d, 0xf3, 0x06, 0xff, 0x3c, 0x3b, 0xa6, 0x48, 0xb4, 0xe6, 0x2a, 0xad, 0x58, 0x27, 0xe5, - 0xa4, 0xd1, 0x19, 0x17, 0x85, 0xc4, 0x98, 0x5a, 0xab, 0x65, 0x61, 0xdb, 0xe6, 0x86, 0x4b, 0x3c, - 0xa2, 0x0b, 0x90, 0xea, 0xf6, 0xb6, 0x54, 0x61, 0x25, 0xb2, 0x67, 0xef, 0x1c, 0x36, 0xe7, 0x85, - 0x6e, 0xf0, 0x59, 0x9f, 0xec, 0xf6, 0xb6, 0x88, 0xa6, 0xdc, 0x0d, 0xb9, 0x21, 0x8d, 0xc9, 0x5e, - 0xf7, 0xda, 0x41, 0x2f, 0x0c, 0xe1, 0x3d, 0x50, 0xbb, 0x96, 0x6e, 0x5a, 0xba, 0xb3, 0x4f, 0x4f, - 0xf1, 0xc5, 0x14, 0x49, 0x54, 0xac, 0xf3, 0x72, 0xf9, 0x1a, 0x14, 0x1b, 0x34, 0xf6, 0xf0, 0x5a, - 0x7e, 0xce, 0x6b, 0x5f, 0x24, 0xbc, 0x7d, 0x23, 0x5b, 0x16, 0x1d, 0x68, 0x59, 0x75, 0x65, 0xa4, - 0x66, 0x3e, 0x7a, 0x38, 0xcd, 0x0c, 0xae, 0x6e, 0x7f, 0x78, 0x2c, 0x30, 0x29, 0xb9, 0xd7, 0xe3, - 0x33, 0x59, 0xe3, 0x2a, 0x65, 0x58, 0x5a, 0xa1, 0x74, 0xf0, 0x22, 0x5a, 0x0a, 0x31, 0x9d, 0xa5, - 0xd0, 0xe9, 0x23, 0x3f, 0x09, 0xf9, 0x75, 0xcd, 0x72, 0x1a, 0xd8, 0xb9, 0x8c, 0xb5, 0x16, 0xb6, - 0x82, 0xab, 0x6c, 0x5e, 0xac, 0xb2, 0x08, 0xe2, 0x74, 0x29, 0x65, 0xab, 0x0c, 0xfd, 0x2d, 0xef, - 0x42, 0x9c, 0x9e, 0xe2, 0x75, 0x57, 0x60, 0xce, 0xc1, 0x56, 0x60, 0x62, 0x3f, 0xf7, 0x1d, 0x6c, - 0x8b, 0xcc, 0x17, 0x7d, 0x40, 0x8f, 0x89, 0x75, 0x34, 0x76, 0xf0, 0x3a, 0xca, 0x95, 0x90, 0xaf, - 0xa6, 0x6d, 0x48, 0x55, 0x89, 0xf9, 0x5d, 0x5a, 0x74, 0x1b, 0x12, 0xf1, 0x1a, 0x82, 0x56, 0xa0, - 0xd8, 0xd5, 0x2c, 0x87, 0x7e, 0x00, 0xb5, 0x4b, 0x7b, 0xc1, 0xf5, 0x7c, 0x6e, 0x70, 0xd6, 0x05, - 0x3a, 0xcb, 0xdf, 0x92, 0xef, 0xfa, 0x0b, 0xe5, 0x3f, 0x88, 0x43, 0x92, 0x0b, 0xe3, 0x29, 0x48, - 0x71, 0xb1, 0x72, 0xcd, 0xbc, 0x6b, 0x61, 0x70, 0x31, 0x5a, 0x70, 0x17, 0x0d, 0x8e, 0x27, 0x78, - 0xd0, 0xfd, 0x90, 0x6e, 0xee, 0x6a, 0xba, 0xa1, 0xea, 0x2d, 0xee, 0x00, 0x66, 0x5f, 0x7f, 0x6d, - 0x2e, 0x55, 0x23, 0x65, 0x4b, 0x8b, 0x4a, 0x8a, 0x56, 0x2e, 0xb5, 0xc8, 0xca, 0xbf, 0x8b, 0xf5, - 0x9d, 0x5d, 0x87, 0xcf, 0x2e, 0xfe, 0x84, 0x9e, 0x80, 0x38, 0x51, 0x08, 0xfe, 0x79, 0x6c, 0x69, - 0xc0, 0x99, 0x77, 0xb3, 0x3e, 0xd5, 0x34, 0x79, 0xf1, 0x07, 0x7e, 0x6f, 0x2e, 0xa2, 0x50, 0x0e, - 0x54, 0x83, 0x7c, 0x5b, 0xb3, 0x1d, 0x95, 0xae, 0x5a, 0xe4, 0xf5, 0x09, 0x0a, 0x71, 0x6c, 0x50, - 0x20, 0x5c, 0xb0, 0xbc, 0xe9, 0x59, 0xc2, 0xc5, 0x8a, 0x5a, 0xe8, 0x24, 0x48, 0x14, 0xa4, 0x69, - 0x76, 0x3a, 0xba, 0xc3, 0x7c, 0xa9, 0x24, 0x95, 0x7b, 0x81, 0x94, 0xd7, 0x68, 0x31, 0xf5, 0xa8, - 0x8e, 0x43, 0x86, 0x7e, 0x90, 0x47, 0x49, 0xd8, 0xd1, 0xf1, 0x34, 0x29, 0xa0, 0x95, 0x27, 0xa0, - 0xe8, 0xd9, 0x46, 0x46, 0x92, 0x66, 0x28, 0x5e, 0x31, 0x25, 0x7c, 0x18, 0xa6, 0x0d, 0xbc, 0x47, - 0x0f, 0xb3, 0x07, 0xa8, 0x33, 0x94, 0x1a, 0x91, 0xba, 0xab, 0x41, 0x8e, 0xfb, 0xa0, 0xd0, 0x14, - 0xc2, 0x67, 0xb4, 0x40, 0x69, 0xf3, 0x6e, 0x29, 0x25, 0x3b, 0x06, 0x69, 0xad, 0xdb, 0x65, 0x04, - 0x59, 0x6e, 0x1b, 0xbb, 0x5d, 0x5a, 0x75, 0x1a, 0x26, 0x69, 0x1f, 0x2d, 0x6c, 0xf7, 0xda, 0x0e, - 0x07, 0xc9, 0x51, 0x9a, 0x22, 0xa9, 0x50, 0x58, 0x39, 0xa5, 0xbd, 0x07, 0xf2, 0xf8, 0xba, 0xde, - 0xc2, 0x46, 0x13, 0x33, 0xba, 0x3c, 0xa5, 0xcb, 0x89, 0x42, 0x4a, 0x74, 0x0a, 0x5c, 0x9b, 0xa7, - 0x0a, 0x7b, 0x5c, 0x60, 0x78, 0xa2, 0xbc, 0xc2, 0x8a, 0xe5, 0x19, 0x88, 0x2f, 0x6a, 0x8e, 0x46, - 0x9c, 0x0a, 0x67, 0x8f, 0x2d, 0x32, 0x39, 0x85, 0xfc, 0x94, 0xbf, 0x1e, 0x85, 0xf8, 0x55, 0xd3, - 0xc1, 0xe8, 0x51, 0x9f, 0xc3, 0x57, 0x18, 0xa6, 0xcf, 0x0d, 0x7d, 0xc7, 0xc0, 0xad, 0x15, 0x7b, - 0xc7, 0x77, 0x7b, 0x86, 0xa7, 0x4e, 0xd1, 0x80, 0x3a, 0x4d, 0x43, 0xc2, 0x32, 0x7b, 0x46, 0x4b, - 0x9c, 0xba, 0xa6, 0x0f, 0xa8, 0x0e, 0x69, 0x57, 0x4b, 0xe2, 0x61, 0x5a, 0x52, 0x24, 0x5a, 0x42, - 0x74, 0x98, 0x17, 0x28, 0xa9, 0x2d, 0xae, 0x2c, 0x55, 0xc8, 0xb8, 0xc6, 0x8b, 0x6b, 0xdb, 0x78, - 0x0a, 0xeb, 0xb1, 0x91, 0x85, 0xc4, 0x1d, 0x7b, 0x57, 0x78, 0x4c, 0xe3, 0x24, 0xb7, 0x82, 0x4b, - 0x2f, 0xa0, 0x56, 0xfc, 0x26, 0x8f, 0x14, 0xed, 0x97, 0xa7, 0x56, 0xec, 0x36, 0x8f, 0x3b, 0x21, - 0x63, 0xeb, 0x3b, 0x86, 0xe6, 0xf4, 0x2c, 0xcc, 0x35, 0xcf, 0x2b, 0x90, 0xbf, 0x10, 0x81, 0x24, - 0xd3, 0x64, 0x9f, 0xdc, 0x22, 0xc3, 0xe5, 0x16, 0x1d, 0x25, 0xb7, 0xd8, 0xed, 0xcb, 0xad, 0x02, - 0xe0, 0x36, 0xc6, 0xe6, 0x17, 0x2c, 0x0c, 0xf1, 0x16, 0x58, 0x13, 0x1b, 0xfa, 0x0e, 0x9f, 0xa8, - 0x3e, 0x26, 0xf9, 0xbf, 0x45, 0x88, 0xe3, 0xca, 0xeb, 0x51, 0x05, 0xf2, 0xa2, 0x5d, 0xea, 0x76, - 0x5b, 0xdb, 0xe1, 0xba, 0x73, 0xd7, 0xc8, 0xc6, 0x5d, 0x6c, 0x6b, 0x3b, 0x4a, 0x96, 0xb7, 0x87, - 0x3c, 0x0c, 0x1f, 0x87, 0xe8, 0x88, 0x71, 0x08, 0x0c, 0x7c, 0xec, 0xf6, 0x06, 0x3e, 0x30, 0x44, - 0xf1, 0xfe, 0x21, 0xfa, 0x74, 0x94, 0x06, 0x2f, 0x5d, 0xd3, 0xd6, 0xda, 0x6f, 0xc7, 0x8c, 0x38, - 0x0e, 0x99, 0xae, 0xd9, 0x56, 0x59, 0x0d, 0xfb, 0x1a, 0x21, 0xdd, 0x35, 0xdb, 0xca, 0xc0, 0xb0, - 0x27, 0xde, 0xa4, 0xe9, 0x92, 0x7c, 0x13, 0xa4, 0x96, 0xea, 0x97, 0x9a, 0x05, 0x39, 0x26, 0x0a, - 0xbe, 0x96, 0x3d, 0x4c, 0x64, 0x40, 0x17, 0xc7, 0xc8, 0xe0, 0xda, 0xcb, 0x9a, 0xcd, 0x28, 0x15, - 0x4e, 0x47, 0x38, 0x98, 0xe9, 0x1f, 0x16, 0xf5, 0xfa, 0xd5, 0x52, 0xe1, 0x74, 0xf2, 0x4f, 0x45, - 0x00, 0x96, 0x89, 0x64, 0x69, 0x7f, 0xc9, 0x2a, 0x64, 0xd3, 0x26, 0xa8, 0x81, 0x37, 0xcf, 0x8e, - 0x1a, 0x34, 0xfe, 0xfe, 0x9c, 0xed, 0x6f, 0x77, 0x0d, 0xf2, 0x9e, 0x32, 0xda, 0x58, 0x34, 0x66, - 0xf6, 0x00, 0x8f, 0xba, 0x81, 0x1d, 0x25, 0x77, 0xdd, 0xf7, 0x24, 0xff, 0xcb, 0x08, 0x64, 0x68, - 0x9b, 0x56, 0xb0, 0xa3, 0x05, 0xc6, 0x30, 0x72, 0xfb, 0x63, 0x78, 0x17, 0x00, 0x83, 0xb1, 0xf5, - 0x97, 0x30, 0xd7, 0xac, 0x0c, 0x2d, 0x69, 0xe8, 0x2f, 0x61, 0x74, 0xde, 0x15, 0x78, 0xec, 0x60, - 0x81, 0x0b, 0x8f, 0x9b, 0x8b, 0xfd, 0x28, 0xa4, 0xe8, 0x85, 0x64, 0x7b, 0x36, 0x77, 0xa2, 0x93, - 0x46, 0xaf, 0xb3, 0xb1, 0x67, 0xcb, 0x2f, 0x42, 0x6a, 0x63, 0x8f, 0xe5, 0x42, 0x8e, 0x43, 0xc6, - 0x32, 0x4d, 0xbe, 0x26, 0x33, 0x5f, 0x28, 0x4d, 0x0a, 0xe8, 0x12, 0x24, 0xe2, 0xff, 0xa8, 0x17, - 0xff, 0x7b, 0x09, 0x8c, 0xd8, 0x58, 0x09, 0x8c, 0xd3, 0xff, 0x39, 0x02, 0x59, 0x9f, 0x7d, 0x40, - 0x8f, 0xc0, 0x1d, 0xd5, 0xe5, 0xb5, 0xda, 0x33, 0xea, 0xd2, 0xa2, 0x7a, 0x71, 0xb9, 0x72, 0xc9, - 0xfb, 0xde, 0xae, 0x74, 0xe4, 0xe6, 0xad, 0x79, 0xe4, 0xa3, 0xdd, 0x34, 0xe8, 0xd6, 0x12, 0x3a, - 0x03, 0xd3, 0x41, 0x96, 0x4a, 0xb5, 0x51, 0x5f, 0xdd, 0x90, 0x22, 0xa5, 0x3b, 0x6e, 0xde, 0x9a, - 0x9f, 0xf4, 0x71, 0x54, 0xb6, 0x6c, 0x6c, 0x38, 0x83, 0x0c, 0xb5, 0xb5, 0x95, 0x95, 0xa5, 0x0d, - 0x29, 0x3a, 0xc0, 0xc0, 0x0d, 0xf6, 0x29, 0x98, 0x0c, 0x32, 0xac, 0x2e, 0x2d, 0x4b, 0xb1, 0x12, - 0xba, 0x79, 0x6b, 0xbe, 0xe0, 0xa3, 0x5e, 0xd5, 0xdb, 0xa5, 0xf4, 0xfb, 0x3e, 0x3e, 0x3b, 0xf1, - 0xea, 0x3f, 0x9a, 0x8d, 0x90, 0x9e, 0xe5, 0x03, 0x36, 0x02, 0x3d, 0x08, 0x47, 0x1b, 0x4b, 0x97, - 0x56, 0xeb, 0x8b, 0xea, 0x4a, 0xe3, 0x92, 0xd8, 0x9c, 0x11, 0xbd, 0x2b, 0xde, 0xbc, 0x35, 0x9f, - 0xe5, 0x5d, 0x1a, 0x45, 0xbd, 0xae, 0xd4, 0xaf, 0xae, 0x6d, 0xd4, 0xa5, 0x08, 0xa3, 0x5e, 0xb7, - 0xf0, 0x75, 0xd3, 0x61, 0x37, 0x16, 0x3e, 0x0c, 0xc7, 0x86, 0x50, 0xbb, 0x1d, 0x9b, 0xbc, 0x79, - 0x6b, 0x3e, 0xbf, 0x6e, 0x61, 0x36, 0x7f, 0x28, 0xc7, 0x02, 0xcc, 0x0c, 0x72, 0xac, 0xad, 0xaf, - 0x35, 0x2a, 0xcb, 0xd2, 0x7c, 0x49, 0xba, 0x79, 0x6b, 0x3e, 0x27, 0x8c, 0x21, 0xa1, 0xf7, 0x7a, - 0xf6, 0x56, 0x45, 0x3b, 0x1f, 0x4d, 0x05, 0x72, 0x79, 0x2c, 0x8e, 0xe8, 0x6a, 0x96, 0xd6, 0x19, - 0x1d, 0xee, 0x0c, 0x26, 0x62, 0x47, 0x44, 0x40, 0x21, 0xdb, 0xcd, 0xf2, 0xcb, 0x51, 0x28, 0xba, - 0xfe, 0xf5, 0x3a, 0x7d, 0x29, 0x7a, 0xd4, 0x9f, 0x9a, 0xc9, 0x8e, 0x5c, 0xd9, 0x18, 0xb5, 0xc8, - 0xdc, 0xbc, 0x03, 0xd2, 0xc2, 0x4f, 0xe3, 0x16, 0x64, 0x7e, 0x90, 0xaf, 0xce, 0x29, 0x38, 0xab, - 0xcb, 0x81, 0x9e, 0x86, 0x8c, 0x6b, 0x4f, 0xdc, 0x2b, 0x80, 0x46, 0x1b, 0x20, 0xce, 0xef, 0xf1, - 0xa0, 0x27, 0xbd, 0x48, 0x22, 0x3e, 0x2a, 0x36, 0xb9, 0xca, 0x08, 0x38, 0xb3, 0xa0, 0x97, 0x97, - 0xf8, 0x4c, 0xe4, 0xbd, 0xa7, 0xd7, 0x27, 0xec, 0xa9, 0x2c, 0xb8, 0x62, 0x8e, 0x4a, 0xba, 0xa3, - 0xed, 0x55, 0x69, 0x7c, 0x75, 0x14, 0x52, 0xa4, 0x72, 0x87, 0x7f, 0x1d, 0x1e, 0x53, 0x92, 0x1d, - 0x6d, 0xef, 0x92, 0x66, 0x5f, 0x89, 0xa7, 0x63, 0x52, 0x5c, 0xfe, 0xa5, 0x08, 0x14, 0x82, 0x7d, - 0x44, 0x0f, 0x00, 0x22, 0x1c, 0xda, 0x0e, 0x56, 0x89, 0xd5, 0xa1, 0xc2, 0x12, 0xb8, 0xc5, 0x8e, - 0xb6, 0x57, 0xd9, 0xc1, 0xab, 0xbd, 0x0e, 0x6d, 0x80, 0x8d, 0x14, 0x90, 0x04, 0xb1, 0x18, 0x27, - 0x2e, 0xcc, 0x63, 0x83, 0x17, 0x02, 0x72, 0x82, 0x6a, 0x9e, 0x58, 0xb7, 0x0f, 0xfd, 0xde, 0x5c, - 0x84, 0xa5, 0xd0, 0x0b, 0x0c, 0xd4, 0x3d, 0x33, 0x10, 0xe8, 0x4f, 0x2c, 0xd8, 0x1f, 0xf9, 0x69, - 0x28, 0xf6, 0x09, 0x15, 0xc9, 0x90, 0xe7, 0xd9, 0x02, 0xba, 0x67, 0xc2, 0xfc, 0xe6, 0x8c, 0x92, - 0x65, 0x59, 0x01, 0xba, 0x3f, 0x5d, 0x4e, 0x7f, 0xfe, 0x95, 0xb9, 0x08, 0x4d, 0xa4, 0x3f, 0x00, - 0xf9, 0x80, 0x58, 0x45, 0x06, 0x2f, 0xe2, 0x65, 0xf0, 0x3c, 0xe2, 0x17, 0x20, 0x47, 0x0c, 0x28, - 0x6e, 0x71, 0xda, 0xfb, 0xa1, 0xc8, 0x0c, 0x7c, 0xbf, 0xc0, 0x99, 0x87, 0xb5, 0x22, 0xa4, 0x2e, - 0x0b, 0x97, 0x2b, 0x28, 0xfb, 0xac, 0xa0, 0xba, 0xa4, 0xd9, 0xd5, 0x77, 0xbd, 0xfa, 0xfa, 0x6c, - 0xe4, 0xad, 0x99, 0xa0, 0x5f, 0x7e, 0x17, 0x1c, 0xf7, 0x55, 0x6a, 0x5b, 0x4d, 0x3d, 0x90, 0x8d, - 0x28, 0xfa, 0x34, 0x8d, 0x54, 0x86, 0x65, 0x15, 0x0e, 0xcc, 0x6d, 0x1c, 0x9c, 0x48, 0x2b, 0x1d, - 0x6c, 0x29, 0xc2, 0x13, 0x1e, 0xc3, 0x73, 0x97, 0xff, 0x37, 0x0d, 0x29, 0x05, 0xbf, 0xa7, 0x87, - 0x6d, 0x07, 0x9d, 0x85, 0x38, 0x6e, 0xee, 0x9a, 0xc3, 0x52, 0x45, 0xa4, 0x73, 0x0b, 0x9c, 0xae, - 0xde, 0xdc, 0x35, 0x2f, 0x4f, 0x28, 0x94, 0x16, 0x9d, 0x83, 0xc4, 0x76, 0xbb, 0xc7, 0xf3, 0x17, - 0x7d, 0x16, 0xc3, 0xcf, 0x74, 0x91, 0x10, 0x5d, 0x9e, 0x50, 0x18, 0x35, 0x79, 0x15, 0xbd, 0x5f, - 0x35, 0x76, 0xf0, 0xab, 0x96, 0x8c, 0x6d, 0xfa, 0x2a, 0x42, 0x8b, 0xaa, 0x00, 0xba, 0xa1, 0x3b, - 0x2a, 0x8d, 0xed, 0xb9, 0x87, 0x78, 0xf7, 0x68, 0x4e, 0xdd, 0xa1, 0xd9, 0x80, 0xcb, 0x13, 0x4a, - 0x46, 0x17, 0x0f, 0xa4, 0xb9, 0xef, 0xe9, 0x61, 0x6b, 0x9f, 0x3b, 0x86, 0x23, 0x9b, 0xfb, 0x2e, - 0x42, 0x44, 0x9a, 0x4b, 0xa9, 0x51, 0x1d, 0xb2, 0xf4, 0x43, 0x5a, 0x36, 0x89, 0xf9, 0x5d, 0x9f, - 0xf2, 0x28, 0xe6, 0x2a, 0x21, 0xa5, 0xf3, 0xfa, 0xf2, 0x84, 0x02, 0x5b, 0xee, 0x13, 0xb1, 0x94, - 0xec, 0x2e, 0x28, 0x67, 0x8f, 0xdf, 0x70, 0x38, 0x37, 0x0a, 0x83, 0x5e, 0x08, 0xb5, 0xb1, 0x77, - 0x79, 0x42, 0x49, 0x35, 0xd9, 0x4f, 0xd2, 0xff, 0x16, 0x6e, 0xeb, 0xd7, 0xb1, 0x45, 0xf8, 0x33, - 0x07, 0xf7, 0x7f, 0x91, 0x51, 0x52, 0x84, 0x4c, 0x4b, 0x3c, 0x10, 0x6b, 0x8b, 0x8d, 0x16, 0xef, - 0x06, 0x0c, 0x1a, 0xeb, 0xc0, 0x38, 0x1b, 0x2d, 0xd1, 0x89, 0x34, 0xe6, 0xbf, 0xd1, 0x13, 0xae, - 0xe7, 0x9a, 0x1d, 0x74, 0x16, 0x03, 0x1d, 0x60, 0x39, 0x8c, 0x09, 0xe1, 0xc1, 0xa2, 0x55, 0x28, - 0xb4, 0x75, 0xdb, 0x51, 0x6d, 0x43, 0xeb, 0xda, 0xbb, 0xa6, 0x63, 0xd3, 0x64, 0x40, 0xf6, 0xec, - 0x7d, 0xa3, 0x10, 0x96, 0x75, 0xdb, 0x69, 0x08, 0xe2, 0xcb, 0x13, 0x4a, 0xbe, 0xed, 0x2f, 0x20, - 0x78, 0xe6, 0xf6, 0x36, 0xb6, 0x5c, 0x40, 0x9a, 0x34, 0x38, 0x00, 0x6f, 0x8d, 0x50, 0x0b, 0x7e, - 0x82, 0x67, 0xfa, 0x0b, 0xd0, 0xf7, 0xc2, 0x54, 0xdb, 0xd4, 0x5a, 0x2e, 0x9c, 0xda, 0xdc, 0xed, - 0x19, 0xd7, 0x68, 0x86, 0x21, 0x7b, 0xf6, 0xd4, 0xc8, 0x46, 0x9a, 0x5a, 0x4b, 0x40, 0xd4, 0x08, - 0xc3, 0xe5, 0x09, 0x65, 0xb2, 0xdd, 0x5f, 0x88, 0xde, 0x0d, 0xd3, 0x5a, 0xb7, 0xdb, 0xde, 0xef, - 0x47, 0x2f, 0x52, 0xf4, 0xd3, 0xa3, 0xd0, 0x2b, 0x84, 0xa7, 0x1f, 0x1e, 0x69, 0x03, 0xa5, 0x68, - 0x03, 0xa4, 0xae, 0x85, 0xe9, 0x97, 0x3f, 0x5d, 0xee, 0xc2, 0xd0, 0xeb, 0xbb, 0xb2, 0x67, 0x4f, - 0x8c, 0xc2, 0x5e, 0x67, 0xf4, 0xc2, 0xe3, 0xb9, 0x3c, 0xa1, 0x14, 0xbb, 0xc1, 0x22, 0x86, 0x6a, - 0x36, 0x31, 0xbd, 0x62, 0x8a, 0xa3, 0x4e, 0x86, 0xa1, 0x52, 0xfa, 0x20, 0x6a, 0xa0, 0xa8, 0x9a, - 0xe2, 0x27, 0xf7, 0xf8, 0xfd, 0x2f, 0x27, 0x20, 0xeb, 0x33, 0x2c, 0x68, 0x06, 0x52, 0xfc, 0x24, - 0x83, 0x38, 0xf1, 0xc7, 0x1f, 0xe5, 0x02, 0xe4, 0xfc, 0xc6, 0x44, 0xfe, 0x40, 0xc4, 0xe5, 0xa4, - 0x1f, 0xe4, 0xcf, 0x04, 0x53, 0x8a, 0x19, 0x2f, 0x5b, 0x78, 0x8f, 0x58, 0x45, 0x44, 0x3d, 0xdb, - 0x65, 0xca, 0xd1, 0x42, 0xbe, 0x88, 0xa1, 0x39, 0xc8, 0x76, 0xcf, 0x76, 0x5d, 0x92, 0x18, 0x25, - 0x81, 0xee, 0xd9, 0xae, 0x20, 0xb8, 0x1b, 0x72, 0xa4, 0xa7, 0xaa, 0xdf, 0xdb, 0xc8, 0x28, 0x59, - 0x52, 0xc6, 0x49, 0xe4, 0x7f, 0x1f, 0x05, 0xa9, 0xdf, 0x00, 0xb9, 0xb9, 0xc6, 0xc8, 0xa1, 0x73, - 0x8d, 0xc7, 0xfa, 0xb3, 0x9c, 0x5e, 0x62, 0x73, 0x19, 0x24, 0x2f, 0x3f, 0xc7, 0x16, 0x82, 0xd1, - 0xde, 0x53, 0x9f, 0x9b, 0xa7, 0x14, 0x9b, 0x7d, 0x7e, 0xdf, 0xc5, 0xc0, 0x9e, 0x8c, 0xb8, 0x40, - 0xbc, 0x7f, 0x88, 0x5d, 0x7f, 0x61, 0xb3, 0xdb, 0xd2, 0x1c, 0x2c, 0xf2, 0x25, 0xbe, 0xed, 0x99, - 0xfb, 0xa1, 0xa8, 0x75, 0xbb, 0xaa, 0xed, 0x68, 0x0e, 0xe6, 0xcb, 0x7a, 0x82, 0xa5, 0x0d, 0xb5, - 0x6e, 0xb7, 0x41, 0x4a, 0xd9, 0xb2, 0x7e, 0x1f, 0x14, 0x88, 0x4d, 0xd6, 0xb5, 0xb6, 0xca, 0xb3, - 0x07, 0x49, 0xb6, 0xfa, 0xf3, 0xd2, 0xcb, 0xb4, 0x50, 0x6e, 0xb9, 0x23, 0x4e, 0xed, 0xb1, 0x1b, - 0x7e, 0x45, 0x7c, 0xe1, 0x17, 0xe2, 0x37, 0x25, 0x30, 0xf9, 0x88, 0xcb, 0x25, 0x86, 0x67, 0x7d, - 0xa7, 0x69, 0xa8, 0x76, 0x9d, 0x25, 0x42, 0xd2, 0x0a, 0x7b, 0x90, 0xdf, 0x1b, 0x85, 0xc9, 0x01, - 0xcb, 0x3d, 0x34, 0x1d, 0xee, 0xc5, 0x9d, 0xd1, 0x43, 0xc5, 0x9d, 0xcf, 0x04, 0xd3, 0xbd, 0xbe, - 0x95, 0xef, 0xf8, 0x80, 0x90, 0x99, 0xdd, 0x24, 0x0a, 0xcd, 0x41, 0x7c, 0x19, 0x61, 0xaa, 0xe6, - 0x9b, 0x30, 0xbd, 0xb5, 0xff, 0x92, 0x66, 0x38, 0xba, 0x81, 0xd5, 0x81, 0x51, 0x1b, 0x5c, 0x4a, - 0x57, 0x74, 0x7b, 0x0b, 0xef, 0x6a, 0xd7, 0x75, 0x53, 0x34, 0x6b, 0xca, 0xe5, 0xf7, 0x92, 0xbe, - 0xb2, 0x02, 0x85, 0xe0, 0xd2, 0x83, 0x0a, 0x10, 0x75, 0xf6, 0x78, 0xff, 0xa3, 0xce, 0x1e, 0x7a, - 0x98, 0xe7, 0x87, 0xa2, 0x34, 0x3f, 0x34, 0xf8, 0x22, 0xce, 0xe7, 0x25, 0x87, 0x64, 0xd9, 0x9d, - 0x0d, 0xee, 0x72, 0xd4, 0x8f, 0x2a, 0x9f, 0x82, 0x62, 0xdf, 0x7a, 0x33, 0x2a, 0x5b, 0x28, 0x17, - 0x21, 0x1f, 0x58, 0x5c, 0xe4, 0x23, 0x30, 0x3d, 0x6c, 0xad, 0x90, 0x77, 0xdd, 0xf2, 0x80, 0xcd, - 0x47, 0xe7, 0x20, 0xed, 0x2e, 0x16, 0x43, 0xb2, 0x13, 0xb4, 0x17, 0x82, 0x58, 0x71, 0x49, 0x03, - 0x49, 0xee, 0x68, 0x20, 0xc9, 0x2d, 0xff, 0x00, 0xcc, 0x8c, 0x5a, 0x08, 0xfa, 0xba, 0x11, 0x77, - 0xb5, 0xf0, 0x08, 0x24, 0xf9, 0x3d, 0x72, 0x51, 0xba, 0xad, 0xc3, 0x9f, 0x88, 0x76, 0xb2, 0x45, - 0x21, 0xc6, 0x76, 0x7b, 0xe8, 0x83, 0xac, 0xc2, 0xb1, 0x91, 0x8b, 0xc1, 0xe8, 0x0d, 0x22, 0x06, - 0xc4, 0x37, 0x88, 0x9a, 0xa2, 0x39, 0x36, 0xed, 0xab, 0x38, 0x04, 0xc1, 0x9e, 0xe4, 0x0f, 0xc5, - 0xe0, 0xc8, 0xf0, 0x25, 0x01, 0xcd, 0x43, 0x8e, 0xf8, 0xdd, 0x4e, 0xd0, 0x45, 0x87, 0x8e, 0xb6, - 0xb7, 0xc1, 0xfd, 0x73, 0x9e, 0x60, 0x8f, 0xba, 0x09, 0x76, 0xb4, 0x09, 0x93, 0x6d, 0xb3, 0xa9, - 0xb5, 0x55, 0x9f, 0xc6, 0x73, 0x65, 0xbf, 0x67, 0x40, 0xd8, 0x75, 0x76, 0xbb, 0x74, 0x6b, 0x40, - 0xe9, 0x8b, 0x14, 0x63, 0xd9, 0xd5, 0x7c, 0xb4, 0x08, 0xd9, 0x8e, 0xa7, 0xc8, 0x87, 0x50, 0x76, - 0x3f, 0x9b, 0x6f, 0x48, 0x12, 0x43, 0xb7, 0x83, 0x92, 0x87, 0x36, 0xd1, 0xa3, 0x76, 0x56, 0x52, - 0x23, 0x77, 0x56, 0x86, 0x6d, 0x63, 0xa4, 0x87, 0x6f, 0x63, 0xbc, 0xcf, 0x3f, 0x34, 0x81, 0x45, - 0x74, 0x70, 0x67, 0x03, 0x35, 0x60, 0x9a, 0xf3, 0xb7, 0x02, 0xb2, 0x8f, 0x8e, 0x6b, 0x68, 0x90, - 0x60, 0x1f, 0x2d, 0xf6, 0xd8, 0xed, 0x89, 0x5d, 0xd8, 0xd2, 0xb8, 0xcf, 0x96, 0xfe, 0x7f, 0x36, - 0x14, 0xff, 0x31, 0x03, 0x69, 0x05, 0xdb, 0x5d, 0xb2, 0x70, 0xa2, 0x2a, 0x64, 0xf0, 0x5e, 0x13, - 0x77, 0x1d, 0x6f, 0xfb, 0x72, 0x58, 0x30, 0xc0, 0xa8, 0xeb, 0x82, 0x92, 0x78, 0xe2, 0x2e, 0x1b, - 0x7a, 0x94, 0x07, 0x5b, 0xa3, 0xe3, 0x26, 0xce, 0xee, 0x8f, 0xb6, 0xce, 0x8b, 0x68, 0x2b, 0x36, - 0xd2, 0xf9, 0x66, 0x5c, 0x7d, 0xe1, 0xd6, 0xa3, 0x3c, 0xdc, 0x8a, 0x87, 0xbc, 0x2c, 0x10, 0x6f, - 0xd5, 0x02, 0xf1, 0x56, 0x32, 0xa4, 0x9b, 0x23, 0x02, 0xae, 0xf3, 0x22, 0xe0, 0x4a, 0x85, 0xb4, - 0xb8, 0x2f, 0xe2, 0xba, 0x18, 0x8c, 0xb8, 0xd2, 0x23, 0x0c, 0x88, 0xe0, 0x1e, 0x19, 0x72, 0x3d, - 0xe5, 0x0b, 0xb9, 0x32, 0x23, 0xe3, 0x1d, 0x06, 0x32, 0x24, 0xe6, 0xaa, 0x05, 0x62, 0x2e, 0x08, - 0x91, 0xc1, 0x88, 0xa0, 0xeb, 0x7b, 0xfc, 0x41, 0x57, 0x76, 0x64, 0xdc, 0xc6, 0xc7, 0x7b, 0x58, - 0xd4, 0xf5, 0xa4, 0x1b, 0x75, 0xe5, 0x46, 0x86, 0x8d, 0xbc, 0x0f, 0xfd, 0x61, 0xd7, 0xda, 0x40, - 0xd8, 0x95, 0xe7, 0x7f, 0xb8, 0x61, 0x14, 0x44, 0x48, 0xdc, 0xb5, 0x36, 0x10, 0x77, 0x15, 0x42, - 0x00, 0x43, 0x02, 0xaf, 0xef, 0x1b, 0x1e, 0x78, 0x8d, 0x0e, 0x8d, 0x78, 0x33, 0xc7, 0x8b, 0xbc, - 0xd4, 0x11, 0x91, 0x17, 0x8b, 0x8e, 0x1e, 0x18, 0x09, 0x3f, 0x76, 0xe8, 0xb5, 0x39, 0x24, 0xf4, - 0x62, 0x41, 0xd2, 0xc9, 0x91, 0xe0, 0x63, 0xc4, 0x5e, 0x9b, 0x43, 0x62, 0x2f, 0x14, 0x0a, 0x7b, - 0x98, 0xe0, 0x2b, 0x21, 0x25, 0xe5, 0x53, 0xc4, 0xf5, 0xed, 0xb3, 0x53, 0xc4, 0x7f, 0xc0, 0x96, - 0x65, 0x5a, 0xe2, 0xc4, 0x2d, 0x7d, 0x90, 0x4f, 0x12, 0x67, 0xdc, 0xb3, 0x49, 0x07, 0x04, 0x6a, - 0xd4, 0x4f, 0xf3, 0xd9, 0x21, 0xf9, 0xf3, 0x11, 0x8f, 0x97, 0xfa, 0xb0, 0x7e, 0x47, 0x3e, 0xc3, - 0x1d, 0x79, 0x5f, 0xf8, 0x16, 0x0d, 0x86, 0x6f, 0x73, 0x90, 0x25, 0xfe, 0x57, 0x5f, 0x64, 0xa6, - 0x75, 0xdd, 0xc8, 0x4c, 0x1c, 0x35, 0x60, 0x41, 0x1e, 0x5f, 0x56, 0xd8, 0x0e, 0x4f, 0xd1, 0x3d, - 0x76, 0xc1, 0x62, 0x0a, 0xf4, 0x10, 0x4c, 0xf9, 0x68, 0x5d, 0xbf, 0x8e, 0x85, 0x29, 0x92, 0x4b, - 0x5d, 0xe1, 0x0e, 0xde, 0xbf, 0x8a, 0x78, 0x12, 0xf2, 0x42, 0xba, 0x61, 0xd1, 0x57, 0xe4, 0x4d, - 0x8a, 0xbe, 0xa2, 0xb7, 0x1d, 0x7d, 0xf9, 0xfd, 0xd4, 0x58, 0xd0, 0x4f, 0xfd, 0x8b, 0x88, 0x37, - 0x26, 0x6e, 0x2c, 0xd5, 0x34, 0x5b, 0x98, 0x7b, 0x8e, 0xf4, 0x37, 0x71, 0x2a, 0xda, 0xe6, 0x0e, - 0xf7, 0x0f, 0xc9, 0x4f, 0x42, 0xe5, 0x2e, 0x1c, 0x19, 0xbe, 0x2e, 0xb8, 0x4e, 0x67, 0xc2, 0x7f, - 0x2e, 0x98, 0x1f, 0x96, 0x4d, 0x7a, 0x87, 0x65, 0xdd, 0x2f, 0xf4, 0x52, 0xbe, 0x2f, 0xf4, 0xd0, - 0x13, 0x90, 0xa1, 0x19, 0x51, 0xd5, 0xec, 0x8a, 0x3f, 0xf3, 0x71, 0x7c, 0xf4, 0x41, 0x59, 0x9b, - 0x1e, 0xe1, 0x63, 0x87, 0x6b, 0x3d, 0x8f, 0x21, 0x13, 0xf0, 0x18, 0xee, 0x84, 0x0c, 0x69, 0x3d, - 0xbb, 0xae, 0x1a, 0xf8, 0xe7, 0x9d, 0xa2, 0x40, 0x7e, 0x37, 0xa0, 0xc1, 0x45, 0x02, 0x5d, 0x86, - 0x24, 0xbe, 0x4e, 0xef, 0xfe, 0x63, 0x07, 0x10, 0x8f, 0x0c, 0xba, 0xa6, 0xa4, 0xba, 0x3a, 0x43, - 0x84, 0xfc, 0x8d, 0xd7, 0xe6, 0x24, 0x46, 0xfd, 0xa0, 0xfb, 0x35, 0x83, 0xc2, 0xf9, 0xe5, 0xff, - 0x1a, 0x25, 0x01, 0x4c, 0x60, 0x01, 0x19, 0x2a, 0xdb, 0x61, 0x5b, 0x87, 0xe3, 0xc9, 0x7b, 0x16, - 0x60, 0x47, 0xb3, 0xd5, 0x1b, 0x9a, 0xe1, 0xe0, 0x16, 0x17, 0xba, 0xaf, 0x04, 0x95, 0x20, 0x4d, - 0x9e, 0x7a, 0x36, 0x6e, 0xf1, 0x30, 0xda, 0x7d, 0xf6, 0xf5, 0x33, 0xf5, 0x9d, 0xf5, 0x33, 0x28, - 0xe5, 0x74, 0x9f, 0x94, 0x7d, 0xc1, 0x45, 0xc6, 0x1f, 0x5c, 0xb0, 0x03, 0xc3, 0xfc, 0xdc, 0x22, - 0xb0, 0xb6, 0x89, 0x67, 0x74, 0x0f, 0xe4, 0x3b, 0xb8, 0xd3, 0x35, 0xcd, 0xb6, 0xca, 0xcc, 0x0d, - 0xbb, 0x97, 0x3e, 0xc7, 0x0b, 0xeb, 0xd4, 0xea, 0xfc, 0x48, 0xd4, 0x9b, 0x7f, 0x5e, 0x10, 0xf9, - 0x5d, 0x27, 0x60, 0xf9, 0xc7, 0x68, 0x66, 0x29, 0xe8, 0x22, 0xa0, 0x86, 0xff, 0x34, 0x49, 0x8f, - 0x9a, 0x05, 0xa1, 0xd0, 0xe3, 0xda, 0x0f, 0xef, 0xd4, 0x09, 0x2b, 0xb6, 0xd1, 0xf3, 0x70, 0xb4, - 0xcf, 0xb6, 0xb9, 0xd0, 0xd1, 0x71, 0x4d, 0xdc, 0x1d, 0x41, 0x13, 0x27, 0xa0, 0x3d, 0x61, 0xc5, - 0xbe, 0xc3, 0x59, 0xb7, 0x04, 0x85, 0xa0, 0xc7, 0x33, 0x74, 0xf8, 0xe9, 0xdf, 0x41, 0x71, 0x34, - 0xdd, 0x50, 0x03, 0xe9, 0xa0, 0x1c, 0x2b, 0xe4, 0x49, 0xa6, 0x75, 0xb8, 0x63, 0xa8, 0xe7, 0x83, - 0x1e, 0x87, 0x8c, 0xe7, 0x34, 0x31, 0xa9, 0x1e, 0x90, 0x2e, 0xf0, 0x68, 0xe5, 0xdf, 0x88, 0x78, - 0x90, 0xc1, 0x04, 0x44, 0x1d, 0x92, 0xec, 0x38, 0x1c, 0x3f, 0x64, 0xf3, 0xd0, 0x78, 0x3e, 0xd3, - 0x02, 0x3b, 0x2b, 0xa7, 0x70, 0x66, 0xf9, 0xdd, 0x90, 0x64, 0x25, 0x28, 0x0b, 0x29, 0xef, 0x7a, - 0x5e, 0x80, 0x64, 0xa5, 0x56, 0xab, 0xaf, 0x6f, 0x48, 0x11, 0x94, 0x81, 0x44, 0xa5, 0xba, 0xa6, - 0x6c, 0x48, 0x51, 0x52, 0xac, 0xd4, 0xaf, 0xd4, 0x6b, 0x1b, 0x52, 0x0c, 0x4d, 0x42, 0x9e, 0xfd, - 0x56, 0x2f, 0xae, 0x29, 0x2b, 0x95, 0x0d, 0x29, 0xee, 0x2b, 0x6a, 0xd4, 0x57, 0x17, 0xeb, 0x8a, - 0x94, 0x90, 0x1f, 0x81, 0x63, 0x23, 0xbd, 0x2c, 0x2f, 0xbb, 0x10, 0xf1, 0x65, 0x17, 0xe4, 0x0f, - 0x45, 0xa1, 0x34, 0xda, 0x75, 0x42, 0x57, 0xfa, 0x3a, 0x7e, 0xf6, 0x10, 0x7e, 0x57, 0x5f, 0xef, - 0xd1, 0x7d, 0x50, 0xb0, 0xf0, 0x36, 0x76, 0x9a, 0xbb, 0xcc, 0x95, 0x63, 0x4b, 0x66, 0x5e, 0xc9, - 0xf3, 0x52, 0xca, 0x64, 0x33, 0xb2, 0x17, 0x71, 0xd3, 0x51, 0x99, 0x2d, 0xb2, 0xf9, 0x1f, 0x64, - 0xcc, 0xb3, 0xd2, 0x06, 0x2b, 0x94, 0x7f, 0xe0, 0x50, 0xb2, 0xcc, 0x40, 0x42, 0xa9, 0x6f, 0x28, - 0xcf, 0x4b, 0x31, 0x84, 0xa0, 0x40, 0x7f, 0xaa, 0x8d, 0xd5, 0xca, 0x7a, 0xe3, 0xf2, 0x1a, 0x91, - 0xe5, 0x14, 0x14, 0x85, 0x2c, 0x45, 0x61, 0x42, 0x7e, 0x00, 0x8e, 0x8e, 0xf0, 0xfb, 0x86, 0x9c, - 0x4f, 0xfc, 0x58, 0xc4, 0x4f, 0x1d, 0x8c, 0xf9, 0xd7, 0x20, 0x69, 0x3b, 0x9a, 0xd3, 0xb3, 0xb9, - 0x10, 0x1f, 0x1f, 0xd7, 0x11, 0x5c, 0x10, 0x3f, 0x1a, 0x94, 0x5d, 0xe1, 0x30, 0xf2, 0x39, 0x28, - 0x04, 0x6b, 0x46, 0xcb, 0xc0, 0x53, 0xa2, 0xa8, 0xfc, 0x3c, 0x80, 0x2f, 0x1f, 0xe9, 0x9e, 0xf4, - 0x8a, 0xf8, 0x4f, 0x7a, 0x9d, 0x83, 0xc4, 0x75, 0x93, 0xd9, 0x8c, 0xe1, 0x13, 0xe7, 0xaa, 0xe9, - 0x60, 0x5f, 0xf2, 0x81, 0x51, 0xcb, 0x3a, 0xa0, 0xc1, 0x9c, 0xd0, 0x88, 0x57, 0x3c, 0x15, 0x7c, - 0xc5, 0xdd, 0x23, 0xb3, 0x4b, 0xc3, 0x5f, 0xf5, 0x12, 0x24, 0xa8, 0xb5, 0x19, 0xfa, 0xe9, 0xcf, - 0xf7, 0x03, 0x68, 0x8e, 0x63, 0xe9, 0x5b, 0x3d, 0xef, 0x05, 0x73, 0xc3, 0xad, 0x55, 0x45, 0xd0, - 0x55, 0xef, 0xe4, 0x66, 0x6b, 0xda, 0x63, 0xf5, 0x99, 0x2e, 0x1f, 0xa0, 0xbc, 0x0a, 0x85, 0x20, - 0xef, 0xf0, 0x4f, 0x99, 0xbc, 0x0b, 0x0e, 0x32, 0xc2, 0x7d, 0x72, 0x9d, 0x2f, 0x7e, 0xe9, 0x08, - 0x7d, 0x90, 0x6f, 0x46, 0x20, 0xbd, 0xb1, 0xc7, 0xf5, 0xf8, 0x80, 0xc3, 0x96, 0xde, 0xf7, 0x5c, - 0x6e, 0xb2, 0x90, 0xe5, 0x63, 0x63, 0x6e, 0x96, 0xf7, 0x7b, 0xdc, 0x99, 0x1a, 0x1f, 0x37, 0xda, - 0x15, 0xd9, 0x6e, 0x6e, 0x9d, 0x2e, 0x8c, 0xf7, 0xed, 0xc4, 0x34, 0x24, 0xfc, 0xdf, 0x3d, 0xb0, - 0x07, 0xb9, 0xe5, 0x3b, 0x96, 0xc0, 0x96, 0x0d, 0xff, 0x47, 0x16, 0x91, 0x43, 0x7f, 0x64, 0xe1, - 0xbe, 0x25, 0xea, 0x7f, 0xcb, 0x75, 0x48, 0x0b, 0xa5, 0x40, 0xef, 0xf4, 0x1f, 0x40, 0x11, 0x7b, - 0x34, 0x23, 0x17, 0x4f, 0x0e, 0xef, 0x3b, 0x7f, 0x72, 0x1a, 0x26, 0xf9, 0x51, 0x3c, 0x2f, 0xae, - 0xe0, 0x7f, 0x40, 0xa0, 0xc8, 0x2a, 0x96, 0x45, 0x50, 0x21, 0xff, 0x7c, 0x04, 0xa4, 0x7e, 0xad, - 0x7c, 0x3b, 0x1b, 0x40, 0x8c, 0x22, 0xd1, 0x7e, 0xdf, 0xcd, 0xe0, 0x6c, 0xe4, 0xf3, 0xa4, 0xd4, - 0xbb, 0x1b, 0xfc, 0xbd, 0x51, 0xc8, 0xfa, 0x72, 0x7a, 0xe8, 0xb1, 0xc0, 0xd1, 0xd0, 0xf9, 0x83, - 0xf2, 0x7f, 0xbe, 0xb3, 0xa1, 0x81, 0x8e, 0x45, 0x0f, 0xdf, 0xb1, 0x37, 0xff, 0xf0, 0xfe, 0xf0, - 0xaf, 0x80, 0x12, 0x23, 0xbe, 0x02, 0xfa, 0xa1, 0x08, 0xa4, 0xdd, 0xa5, 0xfb, 0xb0, 0xd9, 0xfc, - 0x23, 0x90, 0xe4, 0xab, 0x13, 0x4b, 0xe7, 0xf3, 0xa7, 0xa1, 0xb9, 0xd0, 0x12, 0xa4, 0xc5, 0x5f, - 0xde, 0xe1, 0x81, 0xa8, 0xfb, 0x7c, 0xfa, 0x49, 0xc8, 0xfa, 0x36, 0x56, 0x88, 0x9d, 0x58, 0xad, - 0x3f, 0x2b, 0x4d, 0x94, 0x52, 0x37, 0x6f, 0xcd, 0xc7, 0x56, 0xf1, 0x0d, 0x32, 0xc3, 0x94, 0x7a, - 0xed, 0x72, 0xbd, 0xf6, 0x8c, 0x14, 0x29, 0x65, 0x6f, 0xde, 0x9a, 0x4f, 0x29, 0x98, 0xa6, 0xaf, - 0x4e, 0x3f, 0x03, 0xc5, 0xbe, 0x81, 0x09, 0xda, 0x77, 0x04, 0x85, 0xc5, 0xcd, 0xf5, 0xe5, 0xa5, - 0x5a, 0x65, 0xa3, 0xae, 0xb2, 0x63, 0x76, 0xe8, 0x28, 0x4c, 0x2d, 0x2f, 0x5d, 0xba, 0xbc, 0xa1, - 0xd6, 0x96, 0x97, 0xea, 0xab, 0x1b, 0x6a, 0x65, 0x63, 0xa3, 0x52, 0x7b, 0x46, 0x8a, 0x9e, 0xfd, - 0x36, 0x40, 0xb1, 0x52, 0xad, 0x2d, 0x91, 0xf5, 0x59, 0xe7, 0x97, 0xbb, 0xd7, 0x20, 0x4e, 0x53, - 0x01, 0x07, 0x1e, 0x15, 0x29, 0x1d, 0x9c, 0xdb, 0x44, 0x17, 0x21, 0x41, 0xb3, 0x04, 0xe8, 0xe0, - 0xb3, 0x23, 0xa5, 0x90, 0x64, 0x27, 0x69, 0x0c, 0x9d, 0x4e, 0x07, 0x1e, 0x26, 0x29, 0x1d, 0x9c, - 0xfb, 0x44, 0x0a, 0x64, 0xbc, 0x28, 0x23, 0xfc, 0x70, 0x45, 0x69, 0x0c, 0xeb, 0x88, 0x96, 0x21, - 0x25, 0x02, 0xc3, 0xb0, 0xe3, 0x1e, 0xa5, 0xd0, 0xe4, 0x24, 0x11, 0x17, 0x0b, 0xe0, 0x0f, 0x3e, - 0xbb, 0x52, 0x0a, 0xc9, 0xb4, 0xa2, 0x25, 0xf7, 0x70, 0x7e, 0xc8, 0x11, 0x8e, 0x52, 0x58, 0xb2, - 0x91, 0x08, 0xcd, 0x4b, 0x8d, 0x84, 0x9f, 0xc8, 0x29, 0x8d, 0x91, 0x44, 0x46, 0x9b, 0x00, 0xbe, - 0x70, 0x7d, 0x8c, 0xa3, 0x36, 0xa5, 0x71, 0x92, 0xc3, 0x68, 0x0d, 0xd2, 0x6e, 0xf4, 0x14, 0x7a, - 0xf0, 0xa5, 0x14, 0x9e, 0xa5, 0x45, 0xef, 0x86, 0x7c, 0x30, 0x6a, 0x18, 0xef, 0x38, 0x4b, 0x69, - 0xcc, 0xf4, 0x2b, 0xc1, 0x0f, 0x86, 0x10, 0xe3, 0x1d, 0x6f, 0x29, 0x8d, 0x99, 0x8d, 0x45, 0x2f, - 0xc2, 0xe4, 0xa0, 0x8b, 0x3f, 0xfe, 0x69, 0x97, 0xd2, 0x21, 0xf2, 0xb3, 0xa8, 0x03, 0x68, 0x48, - 0x68, 0x70, 0x88, 0xc3, 0x2f, 0xa5, 0xc3, 0xa4, 0x6b, 0x51, 0x0b, 0x8a, 0xfd, 0xfe, 0xf6, 0xb8, - 0x87, 0x61, 0x4a, 0x63, 0xa7, 0x6e, 0xd9, 0x5b, 0x82, 0x7e, 0xfa, 0xb8, 0x87, 0x63, 0x4a, 0x63, - 0x67, 0x72, 0xab, 0x95, 0x91, 0xe7, 0x1b, 0x4f, 0x1c, 0x78, 0xbe, 0xd1, 0x3b, 0xb1, 0xe8, 0x9e, - 0x69, 0xfc, 0x83, 0x87, 0xe1, 0x5e, 0x7e, 0xc9, 0x80, 0xed, 0x68, 0xd7, 0x74, 0x63, 0xc7, 0xbd, - 0x35, 0x82, 0x3f, 0xf3, 0xc3, 0x8d, 0x47, 0xf8, 0x45, 0x06, 0xa2, 0x34, 0xe4, 0xee, 0x88, 0x91, - 0xb7, 0x7b, 0x85, 0x9d, 0x44, 0x0e, 0x3f, 0xba, 0x78, 0xc0, 0xbd, 0x14, 0x21, 0xb7, 0x5f, 0x0c, - 0x3b, 0x2e, 0x7d, 0xf0, 0x21, 0xcc, 0x83, 0xce, 0x7b, 0xca, 0x1f, 0x8c, 0x40, 0xe1, 0xb2, 0x6e, - 0x3b, 0xa6, 0xa5, 0x37, 0xb5, 0x36, 0x5d, 0x31, 0x2e, 0x8c, 0xfb, 0xf1, 0x47, 0x35, 0x43, 0x9c, - 0x11, 0x7e, 0xd9, 0x05, 0x3f, 0x18, 0xb2, 0x08, 0xc9, 0xeb, 0x5a, 0x9b, 0x7d, 0x7a, 0xe1, 0xbf, - 0x64, 0xa7, 0x5f, 0xe6, 0x3e, 0x2f, 0xc9, 0x8f, 0xc2, 0x78, 0xe5, 0xcf, 0xd1, 0x93, 0xdc, 0x9d, - 0x8e, 0x6e, 0xb3, 0xbf, 0x8d, 0xed, 0x60, 0x1b, 0x6d, 0x42, 0xdc, 0xd2, 0x1c, 0x1e, 0xd4, 0x54, - 0x2b, 0xfc, 0x8a, 0x8a, 0xfb, 0xc3, 0x2f, 0x9a, 0x58, 0x18, 0xb8, 0xc5, 0x82, 0xbd, 0x8c, 0xc2, - 0xa1, 0xef, 0x83, 0x74, 0x47, 0xdb, 0x53, 0x29, 0x74, 0xf4, 0xcd, 0x82, 0x4e, 0x75, 0xb4, 0x3d, - 0xd2, 0x6a, 0xa4, 0x43, 0x91, 0xa0, 0x37, 0x77, 0x35, 0x63, 0x07, 0xb3, 0x97, 0xc4, 0xde, 0xac, - 0x97, 0xe4, 0x3b, 0xda, 0x5e, 0x8d, 0x02, 0x93, 0x57, 0xf1, 0xcb, 0x40, 0x7e, 0x33, 0xc2, 0x43, - 0x59, 0x2a, 0x39, 0xa4, 0x81, 0xd4, 0x74, 0x9f, 0xe8, 0xfb, 0x45, 0x5a, 0xff, 0xc4, 0xa8, 0x81, - 0xe9, 0x93, 0x3b, 0x3b, 0x92, 0xfd, 0xa5, 0xd7, 0xc4, 0x91, 0xec, 0x62, 0xb3, 0x6f, 0x5c, 0xae, - 0x40, 0x96, 0x65, 0xd3, 0x54, 0xea, 0xc2, 0x46, 0x43, 0x5d, 0xd8, 0xbc, 0x70, 0x61, 0x19, 0x20, - 0x30, 0x6e, 0x52, 0xcf, 0xfb, 0xf0, 0x6a, 0x04, 0xb2, 0x8b, 0xbe, 0x3b, 0xb5, 0x66, 0x20, 0xd5, - 0x31, 0x0d, 0xfd, 0x1a, 0xb6, 0xdc, 0x7d, 0x19, 0xf6, 0x48, 0xdc, 0x4c, 0xf6, 0xb7, 0x91, 0x9c, - 0x7d, 0x71, 0x43, 0x83, 0x78, 0x26, 0x5c, 0x37, 0xf0, 0x96, 0xad, 0x0b, 0x91, 0x2b, 0xe2, 0x11, - 0x9d, 0x02, 0xc9, 0xc6, 0xcd, 0x9e, 0xa5, 0x3b, 0xfb, 0x6a, 0xd3, 0x34, 0x1c, 0xad, 0xe9, 0xf0, - 0xec, 0x69, 0x51, 0x94, 0xd7, 0x58, 0x31, 0x01, 0x69, 0x61, 0x47, 0xd3, 0xdb, 0xec, 0xd8, 0x57, - 0x46, 0x11, 0x8f, 0xbc, 0xa9, 0x9f, 0x4b, 0xf9, 0x43, 0xc3, 0x1a, 0x48, 0x66, 0x17, 0x5b, 0x81, - 0x4f, 0xe1, 0x98, 0xba, 0xce, 0xfc, 0xce, 0x67, 0x1e, 0x9a, 0xe6, 0x02, 0xe7, 0x1b, 0xf0, 0xec, - 0x0a, 0x69, 0xa5, 0x28, 0x38, 0xc4, 0x37, 0x72, 0xcf, 0x07, 0x76, 0x62, 0x7a, 0x5b, 0xde, 0xa7, - 0xf8, 0xd3, 0x03, 0x42, 0xad, 0x18, 0xfb, 0xd5, 0x99, 0xdf, 0xf6, 0xa0, 0xbd, 0xd0, 0xf1, 0x19, - 0xbc, 0xef, 0xdf, 0x96, 0xa1, 0x30, 0xc4, 0x83, 0x7f, 0x51, 0xd3, 0xdb, 0xe2, 0xcf, 0xbd, 0x29, - 0xfc, 0x09, 0x95, 0xdd, 0x34, 0x0c, 0xfb, 0x33, 0xee, 0xf2, 0x28, 0xdd, 0xa8, 0x9a, 0x46, 0x2b, - 0x98, 0x71, 0x41, 0x1b, 0x90, 0x74, 0xcc, 0x6b, 0xd8, 0xe0, 0x02, 0xaa, 0xbe, 0xe3, 0x10, 0x8a, - 0x3d, 0x78, 0x2f, 0x0d, 0xc7, 0x42, 0x3b, 0x20, 0xb5, 0x70, 0x1b, 0xef, 0xb0, 0x0f, 0xb9, 0x76, - 0x35, 0x0b, 0xb3, 0x8f, 0x3b, 0x0f, 0x87, 0x3f, 0x78, 0x7d, 0x4d, 0xd1, 0x45, 0x6d, 0x50, 0x50, - 0xb4, 0x1e, 0xbc, 0xd1, 0x2d, 0xc5, 0x77, 0xe5, 0x47, 0xf4, 0xdf, 0xa7, 0x95, 0x7e, 0xb3, 0x15, - 0xb8, 0x01, 0xee, 0x14, 0x48, 0x3d, 0x63, 0xcb, 0x34, 0xe8, 0x5f, 0x66, 0xe2, 0x01, 0x56, 0x9a, - 0xed, 0xdc, 0xb9, 0xe5, 0x7c, 0xe7, 0x6e, 0x1d, 0x0a, 0x1e, 0x29, 0x9d, 0x3d, 0x99, 0xc3, 0xce, - 0x9e, 0xbc, 0x0b, 0x40, 0x48, 0xd0, 0x0a, 0x80, 0x37, 0x3f, 0xdd, 0xdd, 0xfd, 0xd0, 0x99, 0xee, - 0xef, 0x8c, 0x0f, 0x00, 0xb5, 0x61, 0xaa, 0xa3, 0x1b, 0xaa, 0x8d, 0xdb, 0xdb, 0x2a, 0x97, 0x1c, - 0xc1, 0xcd, 0xbe, 0x09, 0x23, 0x3d, 0xd9, 0xd1, 0x8d, 0x06, 0x6e, 0x6f, 0x2f, 0xba, 0xb0, 0xe8, - 0x1d, 0x70, 0xdc, 0x13, 0x87, 0x69, 0xa8, 0xbb, 0x66, 0xbb, 0xa5, 0x5a, 0x78, 0x5b, 0x6d, 0xd2, - 0x6b, 0x91, 0x72, 0x54, 0x88, 0x47, 0x5d, 0x92, 0x35, 0xe3, 0xb2, 0xd9, 0x6e, 0x29, 0x78, 0xbb, - 0x46, 0xaa, 0xd1, 0x3d, 0xe0, 0xc9, 0x42, 0xd5, 0x5b, 0xf6, 0x4c, 0x7e, 0x3e, 0x76, 0x32, 0xae, - 0xe4, 0xdc, 0xc2, 0xa5, 0x96, 0x5d, 0x4e, 0xbf, 0xef, 0x95, 0xb9, 0x89, 0xaf, 0xbf, 0x32, 0x37, - 0x21, 0x5f, 0xa4, 0x97, 0x78, 0xf0, 0x49, 0x87, 0x6d, 0x74, 0x1e, 0x32, 0x9a, 0x78, 0x60, 0x9f, - 0x89, 0x1c, 0x30, 0x69, 0x3d, 0x52, 0xf9, 0x95, 0x08, 0x24, 0x17, 0xaf, 0xae, 0x6b, 0xba, 0x85, - 0xea, 0x30, 0xe9, 0x29, 0xed, 0xb8, 0xf3, 0xdf, 0xd3, 0x73, 0x61, 0x00, 0xea, 0xa3, 0xbe, 0xa8, - 0x3d, 0x10, 0xa6, 0xff, 0x5b, 0x5b, 0x5f, 0x57, 0xaf, 0x40, 0x8a, 0xb5, 0xd0, 0x46, 0x4f, 0x43, - 0xa2, 0x4b, 0x7e, 0xf0, 0xec, 0xff, 0xec, 0x48, 0x45, 0xa7, 0xf4, 0x7e, 0xb5, 0x60, 0x7c, 0xf2, - 0x5f, 0x45, 0x00, 0x16, 0xaf, 0x5e, 0xdd, 0xb0, 0xf4, 0x6e, 0x1b, 0x3b, 0x6f, 0x56, 0x97, 0x97, - 0xe1, 0x0e, 0xdf, 0x77, 0x9b, 0x56, 0x73, 0xec, 0x6e, 0x4f, 0x79, 0x5f, 0x6e, 0x5a, 0xcd, 0xa1, - 0x68, 0x2d, 0xdb, 0x71, 0xd1, 0x62, 0x63, 0xa3, 0x2d, 0xda, 0xce, 0xa0, 0x1c, 0x9f, 0x83, 0xac, - 0xd7, 0x75, 0x1b, 0x2d, 0x41, 0xda, 0xe1, 0xbf, 0xb9, 0x38, 0xe5, 0xd1, 0xe2, 0x14, 0x6c, 0x7e, - 0x91, 0xba, 0xec, 0xf2, 0xff, 0x26, 0x52, 0xf5, 0x26, 0xc2, 0xdf, 0x28, 0x45, 0x22, 0x16, 0x9e, - 0x5b, 0xe0, 0xd8, 0x9b, 0x60, 0x81, 0x39, 0x96, 0x4f, 0xac, 0x3f, 0x1c, 0x85, 0xa9, 0x4d, 0x31, - 0x49, 0xff, 0xc6, 0x4a, 0x61, 0x13, 0x52, 0xd8, 0x70, 0x2c, 0x1d, 0x8b, 0xad, 0xbe, 0x87, 0x47, - 0x0d, 0xf6, 0x90, 0xbe, 0xd0, 0xbf, 0x57, 0xec, 0x1f, 0x7a, 0x81, 0xe5, 0x13, 0xc3, 0xaf, 0xc7, - 0x60, 0x66, 0x14, 0x2b, 0x3a, 0x01, 0xc5, 0xa6, 0x85, 0x69, 0x81, 0x1a, 0x48, 0x85, 0x17, 0x44, - 0x31, 0x5f, 0x52, 0x14, 0x20, 0x0e, 0x1a, 0xd1, 0x2a, 0x42, 0x7a, 0x7b, 0x1e, 0x59, 0xc1, 0x43, - 0xa0, 0x8b, 0x0a, 0x86, 0xa2, 0x38, 0xdb, 0xbe, 0xa5, 0xb5, 0x35, 0xa3, 0x89, 0x6f, 0x43, 0x13, - 0x06, 0x57, 0x00, 0x71, 0x60, 0xbe, 0xca, 0x30, 0xd1, 0x55, 0x48, 0x09, 0xf8, 0xf8, 0x9b, 0x00, - 0x2f, 0xc0, 0xd0, 0xdd, 0x90, 0xf3, 0x2f, 0x0c, 0xd4, 0x4f, 0x89, 0x2b, 0x59, 0xdf, 0xba, 0x10, - 0xb6, 0xf2, 0x24, 0x0f, 0x5c, 0x79, 0xb8, 0x2b, 0xf8, 0x6b, 0x31, 0x98, 0x54, 0x70, 0xeb, 0xbb, - 0x70, 0xe0, 0xbe, 0x17, 0x80, 0x4d, 0x6a, 0x62, 0x6c, 0x6f, 0x63, 0xec, 0x06, 0x8d, 0x44, 0x86, - 0xe1, 0x2d, 0xda, 0xce, 0xdb, 0x35, 0x7a, 0xff, 0x2e, 0x0a, 0x39, 0xff, 0xe8, 0x7d, 0x17, 0xac, - 0x6c, 0x68, 0xd5, 0x33, 0x69, 0xec, 0xf4, 0xf9, 0xa9, 0x51, 0x26, 0x6d, 0x40, 0xaf, 0x43, 0x6c, - 0xd9, 0x27, 0x63, 0x90, 0xe4, 0x47, 0xc1, 0xd6, 0x06, 0x7c, 0xdc, 0xc8, 0x21, 0x3f, 0x02, 0xee, - 0x73, 0x71, 0xef, 0x83, 0x02, 0x09, 0xa9, 0x03, 0xe7, 0xcb, 0x22, 0x27, 0xf3, 0x34, 0x1c, 0xf6, - 0x4e, 0x43, 0xa3, 0x39, 0xc8, 0x12, 0x32, 0xcf, 0x66, 0x13, 0x1a, 0xe8, 0x68, 0x7b, 0x75, 0x56, - 0x82, 0x1e, 0x02, 0xb4, 0xeb, 0x26, 0x3e, 0x54, 0x4f, 0x10, 0x84, 0x6e, 0xd2, 0xab, 0x11, 0xe4, - 0x77, 0x01, 0x90, 0x56, 0xa8, 0xec, 0xe6, 0x4e, 0x7e, 0x39, 0x2c, 0x29, 0x59, 0xa4, 0xb7, 0x77, - 0xfe, 0x78, 0x84, 0xb9, 0xca, 0x7d, 0xd1, 0x36, 0x0f, 0x5a, 0xd4, 0xc3, 0xcd, 0x86, 0x6f, 0xbd, - 0x36, 0x57, 0xda, 0xd7, 0x3a, 0xed, 0xb2, 0x3c, 0x04, 0x52, 0x1e, 0x96, 0x0b, 0x20, 0xde, 0x74, - 0x30, 0x70, 0x2f, 0xdf, 0x4b, 0xf4, 0xfa, 0xe6, 0xd7, 0x3e, 0x75, 0xfa, 0xb8, 0xef, 0x15, 0x7b, - 0x6e, 0x86, 0x8c, 0x0d, 0x8f, 0xfc, 0x0b, 0x11, 0x40, 0xde, 0x62, 0xe3, 0x9e, 0x07, 0x5f, 0xa1, - 0xa7, 0x84, 0x85, 0xbf, 0x1f, 0x39, 0x38, 0x8e, 0xf0, 0xf8, 0x03, 0x71, 0x84, 0x6f, 0x32, 0xbd, - 0xd3, 0x33, 0xed, 0xe2, 0x13, 0xf0, 0x21, 0x77, 0xb8, 0x2e, 0xd4, 0x4c, 0x3d, 0x00, 0x21, 0x98, - 0xe8, 0x1c, 0x9d, 0x90, 0x5f, 0x8b, 0xc0, 0xb1, 0x01, 0x4d, 0x74, 0x9b, 0xdc, 0x04, 0x64, 0xf9, - 0x2a, 0xe9, 0x88, 0x8a, 0xfd, 0xd5, 0xdb, 0x53, 0xec, 0x49, 0x6b, 0xc0, 0x9c, 0xbf, 0x45, 0x6b, - 0x14, 0x37, 0x42, 0xbf, 0x15, 0x81, 0x69, 0x7f, 0x8b, 0xdc, 0xbe, 0x35, 0x20, 0xe7, 0x6f, 0x0b, - 0xef, 0xd5, 0xbd, 0xe3, 0xf4, 0xca, 0xdf, 0xa1, 0x00, 0x08, 0xe9, 0x8b, 0xd0, 0x7a, 0x96, 0xab, - 0x7b, 0x64, 0x6c, 0x29, 0xb9, 0xfb, 0x10, 0xc3, 0xcc, 0x00, 0x1b, 0xac, 0xf7, 0x47, 0x21, 0xbe, - 0x6e, 0x9a, 0x6d, 0xf4, 0x43, 0x11, 0x98, 0x34, 0x4c, 0x47, 0x25, 0x73, 0x05, 0xb7, 0x54, 0x9e, - 0x2c, 0x60, 0x96, 0xf4, 0xea, 0xe1, 0xa4, 0xf7, 0x8d, 0xd7, 0xe6, 0x06, 0xa1, 0x86, 0x5d, 0xbd, - 0x5b, 0x34, 0x4c, 0xa7, 0x4a, 0x89, 0x36, 0x58, 0x3e, 0xe1, 0x06, 0xe4, 0x83, 0xef, 0x67, 0xe6, - 0x57, 0x39, 0xf4, 0xfb, 0xf3, 0xa1, 0xef, 0xce, 0x6d, 0xf9, 0x5e, 0xcc, 0x2e, 0xc0, 0xfc, 0x13, - 0x32, 0xb8, 0xcf, 0x83, 0x74, 0xb5, 0xff, 0x64, 0x5a, 0x1d, 0x52, 0x87, 0x3d, 0xe4, 0xe6, 0x97, - 0x38, 0xe7, 0x3d, 0xfd, 0xd9, 0x08, 0x80, 0x97, 0x9a, 0x41, 0x0f, 0xc2, 0xd1, 0xea, 0xda, 0xea, - 0xa2, 0xda, 0xd8, 0xa8, 0x6c, 0x6c, 0x36, 0x82, 0x97, 0xc7, 0x8b, 0x3b, 0x4a, 0xec, 0x2e, 0x6e, - 0xea, 0xdb, 0x3a, 0x6e, 0xa1, 0xfb, 0x61, 0x3a, 0x48, 0x4d, 0x9e, 0xea, 0x8b, 0x52, 0xa4, 0x94, - 0xbb, 0x79, 0x6b, 0x3e, 0xcd, 0x5c, 0x52, 0xdc, 0x42, 0x27, 0xe1, 0x8e, 0x41, 0xba, 0xa5, 0xd5, - 0x4b, 0x52, 0xb4, 0x94, 0xbf, 0x79, 0x6b, 0x3e, 0xe3, 0xfa, 0xae, 0x48, 0x06, 0xe4, 0xa7, 0xe4, - 0x78, 0xb1, 0x12, 0xdc, 0xbc, 0x35, 0x9f, 0x64, 0xc3, 0x52, 0x8a, 0xbf, 0xef, 0xe3, 0xb3, 0x13, - 0xa7, 0xbf, 0x1f, 0x60, 0xc9, 0xd8, 0xb6, 0x34, 0xfa, 0x17, 0x94, 0x51, 0x09, 0x8e, 0x2c, 0xad, - 0x5e, 0x54, 0x2a, 0xb5, 0x8d, 0xa5, 0xb5, 0xd5, 0xbe, 0x3b, 0xef, 0x83, 0x75, 0x8b, 0x6b, 0x9b, - 0xd5, 0xe5, 0xba, 0xda, 0x58, 0xba, 0xb4, 0xca, 0x76, 0x78, 0x03, 0x75, 0xcf, 0xae, 0x6e, 0x2c, - 0xad, 0xd4, 0xa5, 0x68, 0xf5, 0xe2, 0xc8, 0x3d, 0x86, 0x07, 0x0f, 0x1c, 0x70, 0xcf, 0x4a, 0x06, - 0x36, 0x1a, 0xfe, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x63, 0xe2, 0x99, 0x22, 0xd9, 0x97, 0x00, - 0x00, + // 10651 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0xbd, 0x7b, 0x90, 0x1c, 0xd7, + 0x75, 0x1f, 0xbc, 0xf3, 0x9e, 0x39, 0xf3, 0xea, 0xbd, 0xbb, 0x04, 0x16, 0x03, 0x72, 0x77, 0xd9, + 0x7c, 0xe0, 0x41, 0x72, 0x41, 0x82, 0x04, 0x48, 0x0e, 0x44, 0xd1, 0x33, 0xb3, 0x03, 0x60, 0xc1, + 0x7d, 0xa9, 0x67, 0x17, 0x7c, 0xd8, 0x52, 0xab, 0x77, 0xe6, 0xee, 0x6e, 0x13, 0x33, 0xdd, 0xa3, + 0xee, 0x1e, 0x60, 0x97, 0xf5, 0xd5, 0x57, 0xb4, 0x65, 0x27, 0x32, 0xe2, 0xc8, 0xb2, 0x95, 0xb2, + 0x65, 0x59, 0x50, 0x28, 0x2b, 0x96, 0x64, 0x27, 0x71, 0x64, 0x4b, 0x91, 0xe4, 0xb8, 0xec, 0x92, + 0x53, 0x79, 0xc8, 0x4e, 0x2a, 0x25, 0xb9, 0x52, 0x89, 0x2b, 0x95, 0xd0, 0x0e, 0xa5, 0xb2, 0x14, + 0x59, 0x8e, 0x65, 0x99, 0x8e, 0xe3, 0xa8, 0x52, 0x49, 0xdd, 0x57, 0x3f, 0xe6, 0xb1, 0x3d, 0x0b, + 0x91, 0xb4, 0x53, 0xfa, 0x07, 0x98, 0xbe, 0xf7, 0x9c, 0x5f, 0xdf, 0x7b, 0xee, 0xb9, 0xe7, 0x9e, + 0x73, 0xee, 0xed, 0xbb, 0xf0, 0xe7, 0x17, 0x60, 0x7e, 0xc7, 0x34, 0x77, 0xda, 0xf8, 0x4c, 0xd7, + 0x32, 0x1d, 0x73, 0xab, 0xb7, 0x7d, 0xa6, 0x85, 0xed, 0xa6, 0xa5, 0x77, 0x1d, 0xd3, 0x5a, 0xa0, + 0x65, 0xa8, 0xc8, 0x28, 0x16, 0x04, 0x85, 0xbc, 0x02, 0x93, 0x17, 0xf5, 0x36, 0x5e, 0x74, 0x09, + 0x1b, 0xd8, 0x41, 0x4f, 0x40, 0x7c, 0x5b, 0x6f, 0xe3, 0x99, 0xc8, 0x7c, 0xec, 0x64, 0xf6, 0xec, + 0xbd, 0x0b, 0x7d, 0x4c, 0x0b, 0x41, 0x8e, 0x75, 0x52, 0xac, 0x50, 0x0e, 0xf9, 0x6b, 0x71, 0x98, + 0x1a, 0x52, 0x8b, 0x10, 0xc4, 0x0d, 0xad, 0x43, 0x10, 0x23, 0x27, 0x33, 0x0a, 0xfd, 0x8d, 0x66, + 0x20, 0xd5, 0xd5, 0x9a, 0xd7, 0xb4, 0x1d, 0x3c, 0x13, 0xa5, 0xc5, 0xe2, 0x11, 0xcd, 0x02, 0xb4, + 0x70, 0x17, 0x1b, 0x2d, 0x6c, 0x34, 0xf7, 0x67, 0x62, 0xf3, 0xb1, 0x93, 0x19, 0xc5, 0x57, 0x82, + 0x1e, 0x80, 0xc9, 0x6e, 0x6f, 0xab, 0xad, 0x37, 0x55, 0x1f, 0x19, 0xcc, 0xc7, 0x4e, 0x26, 0x14, + 0x89, 0x55, 0x2c, 0x7a, 0xc4, 0x27, 0xa0, 0x78, 0x03, 0x6b, 0xd7, 0xfc, 0xa4, 0x59, 0x4a, 0x5a, + 0x20, 0xc5, 0x3e, 0xc2, 0x1a, 0xe4, 0x3a, 0xd8, 0xb6, 0xb5, 0x1d, 0xac, 0x3a, 0xfb, 0x5d, 0x3c, + 0x13, 0xa7, 0xbd, 0x9f, 0x1f, 0xe8, 0x7d, 0x7f, 0xcf, 0xb3, 0x9c, 0x6b, 0x63, 0xbf, 0x8b, 0x51, + 0x05, 0x32, 0xd8, 0xe8, 0x75, 0x18, 0x42, 0x62, 0x84, 0xfc, 0xea, 0x46, 0xaf, 0xd3, 0x8f, 0x92, + 0x26, 0x6c, 0x1c, 0x22, 0x65, 0x63, 0xeb, 0xba, 0xde, 0xc4, 0x33, 0x49, 0x0a, 0x70, 0x62, 0x00, + 0xa0, 0xc1, 0xea, 0xfb, 0x31, 0x04, 0x1f, 0xaa, 0x41, 0x06, 0xef, 0x39, 0xd8, 0xb0, 0x75, 0xd3, + 0x98, 0x49, 0x51, 0x90, 0xfb, 0x86, 0x8c, 0x22, 0x6e, 0xb7, 0xfa, 0x21, 0x3c, 0x3e, 0x74, 0x1e, + 0x52, 0x66, 0xd7, 0xd1, 0x4d, 0xc3, 0x9e, 0x49, 0xcf, 0x47, 0x4e, 0x66, 0xcf, 0xde, 0x39, 0x54, + 0x11, 0xd6, 0x18, 0x8d, 0x22, 0x88, 0xd1, 0x12, 0x48, 0xb6, 0xd9, 0xb3, 0x9a, 0x58, 0x6d, 0x9a, + 0x2d, 0xac, 0xea, 0xc6, 0xb6, 0x39, 0x93, 0xa1, 0x00, 0x73, 0x83, 0x1d, 0xa1, 0x84, 0x35, 0xb3, + 0x85, 0x97, 0x8c, 0x6d, 0x53, 0x29, 0xd8, 0x81, 0x67, 0x74, 0x04, 0x92, 0xf6, 0xbe, 0xe1, 0x68, + 0x7b, 0x33, 0x39, 0xaa, 0x21, 0xfc, 0x49, 0xfe, 0xf5, 0x24, 0x14, 0xc7, 0x51, 0xb1, 0x0b, 0x90, + 0xd8, 0x26, 0xbd, 0x9c, 0x89, 0x1e, 0x46, 0x06, 0x8c, 0x27, 0x28, 0xc4, 0xe4, 0x6d, 0x0a, 0xb1, + 0x02, 0x59, 0x03, 0xdb, 0x0e, 0x6e, 0x31, 0x8d, 0x88, 0x8d, 0xa9, 0x53, 0xc0, 0x98, 0x06, 0x55, + 0x2a, 0x7e, 0x5b, 0x2a, 0xf5, 0x1c, 0x14, 0xdd, 0x26, 0xa9, 0x96, 0x66, 0xec, 0x08, 0xdd, 0x3c, + 0x13, 0xd6, 0x92, 0x85, 0xba, 0xe0, 0x53, 0x08, 0x9b, 0x52, 0xc0, 0x81, 0x67, 0xb4, 0x08, 0x60, + 0x1a, 0xd8, 0xdc, 0x56, 0x5b, 0xb8, 0xd9, 0x9e, 0x49, 0x8f, 0x90, 0xd2, 0x1a, 0x21, 0x19, 0x90, + 0x92, 0xc9, 0x4a, 0x9b, 0x6d, 0xf4, 0xa4, 0xa7, 0x6a, 0xa9, 0x11, 0x9a, 0xb2, 0xc2, 0x26, 0xd9, + 0x80, 0xb6, 0x6d, 0x42, 0xc1, 0xc2, 0x44, 0xef, 0x71, 0x8b, 0xf7, 0x2c, 0x43, 0x1b, 0xb1, 0x10, + 0xda, 0x33, 0x85, 0xb3, 0xb1, 0x8e, 0xe5, 0x2d, 0xff, 0x23, 0xba, 0x07, 0xdc, 0x02, 0x95, 0xaa, + 0x15, 0x50, 0x2b, 0x94, 0x13, 0x85, 0xab, 0x5a, 0x07, 0x97, 0x5e, 0x82, 0x42, 0x50, 0x3c, 0x68, + 0x1a, 0x12, 0xb6, 0xa3, 0x59, 0x0e, 0xd5, 0xc2, 0x84, 0xc2, 0x1e, 0x90, 0x04, 0x31, 0x6c, 0xb4, + 0xa8, 0x95, 0x4b, 0x28, 0xe4, 0x27, 0xfa, 0x01, 0xaf, 0xc3, 0x31, 0xda, 0xe1, 0xfb, 0x07, 0x47, + 0x34, 0x80, 0xdc, 0xdf, 0xef, 0xd2, 0xe3, 0x90, 0x0f, 0x74, 0x60, 0xdc, 0x57, 0xcb, 0xff, 0x1f, + 0xdc, 0x31, 0x14, 0x1a, 0x3d, 0x07, 0xd3, 0x3d, 0x43, 0x37, 0x1c, 0x6c, 0x75, 0x2d, 0x4c, 0x34, + 0x96, 0xbd, 0x6a, 0xe6, 0xeb, 0xa9, 0x11, 0x3a, 0xb7, 0xe9, 0xa7, 0x66, 0x28, 0xca, 0x54, 0x6f, + 0xb0, 0xf0, 0x74, 0x26, 0xfd, 0x8d, 0x94, 0xf4, 0xf2, 0xcb, 0x2f, 0xbf, 0x1c, 0x95, 0x7f, 0x3b, + 0x09, 0xd3, 0xc3, 0xe6, 0xcc, 0xd0, 0xe9, 0x7b, 0x04, 0x92, 0x46, 0xaf, 0xb3, 0x85, 0x2d, 0x2a, + 0xa4, 0x84, 0xc2, 0x9f, 0x50, 0x05, 0x12, 0x6d, 0x6d, 0x0b, 0xb7, 0x67, 0xe2, 0xf3, 0x91, 0x93, + 0x85, 0xb3, 0x0f, 0x8c, 0x35, 0x2b, 0x17, 0x96, 0x09, 0x8b, 0xc2, 0x38, 0xd1, 0xdb, 0x21, 0xce, + 0x4d, 0x34, 0x41, 0x38, 0x3d, 0x1e, 0x02, 0x99, 0x4b, 0x0a, 0xe5, 0x43, 0xc7, 0x21, 0x43, 0xfe, + 0x67, 0xba, 0x91, 0xa4, 0x6d, 0x4e, 0x93, 0x02, 0xa2, 0x17, 0xa8, 0x04, 0x69, 0x3a, 0x4d, 0x5a, + 0x58, 0x2c, 0x6d, 0xee, 0x33, 0x51, 0xac, 0x16, 0xde, 0xd6, 0x7a, 0x6d, 0x47, 0xbd, 0xae, 0xb5, + 0x7b, 0x98, 0x2a, 0x7c, 0x46, 0xc9, 0xf1, 0xc2, 0xab, 0xa4, 0x0c, 0xcd, 0x41, 0x96, 0xcd, 0x2a, + 0xdd, 0x68, 0xe1, 0x3d, 0x6a, 0x3d, 0x13, 0x0a, 0x9b, 0x68, 0x4b, 0xa4, 0x84, 0xbc, 0xfe, 0x45, + 0xdb, 0x34, 0x84, 0x6a, 0xd2, 0x57, 0x90, 0x02, 0xfa, 0xfa, 0xc7, 0xfb, 0x0d, 0xf7, 0x5d, 0xc3, + 0xbb, 0x37, 0x30, 0x97, 0x4e, 0x40, 0x91, 0x52, 0x3c, 0xca, 0x87, 0x5e, 0x6b, 0xcf, 0x4c, 0xce, + 0x47, 0x4e, 0xa6, 0x95, 0x02, 0x2b, 0x5e, 0xe3, 0xa5, 0xf2, 0xe7, 0xa2, 0x10, 0xa7, 0x86, 0xa5, + 0x08, 0xd9, 0x8d, 0xe7, 0xd7, 0xeb, 0xea, 0xe2, 0xda, 0x66, 0x75, 0xb9, 0x2e, 0x45, 0x50, 0x01, + 0x80, 0x16, 0x5c, 0x5c, 0x5e, 0xab, 0x6c, 0x48, 0x51, 0xf7, 0x79, 0x69, 0x75, 0xe3, 0xfc, 0x63, + 0x52, 0xcc, 0x65, 0xd8, 0x64, 0x05, 0x71, 0x3f, 0xc1, 0xa3, 0x67, 0xa5, 0x04, 0x92, 0x20, 0xc7, + 0x00, 0x96, 0x9e, 0xab, 0x2f, 0x9e, 0x7f, 0x4c, 0x4a, 0x06, 0x4b, 0x1e, 0x3d, 0x2b, 0xa5, 0x50, + 0x1e, 0x32, 0xb4, 0xa4, 0xba, 0xb6, 0xb6, 0x2c, 0xa5, 0x5d, 0xcc, 0xc6, 0x86, 0xb2, 0xb4, 0x7a, + 0x49, 0xca, 0xb8, 0x98, 0x97, 0x94, 0xb5, 0xcd, 0x75, 0x09, 0x5c, 0x84, 0x95, 0x7a, 0xa3, 0x51, + 0xb9, 0x54, 0x97, 0xb2, 0x2e, 0x45, 0xf5, 0xf9, 0x8d, 0x7a, 0x43, 0xca, 0x05, 0x9a, 0xf5, 0xe8, + 0x59, 0x29, 0xef, 0xbe, 0xa2, 0xbe, 0xba, 0xb9, 0x22, 0x15, 0xd0, 0x24, 0xe4, 0xd9, 0x2b, 0x44, + 0x23, 0x8a, 0x7d, 0x45, 0xe7, 0x1f, 0x93, 0x24, 0xaf, 0x21, 0x0c, 0x65, 0x32, 0x50, 0x70, 0xfe, + 0x31, 0x09, 0xc9, 0x35, 0x48, 0x50, 0x35, 0x44, 0x08, 0x0a, 0xcb, 0x95, 0x6a, 0x7d, 0x59, 0x5d, + 0x5b, 0xdf, 0x58, 0x5a, 0x5b, 0xad, 0x2c, 0x4b, 0x11, 0xaf, 0x4c, 0xa9, 0xbf, 0x63, 0x73, 0x49, + 0xa9, 0x2f, 0x4a, 0x51, 0x7f, 0xd9, 0x7a, 0xbd, 0xb2, 0x51, 0x5f, 0x94, 0x62, 0x72, 0x13, 0xa6, + 0x87, 0x19, 0xd4, 0xa1, 0x53, 0xc8, 0xa7, 0x0b, 0xd1, 0x11, 0xba, 0x40, 0xb1, 0xfa, 0x75, 0x41, + 0xfe, 0x6a, 0x14, 0xa6, 0x86, 0x2c, 0x2a, 0x43, 0x5f, 0xf2, 0x34, 0x24, 0x98, 0x2e, 0xb3, 0x65, + 0xf6, 0xd4, 0xd0, 0xd5, 0x89, 0x6a, 0xf6, 0xc0, 0x52, 0x4b, 0xf9, 0xfc, 0xae, 0x46, 0x6c, 0x84, + 0xab, 0x41, 0x20, 0x06, 0x14, 0xf6, 0x9d, 0x03, 0xc6, 0x9f, 0xad, 0x8f, 0xe7, 0xc7, 0x59, 0x1f, + 0x69, 0xd9, 0xe1, 0x16, 0x81, 0xc4, 0x90, 0x45, 0xe0, 0x02, 0x4c, 0x0e, 0x00, 0x8d, 0x6d, 0x8c, + 0xdf, 0x1b, 0x81, 0x99, 0x51, 0xc2, 0x09, 0x31, 0x89, 0xd1, 0x80, 0x49, 0xbc, 0xd0, 0x2f, 0xc1, + 0xbb, 0x47, 0x0f, 0xc2, 0xc0, 0x58, 0x7f, 0x32, 0x02, 0x47, 0x86, 0xbb, 0x94, 0x43, 0xdb, 0xf0, + 0x76, 0x48, 0x76, 0xb0, 0xb3, 0x6b, 0x0a, 0xb7, 0xea, 0xfe, 0x21, 0x8b, 0x35, 0xa9, 0xee, 0x1f, + 0x6c, 0xce, 0xe5, 0x5f, 0xed, 0x63, 0xa3, 0xfc, 0x42, 0xd6, 0x9a, 0x81, 0x96, 0xfe, 0x78, 0x14, + 0xee, 0x18, 0x0a, 0x3e, 0xb4, 0xa1, 0x77, 0x01, 0xe8, 0x46, 0xb7, 0xe7, 0x30, 0xd7, 0x89, 0x59, + 0xe2, 0x0c, 0x2d, 0xa1, 0xc6, 0x8b, 0x58, 0xd9, 0x9e, 0xe3, 0xd6, 0xc7, 0x68, 0x3d, 0xb0, 0x22, + 0x4a, 0xf0, 0x84, 0xd7, 0xd0, 0x38, 0x6d, 0xe8, 0xec, 0x88, 0x9e, 0x0e, 0x28, 0xe6, 0xc3, 0x20, + 0x35, 0xdb, 0x3a, 0x36, 0x1c, 0xd5, 0x76, 0x2c, 0xac, 0x75, 0x74, 0x63, 0x87, 0x2e, 0x35, 0xe9, + 0x72, 0x62, 0x5b, 0x6b, 0xdb, 0x58, 0x29, 0xb2, 0xea, 0x86, 0xa8, 0x25, 0x1c, 0x54, 0x81, 0x2c, + 0x1f, 0x47, 0x32, 0xc0, 0xc1, 0xaa, 0x5d, 0x0e, 0xf9, 0xa7, 0x32, 0x90, 0xf5, 0x39, 0xe0, 0xe8, + 0x6e, 0xc8, 0xbd, 0xa8, 0x5d, 0xd7, 0x54, 0x11, 0x54, 0x31, 0x49, 0x64, 0x49, 0xd9, 0x3a, 0x0f, + 0xac, 0x1e, 0x86, 0x69, 0x4a, 0x62, 0xf6, 0x1c, 0x6c, 0xa9, 0xcd, 0xb6, 0x66, 0xdb, 0x54, 0x68, + 0x69, 0x4a, 0x8a, 0x48, 0xdd, 0x1a, 0xa9, 0xaa, 0x89, 0x1a, 0x74, 0x0e, 0xa6, 0x28, 0x47, 0xa7, + 0xd7, 0x76, 0xf4, 0x6e, 0x1b, 0xab, 0x24, 0xcc, 0xb3, 0xe9, 0x92, 0xe3, 0xb6, 0x6c, 0x92, 0x50, + 0xac, 0x70, 0x02, 0xd2, 0x22, 0x1b, 0x2d, 0xc2, 0x5d, 0x94, 0x6d, 0x07, 0x1b, 0xd8, 0xd2, 0x1c, + 0xac, 0xe2, 0xf7, 0xf4, 0xb4, 0xb6, 0xad, 0x6a, 0x46, 0x4b, 0xdd, 0xd5, 0xec, 0xdd, 0x99, 0x69, + 0x02, 0x50, 0x8d, 0xce, 0x44, 0x94, 0x63, 0x84, 0xf0, 0x12, 0xa7, 0xab, 0x53, 0xb2, 0x8a, 0xd1, + 0xba, 0xac, 0xd9, 0xbb, 0xa8, 0x0c, 0x47, 0x28, 0x8a, 0xed, 0x58, 0xba, 0xb1, 0xa3, 0x36, 0x77, + 0x71, 0xf3, 0x9a, 0xda, 0x73, 0xb6, 0x9f, 0x98, 0x39, 0xee, 0x7f, 0x3f, 0x6d, 0x61, 0x83, 0xd2, + 0xd4, 0x08, 0xc9, 0xa6, 0xb3, 0xfd, 0x04, 0x6a, 0x40, 0x8e, 0x0c, 0x46, 0x47, 0x7f, 0x09, 0xab, + 0xdb, 0xa6, 0x45, 0xd7, 0xd0, 0xc2, 0x10, 0xd3, 0xe4, 0x93, 0xe0, 0xc2, 0x1a, 0x67, 0x58, 0x31, + 0x5b, 0xb8, 0x9c, 0x68, 0xac, 0xd7, 0xeb, 0x8b, 0x4a, 0x56, 0xa0, 0x5c, 0x34, 0x2d, 0xa2, 0x50, + 0x3b, 0xa6, 0x2b, 0xe0, 0x2c, 0x53, 0xa8, 0x1d, 0x53, 0x88, 0xf7, 0x1c, 0x4c, 0x35, 0x9b, 0xac, + 0xcf, 0x7a, 0x53, 0xe5, 0xc1, 0x98, 0x3d, 0x23, 0x05, 0x84, 0xd5, 0x6c, 0x5e, 0x62, 0x04, 0x5c, + 0xc7, 0x6d, 0xf4, 0x24, 0xdc, 0xe1, 0x09, 0xcb, 0xcf, 0x38, 0x39, 0xd0, 0xcb, 0x7e, 0xd6, 0x73, + 0x30, 0xd5, 0xdd, 0x1f, 0x64, 0x44, 0x81, 0x37, 0x76, 0xf7, 0xfb, 0xd9, 0x1e, 0x87, 0xe9, 0xee, + 0x6e, 0x77, 0x90, 0xef, 0xb4, 0x9f, 0x0f, 0x75, 0x77, 0xbb, 0xfd, 0x8c, 0xf7, 0xd1, 0xc8, 0xdc, + 0xc2, 0x4d, 0xcd, 0xc1, 0xad, 0x99, 0xa3, 0x7e, 0x72, 0x5f, 0x05, 0x5a, 0x00, 0xa9, 0xd9, 0x54, + 0xb1, 0xa1, 0x6d, 0xb5, 0xb1, 0xaa, 0x59, 0xd8, 0xd0, 0xec, 0x99, 0x39, 0x4a, 0x1c, 0x77, 0xac, + 0x1e, 0x56, 0x0a, 0xcd, 0x66, 0x9d, 0x56, 0x56, 0x68, 0x1d, 0x3a, 0x0d, 0x93, 0xe6, 0xd6, 0x8b, + 0x4d, 0xa6, 0x91, 0x6a, 0xd7, 0xc2, 0xdb, 0xfa, 0xde, 0xcc, 0xbd, 0x54, 0xbc, 0x45, 0x52, 0x41, + 0xf5, 0x71, 0x9d, 0x16, 0xa3, 0x53, 0x20, 0x35, 0xed, 0x5d, 0xcd, 0xea, 0x52, 0x93, 0x6c, 0x77, + 0xb5, 0x26, 0x9e, 0xb9, 0x8f, 0x91, 0xb2, 0xf2, 0x55, 0x51, 0x4c, 0x66, 0x84, 0x7d, 0x43, 0xdf, + 0x76, 0x04, 0xe2, 0x09, 0x36, 0x23, 0x68, 0x19, 0x47, 0x3b, 0x09, 0x12, 0x91, 0x44, 0xe0, 0xc5, + 0x27, 0x29, 0x59, 0xa1, 0xbb, 0xdb, 0xf5, 0xbf, 0xf7, 0x1e, 0xc8, 0x13, 0x4a, 0xef, 0xa5, 0xa7, + 0x98, 0xe3, 0xd6, 0xdd, 0xf5, 0xbd, 0xf1, 0x31, 0x38, 0x42, 0x88, 0x3a, 0xd8, 0xd1, 0x5a, 0x9a, + 0xa3, 0xf9, 0xa8, 0x1f, 0xa4, 0xd4, 0x44, 0xec, 0x2b, 0xbc, 0x32, 0xd0, 0x4e, 0xab, 0xb7, 0xb5, + 0xef, 0x2a, 0xd6, 0x43, 0xac, 0x9d, 0xa4, 0x4c, 0xa8, 0xd6, 0x9b, 0xe6, 0x9c, 0xcb, 0x65, 0xc8, + 0xf9, 0xf5, 0x1e, 0x65, 0x80, 0x69, 0xbe, 0x14, 0x21, 0x4e, 0x50, 0x6d, 0x6d, 0x91, 0xb8, 0x2f, + 0x2f, 0xd4, 0xa5, 0x28, 0x71, 0xa3, 0x96, 0x97, 0x36, 0xea, 0xaa, 0xb2, 0xb9, 0xba, 0xb1, 0xb4, + 0x52, 0x97, 0x62, 0x3e, 0xc7, 0xfe, 0x4a, 0x3c, 0x7d, 0xbf, 0x74, 0x82, 0x78, 0x0d, 0x85, 0x60, + 0xa4, 0x86, 0xde, 0x06, 0x47, 0x45, 0x5a, 0xc5, 0xc6, 0x8e, 0x7a, 0x43, 0xb7, 0xe8, 0x84, 0xec, + 0x68, 0x6c, 0x71, 0x74, 0xf5, 0x67, 0x9a, 0x53, 0x35, 0xb0, 0xf3, 0xac, 0x6e, 0x91, 0xe9, 0xd6, + 0xd1, 0x1c, 0xb4, 0x0c, 0x73, 0x86, 0xa9, 0xda, 0x8e, 0x66, 0xb4, 0x34, 0xab, 0xa5, 0x7a, 0x09, + 0x2d, 0x55, 0x6b, 0x36, 0xb1, 0x6d, 0x9b, 0x6c, 0x21, 0x74, 0x51, 0xee, 0x34, 0xcc, 0x06, 0x27, + 0xf6, 0x56, 0x88, 0x0a, 0x27, 0xed, 0x53, 0xdf, 0xd8, 0x28, 0xf5, 0x3d, 0x0e, 0x99, 0x8e, 0xd6, + 0x55, 0xb1, 0xe1, 0x58, 0xfb, 0xd4, 0x3f, 0x4f, 0x2b, 0xe9, 0x8e, 0xd6, 0xad, 0x93, 0xe7, 0xb7, + 0x24, 0x4c, 0xba, 0x12, 0x4f, 0xc7, 0xa5, 0xc4, 0x95, 0x78, 0x3a, 0x21, 0x25, 0xaf, 0xc4, 0xd3, + 0x49, 0x29, 0x75, 0x25, 0x9e, 0x4e, 0x4b, 0x99, 0x2b, 0xf1, 0x74, 0x46, 0x02, 0xf9, 0xa7, 0xe3, + 0x90, 0xf3, 0x7b, 0xf0, 0x24, 0x20, 0x6a, 0xd2, 0x35, 0x2c, 0x42, 0xad, 0xdc, 0x3d, 0x07, 0xfa, + 0xfb, 0x0b, 0x35, 0xb2, 0xb8, 0x95, 0x93, 0xcc, 0x5d, 0x56, 0x18, 0x27, 0x71, 0x2c, 0x88, 0xfa, + 0x61, 0xe6, 0x9e, 0xa4, 0x15, 0xfe, 0x84, 0x2e, 0x41, 0xf2, 0x45, 0x9b, 0x62, 0x27, 0x29, 0xf6, + 0xbd, 0x07, 0x63, 0x5f, 0x69, 0x50, 0xf0, 0xcc, 0x95, 0x86, 0xba, 0xba, 0xa6, 0xac, 0x54, 0x96, + 0x15, 0xce, 0x8e, 0x8e, 0x41, 0xbc, 0xad, 0xbd, 0xb4, 0x1f, 0x5c, 0x06, 0x69, 0x11, 0x5a, 0x80, + 0x62, 0xcf, 0xb8, 0x8e, 0x2d, 0x7d, 0x5b, 0xc7, 0x2d, 0x95, 0x52, 0x15, 0xfd, 0x54, 0x05, 0xaf, + 0x76, 0x99, 0xd0, 0x8f, 0x39, 0x8c, 0xc7, 0x20, 0x7e, 0x03, 0x6b, 0xd7, 0x82, 0x8b, 0x15, 0x2d, + 0x7a, 0x13, 0xa7, 0xd3, 0x19, 0x48, 0x50, 0xf9, 0x22, 0x00, 0x2e, 0x61, 0x69, 0x02, 0xa5, 0x21, + 0x5e, 0x5b, 0x53, 0xc8, 0x94, 0x92, 0x20, 0xc7, 0x4a, 0xd5, 0xf5, 0xa5, 0x7a, 0xad, 0x2e, 0x45, + 0xe5, 0x73, 0x90, 0x64, 0x42, 0x23, 0xd3, 0xcd, 0x15, 0x9b, 0x34, 0xc1, 0x1f, 0x39, 0x46, 0x44, + 0xd4, 0x6e, 0xae, 0x54, 0xeb, 0x8a, 0x14, 0x1d, 0x50, 0x16, 0xd9, 0x86, 0x9c, 0xdf, 0x93, 0x7f, + 0x6b, 0xc2, 0xf9, 0x2f, 0x46, 0x20, 0xeb, 0xf3, 0xcc, 0x89, 0x4b, 0xa5, 0xb5, 0xdb, 0xe6, 0x0d, + 0x55, 0x6b, 0xeb, 0x9a, 0xcd, 0x55, 0x09, 0x68, 0x51, 0x85, 0x94, 0x8c, 0x3b, 0x74, 0x6f, 0xd1, + 0x24, 0x4b, 0x48, 0x49, 0xf9, 0xa3, 0x11, 0x90, 0xfa, 0x5d, 0xe3, 0xbe, 0x66, 0x46, 0xfe, 0x3a, + 0x9b, 0x29, 0x7f, 0x24, 0x02, 0x85, 0xa0, 0x3f, 0xdc, 0xd7, 0xbc, 0xbb, 0xff, 0x5a, 0x9b, 0xf7, + 0x87, 0x51, 0xc8, 0x07, 0xbc, 0xe0, 0x71, 0x5b, 0xf7, 0x1e, 0x98, 0xd4, 0x5b, 0xb8, 0xd3, 0x35, + 0x1d, 0x6c, 0x34, 0xf7, 0xd5, 0x36, 0xbe, 0x8e, 0xdb, 0x33, 0x32, 0x35, 0x32, 0x67, 0x0e, 0xf6, + 0xb3, 0x17, 0x96, 0x3c, 0xbe, 0x65, 0xc2, 0x56, 0x9e, 0x5a, 0x5a, 0xac, 0xaf, 0xac, 0xaf, 0x6d, + 0xd4, 0x57, 0x6b, 0xcf, 0xab, 0x9b, 0xab, 0xcf, 0xac, 0xae, 0x3d, 0xbb, 0xaa, 0x48, 0x7a, 0x1f, + 0xd9, 0x9b, 0x38, 0xed, 0xd7, 0x41, 0xea, 0x6f, 0x14, 0x3a, 0x0a, 0xc3, 0x9a, 0x25, 0x4d, 0xa0, + 0x29, 0x28, 0xae, 0xae, 0xa9, 0x8d, 0xa5, 0xc5, 0xba, 0x5a, 0xbf, 0x78, 0xb1, 0x5e, 0xdb, 0x68, + 0xb0, 0xcc, 0x89, 0x4b, 0xbd, 0x11, 0x98, 0xe0, 0xf2, 0x87, 0x63, 0x30, 0x35, 0xa4, 0x25, 0xa8, + 0xc2, 0x63, 0x1e, 0x16, 0x86, 0x3d, 0x34, 0x4e, 0xeb, 0x17, 0x88, 0xd7, 0xb1, 0xae, 0x59, 0x0e, + 0x0f, 0x91, 0x4e, 0x01, 0x91, 0x92, 0xe1, 0x10, 0xe3, 0x6a, 0xf1, 0x8c, 0x14, 0x0b, 0x84, 0x8a, + 0x5e, 0x39, 0x4b, 0x4a, 0x3d, 0x08, 0xa8, 0x6b, 0xda, 0xba, 0xa3, 0x5f, 0xc7, 0xaa, 0x6e, 0x88, + 0xf4, 0x15, 0x09, 0x8c, 0xe2, 0x8a, 0x24, 0x6a, 0x96, 0x0c, 0xc7, 0xa5, 0x36, 0xf0, 0x8e, 0xd6, + 0x47, 0x4d, 0x8c, 0x7f, 0x4c, 0x91, 0x44, 0x8d, 0x4b, 0x7d, 0x37, 0xe4, 0x5a, 0x66, 0x8f, 0x78, + 0x8b, 0x8c, 0x8e, 0xac, 0x35, 0x11, 0x25, 0xcb, 0xca, 0x5c, 0x12, 0x1e, 0x07, 0x78, 0x79, 0xb3, + 0x9c, 0x92, 0x65, 0x65, 0x8c, 0xe4, 0x04, 0x14, 0xb5, 0x9d, 0x1d, 0x8b, 0x80, 0x0b, 0x20, 0x16, + 0xd9, 0x14, 0xdc, 0x62, 0x4a, 0x58, 0xba, 0x02, 0x69, 0x21, 0x07, 0xb2, 0xd8, 0x13, 0x49, 0xa8, + 0x5d, 0x16, 0xae, 0x47, 0x4f, 0x66, 0x94, 0xb4, 0x21, 0x2a, 0xef, 0x86, 0x9c, 0x6e, 0xab, 0xde, + 0x36, 0x40, 0x74, 0x3e, 0x7a, 0x32, 0xad, 0x64, 0x75, 0xdb, 0x4d, 0xa1, 0xca, 0x9f, 0x8c, 0x42, + 0x21, 0xb8, 0x8d, 0x81, 0x16, 0x21, 0xdd, 0x36, 0x9b, 0x1a, 0x55, 0x2d, 0xb6, 0x87, 0x76, 0x32, + 0x64, 0xe7, 0x63, 0x61, 0x99, 0xd3, 0x2b, 0x2e, 0x67, 0xe9, 0xdf, 0x45, 0x20, 0x2d, 0x8a, 0xd1, + 0x11, 0x88, 0x77, 0x35, 0x67, 0x97, 0xc2, 0x25, 0xaa, 0x51, 0x29, 0xa2, 0xd0, 0x67, 0x52, 0x6e, + 0x77, 0x35, 0x83, 0xaa, 0x00, 0x2f, 0x27, 0xcf, 0x64, 0x5c, 0xdb, 0x58, 0x6b, 0xd1, 0xb0, 0xc9, + 0xec, 0x74, 0xb0, 0xe1, 0xd8, 0x62, 0x5c, 0x79, 0x79, 0x8d, 0x17, 0xa3, 0x07, 0x60, 0xd2, 0xb1, + 0x34, 0xbd, 0x1d, 0xa0, 0x8d, 0x53, 0x5a, 0x49, 0x54, 0xb8, 0xc4, 0x65, 0x38, 0x26, 0x70, 0x5b, + 0xd8, 0xd1, 0x9a, 0xbb, 0xb8, 0xe5, 0x31, 0x25, 0x69, 0x7a, 0xe4, 0x28, 0x27, 0x58, 0xe4, 0xf5, + 0x82, 0x57, 0xfe, 0x4a, 0x04, 0x26, 0x45, 0xa0, 0xd7, 0x72, 0x85, 0xb5, 0x02, 0xa0, 0x19, 0x86, + 0xe9, 0xf8, 0xc5, 0x35, 0xa8, 0xca, 0x03, 0x7c, 0x0b, 0x15, 0x97, 0x49, 0xf1, 0x01, 0x94, 0x3a, + 0x00, 0x5e, 0xcd, 0x48, 0xb1, 0xcd, 0x41, 0x96, 0xef, 0x51, 0xd1, 0x8d, 0x4e, 0x96, 0x1a, 0x00, + 0x56, 0x44, 0x22, 0x42, 0x34, 0x0d, 0x89, 0x2d, 0xbc, 0xa3, 0x1b, 0x3c, 0xf3, 0xcc, 0x1e, 0x44, + 0x02, 0x27, 0xee, 0x26, 0x70, 0xaa, 0xff, 0x3f, 0x4c, 0x35, 0xcd, 0x4e, 0x7f, 0x73, 0xab, 0x52, + 0x5f, 0x7a, 0xc2, 0xbe, 0x1c, 0x79, 0xe1, 0x21, 0x4e, 0xb4, 0x63, 0xb6, 0x35, 0x63, 0x67, 0xc1, + 0xb4, 0x76, 0xbc, 0x8d, 0x5a, 0xe2, 0x21, 0xd9, 0xbe, 0xed, 0xda, 0xee, 0xd6, 0xff, 0x8c, 0x44, + 0x7e, 0x21, 0x1a, 0xbb, 0xb4, 0x5e, 0xfd, 0xe5, 0x68, 0xe9, 0x12, 0x63, 0x5c, 0x17, 0xc2, 0x50, + 0xf0, 0x76, 0x1b, 0x37, 0x49, 0x07, 0xe1, 0x4f, 0x1e, 0x80, 0xe9, 0x1d, 0x73, 0xc7, 0xa4, 0x48, + 0x67, 0xc8, 0x2f, 0xbe, 0xd3, 0x9b, 0x71, 0x4b, 0x4b, 0xa1, 0xdb, 0xc2, 0xe5, 0x55, 0x98, 0xe2, + 0xc4, 0x2a, 0xdd, 0x6a, 0x62, 0x81, 0x10, 0x3a, 0x30, 0x0b, 0x37, 0xf3, 0xab, 0x5f, 0xa3, 0xcb, + 0xb7, 0x32, 0xc9, 0x59, 0x49, 0x1d, 0x8b, 0x95, 0xca, 0x0a, 0xdc, 0x11, 0xc0, 0x63, 0x93, 0x14, + 0x5b, 0x21, 0x88, 0xff, 0x92, 0x23, 0x4e, 0xf9, 0x10, 0x1b, 0x9c, 0xb5, 0x5c, 0x83, 0xfc, 0x61, + 0xb0, 0xfe, 0x15, 0xc7, 0xca, 0x61, 0x3f, 0xc8, 0x25, 0x28, 0x52, 0x90, 0x66, 0xcf, 0x76, 0xcc, + 0x0e, 0xb5, 0x80, 0x07, 0xc3, 0xfc, 0xeb, 0xaf, 0xb1, 0x59, 0x53, 0x20, 0x6c, 0x35, 0x97, 0xab, + 0x5c, 0x06, 0xba, 0xbb, 0xd6, 0xc2, 0xcd, 0x76, 0x08, 0xc2, 0x97, 0x78, 0x43, 0x5c, 0xfa, 0xf2, + 0x55, 0x98, 0x26, 0xbf, 0xa9, 0x81, 0xf2, 0xb7, 0x24, 0x3c, 0x65, 0x37, 0xf3, 0x95, 0xf7, 0xb2, + 0x89, 0x39, 0xe5, 0x02, 0xf8, 0xda, 0xe4, 0x1b, 0xc5, 0x1d, 0xec, 0x38, 0xd8, 0xb2, 0x55, 0xad, + 0x3d, 0xac, 0x79, 0xbe, 0x9c, 0xc7, 0xcc, 0xcf, 0x7d, 0x2b, 0x38, 0x8a, 0x97, 0x18, 0x67, 0xa5, + 0xdd, 0x2e, 0x6f, 0xc2, 0xd1, 0x21, 0x5a, 0x31, 0x06, 0xe6, 0x87, 0x39, 0xe6, 0xf4, 0x80, 0x66, + 0x10, 0xd8, 0x75, 0x10, 0xe5, 0xee, 0x58, 0x8e, 0x81, 0xf9, 0xf3, 0x1c, 0x13, 0x71, 0x5e, 0x31, + 0xa4, 0x04, 0xf1, 0x0a, 0x4c, 0x5e, 0xc7, 0xd6, 0x96, 0x69, 0xf3, 0x3c, 0xd3, 0x18, 0x70, 0x1f, + 0xe1, 0x70, 0x45, 0xce, 0x48, 0x13, 0x4f, 0x04, 0xeb, 0x49, 0x48, 0x6f, 0x6b, 0x4d, 0x3c, 0x06, + 0xc4, 0x2d, 0x0e, 0x91, 0x22, 0xf4, 0x84, 0xb5, 0x02, 0xb9, 0x1d, 0x93, 0xaf, 0x51, 0xe1, 0xec, + 0x1f, 0xe5, 0xec, 0x59, 0xc1, 0xc3, 0x21, 0xba, 0x66, 0xb7, 0xd7, 0x26, 0x0b, 0x58, 0x38, 0xc4, + 0xdf, 0x17, 0x10, 0x82, 0x87, 0x43, 0x1c, 0x42, 0xac, 0xaf, 0x08, 0x08, 0xdb, 0x27, 0xcf, 0xa7, + 0x21, 0x6b, 0x1a, 0xed, 0x7d, 0xd3, 0x18, 0xa7, 0x11, 0x1f, 0xe3, 0x08, 0xc0, 0x59, 0x08, 0xc0, + 0x05, 0xc8, 0x8c, 0x3b, 0x10, 0xbf, 0xf8, 0x2d, 0x31, 0x3d, 0xc4, 0x08, 0x5c, 0x82, 0xa2, 0x30, + 0x50, 0xba, 0x69, 0x8c, 0x01, 0xf1, 0x09, 0x0e, 0x51, 0xf0, 0xb1, 0xf1, 0x6e, 0x38, 0xd8, 0x76, + 0x76, 0xf0, 0x38, 0x20, 0x9f, 0x14, 0xdd, 0xe0, 0x2c, 0x5c, 0x94, 0x5b, 0xd8, 0x68, 0xee, 0x8e, + 0x87, 0xf0, 0x29, 0x21, 0x4a, 0xc1, 0x43, 0x20, 0x6a, 0x90, 0xef, 0x68, 0x96, 0xbd, 0xab, 0xb5, + 0xc7, 0x1a, 0x8e, 0x5f, 0xe2, 0x18, 0x39, 0x97, 0x89, 0x4b, 0xa4, 0x67, 0x1c, 0x06, 0xe6, 0x97, + 0x85, 0x44, 0x7c, 0x6c, 0x7c, 0xea, 0xd9, 0x0e, 0x4d, 0xca, 0x1d, 0x06, 0xed, 0x1f, 0x8a, 0xa9, + 0xc7, 0x78, 0x57, 0xfc, 0x88, 0x17, 0x20, 0x63, 0xeb, 0x2f, 0x8d, 0x05, 0xf3, 0x8f, 0xc4, 0x48, + 0x53, 0x06, 0xc2, 0xfc, 0x3c, 0x1c, 0x1b, 0xba, 0x4c, 0x8c, 0x01, 0xf6, 0x8f, 0x39, 0xd8, 0x91, + 0x21, 0x4b, 0x05, 0x37, 0x09, 0x87, 0x85, 0xfc, 0x15, 0x61, 0x12, 0x70, 0x1f, 0xd6, 0x3a, 0x89, + 0x1a, 0x6c, 0x6d, 0xfb, 0x70, 0x52, 0xfb, 0x27, 0x42, 0x6a, 0x8c, 0x37, 0x20, 0xb5, 0x0d, 0x38, + 0xc2, 0x11, 0x0f, 0x37, 0xae, 0x9f, 0x16, 0x86, 0x95, 0x71, 0x6f, 0x06, 0x47, 0xf7, 0x07, 0xa1, + 0xe4, 0x8a, 0x53, 0xb8, 0xa7, 0xb6, 0xda, 0xd1, 0xba, 0x63, 0x20, 0xff, 0x2a, 0x47, 0x16, 0x16, + 0xdf, 0xf5, 0x6f, 0xed, 0x15, 0xad, 0x4b, 0xc0, 0x9f, 0x83, 0x19, 0x01, 0xde, 0x33, 0x2c, 0xdc, + 0x34, 0x77, 0x0c, 0xfd, 0x25, 0xdc, 0x1a, 0x03, 0xfa, 0xd7, 0xfa, 0x86, 0x6a, 0xd3, 0xc7, 0x4e, + 0x90, 0x97, 0x40, 0x72, 0x7d, 0x15, 0x55, 0xef, 0x74, 0x4d, 0xcb, 0x09, 0x41, 0xfc, 0x8c, 0x18, + 0x29, 0x97, 0x6f, 0x89, 0xb2, 0x95, 0xeb, 0xc0, 0x76, 0xaa, 0xc7, 0x55, 0xc9, 0xcf, 0x72, 0xa0, + 0xbc, 0xc7, 0xc5, 0x0d, 0x47, 0xd3, 0xec, 0x74, 0x35, 0x6b, 0x1c, 0xfb, 0xf7, 0x4f, 0x85, 0xe1, + 0xe0, 0x2c, 0xdc, 0x70, 0x10, 0x8f, 0x8e, 0xac, 0xf6, 0x63, 0x20, 0x7c, 0x4e, 0x18, 0x0e, 0xc1, + 0xc3, 0x21, 0x84, 0xc3, 0x30, 0x06, 0xc4, 0xe7, 0x05, 0x84, 0xe0, 0x21, 0x10, 0xef, 0xf0, 0x16, + 0x5a, 0x0b, 0xef, 0xe8, 0xb6, 0x63, 0x31, 0xa7, 0xf8, 0x60, 0xa8, 0x2f, 0x7c, 0x2b, 0xe8, 0x84, + 0x29, 0x3e, 0x56, 0x62, 0x89, 0x78, 0x9a, 0x96, 0xc6, 0x4c, 0xe1, 0x0d, 0xfb, 0x75, 0x61, 0x89, + 0x7c, 0x6c, 0xa4, 0x6d, 0x3e, 0x0f, 0x91, 0x88, 0xbd, 0x49, 0x22, 0x85, 0x31, 0xe0, 0xfe, 0x59, + 0x5f, 0xe3, 0x1a, 0x82, 0x97, 0x60, 0xfa, 0xfc, 0x9f, 0x9e, 0x71, 0x0d, 0xef, 0x8f, 0xa5, 0x9d, + 0xbf, 0xd1, 0xe7, 0xff, 0x6c, 0x32, 0x4e, 0x66, 0x43, 0x8a, 0x7d, 0xfe, 0x14, 0x0a, 0x3b, 0x97, + 0x34, 0xf3, 0xc3, 0xaf, 0xf3, 0xfe, 0x06, 0xdd, 0xa9, 0xf2, 0x32, 0x51, 0xf2, 0xa0, 0xd3, 0x13, + 0x0e, 0xf6, 0xde, 0xd7, 0x5d, 0x3d, 0x0f, 0xf8, 0x3c, 0xe5, 0x8b, 0x90, 0x0f, 0x38, 0x3c, 0xe1, + 0x50, 0x3f, 0xca, 0xa1, 0x72, 0x7e, 0x7f, 0xa7, 0x7c, 0x0e, 0xe2, 0xc4, 0x79, 0x09, 0x67, 0xff, + 0x31, 0xce, 0x4e, 0xc9, 0xcb, 0x4f, 0x41, 0x5a, 0x38, 0x2d, 0xe1, 0xac, 0x7f, 0x8b, 0xb3, 0xba, + 0x2c, 0x84, 0x5d, 0x38, 0x2c, 0xe1, 0xec, 0x7f, 0x5b, 0xb0, 0x0b, 0x16, 0xc2, 0x3e, 0xbe, 0x08, + 0xbf, 0xf8, 0x77, 0xe2, 0x7c, 0xd1, 0x11, 0xb2, 0xbb, 0x00, 0x29, 0xee, 0xa9, 0x84, 0x73, 0xff, + 0x38, 0x7f, 0xb9, 0xe0, 0x28, 0x3f, 0x0e, 0x89, 0x31, 0x05, 0xfe, 0x77, 0x39, 0x2b, 0xa3, 0x2f, + 0xd7, 0x20, 0xeb, 0xf3, 0x4e, 0xc2, 0xd9, 0xdf, 0xcf, 0xd9, 0xfd, 0x5c, 0xa4, 0xe9, 0xdc, 0x3b, + 0x09, 0x07, 0xf8, 0x49, 0xd1, 0x74, 0xce, 0x41, 0xc4, 0x26, 0x1c, 0x93, 0x70, 0xee, 0x0f, 0x08, + 0xa9, 0x0b, 0x96, 0xf2, 0xd3, 0x90, 0x71, 0x17, 0x9b, 0x70, 0xfe, 0x9f, 0xe2, 0xfc, 0x1e, 0x0f, + 0x91, 0x80, 0x6f, 0xb1, 0x0b, 0x87, 0xf8, 0x69, 0x21, 0x01, 0x1f, 0x17, 0x99, 0x46, 0xfd, 0x0e, + 0x4c, 0x38, 0xd2, 0x07, 0xc5, 0x34, 0xea, 0xf3, 0x5f, 0xc8, 0x68, 0x52, 0x9b, 0x1f, 0x0e, 0xf1, + 0xf7, 0xc4, 0x68, 0x52, 0x7a, 0xd2, 0x8c, 0x7e, 0x8f, 0x20, 0x1c, 0xe3, 0x67, 0x45, 0x33, 0xfa, + 0x1c, 0x82, 0xf2, 0x3a, 0xa0, 0x41, 0x6f, 0x20, 0x1c, 0xef, 0x43, 0x1c, 0x6f, 0x72, 0xc0, 0x19, + 0x28, 0x3f, 0x0b, 0x47, 0x86, 0x7b, 0x02, 0xe1, 0xa8, 0x3f, 0xf7, 0x7a, 0x5f, 0xec, 0xe6, 0x77, + 0x04, 0xca, 0x1b, 0xde, 0x92, 0xe2, 0xf7, 0x02, 0xc2, 0x61, 0x3f, 0xfc, 0x7a, 0xd0, 0x70, 0xfb, + 0x9d, 0x80, 0x72, 0x05, 0xc0, 0x5b, 0x80, 0xc3, 0xb1, 0x3e, 0xc2, 0xb1, 0x7c, 0x4c, 0x64, 0x6a, + 0xf0, 0xf5, 0x37, 0x9c, 0xff, 0x96, 0x98, 0x1a, 0x9c, 0x83, 0x4c, 0x0d, 0xb1, 0xf4, 0x86, 0x73, + 0x7f, 0x54, 0x4c, 0x0d, 0xc1, 0x42, 0x34, 0xdb, 0xb7, 0xba, 0x85, 0x23, 0x7c, 0x4c, 0x68, 0xb6, + 0x8f, 0xab, 0xbc, 0x0a, 0x93, 0x03, 0x0b, 0x62, 0x38, 0xd4, 0x2f, 0x70, 0x28, 0xa9, 0x7f, 0x3d, + 0xf4, 0x2f, 0x5e, 0x7c, 0x31, 0x0c, 0x47, 0xfb, 0x78, 0xdf, 0xe2, 0xc5, 0xd7, 0xc2, 0xf2, 0x05, + 0x48, 0x1b, 0xbd, 0x76, 0x9b, 0x4c, 0x1e, 0x74, 0xf0, 0x59, 0xc2, 0x99, 0xff, 0xf6, 0x5d, 0x2e, + 0x1d, 0xc1, 0x50, 0x3e, 0x07, 0x09, 0xdc, 0xd9, 0xc2, 0xad, 0x30, 0xce, 0x6f, 0x7e, 0x57, 0x18, + 0x4c, 0x42, 0x5d, 0x7e, 0x1a, 0x80, 0xa5, 0x46, 0xe8, 0xe6, 0x61, 0x08, 0xef, 0x1f, 0x7f, 0x97, + 0x1f, 0xde, 0xf1, 0x58, 0x3c, 0x00, 0x76, 0x14, 0xe8, 0x60, 0x80, 0x6f, 0x05, 0x01, 0xe8, 0x88, + 0x3c, 0x09, 0xa9, 0x17, 0x6d, 0xd3, 0x70, 0xb4, 0x9d, 0x30, 0xee, 0x3f, 0xe1, 0xdc, 0x82, 0x9e, + 0x08, 0xac, 0x63, 0x5a, 0xd8, 0xd1, 0x76, 0xec, 0x30, 0xde, 0xff, 0xce, 0x79, 0x5d, 0x06, 0xc2, + 0xdc, 0xd4, 0x6c, 0x67, 0x9c, 0x7e, 0xff, 0xa9, 0x60, 0x16, 0x0c, 0xa4, 0xd1, 0xe4, 0xf7, 0x35, + 0xbc, 0x1f, 0xc6, 0xfb, 0x6d, 0xd1, 0x68, 0x4e, 0x5f, 0x7e, 0x0a, 0x32, 0xe4, 0x27, 0x3b, 0x91, + 0x17, 0xc2, 0xfc, 0x67, 0x9c, 0xd9, 0xe3, 0x20, 0x6f, 0xb6, 0x9d, 0x96, 0xa3, 0x87, 0x0b, 0xfb, + 0x3b, 0x7c, 0xa4, 0x05, 0x7d, 0xb9, 0x02, 0x59, 0xdb, 0x69, 0xb5, 0x7a, 0xdc, 0x3f, 0x0d, 0x61, + 0xff, 0xf3, 0xef, 0xba, 0x29, 0x0b, 0x97, 0x87, 0x8c, 0xf6, 0x8d, 0x6b, 0x4e, 0xd7, 0xa4, 0x1b, + 0x1e, 0x61, 0x08, 0xaf, 0x73, 0x04, 0x1f, 0x4b, 0xb9, 0x06, 0x39, 0xd2, 0x17, 0x0b, 0x77, 0x31, + 0xdd, 0x9d, 0x0a, 0x81, 0xf8, 0x0b, 0x2e, 0x80, 0x00, 0x53, 0xf5, 0xdd, 0x5f, 0x7a, 0x6d, 0x36, + 0xf2, 0xe5, 0xd7, 0x66, 0x23, 0x7f, 0xf8, 0xda, 0x6c, 0xe4, 0x03, 0x5f, 0x9d, 0x9d, 0xf8, 0xf2, + 0x57, 0x67, 0x27, 0x7e, 0xff, 0xab, 0xb3, 0x13, 0xc3, 0xb3, 0xc4, 0x70, 0xc9, 0xbc, 0x64, 0xb2, + 0xfc, 0xf0, 0x0b, 0xf7, 0xed, 0xe8, 0xce, 0x6e, 0x6f, 0x6b, 0xa1, 0x69, 0x76, 0xce, 0x34, 0x4d, + 0xbb, 0x63, 0xda, 0x67, 0x82, 0x79, 0x5d, 0xfa, 0x0b, 0xfe, 0x77, 0x84, 0xc4, 0xcc, 0xc1, 0x74, + 0xae, 0x66, 0xec, 0x8f, 0xfa, 0xbc, 0xe7, 0x3c, 0xc4, 0x2a, 0xc6, 0x3e, 0x3a, 0xc6, 0x0c, 0x9c, + 0xda, 0xb3, 0xda, 0xfc, 0x58, 0x58, 0x8a, 0x3c, 0x6f, 0x5a, 0x6d, 0x34, 0xed, 0x9d, 0xdd, 0x8c, + 0x9c, 0xcc, 0xf1, 0x03, 0x99, 0xd5, 0xf7, 0x47, 0x0e, 0xd7, 0x93, 0x74, 0xc5, 0xd8, 0xa7, 0x1d, + 0x59, 0x8f, 0xbc, 0xf0, 0x60, 0x68, 0x9e, 0xfb, 0x9a, 0x61, 0xde, 0x30, 0x48, 0xb3, 0xbb, 0x5b, + 0x22, 0xc7, 0x3d, 0xdb, 0x9f, 0xe3, 0x7e, 0x16, 0xb7, 0xdb, 0xcf, 0x10, 0xba, 0x0d, 0xc2, 0xb2, + 0x95, 0x64, 0x27, 0x90, 0xe1, 0x83, 0x51, 0x98, 0x1d, 0x48, 0x67, 0x73, 0x25, 0x18, 0x25, 0x84, + 0x32, 0xa4, 0x17, 0x85, 0x6e, 0xcd, 0x40, 0xca, 0xc6, 0x4d, 0xd3, 0x68, 0xd9, 0x54, 0x10, 0x31, + 0x45, 0x3c, 0x12, 0x41, 0x18, 0x9a, 0x61, 0xda, 0xfc, 0x60, 0x25, 0x7b, 0xa8, 0xfe, 0xfc, 0x21, + 0x05, 0x91, 0x17, 0x6f, 0x12, 0xd2, 0x78, 0x64, 0x4c, 0x69, 0x88, 0x4e, 0x04, 0x32, 0xff, 0xe3, + 0x4a, 0xe5, 0x67, 0xa3, 0x30, 0xd7, 0x2f, 0x15, 0x32, 0xb3, 0x6c, 0x47, 0xeb, 0x74, 0x47, 0x89, + 0xe5, 0x02, 0x64, 0x36, 0x04, 0xcd, 0xa1, 0xe5, 0x72, 0xeb, 0x90, 0x72, 0x29, 0xb8, 0xaf, 0x12, + 0x82, 0x39, 0x3b, 0xa6, 0x60, 0xdc, 0x7e, 0xdc, 0x96, 0x64, 0xfe, 0x2a, 0x09, 0xc7, 0xd8, 0x74, + 0x52, 0xd9, 0x54, 0x62, 0x0f, 0x5c, 0x26, 0x39, 0x7f, 0x55, 0xf8, 0x3e, 0x89, 0xfc, 0x0c, 0x4c, + 0x2d, 0x11, 0x6b, 0x41, 0xa2, 0x20, 0x6f, 0x87, 0x67, 0xe8, 0xd9, 0xd3, 0xf9, 0x80, 0xc3, 0xcf, + 0x77, 0x98, 0xfc, 0x45, 0xf2, 0x0f, 0x47, 0x40, 0x6a, 0x34, 0xb5, 0xb6, 0x66, 0x7d, 0xaf, 0x50, + 0xe8, 0x71, 0x00, 0xfa, 0xcd, 0x92, 0xf7, 0x91, 0x51, 0xe1, 0xec, 0xcc, 0x82, 0xbf, 0x73, 0x0b, + 0xec, 0x4d, 0xf4, 0x0b, 0x86, 0x0c, 0xa5, 0x25, 0x3f, 0x4f, 0x3f, 0x07, 0xe0, 0x55, 0xa0, 0xe3, + 0x70, 0xb4, 0x51, 0xab, 0x2c, 0x57, 0x14, 0x95, 0x1d, 0x86, 0x5f, 0x6d, 0xac, 0xd7, 0x6b, 0x4b, + 0x17, 0x97, 0xea, 0x8b, 0xd2, 0x04, 0x3a, 0x02, 0xc8, 0x5f, 0xe9, 0x9e, 0x4b, 0xb9, 0x03, 0x26, + 0xfd, 0xe5, 0xec, 0x44, 0x7d, 0x94, 0x78, 0x8a, 0x7a, 0xa7, 0xdb, 0xc6, 0x74, 0xeb, 0x4f, 0xd5, + 0x85, 0xd4, 0xc2, 0x9d, 0x90, 0xdf, 0xf9, 0x0f, 0xec, 0x94, 0xf5, 0x94, 0xc7, 0xee, 0xca, 0xbc, + 0xbc, 0x0c, 0x93, 0x5a, 0xb3, 0x89, 0xbb, 0x01, 0xc8, 0x10, 0x53, 0x4d, 0x00, 0xe9, 0x66, 0x26, + 0xe7, 0xf4, 0xd0, 0x1e, 0x87, 0xa4, 0x4d, 0x7b, 0x1f, 0x06, 0xf1, 0xbb, 0x1c, 0x82, 0x93, 0x97, + 0x0d, 0x98, 0x24, 0x9e, 0x9f, 0x66, 0x61, 0x5f, 0x33, 0x0e, 0xce, 0x33, 0xfc, 0xe6, 0x67, 0x1e, + 0xa6, 0x5b, 0x9b, 0x77, 0x07, 0x87, 0x65, 0x88, 0x3a, 0x29, 0x12, 0xc7, 0xf6, 0x1a, 0x8a, 0xa1, + 0x20, 0xde, 0xc7, 0x1b, 0x7c, 0xf0, 0xcb, 0x7e, 0x8b, 0xbf, 0x6c, 0x76, 0x98, 0x0e, 0xf8, 0xde, + 0x94, 0xe7, 0xa8, 0xac, 0xa2, 0x5a, 0x1f, 0x35, 0xa7, 0x5f, 0x78, 0x60, 0x70, 0x75, 0x62, 0xff, + 0x3d, 0x44, 0x91, 0x2f, 0xf8, 0x5f, 0xe3, 0xce, 0xbd, 0x6f, 0xc7, 0x61, 0x52, 0xeb, 0xe8, 0x86, + 0x79, 0x86, 0xfe, 0xcb, 0xe7, 0x5c, 0x82, 0x3e, 0x8c, 0xb1, 0x29, 0x79, 0x9e, 0x4d, 0x85, 0x70, + 0x8d, 0xf9, 0xb3, 0x9f, 0xf8, 0x44, 0xc2, 0x9b, 0x2e, 0xe5, 0x15, 0x90, 0xc4, 0x81, 0x43, 0x6c, + 0x34, 0xcd, 0xd6, 0x58, 0x59, 0x8a, 0xef, 0x08, 0x0c, 0x91, 0xdf, 0xaa, 0x73, 0xd6, 0xf2, 0xdb, + 0x20, 0xed, 0xc2, 0x84, 0x79, 0x26, 0x02, 0xc4, 0xe5, 0x20, 0x7e, 0x09, 0x9b, 0x99, 0xe3, 0x78, + 0xa1, 0xaf, 0x0b, 0x7e, 0x36, 0x43, 0x57, 0x49, 0x6f, 0x2e, 0x41, 0xa1, 0x65, 0x1a, 0x8e, 0x6a, + 0x76, 0x74, 0x07, 0x77, 0xba, 0x4e, 0xa8, 0x5f, 0xf7, 0x17, 0x0c, 0x24, 0xad, 0xe4, 0x09, 0xdf, + 0x9a, 0x60, 0x2b, 0x5f, 0x86, 0x22, 0xfb, 0xa6, 0xc8, 0xfd, 0x6e, 0x29, 0x0c, 0xe9, 0x7f, 0x88, + 0xe6, 0xe4, 0x29, 0xe3, 0x06, 0xff, 0xbc, 0xa9, 0x7c, 0x05, 0x24, 0x86, 0x74, 0x60, 0xcf, 0xfc, + 0x87, 0xd1, 0x66, 0xfe, 0x52, 0x40, 0x15, 0x28, 0xe7, 0x45, 0xd1, 0xbd, 0xdb, 0x52, 0x39, 0xbb, + 0x75, 0x8d, 0xaf, 0x10, 0xce, 0x1e, 0x53, 0x2d, 0x57, 0xe5, 0xfe, 0x34, 0x06, 0xb3, 0x9c, 0x78, + 0x4b, 0xb3, 0xf1, 0x99, 0xeb, 0x8f, 0x6c, 0x61, 0x47, 0x7b, 0xe4, 0x4c, 0xd3, 0xd4, 0x85, 0x7b, + 0x30, 0xc5, 0x57, 0x00, 0x52, 0xbf, 0xc0, 0xeb, 0x4b, 0x43, 0xf7, 0xd0, 0x4b, 0xa3, 0x57, 0x8e, + 0xd2, 0xa0, 0x62, 0xcb, 0x2f, 0x40, 0xbc, 0x66, 0xea, 0x06, 0x59, 0x30, 0x5b, 0xd8, 0x30, 0x3b, + 0xdc, 0x86, 0xb3, 0x07, 0x74, 0x1e, 0x92, 0x5a, 0xc7, 0xec, 0x19, 0x0e, 0xb3, 0xdf, 0xd5, 0xd9, + 0x2f, 0xbd, 0x3a, 0x37, 0xf1, 0x9f, 0x5e, 0x9d, 0x8b, 0x2d, 0x19, 0xce, 0xef, 0x7d, 0xf6, 0x21, + 0xe0, 0xe8, 0x4b, 0x86, 0xf3, 0xa9, 0xaf, 0x7f, 0xfa, 0x74, 0x44, 0xe1, 0xd4, 0xe5, 0xf8, 0x37, + 0x5e, 0x99, 0x8b, 0xc8, 0xcf, 0x41, 0x6a, 0x11, 0x37, 0x0f, 0x80, 0x7f, 0xa4, 0x0f, 0xfe, 0x98, + 0x80, 0x5f, 0xc4, 0x4d, 0x1f, 0xfc, 0x22, 0x6e, 0xf6, 0x21, 0x3f, 0x0e, 0xe9, 0x25, 0xc3, 0x61, + 0xdf, 0x50, 0x3c, 0x00, 0x31, 0xdd, 0x60, 0xc7, 0x72, 0x7d, 0x08, 0x03, 0x0d, 0x54, 0x08, 0x15, + 0x61, 0x5c, 0xc4, 0x4d, 0x97, 0xb1, 0x85, 0x9b, 0xfd, 0x8c, 0x83, 0xaf, 0x26, 0x54, 0xd5, 0xc5, + 0xdf, 0xff, 0xaf, 0xb3, 0x13, 0x2f, 0xbf, 0x36, 0x3b, 0x31, 0x72, 0xe8, 0xe5, 0xf0, 0xa1, 0x77, + 0x47, 0xfc, 0x13, 0x71, 0xb8, 0x8b, 0x7e, 0x5a, 0x67, 0x75, 0x74, 0xc3, 0x39, 0xd3, 0xb4, 0xf6, + 0xbb, 0x8e, 0x49, 0xac, 0x8a, 0xb9, 0xcd, 0x07, 0x7c, 0xd2, 0xab, 0x5e, 0x60, 0xd5, 0xc3, 0x87, + 0x5b, 0xde, 0x86, 0xc4, 0x3a, 0xe1, 0x23, 0x22, 0x76, 0x4c, 0x47, 0x6b, 0x73, 0x57, 0x88, 0x3d, + 0x90, 0x52, 0xf6, 0x39, 0x5e, 0x94, 0x95, 0xea, 0xe2, 0x4b, 0xbc, 0x36, 0xd6, 0xb6, 0xd9, 0x57, + 0x0d, 0x31, 0xea, 0x43, 0xa7, 0x49, 0x01, 0xfd, 0x80, 0x61, 0x1a, 0x12, 0x5a, 0x8f, 0x1d, 0xa7, + 0x89, 0x11, 0xe7, 0x9a, 0x3e, 0xc8, 0xcf, 0x40, 0x8a, 0x6f, 0xea, 0x23, 0x09, 0x62, 0xd7, 0xf0, + 0x3e, 0x7d, 0x4f, 0x4e, 0x21, 0x3f, 0xd1, 0x02, 0x24, 0x68, 0xe3, 0xf9, 0xe7, 0x5a, 0x33, 0x0b, + 0x03, 0xad, 0x5f, 0xa0, 0x8d, 0x54, 0x18, 0x99, 0x7c, 0x05, 0xd2, 0x8b, 0x26, 0xd1, 0xc2, 0x20, + 0x5a, 0x86, 0xa1, 0xd1, 0x36, 0x77, 0x7b, 0x5c, 0x2b, 0x14, 0xf6, 0x80, 0x8e, 0x40, 0x92, 0x7d, + 0xe5, 0xc2, 0x8f, 0x04, 0xf1, 0x27, 0xb9, 0x06, 0x29, 0x8a, 0xbd, 0xd6, 0x25, 0x7e, 0x88, 0x7b, + 0xa0, 0x38, 0xc3, 0xbf, 0x79, 0xe4, 0xf0, 0x51, 0xaf, 0xb1, 0x08, 0xe2, 0x2d, 0xcd, 0xd1, 0x78, + 0xbf, 0xe9, 0x6f, 0xf9, 0xed, 0x90, 0xe6, 0x20, 0x36, 0x3a, 0x0b, 0x31, 0xb3, 0x6b, 0xf3, 0x43, + 0x3d, 0xa5, 0x51, 0x5d, 0x59, 0xeb, 0x56, 0xe3, 0x44, 0x67, 0x14, 0x42, 0x5c, 0x5d, 0x1d, 0xa9, + 0x16, 0x8f, 0x05, 0xd4, 0xa2, 0x83, 0x9d, 0xad, 0x6d, 0xc7, 0xfb, 0xc1, 0x86, 0x73, 0x40, 0x15, + 0x5c, 0x45, 0xb9, 0x15, 0x85, 0x59, 0x5f, 0xed, 0x75, 0x6c, 0xd9, 0xba, 0x69, 0x30, 0x6d, 0xe2, + 0x9a, 0x82, 0x7c, 0x0d, 0xe4, 0xf5, 0x23, 0x54, 0xe5, 0x29, 0x88, 0x55, 0xba, 0x5d, 0x54, 0x82, + 0x34, 0x7d, 0x6e, 0x9a, 0x4c, 0x57, 0xe2, 0x8a, 0xfb, 0x4c, 0xea, 0x6c, 0x73, 0xdb, 0xb9, 0xa1, + 0x59, 0xee, 0x47, 0xa0, 0xe2, 0x59, 0x7e, 0x12, 0x32, 0x35, 0xd3, 0xb0, 0xb1, 0x61, 0xf7, 0xa8, + 0x83, 0xbd, 0xd5, 0x36, 0x9b, 0xd7, 0x38, 0x02, 0x7b, 0x20, 0xc2, 0xd6, 0xba, 0x5d, 0xca, 0x19, + 0x57, 0xc8, 0x4f, 0x36, 0x5f, 0xab, 0x6b, 0x23, 0xc5, 0x73, 0xee, 0x70, 0xe2, 0xe1, 0x1d, 0xf4, + 0x3c, 0xe5, 0x08, 0xdc, 0x39, 0x38, 0x91, 0xae, 0xe1, 0x7d, 0xfb, 0xb0, 0xf3, 0xe8, 0x39, 0xc8, + 0xac, 0xd3, 0x5b, 0x18, 0x9e, 0xc1, 0xfb, 0xa8, 0x04, 0x29, 0xdc, 0x3a, 0x7b, 0xee, 0xdc, 0x23, + 0x4f, 0x32, 0x2d, 0xbf, 0x3c, 0xa1, 0x88, 0x02, 0x34, 0x0b, 0x19, 0x1b, 0x37, 0xbb, 0x67, 0xcf, + 0x9d, 0xbf, 0xf6, 0x08, 0x53, 0xab, 0xcb, 0x13, 0x8a, 0x57, 0x54, 0x4e, 0x93, 0x1e, 0x7f, 0xe3, + 0x63, 0x73, 0x91, 0x6a, 0x02, 0x62, 0x76, 0xaf, 0xf3, 0xa6, 0xe9, 0xc6, 0xcf, 0x24, 0x60, 0xde, + 0x57, 0xcb, 0x16, 0x97, 0xeb, 0x5a, 0x5b, 0x6f, 0x69, 0xde, 0xdd, 0x19, 0x92, 0xaf, 0xff, 0x94, + 0x62, 0xc4, 0xaa, 0x71, 0xa0, 0x14, 0xe5, 0x5f, 0x8b, 0x40, 0xee, 0xaa, 0x40, 0x6e, 0x60, 0x07, + 0x5d, 0x00, 0x70, 0xdf, 0x24, 0xa6, 0xca, 0xf1, 0x85, 0xfe, 0x77, 0x2d, 0xb8, 0x3c, 0x8a, 0x8f, + 0x1c, 0x3d, 0x4e, 0x15, 0xb0, 0x6b, 0xda, 0xfc, 0x83, 0xc0, 0x10, 0x56, 0x97, 0x18, 0x3d, 0x08, + 0x88, 0x5a, 0x35, 0xf5, 0xba, 0xe9, 0xe8, 0xc6, 0x8e, 0xda, 0x35, 0x6f, 0xf0, 0xcf, 0xac, 0x63, + 0x8a, 0x44, 0x6b, 0xae, 0xd2, 0x8a, 0x75, 0x52, 0x4e, 0x1a, 0x9d, 0x71, 0x51, 0x48, 0xac, 0xa8, + 0xb5, 0x5a, 0x16, 0xb6, 0x6d, 0x6e, 0xb8, 0xc4, 0x23, 0xba, 0x00, 0xa9, 0x6e, 0x6f, 0x4b, 0x15, + 0x56, 0x22, 0x7b, 0xf6, 0xce, 0x61, 0x73, 0x5e, 0xe8, 0x06, 0x9f, 0xf5, 0xc9, 0x6e, 0x6f, 0x8b, + 0x68, 0xca, 0xdd, 0x90, 0x1b, 0xd2, 0x98, 0xec, 0x75, 0xaf, 0x1d, 0xf4, 0xe2, 0x0f, 0xde, 0x03, + 0xb5, 0x6b, 0xe9, 0xa6, 0xa5, 0x3b, 0xfb, 0xf4, 0x34, 0x5e, 0x4c, 0x91, 0x44, 0xc5, 0x3a, 0x2f, + 0x97, 0xaf, 0x41, 0xb1, 0x41, 0x63, 0x08, 0xaf, 0xe5, 0xe7, 0xbc, 0xf6, 0x45, 0xc2, 0xdb, 0x37, + 0xb2, 0x65, 0xd1, 0x81, 0x96, 0x55, 0x57, 0x46, 0x6a, 0xe6, 0xa3, 0x87, 0xd3, 0xcc, 0xe0, 0xea, + 0xf6, 0xc7, 0xc7, 0x02, 0x93, 0x92, 0x7b, 0x3d, 0x3e, 0x93, 0x35, 0xae, 0x52, 0x86, 0xa5, 0x07, + 0x4a, 0x07, 0x2f, 0xa2, 0xa5, 0x10, 0xd3, 0x59, 0x0a, 0x9d, 0x3e, 0xf2, 0x93, 0x90, 0x5f, 0xd7, + 0x2c, 0xa7, 0x81, 0x9d, 0xcb, 0x58, 0x6b, 0x61, 0x2b, 0xb8, 0xca, 0xe6, 0xc5, 0x2a, 0x8b, 0x20, + 0x4e, 0x97, 0x52, 0xb6, 0xca, 0xd0, 0xdf, 0xf2, 0x2e, 0xc4, 0xe9, 0x69, 0x5c, 0x77, 0x05, 0xe6, + 0x1c, 0x6c, 0x05, 0x26, 0xf6, 0x73, 0xdf, 0xc1, 0xb6, 0xc8, 0x60, 0xd1, 0x07, 0xf4, 0x98, 0x58, + 0x47, 0x63, 0x07, 0xaf, 0xa3, 0x5c, 0x09, 0xf9, 0x6a, 0xda, 0x86, 0x54, 0x95, 0x98, 0xdf, 0xa5, + 0x45, 0xb7, 0x21, 0x11, 0xaf, 0x21, 0x68, 0x05, 0x8a, 0x5d, 0xcd, 0x72, 0xe8, 0x87, 0x4c, 0xbb, + 0xb4, 0x17, 0x5c, 0xcf, 0xe7, 0x06, 0x67, 0x5d, 0xa0, 0xb3, 0xfc, 0x2d, 0xf9, 0xae, 0xbf, 0x50, + 0xfe, 0xa3, 0x38, 0x24, 0xb9, 0x30, 0x9e, 0x82, 0x14, 0x17, 0x2b, 0xd7, 0xcc, 0xbb, 0x16, 0x06, + 0x17, 0xa3, 0x05, 0x77, 0xd1, 0xe0, 0x78, 0x82, 0x07, 0xdd, 0x0f, 0xe9, 0xe6, 0xae, 0xa6, 0x1b, + 0xaa, 0xde, 0xe2, 0x0e, 0x60, 0xf6, 0xb5, 0x57, 0xe7, 0x52, 0x35, 0x52, 0xb6, 0xb4, 0xa8, 0xa4, + 0x68, 0xe5, 0x52, 0x8b, 0xac, 0xfc, 0xbb, 0x58, 0xdf, 0xd9, 0x75, 0xf8, 0xec, 0xe2, 0x4f, 0xe8, + 0x09, 0x88, 0x13, 0x85, 0xe0, 0x9f, 0xb9, 0x96, 0x06, 0x9c, 0x79, 0x37, 0x7b, 0x53, 0x4d, 0x93, + 0x17, 0x7f, 0xe0, 0x0f, 0xe6, 0x22, 0x0a, 0xe5, 0x40, 0x35, 0xc8, 0xb7, 0x35, 0xdb, 0x51, 0xe9, + 0xaa, 0x45, 0x5e, 0x9f, 0xa0, 0x10, 0xc7, 0x06, 0x05, 0xc2, 0x05, 0xcb, 0x9b, 0x9e, 0x25, 0x5c, + 0xac, 0xa8, 0x85, 0x4e, 0x82, 0x44, 0x41, 0x9a, 0x66, 0xa7, 0xa3, 0x3b, 0xcc, 0x97, 0x4a, 0x52, + 0xb9, 0x17, 0x48, 0x79, 0x8d, 0x16, 0x53, 0x8f, 0xea, 0x38, 0x64, 0xe8, 0x87, 0x75, 0x94, 0x84, + 0x1d, 0x01, 0x4f, 0x93, 0x02, 0x5a, 0x79, 0x02, 0x8a, 0x9e, 0x6d, 0x64, 0x24, 0x69, 0x86, 0xe2, + 0x15, 0x53, 0xc2, 0x87, 0x61, 0xda, 0xc0, 0x7b, 0xf4, 0x50, 0x7a, 0x80, 0x3a, 0x43, 0xa9, 0x11, + 0xa9, 0xbb, 0x1a, 0xe4, 0xb8, 0x0f, 0x0a, 0x4d, 0x21, 0x7c, 0x46, 0x0b, 0x94, 0x36, 0xef, 0x96, + 0x52, 0xb2, 0x63, 0x90, 0xd6, 0xba, 0x5d, 0x46, 0x90, 0xe5, 0xb6, 0xb1, 0xdb, 0xa5, 0x55, 0xa7, + 0x61, 0x92, 0xf6, 0xd1, 0xc2, 0x76, 0xaf, 0xed, 0x70, 0x90, 0x1c, 0xa5, 0x29, 0x92, 0x0a, 0x85, + 0x95, 0x53, 0xda, 0x7b, 0x20, 0x8f, 0xaf, 0xeb, 0x2d, 0x6c, 0x34, 0x31, 0xa3, 0xcb, 0x53, 0xba, + 0x9c, 0x28, 0xa4, 0x44, 0xa7, 0xc0, 0xb5, 0x79, 0xaa, 0xb0, 0xc7, 0x05, 0x86, 0x27, 0xca, 0x2b, + 0xac, 0x58, 0x9e, 0x81, 0xf8, 0xa2, 0xe6, 0x68, 0xc4, 0xa9, 0x70, 0xf6, 0xd8, 0x22, 0x93, 0x53, + 0xc8, 0x4f, 0xf9, 0x1b, 0x51, 0x88, 0x5f, 0x35, 0x1d, 0x8c, 0x1e, 0xf5, 0x39, 0x7c, 0x85, 0x61, + 0xfa, 0xdc, 0xd0, 0x77, 0x0c, 0xdc, 0x5a, 0xb1, 0x77, 0x7c, 0xb7, 0x60, 0x78, 0xea, 0x14, 0x0d, + 0xa8, 0xd3, 0x34, 0x24, 0x2c, 0xb3, 0x67, 0xb4, 0xc4, 0xe9, 0x69, 0xfa, 0x80, 0xea, 0x90, 0x76, + 0xb5, 0x24, 0x1e, 0xa6, 0x25, 0x45, 0xa2, 0x25, 0x44, 0x87, 0x79, 0x81, 0x92, 0xda, 0xe2, 0xca, + 0x52, 0x85, 0x8c, 0x6b, 0xbc, 0xb8, 0xb6, 0x8d, 0xa7, 0xb0, 0x1e, 0x1b, 0x59, 0x48, 0xdc, 0xb1, + 0x77, 0x85, 0xc7, 0x34, 0x4e, 0x72, 0x2b, 0xb8, 0xf4, 0x02, 0x6a, 0xc5, 0x6f, 0xe4, 0x48, 0xd1, + 0x7e, 0x79, 0x6a, 0xc5, 0x6e, 0xe5, 0xb8, 0x13, 0x32, 0xb6, 0xbe, 0x63, 0x68, 0x4e, 0xcf, 0xc2, + 0x5c, 0xf3, 0xbc, 0x02, 0xf9, 0x8b, 0x11, 0x48, 0x32, 0x4d, 0xf6, 0xc9, 0x2d, 0x32, 0x5c, 0x6e, + 0xd1, 0x51, 0x72, 0x8b, 0xdd, 0xbe, 0xdc, 0x2a, 0x00, 0x6e, 0x63, 0x6c, 0x7e, 0x51, 0xc2, 0x10, + 0x6f, 0x81, 0x35, 0xb1, 0xa1, 0xef, 0xf0, 0x89, 0xea, 0x63, 0x92, 0xff, 0x4b, 0x84, 0x38, 0xae, + 0xbc, 0x1e, 0x55, 0x20, 0x2f, 0xda, 0xa5, 0x6e, 0xb7, 0xb5, 0x1d, 0xae, 0x3b, 0x77, 0x8d, 0x6c, + 0xdc, 0xc5, 0xb6, 0xb6, 0xa3, 0x64, 0x79, 0x7b, 0xc8, 0xc3, 0xf0, 0x71, 0x88, 0x8e, 0x18, 0x87, + 0xc0, 0xc0, 0xc7, 0x6e, 0x6f, 0xe0, 0x03, 0x43, 0x14, 0xef, 0x1f, 0xa2, 0xcf, 0x44, 0x69, 0xf0, + 0xd2, 0x35, 0x6d, 0xad, 0xfd, 0x56, 0xcc, 0x88, 0xe3, 0x90, 0xe9, 0x9a, 0x6d, 0x95, 0xd5, 0xb0, + 0xaf, 0x0a, 0xd2, 0x5d, 0xb3, 0xad, 0x0c, 0x0c, 0x7b, 0xe2, 0x0d, 0x9a, 0x2e, 0xc9, 0x37, 0x40, + 0x6a, 0xa9, 0x7e, 0xa9, 0x59, 0x90, 0x63, 0xa2, 0xe0, 0x6b, 0xd9, 0xc3, 0x44, 0x06, 0x74, 0x71, + 0x8c, 0x0c, 0xae, 0xbd, 0xac, 0xd9, 0x8c, 0x52, 0xe1, 0x74, 0x84, 0x83, 0x99, 0xfe, 0x61, 0x51, + 0xaf, 0x5f, 0x2d, 0x15, 0x4e, 0x27, 0xff, 0x4c, 0x04, 0x60, 0x99, 0x48, 0x96, 0xf6, 0x97, 0xac, + 0x42, 0x36, 0x6d, 0x82, 0x1a, 0x78, 0xf3, 0xec, 0xa8, 0x41, 0xe3, 0xef, 0xcf, 0xd9, 0xfe, 0x76, + 0xd7, 0x20, 0xef, 0x29, 0xa3, 0x8d, 0x45, 0x63, 0x66, 0x0f, 0xf0, 0xa8, 0x1b, 0xd8, 0x51, 0x72, + 0xd7, 0x7d, 0x4f, 0xf2, 0x3f, 0x8f, 0x40, 0x86, 0xb6, 0x69, 0x05, 0x3b, 0x5a, 0x60, 0x0c, 0x23, + 0xb7, 0x3f, 0x86, 0x77, 0x01, 0x30, 0x18, 0x5b, 0x7f, 0x09, 0x73, 0xcd, 0xca, 0xd0, 0x92, 0x86, + 0xfe, 0x12, 0x46, 0xe7, 0x5d, 0x81, 0xc7, 0x0e, 0x16, 0xb8, 0xf0, 0xb8, 0xb9, 0xd8, 0x8f, 0x42, + 0x8a, 0x5e, 0x2c, 0xb6, 0x67, 0x73, 0x27, 0x3a, 0x69, 0xf4, 0x3a, 0x1b, 0x7b, 0xb6, 0xfc, 0x22, + 0xa4, 0x36, 0xf6, 0x58, 0x2e, 0xe4, 0x38, 0x64, 0x2c, 0xd3, 0xe4, 0x6b, 0x32, 0xf3, 0x85, 0xd2, + 0xa4, 0x80, 0x2e, 0x41, 0x22, 0xfe, 0x8f, 0x7a, 0xf1, 0xbf, 0x97, 0xc0, 0x88, 0x8d, 0x95, 0xc0, + 0x38, 0xfd, 0x1f, 0x23, 0x90, 0xf5, 0xd9, 0x07, 0xf4, 0x08, 0xdc, 0x51, 0x5d, 0x5e, 0xab, 0x3d, + 0xa3, 0x2e, 0x2d, 0xaa, 0x17, 0x97, 0x2b, 0x97, 0xbc, 0xef, 0xe6, 0x4a, 0x47, 0x6e, 0xde, 0x9a, + 0x47, 0x3e, 0xda, 0x4d, 0x83, 0x6e, 0x11, 0xa1, 0x33, 0x30, 0x1d, 0x64, 0xa9, 0x54, 0x1b, 0xf5, + 0xd5, 0x0d, 0x29, 0x52, 0xba, 0xe3, 0xe6, 0xad, 0xf9, 0x49, 0x1f, 0x47, 0x65, 0xcb, 0xc6, 0x86, + 0x33, 0xc8, 0x50, 0x5b, 0x5b, 0x59, 0x59, 0xda, 0x90, 0xa2, 0x03, 0x0c, 0xdc, 0x60, 0x9f, 0x82, + 0xc9, 0x20, 0xc3, 0xea, 0xd2, 0xb2, 0x14, 0x2b, 0xa1, 0x9b, 0xb7, 0xe6, 0x0b, 0x3e, 0xea, 0x55, + 0xbd, 0x5d, 0x4a, 0xbf, 0xef, 0xe3, 0xb3, 0x13, 0x9f, 0xfa, 0x07, 0xb3, 0x11, 0xd2, 0xb3, 0x7c, + 0xc0, 0x46, 0xa0, 0x07, 0xe1, 0x68, 0x63, 0xe9, 0xd2, 0x6a, 0x7d, 0x51, 0x5d, 0x69, 0x5c, 0x12, + 0x9b, 0x2c, 0xa2, 0x77, 0xc5, 0x9b, 0xb7, 0xe6, 0xb3, 0xbc, 0x4b, 0xa3, 0xa8, 0xd7, 0x95, 0xfa, + 0xd5, 0xb5, 0x8d, 0xba, 0x14, 0x61, 0xd4, 0xeb, 0x16, 0xbe, 0x6e, 0x3a, 0xec, 0xe6, 0xc1, 0x87, + 0xe1, 0xd8, 0x10, 0x6a, 0xb7, 0x63, 0x93, 0x37, 0x6f, 0xcd, 0xe7, 0xd7, 0x2d, 0xcc, 0xe6, 0x0f, + 0xe5, 0x58, 0x80, 0x99, 0x41, 0x8e, 0xb5, 0xf5, 0xb5, 0x46, 0x65, 0x59, 0x9a, 0x2f, 0x49, 0x37, + 0x6f, 0xcd, 0xe7, 0x84, 0x31, 0x24, 0xf4, 0x5e, 0xcf, 0xde, 0xac, 0x68, 0xe7, 0xa3, 0xa9, 0x40, + 0x2e, 0x8f, 0xc5, 0x11, 0x5d, 0xcd, 0xd2, 0x3a, 0xa3, 0xc3, 0x9d, 0xc1, 0x44, 0xec, 0x88, 0x08, + 0x28, 0x64, 0xdb, 0x58, 0x7e, 0x39, 0x0a, 0x45, 0xd7, 0xbf, 0x5e, 0xa7, 0x2f, 0x45, 0x8f, 0xfa, + 0x53, 0x33, 0xd9, 0x91, 0x2b, 0x1b, 0xa3, 0x16, 0x99, 0x9b, 0xb7, 0x41, 0x5a, 0xf8, 0x69, 0xdc, + 0x82, 0xcc, 0x0f, 0xf2, 0xd5, 0x39, 0x05, 0x67, 0x75, 0x39, 0xd0, 0xd3, 0x90, 0x71, 0xed, 0x89, + 0x7b, 0x95, 0xcf, 0x68, 0x03, 0xc4, 0xf9, 0x3d, 0x1e, 0xf4, 0xa4, 0x17, 0x49, 0xc4, 0x47, 0xc5, + 0x26, 0x57, 0x19, 0x01, 0x67, 0x16, 0xf4, 0xf2, 0x12, 0x9f, 0x89, 0xbc, 0xf7, 0xf4, 0x1a, 0x84, + 0x3d, 0x95, 0x05, 0x57, 0xcc, 0x51, 0x49, 0x77, 0xb4, 0xbd, 0x2a, 0x8d, 0xaf, 0x8e, 0x42, 0x8a, + 0x54, 0xee, 0xf0, 0xaf, 0xbc, 0x63, 0x4a, 0xb2, 0xa3, 0xed, 0x5d, 0xd2, 0xec, 0x2b, 0xf1, 0x74, + 0x4c, 0x8a, 0xcb, 0xbf, 0x12, 0x81, 0x42, 0xb0, 0x8f, 0xe8, 0x01, 0x40, 0x84, 0x43, 0xdb, 0xc1, + 0x2a, 0xb1, 0x3a, 0x54, 0x58, 0x02, 0xb7, 0xd8, 0xd1, 0xf6, 0x2a, 0x3b, 0x78, 0xb5, 0xd7, 0xa1, + 0x0d, 0xb0, 0x91, 0x02, 0x92, 0x20, 0x16, 0xe3, 0xc4, 0x85, 0x79, 0x6c, 0xf0, 0x62, 0x3f, 0x4e, + 0x50, 0xcd, 0x13, 0xeb, 0xf6, 0xa1, 0x3f, 0x98, 0x8b, 0xb0, 0x14, 0x7a, 0x81, 0x81, 0xba, 0x7b, + 0xff, 0x81, 0xfe, 0xc4, 0x82, 0xfd, 0x91, 0x9f, 0x86, 0x62, 0x9f, 0x50, 0x91, 0x0c, 0x79, 0x9e, + 0x2d, 0xa0, 0x7b, 0x26, 0xcc, 0x6f, 0xce, 0x28, 0x59, 0x96, 0x15, 0xa0, 0xfb, 0xcc, 0xe5, 0xf4, + 0x17, 0x5e, 0x99, 0x8b, 0xd0, 0x44, 0xfa, 0x03, 0x90, 0x0f, 0x88, 0x55, 0x64, 0xf0, 0x22, 0x5e, + 0x06, 0xcf, 0x23, 0x7e, 0x01, 0x72, 0xc4, 0x80, 0xe2, 0x16, 0xa7, 0xbd, 0x1f, 0x8a, 0xcc, 0xc0, + 0xf7, 0x0b, 0x9c, 0x79, 0x58, 0x2b, 0x42, 0xea, 0xb2, 0x70, 0xb9, 0x82, 0xb2, 0xcf, 0x0a, 0xaa, + 0x4b, 0x9a, 0x5d, 0x7d, 0xc7, 0xa7, 0x5e, 0x9b, 0x8d, 0xbc, 0x39, 0x13, 0xf4, 0x2b, 0xef, 0x80, + 0xe3, 0xbe, 0x4a, 0x6d, 0xab, 0xa9, 0x07, 0xb2, 0x11, 0x45, 0x9f, 0xa6, 0x91, 0xca, 0xb0, 0xac, + 0xc2, 0x81, 0xb9, 0x8d, 0x83, 0x13, 0x69, 0xa5, 0x83, 0x2d, 0x45, 0x78, 0xc2, 0x63, 0x78, 0xee, + 0xf2, 0xff, 0xa4, 0x21, 0xa5, 0xe0, 0xf7, 0xf4, 0xb0, 0xed, 0xa0, 0xb3, 0x10, 0xc7, 0xcd, 0x5d, + 0x73, 0x58, 0xaa, 0x88, 0x74, 0x6e, 0x81, 0xd3, 0xd5, 0x9b, 0xbb, 0xe6, 0xe5, 0x09, 0x85, 0xd2, + 0xa2, 0x73, 0x90, 0xd8, 0x6e, 0xf7, 0x78, 0xfe, 0xa2, 0xcf, 0x62, 0xf8, 0x99, 0x2e, 0x12, 0xa2, + 0xcb, 0x13, 0x0a, 0xa3, 0x26, 0xaf, 0xa2, 0xf7, 0xa4, 0xc6, 0x0e, 0x7e, 0xd5, 0x92, 0xb1, 0x4d, + 0x5f, 0x45, 0x68, 0x51, 0x15, 0x40, 0x37, 0x74, 0x47, 0xa5, 0xb1, 0x3d, 0xf7, 0x10, 0xef, 0x1e, + 0xcd, 0xa9, 0x3b, 0x34, 0x1b, 0x70, 0x79, 0x42, 0xc9, 0xe8, 0xe2, 0x81, 0x34, 0xf7, 0x3d, 0x3d, + 0x6c, 0xed, 0x73, 0xc7, 0x70, 0x64, 0x73, 0xdf, 0x41, 0x88, 0x48, 0x73, 0x29, 0x35, 0xaa, 0x43, + 0x96, 0x7e, 0x10, 0xcb, 0x26, 0x31, 0xbf, 0xb3, 0x53, 0x1e, 0xc5, 0x5c, 0x25, 0xa4, 0x74, 0x5e, + 0x5f, 0x9e, 0x50, 0x60, 0xcb, 0x7d, 0x22, 0x96, 0x92, 0xdd, 0xe9, 0xe4, 0xec, 0xf1, 0x9b, 0x0a, + 0xe7, 0x46, 0x61, 0xd0, 0x8b, 0x9d, 0x36, 0xf6, 0x2e, 0x4f, 0x28, 0xa9, 0x26, 0xfb, 0x49, 0xfa, + 0xdf, 0xc2, 0x6d, 0xfd, 0x3a, 0xb6, 0x08, 0x7f, 0xe6, 0xe0, 0xfe, 0x2f, 0x32, 0x4a, 0x8a, 0x90, + 0x69, 0x89, 0x07, 0x62, 0x6d, 0xb1, 0xd1, 0xe2, 0xdd, 0x80, 0x41, 0x63, 0x1d, 0x18, 0x67, 0xa3, + 0x25, 0x3a, 0x91, 0xc6, 0xfc, 0x37, 0x7a, 0xc2, 0xf5, 0x5c, 0xb3, 0x83, 0xce, 0x62, 0xa0, 0x03, + 0x2c, 0x87, 0x31, 0x21, 0x3c, 0x58, 0xb4, 0x0a, 0x85, 0xb6, 0x6e, 0x3b, 0xaa, 0x6d, 0x68, 0x5d, + 0x7b, 0xd7, 0x74, 0x6c, 0x9a, 0x0c, 0xc8, 0x9e, 0xbd, 0x6f, 0x14, 0xc2, 0xb2, 0x6e, 0x3b, 0x0d, + 0x41, 0x7c, 0x79, 0x42, 0xc9, 0xb7, 0xfd, 0x05, 0x04, 0xcf, 0xdc, 0xde, 0xc6, 0x96, 0x0b, 0x48, + 0x93, 0x06, 0x07, 0xe0, 0xad, 0x11, 0x6a, 0xc1, 0x4f, 0xf0, 0x4c, 0x7f, 0x01, 0xfa, 0x41, 0x98, + 0x6a, 0x9b, 0x5a, 0xcb, 0x85, 0x53, 0x9b, 0xbb, 0x3d, 0xe3, 0x1a, 0xcd, 0x30, 0x64, 0xcf, 0x9e, + 0x1a, 0xd9, 0x48, 0x53, 0x6b, 0x09, 0x88, 0x1a, 0x61, 0xb8, 0x3c, 0xa1, 0x4c, 0xb6, 0xfb, 0x0b, + 0xd1, 0xbb, 0x60, 0x5a, 0xeb, 0x76, 0xdb, 0xfb, 0xfd, 0xe8, 0x45, 0x8a, 0x7e, 0x7a, 0x14, 0x7a, + 0x85, 0xf0, 0xf4, 0xc3, 0x23, 0x6d, 0xa0, 0x14, 0x6d, 0x80, 0xd4, 0xb5, 0x30, 0xfd, 0x82, 0xa7, + 0xcb, 0x5d, 0x18, 0x7a, 0x0d, 0x57, 0xf6, 0xec, 0x89, 0x51, 0xd8, 0xeb, 0x8c, 0x5e, 0x78, 0x3c, + 0x97, 0x27, 0x94, 0x62, 0x37, 0x58, 0xc4, 0x50, 0xcd, 0x26, 0xa6, 0x57, 0x45, 0x71, 0xd4, 0xc9, + 0x30, 0x54, 0x4a, 0x1f, 0x44, 0x0d, 0x14, 0x55, 0x53, 0xfc, 0x04, 0x1e, 0xbf, 0xc7, 0xe5, 0x04, + 0x64, 0x7d, 0x86, 0x05, 0xcd, 0x40, 0x8a, 0x9f, 0x48, 0x10, 0x27, 0xf7, 0xf8, 0xa3, 0x5c, 0x80, + 0x9c, 0xdf, 0x98, 0xc8, 0x1f, 0x88, 0xb8, 0x9c, 0xf4, 0xc3, 0xfa, 0x99, 0x60, 0x4a, 0x31, 0xe3, + 0x65, 0x0b, 0xef, 0x11, 0xab, 0x88, 0xa8, 0x67, 0xbb, 0x4c, 0x39, 0x5a, 0xc8, 0x17, 0x31, 0x34, + 0x07, 0xd9, 0xee, 0xd9, 0xae, 0x4b, 0x12, 0xa3, 0x24, 0xd0, 0x3d, 0xdb, 0x15, 0x04, 0x77, 0x43, + 0x8e, 0xf4, 0x54, 0xf5, 0x7b, 0x1b, 0x19, 0x25, 0x4b, 0xca, 0x38, 0x89, 0xfc, 0x6f, 0xa3, 0x20, + 0xf5, 0x1b, 0x20, 0x37, 0xd7, 0x18, 0x39, 0x74, 0xae, 0xf1, 0x58, 0x7f, 0x96, 0xd3, 0x4b, 0x6c, + 0x2e, 0x83, 0xe4, 0xe5, 0xe7, 0xd8, 0x42, 0x30, 0xda, 0x7b, 0xea, 0x73, 0xf3, 0x94, 0x62, 0xb3, + 0xcf, 0xef, 0xbb, 0x18, 0xd8, 0x93, 0x11, 0x17, 0x81, 0xf7, 0x0f, 0xb1, 0xeb, 0x2f, 0x6c, 0x76, + 0x5b, 0x9a, 0x83, 0x45, 0xbe, 0xc4, 0xb7, 0x3d, 0x73, 0x3f, 0x14, 0xb5, 0x6e, 0x57, 0xb5, 0x1d, + 0xcd, 0xc1, 0x7c, 0x59, 0x4f, 0xb0, 0xb4, 0xa1, 0xd6, 0xed, 0x36, 0x48, 0x29, 0x5b, 0xd6, 0xef, + 0x83, 0x02, 0xb1, 0xc9, 0xba, 0xd6, 0x56, 0x79, 0xf6, 0x20, 0xc9, 0x56, 0x7f, 0x5e, 0x7a, 0x99, + 0x16, 0xca, 0x2d, 0x77, 0xc4, 0xa9, 0x3d, 0x76, 0xc3, 0xaf, 0x88, 0x2f, 0xfc, 0x42, 0xfc, 0xc6, + 0x03, 0x26, 0x1f, 0x71, 0x49, 0xc4, 0xf0, 0xac, 0xef, 0x34, 0x0d, 0xd5, 0xae, 0xb3, 0x44, 0x48, + 0x5a, 0x61, 0x0f, 0xf2, 0x7b, 0xa3, 0x30, 0x39, 0x60, 0xb9, 0x87, 0xa6, 0xc3, 0xbd, 0xb8, 0x33, + 0x7a, 0xa8, 0xb8, 0xf3, 0x99, 0x60, 0xba, 0xd7, 0xb7, 0xf2, 0x1d, 0x1f, 0x10, 0x32, 0xb3, 0x9b, + 0x44, 0xa1, 0x39, 0x88, 0x2f, 0x23, 0x4c, 0xd5, 0x7c, 0x13, 0xa6, 0xb7, 0xf6, 0x5f, 0xd2, 0x0c, + 0x47, 0x37, 0xb0, 0x3a, 0x30, 0x6a, 0x83, 0x4b, 0xe9, 0x8a, 0x6e, 0x6f, 0xe1, 0x5d, 0xed, 0xba, + 0x6e, 0x8a, 0x66, 0x4d, 0xb9, 0xfc, 0x5e, 0xd2, 0x57, 0x56, 0xa0, 0x10, 0x5c, 0x7a, 0x50, 0x01, + 0xa2, 0xce, 0x1e, 0xef, 0x7f, 0xd4, 0xd9, 0x43, 0x0f, 0xf3, 0xfc, 0x50, 0x94, 0xe6, 0x87, 0x06, + 0x5f, 0xc4, 0xf9, 0xbc, 0xe4, 0x90, 0x2c, 0xbb, 0xb3, 0xc1, 0x5d, 0x8e, 0xfa, 0x51, 0xe5, 0x53, + 0x50, 0xec, 0x5b, 0x6f, 0x46, 0x65, 0x0b, 0xe5, 0x22, 0xe4, 0x03, 0x8b, 0x8b, 0x7c, 0x04, 0xa6, + 0x87, 0xad, 0x15, 0xf2, 0xae, 0x5b, 0x1e, 0xb0, 0xf9, 0xe8, 0x1c, 0xa4, 0xdd, 0xc5, 0x62, 0x48, + 0x76, 0x82, 0xf6, 0x42, 0x10, 0x2b, 0x2e, 0x69, 0x20, 0xc9, 0x1d, 0x0d, 0x24, 0xb9, 0xe5, 0x77, + 0xc3, 0xcc, 0xa8, 0x85, 0xa0, 0xaf, 0x1b, 0x71, 0x57, 0x0b, 0x8f, 0x40, 0x92, 0xdf, 0x07, 0x17, + 0xa5, 0xdb, 0x3a, 0xfc, 0x89, 0x68, 0x27, 0x5b, 0x14, 0x62, 0x6c, 0xb7, 0x87, 0x3e, 0xc8, 0x2a, + 0x1c, 0x1b, 0xb9, 0x18, 0x8c, 0xde, 0x20, 0x62, 0x40, 0x7c, 0x83, 0xa8, 0x29, 0x9a, 0x63, 0xd3, + 0xbe, 0x8a, 0x43, 0x10, 0xec, 0x49, 0xfe, 0x50, 0x0c, 0x8e, 0x0c, 0x5f, 0x12, 0xd0, 0x3c, 0xe4, + 0x88, 0xdf, 0xed, 0x04, 0x5d, 0x74, 0xe8, 0x68, 0x7b, 0x1b, 0xdc, 0x3f, 0xe7, 0x09, 0xf6, 0xa8, + 0x9b, 0x60, 0x47, 0x9b, 0x30, 0xd9, 0x36, 0x9b, 0x5a, 0x5b, 0xf5, 0x69, 0x3c, 0x57, 0xf6, 0x7b, + 0x06, 0x84, 0x5d, 0x67, 0xb7, 0x44, 0xb7, 0x06, 0x94, 0xbe, 0x48, 0x31, 0x96, 0x5d, 0xcd, 0x47, + 0x8b, 0x90, 0xed, 0x78, 0x8a, 0x7c, 0x08, 0x65, 0xf7, 0xb3, 0xf9, 0x86, 0x24, 0x31, 0x74, 0x3b, + 0x28, 0x79, 0x68, 0x13, 0x3d, 0x6a, 0x67, 0x25, 0x35, 0x72, 0x67, 0x65, 0xd8, 0x36, 0x46, 0x7a, + 0xf8, 0x36, 0xc6, 0xfb, 0xfc, 0x43, 0x13, 0x58, 0x44, 0x07, 0x77, 0x36, 0x50, 0x03, 0xa6, 0x39, + 0x7f, 0x2b, 0x20, 0xfb, 0xe8, 0xb8, 0x86, 0x06, 0x09, 0xf6, 0xd1, 0x62, 0x8f, 0xdd, 0x9e, 0xd8, + 0x85, 0x2d, 0x8d, 0xfb, 0x6c, 0xe9, 0xff, 0x63, 0x43, 0xf1, 0xef, 0x33, 0x90, 0x56, 0xb0, 0xdd, + 0x25, 0x0b, 0x27, 0xaa, 0x42, 0x06, 0xef, 0x35, 0x71, 0xd7, 0xf1, 0xb6, 0x2f, 0x87, 0x05, 0x03, + 0x8c, 0xba, 0x2e, 0x28, 0x89, 0x27, 0xee, 0xb2, 0xa1, 0x47, 0x79, 0xb0, 0x35, 0x3a, 0x6e, 0xe2, + 0xec, 0xfe, 0x68, 0xeb, 0xbc, 0x88, 0xb6, 0x62, 0x23, 0x9d, 0x6f, 0xc6, 0xd5, 0x17, 0x6e, 0x3d, + 0xca, 0xc3, 0xad, 0x78, 0xc8, 0xcb, 0x02, 0xf1, 0x56, 0x2d, 0x10, 0x6f, 0x25, 0x43, 0xba, 0x39, + 0x22, 0xe0, 0x3a, 0x2f, 0x02, 0xae, 0x54, 0x48, 0x8b, 0xfb, 0x22, 0xae, 0x8b, 0xc1, 0x88, 0x2b, + 0x3d, 0xc2, 0x80, 0x08, 0xee, 0x91, 0x21, 0xd7, 0x53, 0xbe, 0x90, 0x2b, 0x33, 0x32, 0xde, 0x61, + 0x20, 0x43, 0x62, 0xae, 0x5a, 0x20, 0xe6, 0x82, 0x10, 0x19, 0x8c, 0x08, 0xba, 0x7e, 0xc0, 0x1f, + 0x74, 0x65, 0x47, 0xc6, 0x6d, 0x7c, 0xbc, 0x87, 0x45, 0x5d, 0x4f, 0xba, 0x51, 0x57, 0x6e, 0x64, + 0xd8, 0xc8, 0xfb, 0xd0, 0x1f, 0x76, 0xad, 0x0d, 0x84, 0x5d, 0x79, 0xfe, 0x07, 0x18, 0x46, 0x41, + 0x84, 0xc4, 0x5d, 0x6b, 0x03, 0x71, 0x57, 0x21, 0x04, 0x30, 0x24, 0xf0, 0xfa, 0xa1, 0xe1, 0x81, + 0xd7, 0xe8, 0xd0, 0x88, 0x37, 0x73, 0xbc, 0xc8, 0x4b, 0x1d, 0x11, 0x79, 0xb1, 0xe8, 0xe8, 0x81, + 0x91, 0xf0, 0x63, 0x87, 0x5e, 0x9b, 0x43, 0x42, 0x2f, 0x16, 0x24, 0x9d, 0x1c, 0x09, 0x3e, 0x46, + 0xec, 0xb5, 0x39, 0x24, 0xf6, 0x42, 0xa1, 0xb0, 0x87, 0x09, 0xbe, 0x12, 0x52, 0x52, 0x3e, 0x45, + 0x5c, 0xdf, 0x3e, 0x3b, 0x45, 0xfc, 0x07, 0x6c, 0x59, 0xa6, 0x25, 0x4e, 0xdc, 0xd2, 0x07, 0xf9, + 0x24, 0x71, 0xc6, 0x3d, 0x9b, 0x74, 0x40, 0xa0, 0x46, 0xfd, 0x34, 0x9f, 0x1d, 0x92, 0xbf, 0x10, + 0xf1, 0x78, 0xa9, 0x0f, 0xeb, 0x77, 0xe4, 0x33, 0xdc, 0x91, 0xf7, 0x85, 0x6f, 0xd1, 0x60, 0xf8, + 0x36, 0x07, 0x59, 0xe2, 0x7f, 0xf5, 0x45, 0x66, 0x5a, 0xd7, 0x8d, 0xcc, 0xc4, 0x51, 0x03, 0x16, + 0xe4, 0xf1, 0x65, 0x85, 0xed, 0xf0, 0x14, 0xdd, 0x63, 0x17, 0x2c, 0xa6, 0x40, 0x0f, 0xc1, 0x94, + 0x8f, 0xd6, 0xf5, 0xeb, 0x58, 0x98, 0x22, 0xb9, 0xd4, 0x15, 0xee, 0xe0, 0xfd, 0x8b, 0x88, 0x27, + 0x21, 0x2f, 0xa4, 0x1b, 0x16, 0x7d, 0x45, 0xde, 0xa0, 0xe8, 0x2b, 0x7a, 0xdb, 0xd1, 0x97, 0xdf, + 0x4f, 0x8d, 0x05, 0xfd, 0xd4, 0xbf, 0x8c, 0x78, 0x63, 0xe2, 0xc6, 0x52, 0x4d, 0xb3, 0x85, 0xb9, + 0xe7, 0x48, 0x7f, 0x13, 0xa7, 0xa2, 0x6d, 0xee, 0x70, 0xff, 0x90, 0xfc, 0x24, 0x54, 0xee, 0xc2, + 0x91, 0xe1, 0xeb, 0x82, 0xeb, 0x74, 0x26, 0xfc, 0xe7, 0x82, 0xf9, 0x61, 0xd9, 0xa4, 0x77, 0x58, + 0xd6, 0xfd, 0xd2, 0x2e, 0xe5, 0xfb, 0xd2, 0x0e, 0x3d, 0x01, 0x19, 0x9a, 0x11, 0x55, 0xcd, 0xae, + 0xf8, 0x73, 0x1d, 0xc7, 0x47, 0x1f, 0x94, 0xb5, 0xe9, 0x11, 0x3e, 0x76, 0xb8, 0xd6, 0xf3, 0x18, + 0x32, 0x01, 0x8f, 0xe1, 0x4e, 0xc8, 0x90, 0xd6, 0xb3, 0x6b, 0xa7, 0x81, 0x7f, 0xa6, 0x29, 0x0a, + 0xe4, 0x77, 0x01, 0x1a, 0x5c, 0x24, 0xd0, 0x65, 0x48, 0xe2, 0xeb, 0xf4, 0x0e, 0x3f, 0x76, 0x00, + 0xf1, 0xc8, 0xa0, 0x6b, 0x4a, 0xaa, 0xab, 0x33, 0x44, 0xc8, 0xdf, 0x7c, 0x75, 0x4e, 0x62, 0xd4, + 0x0f, 0xba, 0x5f, 0x25, 0x28, 0x9c, 0x5f, 0xfe, 0xcf, 0x51, 0x12, 0xc0, 0x04, 0x16, 0x90, 0xa1, + 0xb2, 0x1d, 0xb6, 0x75, 0x38, 0x9e, 0xbc, 0x67, 0x01, 0x76, 0x34, 0x5b, 0xbd, 0xa1, 0x19, 0x0e, + 0x6e, 0x71, 0xa1, 0xfb, 0x4a, 0x50, 0x09, 0xd2, 0xe4, 0xa9, 0x67, 0xe3, 0x16, 0x0f, 0xa3, 0xdd, + 0x67, 0x5f, 0x3f, 0x53, 0xdf, 0x5b, 0x3f, 0x83, 0x52, 0x4e, 0xf7, 0x49, 0xd9, 0x17, 0x5c, 0x64, + 0xfc, 0xc1, 0x05, 0x3b, 0x30, 0xcc, 0xcf, 0x2d, 0x02, 0x6b, 0x9b, 0x78, 0x46, 0xf7, 0x40, 0xbe, + 0x83, 0x3b, 0x5d, 0xd3, 0x6c, 0xab, 0xcc, 0xdc, 0xb0, 0xfb, 0xe5, 0x73, 0xbc, 0xb0, 0x4e, 0xad, + 0xce, 0x8f, 0x45, 0xbd, 0xf9, 0xe7, 0x05, 0x91, 0xdf, 0x77, 0x02, 0x96, 0x7f, 0x82, 0x66, 0x96, + 0x82, 0x2e, 0x02, 0x6a, 0xf8, 0x4f, 0x93, 0xf4, 0xa8, 0x59, 0x10, 0x0a, 0x3d, 0xae, 0xfd, 0xf0, + 0x4e, 0x9d, 0xb0, 0x62, 0x1b, 0x3d, 0x0f, 0x47, 0xfb, 0x6c, 0x9b, 0x0b, 0x1d, 0x1d, 0xd7, 0xc4, + 0xdd, 0x11, 0x34, 0x71, 0x02, 0xda, 0x13, 0x56, 0xec, 0x7b, 0x9c, 0x75, 0x4b, 0x50, 0x08, 0x7a, + 0x3c, 0x43, 0x87, 0x9f, 0xfe, 0x3d, 0x13, 0x47, 0xd3, 0x0d, 0x35, 0x90, 0x0e, 0xca, 0xb1, 0x42, + 0x9e, 0x64, 0x5a, 0x87, 0x3b, 0x86, 0x7a, 0x3e, 0xe8, 0x71, 0xc8, 0x78, 0x4e, 0x13, 0x93, 0xea, + 0x01, 0xe9, 0x02, 0x8f, 0x56, 0xfe, 0xad, 0x88, 0x07, 0x19, 0x4c, 0x40, 0xd4, 0x21, 0xc9, 0x8e, + 0xc3, 0xf1, 0x43, 0x36, 0x0f, 0x8d, 0xe7, 0x33, 0x2d, 0xb0, 0xb3, 0x72, 0x0a, 0x67, 0x96, 0xdf, + 0x05, 0x49, 0x56, 0x82, 0xb2, 0x90, 0xf2, 0xae, 0xd9, 0x05, 0x48, 0x56, 0x6a, 0xb5, 0xfa, 0xfa, + 0x86, 0x14, 0x41, 0x19, 0x48, 0x54, 0xaa, 0x6b, 0xca, 0x86, 0x14, 0x25, 0xc5, 0x4a, 0xfd, 0x4a, + 0xbd, 0xb6, 0x21, 0xc5, 0xd0, 0x24, 0xe4, 0xd9, 0x6f, 0xf5, 0xe2, 0x9a, 0xb2, 0x52, 0xd9, 0x90, + 0xe2, 0xbe, 0xa2, 0x46, 0x7d, 0x75, 0xb1, 0xae, 0x48, 0x09, 0xf9, 0x11, 0x38, 0x36, 0xd2, 0xcb, + 0xf2, 0xb2, 0x0b, 0x11, 0x5f, 0x76, 0x41, 0xfe, 0x50, 0x14, 0x4a, 0xa3, 0x5d, 0x27, 0x74, 0xa5, + 0xaf, 0xe3, 0x67, 0x0f, 0xe1, 0x77, 0xf5, 0xf5, 0x1e, 0xdd, 0x07, 0x05, 0x0b, 0x6f, 0x63, 0xa7, + 0xb9, 0xcb, 0x5c, 0x39, 0xb6, 0x64, 0xe6, 0x95, 0x3c, 0x2f, 0xa5, 0x4c, 0x36, 0x23, 0x7b, 0x11, + 0x37, 0x1d, 0x95, 0xd9, 0x22, 0x9b, 0xff, 0x61, 0xc5, 0x3c, 0x2b, 0x6d, 0xb0, 0x42, 0xf9, 0xdd, + 0x87, 0x92, 0x65, 0x06, 0x12, 0x4a, 0x7d, 0x43, 0x79, 0x5e, 0x8a, 0x21, 0x04, 0x05, 0xfa, 0x53, + 0x6d, 0xac, 0x56, 0xd6, 0x1b, 0x97, 0xd7, 0x88, 0x2c, 0xa7, 0xa0, 0x28, 0x64, 0x29, 0x0a, 0x13, + 0xf2, 0x03, 0x70, 0x74, 0x84, 0xdf, 0x37, 0xe4, 0x7c, 0xe2, 0xc7, 0x22, 0x7e, 0xea, 0x60, 0xcc, + 0xbf, 0x06, 0x49, 0xdb, 0xd1, 0x9c, 0x9e, 0xcd, 0x85, 0xf8, 0xf8, 0xb8, 0x8e, 0xe0, 0x82, 0xf8, + 0xd1, 0xa0, 0xec, 0x0a, 0x87, 0x91, 0xcf, 0x41, 0x21, 0x58, 0x33, 0x5a, 0x06, 0x9e, 0x12, 0x45, + 0xe5, 0xe7, 0x01, 0x7c, 0xf9, 0x48, 0xf7, 0xa4, 0x57, 0xc4, 0x7f, 0xd2, 0xeb, 0x1c, 0x24, 0xae, + 0x9b, 0xcc, 0x66, 0x0c, 0x9f, 0x38, 0x57, 0x4d, 0x07, 0xfb, 0x92, 0x0f, 0x8c, 0x5a, 0xd6, 0x01, + 0x0d, 0xe6, 0x84, 0x46, 0xbc, 0xe2, 0xa9, 0xe0, 0x2b, 0xee, 0x1e, 0x99, 0x5d, 0x1a, 0xfe, 0xaa, + 0x97, 0x20, 0x41, 0xad, 0xcd, 0xd0, 0x4f, 0x7f, 0xde, 0x09, 0xa0, 0x39, 0x8e, 0xa5, 0x6f, 0xf5, + 0xbc, 0x17, 0xcc, 0x0d, 0xb7, 0x56, 0x15, 0x41, 0x57, 0xbd, 0x93, 0x9b, 0xad, 0x69, 0x8f, 0xd5, + 0x67, 0xba, 0x7c, 0x80, 0xf2, 0x2a, 0x14, 0x82, 0xbc, 0xc3, 0x3f, 0x65, 0xf2, 0x2e, 0x2a, 0xc8, + 0x08, 0xf7, 0xc9, 0x75, 0xbe, 0xf8, 0xe5, 0x21, 0xf4, 0x41, 0xbe, 0x19, 0x81, 0xf4, 0xc6, 0x1e, + 0xd7, 0xe3, 0x03, 0x0e, 0x5b, 0x7a, 0xdf, 0x73, 0xb9, 0xc9, 0x42, 0x96, 0x8f, 0x8d, 0xb9, 0x59, + 0xde, 0x1f, 0x70, 0x67, 0x6a, 0x7c, 0xdc, 0x68, 0x57, 0x64, 0xbb, 0xb9, 0x75, 0xba, 0x30, 0xde, + 0xb7, 0x13, 0xd3, 0x90, 0xf0, 0x7f, 0xf7, 0xc0, 0x1e, 0xe4, 0x96, 0xef, 0x58, 0x02, 0x5b, 0x36, + 0xfc, 0x1f, 0x59, 0x44, 0x0e, 0xfd, 0x91, 0x85, 0xfb, 0x96, 0xa8, 0xff, 0x2d, 0xd7, 0x21, 0x2d, + 0x94, 0x02, 0xbd, 0xdd, 0x7f, 0x00, 0x45, 0xec, 0xd1, 0x8c, 0x5c, 0x3c, 0x39, 0xbc, 0xef, 0xfc, + 0xc9, 0x69, 0x98, 0xe4, 0x47, 0xf1, 0xbc, 0xb8, 0x82, 0xff, 0x21, 0x80, 0x22, 0xab, 0x58, 0x16, + 0x41, 0x85, 0xfc, 0x8b, 0x11, 0x90, 0xfa, 0xb5, 0xf2, 0xad, 0x6c, 0x00, 0x31, 0x8a, 0x44, 0xfb, + 0x7d, 0x37, 0x7c, 0xb3, 0x91, 0xcf, 0x93, 0x52, 0xef, 0x8e, 0xef, 0xf7, 0x46, 0x21, 0xeb, 0xcb, + 0xe9, 0xa1, 0xc7, 0x02, 0x47, 0x43, 0xe7, 0x0f, 0xca, 0xff, 0xf9, 0xce, 0x86, 0x06, 0x3a, 0x16, + 0x3d, 0x7c, 0xc7, 0xde, 0xf8, 0xc3, 0xfb, 0xc3, 0xbf, 0x02, 0x4a, 0x8c, 0xf8, 0x0a, 0xe8, 0x47, + 0x22, 0x90, 0x76, 0x97, 0xee, 0xc3, 0x66, 0xf3, 0x8f, 0x40, 0x92, 0xaf, 0x4e, 0x2c, 0x9d, 0xcf, + 0x9f, 0x86, 0xe6, 0x42, 0x4b, 0x90, 0x16, 0x7f, 0x41, 0x87, 0x07, 0xa2, 0xee, 0xf3, 0xe9, 0x27, + 0x21, 0xeb, 0xdb, 0x58, 0x21, 0x76, 0x62, 0xb5, 0xfe, 0xac, 0x34, 0x51, 0x4a, 0xdd, 0xbc, 0x35, + 0x1f, 0x5b, 0xc5, 0x37, 0xc8, 0x0c, 0x53, 0xea, 0xb5, 0xcb, 0xf5, 0xda, 0x33, 0x52, 0xa4, 0x94, + 0xbd, 0x79, 0x6b, 0x3e, 0xa5, 0x60, 0x9a, 0xbe, 0x3a, 0xfd, 0x0c, 0x14, 0xfb, 0x06, 0x26, 0x68, + 0xdf, 0x11, 0x14, 0x16, 0x37, 0xd7, 0x97, 0x97, 0x6a, 0x95, 0x8d, 0xba, 0xca, 0x8e, 0xd9, 0xa1, + 0xa3, 0x30, 0xb5, 0xbc, 0x74, 0xe9, 0xf2, 0x86, 0x5a, 0x5b, 0x5e, 0xaa, 0xaf, 0x6e, 0xa8, 0x95, + 0x8d, 0x8d, 0x4a, 0xed, 0x19, 0x29, 0x7a, 0xf6, 0xbb, 0x00, 0xc5, 0x4a, 0xb5, 0xb6, 0x44, 0xd6, + 0x67, 0x9d, 0x5f, 0xd2, 0x5e, 0x83, 0x38, 0x4d, 0x05, 0x1c, 0x78, 0x54, 0xa4, 0x74, 0x70, 0x6e, + 0x13, 0x5d, 0x84, 0x04, 0xcd, 0x12, 0xa0, 0x83, 0xcf, 0x8e, 0x94, 0x42, 0x92, 0x9d, 0xa4, 0x31, + 0x74, 0x3a, 0x1d, 0x78, 0x98, 0xa4, 0x74, 0x70, 0xee, 0x13, 0x29, 0x90, 0xf1, 0xa2, 0x8c, 0xf0, + 0xc3, 0x15, 0xa5, 0x31, 0xac, 0x23, 0x5a, 0x86, 0x94, 0x08, 0x0c, 0xc3, 0x8e, 0x7b, 0x94, 0x42, + 0x93, 0x93, 0x44, 0x5c, 0x2c, 0x80, 0x3f, 0xf8, 0xec, 0x4a, 0x29, 0x24, 0xd3, 0x8a, 0x96, 0xdc, + 0xc3, 0xf9, 0x21, 0x47, 0x38, 0x4a, 0x61, 0xc9, 0x46, 0x22, 0x34, 0x2f, 0x35, 0x12, 0x7e, 0x22, + 0xa7, 0x34, 0x46, 0x12, 0x19, 0x6d, 0x02, 0xf8, 0xc2, 0xf5, 0x31, 0x8e, 0xda, 0x94, 0xc6, 0x49, + 0x0e, 0xa3, 0x35, 0x48, 0xbb, 0xd1, 0x53, 0xe8, 0xc1, 0x97, 0x52, 0x78, 0x96, 0x16, 0xbd, 0x0b, + 0xf2, 0xc1, 0xa8, 0x61, 0xbc, 0xe3, 0x2c, 0xa5, 0x31, 0xd3, 0xaf, 0x04, 0x3f, 0x18, 0x42, 0x8c, + 0x77, 0xbc, 0xa5, 0x34, 0x66, 0x36, 0x16, 0xbd, 0x08, 0x93, 0x83, 0x2e, 0xfe, 0xf8, 0xa7, 0x5d, + 0x4a, 0x87, 0xc8, 0xcf, 0xa2, 0x0e, 0xa0, 0x21, 0xa1, 0xc1, 0x21, 0x0e, 0xbf, 0x94, 0x0e, 0x93, + 0xae, 0x45, 0x2d, 0x28, 0xf6, 0xfb, 0xdb, 0xe3, 0x1e, 0x86, 0x29, 0x8d, 0x9d, 0xba, 0x65, 0x6f, + 0x09, 0xfa, 0xe9, 0xe3, 0x1e, 0x8e, 0x29, 0x8d, 0x9d, 0xc9, 0xad, 0x56, 0x46, 0x9e, 0x6f, 0x3c, + 0x71, 0xe0, 0xf9, 0x46, 0xef, 0xc4, 0xa2, 0x7b, 0xa6, 0xf1, 0x8f, 0x1e, 0x86, 0x7b, 0xf9, 0x25, + 0x03, 0xb6, 0xa3, 0x5d, 0xd3, 0x8d, 0x1d, 0xf7, 0xd6, 0x08, 0xfe, 0xcc, 0x0f, 0x37, 0x1e, 0xe1, + 0x17, 0x19, 0x88, 0xd2, 0x90, 0xbb, 0x23, 0x46, 0xde, 0xd2, 0x15, 0x76, 0x12, 0x39, 0xfc, 0xe8, + 0xe2, 0x01, 0xf7, 0x52, 0x84, 0xdc, 0x7e, 0x31, 0xec, 0xb8, 0xf4, 0xc1, 0x87, 0x30, 0x0f, 0x3a, + 0xef, 0x29, 0x7f, 0x30, 0x02, 0x85, 0xcb, 0xba, 0xed, 0x98, 0x96, 0xde, 0xd4, 0xda, 0x74, 0xc5, + 0xb8, 0x30, 0xee, 0xc7, 0x1f, 0xd5, 0x0c, 0x71, 0x46, 0xf8, 0x65, 0x17, 0xfc, 0x60, 0xc8, 0x22, + 0x24, 0xaf, 0x6b, 0x6d, 0xf6, 0xe9, 0x85, 0xff, 0xb2, 0x9c, 0x7e, 0x99, 0xfb, 0xbc, 0x24, 0x3f, + 0x0a, 0xe3, 0x95, 0x3f, 0x4f, 0x4f, 0x72, 0x77, 0x3a, 0xba, 0xcd, 0xfe, 0xc6, 0xb5, 0x83, 0x6d, + 0xb4, 0x09, 0x71, 0x4b, 0x73, 0x78, 0x50, 0x53, 0xad, 0xf0, 0x2b, 0x2a, 0xee, 0x0f, 0xbf, 0x68, + 0x62, 0x61, 0xe0, 0x16, 0x0b, 0xf6, 0x32, 0x0a, 0x87, 0x7e, 0x08, 0xd2, 0x1d, 0x6d, 0x4f, 0xa5, + 0xd0, 0xd1, 0x37, 0x0a, 0x3a, 0xd5, 0xd1, 0xf6, 0x48, 0xab, 0x91, 0x0e, 0x45, 0x82, 0xde, 0xdc, + 0xd5, 0x8c, 0x1d, 0xcc, 0x5e, 0x12, 0x7b, 0xa3, 0x5e, 0x92, 0xef, 0x68, 0x7b, 0x35, 0x0a, 0x4c, + 0x5e, 0xc5, 0x2f, 0x03, 0xf9, 0xed, 0x08, 0x0f, 0x65, 0xa9, 0xe4, 0x90, 0x06, 0x52, 0xd3, 0x7d, + 0xa2, 0xef, 0x17, 0x69, 0xfd, 0x13, 0xa3, 0x06, 0xa6, 0x4f, 0xee, 0xec, 0x48, 0xf6, 0x97, 0x5f, + 0x15, 0x47, 0xb2, 0x8b, 0xcd, 0xbe, 0x71, 0xb9, 0x02, 0x59, 0x96, 0x4d, 0x53, 0xa9, 0x0b, 0x1b, + 0x0d, 0x75, 0x61, 0xf3, 0xc2, 0x85, 0x65, 0x80, 0xc0, 0xb8, 0x49, 0x3d, 0xef, 0xc3, 0xa7, 0x22, + 0x90, 0x5d, 0xf4, 0xdd, 0x8d, 0x35, 0x03, 0xa9, 0x8e, 0x69, 0xe8, 0xd7, 0xb0, 0xe5, 0xee, 0xcb, + 0xb0, 0x47, 0xe2, 0x66, 0xb2, 0xbf, 0x71, 0xe4, 0xec, 0x8b, 0x1b, 0x1a, 0xc4, 0x33, 0xe1, 0xba, + 0x81, 0xb7, 0x6c, 0x5d, 0x88, 0x5c, 0x11, 0x8f, 0xe8, 0x14, 0x48, 0x36, 0x6e, 0xf6, 0x2c, 0xdd, + 0xd9, 0x57, 0x9b, 0xa6, 0xe1, 0x68, 0x4d, 0x87, 0x67, 0x4f, 0x8b, 0xa2, 0xbc, 0xc6, 0x8a, 0x09, + 0x48, 0x0b, 0x3b, 0x9a, 0xde, 0x66, 0xc7, 0xbe, 0x32, 0x8a, 0x78, 0xe4, 0x4d, 0xfd, 0x7c, 0xca, + 0x1f, 0x1a, 0xd6, 0x40, 0x32, 0xbb, 0xd8, 0x0a, 0x7c, 0x0a, 0xc7, 0xd4, 0x75, 0xe6, 0xf7, 0x3e, + 0xfb, 0xd0, 0x34, 0x17, 0x38, 0xdf, 0x80, 0x67, 0x57, 0x41, 0x2b, 0x45, 0xc1, 0x21, 0xbe, 0x91, + 0x7b, 0x3e, 0xb0, 0x13, 0xd3, 0xdb, 0xf2, 0x3e, 0xc5, 0x9f, 0x1e, 0x10, 0x6a, 0xc5, 0xd8, 0xaf, + 0xce, 0xfc, 0xae, 0x07, 0xed, 0x85, 0x8e, 0xcf, 0xe0, 0x7d, 0xff, 0xb6, 0x0c, 0x85, 0x21, 0x1e, + 0xfc, 0x8b, 0x9a, 0xde, 0x16, 0x7f, 0xb6, 0x4d, 0xe1, 0x4f, 0xa8, 0xec, 0xa6, 0x61, 0xd8, 0x9f, + 0x63, 0x97, 0x47, 0xe9, 0x46, 0xd5, 0x34, 0x5a, 0xc1, 0x8c, 0x0b, 0xda, 0x80, 0xa4, 0x63, 0x5e, + 0xc3, 0x06, 0x17, 0x50, 0xf5, 0x6d, 0x87, 0x50, 0xec, 0xc1, 0x7b, 0x69, 0x38, 0x16, 0xda, 0x01, + 0xa9, 0x85, 0xdb, 0x78, 0x87, 0x7d, 0xc8, 0xb5, 0xab, 0x59, 0x98, 0x7d, 0xdc, 0x79, 0x38, 0xfc, + 0xc1, 0xeb, 0x6b, 0x8a, 0x2e, 0x6a, 0x83, 0x82, 0xa2, 0xf5, 0xe0, 0xcd, 0x6c, 0x29, 0xbe, 0x2b, + 0x3f, 0xa2, 0xff, 0x3e, 0xad, 0xf4, 0x9b, 0xad, 0xc0, 0x4d, 0x6e, 0xa7, 0x40, 0xea, 0x19, 0x5b, + 0xa6, 0x41, 0xff, 0xc2, 0x12, 0x0f, 0xb0, 0xd2, 0x6c, 0xe7, 0xce, 0x2d, 0xe7, 0x3b, 0x77, 0xeb, + 0x50, 0xf0, 0x48, 0xe9, 0xec, 0xc9, 0x1c, 0x76, 0xf6, 0xe4, 0x5d, 0x00, 0x42, 0x82, 0x56, 0x00, + 0xbc, 0xf9, 0xe9, 0xee, 0xee, 0x87, 0xce, 0x74, 0x7f, 0x67, 0x7c, 0x00, 0xa8, 0x0d, 0x53, 0x1d, + 0xdd, 0x50, 0x6d, 0xdc, 0xde, 0x56, 0xb9, 0xe4, 0x08, 0x6e, 0xf6, 0x0d, 0x18, 0xe9, 0xc9, 0x8e, + 0x6e, 0x34, 0x70, 0x7b, 0x7b, 0xd1, 0x85, 0x45, 0x6f, 0x83, 0xe3, 0x9e, 0x38, 0x4c, 0x43, 0xdd, + 0x35, 0xdb, 0x2d, 0xd5, 0xc2, 0xdb, 0x6a, 0x93, 0x5e, 0x8b, 0x94, 0xa3, 0x42, 0x3c, 0xea, 0x92, + 0xac, 0x19, 0x97, 0xcd, 0x76, 0x4b, 0xc1, 0xdb, 0x35, 0x52, 0x8d, 0xee, 0x01, 0x4f, 0x16, 0xaa, + 0xde, 0xb2, 0x67, 0xf2, 0xf3, 0xb1, 0x93, 0x71, 0x25, 0xe7, 0x16, 0x2e, 0xb5, 0xec, 0x72, 0xfa, + 0x7d, 0xaf, 0xcc, 0x4d, 0x7c, 0xe3, 0x95, 0xb9, 0x09, 0xf9, 0x22, 0xbd, 0xc4, 0x83, 0x4f, 0x3a, + 0x6c, 0xa3, 0xf3, 0x90, 0xd1, 0xc4, 0x03, 0xfb, 0x4c, 0xe4, 0x80, 0x49, 0xeb, 0x91, 0xca, 0xaf, + 0x44, 0x20, 0xb9, 0x78, 0x75, 0x5d, 0xd3, 0x2d, 0x54, 0x87, 0x49, 0x4f, 0x69, 0xc7, 0x9d, 0xff, + 0x9e, 0x9e, 0x0b, 0x03, 0x50, 0x1f, 0xf5, 0x45, 0xed, 0x81, 0x30, 0xfd, 0xdf, 0xda, 0xfa, 0xba, + 0x7a, 0x05, 0x52, 0xac, 0x85, 0x36, 0x7a, 0x1a, 0x12, 0x5d, 0xf2, 0x83, 0x67, 0xff, 0x67, 0x47, + 0x2a, 0x3a, 0xa5, 0xf7, 0xab, 0x05, 0xe3, 0x93, 0xff, 0x2a, 0x02, 0xb0, 0x78, 0xf5, 0xea, 0x86, + 0xa5, 0x77, 0xdb, 0xd8, 0x79, 0xa3, 0xba, 0xbc, 0x0c, 0x77, 0xf8, 0xbe, 0xdb, 0xb4, 0x9a, 0x63, + 0x77, 0x7b, 0xca, 0xfb, 0x72, 0xd3, 0x6a, 0x0e, 0x45, 0x6b, 0xd9, 0x8e, 0x8b, 0x16, 0x1b, 0x1b, + 0x6d, 0xd1, 0x76, 0x06, 0xe5, 0xf8, 0x1c, 0x64, 0xbd, 0xae, 0xdb, 0x68, 0x09, 0xd2, 0x0e, 0xff, + 0xcd, 0xc5, 0x29, 0x8f, 0x16, 0xa7, 0x60, 0xf3, 0x8b, 0xd4, 0x65, 0x97, 0xff, 0x17, 0x91, 0xaa, + 0x37, 0x11, 0xfe, 0x46, 0x29, 0x12, 0xb1, 0xf0, 0xdc, 0x02, 0xc7, 0xde, 0x00, 0x0b, 0xcc, 0xb1, + 0x7c, 0x62, 0xfd, 0xd1, 0x28, 0x4c, 0x6d, 0x8a, 0x49, 0xfa, 0x37, 0x56, 0x0a, 0x9b, 0x90, 0xc2, + 0x86, 0x63, 0xe9, 0x58, 0x6c, 0xf5, 0x3d, 0x3c, 0x6a, 0xb0, 0x87, 0xf4, 0x85, 0xfe, 0xdd, 0x61, + 0xff, 0xd0, 0x0b, 0x2c, 0x9f, 0x18, 0x7e, 0x33, 0x06, 0x33, 0xa3, 0x58, 0xd1, 0x09, 0x28, 0x36, + 0x2d, 0x4c, 0x0b, 0xd4, 0x40, 0x2a, 0xbc, 0x20, 0x8a, 0xf9, 0x92, 0xa2, 0x00, 0x71, 0xd0, 0x88, + 0x56, 0x11, 0xd2, 0xdb, 0xf3, 0xc8, 0x0a, 0x1e, 0x02, 0x5d, 0x54, 0x30, 0x14, 0xc5, 0xd9, 0xf6, + 0x2d, 0xad, 0xad, 0x19, 0x4d, 0x7c, 0x1b, 0x9a, 0x30, 0xb8, 0x02, 0x88, 0x03, 0xf3, 0x55, 0x86, + 0x89, 0xae, 0x42, 0x4a, 0xc0, 0xc7, 0xdf, 0x00, 0x78, 0x01, 0x86, 0xee, 0x86, 0x9c, 0x7f, 0x61, + 0xa0, 0x7e, 0x4a, 0x5c, 0xc9, 0xfa, 0xd6, 0x85, 0xb0, 0x95, 0x27, 0x79, 0xe0, 0xca, 0xc3, 0x5d, + 0xc1, 0xdf, 0x88, 0xc1, 0xa4, 0x82, 0x5b, 0xdf, 0x87, 0x03, 0xf7, 0x83, 0x00, 0x6c, 0x52, 0x13, + 0x63, 0x7b, 0x1b, 0x63, 0x37, 0x68, 0x24, 0x32, 0x0c, 0x6f, 0xd1, 0x76, 0xde, 0xaa, 0xd1, 0xfb, + 0x37, 0x51, 0xc8, 0xf9, 0x47, 0xef, 0xfb, 0x60, 0x65, 0x43, 0xab, 0x9e, 0x49, 0x63, 0xa7, 0xcf, + 0x4f, 0x8d, 0x32, 0x69, 0x03, 0x7a, 0x1d, 0x62, 0xcb, 0x3e, 0x19, 0x83, 0x24, 0x3f, 0x0a, 0xb6, + 0x36, 0xe0, 0xe3, 0x46, 0x0e, 0xf9, 0x11, 0x70, 0x9f, 0x8b, 0x7b, 0x1f, 0x14, 0x48, 0x48, 0x1d, + 0x38, 0x5f, 0x16, 0x39, 0x99, 0xa7, 0xe1, 0xb0, 0x77, 0x1a, 0x1a, 0xcd, 0x41, 0x96, 0x90, 0x79, + 0x36, 0x9b, 0xd0, 0x40, 0x47, 0xdb, 0xab, 0xb3, 0x12, 0xf4, 0x10, 0xa0, 0x5d, 0x37, 0xf1, 0xa1, + 0x7a, 0x82, 0x20, 0x74, 0x93, 0x5e, 0x8d, 0x20, 0xbf, 0x0b, 0x80, 0xb4, 0x42, 0x65, 0x37, 0x77, + 0xf2, 0x4b, 0x5e, 0x49, 0xc9, 0x22, 0xbd, 0xbd, 0xf3, 0x27, 0x23, 0xcc, 0x55, 0xee, 0x8b, 0xb6, + 0x79, 0xd0, 0xa2, 0x1e, 0x6e, 0x36, 0x7c, 0xe7, 0xd5, 0xb9, 0xd2, 0xbe, 0xd6, 0x69, 0x97, 0xe5, + 0x21, 0x90, 0xf2, 0xb0, 0x5c, 0x00, 0xf1, 0xa6, 0x83, 0x81, 0x7b, 0xf9, 0x5e, 0xa2, 0xd7, 0x37, + 0xbf, 0xfe, 0xe9, 0xd3, 0xc7, 0x7d, 0xaf, 0xd8, 0x73, 0x33, 0x64, 0x6c, 0x78, 0xe4, 0x5f, 0x8a, + 0x00, 0xf2, 0x16, 0x1b, 0xf7, 0x3c, 0xf8, 0x0a, 0x3d, 0x25, 0x2c, 0xfc, 0xfd, 0xc8, 0xc1, 0x71, + 0x84, 0xc7, 0x1f, 0x88, 0x23, 0x7c, 0x93, 0xe9, 0xed, 0x9e, 0x69, 0x17, 0x9f, 0x80, 0x0f, 0xb9, + 0xc3, 0x75, 0xa1, 0x66, 0xea, 0x01, 0x08, 0xc1, 0x44, 0xe7, 0xe8, 0x84, 0xfc, 0x6a, 0x04, 0x8e, + 0x0d, 0x68, 0xa2, 0xdb, 0xe4, 0x26, 0x20, 0xcb, 0x57, 0xc9, 0xff, 0xf6, 0x7f, 0x84, 0x7f, 0xec, + 0x78, 0x3b, 0x8a, 0x3d, 0x69, 0x0d, 0x98, 0xf3, 0x37, 0x69, 0x8d, 0xe2, 0x46, 0xe8, 0x77, 0x22, + 0x30, 0xed, 0x6f, 0x91, 0xdb, 0xb7, 0x06, 0xe4, 0xfc, 0x6d, 0xe1, 0xbd, 0xba, 0x77, 0x9c, 0x5e, + 0xf9, 0x3b, 0x14, 0x00, 0x21, 0x7d, 0x11, 0x5a, 0xcf, 0x72, 0x75, 0x8f, 0x8c, 0x2d, 0x25, 0x77, + 0x1f, 0x62, 0x98, 0x19, 0x60, 0x83, 0xf5, 0xfe, 0x28, 0xc4, 0xd7, 0x4d, 0xb3, 0x8d, 0x7e, 0x24, + 0x02, 0x93, 0x86, 0xe9, 0xa8, 0x64, 0xae, 0xe0, 0x96, 0xca, 0x93, 0x05, 0xcc, 0x92, 0x5e, 0x3d, + 0x9c, 0xf4, 0xbe, 0xf9, 0xea, 0xdc, 0x20, 0xd4, 0xb0, 0xab, 0x77, 0x8b, 0x86, 0xe9, 0x54, 0x29, + 0xd1, 0x06, 0xcb, 0x27, 0xdc, 0x80, 0x7c, 0xf0, 0xfd, 0xcc, 0xfc, 0x2a, 0x87, 0x7e, 0x7f, 0x3e, + 0xf4, 0xdd, 0xb9, 0x2d, 0xdf, 0x8b, 0xd9, 0x05, 0x98, 0xdf, 0x26, 0x83, 0xfb, 0x3c, 0x48, 0x57, + 0xfb, 0x4f, 0xa6, 0xd5, 0x21, 0x75, 0xd8, 0x43, 0x6e, 0x7e, 0x89, 0x73, 0xde, 0xd3, 0x9f, 0x8b, + 0x00, 0x78, 0xa9, 0x19, 0xf4, 0x20, 0x1c, 0xad, 0xae, 0xad, 0x2e, 0xaa, 0x8d, 0x8d, 0xca, 0xc6, + 0x66, 0x23, 0x78, 0x09, 0xbc, 0xb8, 0xa3, 0xc4, 0xee, 0xe2, 0xa6, 0xbe, 0xad, 0xe3, 0x16, 0xba, + 0x1f, 0xa6, 0x83, 0xd4, 0xe4, 0xa9, 0xbe, 0x28, 0x45, 0x4a, 0xb9, 0x9b, 0xb7, 0xe6, 0xd3, 0xcc, + 0x25, 0xc5, 0x2d, 0x74, 0x12, 0xee, 0x18, 0xa4, 0x5b, 0x5a, 0xbd, 0x24, 0x45, 0x4b, 0xf9, 0x9b, + 0xb7, 0xe6, 0x33, 0xae, 0xef, 0x8a, 0x64, 0x40, 0x7e, 0x4a, 0x8e, 0x17, 0x2b, 0xc1, 0xcd, 0x5b, + 0xf3, 0x49, 0x36, 0x2c, 0xa5, 0xf8, 0xfb, 0x3e, 0x3e, 0x3b, 0x71, 0xfa, 0x9d, 0x00, 0x4b, 0xc6, + 0xb6, 0xa5, 0xd1, 0xbf, 0x84, 0x8c, 0x4a, 0x70, 0x64, 0x69, 0xf5, 0xa2, 0x52, 0xa9, 0x6d, 0x2c, + 0xad, 0xad, 0xf6, 0xdd, 0x5d, 0x1f, 0xac, 0x5b, 0x5c, 0xdb, 0xac, 0x2e, 0xd7, 0xd5, 0xc6, 0xd2, + 0xa5, 0x55, 0xb6, 0xc3, 0x1b, 0xa8, 0x7b, 0x76, 0x75, 0x63, 0x69, 0xa5, 0x2e, 0x45, 0xab, 0x17, + 0x47, 0xee, 0x31, 0x3c, 0x78, 0xe0, 0x80, 0x7b, 0x56, 0x32, 0xb0, 0xd1, 0xf0, 0x7f, 0x03, 0x00, + 0x00, 0xff, 0xff, 0x11, 0x00, 0x16, 0x24, 0xa1, 0x97, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) From dabfb48f84ea394e99f9137271a13c8e58b84ed5 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 13 Feb 2023 15:41:12 -0700 Subject: [PATCH 082/122] add comments --- proto/amino/amino.proto | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/proto/amino/amino.proto b/proto/amino/amino.proto index 55c6ff20e2a8..e3688b7f56a5 100644 --- a/proto/amino/amino.proto +++ b/proto/amino/amino.proto @@ -77,9 +77,14 @@ extend google.protobuf.FieldOptions { // out == {"baz":""} bool dont_omitempty = 11110005; + // oneof_type_name sets the type name for the given field oneof field. This is used + // by the Amino JSON encoder to encode the type of the oneof field, and must be the same string as + // The RegisterConcrete() method usage used to register the concrete type. string oneof_type_name = 11110006; } extend google.protobuf.OneofOptions { + // oneof_field_name sets the field name for the given oneof field. This is used by the Amino JSON + // encoder to set the field name encapsulating the oneof field. string oneof_field_name = 11110007; } \ No newline at end of file From 67bb9afd164ad7af1bad7ee32900d928e48bdeb0 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 14 Feb 2023 09:12:00 -0700 Subject: [PATCH 083/122] demonstration of repeated field complexity --- tests/integration/aminojson/internal/Makefile | 4 + .../aminojson/internal/buf.gen.gogo.yaml | 8 + .../aminojson/internal/buf.gen.pulsar.yaml | 15 + tests/integration/aminojson/internal/buf.lock | 11 + tests/integration/aminojson/internal/buf.yaml | 12 + .../aminojson/internal/gogo/testpb/test.pb.go | 691 ++++++++ .../internal/pulsar/testpb/test.pulsar.go | 1574 +++++++++++++++++ .../aminojson/internal/testpb/test.proto | 22 + tests/integration/aminojson/repeated_test.go | 55 + 9 files changed, 2392 insertions(+) create mode 100644 tests/integration/aminojson/internal/Makefile create mode 100644 tests/integration/aminojson/internal/buf.gen.gogo.yaml create mode 100644 tests/integration/aminojson/internal/buf.gen.pulsar.yaml create mode 100644 tests/integration/aminojson/internal/buf.lock create mode 100644 tests/integration/aminojson/internal/buf.yaml create mode 100644 tests/integration/aminojson/internal/gogo/testpb/test.pb.go create mode 100644 tests/integration/aminojson/internal/pulsar/testpb/test.pulsar.go create mode 100644 tests/integration/aminojson/internal/testpb/test.proto create mode 100644 tests/integration/aminojson/repeated_test.go diff --git a/tests/integration/aminojson/internal/Makefile b/tests/integration/aminojson/internal/Makefile new file mode 100644 index 000000000000..658d11adeaba --- /dev/null +++ b/tests/integration/aminojson/internal/Makefile @@ -0,0 +1,4 @@ +codegen: + @echo "Generating proto files" + buf --template buf.gen.gogo.yaml generate + buf --template buf.gen.pulsar.yaml generate diff --git a/tests/integration/aminojson/internal/buf.gen.gogo.yaml b/tests/integration/aminojson/internal/buf.gen.gogo.yaml new file mode 100644 index 000000000000..d1b5140d80ad --- /dev/null +++ b/tests/integration/aminojson/internal/buf.gen.gogo.yaml @@ -0,0 +1,8 @@ +version: v1 +plugins: + - name: gocosmos + out: ./gogo + opt: plugins=grpc,Mgoogle/protobuf/any.proto=github.com/cosmos/cosmos-sdk/codec/types + - name: grpc-gateway + out: ./gogo + opt: logtostderr=true,allow_colon_final_segments=true diff --git a/tests/integration/aminojson/internal/buf.gen.pulsar.yaml b/tests/integration/aminojson/internal/buf.gen.pulsar.yaml new file mode 100644 index 000000000000..aa687b9d0f4b --- /dev/null +++ b/tests/integration/aminojson/internal/buf.gen.pulsar.yaml @@ -0,0 +1,15 @@ +version: v1 +managed: + enabled: true + go_package_prefix: + default: github.com/cosmos/cosmos-sdk/tests/integration/aminojson/internal/testpb/pulsar + except: + - buf.build/googleapis/googleapis + - buf.build/cosmos/gogo-proto + - buf.build/cosmos/cosmos-proto + override: + buf.build/cosmos/cosmos-sdk: cosmossdk.io/api +plugins: + - name: go-pulsar + out: ./pulsar + opt: paths=source_relative diff --git a/tests/integration/aminojson/internal/buf.lock b/tests/integration/aminojson/internal/buf.lock new file mode 100644 index 000000000000..88709c98ef99 --- /dev/null +++ b/tests/integration/aminojson/internal/buf.lock @@ -0,0 +1,11 @@ +# Generated by buf. DO NOT EDIT. +version: v1 +deps: + - remote: buf.build + owner: cosmos + repository: cosmos-proto + commit: 1935555c206d4afb9e94615dfd0fad31 + - remote: buf.build + owner: cosmos + repository: gogo-proto + commit: 34d970b699f84aa382f3c29773a60836 diff --git a/tests/integration/aminojson/internal/buf.yaml b/tests/integration/aminojson/internal/buf.yaml new file mode 100644 index 000000000000..5aee45ac2b4f --- /dev/null +++ b/tests/integration/aminojson/internal/buf.yaml @@ -0,0 +1,12 @@ +version: v1 +deps: + - buf.build/cosmos/cosmos-proto + - buf.build/cosmos/gogo-proto +lint: + use: + - DEFAULT + except: + - PACKAGE_VERSION_SUFFIX +breaking: + ignore: + - testpb diff --git a/tests/integration/aminojson/internal/gogo/testpb/test.pb.go b/tests/integration/aminojson/internal/gogo/testpb/test.pb.go new file mode 100644 index 000000000000..79f0122a1c72 --- /dev/null +++ b/tests/integration/aminojson/internal/gogo/testpb/test.pb.go @@ -0,0 +1,691 @@ +// Code generated by protoc-gen-gogo. DO NOT EDIT. +// source: testpb/test.proto + +package testpb + +import ( + fmt "fmt" + _ "github.com/cosmos/cosmos-sdk/types/tx/amino" + _ "github.com/cosmos/gogoproto/gogoproto" + proto "github.com/cosmos/gogoproto/proto" + io "io" + math "math" + math_bits "math/bits" +) + +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the proto package it is being compiled against. +// A compilation error at this line likely means your copy of the +// proto package needs to be updated. +const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package + +type Streng struct { + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (m *Streng) Reset() { *m = Streng{} } +func (m *Streng) String() string { return proto.CompactTextString(m) } +func (*Streng) ProtoMessage() {} +func (*Streng) Descriptor() ([]byte, []int) { + return fileDescriptor_41c67e33ca9d1f26, []int{0} +} +func (m *Streng) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *Streng) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_Streng.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *Streng) XXX_Merge(src proto.Message) { + xxx_messageInfo_Streng.Merge(m, src) +} +func (m *Streng) XXX_Size() int { + return m.Size() +} +func (m *Streng) XXX_DiscardUnknown() { + xxx_messageInfo_Streng.DiscardUnknown(m) +} + +var xxx_messageInfo_Streng proto.InternalMessageInfo + +func (m *Streng) GetValue() string { + if m != nil { + return m.Value + } + return "" +} + +type TestRepeatedFields struct { + NullableOmitempty []*Streng `protobuf:"bytes,1,rep,name=nullable_omitempty,json=nullableOmitempty,proto3" json:"nullable_omitempty,omitempty"` + NullableDontOmitempty []*Streng `protobuf:"bytes,2,rep,name=nullable_dont_omitempty,json=nullableDontOmitempty,proto3" json:"nullable_dont_omitempty,omitempty"` + NonNullableOmitempty []Streng `protobuf:"bytes,3,rep,name=non_nullable_omitempty,json=nonNullableOmitempty,proto3" json:"non_nullable_omitempty"` + NonNullableDontOmitempty []Streng `protobuf:"bytes,4,rep,name=non_nullable_dont_omitempty,json=nonNullableDontOmitempty,proto3" json:"non_nullable_dont_omitempty"` +} + +func (m *TestRepeatedFields) Reset() { *m = TestRepeatedFields{} } +func (m *TestRepeatedFields) String() string { return proto.CompactTextString(m) } +func (*TestRepeatedFields) ProtoMessage() {} +func (*TestRepeatedFields) Descriptor() ([]byte, []int) { + return fileDescriptor_41c67e33ca9d1f26, []int{1} +} +func (m *TestRepeatedFields) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TestRepeatedFields) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TestRepeatedFields.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TestRepeatedFields) XXX_Merge(src proto.Message) { + xxx_messageInfo_TestRepeatedFields.Merge(m, src) +} +func (m *TestRepeatedFields) XXX_Size() int { + return m.Size() +} +func (m *TestRepeatedFields) XXX_DiscardUnknown() { + xxx_messageInfo_TestRepeatedFields.DiscardUnknown(m) +} + +var xxx_messageInfo_TestRepeatedFields proto.InternalMessageInfo + +func (m *TestRepeatedFields) GetNullableOmitempty() []*Streng { + if m != nil { + return m.NullableOmitempty + } + return nil +} + +func (m *TestRepeatedFields) GetNullableDontOmitempty() []*Streng { + if m != nil { + return m.NullableDontOmitempty + } + return nil +} + +func (m *TestRepeatedFields) GetNonNullableOmitempty() []Streng { + if m != nil { + return m.NonNullableOmitempty + } + return nil +} + +func (m *TestRepeatedFields) GetNonNullableDontOmitempty() []Streng { + if m != nil { + return m.NonNullableDontOmitempty + } + return nil +} + +func init() { + proto.RegisterType((*Streng)(nil), "testpb.streng") + proto.RegisterType((*TestRepeatedFields)(nil), "testpb.TestRepeatedFields") +} + +func init() { proto.RegisterFile("testpb/test.proto", fileDescriptor_41c67e33ca9d1f26) } + +var fileDescriptor_41c67e33ca9d1f26 = []byte{ + // 277 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2c, 0x49, 0x2d, 0x2e, + 0x29, 0x48, 0xd2, 0x07, 0x51, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0x6c, 0x10, 0x21, 0x29, + 0x91, 0xf4, 0xfc, 0xf4, 0x7c, 0xb0, 0x90, 0x3e, 0x88, 0x05, 0x91, 0x95, 0x12, 0x4c, 0xcc, 0xcd, + 0xcc, 0xcb, 0xd7, 0x07, 0x93, 0x10, 0x21, 0x25, 0x39, 0x2e, 0xb6, 0xe2, 0x92, 0xa2, 0xd4, 0xbc, + 0x74, 0x21, 0x11, 0x2e, 0xd6, 0xb2, 0xc4, 0x9c, 0xd2, 0x54, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, + 0x20, 0x08, 0x47, 0xe9, 0x04, 0x13, 0x97, 0x50, 0x48, 0x6a, 0x71, 0x49, 0x50, 0x6a, 0x41, 0x6a, + 0x62, 0x49, 0x6a, 0x8a, 0x5b, 0x66, 0x6a, 0x4e, 0x4a, 0xb1, 0x90, 0x2d, 0x97, 0x50, 0x5e, 0x69, + 0x4e, 0x4e, 0x62, 0x52, 0x4e, 0x6a, 0x7c, 0x7e, 0x6e, 0x66, 0x49, 0x6a, 0x6e, 0x41, 0x49, 0xa5, + 0x04, 0xa3, 0x02, 0xb3, 0x06, 0xb7, 0x11, 0x9f, 0x1e, 0xc4, 0x11, 0x7a, 0x10, 0x83, 0x83, 0x04, + 0x61, 0x2a, 0xfd, 0x61, 0x0a, 0x85, 0x7c, 0xb9, 0xc4, 0xe1, 0xda, 0x53, 0xf2, 0xf3, 0x4a, 0x90, + 0xcc, 0x60, 0xc2, 0x66, 0x86, 0x13, 0xeb, 0x8a, 0xe7, 0x1b, 0xb4, 0x18, 0x83, 0x44, 0x61, 0xba, + 0x5c, 0xf2, 0xf3, 0x4a, 0x10, 0xc6, 0x79, 0x71, 0x89, 0xe5, 0xe5, 0xe7, 0xc5, 0x63, 0x71, 0x11, + 0x33, 0x56, 0xd3, 0x58, 0x4e, 0xdc, 0x93, 0x67, 0x08, 0x12, 0xc9, 0xcb, 0xcf, 0xf3, 0xc3, 0x70, + 0x5a, 0x04, 0x97, 0x34, 0x8a, 0x59, 0x68, 0xce, 0x63, 0xc1, 0x6a, 0x20, 0x27, 0xc8, 0x40, 0x88, + 0x13, 0x25, 0x90, 0x4c, 0x45, 0x71, 0xa5, 0x93, 0xc4, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, + 0x31, 0x3e, 0x78, 0x24, 0xc7, 0x38, 0xe1, 0xb1, 0x1c, 0xc3, 0x85, 0xc7, 0x72, 0x0c, 0x37, 0x1e, + 0xcb, 0x31, 0x24, 0xb1, 0x81, 0xe3, 0xc2, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0xa3, 0x6f, 0x4e, + 0x5e, 0xd1, 0x01, 0x00, 0x00, +} + +func (m *Streng) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *Streng) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *Streng) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.Value) > 0 { + i -= len(m.Value) + copy(dAtA[i:], m.Value) + i = encodeVarintTest(dAtA, i, uint64(len(m.Value))) + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + +func (m *TestRepeatedFields) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TestRepeatedFields) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TestRepeatedFields) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + if len(m.NonNullableDontOmitempty) > 0 { + for iNdEx := len(m.NonNullableDontOmitempty) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.NonNullableDontOmitempty[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTest(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + } + } + if len(m.NonNullableOmitempty) > 0 { + for iNdEx := len(m.NonNullableOmitempty) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.NonNullableOmitempty[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTest(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + } + } + if len(m.NullableDontOmitempty) > 0 { + for iNdEx := len(m.NullableDontOmitempty) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.NullableDontOmitempty[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTest(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + } + if len(m.NullableOmitempty) > 0 { + for iNdEx := len(m.NullableOmitempty) - 1; iNdEx >= 0; iNdEx-- { + { + size, err := m.NullableOmitempty[iNdEx].MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTest(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + } + return len(dAtA) - i, nil +} + +func encodeVarintTest(dAtA []byte, offset int, v uint64) int { + offset -= sovTest(v) + base := offset + for v >= 1<<7 { + dAtA[offset] = uint8(v&0x7f | 0x80) + v >>= 7 + offset++ + } + dAtA[offset] = uint8(v) + return base +} +func (m *Streng) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = len(m.Value) + if l > 0 { + n += 1 + l + sovTest(uint64(l)) + } + return n +} + +func (m *TestRepeatedFields) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if len(m.NullableOmitempty) > 0 { + for _, e := range m.NullableOmitempty { + l = e.Size() + n += 1 + l + sovTest(uint64(l)) + } + } + if len(m.NullableDontOmitempty) > 0 { + for _, e := range m.NullableDontOmitempty { + l = e.Size() + n += 1 + l + sovTest(uint64(l)) + } + } + if len(m.NonNullableOmitempty) > 0 { + for _, e := range m.NonNullableOmitempty { + l = e.Size() + n += 1 + l + sovTest(uint64(l)) + } + } + if len(m.NonNullableDontOmitempty) > 0 { + for _, e := range m.NonNullableDontOmitempty { + l = e.Size() + n += 1 + l + sovTest(uint64(l)) + } + } + return n +} + +func sovTest(x uint64) (n int) { + return (math_bits.Len64(x|1) + 6) / 7 +} +func sozTest(x uint64) (n int) { + return sovTest(uint64((x << 1) ^ uint64((int64(x) >> 63)))) +} +func (m *Streng) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: streng: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: streng: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTest + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTest + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTest(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *TestRepeatedFields) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TestRepeatedFields: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TestRepeatedFields: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTest + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTest + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableOmitempty = append(m.NullableOmitempty, &Streng{}) + if err := m.NullableOmitempty[len(m.NullableOmitempty)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDontOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTest + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTest + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NullableDontOmitempty = append(m.NullableDontOmitempty, &Streng{}) + if err := m.NullableDontOmitempty[len(m.NullableDontOmitempty)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NonNullableOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTest + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTest + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NonNullableOmitempty = append(m.NonNullableOmitempty, Streng{}) + if err := m.NonNullableOmitempty[len(m.NonNullableOmitempty)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NonNullableDontOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTest + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTest + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NonNullableDontOmitempty = append(m.NonNullableDontOmitempty, Streng{}) + if err := m.NonNullableDontOmitempty[len(m.NonNullableDontOmitempty)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTest(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func skipTest(dAtA []byte) (n int, err error) { + l := len(dAtA) + iNdEx := 0 + depth := 0 + for iNdEx < l { + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTest + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= (uint64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + wireType := int(wire & 0x7) + switch wireType { + case 0: + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTest + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + iNdEx++ + if dAtA[iNdEx-1] < 0x80 { + break + } + } + case 1: + iNdEx += 8 + case 2: + var length int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return 0, ErrIntOverflowTest + } + if iNdEx >= l { + return 0, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + length |= (int(b) & 0x7F) << shift + if b < 0x80 { + break + } + } + if length < 0 { + return 0, ErrInvalidLengthTest + } + iNdEx += length + case 3: + depth++ + case 4: + if depth == 0 { + return 0, ErrUnexpectedEndOfGroupTest + } + depth-- + case 5: + iNdEx += 4 + default: + return 0, fmt.Errorf("proto: illegal wireType %d", wireType) + } + if iNdEx < 0 { + return 0, ErrInvalidLengthTest + } + if depth == 0 { + return iNdEx, nil + } + } + return 0, io.ErrUnexpectedEOF +} + +var ( + ErrInvalidLengthTest = fmt.Errorf("proto: negative length found during unmarshaling") + ErrIntOverflowTest = fmt.Errorf("proto: integer overflow") + ErrUnexpectedEndOfGroupTest = fmt.Errorf("proto: unexpected end of group") +) diff --git a/tests/integration/aminojson/internal/pulsar/testpb/test.pulsar.go b/tests/integration/aminojson/internal/pulsar/testpb/test.pulsar.go new file mode 100644 index 000000000000..3f687f084d9f --- /dev/null +++ b/tests/integration/aminojson/internal/pulsar/testpb/test.pulsar.go @@ -0,0 +1,1574 @@ +// Code generated by protoc-gen-go-pulsar. DO NOT EDIT. +package testpb + +import ( + _ "cosmossdk.io/api/amino" + fmt "fmt" + runtime "github.com/cosmos/cosmos-proto/runtime" + _ "github.com/cosmos/gogoproto/gogoproto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoiface "google.golang.org/protobuf/runtime/protoiface" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + io "io" + reflect "reflect" + sync "sync" +) + +var ( + md_Streng protoreflect.MessageDescriptor + fd_Streng_value protoreflect.FieldDescriptor +) + +func init() { + file_testpb_test_proto_init() + md_Streng = File_testpb_test_proto.Messages().ByName("streng") + fd_Streng_value = md_Streng.Fields().ByName("value") +} + +var _ protoreflect.Message = (*fastReflection_Streng)(nil) + +type fastReflection_Streng Streng + +func (x *Streng) ProtoReflect() protoreflect.Message { + return (*fastReflection_Streng)(x) +} + +func (x *Streng) slowProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_Streng_messageType fastReflection_Streng_messageType +var _ protoreflect.MessageType = fastReflection_Streng_messageType{} + +type fastReflection_Streng_messageType struct{} + +func (x fastReflection_Streng_messageType) Zero() protoreflect.Message { + return (*fastReflection_Streng)(nil) +} +func (x fastReflection_Streng_messageType) New() protoreflect.Message { + return new(fastReflection_Streng) +} +func (x fastReflection_Streng_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_Streng +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_Streng) Descriptor() protoreflect.MessageDescriptor { + return md_Streng +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_Streng) Type() protoreflect.MessageType { + return _fastReflection_Streng_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_Streng) New() protoreflect.Message { + return new(fastReflection_Streng) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_Streng) Interface() protoreflect.ProtoMessage { + return (*Streng)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_Streng) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.Value != "" { + value := protoreflect.ValueOfString(x.Value) + if !f(fd_Streng_value, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_Streng) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "testpb.streng.value": + return x.Value != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.streng")) + } + panic(fmt.Errorf("message testpb.streng does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Streng) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "testpb.streng.value": + x.Value = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.streng")) + } + panic(fmt.Errorf("message testpb.streng does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_Streng) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "testpb.streng.value": + value := x.Value + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.streng")) + } + panic(fmt.Errorf("message testpb.streng does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Streng) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "testpb.streng.value": + x.Value = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.streng")) + } + panic(fmt.Errorf("message testpb.streng does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Streng) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.streng.value": + panic(fmt.Errorf("field value of message testpb.streng is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.streng")) + } + panic(fmt.Errorf("message testpb.streng does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_Streng) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.streng.value": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.streng")) + } + panic(fmt.Errorf("message testpb.streng does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_Streng) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in testpb.streng", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_Streng) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_Streng) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_Streng) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_Streng) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*Streng) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.Value) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*Streng) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.Value) > 0 { + i -= len(x.Value) + copy(dAtA[i:], x.Value) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.Value))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*Streng) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Streng: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: Streng: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field Value", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.Value = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var _ protoreflect.List = (*_TestRepeatedFields_1_list)(nil) + +type _TestRepeatedFields_1_list struct { + list *[]*Streng +} + +func (x *_TestRepeatedFields_1_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_TestRepeatedFields_1_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_TestRepeatedFields_1_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*Streng) + (*x.list)[i] = concreteValue +} + +func (x *_TestRepeatedFields_1_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*Streng) + *x.list = append(*x.list, concreteValue) +} + +func (x *_TestRepeatedFields_1_list) AppendMutable() protoreflect.Value { + v := new(Streng) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_TestRepeatedFields_1_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_TestRepeatedFields_1_list) NewElement() protoreflect.Value { + v := new(Streng) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_TestRepeatedFields_1_list) IsValid() bool { + return x.list != nil +} + +var _ protoreflect.List = (*_TestRepeatedFields_2_list)(nil) + +type _TestRepeatedFields_2_list struct { + list *[]*Streng +} + +func (x *_TestRepeatedFields_2_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_TestRepeatedFields_2_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_TestRepeatedFields_2_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*Streng) + (*x.list)[i] = concreteValue +} + +func (x *_TestRepeatedFields_2_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*Streng) + *x.list = append(*x.list, concreteValue) +} + +func (x *_TestRepeatedFields_2_list) AppendMutable() protoreflect.Value { + v := new(Streng) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_TestRepeatedFields_2_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_TestRepeatedFields_2_list) NewElement() protoreflect.Value { + v := new(Streng) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_TestRepeatedFields_2_list) IsValid() bool { + return x.list != nil +} + +var _ protoreflect.List = (*_TestRepeatedFields_3_list)(nil) + +type _TestRepeatedFields_3_list struct { + list *[]*Streng +} + +func (x *_TestRepeatedFields_3_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_TestRepeatedFields_3_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_TestRepeatedFields_3_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*Streng) + (*x.list)[i] = concreteValue +} + +func (x *_TestRepeatedFields_3_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*Streng) + *x.list = append(*x.list, concreteValue) +} + +func (x *_TestRepeatedFields_3_list) AppendMutable() protoreflect.Value { + v := new(Streng) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_TestRepeatedFields_3_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_TestRepeatedFields_3_list) NewElement() protoreflect.Value { + v := new(Streng) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_TestRepeatedFields_3_list) IsValid() bool { + return x.list != nil +} + +var _ protoreflect.List = (*_TestRepeatedFields_4_list)(nil) + +type _TestRepeatedFields_4_list struct { + list *[]*Streng +} + +func (x *_TestRepeatedFields_4_list) Len() int { + if x.list == nil { + return 0 + } + return len(*x.list) +} + +func (x *_TestRepeatedFields_4_list) Get(i int) protoreflect.Value { + return protoreflect.ValueOfMessage((*x.list)[i].ProtoReflect()) +} + +func (x *_TestRepeatedFields_4_list) Set(i int, value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*Streng) + (*x.list)[i] = concreteValue +} + +func (x *_TestRepeatedFields_4_list) Append(value protoreflect.Value) { + valueUnwrapped := value.Message() + concreteValue := valueUnwrapped.Interface().(*Streng) + *x.list = append(*x.list, concreteValue) +} + +func (x *_TestRepeatedFields_4_list) AppendMutable() protoreflect.Value { + v := new(Streng) + *x.list = append(*x.list, v) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_TestRepeatedFields_4_list) Truncate(n int) { + for i := n; i < len(*x.list); i++ { + (*x.list)[i] = nil + } + *x.list = (*x.list)[:n] +} + +func (x *_TestRepeatedFields_4_list) NewElement() protoreflect.Value { + v := new(Streng) + return protoreflect.ValueOfMessage(v.ProtoReflect()) +} + +func (x *_TestRepeatedFields_4_list) IsValid() bool { + return x.list != nil +} + +var ( + md_TestRepeatedFields protoreflect.MessageDescriptor + fd_TestRepeatedFields_nullable_omitempty protoreflect.FieldDescriptor + fd_TestRepeatedFields_nullable_dont_omitempty protoreflect.FieldDescriptor + fd_TestRepeatedFields_non_nullable_omitempty protoreflect.FieldDescriptor + fd_TestRepeatedFields_non_nullable_dont_omitempty protoreflect.FieldDescriptor +) + +func init() { + file_testpb_test_proto_init() + md_TestRepeatedFields = File_testpb_test_proto.Messages().ByName("TestRepeatedFields") + fd_TestRepeatedFields_nullable_omitempty = md_TestRepeatedFields.Fields().ByName("nullable_omitempty") + fd_TestRepeatedFields_nullable_dont_omitempty = md_TestRepeatedFields.Fields().ByName("nullable_dont_omitempty") + fd_TestRepeatedFields_non_nullable_omitempty = md_TestRepeatedFields.Fields().ByName("non_nullable_omitempty") + fd_TestRepeatedFields_non_nullable_dont_omitempty = md_TestRepeatedFields.Fields().ByName("non_nullable_dont_omitempty") +} + +var _ protoreflect.Message = (*fastReflection_TestRepeatedFields)(nil) + +type fastReflection_TestRepeatedFields TestRepeatedFields + +func (x *TestRepeatedFields) ProtoReflect() protoreflect.Message { + return (*fastReflection_TestRepeatedFields)(x) +} + +func (x *TestRepeatedFields) slowProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_TestRepeatedFields_messageType fastReflection_TestRepeatedFields_messageType +var _ protoreflect.MessageType = fastReflection_TestRepeatedFields_messageType{} + +type fastReflection_TestRepeatedFields_messageType struct{} + +func (x fastReflection_TestRepeatedFields_messageType) Zero() protoreflect.Message { + return (*fastReflection_TestRepeatedFields)(nil) +} +func (x fastReflection_TestRepeatedFields_messageType) New() protoreflect.Message { + return new(fastReflection_TestRepeatedFields) +} +func (x fastReflection_TestRepeatedFields_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_TestRepeatedFields +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_TestRepeatedFields) Descriptor() protoreflect.MessageDescriptor { + return md_TestRepeatedFields +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_TestRepeatedFields) Type() protoreflect.MessageType { + return _fastReflection_TestRepeatedFields_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_TestRepeatedFields) New() protoreflect.Message { + return new(fastReflection_TestRepeatedFields) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_TestRepeatedFields) Interface() protoreflect.ProtoMessage { + return (*TestRepeatedFields)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_TestRepeatedFields) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.NullableOmitempty) != 0 { + value := protoreflect.ValueOfList(&_TestRepeatedFields_1_list{list: &x.NullableOmitempty}) + if !f(fd_TestRepeatedFields_nullable_omitempty, value) { + return + } + } + if len(x.NullableDontOmitempty) != 0 { + value := protoreflect.ValueOfList(&_TestRepeatedFields_2_list{list: &x.NullableDontOmitempty}) + if !f(fd_TestRepeatedFields_nullable_dont_omitempty, value) { + return + } + } + if len(x.NonNullableOmitempty) != 0 { + value := protoreflect.ValueOfList(&_TestRepeatedFields_3_list{list: &x.NonNullableOmitempty}) + if !f(fd_TestRepeatedFields_non_nullable_omitempty, value) { + return + } + } + if len(x.NonNullableDontOmitempty) != 0 { + value := protoreflect.ValueOfList(&_TestRepeatedFields_4_list{list: &x.NonNullableDontOmitempty}) + if !f(fd_TestRepeatedFields_non_nullable_dont_omitempty, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_TestRepeatedFields) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "testpb.TestRepeatedFields.nullable_omitempty": + return len(x.NullableOmitempty) != 0 + case "testpb.TestRepeatedFields.nullable_dont_omitempty": + return len(x.NullableDontOmitempty) != 0 + case "testpb.TestRepeatedFields.non_nullable_omitempty": + return len(x.NonNullableOmitempty) != 0 + case "testpb.TestRepeatedFields.non_nullable_dont_omitempty": + return len(x.NonNullableDontOmitempty) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.TestRepeatedFields")) + } + panic(fmt.Errorf("message testpb.TestRepeatedFields does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_TestRepeatedFields) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "testpb.TestRepeatedFields.nullable_omitempty": + x.NullableOmitempty = nil + case "testpb.TestRepeatedFields.nullable_dont_omitempty": + x.NullableDontOmitempty = nil + case "testpb.TestRepeatedFields.non_nullable_omitempty": + x.NonNullableOmitempty = nil + case "testpb.TestRepeatedFields.non_nullable_dont_omitempty": + x.NonNullableDontOmitempty = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.TestRepeatedFields")) + } + panic(fmt.Errorf("message testpb.TestRepeatedFields does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_TestRepeatedFields) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "testpb.TestRepeatedFields.nullable_omitempty": + if len(x.NullableOmitempty) == 0 { + return protoreflect.ValueOfList(&_TestRepeatedFields_1_list{}) + } + listValue := &_TestRepeatedFields_1_list{list: &x.NullableOmitempty} + return protoreflect.ValueOfList(listValue) + case "testpb.TestRepeatedFields.nullable_dont_omitempty": + if len(x.NullableDontOmitempty) == 0 { + return protoreflect.ValueOfList(&_TestRepeatedFields_2_list{}) + } + listValue := &_TestRepeatedFields_2_list{list: &x.NullableDontOmitempty} + return protoreflect.ValueOfList(listValue) + case "testpb.TestRepeatedFields.non_nullable_omitempty": + if len(x.NonNullableOmitempty) == 0 { + return protoreflect.ValueOfList(&_TestRepeatedFields_3_list{}) + } + listValue := &_TestRepeatedFields_3_list{list: &x.NonNullableOmitempty} + return protoreflect.ValueOfList(listValue) + case "testpb.TestRepeatedFields.non_nullable_dont_omitempty": + if len(x.NonNullableDontOmitempty) == 0 { + return protoreflect.ValueOfList(&_TestRepeatedFields_4_list{}) + } + listValue := &_TestRepeatedFields_4_list{list: &x.NonNullableDontOmitempty} + return protoreflect.ValueOfList(listValue) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.TestRepeatedFields")) + } + panic(fmt.Errorf("message testpb.TestRepeatedFields does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_TestRepeatedFields) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "testpb.TestRepeatedFields.nullable_omitempty": + lv := value.List() + clv := lv.(*_TestRepeatedFields_1_list) + x.NullableOmitempty = *clv.list + case "testpb.TestRepeatedFields.nullable_dont_omitempty": + lv := value.List() + clv := lv.(*_TestRepeatedFields_2_list) + x.NullableDontOmitempty = *clv.list + case "testpb.TestRepeatedFields.non_nullable_omitempty": + lv := value.List() + clv := lv.(*_TestRepeatedFields_3_list) + x.NonNullableOmitempty = *clv.list + case "testpb.TestRepeatedFields.non_nullable_dont_omitempty": + lv := value.List() + clv := lv.(*_TestRepeatedFields_4_list) + x.NonNullableDontOmitempty = *clv.list + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.TestRepeatedFields")) + } + panic(fmt.Errorf("message testpb.TestRepeatedFields does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_TestRepeatedFields) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.TestRepeatedFields.nullable_omitempty": + if x.NullableOmitempty == nil { + x.NullableOmitempty = []*Streng{} + } + value := &_TestRepeatedFields_1_list{list: &x.NullableOmitempty} + return protoreflect.ValueOfList(value) + case "testpb.TestRepeatedFields.nullable_dont_omitempty": + if x.NullableDontOmitempty == nil { + x.NullableDontOmitempty = []*Streng{} + } + value := &_TestRepeatedFields_2_list{list: &x.NullableDontOmitempty} + return protoreflect.ValueOfList(value) + case "testpb.TestRepeatedFields.non_nullable_omitempty": + if x.NonNullableOmitempty == nil { + x.NonNullableOmitempty = []*Streng{} + } + value := &_TestRepeatedFields_3_list{list: &x.NonNullableOmitempty} + return protoreflect.ValueOfList(value) + case "testpb.TestRepeatedFields.non_nullable_dont_omitempty": + if x.NonNullableDontOmitempty == nil { + x.NonNullableDontOmitempty = []*Streng{} + } + value := &_TestRepeatedFields_4_list{list: &x.NonNullableDontOmitempty} + return protoreflect.ValueOfList(value) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.TestRepeatedFields")) + } + panic(fmt.Errorf("message testpb.TestRepeatedFields does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_TestRepeatedFields) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.TestRepeatedFields.nullable_omitempty": + list := []*Streng{} + return protoreflect.ValueOfList(&_TestRepeatedFields_1_list{list: &list}) + case "testpb.TestRepeatedFields.nullable_dont_omitempty": + list := []*Streng{} + return protoreflect.ValueOfList(&_TestRepeatedFields_2_list{list: &list}) + case "testpb.TestRepeatedFields.non_nullable_omitempty": + list := []*Streng{} + return protoreflect.ValueOfList(&_TestRepeatedFields_3_list{list: &list}) + case "testpb.TestRepeatedFields.non_nullable_dont_omitempty": + list := []*Streng{} + return protoreflect.ValueOfList(&_TestRepeatedFields_4_list{list: &list}) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.TestRepeatedFields")) + } + panic(fmt.Errorf("message testpb.TestRepeatedFields does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_TestRepeatedFields) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in testpb.TestRepeatedFields", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_TestRepeatedFields) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_TestRepeatedFields) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_TestRepeatedFields) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_TestRepeatedFields) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*TestRepeatedFields) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if len(x.NullableOmitempty) > 0 { + for _, e := range x.NullableOmitempty { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if len(x.NullableDontOmitempty) > 0 { + for _, e := range x.NullableDontOmitempty { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if len(x.NonNullableOmitempty) > 0 { + for _, e := range x.NonNullableOmitempty { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if len(x.NonNullableDontOmitempty) > 0 { + for _, e := range x.NonNullableDontOmitempty { + l = options.Size(e) + n += 1 + l + runtime.Sov(uint64(l)) + } + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*TestRepeatedFields) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.NonNullableDontOmitempty) > 0 { + for iNdEx := len(x.NonNullableDontOmitempty) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.NonNullableDontOmitempty[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x22 + } + } + if len(x.NonNullableOmitempty) > 0 { + for iNdEx := len(x.NonNullableOmitempty) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.NonNullableOmitempty[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1a + } + } + if len(x.NullableDontOmitempty) > 0 { + for iNdEx := len(x.NullableDontOmitempty) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.NullableDontOmitempty[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + } + if len(x.NullableOmitempty) > 0 { + for iNdEx := len(x.NullableOmitempty) - 1; iNdEx >= 0; iNdEx-- { + encoded, err := options.Marshal(x.NullableOmitempty[iNdEx]) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*TestRepeatedFields) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TestRepeatedFields: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TestRepeatedFields: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NullableOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.NullableOmitempty = append(x.NullableOmitempty, &Streng{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.NullableOmitempty[len(x.NullableOmitempty)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NullableDontOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.NullableDontOmitempty = append(x.NullableDontOmitempty, &Streng{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.NullableDontOmitempty[len(x.NullableDontOmitempty)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NonNullableOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.NonNullableOmitempty = append(x.NonNullableOmitempty, &Streng{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.NonNullableOmitempty[len(x.NonNullableOmitempty)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NonNullableDontOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.NonNullableDontOmitempty = append(x.NonNullableDontOmitempty, &Streng{}) + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.NonNullableDontOmitempty[len(x.NonNullableDontOmitempty)-1]); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.0 +// protoc (unknown) +// source: testpb/test.proto + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type Streng struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Value string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"` +} + +func (x *Streng) Reset() { + *x = Streng{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Streng) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Streng) ProtoMessage() {} + +// Deprecated: Use Streng.ProtoReflect.Descriptor instead. +func (*Streng) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{0} +} + +func (x *Streng) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type TestRepeatedFields struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NullableOmitempty []*Streng `protobuf:"bytes,1,rep,name=nullable_omitempty,json=nullableOmitempty,proto3" json:"nullable_omitempty,omitempty"` + NullableDontOmitempty []*Streng `protobuf:"bytes,2,rep,name=nullable_dont_omitempty,json=nullableDontOmitempty,proto3" json:"nullable_dont_omitempty,omitempty"` + NonNullableOmitempty []*Streng `protobuf:"bytes,3,rep,name=non_nullable_omitempty,json=nonNullableOmitempty,proto3" json:"non_nullable_omitempty,omitempty"` + NonNullableDontOmitempty []*Streng `protobuf:"bytes,4,rep,name=non_nullable_dont_omitempty,json=nonNullableDontOmitempty,proto3" json:"non_nullable_dont_omitempty,omitempty"` +} + +func (x *TestRepeatedFields) Reset() { + *x = TestRepeatedFields{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TestRepeatedFields) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestRepeatedFields) ProtoMessage() {} + +// Deprecated: Use TestRepeatedFields.ProtoReflect.Descriptor instead. +func (*TestRepeatedFields) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{1} +} + +func (x *TestRepeatedFields) GetNullableOmitempty() []*Streng { + if x != nil { + return x.NullableOmitempty + } + return nil +} + +func (x *TestRepeatedFields) GetNullableDontOmitempty() []*Streng { + if x != nil { + return x.NullableDontOmitempty + } + return nil +} + +func (x *TestRepeatedFields) GetNonNullableOmitempty() []*Streng { + if x != nil { + return x.NonNullableOmitempty + } + return nil +} + +func (x *TestRepeatedFields) GetNonNullableDontOmitempty() []*Streng { + if x != nil { + return x.NonNullableDontOmitempty + } + return nil +} + +var File_testpb_test_proto protoreflect.FileDescriptor + +var file_testpb_test_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x1a, 0x14, 0x67, 0x6f, 0x67, + 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x1e, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x12, 0x14, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x12, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x3d, 0x0a, 0x12, 0x6e, + 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, + 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x52, 0x11, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x17, 0x6e, 0x75, + 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x6f, 0x6d, 0x69, 0x74, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, + 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x42, 0x05, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x15, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x6e, 0x74, + 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x16, 0x6e, 0x6f, 0x6e, + 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, + 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, + 0x14, 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x6d, 0x69, 0x74, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x58, 0x0a, 0x1b, 0x6e, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6c, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, + 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x18, 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x44, 0x6f, 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x42, + 0xa7, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, + 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x56, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x73, 0x2f, + 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x6d, 0x69, 0x6e, + 0x6f, 0x6a, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, + 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x70, 0x75, 0x6c, 0x73, 0x61, 0x72, 0x2f, 0x74, 0x65, 0x73, + 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, + 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, + 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_testpb_test_proto_rawDescOnce sync.Once + file_testpb_test_proto_rawDescData = file_testpb_test_proto_rawDesc +) + +func file_testpb_test_proto_rawDescGZIP() []byte { + file_testpb_test_proto_rawDescOnce.Do(func() { + file_testpb_test_proto_rawDescData = protoimpl.X.CompressGZIP(file_testpb_test_proto_rawDescData) + }) + return file_testpb_test_proto_rawDescData +} + +var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_testpb_test_proto_goTypes = []interface{}{ + (*Streng)(nil), // 0: testpb.streng + (*TestRepeatedFields)(nil), // 1: testpb.TestRepeatedFields +} +var file_testpb_test_proto_depIdxs = []int32{ + 0, // 0: testpb.TestRepeatedFields.nullable_omitempty:type_name -> testpb.streng + 0, // 1: testpb.TestRepeatedFields.nullable_dont_omitempty:type_name -> testpb.streng + 0, // 2: testpb.TestRepeatedFields.non_nullable_omitempty:type_name -> testpb.streng + 0, // 3: testpb.TestRepeatedFields.non_nullable_dont_omitempty:type_name -> testpb.streng + 4, // [4:4] is the sub-list for method output_type + 4, // [4:4] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_testpb_test_proto_init() } +func file_testpb_test_proto_init() { + if File_testpb_test_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_testpb_test_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Streng); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_testpb_test_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TestRepeatedFields); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_testpb_test_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_testpb_test_proto_goTypes, + DependencyIndexes: file_testpb_test_proto_depIdxs, + MessageInfos: file_testpb_test_proto_msgTypes, + }.Build() + File_testpb_test_proto = out.File + file_testpb_test_proto_rawDesc = nil + file_testpb_test_proto_goTypes = nil + file_testpb_test_proto_depIdxs = nil +} diff --git a/tests/integration/aminojson/internal/testpb/test.proto b/tests/integration/aminojson/internal/testpb/test.proto new file mode 100644 index 000000000000..4245613014a3 --- /dev/null +++ b/tests/integration/aminojson/internal/testpb/test.proto @@ -0,0 +1,22 @@ +syntax = "proto3"; + +package testpb; + +import "gogoproto/gogo.proto"; +import "amino/amino.proto"; + +message streng { + string value = 1; +} + +message TestRepeatedFields { + repeated streng nullable_omitempty = 1; + + // not supported for empty sets + repeated streng nullable_dont_omitempty = 2 [(amino.dont_omitempty) = true]; + + // not supported for empty sets + repeated streng non_nullable_omitempty = 3 [(gogoproto.nullable) = false]; + + repeated streng non_nullable_dont_omitempty = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} \ No newline at end of file diff --git a/tests/integration/aminojson/repeated_test.go b/tests/integration/aminojson/repeated_test.go new file mode 100644 index 000000000000..c9b1128e398f --- /dev/null +++ b/tests/integration/aminojson/repeated_test.go @@ -0,0 +1,55 @@ +package aminojson + +import ( + "cosmossdk.io/x/tx/aminojson" + "fmt" + "github.com/cosmos/cosmos-sdk/codec" + gogopb "github.com/cosmos/cosmos-sdk/tests/integration/aminojson/internal/gogo/testpb" + pulsarpb "github.com/cosmos/cosmos-sdk/tests/integration/aminojson/internal/pulsar/testpb" + "github.com/stretchr/testify/require" + "testing" +) + +func TestRepeatedFields(t *testing.T) { + cdc := codec.NewLegacyAmino() + aj := aminojson.NewAminoJSON() + + cases := map[string]struct { + gogo gogopb.TestRepeatedFields + pulsar pulsarpb.TestRepeatedFields + fails bool + }{ + "unsupported_empty_sets": { + gogo: gogopb.TestRepeatedFields{}, + pulsar: pulsarpb.TestRepeatedFields{}, + fails: true, + }, + "unsupported_empty_sets_are_set": { + gogo: gogopb.TestRepeatedFields{ + NullableDontOmitempty: []*gogopb.Streng{{Value: "foo"}}, + NonNullableOmitempty: []gogopb.Streng{{Value: "foo"}}, + }, + pulsar: pulsarpb.TestRepeatedFields{ + NullableDontOmitempty: []*pulsarpb.Streng{{Value: "foo"}}, + NonNullableOmitempty: []*pulsarpb.Streng{{Value: "foo"}}, + }, + }, + } + + for n, tc := range cases { + t.Run(n, func(t *testing.T) { + gogoBz, err := cdc.MarshalJSON(&tc.gogo) + require.NoError(t, err) + pulsarBz, err := aj.MarshalAmino(&tc.pulsar) + require.NoError(t, err) + + fmt.Printf(" gogo: %s\npulsar: %s\n", string(gogoBz), string(pulsarBz)) + + if tc.fails { + require.NotEqual(t, string(gogoBz), string(pulsarBz)) + } else { + require.Equal(t, string(gogoBz), string(pulsarBz)) + } + }) + } +} From 5670e89568818c85bc26de2e797998b7a74123ef Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 14 Feb 2023 09:19:43 -0700 Subject: [PATCH 084/122] add comment --- tests/integration/aminojson/internal/testpb/test.proto | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/integration/aminojson/internal/testpb/test.proto b/tests/integration/aminojson/internal/testpb/test.proto index 4245613014a3..b651ec95ae7d 100644 --- a/tests/integration/aminojson/internal/testpb/test.proto +++ b/tests/integration/aminojson/internal/testpb/test.proto @@ -13,9 +13,11 @@ message TestRepeatedFields { repeated streng nullable_omitempty = 1; // not supported for empty sets + // go-amino emits nothing but the protoreflect library emits a null repeated streng nullable_dont_omitempty = 2 [(amino.dont_omitempty) = true]; // not supported for empty sets + // go-amino emits a null but the protoreflect library emits nothing repeated streng non_nullable_omitempty = 3 [(gogoproto.nullable) = false]; repeated streng non_nullable_dont_omitempty = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; From 6da5d25f35f952f080c8a97f20cd636349fff737 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 14 Feb 2023 09:36:21 -0700 Subject: [PATCH 085/122] add another message case --- .../aminojson/internal/gogo/testpb/test.pb.go | 372 +++++++- .../internal/pulsar/testpb/test.pulsar.go | 820 +++++++++++++++++- .../aminojson/internal/testpb/test.proto | 14 + tests/integration/aminojson/repeated_test.go | 34 +- 4 files changed, 1201 insertions(+), 39 deletions(-) diff --git a/tests/integration/aminojson/internal/gogo/testpb/test.pb.go b/tests/integration/aminojson/internal/gogo/testpb/test.pb.go index 79f0122a1c72..660cb7f84e37 100644 --- a/tests/integration/aminojson/internal/gogo/testpb/test.pb.go +++ b/tests/integration/aminojson/internal/gogo/testpb/test.pb.go @@ -69,10 +69,14 @@ func (m *Streng) GetValue() string { } type TestRepeatedFields struct { - NullableOmitempty []*Streng `protobuf:"bytes,1,rep,name=nullable_omitempty,json=nullableOmitempty,proto3" json:"nullable_omitempty,omitempty"` - NullableDontOmitempty []*Streng `protobuf:"bytes,2,rep,name=nullable_dont_omitempty,json=nullableDontOmitempty,proto3" json:"nullable_dont_omitempty,omitempty"` - NonNullableOmitempty []Streng `protobuf:"bytes,3,rep,name=non_nullable_omitempty,json=nonNullableOmitempty,proto3" json:"non_nullable_omitempty"` - NonNullableDontOmitempty []Streng `protobuf:"bytes,4,rep,name=non_nullable_dont_omitempty,json=nonNullableDontOmitempty,proto3" json:"non_nullable_dont_omitempty"` + NullableOmitempty []*Streng `protobuf:"bytes,1,rep,name=nullable_omitempty,json=nullableOmitempty,proto3" json:"nullable_omitempty,omitempty"` + // not supported for empty sets + // go-amino emits nothing but the protoreflect library emits a null + NullableDontOmitempty []*Streng `protobuf:"bytes,2,rep,name=nullable_dont_omitempty,json=nullableDontOmitempty,proto3" json:"nullable_dont_omitempty,omitempty"` + // not supported for empty sets + // go-amino emits a null but the protoreflect library emits nothing + NonNullableOmitempty []Streng `protobuf:"bytes,3,rep,name=non_nullable_omitempty,json=nonNullableOmitempty,proto3" json:"non_nullable_omitempty"` + NonNullableDontOmitempty []Streng `protobuf:"bytes,4,rep,name=non_nullable_dont_omitempty,json=nonNullableDontOmitempty,proto3" json:"non_nullable_dont_omitempty"` } func (m *TestRepeatedFields) Reset() { *m = TestRepeatedFields{} } @@ -136,15 +140,88 @@ func (m *TestRepeatedFields) GetNonNullableDontOmitempty() []Streng { return nil } +type TestNullableFields struct { + NullableOmitempty *Streng `protobuf:"bytes,1,opt,name=nullable_omitempty,json=nullableOmitempty,proto3" json:"nullable_omitempty,omitempty"` + // not supported for empty sets + // go-amino emits nothing but the protoreflect library emits a null + NullableDontOmitempty *Streng `protobuf:"bytes,2,opt,name=nullable_dont_omitempty,json=nullableDontOmitempty,proto3" json:"nullable_dont_omitempty,omitempty"` + // not supported for empty sets + // go-amino emits a null but the protoreflect library emits nothing + NonNullableOmitempty Streng `protobuf:"bytes,3,opt,name=non_nullable_omitempty,json=nonNullableOmitempty,proto3" json:"non_nullable_omitempty"` + NonNullableDontOmitempty Streng `protobuf:"bytes,4,opt,name=non_nullable_dont_omitempty,json=nonNullableDontOmitempty,proto3" json:"non_nullable_dont_omitempty"` +} + +func (m *TestNullableFields) Reset() { *m = TestNullableFields{} } +func (m *TestNullableFields) String() string { return proto.CompactTextString(m) } +func (*TestNullableFields) ProtoMessage() {} +func (*TestNullableFields) Descriptor() ([]byte, []int) { + return fileDescriptor_41c67e33ca9d1f26, []int{2} +} +func (m *TestNullableFields) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *TestNullableFields) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_TestNullableFields.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *TestNullableFields) XXX_Merge(src proto.Message) { + xxx_messageInfo_TestNullableFields.Merge(m, src) +} +func (m *TestNullableFields) XXX_Size() int { + return m.Size() +} +func (m *TestNullableFields) XXX_DiscardUnknown() { + xxx_messageInfo_TestNullableFields.DiscardUnknown(m) +} + +var xxx_messageInfo_TestNullableFields proto.InternalMessageInfo + +func (m *TestNullableFields) GetNullableOmitempty() *Streng { + if m != nil { + return m.NullableOmitempty + } + return nil +} + +func (m *TestNullableFields) GetNullableDontOmitempty() *Streng { + if m != nil { + return m.NullableDontOmitempty + } + return nil +} + +func (m *TestNullableFields) GetNonNullableOmitempty() Streng { + if m != nil { + return m.NonNullableOmitempty + } + return Streng{} +} + +func (m *TestNullableFields) GetNonNullableDontOmitempty() Streng { + if m != nil { + return m.NonNullableDontOmitempty + } + return Streng{} +} + func init() { proto.RegisterType((*Streng)(nil), "testpb.streng") proto.RegisterType((*TestRepeatedFields)(nil), "testpb.TestRepeatedFields") + proto.RegisterType((*TestNullableFields)(nil), "testpb.TestNullableFields") } func init() { proto.RegisterFile("testpb/test.proto", fileDescriptor_41c67e33ca9d1f26) } var fileDescriptor_41c67e33ca9d1f26 = []byte{ - // 277 bytes of a gzipped FileDescriptorProto + // 300 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2c, 0x49, 0x2d, 0x2e, 0x29, 0x48, 0xd2, 0x07, 0x51, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0x6c, 0x10, 0x21, 0x29, 0x91, 0xf4, 0xfc, 0xf4, 0x7c, 0xb0, 0x90, 0x3e, 0x88, 0x05, 0x91, 0x95, 0x12, 0x4c, 0xcc, 0xcd, @@ -159,10 +236,11 @@ var fileDescriptor_41c67e33ca9d1f26 = []byte{ 0x5c, 0xf2, 0xf3, 0x4a, 0x10, 0xc6, 0x79, 0x71, 0x89, 0xe5, 0xe5, 0xe7, 0xc5, 0x63, 0x71, 0x11, 0x33, 0x56, 0xd3, 0x58, 0x4e, 0xdc, 0x93, 0x67, 0x08, 0x12, 0xc9, 0xcb, 0xcf, 0xf3, 0xc3, 0x70, 0x5a, 0x04, 0x97, 0x34, 0x8a, 0x59, 0x68, 0xce, 0x63, 0xc1, 0x6a, 0x20, 0x27, 0xc8, 0x40, 0x88, - 0x13, 0x25, 0x90, 0x4c, 0x45, 0x71, 0xa5, 0x93, 0xc4, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, - 0x31, 0x3e, 0x78, 0x24, 0xc7, 0x38, 0xe1, 0xb1, 0x1c, 0xc3, 0x85, 0xc7, 0x72, 0x0c, 0x37, 0x1e, - 0xcb, 0x31, 0x24, 0xb1, 0x81, 0xe3, 0xc2, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0xa3, 0x6f, 0x4e, - 0x5e, 0xd1, 0x01, 0x00, 0x00, + 0x13, 0x25, 0x90, 0x4c, 0x45, 0x71, 0x25, 0x3c, 0x28, 0x61, 0xb2, 0x04, 0x82, 0x92, 0x91, 0x0a, + 0x41, 0xc9, 0x48, 0xd5, 0xa0, 0x64, 0xa4, 0x76, 0x50, 0x32, 0x92, 0x19, 0x94, 0x4e, 0x12, 0x27, + 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x84, 0xc7, 0x72, 0x0c, + 0x17, 0x1e, 0xcb, 0x31, 0xdc, 0x78, 0x2c, 0xc7, 0x90, 0xc4, 0x06, 0x4e, 0xd6, 0xc6, 0x80, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x6e, 0xbb, 0x3c, 0x09, 0x1c, 0x03, 0x00, 0x00, } func (m *Streng) Marshal() (dAtA []byte, err error) { @@ -274,6 +352,73 @@ func (m *TestRepeatedFields) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *TestNullableFields) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *TestNullableFields) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *TestNullableFields) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size, err := m.NonNullableDontOmitempty.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTest(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x22 + { + size, err := m.NonNullableOmitempty.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTest(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x1a + if m.NullableDontOmitempty != nil { + { + size, err := m.NullableDontOmitempty.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTest(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + } + if m.NullableOmitempty != nil { + { + size, err := m.NullableOmitempty.MarshalToSizedBuffer(dAtA[:i]) + if err != nil { + return 0, err + } + i -= size + i = encodeVarintTest(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + } + return len(dAtA) - i, nil +} + func encodeVarintTest(dAtA []byte, offset int, v uint64) int { offset -= sovTest(v) base := offset @@ -331,6 +476,27 @@ func (m *TestRepeatedFields) Size() (n int) { return n } +func (m *TestNullableFields) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + if m.NullableOmitempty != nil { + l = m.NullableOmitempty.Size() + n += 1 + l + sovTest(uint64(l)) + } + if m.NullableDontOmitempty != nil { + l = m.NullableDontOmitempty.Size() + n += 1 + l + sovTest(uint64(l)) + } + l = m.NonNullableOmitempty.Size() + n += 1 + l + sovTest(uint64(l)) + l = m.NonNullableDontOmitempty.Size() + n += 1 + l + sovTest(uint64(l)) + return n +} + func sovTest(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -605,6 +771,194 @@ func (m *TestRepeatedFields) Unmarshal(dAtA []byte) error { } return nil } +func (m *TestNullableFields) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: TestNullableFields: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: TestNullableFields: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTest + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTest + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableOmitempty == nil { + m.NullableOmitempty = &Streng{} + } + if err := m.NullableOmitempty.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NullableDontOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTest + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTest + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if m.NullableDontOmitempty == nil { + m.NullableDontOmitempty = &Streng{} + } + if err := m.NullableDontOmitempty.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NonNullableOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTest + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTest + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.NonNullableOmitempty.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NonNullableDontOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return ErrInvalidLengthTest + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return ErrInvalidLengthTest + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.NonNullableDontOmitempty.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTest(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTest(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/tests/integration/aminojson/internal/pulsar/testpb/test.pulsar.go b/tests/integration/aminojson/internal/pulsar/testpb/test.pulsar.go index 3f687f084d9f..73229daa2267 100644 --- a/tests/integration/aminojson/internal/pulsar/testpb/test.pulsar.go +++ b/tests/integration/aminojson/internal/pulsar/testpb/test.pulsar.go @@ -1342,6 +1342,678 @@ func (x *fastReflection_TestRepeatedFields) ProtoMethods() *protoiface.Methods { } } +var ( + md_TestNullableFields protoreflect.MessageDescriptor + fd_TestNullableFields_nullable_omitempty protoreflect.FieldDescriptor + fd_TestNullableFields_nullable_dont_omitempty protoreflect.FieldDescriptor + fd_TestNullableFields_non_nullable_omitempty protoreflect.FieldDescriptor + fd_TestNullableFields_non_nullable_dont_omitempty protoreflect.FieldDescriptor +) + +func init() { + file_testpb_test_proto_init() + md_TestNullableFields = File_testpb_test_proto.Messages().ByName("TestNullableFields") + fd_TestNullableFields_nullable_omitempty = md_TestNullableFields.Fields().ByName("nullable_omitempty") + fd_TestNullableFields_nullable_dont_omitempty = md_TestNullableFields.Fields().ByName("nullable_dont_omitempty") + fd_TestNullableFields_non_nullable_omitempty = md_TestNullableFields.Fields().ByName("non_nullable_omitempty") + fd_TestNullableFields_non_nullable_dont_omitempty = md_TestNullableFields.Fields().ByName("non_nullable_dont_omitempty") +} + +var _ protoreflect.Message = (*fastReflection_TestNullableFields)(nil) + +type fastReflection_TestNullableFields TestNullableFields + +func (x *TestNullableFields) ProtoReflect() protoreflect.Message { + return (*fastReflection_TestNullableFields)(x) +} + +func (x *TestNullableFields) slowProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_TestNullableFields_messageType fastReflection_TestNullableFields_messageType +var _ protoreflect.MessageType = fastReflection_TestNullableFields_messageType{} + +type fastReflection_TestNullableFields_messageType struct{} + +func (x fastReflection_TestNullableFields_messageType) Zero() protoreflect.Message { + return (*fastReflection_TestNullableFields)(nil) +} +func (x fastReflection_TestNullableFields_messageType) New() protoreflect.Message { + return new(fastReflection_TestNullableFields) +} +func (x fastReflection_TestNullableFields_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_TestNullableFields +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_TestNullableFields) Descriptor() protoreflect.MessageDescriptor { + return md_TestNullableFields +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_TestNullableFields) Type() protoreflect.MessageType { + return _fastReflection_TestNullableFields_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_TestNullableFields) New() protoreflect.Message { + return new(fastReflection_TestNullableFields) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_TestNullableFields) Interface() protoreflect.ProtoMessage { + return (*TestNullableFields)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_TestNullableFields) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.NullableOmitempty != nil { + value := protoreflect.ValueOfMessage(x.NullableOmitempty.ProtoReflect()) + if !f(fd_TestNullableFields_nullable_omitempty, value) { + return + } + } + if x.NullableDontOmitempty != nil { + value := protoreflect.ValueOfMessage(x.NullableDontOmitempty.ProtoReflect()) + if !f(fd_TestNullableFields_nullable_dont_omitempty, value) { + return + } + } + if x.NonNullableOmitempty != nil { + value := protoreflect.ValueOfMessage(x.NonNullableOmitempty.ProtoReflect()) + if !f(fd_TestNullableFields_non_nullable_omitempty, value) { + return + } + } + if x.NonNullableDontOmitempty != nil { + value := protoreflect.ValueOfMessage(x.NonNullableDontOmitempty.ProtoReflect()) + if !f(fd_TestNullableFields_non_nullable_dont_omitempty, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_TestNullableFields) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "testpb.TestNullableFields.nullable_omitempty": + return x.NullableOmitempty != nil + case "testpb.TestNullableFields.nullable_dont_omitempty": + return x.NullableDontOmitempty != nil + case "testpb.TestNullableFields.non_nullable_omitempty": + return x.NonNullableOmitempty != nil + case "testpb.TestNullableFields.non_nullable_dont_omitempty": + return x.NonNullableDontOmitempty != nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.TestNullableFields")) + } + panic(fmt.Errorf("message testpb.TestNullableFields does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_TestNullableFields) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "testpb.TestNullableFields.nullable_omitempty": + x.NullableOmitempty = nil + case "testpb.TestNullableFields.nullable_dont_omitempty": + x.NullableDontOmitempty = nil + case "testpb.TestNullableFields.non_nullable_omitempty": + x.NonNullableOmitempty = nil + case "testpb.TestNullableFields.non_nullable_dont_omitempty": + x.NonNullableDontOmitempty = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.TestNullableFields")) + } + panic(fmt.Errorf("message testpb.TestNullableFields does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_TestNullableFields) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "testpb.TestNullableFields.nullable_omitempty": + value := x.NullableOmitempty + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "testpb.TestNullableFields.nullable_dont_omitempty": + value := x.NullableDontOmitempty + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "testpb.TestNullableFields.non_nullable_omitempty": + value := x.NonNullableOmitempty + return protoreflect.ValueOfMessage(value.ProtoReflect()) + case "testpb.TestNullableFields.non_nullable_dont_omitempty": + value := x.NonNullableDontOmitempty + return protoreflect.ValueOfMessage(value.ProtoReflect()) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.TestNullableFields")) + } + panic(fmt.Errorf("message testpb.TestNullableFields does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_TestNullableFields) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "testpb.TestNullableFields.nullable_omitempty": + x.NullableOmitempty = value.Message().Interface().(*Streng) + case "testpb.TestNullableFields.nullable_dont_omitempty": + x.NullableDontOmitempty = value.Message().Interface().(*Streng) + case "testpb.TestNullableFields.non_nullable_omitempty": + x.NonNullableOmitempty = value.Message().Interface().(*Streng) + case "testpb.TestNullableFields.non_nullable_dont_omitempty": + x.NonNullableDontOmitempty = value.Message().Interface().(*Streng) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.TestNullableFields")) + } + panic(fmt.Errorf("message testpb.TestNullableFields does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_TestNullableFields) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.TestNullableFields.nullable_omitempty": + if x.NullableOmitempty == nil { + x.NullableOmitempty = new(Streng) + } + return protoreflect.ValueOfMessage(x.NullableOmitempty.ProtoReflect()) + case "testpb.TestNullableFields.nullable_dont_omitempty": + if x.NullableDontOmitempty == nil { + x.NullableDontOmitempty = new(Streng) + } + return protoreflect.ValueOfMessage(x.NullableDontOmitempty.ProtoReflect()) + case "testpb.TestNullableFields.non_nullable_omitempty": + if x.NonNullableOmitempty == nil { + x.NonNullableOmitempty = new(Streng) + } + return protoreflect.ValueOfMessage(x.NonNullableOmitempty.ProtoReflect()) + case "testpb.TestNullableFields.non_nullable_dont_omitempty": + if x.NonNullableDontOmitempty == nil { + x.NonNullableDontOmitempty = new(Streng) + } + return protoreflect.ValueOfMessage(x.NonNullableDontOmitempty.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.TestNullableFields")) + } + panic(fmt.Errorf("message testpb.TestNullableFields does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_TestNullableFields) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.TestNullableFields.nullable_omitempty": + m := new(Streng) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "testpb.TestNullableFields.nullable_dont_omitempty": + m := new(Streng) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "testpb.TestNullableFields.non_nullable_omitempty": + m := new(Streng) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + case "testpb.TestNullableFields.non_nullable_dont_omitempty": + m := new(Streng) + return protoreflect.ValueOfMessage(m.ProtoReflect()) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.TestNullableFields")) + } + panic(fmt.Errorf("message testpb.TestNullableFields does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_TestNullableFields) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in testpb.TestNullableFields", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_TestNullableFields) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_TestNullableFields) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_TestNullableFields) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_TestNullableFields) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*TestNullableFields) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + if x.NullableOmitempty != nil { + l = options.Size(x.NullableOmitempty) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.NullableDontOmitempty != nil { + l = options.Size(x.NullableDontOmitempty) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.NonNullableOmitempty != nil { + l = options.Size(x.NonNullableOmitempty) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.NonNullableDontOmitempty != nil { + l = options.Size(x.NonNullableDontOmitempty) + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*TestNullableFields) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if x.NonNullableDontOmitempty != nil { + encoded, err := options.Marshal(x.NonNullableDontOmitempty) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x22 + } + if x.NonNullableOmitempty != nil { + encoded, err := options.Marshal(x.NonNullableOmitempty) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x1a + } + if x.NullableDontOmitempty != nil { + encoded, err := options.Marshal(x.NullableDontOmitempty) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0x12 + } + if x.NullableOmitempty != nil { + encoded, err := options.Marshal(x.NullableOmitempty) + if err != nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, err + } + i -= len(encoded) + copy(dAtA[i:], encoded) + i = runtime.EncodeVarint(dAtA, i, uint64(len(encoded))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*TestNullableFields) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TestNullableFields: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: TestNullableFields: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NullableOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.NullableOmitempty == nil { + x.NullableOmitempty = &Streng{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.NullableOmitempty); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NullableDontOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.NullableDontOmitempty == nil { + x.NullableDontOmitempty = &Streng{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.NullableDontOmitempty); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 3: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NonNullableOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.NonNullableOmitempty == nil { + x.NonNullableOmitempty = &Streng{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.NonNullableOmitempty); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + case 4: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field NonNullableDontOmitempty", wireType) + } + var msglen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + msglen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if msglen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + msglen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if x.NonNullableDontOmitempty == nil { + x.NonNullableDontOmitempty = &Streng{} + } + if err := options.Unmarshal(dAtA[iNdEx:postIndex], x.NonNullableDontOmitempty); err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.0 @@ -1395,8 +2067,12 @@ type TestRepeatedFields struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - NullableOmitempty []*Streng `protobuf:"bytes,1,rep,name=nullable_omitempty,json=nullableOmitempty,proto3" json:"nullable_omitempty,omitempty"` - NullableDontOmitempty []*Streng `protobuf:"bytes,2,rep,name=nullable_dont_omitempty,json=nullableDontOmitempty,proto3" json:"nullable_dont_omitempty,omitempty"` + NullableOmitempty []*Streng `protobuf:"bytes,1,rep,name=nullable_omitempty,json=nullableOmitempty,proto3" json:"nullable_omitempty,omitempty"` + // not supported for empty sets + // go-amino emits nothing but the protoreflect library emits a null + NullableDontOmitempty []*Streng `protobuf:"bytes,2,rep,name=nullable_dont_omitempty,json=nullableDontOmitempty,proto3" json:"nullable_dont_omitempty,omitempty"` + // not supported for empty sets + // go-amino emits a null but the protoreflect library emits nothing NonNullableOmitempty []*Streng `protobuf:"bytes,3,rep,name=non_nullable_omitempty,json=nonNullableOmitempty,proto3" json:"non_nullable_omitempty,omitempty"` NonNullableDontOmitempty []*Streng `protobuf:"bytes,4,rep,name=non_nullable_dont_omitempty,json=nonNullableDontOmitempty,proto3" json:"non_nullable_dont_omitempty,omitempty"` } @@ -1449,6 +2125,69 @@ func (x *TestRepeatedFields) GetNonNullableDontOmitempty() []*Streng { return nil } +type TestNullableFields struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NullableOmitempty *Streng `protobuf:"bytes,1,opt,name=nullable_omitempty,json=nullableOmitempty,proto3" json:"nullable_omitempty,omitempty"` + // not supported for empty sets + // go-amino emits nothing but the protoreflect library emits a null + NullableDontOmitempty *Streng `protobuf:"bytes,2,opt,name=nullable_dont_omitempty,json=nullableDontOmitempty,proto3" json:"nullable_dont_omitempty,omitempty"` + // not supported for empty sets + // go-amino emits a null but the protoreflect library emits nothing + NonNullableOmitempty *Streng `protobuf:"bytes,3,opt,name=non_nullable_omitempty,json=nonNullableOmitempty,proto3" json:"non_nullable_omitempty,omitempty"` + NonNullableDontOmitempty *Streng `protobuf:"bytes,4,opt,name=non_nullable_dont_omitempty,json=nonNullableDontOmitempty,proto3" json:"non_nullable_dont_omitempty,omitempty"` +} + +func (x *TestNullableFields) Reset() { + *x = TestNullableFields{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TestNullableFields) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TestNullableFields) ProtoMessage() {} + +// Deprecated: Use TestNullableFields.ProtoReflect.Descriptor instead. +func (*TestNullableFields) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{2} +} + +func (x *TestNullableFields) GetNullableOmitempty() *Streng { + if x != nil { + return x.NullableOmitempty + } + return nil +} + +func (x *TestNullableFields) GetNullableDontOmitempty() *Streng { + if x != nil { + return x.NullableDontOmitempty + } + return nil +} + +func (x *TestNullableFields) GetNonNullableOmitempty() *Streng { + if x != nil { + return x.NonNullableOmitempty + } + return nil +} + +func (x *TestNullableFields) GetNonNullableDontOmitempty() *Streng { + if x != nil { + return x.NonNullableDontOmitempty + } + return nil +} + var File_testpb_test_proto protoreflect.FileDescriptor var file_testpb_test_proto_rawDesc = []byte{ @@ -1478,19 +2217,39 @@ var file_testpb_test_proto_rawDesc = []byte{ 0x6d, 0x70, 0x74, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x18, 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x44, 0x6f, 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x42, - 0xa7, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, - 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x56, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x73, 0x2f, - 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x6d, 0x69, 0x6e, - 0x6f, 0x6a, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, - 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x70, 0x75, 0x6c, 0x73, 0x61, 0x72, 0x2f, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, - 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, - 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x6c, 0x65, 0x44, 0x6f, 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x22, + 0xc8, 0x02, 0x0a, 0x12, 0x54, 0x65, 0x73, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x3d, 0x0a, 0x12, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x6e, 0x67, 0x52, 0x11, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x6d, 0x69, 0x74, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x17, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x42, 0x05, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x15, 0x6e, + 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x16, 0x6e, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, + 0x72, 0x65, 0x6e, 0x67, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x14, 0x6e, 0x6f, 0x6e, 0x4e, + 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x58, 0x0a, 0x1b, 0x6e, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x6e, 0x67, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x18, 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x6e, + 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x42, 0xa7, 0x01, 0x0a, 0x0a, 0x63, + 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x56, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x67, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x6a, 0x73, 0x6f, 0x6e, + 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, + 0x2f, 0x70, 0x75, 0x6c, 0x73, 0x61, 0x72, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, + 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, + 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, + 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1505,21 +2264,26 @@ func file_testpb_test_proto_rawDescGZIP() []byte { return file_testpb_test_proto_rawDescData } -var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_testpb_test_proto_goTypes = []interface{}{ (*Streng)(nil), // 0: testpb.streng (*TestRepeatedFields)(nil), // 1: testpb.TestRepeatedFields + (*TestNullableFields)(nil), // 2: testpb.TestNullableFields } var file_testpb_test_proto_depIdxs = []int32{ 0, // 0: testpb.TestRepeatedFields.nullable_omitempty:type_name -> testpb.streng 0, // 1: testpb.TestRepeatedFields.nullable_dont_omitempty:type_name -> testpb.streng 0, // 2: testpb.TestRepeatedFields.non_nullable_omitempty:type_name -> testpb.streng 0, // 3: testpb.TestRepeatedFields.non_nullable_dont_omitempty:type_name -> testpb.streng - 4, // [4:4] is the sub-list for method output_type - 4, // [4:4] is the sub-list for method input_type - 4, // [4:4] is the sub-list for extension type_name - 4, // [4:4] is the sub-list for extension extendee - 0, // [0:4] is the sub-list for field type_name + 0, // 4: testpb.TestNullableFields.nullable_omitempty:type_name -> testpb.streng + 0, // 5: testpb.TestNullableFields.nullable_dont_omitempty:type_name -> testpb.streng + 0, // 6: testpb.TestNullableFields.non_nullable_omitempty:type_name -> testpb.streng + 0, // 7: testpb.TestNullableFields.non_nullable_dont_omitempty:type_name -> testpb.streng + 8, // [8:8] is the sub-list for method output_type + 8, // [8:8] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name } func init() { file_testpb_test_proto_init() } @@ -1552,6 +2316,18 @@ func file_testpb_test_proto_init() { return nil } } + file_testpb_test_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TestNullableFields); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1559,7 +2335,7 @@ func file_testpb_test_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_testpb_test_proto_rawDesc, NumEnums: 0, - NumMessages: 2, + NumMessages: 3, NumExtensions: 0, NumServices: 0, }, diff --git a/tests/integration/aminojson/internal/testpb/test.proto b/tests/integration/aminojson/internal/testpb/test.proto index b651ec95ae7d..dd2dff6a50eb 100644 --- a/tests/integration/aminojson/internal/testpb/test.proto +++ b/tests/integration/aminojson/internal/testpb/test.proto @@ -21,4 +21,18 @@ message TestRepeatedFields { repeated streng non_nullable_omitempty = 3 [(gogoproto.nullable) = false]; repeated streng non_nullable_dont_omitempty = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +message TestNullableFields { + streng nullable_omitempty = 1; + + // not supported for empty sets + // go-amino emits nothing but the protoreflect library emits a null + streng nullable_dont_omitempty = 2 [(amino.dont_omitempty) = true]; + + // not supported for empty sets + // go-amino emits a null but the protoreflect library emits nothing + streng non_nullable_omitempty = 3 [(gogoproto.nullable) = false]; + + streng non_nullable_dont_omitempty = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; } \ No newline at end of file diff --git a/tests/integration/aminojson/repeated_test.go b/tests/integration/aminojson/repeated_test.go index c9b1128e398f..893995c34e0a 100644 --- a/tests/integration/aminojson/repeated_test.go +++ b/tests/integration/aminojson/repeated_test.go @@ -1,6 +1,9 @@ package aminojson import ( + gogoproto "github.com/cosmos/gogoproto/proto" + "google.golang.org/protobuf/proto" + "cosmossdk.io/x/tx/aminojson" "fmt" "github.com/cosmos/cosmos-sdk/codec" @@ -15,32 +18,47 @@ func TestRepeatedFields(t *testing.T) { aj := aminojson.NewAminoJSON() cases := map[string]struct { - gogo gogopb.TestRepeatedFields - pulsar pulsarpb.TestRepeatedFields + gogo gogoproto.Message + pulsar proto.Message fails bool }{ "unsupported_empty_sets": { - gogo: gogopb.TestRepeatedFields{}, - pulsar: pulsarpb.TestRepeatedFields{}, + gogo: &gogopb.TestRepeatedFields{}, + pulsar: &pulsarpb.TestRepeatedFields{}, fails: true, }, "unsupported_empty_sets_are_set": { - gogo: gogopb.TestRepeatedFields{ + gogo: &gogopb.TestRepeatedFields{ NullableDontOmitempty: []*gogopb.Streng{{Value: "foo"}}, NonNullableOmitempty: []gogopb.Streng{{Value: "foo"}}, }, - pulsar: pulsarpb.TestRepeatedFields{ + pulsar: &pulsarpb.TestRepeatedFields{ NullableDontOmitempty: []*pulsarpb.Streng{{Value: "foo"}}, NonNullableOmitempty: []*pulsarpb.Streng{{Value: "foo"}}, }, }, + "unsupported_nullable": { + gogo: &gogopb.TestNullableFields{}, + pulsar: &pulsarpb.TestNullableFields{}, + fails: true, + }, + "unsupported_nullable_set": { + gogo: &gogopb.TestNullableFields{ + NullableDontOmitempty: &gogopb.Streng{Value: "foo"}, + NonNullableOmitempty: gogopb.Streng{Value: "foo"}, + }, + pulsar: &pulsarpb.TestNullableFields{ + NullableDontOmitempty: &pulsarpb.Streng{Value: "foo"}, + NonNullableOmitempty: &pulsarpb.Streng{Value: "foo"}, + }, + }, } for n, tc := range cases { t.Run(n, func(t *testing.T) { - gogoBz, err := cdc.MarshalJSON(&tc.gogo) + gogoBz, err := cdc.MarshalJSON(tc.gogo) require.NoError(t, err) - pulsarBz, err := aj.MarshalAmino(&tc.pulsar) + pulsarBz, err := aj.MarshalAmino(tc.pulsar) require.NoError(t, err) fmt.Printf(" gogo: %s\npulsar: %s\n", string(gogoBz), string(pulsarBz)) From 283bbdd50256b66cca52cf2a4afeb93d168c22b5 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 14 Feb 2023 09:56:30 -0700 Subject: [PATCH 086/122] clarify cases --- .../aminojson/internal/testpb/test.proto | 9 +++--- tests/integration/aminojson/repeated_test.go | 30 +++++++++++-------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/tests/integration/aminojson/internal/testpb/test.proto b/tests/integration/aminojson/internal/testpb/test.proto index dd2dff6a50eb..eef2cd3b0be5 100644 --- a/tests/integration/aminojson/internal/testpb/test.proto +++ b/tests/integration/aminojson/internal/testpb/test.proto @@ -26,12 +26,13 @@ message TestRepeatedFields { message TestNullableFields { streng nullable_omitempty = 1; - // not supported for empty sets - // go-amino emits nothing but the protoreflect library emits a null + // not supported + // go-amino emits nothing and the protoreflect returns an error + // alternatively protoreflect could emit `{}` streng nullable_dont_omitempty = 2 [(amino.dont_omitempty) = true]; - // not supported for empty sets - // go-amino emits a null but the protoreflect library emits nothing + // not supported + // go-amino emits `{}` but the protoreflect library emits nothing streng non_nullable_omitempty = 3 [(gogoproto.nullable) = false]; streng non_nullable_dont_omitempty = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; diff --git a/tests/integration/aminojson/repeated_test.go b/tests/integration/aminojson/repeated_test.go index 893995c34e0a..95d1afcf2fae 100644 --- a/tests/integration/aminojson/repeated_test.go +++ b/tests/integration/aminojson/repeated_test.go @@ -18,14 +18,15 @@ func TestRepeatedFields(t *testing.T) { aj := aminojson.NewAminoJSON() cases := map[string]struct { - gogo gogoproto.Message - pulsar proto.Message - fails bool + gogo gogoproto.Message + pulsar proto.Message + unequal bool + errs bool }{ "unsupported_empty_sets": { - gogo: &gogopb.TestRepeatedFields{}, - pulsar: &pulsarpb.TestRepeatedFields{}, - fails: true, + gogo: &gogopb.TestRepeatedFields{}, + pulsar: &pulsarpb.TestRepeatedFields{}, + unequal: true, }, "unsupported_empty_sets_are_set": { gogo: &gogopb.TestRepeatedFields{ @@ -40,17 +41,18 @@ func TestRepeatedFields(t *testing.T) { "unsupported_nullable": { gogo: &gogopb.TestNullableFields{}, pulsar: &pulsarpb.TestNullableFields{}, - fails: true, + errs: true, }, "unsupported_nullable_set": { gogo: &gogopb.TestNullableFields{ - NullableDontOmitempty: &gogopb.Streng{Value: "foo"}, - NonNullableOmitempty: gogopb.Streng{Value: "foo"}, + NullableDontOmitempty: &gogopb.Streng{Value: "foo"}, + NonNullableDontOmitempty: gogopb.Streng{Value: "foo"}, }, pulsar: &pulsarpb.TestNullableFields{ - NullableDontOmitempty: &pulsarpb.Streng{Value: "foo"}, - NonNullableOmitempty: &pulsarpb.Streng{Value: "foo"}, + NullableDontOmitempty: &pulsarpb.Streng{Value: "foo"}, + NonNullableDontOmitempty: &pulsarpb.Streng{Value: "foo"}, }, + unequal: true, }, } @@ -59,11 +61,15 @@ func TestRepeatedFields(t *testing.T) { gogoBz, err := cdc.MarshalJSON(tc.gogo) require.NoError(t, err) pulsarBz, err := aj.MarshalAmino(tc.pulsar) + if tc.errs { + require.Error(t, err) + return + } require.NoError(t, err) fmt.Printf(" gogo: %s\npulsar: %s\n", string(gogoBz), string(pulsarBz)) - if tc.fails { + if tc.unequal { require.NotEqual(t, string(gogoBz), string(pulsarBz)) } else { require.Equal(t, string(gogoBz), string(pulsarBz)) From ebf3283e93f2fabea53bd675bd6b1beb34bcf68b Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 14 Feb 2023 14:31:20 -0700 Subject: [PATCH 087/122] coins by convention. note 3 broken tests. could revert. ref: https://github.com/cosmos/cosmos-sdk/pull/15019#discussion_r1106399057 --- api/amino/amino.pulsar.go | 7 + api/cosmos/bank/v1beta1/authz.pulsar.go | 61 +- api/cosmos/bank/v1beta1/bank.pulsar.go | 121 ++-- api/cosmos/bank/v1beta1/genesis.pulsar.go | 89 ++- api/cosmos/bank/v1beta1/query.pulsar.go | 543 +++++++++--------- api/cosmos/bank/v1beta1/tx.pulsar.go | 184 +++--- .../v1beta1/distribution.pulsar.go | 140 +++-- api/cosmos/distribution/v1beta1/tx.pulsar.go | 352 ++++++------ .../feegrant/v1beta1/feegrant.pulsar.go | 189 +++--- api/cosmos/gov/v1beta1/tx.pulsar.go | 217 ++++--- api/cosmos/vesting/v1beta1/tx.pulsar.go | 197 ++++--- api/cosmos/vesting/v1beta1/vesting.pulsar.go | 204 ++++--- proto/cosmos/bank/v1beta1/authz.proto | 1 - proto/cosmos/bank/v1beta1/bank.proto | 3 - proto/cosmos/bank/v1beta1/genesis.proto | 2 - proto/cosmos/bank/v1beta1/query.proto | 3 - proto/cosmos/bank/v1beta1/tx.proto | 1 - .../distribution/v1beta1/distribution.proto | 1 - proto/cosmos/distribution/v1beta1/tx.proto | 5 - proto/cosmos/feegrant/v1beta1/feegrant.proto | 3 - proto/cosmos/gov/v1beta1/tx.proto | 2 - proto/cosmos/vesting/v1beta1/tx.proto | 2 - proto/cosmos/vesting/v1beta1/vesting.proto | 4 - tests/integration/aminojson/aminojson_test.go | 10 +- x/auth/vesting/types/tx.pb.go | 86 ++- x/auth/vesting/types/vesting.pb.go | 78 ++- x/bank/types/authz.pb.go | 35 +- x/bank/types/bank.pb.go | 87 ++- x/bank/types/genesis.pb.go | 60 +- x/bank/types/query.pb.go | 156 +++-- x/bank/types/tx.pb.go | 91 ++- x/distribution/types/distribution.pb.go | 126 ++-- x/distribution/types/tx.pb.go | 117 ++-- x/feegrant/feegrant.pb.go | 85 ++- x/gov/types/v1beta1/tx.pb.go | 96 ++-- x/tx/aminojson/json_marshal.go | 7 + 36 files changed, 1650 insertions(+), 1715 deletions(-) diff --git a/api/amino/amino.pulsar.go b/api/amino/amino.pulsar.go index 74e13c0f9f2a..a136c7a4a5dc 100644 --- a/api/amino/amino.pulsar.go +++ b/api/amino/amino.pulsar.go @@ -157,12 +157,19 @@ var ( // // optional bool dont_omitempty = 11110005; E_DontOmitempty = &file_amino_amino_proto_extTypes[4] + // oneof_type_name sets the type name for the given field oneof field. This is used + // by the Amino JSON encoder to encode the type of the oneof field, and must be the same string as + // The RegisterConcrete() method usage used to register the concrete type. + // // optional string oneof_type_name = 11110006; E_OneofTypeName = &file_amino_amino_proto_extTypes[5] ) // Extension fields to descriptorpb.OneofOptions. var ( + // oneof_field_name sets the field name for the given oneof field. This is used by the Amino JSON + // encoder to set the field name encapsulating the oneof field. + // // optional string oneof_field_name = 11110007; E_OneofFieldName = &file_amino_amino_proto_extTypes[6] ) diff --git a/api/cosmos/bank/v1beta1/authz.pulsar.go b/api/cosmos/bank/v1beta1/authz.pulsar.go index 259ca548043f..f62d0fdaa569 100644 --- a/api/cosmos/bank/v1beta1/authz.pulsar.go +++ b/api/cosmos/bank/v1beta1/authz.pulsar.go @@ -710,38 +710,37 @@ var file_cosmos_bank_v1beta1_authz_proto_rawDesc = []byte{ 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, - 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa1, 0x02, 0x0a, 0x11, 0x53, + 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x88, 0x02, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, - 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x37, 0x0a, 0x0a, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x4c, 0x69, 0x73, 0x74, 0x3a, 0x47, 0xca, 0xb4, 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x8a, 0xe7, 0xb0, - 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x65, 0x6e, - 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xc5, - 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x41, 0x75, 0x74, 0x68, - 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, - 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, - 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, - 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x71, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x3a, 0x47, 0xca, 0xb4, + 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xc5, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x42, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, + 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, + 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, + 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/bank.pulsar.go b/api/cosmos/bank/v1beta1/bank.pulsar.go index 72005c128190..6a2fbe8c6052 100644 --- a/api/cosmos/bank/v1beta1/bank.pulsar.go +++ b/api/cosmos/bank/v1beta1/bank.pulsar.go @@ -4620,80 +4620,75 @@ var file_cosmos_bank_v1beta1_bank_proto_rawDesc = []byte{ 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xd1, 0x01, 0x0a, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xb9, 0x01, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x7e, 0x0a, 0x05, 0x63, 0x6f, + 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x66, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, + 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, - 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, 0x14, 0x88, 0xa0, 0x1f, 0x00, - 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x22, 0xc6, 0x01, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, - 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x7e, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, - 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, - 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, - 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xb3, 0x01, 0x0a, 0x06, 0x53, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x12, 0x7e, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, + 0x6e, 0x73, 0x3a, 0x14, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xae, 0x01, 0x0a, 0x06, 0x4f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x66, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, + 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x9b, 0x01, 0x0a, 0x06, 0x53, 0x75, + 0x70, 0x70, 0x6c, 0x79, 0x12, 0x66, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, - 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, - 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x3a, 0x29, 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x01, - 0xca, 0xb4, 0x2d, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x22, - 0x57, 0x0a, 0x09, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x0a, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, - 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, - 0x6f, 0x6c, 0x12, 0x19, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xe2, 0xde, 0x1f, 0x03, 0x55, 0x52, 0x49, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x26, 0x0a, - 0x08, 0x75, 0x72, 0x69, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x0b, 0xe2, 0xde, 0x1f, 0x07, 0x55, 0x52, 0x49, 0x48, 0x61, 0x73, 0x68, 0x52, 0x07, 0x75, 0x72, - 0x69, 0x48, 0x61, 0x73, 0x68, 0x42, 0xc4, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x42, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, - 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, - 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x3a, 0x29, 0x18, 0x01, + 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x01, 0xca, 0xb4, 0x2d, 0x1b, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x22, 0x57, 0x0a, 0x09, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x55, 0x6e, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, + 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, + 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3f, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x55, 0x6e, 0x69, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x73, + 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x19, 0x0a, 0x03, 0x75, 0x72, + 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xe2, 0xde, 0x1f, 0x03, 0x55, 0x52, 0x49, + 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x08, 0x75, 0x72, 0x69, 0x5f, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe2, 0xde, 0x1f, 0x07, 0x55, 0x52, 0x49, + 0x48, 0x61, 0x73, 0x68, 0x52, 0x07, 0x75, 0x72, 0x69, 0x48, 0x61, 0x73, 0x68, 0x42, 0xc4, 0x01, + 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, + 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, + 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, + 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, + 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, + 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/genesis.pulsar.go b/api/cosmos/bank/v1beta1/genesis.pulsar.go index 18f33e074611..73a8226986d4 100644 --- a/api/cosmos/bank/v1beta1/genesis.pulsar.go +++ b/api/cosmos/bank/v1beta1/genesis.pulsar.go @@ -1711,7 +1711,7 @@ var file_cosmos_bank_v1beta1_genesis_proto_rawDesc = []byte{ 0x74, 0x61, 0x31, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, - 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb7, 0x03, 0x0a, + 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9e, 0x03, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, @@ -1721,51 +1721,48 @@ var file_cosmos_bank_v1beta1_genesis_proto_rawDesc = []byte{ 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, - 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, - 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, - 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x4f, 0x0a, 0x0e, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, - 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, - 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x7e, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, - 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, - 0x42, 0xc7, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x47, 0x65, - 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, - 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, - 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x65, 0x73, 0x12, 0x68, 0x0a, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, + 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x4f, 0x0a, 0x0e, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4e, 0x0a, + 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, + 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xaf, 0x01, + 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x66, 0x0a, + 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, + 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, + 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x42, + 0xc7, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x47, 0x65, 0x6e, + 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, + 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, + 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, + 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/query.pulsar.go b/api/cosmos/bank/v1beta1/query.pulsar.go index 1290aaa3a747..21d552ace042 100644 --- a/api/cosmos/bank/v1beta1/query.pulsar.go +++ b/api/cosmos/bank/v1beta1/query.pulsar.go @@ -12338,297 +12338,292 @@ var file_cosmos_bank_v1beta1_query_proto_rawDesc = []byte{ 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, - 0x22, 0xea, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, - 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, - 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, - 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa5, 0x01, - 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, - 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xf0, 0x01, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, - 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x08, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, - 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x23, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, - 0xa0, 0x1f, 0x00, 0x22, 0x5b, 0x0a, 0x24, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, - 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, - 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x62, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x22, 0x6b, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, + 0x22, 0xd1, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, + 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, + 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xe6, 0x01, - 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x73, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x47, 0x0a, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa5, 0x01, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, + 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xd7, 0x01, 0x0a, + 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x6c, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, + 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, - 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x55, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, - 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x55, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x64, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xae, - 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, - 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x09, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x31, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x22, 0x62, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x44, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x77, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x80, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x32, - 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, - 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, - 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x17, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x12, - 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x63, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x0b, 0x73, 0x65, - 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x23, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, + 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, + 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, + 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, + 0x00, 0x22, 0x5b, 0x0a, 0x24, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x6b, + 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x32, 0xb2, 0x0e, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x9d, 0x01, 0x0a, - 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x88, - 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x7d, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xa0, 0x01, 0x0a, - 0x0b, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xcd, 0x01, 0x0a, 0x18, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x06, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, + 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x14, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x55, 0x0a, 0x15, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, + 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x64, 0x0a, + 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xae, 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x62, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x77, 0x0a, 0x17, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x46, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, + 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, + 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x88, 0xe7, 0xb0, 0x2a, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, - 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, - 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x63, 0x6f, + 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x0b, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x79, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, + 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x65, 0x6e, + 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x47, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x63, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xb2, 0x0e, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x12, 0x9d, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x3d, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, + 0x30, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x12, 0xa0, 0x01, 0x0a, 0x0b, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, + 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, 0xd7, - 0x01, 0x0a, 0x17, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x38, 0x2e, 0x63, 0x6f, 0x73, + 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x7d, 0x12, 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x47, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, - 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x94, 0x01, 0x0a, 0x0b, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, - 0x94, 0x01, 0x0a, 0x08, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x12, 0x29, 0x2e, 0x63, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, + 0x12, 0x31, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, + 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x7d, 0x12, 0xd7, 0x01, 0x0a, 0x17, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, + 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3c, 0x12, 0x3a, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x94, 0x01, + 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, + 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, + 0x70, 0x70, 0x6c, 0x79, 0x12, 0x94, 0x01, 0x0a, 0x08, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, + 0x66, 0x12, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, + 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, - 0x12, 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x2f, 0x62, 0x79, - 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x85, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0xab, - 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x39, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0xa6, 0x01, 0x0a, - 0x0e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, - 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x5f, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xa2, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, - 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, + 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x85, 0x01, 0x0a, 0x06, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x12, 0xab, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, - 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x36, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, - 0x29, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6f, 0x77, 0x6e, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x9a, 0x01, 0x0a, 0x0b, 0x53, - 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, + 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, + 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, + 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x7d, 0x12, 0xa6, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, + 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xa2, 0x01, 0x0a, 0x0b, 0x44, + 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, - 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x65, 0x6e, 0x64, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0xc5, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, + 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, + 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, + 0x9a, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, + 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, - 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, - 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x88, 0xe7, + 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0xc5, 0x01, 0x0a, + 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, + 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, + 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, + 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, + 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/tx.pulsar.go b/api/cosmos/bank/v1beta1/tx.pulsar.go index 31c7348023f2..10048243e590 100644 --- a/api/cosmos/bank/v1beta1/tx.pulsar.go +++ b/api/cosmos/bank/v1beta1/tx.pulsar.go @@ -4229,7 +4229,7 @@ var file_cosmos_bank_v1beta1_tx_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0xb4, 0x02, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x3b, 0x0a, 0x0c, + 0x22, 0x9b, 0x02, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x3b, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x66, 0x72, @@ -4237,100 +4237,98 @@ var file_cosmos_bank_v1beta1_tx_proto_rawDesc = []byte{ 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, - 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, - 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, - 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x30, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, - 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x8a, 0xe7, 0xb0, 0x2a, 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x0c, 0x4d, - 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x3a, 0x2b, 0xe8, 0xa0, - 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x8a, 0xe7, 0xb0, - 0x2a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x4d, 0x73, 0x67, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x73, 0x73, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, + 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x30, 0x88, 0xa0, + 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x12, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x22, 0x11, + 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, + 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x09, + 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, + 0x73, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, + 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, + 0x75, 0x74, 0x73, 0x3a, 0x2b, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x69, 0x6e, + 0x70, 0x75, 0x74, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, + 0x22, 0x16, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x34, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, + 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, + 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, + 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x0b, 0x73, 0x65, 0x6e, + 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x5f, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6f, 0x72, + 0x3a, 0x2f, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, + 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x81, + 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x4a, 0x0a, 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1c, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x24, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x59, 0x0a, 0x09, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x12, + 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, + 0x6e, 0x64, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, + 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, + 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x34, 0x82, - 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, - 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x62, - 0x61, 0x6e, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe9, - 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0c, - 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x44, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6f, 0x72, 0x3a, 0x2f, 0x82, 0xe7, 0xb0, 0x2a, 0x09, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, - 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, - 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x81, 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, - 0x4a, 0x0a, 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x09, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x29, 0x2e, 0x63, 0x6f, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x1a, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, + 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x12, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, + 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, + 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2c, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x53, 0x65, - 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, - 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xc2, 0x01, 0x0a, 0x17, - 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, - 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, + 0x2a, 0x01, 0x42, 0xc2, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, + 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, + 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, + 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, + 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/distribution/v1beta1/distribution.pulsar.go b/api/cosmos/distribution/v1beta1/distribution.pulsar.go index d0bb8c4707bb..a31425aaea13 100644 --- a/api/cosmos/distribution/v1beta1/distribution.pulsar.go +++ b/api/cosmos/distribution/v1beta1/distribution.pulsar.go @@ -7312,83 +7312,81 @@ var file_cosmos_distribution_v1beta1_distribution_proto_rawDesc = []byte{ 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x22, - 0x9f, 0x02, 0x0a, 0x1a, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x86, 0x02, 0x0a, 0x1a, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, - 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x28, 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, - 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, - 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, - 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x12, 0x57, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, - 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, - 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x44, 0x0a, - 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x2c, 0xea, - 0xde, 0x1f, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0xa2, 0xe7, 0xb0, 0x2a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, - 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x6e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, - 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0xd3, - 0x01, 0x0a, 0x25, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, - 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, - 0x68, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x3a, 0x22, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x42, 0x88, 0x02, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x11, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, - 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x65, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, + 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x28, + 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x65, + 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x57, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, + 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x6b, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x04, 0x42, 0x2c, 0xea, 0xde, 0x1f, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa2, 0xe7, 0xb0, 0x2a, 0x0f, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x19, 0x44, + 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x6e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, + 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, + 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x3a, + 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0xd3, 0x01, 0x0a, 0x25, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x3a, 0x22, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, + 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x88, 0x02, 0x0a, 0x1f, + 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, + 0x11, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, + 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/distribution/v1beta1/tx.pulsar.go b/api/cosmos/distribution/v1beta1/tx.pulsar.go index 71e7f0390c74..f0020abfd00e 100644 --- a/api/cosmos/distribution/v1beta1/tx.pulsar.go +++ b/api/cosmos/distribution/v1beta1/tx.pulsar.go @@ -7092,199 +7092,191 @@ var file_cosmos_distribution_v1beta1_tx_proto_rawDesc = []byte{ 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0xa7, 0x01, 0x0a, 0x22, 0x4d, 0x73, 0x67, 0x57, + 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x22, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, - 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, - 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, - 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x46, 0x88, 0xa0, 0x1f, - 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x57, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0xab, 0x01, 0x0a, 0x26, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, - 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, - 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, - 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8d, 0x02, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, - 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x3a, 0x3a, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, - 0xe7, 0xb0, 0x2a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, - 0x2a, 0x1f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, - 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, - 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x46, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x3a, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x27, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, 0x02, 0x0a, - 0x15, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, - 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1c, - 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x80, 0x01, 0x0a, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, - 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, - 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, - 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, - 0x39, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, - 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, - 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe4, 0x02, 0x0a, 0x1e, - 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, - 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x80, 0x01, - 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, + 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, - 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x3a, 0x40, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x2f, 0x4d, 0x73, - 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x22, 0x28, 0x0a, 0x26, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xec, 0x07, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x12, 0x84, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, - 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x17, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x1e, 0x4d, 0x73, 0x67, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x3a, 0x46, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, + 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x92, 0x01, 0x0a, 0x26, 0x4d, + 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xf4, 0x01, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, + 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, + 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x3a, 0x3a, 0x88, 0xa0, 0x1f, 0x00, + 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, + 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x3a, 0x82, 0xe7, 0xb0, 0x2a, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x27, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x92, 0x02, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, + 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, + 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, + 0x74, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, + 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x39, 0x82, 0xe7, 0xb0, + 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x26, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcb, 0x02, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x44, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, + 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, + 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, + 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x3a, 0x40, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, + 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x22, 0x28, 0x0a, 0x26, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, + 0xec, 0x07, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x84, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x57, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93, + 0x01, 0x0a, 0x17, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x6e, 0x1a, 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x43, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, 0x39, 0x2e, 0x63, + 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, - 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, + 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, + 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, + 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0c, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, + 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, + 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x12, - 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, - 0x6e, 0x64, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, - 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, - 0x6f, 0x6c, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, + 0x6f, 0x6c, 0x1a, 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, - 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xfe, 0x01, 0x0a, 0x1f, - 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, - 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, - 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, - 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xfe, + 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, + 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go b/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go index 06f86ab68b3b..4a575330ae67 100644 --- a/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go +++ b/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go @@ -2845,107 +2845,102 @@ var file_cosmos_feegrant_v1beta1_feegrant_proto_rawDesc = []byte{ 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, - 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x42, 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x47, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, - 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, - 0x2a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, - 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xe7, 0x04, 0x0a, 0x11, - 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x48, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x96, 0x01, - 0x0a, 0x12, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, - 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x70, 0x65, 0x6e, - 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x92, 0x01, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x5f, 0x63, 0x61, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, - 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, - 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, - 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, - 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x70, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x43, 0x61, 0x6e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x4c, 0x0a, 0x0c, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, - 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x70, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x65, 0x74, 0x3a, 0x4a, 0xca, 0xb4, 0x2d, 0x25, 0x63, + 0x6f, 0x22, 0x8e, 0x02, 0x0a, 0x0e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x71, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, + 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, + 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x0a, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x47, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, - 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x13, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x4d, 0x73, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x5d, 0x0a, - 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, - 0x49, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x3a, 0x50, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, + 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, + 0x63, 0x65, 0x22, 0xb5, 0x04, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, + 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, + 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x62, 0x61, 0x73, + 0x69, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0xc8, + 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x12, 0x7e, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, + 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, + 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x7a, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x63, + 0x61, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, + 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x0e, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x43, 0x61, 0x6e, 0x53, 0x70, 0x65, 0x6e, 0x64, + 0x12, 0x4c, 0x0a, 0x0c, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x65, 0x74, 0x3a, 0x4a, + 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, + 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, + 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x13, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x73, 0x67, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x05, 0x47, 0x72, - 0x61, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, - 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, - 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x12, 0x5d, 0x0a, 0x09, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x52, - 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x42, 0xe4, 0x01, 0x0a, 0x1b, 0x63, - 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0d, 0x46, 0x65, 0x65, 0x67, - 0x72, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x46, 0x58, 0xaa, 0x02, 0x17, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, - 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, - 0x02, 0x23, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, - 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, - 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6c, 0x6c, + 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x3a, 0x50, 0x88, 0xa0, + 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, + 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x4d, 0x73, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xce, + 0x01, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, + 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, + 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, + 0x12, 0x5d, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, + 0x6e, 0x63, 0x65, 0x49, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x42, + 0xe4, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, + 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, + 0x0d, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x38, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, 0x65, 0x65, 0x67, 0x72, + 0x61, 0x6e, 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x46, 0x58, + 0xaa, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x17, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x23, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, + 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/gov/v1beta1/tx.pulsar.go b/api/cosmos/gov/v1beta1/tx.pulsar.go index 3df1133e99f4..87d4a9edc9db 100644 --- a/api/cosmos/gov/v1beta1/tx.pulsar.go +++ b/api/cosmos/gov/v1beta1/tx.pulsar.go @@ -4228,122 +4228,119 @@ var file_cosmos_gov_v1beta1_tx_proto_rawDesc = []byte{ 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, - 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe5, 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, + 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcc, 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x4e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x1e, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x91, 0x01, - 0x0a, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, - 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x3a, 0x36, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, - 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x8a, 0xe7, - 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, - 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x22, - 0x52, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, - 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x49, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, - 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, - 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x29, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, - 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, - 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, - 0x6f, 0x74, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x56, 0x6f, - 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, - 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, - 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, - 0x72, 0x12, 0x4b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, - 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x31, - 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, - 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, - 0x64, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb4, 0x02, 0x0a, - 0x0a, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, - 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x49, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x34, 0x88, - 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x80, 0xdc, 0x20, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, - 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x15, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf3, 0x02, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x12, 0x66, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x12, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x56, 0x6f, 0x74, - 0x65, 0x12, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x1a, 0x23, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0c, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x65, 0x64, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, + 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, + 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x3a, 0x36, + 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x08, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x22, 0x52, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x07, 0x4d, + 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, + 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, + 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x29, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, + 0x74, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, + 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf8, 0x01, + 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, + 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x31, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, + 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1a, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x56, + 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x9b, 0x02, 0x0a, 0x0a, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, + 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, + 0x72, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, + 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x34, 0x88, 0xa0, 0x1f, + 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x80, 0xdc, 0x20, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x64, 0x65, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x15, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x22, 0x14, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf3, 0x02, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, + 0x66, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x12, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x07, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, - 0xbb, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, - 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, - 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x47, 0x6f, 0x76, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xca, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, - 0x6f, 0x76, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, - 0x3a, 0x47, 0x6f, 0x76, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, + 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x1a, 0x23, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x60, 0x0a, 0x0c, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, + 0x64, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, + 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, + 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x07, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x1e, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x1a, 0x26, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xbb, 0x01, + 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, + 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x47, 0x6f, 0x76, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, + 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x47, + 0x6f, 0x76, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/vesting/v1beta1/tx.pulsar.go b/api/cosmos/vesting/v1beta1/tx.pulsar.go index 7df32383e855..a60e700159e2 100644 --- a/api/cosmos/vesting/v1beta1/tx.pulsar.go +++ b/api/cosmos/vesting/v1beta1/tx.pulsar.go @@ -3405,7 +3405,7 @@ var file_cosmos_vesting_v1beta1_tx_proto_rawDesc = []byte{ 0x61, 0x31, 0x2f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, - 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x85, 0x03, 0x0a, + 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xec, 0x02, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, @@ -3414,112 +3414,109 @@ var file_cosmos_vesting_v1beta1_tx_proto_rawDesc = []byte{ 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x80, - 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, - 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, - 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, - 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x3a, 0x3c, 0xe8, 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, - 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, - 0x2a, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd7, 0x02, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, - 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x0c, 0x66, - 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x17, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x66, 0x72, 0x6f, - 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x15, 0xf2, 0xde, 0x1f, - 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x22, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x80, 0x01, + 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, - 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x3a, 0x3f, 0xe8, 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x50, 0x65, 0x72, 0x6d, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x29, 0x0a, 0x27, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, - 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x97, 0x02, 0x0a, - 0x1f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x73, 0x3a, 0x3f, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, - 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, - 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x56, 0x65, 0x73, 0x74, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x29, 0x0a, 0x27, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x32, 0xc5, 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x80, 0x01, 0x0a, 0x14, 0x43, 0x72, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x3a, 0x3c, 0xe8, + 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x4d, + 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbe, + 0x02, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, + 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, + 0x6d, 0x6c, 0x3a, 0x22, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x22, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, + 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x15, 0xf2, 0xde, 0x1f, 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, 0x6f, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, + 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3f, + 0xe8, 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, + 0x72, 0x6d, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x29, 0x0a, 0x27, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, + 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x97, 0x02, 0x0a, 0x1f, 0x4d, + 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, + 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, + 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x52, 0x0a, 0x0f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, + 0x6f, 0x64, 0x73, 0x3a, 0x3f, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, + 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x56, 0x65, 0x73, 0x74, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x29, 0x0a, 0x27, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, + 0xc5, 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x80, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, - 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, - 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x1c, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, + 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, + 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, + 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, - 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, + 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, + 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, + 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xd7, 0x01, 0x0a, 0x1a, 0x63, 0x6f, - 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, - 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x56, - 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x3a, 0x3a, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xd7, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x56, 0x58, 0xaa, + 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, + 0x3a, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/vesting/v1beta1/vesting.pulsar.go b/api/cosmos/vesting/v1beta1/vesting.pulsar.go index da849a3ca6e3..b852cbc75308 100644 --- a/api/cosmos/vesting/v1beta1/vesting.pulsar.go +++ b/api/cosmos/vesting/v1beta1/vesting.pulsar.go @@ -3744,122 +3744,116 @@ var file_cosmos_vesting_v1beta1_vesting_proto_rawDesc = []byte{ 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x75, 0x74, - 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe2, 0x04, 0x0a, 0x12, 0x42, 0x61, 0x73, 0x65, + 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x97, 0x04, 0x0a, 0x12, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x0b, 0x62, 0x61, - 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x93, 0x01, 0x0a, 0x10, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, - 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, - 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, - 0x8f, 0x01, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, - 0x65, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, - 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x65, - 0x65, 0x12, 0x95, 0x01, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, - 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, - 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, - 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x26, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x1d, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xcb, 0x01, 0x0a, - 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x56, 0x65, 0x73, 0x74, 0x69, + 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x7b, 0x0a, 0x10, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, + 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x56, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x77, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, + 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x65, 0x65, 0x12, + 0x7d, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x64, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x19, + 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x26, 0x88, 0xa0, 0x1f, 0x00, 0x8a, + 0xe7, 0xb0, 0x2a, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, + 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0xcb, 0x01, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, + 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, + 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, + 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x3a, 0x2c, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, + 0x73, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xa6, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x2c, 0x88, 0xa0, - 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x56, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x15, 0x44, - 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, - 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, - 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x29, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, - 0xb0, 0x2a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x44, 0x65, - 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, - 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x02, 0x0a, 0x16, 0x50, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, - 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, - 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x76, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x76, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, - 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, - 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, - 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x42, 0x0c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x56, 0x58, 0xaa, - 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, - 0x3a, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x29, 0x88, + 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x2f, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x06, 0x50, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x68, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x02, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, + 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x09, 0xc8, 0xde, + 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, + 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, + 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, + 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, + 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, + 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0xdc, + 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x56, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x56, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, + 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x56, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/bank/v1beta1/authz.proto b/proto/cosmos/bank/v1beta1/authz.proto index 07159edc1b93..a830353663dc 100644 --- a/proto/cosmos/bank/v1beta1/authz.proto +++ b/proto/cosmos/bank/v1beta1/authz.proto @@ -19,7 +19,6 @@ message SendAuthorization { repeated cosmos.base.v1beta1.Coin spend_limit = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/proto/cosmos/bank/v1beta1/bank.proto b/proto/cosmos/bank/v1beta1/bank.proto index aa0ef5426586..0bdb042be15b 100644 --- a/proto/cosmos/bank/v1beta1/bank.proto +++ b/proto/cosmos/bank/v1beta1/bank.proto @@ -40,7 +40,6 @@ message Input { repeated cosmos.base.v1beta1.Coin coins = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -54,7 +53,6 @@ message Output { repeated cosmos.base.v1beta1.Coin coins = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -73,7 +71,6 @@ message Supply { repeated cosmos.base.v1beta1.Coin total = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/bank/v1beta1/genesis.proto b/proto/cosmos/bank/v1beta1/genesis.proto index 0221513bc6d5..34214cfbbd9f 100644 --- a/proto/cosmos/bank/v1beta1/genesis.proto +++ b/proto/cosmos/bank/v1beta1/genesis.proto @@ -20,7 +20,6 @@ message GenesisState { // supply represents the total supply. If it is left empty, then supply will be calculated based on the provided // balances. Otherwise, it will be used to validate that the sum of the balances equals this amount. repeated cosmos.base.v1beta1.Coin supply = 3 [ - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false, (amino.dont_omitempty) = true @@ -46,7 +45,6 @@ message Balance { // coins defines the different coins this balance holds. repeated cosmos.base.v1beta1.Coin coins = 2 [ - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false, (amino.dont_omitempty) = true diff --git a/proto/cosmos/bank/v1beta1/query.proto b/proto/cosmos/bank/v1beta1/query.proto index fe16a3f70493..d317eb5bc8d3 100644 --- a/proto/cosmos/bank/v1beta1/query.proto +++ b/proto/cosmos/bank/v1beta1/query.proto @@ -157,7 +157,6 @@ message QueryAllBalancesResponse { repeated cosmos.base.v1beta1.Coin balances = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -189,7 +188,6 @@ message QuerySpendableBalancesResponse { repeated cosmos.base.v1beta1.Coin balances = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -240,7 +238,6 @@ message QueryTotalSupplyResponse { repeated cosmos.base.v1beta1.Coin supply = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/proto/cosmos/bank/v1beta1/tx.proto b/proto/cosmos/bank/v1beta1/tx.proto index 215223498954..5d6926ef6de2 100644 --- a/proto/cosmos/bank/v1beta1/tx.proto +++ b/proto/cosmos/bank/v1beta1/tx.proto @@ -48,7 +48,6 @@ message MsgSend { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/distribution/v1beta1/distribution.proto b/proto/cosmos/distribution/v1beta1/distribution.proto index 85f25937dc08..3f7e5300dc64 100644 --- a/proto/cosmos/distribution/v1beta1/distribution.proto +++ b/proto/cosmos/distribution/v1beta1/distribution.proto @@ -143,7 +143,6 @@ message CommunityPoolSpendProposal { repeated cosmos.base.v1beta1.Coin amount = 4 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/distribution/v1beta1/tx.proto b/proto/cosmos/distribution/v1beta1/tx.proto index 22be789dd9b2..65d2ee647903 100644 --- a/proto/cosmos/distribution/v1beta1/tx.proto +++ b/proto/cosmos/distribution/v1beta1/tx.proto @@ -89,7 +89,6 @@ message MsgWithdrawDelegatorRewardResponse { repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -113,7 +112,6 @@ message MsgWithdrawValidatorCommissionResponse { repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -130,7 +128,6 @@ message MsgFundCommunityPool { repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; @@ -176,7 +173,6 @@ message MsgCommunityPoolSpend { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -202,7 +198,6 @@ message MsgDepositValidatorRewardsPool { string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, - (amino.encoding) = "null_slice_as_empty", (amino.dont_omitempty) = true, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/proto/cosmos/feegrant/v1beta1/feegrant.proto b/proto/cosmos/feegrant/v1beta1/feegrant.proto index e02a1e0136dd..df57218df37f 100644 --- a/proto/cosmos/feegrant/v1beta1/feegrant.proto +++ b/proto/cosmos/feegrant/v1beta1/feegrant.proto @@ -24,7 +24,6 @@ message BasicAllowance { repeated cosmos.base.v1beta1.Coin spend_limit = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -51,7 +50,6 @@ message PeriodicAllowance { repeated cosmos.base.v1beta1.Coin period_spend_limit = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -59,7 +57,6 @@ message PeriodicAllowance { repeated cosmos.base.v1beta1.Coin period_can_spend = 4 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/proto/cosmos/gov/v1beta1/tx.proto b/proto/cosmos/gov/v1beta1/tx.proto index e0b603182622..cf1acc9418cc 100644 --- a/proto/cosmos/gov/v1beta1/tx.proto +++ b/proto/cosmos/gov/v1beta1/tx.proto @@ -46,7 +46,6 @@ message MsgSubmitProposal { repeated cosmos.base.v1beta1.Coin initial_deposit = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -125,7 +124,6 @@ message MsgDeposit { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/vesting/v1beta1/tx.proto b/proto/cosmos/vesting/v1beta1/tx.proto index 52f146d9d1f7..ad9561d28bc1 100644 --- a/proto/cosmos/vesting/v1beta1/tx.proto +++ b/proto/cosmos/vesting/v1beta1/tx.proto @@ -42,7 +42,6 @@ message MsgCreateVestingAccount { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -68,7 +67,6 @@ message MsgCreatePermanentLockedAccount { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/vesting/v1beta1/vesting.proto b/proto/cosmos/vesting/v1beta1/vesting.proto index c532c263fd65..88f6c7583855 100644 --- a/proto/cosmos/vesting/v1beta1/vesting.proto +++ b/proto/cosmos/vesting/v1beta1/vesting.proto @@ -18,19 +18,16 @@ message BaseVestingAccount { repeated cosmos.base.v1beta1.Coin original_vesting = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; repeated cosmos.base.v1beta1.Coin delegated_free = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; repeated cosmos.base.v1beta1.Coin delegated_vesting = 4 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; int64 end_time = 5; @@ -62,7 +59,6 @@ message Period { repeated cosmos.base.v1beta1.Coin amount = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index a08a955fb680..6e734e538567 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -337,7 +337,7 @@ func newAny(t *testing.T, msg proto.Message) *anypb.Any { func TestAminoJSON_LegacyParity(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, distribution.AppModuleBasic{}, slashing.AppModuleBasic{}, staking.AppModuleBasic{}, - vesting.AppModuleBasic{}) + vesting.AppModuleBasic{}, gov.AppModuleBasic{}) aj := aminojson.NewAminoJSON() addr1 := types.AccAddress([]byte("addr1")) @@ -441,6 +441,10 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &banktypes.SendAuthorization{SpendLimit: []types.Coin{}}, pulsar: &bankapi.SendAuthorization{SpendLimit: []*v1beta1.Coin{}}, }, + "bank/send_authorization/some_coins": { + gogo: &banktypes.SendAuthorization{SpendLimit: []types.Coin{types.NewInt64Coin("foo", 10)}}, + pulsar: &bankapi.SendAuthorization{SpendLimit: []*v1beta1.Coin{{Denom: "foo", Amount: "10"}}}, + }, "bank/send_authorization/nil_coins": { gogo: &banktypes.SendAuthorization{SpendLimit: nil}, pulsar: &bankapi.SendAuthorization{SpendLimit: nil}, @@ -457,6 +461,10 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &banktypes.MsgMultiSend{}, pulsar: &bankapi.MsgMultiSend{}, }, + "gov/v1_msg_submit_proposal": { + gogo: &gov_v1_types.MsgSubmitProposal{}, + pulsar: &gov_v1_api.MsgSubmitProposal{}, + }, "slashing/params/empty_dec": { gogo: &slashingtypes.Params{DowntimeJailDuration: 1e9 + 7}, pulsar: &slashingapi.Params{DowntimeJailDuration: &durationpb.Duration{Seconds: 1, Nanos: 7}}, diff --git a/x/auth/vesting/types/tx.pb.go b/x/auth/vesting/types/tx.pb.go index 4bb66e9a378e..66ae65596fe0 100644 --- a/x/auth/vesting/types/tx.pb.go +++ b/x/auth/vesting/types/tx.pb.go @@ -381,50 +381,48 @@ func init() { func init() { proto.RegisterFile("cosmos/vesting/v1beta1/tx.proto", fileDescriptor_5338ca97811f9792) } var fileDescriptor_5338ca97811f9792 = []byte{ - // 679 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0x3f, 0x6f, 0xd3, 0x4e, - 0x18, 0xc7, 0xe3, 0xba, 0xff, 0x72, 0xfd, 0xe9, 0x87, 0x9a, 0x16, 0xea, 0x46, 0xd4, 0x4e, 0x2d, - 0x10, 0x21, 0x52, 0x6d, 0xb5, 0x20, 0x55, 0x0a, 0x48, 0x55, 0xd3, 0x11, 0x2a, 0xa1, 0x80, 0x18, - 0x58, 0xac, 0x8b, 0x7d, 0xb8, 0xa7, 0xc6, 0x77, 0x91, 0xef, 0x52, 0x35, 0x5b, 0x85, 0xc4, 0xc2, - 0xc4, 0x06, 0x62, 0x62, 0x44, 0x4c, 0x19, 0x78, 0x0b, 0x48, 0x1d, 0x2b, 0x16, 0x98, 0x0a, 0x6a, - 0x87, 0x30, 0xf7, 0x15, 0x20, 0xfb, 0xce, 0x21, 0x29, 0x76, 0xff, 0x30, 0xb1, 0xd4, 0xcd, 0x3d, - 0xdf, 0xef, 0xe3, 0xc7, 0x9f, 0xe7, 0x79, 0x6c, 0x60, 0xb8, 0x94, 0x05, 0x94, 0xd9, 0x3b, 0x88, - 0x71, 0x4c, 0x7c, 0x7b, 0x67, 0xb9, 0x81, 0x38, 0x5c, 0xb6, 0xf9, 0xae, 0xd5, 0x0a, 0x29, 0xa7, - 0x85, 0x6b, 0x42, 0x60, 0x49, 0x81, 0x25, 0x05, 0xc5, 0x59, 0x9f, 0xfa, 0x34, 0x96, 0xd8, 0xd1, - 0x7f, 0x42, 0x5d, 0xd4, 0x65, 0xba, 0x06, 0x64, 0xa8, 0x9f, 0xcb, 0xa5, 0x98, 0xc8, 0xf8, 0xbc, - 0x88, 0x3b, 0xc2, 0x28, 0x53, 0x8b, 0xd0, 0x8d, 0x8c, 0x4a, 0x92, 0x1b, 0x0b, 0xd5, 0x9c, 0x54, - 0x05, 0x2c, 0x52, 0x44, 0x17, 0x19, 0x98, 0x86, 0x01, 0x26, 0xd4, 0x8e, 0xff, 0x8a, 0x23, 0xf3, - 0xa5, 0x0a, 0xe6, 0x36, 0x99, 0xbf, 0x11, 0x22, 0xc8, 0xd1, 0x53, 0x91, 0x66, 0xdd, 0x75, 0x69, - 0x9b, 0xf0, 0xc2, 0x3d, 0xf0, 0xdf, 0xf3, 0x90, 0x06, 0x0e, 0xf4, 0xbc, 0x10, 0x31, 0xa6, 0x29, - 0x25, 0xa5, 0x9c, 0xaf, 0x69, 0x5f, 0x3e, 0x2d, 0xcd, 0xca, 0xaa, 0xd6, 0x45, 0xe4, 0x31, 0x0f, - 0x31, 0xf1, 0xeb, 0x53, 0x91, 0x5a, 0x1e, 0x15, 0x56, 0x01, 0xe0, 0xb4, 0x6f, 0x1d, 0x39, 0xc7, - 0x9a, 0xe7, 0x34, 0x31, 0xee, 0x29, 0x60, 0x1c, 0x06, 0x51, 0x01, 0x9a, 0x5a, 0x52, 0xcb, 0x53, - 0x2b, 0xf3, 0x96, 0xb4, 0x44, 0xc0, 0x12, 0xb6, 0xd6, 0x06, 0xc5, 0xa4, 0xb6, 0xb9, 0x7f, 0x68, - 0xe4, 0x3e, 0x7e, 0x37, 0xca, 0x3e, 0xe6, 0x5b, 0xed, 0x86, 0xe5, 0xd2, 0x40, 0x02, 0x93, 0x97, - 0x25, 0xe6, 0x6d, 0xdb, 0xbc, 0xd3, 0x42, 0x2c, 0x36, 0xb0, 0x77, 0xbd, 0x6e, 0x65, 0x86, 0xb4, - 0x9b, 0x4d, 0x87, 0x35, 0xb1, 0x8b, 0x1c, 0xc8, 0x1c, 0x14, 0xb4, 0x78, 0xe7, 0x43, 0xaf, 0x5b, - 0x51, 0xea, 0xf2, 0xbe, 0x85, 0x79, 0x30, 0x89, 0x88, 0xe7, 0x70, 0x1c, 0x20, 0x6d, 0xb4, 0xa4, - 0x94, 0xd5, 0xfa, 0x04, 0x22, 0xde, 0x13, 0x1c, 0xa0, 0x82, 0x06, 0x26, 0x3c, 0xd4, 0x84, 0x1d, - 0xe4, 0x69, 0x63, 0x25, 0xa5, 0x3c, 0x59, 0x4f, 0x7e, 0x56, 0xef, 0xff, 0x7c, 0x6f, 0x28, 0x2f, - 0x7a, 0xdd, 0xca, 0x10, 0xb4, 0x57, 0xbd, 0x6e, 0xc5, 0x1c, 0xa8, 0x25, 0x83, 0xb5, 0xb9, 0x08, - 0x8c, 0x8c, 0x50, 0x1d, 0xb1, 0x16, 0x25, 0x0c, 0x99, 0x5f, 0x47, 0x06, 0x34, 0x8f, 0x50, 0x18, - 0x40, 0x82, 0x08, 0x7f, 0x48, 0xdd, 0x6d, 0xe4, 0x25, 0x2d, 0xab, 0xa6, 0xb6, 0x6c, 0xee, 0xe4, - 0xd0, 0x98, 0xe9, 0xc0, 0xa0, 0x59, 0x35, 0x07, 0xa3, 0xe6, 0x70, 0xc7, 0xee, 0xa6, 0x74, 0xec, - 0xea, 0xc9, 0xa1, 0x31, 0x2d, 0x9c, 0xbf, 0x63, 0xe6, 0xbf, 0xd5, 0xae, 0xea, 0x5a, 0x26, 0xf9, - 0x9b, 0x69, 0xe4, 0x23, 0x74, 0x43, 0xd4, 0xcc, 0xdb, 0xe0, 0xd6, 0x39, 0x60, 0xfb, 0x4d, 0x78, - 0x73, 0xaa, 0x09, 0x98, 0x7a, 0xd8, 0x3d, 0xb5, 0x37, 0x8b, 0x69, 0x4d, 0x18, 0x66, 0xbd, 0xf0, - 0x27, 0xeb, 0x41, 0xa8, 0x0b, 0x00, 0x30, 0x0e, 0x43, 0x2e, 0x46, 0x50, 0x8d, 0x47, 0x30, 0x1f, - 0x9f, 0xc4, 0x43, 0x58, 0x07, 0x57, 0xe4, 0xc6, 0x3b, 0xad, 0xb8, 0x04, 0xa6, 0x8d, 0xc6, 0xec, - 0x75, 0x2b, 0xfd, 0x4d, 0x64, 0x89, 0x4a, 0x6b, 0xf9, 0xa8, 0x01, 0x02, 0xde, 0xff, 0x52, 0x22, - 0x22, 0x2c, 0x86, 0x98, 0xbb, 0x14, 0x44, 0x4c, 0xbd, 0xe8, 0xc1, 0x33, 0x20, 0xa6, 0x80, 0x49, - 0x20, 0xae, 0x7c, 0x56, 0x81, 0xba, 0xc9, 0xfc, 0x68, 0x76, 0x66, 0x53, 0xdf, 0x3c, 0x76, 0xd6, - 0x73, 0x64, 0xec, 0x48, 0x71, 0xf5, 0x92, 0x86, 0xa4, 0x94, 0xc2, 0x5b, 0x05, 0x5c, 0x3f, 0x73, - 0xa3, 0xce, 0xcf, 0x9c, 0x6e, 0x2c, 0xae, 0xfd, 0xa5, 0x31, 0xbd, 0xb4, 0xb4, 0x39, 0xbb, 0x50, - 0x69, 0x29, 0xc6, 0x8b, 0x95, 0x76, 0x46, 0x03, 0x8b, 0x63, 0x7b, 0xd1, 0x0c, 0xd5, 0x1e, 0xec, - 0x1f, 0xe9, 0xca, 0xc1, 0x91, 0xae, 0xfc, 0x38, 0xd2, 0x95, 0xd7, 0xc7, 0x7a, 0xee, 0xe0, 0x58, - 0xcf, 0x7d, 0x3b, 0xd6, 0x73, 0xcf, 0x96, 0xcf, 0xdc, 0xf0, 0x5d, 0x1b, 0xb6, 0xf9, 0x56, 0xff, - 0x2b, 0x16, 0x2f, 0x7c, 0x63, 0x3c, 0xfe, 0x20, 0xdd, 0xf9, 0x15, 0x00, 0x00, 0xff, 0xff, 0xa3, - 0x43, 0xde, 0x6f, 0x6e, 0x07, 0x00, 0x00, + // 656 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x95, 0xbf, 0x6f, 0xd3, 0x40, + 0x14, 0xc7, 0xe3, 0xb8, 0xbf, 0x72, 0x45, 0xa0, 0x9a, 0x40, 0x9c, 0x88, 0xda, 0xa9, 0x05, 0x22, + 0x44, 0xaa, 0xad, 0x14, 0x50, 0xa5, 0x80, 0x54, 0x35, 0x1d, 0xa1, 0x12, 0x32, 0x88, 0x81, 0x25, + 0x72, 0xec, 0xc3, 0xb1, 0x5a, 0xfb, 0x22, 0xdf, 0xa5, 0x6a, 0xb6, 0x8a, 0x91, 0x89, 0x0d, 0x46, + 0x46, 0xc4, 0x94, 0x81, 0x99, 0x0d, 0xa9, 0x63, 0xc5, 0xc4, 0x14, 0x50, 0x32, 0x84, 0x81, 0xa9, + 0x7f, 0x01, 0xb2, 0xef, 0x1c, 0x92, 0x62, 0x27, 0x2d, 0x0b, 0x4b, 0x1c, 0xdf, 0xfb, 0x7e, 0xdf, + 0x3d, 0x7f, 0xde, 0x3d, 0x1b, 0xc8, 0x26, 0xc2, 0x2e, 0xc2, 0xda, 0x01, 0xc4, 0xc4, 0xf1, 0x6c, + 0xed, 0xa0, 0xd2, 0x80, 0xc4, 0xa8, 0x68, 0xe4, 0x50, 0x6d, 0xf9, 0x88, 0x20, 0xe1, 0x3a, 0x15, + 0xa8, 0x4c, 0xa0, 0x32, 0x41, 0x21, 0x6b, 0x23, 0x1b, 0x85, 0x12, 0x2d, 0xf8, 0x47, 0xd5, 0x05, + 0x89, 0xa5, 0x6b, 0x18, 0x18, 0x8e, 0x72, 0x99, 0xc8, 0xf1, 0x58, 0x3c, 0x4f, 0xe3, 0x75, 0x6a, + 0x64, 0xa9, 0x69, 0xe8, 0x66, 0x42, 0x25, 0xd1, 0xc6, 0x54, 0x95, 0x63, 0x2a, 0x17, 0x07, 0x8a, + 0xe0, 0xc2, 0x02, 0x2b, 0x86, 0xeb, 0x78, 0x48, 0x0b, 0x7f, 0xe9, 0x92, 0xf2, 0x2b, 0x0d, 0x72, + 0xbb, 0xd8, 0xde, 0xf1, 0xa1, 0x41, 0xe0, 0x73, 0x9a, 0x66, 0xdb, 0x34, 0x51, 0xdb, 0x23, 0xc2, + 0x03, 0x70, 0xe9, 0xa5, 0x8f, 0xdc, 0xba, 0x61, 0x59, 0x3e, 0xc4, 0x58, 0xe4, 0x8a, 0x5c, 0x29, + 0x53, 0x13, 0xbf, 0x7e, 0x5a, 0xcf, 0xb2, 0xaa, 0xb6, 0x69, 0xe4, 0x29, 0xf1, 0x1d, 0xcf, 0xd6, + 0x97, 0x03, 0x35, 0x5b, 0x12, 0x36, 0x01, 0x20, 0x68, 0x64, 0x4d, 0xcf, 0xb0, 0x66, 0x08, 0x8a, + 0x8c, 0x4d, 0xb0, 0x60, 0xb8, 0xc1, 0xfe, 0x22, 0x5f, 0xe4, 0x4b, 0xcb, 0x1b, 0x79, 0x95, 0x39, + 0x02, 0x5e, 0x11, 0x5a, 0x75, 0x07, 0x39, 0x5e, 0xed, 0xfe, 0x71, 0x4f, 0x4e, 0x7d, 0xfc, 0x2e, + 0x97, 0x6c, 0x87, 0x34, 0xdb, 0x0d, 0xd5, 0x44, 0x2e, 0xe3, 0xc5, 0x2e, 0xeb, 0xd8, 0xda, 0xd3, + 0x48, 0xa7, 0x05, 0x71, 0x68, 0xc0, 0x1f, 0x86, 0xdd, 0x32, 0xa7, 0xb3, 0xfc, 0x42, 0x1e, 0x2c, + 0x41, 0xcf, 0xaa, 0x13, 0xc7, 0x85, 0xe2, 0x5c, 0x91, 0x2b, 0xf1, 0xfa, 0x22, 0xf4, 0xac, 0x67, + 0x8e, 0x0b, 0x05, 0x11, 0x2c, 0x5a, 0x70, 0xdf, 0xe8, 0x40, 0x4b, 0x9c, 0x2f, 0x72, 0xa5, 0x25, + 0x3d, 0xba, 0xad, 0x3e, 0xfc, 0xf9, 0x5e, 0xe6, 0x5e, 0x0d, 0xbb, 0xe5, 0x09, 0x36, 0xaf, 0x87, + 0xdd, 0xb2, 0x32, 0xb6, 0x67, 0x02, 0x52, 0x65, 0x0d, 0xc8, 0x09, 0x21, 0x1d, 0xe2, 0x16, 0xf2, + 0x30, 0x54, 0x3e, 0xa7, 0xc7, 0x34, 0x4f, 0xa0, 0xef, 0x1a, 0x1e, 0xf4, 0xc8, 0x63, 0x64, 0xee, + 0x41, 0x2b, 0xea, 0x4c, 0x35, 0xb6, 0x33, 0xb9, 0xd3, 0x9e, 0x7c, 0xb5, 0x63, 0xb8, 0xfb, 0x55, + 0x65, 0x3c, 0xaa, 0x4c, 0x36, 0xe6, 0x5e, 0x4c, 0x63, 0xae, 0x9d, 0xf6, 0xe4, 0x15, 0xea, 0xfc, + 0x13, 0x53, 0xfe, 0x4b, 0x57, 0xaa, 0x5b, 0x89, 0x80, 0x6f, 0xc5, 0x01, 0x0e, 0x08, 0x4d, 0xc0, + 0x51, 0xee, 0x80, 0xdb, 0x33, 0xf8, 0x8d, 0x58, 0xbf, 0x3d, 0xc3, 0xda, 0x41, 0x96, 0x63, 0x9e, + 0x99, 0x82, 0xb5, 0x38, 0xd6, 0x93, 0x48, 0x57, 0xff, 0x46, 0x3a, 0xce, 0x6e, 0x15, 0x00, 0x4c, + 0x0c, 0x9f, 0xd0, 0x93, 0xc6, 0x87, 0x27, 0x2d, 0x13, 0xae, 0x84, 0x67, 0x4d, 0x07, 0x57, 0xd8, + 0xfc, 0xd6, 0x5b, 0x61, 0x09, 0x58, 0x9c, 0x0b, 0x19, 0x4b, 0x6a, 0xfc, 0x7b, 0x45, 0xa5, 0x95, + 0xd6, 0x32, 0x01, 0x68, 0x0a, 0xef, 0x32, 0x93, 0xd0, 0x08, 0x0e, 0x21, 0xa6, 0x2e, 0x04, 0xd1, + 0x41, 0x56, 0xf0, 0xe0, 0x09, 0x10, 0x63, 0xc0, 0x44, 0x10, 0x37, 0xbe, 0xf0, 0x80, 0xdf, 0xc5, + 0xb6, 0x70, 0xc4, 0x81, 0x6c, 0xec, 0x7b, 0x44, 0x4b, 0x7a, 0x8e, 0x84, 0x51, 0x28, 0x6c, 0x5e, + 0xd0, 0x10, 0x95, 0x22, 0xbc, 0xe3, 0xc0, 0x8d, 0xa9, 0x83, 0x33, 0x3b, 0x73, 0xbc, 0xb1, 0xb0, + 0xf5, 0x8f, 0xc6, 0xf8, 0xd2, 0xe2, 0xce, 0xd9, 0xb9, 0x4a, 0x8b, 0x31, 0x9e, 0xaf, 0xb4, 0x29, + 0x0d, 0x2c, 0xcc, 0x1f, 0x05, 0x67, 0xa8, 0xf6, 0xe8, 0xb8, 0x2f, 0x71, 0x27, 0x7d, 0x89, 0xfb, + 0xd1, 0x97, 0xb8, 0x37, 0x03, 0x29, 0x75, 0x32, 0x90, 0x52, 0xdf, 0x06, 0x52, 0xea, 0x45, 0x65, + 0xea, 0x24, 0x1f, 0x6a, 0x46, 0x9b, 0x34, 0x47, 0xdf, 0xa4, 0x70, 0xb0, 0x1b, 0x0b, 0xe1, 0xe7, + 0xe5, 0xee, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x6a, 0x8c, 0x8a, 0x3c, 0x07, 0x00, 0x00, } func (this *MsgCreateVestingAccount) Equal(that interface{}) bool { diff --git a/x/auth/vesting/types/vesting.pb.go b/x/auth/vesting/types/vesting.pb.go index 27cd62a7ee0c..f384d720038a 100644 --- a/x/auth/vesting/types/vesting.pb.go +++ b/x/auth/vesting/types/vesting.pb.go @@ -300,46 +300,44 @@ func init() { } var fileDescriptor_89e80273ca606d6e = []byte{ - // 618 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0xcf, 0x8b, 0xd3, 0x40, - 0x14, 0xc7, 0x3b, 0xdb, 0xb5, 0xba, 0xb3, 0xba, 0x3f, 0xe2, 0xba, 0x74, 0x17, 0x36, 0xad, 0x51, - 0xa4, 0x16, 0x4d, 0xd8, 0xf5, 0xd6, 0x9b, 0x5d, 0x11, 0x44, 0x05, 0x29, 0xe2, 0xc1, 0x4b, 0x98, - 0x24, 0x63, 0x3a, 0x6c, 0x32, 0x53, 0x32, 0x93, 0xc5, 0xde, 0x3c, 0x8a, 0x17, 0x05, 0xf1, 0xa2, - 0x17, 0x41, 0x90, 0xc5, 0x53, 0xff, 0x8c, 0x05, 0x2f, 0x3d, 0x7a, 0x5a, 0xa5, 0x3d, 0xf4, 0xdf, - 0x90, 0x4c, 0x26, 0xd9, 0xd2, 0x1f, 0x1e, 0x8b, 0x97, 0x36, 0x33, 0xef, 0xcd, 0x7b, 0x9f, 0xef, - 0xeb, 0x37, 0x1d, 0x78, 0xd3, 0x65, 0x3c, 0x64, 0xdc, 0x3a, 0xc6, 0x5c, 0x10, 0xea, 0x5b, 0xc7, - 0xfb, 0x0e, 0x16, 0x68, 0x3f, 0x5b, 0x9b, 0x9d, 0x88, 0x09, 0xa6, 0x6d, 0xa7, 0x59, 0x66, 0xb6, - 0xab, 0xb2, 0x76, 0x37, 0x51, 0x48, 0x28, 0xb3, 0xe4, 0x67, 0x9a, 0xba, 0xbb, 0xe5, 0x33, 0x9f, - 0xc9, 0x47, 0x2b, 0x79, 0x52, 0xbb, 0xba, 0x6a, 0xe3, 0x20, 0x8e, 0xf3, 0x1e, 0x2e, 0x23, 0x74, - 0x22, 0x8e, 0x62, 0xd1, 0xce, 0xe3, 0xc9, 0x22, 0x8d, 0x1b, 0x83, 0x65, 0xa8, 0x35, 0x11, 0xc7, - 0x2f, 0x52, 0x80, 0xfb, 0xae, 0xcb, 0x62, 0x2a, 0xb4, 0x47, 0xf0, 0x72, 0x52, 0xd1, 0x46, 0xe9, - 0xba, 0x0c, 0xaa, 0xa0, 0xb6, 0x7a, 0x50, 0x35, 0x15, 0xae, 0x2c, 0xa0, 0xaa, 0x99, 0xc9, 0x71, - 0x75, 0xae, 0xb9, 0xdc, 0x3f, 0xab, 0x80, 0xd6, 0xaa, 0x73, 0xbe, 0xa5, 0x7d, 0x04, 0x70, 0x83, - 0x45, 0xc4, 0x27, 0x14, 0x05, 0xb6, 0xd2, 0x59, 0x5e, 0xaa, 0x16, 0x6b, 0xab, 0x07, 0x3b, 0x59, - 0xbd, 0x24, 0x3f, 0xaf, 0x77, 0xc8, 0x08, 0x6d, 0x3e, 0x3d, 0x3d, 0xab, 0x14, 0x7e, 0xfc, 0xae, - 0xd4, 0x7c, 0x22, 0xda, 0xb1, 0x63, 0xba, 0x2c, 0xb4, 0x94, 0x94, 0xf4, 0xeb, 0x2e, 0xf7, 0x8e, - 0x2c, 0xd1, 0xed, 0x60, 0x2e, 0x0f, 0xf0, 0xcf, 0xa3, 0x5e, 0xfd, 0x2a, 0x8d, 0x83, 0xc0, 0xe6, - 0x01, 0x71, 0xb1, 0x8d, 0xb8, 0x8d, 0xc3, 0x8e, 0xe8, 0x9e, 0x8c, 0x7a, 0x75, 0xd0, 0x5a, 0xcf, - 0x08, 0x94, 0x4e, 0xed, 0x3d, 0x80, 0x6b, 0x1e, 0x0e, 0xb0, 0x8f, 0x04, 0xf6, 0xec, 0x57, 0x11, - 0xc6, 0xe5, 0xe2, 0x82, 0x99, 0xae, 0xe4, 0xfd, 0x1f, 0x46, 0x18, 0x6b, 0x9f, 0x00, 0xdc, 0x3c, - 0x27, 0xca, 0x06, 0xb5, 0xbc, 0x60, 0xa8, 0x8d, 0x1c, 0x21, 0x9b, 0xd4, 0x0e, 0xbc, 0x84, 0xa9, - 0x67, 0x0b, 0x12, 0xe2, 0xf2, 0x85, 0x2a, 0xa8, 0x15, 0x5b, 0x17, 0x31, 0xf5, 0x9e, 0x93, 0x10, - 0x37, 0x6e, 0xbd, 0xfd, 0x5a, 0x29, 0xbc, 0x1b, 0xf5, 0xea, 0x7b, 0x63, 0xad, 0xa6, 0xdd, 0x64, - 0xfc, 0x04, 0xb0, 0x7c, 0xc8, 0xa8, 0x20, 0x34, 0x66, 0x31, 0x9f, 0xb0, 0x9a, 0x03, 0xb7, 0xa4, - 0xd5, 0x94, 0xe2, 0x09, 0xcb, 0xd5, 0xcd, 0xd9, 0x6f, 0x88, 0x39, 0xdd, 0x46, 0x99, 0x4f, 0x73, - 0xa6, 0xed, 0xbc, 0x07, 0x21, 0x17, 0x28, 0x12, 0xa9, 0x8a, 0x25, 0xa9, 0x62, 0x45, 0xee, 0x48, - 0x1d, 0x77, 0x32, 0x1d, 0x37, 0xc6, 0x74, 0xcc, 0x03, 0x36, 0xbe, 0x03, 0x78, 0xed, 0x01, 0x0e, - 0x50, 0x37, 0x9f, 0xd1, 0x02, 0xa5, 0x34, 0x6e, 0x67, 0xac, 0xd5, 0x31, 0xd6, 0x99, 0x38, 0xc6, - 0x37, 0x00, 0x4b, 0xcf, 0x70, 0x44, 0x98, 0xa7, 0x6d, 0xc3, 0x52, 0x80, 0xa9, 0x2f, 0xda, 0x92, - 0xa5, 0xd8, 0x52, 0x2b, 0xed, 0x0d, 0x80, 0x25, 0x14, 0x4a, 0xc8, 0x45, 0xbf, 0x92, 0xaa, 0xaf, - 0xf1, 0x65, 0x09, 0x6e, 0xa7, 0x94, 0xc4, 0xfd, 0xef, 0xac, 0xa1, 0xb5, 0xe0, 0x7a, 0xd6, 0xbd, - 0x23, 0x21, 0xb9, 0xfa, 0x9f, 0xd0, 0xe7, 0x75, 0x4f, 0xb5, 0x34, 0x57, 0x92, 0x69, 0xa5, 0x4a, - 0xd7, 0x54, 0x4a, 0x1a, 0xe1, 0x8d, 0x7a, 0xf6, 0x13, 0x5e, 0x1f, 0x9b, 0xdb, 0xec, 0x11, 0x18, - 0x27, 0x40, 0x4e, 0x27, 0x44, 0x14, 0x53, 0xf1, 0x84, 0xb9, 0x47, 0xd8, 0x5b, 0xa4, 0xdb, 0xe6, - 0xa1, 0xce, 0xe0, 0x69, 0x3e, 0x3e, 0x1d, 0xe8, 0xa0, 0x3f, 0xd0, 0xc1, 0x9f, 0x81, 0x0e, 0x3e, - 0x0c, 0xf5, 0x42, 0x7f, 0xa8, 0x17, 0x7e, 0x0d, 0xf5, 0xc2, 0xcb, 0xfd, 0x7f, 0x3a, 0xe6, 0xb5, - 0xba, 0x9c, 0xd4, 0x45, 0x29, 0x0d, 0xe4, 0x94, 0xe4, 0xf5, 0x74, 0xef, 0x6f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xe6, 0x60, 0xfb, 0xe0, 0x47, 0x07, 0x00, 0x00, + // 592 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0x3d, 0x6f, 0xd3, 0x40, + 0x18, 0xce, 0x25, 0x21, 0xd0, 0x0b, 0xf4, 0xc3, 0x2a, 0x51, 0x5a, 0xa9, 0x4e, 0x30, 0x08, 0x85, + 0x08, 0x6c, 0xa5, 0x88, 0x25, 0x1b, 0x29, 0x42, 0x42, 0x30, 0xa0, 0x08, 0x31, 0xb0, 0x44, 0x67, + 0xfb, 0x70, 0x4e, 0x8d, 0xef, 0x22, 0xdf, 0xa5, 0x50, 0x21, 0x76, 0xd4, 0x89, 0x8d, 0x81, 0x85, + 0x09, 0x55, 0x4c, 0xfd, 0x19, 0x95, 0x58, 0x32, 0x32, 0x15, 0x94, 0x0c, 0xfd, 0x1b, 0xc8, 0x77, + 0x67, 0x37, 0xca, 0x07, 0x5b, 0x2a, 0x96, 0xc4, 0xef, 0xc7, 0xbd, 0xcf, 0xf3, 0xbc, 0x7e, 0xac, + 0x83, 0x77, 0x3c, 0xc6, 0x43, 0xc6, 0x9d, 0x03, 0xcc, 0x05, 0xa1, 0x81, 0x73, 0xd0, 0x70, 0xb1, + 0x40, 0x8d, 0x24, 0xb6, 0xfb, 0x11, 0x13, 0xcc, 0x28, 0xa9, 0x2e, 0x3b, 0xc9, 0xea, 0xae, 0xed, + 0x0d, 0x14, 0x12, 0xca, 0x1c, 0xf9, 0xab, 0x5a, 0xb7, 0x37, 0x03, 0x16, 0x30, 0xf9, 0xe8, 0xc4, + 0x4f, 0x3a, 0x6b, 0x6a, 0x18, 0x17, 0x71, 0x9c, 0x62, 0x78, 0x8c, 0xd0, 0xa9, 0x3a, 0x1a, 0x88, + 0x6e, 0x5a, 0x8f, 0x03, 0x55, 0xb7, 0xbe, 0xe4, 0xa1, 0xd1, 0x42, 0x1c, 0xbf, 0x56, 0x04, 0x1e, + 0x7b, 0x1e, 0x1b, 0x50, 0x61, 0x3c, 0x83, 0xd7, 0xe3, 0x89, 0x1d, 0xa4, 0xe2, 0x32, 0xa8, 0x82, + 0x5a, 0x71, 0xb7, 0x6a, 0x6b, 0xba, 0x72, 0x80, 0x9e, 0x66, 0xc7, 0xc7, 0xf5, 0xb9, 0x56, 0x7e, + 0x78, 0x56, 0x01, 0xed, 0xa2, 0x7b, 0x91, 0x32, 0x3e, 0xc0, 0x75, 0x16, 0x91, 0x80, 0x50, 0xd4, + 0xeb, 0x68, 0x99, 0xe5, 0x6c, 0x35, 0x57, 0x2b, 0xee, 0x6e, 0x25, 0xe3, 0xe2, 0xf6, 0x74, 0xdc, + 0x1e, 0x23, 0xb4, 0xf5, 0xe8, 0xf4, 0xac, 0x92, 0xf9, 0xf1, 0xbb, 0x52, 0x0b, 0x88, 0xe8, 0x0e, + 0x5c, 0xdb, 0x63, 0xa1, 0xa3, 0x95, 0xa8, 0xbf, 0x07, 0xdc, 0xdf, 0x77, 0xc4, 0x61, 0x1f, 0x73, + 0x79, 0x80, 0x1f, 0x9f, 0x9f, 0xd4, 0x41, 0x7b, 0x2d, 0x41, 0xd2, 0x72, 0x8c, 0x77, 0x70, 0xd5, + 0xc7, 0x3d, 0x1c, 0x20, 0x81, 0xfd, 0xce, 0xdb, 0x08, 0xe3, 0x72, 0x6e, 0x49, 0xd0, 0x37, 0x52, + 0x9c, 0xa7, 0x11, 0xc6, 0xc6, 0x47, 0xb8, 0x71, 0x01, 0x9c, 0xc8, 0xce, 0x2f, 0x09, 0x7b, 0x3d, + 0x85, 0x4a, 0x74, 0x6f, 0xc1, 0x6b, 0x98, 0xfa, 0x1d, 0x41, 0x42, 0x5c, 0xbe, 0x52, 0x05, 0xb5, + 0x5c, 0xfb, 0x2a, 0xa6, 0xfe, 0x2b, 0x12, 0xe2, 0xe6, 0xdd, 0x4f, 0xdf, 0x2a, 0x99, 0xa3, 0xf3, + 0x93, 0xfa, 0xce, 0xc4, 0xc8, 0x59, 0x0b, 0x58, 0x3f, 0x01, 0x2c, 0xef, 0x31, 0x2a, 0x08, 0x1d, + 0xb0, 0x01, 0x9f, 0xf2, 0x87, 0x0b, 0x37, 0xa5, 0x3f, 0xb4, 0xb2, 0x29, 0x9f, 0xd4, 0xed, 0xf9, + 0xb6, 0xb6, 0x67, 0x61, 0xb4, 0x63, 0x0c, 0x77, 0xd6, 0x83, 0x3b, 0x10, 0x72, 0x81, 0x22, 0xa1, + 0x54, 0x64, 0xa5, 0x8a, 0x15, 0x99, 0x91, 0x3a, 0xee, 0x27, 0x3a, 0x6e, 0x4f, 0xe8, 0x58, 0x44, + 0xd8, 0xfa, 0x0e, 0xe0, 0xcd, 0x27, 0xb8, 0x87, 0x0e, 0xd3, 0x1d, 0x5d, 0xa2, 0x94, 0xe6, 0xbd, + 0x84, 0x6b, 0x75, 0x82, 0xeb, 0x5c, 0x3a, 0xd6, 0x11, 0x80, 0x85, 0x97, 0x38, 0x22, 0xcc, 0x37, + 0x4a, 0xb0, 0xd0, 0xc3, 0x34, 0x10, 0x5d, 0xc9, 0x25, 0xd7, 0xd6, 0x91, 0xd1, 0x85, 0x05, 0x14, + 0x4a, 0x8e, 0xcb, 0xfa, 0x8e, 0xf4, 0x7c, 0xeb, 0x6b, 0x16, 0x96, 0x14, 0x19, 0xe2, 0xfd, 0x77, + 0x0e, 0x30, 0xda, 0x70, 0x2d, 0x41, 0xef, 0x4b, 0x92, 0x5c, 0x7f, 0xdd, 0xe6, 0x22, 0x74, 0xa5, + 0xa5, 0xb5, 0x12, 0x6f, 0x45, 0x29, 0x5d, 0xd5, 0x2d, 0xaa, 0xc2, 0x9b, 0xf5, 0xe4, 0x4d, 0xdd, + 0x9a, 0xd8, 0xcf, 0xfc, 0x15, 0x58, 0xc7, 0x40, 0x6e, 0x27, 0x44, 0x14, 0x53, 0xf1, 0x82, 0x79, + 0xfb, 0xd8, 0xbf, 0x4c, 0x53, 0x2d, 0xa2, 0x3a, 0x87, 0x4f, 0xeb, 0xf9, 0xe9, 0xc8, 0x04, 0xc3, + 0x91, 0x09, 0xfe, 0x8c, 0x4c, 0xf0, 0x79, 0x6c, 0x66, 0x86, 0x63, 0x33, 0xf3, 0x6b, 0x6c, 0x66, + 0xde, 0x34, 0xfe, 0xe9, 0x8c, 0xf7, 0xfa, 0xe2, 0xd0, 0x97, 0x98, 0x34, 0x8a, 0x5b, 0x90, 0x57, + 0xc7, 0xc3, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x44, 0x3b, 0x1e, 0xcd, 0xe3, 0x06, 0x00, 0x00, } func (m *BaseVestingAccount) Marshal() (dAtA []byte, err error) { diff --git a/x/bank/types/authz.pb.go b/x/bank/types/authz.pb.go index 2984aded7207..17131972c91b 100644 --- a/x/bank/types/authz.pb.go +++ b/x/bank/types/authz.pb.go @@ -94,30 +94,29 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/authz.proto", fileDescriptor_a4d2a37888ea779f) } var fileDescriptor_a4d2a37888ea779f = []byte{ - // 365 bytes of a gzipped FileDescriptorProto + // 339 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4f, 0xce, 0x2f, 0xce, 0xcd, 0x2f, 0xd6, 0x4f, 0x4a, 0xcc, 0xcb, 0xd6, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x2c, 0x2d, 0xc9, 0xa8, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x86, 0x28, 0xd0, 0x03, 0x29, 0xd0, 0x83, 0x2a, 0x90, 0x12, 0x4c, 0xcc, 0xcd, 0xcc, 0xcb, 0xd7, 0x07, 0x93, 0x10, 0x75, 0x52, 0x22, 0xe9, 0xf9, 0xe9, 0xf9, 0x60, 0xa6, 0x3e, 0x88, 0x05, 0x15, 0x95, 0x84, 0xe8, 0x8e, 0x87, 0x48, 0x40, 0x8d, 0x82, 0x48, 0xc9, 0xc1, 0x6d, 0x2e, 0x4e, 0x85, 0xdb, 0x9c, 0x9c, - 0x9f, 0x99, 0x07, 0x91, 0x57, 0x5a, 0xc8, 0xc4, 0x25, 0x18, 0x9c, 0x9a, 0x97, 0xe2, 0x58, 0x5a, - 0x92, 0x91, 0x5f, 0x94, 0x59, 0x95, 0x58, 0x92, 0x99, 0x9f, 0x27, 0xd4, 0xc9, 0xc8, 0xc5, 0x5d, - 0x5c, 0x90, 0x9a, 0x97, 0x12, 0x9f, 0x93, 0x99, 0x9b, 0x59, 0x22, 0xc1, 0xa8, 0xc0, 0xac, 0xc1, - 0x6d, 0x24, 0xa9, 0x07, 0x77, 0x65, 0x71, 0x2a, 0xcc, 0x95, 0x7a, 0xce, 0xf9, 0x99, 0x79, 0x4e, - 0xbe, 0x27, 0xee, 0xc9, 0x33, 0xac, 0xba, 0x2f, 0xaf, 0x91, 0x9e, 0x59, 0x92, 0x51, 0x9a, 0xa4, - 0x97, 0x9c, 0x9f, 0x0b, 0x75, 0x07, 0x94, 0xd2, 0x2d, 0x4e, 0xc9, 0xd6, 0x2f, 0xa9, 0x2c, 0x48, - 0x2d, 0x06, 0x6b, 0x28, 0x9e, 0xf5, 0x7c, 0x83, 0x96, 0x70, 0x5e, 0x69, 0x4e, 0x4e, 0x7c, 0x71, - 0x4e, 0x66, 0x72, 0x6a, 0x7c, 0x62, 0x71, 0x7c, 0x6a, 0x6e, 0x41, 0x49, 0xe5, 0x8a, 0xe7, 0x1b, - 0xb4, 0x18, 0x83, 0xb8, 0xc0, 0x96, 0xfb, 0x80, 0xec, 0x16, 0x32, 0xe7, 0xe2, 0x4a, 0xcc, 0xc9, - 0xc9, 0x2f, 0x8f, 0xcf, 0xc9, 0x2c, 0x2e, 0x91, 0x60, 0x52, 0x60, 0xd6, 0xe0, 0x74, 0x92, 0xb8, - 0xb4, 0x45, 0x57, 0x04, 0xea, 0x18, 0xc7, 0x94, 0x94, 0xa2, 0xd4, 0xe2, 0xe2, 0xe0, 0x92, 0xa2, - 0xcc, 0xbc, 0xf4, 0x20, 0x4e, 0xb0, 0x5a, 0x9f, 0xcc, 0xe2, 0x12, 0x2b, 0xf7, 0x53, 0x5b, 0x74, - 0x95, 0xa0, 0x8a, 0x20, 0x61, 0x0d, 0x73, 0x32, 0x8a, 0x67, 0xbb, 0x9e, 0x6f, 0xd0, 0x92, 0x41, - 0x72, 0x24, 0x46, 0x68, 0x38, 0x39, 0x9f, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, - 0x47, 0x72, 0x8c, 0x13, 0x1e, 0xcb, 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, - 0x94, 0x26, 0x5e, 0xef, 0x56, 0x40, 0xe2, 0x1b, 0xec, 0xeb, 0x24, 0x36, 0x70, 0x78, 0x1b, 0x03, - 0x02, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x32, 0xe9, 0x50, 0x0b, 0x02, 0x00, 0x00, + 0x9f, 0x99, 0x07, 0x91, 0x57, 0xea, 0x60, 0xe2, 0x12, 0x0c, 0x4e, 0xcd, 0x4b, 0x71, 0x2c, 0x2d, + 0xc9, 0xc8, 0x2f, 0xca, 0xac, 0x4a, 0x2c, 0xc9, 0xcc, 0xcf, 0x13, 0x2a, 0xe4, 0xe2, 0x2e, 0x2e, + 0x48, 0xcd, 0x4b, 0x89, 0xcf, 0xc9, 0xcc, 0xcd, 0x2c, 0x91, 0x60, 0x54, 0x60, 0xd6, 0xe0, 0x36, + 0x92, 0xd4, 0x83, 0x3b, 0xb2, 0x38, 0x15, 0xe6, 0x48, 0x3d, 0xe7, 0xfc, 0xcc, 0x3c, 0x27, 0xd3, + 0x13, 0xf7, 0xe4, 0x19, 0x56, 0xdd, 0x97, 0xd7, 0x48, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, + 0xce, 0xcf, 0x85, 0x3a, 0x03, 0x4a, 0xe9, 0x16, 0xa7, 0x64, 0xeb, 0x97, 0x54, 0x16, 0xa4, 0x16, + 0x83, 0x35, 0x14, 0xaf, 0x78, 0xbe, 0x41, 0x8b, 0x31, 0x88, 0x0b, 0x6c, 0x89, 0x0f, 0xc8, 0x0e, + 0x21, 0x73, 0x2e, 0xae, 0xc4, 0x9c, 0x9c, 0xfc, 0xf2, 0xf8, 0x9c, 0xcc, 0xe2, 0x12, 0x09, 0x26, + 0x05, 0x66, 0x0d, 0x4e, 0x27, 0x89, 0x4b, 0x5b, 0x74, 0x45, 0xa0, 0x96, 0x3a, 0xa6, 0xa4, 0x14, + 0xa5, 0x16, 0x17, 0x07, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x07, 0x71, 0x82, 0xd5, 0xfa, 0x64, 0x16, + 0x97, 0x58, 0xb9, 0x9f, 0xda, 0xa2, 0xab, 0x04, 0x55, 0x04, 0x09, 0x52, 0x98, 0xd3, 0x50, 0xfc, + 0xd4, 0xf5, 0x7c, 0x83, 0x96, 0x0c, 0x92, 0x63, 0x30, 0x3c, 0xed, 0xe4, 0x7c, 0xe2, 0x91, 0x1c, + 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, + 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0x9a, 0x78, 0xbd, 0x55, 0x01, 0x89, 0x56, 0xb0, 0xef, + 0x92, 0xd8, 0xc0, 0xc1, 0x6a, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x78, 0xc2, 0x7d, 0xd9, 0xf2, + 0x01, 0x00, 0x00, } func (m *SendAuthorization) Marshal() (dAtA []byte, err error) { diff --git a/x/bank/types/bank.pb.go b/x/bank/types/bank.pb.go index 956dd99598f4..e841f04486c9 100644 --- a/x/bank/types/bank.pb.go +++ b/x/bank/types/bank.pb.go @@ -463,50 +463,49 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/bank.proto", fileDescriptor_dd052eee12edf988) } var fileDescriptor_dd052eee12edf988 = []byte{ - // 688 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x54, 0xbf, 0x6f, 0x13, 0x49, - 0x14, 0xf6, 0xd8, 0xf1, 0x8f, 0x8c, 0xef, 0x8a, 0x9b, 0x58, 0x77, 0x93, 0x9c, 0x6e, 0x6d, 0xb9, - 0x38, 0x39, 0x96, 0x62, 0x93, 0xd0, 0xb9, 0x41, 0x38, 0x20, 0x70, 0x11, 0x81, 0x36, 0x8a, 0x90, - 0x68, 0x56, 0x63, 0xef, 0x60, 0x8f, 0xb2, 0x3b, 0xb3, 0xda, 0x99, 0x8d, 0xe2, 0x86, 0x82, 0x0a, - 0xa5, 0xa2, 0xa6, 0x8a, 0xa8, 0x10, 0x95, 0x25, 0xf2, 0x37, 0xa0, 0x88, 0x2a, 0x50, 0x51, 0x05, - 0xe4, 0x14, 0xce, 0x9f, 0x81, 0x76, 0x66, 0xd7, 0x71, 0xa4, 0x40, 0x89, 0x44, 0x63, 0xbf, 0xf7, - 0xbe, 0x6f, 0xdf, 0xfb, 0xde, 0x8f, 0x5d, 0x68, 0x0d, 0x84, 0xf4, 0x85, 0x6c, 0xf7, 0x09, 0xdf, - 0x6f, 0x1f, 0x6c, 0xf6, 0xa9, 0x22, 0x9b, 0xda, 0x69, 0x05, 0xa1, 0x50, 0x02, 0xad, 0x18, 0xbc, - 0xa5, 0x43, 0x09, 0xbe, 0x56, 0x19, 0x8a, 0xa1, 0xd0, 0x78, 0x3b, 0xb6, 0x0c, 0x75, 0x6d, 0xd5, - 0x50, 0x1d, 0x03, 0x24, 0xcf, 0x19, 0xe8, 0xaa, 0x8a, 0xa4, 0xf3, 0x2a, 0x03, 0xc1, 0x78, 0x82, - 0xff, 0x93, 0xe0, 0xbe, 0x1c, 0xb6, 0x0f, 0x36, 0xe3, 0xbf, 0x04, 0xf8, 0x8b, 0xf8, 0x8c, 0x8b, - 0xb6, 0xfe, 0x35, 0xa1, 0xfa, 0x1b, 0x00, 0x0b, 0x8f, 0x49, 0x48, 0x7c, 0x89, 0x1e, 0xc0, 0x3f, - 0x24, 0xe5, 0xae, 0x43, 0x39, 0xe9, 0x7b, 0xd4, 0xc5, 0xa0, 0x96, 0x6b, 0x94, 0xb7, 0x6a, 0xad, - 0x1b, 0x34, 0xb7, 0x76, 0x29, 0x77, 0xef, 0x1b, 0x5e, 0x37, 0x8b, 0x81, 0x5d, 0x96, 0x57, 0x01, - 0x74, 0x0b, 0x56, 0x5c, 0xfa, 0x8c, 0x44, 0x9e, 0x72, 0xae, 0x25, 0xcc, 0xd6, 0x40, 0xa3, 0x64, - 0xa3, 0x04, 0x5b, 0x48, 0xd1, 0xf9, 0xef, 0x68, 0x36, 0x69, 0x62, 0x53, 0x68, 0x43, 0xba, 0xfb, - 0xed, 0x43, 0x33, 0x42, 0xa3, 0xac, 0xbe, 0x0d, 0xcb, 0x0b, 0x6c, 0x54, 0x81, 0x79, 0x97, 0x72, - 0xe1, 0x63, 0x50, 0x03, 0x8d, 0x65, 0xdb, 0x38, 0x08, 0xc3, 0xe2, 0xf5, 0x42, 0xa9, 0xdb, 0x59, - 0xba, 0x3c, 0xae, 0x82, 0xfa, 0x27, 0x00, 0xf3, 0x3d, 0x1e, 0x44, 0x0a, 0x6d, 0xc1, 0x22, 0x71, - 0xdd, 0x90, 0x4a, 0x69, 0x32, 0x74, 0xf1, 0xe7, 0x93, 0x8d, 0x4a, 0xd2, 0xe6, 0x5d, 0x83, 0xec, - 0xaa, 0x90, 0xf1, 0xa1, 0x9d, 0x12, 0xd1, 0x73, 0x98, 0x8f, 0x27, 0x2c, 0x71, 0x56, 0x4f, 0x65, - 0xf5, 0x6a, 0x2a, 0x92, 0xce, 0xa7, 0xb2, 0x2d, 0x18, 0xef, 0xee, 0x9c, 0x9e, 0x57, 0x33, 0xef, - 0xbe, 0x56, 0x1b, 0x43, 0xa6, 0x46, 0x51, 0xbf, 0x35, 0x10, 0x7e, 0xb2, 0xbe, 0xf6, 0x42, 0x83, - 0x6a, 0x1c, 0x50, 0xa9, 0x1f, 0x90, 0xaf, 0x67, 0x93, 0xe6, 0x0a, 0x8f, 0x3c, 0xcf, 0x91, 0x1e, - 0x1b, 0x50, 0x87, 0x48, 0x87, 0xfa, 0x81, 0x1a, 0xbf, 0x9d, 0x4d, 0x9a, 0xc0, 0x36, 0x65, 0x3b, - 0x95, 0x97, 0xc7, 0xd5, 0xcc, 0xe5, 0x71, 0x35, 0xf3, 0x62, 0x36, 0x69, 0xa6, 0xaa, 0xea, 0x1f, - 0x00, 0x2c, 0x3c, 0x8a, 0xd4, 0xef, 0xda, 0x54, 0x29, 0x6d, 0xaa, 0xfe, 0x1e, 0xc0, 0xc2, 0x6e, - 0x14, 0x04, 0xde, 0x38, 0x16, 0xa5, 0x84, 0x22, 0x5e, 0x72, 0x7f, 0xbf, 0x50, 0x94, 0x2e, 0xdb, - 0x59, 0x4f, 0x44, 0x81, 0x8f, 0x27, 0x1b, 0xff, 0xde, 0x78, 0xfb, 0x5a, 0x67, 0x0f, 0x83, 0xfa, - 0x13, 0xb8, 0x7c, 0x2f, 0xbe, 0xbd, 0x3d, 0xce, 0xd4, 0x0f, 0xae, 0x72, 0x0d, 0x96, 0xe8, 0x61, - 0x20, 0x38, 0xe5, 0x4a, 0x9f, 0xe5, 0x9f, 0xf6, 0xdc, 0x8f, 0x2f, 0x96, 0x78, 0x8c, 0x48, 0x2a, - 0x71, 0xae, 0x96, 0x6b, 0x2c, 0xdb, 0xa9, 0x5b, 0x3f, 0xca, 0xc2, 0xd2, 0x0e, 0x55, 0xc4, 0x25, - 0x8a, 0xa0, 0x1a, 0x2c, 0xbb, 0x54, 0x0e, 0x42, 0x16, 0x28, 0x26, 0x78, 0x92, 0x7e, 0x31, 0x84, - 0xee, 0xc4, 0x0c, 0x2e, 0x7c, 0x27, 0xe2, 0x4c, 0xa5, 0xdb, 0xb4, 0x6e, 0x7c, 0x71, 0xe7, 0x7a, - 0x6d, 0xe8, 0xa6, 0xa6, 0x44, 0x08, 0x2e, 0xc5, 0xe3, 0xc5, 0x39, 0x9d, 0x5b, 0xdb, 0xb1, 0x3a, - 0x97, 0xc9, 0xc0, 0x23, 0x63, 0xbc, 0xa4, 0xc3, 0xa9, 0x1b, 0xb3, 0x39, 0xf1, 0x29, 0xce, 0x1b, - 0x76, 0x6c, 0xa3, 0xbf, 0x61, 0x41, 0x8e, 0xfd, 0xbe, 0xf0, 0x70, 0x41, 0x47, 0x13, 0x0f, 0xad, - 0xc2, 0x5c, 0x14, 0x32, 0x5c, 0xd4, 0x27, 0x59, 0x9c, 0x9e, 0x57, 0x73, 0x7b, 0x76, 0xcf, 0x8e, - 0x63, 0xe8, 0x7f, 0x58, 0x8a, 0x42, 0xe6, 0x8c, 0x88, 0x1c, 0xe1, 0x92, 0xc6, 0xcb, 0xd3, 0xf3, - 0x6a, 0x71, 0xcf, 0xee, 0x3d, 0x24, 0x72, 0x64, 0x17, 0xa3, 0x90, 0xc5, 0x46, 0x77, 0xfb, 0x74, - 0x6a, 0x81, 0xb3, 0xa9, 0x05, 0xbe, 0x4d, 0x2d, 0xf0, 0xea, 0xc2, 0xca, 0x9c, 0x5d, 0x58, 0x99, - 0x2f, 0x17, 0x56, 0xe6, 0xe9, 0xfa, 0x4f, 0x17, 0x9f, 0x7c, 0x43, 0xf4, 0xfe, 0xfb, 0x05, 0xfd, - 0xb9, 0xbb, 0xfd, 0x3d, 0x00, 0x00, 0xff, 0xff, 0x85, 0xe4, 0x67, 0xe8, 0xa2, 0x05, 0x00, 0x00, + // 666 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x54, 0xbf, 0x6f, 0x13, 0x31, + 0x14, 0x8e, 0x93, 0xe6, 0x47, 0x1d, 0x18, 0x30, 0x11, 0xb8, 0x45, 0x5c, 0xa2, 0x1b, 0x50, 0x5a, + 0xa9, 0x39, 0x5a, 0xc4, 0x92, 0x05, 0x91, 0x82, 0x20, 0x03, 0x02, 0x5d, 0x55, 0x21, 0xb1, 0x44, + 0x4e, 0xce, 0x4d, 0xac, 0xde, 0xd9, 0xa7, 0xb3, 0xaf, 0x6a, 0x56, 0x26, 0xd4, 0x89, 0x9d, 0xa5, + 0x62, 0x42, 0x0c, 0xa8, 0x43, 0x17, 0xfe, 0x83, 0x8a, 0xa9, 0x62, 0x62, 0x2a, 0x28, 0x1d, 0xda, + 0x3f, 0x03, 0x9d, 0x7d, 0x97, 0xa6, 0x52, 0x61, 0x43, 0x62, 0x49, 0xde, 0x7b, 0xdf, 0xe7, 0xf7, + 0x3d, 0xbf, 0xf7, 0x7c, 0xd0, 0x1a, 0x08, 0x19, 0x08, 0xe9, 0xf4, 0x09, 0xdf, 0x76, 0x76, 0x56, + 0xfb, 0x54, 0x91, 0x55, 0xed, 0xb4, 0xc2, 0x48, 0x28, 0x81, 0x6e, 0x1a, 0xbc, 0xa5, 0x43, 0x29, + 0xbe, 0x58, 0x1b, 0x8a, 0xa1, 0xd0, 0xb8, 0x93, 0x58, 0x86, 0xba, 0xb8, 0x60, 0xa8, 0x3d, 0x03, + 0xa4, 0xe7, 0x0c, 0x74, 0xa1, 0x22, 0xe9, 0x54, 0x65, 0x20, 0x18, 0x4f, 0xf1, 0xdb, 0x29, 0x1e, + 0xc8, 0xa1, 0xb3, 0xb3, 0x9a, 0xfc, 0xa5, 0xc0, 0x0d, 0x12, 0x30, 0x2e, 0x1c, 0xfd, 0x6b, 0x42, + 0xf6, 0x47, 0x00, 0x4b, 0xaf, 0x48, 0x44, 0x02, 0x89, 0x9e, 0xc1, 0x6b, 0x92, 0x72, 0xaf, 0x47, + 0x39, 0xe9, 0xfb, 0xd4, 0xc3, 0xa0, 0x51, 0x68, 0x56, 0xd7, 0x1a, 0xad, 0x2b, 0x6a, 0x6e, 0x6d, + 0x50, 0xee, 0x3d, 0x35, 0xbc, 0x4e, 0x1e, 0x03, 0xb7, 0x2a, 0x2f, 0x02, 0xe8, 0x3e, 0xac, 0x79, + 0x74, 0x8b, 0xc4, 0xbe, 0xea, 0x5d, 0x4a, 0x98, 0x6f, 0x80, 0x66, 0xc5, 0x45, 0x29, 0x36, 0x93, + 0xa2, 0x7d, 0x77, 0xef, 0xec, 0x60, 0x19, 0x1b, 0xa1, 0x15, 0xe9, 0x6d, 0x3b, 0xbb, 0xa6, 0x85, + 0xa6, 0x32, 0x7b, 0x1d, 0x56, 0x67, 0xd8, 0xa8, 0x06, 0x8b, 0x1e, 0xe5, 0x22, 0xc0, 0xa0, 0x01, + 0x9a, 0xf3, 0xae, 0x71, 0x10, 0x86, 0xe5, 0xcb, 0x42, 0x99, 0xdb, 0x9e, 0x3b, 0xdf, 0xaf, 0x03, + 0xfb, 0x2b, 0x80, 0xc5, 0x2e, 0x0f, 0x63, 0x85, 0xd6, 0x60, 0x99, 0x78, 0x5e, 0x44, 0xa5, 0x34, + 0x19, 0x3a, 0xf8, 0xfb, 0xe1, 0x4a, 0x2d, 0xbd, 0xe6, 0x63, 0x83, 0x6c, 0xa8, 0x88, 0xf1, 0xa1, + 0x9b, 0x11, 0xd1, 0x16, 0x2c, 0x26, 0x1d, 0x96, 0x38, 0xaf, 0xbb, 0xb2, 0x70, 0xd1, 0x15, 0x49, + 0xa7, 0x5d, 0x59, 0x17, 0x8c, 0x77, 0x1e, 0x1e, 0x9d, 0xd4, 0x73, 0x9f, 0x7f, 0xd6, 0x9b, 0x43, + 0xa6, 0x46, 0x71, 0xbf, 0x35, 0x10, 0x41, 0x3a, 0x3e, 0x67, 0xe6, 0x82, 0x6a, 0x1c, 0x52, 0xa9, + 0x0f, 0xc8, 0x4f, 0x67, 0x07, 0xcb, 0xc0, 0x35, 0xe9, 0xdb, 0xb5, 0x77, 0xfb, 0xf5, 0xdc, 0xf9, + 0x7e, 0x3d, 0xf7, 0xf6, 0xec, 0x60, 0x39, 0x53, 0xb7, 0xbf, 0x00, 0x58, 0x7a, 0x19, 0xab, 0xff, + 0xbd, 0xf8, 0x4a, 0x56, 0xbc, 0xfd, 0x01, 0xc0, 0xd2, 0x46, 0x1c, 0x86, 0xfe, 0x38, 0x11, 0x57, + 0x42, 0x11, 0x3f, 0xdd, 0xa7, 0x7f, 0x20, 0xae, 0xd3, 0xb7, 0x97, 0x52, 0x71, 0xf0, 0xed, 0x70, + 0xe5, 0xce, 0x95, 0x3b, 0xab, 0xeb, 0xe9, 0x62, 0x60, 0xbf, 0x86, 0xf3, 0x4f, 0x92, 0x9d, 0xd9, + 0xe4, 0x4c, 0xfd, 0x61, 0x9b, 0x16, 0x61, 0x85, 0xee, 0x86, 0x82, 0x53, 0xae, 0xf4, 0x3a, 0x5d, + 0x77, 0xa7, 0x7e, 0xb2, 0x69, 0xc4, 0x67, 0x44, 0x52, 0x89, 0x0b, 0x8d, 0x42, 0x73, 0xde, 0xcd, + 0x5c, 0x7b, 0x2f, 0x0f, 0x2b, 0x2f, 0xa8, 0x22, 0x1e, 0x51, 0x04, 0x35, 0x60, 0xd5, 0xa3, 0x72, + 0x10, 0xb1, 0x50, 0x31, 0xc1, 0xd3, 0xf4, 0xb3, 0x21, 0xf4, 0x28, 0x61, 0x70, 0x11, 0xf4, 0x62, + 0xce, 0x54, 0x36, 0x1d, 0xeb, 0xca, 0x07, 0x37, 0xad, 0xd7, 0x85, 0x5e, 0x66, 0x4a, 0x84, 0xe0, + 0x5c, 0xd2, 0x46, 0x5c, 0xd0, 0xb9, 0xb5, 0x9d, 0x54, 0xe7, 0x31, 0x19, 0xfa, 0x64, 0x8c, 0xe7, + 0x74, 0x38, 0x73, 0x13, 0x36, 0x27, 0x01, 0xc5, 0x45, 0xc3, 0x4e, 0x6c, 0x74, 0x0b, 0x96, 0xe4, + 0x38, 0xe8, 0x0b, 0x1f, 0x97, 0x74, 0x34, 0xf5, 0xd0, 0x02, 0x2c, 0xc4, 0x11, 0xc3, 0x65, 0xbd, + 0x62, 0xe5, 0xc9, 0x49, 0xbd, 0xb0, 0xe9, 0x76, 0xdd, 0x24, 0x86, 0xee, 0xc1, 0x4a, 0x1c, 0xb1, + 0xde, 0x88, 0xc8, 0x11, 0xae, 0x68, 0xbc, 0x3a, 0x39, 0xa9, 0x97, 0x37, 0xdd, 0xee, 0x73, 0x22, + 0x47, 0x6e, 0x39, 0x8e, 0x58, 0x62, 0x74, 0xd6, 0x8f, 0x26, 0x16, 0x38, 0x9e, 0x58, 0xe0, 0xd7, + 0xc4, 0x02, 0xef, 0x4f, 0xad, 0xdc, 0xf1, 0xa9, 0x95, 0xfb, 0x71, 0x6a, 0xe5, 0xde, 0x2c, 0xfd, + 0x75, 0xc0, 0xe9, 0xdb, 0xd7, 0x73, 0xee, 0x97, 0xf4, 0x67, 0xea, 0xc1, 0xef, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x8f, 0xcf, 0x82, 0xbe, 0x5a, 0x05, 0x00, 0x00, } func (this *SendEnabled) Equal(that interface{}) bool { diff --git a/x/bank/types/genesis.pb.go b/x/bank/types/genesis.pb.go index 1cbe1661f781..af5383cc7606 100644 --- a/x/bank/types/genesis.pb.go +++ b/x/bank/types/genesis.pb.go @@ -162,37 +162,35 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/genesis.proto", fileDescriptor_8f007de11b420c6e) } var fileDescriptor_8f007de11b420c6e = []byte{ - // 469 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x93, 0xb1, 0x6f, 0xd3, 0x40, - 0x14, 0xc6, 0x6d, 0x42, 0xd3, 0xf6, 0x52, 0x90, 0xb8, 0x76, 0x70, 0x0b, 0x38, 0xa1, 0x53, 0xa8, - 0x54, 0x5b, 0x0d, 0x1b, 0x03, 0x12, 0x8e, 0x10, 0x53, 0x01, 0x35, 0x1b, 0x8b, 0x75, 0xf6, 0x3d, - 0x19, 0xab, 0xf6, 0x9d, 0x95, 0x77, 0x41, 0x64, 0x41, 0x8c, 0x8c, 0xcc, 0x4c, 0x1d, 0x11, 0x53, - 0x07, 0x24, 0xfe, 0x04, 0x3a, 0x56, 0x4c, 0x4c, 0x80, 0x92, 0xa1, 0xfc, 0x19, 0x28, 0x77, 0x97, - 0x34, 0x12, 0x16, 0x63, 0x17, 0xdb, 0xba, 0xef, 0x7b, 0xbf, 0xef, 0xbd, 0xbb, 0x33, 0xb9, 0x97, - 0x4a, 0x2c, 0x25, 0x86, 0x09, 0x13, 0xc7, 0xe1, 0xeb, 0x83, 0x04, 0x14, 0x3b, 0x08, 0x33, 0x10, - 0x80, 0x39, 0x06, 0xd5, 0x50, 0x2a, 0x49, 0x37, 0x8d, 0x25, 0x98, 0x59, 0x02, 0x6b, 0xd9, 0xd9, - 0xca, 0x64, 0x26, 0xb5, 0x1e, 0xce, 0xbe, 0x8c, 0x75, 0xc7, 0x5f, 0xd0, 0x10, 0x16, 0xb4, 0x54, - 0xe6, 0xe2, 0x1f, 0x7d, 0x29, 0x4d, 0x73, 0x8d, 0xbe, 0x6d, 0xf4, 0xd8, 0x80, 0x6d, 0xae, 0x91, - 0x6e, 0xb1, 0x32, 0x17, 0x32, 0xd4, 0x4f, 0xb3, 0xb4, 0xfb, 0xb5, 0x41, 0x36, 0x9e, 0x9a, 0x56, - 0x07, 0x8a, 0x29, 0xa0, 0x8f, 0x48, 0xb3, 0x62, 0x43, 0x56, 0xa2, 0xe7, 0x76, 0xdc, 0x6e, 0xab, - 0x77, 0x3b, 0xa8, 0x69, 0x3d, 0x78, 0xa1, 0x2d, 0xd1, 0xfa, 0xd9, 0xcf, 0xb6, 0xf3, 0xe9, 0xe2, - 0x74, 0xcf, 0x3d, 0xb2, 0x55, 0xb4, 0x4f, 0xd6, 0x12, 0x56, 0x30, 0x91, 0x02, 0x7a, 0xd7, 0x3a, - 0x8d, 0x6e, 0xab, 0x77, 0xa7, 0x96, 0x10, 0x19, 0xd3, 0x32, 0x62, 0x51, 0x48, 0xdf, 0xb9, 0xa4, - 0x89, 0xa3, 0xaa, 0x2a, 0xc6, 0x5e, 0x43, 0x33, 0xb6, 0x2f, 0x19, 0x08, 0x0b, 0x46, 0x5f, 0xe6, - 0x22, 0x3a, 0x9c, 0x01, 0x3e, 0xff, 0x6a, 0x77, 0xb3, 0x5c, 0xbd, 0x1a, 0x25, 0x41, 0x2a, 0x4b, - 0x3b, 0xb5, 0x7d, 0xed, 0x23, 0x3f, 0x0e, 0xd5, 0xb8, 0x02, 0xd4, 0x05, 0xf8, 0xf1, 0xe2, 0x74, - 0x6f, 0x53, 0x8c, 0x8a, 0x22, 0xc6, 0x22, 0x4f, 0x21, 0x66, 0x18, 0x43, 0x59, 0xa9, 0xb1, 0x9d, - 0xc3, 0xe4, 0xd2, 0xe7, 0xe4, 0x26, 0x07, 0x21, 0xcb, 0xb8, 0x04, 0xc5, 0x38, 0x53, 0xcc, 0xbb, - 0xae, 0x3b, 0xb9, 0x5b, 0x3b, 0xcd, 0xa1, 0x35, 0x2d, 0x8f, 0x73, 0x43, 0xd7, 0xcf, 0x15, 0xfa, - 0x8c, 0x6c, 0x20, 0x08, 0x1e, 0x83, 0x60, 0x49, 0x01, 0xdc, 0x5b, 0xd1, 0xb8, 0x4e, 0x2d, 0x6e, - 0x00, 0x82, 0x3f, 0x31, 0xbe, 0x65, 0x62, 0x0b, 0x2f, 0xd7, 0x77, 0xbf, 0xb9, 0x64, 0xd5, 0x6e, - 0x22, 0xed, 0x91, 0x55, 0xc6, 0xf9, 0x10, 0xd0, 0x9c, 0xda, 0x7a, 0xe4, 0x7d, 0xff, 0xb2, 0xbf, - 0x65, 0xc9, 0x8f, 0x8d, 0x32, 0x50, 0xc3, 0x5c, 0x64, 0x47, 0x73, 0x23, 0x7d, 0x4b, 0x56, 0x66, - 0xb7, 0x6a, 0x7e, 0x4a, 0x57, 0xb7, 0xc3, 0x26, 0xf6, 0xe1, 0xda, 0xfb, 0x93, 0xb6, 0xf3, 0xe7, - 0xa4, 0xed, 0x44, 0xfd, 0xb3, 0x89, 0xef, 0x9e, 0x4f, 0x7c, 0xf7, 0xf7, 0xc4, 0x77, 0x3f, 0x4c, - 0x7d, 0xe7, 0x7c, 0xea, 0x3b, 0x3f, 0xa6, 0xbe, 0xf3, 0xf2, 0xfe, 0x7f, 0x13, 0xdf, 0x98, 0x7f, - 0x40, 0x07, 0x27, 0x4d, 0x7d, 0x9f, 0x1f, 0xfc, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x75, 0xe4, - 0x92, 0x8d, 0x03, 0x00, 0x00, + // 445 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x92, 0xbd, 0xae, 0xd3, 0x30, + 0x1c, 0xc5, 0x13, 0xca, 0xed, 0xbd, 0xd7, 0xbd, 0x20, 0x61, 0x3a, 0xa4, 0x05, 0x92, 0xd2, 0xa9, + 0x20, 0x35, 0x51, 0x8b, 0x58, 0x18, 0x90, 0x48, 0x85, 0x98, 0xf8, 0x50, 0xbb, 0xb1, 0x54, 0x4e, + 0x6c, 0xd2, 0xa8, 0x8d, 0x1d, 0xc5, 0x2e, 0xa2, 0x6f, 0xc0, 0xc8, 0x13, 0xa0, 0x8e, 0x88, 0x05, + 0x06, 0x1e, 0xa2, 0x63, 0xc5, 0xc4, 0x04, 0xa8, 0x1d, 0xe0, 0x31, 0x50, 0x6c, 0x37, 0x8d, 0x44, + 0xc4, 0xc4, 0x92, 0x44, 0x3e, 0xe7, 0xfc, 0xfe, 0x27, 0xb6, 0xc1, 0xed, 0x90, 0xf1, 0x84, 0x71, + 0x2f, 0x40, 0x74, 0xee, 0xbd, 0x1e, 0x04, 0x44, 0xa0, 0x81, 0x17, 0x11, 0x4a, 0x78, 0xcc, 0xdd, + 0x34, 0x63, 0x82, 0xc1, 0xeb, 0xca, 0xe2, 0xe6, 0x16, 0x57, 0x5b, 0xda, 0xcd, 0x88, 0x45, 0x4c, + 0xea, 0x5e, 0xfe, 0xa5, 0xac, 0x6d, 0xbb, 0xa0, 0x71, 0x52, 0xd0, 0x42, 0x16, 0xd3, 0xbf, 0xf4, + 0xd2, 0x34, 0xc9, 0x55, 0x7a, 0x4b, 0xe9, 0x53, 0x05, 0xd6, 0x73, 0x95, 0x74, 0x0d, 0x25, 0x31, + 0x65, 0x9e, 0x7c, 0xaa, 0xa5, 0xee, 0xfb, 0x1a, 0xb8, 0x78, 0xa2, 0xaa, 0x4e, 0x04, 0x12, 0x04, + 0x3e, 0x04, 0xf5, 0x14, 0x65, 0x28, 0xe1, 0x96, 0xd9, 0x31, 0x7b, 0x8d, 0xe1, 0x0d, 0xb7, 0xa2, + 0xba, 0xfb, 0x42, 0x5a, 0xfc, 0xf3, 0xcd, 0x77, 0xc7, 0xf8, 0xf0, 0xeb, 0xf3, 0x5d, 0x73, 0xac, + 0x53, 0x70, 0x04, 0xce, 0x02, 0xb4, 0x40, 0x34, 0x24, 0xdc, 0xba, 0xd4, 0xa9, 0xf5, 0x1a, 0xc3, + 0x9b, 0x95, 0x04, 0x5f, 0x99, 0xca, 0x88, 0x22, 0x08, 0x67, 0xa0, 0xce, 0x97, 0x69, 0xba, 0x58, + 0x59, 0x35, 0x89, 0x68, 0x1d, 0x11, 0x9c, 0x14, 0x88, 0x11, 0x8b, 0xa9, 0x7f, 0x3f, 0xcf, 0x7f, + 0xfc, 0xe1, 0xf4, 0xa2, 0x58, 0xcc, 0x96, 0x81, 0x1b, 0xb2, 0x44, 0xff, 0xb4, 0x7e, 0xf5, 0x39, + 0x9e, 0x7b, 0x62, 0x95, 0x12, 0x2e, 0x03, 0x5c, 0xd7, 0x55, 0x7c, 0xf8, 0x1c, 0x5c, 0xc5, 0x84, + 0xb2, 0x64, 0x9a, 0x10, 0x81, 0x30, 0x12, 0xc8, 0xba, 0x2c, 0x27, 0xde, 0xaa, 0x2c, 0xfd, 0x54, + 0x9b, 0xca, 0xad, 0xaf, 0xc8, 0xfc, 0x41, 0x81, 0xcf, 0xc0, 0x05, 0x27, 0x14, 0x4f, 0x09, 0x45, + 0xc1, 0x82, 0x60, 0xeb, 0x44, 0xe2, 0x3a, 0x95, 0xb8, 0x09, 0xa1, 0xf8, 0xb1, 0xf2, 0x95, 0x89, + 0x0d, 0x7e, 0x5c, 0xef, 0x7e, 0x32, 0xc1, 0xa9, 0xde, 0x2b, 0x38, 0x04, 0xa7, 0x08, 0xe3, 0x8c, + 0x70, 0x75, 0x38, 0xe7, 0xbe, 0xf5, 0xf5, 0x4b, 0xbf, 0xa9, 0xc9, 0x8f, 0x94, 0x32, 0x11, 0x59, + 0x4c, 0xa3, 0xf1, 0xc1, 0x08, 0x5f, 0x81, 0x93, 0xfc, 0xf2, 0x1c, 0x0e, 0xe3, 0xff, 0xef, 0xa4, + 0xc2, 0x3f, 0x38, 0x7b, 0xbb, 0x76, 0x8c, 0xdf, 0x6b, 0xc7, 0xf0, 0x47, 0x9b, 0x9d, 0x6d, 0x6e, + 0x77, 0xb6, 0xf9, 0x73, 0x67, 0x9b, 0xef, 0xf6, 0xb6, 0xb1, 0xdd, 0xdb, 0xc6, 0xb7, 0xbd, 0x6d, + 0xbc, 0xbc, 0xf3, 0x4f, 0xf2, 0x1b, 0x75, 0xa5, 0xe5, 0x80, 0xa0, 0x2e, 0xaf, 0xe7, 0xbd, 0x3f, + 0x01, 0x00, 0x00, 0xff, 0xff, 0x5d, 0x88, 0xa3, 0x71, 0x5c, 0x03, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { diff --git a/x/bank/types/query.pb.go b/x/bank/types/query.pb.go index 1c681006177b..beaa0ab624ab 100644 --- a/x/bank/types/query.pb.go +++ b/x/bank/types/query.pb.go @@ -1202,85 +1202,83 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/query.proto", fileDescriptor_9c6fc1939682df13) } var fileDescriptor_9c6fc1939682df13 = []byte{ - // 1236 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcf, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0xb4, 0xaa, 0x93, 0x3c, 0xa7, 0x95, 0x3a, 0x09, 0x34, 0xd9, 0x10, 0x3b, 0x6c, 0xaa, - 0xc6, 0x09, 0xc9, 0x6e, 0xe3, 0x20, 0x44, 0xab, 0x12, 0xa9, 0x4e, 0x69, 0x0f, 0xa8, 0x6a, 0x71, - 0xe8, 0x05, 0x0e, 0xd6, 0xda, 0x3b, 0x18, 0x2b, 0xeb, 0x5d, 0xd7, 0xb3, 0x6e, 0xb1, 0xaa, 0x4a, - 0x15, 0x02, 0xa9, 0x47, 0x24, 0x7a, 0xaa, 0x84, 0x14, 0x21, 0x01, 0x15, 0x48, 0xa8, 0x42, 0x1c, - 0x39, 0x72, 0xe8, 0xb1, 0x82, 0x03, 0x9c, 0x00, 0x25, 0x88, 0x22, 0x4e, 0xfc, 0x09, 0xc8, 0xf3, - 0xc3, 0xbb, 0x6b, 0x8f, 0x37, 0x4e, 0x6a, 0x10, 0xe2, 0xd2, 0xda, 0x33, 0xef, 0xcd, 0xfb, 0xde, - 0xf7, 0xde, 0xcc, 0xfb, 0x1c, 0xc8, 0x94, 0x3d, 0x5a, 0xf3, 0xa8, 0x59, 0xb2, 0xdc, 0x2d, 0xf3, - 0xc6, 0x6a, 0x89, 0xf8, 0xd6, 0xaa, 0x79, 0xbd, 0x49, 0x1a, 0x2d, 0xa3, 0xde, 0xf0, 0x7c, 0x0f, - 0x4f, 0x70, 0x03, 0xa3, 0x6d, 0x60, 0x08, 0x03, 0x6d, 0xa9, 0xe3, 0x45, 0x09, 0xb7, 0xee, 0xf8, - 0xd6, 0xad, 0x4a, 0xd5, 0xb5, 0xfc, 0xaa, 0xe7, 0xf2, 0x03, 0xb4, 0xc9, 0x8a, 0x57, 0xf1, 0xd8, - 0x47, 0xb3, 0xfd, 0x49, 0xac, 0x3e, 0x57, 0xf1, 0xbc, 0x8a, 0x43, 0x4c, 0xab, 0x5e, 0x35, 0x2d, - 0xd7, 0xf5, 0x7c, 0xe6, 0x42, 0xc5, 0x6e, 0x3a, 0x7c, 0xbe, 0x3c, 0xb9, 0xec, 0x55, 0xdd, 0x9e, - 0xfd, 0x10, 0x6a, 0x86, 0x90, 0xef, 0x4f, 0xf3, 0xfd, 0x22, 0x0f, 0x2b, 0x32, 0xe0, 0x5b, 0x33, - 0xc2, 0x55, 0xa2, 0x0e, 0x27, 0xab, 0x1d, 0xb7, 0x6a, 0x55, 0xd7, 0x33, 0xd9, 0xbf, 0x7c, 0x49, - 0xaf, 0xc2, 0xc4, 0xeb, 0x6d, 0x8b, 0xbc, 0xe5, 0x58, 0x6e, 0x99, 0x14, 0xc8, 0xf5, 0x26, 0xa1, - 0x3e, 0xce, 0xc1, 0x88, 0x65, 0xdb, 0x0d, 0x42, 0xe9, 0x14, 0x9a, 0x43, 0xd9, 0xb1, 0xfc, 0xd4, - 0xf7, 0xdf, 0xac, 0x4c, 0x8a, 0x48, 0xe7, 0xf9, 0xce, 0xa6, 0xdf, 0xa8, 0xba, 0x95, 0x82, 0x34, - 0xc4, 0x93, 0x70, 0xc4, 0x26, 0xae, 0x57, 0x9b, 0x3a, 0xd4, 0xf6, 0x28, 0xf0, 0x2f, 0x67, 0x47, - 0xef, 0x6e, 0x67, 0x12, 0x7f, 0x6c, 0x67, 0x12, 0xfa, 0x6b, 0x30, 0x19, 0x0d, 0x45, 0xeb, 0x9e, - 0x4b, 0x09, 0x5e, 0x83, 0x91, 0x12, 0x5f, 0x62, 0xb1, 0x52, 0xb9, 0x69, 0xa3, 0x53, 0x14, 0x4a, - 0x64, 0x51, 0x8c, 0x0d, 0xaf, 0xea, 0x16, 0xa4, 0xa5, 0xfe, 0x1d, 0x82, 0x13, 0xec, 0xb4, 0xf3, - 0x8e, 0x23, 0x0e, 0xa4, 0x4f, 0x03, 0xfe, 0x22, 0x40, 0x50, 0x5a, 0x96, 0x41, 0x2a, 0x77, 0x2a, - 0x82, 0x83, 0x13, 0x29, 0xd1, 0x5c, 0xb5, 0x2a, 0x92, 0xac, 0x42, 0xc8, 0x13, 0xcf, 0xc3, 0xd1, - 0x06, 0xa1, 0x9e, 0x73, 0x83, 0x14, 0x39, 0x19, 0x87, 0xe7, 0x50, 0x76, 0xb4, 0x30, 0x2e, 0x16, - 0x2f, 0x74, 0x71, 0xf2, 0x27, 0x82, 0xa9, 0xde, 0x34, 0x04, 0x31, 0xef, 0x23, 0x18, 0x15, 0xf9, - 0xb6, 0x33, 0x39, 0x1c, 0x4b, 0x4d, 0xfe, 0xf2, 0xa3, 0x9f, 0x33, 0x89, 0x2f, 0x7e, 0xc9, 0x64, - 0x2b, 0x55, 0xff, 0x9d, 0x66, 0xc9, 0x28, 0x7b, 0x35, 0xd1, 0x1a, 0xe2, 0xbf, 0x15, 0x6a, 0x6f, - 0x99, 0x7e, 0xab, 0x4e, 0x28, 0x73, 0xa0, 0xf7, 0x9f, 0x3c, 0x5c, 0x9a, 0x70, 0x9b, 0x8e, 0x53, - 0xa4, 0x4e, 0xb5, 0x4c, 0x8a, 0x16, 0x2d, 0x92, 0x5a, 0xdd, 0x6f, 0x3d, 0x78, 0xf2, 0x70, 0x09, - 0x15, 0x3a, 0x91, 0xf1, 0x25, 0x05, 0x35, 0x0b, 0x7b, 0x52, 0xc3, 0x73, 0x08, 0x73, 0xa3, 0x7f, - 0x8a, 0x60, 0x96, 0x25, 0xbb, 0x59, 0x27, 0xae, 0x6d, 0x95, 0x1c, 0xf2, 0x1f, 0xaa, 0x5c, 0xa8, - 0x28, 0x7f, 0x21, 0x48, 0xf7, 0xc3, 0xf9, 0x3f, 0x2d, 0x4d, 0x0b, 0xe6, 0x95, 0x19, 0xe7, 0x5b, - 0xac, 0x63, 0xff, 0xc9, 0x67, 0xe1, 0x2d, 0x38, 0x19, 0x1f, 0xfa, 0x69, 0x9e, 0x89, 0x2d, 0xf1, - 0x4a, 0xbc, 0xe1, 0xf9, 0x96, 0xb3, 0xd9, 0xac, 0xd7, 0x9d, 0x96, 0xcc, 0x25, 0xda, 0x37, 0x68, - 0x08, 0x7d, 0xf3, 0xbb, 0xbc, 0xcc, 0x91, 0x68, 0x02, 0xfe, 0x1d, 0x04, 0x49, 0xca, 0x96, 0xfe, - 0xf5, 0x7e, 0x11, 0x71, 0x87, 0xd7, 0x2d, 0xcb, 0xe2, 0x25, 0xe7, 0x29, 0x5e, 0x79, 0x5b, 0x52, - 0xda, 0x29, 0x35, 0x0a, 0x95, 0x5a, 0xbf, 0x06, 0xcf, 0x74, 0x59, 0x0b, 0x4a, 0xce, 0x41, 0xd2, - 0xaa, 0x79, 0x4d, 0xd7, 0xdf, 0xb3, 0xa0, 0xf9, 0xb1, 0x36, 0x23, 0x22, 0x1b, 0xee, 0xa3, 0x4f, - 0x02, 0x66, 0xc7, 0x5e, 0xb5, 0x1a, 0x56, 0x4d, 0xbe, 0x20, 0xfa, 0x35, 0x31, 0xcf, 0xe4, 0xaa, - 0x08, 0xb5, 0x0e, 0xc9, 0x3a, 0x5b, 0x11, 0xa1, 0x66, 0x0c, 0xc5, 0xdc, 0x37, 0xb8, 0x53, 0x24, - 0x18, 0xf7, 0xd2, 0x6d, 0xd0, 0xd8, 0xb1, 0xac, 0x25, 0xe9, 0x65, 0xe2, 0x5b, 0xb6, 0xe5, 0x5b, - 0x43, 0x6e, 0x25, 0xfd, 0x2b, 0x04, 0x33, 0xca, 0x30, 0x22, 0x8b, 0x8b, 0x30, 0x56, 0x13, 0x6b, - 0xf2, 0xd5, 0x99, 0x55, 0x26, 0x22, 0x3d, 0xc3, 0xa9, 0x04, 0xae, 0xc3, 0x6b, 0x84, 0x55, 0x98, - 0x0e, 0xf0, 0x76, 0xb3, 0xa2, 0xee, 0x86, 0x52, 0x98, 0xc9, 0x9e, 0x0c, 0x2f, 0xc0, 0xa8, 0x84, - 0x29, 0x78, 0x1c, 0x3c, 0xc1, 0x8e, 0xa7, 0x7e, 0x53, 0xdc, 0x7a, 0x16, 0xe3, 0xca, 0x4d, 0x97, - 0x34, 0x68, 0x2c, 0xa8, 0x61, 0xcd, 0x10, 0xfd, 0x0e, 0x02, 0x08, 0x82, 0x1e, 0xe8, 0xb9, 0x5c, - 0x0f, 0x9e, 0xb9, 0x43, 0xfb, 0xb8, 0x15, 0x9d, 0x17, 0xef, 0x73, 0xf9, 0x08, 0x45, 0x92, 0x17, - 0xf4, 0xe6, 0x61, 0x9c, 0x25, 0x5c, 0xf4, 0xd8, 0xba, 0xe8, 0xa1, 0x8c, 0x92, 0xe2, 0xc0, 0xbf, - 0x90, 0xb2, 0x83, 0xb3, 0x86, 0x39, 0x73, 0x78, 0x95, 0x36, 0x89, 0x6b, 0xbf, 0xea, 0xb6, 0x5f, - 0x7e, 0x5b, 0x56, 0xe9, 0x59, 0x48, 0xb2, 0x90, 0x1c, 0xe1, 0x58, 0x41, 0x7c, 0xeb, 0xaa, 0x53, - 0xf9, 0xc0, 0x75, 0x7a, 0x20, 0x49, 0x8a, 0xc4, 0x16, 0x24, 0x6d, 0xc0, 0x38, 0x25, 0xae, 0x5d, - 0x24, 0x7c, 0x5d, 0x90, 0x34, 0xa7, 0x24, 0x29, 0xec, 0x9f, 0xa2, 0xc1, 0x97, 0x2e, 0x96, 0xca, - 0x07, 0x66, 0x29, 0xf7, 0xf5, 0x31, 0x38, 0xc2, 0xa0, 0xe2, 0x8f, 0x11, 0x8c, 0x88, 0xd9, 0x88, - 0xb3, 0x4a, 0x34, 0x0a, 0x25, 0xaf, 0x2d, 0x0e, 0x60, 0xc9, 0xc3, 0xea, 0xaf, 0xdc, 0x6d, 0xb7, - 0xd2, 0x7b, 0x3f, 0xfc, 0xf6, 0xd1, 0xa1, 0x1c, 0x3e, 0x6d, 0xaa, 0x7f, 0x84, 0x70, 0xe5, 0x61, - 0xde, 0x12, 0xfd, 0x7a, 0xdb, 0x2c, 0xb5, 0xb8, 0xd2, 0xc5, 0xdb, 0x08, 0x52, 0x21, 0x19, 0x8b, - 0x97, 0xfb, 0x47, 0xee, 0x15, 0xed, 0xda, 0xca, 0x80, 0xd6, 0x02, 0xeb, 0x8b, 0x01, 0xd6, 0x45, - 0xbc, 0x30, 0x20, 0x56, 0xfc, 0x2d, 0x82, 0xe3, 0x3d, 0xa2, 0x0e, 0xe7, 0xfa, 0x87, 0xee, 0xa7, - 0x54, 0xb5, 0xb5, 0x7d, 0xf9, 0x08, 0xd0, 0xeb, 0x01, 0xe8, 0x35, 0xbc, 0xaa, 0x04, 0x4d, 0xa5, - 0x73, 0x51, 0x01, 0xff, 0x47, 0x04, 0x27, 0xfa, 0xc8, 0x24, 0xfc, 0xf2, 0xe0, 0x80, 0xa2, 0xa2, - 0x4e, 0x3b, 0x73, 0x00, 0x4f, 0x91, 0xd0, 0xa5, 0x20, 0xa1, 0x73, 0xf8, 0xec, 0xbe, 0x13, 0x0a, - 0x7a, 0xe7, 0x1e, 0x82, 0x54, 0x48, 0x35, 0xc5, 0xf5, 0x4e, 0xaf, 0x94, 0x8b, 0xeb, 0x1d, 0x85, - 0x14, 0xd3, 0xb3, 0x01, 0xea, 0x59, 0x3c, 0xa3, 0x46, 0xcd, 0x61, 0xdc, 0x43, 0x30, 0x2a, 0x65, - 0x0b, 0x8e, 0xb9, 0x49, 0x5d, 0x42, 0x48, 0x5b, 0x1a, 0xc4, 0x54, 0xa0, 0x59, 0x0d, 0xd0, 0x9c, - 0xc2, 0x27, 0x63, 0xd0, 0x04, 0x6c, 0x7d, 0x80, 0x20, 0xc9, 0xb5, 0x0a, 0x5e, 0xe8, 0x1f, 0x29, - 0x22, 0x8c, 0xb4, 0xec, 0xde, 0x86, 0x83, 0xd3, 0xc3, 0x55, 0x11, 0xfe, 0x12, 0xc1, 0xd1, 0xc8, - 0x1c, 0xc7, 0x46, 0xff, 0x28, 0x2a, 0x8d, 0xa0, 0x99, 0x03, 0xdb, 0x0b, 0x70, 0x67, 0x02, 0x70, - 0x06, 0x5e, 0x56, 0x82, 0xe3, 0xb3, 0xa2, 0x28, 0xd5, 0x80, 0x79, 0x8b, 0x2d, 0xdc, 0xc6, 0x9f, - 0x21, 0x38, 0x16, 0x15, 0x56, 0x78, 0xaf, 0xf0, 0xdd, 0x4a, 0x4f, 0x3b, 0x3d, 0xb8, 0xc3, 0xe0, - 0xe5, 0xed, 0x02, 0x8c, 0x3f, 0x41, 0x90, 0x0a, 0x4d, 0xef, 0xb8, 0xcb, 0xd0, 0xab, 0x70, 0xe2, - 0x2e, 0x83, 0x42, 0x12, 0xe8, 0x2f, 0x05, 0xf8, 0x5e, 0xc0, 0x8b, 0xfd, 0xf1, 0x09, 0xc9, 0xd0, - 0x61, 0xf3, 0x3e, 0x82, 0x54, 0x68, 0xfa, 0xc5, 0x81, 0xec, 0x1d, 0xf0, 0x71, 0x20, 0x15, 0x23, - 0x59, 0x37, 0x02, 0x90, 0xf3, 0xf8, 0x79, 0xf5, 0x1d, 0x09, 0x8d, 0xec, 0xfc, 0xc6, 0xa3, 0x9d, - 0x34, 0x7a, 0xbc, 0x93, 0x46, 0xbf, 0xee, 0xa4, 0xd1, 0x87, 0xbb, 0xe9, 0xc4, 0xe3, 0xdd, 0x74, - 0xe2, 0xa7, 0xdd, 0x74, 0xe2, 0xcd, 0xc5, 0xd8, 0x9f, 0x54, 0xef, 0xf2, 0x33, 0xd9, 0x2f, 0xab, - 0x52, 0x92, 0xfd, 0x85, 0x6c, 0xed, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd3, 0xf0, 0xdb, 0xcc, - 0x44, 0x14, 0x00, 0x00, + // 1211 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0xf6, 0xa4, 0xaa, 0x93, 0x3c, 0xa7, 0x95, 0x3a, 0x0d, 0x34, 0xd9, 0x10, 0x3b, 0x6c, 0xaa, + 0xc6, 0x09, 0xc9, 0x6e, 0xe3, 0x00, 0xa2, 0x55, 0x89, 0x54, 0xa7, 0xb4, 0x07, 0x84, 0x5a, 0x1c, + 0x7a, 0x81, 0x83, 0xb5, 0xf6, 0x0e, 0xae, 0x15, 0x7b, 0xc7, 0xf5, 0x6c, 0x5a, 0xac, 0xaa, 0x12, + 0x42, 0x42, 0xea, 0x11, 0x89, 0x9e, 0x90, 0x90, 0x22, 0x24, 0xa0, 0x02, 0x09, 0x21, 0xc4, 0x91, + 0x23, 0x87, 0x5e, 0x90, 0x0a, 0x1c, 0xca, 0x09, 0x50, 0x82, 0x04, 0x7f, 0x06, 0xf2, 0xfc, 0xf0, + 0xee, 0xda, 0xe3, 0x8d, 0x93, 0xba, 0x12, 0x5c, 0x5a, 0x7b, 0xe6, 0xbd, 0x79, 0xdf, 0xfb, 0xde, + 0x9b, 0x79, 0x9f, 0x03, 0x99, 0x32, 0x65, 0x75, 0xca, 0xec, 0x92, 0xe3, 0x6d, 0xd9, 0xb7, 0x56, + 0x4b, 0xc4, 0x77, 0x56, 0xed, 0x9b, 0xdb, 0xa4, 0xd9, 0xb2, 0x1a, 0x4d, 0xea, 0x53, 0x7c, 0x52, + 0x18, 0x58, 0x6d, 0x03, 0x4b, 0x1a, 0x18, 0x4b, 0x1d, 0x2f, 0x46, 0x84, 0x75, 0xc7, 0xb7, 0xe1, + 0x54, 0xaa, 0x9e, 0xe3, 0x57, 0xa9, 0x27, 0x0e, 0x30, 0x26, 0x2b, 0xb4, 0x42, 0xf9, 0x47, 0xbb, + 0xfd, 0x49, 0xae, 0x3e, 0x57, 0xa1, 0xb4, 0x52, 0x23, 0xb6, 0xd3, 0xa8, 0xda, 0x8e, 0xe7, 0x51, + 0x9f, 0xbb, 0x30, 0xb9, 0x9b, 0x0e, 0x9f, 0xaf, 0x4e, 0x2e, 0xd3, 0xaa, 0xd7, 0xb3, 0x1f, 0x42, + 0xcd, 0x11, 0x8a, 0xfd, 0x69, 0xb1, 0x5f, 0x14, 0x61, 0x65, 0x06, 0x62, 0x6b, 0x46, 0xba, 0x2a, + 0xd4, 0xe1, 0x64, 0x8d, 0x13, 0x4e, 0xbd, 0xea, 0x51, 0x9b, 0xff, 0x2b, 0x96, 0xcc, 0x2a, 0x9c, + 0x7c, 0xb3, 0x6d, 0x91, 0x77, 0x6a, 0x8e, 0x57, 0x26, 0x05, 0x72, 0x73, 0x9b, 0x30, 0x1f, 0xe7, + 0x60, 0xd4, 0x71, 0xdd, 0x26, 0x61, 0x6c, 0x0a, 0xcd, 0xa1, 0xec, 0x78, 0x7e, 0xea, 0x97, 0xef, + 0x57, 0x26, 0x65, 0xa4, 0x8b, 0x62, 0x67, 0xd3, 0x6f, 0x56, 0xbd, 0x4a, 0x41, 0x19, 0xe2, 0x49, + 0x38, 0xea, 0x12, 0x8f, 0xd6, 0xa7, 0x46, 0xda, 0x1e, 0x05, 0xf1, 0xe5, 0xfc, 0xd8, 0xbd, 0x9d, + 0x4c, 0xe2, 0x9f, 0x9d, 0x4c, 0xc2, 0x7c, 0x1d, 0x26, 0xa3, 0xa1, 0x58, 0x83, 0x7a, 0x8c, 0xe0, + 0x35, 0x18, 0x2d, 0x89, 0x25, 0x1e, 0x2b, 0x95, 0x9b, 0xb6, 0x3a, 0x45, 0x61, 0x44, 0x15, 0xc5, + 0xda, 0xa0, 0x55, 0xaf, 0xa0, 0x2c, 0xcd, 0x1f, 0x11, 0x9c, 0xe2, 0xa7, 0x5d, 0xac, 0xd5, 0xe4, + 0x81, 0xec, 0x49, 0xc0, 0x5f, 0x06, 0x08, 0x4a, 0xcb, 0x33, 0x48, 0xe5, 0xce, 0x44, 0x70, 0x08, + 0x22, 0x15, 0x9a, 0x6b, 0x4e, 0x45, 0x91, 0x55, 0x08, 0x79, 0xe2, 0x79, 0x38, 0xd6, 0x24, 0x8c, + 0xd6, 0x6e, 0x91, 0xa2, 0x20, 0xe3, 0xc8, 0x1c, 0xca, 0x8e, 0x15, 0x26, 0xe4, 0xe2, 0xa5, 0x2e, + 0x4e, 0x7e, 0x46, 0x30, 0xd5, 0x9b, 0x86, 0x24, 0xa6, 0x06, 0x63, 0x32, 0xdd, 0x76, 0x22, 0x47, + 0x62, 0x99, 0xc9, 0xbf, 0xf4, 0xf0, 0xf7, 0x4c, 0xe2, 0xab, 0x3f, 0x32, 0xd9, 0x4a, 0xd5, 0xbf, + 0xb1, 0x5d, 0xb2, 0xca, 0xb4, 0x2e, 0x3b, 0x43, 0xfe, 0xb7, 0xc2, 0xdc, 0x2d, 0xdb, 0x6f, 0x35, + 0x08, 0xe3, 0x0e, 0xec, 0xc1, 0xdf, 0xdf, 0x2e, 0xa1, 0x42, 0x27, 0x02, 0xbe, 0xa2, 0x61, 0x60, + 0x61, 0x5f, 0x06, 0x04, 0xd4, 0x30, 0x05, 0xe6, 0xe7, 0x08, 0x66, 0x79, 0x4e, 0x9b, 0x0d, 0xe2, + 0xb9, 0x4e, 0xa9, 0x46, 0xfe, 0x43, 0x05, 0x0a, 0x71, 0xff, 0x18, 0x41, 0xba, 0x1f, 0xce, 0xff, + 0x77, 0x05, 0x5a, 0x30, 0xaf, 0x4d, 0x2c, 0xdf, 0xe2, 0xfd, 0xf7, 0x34, 0x2f, 0xf9, 0x3b, 0x70, + 0x3a, 0x3e, 0xf4, 0x93, 0x5c, 0xfa, 0x2d, 0x79, 0xe7, 0xdf, 0xa2, 0xbe, 0x53, 0xdb, 0xdc, 0x6e, + 0x34, 0x6a, 0x2d, 0x95, 0x4b, 0xb4, 0x3d, 0xd0, 0x10, 0xda, 0xe3, 0x27, 0x75, 0x35, 0x23, 0xd1, + 0x24, 0xfc, 0x1b, 0x90, 0x64, 0x7c, 0xe5, 0xa9, 0xb5, 0x85, 0x3c, 0x7f, 0x78, 0x4d, 0xb1, 0x2c, + 0x9f, 0x5f, 0x91, 0xc9, 0xd5, 0x77, 0x15, 0x73, 0x9d, 0x8a, 0xa2, 0x50, 0x45, 0xcd, 0xeb, 0xf0, + 0x4c, 0x97, 0xb5, 0xcc, 0xfc, 0x02, 0x24, 0x9d, 0x3a, 0xdd, 0xf6, 0xfc, 0x7d, 0xeb, 0x96, 0x1f, + 0x6f, 0x67, 0x2e, 0xb3, 0x11, 0x3e, 0xe6, 0x24, 0x60, 0x7e, 0xec, 0x35, 0xa7, 0xe9, 0xd4, 0xd5, + 0x7b, 0x60, 0x5e, 0x97, 0x43, 0x48, 0xad, 0xca, 0x50, 0xeb, 0x90, 0x6c, 0xf0, 0x15, 0x19, 0x6a, + 0xc6, 0xd2, 0x0c, 0x6b, 0x4b, 0x38, 0x45, 0x82, 0x09, 0x2f, 0xd3, 0x05, 0x83, 0x1f, 0xcb, 0x3b, + 0x8f, 0xbd, 0x41, 0x7c, 0xc7, 0x75, 0x7c, 0x67, 0xc8, 0x1d, 0x63, 0x7e, 0x83, 0x60, 0x46, 0x1b, + 0x46, 0x66, 0x71, 0x19, 0xc6, 0xeb, 0x72, 0x4d, 0x3d, 0x22, 0xb3, 0xda, 0x44, 0x94, 0x67, 0x38, + 0x95, 0xc0, 0x75, 0x78, 0x8d, 0xb0, 0x0a, 0xd3, 0x01, 0xde, 0x6e, 0x56, 0xf4, 0xdd, 0x50, 0x0a, + 0x33, 0xd9, 0x93, 0xe1, 0x25, 0x18, 0x53, 0x30, 0x25, 0x8f, 0x83, 0x27, 0xd8, 0xf1, 0x34, 0x6f, + 0xcb, 0xcb, 0xcd, 0x63, 0x5c, 0xbd, 0xed, 0x91, 0x26, 0x8b, 0x05, 0x35, 0xac, 0x89, 0x60, 0xbe, + 0x8f, 0x00, 0x82, 0xa0, 0x87, 0x7a, 0x15, 0xd7, 0x83, 0xd7, 0x6c, 0xe4, 0x00, 0xb7, 0xa2, 0xf3, + 0xb0, 0x7d, 0xa9, 0xde, 0x9a, 0x48, 0xf2, 0x92, 0xde, 0x3c, 0x4c, 0xf0, 0x84, 0x8b, 0x94, 0xaf, + 0xcb, 0x1e, 0xca, 0x68, 0x29, 0x0e, 0xfc, 0x0b, 0x29, 0x37, 0x38, 0x6b, 0x98, 0xa3, 0x45, 0x54, + 0x69, 0x93, 0x78, 0xee, 0x6b, 0x5e, 0xfb, 0x81, 0x77, 0x55, 0x95, 0x9e, 0x85, 0x24, 0x0f, 0x29, + 0x10, 0x8e, 0x17, 0xe4, 0xb7, 0xae, 0x3a, 0x95, 0x0f, 0x5d, 0xa7, 0x07, 0x8a, 0xa4, 0x48, 0x6c, + 0x49, 0xd2, 0x06, 0x4c, 0x30, 0xe2, 0xb9, 0x45, 0x22, 0xd6, 0x25, 0x49, 0x73, 0x5a, 0x92, 0xc2, + 0xfe, 0x29, 0x16, 0x7c, 0xe9, 0x62, 0xa9, 0x7c, 0x68, 0x96, 0x72, 0xdf, 0x1d, 0x87, 0xa3, 0x1c, + 0x2a, 0xfe, 0x14, 0xc1, 0xa8, 0x1c, 0x81, 0x38, 0xab, 0x45, 0xa3, 0x91, 0xdf, 0xc6, 0xe2, 0x00, + 0x96, 0x22, 0xac, 0xf9, 0xea, 0xbd, 0x76, 0x2b, 0x7d, 0xf0, 0xeb, 0x5f, 0x1f, 0x8f, 0xe4, 0xf0, + 0x59, 0x5b, 0xff, 0xcb, 0x41, 0x08, 0x0c, 0xfb, 0x8e, 0xec, 0xd7, 0xbb, 0x76, 0xa9, 0x25, 0xe4, + 0x29, 0xde, 0x41, 0x90, 0x0a, 0x69, 0x4f, 0xbc, 0xdc, 0x3f, 0x72, 0xaf, 0xd2, 0x36, 0x56, 0x06, + 0xb4, 0x96, 0x58, 0x5f, 0x0c, 0xb0, 0x2e, 0xe2, 0x85, 0x01, 0xb1, 0xe2, 0x1f, 0x10, 0x9c, 0xe8, + 0x91, 0x68, 0x38, 0xd7, 0x3f, 0x74, 0x3f, 0xdd, 0x69, 0xac, 0x1d, 0xc8, 0x47, 0x82, 0x5e, 0x0f, + 0x40, 0xaf, 0xe1, 0x55, 0x2d, 0x68, 0xa6, 0x9c, 0x8b, 0x1a, 0xf8, 0x8f, 0x11, 0x9c, 0xea, 0xa3, + 0x86, 0xf0, 0x2b, 0x83, 0x03, 0x8a, 0x6a, 0x37, 0xe3, 0xdc, 0x21, 0x3c, 0x65, 0x42, 0x57, 0x82, + 0x84, 0x2e, 0xe0, 0xf3, 0x07, 0x4e, 0x28, 0xe8, 0x9d, 0xfb, 0x08, 0x52, 0x21, 0x71, 0x14, 0xd7, + 0x3b, 0xbd, 0x8a, 0x2d, 0xae, 0x77, 0x34, 0x8a, 0xcb, 0xcc, 0x06, 0xa8, 0x67, 0xf1, 0x8c, 0x1e, + 0xb5, 0x80, 0x71, 0x1f, 0xc1, 0x98, 0x92, 0x2d, 0x38, 0xe6, 0x26, 0x75, 0x09, 0x21, 0x63, 0x69, + 0x10, 0x53, 0x89, 0x66, 0x35, 0x40, 0x73, 0x06, 0x9f, 0x8e, 0x41, 0x13, 0xb0, 0xf5, 0x21, 0x82, + 0xa4, 0xd0, 0x2a, 0x78, 0xa1, 0x7f, 0xa4, 0x88, 0x30, 0x32, 0xb2, 0xfb, 0x1b, 0x0e, 0x4e, 0x8f, + 0x50, 0x45, 0xf8, 0x6b, 0x04, 0xc7, 0x22, 0x73, 0x1c, 0x5b, 0xfd, 0xa3, 0xe8, 0x34, 0x82, 0x61, + 0x0f, 0x6c, 0x2f, 0xc1, 0x9d, 0x0b, 0xc0, 0x59, 0x78, 0x59, 0x0b, 0x4e, 0xcc, 0x8a, 0xa2, 0x52, + 0x03, 0xf6, 0x1d, 0xbe, 0x70, 0x17, 0x7f, 0x81, 0xe0, 0x78, 0x54, 0x58, 0xe1, 0xfd, 0xc2, 0x77, + 0x2b, 0x3d, 0xe3, 0xec, 0xe0, 0x0e, 0x83, 0x97, 0xb7, 0x0b, 0x30, 0xfe, 0x0c, 0x41, 0x2a, 0x34, + 0xbd, 0xe3, 0x2e, 0x43, 0xaf, 0xc2, 0x89, 0xbb, 0x0c, 0x1a, 0x49, 0x60, 0xbe, 0x1c, 0xe0, 0x7b, + 0x01, 0x2f, 0xf6, 0xc7, 0x27, 0x25, 0x43, 0x87, 0xcd, 0x4f, 0x10, 0xa4, 0x42, 0xd3, 0x2f, 0x0e, + 0x64, 0xef, 0x80, 0x8f, 0x03, 0xa9, 0x19, 0xc9, 0xa6, 0x15, 0x80, 0x9c, 0xc7, 0xcf, 0xeb, 0xef, + 0x48, 0x68, 0x64, 0xe7, 0x37, 0x1e, 0xee, 0xa6, 0xd1, 0xa3, 0xdd, 0x34, 0xfa, 0x73, 0x37, 0x8d, + 0x3e, 0xda, 0x4b, 0x27, 0x1e, 0xed, 0xa5, 0x13, 0xbf, 0xed, 0xa5, 0x13, 0x6f, 0x2f, 0xc6, 0xfe, + 0x74, 0x7a, 0x4f, 0x9c, 0xc9, 0x7f, 0x41, 0x95, 0x92, 0xfc, 0xcf, 0x5a, 0x6b, 0xff, 0x06, 0x00, + 0x00, 0xff, 0xff, 0x37, 0xb5, 0xe0, 0x0a, 0xf9, 0x13, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/bank/types/tx.pb.go b/x/bank/types/tx.pb.go index 05ed288a8963..b3fd1ea3d863 100644 --- a/x/bank/types/tx.pb.go +++ b/x/bank/types/tx.pb.go @@ -426,52 +426,51 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/tx.proto", fileDescriptor_1d8cb1613481f5b7) } var fileDescriptor_1d8cb1613481f5b7 = []byte{ - // 710 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xbd, 0x6f, 0xd3, 0x4c, - 0x18, 0x8f, 0x9b, 0xf7, 0x4d, 0x95, 0x6b, 0xa0, 0xaa, 0x5b, 0xd1, 0xc6, 0xad, 0x9c, 0x36, 0x42, - 0x55, 0x1b, 0xa8, 0x4d, 0x0b, 0x02, 0x29, 0x08, 0x04, 0x29, 0x20, 0x81, 0x14, 0x81, 0x52, 0x31, - 0xc0, 0x62, 0x39, 0xf1, 0xd5, 0xb5, 0x6a, 0xfb, 0x2c, 0xdf, 0xb9, 0x6a, 0xb7, 0xc2, 0x84, 0x98, - 0x98, 0x99, 0x3a, 0x22, 0xa6, 0x0c, 0x1d, 0x91, 0x58, 0x3b, 0x56, 0x4c, 0x4c, 0x80, 0xda, 0x21, - 0xf0, 0x5f, 0xa0, 0xfb, 0xb0, 0xeb, 0xa4, 0x49, 0x5b, 0xb1, 0xc4, 0xce, 0xfd, 0x3e, 0x9e, 0xfb, - 0x3d, 0x7e, 0xee, 0xc0, 0x4c, 0x0b, 0x61, 0x0f, 0x61, 0xbd, 0x69, 0xfa, 0x9b, 0xfa, 0xd6, 0x72, - 0x13, 0x12, 0x73, 0x59, 0x27, 0xdb, 0x5a, 0x10, 0x22, 0x82, 0xe4, 0x71, 0x8e, 0x6a, 0x14, 0xd5, - 0x04, 0xaa, 0x4c, 0xd8, 0xc8, 0x46, 0x0c, 0xd7, 0xe9, 0x1b, 0xa7, 0x2a, 0x6a, 0x62, 0x84, 0x61, - 0x62, 0xd4, 0x42, 0x8e, 0x7f, 0x0a, 0x4f, 0x15, 0x62, 0xbe, 0x1c, 0x2f, 0x72, 0xdc, 0xe0, 0xc6, - 0xa2, 0x2e, 0x87, 0x26, 0x85, 0xd4, 0xc3, 0xb6, 0xbe, 0xb5, 0x4c, 0x1f, 0x02, 0x18, 0x33, 0x3d, - 0xc7, 0x47, 0x3a, 0xfb, 0xe5, 0x4b, 0xe5, 0xfd, 0x21, 0x30, 0x5c, 0xc7, 0xf6, 0x1a, 0xf4, 0x2d, - 0xf9, 0x2e, 0x28, 0xac, 0x87, 0xc8, 0x33, 0x4c, 0xcb, 0x0a, 0x21, 0xc6, 0x53, 0xd2, 0xac, 0xb4, - 0x90, 0xaf, 0x4d, 0x7d, 0xdb, 0x5f, 0x9a, 0x10, 0xfe, 0x0f, 0x39, 0xb2, 0x46, 0x42, 0xc7, 0xb7, - 0x1b, 0x23, 0x94, 0x2d, 0x96, 0xe4, 0x3b, 0x00, 0x10, 0x94, 0x48, 0x87, 0xce, 0x91, 0xe6, 0x09, - 0x8a, 0x85, 0xbb, 0x12, 0xc8, 0x99, 0x1e, 0x8a, 0x7c, 0x32, 0x95, 0x9d, 0xcd, 0x2e, 0x8c, 0xac, - 0x14, 0xb5, 0xa4, 0x8b, 0x18, 0xc6, 0x5d, 0xd4, 0x56, 0x91, 0xe3, 0xd7, 0xea, 0x07, 0x3f, 0x4a, - 0x99, 0xcf, 0x3f, 0x4b, 0x0b, 0xb6, 0x43, 0x36, 0xa2, 0xa6, 0xd6, 0x42, 0x9e, 0x88, 0x2e, 0x1e, - 0x4b, 0xd8, 0xda, 0xd4, 0xc9, 0x4e, 0x00, 0x31, 0x13, 0xe0, 0x8f, 0x9d, 0x76, 0x65, 0xdc, 0x8f, - 0x5c, 0xd7, 0xc0, 0xae, 0xd3, 0x82, 0x86, 0x89, 0x0d, 0xe8, 0x05, 0x64, 0xe7, 0x53, 0xa7, 0x5d, - 0x91, 0x1a, 0xa2, 0x6e, 0xf5, 0xc6, 0xbb, 0xbd, 0x52, 0xe6, 0xf7, 0x5e, 0x29, 0xf3, 0xb6, 0xd3, - 0xae, 0x74, 0xf5, 0xe0, 0x7d, 0xa7, 0x5d, 0x91, 0x53, 0xd6, 0xa2, 0x55, 0xe5, 0x31, 0x30, 0x2a, - 0x5e, 0x1b, 0x10, 0x07, 0xc8, 0xc7, 0xb0, 0xfc, 0x45, 0x02, 0x85, 0x3a, 0xb6, 0xeb, 0x91, 0x4b, - 0x1c, 0xd6, 0xce, 0x7b, 0x20, 0xe7, 0xf8, 0x41, 0x44, 0x68, 0x23, 0x69, 0x2e, 0x45, 0xeb, 0x33, - 0x1d, 0xda, 0x53, 0x4a, 0xa9, 0xe5, 0x69, 0x30, 0xb1, 0x29, 0x2e, 0x92, 0x1f, 0x80, 0x61, 0x14, - 0x11, 0xa6, 0x1f, 0x62, 0xfa, 0xe9, 0xbe, 0xfa, 0xe7, 0x8c, 0x93, 0x36, 0x88, 0x65, 0xd5, 0x6b, - 0x71, 0x24, 0x61, 0x49, 0xc3, 0x4c, 0x76, 0x87, 0x49, 0x76, 0x5b, 0xbe, 0x02, 0x26, 0xd2, 0xff, - 0x93, 0x58, 0x5f, 0x25, 0x16, 0xf5, 0x65, 0x60, 0x99, 0x04, 0xbe, 0x30, 0x43, 0xd3, 0xc3, 0xf2, - 0x6d, 0x90, 0x37, 0x23, 0xb2, 0x81, 0x42, 0x87, 0xec, 0x9c, 0x3b, 0x25, 0x27, 0x54, 0xf9, 0x3e, - 0xc8, 0x05, 0xcc, 0x81, 0xcd, 0xc7, 0xa0, 0x44, 0xbc, 0x48, 0x57, 0x4b, 0xb8, 0xaa, 0x7a, 0x8b, - 0x86, 0x39, 0xf1, 0xa3, 0x79, 0xe6, 0x52, 0x79, 0xb6, 0xf9, 0x61, 0xe9, 0xd9, 0x6d, 0xb9, 0x08, - 0x26, 0x7b, 0x96, 0x92, 0x70, 0x7f, 0x24, 0x30, 0xc6, 0xbe, 0x23, 0xa1, 0x99, 0x1f, 0xfb, 0x66, - 0xd3, 0x85, 0xd6, 0x3f, 0xc7, 0x5b, 0x05, 0x05, 0x0c, 0x7d, 0xcb, 0x80, 0xdc, 0x47, 0x7c, 0xb6, - 0xd9, 0xbe, 0x21, 0x53, 0xf5, 0x1a, 0x23, 0x38, 0x55, 0x7c, 0x1e, 0x8c, 0x46, 0x18, 0x1a, 0x16, - 0x5c, 0x37, 0x23, 0x97, 0x18, 0xeb, 0x28, 0x64, 0xc7, 0x22, 0xdf, 0xb8, 0x14, 0x61, 0xf8, 0x88, - 0xaf, 0x3e, 0x41, 0x61, 0x55, 0x3f, 0xdd, 0x8b, 0x99, 0xde, 0x41, 0x4d, 0xa7, 0x2a, 0x4f, 0x83, - 0xe2, 0xa9, 0xc5, 0xb8, 0x11, 0x2b, 0x6f, 0xb2, 0x20, 0x5b, 0xc7, 0xb6, 0xfc, 0x0c, 0xfc, 0xc7, - 0x66, 0x77, 0xa6, 0xef, 0xa6, 0xc5, 0xc8, 0x2b, 0x57, 0xcf, 0x42, 0x63, 0x4f, 0xf9, 0x15, 0xc8, - 0x9f, 0x1c, 0x86, 0xb9, 0x41, 0x92, 0x84, 0xa2, 0x2c, 0x9e, 0x4b, 0x49, 0xac, 0x9b, 0xa0, 0xd0, - 0x35, 0x90, 0x03, 0x37, 0x94, 0x66, 0x29, 0xd7, 0x2f, 0xc2, 0x4a, 0x6a, 0x6c, 0x80, 0xcb, 0x3d, - 0x73, 0x31, 0x3f, 0x38, 0x76, 0x9a, 0xa7, 0x68, 0x17, 0xe3, 0xc5, 0x95, 0x94, 0xff, 0x77, 0xe9, - 0x94, 0xd7, 0x56, 0x0f, 0x8e, 0x54, 0xe9, 0xf0, 0x48, 0x95, 0x7e, 0x1d, 0xa9, 0xd2, 0x87, 0x63, - 0x35, 0x73, 0x78, 0xac, 0x66, 0xbe, 0x1f, 0xab, 0x99, 0xd7, 0x8b, 0x67, 0x5e, 0x77, 0x62, 0xec, - 0xd9, 0xad, 0xd7, 0xcc, 0xb1, 0x6b, 0xfd, 0xe6, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x44, 0xa4, - 0xb2, 0x67, 0xa8, 0x06, 0x00, 0x00, + // 690 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xcd, 0x4f, 0xd4, 0x5e, + 0x14, 0x6d, 0x99, 0xdf, 0x6f, 0x48, 0x1f, 0xa3, 0x84, 0x4a, 0x84, 0x29, 0xa4, 0x03, 0x8d, 0x21, + 0x80, 0xd2, 0x0a, 0x7e, 0x25, 0x63, 0x34, 0x3a, 0xa8, 0x89, 0x26, 0x13, 0xcd, 0x10, 0x17, 0xba, + 0x99, 0xb4, 0xf4, 0xd1, 0x69, 0xa0, 0x7d, 0x4d, 0xdf, 0x2b, 0x81, 0x9d, 0xba, 0x32, 0xae, 0xdc, + 0xbb, 0x61, 0x69, 0x5c, 0xb1, 0x70, 0x69, 0xe2, 0x96, 0x25, 0x71, 0xe5, 0x4a, 0x0d, 0x2c, 0xd0, + 0xff, 0xc2, 0xbc, 0x8f, 0x96, 0xce, 0x30, 0xc3, 0x10, 0x37, 0xd3, 0xce, 0xbb, 0xe7, 0x9c, 0x7b, + 0xcf, 0xed, 0x69, 0xc1, 0xe4, 0x2a, 0xc2, 0x01, 0xc2, 0x96, 0x63, 0x87, 0xeb, 0xd6, 0xe6, 0xa2, + 0x03, 0x89, 0xbd, 0x68, 0x91, 0x2d, 0x33, 0x8a, 0x11, 0x41, 0xea, 0x05, 0x5e, 0x35, 0x69, 0xd5, + 0x14, 0x55, 0x6d, 0xd4, 0x43, 0x1e, 0x62, 0x75, 0x8b, 0xde, 0x71, 0xa8, 0xa6, 0x67, 0x42, 0x18, + 0x66, 0x42, 0xab, 0xc8, 0x0f, 0x4f, 0xd4, 0x73, 0x8d, 0x98, 0x2e, 0xaf, 0x97, 0x79, 0xbd, 0xc9, + 0x85, 0x45, 0x5f, 0x5e, 0x1a, 0x13, 0xd4, 0x00, 0x7b, 0xd6, 0xe6, 0x22, 0xbd, 0x88, 0xc2, 0x88, + 0x1d, 0xf8, 0x21, 0xb2, 0xd8, 0x2f, 0x3f, 0x32, 0x3e, 0x0c, 0x80, 0xc1, 0x3a, 0xf6, 0x56, 0x60, + 0xe8, 0xaa, 0xb7, 0x41, 0x69, 0x2d, 0x46, 0x41, 0xd3, 0x76, 0xdd, 0x18, 0x62, 0x3c, 0x2e, 0x4f, + 0xc9, 0xb3, 0x4a, 0x6d, 0xfc, 0xdb, 0xe7, 0x85, 0x51, 0xa1, 0x7f, 0x9f, 0x57, 0x56, 0x48, 0xec, + 0x87, 0x5e, 0x63, 0x88, 0xa2, 0xc5, 0x91, 0x7a, 0x0b, 0x00, 0x82, 0x32, 0xea, 0x40, 0x1f, 0xaa, + 0x42, 0x50, 0x4a, 0x6c, 0x81, 0xa2, 0x1d, 0xa0, 0x24, 0x24, 0xe3, 0x85, 0xa9, 0xc2, 0xec, 0xd0, + 0x52, 0xd9, 0xcc, 0x96, 0x88, 0x61, 0xba, 0x44, 0x73, 0x19, 0xf9, 0x61, 0xed, 0xc6, 0xde, 0x8f, + 0x8a, 0xf4, 0xe9, 0x67, 0x65, 0xd6, 0xf3, 0x49, 0x2b, 0x71, 0xcc, 0x55, 0x14, 0x08, 0xe7, 0xe2, + 0xb2, 0x80, 0xdd, 0x75, 0x8b, 0x6c, 0x47, 0x10, 0x33, 0x02, 0xfe, 0x78, 0xb4, 0x3b, 0x2f, 0x37, + 0x84, 0x7e, 0xf5, 0xea, 0xdb, 0x9d, 0x8a, 0xf4, 0x7b, 0xa7, 0x22, 0xbd, 0x39, 0xda, 0x9d, 0x6f, + 0xb3, 0xfa, 0xee, 0x68, 0x77, 0x5e, 0xcd, 0x49, 0x88, 0x8d, 0x18, 0x23, 0x60, 0x58, 0xdc, 0x36, + 0x20, 0x8e, 0x50, 0x88, 0xa1, 0xf1, 0x45, 0x06, 0xa5, 0x3a, 0xf6, 0xea, 0xc9, 0x06, 0xf1, 0xd9, + 0xd6, 0xee, 0x80, 0xa2, 0x1f, 0x46, 0x09, 0xa1, 0xfb, 0xa2, 0xf3, 0x6b, 0x66, 0x97, 0x10, 0x98, + 0x8f, 0x29, 0xa4, 0xa6, 0x50, 0x03, 0x62, 0x28, 0x4e, 0x52, 0xef, 0x81, 0x41, 0x94, 0x10, 0xc6, + 0x1f, 0x60, 0xfc, 0x89, 0xae, 0xfc, 0xa7, 0x0c, 0x93, 0x17, 0x48, 0x69, 0xd5, 0xcb, 0xa9, 0x25, + 0x21, 0x49, 0xcd, 0x8c, 0xb5, 0x9b, 0xc9, 0xa6, 0x35, 0x2e, 0x82, 0xd1, 0xfc, 0xff, 0xcc, 0xd6, + 0x57, 0x99, 0x59, 0x7d, 0x1e, 0xb9, 0x36, 0x81, 0xcf, 0xec, 0xd8, 0x0e, 0xb0, 0x7a, 0x13, 0x28, + 0x76, 0x42, 0x5a, 0x28, 0xf6, 0xc9, 0x76, 0xdf, 0x30, 0x1c, 0x43, 0xd5, 0xbb, 0xa0, 0x18, 0x31, + 0x05, 0x16, 0x83, 0x5e, 0x8e, 0x78, 0x93, 0xb6, 0x95, 0x70, 0x56, 0xf5, 0x3a, 0x35, 0x73, 0xac, + 0x47, 0xfd, 0x4c, 0xe7, 0xfc, 0x6c, 0xf1, 0x77, 0xa2, 0x63, 0x5a, 0xa3, 0x0c, 0xc6, 0x3a, 0x8e, + 0x32, 0x73, 0x7f, 0x64, 0x30, 0xc2, 0x9e, 0x23, 0xa1, 0x9e, 0x1f, 0x86, 0xb6, 0xb3, 0x01, 0xdd, + 0x7f, 0xb6, 0xb7, 0x0c, 0x4a, 0x18, 0x86, 0x6e, 0x13, 0x72, 0x1d, 0xf1, 0xd8, 0xa6, 0xba, 0x9a, + 0xcc, 0xf5, 0x6b, 0x0c, 0xe1, 0x5c, 0xf3, 0x19, 0x30, 0x9c, 0x60, 0xd8, 0x74, 0xe1, 0x9a, 0x9d, + 0x6c, 0x90, 0xe6, 0x1a, 0x8a, 0x59, 0xfc, 0x95, 0xc6, 0xb9, 0x04, 0xc3, 0x07, 0xfc, 0xf4, 0x11, + 0x8a, 0xab, 0xd6, 0xc9, 0x5d, 0x4c, 0x76, 0x06, 0x35, 0xef, 0xca, 0x98, 0x00, 0xe5, 0x13, 0x87, + 0xe9, 0x22, 0x96, 0x5e, 0x17, 0x40, 0xa1, 0x8e, 0x3d, 0xf5, 0x09, 0xf8, 0x8f, 0x65, 0x77, 0xb2, + 0xeb, 0xd0, 0x22, 0xf2, 0xda, 0xa5, 0xd3, 0xaa, 0xa9, 0xa6, 0xfa, 0x02, 0x28, 0xc7, 0x2f, 0xc3, + 0x74, 0x2f, 0x4a, 0x06, 0xd1, 0xe6, 0xfa, 0x42, 0x32, 0x69, 0x07, 0x94, 0xda, 0x02, 0xd9, 0x73, + 0xa0, 0x3c, 0x4a, 0xbb, 0x72, 0x16, 0x54, 0xd6, 0xa3, 0x05, 0xce, 0x77, 0xe4, 0x62, 0xa6, 0xb7, + 0xed, 0x3c, 0x4e, 0x33, 0xcf, 0x86, 0x4b, 0x3b, 0x69, 0xff, 0xbf, 0xa2, 0x29, 0xaf, 0x2d, 0xef, + 0x1d, 0xe8, 0xf2, 0xfe, 0x81, 0x2e, 0xff, 0x3a, 0xd0, 0xe5, 0xf7, 0x87, 0xba, 0xb4, 0x7f, 0xa8, + 0x4b, 0xdf, 0x0f, 0x75, 0xe9, 0xe5, 0xdc, 0xa9, 0x9f, 0x35, 0x11, 0x7b, 0xf6, 0x75, 0x73, 0x8a, + 0xec, 0xeb, 0x7d, 0xed, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2f, 0xe8, 0x90, 0x24, 0x8f, 0x06, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/distribution/types/distribution.pb.go b/x/distribution/types/distribution.pb.go index 87de8638ef7b..30c5c725d3be 100644 --- a/x/distribution/types/distribution.pb.go +++ b/x/distribution/types/distribution.pb.go @@ -642,71 +642,69 @@ func init() { } var fileDescriptor_cd78a31ea281a992 = []byte{ - // 1013 bytes of a gzipped FileDescriptorProto + // 990 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0x41, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0x34, 0x89, 0xd3, 0x4c, 0x69, 0x42, 0x27, 0x4e, 0xea, 0xb8, 0x95, 0x1d, 0xad, 0x54, - 0x30, 0x81, 0xd8, 0xa4, 0x5c, 0x50, 0xc4, 0x25, 0xb6, 0x83, 0xe0, 0x80, 0x1a, 0x6d, 0x10, 0x45, - 0x5c, 0x56, 0xe3, 0xdd, 0x89, 0x3d, 0xea, 0xee, 0xcc, 0x32, 0x33, 0xeb, 0x24, 0x07, 0x24, 0x8e, - 0x81, 0x03, 0x70, 0x44, 0xbd, 0x50, 0xc1, 0xa5, 0xe2, 0x94, 0x43, 0x6e, 0xfc, 0x81, 0x8a, 0x53, - 0x55, 0x24, 0x54, 0x71, 0x48, 0x51, 0x72, 0x08, 0xe2, 0x57, 0xa0, 0xd9, 0x19, 0xaf, 0x9d, 0x10, - 0x4a, 0xa5, 0xd6, 0xea, 0x25, 0xf1, 0x7c, 0x6f, 0xe7, 0x7d, 0xef, 0x7b, 0xef, 0xcd, 0x9b, 0x81, - 0x35, 0x9f, 0xcb, 0x88, 0xcb, 0x7a, 0x40, 0xa5, 0x12, 0xb4, 0x9d, 0x28, 0xca, 0x59, 0xbd, 0xb7, - 0xd2, 0x26, 0x0a, 0xaf, 0x9c, 0x02, 0x6b, 0xb1, 0xe0, 0x8a, 0xa3, 0x6b, 0xe6, 0xfb, 0xda, 0x29, - 0x93, 0xfd, 0xbe, 0x54, 0xe8, 0xf0, 0x0e, 0x4f, 0xbf, 0xab, 0xeb, 0x5f, 0x66, 0x4b, 0xa9, 0x6c, - 0x29, 0xda, 0x58, 0x92, 0xcc, 0xb5, 0xcf, 0xa9, 0x75, 0x59, 0x5a, 0x30, 0x76, 0xcf, 0x6c, 0xb4, - 0xfe, 0x8d, 0xe9, 0x0a, 0x8e, 0x28, 0xe3, 0xf5, 0xf4, 0xaf, 0x81, 0x9c, 0x5f, 0xc6, 0x60, 0x7e, - 0x03, 0x0b, 0x1c, 0x49, 0xb4, 0x05, 0x2f, 0xfb, 0x3c, 0x8a, 0x12, 0x46, 0xd5, 0xae, 0xa7, 0xf0, - 0x4e, 0x11, 0x2c, 0x82, 0xea, 0x54, 0x63, 0xed, 0xc1, 0x61, 0x25, 0xf7, 0xc7, 0x61, 0xe5, 0xb5, - 0x0e, 0x55, 0xdd, 0xa4, 0x5d, 0xf3, 0x79, 0x64, 0xbd, 0xda, 0x7f, 0xcb, 0x32, 0xb8, 0x53, 0x57, - 0xbb, 0x31, 0x91, 0xb5, 0x16, 0xf1, 0x1f, 0x1d, 0x2c, 0x43, 0x4b, 0xda, 0x22, 0xfe, 0xfd, 0x93, - 0xfd, 0x25, 0xe0, 0xbe, 0x92, 0xf9, 0xfd, 0x18, 0xef, 0xa0, 0x04, 0x16, 0x74, 0xec, 0x3a, 0xc0, - 0x98, 0x4b, 0x22, 0x3c, 0x41, 0xb6, 0xb1, 0x08, 0x8a, 0x17, 0x52, 0xba, 0xe6, 0x73, 0xd3, 0x15, - 0x81, 0x8b, 0x34, 0xc1, 0x86, 0xf5, 0xef, 0xa6, 0xee, 0xd1, 0x36, 0x9c, 0x6b, 0x73, 0x96, 0xc8, - 0x7f, 0xf1, 0x8e, 0xbd, 0x38, 0xde, 0xd9, 0x94, 0xe1, 0x0c, 0xf1, 0x4d, 0x38, 0xb7, 0x4d, 0x55, - 0x37, 0x10, 0x78, 0xdb, 0xc3, 0x41, 0x20, 0x3c, 0xc2, 0x70, 0x3b, 0x24, 0x41, 0x71, 0x7c, 0x11, - 0x54, 0x2f, 0xba, 0xb3, 0x7d, 0xe3, 0x5a, 0x10, 0x88, 0x75, 0x63, 0x5a, 0xbd, 0xf1, 0xf5, 0xc9, - 0xfe, 0xd2, 0xe2, 0x10, 0xf1, 0xce, 0xe9, 0x96, 0x32, 0x25, 0x73, 0x7e, 0x07, 0xb0, 0xf4, 0x09, - 0x0e, 0x69, 0x80, 0x15, 0x17, 0x1f, 0x50, 0xa9, 0xb8, 0xa0, 0x3e, 0x0e, 0x0d, 0xb1, 0x44, 0xdf, - 0x00, 0x78, 0xd5, 0x4f, 0xa2, 0x24, 0xc4, 0x8a, 0xf6, 0x88, 0xd5, 0xeb, 0x09, 0xac, 0x28, 0x2f, - 0x82, 0xc5, 0xb1, 0xea, 0xa5, 0x9b, 0xd7, 0x6d, 0xc3, 0xd6, 0x74, 0xc2, 0xfa, 0x8d, 0xa7, 0x15, - 0x35, 0x39, 0x65, 0x8d, 0x77, 0x75, 0x4e, 0x7e, 0x7e, 0x52, 0x79, 0xf3, 0xd9, 0x72, 0xa2, 0xf7, - 0x48, 0x53, 0xf1, 0xb9, 0x01, 0xad, 0x09, 0xc6, 0xd5, 0xa4, 0xe8, 0x75, 0x38, 0x23, 0xc8, 0x16, - 0x11, 0x84, 0xf9, 0xc4, 0xf3, 0x79, 0xc2, 0x54, 0x5a, 0xf5, 0xcb, 0xee, 0x74, 0x06, 0x37, 0x35, - 0xea, 0xfc, 0x04, 0xe0, 0xd5, 0x4c, 0x58, 0x33, 0x11, 0x82, 0x30, 0xd5, 0x57, 0x15, 0xc3, 0x49, - 0xa3, 0x44, 0x8e, 0x58, 0x44, 0x9f, 0x06, 0xcd, 0xc3, 0x7c, 0x4c, 0x04, 0xe5, 0xa6, 0x47, 0xc7, - 0x5d, 0xbb, 0x72, 0xbe, 0x07, 0xb0, 0x9c, 0x45, 0xb9, 0xe6, 0x5b, 0xcd, 0x24, 0x68, 0xf2, 0x28, - 0xa2, 0x52, 0x52, 0xce, 0x50, 0x0f, 0x42, 0x3f, 0x5b, 0x8d, 0x38, 0xde, 0x21, 0x26, 0xe7, 0x5b, - 0x00, 0xaf, 0x65, 0xa1, 0xdd, 0x4a, 0x94, 0x54, 0x98, 0x05, 0x94, 0x75, 0x5e, 0x5a, 0x12, 0x9d, - 0xbb, 0x00, 0xce, 0x66, 0x11, 0x6d, 0x86, 0x58, 0x76, 0xd7, 0x7b, 0x84, 0x29, 0xf4, 0x06, 0x7c, - 0xb5, 0xd7, 0x87, 0x3d, 0x9b, 0x66, 0x90, 0xa6, 0x79, 0x26, 0xc3, 0x37, 0x52, 0x18, 0x7d, 0x0a, - 0x2f, 0x6e, 0x09, 0xec, 0xeb, 0x13, 0x60, 0xa7, 0xc5, 0x7b, 0xcf, 0x73, 0x6a, 0xdd, 0xcc, 0x9b, - 0xf3, 0x15, 0x80, 0x85, 0x73, 0x82, 0x93, 0xe8, 0x73, 0x38, 0x3f, 0x88, 0x4e, 0x6a, 0x83, 0x47, - 0x52, 0x8b, 0x4d, 0xdb, 0xdb, 0xb5, 0xa7, 0x4c, 0xf0, 0xda, 0x39, 0x2e, 0x1b, 0x53, 0x3a, 0x64, - 0x93, 0x9b, 0x42, 0xef, 0x1c, 0x4a, 0x67, 0x0f, 0xc0, 0xc9, 0xf7, 0x09, 0xd9, 0xe0, 0x3c, 0x44, - 0x5f, 0xc0, 0xe9, 0xc1, 0x4c, 0x8e, 0x39, 0x0f, 0x47, 0x5c, 0xad, 0xc1, 0x0d, 0xa0, 0xe9, 0x9d, - 0x1f, 0x2e, 0xc0, 0x52, 0x73, 0x18, 0xd9, 0x8c, 0x09, 0x0b, 0xcc, 0x7c, 0xc3, 0x21, 0x2a, 0xc0, - 0x09, 0x45, 0x55, 0x48, 0xcc, 0x4d, 0xe1, 0x9a, 0x05, 0x5a, 0x84, 0x97, 0x02, 0x22, 0x7d, 0x41, - 0xe3, 0x41, 0xa1, 0xdc, 0x61, 0x08, 0x5d, 0x87, 0x53, 0x82, 0xf8, 0x34, 0xa6, 0x84, 0x29, 0x33, - 0x7e, 0xdd, 0x01, 0x80, 0xbe, 0x04, 0x30, 0x8f, 0xa3, 0x74, 0x38, 0x8c, 0xa7, 0x62, 0x17, 0xce, - 0x15, 0x9b, 0x2a, 0xfd, 0xc8, 0x2a, 0xad, 0x3e, 0x83, 0xd2, 0x54, 0xe6, 0xdd, 0x93, 0xfd, 0xa5, - 0x59, 0x96, 0x84, 0xa1, 0x27, 0x43, 0xea, 0x13, 0x0f, 0x4b, 0x8f, 0x44, 0xb1, 0xda, 0x35, 0xf2, - 0x2d, 0xef, 0x6a, 0x75, 0xef, 0x5e, 0x25, 0xf7, 0xd7, 0xbd, 0x4a, 0xee, 0xd7, 0x83, 0xe5, 0x92, - 0x25, 0xef, 0xf0, 0xde, 0x10, 0x37, 0x53, 0x3a, 0x76, 0xe0, 0x3c, 0x01, 0x70, 0xae, 0x45, 0x42, - 0xd2, 0x49, 0xab, 0xa8, 0xb0, 0x50, 0x94, 0x75, 0x3e, 0x64, 0x5b, 0xe9, 0xac, 0x8b, 0x05, 0xe9, - 0x51, 0xae, 0xaf, 0x9c, 0xe1, 0xb6, 0x9e, 0xee, 0xc3, 0xb6, 0xab, 0x6f, 0xc3, 0x09, 0xa9, 0xf0, - 0x1d, 0x62, 0x5b, 0xfa, 0x05, 0xdc, 0xb7, 0xc6, 0x1f, 0x6a, 0xc1, 0x7c, 0x97, 0xd0, 0x4e, 0xd7, - 0xe4, 0x78, 0xbc, 0xf1, 0xd6, 0xdf, 0x87, 0x95, 0x19, 0x5f, 0x10, 0x3d, 0x8a, 0x99, 0x67, 0x4c, - 0x3f, 0x9e, 0xec, 0x2f, 0x9d, 0xc5, 0x6c, 0x2e, 0xcc, 0xc2, 0x79, 0x0c, 0xe0, 0x82, 0x55, 0x48, - 0x39, 0xcb, 0xb4, 0xda, 0xcb, 0x6d, 0x1d, 0x5e, 0x19, 0x9c, 0x0f, 0x7d, 0xbb, 0x11, 0x29, 0xed, - 0xc3, 0xa1, 0xf8, 0xe8, 0x60, 0xb9, 0x60, 0x43, 0x5b, 0x33, 0x96, 0x4d, 0x25, 0xf4, 0x0c, 0x1a, - 0x1c, 0x78, 0x8b, 0x23, 0x06, 0xf3, 0xd9, 0x2b, 0x60, 0x94, 0xfd, 0x6d, 0x59, 0x56, 0xc7, 0x75, - 0x81, 0x9d, 0xdf, 0x00, 0xbc, 0xf1, 0xdf, 0xed, 0x7d, 0x9b, 0xaa, 0x6e, 0x8b, 0xc4, 0x5c, 0x52, - 0x35, 0xa2, 0x4e, 0x9f, 0x1f, 0x6a, 0x74, 0x6d, 0xb2, 0x2b, 0x54, 0x84, 0x93, 0x81, 0x21, 0x2e, - 0x4e, 0xa4, 0x86, 0xfe, 0x72, 0xd5, 0xd9, 0xfb, 0xdf, 0xa6, 0x6c, 0xdc, 0xba, 0x7f, 0x54, 0x06, - 0x0f, 0x8e, 0xca, 0xe0, 0xe1, 0x51, 0x19, 0xfc, 0x79, 0x54, 0x06, 0xdf, 0x1d, 0x97, 0x73, 0x0f, - 0x8f, 0xcb, 0xb9, 0xc7, 0xc7, 0xe5, 0xdc, 0x67, 0x2b, 0x4f, 0xcd, 0xd9, 0x99, 0x67, 0x46, 0x9a, - 0xc2, 0x76, 0x3e, 0x7d, 0x2a, 0xbe, 0xf3, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1d, 0xc8, 0x78, - 0x0f, 0xdd, 0x0a, 0x00, 0x00, + 0x14, 0xf6, 0x34, 0x89, 0xd3, 0x4c, 0x69, 0x42, 0x27, 0x4e, 0xea, 0xb8, 0x95, 0x6d, 0xad, 0x54, + 0x30, 0x81, 0xd8, 0xa4, 0x08, 0x09, 0x45, 0x5c, 0x62, 0x3b, 0x08, 0x4e, 0x8d, 0x36, 0x88, 0x22, + 0x2e, 0xab, 0xf1, 0xee, 0xc4, 0x1e, 0x75, 0x77, 0x66, 0x99, 0x99, 0x75, 0xd2, 0x03, 0x57, 0x14, + 0x38, 0x00, 0x47, 0xc4, 0xa9, 0x82, 0x4b, 0xc5, 0x29, 0x87, 0xdc, 0xf8, 0x03, 0x15, 0xa7, 0xaa, + 0x48, 0xa8, 0xe2, 0x90, 0xa2, 0xe4, 0x10, 0xc4, 0xaf, 0x40, 0xb3, 0x33, 0x5e, 0x3b, 0x21, 0x94, + 0x4a, 0xad, 0xd5, 0x4b, 0xe2, 0xf9, 0xde, 0xee, 0xfb, 0xde, 0xf7, 0xde, 0x9b, 0xf7, 0x16, 0xd6, + 0x7d, 0x2e, 0x23, 0x2e, 0x1b, 0x01, 0x95, 0x4a, 0xd0, 0x4e, 0xa2, 0x28, 0x67, 0x8d, 0xfe, 0x6a, + 0x87, 0x28, 0xbc, 0x7a, 0x0a, 0xac, 0xc7, 0x82, 0x2b, 0x8e, 0xae, 0x99, 0xe7, 0xeb, 0xa7, 0x4c, + 0xf6, 0xf9, 0x52, 0xa1, 0xcb, 0xbb, 0x3c, 0x7d, 0xae, 0xa1, 0x7f, 0x99, 0x57, 0x4a, 0x65, 0x4b, + 0xd1, 0xc1, 0x92, 0x64, 0xae, 0x7d, 0x4e, 0xad, 0xcb, 0xd2, 0x92, 0xb1, 0x7b, 0xe6, 0x45, 0xeb, + 0xdf, 0x98, 0xae, 0xe0, 0x88, 0x32, 0xde, 0x48, 0xff, 0x1a, 0xc8, 0xf9, 0x65, 0x02, 0xe6, 0x37, + 0xb1, 0xc0, 0x91, 0x44, 0xdb, 0xf0, 0xb2, 0xcf, 0xa3, 0x28, 0x61, 0x54, 0xdd, 0xf5, 0x14, 0xde, + 0x2d, 0x82, 0x2a, 0xa8, 0xcd, 0x34, 0xd7, 0x1f, 0x1c, 0x56, 0x72, 0x7f, 0x1c, 0x56, 0x5e, 0xeb, + 0x52, 0xd5, 0x4b, 0x3a, 0x75, 0x9f, 0x47, 0xd6, 0xab, 0xfd, 0xb7, 0x22, 0x83, 0x3b, 0x0d, 0x75, + 0x37, 0x26, 0xb2, 0xde, 0x26, 0xfe, 0xa3, 0x83, 0x15, 0x68, 0x49, 0xdb, 0xc4, 0xbf, 0x7f, 0xb2, + 0xbf, 0x0c, 0xdc, 0x57, 0x32, 0xbf, 0x1f, 0xe3, 0x5d, 0x94, 0xc0, 0x82, 0x8e, 0x5d, 0x07, 0x18, + 0x73, 0x49, 0x84, 0x27, 0xc8, 0x0e, 0x16, 0x41, 0xf1, 0x42, 0x4a, 0xd7, 0x7a, 0x6e, 0xba, 0x22, + 0x70, 0x91, 0x26, 0xd8, 0xb4, 0xfe, 0xdd, 0xd4, 0x3d, 0xda, 0x81, 0x0b, 0x1d, 0xce, 0x12, 0xf9, + 0x2f, 0xde, 0x89, 0x17, 0xc7, 0x3b, 0x9f, 0x32, 0x9c, 0x21, 0xbe, 0x09, 0x17, 0x76, 0xa8, 0xea, + 0x05, 0x02, 0xef, 0x78, 0x38, 0x08, 0x84, 0x47, 0x18, 0xee, 0x84, 0x24, 0x28, 0x4e, 0x56, 0x41, + 0xed, 0xa2, 0x3b, 0x3f, 0x30, 0xae, 0x07, 0x81, 0xd8, 0x30, 0xa6, 0xb5, 0x1b, 0x5f, 0x9f, 0xec, + 0x2f, 0x57, 0x47, 0x88, 0x77, 0x4f, 0xb7, 0x94, 0x29, 0x99, 0xf3, 0x3b, 0x80, 0xa5, 0x4f, 0x70, + 0x48, 0x03, 0xac, 0xb8, 0xf8, 0x90, 0x4a, 0xc5, 0x05, 0xf5, 0x71, 0x68, 0x88, 0x25, 0xfa, 0x06, + 0xc0, 0xab, 0x7e, 0x12, 0x25, 0x21, 0x56, 0xb4, 0x4f, 0xac, 0x5e, 0x4f, 0x60, 0x45, 0x79, 0x11, + 0x54, 0x27, 0x6a, 0x97, 0x6e, 0x5e, 0xb7, 0x0d, 0x5b, 0xd7, 0x09, 0x1b, 0x34, 0x9e, 0x56, 0xd4, + 0xe2, 0x94, 0x35, 0xdf, 0xd3, 0x39, 0xf9, 0xf9, 0x49, 0xe5, 0xcd, 0x67, 0xcb, 0x89, 0x7e, 0x47, + 0x9a, 0x8a, 0x2f, 0x0c, 0x69, 0x4d, 0x30, 0xae, 0x26, 0x45, 0xaf, 0xc3, 0x39, 0x41, 0xb6, 0x89, + 0x20, 0xcc, 0x27, 0x9e, 0xcf, 0x13, 0xa6, 0xd2, 0xaa, 0x5f, 0x76, 0x67, 0x33, 0xb8, 0xa5, 0x51, + 0xe7, 0x27, 0x00, 0xaf, 0x66, 0xc2, 0x5a, 0x89, 0x10, 0x84, 0xa9, 0x81, 0xaa, 0x18, 0x4e, 0x1b, + 0x25, 0x72, 0xcc, 0x22, 0x06, 0x34, 0x68, 0x11, 0xe6, 0x63, 0x22, 0x28, 0x37, 0x3d, 0x3a, 0xe9, + 0xda, 0x93, 0xf3, 0x3d, 0x80, 0xe5, 0x2c, 0xca, 0x75, 0xdf, 0x6a, 0x26, 0x41, 0x8b, 0x47, 0x11, + 0x95, 0x92, 0x72, 0x86, 0xfa, 0x10, 0xfa, 0xd9, 0x69, 0xcc, 0xf1, 0x8e, 0x30, 0x39, 0xdf, 0x02, + 0x78, 0x2d, 0x0b, 0xed, 0x56, 0xa2, 0xa4, 0xc2, 0x2c, 0xa0, 0xac, 0xfb, 0xd2, 0x92, 0xe8, 0xfc, + 0x00, 0xe0, 0x7c, 0x16, 0xd1, 0x56, 0x88, 0x65, 0x6f, 0xa3, 0x4f, 0x98, 0x42, 0x6f, 0xc0, 0x57, + 0xfb, 0x03, 0xd8, 0xb3, 0x69, 0x06, 0x69, 0x9a, 0xe7, 0x32, 0x7c, 0x33, 0x85, 0xd1, 0xa7, 0xf0, + 0xe2, 0xb6, 0xc0, 0xbe, 0xbe, 0x01, 0x76, 0x5a, 0xbc, 0xff, 0x3c, 0xb7, 0xd6, 0xcd, 0xbc, 0x39, + 0x5f, 0x01, 0x58, 0x38, 0x27, 0x38, 0x89, 0x3e, 0x87, 0x8b, 0xc3, 0xe8, 0xa4, 0x36, 0x78, 0x24, + 0xb5, 0xd8, 0xb4, 0xbd, 0x5d, 0x7f, 0xca, 0x04, 0xaf, 0x9f, 0xe3, 0xb2, 0x39, 0xa3, 0x43, 0x36, + 0xb9, 0x29, 0xf4, 0xcf, 0xa1, 0x74, 0xf6, 0x00, 0x9c, 0xfe, 0x80, 0x90, 0x4d, 0xce, 0x43, 0xf4, + 0x05, 0x9c, 0x1d, 0xce, 0xe4, 0x98, 0xf3, 0x70, 0xcc, 0xd5, 0x1a, 0x6e, 0x00, 0x4d, 0xef, 0x7c, + 0x79, 0x01, 0x96, 0x5a, 0xa3, 0xc8, 0x56, 0x4c, 0x58, 0x60, 0xe6, 0x1b, 0x0e, 0x51, 0x01, 0x4e, + 0x29, 0xaa, 0x42, 0x62, 0x36, 0x85, 0x6b, 0x0e, 0xa8, 0x0a, 0x2f, 0x05, 0x44, 0xfa, 0x82, 0xc6, + 0xc3, 0x42, 0xb9, 0xa3, 0x10, 0xba, 0x0e, 0x67, 0x04, 0xf1, 0x69, 0x4c, 0x09, 0x53, 0x66, 0xfc, + 0xba, 0x43, 0x00, 0xf5, 0x60, 0x1e, 0x47, 0xe9, 0x6c, 0x98, 0x4c, 0xb5, 0x2e, 0x9d, 0xab, 0x35, + 0x15, 0xfa, 0xae, 0x15, 0x5a, 0x7b, 0x06, 0xa1, 0x23, 0x2a, 0xad, 0xff, 0xb5, 0xda, 0xde, 0xbd, + 0x4a, 0xee, 0xaf, 0x7b, 0x95, 0xdc, 0xaf, 0x07, 0x2b, 0x25, 0x4b, 0xd2, 0xe5, 0xfd, 0x11, 0x0e, + 0xa6, 0x74, 0x88, 0xc0, 0x79, 0x02, 0xe0, 0x42, 0x9b, 0x84, 0xa4, 0x9b, 0x16, 0x4b, 0x61, 0xa1, + 0x28, 0xeb, 0x7e, 0xc4, 0xb6, 0xd3, 0x91, 0x16, 0x0b, 0xd2, 0xa7, 0x5c, 0x6f, 0x96, 0xd1, 0xee, + 0x9d, 0x1d, 0xc0, 0xb6, 0x79, 0x6f, 0xc3, 0x29, 0xa9, 0xf0, 0x1d, 0x62, 0x3b, 0xf7, 0x05, 0xac, + 0x55, 0xe3, 0x0f, 0xb5, 0x61, 0xbe, 0x47, 0x68, 0xb7, 0x67, 0x52, 0x39, 0xd9, 0x7c, 0xeb, 0xef, + 0xc3, 0xca, 0x9c, 0x2f, 0x88, 0x9e, 0xb8, 0xcc, 0x33, 0xa6, 0x1f, 0x4f, 0xf6, 0x97, 0xcf, 0x62, + 0x36, 0x17, 0xe6, 0xe0, 0x3c, 0x06, 0x70, 0xc9, 0x2a, 0xa4, 0x9c, 0x65, 0x5a, 0xed, 0x0e, 0xdb, + 0x80, 0x57, 0x86, 0xd7, 0x40, 0x2f, 0x31, 0x22, 0xa5, 0xfd, 0x3e, 0x28, 0x3e, 0x3a, 0x58, 0x29, + 0xd8, 0xd0, 0xd6, 0x8d, 0x65, 0x4b, 0x09, 0x3d, 0x6a, 0x86, 0xf7, 0xda, 0xe2, 0x88, 0xc1, 0x7c, + 0xb6, 0xec, 0xc7, 0xd9, 0xc6, 0x96, 0x65, 0x6d, 0x52, 0x17, 0xd8, 0xf9, 0x0d, 0xc0, 0x1b, 0xff, + 0xdd, 0xc5, 0xb7, 0xa9, 0xea, 0xb5, 0x49, 0xcc, 0x25, 0x55, 0x63, 0x6a, 0xe8, 0xc5, 0x91, 0x86, + 0xd6, 0x26, 0x7b, 0x42, 0x45, 0x38, 0x1d, 0x18, 0xe2, 0xe2, 0x54, 0x6a, 0x18, 0x1c, 0xd7, 0x9c, + 0xbd, 0xff, 0x6d, 0xca, 0xe6, 0xad, 0xfb, 0x47, 0x65, 0xf0, 0xe0, 0xa8, 0x0c, 0x1e, 0x1e, 0x95, + 0xc1, 0x9f, 0x47, 0x65, 0xf0, 0xdd, 0x71, 0x39, 0xf7, 0xf0, 0xb8, 0x9c, 0x7b, 0x7c, 0x5c, 0xce, + 0x7d, 0xb6, 0xfa, 0xd4, 0x9c, 0x9d, 0xf9, 0x9a, 0x48, 0x53, 0xd8, 0xc9, 0xa7, 0x5f, 0x84, 0xef, + 0xfc, 0x13, 0x00, 0x00, 0xff, 0xff, 0x20, 0x86, 0xb8, 0xd3, 0xc4, 0x0a, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { diff --git a/x/distribution/types/tx.pb.go b/x/distribution/types/tx.pb.go index 7a9296627967..16e5c2d1c797 100644 --- a/x/distribution/types/tx.pb.go +++ b/x/distribution/types/tx.pb.go @@ -675,65 +675,64 @@ func init() { } var fileDescriptor_ed4f433d965e58ca = []byte{ - // 922 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x41, 0x6f, 0xe3, 0x44, - 0x14, 0xce, 0xa4, 0xa2, 0x28, 0xb3, 0x48, 0xdb, 0x84, 0xa2, 0xb6, 0xde, 0xc5, 0x59, 0x79, 0xa1, - 0x44, 0x11, 0x6b, 0x2b, 0x01, 0x81, 0x36, 0x1c, 0x80, 0x64, 0xb7, 0x12, 0x07, 0x8b, 0x55, 0x2a, - 0x40, 0xe2, 0x12, 0x39, 0xf1, 0xe0, 0x8e, 0x88, 0x3d, 0x96, 0x67, 0xd2, 0x6c, 0x6e, 0x0b, 0xe2, - 0x80, 0x90, 0x90, 0x90, 0xb8, 0x71, 0x61, 0x6f, 0xac, 0xd8, 0x03, 0x39, 0xf0, 0x23, 0xf6, 0x82, - 0x54, 0x71, 0xe2, 0x04, 0x28, 0x45, 0x0a, 0x12, 0x5c, 0xb9, 0x23, 0xdb, 0x63, 0xc7, 0x8e, 0x1d, - 0xbb, 0x29, 0x95, 0xe8, 0xa5, 0xad, 0x66, 0xde, 0xf7, 0xe6, 0x7b, 0xdf, 0x7c, 0xf3, 0x9e, 0x0b, - 0x5f, 0x18, 0x10, 0x6a, 0x12, 0xaa, 0xe8, 0x98, 0x32, 0x07, 0xf7, 0x47, 0x0c, 0x13, 0x4b, 0x39, - 0x6e, 0xf4, 0x11, 0xd3, 0x1a, 0x0a, 0xbb, 0x2f, 0xdb, 0x0e, 0x61, 0xa4, 0x72, 0xcd, 0x8f, 0x92, - 0xa3, 0x51, 0x32, 0x8f, 0x12, 0xb6, 0x0d, 0x62, 0x10, 0x2f, 0x4e, 0x71, 0xff, 0xf2, 0x21, 0x82, - 0xc8, 0x13, 0xf7, 0x35, 0x8a, 0xc2, 0x84, 0x03, 0x82, 0x2d, 0xbe, 0xbf, 0xe7, 0xef, 0xf7, 0x7c, - 0x20, 0xcf, 0xef, 0x6f, 0xed, 0x70, 0xa8, 0x49, 0x0d, 0xe5, 0xb8, 0xe1, 0xfe, 0xe2, 0x1b, 0x65, - 0xcd, 0xc4, 0x16, 0x51, 0xbc, 0x9f, 0x7c, 0x49, 0xce, 0xe2, 0x1f, 0xa3, 0xeb, 0xc5, 0x4b, 0x7f, - 0x01, 0xf8, 0x9c, 0x4a, 0x8d, 0x43, 0xc4, 0x3e, 0xc0, 0xec, 0x48, 0x77, 0xb4, 0xf1, 0xdb, 0xba, - 0xee, 0x20, 0x4a, 0x2b, 0x77, 0x61, 0x59, 0x47, 0x43, 0x64, 0x68, 0x8c, 0x38, 0x3d, 0xcd, 0x5f, - 0xdc, 0x05, 0x37, 0x40, 0xad, 0xd4, 0xde, 0xfd, 0xf9, 0xc7, 0x5b, 0xdb, 0x9c, 0x22, 0x0f, 0x3f, - 0x64, 0x0e, 0xb6, 0x8c, 0xee, 0x56, 0x08, 0x09, 0xd2, 0x74, 0xe0, 0xd6, 0x98, 0x67, 0x0e, 0xb3, - 0x14, 0x73, 0xb2, 0x5c, 0x1d, 0xc7, 0xb9, 0xb4, 0x0e, 0x3e, 0x7f, 0x58, 0x2d, 0xfc, 0xf9, 0xb0, - 0x5a, 0xf8, 0x74, 0x3e, 0xad, 0x27, 0x69, 0x7d, 0x31, 0x9f, 0xd6, 0x6f, 0xfa, 0x99, 0x6e, 0x51, - 0xfd, 0x63, 0x45, 0xa5, 0x86, 0x4a, 0x74, 0xfc, 0xd1, 0x64, 0xa9, 0x26, 0xa9, 0x0a, 0x9f, 0x4f, - 0x2d, 0xb6, 0x8b, 0xa8, 0x4d, 0x2c, 0x8a, 0xa4, 0x7f, 0x00, 0x14, 0x54, 0x6a, 0x04, 0xdb, 0x77, - 0x82, 0x93, 0xba, 0x68, 0xac, 0x39, 0xfa, 0x45, 0x69, 0x72, 0x17, 0x96, 0x8f, 0xb5, 0x21, 0xd6, - 0x63, 0x69, 0xf2, 0x44, 0xd9, 0x0a, 0x21, 0x81, 0x2a, 0xef, 0xe4, 0xab, 0xb2, 0x1f, 0x57, 0x65, - 0xa9, 0x2e, 0x4c, 0x2c, 0xbf, 0x30, 0xe9, 0x3b, 0x00, 0xa5, 0xd5, 0x75, 0x07, 0xf2, 0x54, 0x1e, - 0x00, 0xb8, 0xa9, 0x99, 0x64, 0x64, 0xb1, 0x5d, 0x70, 0x63, 0xa3, 0x76, 0xa5, 0xb9, 0xc7, 0xfd, - 0x26, 0xbb, 0xb6, 0x0e, 0x5e, 0x80, 0xdc, 0x21, 0xd8, 0x6a, 0xab, 0x4f, 0x7e, 0xad, 0x16, 0xbe, - 0xff, 0xad, 0x5a, 0x33, 0x30, 0x3b, 0x1a, 0xf5, 0xe5, 0x01, 0x31, 0xb9, 0xad, 0x95, 0x08, 0x29, - 0x36, 0xb1, 0x11, 0xf5, 0x00, 0xf4, 0x9b, 0xf9, 0xb4, 0xfe, 0xac, 0x35, 0x1a, 0x0e, 0x7b, 0x74, - 0x88, 0x07, 0xa8, 0xa7, 0xd1, 0x1e, 0x32, 0x6d, 0x36, 0x79, 0x34, 0x9f, 0xd6, 0x41, 0x97, 0x9f, - 0x2b, 0xfd, 0x00, 0xa0, 0x18, 0x61, 0xfa, 0x7e, 0x20, 0x4a, 0x87, 0x98, 0x26, 0xa6, 0x14, 0x13, - 0x2b, 0x5d, 0x5e, 0xb0, 0xb6, 0xbc, 0x71, 0xd3, 0x25, 0x32, 0xa6, 0x98, 0x2e, 0x42, 0x6a, 0x41, - 0x47, 0x7a, 0x0c, 0xe0, 0x7e, 0x36, 0xe3, 0xcb, 0xa4, 0xef, 0x97, 0x45, 0xb8, 0xad, 0x52, 0xe3, - 0x60, 0x64, 0xe9, 0x2e, 0xc1, 0x91, 0x85, 0xd9, 0xe4, 0x1e, 0x21, 0xc3, 0x4b, 0xc0, 0xad, 0xf2, - 0x1a, 0x2c, 0xe9, 0xc8, 0x26, 0x14, 0x33, 0xe2, 0xe4, 0xbe, 0x97, 0x45, 0x68, 0xab, 0x15, 0xbd, - 0xc9, 0xc5, 0xba, 0x7b, 0x83, 0xd5, 0xf8, 0x0d, 0x26, 0xca, 0x96, 0x44, 0x78, 0x3d, 0x6d, 0x3d, - 0xec, 0x18, 0x3f, 0x01, 0x78, 0x55, 0xa5, 0xc6, 0x7b, 0xb6, 0xae, 0x31, 0x74, 0x4f, 0x73, 0x34, - 0x93, 0xba, 0x3c, 0xb5, 0x11, 0x3b, 0x22, 0x0e, 0x66, 0x93, 0x5c, 0xe3, 0x2d, 0x42, 0x2b, 0x07, - 0x70, 0xd3, 0xf6, 0x32, 0x78, 0xc5, 0x5d, 0x69, 0xde, 0x94, 0x33, 0xe6, 0x8c, 0xec, 0x1f, 0xd6, - 0x2e, 0xb9, 0x5a, 0x73, 0x9d, 0x7c, 0x74, 0xab, 0xe5, 0xd5, 0x19, 0xe6, 0x75, 0xeb, 0x7c, 0x29, - 0x52, 0x67, 0x6c, 0x36, 0x2c, 0x71, 0x97, 0xf6, 0xe0, 0xce, 0xd2, 0x52, 0x58, 0xea, 0xe3, 0xa2, - 0x37, 0x2b, 0x62, 0x3a, 0x1c, 0xda, 0xc8, 0xd2, 0xcf, 0x5d, 0xf0, 0x75, 0x58, 0x72, 0xd0, 0x00, - 0xdb, 0x18, 0x59, 0xcc, 0xbf, 0xd0, 0xee, 0x62, 0x21, 0xea, 0xb8, 0x8d, 0xff, 0xc7, 0x71, 0xad, - 0xdb, 0x49, 0x25, 0xf7, 0x97, 0x95, 0x54, 0x52, 0x35, 0xe1, 0xb3, 0x26, 0xb9, 0x11, 0xca, 0xf9, - 0x47, 0xd1, 0xeb, 0x64, 0x77, 0x7c, 0x3b, 0x86, 0x6d, 0xc1, 0x6f, 0xb9, 0xd4, 0x7b, 0x73, 0xe7, - 0xd5, 0xf5, 0x62, 0x06, 0xcc, 0x65, 0xb8, 0x80, 0xb7, 0x62, 0x4f, 0x37, 0x76, 0x11, 0x2f, 0xa6, - 0x5d, 0xc4, 0x42, 0x4d, 0xae, 0xa3, 0x54, 0xf3, 0xba, 0x6f, 0x86, 0xca, 0xc1, 0x85, 0x34, 0xff, - 0x7e, 0x1a, 0x6e, 0xa8, 0xd4, 0xa8, 0x7c, 0x06, 0x60, 0x25, 0xe5, 0x83, 0xa8, 0x99, 0xf9, 0x1a, - 0x53, 0xbf, 0x2b, 0x84, 0xd6, 0xfa, 0x98, 0x70, 0x18, 0x7c, 0x0d, 0xe0, 0xce, 0xaa, 0x0f, 0x91, - 0xd7, 0xf3, 0xf2, 0xae, 0x00, 0x0a, 0x6f, 0x9e, 0x13, 0x18, 0xb2, 0xfa, 0x16, 0xc0, 0x6b, 0x59, - 0xc3, 0xf7, 0x8d, 0xb3, 0x1e, 0x90, 0x02, 0x16, 0x3a, 0xff, 0x01, 0x1c, 0x32, 0xfc, 0x04, 0xc0, - 0x72, 0x72, 0x7c, 0x35, 0xf2, 0x52, 0x27, 0x20, 0xc2, 0xed, 0xb5, 0x21, 0x21, 0x07, 0x07, 0x3e, - 0x13, 0x9b, 0x08, 0x2f, 0xe7, 0xa5, 0x8a, 0x46, 0x0b, 0xaf, 0xae, 0x13, 0x1d, 0x9e, 0xe9, 0xda, - 0x36, 0xa5, 0x37, 0xe7, 0xda, 0x36, 0x89, 0xc9, 0xb7, 0xed, 0xea, 0xb6, 0xe6, 0x19, 0x24, 0xab, - 0xa7, 0xe5, 0x1a, 0x24, 0x03, 0x9c, 0x6f, 0x90, 0x33, 0xbc, 0x73, 0xe1, 0xa9, 0x07, 0x6e, 0x8b, - 0x69, 0xbf, 0xfb, 0x68, 0x26, 0x82, 0x27, 0x33, 0x11, 0x9c, 0xcc, 0x44, 0xf0, 0xfb, 0x4c, 0x04, - 0x5f, 0x9d, 0x8a, 0x85, 0x93, 0x53, 0xb1, 0xf0, 0xcb, 0xa9, 0x58, 0xf8, 0xb0, 0x91, 0xd9, 0xc7, - 0xee, 0xc7, 0x87, 0xa8, 0xd7, 0xd6, 0xfa, 0x9b, 0xde, 0xbf, 0x54, 0xaf, 0xfc, 0x1b, 0x00, 0x00, - 0xff, 0xff, 0x64, 0x0b, 0x1d, 0xdd, 0x44, 0x0e, 0x00, 0x00, + // 898 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcf, 0x4f, 0xe3, 0x46, + 0x18, 0xcd, 0x80, 0x4a, 0x95, 0xa1, 0x12, 0x24, 0xa2, 0x02, 0x0c, 0x75, 0x90, 0x69, 0x69, 0x84, + 0x8a, 0xad, 0xa4, 0xbf, 0x44, 0x7a, 0x68, 0x9b, 0x00, 0x52, 0x0f, 0x51, 0x51, 0x50, 0x5b, 0xa9, + 0x17, 0xe4, 0xc4, 0xae, 0x33, 0x2a, 0xf6, 0x58, 0x9e, 0x09, 0x21, 0xb7, 0xb6, 0xea, 0xa1, 0xea, + 0xa1, 0xaa, 0xe8, 0x1f, 0x50, 0x8e, 0xa8, 0x97, 0x72, 0xe8, 0x1f, 0x81, 0x54, 0x55, 0x42, 0x3d, + 0xed, 0x69, 0x77, 0x15, 0x0e, 0xac, 0xb4, 0x7b, 0xdc, 0xbd, 0xaf, 0x6c, 0x8f, 0x1d, 0x3b, 0x76, + 0x6c, 0xc2, 0xb2, 0xec, 0x05, 0xd0, 0xcc, 0xf7, 0x9e, 0xdf, 0xf7, 0xfc, 0xe6, 0x1b, 0x03, 0xdf, + 0x6e, 0x61, 0xa2, 0x63, 0x22, 0x29, 0x88, 0x50, 0x0b, 0x35, 0x3b, 0x14, 0x61, 0x43, 0x3a, 0x2c, + 0x35, 0x55, 0x2a, 0x97, 0x24, 0x7a, 0x24, 0x9a, 0x16, 0xa6, 0x38, 0xbf, 0xe4, 0x56, 0x89, 0xc1, + 0x2a, 0x91, 0x55, 0x71, 0x73, 0x1a, 0xd6, 0xb0, 0x53, 0x27, 0xd9, 0x7f, 0xb9, 0x10, 0x8e, 0x67, + 0xc4, 0x4d, 0x99, 0xa8, 0x3e, 0x61, 0x0b, 0x23, 0x83, 0xed, 0x2f, 0xba, 0xfb, 0xfb, 0x2e, 0x90, + 0xf1, 0xbb, 0x5b, 0xf3, 0x0c, 0xaa, 0x13, 0x4d, 0x3a, 0x2c, 0xd9, 0xbf, 0xd8, 0x46, 0x4e, 0xd6, + 0x91, 0x81, 0x25, 0xe7, 0x27, 0x5b, 0x12, 0x93, 0xf4, 0x87, 0xe4, 0x3a, 0xf5, 0xc2, 0x63, 0x00, + 0xdf, 0xac, 0x13, 0x6d, 0x4f, 0xa5, 0xdf, 0x20, 0xda, 0x56, 0x2c, 0xb9, 0xfb, 0xb9, 0xa2, 0x58, + 0x2a, 0x21, 0xf9, 0x6d, 0x98, 0x53, 0xd4, 0x03, 0x55, 0x93, 0x29, 0xb6, 0xf6, 0x65, 0x77, 0x71, + 0x01, 0xac, 0x80, 0x62, 0xb6, 0xba, 0xf0, 0xff, 0x3f, 0x1b, 0x73, 0x4c, 0x22, 0x2b, 0xdf, 0xa3, + 0x16, 0x32, 0xb4, 0xc6, 0xac, 0x0f, 0xf1, 0x68, 0x6a, 0x70, 0xb6, 0xcb, 0x98, 0x7d, 0x96, 0x89, + 0x14, 0x96, 0x99, 0x6e, 0x58, 0x4b, 0x65, 0xe7, 0x97, 0x93, 0x42, 0xe6, 0xd1, 0x49, 0x21, 0xf3, + 0xd3, 0xd5, 0xd9, 0x7a, 0x54, 0xd6, 0xaf, 0x57, 0x67, 0xeb, 0xab, 0x2e, 0xd3, 0x06, 0x51, 0xbe, + 0x97, 0xea, 0x44, 0xab, 0x63, 0x05, 0x7d, 0xd7, 0x1b, 0xea, 0x49, 0x28, 0xc0, 0xb7, 0x62, 0x9b, + 0x6d, 0xa8, 0xc4, 0xc4, 0x06, 0x51, 0x85, 0x67, 0x00, 0x72, 0x75, 0xa2, 0x79, 0xdb, 0x5b, 0xde, + 0x93, 0x1a, 0x6a, 0x57, 0xb6, 0x94, 0xdb, 0xf2, 0x64, 0x1b, 0xe6, 0x0e, 0xe5, 0x03, 0xa4, 0x84, + 0x68, 0xd2, 0x4c, 0x99, 0xf5, 0x21, 0x9e, 0x2b, 0x5f, 0xa4, 0xbb, 0xb2, 0x16, 0x76, 0x65, 0xa8, + 0x2f, 0x84, 0x0d, 0xb7, 0x31, 0xe1, 0x37, 0x00, 0x85, 0xd1, 0x7d, 0x7b, 0xf6, 0xe4, 0xdb, 0x70, + 0x4a, 0xd6, 0x71, 0xc7, 0xa0, 0x0b, 0x60, 0x65, 0xb2, 0x38, 0x5d, 0x5e, 0x64, 0x71, 0x13, 0xed, + 0x54, 0x7b, 0x07, 0x40, 0xac, 0x61, 0x64, 0x54, 0x3f, 0x3c, 0xbf, 0x5f, 0xc8, 0xfc, 0xf5, 0xa0, + 0x50, 0xd4, 0x10, 0x6d, 0x77, 0x9a, 0x62, 0x0b, 0xeb, 0x2c, 0xd5, 0x52, 0x40, 0x13, 0xed, 0x99, + 0x2a, 0x71, 0x00, 0xe4, 0xf4, 0xea, 0x6c, 0x1d, 0x34, 0x18, 0xbf, 0xf0, 0x37, 0x80, 0x7c, 0x40, + 0xd0, 0xd7, 0x5e, 0xef, 0x35, 0xac, 0xeb, 0x88, 0x10, 0x84, 0x8d, 0x78, 0x17, 0xc1, 0xd8, 0x2e, + 0x86, 0xb3, 0x15, 0x61, 0x8c, 0xc9, 0x56, 0x40, 0xd4, 0x40, 0x8e, 0x70, 0x0c, 0xe0, 0x5a, 0xb2, + 0xe2, 0x57, 0x60, 0xe3, 0x53, 0x00, 0xe7, 0xea, 0x44, 0xdb, 0xe9, 0x18, 0x8a, 0xad, 0xa3, 0x63, + 0x20, 0xda, 0xdb, 0xc5, 0xf8, 0xe0, 0xee, 0x24, 0xe4, 0x3f, 0x82, 0x59, 0x45, 0x35, 0x31, 0x41, + 0x14, 0x5b, 0xa9, 0x21, 0x1f, 0x94, 0x56, 0x2a, 0xc1, 0xf7, 0x32, 0x58, 0xb7, 0xdf, 0x47, 0x21, + 0xfc, 0x3e, 0x22, 0xdd, 0x09, 0x3c, 0x5c, 0x8e, 0x5b, 0xf7, 0x8f, 0xf9, 0x7f, 0x00, 0xce, 0xd4, + 0x89, 0xf6, 0x95, 0xa9, 0xc8, 0x54, 0xdd, 0x95, 0x2d, 0x59, 0x27, 0xb6, 0x4e, 0xb9, 0x43, 0xdb, + 0xd8, 0x42, 0xb4, 0x97, 0x1a, 0xa3, 0x41, 0x69, 0x7e, 0x07, 0x4e, 0x99, 0x0e, 0x83, 0xd3, 0xdc, + 0x74, 0x79, 0x55, 0x4c, 0xb8, 0x1c, 0x44, 0xf7, 0x61, 0xd5, 0xac, 0xed, 0x29, 0xf3, 0xc9, 0x45, + 0x57, 0x2a, 0x4e, 0x9f, 0x3e, 0xaf, 0xdd, 0xe7, 0xbb, 0x81, 0x3e, 0x43, 0x03, 0x7d, 0x48, 0xbb, + 0xb0, 0x08, 0xe7, 0x87, 0x96, 0xfc, 0x56, 0x8f, 0x27, 0x9c, 0x01, 0x1f, 0xf2, 0x61, 0xcf, 0x54, + 0x0d, 0xe5, 0xc6, 0x0d, 0x2f, 0xc3, 0xac, 0xa5, 0xb6, 0x90, 0x89, 0x54, 0x83, 0xba, 0x2f, 0xb4, + 0x31, 0x58, 0x08, 0x04, 0x6b, 0xf2, 0xe5, 0x06, 0xab, 0xb2, 0x19, 0x35, 0x6c, 0x6d, 0xd8, 0x30, + 0x29, 0xb6, 0x75, 0x76, 0x0f, 0x44, 0x37, 0x7c, 0xd7, 0xfe, 0x9d, 0x70, 0xc6, 0xcf, 0x96, 0x9b, + 0x3a, 0xff, 0x2c, 0xbb, 0xe3, 0x90, 0x38, 0x27, 0xe8, 0xa6, 0xf6, 0xdd, 0xce, 0xf0, 0xbf, 0x43, + 0x9f, 0x3f, 0x0b, 0x1d, 0xc4, 0x90, 0xdf, 0xef, 0xc4, 0xf9, 0x3d, 0x30, 0x8d, 0xd9, 0x25, 0x14, + 0x9d, 0xc9, 0x98, 0x60, 0xa6, 0xe7, 0x7b, 0xf9, 0xc9, 0xeb, 0x70, 0xb2, 0x4e, 0xb4, 0xfc, 0xcf, + 0x00, 0xe6, 0x63, 0xbe, 0x49, 0xca, 0x89, 0x67, 0x2b, 0xf6, 0x6a, 0xe7, 0x2a, 0xe3, 0x63, 0xfc, + 0x41, 0xfd, 0x07, 0x80, 0xf3, 0xa3, 0xbe, 0x05, 0x3e, 0x4e, 0xe3, 0x1d, 0x01, 0xe4, 0x3e, 0xbd, + 0x21, 0xd0, 0x57, 0xf5, 0x27, 0x80, 0x4b, 0x49, 0x17, 0xe3, 0x27, 0xd7, 0x7d, 0x40, 0x0c, 0x98, + 0xab, 0xbd, 0x00, 0xd8, 0x57, 0xf8, 0x23, 0x80, 0xb9, 0xe8, 0x9d, 0x53, 0x4a, 0xa3, 0x8e, 0x40, + 0xb8, 0xcd, 0xb1, 0x21, 0xbe, 0x06, 0x0b, 0xbe, 0x11, 0x9a, 0xef, 0xef, 0xa5, 0x51, 0x05, 0xab, + 0xb9, 0x0f, 0xc6, 0xa9, 0xf6, 0x9f, 0x69, 0xc7, 0x36, 0x66, 0xd2, 0xa6, 0xc6, 0x36, 0x8a, 0x49, + 0x8f, 0xed, 0xe8, 0xe9, 0xe5, 0x04, 0x24, 0x69, 0x74, 0xa5, 0x06, 0x24, 0x01, 0x9c, 0x1e, 0x90, + 0x6b, 0x9c, 0x73, 0xee, 0xb5, 0x1f, 0xec, 0x11, 0x53, 0xfd, 0xf2, 0xb4, 0xcf, 0x83, 0xf3, 0x3e, + 0x0f, 0x2e, 0xfa, 0x3c, 0x78, 0xd8, 0xe7, 0xc1, 0xef, 0x97, 0x7c, 0xe6, 0xe2, 0x92, 0xcf, 0xdc, + 0xbb, 0xe4, 0x33, 0xdf, 0x96, 0x12, 0xe7, 0xd5, 0x51, 0xf8, 0x4a, 0x74, 0xc6, 0x57, 0x73, 0xca, + 0xf9, 0xaf, 0xe6, 0xfd, 0xe7, 0x01, 0x00, 0x00, 0xff, 0xff, 0xfa, 0x83, 0xe6, 0x97, 0xc7, 0x0d, + 0x00, 0x00, } func (this *MsgSetWithdrawAddressResponse) Equal(that interface{}) bool { diff --git a/x/feegrant/feegrant.pb.go b/x/feegrant/feegrant.pb.go index e75560b57f92..e7a598d18792 100644 --- a/x/feegrant/feegrant.pb.go +++ b/x/feegrant/feegrant.pb.go @@ -295,49 +295,48 @@ func init() { } var fileDescriptor_7279582900c30aea = []byte{ - // 667 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xc1, 0x4f, 0xd4, 0x4e, - 0x14, 0xde, 0x61, 0x81, 0x5f, 0x76, 0xf6, 0x27, 0x42, 0x21, 0xb1, 0x4b, 0x4c, 0x97, 0x6c, 0xa2, - 0x2e, 0x24, 0xb4, 0x01, 0x6f, 0x9c, 0xa0, 0x18, 0x51, 0x03, 0x09, 0x59, 0x3c, 0x99, 0x98, 0x66, - 0xb6, 0x1d, 0xea, 0x84, 0x76, 0xa6, 0xe9, 0xcc, 0x2a, 0xfb, 0x1f, 0xa8, 0x27, 0xe2, 0xc1, 0x18, - 0x4f, 0xde, 0x34, 0x9e, 0x38, 0xf0, 0x47, 0x10, 0x0f, 0x86, 0x78, 0xf2, 0x24, 0x06, 0x0e, 0x7b, - 0xf6, 0x3f, 0x30, 0x9d, 0x99, 0xee, 0x2e, 0x20, 0x11, 0x12, 0xc3, 0x65, 0xb7, 0xf3, 0xe6, 0x7d, - 0xdf, 0xfb, 0xbe, 0xf7, 0x5e, 0x53, 0x78, 0xdb, 0x67, 0x3c, 0x66, 0xdc, 0xd9, 0xc4, 0x38, 0x4c, - 0x11, 0x15, 0xce, 0xf3, 0xb9, 0x26, 0x16, 0x68, 0xae, 0x1b, 0xb0, 0x93, 0x94, 0x09, 0x66, 0xdc, - 0x50, 0x79, 0x76, 0x37, 0xac, 0xf3, 0x26, 0x27, 0x42, 0x16, 0x32, 0x99, 0xe3, 0x64, 0x4f, 0x2a, - 0x7d, 0xb2, 0x12, 0x32, 0x16, 0x46, 0xd8, 0x91, 0xa7, 0x66, 0x6b, 0xd3, 0x41, 0xb4, 0x9d, 0x5f, - 0x29, 0x26, 0x4f, 0x61, 0x34, 0xad, 0xba, 0xb2, 0xb4, 0x98, 0x26, 0xe2, 0xb8, 0x2b, 0xc4, 0x67, - 0x84, 0xea, 0xfb, 0x31, 0x14, 0x13, 0xca, 0x1c, 0xf9, 0xab, 0x43, 0xd5, 0xd3, 0x85, 0x04, 0x89, - 0x31, 0x17, 0x28, 0x4e, 0x72, 0xce, 0xd3, 0x09, 0x41, 0x2b, 0x45, 0x82, 0x30, 0xcd, 0x59, 0xfb, - 0x38, 0x00, 0x47, 0x5c, 0xc4, 0x89, 0xbf, 0x14, 0x45, 0xec, 0x05, 0xa2, 0x3e, 0x36, 0x5e, 0x01, - 0x58, 0xe6, 0x09, 0xa6, 0x81, 0x17, 0x91, 0x98, 0x08, 0x13, 0x4c, 0x15, 0xeb, 0xe5, 0xf9, 0x8a, - 0xad, 0xb5, 0x66, 0xea, 0x72, 0xfb, 0xf6, 0x32, 0x23, 0xd4, 0x5d, 0xdb, 0xff, 0x51, 0x2d, 0x7c, - 0x3e, 0xac, 0xd6, 0x43, 0x22, 0x9e, 0xb5, 0x9a, 0xb6, 0xcf, 0x62, 0x6d, 0x4c, 0xff, 0xcd, 0xf2, - 0x60, 0xcb, 0x11, 0xed, 0x04, 0x73, 0x09, 0xe0, 0xef, 0x3b, 0xbb, 0x33, 0xe3, 0xb4, 0x15, 0x45, - 0x1e, 0x8f, 0x88, 0x8f, 0x3d, 0xc4, 0x3d, 0x1c, 0x27, 0xa2, 0xfd, 0xa9, 0xb3, 0x3b, 0x03, 0x1a, - 0x50, 0x16, 0x5f, 0xcd, 0x6a, 0x1b, 0x8b, 0x10, 0xe2, 0xed, 0x84, 0x28, 0xc9, 0xe6, 0xc0, 0x14, - 0xa8, 0x97, 0xe7, 0x27, 0x6d, 0xe5, 0xc9, 0xce, 0x3d, 0xd9, 0x8f, 0x73, 0xd3, 0xee, 0xe0, 0xce, - 0x61, 0x15, 0x34, 0xfa, 0x30, 0x0b, 0x2b, 0x5f, 0xf6, 0x66, 0x6f, 0x9d, 0x33, 0x3d, 0xfb, 0x3e, - 0xc6, 0x5d, 0xdf, 0x0f, 0x5f, 0x77, 0x76, 0x67, 0x2a, 0x7d, 0x82, 0x4f, 0xb6, 0xa5, 0xd6, 0x19, - 0x84, 0x63, 0xeb, 0x38, 0x25, 0x2c, 0xe8, 0x6f, 0xd6, 0x03, 0x38, 0xd4, 0xcc, 0xf2, 0x4c, 0x20, - 0xb5, 0xdd, 0xb1, 0xcf, 0x2b, 0x75, 0x92, 0xcd, 0x2d, 0x65, 0x3d, 0x53, 0x7e, 0x15, 0x81, 0xb1, - 0x08, 0x87, 0x13, 0x49, 0xaf, 0x6d, 0x56, 0xce, 0xd8, 0xbc, 0xa7, 0x47, 0xe7, 0x5e, 0xcb, 0xc0, - 0xef, 0x0e, 0xab, 0x40, 0x11, 0x68, 0x9c, 0xf1, 0x16, 0x40, 0x43, 0x3d, 0x7a, 0xfd, 0xf3, 0x2b, - 0x5e, 0xf1, 0xfc, 0x46, 0x95, 0x86, 0x8d, 0xde, 0x14, 0xdf, 0x00, 0xa8, 0x83, 0x9e, 0x8f, 0xa8, - 0x12, 0x67, 0x0e, 0x5e, 0xb1, 0xac, 0x11, 0xa5, 0x60, 0x19, 0x51, 0xa9, 0xcc, 0x58, 0x85, 0xff, - 0x6b, 0x4d, 0x29, 0xe6, 0x58, 0x98, 0x43, 0x7f, 0x5d, 0x2e, 0xd9, 0xf6, 0x9d, 0x6e, 0xdb, 0xcb, - 0x0a, 0xde, 0xc8, 0xd0, 0x0b, 0x8f, 0x2e, 0xb5, 0x66, 0x37, 0xfb, 0x0c, 0x9c, 0xd9, 0xa9, 0xda, - 0x2f, 0x00, 0xc7, 0xe5, 0x09, 0x07, 0x6b, 0x3c, 0xec, 0xed, 0xda, 0x53, 0x58, 0x42, 0xf9, 0x41, - 0xef, 0xdb, 0xc4, 0x19, 0xb9, 0x4b, 0xb4, 0xed, 0x4e, 0x5f, 0x58, 0x4c, 0xa3, 0xc7, 0x68, 0x4c, - 0xc3, 0x51, 0xa4, 0xaa, 0x7a, 0x31, 0xe6, 0x1c, 0x85, 0x98, 0x9b, 0x03, 0x53, 0xc5, 0x7a, 0xa9, - 0x71, 0x5d, 0xc7, 0xd7, 0x74, 0x78, 0x61, 0xfd, 0xe5, 0x87, 0x6a, 0xe1, 0x52, 0x8e, 0xad, 0x3e, - 0xc7, 0x7f, 0xf0, 0x56, 0xfb, 0x0a, 0xe0, 0xd0, 0x4a, 0x46, 0x61, 0xcc, 0xc3, 0xff, 0x24, 0x17, - 0x4e, 0xa5, 0xc7, 0x92, 0x6b, 0x7e, 0xdb, 0x9b, 0x9d, 0xd0, 0x85, 0x96, 0x82, 0x20, 0xc5, 0x9c, - 0x6f, 0x88, 0x94, 0xd0, 0xb0, 0x91, 0x27, 0xf6, 0x30, 0x58, 0xbe, 0x3c, 0x17, 0xc0, 0x9c, 0xea, - 0x66, 0xf1, 0x5f, 0x77, 0xd3, 0x9d, 0xdb, 0x3f, 0xb2, 0xc0, 0xc1, 0x91, 0x05, 0x7e, 0x1e, 0x59, - 0x60, 0xe7, 0xd8, 0x2a, 0x1c, 0x1c, 0x5b, 0x85, 0xef, 0xc7, 0x56, 0xe1, 0x89, 0xfe, 0x96, 0xf0, - 0x60, 0xcb, 0x26, 0xcc, 0xd9, 0xee, 0x7e, 0x6a, 0x9a, 0xc3, 0xb2, 0xec, 0xdd, 0xdf, 0x01, 0x00, - 0x00, 0xff, 0xff, 0x39, 0x59, 0xf5, 0xd3, 0x95, 0x06, 0x00, 0x00, + // 645 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xbf, 0x6f, 0xd3, 0x4e, + 0x14, 0x8f, 0x9b, 0xb6, 0x5f, 0xe5, 0xf2, 0xa5, 0xb4, 0xa6, 0x12, 0x4e, 0x85, 0xec, 0x2a, 0x12, + 0x90, 0x56, 0xaa, 0xad, 0x16, 0xb1, 0x74, 0x6a, 0x5c, 0x44, 0x01, 0xb5, 0x52, 0xe5, 0x32, 0x21, + 0xa1, 0xe8, 0x6c, 0x5f, 0xcd, 0xa9, 0xb1, 0xcf, 0xf8, 0x1c, 0x68, 0x18, 0x98, 0x11, 0x03, 0xca, + 0xc8, 0xc8, 0x88, 0x98, 0x3a, 0x94, 0xff, 0xa1, 0x62, 0x40, 0x15, 0x13, 0x13, 0x41, 0xc9, 0xd0, + 0x99, 0xff, 0x00, 0xf9, 0xee, 0xec, 0xb8, 0x09, 0x15, 0xad, 0x44, 0x97, 0xc4, 0xf7, 0xee, 0xbd, + 0xcf, 0x8f, 0xf7, 0x9e, 0x65, 0x70, 0xcb, 0x21, 0xd4, 0x27, 0xd4, 0xd8, 0x45, 0xc8, 0x8b, 0x60, + 0x10, 0x1b, 0x2f, 0x96, 0x6d, 0x14, 0xc3, 0xe5, 0x2c, 0xa0, 0x87, 0x11, 0x89, 0x89, 0x7c, 0x9d, + 0xe7, 0xe9, 0x59, 0x58, 0xe4, 0xcd, 0xcd, 0x7a, 0xc4, 0x23, 0x2c, 0xc7, 0x48, 0x9e, 0x78, 0xfa, + 0x5c, 0xc5, 0x23, 0xc4, 0x6b, 0x22, 0x83, 0x9d, 0xec, 0xd6, 0xae, 0x01, 0x83, 0x76, 0x7a, 0xc5, + 0x91, 0x1a, 0xbc, 0x46, 0xc0, 0xf2, 0x2b, 0x55, 0x88, 0xb1, 0x21, 0x45, 0x99, 0x10, 0x87, 0xe0, + 0x40, 0xdc, 0xcf, 0x40, 0x1f, 0x07, 0xc4, 0x60, 0xbf, 0x22, 0xa4, 0x0d, 0x13, 0xc5, 0xd8, 0x47, + 0x34, 0x86, 0x7e, 0x98, 0x62, 0x0e, 0x27, 0xb8, 0xad, 0x08, 0xc6, 0x98, 0x08, 0xcc, 0xea, 0xbb, + 0x31, 0x30, 0x65, 0x42, 0x8a, 0x9d, 0x7a, 0xb3, 0x49, 0x5e, 0xc2, 0xc0, 0x41, 0xf2, 0x73, 0x50, + 0xa6, 0x21, 0x0a, 0xdc, 0x46, 0x13, 0xfb, 0x38, 0x56, 0xa4, 0xf9, 0x62, 0xad, 0xbc, 0x52, 0xd1, + 0x85, 0xd4, 0x44, 0x5c, 0xea, 0x5e, 0x5f, 0x27, 0x38, 0x30, 0xef, 0x1e, 0xfd, 0xd0, 0x0a, 0x9f, + 0xba, 0x5a, 0xcd, 0xc3, 0xf1, 0xb3, 0x96, 0xad, 0x3b, 0xc4, 0x17, 0xbe, 0xc4, 0xdf, 0x12, 0x75, + 0xf7, 0x8c, 0xb8, 0x1d, 0x22, 0xca, 0x0a, 0xe8, 0xc7, 0x93, 0x83, 0x45, 0xc9, 0x02, 0x8c, 0x64, + 0x33, 0xe1, 0x90, 0xd7, 0x00, 0x40, 0xfb, 0x21, 0xe6, 0xca, 0x94, 0xb1, 0x79, 0xa9, 0x56, 0x5e, + 0x99, 0xd3, 0xb9, 0x74, 0x3d, 0x95, 0xae, 0x3f, 0x4e, 0xbd, 0x99, 0xe3, 0x9d, 0xae, 0x26, 0x59, + 0xb9, 0x9a, 0xd5, 0x8d, 0x2f, 0x87, 0x4b, 0x37, 0xcf, 0x18, 0x92, 0x7e, 0x1f, 0xa1, 0xcc, 0xde, + 0xc3, 0xb7, 0x27, 0x07, 0x8b, 0x95, 0x9c, 0xb0, 0xd3, 0xee, 0xab, 0x9f, 0xc7, 0xc1, 0xcc, 0x36, + 0x8a, 0x30, 0x71, 0xf3, 0x3d, 0x79, 0x00, 0x26, 0xec, 0x24, 0x4f, 0x91, 0x98, 0xb6, 0xdb, 0xfa, + 0x59, 0x54, 0xa7, 0xd1, 0xcc, 0x52, 0xd2, 0x1b, 0xee, 0x97, 0x03, 0xc8, 0x6b, 0x60, 0x32, 0x64, + 0xf0, 0xc2, 0x66, 0x65, 0xc4, 0xe6, 0x3d, 0x31, 0x21, 0xf3, 0x4a, 0x52, 0xfc, 0xbe, 0xab, 0x49, + 0x1c, 0x40, 0xd4, 0xc9, 0xaf, 0x81, 0xcc, 0x9f, 0x1a, 0xf9, 0x31, 0x15, 0x2f, 0x69, 0x4c, 0xd3, + 0x9c, 0x6b, 0x67, 0x30, 0xac, 0x57, 0x40, 0xc4, 0x1a, 0x0e, 0x0c, 0xb8, 0x06, 0x65, 0xfc, 0x92, + 0xd8, 0xa7, 0x38, 0xd3, 0x3a, 0x0c, 0x98, 0x00, 0x79, 0x13, 0xfc, 0x2f, 0xb8, 0x23, 0x44, 0x51, + 0xac, 0x4c, 0xfc, 0x75, 0x55, 0x58, 0x13, 0x3b, 0x59, 0x13, 0xcb, 0xbc, 0xdc, 0x4a, 0xaa, 0x57, + 0x1f, 0x5d, 0x68, 0x69, 0x6e, 0xe4, 0x84, 0x8e, 0x6c, 0x48, 0xf5, 0x97, 0x04, 0xae, 0xb1, 0x13, + 0x72, 0xb7, 0xa8, 0x37, 0xd8, 0x9c, 0xa7, 0xa0, 0x04, 0xd3, 0x83, 0xd8, 0x9e, 0xd9, 0x11, 0xb9, + 0xf5, 0xa0, 0x6d, 0x2e, 0x9c, 0x5b, 0x8c, 0x35, 0x40, 0x94, 0x17, 0xc0, 0x34, 0xe4, 0xac, 0x0d, + 0x1f, 0x51, 0x0a, 0x3d, 0x44, 0x95, 0xb1, 0xf9, 0x62, 0xad, 0x64, 0x5d, 0x15, 0xf1, 0x2d, 0x11, + 0x5e, 0xdd, 0x7e, 0xf3, 0x41, 0x2b, 0x5c, 0xc8, 0xb1, 0x9a, 0x73, 0xfc, 0x07, 0x6f, 0xd5, 0xaf, + 0x12, 0x98, 0xd8, 0x48, 0x20, 0xe4, 0x15, 0xf0, 0x1f, 0xc3, 0x42, 0x11, 0xf3, 0x58, 0x32, 0x95, + 0x6f, 0x87, 0x4b, 0xb3, 0x82, 0xa8, 0xee, 0xba, 0x11, 0xa2, 0x74, 0x27, 0x8e, 0x70, 0xe0, 0x59, + 0x69, 0xe2, 0xa0, 0x06, 0xb1, 0x57, 0xe1, 0x1c, 0x35, 0x43, 0xdd, 0x2c, 0xfe, 0xeb, 0x6e, 0x9a, + 0xcb, 0x47, 0x3d, 0x55, 0x3a, 0xee, 0xa9, 0xd2, 0xcf, 0x9e, 0x2a, 0x75, 0xfa, 0x6a, 0xe1, 0xb8, + 0xaf, 0x16, 0xbe, 0xf7, 0xd5, 0xc2, 0x13, 0xf1, 0x01, 0xa0, 0xee, 0x9e, 0x8e, 0x89, 0xb1, 0x9f, + 0x7d, 0x1f, 0xec, 0x49, 0x46, 0x7b, 0xe7, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x52, 0x13, 0x7a, + 0xee, 0x4a, 0x06, 0x00, 0x00, } func (m *BasicAllowance) Marshal() (dAtA []byte, err error) { diff --git a/x/gov/types/v1beta1/tx.pb.go b/x/gov/types/v1beta1/tx.pb.go index 301d5273d2a9..bd435422e49d 100644 --- a/x/gov/types/v1beta1/tx.pb.go +++ b/x/gov/types/v1beta1/tx.pb.go @@ -382,55 +382,53 @@ func init() { func init() { proto.RegisterFile("cosmos/gov/v1beta1/tx.proto", fileDescriptor_3c053992595e3dce) } var fileDescriptor_3c053992595e3dce = []byte{ - // 760 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x95, 0x3d, 0x6c, 0xda, 0x5a, - 0x14, 0xc7, 0x31, 0x24, 0xe1, 0xe5, 0xe6, 0x29, 0x51, 0xfc, 0x78, 0x0a, 0x38, 0x91, 0x41, 0x3c, - 0xbd, 0x88, 0x52, 0x61, 0x17, 0x9a, 0x66, 0x60, 0x0b, 0xed, 0xd0, 0x0f, 0xd1, 0x0f, 0x22, 0xb5, - 0x52, 0x17, 0x6a, 0xe0, 0xc6, 0xb9, 0x2a, 0xf8, 0x5a, 0xdc, 0x0b, 0x0a, 0x5b, 0xd4, 0xa9, 0xea, - 0xd4, 0xae, 0x9d, 0x32, 0x56, 0x9d, 0x18, 0xb2, 0x76, 0x8f, 0x3a, 0x45, 0x9d, 0x3a, 0x54, 0x69, - 0x95, 0xa8, 0xa2, 0xea, 0xda, 0xa5, 0x63, 0xe5, 0xfb, 0x61, 0x48, 0x20, 0x24, 0xcd, 0xd0, 0x05, - 0xdb, 0xe7, 0x9c, 0xff, 0x39, 0xf7, 0xfc, 0x7c, 0x0e, 0x06, 0x8b, 0x55, 0x4c, 0x1a, 0x98, 0x98, - 0x36, 0x6e, 0x9b, 0xed, 0x6c, 0x05, 0x52, 0x2b, 0x6b, 0xd2, 0x2d, 0xc3, 0x6d, 0x62, 0x8a, 0x55, - 0x95, 0x3b, 0x0d, 0x1b, 0xb7, 0x0d, 0xe1, 0xd4, 0x74, 0x21, 0xa8, 0x58, 0x04, 0xfa, 0x8a, 0x2a, - 0x46, 0x0e, 0xd7, 0x68, 0x4b, 0x23, 0x12, 0x7a, 0x7a, 0xee, 0x8d, 0x71, 0x6f, 0x99, 0x3d, 0x99, - 0x22, 0x3d, 0x77, 0x45, 0x6c, 0x6c, 0x63, 0x6e, 0xf7, 0xee, 0xa4, 0xc0, 0xc6, 0xd8, 0xae, 0x43, - 0x93, 0x3d, 0x55, 0x5a, 0x1b, 0xa6, 0xe5, 0x74, 0x84, 0x6b, 0x41, 0x54, 0x6a, 0x10, 0xdb, 0x6c, - 0x67, 0xbd, 0x8b, 0x70, 0xcc, 0x5b, 0x0d, 0xe4, 0x60, 0x93, 0xfd, 0x72, 0x53, 0xf2, 0x6b, 0x10, - 0xcc, 0x17, 0x89, 0xbd, 0xde, 0xaa, 0x34, 0x10, 0xbd, 0xdf, 0xc4, 0x2e, 0x26, 0x56, 0x5d, 0xbd, - 0x0b, 0xc2, 0x55, 0xec, 0x50, 0xe8, 0xd0, 0xa8, 0x92, 0x50, 0x52, 0x33, 0xb9, 0x88, 0xc1, 0xcb, - 0x19, 0xb2, 0x9c, 0xb1, 0xe6, 0x74, 0x0a, 0xfa, 0xfb, 0xdd, 0x8c, 0x36, 0x8c, 0xc2, 0xb8, 0xce, - 0xb5, 0x25, 0x99, 0x44, 0x7d, 0xa5, 0x80, 0x39, 0xe4, 0x20, 0x8a, 0xac, 0x7a, 0xb9, 0x06, 0x5d, - 0x4c, 0x10, 0x8d, 0x06, 0x13, 0xa1, 0xd4, 0x4c, 0x2e, 0x66, 0x08, 0xbd, 0x87, 0x6d, 0x20, 0x01, - 0x72, 0x0a, 0xc5, 0xbd, 0x83, 0x78, 0xe0, 0xed, 0xe7, 0x78, 0xca, 0x46, 0x74, 0xb3, 0x55, 0x31, - 0xaa, 0xb8, 0x21, 0xc0, 0x88, 0x4b, 0x86, 0xd4, 0x9e, 0x9a, 0xb4, 0xe3, 0x42, 0xc2, 0x04, 0xe4, - 0x75, 0xaf, 0x9b, 0xfe, 0xc7, 0x69, 0xd5, 0xeb, 0x65, 0x52, 0x47, 0x55, 0x58, 0xb6, 0x48, 0x19, - 0x36, 0x5c, 0xda, 0x79, 0xd3, 0xeb, 0xa6, 0x95, 0xd2, 0xac, 0x38, 0xc0, 0x0d, 0x5e, 0x5f, 0x5d, - 0x01, 0x7f, 0xb9, 0xac, 0x5f, 0xd8, 0x8c, 0x86, 0x12, 0x4a, 0x6a, 0xba, 0x10, 0xfd, 0xb0, 0x9b, - 0x89, 0x88, 0xe3, 0xac, 0xd5, 0x6a, 0x4d, 0x48, 0xc8, 0x3a, 0x6d, 0x22, 0xc7, 0x2e, 0xf9, 0x91, - 0xf9, 0xd5, 0xe7, 0x3b, 0xf1, 0xc0, 0xb7, 0x9d, 0x78, 0xe0, 0x59, 0xaf, 0x9b, 0xf6, 0xcd, 0x2f, - 0x7a, 0xdd, 0xf4, 0xd2, 0xc0, 0xa1, 0x86, 0x88, 0x26, 0x4b, 0x20, 0x36, 0x64, 0x2c, 0x41, 0xe2, - 0x62, 0x87, 0x40, 0xf5, 0x1a, 0x98, 0x71, 0x85, 0xad, 0x8c, 0x6a, 0x0c, 0xf9, 0x44, 0x21, 0xf2, - 0xfd, 0x20, 0x3e, 0x68, 0xe6, 0x5d, 0x00, 0x69, 0xb9, 0x55, 0x4b, 0xbe, 0x53, 0x40, 0xb8, 0x48, - 0xec, 0x87, 0x98, 0x42, 0x35, 0x3e, 0x22, 0xc5, 0x60, 0xb0, 0x6a, 0x80, 0xc9, 0x36, 0xa6, 0xb0, - 0x19, 0x0d, 0x9e, 0xd1, 0x2b, 0x0f, 0x53, 0x57, 0xc1, 0x14, 0x76, 0x29, 0xc2, 0x0e, 0x83, 0x33, - 0x9b, 0xd3, 0x8d, 0x11, 0x2f, 0xda, 0x2b, 0x7d, 0x8f, 0x45, 0x95, 0x44, 0x74, 0xfe, 0xd2, 0x20, - 0x20, 0x9e, 0xcb, 0xa3, 0xa3, 0x1e, 0xa7, 0xe3, 0x09, 0x93, 0xf3, 0x60, 0x4e, 0xdc, 0x4a, 0x12, - 0xc9, 0x9f, 0x8a, 0x6f, 0x7b, 0x04, 0x91, 0xbd, 0x49, 0x61, 0xed, 0x82, 0x74, 0x7e, 0xbb, 0xe1, - 0x3b, 0x20, 0xcc, 0x5b, 0x20, 0xd1, 0x10, 0x1b, 0xcd, 0xe5, 0x51, 0x1d, 0xcb, 0x53, 0xf5, 0x3b, - 0x2f, 0x4c, 0x7b, 0x73, 0xca, 0xeb, 0xcb, 0x0c, 0xf9, 0xec, 0x68, 0x0a, 0xda, 0x30, 0x05, 0x99, - 0x30, 0x19, 0x03, 0x0b, 0x27, 0x4c, 0x3e, 0x95, 0xdd, 0x20, 0x00, 0x45, 0x62, 0xcb, 0xc9, 0xbd, - 0x20, 0x90, 0x55, 0x30, 0x2d, 0x76, 0x0f, 0x9f, 0x0d, 0xa5, 0x1f, 0xaa, 0x6e, 0x2b, 0x60, 0xca, - 0x6a, 0xe0, 0x96, 0x43, 0x05, 0x98, 0x3f, 0xb7, 0xb3, 0xa2, 0x6e, 0x7e, 0x45, 0xe2, 0xdc, 0xfe, - 0x94, 0x60, 0x48, 0xfb, 0xc7, 0xf3, 0xb0, 0xfe, 0x7b, 0x1c, 0xab, 0xe0, 0x94, 0x8c, 0x00, 0xb5, - 0xff, 0x24, 0x61, 0xe6, 0x7e, 0x04, 0x41, 0xa8, 0x48, 0x6c, 0x75, 0x03, 0xcc, 0x9e, 0xf8, 0xd7, - 0xfb, 0x7f, 0xd4, 0x0b, 0x1f, 0xda, 0x5a, 0x2d, 0x73, 0xae, 0x30, 0x7f, 0xb9, 0x6f, 0x82, 0x09, - 0xb6, 0xa1, 0x8b, 0xa7, 0xc8, 0x3c, 0xa7, 0xf6, 0xdf, 0x18, 0xa7, 0x9f, 0xe9, 0x09, 0xf8, 0xfb, - 0xd8, 0x62, 0x8c, 0x13, 0xc9, 0x20, 0xed, 0xf2, 0x39, 0x82, 0xfc, 0x0a, 0x0f, 0x40, 0x58, 0x0e, - 0x99, 0x7e, 0x8a, 0x4e, 0xf8, 0xb5, 0xe5, 0xf1, 0x7e, 0x99, 0x52, 0x9b, 0xdc, 0xf6, 0xde, 0x64, - 0xe1, 0xf6, 0xde, 0xa1, 0xae, 0xec, 0x1f, 0xea, 0xca, 0x97, 0x43, 0x5d, 0x79, 0x79, 0xa4, 0x07, - 0xf6, 0x8f, 0xf4, 0xc0, 0xc7, 0x23, 0x3d, 0xf0, 0xf8, 0xca, 0xd8, 0x51, 0xd9, 0x62, 0xdf, 0x4b, - 0x36, 0x30, 0xf2, 0xab, 0x59, 0x99, 0x62, 0x1f, 0xa1, 0xab, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, - 0x4a, 0xca, 0x38, 0x04, 0xa3, 0x07, 0x00, 0x00, + // 734 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0x4d, 0x4c, 0x13, 0x41, + 0x14, 0xc7, 0xbb, 0x2d, 0x50, 0x19, 0x0c, 0x84, 0x4d, 0x0d, 0xed, 0x42, 0xb6, 0xcd, 0x1a, 0x49, + 0xc5, 0x74, 0xd7, 0x56, 0xe0, 0xd0, 0x1b, 0xd5, 0x83, 0x1f, 0xa9, 0x1f, 0x25, 0xd1, 0xc4, 0x0b, + 0x6e, 0xbb, 0xc3, 0xb0, 0x91, 0xee, 0x6c, 0x3a, 0xd3, 0x86, 0xde, 0x88, 0x27, 0xe3, 0xc9, 0xbb, + 0x17, 0x8e, 0xc6, 0x13, 0x07, 0xae, 0xde, 0x89, 0xf1, 0x40, 0x3c, 0x79, 0x30, 0x68, 0xe0, 0x80, + 0xf1, 0xea, 0xc5, 0xa3, 0xd9, 0xf9, 0xd8, 0x16, 0x5a, 0x0a, 0x12, 0x2f, 0xdd, 0x9d, 0xf7, 0xde, + 0xff, 0xbd, 0x7d, 0xbf, 0x79, 0xd3, 0x01, 0xd3, 0x35, 0x4c, 0xea, 0x98, 0x58, 0x08, 0xb7, 0xac, + 0x56, 0xbe, 0x0a, 0xa9, 0x9d, 0xb7, 0xe8, 0x86, 0xe9, 0x37, 0x30, 0xc5, 0xaa, 0xca, 0x9d, 0x26, + 0xc2, 0x2d, 0x53, 0x38, 0x35, 0x5d, 0x08, 0xaa, 0x36, 0x81, 0xa1, 0xa2, 0x86, 0x5d, 0x8f, 0x6b, + 0xb4, 0x99, 0x3e, 0x09, 0x03, 0x3d, 0xf7, 0xa6, 0xb8, 0x77, 0x85, 0xad, 0x2c, 0x91, 0x9e, 0xbb, + 0x12, 0x08, 0x23, 0xcc, 0xed, 0xc1, 0x9b, 0x14, 0x20, 0x8c, 0xd1, 0x3a, 0xb4, 0xd8, 0xaa, 0xda, + 0x5c, 0xb5, 0x6c, 0xaf, 0x2d, 0x5c, 0x53, 0xa2, 0x52, 0x9d, 0x20, 0xab, 0x95, 0x0f, 0x1e, 0xc2, + 0x31, 0x69, 0xd7, 0x5d, 0x0f, 0x5b, 0xec, 0x97, 0x9b, 0x8c, 0xcf, 0x51, 0x30, 0x59, 0x26, 0x68, + 0xb9, 0x59, 0xad, 0xbb, 0xf4, 0x71, 0x03, 0xfb, 0x98, 0xd8, 0xeb, 0xea, 0x43, 0x10, 0xaf, 0x61, + 0x8f, 0x42, 0x8f, 0x26, 0x95, 0x8c, 0x92, 0x1d, 0x2b, 0x24, 0x4c, 0x5e, 0xce, 0x94, 0xe5, 0xcc, + 0x25, 0xaf, 0x5d, 0xd2, 0x3f, 0xed, 0xe4, 0xb4, 0x5e, 0x14, 0xe6, 0x6d, 0xae, 0xad, 0xc8, 0x24, + 0x6a, 0x1b, 0x4c, 0xb8, 0x9e, 0x4b, 0x5d, 0x7b, 0x7d, 0xc5, 0x81, 0x3e, 0x26, 0x2e, 0x4d, 0x46, + 0x33, 0xb1, 0xec, 0x58, 0x21, 0x65, 0x0a, 0x79, 0x40, 0xad, 0x4b, 0xef, 0x7a, 0xa5, 0x85, 0xdd, + 0xfd, 0x74, 0xe4, 0xc3, 0xf7, 0x74, 0x16, 0xb9, 0x74, 0xad, 0x59, 0x35, 0x6b, 0xb8, 0x2e, 0xb8, + 0x88, 0x47, 0x8e, 0x38, 0x2f, 0x2d, 0xda, 0xf6, 0x21, 0x61, 0x02, 0xf2, 0xfe, 0x68, 0x7b, 0x4e, + 0xa9, 0x8c, 0x8b, 0x42, 0x77, 0x78, 0x1d, 0x75, 0x1e, 0x5c, 0xf2, 0x59, 0x5b, 0xb0, 0x91, 0x8c, + 0x65, 0x94, 0xec, 0x68, 0x29, 0xf9, 0x65, 0x27, 0x97, 0x10, 0x65, 0x97, 0x1c, 0xa7, 0x01, 0x09, + 0x59, 0xa6, 0x0d, 0xd7, 0x43, 0x95, 0x30, 0xb2, 0xb8, 0xf8, 0x7a, 0x2b, 0x1d, 0xf9, 0xb9, 0x95, + 0x8e, 0xbc, 0x3a, 0xda, 0x9e, 0x0b, 0xcd, 0x6f, 0x8e, 0xb6, 0xe7, 0x66, 0xba, 0x8a, 0xf7, 0x80, + 0x33, 0x2a, 0x20, 0xd5, 0x63, 0xac, 0x40, 0xe2, 0x63, 0x8f, 0x40, 0x75, 0x01, 0x8c, 0xf9, 0xc2, + 0xb6, 0xe2, 0x3a, 0x8c, 0xec, 0x50, 0x29, 0xf1, 0x6b, 0x3f, 0xdd, 0x6d, 0xe6, 0x5d, 0x00, 0x69, + 0xb9, 0xe7, 0x18, 0x1f, 0x15, 0x10, 0x2f, 0x13, 0xf4, 0x14, 0x53, 0xa8, 0xa6, 0xfb, 0xa4, 0xe8, + 0x0e, 0x56, 0x4d, 0x30, 0xdc, 0xc2, 0x14, 0x36, 0x92, 0xd1, 0x33, 0x7a, 0xe5, 0x61, 0xea, 0x22, + 0x18, 0xc1, 0x3e, 0x75, 0xb1, 0xc7, 0xe0, 0x8c, 0x17, 0x74, 0xb3, 0xcf, 0x7e, 0x06, 0xa5, 0x1f, + 0xb1, 0xa8, 0x8a, 0x88, 0x2e, 0x5e, 0xef, 0x06, 0xc4, 0x73, 0x05, 0x74, 0xd4, 0xe3, 0x74, 0x02, + 0xa1, 0x31, 0x09, 0x26, 0xc4, 0xab, 0x24, 0x61, 0xfc, 0x51, 0x42, 0xdb, 0x33, 0xe8, 0xa2, 0x35, + 0x0a, 0x9d, 0x0b, 0xd2, 0xf9, 0xe7, 0x86, 0x1f, 0x80, 0x38, 0x6f, 0x81, 0x24, 0x63, 0x6c, 0x04, + 0x67, 0xfb, 0x75, 0x2c, 0xbf, 0xaa, 0xd3, 0x79, 0x69, 0x34, 0x98, 0x47, 0x5e, 0x5f, 0x66, 0x28, + 0xe6, 0xfb, 0x53, 0xd0, 0x7a, 0x29, 0xc8, 0x84, 0x46, 0x0a, 0x4c, 0x9d, 0x30, 0x85, 0x54, 0xde, + 0x45, 0x01, 0x28, 0x13, 0x24, 0x27, 0xf7, 0x82, 0x40, 0x16, 0xc1, 0xa8, 0x38, 0x63, 0xf8, 0x6c, + 0x28, 0x9d, 0x50, 0x75, 0x0d, 0x8c, 0xd8, 0x75, 0xdc, 0xf4, 0xa8, 0xe0, 0xf2, 0xff, 0x8f, 0xa6, + 0xc8, 0x5f, 0x9c, 0x97, 0xd4, 0x36, 0xbf, 0x65, 0x18, 0xb9, 0xce, 0x57, 0x04, 0xf4, 0xae, 0x1c, + 0xa7, 0x27, 0x70, 0x18, 0x09, 0xa0, 0x76, 0x56, 0x92, 0x59, 0xe1, 0x77, 0x14, 0xc4, 0xca, 0x04, + 0xa9, 0xab, 0x60, 0xfc, 0xc4, 0x7f, 0xd8, 0xb5, 0x7e, 0xfb, 0xda, 0x73, 0x38, 0xb5, 0xdc, 0xb9, + 0xc2, 0xc2, 0x33, 0x7c, 0x17, 0x0c, 0xb1, 0x83, 0x38, 0x7d, 0x8a, 0x2c, 0x70, 0x6a, 0x57, 0x07, + 0x38, 0xc3, 0x4c, 0x2f, 0xc0, 0xe5, 0x63, 0xf3, 0x3f, 0x48, 0x24, 0x83, 0xb4, 0x1b, 0xe7, 0x08, + 0x0a, 0x2b, 0x3c, 0x01, 0x71, 0x39, 0x4b, 0xfa, 0x29, 0x3a, 0xe1, 0xd7, 0x66, 0x07, 0xfb, 0x65, + 0x4a, 0x6d, 0x78, 0x33, 0xd8, 0xc9, 0xd2, 0xfd, 0xdd, 0x03, 0x5d, 0xd9, 0x3b, 0xd0, 0x95, 0x1f, + 0x07, 0xba, 0xf2, 0xf6, 0x50, 0x8f, 0xec, 0x1d, 0xea, 0x91, 0xaf, 0x87, 0x7a, 0xe4, 0xf9, 0xcd, + 0x81, 0x23, 0xb1, 0xc1, 0x6e, 0x3f, 0x36, 0x18, 0xf2, 0x0e, 0xac, 0x8e, 0xb0, 0x2b, 0xe5, 0xd6, + 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x85, 0xed, 0xa7, 0x93, 0x71, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 7d6e98a89cc6..f19534c8b2ab 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -358,6 +358,12 @@ func (aj AminoJSON) getMessageEncoder(message protoreflect.Message) MessageEncod } func (aj AminoJSON) getFieldEncoding(field protoreflect.FieldDescriptor) FieldEncoder { + // hardcoded special case for Coins, see https://github.com/cosmos/cosmos-sdk/pull/15019#discussion_r1106112024 + msg := field.Message() + if field.IsList() && msg != nil && msg.FullName() == coinFullName { + return nullSliceAsEmptyEncoder + } + opts := field.Options() if proto.HasExtension(opts, amino.E_Encoding) { enc := proto.GetExtension(opts, amino.E_Encoding).(string) @@ -378,4 +384,5 @@ const ( timestampFullName protoreflect.FullName = "google.protobuf.Timestamp" durationFullName protoreflect.FullName = "google.protobuf.Duration" anyFullName protoreflect.FullName = "google.protobuf.Any" + coinFullName protoreflect.FullName = "cosmos.base.v1beta1.Coin" ) From 4fc10c9502b80d5c59c0db48b93b293bdaa5298b Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 15 Feb 2023 07:02:43 -0700 Subject: [PATCH 088/122] Revert "coins by convention." This reverts commit ebf3283e93f2fabea53bd675bd6b1beb34bcf68b. --- api/amino/amino.pulsar.go | 7 - api/cosmos/bank/v1beta1/authz.pulsar.go | 61 +- api/cosmos/bank/v1beta1/bank.pulsar.go | 121 ++-- api/cosmos/bank/v1beta1/genesis.pulsar.go | 89 +-- api/cosmos/bank/v1beta1/query.pulsar.go | 543 +++++++++--------- api/cosmos/bank/v1beta1/tx.pulsar.go | 184 +++--- .../v1beta1/distribution.pulsar.go | 140 ++--- api/cosmos/distribution/v1beta1/tx.pulsar.go | 352 ++++++------ .../feegrant/v1beta1/feegrant.pulsar.go | 189 +++--- api/cosmos/gov/v1beta1/tx.pulsar.go | 217 +++---- api/cosmos/vesting/v1beta1/tx.pulsar.go | 197 +++---- api/cosmos/vesting/v1beta1/vesting.pulsar.go | 204 +++---- proto/cosmos/bank/v1beta1/authz.proto | 1 + proto/cosmos/bank/v1beta1/bank.proto | 3 + proto/cosmos/bank/v1beta1/genesis.proto | 2 + proto/cosmos/bank/v1beta1/query.proto | 3 + proto/cosmos/bank/v1beta1/tx.proto | 1 + .../distribution/v1beta1/distribution.proto | 1 + proto/cosmos/distribution/v1beta1/tx.proto | 5 + proto/cosmos/feegrant/v1beta1/feegrant.proto | 3 + proto/cosmos/gov/v1beta1/tx.proto | 2 + proto/cosmos/vesting/v1beta1/tx.proto | 2 + proto/cosmos/vesting/v1beta1/vesting.proto | 4 + tests/integration/aminojson/aminojson_test.go | 10 +- x/auth/vesting/types/tx.pb.go | 86 +-- x/auth/vesting/types/vesting.pb.go | 78 +-- x/bank/types/authz.pb.go | 35 +- x/bank/types/bank.pb.go | 87 +-- x/bank/types/genesis.pb.go | 60 +- x/bank/types/query.pb.go | 156 ++--- x/bank/types/tx.pb.go | 91 +-- x/distribution/types/distribution.pb.go | 126 ++-- x/distribution/types/tx.pb.go | 117 ++-- x/feegrant/feegrant.pb.go | 85 +-- x/gov/types/v1beta1/tx.pb.go | 96 ++-- x/tx/aminojson/json_marshal.go | 7 - 36 files changed, 1715 insertions(+), 1650 deletions(-) diff --git a/api/amino/amino.pulsar.go b/api/amino/amino.pulsar.go index a136c7a4a5dc..74e13c0f9f2a 100644 --- a/api/amino/amino.pulsar.go +++ b/api/amino/amino.pulsar.go @@ -157,19 +157,12 @@ var ( // // optional bool dont_omitempty = 11110005; E_DontOmitempty = &file_amino_amino_proto_extTypes[4] - // oneof_type_name sets the type name for the given field oneof field. This is used - // by the Amino JSON encoder to encode the type of the oneof field, and must be the same string as - // The RegisterConcrete() method usage used to register the concrete type. - // // optional string oneof_type_name = 11110006; E_OneofTypeName = &file_amino_amino_proto_extTypes[5] ) // Extension fields to descriptorpb.OneofOptions. var ( - // oneof_field_name sets the field name for the given oneof field. This is used by the Amino JSON - // encoder to set the field name encapsulating the oneof field. - // // optional string oneof_field_name = 11110007; E_OneofFieldName = &file_amino_amino_proto_extTypes[6] ) diff --git a/api/cosmos/bank/v1beta1/authz.pulsar.go b/api/cosmos/bank/v1beta1/authz.pulsar.go index f62d0fdaa569..259ca548043f 100644 --- a/api/cosmos/bank/v1beta1/authz.pulsar.go +++ b/api/cosmos/bank/v1beta1/authz.pulsar.go @@ -710,37 +710,38 @@ var file_cosmos_bank_v1beta1_authz_proto_rawDesc = []byte{ 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, - 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x88, 0x02, 0x0a, 0x11, 0x53, + 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa1, 0x02, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x71, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, - 0x6d, 0x69, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x3a, 0x47, 0xca, 0xb4, - 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xc5, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x42, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, - 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, - 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, - 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, + 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x37, 0x0a, 0x0a, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x4c, 0x69, 0x73, 0x74, 0x3a, 0x47, 0xca, 0xb4, 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x8a, 0xe7, 0xb0, + 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x65, 0x6e, + 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xc5, + 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x41, 0x75, 0x74, 0x68, + 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, + 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, + 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, + 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/bank.pulsar.go b/api/cosmos/bank/v1beta1/bank.pulsar.go index 6a2fbe8c6052..72005c128190 100644 --- a/api/cosmos/bank/v1beta1/bank.pulsar.go +++ b/api/cosmos/bank/v1beta1/bank.pulsar.go @@ -4620,75 +4620,80 @@ var file_cosmos_bank_v1beta1_bank_proto_rawDesc = []byte{ 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xb9, 0x01, 0x0a, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xd1, 0x01, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x66, 0x0a, 0x05, 0x63, 0x6f, + 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x7e, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, + 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, - 0x6e, 0x73, 0x3a, 0x14, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xae, 0x01, 0x0a, 0x06, 0x4f, 0x75, 0x74, - 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x66, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, - 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0x9b, 0x01, 0x0a, 0x06, 0x53, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x12, 0x66, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, + 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, 0x14, 0x88, 0xa0, 0x1f, 0x00, + 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x22, 0xc6, 0x01, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, + 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x7e, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, + 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, + 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, + 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xb3, 0x01, 0x0a, 0x06, 0x53, 0x75, + 0x70, 0x70, 0x6c, 0x79, 0x12, 0x7e, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x3a, 0x29, 0x18, 0x01, - 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x01, 0xca, 0xb4, 0x2d, 0x1b, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x22, 0x57, 0x0a, 0x09, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x55, 0x6e, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, - 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, - 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x3f, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x55, 0x6e, 0x69, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x73, - 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x19, 0x0a, 0x03, 0x75, 0x72, - 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xe2, 0xde, 0x1f, 0x03, 0x55, 0x52, 0x49, - 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x08, 0x75, 0x72, 0x69, 0x5f, 0x68, 0x61, 0x73, - 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe2, 0xde, 0x1f, 0x07, 0x55, 0x52, 0x49, - 0x48, 0x61, 0x73, 0x68, 0x52, 0x07, 0x75, 0x72, 0x69, 0x48, 0x61, 0x73, 0x68, 0x42, 0xc4, 0x01, - 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, - 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, - 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, - 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, - 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, - 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, + 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x3a, 0x29, 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x01, + 0xca, 0xb4, 0x2d, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x22, + 0x57, 0x0a, 0x09, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x0a, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, + 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, + 0x6f, 0x6c, 0x12, 0x19, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xe2, 0xde, 0x1f, 0x03, 0x55, 0x52, 0x49, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x26, 0x0a, + 0x08, 0x75, 0x72, 0x69, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x0b, 0xe2, 0xde, 0x1f, 0x07, 0x55, 0x52, 0x49, 0x48, 0x61, 0x73, 0x68, 0x52, 0x07, 0x75, 0x72, + 0x69, 0x48, 0x61, 0x73, 0x68, 0x42, 0xc4, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x42, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, + 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, + 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/genesis.pulsar.go b/api/cosmos/bank/v1beta1/genesis.pulsar.go index 73a8226986d4..18f33e074611 100644 --- a/api/cosmos/bank/v1beta1/genesis.pulsar.go +++ b/api/cosmos/bank/v1beta1/genesis.pulsar.go @@ -1711,7 +1711,7 @@ var file_cosmos_bank_v1beta1_genesis_proto_rawDesc = []byte{ 0x74, 0x61, 0x31, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, - 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9e, 0x03, 0x0a, + 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb7, 0x03, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, @@ -1721,48 +1721,51 @@ var file_cosmos_bank_v1beta1_genesis_proto_rawDesc = []byte{ 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x12, 0x68, 0x0a, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, - 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x4f, 0x0a, 0x0e, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4e, 0x0a, - 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, - 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xaf, 0x01, - 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x66, 0x0a, - 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, - 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, - 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, - 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x42, - 0xc7, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x47, 0x65, 0x6e, - 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, - 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, - 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, - 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, - 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x65, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, + 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, + 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, + 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x4f, 0x0a, 0x0e, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, + 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, + 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x7e, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, + 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, + 0x42, 0xc7, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x47, 0x65, + 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, + 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, + 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, + 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/query.pulsar.go b/api/cosmos/bank/v1beta1/query.pulsar.go index 21d552ace042..1290aaa3a747 100644 --- a/api/cosmos/bank/v1beta1/query.pulsar.go +++ b/api/cosmos/bank/v1beta1/query.pulsar.go @@ -12338,292 +12338,297 @@ var file_cosmos_bank_v1beta1_query_proto_rawDesc = []byte{ 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, - 0x22, 0xd1, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x6c, 0x0a, - 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, - 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, + 0x22, 0xea, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, + 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, + 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, + 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa5, 0x01, + 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, + 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xf0, 0x01, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, + 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x08, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, + 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, + 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x23, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, + 0xa0, 0x1f, 0x00, 0x22, 0x5b, 0x0a, 0x24, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, + 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, + 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x62, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x22, 0x6b, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, + 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa5, 0x01, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, - 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xd7, 0x01, 0x0a, - 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x6c, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, - 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, - 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xe6, 0x01, + 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, + 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x23, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, - 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, - 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, - 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, - 0x00, 0x22, 0x5b, 0x0a, 0x24, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, - 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x07, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x6b, - 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, + 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x55, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, + 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x55, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x64, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xae, + 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, + 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x09, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x31, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x22, 0x62, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x44, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x6d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x77, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, + 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x80, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x32, + 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, + 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x17, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x12, + 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x63, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x0b, 0x73, 0x65, + 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xcd, 0x01, 0x0a, 0x18, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x06, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x14, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x55, 0x0a, 0x15, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, - 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x64, 0x0a, - 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x22, 0xae, 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, - 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x62, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x77, 0x0a, 0x17, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x46, 0x0a, 0x0a, - 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, - 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x73, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x32, 0xb2, 0x0e, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x9d, 0x01, 0x0a, + 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x88, + 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x7d, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xa0, 0x01, 0x0a, + 0x0b, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x0b, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x79, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, - 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x65, 0x6e, - 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x47, - 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x63, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xb2, 0x0e, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x12, 0x9d, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x3d, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, - 0x30, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, - 0x6d, 0x12, 0xa0, 0x01, 0x0a, 0x0b, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, - 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x63, 0x6f, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x88, 0xe7, 0xb0, 0x2a, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, + 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, + 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, + 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x7d, 0x12, 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, - 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, + 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, 0xd7, + 0x01, 0x0a, 0x17, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, - 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, - 0x12, 0x31, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, - 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x7d, 0x12, 0xd7, 0x01, 0x0a, 0x17, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, - 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, - 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, - 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, - 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3c, 0x12, 0x3a, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x94, 0x01, - 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, - 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x12, 0x94, 0x01, 0x0a, 0x08, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, - 0x66, 0x12, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, - 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, + 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x47, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, + 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x94, 0x01, 0x0a, 0x0b, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, + 0x94, 0x01, 0x0a, 0x08, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x12, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, - 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x85, 0x01, 0x0a, 0x06, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x12, 0xab, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, - 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, - 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x7d, 0x12, 0xa6, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, + 0x12, 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x2f, 0x62, 0x79, + 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x85, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0xab, + 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x39, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0xa6, 0x01, 0x0a, + 0x0e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, + 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, + 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x5f, 0x6d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xa2, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, - 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xa2, 0x01, 0x0a, 0x0b, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, + 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, + 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, + 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x36, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, + 0x29, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x9a, 0x01, 0x0a, 0x0b, 0x53, + 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, - 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, - 0x9a, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, - 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, + 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, + 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x65, 0x6e, 0x64, 0x5f, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0xc5, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x88, 0xe7, - 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, - 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0xc5, 0x01, 0x0a, - 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, - 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, - 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, - 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, - 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x61, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, + 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, + 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/tx.pulsar.go b/api/cosmos/bank/v1beta1/tx.pulsar.go index 10048243e590..31c7348023f2 100644 --- a/api/cosmos/bank/v1beta1/tx.pulsar.go +++ b/api/cosmos/bank/v1beta1/tx.pulsar.go @@ -4229,7 +4229,7 @@ var file_cosmos_bank_v1beta1_tx_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0x9b, 0x02, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x3b, 0x0a, 0x0c, + 0x22, 0xb4, 0x02, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x3b, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x66, 0x72, @@ -4237,98 +4237,100 @@ var file_cosmos_bank_v1beta1_tx_proto_rawDesc = []byte{ 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, - 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x30, 0x88, 0xa0, - 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x12, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x22, 0x11, - 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, - 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x09, - 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, - 0x73, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, - 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x73, 0x3a, 0x2b, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x69, 0x6e, - 0x70, 0x75, 0x74, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, - 0x22, 0x16, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x34, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, - 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, - 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, - 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x0b, 0x73, 0x65, 0x6e, - 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x5f, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6f, 0x72, - 0x3a, 0x2f, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, - 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x81, - 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x4a, 0x0a, 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1c, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x24, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x59, 0x0a, 0x09, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x12, - 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, - 0x6e, 0x64, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, - 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, - 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x2e, + 0x73, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, + 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, + 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, + 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x30, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, + 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x8a, 0xe7, 0xb0, 0x2a, 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, + 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x0c, 0x4d, + 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x3a, 0x2b, 0xe8, 0xa0, + 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x8a, 0xe7, 0xb0, + 0x2a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x4d, 0x73, 0x67, + 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x1a, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, - 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x12, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, - 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, - 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x34, 0x82, + 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, + 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x62, + 0x61, 0x6e, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe9, + 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0c, + 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x44, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6f, 0x72, 0x3a, 0x2f, 0x82, 0xe7, 0xb0, 0x2a, 0x09, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, + 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x81, 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, + 0x4a, 0x0a, 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x09, 0x4d, + 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, - 0x2a, 0x01, 0x42, 0xc2, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, - 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, - 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, - 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, - 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2c, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x53, 0x65, + 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x2e, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xc2, 0x01, 0x0a, 0x17, + 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, + 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/distribution/v1beta1/distribution.pulsar.go b/api/cosmos/distribution/v1beta1/distribution.pulsar.go index a31425aaea13..d0bb8c4707bb 100644 --- a/api/cosmos/distribution/v1beta1/distribution.pulsar.go +++ b/api/cosmos/distribution/v1beta1/distribution.pulsar.go @@ -7312,81 +7312,83 @@ var file_cosmos_distribution_v1beta1_distribution_proto_rawDesc = []byte{ 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x22, - 0x86, 0x02, 0x0a, 0x1a, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x9f, 0x02, 0x0a, 0x1a, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, - 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x28, - 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x65, - 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x57, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, - 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x6b, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x04, 0x42, 0x2c, 0xea, 0xde, 0x1f, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa2, 0xe7, 0xb0, 0x2a, 0x0f, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x19, 0x44, - 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x6e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, - 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, - 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x3a, - 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0xd3, 0x01, 0x0a, 0x25, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, - 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, - 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x3a, 0x22, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, - 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x88, 0x02, 0x0a, 0x1f, - 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, - 0x11, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, - 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x65, 0x6e, 0x74, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, + 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x28, 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, + 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, + 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, + 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x12, 0x57, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, + 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x44, 0x0a, + 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x2c, 0xea, + 0xde, 0x1f, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, + 0x68, 0x74, 0xa2, 0xe7, 0xb0, 0x2a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x68, 0x65, 0x69, + 0x67, 0x68, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, + 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x6e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, + 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0xd3, + 0x01, 0x0a, 0x25, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, + 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, + 0x68, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x3a, 0x22, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x42, 0x88, 0x02, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x11, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, + 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/distribution/v1beta1/tx.pulsar.go b/api/cosmos/distribution/v1beta1/tx.pulsar.go index f0020abfd00e..71e7f0390c74 100644 --- a/api/cosmos/distribution/v1beta1/tx.pulsar.go +++ b/api/cosmos/distribution/v1beta1/tx.pulsar.go @@ -7092,191 +7092,199 @@ var file_cosmos_distribution_v1beta1_tx_proto_rawDesc = []byte{ 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x8e, 0x01, 0x0a, 0x22, 0x4d, 0x73, 0x67, 0x57, + 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0xa7, 0x01, 0x0a, 0x22, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, - 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, + 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, + 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, + 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x46, 0x88, 0xa0, 0x1f, + 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x57, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x22, 0xab, 0x01, 0x0a, 0x26, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, + 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, + 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, + 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x8d, 0x02, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, + 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, + 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x3a, 0x3a, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, + 0xe7, 0xb0, 0x2a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, + 0x2a, 0x1f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, + 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x46, 0x0a, + 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x3a, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x27, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, 0x02, 0x0a, + 0x15, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1c, + 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x80, 0x01, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, + 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, + 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, + 0x39, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, + 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, + 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe4, 0x02, 0x0a, 0x1e, + 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, + 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x80, 0x01, + 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x1e, 0x4d, 0x73, 0x67, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x3a, 0x46, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, - 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x92, 0x01, 0x0a, 0x26, 0x4d, - 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0xf4, 0x01, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x3a, 0x3a, 0x88, 0xa0, 0x1f, 0x00, - 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, - 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, - 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x3a, 0x82, 0xe7, 0xb0, 0x2a, - 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x27, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x92, 0x02, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, - 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, - 0x74, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, - 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, - 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x39, 0x82, 0xe7, 0xb0, - 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x26, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, - 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcb, 0x02, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x44, - 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, - 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, - 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, - 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, - 0x75, 0x6e, 0x74, 0x3a, 0x40, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, - 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x22, 0x28, 0x0a, 0x26, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, - 0xec, 0x07, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x84, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x57, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93, - 0x01, 0x0a, 0x17, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, - 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, - 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, + 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x3a, 0x40, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, + 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x2f, 0x4d, 0x73, + 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x22, 0x28, 0x0a, 0x26, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xec, 0x07, 0x0a, + 0x03, 0x4d, 0x73, 0x67, 0x12, 0x84, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, + 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x17, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x1a, 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x6e, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x31, 0x2e, 0x63, + 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x43, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, - 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, - 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, - 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0c, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, - 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, - 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, - 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, + 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x12, + 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, + 0x6e, 0x64, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, - 0x6f, 0x6c, 0x1a, 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, + 0x6f, 0x6c, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xfe, - 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, - 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, + 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xfe, 0x01, 0x0a, 0x1f, + 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, + 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, + 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, + 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, + 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go b/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go index 4a575330ae67..06f86ab68b3b 100644 --- a/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go +++ b/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go @@ -2845,102 +2845,107 @@ var file_cosmos_feegrant_v1beta1_feegrant_proto_rawDesc = []byte{ 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0x8e, 0x02, 0x0a, 0x0e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x71, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, - 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, - 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x0a, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x47, 0xca, 0xb4, 0x2d, 0x25, 0x63, + 0x6f, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, + 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x42, 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x3a, 0x47, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, + 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, + 0x2a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, + 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xe7, 0x04, 0x0a, 0x11, + 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, + 0x65, 0x12, 0x48, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, + 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x70, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x96, 0x01, + 0x0a, 0x12, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, + 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x70, 0x65, 0x6e, + 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x92, 0x01, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x5f, 0x63, 0x61, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, + 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, + 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, + 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x70, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x43, 0x61, 0x6e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x4c, 0x0a, 0x0c, 0x70, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, + 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x70, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x65, 0x74, 0x3a, 0x4a, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, - 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, - 0x63, 0x65, 0x22, 0xb5, 0x04, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, - 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, - 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, - 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x62, 0x61, 0x73, - 0x69, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0xc8, - 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x12, 0x7e, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, - 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x12, 0x7a, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x63, - 0x61, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, - 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x0e, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x43, 0x61, 0x6e, 0x53, 0x70, 0x65, 0x6e, 0x64, - 0x12, 0x4c, 0x0a, 0x0c, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x65, 0x74, 0x3a, 0x4a, - 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, - 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, - 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, - 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x13, 0x41, - 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, + 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, + 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x13, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, + 0x64, 0x4d, 0x73, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x5d, 0x0a, + 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, + 0x49, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10, + 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x3a, 0x50, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6c, 0x6c, - 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x3a, 0x50, 0x88, 0xa0, - 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, - 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, - 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, - 0x65, 0x64, 0x4d, 0x73, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xce, - 0x01, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, - 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, - 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, - 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, - 0x12, 0x5d, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, - 0x6e, 0x63, 0x65, 0x49, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x42, - 0xe4, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, - 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, - 0x0d, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x38, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, - 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, 0x65, 0x65, 0x67, 0x72, - 0x61, 0x6e, 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x46, 0x58, - 0xaa, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x17, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x23, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, - 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x73, 0x67, + 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x05, 0x47, 0x72, + 0x61, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, + 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x12, 0x5d, 0x0a, 0x09, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x52, + 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x42, 0xe4, 0x01, 0x0a, 0x1b, 0x63, + 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0d, 0x46, 0x65, 0x65, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2f, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x46, 0x58, 0xaa, 0x02, 0x17, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, + 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, + 0x02, 0x23, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, + 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, + 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/gov/v1beta1/tx.pulsar.go b/api/cosmos/gov/v1beta1/tx.pulsar.go index 87d4a9edc9db..3df1133e99f4 100644 --- a/api/cosmos/gov/v1beta1/tx.pulsar.go +++ b/api/cosmos/gov/v1beta1/tx.pulsar.go @@ -4228,119 +4228,122 @@ var file_cosmos_gov_v1beta1_tx_proto_rawDesc = []byte{ 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, - 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcc, 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, + 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe5, 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x4e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x1e, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, - 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x3a, 0x36, - 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x08, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x22, 0x52, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, - 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x07, 0x4d, - 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, - 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, - 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, - 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, - 0x29, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, - 0x74, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, - 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, - 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf8, 0x01, - 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, - 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x31, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, - 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1a, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x56, - 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x9b, 0x02, 0x0a, 0x0a, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, - 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, - 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, - 0x72, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, - 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, - 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x34, 0x88, 0xa0, 0x1f, - 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x80, 0xdc, 0x20, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x64, 0x65, - 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x15, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x22, 0x14, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf3, 0x02, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, - 0x66, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x12, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x56, 0x6f, 0x74, 0x65, 0x12, - 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x1a, 0x23, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x60, 0x0a, 0x0c, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, - 0x64, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, - 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x07, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x1e, + 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x91, 0x01, + 0x0a, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, + 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, + 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x3a, 0x36, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, + 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x8a, 0xe7, + 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, + 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x22, + 0x52, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, + 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x49, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x12, + 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, + 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, + 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x29, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, + 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, + 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, + 0x6f, 0x74, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x56, 0x6f, + 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, + 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, + 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, + 0x72, 0x12, 0x4b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, + 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x31, + 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, + 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, + 0x64, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb4, 0x02, 0x0a, + 0x0a, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, + 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, + 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x49, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, + 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, + 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, + 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x34, 0x88, + 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x80, 0xdc, 0x20, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, + 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x15, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf3, 0x02, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x12, 0x66, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, + 0x73, 0x61, 0x6c, 0x12, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x56, 0x6f, 0x74, + 0x65, 0x12, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x1a, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x1a, 0x26, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xbb, 0x01, - 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, - 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, 0x6f, 0x76, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x47, 0x6f, 0x76, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, - 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, - 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x47, - 0x6f, 0x76, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0c, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x65, 0x64, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, + 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x07, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, + 0xbb, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, + 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, + 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, + 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x47, 0x6f, 0x76, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xca, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, + 0x6f, 0x76, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, + 0x3a, 0x47, 0x6f, 0x76, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/vesting/v1beta1/tx.pulsar.go b/api/cosmos/vesting/v1beta1/tx.pulsar.go index a60e700159e2..7df32383e855 100644 --- a/api/cosmos/vesting/v1beta1/tx.pulsar.go +++ b/api/cosmos/vesting/v1beta1/tx.pulsar.go @@ -3405,7 +3405,7 @@ var file_cosmos_vesting_v1beta1_tx_proto_rawDesc = []byte{ 0x61, 0x31, 0x2f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, - 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xec, 0x02, 0x0a, + 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x85, 0x03, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, @@ -3414,109 +3414,112 @@ var file_cosmos_vesting_v1beta1_tx_proto_rawDesc = []byte{ 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x68, + 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x80, + 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, + 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, + 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, + 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x3a, 0x3c, 0xe8, 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, + 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, + 0x2a, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd7, 0x02, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, + 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x0c, 0x66, + 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x17, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x66, 0x72, 0x6f, + 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x15, 0xf2, 0xde, 0x1f, + 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x22, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x3a, 0x3c, 0xe8, - 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x4d, - 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbe, - 0x02, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, - 0x6d, 0x6c, 0x3a, 0x22, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x22, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, - 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x15, 0xf2, 0xde, 0x1f, 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, 0x6f, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x68, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, - 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3f, - 0xe8, 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, - 0x72, 0x6d, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x29, 0x0a, 0x27, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x97, 0x02, 0x0a, 0x1f, 0x4d, - 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, - 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x21, - 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x52, 0x0a, 0x0f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, - 0x6f, 0x64, 0x73, 0x3a, 0x3f, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, - 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x56, 0x65, 0x73, 0x74, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x29, 0x0a, 0x27, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, - 0xc5, 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x80, 0x01, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x1c, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, - 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, + 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, + 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x3a, 0x3f, 0xe8, 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x50, 0x65, 0x72, 0x6d, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x29, 0x0a, 0x27, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, - 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x97, 0x02, 0x0a, + 0x1f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x73, 0x3a, 0x3f, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, + 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, + 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x56, 0x65, 0x73, 0x74, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x29, 0x0a, 0x27, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x32, 0xc5, 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x80, 0x01, 0x0a, 0x14, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, + 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, + 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, - 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, - 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, + 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, + 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x98, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xd7, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x56, 0x58, 0xaa, - 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, - 0x3a, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xd7, 0x01, 0x0a, 0x1a, 0x63, 0x6f, + 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, + 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x56, + 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x3a, 0x3a, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/vesting/v1beta1/vesting.pulsar.go b/api/cosmos/vesting/v1beta1/vesting.pulsar.go index b852cbc75308..da849a3ca6e3 100644 --- a/api/cosmos/vesting/v1beta1/vesting.pulsar.go +++ b/api/cosmos/vesting/v1beta1/vesting.pulsar.go @@ -3744,116 +3744,122 @@ var file_cosmos_vesting_v1beta1_vesting_proto_rawDesc = []byte{ 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x75, 0x74, - 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x97, 0x04, 0x0a, 0x12, 0x42, 0x61, 0x73, 0x65, + 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe2, 0x04, 0x0a, 0x12, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x0b, 0x62, 0x61, - 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x7b, 0x0a, 0x10, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, - 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x56, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x77, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, - 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x65, 0x65, 0x12, - 0x7d, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x76, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x64, 0x65, - 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x19, - 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x26, 0x88, 0xa0, 0x1f, 0x00, 0x8a, - 0xe7, 0xb0, 0x2a, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, - 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xcb, 0x01, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, - 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, - 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, - 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x3a, 0x2c, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, - 0x73, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0xa6, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, + 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x93, 0x01, 0x0a, 0x10, 0x6f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, + 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, + 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, + 0x8f, 0x01, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, + 0x65, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, + 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, + 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, + 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x65, + 0x65, 0x12, 0x95, 0x01, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, + 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, + 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x26, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x1d, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xcb, 0x01, 0x0a, + 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x29, 0x88, - 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, - 0x64, 0x6b, 0x2f, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x06, 0x50, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x68, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x35, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x02, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, - 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x42, 0x09, 0xc8, 0xde, - 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, - 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, - 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, - 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, - 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, - 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0xdc, - 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x56, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x56, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, - 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x56, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x2c, 0x88, 0xa0, + 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x56, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x15, 0x44, + 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, + 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, + 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x29, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, + 0xb0, 0x2a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x44, 0x65, + 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, + 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, + 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x02, 0x0a, 0x16, 0x50, 0x65, + 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, + 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, + 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x76, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, + 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x6d, + 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, + 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, + 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x6d, + 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x42, 0x0c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x56, 0x58, 0xaa, + 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, + 0x3a, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/bank/v1beta1/authz.proto b/proto/cosmos/bank/v1beta1/authz.proto index a830353663dc..07159edc1b93 100644 --- a/proto/cosmos/bank/v1beta1/authz.proto +++ b/proto/cosmos/bank/v1beta1/authz.proto @@ -19,6 +19,7 @@ message SendAuthorization { repeated cosmos.base.v1beta1.Coin spend_limit = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/proto/cosmos/bank/v1beta1/bank.proto b/proto/cosmos/bank/v1beta1/bank.proto index 0bdb042be15b..aa0ef5426586 100644 --- a/proto/cosmos/bank/v1beta1/bank.proto +++ b/proto/cosmos/bank/v1beta1/bank.proto @@ -40,6 +40,7 @@ message Input { repeated cosmos.base.v1beta1.Coin coins = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -53,6 +54,7 @@ message Output { repeated cosmos.base.v1beta1.Coin coins = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -71,6 +73,7 @@ message Supply { repeated cosmos.base.v1beta1.Coin total = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/bank/v1beta1/genesis.proto b/proto/cosmos/bank/v1beta1/genesis.proto index 34214cfbbd9f..0221513bc6d5 100644 --- a/proto/cosmos/bank/v1beta1/genesis.proto +++ b/proto/cosmos/bank/v1beta1/genesis.proto @@ -20,6 +20,7 @@ message GenesisState { // supply represents the total supply. If it is left empty, then supply will be calculated based on the provided // balances. Otherwise, it will be used to validate that the sum of the balances equals this amount. repeated cosmos.base.v1beta1.Coin supply = 3 [ + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false, (amino.dont_omitempty) = true @@ -45,6 +46,7 @@ message Balance { // coins defines the different coins this balance holds. repeated cosmos.base.v1beta1.Coin coins = 2 [ + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false, (amino.dont_omitempty) = true diff --git a/proto/cosmos/bank/v1beta1/query.proto b/proto/cosmos/bank/v1beta1/query.proto index d317eb5bc8d3..fe16a3f70493 100644 --- a/proto/cosmos/bank/v1beta1/query.proto +++ b/proto/cosmos/bank/v1beta1/query.proto @@ -157,6 +157,7 @@ message QueryAllBalancesResponse { repeated cosmos.base.v1beta1.Coin balances = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -188,6 +189,7 @@ message QuerySpendableBalancesResponse { repeated cosmos.base.v1beta1.Coin balances = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -238,6 +240,7 @@ message QueryTotalSupplyResponse { repeated cosmos.base.v1beta1.Coin supply = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/proto/cosmos/bank/v1beta1/tx.proto b/proto/cosmos/bank/v1beta1/tx.proto index 5d6926ef6de2..215223498954 100644 --- a/proto/cosmos/bank/v1beta1/tx.proto +++ b/proto/cosmos/bank/v1beta1/tx.proto @@ -48,6 +48,7 @@ message MsgSend { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/distribution/v1beta1/distribution.proto b/proto/cosmos/distribution/v1beta1/distribution.proto index 3f7e5300dc64..85f25937dc08 100644 --- a/proto/cosmos/distribution/v1beta1/distribution.proto +++ b/proto/cosmos/distribution/v1beta1/distribution.proto @@ -143,6 +143,7 @@ message CommunityPoolSpendProposal { repeated cosmos.base.v1beta1.Coin amount = 4 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/distribution/v1beta1/tx.proto b/proto/cosmos/distribution/v1beta1/tx.proto index 65d2ee647903..22be789dd9b2 100644 --- a/proto/cosmos/distribution/v1beta1/tx.proto +++ b/proto/cosmos/distribution/v1beta1/tx.proto @@ -89,6 +89,7 @@ message MsgWithdrawDelegatorRewardResponse { repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -112,6 +113,7 @@ message MsgWithdrawValidatorCommissionResponse { repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -128,6 +130,7 @@ message MsgFundCommunityPool { repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; @@ -173,6 +176,7 @@ message MsgCommunityPoolSpend { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -198,6 +202,7 @@ message MsgDepositValidatorRewardsPool { string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, + (amino.encoding) = "null_slice_as_empty", (amino.dont_omitempty) = true, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/proto/cosmos/feegrant/v1beta1/feegrant.proto b/proto/cosmos/feegrant/v1beta1/feegrant.proto index df57218df37f..e02a1e0136dd 100644 --- a/proto/cosmos/feegrant/v1beta1/feegrant.proto +++ b/proto/cosmos/feegrant/v1beta1/feegrant.proto @@ -24,6 +24,7 @@ message BasicAllowance { repeated cosmos.base.v1beta1.Coin spend_limit = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -50,6 +51,7 @@ message PeriodicAllowance { repeated cosmos.base.v1beta1.Coin period_spend_limit = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -57,6 +59,7 @@ message PeriodicAllowance { repeated cosmos.base.v1beta1.Coin period_can_spend = 4 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/proto/cosmos/gov/v1beta1/tx.proto b/proto/cosmos/gov/v1beta1/tx.proto index cf1acc9418cc..e0b603182622 100644 --- a/proto/cosmos/gov/v1beta1/tx.proto +++ b/proto/cosmos/gov/v1beta1/tx.proto @@ -46,6 +46,7 @@ message MsgSubmitProposal { repeated cosmos.base.v1beta1.Coin initial_deposit = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -124,6 +125,7 @@ message MsgDeposit { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/vesting/v1beta1/tx.proto b/proto/cosmos/vesting/v1beta1/tx.proto index ad9561d28bc1..52f146d9d1f7 100644 --- a/proto/cosmos/vesting/v1beta1/tx.proto +++ b/proto/cosmos/vesting/v1beta1/tx.proto @@ -42,6 +42,7 @@ message MsgCreateVestingAccount { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -67,6 +68,7 @@ message MsgCreatePermanentLockedAccount { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/vesting/v1beta1/vesting.proto b/proto/cosmos/vesting/v1beta1/vesting.proto index 88f6c7583855..c532c263fd65 100644 --- a/proto/cosmos/vesting/v1beta1/vesting.proto +++ b/proto/cosmos/vesting/v1beta1/vesting.proto @@ -18,16 +18,19 @@ message BaseVestingAccount { repeated cosmos.base.v1beta1.Coin original_vesting = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; repeated cosmos.base.v1beta1.Coin delegated_free = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; repeated cosmos.base.v1beta1.Coin delegated_vesting = 4 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; int64 end_time = 5; @@ -59,6 +62,7 @@ message Period { repeated cosmos.base.v1beta1.Coin amount = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, + (amino.encoding) = "null_slice_as_empty", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 6e734e538567..a08a955fb680 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -337,7 +337,7 @@ func newAny(t *testing.T, msg proto.Message) *anypb.Any { func TestAminoJSON_LegacyParity(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, distribution.AppModuleBasic{}, slashing.AppModuleBasic{}, staking.AppModuleBasic{}, - vesting.AppModuleBasic{}, gov.AppModuleBasic{}) + vesting.AppModuleBasic{}) aj := aminojson.NewAminoJSON() addr1 := types.AccAddress([]byte("addr1")) @@ -441,10 +441,6 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &banktypes.SendAuthorization{SpendLimit: []types.Coin{}}, pulsar: &bankapi.SendAuthorization{SpendLimit: []*v1beta1.Coin{}}, }, - "bank/send_authorization/some_coins": { - gogo: &banktypes.SendAuthorization{SpendLimit: []types.Coin{types.NewInt64Coin("foo", 10)}}, - pulsar: &bankapi.SendAuthorization{SpendLimit: []*v1beta1.Coin{{Denom: "foo", Amount: "10"}}}, - }, "bank/send_authorization/nil_coins": { gogo: &banktypes.SendAuthorization{SpendLimit: nil}, pulsar: &bankapi.SendAuthorization{SpendLimit: nil}, @@ -461,10 +457,6 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &banktypes.MsgMultiSend{}, pulsar: &bankapi.MsgMultiSend{}, }, - "gov/v1_msg_submit_proposal": { - gogo: &gov_v1_types.MsgSubmitProposal{}, - pulsar: &gov_v1_api.MsgSubmitProposal{}, - }, "slashing/params/empty_dec": { gogo: &slashingtypes.Params{DowntimeJailDuration: 1e9 + 7}, pulsar: &slashingapi.Params{DowntimeJailDuration: &durationpb.Duration{Seconds: 1, Nanos: 7}}, diff --git a/x/auth/vesting/types/tx.pb.go b/x/auth/vesting/types/tx.pb.go index 66ae65596fe0..4bb66e9a378e 100644 --- a/x/auth/vesting/types/tx.pb.go +++ b/x/auth/vesting/types/tx.pb.go @@ -381,48 +381,50 @@ func init() { func init() { proto.RegisterFile("cosmos/vesting/v1beta1/tx.proto", fileDescriptor_5338ca97811f9792) } var fileDescriptor_5338ca97811f9792 = []byte{ - // 656 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x95, 0xbf, 0x6f, 0xd3, 0x40, - 0x14, 0xc7, 0xe3, 0xb8, 0xbf, 0x72, 0x45, 0xa0, 0x9a, 0x40, 0x9c, 0x88, 0xda, 0xa9, 0x05, 0x22, - 0x44, 0xaa, 0xad, 0x14, 0x50, 0xa5, 0x80, 0x54, 0x35, 0x1d, 0xa1, 0x12, 0x32, 0x88, 0x81, 0x25, - 0x72, 0xec, 0xc3, 0xb1, 0x5a, 0xfb, 0x22, 0xdf, 0xa5, 0x6a, 0xb6, 0x8a, 0x91, 0x89, 0x0d, 0x46, - 0x46, 0xc4, 0x94, 0x81, 0x99, 0x0d, 0xa9, 0x63, 0xc5, 0xc4, 0x14, 0x50, 0x32, 0x84, 0x81, 0xa9, - 0x7f, 0x01, 0xb2, 0xef, 0x1c, 0x92, 0x62, 0x27, 0x2d, 0x0b, 0x4b, 0x1c, 0xdf, 0xfb, 0x7e, 0xdf, - 0x3d, 0x7f, 0xde, 0x3d, 0x1b, 0xc8, 0x26, 0xc2, 0x2e, 0xc2, 0xda, 0x01, 0xc4, 0xc4, 0xf1, 0x6c, - 0xed, 0xa0, 0xd2, 0x80, 0xc4, 0xa8, 0x68, 0xe4, 0x50, 0x6d, 0xf9, 0x88, 0x20, 0xe1, 0x3a, 0x15, - 0xa8, 0x4c, 0xa0, 0x32, 0x41, 0x21, 0x6b, 0x23, 0x1b, 0x85, 0x12, 0x2d, 0xf8, 0x47, 0xd5, 0x05, - 0x89, 0xa5, 0x6b, 0x18, 0x18, 0x8e, 0x72, 0x99, 0xc8, 0xf1, 0x58, 0x3c, 0x4f, 0xe3, 0x75, 0x6a, - 0x64, 0xa9, 0x69, 0xe8, 0x66, 0x42, 0x25, 0xd1, 0xc6, 0x54, 0x95, 0x63, 0x2a, 0x17, 0x07, 0x8a, - 0xe0, 0xc2, 0x02, 0x2b, 0x86, 0xeb, 0x78, 0x48, 0x0b, 0x7f, 0xe9, 0x92, 0xf2, 0x2b, 0x0d, 0x72, - 0xbb, 0xd8, 0xde, 0xf1, 0xa1, 0x41, 0xe0, 0x73, 0x9a, 0x66, 0xdb, 0x34, 0x51, 0xdb, 0x23, 0xc2, - 0x03, 0x70, 0xe9, 0xa5, 0x8f, 0xdc, 0xba, 0x61, 0x59, 0x3e, 0xc4, 0x58, 0xe4, 0x8a, 0x5c, 0x29, - 0x53, 0x13, 0xbf, 0x7e, 0x5a, 0xcf, 0xb2, 0xaa, 0xb6, 0x69, 0xe4, 0x29, 0xf1, 0x1d, 0xcf, 0xd6, - 0x97, 0x03, 0x35, 0x5b, 0x12, 0x36, 0x01, 0x20, 0x68, 0x64, 0x4d, 0xcf, 0xb0, 0x66, 0x08, 0x8a, - 0x8c, 0x4d, 0xb0, 0x60, 0xb8, 0xc1, 0xfe, 0x22, 0x5f, 0xe4, 0x4b, 0xcb, 0x1b, 0x79, 0x95, 0x39, - 0x02, 0x5e, 0x11, 0x5a, 0x75, 0x07, 0x39, 0x5e, 0xed, 0xfe, 0x71, 0x4f, 0x4e, 0x7d, 0xfc, 0x2e, - 0x97, 0x6c, 0x87, 0x34, 0xdb, 0x0d, 0xd5, 0x44, 0x2e, 0xe3, 0xc5, 0x2e, 0xeb, 0xd8, 0xda, 0xd3, - 0x48, 0xa7, 0x05, 0x71, 0x68, 0xc0, 0x1f, 0x86, 0xdd, 0x32, 0xa7, 0xb3, 0xfc, 0x42, 0x1e, 0x2c, - 0x41, 0xcf, 0xaa, 0x13, 0xc7, 0x85, 0xe2, 0x5c, 0x91, 0x2b, 0xf1, 0xfa, 0x22, 0xf4, 0xac, 0x67, - 0x8e, 0x0b, 0x05, 0x11, 0x2c, 0x5a, 0x70, 0xdf, 0xe8, 0x40, 0x4b, 0x9c, 0x2f, 0x72, 0xa5, 0x25, - 0x3d, 0xba, 0xad, 0x3e, 0xfc, 0xf9, 0x5e, 0xe6, 0x5e, 0x0d, 0xbb, 0xe5, 0x09, 0x36, 0xaf, 0x87, - 0xdd, 0xb2, 0x32, 0xb6, 0x67, 0x02, 0x52, 0x65, 0x0d, 0xc8, 0x09, 0x21, 0x1d, 0xe2, 0x16, 0xf2, - 0x30, 0x54, 0x3e, 0xa7, 0xc7, 0x34, 0x4f, 0xa0, 0xef, 0x1a, 0x1e, 0xf4, 0xc8, 0x63, 0x64, 0xee, - 0x41, 0x2b, 0xea, 0x4c, 0x35, 0xb6, 0x33, 0xb9, 0xd3, 0x9e, 0x7c, 0xb5, 0x63, 0xb8, 0xfb, 0x55, - 0x65, 0x3c, 0xaa, 0x4c, 0x36, 0xe6, 0x5e, 0x4c, 0x63, 0xae, 0x9d, 0xf6, 0xe4, 0x15, 0xea, 0xfc, - 0x13, 0x53, 0xfe, 0x4b, 0x57, 0xaa, 0x5b, 0x89, 0x80, 0x6f, 0xc5, 0x01, 0x0e, 0x08, 0x4d, 0xc0, - 0x51, 0xee, 0x80, 0xdb, 0x33, 0xf8, 0x8d, 0x58, 0xbf, 0x3d, 0xc3, 0xda, 0x41, 0x96, 0x63, 0x9e, - 0x99, 0x82, 0xb5, 0x38, 0xd6, 0x93, 0x48, 0x57, 0xff, 0x46, 0x3a, 0xce, 0x6e, 0x15, 0x00, 0x4c, - 0x0c, 0x9f, 0xd0, 0x93, 0xc6, 0x87, 0x27, 0x2d, 0x13, 0xae, 0x84, 0x67, 0x4d, 0x07, 0x57, 0xd8, - 0xfc, 0xd6, 0x5b, 0x61, 0x09, 0x58, 0x9c, 0x0b, 0x19, 0x4b, 0x6a, 0xfc, 0x7b, 0x45, 0xa5, 0x95, - 0xd6, 0x32, 0x01, 0x68, 0x0a, 0xef, 0x32, 0x93, 0xd0, 0x08, 0x0e, 0x21, 0xa6, 0x2e, 0x04, 0xd1, - 0x41, 0x56, 0xf0, 0xe0, 0x09, 0x10, 0x63, 0xc0, 0x44, 0x10, 0x37, 0xbe, 0xf0, 0x80, 0xdf, 0xc5, - 0xb6, 0x70, 0xc4, 0x81, 0x6c, 0xec, 0x7b, 0x44, 0x4b, 0x7a, 0x8e, 0x84, 0x51, 0x28, 0x6c, 0x5e, - 0xd0, 0x10, 0x95, 0x22, 0xbc, 0xe3, 0xc0, 0x8d, 0xa9, 0x83, 0x33, 0x3b, 0x73, 0xbc, 0xb1, 0xb0, - 0xf5, 0x8f, 0xc6, 0xf8, 0xd2, 0xe2, 0xce, 0xd9, 0xb9, 0x4a, 0x8b, 0x31, 0x9e, 0xaf, 0xb4, 0x29, - 0x0d, 0x2c, 0xcc, 0x1f, 0x05, 0x67, 0xa8, 0xf6, 0xe8, 0xb8, 0x2f, 0x71, 0x27, 0x7d, 0x89, 0xfb, - 0xd1, 0x97, 0xb8, 0x37, 0x03, 0x29, 0x75, 0x32, 0x90, 0x52, 0xdf, 0x06, 0x52, 0xea, 0x45, 0x65, - 0xea, 0x24, 0x1f, 0x6a, 0x46, 0x9b, 0x34, 0x47, 0xdf, 0xa4, 0x70, 0xb0, 0x1b, 0x0b, 0xe1, 0xe7, - 0xe5, 0xee, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x18, 0x6a, 0x8c, 0x8a, 0x3c, 0x07, 0x00, 0x00, + // 679 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0x3f, 0x6f, 0xd3, 0x4e, + 0x18, 0xc7, 0xe3, 0xba, 0xff, 0x72, 0xfd, 0xe9, 0x87, 0x9a, 0x16, 0xea, 0x46, 0xd4, 0x4e, 0x2d, + 0x10, 0x21, 0x52, 0x6d, 0xb5, 0x20, 0x55, 0x0a, 0x48, 0x55, 0xd3, 0x11, 0x2a, 0xa1, 0x80, 0x18, + 0x58, 0xac, 0x8b, 0x7d, 0xb8, 0xa7, 0xc6, 0x77, 0x91, 0xef, 0x52, 0x35, 0x5b, 0x85, 0xc4, 0xc2, + 0xc4, 0x06, 0x62, 0x62, 0x44, 0x4c, 0x19, 0x78, 0x0b, 0x48, 0x1d, 0x2b, 0x16, 0x98, 0x0a, 0x6a, + 0x87, 0x30, 0xf7, 0x15, 0x20, 0xfb, 0xce, 0x21, 0x29, 0x76, 0xff, 0x30, 0xb1, 0xd4, 0xcd, 0x3d, + 0xdf, 0xef, 0xe3, 0xc7, 0x9f, 0xe7, 0x79, 0x6c, 0x60, 0xb8, 0x94, 0x05, 0x94, 0xd9, 0x3b, 0x88, + 0x71, 0x4c, 0x7c, 0x7b, 0x67, 0xb9, 0x81, 0x38, 0x5c, 0xb6, 0xf9, 0xae, 0xd5, 0x0a, 0x29, 0xa7, + 0x85, 0x6b, 0x42, 0x60, 0x49, 0x81, 0x25, 0x05, 0xc5, 0x59, 0x9f, 0xfa, 0x34, 0x96, 0xd8, 0xd1, + 0x7f, 0x42, 0x5d, 0xd4, 0x65, 0xba, 0x06, 0x64, 0xa8, 0x9f, 0xcb, 0xa5, 0x98, 0xc8, 0xf8, 0xbc, + 0x88, 0x3b, 0xc2, 0x28, 0x53, 0x8b, 0xd0, 0x8d, 0x8c, 0x4a, 0x92, 0x1b, 0x0b, 0xd5, 0x9c, 0x54, + 0x05, 0x2c, 0x52, 0x44, 0x17, 0x19, 0x98, 0x86, 0x01, 0x26, 0xd4, 0x8e, 0xff, 0x8a, 0x23, 0xf3, + 0xa5, 0x0a, 0xe6, 0x36, 0x99, 0xbf, 0x11, 0x22, 0xc8, 0xd1, 0x53, 0x91, 0x66, 0xdd, 0x75, 0x69, + 0x9b, 0xf0, 0xc2, 0x3d, 0xf0, 0xdf, 0xf3, 0x90, 0x06, 0x0e, 0xf4, 0xbc, 0x10, 0x31, 0xa6, 0x29, + 0x25, 0xa5, 0x9c, 0xaf, 0x69, 0x5f, 0x3e, 0x2d, 0xcd, 0xca, 0xaa, 0xd6, 0x45, 0xe4, 0x31, 0x0f, + 0x31, 0xf1, 0xeb, 0x53, 0x91, 0x5a, 0x1e, 0x15, 0x56, 0x01, 0xe0, 0xb4, 0x6f, 0x1d, 0x39, 0xc7, + 0x9a, 0xe7, 0x34, 0x31, 0xee, 0x29, 0x60, 0x1c, 0x06, 0x51, 0x01, 0x9a, 0x5a, 0x52, 0xcb, 0x53, + 0x2b, 0xf3, 0x96, 0xb4, 0x44, 0xc0, 0x12, 0xb6, 0xd6, 0x06, 0xc5, 0xa4, 0xb6, 0xb9, 0x7f, 0x68, + 0xe4, 0x3e, 0x7e, 0x37, 0xca, 0x3e, 0xe6, 0x5b, 0xed, 0x86, 0xe5, 0xd2, 0x40, 0x02, 0x93, 0x97, + 0x25, 0xe6, 0x6d, 0xdb, 0xbc, 0xd3, 0x42, 0x2c, 0x36, 0xb0, 0x77, 0xbd, 0x6e, 0x65, 0x86, 0xb4, + 0x9b, 0x4d, 0x87, 0x35, 0xb1, 0x8b, 0x1c, 0xc8, 0x1c, 0x14, 0xb4, 0x78, 0xe7, 0x43, 0xaf, 0x5b, + 0x51, 0xea, 0xf2, 0xbe, 0x85, 0x79, 0x30, 0x89, 0x88, 0xe7, 0x70, 0x1c, 0x20, 0x6d, 0xb4, 0xa4, + 0x94, 0xd5, 0xfa, 0x04, 0x22, 0xde, 0x13, 0x1c, 0xa0, 0x82, 0x06, 0x26, 0x3c, 0xd4, 0x84, 0x1d, + 0xe4, 0x69, 0x63, 0x25, 0xa5, 0x3c, 0x59, 0x4f, 0x7e, 0x56, 0xef, 0xff, 0x7c, 0x6f, 0x28, 0x2f, + 0x7a, 0xdd, 0xca, 0x10, 0xb4, 0x57, 0xbd, 0x6e, 0xc5, 0x1c, 0xa8, 0x25, 0x83, 0xb5, 0xb9, 0x08, + 0x8c, 0x8c, 0x50, 0x1d, 0xb1, 0x16, 0x25, 0x0c, 0x99, 0x5f, 0x47, 0x06, 0x34, 0x8f, 0x50, 0x18, + 0x40, 0x82, 0x08, 0x7f, 0x48, 0xdd, 0x6d, 0xe4, 0x25, 0x2d, 0xab, 0xa6, 0xb6, 0x6c, 0xee, 0xe4, + 0xd0, 0x98, 0xe9, 0xc0, 0xa0, 0x59, 0x35, 0x07, 0xa3, 0xe6, 0x70, 0xc7, 0xee, 0xa6, 0x74, 0xec, + 0xea, 0xc9, 0xa1, 0x31, 0x2d, 0x9c, 0xbf, 0x63, 0xe6, 0xbf, 0xd5, 0xae, 0xea, 0x5a, 0x26, 0xf9, + 0x9b, 0x69, 0xe4, 0x23, 0x74, 0x43, 0xd4, 0xcc, 0xdb, 0xe0, 0xd6, 0x39, 0x60, 0xfb, 0x4d, 0x78, + 0x73, 0xaa, 0x09, 0x98, 0x7a, 0xd8, 0x3d, 0xb5, 0x37, 0x8b, 0x69, 0x4d, 0x18, 0x66, 0xbd, 0xf0, + 0x27, 0xeb, 0x41, 0xa8, 0x0b, 0x00, 0x30, 0x0e, 0x43, 0x2e, 0x46, 0x50, 0x8d, 0x47, 0x30, 0x1f, + 0x9f, 0xc4, 0x43, 0x58, 0x07, 0x57, 0xe4, 0xc6, 0x3b, 0xad, 0xb8, 0x04, 0xa6, 0x8d, 0xc6, 0xec, + 0x75, 0x2b, 0xfd, 0x4d, 0x64, 0x89, 0x4a, 0x6b, 0xf9, 0xa8, 0x01, 0x02, 0xde, 0xff, 0x52, 0x22, + 0x22, 0x2c, 0x86, 0x98, 0xbb, 0x14, 0x44, 0x4c, 0xbd, 0xe8, 0xc1, 0x33, 0x20, 0xa6, 0x80, 0x49, + 0x20, 0xae, 0x7c, 0x56, 0x81, 0xba, 0xc9, 0xfc, 0x68, 0x76, 0x66, 0x53, 0xdf, 0x3c, 0x76, 0xd6, + 0x73, 0x64, 0xec, 0x48, 0x71, 0xf5, 0x92, 0x86, 0xa4, 0x94, 0xc2, 0x5b, 0x05, 0x5c, 0x3f, 0x73, + 0xa3, 0xce, 0xcf, 0x9c, 0x6e, 0x2c, 0xae, 0xfd, 0xa5, 0x31, 0xbd, 0xb4, 0xb4, 0x39, 0xbb, 0x50, + 0x69, 0x29, 0xc6, 0x8b, 0x95, 0x76, 0x46, 0x03, 0x8b, 0x63, 0x7b, 0xd1, 0x0c, 0xd5, 0x1e, 0xec, + 0x1f, 0xe9, 0xca, 0xc1, 0x91, 0xae, 0xfc, 0x38, 0xd2, 0x95, 0xd7, 0xc7, 0x7a, 0xee, 0xe0, 0x58, + 0xcf, 0x7d, 0x3b, 0xd6, 0x73, 0xcf, 0x96, 0xcf, 0xdc, 0xf0, 0x5d, 0x1b, 0xb6, 0xf9, 0x56, 0xff, + 0x2b, 0x16, 0x2f, 0x7c, 0x63, 0x3c, 0xfe, 0x20, 0xdd, 0xf9, 0x15, 0x00, 0x00, 0xff, 0xff, 0xa3, + 0x43, 0xde, 0x6f, 0x6e, 0x07, 0x00, 0x00, } func (this *MsgCreateVestingAccount) Equal(that interface{}) bool { diff --git a/x/auth/vesting/types/vesting.pb.go b/x/auth/vesting/types/vesting.pb.go index f384d720038a..27cd62a7ee0c 100644 --- a/x/auth/vesting/types/vesting.pb.go +++ b/x/auth/vesting/types/vesting.pb.go @@ -300,44 +300,46 @@ func init() { } var fileDescriptor_89e80273ca606d6e = []byte{ - // 592 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0x3d, 0x6f, 0xd3, 0x40, - 0x18, 0xce, 0x25, 0x21, 0xd0, 0x0b, 0xf4, 0xc3, 0x2a, 0x51, 0x5a, 0xa9, 0x4e, 0x30, 0x08, 0x85, - 0x08, 0x6c, 0xa5, 0x88, 0x25, 0x1b, 0x29, 0x42, 0x42, 0x30, 0xa0, 0x08, 0x31, 0xb0, 0x44, 0x67, - 0xfb, 0x70, 0x4e, 0x8d, 0xef, 0x22, 0xdf, 0xa5, 0x50, 0x21, 0x76, 0xd4, 0x89, 0x8d, 0x81, 0x85, - 0x09, 0x55, 0x4c, 0xfd, 0x19, 0x95, 0x58, 0x32, 0x32, 0x15, 0x94, 0x0c, 0xfd, 0x1b, 0xc8, 0x77, - 0x67, 0x37, 0xca, 0x07, 0x5b, 0x2a, 0x96, 0xc4, 0xef, 0xc7, 0xbd, 0xcf, 0xf3, 0xbc, 0x7e, 0xac, - 0x83, 0x77, 0x3c, 0xc6, 0x43, 0xc6, 0x9d, 0x03, 0xcc, 0x05, 0xa1, 0x81, 0x73, 0xd0, 0x70, 0xb1, - 0x40, 0x8d, 0x24, 0xb6, 0xfb, 0x11, 0x13, 0xcc, 0x28, 0xa9, 0x2e, 0x3b, 0xc9, 0xea, 0xae, 0xed, - 0x0d, 0x14, 0x12, 0xca, 0x1c, 0xf9, 0xab, 0x5a, 0xb7, 0x37, 0x03, 0x16, 0x30, 0xf9, 0xe8, 0xc4, - 0x4f, 0x3a, 0x6b, 0x6a, 0x18, 0x17, 0x71, 0x9c, 0x62, 0x78, 0x8c, 0xd0, 0xa9, 0x3a, 0x1a, 0x88, - 0x6e, 0x5a, 0x8f, 0x03, 0x55, 0xb7, 0xbe, 0xe4, 0xa1, 0xd1, 0x42, 0x1c, 0xbf, 0x56, 0x04, 0x1e, - 0x7b, 0x1e, 0x1b, 0x50, 0x61, 0x3c, 0x83, 0xd7, 0xe3, 0x89, 0x1d, 0xa4, 0xe2, 0x32, 0xa8, 0x82, - 0x5a, 0x71, 0xb7, 0x6a, 0x6b, 0xba, 0x72, 0x80, 0x9e, 0x66, 0xc7, 0xc7, 0xf5, 0xb9, 0x56, 0x7e, - 0x78, 0x56, 0x01, 0xed, 0xa2, 0x7b, 0x91, 0x32, 0x3e, 0xc0, 0x75, 0x16, 0x91, 0x80, 0x50, 0xd4, - 0xeb, 0x68, 0x99, 0xe5, 0x6c, 0x35, 0x57, 0x2b, 0xee, 0x6e, 0x25, 0xe3, 0xe2, 0xf6, 0x74, 0xdc, - 0x1e, 0x23, 0xb4, 0xf5, 0xe8, 0xf4, 0xac, 0x92, 0xf9, 0xf1, 0xbb, 0x52, 0x0b, 0x88, 0xe8, 0x0e, - 0x5c, 0xdb, 0x63, 0xa1, 0xa3, 0x95, 0xa8, 0xbf, 0x07, 0xdc, 0xdf, 0x77, 0xc4, 0x61, 0x1f, 0x73, - 0x79, 0x80, 0x1f, 0x9f, 0x9f, 0xd4, 0x41, 0x7b, 0x2d, 0x41, 0xd2, 0x72, 0x8c, 0x77, 0x70, 0xd5, - 0xc7, 0x3d, 0x1c, 0x20, 0x81, 0xfd, 0xce, 0xdb, 0x08, 0xe3, 0x72, 0x6e, 0x49, 0xd0, 0x37, 0x52, - 0x9c, 0xa7, 0x11, 0xc6, 0xc6, 0x47, 0xb8, 0x71, 0x01, 0x9c, 0xc8, 0xce, 0x2f, 0x09, 0x7b, 0x3d, - 0x85, 0x4a, 0x74, 0x6f, 0xc1, 0x6b, 0x98, 0xfa, 0x1d, 0x41, 0x42, 0x5c, 0xbe, 0x52, 0x05, 0xb5, - 0x5c, 0xfb, 0x2a, 0xa6, 0xfe, 0x2b, 0x12, 0xe2, 0xe6, 0xdd, 0x4f, 0xdf, 0x2a, 0x99, 0xa3, 0xf3, - 0x93, 0xfa, 0xce, 0xc4, 0xc8, 0x59, 0x0b, 0x58, 0x3f, 0x01, 0x2c, 0xef, 0x31, 0x2a, 0x08, 0x1d, - 0xb0, 0x01, 0x9f, 0xf2, 0x87, 0x0b, 0x37, 0xa5, 0x3f, 0xb4, 0xb2, 0x29, 0x9f, 0xd4, 0xed, 0xf9, - 0xb6, 0xb6, 0x67, 0x61, 0xb4, 0x63, 0x0c, 0x77, 0xd6, 0x83, 0x3b, 0x10, 0x72, 0x81, 0x22, 0xa1, - 0x54, 0x64, 0xa5, 0x8a, 0x15, 0x99, 0x91, 0x3a, 0xee, 0x27, 0x3a, 0x6e, 0x4f, 0xe8, 0x58, 0x44, - 0xd8, 0xfa, 0x0e, 0xe0, 0xcd, 0x27, 0xb8, 0x87, 0x0e, 0xd3, 0x1d, 0x5d, 0xa2, 0x94, 0xe6, 0xbd, - 0x84, 0x6b, 0x75, 0x82, 0xeb, 0x5c, 0x3a, 0xd6, 0x11, 0x80, 0x85, 0x97, 0x38, 0x22, 0xcc, 0x37, - 0x4a, 0xb0, 0xd0, 0xc3, 0x34, 0x10, 0x5d, 0xc9, 0x25, 0xd7, 0xd6, 0x91, 0xd1, 0x85, 0x05, 0x14, - 0x4a, 0x8e, 0xcb, 0xfa, 0x8e, 0xf4, 0x7c, 0xeb, 0x6b, 0x16, 0x96, 0x14, 0x19, 0xe2, 0xfd, 0x77, - 0x0e, 0x30, 0xda, 0x70, 0x2d, 0x41, 0xef, 0x4b, 0x92, 0x5c, 0x7f, 0xdd, 0xe6, 0x22, 0x74, 0xa5, - 0xa5, 0xb5, 0x12, 0x6f, 0x45, 0x29, 0x5d, 0xd5, 0x2d, 0xaa, 0xc2, 0x9b, 0xf5, 0xe4, 0x4d, 0xdd, - 0x9a, 0xd8, 0xcf, 0xfc, 0x15, 0x58, 0xc7, 0x40, 0x6e, 0x27, 0x44, 0x14, 0x53, 0xf1, 0x82, 0x79, - 0xfb, 0xd8, 0xbf, 0x4c, 0x53, 0x2d, 0xa2, 0x3a, 0x87, 0x4f, 0xeb, 0xf9, 0xe9, 0xc8, 0x04, 0xc3, - 0x91, 0x09, 0xfe, 0x8c, 0x4c, 0xf0, 0x79, 0x6c, 0x66, 0x86, 0x63, 0x33, 0xf3, 0x6b, 0x6c, 0x66, - 0xde, 0x34, 0xfe, 0xe9, 0x8c, 0xf7, 0xfa, 0xe2, 0xd0, 0x97, 0x98, 0x34, 0x8a, 0x5b, 0x90, 0x57, - 0xc7, 0xc3, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x44, 0x3b, 0x1e, 0xcd, 0xe3, 0x06, 0x00, 0x00, + // 618 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0xcf, 0x8b, 0xd3, 0x40, + 0x14, 0xc7, 0x3b, 0xdb, 0xb5, 0xba, 0xb3, 0xba, 0x3f, 0xe2, 0xba, 0x74, 0x17, 0x36, 0xad, 0x51, + 0xa4, 0x16, 0x4d, 0xd8, 0xf5, 0xd6, 0x9b, 0x5d, 0x11, 0x44, 0x05, 0x29, 0xe2, 0xc1, 0x4b, 0x98, + 0x24, 0x63, 0x3a, 0x6c, 0x32, 0x53, 0x32, 0x93, 0xc5, 0xde, 0x3c, 0x8a, 0x17, 0x05, 0xf1, 0xa2, + 0x17, 0x41, 0x90, 0xc5, 0x53, 0xff, 0x8c, 0x05, 0x2f, 0x3d, 0x7a, 0x5a, 0xa5, 0x3d, 0xf4, 0xdf, + 0x90, 0x4c, 0x26, 0xd9, 0xd2, 0x1f, 0x1e, 0x8b, 0x97, 0x36, 0x33, 0xef, 0xcd, 0x7b, 0x9f, 0xef, + 0xeb, 0x37, 0x1d, 0x78, 0xd3, 0x65, 0x3c, 0x64, 0xdc, 0x3a, 0xc6, 0x5c, 0x10, 0xea, 0x5b, 0xc7, + 0xfb, 0x0e, 0x16, 0x68, 0x3f, 0x5b, 0x9b, 0x9d, 0x88, 0x09, 0xa6, 0x6d, 0xa7, 0x59, 0x66, 0xb6, + 0xab, 0xb2, 0x76, 0x37, 0x51, 0x48, 0x28, 0xb3, 0xe4, 0x67, 0x9a, 0xba, 0xbb, 0xe5, 0x33, 0x9f, + 0xc9, 0x47, 0x2b, 0x79, 0x52, 0xbb, 0xba, 0x6a, 0xe3, 0x20, 0x8e, 0xf3, 0x1e, 0x2e, 0x23, 0x74, + 0x22, 0x8e, 0x62, 0xd1, 0xce, 0xe3, 0xc9, 0x22, 0x8d, 0x1b, 0x83, 0x65, 0xa8, 0x35, 0x11, 0xc7, + 0x2f, 0x52, 0x80, 0xfb, 0xae, 0xcb, 0x62, 0x2a, 0xb4, 0x47, 0xf0, 0x72, 0x52, 0xd1, 0x46, 0xe9, + 0xba, 0x0c, 0xaa, 0xa0, 0xb6, 0x7a, 0x50, 0x35, 0x15, 0xae, 0x2c, 0xa0, 0xaa, 0x99, 0xc9, 0x71, + 0x75, 0xae, 0xb9, 0xdc, 0x3f, 0xab, 0x80, 0xd6, 0xaa, 0x73, 0xbe, 0xa5, 0x7d, 0x04, 0x70, 0x83, + 0x45, 0xc4, 0x27, 0x14, 0x05, 0xb6, 0xd2, 0x59, 0x5e, 0xaa, 0x16, 0x6b, 0xab, 0x07, 0x3b, 0x59, + 0xbd, 0x24, 0x3f, 0xaf, 0x77, 0xc8, 0x08, 0x6d, 0x3e, 0x3d, 0x3d, 0xab, 0x14, 0x7e, 0xfc, 0xae, + 0xd4, 0x7c, 0x22, 0xda, 0xb1, 0x63, 0xba, 0x2c, 0xb4, 0x94, 0x94, 0xf4, 0xeb, 0x2e, 0xf7, 0x8e, + 0x2c, 0xd1, 0xed, 0x60, 0x2e, 0x0f, 0xf0, 0xcf, 0xa3, 0x5e, 0xfd, 0x2a, 0x8d, 0x83, 0xc0, 0xe6, + 0x01, 0x71, 0xb1, 0x8d, 0xb8, 0x8d, 0xc3, 0x8e, 0xe8, 0x9e, 0x8c, 0x7a, 0x75, 0xd0, 0x5a, 0xcf, + 0x08, 0x94, 0x4e, 0xed, 0x3d, 0x80, 0x6b, 0x1e, 0x0e, 0xb0, 0x8f, 0x04, 0xf6, 0xec, 0x57, 0x11, + 0xc6, 0xe5, 0xe2, 0x82, 0x99, 0xae, 0xe4, 0xfd, 0x1f, 0x46, 0x18, 0x6b, 0x9f, 0x00, 0xdc, 0x3c, + 0x27, 0xca, 0x06, 0xb5, 0xbc, 0x60, 0xa8, 0x8d, 0x1c, 0x21, 0x9b, 0xd4, 0x0e, 0xbc, 0x84, 0xa9, + 0x67, 0x0b, 0x12, 0xe2, 0xf2, 0x85, 0x2a, 0xa8, 0x15, 0x5b, 0x17, 0x31, 0xf5, 0x9e, 0x93, 0x10, + 0x37, 0x6e, 0xbd, 0xfd, 0x5a, 0x29, 0xbc, 0x1b, 0xf5, 0xea, 0x7b, 0x63, 0xad, 0xa6, 0xdd, 0x64, + 0xfc, 0x04, 0xb0, 0x7c, 0xc8, 0xa8, 0x20, 0x34, 0x66, 0x31, 0x9f, 0xb0, 0x9a, 0x03, 0xb7, 0xa4, + 0xd5, 0x94, 0xe2, 0x09, 0xcb, 0xd5, 0xcd, 0xd9, 0x6f, 0x88, 0x39, 0xdd, 0x46, 0x99, 0x4f, 0x73, + 0xa6, 0xed, 0xbc, 0x07, 0x21, 0x17, 0x28, 0x12, 0xa9, 0x8a, 0x25, 0xa9, 0x62, 0x45, 0xee, 0x48, + 0x1d, 0x77, 0x32, 0x1d, 0x37, 0xc6, 0x74, 0xcc, 0x03, 0x36, 0xbe, 0x03, 0x78, 0xed, 0x01, 0x0e, + 0x50, 0x37, 0x9f, 0xd1, 0x02, 0xa5, 0x34, 0x6e, 0x67, 0xac, 0xd5, 0x31, 0xd6, 0x99, 0x38, 0xc6, + 0x37, 0x00, 0x4b, 0xcf, 0x70, 0x44, 0x98, 0xa7, 0x6d, 0xc3, 0x52, 0x80, 0xa9, 0x2f, 0xda, 0x92, + 0xa5, 0xd8, 0x52, 0x2b, 0xed, 0x0d, 0x80, 0x25, 0x14, 0x4a, 0xc8, 0x45, 0xbf, 0x92, 0xaa, 0xaf, + 0xf1, 0x65, 0x09, 0x6e, 0xa7, 0x94, 0xc4, 0xfd, 0xef, 0xac, 0xa1, 0xb5, 0xe0, 0x7a, 0xd6, 0xbd, + 0x23, 0x21, 0xb9, 0xfa, 0x9f, 0xd0, 0xe7, 0x75, 0x4f, 0xb5, 0x34, 0x57, 0x92, 0x69, 0xa5, 0x4a, + 0xd7, 0x54, 0x4a, 0x1a, 0xe1, 0x8d, 0x7a, 0xf6, 0x13, 0x5e, 0x1f, 0x9b, 0xdb, 0xec, 0x11, 0x18, + 0x27, 0x40, 0x4e, 0x27, 0x44, 0x14, 0x53, 0xf1, 0x84, 0xb9, 0x47, 0xd8, 0x5b, 0xa4, 0xdb, 0xe6, + 0xa1, 0xce, 0xe0, 0x69, 0x3e, 0x3e, 0x1d, 0xe8, 0xa0, 0x3f, 0xd0, 0xc1, 0x9f, 0x81, 0x0e, 0x3e, + 0x0c, 0xf5, 0x42, 0x7f, 0xa8, 0x17, 0x7e, 0x0d, 0xf5, 0xc2, 0xcb, 0xfd, 0x7f, 0x3a, 0xe6, 0xb5, + 0xba, 0x9c, 0xd4, 0x45, 0x29, 0x0d, 0xe4, 0x94, 0xe4, 0xf5, 0x74, 0xef, 0x6f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xe6, 0x60, 0xfb, 0xe0, 0x47, 0x07, 0x00, 0x00, } func (m *BaseVestingAccount) Marshal() (dAtA []byte, err error) { diff --git a/x/bank/types/authz.pb.go b/x/bank/types/authz.pb.go index 17131972c91b..2984aded7207 100644 --- a/x/bank/types/authz.pb.go +++ b/x/bank/types/authz.pb.go @@ -94,29 +94,30 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/authz.proto", fileDescriptor_a4d2a37888ea779f) } var fileDescriptor_a4d2a37888ea779f = []byte{ - // 339 bytes of a gzipped FileDescriptorProto + // 365 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4f, 0xce, 0x2f, 0xce, 0xcd, 0x2f, 0xd6, 0x4f, 0x4a, 0xcc, 0xcb, 0xd6, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x2c, 0x2d, 0xc9, 0xa8, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x86, 0x28, 0xd0, 0x03, 0x29, 0xd0, 0x83, 0x2a, 0x90, 0x12, 0x4c, 0xcc, 0xcd, 0xcc, 0xcb, 0xd7, 0x07, 0x93, 0x10, 0x75, 0x52, 0x22, 0xe9, 0xf9, 0xe9, 0xf9, 0x60, 0xa6, 0x3e, 0x88, 0x05, 0x15, 0x95, 0x84, 0xe8, 0x8e, 0x87, 0x48, 0x40, 0x8d, 0x82, 0x48, 0xc9, 0xc1, 0x6d, 0x2e, 0x4e, 0x85, 0xdb, 0x9c, 0x9c, - 0x9f, 0x99, 0x07, 0x91, 0x57, 0xea, 0x60, 0xe2, 0x12, 0x0c, 0x4e, 0xcd, 0x4b, 0x71, 0x2c, 0x2d, - 0xc9, 0xc8, 0x2f, 0xca, 0xac, 0x4a, 0x2c, 0xc9, 0xcc, 0xcf, 0x13, 0x2a, 0xe4, 0xe2, 0x2e, 0x2e, - 0x48, 0xcd, 0x4b, 0x89, 0xcf, 0xc9, 0xcc, 0xcd, 0x2c, 0x91, 0x60, 0x54, 0x60, 0xd6, 0xe0, 0x36, - 0x92, 0xd4, 0x83, 0x3b, 0xb2, 0x38, 0x15, 0xe6, 0x48, 0x3d, 0xe7, 0xfc, 0xcc, 0x3c, 0x27, 0xd3, - 0x13, 0xf7, 0xe4, 0x19, 0x56, 0xdd, 0x97, 0xd7, 0x48, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, - 0xce, 0xcf, 0x85, 0x3a, 0x03, 0x4a, 0xe9, 0x16, 0xa7, 0x64, 0xeb, 0x97, 0x54, 0x16, 0xa4, 0x16, - 0x83, 0x35, 0x14, 0xaf, 0x78, 0xbe, 0x41, 0x8b, 0x31, 0x88, 0x0b, 0x6c, 0x89, 0x0f, 0xc8, 0x0e, - 0x21, 0x73, 0x2e, 0xae, 0xc4, 0x9c, 0x9c, 0xfc, 0xf2, 0xf8, 0x9c, 0xcc, 0xe2, 0x12, 0x09, 0x26, - 0x05, 0x66, 0x0d, 0x4e, 0x27, 0x89, 0x4b, 0x5b, 0x74, 0x45, 0xa0, 0x96, 0x3a, 0xa6, 0xa4, 0x14, - 0xa5, 0x16, 0x17, 0x07, 0x97, 0x14, 0x65, 0xe6, 0xa5, 0x07, 0x71, 0x82, 0xd5, 0xfa, 0x64, 0x16, - 0x97, 0x58, 0xb9, 0x9f, 0xda, 0xa2, 0xab, 0x04, 0x55, 0x04, 0x09, 0x52, 0x98, 0xd3, 0x50, 0xfc, - 0xd4, 0xf5, 0x7c, 0x83, 0x96, 0x0c, 0x92, 0x63, 0x30, 0x3c, 0xed, 0xe4, 0x7c, 0xe2, 0x91, 0x1c, - 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, - 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0x9a, 0x78, 0xbd, 0x55, 0x01, 0x89, 0x56, 0xb0, 0xef, - 0x92, 0xd8, 0xc0, 0xc1, 0x6a, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x78, 0xc2, 0x7d, 0xd9, 0xf2, - 0x01, 0x00, 0x00, + 0x9f, 0x99, 0x07, 0x91, 0x57, 0x5a, 0xc8, 0xc4, 0x25, 0x18, 0x9c, 0x9a, 0x97, 0xe2, 0x58, 0x5a, + 0x92, 0x91, 0x5f, 0x94, 0x59, 0x95, 0x58, 0x92, 0x99, 0x9f, 0x27, 0xd4, 0xc9, 0xc8, 0xc5, 0x5d, + 0x5c, 0x90, 0x9a, 0x97, 0x12, 0x9f, 0x93, 0x99, 0x9b, 0x59, 0x22, 0xc1, 0xa8, 0xc0, 0xac, 0xc1, + 0x6d, 0x24, 0xa9, 0x07, 0x77, 0x65, 0x71, 0x2a, 0xcc, 0x95, 0x7a, 0xce, 0xf9, 0x99, 0x79, 0x4e, + 0xbe, 0x27, 0xee, 0xc9, 0x33, 0xac, 0xba, 0x2f, 0xaf, 0x91, 0x9e, 0x59, 0x92, 0x51, 0x9a, 0xa4, + 0x97, 0x9c, 0x9f, 0x0b, 0x75, 0x07, 0x94, 0xd2, 0x2d, 0x4e, 0xc9, 0xd6, 0x2f, 0xa9, 0x2c, 0x48, + 0x2d, 0x06, 0x6b, 0x28, 0x9e, 0xf5, 0x7c, 0x83, 0x96, 0x70, 0x5e, 0x69, 0x4e, 0x4e, 0x7c, 0x71, + 0x4e, 0x66, 0x72, 0x6a, 0x7c, 0x62, 0x71, 0x7c, 0x6a, 0x6e, 0x41, 0x49, 0xe5, 0x8a, 0xe7, 0x1b, + 0xb4, 0x18, 0x83, 0xb8, 0xc0, 0x96, 0xfb, 0x80, 0xec, 0x16, 0x32, 0xe7, 0xe2, 0x4a, 0xcc, 0xc9, + 0xc9, 0x2f, 0x8f, 0xcf, 0xc9, 0x2c, 0x2e, 0x91, 0x60, 0x52, 0x60, 0xd6, 0xe0, 0x74, 0x92, 0xb8, + 0xb4, 0x45, 0x57, 0x04, 0xea, 0x18, 0xc7, 0x94, 0x94, 0xa2, 0xd4, 0xe2, 0xe2, 0xe0, 0x92, 0xa2, + 0xcc, 0xbc, 0xf4, 0x20, 0x4e, 0xb0, 0x5a, 0x9f, 0xcc, 0xe2, 0x12, 0x2b, 0xf7, 0x53, 0x5b, 0x74, + 0x95, 0xa0, 0x8a, 0x20, 0x61, 0x0d, 0x73, 0x32, 0x8a, 0x67, 0xbb, 0x9e, 0x6f, 0xd0, 0x92, 0x41, + 0x72, 0x24, 0x46, 0x68, 0x38, 0x39, 0x9f, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, + 0x47, 0x72, 0x8c, 0x13, 0x1e, 0xcb, 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, + 0x94, 0x26, 0x5e, 0xef, 0x56, 0x40, 0xe2, 0x1b, 0xec, 0xeb, 0x24, 0x36, 0x70, 0x78, 0x1b, 0x03, + 0x02, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x32, 0xe9, 0x50, 0x0b, 0x02, 0x00, 0x00, } func (m *SendAuthorization) Marshal() (dAtA []byte, err error) { diff --git a/x/bank/types/bank.pb.go b/x/bank/types/bank.pb.go index e841f04486c9..956dd99598f4 100644 --- a/x/bank/types/bank.pb.go +++ b/x/bank/types/bank.pb.go @@ -463,49 +463,50 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/bank.proto", fileDescriptor_dd052eee12edf988) } var fileDescriptor_dd052eee12edf988 = []byte{ - // 666 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x54, 0xbf, 0x6f, 0x13, 0x31, - 0x14, 0x8e, 0x93, 0xe6, 0x47, 0x1d, 0x18, 0x30, 0x11, 0xb8, 0x45, 0x5c, 0xa2, 0x1b, 0x50, 0x5a, - 0xa9, 0x39, 0x5a, 0xc4, 0x92, 0x05, 0x91, 0x82, 0x20, 0x03, 0x02, 0x5d, 0x55, 0x21, 0xb1, 0x44, - 0x4e, 0xce, 0x4d, 0xac, 0xde, 0xd9, 0xa7, 0xb3, 0xaf, 0x6a, 0x56, 0x26, 0xd4, 0x89, 0x9d, 0xa5, - 0x62, 0x42, 0x0c, 0xa8, 0x43, 0x17, 0xfe, 0x83, 0x8a, 0xa9, 0x62, 0x62, 0x2a, 0x28, 0x1d, 0xda, - 0x3f, 0x03, 0x9d, 0x7d, 0x97, 0xa6, 0x52, 0x61, 0x43, 0x62, 0x49, 0xde, 0x7b, 0xdf, 0xe7, 0xf7, - 0x3d, 0xbf, 0xf7, 0x7c, 0xd0, 0x1a, 0x08, 0x19, 0x08, 0xe9, 0xf4, 0x09, 0xdf, 0x76, 0x76, 0x56, - 0xfb, 0x54, 0x91, 0x55, 0xed, 0xb4, 0xc2, 0x48, 0x28, 0x81, 0x6e, 0x1a, 0xbc, 0xa5, 0x43, 0x29, - 0xbe, 0x58, 0x1b, 0x8a, 0xa1, 0xd0, 0xb8, 0x93, 0x58, 0x86, 0xba, 0xb8, 0x60, 0xa8, 0x3d, 0x03, - 0xa4, 0xe7, 0x0c, 0x74, 0xa1, 0x22, 0xe9, 0x54, 0x65, 0x20, 0x18, 0x4f, 0xf1, 0xdb, 0x29, 0x1e, - 0xc8, 0xa1, 0xb3, 0xb3, 0x9a, 0xfc, 0xa5, 0xc0, 0x0d, 0x12, 0x30, 0x2e, 0x1c, 0xfd, 0x6b, 0x42, - 0xf6, 0x47, 0x00, 0x4b, 0xaf, 0x48, 0x44, 0x02, 0x89, 0x9e, 0xc1, 0x6b, 0x92, 0x72, 0xaf, 0x47, - 0x39, 0xe9, 0xfb, 0xd4, 0xc3, 0xa0, 0x51, 0x68, 0x56, 0xd7, 0x1a, 0xad, 0x2b, 0x6a, 0x6e, 0x6d, - 0x50, 0xee, 0x3d, 0x35, 0xbc, 0x4e, 0x1e, 0x03, 0xb7, 0x2a, 0x2f, 0x02, 0xe8, 0x3e, 0xac, 0x79, - 0x74, 0x8b, 0xc4, 0xbe, 0xea, 0x5d, 0x4a, 0x98, 0x6f, 0x80, 0x66, 0xc5, 0x45, 0x29, 0x36, 0x93, - 0xa2, 0x7d, 0x77, 0xef, 0xec, 0x60, 0x19, 0x1b, 0xa1, 0x15, 0xe9, 0x6d, 0x3b, 0xbb, 0xa6, 0x85, - 0xa6, 0x32, 0x7b, 0x1d, 0x56, 0x67, 0xd8, 0xa8, 0x06, 0x8b, 0x1e, 0xe5, 0x22, 0xc0, 0xa0, 0x01, - 0x9a, 0xf3, 0xae, 0x71, 0x10, 0x86, 0xe5, 0xcb, 0x42, 0x99, 0xdb, 0x9e, 0x3b, 0xdf, 0xaf, 0x03, - 0xfb, 0x2b, 0x80, 0xc5, 0x2e, 0x0f, 0x63, 0x85, 0xd6, 0x60, 0x99, 0x78, 0x5e, 0x44, 0xa5, 0x34, - 0x19, 0x3a, 0xf8, 0xfb, 0xe1, 0x4a, 0x2d, 0xbd, 0xe6, 0x63, 0x83, 0x6c, 0xa8, 0x88, 0xf1, 0xa1, - 0x9b, 0x11, 0xd1, 0x16, 0x2c, 0x26, 0x1d, 0x96, 0x38, 0xaf, 0xbb, 0xb2, 0x70, 0xd1, 0x15, 0x49, - 0xa7, 0x5d, 0x59, 0x17, 0x8c, 0x77, 0x1e, 0x1e, 0x9d, 0xd4, 0x73, 0x9f, 0x7f, 0xd6, 0x9b, 0x43, - 0xa6, 0x46, 0x71, 0xbf, 0x35, 0x10, 0x41, 0x3a, 0x3e, 0x67, 0xe6, 0x82, 0x6a, 0x1c, 0x52, 0xa9, - 0x0f, 0xc8, 0x4f, 0x67, 0x07, 0xcb, 0xc0, 0x35, 0xe9, 0xdb, 0xb5, 0x77, 0xfb, 0xf5, 0xdc, 0xf9, - 0x7e, 0x3d, 0xf7, 0xf6, 0xec, 0x60, 0x39, 0x53, 0xb7, 0xbf, 0x00, 0x58, 0x7a, 0x19, 0xab, 0xff, - 0xbd, 0xf8, 0x4a, 0x56, 0xbc, 0xfd, 0x01, 0xc0, 0xd2, 0x46, 0x1c, 0x86, 0xfe, 0x38, 0x11, 0x57, - 0x42, 0x11, 0x3f, 0xdd, 0xa7, 0x7f, 0x20, 0xae, 0xd3, 0xb7, 0x97, 0x52, 0x71, 0xf0, 0xed, 0x70, - 0xe5, 0xce, 0x95, 0x3b, 0xab, 0xeb, 0xe9, 0x62, 0x60, 0xbf, 0x86, 0xf3, 0x4f, 0x92, 0x9d, 0xd9, - 0xe4, 0x4c, 0xfd, 0x61, 0x9b, 0x16, 0x61, 0x85, 0xee, 0x86, 0x82, 0x53, 0xae, 0xf4, 0x3a, 0x5d, - 0x77, 0xa7, 0x7e, 0xb2, 0x69, 0xc4, 0x67, 0x44, 0x52, 0x89, 0x0b, 0x8d, 0x42, 0x73, 0xde, 0xcd, - 0x5c, 0x7b, 0x2f, 0x0f, 0x2b, 0x2f, 0xa8, 0x22, 0x1e, 0x51, 0x04, 0x35, 0x60, 0xd5, 0xa3, 0x72, - 0x10, 0xb1, 0x50, 0x31, 0xc1, 0xd3, 0xf4, 0xb3, 0x21, 0xf4, 0x28, 0x61, 0x70, 0x11, 0xf4, 0x62, - 0xce, 0x54, 0x36, 0x1d, 0xeb, 0xca, 0x07, 0x37, 0xad, 0xd7, 0x85, 0x5e, 0x66, 0x4a, 0x84, 0xe0, - 0x5c, 0xd2, 0x46, 0x5c, 0xd0, 0xb9, 0xb5, 0x9d, 0x54, 0xe7, 0x31, 0x19, 0xfa, 0x64, 0x8c, 0xe7, - 0x74, 0x38, 0x73, 0x13, 0x36, 0x27, 0x01, 0xc5, 0x45, 0xc3, 0x4e, 0x6c, 0x74, 0x0b, 0x96, 0xe4, - 0x38, 0xe8, 0x0b, 0x1f, 0x97, 0x74, 0x34, 0xf5, 0xd0, 0x02, 0x2c, 0xc4, 0x11, 0xc3, 0x65, 0xbd, - 0x62, 0xe5, 0xc9, 0x49, 0xbd, 0xb0, 0xe9, 0x76, 0xdd, 0x24, 0x86, 0xee, 0xc1, 0x4a, 0x1c, 0xb1, - 0xde, 0x88, 0xc8, 0x11, 0xae, 0x68, 0xbc, 0x3a, 0x39, 0xa9, 0x97, 0x37, 0xdd, 0xee, 0x73, 0x22, - 0x47, 0x6e, 0x39, 0x8e, 0x58, 0x62, 0x74, 0xd6, 0x8f, 0x26, 0x16, 0x38, 0x9e, 0x58, 0xe0, 0xd7, - 0xc4, 0x02, 0xef, 0x4f, 0xad, 0xdc, 0xf1, 0xa9, 0x95, 0xfb, 0x71, 0x6a, 0xe5, 0xde, 0x2c, 0xfd, - 0x75, 0xc0, 0xe9, 0xdb, 0xd7, 0x73, 0xee, 0x97, 0xf4, 0x67, 0xea, 0xc1, 0xef, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x8f, 0xcf, 0x82, 0xbe, 0x5a, 0x05, 0x00, 0x00, + // 688 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x54, 0xbf, 0x6f, 0x13, 0x49, + 0x14, 0xf6, 0xd8, 0xf1, 0x8f, 0x8c, 0xef, 0x8a, 0x9b, 0x58, 0x77, 0x93, 0x9c, 0x6e, 0x6d, 0xb9, + 0x38, 0x39, 0x96, 0x62, 0x93, 0xd0, 0xb9, 0x41, 0x38, 0x20, 0x70, 0x11, 0x81, 0x36, 0x8a, 0x90, + 0x68, 0x56, 0x63, 0xef, 0x60, 0x8f, 0xb2, 0x3b, 0xb3, 0xda, 0x99, 0x8d, 0xe2, 0x86, 0x82, 0x0a, + 0xa5, 0xa2, 0xa6, 0x8a, 0xa8, 0x10, 0x95, 0x25, 0xf2, 0x37, 0xa0, 0x88, 0x2a, 0x50, 0x51, 0x05, + 0xe4, 0x14, 0xce, 0x9f, 0x81, 0x76, 0x66, 0xd7, 0x71, 0xa4, 0x40, 0x89, 0x44, 0x63, 0xbf, 0xf7, + 0xbe, 0x6f, 0xdf, 0xfb, 0xde, 0x8f, 0x5d, 0x68, 0x0d, 0x84, 0xf4, 0x85, 0x6c, 0xf7, 0x09, 0xdf, + 0x6f, 0x1f, 0x6c, 0xf6, 0xa9, 0x22, 0x9b, 0xda, 0x69, 0x05, 0xa1, 0x50, 0x02, 0xad, 0x18, 0xbc, + 0xa5, 0x43, 0x09, 0xbe, 0x56, 0x19, 0x8a, 0xa1, 0xd0, 0x78, 0x3b, 0xb6, 0x0c, 0x75, 0x6d, 0xd5, + 0x50, 0x1d, 0x03, 0x24, 0xcf, 0x19, 0xe8, 0xaa, 0x8a, 0xa4, 0xf3, 0x2a, 0x03, 0xc1, 0x78, 0x82, + 0xff, 0x93, 0xe0, 0xbe, 0x1c, 0xb6, 0x0f, 0x36, 0xe3, 0xbf, 0x04, 0xf8, 0x8b, 0xf8, 0x8c, 0x8b, + 0xb6, 0xfe, 0x35, 0xa1, 0xfa, 0x1b, 0x00, 0x0b, 0x8f, 0x49, 0x48, 0x7c, 0x89, 0x1e, 0xc0, 0x3f, + 0x24, 0xe5, 0xae, 0x43, 0x39, 0xe9, 0x7b, 0xd4, 0xc5, 0xa0, 0x96, 0x6b, 0x94, 0xb7, 0x6a, 0xad, + 0x1b, 0x34, 0xb7, 0x76, 0x29, 0x77, 0xef, 0x1b, 0x5e, 0x37, 0x8b, 0x81, 0x5d, 0x96, 0x57, 0x01, + 0x74, 0x0b, 0x56, 0x5c, 0xfa, 0x8c, 0x44, 0x9e, 0x72, 0xae, 0x25, 0xcc, 0xd6, 0x40, 0xa3, 0x64, + 0xa3, 0x04, 0x5b, 0x48, 0xd1, 0xf9, 0xef, 0x68, 0x36, 0x69, 0x62, 0x53, 0x68, 0x43, 0xba, 0xfb, + 0xed, 0x43, 0x33, 0x42, 0xa3, 0xac, 0xbe, 0x0d, 0xcb, 0x0b, 0x6c, 0x54, 0x81, 0x79, 0x97, 0x72, + 0xe1, 0x63, 0x50, 0x03, 0x8d, 0x65, 0xdb, 0x38, 0x08, 0xc3, 0xe2, 0xf5, 0x42, 0xa9, 0xdb, 0x59, + 0xba, 0x3c, 0xae, 0x82, 0xfa, 0x27, 0x00, 0xf3, 0x3d, 0x1e, 0x44, 0x0a, 0x6d, 0xc1, 0x22, 0x71, + 0xdd, 0x90, 0x4a, 0x69, 0x32, 0x74, 0xf1, 0xe7, 0x93, 0x8d, 0x4a, 0xd2, 0xe6, 0x5d, 0x83, 0xec, + 0xaa, 0x90, 0xf1, 0xa1, 0x9d, 0x12, 0xd1, 0x73, 0x98, 0x8f, 0x27, 0x2c, 0x71, 0x56, 0x4f, 0x65, + 0xf5, 0x6a, 0x2a, 0x92, 0xce, 0xa7, 0xb2, 0x2d, 0x18, 0xef, 0xee, 0x9c, 0x9e, 0x57, 0x33, 0xef, + 0xbe, 0x56, 0x1b, 0x43, 0xa6, 0x46, 0x51, 0xbf, 0x35, 0x10, 0x7e, 0xb2, 0xbe, 0xf6, 0x42, 0x83, + 0x6a, 0x1c, 0x50, 0xa9, 0x1f, 0x90, 0xaf, 0x67, 0x93, 0xe6, 0x0a, 0x8f, 0x3c, 0xcf, 0x91, 0x1e, + 0x1b, 0x50, 0x87, 0x48, 0x87, 0xfa, 0x81, 0x1a, 0xbf, 0x9d, 0x4d, 0x9a, 0xc0, 0x36, 0x65, 0x3b, + 0x95, 0x97, 0xc7, 0xd5, 0xcc, 0xe5, 0x71, 0x35, 0xf3, 0x62, 0x36, 0x69, 0xa6, 0xaa, 0xea, 0x1f, + 0x00, 0x2c, 0x3c, 0x8a, 0xd4, 0xef, 0xda, 0x54, 0x29, 0x6d, 0xaa, 0xfe, 0x1e, 0xc0, 0xc2, 0x6e, + 0x14, 0x04, 0xde, 0x38, 0x16, 0xa5, 0x84, 0x22, 0x5e, 0x72, 0x7f, 0xbf, 0x50, 0x94, 0x2e, 0xdb, + 0x59, 0x4f, 0x44, 0x81, 0x8f, 0x27, 0x1b, 0xff, 0xde, 0x78, 0xfb, 0x5a, 0x67, 0x0f, 0x83, 0xfa, + 0x13, 0xb8, 0x7c, 0x2f, 0xbe, 0xbd, 0x3d, 0xce, 0xd4, 0x0f, 0xae, 0x72, 0x0d, 0x96, 0xe8, 0x61, + 0x20, 0x38, 0xe5, 0x4a, 0x9f, 0xe5, 0x9f, 0xf6, 0xdc, 0x8f, 0x2f, 0x96, 0x78, 0x8c, 0x48, 0x2a, + 0x71, 0xae, 0x96, 0x6b, 0x2c, 0xdb, 0xa9, 0x5b, 0x3f, 0xca, 0xc2, 0xd2, 0x0e, 0x55, 0xc4, 0x25, + 0x8a, 0xa0, 0x1a, 0x2c, 0xbb, 0x54, 0x0e, 0x42, 0x16, 0x28, 0x26, 0x78, 0x92, 0x7e, 0x31, 0x84, + 0xee, 0xc4, 0x0c, 0x2e, 0x7c, 0x27, 0xe2, 0x4c, 0xa5, 0xdb, 0xb4, 0x6e, 0x7c, 0x71, 0xe7, 0x7a, + 0x6d, 0xe8, 0xa6, 0xa6, 0x44, 0x08, 0x2e, 0xc5, 0xe3, 0xc5, 0x39, 0x9d, 0x5b, 0xdb, 0xb1, 0x3a, + 0x97, 0xc9, 0xc0, 0x23, 0x63, 0xbc, 0xa4, 0xc3, 0xa9, 0x1b, 0xb3, 0x39, 0xf1, 0x29, 0xce, 0x1b, + 0x76, 0x6c, 0xa3, 0xbf, 0x61, 0x41, 0x8e, 0xfd, 0xbe, 0xf0, 0x70, 0x41, 0x47, 0x13, 0x0f, 0xad, + 0xc2, 0x5c, 0x14, 0x32, 0x5c, 0xd4, 0x27, 0x59, 0x9c, 0x9e, 0x57, 0x73, 0x7b, 0x76, 0xcf, 0x8e, + 0x63, 0xe8, 0x7f, 0x58, 0x8a, 0x42, 0xe6, 0x8c, 0x88, 0x1c, 0xe1, 0x92, 0xc6, 0xcb, 0xd3, 0xf3, + 0x6a, 0x71, 0xcf, 0xee, 0x3d, 0x24, 0x72, 0x64, 0x17, 0xa3, 0x90, 0xc5, 0x46, 0x77, 0xfb, 0x74, + 0x6a, 0x81, 0xb3, 0xa9, 0x05, 0xbe, 0x4d, 0x2d, 0xf0, 0xea, 0xc2, 0xca, 0x9c, 0x5d, 0x58, 0x99, + 0x2f, 0x17, 0x56, 0xe6, 0xe9, 0xfa, 0x4f, 0x17, 0x9f, 0x7c, 0x43, 0xf4, 0xfe, 0xfb, 0x05, 0xfd, + 0xb9, 0xbb, 0xfd, 0x3d, 0x00, 0x00, 0xff, 0xff, 0x85, 0xe4, 0x67, 0xe8, 0xa2, 0x05, 0x00, 0x00, } func (this *SendEnabled) Equal(that interface{}) bool { diff --git a/x/bank/types/genesis.pb.go b/x/bank/types/genesis.pb.go index af5383cc7606..1cbe1661f781 100644 --- a/x/bank/types/genesis.pb.go +++ b/x/bank/types/genesis.pb.go @@ -162,35 +162,37 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/genesis.proto", fileDescriptor_8f007de11b420c6e) } var fileDescriptor_8f007de11b420c6e = []byte{ - // 445 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x92, 0xbd, 0xae, 0xd3, 0x30, - 0x1c, 0xc5, 0x13, 0xca, 0xed, 0xbd, 0xd7, 0xbd, 0x20, 0x61, 0x3a, 0xa4, 0x05, 0x92, 0xd2, 0xa9, - 0x20, 0x35, 0x51, 0x8b, 0x58, 0x18, 0x90, 0x48, 0x85, 0x98, 0xf8, 0x50, 0xbb, 0xb1, 0x54, 0x4e, - 0x6c, 0xd2, 0xa8, 0x8d, 0x1d, 0xc5, 0x2e, 0xa2, 0x6f, 0xc0, 0xc8, 0x13, 0xa0, 0x8e, 0x88, 0x05, - 0x06, 0x1e, 0xa2, 0x63, 0xc5, 0xc4, 0x04, 0xa8, 0x1d, 0xe0, 0x31, 0x50, 0x6c, 0x37, 0x8d, 0x44, - 0xc4, 0xc4, 0x92, 0x44, 0x3e, 0xe7, 0xfc, 0xfe, 0x27, 0xb6, 0xc1, 0xed, 0x90, 0xf1, 0x84, 0x71, - 0x2f, 0x40, 0x74, 0xee, 0xbd, 0x1e, 0x04, 0x44, 0xa0, 0x81, 0x17, 0x11, 0x4a, 0x78, 0xcc, 0xdd, - 0x34, 0x63, 0x82, 0xc1, 0xeb, 0xca, 0xe2, 0xe6, 0x16, 0x57, 0x5b, 0xda, 0xcd, 0x88, 0x45, 0x4c, - 0xea, 0x5e, 0xfe, 0xa5, 0xac, 0x6d, 0xbb, 0xa0, 0x71, 0x52, 0xd0, 0x42, 0x16, 0xd3, 0xbf, 0xf4, - 0xd2, 0x34, 0xc9, 0x55, 0x7a, 0x4b, 0xe9, 0x53, 0x05, 0xd6, 0x73, 0x95, 0x74, 0x0d, 0x25, 0x31, - 0x65, 0x9e, 0x7c, 0xaa, 0xa5, 0xee, 0xfb, 0x1a, 0xb8, 0x78, 0xa2, 0xaa, 0x4e, 0x04, 0x12, 0x04, - 0x3e, 0x04, 0xf5, 0x14, 0x65, 0x28, 0xe1, 0x96, 0xd9, 0x31, 0x7b, 0x8d, 0xe1, 0x0d, 0xb7, 0xa2, - 0xba, 0xfb, 0x42, 0x5a, 0xfc, 0xf3, 0xcd, 0x77, 0xc7, 0xf8, 0xf0, 0xeb, 0xf3, 0x5d, 0x73, 0xac, - 0x53, 0x70, 0x04, 0xce, 0x02, 0xb4, 0x40, 0x34, 0x24, 0xdc, 0xba, 0xd4, 0xa9, 0xf5, 0x1a, 0xc3, - 0x9b, 0x95, 0x04, 0x5f, 0x99, 0xca, 0x88, 0x22, 0x08, 0x67, 0xa0, 0xce, 0x97, 0x69, 0xba, 0x58, - 0x59, 0x35, 0x89, 0x68, 0x1d, 0x11, 0x9c, 0x14, 0x88, 0x11, 0x8b, 0xa9, 0x7f, 0x3f, 0xcf, 0x7f, - 0xfc, 0xe1, 0xf4, 0xa2, 0x58, 0xcc, 0x96, 0x81, 0x1b, 0xb2, 0x44, 0xff, 0xb4, 0x7e, 0xf5, 0x39, - 0x9e, 0x7b, 0x62, 0x95, 0x12, 0x2e, 0x03, 0x5c, 0xd7, 0x55, 0x7c, 0xf8, 0x1c, 0x5c, 0xc5, 0x84, - 0xb2, 0x64, 0x9a, 0x10, 0x81, 0x30, 0x12, 0xc8, 0xba, 0x2c, 0x27, 0xde, 0xaa, 0x2c, 0xfd, 0x54, - 0x9b, 0xca, 0xad, 0xaf, 0xc8, 0xfc, 0x41, 0x81, 0xcf, 0xc0, 0x05, 0x27, 0x14, 0x4f, 0x09, 0x45, - 0xc1, 0x82, 0x60, 0xeb, 0x44, 0xe2, 0x3a, 0x95, 0xb8, 0x09, 0xa1, 0xf8, 0xb1, 0xf2, 0x95, 0x89, - 0x0d, 0x7e, 0x5c, 0xef, 0x7e, 0x32, 0xc1, 0xa9, 0xde, 0x2b, 0x38, 0x04, 0xa7, 0x08, 0xe3, 0x8c, - 0x70, 0x75, 0x38, 0xe7, 0xbe, 0xf5, 0xf5, 0x4b, 0xbf, 0xa9, 0xc9, 0x8f, 0x94, 0x32, 0x11, 0x59, - 0x4c, 0xa3, 0xf1, 0xc1, 0x08, 0x5f, 0x81, 0x93, 0xfc, 0xf2, 0x1c, 0x0e, 0xe3, 0xff, 0xef, 0xa4, - 0xc2, 0x3f, 0x38, 0x7b, 0xbb, 0x76, 0x8c, 0xdf, 0x6b, 0xc7, 0xf0, 0x47, 0x9b, 0x9d, 0x6d, 0x6e, - 0x77, 0xb6, 0xf9, 0x73, 0x67, 0x9b, 0xef, 0xf6, 0xb6, 0xb1, 0xdd, 0xdb, 0xc6, 0xb7, 0xbd, 0x6d, - 0xbc, 0xbc, 0xf3, 0x4f, 0xf2, 0x1b, 0x75, 0xa5, 0xe5, 0x80, 0xa0, 0x2e, 0xaf, 0xe7, 0xbd, 0x3f, - 0x01, 0x00, 0x00, 0xff, 0xff, 0x5d, 0x88, 0xa3, 0x71, 0x5c, 0x03, 0x00, 0x00, + // 469 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x93, 0xb1, 0x6f, 0xd3, 0x40, + 0x14, 0xc6, 0x6d, 0x42, 0xd3, 0xf6, 0x52, 0x90, 0xb8, 0x76, 0x70, 0x0b, 0x38, 0xa1, 0x53, 0xa8, + 0x54, 0x5b, 0x0d, 0x1b, 0x03, 0x12, 0x8e, 0x10, 0x53, 0x01, 0x35, 0x1b, 0x8b, 0x75, 0xf6, 0x3d, + 0x19, 0xab, 0xf6, 0x9d, 0x95, 0x77, 0x41, 0x64, 0x41, 0x8c, 0x8c, 0xcc, 0x4c, 0x1d, 0x11, 0x53, + 0x07, 0x24, 0xfe, 0x04, 0x3a, 0x56, 0x4c, 0x4c, 0x80, 0x92, 0xa1, 0xfc, 0x19, 0x28, 0x77, 0x97, + 0x34, 0x12, 0x16, 0x63, 0x17, 0xdb, 0xba, 0xef, 0x7b, 0xbf, 0xef, 0xbd, 0xbb, 0x33, 0xb9, 0x97, + 0x4a, 0x2c, 0x25, 0x86, 0x09, 0x13, 0xc7, 0xe1, 0xeb, 0x83, 0x04, 0x14, 0x3b, 0x08, 0x33, 0x10, + 0x80, 0x39, 0x06, 0xd5, 0x50, 0x2a, 0x49, 0x37, 0x8d, 0x25, 0x98, 0x59, 0x02, 0x6b, 0xd9, 0xd9, + 0xca, 0x64, 0x26, 0xb5, 0x1e, 0xce, 0xbe, 0x8c, 0x75, 0xc7, 0x5f, 0xd0, 0x10, 0x16, 0xb4, 0x54, + 0xe6, 0xe2, 0x1f, 0x7d, 0x29, 0x4d, 0x73, 0x8d, 0xbe, 0x6d, 0xf4, 0xd8, 0x80, 0x6d, 0xae, 0x91, + 0x6e, 0xb1, 0x32, 0x17, 0x32, 0xd4, 0x4f, 0xb3, 0xb4, 0xfb, 0xb5, 0x41, 0x36, 0x9e, 0x9a, 0x56, + 0x07, 0x8a, 0x29, 0xa0, 0x8f, 0x48, 0xb3, 0x62, 0x43, 0x56, 0xa2, 0xe7, 0x76, 0xdc, 0x6e, 0xab, + 0x77, 0x3b, 0xa8, 0x69, 0x3d, 0x78, 0xa1, 0x2d, 0xd1, 0xfa, 0xd9, 0xcf, 0xb6, 0xf3, 0xe9, 0xe2, + 0x74, 0xcf, 0x3d, 0xb2, 0x55, 0xb4, 0x4f, 0xd6, 0x12, 0x56, 0x30, 0x91, 0x02, 0x7a, 0xd7, 0x3a, + 0x8d, 0x6e, 0xab, 0x77, 0xa7, 0x96, 0x10, 0x19, 0xd3, 0x32, 0x62, 0x51, 0x48, 0xdf, 0xb9, 0xa4, + 0x89, 0xa3, 0xaa, 0x2a, 0xc6, 0x5e, 0x43, 0x33, 0xb6, 0x2f, 0x19, 0x08, 0x0b, 0x46, 0x5f, 0xe6, + 0x22, 0x3a, 0x9c, 0x01, 0x3e, 0xff, 0x6a, 0x77, 0xb3, 0x5c, 0xbd, 0x1a, 0x25, 0x41, 0x2a, 0x4b, + 0x3b, 0xb5, 0x7d, 0xed, 0x23, 0x3f, 0x0e, 0xd5, 0xb8, 0x02, 0xd4, 0x05, 0xf8, 0xf1, 0xe2, 0x74, + 0x6f, 0x53, 0x8c, 0x8a, 0x22, 0xc6, 0x22, 0x4f, 0x21, 0x66, 0x18, 0x43, 0x59, 0xa9, 0xb1, 0x9d, + 0xc3, 0xe4, 0xd2, 0xe7, 0xe4, 0x26, 0x07, 0x21, 0xcb, 0xb8, 0x04, 0xc5, 0x38, 0x53, 0xcc, 0xbb, + 0xae, 0x3b, 0xb9, 0x5b, 0x3b, 0xcd, 0xa1, 0x35, 0x2d, 0x8f, 0x73, 0x43, 0xd7, 0xcf, 0x15, 0xfa, + 0x8c, 0x6c, 0x20, 0x08, 0x1e, 0x83, 0x60, 0x49, 0x01, 0xdc, 0x5b, 0xd1, 0xb8, 0x4e, 0x2d, 0x6e, + 0x00, 0x82, 0x3f, 0x31, 0xbe, 0x65, 0x62, 0x0b, 0x2f, 0xd7, 0x77, 0xbf, 0xb9, 0x64, 0xd5, 0x6e, + 0x22, 0xed, 0x91, 0x55, 0xc6, 0xf9, 0x10, 0xd0, 0x9c, 0xda, 0x7a, 0xe4, 0x7d, 0xff, 0xb2, 0xbf, + 0x65, 0xc9, 0x8f, 0x8d, 0x32, 0x50, 0xc3, 0x5c, 0x64, 0x47, 0x73, 0x23, 0x7d, 0x4b, 0x56, 0x66, + 0xb7, 0x6a, 0x7e, 0x4a, 0x57, 0xb7, 0xc3, 0x26, 0xf6, 0xe1, 0xda, 0xfb, 0x93, 0xb6, 0xf3, 0xe7, + 0xa4, 0xed, 0x44, 0xfd, 0xb3, 0x89, 0xef, 0x9e, 0x4f, 0x7c, 0xf7, 0xf7, 0xc4, 0x77, 0x3f, 0x4c, + 0x7d, 0xe7, 0x7c, 0xea, 0x3b, 0x3f, 0xa6, 0xbe, 0xf3, 0xf2, 0xfe, 0x7f, 0x13, 0xdf, 0x98, 0x7f, + 0x40, 0x07, 0x27, 0x4d, 0x7d, 0x9f, 0x1f, 0xfc, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x75, 0xe4, + 0x92, 0x8d, 0x03, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { diff --git a/x/bank/types/query.pb.go b/x/bank/types/query.pb.go index beaa0ab624ab..1c681006177b 100644 --- a/x/bank/types/query.pb.go +++ b/x/bank/types/query.pb.go @@ -1202,83 +1202,85 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/query.proto", fileDescriptor_9c6fc1939682df13) } var fileDescriptor_9c6fc1939682df13 = []byte{ - // 1211 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x58, 0xcf, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0xa4, 0xaa, 0x93, 0x3c, 0xa7, 0x95, 0x3a, 0x0d, 0x34, 0xd9, 0x10, 0x3b, 0x6c, 0xaa, - 0xc6, 0x09, 0xc9, 0x6e, 0xe3, 0x00, 0xa2, 0x55, 0x89, 0x54, 0xa7, 0xb4, 0x07, 0x84, 0x5a, 0x1c, - 0x7a, 0x81, 0x83, 0xb5, 0xf6, 0x0e, 0xae, 0x15, 0x7b, 0xc7, 0xf5, 0x6c, 0x5a, 0xac, 0xaa, 0x12, - 0x42, 0x42, 0xea, 0x11, 0x89, 0x9e, 0x90, 0x90, 0x22, 0x24, 0xa0, 0x02, 0x09, 0x21, 0xc4, 0x91, - 0x23, 0x87, 0x5e, 0x90, 0x0a, 0x1c, 0xca, 0x09, 0x50, 0x82, 0x04, 0x7f, 0x06, 0xf2, 0xfc, 0xf0, - 0xee, 0xda, 0xe3, 0x8d, 0x93, 0xba, 0x12, 0x5c, 0x5a, 0x7b, 0xe6, 0xbd, 0x79, 0xdf, 0xfb, 0xde, - 0x9b, 0x79, 0x9f, 0x03, 0x99, 0x32, 0x65, 0x75, 0xca, 0xec, 0x92, 0xe3, 0x6d, 0xd9, 0xb7, 0x56, - 0x4b, 0xc4, 0x77, 0x56, 0xed, 0x9b, 0xdb, 0xa4, 0xd9, 0xb2, 0x1a, 0x4d, 0xea, 0x53, 0x7c, 0x52, - 0x18, 0x58, 0x6d, 0x03, 0x4b, 0x1a, 0x18, 0x4b, 0x1d, 0x2f, 0x46, 0x84, 0x75, 0xc7, 0xb7, 0xe1, - 0x54, 0xaa, 0x9e, 0xe3, 0x57, 0xa9, 0x27, 0x0e, 0x30, 0x26, 0x2b, 0xb4, 0x42, 0xf9, 0x47, 0xbb, - 0xfd, 0x49, 0xae, 0x3e, 0x57, 0xa1, 0xb4, 0x52, 0x23, 0xb6, 0xd3, 0xa8, 0xda, 0x8e, 0xe7, 0x51, - 0x9f, 0xbb, 0x30, 0xb9, 0x9b, 0x0e, 0x9f, 0xaf, 0x4e, 0x2e, 0xd3, 0xaa, 0xd7, 0xb3, 0x1f, 0x42, - 0xcd, 0x11, 0x8a, 0xfd, 0x69, 0xb1, 0x5f, 0x14, 0x61, 0x65, 0x06, 0x62, 0x6b, 0x46, 0xba, 0x2a, - 0xd4, 0xe1, 0x64, 0x8d, 0x13, 0x4e, 0xbd, 0xea, 0x51, 0x9b, 0xff, 0x2b, 0x96, 0xcc, 0x2a, 0x9c, - 0x7c, 0xb3, 0x6d, 0x91, 0x77, 0x6a, 0x8e, 0x57, 0x26, 0x05, 0x72, 0x73, 0x9b, 0x30, 0x1f, 0xe7, - 0x60, 0xd4, 0x71, 0xdd, 0x26, 0x61, 0x6c, 0x0a, 0xcd, 0xa1, 0xec, 0x78, 0x7e, 0xea, 0x97, 0xef, - 0x57, 0x26, 0x65, 0xa4, 0x8b, 0x62, 0x67, 0xd3, 0x6f, 0x56, 0xbd, 0x4a, 0x41, 0x19, 0xe2, 0x49, - 0x38, 0xea, 0x12, 0x8f, 0xd6, 0xa7, 0x46, 0xda, 0x1e, 0x05, 0xf1, 0xe5, 0xfc, 0xd8, 0xbd, 0x9d, - 0x4c, 0xe2, 0x9f, 0x9d, 0x4c, 0xc2, 0x7c, 0x1d, 0x26, 0xa3, 0xa1, 0x58, 0x83, 0x7a, 0x8c, 0xe0, - 0x35, 0x18, 0x2d, 0x89, 0x25, 0x1e, 0x2b, 0x95, 0x9b, 0xb6, 0x3a, 0x45, 0x61, 0x44, 0x15, 0xc5, - 0xda, 0xa0, 0x55, 0xaf, 0xa0, 0x2c, 0xcd, 0x1f, 0x11, 0x9c, 0xe2, 0xa7, 0x5d, 0xac, 0xd5, 0xe4, - 0x81, 0xec, 0x49, 0xc0, 0x5f, 0x06, 0x08, 0x4a, 0xcb, 0x33, 0x48, 0xe5, 0xce, 0x44, 0x70, 0x08, - 0x22, 0x15, 0x9a, 0x6b, 0x4e, 0x45, 0x91, 0x55, 0x08, 0x79, 0xe2, 0x79, 0x38, 0xd6, 0x24, 0x8c, - 0xd6, 0x6e, 0x91, 0xa2, 0x20, 0xe3, 0xc8, 0x1c, 0xca, 0x8e, 0x15, 0x26, 0xe4, 0xe2, 0xa5, 0x2e, - 0x4e, 0x7e, 0x46, 0x30, 0xd5, 0x9b, 0x86, 0x24, 0xa6, 0x06, 0x63, 0x32, 0xdd, 0x76, 0x22, 0x47, - 0x62, 0x99, 0xc9, 0xbf, 0xf4, 0xf0, 0xf7, 0x4c, 0xe2, 0xab, 0x3f, 0x32, 0xd9, 0x4a, 0xd5, 0xbf, - 0xb1, 0x5d, 0xb2, 0xca, 0xb4, 0x2e, 0x3b, 0x43, 0xfe, 0xb7, 0xc2, 0xdc, 0x2d, 0xdb, 0x6f, 0x35, - 0x08, 0xe3, 0x0e, 0xec, 0xc1, 0xdf, 0xdf, 0x2e, 0xa1, 0x42, 0x27, 0x02, 0xbe, 0xa2, 0x61, 0x60, - 0x61, 0x5f, 0x06, 0x04, 0xd4, 0x30, 0x05, 0xe6, 0xe7, 0x08, 0x66, 0x79, 0x4e, 0x9b, 0x0d, 0xe2, - 0xb9, 0x4e, 0xa9, 0x46, 0xfe, 0x43, 0x05, 0x0a, 0x71, 0xff, 0x18, 0x41, 0xba, 0x1f, 0xce, 0xff, - 0x77, 0x05, 0x5a, 0x30, 0xaf, 0x4d, 0x2c, 0xdf, 0xe2, 0xfd, 0xf7, 0x34, 0x2f, 0xf9, 0x3b, 0x70, - 0x3a, 0x3e, 0xf4, 0x93, 0x5c, 0xfa, 0x2d, 0x79, 0xe7, 0xdf, 0xa2, 0xbe, 0x53, 0xdb, 0xdc, 0x6e, - 0x34, 0x6a, 0x2d, 0x95, 0x4b, 0xb4, 0x3d, 0xd0, 0x10, 0xda, 0xe3, 0x27, 0x75, 0x35, 0x23, 0xd1, - 0x24, 0xfc, 0x1b, 0x90, 0x64, 0x7c, 0xe5, 0xa9, 0xb5, 0x85, 0x3c, 0x7f, 0x78, 0x4d, 0xb1, 0x2c, - 0x9f, 0x5f, 0x91, 0xc9, 0xd5, 0x77, 0x15, 0x73, 0x9d, 0x8a, 0xa2, 0x50, 0x45, 0xcd, 0xeb, 0xf0, - 0x4c, 0x97, 0xb5, 0xcc, 0xfc, 0x02, 0x24, 0x9d, 0x3a, 0xdd, 0xf6, 0xfc, 0x7d, 0xeb, 0x96, 0x1f, - 0x6f, 0x67, 0x2e, 0xb3, 0x11, 0x3e, 0xe6, 0x24, 0x60, 0x7e, 0xec, 0x35, 0xa7, 0xe9, 0xd4, 0xd5, - 0x7b, 0x60, 0x5e, 0x97, 0x43, 0x48, 0xad, 0xca, 0x50, 0xeb, 0x90, 0x6c, 0xf0, 0x15, 0x19, 0x6a, - 0xc6, 0xd2, 0x0c, 0x6b, 0x4b, 0x38, 0x45, 0x82, 0x09, 0x2f, 0xd3, 0x05, 0x83, 0x1f, 0xcb, 0x3b, - 0x8f, 0xbd, 0x41, 0x7c, 0xc7, 0x75, 0x7c, 0x67, 0xc8, 0x1d, 0x63, 0x7e, 0x83, 0x60, 0x46, 0x1b, - 0x46, 0x66, 0x71, 0x19, 0xc6, 0xeb, 0x72, 0x4d, 0x3d, 0x22, 0xb3, 0xda, 0x44, 0x94, 0x67, 0x38, - 0x95, 0xc0, 0x75, 0x78, 0x8d, 0xb0, 0x0a, 0xd3, 0x01, 0xde, 0x6e, 0x56, 0xf4, 0xdd, 0x50, 0x0a, - 0x33, 0xd9, 0x93, 0xe1, 0x25, 0x18, 0x53, 0x30, 0x25, 0x8f, 0x83, 0x27, 0xd8, 0xf1, 0x34, 0x6f, - 0xcb, 0xcb, 0xcd, 0x63, 0x5c, 0xbd, 0xed, 0x91, 0x26, 0x8b, 0x05, 0x35, 0xac, 0x89, 0x60, 0xbe, - 0x8f, 0x00, 0x82, 0xa0, 0x87, 0x7a, 0x15, 0xd7, 0x83, 0xd7, 0x6c, 0xe4, 0x00, 0xb7, 0xa2, 0xf3, - 0xb0, 0x7d, 0xa9, 0xde, 0x9a, 0x48, 0xf2, 0x92, 0xde, 0x3c, 0x4c, 0xf0, 0x84, 0x8b, 0x94, 0xaf, - 0xcb, 0x1e, 0xca, 0x68, 0x29, 0x0e, 0xfc, 0x0b, 0x29, 0x37, 0x38, 0x6b, 0x98, 0xa3, 0x45, 0x54, - 0x69, 0x93, 0x78, 0xee, 0x6b, 0x5e, 0xfb, 0x81, 0x77, 0x55, 0x95, 0x9e, 0x85, 0x24, 0x0f, 0x29, - 0x10, 0x8e, 0x17, 0xe4, 0xb7, 0xae, 0x3a, 0x95, 0x0f, 0x5d, 0xa7, 0x07, 0x8a, 0xa4, 0x48, 0x6c, - 0x49, 0xd2, 0x06, 0x4c, 0x30, 0xe2, 0xb9, 0x45, 0x22, 0xd6, 0x25, 0x49, 0x73, 0x5a, 0x92, 0xc2, - 0xfe, 0x29, 0x16, 0x7c, 0xe9, 0x62, 0xa9, 0x7c, 0x68, 0x96, 0x72, 0xdf, 0x1d, 0x87, 0xa3, 0x1c, - 0x2a, 0xfe, 0x14, 0xc1, 0xa8, 0x1c, 0x81, 0x38, 0xab, 0x45, 0xa3, 0x91, 0xdf, 0xc6, 0xe2, 0x00, - 0x96, 0x22, 0xac, 0xf9, 0xea, 0xbd, 0x76, 0x2b, 0x7d, 0xf0, 0xeb, 0x5f, 0x1f, 0x8f, 0xe4, 0xf0, - 0x59, 0x5b, 0xff, 0xcb, 0x41, 0x08, 0x0c, 0xfb, 0x8e, 0xec, 0xd7, 0xbb, 0x76, 0xa9, 0x25, 0xe4, - 0x29, 0xde, 0x41, 0x90, 0x0a, 0x69, 0x4f, 0xbc, 0xdc, 0x3f, 0x72, 0xaf, 0xd2, 0x36, 0x56, 0x06, - 0xb4, 0x96, 0x58, 0x5f, 0x0c, 0xb0, 0x2e, 0xe2, 0x85, 0x01, 0xb1, 0xe2, 0x1f, 0x10, 0x9c, 0xe8, - 0x91, 0x68, 0x38, 0xd7, 0x3f, 0x74, 0x3f, 0xdd, 0x69, 0xac, 0x1d, 0xc8, 0x47, 0x82, 0x5e, 0x0f, - 0x40, 0xaf, 0xe1, 0x55, 0x2d, 0x68, 0xa6, 0x9c, 0x8b, 0x1a, 0xf8, 0x8f, 0x11, 0x9c, 0xea, 0xa3, - 0x86, 0xf0, 0x2b, 0x83, 0x03, 0x8a, 0x6a, 0x37, 0xe3, 0xdc, 0x21, 0x3c, 0x65, 0x42, 0x57, 0x82, - 0x84, 0x2e, 0xe0, 0xf3, 0x07, 0x4e, 0x28, 0xe8, 0x9d, 0xfb, 0x08, 0x52, 0x21, 0x71, 0x14, 0xd7, - 0x3b, 0xbd, 0x8a, 0x2d, 0xae, 0x77, 0x34, 0x8a, 0xcb, 0xcc, 0x06, 0xa8, 0x67, 0xf1, 0x8c, 0x1e, - 0xb5, 0x80, 0x71, 0x1f, 0xc1, 0x98, 0x92, 0x2d, 0x38, 0xe6, 0x26, 0x75, 0x09, 0x21, 0x63, 0x69, - 0x10, 0x53, 0x89, 0x66, 0x35, 0x40, 0x73, 0x06, 0x9f, 0x8e, 0x41, 0x13, 0xb0, 0xf5, 0x21, 0x82, - 0xa4, 0xd0, 0x2a, 0x78, 0xa1, 0x7f, 0xa4, 0x88, 0x30, 0x32, 0xb2, 0xfb, 0x1b, 0x0e, 0x4e, 0x8f, - 0x50, 0x45, 0xf8, 0x6b, 0x04, 0xc7, 0x22, 0x73, 0x1c, 0x5b, 0xfd, 0xa3, 0xe8, 0x34, 0x82, 0x61, - 0x0f, 0x6c, 0x2f, 0xc1, 0x9d, 0x0b, 0xc0, 0x59, 0x78, 0x59, 0x0b, 0x4e, 0xcc, 0x8a, 0xa2, 0x52, - 0x03, 0xf6, 0x1d, 0xbe, 0x70, 0x17, 0x7f, 0x81, 0xe0, 0x78, 0x54, 0x58, 0xe1, 0xfd, 0xc2, 0x77, - 0x2b, 0x3d, 0xe3, 0xec, 0xe0, 0x0e, 0x83, 0x97, 0xb7, 0x0b, 0x30, 0xfe, 0x0c, 0x41, 0x2a, 0x34, - 0xbd, 0xe3, 0x2e, 0x43, 0xaf, 0xc2, 0x89, 0xbb, 0x0c, 0x1a, 0x49, 0x60, 0xbe, 0x1c, 0xe0, 0x7b, - 0x01, 0x2f, 0xf6, 0xc7, 0x27, 0x25, 0x43, 0x87, 0xcd, 0x4f, 0x10, 0xa4, 0x42, 0xd3, 0x2f, 0x0e, - 0x64, 0xef, 0x80, 0x8f, 0x03, 0xa9, 0x19, 0xc9, 0xa6, 0x15, 0x80, 0x9c, 0xc7, 0xcf, 0xeb, 0xef, - 0x48, 0x68, 0x64, 0xe7, 0x37, 0x1e, 0xee, 0xa6, 0xd1, 0xa3, 0xdd, 0x34, 0xfa, 0x73, 0x37, 0x8d, - 0x3e, 0xda, 0x4b, 0x27, 0x1e, 0xed, 0xa5, 0x13, 0xbf, 0xed, 0xa5, 0x13, 0x6f, 0x2f, 0xc6, 0xfe, - 0x74, 0x7a, 0x4f, 0x9c, 0xc9, 0x7f, 0x41, 0x95, 0x92, 0xfc, 0xcf, 0x5a, 0x6b, 0xff, 0x06, 0x00, - 0x00, 0xff, 0xff, 0x37, 0xb5, 0xe0, 0x0a, 0xf9, 0x13, 0x00, 0x00, + // 1236 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcf, 0x6f, 0x1b, 0x45, + 0x14, 0xf6, 0xb4, 0xaa, 0x93, 0x3c, 0xa7, 0x95, 0x3a, 0x09, 0x34, 0xd9, 0x10, 0x3b, 0x6c, 0xaa, + 0xc6, 0x09, 0xc9, 0x6e, 0xe3, 0x20, 0x44, 0xab, 0x12, 0xa9, 0x4e, 0x69, 0x0f, 0xa8, 0x6a, 0x71, + 0xe8, 0x05, 0x0e, 0xd6, 0xda, 0x3b, 0x18, 0x2b, 0xeb, 0x5d, 0xd7, 0xb3, 0x6e, 0xb1, 0xaa, 0x4a, + 0x15, 0x02, 0xa9, 0x47, 0x24, 0x7a, 0xaa, 0x84, 0x14, 0x21, 0x01, 0x15, 0x48, 0xa8, 0x42, 0x1c, + 0x39, 0x72, 0xe8, 0xb1, 0x82, 0x03, 0x9c, 0x00, 0x25, 0x88, 0x22, 0x4e, 0xfc, 0x09, 0xc8, 0xf3, + 0xc3, 0xbb, 0x6b, 0x8f, 0x37, 0x4e, 0x6a, 0x10, 0xe2, 0xd2, 0xda, 0x33, 0xef, 0xcd, 0xfb, 0xde, + 0xf7, 0xde, 0xcc, 0xfb, 0x1c, 0xc8, 0x94, 0x3d, 0x5a, 0xf3, 0xa8, 0x59, 0xb2, 0xdc, 0x2d, 0xf3, + 0xc6, 0x6a, 0x89, 0xf8, 0xd6, 0xaa, 0x79, 0xbd, 0x49, 0x1a, 0x2d, 0xa3, 0xde, 0xf0, 0x7c, 0x0f, + 0x4f, 0x70, 0x03, 0xa3, 0x6d, 0x60, 0x08, 0x03, 0x6d, 0xa9, 0xe3, 0x45, 0x09, 0xb7, 0xee, 0xf8, + 0xd6, 0xad, 0x4a, 0xd5, 0xb5, 0xfc, 0xaa, 0xe7, 0xf2, 0x03, 0xb4, 0xc9, 0x8a, 0x57, 0xf1, 0xd8, + 0x47, 0xb3, 0xfd, 0x49, 0xac, 0x3e, 0x57, 0xf1, 0xbc, 0x8a, 0x43, 0x4c, 0xab, 0x5e, 0x35, 0x2d, + 0xd7, 0xf5, 0x7c, 0xe6, 0x42, 0xc5, 0x6e, 0x3a, 0x7c, 0xbe, 0x3c, 0xb9, 0xec, 0x55, 0xdd, 0x9e, + 0xfd, 0x10, 0x6a, 0x86, 0x90, 0xef, 0x4f, 0xf3, 0xfd, 0x22, 0x0f, 0x2b, 0x32, 0xe0, 0x5b, 0x33, + 0xc2, 0x55, 0xa2, 0x0e, 0x27, 0xab, 0x1d, 0xb7, 0x6a, 0x55, 0xd7, 0x33, 0xd9, 0xbf, 0x7c, 0x49, + 0xaf, 0xc2, 0xc4, 0xeb, 0x6d, 0x8b, 0xbc, 0xe5, 0x58, 0x6e, 0x99, 0x14, 0xc8, 0xf5, 0x26, 0xa1, + 0x3e, 0xce, 0xc1, 0x88, 0x65, 0xdb, 0x0d, 0x42, 0xe9, 0x14, 0x9a, 0x43, 0xd9, 0xb1, 0xfc, 0xd4, + 0xf7, 0xdf, 0xac, 0x4c, 0x8a, 0x48, 0xe7, 0xf9, 0xce, 0xa6, 0xdf, 0xa8, 0xba, 0x95, 0x82, 0x34, + 0xc4, 0x93, 0x70, 0xc4, 0x26, 0xae, 0x57, 0x9b, 0x3a, 0xd4, 0xf6, 0x28, 0xf0, 0x2f, 0x67, 0x47, + 0xef, 0x6e, 0x67, 0x12, 0x7f, 0x6c, 0x67, 0x12, 0xfa, 0x6b, 0x30, 0x19, 0x0d, 0x45, 0xeb, 0x9e, + 0x4b, 0x09, 0x5e, 0x83, 0x91, 0x12, 0x5f, 0x62, 0xb1, 0x52, 0xb9, 0x69, 0xa3, 0x53, 0x14, 0x4a, + 0x64, 0x51, 0x8c, 0x0d, 0xaf, 0xea, 0x16, 0xa4, 0xa5, 0xfe, 0x1d, 0x82, 0x13, 0xec, 0xb4, 0xf3, + 0x8e, 0x23, 0x0e, 0xa4, 0x4f, 0x03, 0xfe, 0x22, 0x40, 0x50, 0x5a, 0x96, 0x41, 0x2a, 0x77, 0x2a, + 0x82, 0x83, 0x13, 0x29, 0xd1, 0x5c, 0xb5, 0x2a, 0x92, 0xac, 0x42, 0xc8, 0x13, 0xcf, 0xc3, 0xd1, + 0x06, 0xa1, 0x9e, 0x73, 0x83, 0x14, 0x39, 0x19, 0x87, 0xe7, 0x50, 0x76, 0xb4, 0x30, 0x2e, 0x16, + 0x2f, 0x74, 0x71, 0xf2, 0x27, 0x82, 0xa9, 0xde, 0x34, 0x04, 0x31, 0xef, 0x23, 0x18, 0x15, 0xf9, + 0xb6, 0x33, 0x39, 0x1c, 0x4b, 0x4d, 0xfe, 0xf2, 0xa3, 0x9f, 0x33, 0x89, 0x2f, 0x7e, 0xc9, 0x64, + 0x2b, 0x55, 0xff, 0x9d, 0x66, 0xc9, 0x28, 0x7b, 0x35, 0xd1, 0x1a, 0xe2, 0xbf, 0x15, 0x6a, 0x6f, + 0x99, 0x7e, 0xab, 0x4e, 0x28, 0x73, 0xa0, 0xf7, 0x9f, 0x3c, 0x5c, 0x9a, 0x70, 0x9b, 0x8e, 0x53, + 0xa4, 0x4e, 0xb5, 0x4c, 0x8a, 0x16, 0x2d, 0x92, 0x5a, 0xdd, 0x6f, 0x3d, 0x78, 0xf2, 0x70, 0x09, + 0x15, 0x3a, 0x91, 0xf1, 0x25, 0x05, 0x35, 0x0b, 0x7b, 0x52, 0xc3, 0x73, 0x08, 0x73, 0xa3, 0x7f, + 0x8a, 0x60, 0x96, 0x25, 0xbb, 0x59, 0x27, 0xae, 0x6d, 0x95, 0x1c, 0xf2, 0x1f, 0xaa, 0x5c, 0xa8, + 0x28, 0x7f, 0x21, 0x48, 0xf7, 0xc3, 0xf9, 0x3f, 0x2d, 0x4d, 0x0b, 0xe6, 0x95, 0x19, 0xe7, 0x5b, + 0xac, 0x63, 0xff, 0xc9, 0x67, 0xe1, 0x2d, 0x38, 0x19, 0x1f, 0xfa, 0x69, 0x9e, 0x89, 0x2d, 0xf1, + 0x4a, 0xbc, 0xe1, 0xf9, 0x96, 0xb3, 0xd9, 0xac, 0xd7, 0x9d, 0x96, 0xcc, 0x25, 0xda, 0x37, 0x68, + 0x08, 0x7d, 0xf3, 0xbb, 0xbc, 0xcc, 0x91, 0x68, 0x02, 0xfe, 0x1d, 0x04, 0x49, 0xca, 0x96, 0xfe, + 0xf5, 0x7e, 0x11, 0x71, 0x87, 0xd7, 0x2d, 0xcb, 0xe2, 0x25, 0xe7, 0x29, 0x5e, 0x79, 0x5b, 0x52, + 0xda, 0x29, 0x35, 0x0a, 0x95, 0x5a, 0xbf, 0x06, 0xcf, 0x74, 0x59, 0x0b, 0x4a, 0xce, 0x41, 0xd2, + 0xaa, 0x79, 0x4d, 0xd7, 0xdf, 0xb3, 0xa0, 0xf9, 0xb1, 0x36, 0x23, 0x22, 0x1b, 0xee, 0xa3, 0x4f, + 0x02, 0x66, 0xc7, 0x5e, 0xb5, 0x1a, 0x56, 0x4d, 0xbe, 0x20, 0xfa, 0x35, 0x31, 0xcf, 0xe4, 0xaa, + 0x08, 0xb5, 0x0e, 0xc9, 0x3a, 0x5b, 0x11, 0xa1, 0x66, 0x0c, 0xc5, 0xdc, 0x37, 0xb8, 0x53, 0x24, + 0x18, 0xf7, 0xd2, 0x6d, 0xd0, 0xd8, 0xb1, 0xac, 0x25, 0xe9, 0x65, 0xe2, 0x5b, 0xb6, 0xe5, 0x5b, + 0x43, 0x6e, 0x25, 0xfd, 0x2b, 0x04, 0x33, 0xca, 0x30, 0x22, 0x8b, 0x8b, 0x30, 0x56, 0x13, 0x6b, + 0xf2, 0xd5, 0x99, 0x55, 0x26, 0x22, 0x3d, 0xc3, 0xa9, 0x04, 0xae, 0xc3, 0x6b, 0x84, 0x55, 0x98, + 0x0e, 0xf0, 0x76, 0xb3, 0xa2, 0xee, 0x86, 0x52, 0x98, 0xc9, 0x9e, 0x0c, 0x2f, 0xc0, 0xa8, 0x84, + 0x29, 0x78, 0x1c, 0x3c, 0xc1, 0x8e, 0xa7, 0x7e, 0x53, 0xdc, 0x7a, 0x16, 0xe3, 0xca, 0x4d, 0x97, + 0x34, 0x68, 0x2c, 0xa8, 0x61, 0xcd, 0x10, 0xfd, 0x0e, 0x02, 0x08, 0x82, 0x1e, 0xe8, 0xb9, 0x5c, + 0x0f, 0x9e, 0xb9, 0x43, 0xfb, 0xb8, 0x15, 0x9d, 0x17, 0xef, 0x73, 0xf9, 0x08, 0x45, 0x92, 0x17, + 0xf4, 0xe6, 0x61, 0x9c, 0x25, 0x5c, 0xf4, 0xd8, 0xba, 0xe8, 0xa1, 0x8c, 0x92, 0xe2, 0xc0, 0xbf, + 0x90, 0xb2, 0x83, 0xb3, 0x86, 0x39, 0x73, 0x78, 0x95, 0x36, 0x89, 0x6b, 0xbf, 0xea, 0xb6, 0x5f, + 0x7e, 0x5b, 0x56, 0xe9, 0x59, 0x48, 0xb2, 0x90, 0x1c, 0xe1, 0x58, 0x41, 0x7c, 0xeb, 0xaa, 0x53, + 0xf9, 0xc0, 0x75, 0x7a, 0x20, 0x49, 0x8a, 0xc4, 0x16, 0x24, 0x6d, 0xc0, 0x38, 0x25, 0xae, 0x5d, + 0x24, 0x7c, 0x5d, 0x90, 0x34, 0xa7, 0x24, 0x29, 0xec, 0x9f, 0xa2, 0xc1, 0x97, 0x2e, 0x96, 0xca, + 0x07, 0x66, 0x29, 0xf7, 0xf5, 0x31, 0x38, 0xc2, 0xa0, 0xe2, 0x8f, 0x11, 0x8c, 0x88, 0xd9, 0x88, + 0xb3, 0x4a, 0x34, 0x0a, 0x25, 0xaf, 0x2d, 0x0e, 0x60, 0xc9, 0xc3, 0xea, 0xaf, 0xdc, 0x6d, 0xb7, + 0xd2, 0x7b, 0x3f, 0xfc, 0xf6, 0xd1, 0xa1, 0x1c, 0x3e, 0x6d, 0xaa, 0x7f, 0x84, 0x70, 0xe5, 0x61, + 0xde, 0x12, 0xfd, 0x7a, 0xdb, 0x2c, 0xb5, 0xb8, 0xd2, 0xc5, 0xdb, 0x08, 0x52, 0x21, 0x19, 0x8b, + 0x97, 0xfb, 0x47, 0xee, 0x15, 0xed, 0xda, 0xca, 0x80, 0xd6, 0x02, 0xeb, 0x8b, 0x01, 0xd6, 0x45, + 0xbc, 0x30, 0x20, 0x56, 0xfc, 0x2d, 0x82, 0xe3, 0x3d, 0xa2, 0x0e, 0xe7, 0xfa, 0x87, 0xee, 0xa7, + 0x54, 0xb5, 0xb5, 0x7d, 0xf9, 0x08, 0xd0, 0xeb, 0x01, 0xe8, 0x35, 0xbc, 0xaa, 0x04, 0x4d, 0xa5, + 0x73, 0x51, 0x01, 0xff, 0x47, 0x04, 0x27, 0xfa, 0xc8, 0x24, 0xfc, 0xf2, 0xe0, 0x80, 0xa2, 0xa2, + 0x4e, 0x3b, 0x73, 0x00, 0x4f, 0x91, 0xd0, 0xa5, 0x20, 0xa1, 0x73, 0xf8, 0xec, 0xbe, 0x13, 0x0a, + 0x7a, 0xe7, 0x1e, 0x82, 0x54, 0x48, 0x35, 0xc5, 0xf5, 0x4e, 0xaf, 0x94, 0x8b, 0xeb, 0x1d, 0x85, + 0x14, 0xd3, 0xb3, 0x01, 0xea, 0x59, 0x3c, 0xa3, 0x46, 0xcd, 0x61, 0xdc, 0x43, 0x30, 0x2a, 0x65, + 0x0b, 0x8e, 0xb9, 0x49, 0x5d, 0x42, 0x48, 0x5b, 0x1a, 0xc4, 0x54, 0xa0, 0x59, 0x0d, 0xd0, 0x9c, + 0xc2, 0x27, 0x63, 0xd0, 0x04, 0x6c, 0x7d, 0x80, 0x20, 0xc9, 0xb5, 0x0a, 0x5e, 0xe8, 0x1f, 0x29, + 0x22, 0x8c, 0xb4, 0xec, 0xde, 0x86, 0x83, 0xd3, 0xc3, 0x55, 0x11, 0xfe, 0x12, 0xc1, 0xd1, 0xc8, + 0x1c, 0xc7, 0x46, 0xff, 0x28, 0x2a, 0x8d, 0xa0, 0x99, 0x03, 0xdb, 0x0b, 0x70, 0x67, 0x02, 0x70, + 0x06, 0x5e, 0x56, 0x82, 0xe3, 0xb3, 0xa2, 0x28, 0xd5, 0x80, 0x79, 0x8b, 0x2d, 0xdc, 0xc6, 0x9f, + 0x21, 0x38, 0x16, 0x15, 0x56, 0x78, 0xaf, 0xf0, 0xdd, 0x4a, 0x4f, 0x3b, 0x3d, 0xb8, 0xc3, 0xe0, + 0xe5, 0xed, 0x02, 0x8c, 0x3f, 0x41, 0x90, 0x0a, 0x4d, 0xef, 0xb8, 0xcb, 0xd0, 0xab, 0x70, 0xe2, + 0x2e, 0x83, 0x42, 0x12, 0xe8, 0x2f, 0x05, 0xf8, 0x5e, 0xc0, 0x8b, 0xfd, 0xf1, 0x09, 0xc9, 0xd0, + 0x61, 0xf3, 0x3e, 0x82, 0x54, 0x68, 0xfa, 0xc5, 0x81, 0xec, 0x1d, 0xf0, 0x71, 0x20, 0x15, 0x23, + 0x59, 0x37, 0x02, 0x90, 0xf3, 0xf8, 0x79, 0xf5, 0x1d, 0x09, 0x8d, 0xec, 0xfc, 0xc6, 0xa3, 0x9d, + 0x34, 0x7a, 0xbc, 0x93, 0x46, 0xbf, 0xee, 0xa4, 0xd1, 0x87, 0xbb, 0xe9, 0xc4, 0xe3, 0xdd, 0x74, + 0xe2, 0xa7, 0xdd, 0x74, 0xe2, 0xcd, 0xc5, 0xd8, 0x9f, 0x54, 0xef, 0xf2, 0x33, 0xd9, 0x2f, 0xab, + 0x52, 0x92, 0xfd, 0x85, 0x6c, 0xed, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd3, 0xf0, 0xdb, 0xcc, + 0x44, 0x14, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/bank/types/tx.pb.go b/x/bank/types/tx.pb.go index b3fd1ea3d863..05ed288a8963 100644 --- a/x/bank/types/tx.pb.go +++ b/x/bank/types/tx.pb.go @@ -426,51 +426,52 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/tx.proto", fileDescriptor_1d8cb1613481f5b7) } var fileDescriptor_1d8cb1613481f5b7 = []byte{ - // 690 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xcd, 0x4f, 0xd4, 0x5e, - 0x14, 0x6d, 0x99, 0xdf, 0x6f, 0x48, 0x1f, 0xa3, 0x84, 0x4a, 0x84, 0x29, 0xa4, 0x03, 0x8d, 0x21, - 0x80, 0xd2, 0x0a, 0x7e, 0x25, 0x63, 0x34, 0x3a, 0xa8, 0x89, 0x26, 0x13, 0xcd, 0x10, 0x17, 0xba, - 0x99, 0xb4, 0xf4, 0xd1, 0x69, 0xa0, 0x7d, 0x4d, 0xdf, 0x2b, 0x81, 0x9d, 0xba, 0x32, 0xae, 0xdc, - 0xbb, 0x61, 0x69, 0x5c, 0xb1, 0x70, 0x69, 0xe2, 0x96, 0x25, 0x71, 0xe5, 0x4a, 0x0d, 0x2c, 0xd0, - 0xff, 0xc2, 0xbc, 0x8f, 0x96, 0xce, 0x30, 0xc3, 0x10, 0x37, 0xd3, 0xce, 0xbb, 0xe7, 0x9c, 0x7b, - 0xcf, 0xed, 0x69, 0xc1, 0xe4, 0x2a, 0xc2, 0x01, 0xc2, 0x96, 0x63, 0x87, 0xeb, 0xd6, 0xe6, 0xa2, - 0x03, 0x89, 0xbd, 0x68, 0x91, 0x2d, 0x33, 0x8a, 0x11, 0x41, 0xea, 0x05, 0x5e, 0x35, 0x69, 0xd5, - 0x14, 0x55, 0x6d, 0xd4, 0x43, 0x1e, 0x62, 0x75, 0x8b, 0xde, 0x71, 0xa8, 0xa6, 0x67, 0x42, 0x18, - 0x66, 0x42, 0xab, 0xc8, 0x0f, 0x4f, 0xd4, 0x73, 0x8d, 0x98, 0x2e, 0xaf, 0x97, 0x79, 0xbd, 0xc9, - 0x85, 0x45, 0x5f, 0x5e, 0x1a, 0x13, 0xd4, 0x00, 0x7b, 0xd6, 0xe6, 0x22, 0xbd, 0x88, 0xc2, 0x88, - 0x1d, 0xf8, 0x21, 0xb2, 0xd8, 0x2f, 0x3f, 0x32, 0x3e, 0x0c, 0x80, 0xc1, 0x3a, 0xf6, 0x56, 0x60, - 0xe8, 0xaa, 0xb7, 0x41, 0x69, 0x2d, 0x46, 0x41, 0xd3, 0x76, 0xdd, 0x18, 0x62, 0x3c, 0x2e, 0x4f, - 0xc9, 0xb3, 0x4a, 0x6d, 0xfc, 0xdb, 0xe7, 0x85, 0x51, 0xa1, 0x7f, 0x9f, 0x57, 0x56, 0x48, 0xec, - 0x87, 0x5e, 0x63, 0x88, 0xa2, 0xc5, 0x91, 0x7a, 0x0b, 0x00, 0x82, 0x32, 0xea, 0x40, 0x1f, 0xaa, - 0x42, 0x50, 0x4a, 0x6c, 0x81, 0xa2, 0x1d, 0xa0, 0x24, 0x24, 0xe3, 0x85, 0xa9, 0xc2, 0xec, 0xd0, - 0x52, 0xd9, 0xcc, 0x96, 0x88, 0x61, 0xba, 0x44, 0x73, 0x19, 0xf9, 0x61, 0xed, 0xc6, 0xde, 0x8f, - 0x8a, 0xf4, 0xe9, 0x67, 0x65, 0xd6, 0xf3, 0x49, 0x2b, 0x71, 0xcc, 0x55, 0x14, 0x08, 0xe7, 0xe2, - 0xb2, 0x80, 0xdd, 0x75, 0x8b, 0x6c, 0x47, 0x10, 0x33, 0x02, 0xfe, 0x78, 0xb4, 0x3b, 0x2f, 0x37, - 0x84, 0x7e, 0xf5, 0xea, 0xdb, 0x9d, 0x8a, 0xf4, 0x7b, 0xa7, 0x22, 0xbd, 0x39, 0xda, 0x9d, 0x6f, - 0xb3, 0xfa, 0xee, 0x68, 0x77, 0x5e, 0xcd, 0x49, 0x88, 0x8d, 0x18, 0x23, 0x60, 0x58, 0xdc, 0x36, - 0x20, 0x8e, 0x50, 0x88, 0xa1, 0xf1, 0x45, 0x06, 0xa5, 0x3a, 0xf6, 0xea, 0xc9, 0x06, 0xf1, 0xd9, - 0xd6, 0xee, 0x80, 0xa2, 0x1f, 0x46, 0x09, 0xa1, 0xfb, 0xa2, 0xf3, 0x6b, 0x66, 0x97, 0x10, 0x98, - 0x8f, 0x29, 0xa4, 0xa6, 0x50, 0x03, 0x62, 0x28, 0x4e, 0x52, 0xef, 0x81, 0x41, 0x94, 0x10, 0xc6, - 0x1f, 0x60, 0xfc, 0x89, 0xae, 0xfc, 0xa7, 0x0c, 0x93, 0x17, 0x48, 0x69, 0xd5, 0xcb, 0xa9, 0x25, - 0x21, 0x49, 0xcd, 0x8c, 0xb5, 0x9b, 0xc9, 0xa6, 0x35, 0x2e, 0x82, 0xd1, 0xfc, 0xff, 0xcc, 0xd6, - 0x57, 0x99, 0x59, 0x7d, 0x1e, 0xb9, 0x36, 0x81, 0xcf, 0xec, 0xd8, 0x0e, 0xb0, 0x7a, 0x13, 0x28, - 0x76, 0x42, 0x5a, 0x28, 0xf6, 0xc9, 0x76, 0xdf, 0x30, 0x1c, 0x43, 0xd5, 0xbb, 0xa0, 0x18, 0x31, - 0x05, 0x16, 0x83, 0x5e, 0x8e, 0x78, 0x93, 0xb6, 0x95, 0x70, 0x56, 0xf5, 0x3a, 0x35, 0x73, 0xac, - 0x47, 0xfd, 0x4c, 0xe7, 0xfc, 0x6c, 0xf1, 0x77, 0xa2, 0x63, 0x5a, 0xa3, 0x0c, 0xc6, 0x3a, 0x8e, - 0x32, 0x73, 0x7f, 0x64, 0x30, 0xc2, 0x9e, 0x23, 0xa1, 0x9e, 0x1f, 0x86, 0xb6, 0xb3, 0x01, 0xdd, - 0x7f, 0xb6, 0xb7, 0x0c, 0x4a, 0x18, 0x86, 0x6e, 0x13, 0x72, 0x1d, 0xf1, 0xd8, 0xa6, 0xba, 0x9a, - 0xcc, 0xf5, 0x6b, 0x0c, 0xe1, 0x5c, 0xf3, 0x19, 0x30, 0x9c, 0x60, 0xd8, 0x74, 0xe1, 0x9a, 0x9d, - 0x6c, 0x90, 0xe6, 0x1a, 0x8a, 0x59, 0xfc, 0x95, 0xc6, 0xb9, 0x04, 0xc3, 0x07, 0xfc, 0xf4, 0x11, - 0x8a, 0xab, 0xd6, 0xc9, 0x5d, 0x4c, 0x76, 0x06, 0x35, 0xef, 0xca, 0x98, 0x00, 0xe5, 0x13, 0x87, - 0xe9, 0x22, 0x96, 0x5e, 0x17, 0x40, 0xa1, 0x8e, 0x3d, 0xf5, 0x09, 0xf8, 0x8f, 0x65, 0x77, 0xb2, - 0xeb, 0xd0, 0x22, 0xf2, 0xda, 0xa5, 0xd3, 0xaa, 0xa9, 0xa6, 0xfa, 0x02, 0x28, 0xc7, 0x2f, 0xc3, - 0x74, 0x2f, 0x4a, 0x06, 0xd1, 0xe6, 0xfa, 0x42, 0x32, 0x69, 0x07, 0x94, 0xda, 0x02, 0xd9, 0x73, - 0xa0, 0x3c, 0x4a, 0xbb, 0x72, 0x16, 0x54, 0xd6, 0xa3, 0x05, 0xce, 0x77, 0xe4, 0x62, 0xa6, 0xb7, - 0xed, 0x3c, 0x4e, 0x33, 0xcf, 0x86, 0x4b, 0x3b, 0x69, 0xff, 0xbf, 0xa2, 0x29, 0xaf, 0x2d, 0xef, - 0x1d, 0xe8, 0xf2, 0xfe, 0x81, 0x2e, 0xff, 0x3a, 0xd0, 0xe5, 0xf7, 0x87, 0xba, 0xb4, 0x7f, 0xa8, - 0x4b, 0xdf, 0x0f, 0x75, 0xe9, 0xe5, 0xdc, 0xa9, 0x9f, 0x35, 0x11, 0x7b, 0xf6, 0x75, 0x73, 0x8a, - 0xec, 0xeb, 0x7d, 0xed, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2f, 0xe8, 0x90, 0x24, 0x8f, 0x06, - 0x00, 0x00, + // 710 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xbd, 0x6f, 0xd3, 0x4c, + 0x18, 0x8f, 0x9b, 0xf7, 0x4d, 0x95, 0x6b, 0xa0, 0xaa, 0x5b, 0xd1, 0xc6, 0xad, 0x9c, 0x36, 0x42, + 0x55, 0x1b, 0xa8, 0x4d, 0x0b, 0x02, 0x29, 0x08, 0x04, 0x29, 0x20, 0x81, 0x14, 0x81, 0x52, 0x31, + 0xc0, 0x62, 0x39, 0xf1, 0xd5, 0xb5, 0x6a, 0xfb, 0x2c, 0xdf, 0xb9, 0x6a, 0xb7, 0xc2, 0x84, 0x98, + 0x98, 0x99, 0x3a, 0x22, 0xa6, 0x0c, 0x1d, 0x91, 0x58, 0x3b, 0x56, 0x4c, 0x4c, 0x80, 0xda, 0x21, + 0xf0, 0x5f, 0xa0, 0xfb, 0xb0, 0xeb, 0xa4, 0x49, 0x5b, 0xb1, 0xc4, 0xce, 0xfd, 0x3e, 0x9e, 0xfb, + 0x3d, 0x7e, 0xee, 0xc0, 0x4c, 0x0b, 0x61, 0x0f, 0x61, 0xbd, 0x69, 0xfa, 0x9b, 0xfa, 0xd6, 0x72, + 0x13, 0x12, 0x73, 0x59, 0x27, 0xdb, 0x5a, 0x10, 0x22, 0x82, 0xe4, 0x71, 0x8e, 0x6a, 0x14, 0xd5, + 0x04, 0xaa, 0x4c, 0xd8, 0xc8, 0x46, 0x0c, 0xd7, 0xe9, 0x1b, 0xa7, 0x2a, 0x6a, 0x62, 0x84, 0x61, + 0x62, 0xd4, 0x42, 0x8e, 0x7f, 0x0a, 0x4f, 0x15, 0x62, 0xbe, 0x1c, 0x2f, 0x72, 0xdc, 0xe0, 0xc6, + 0xa2, 0x2e, 0x87, 0x26, 0x85, 0xd4, 0xc3, 0xb6, 0xbe, 0xb5, 0x4c, 0x1f, 0x02, 0x18, 0x33, 0x3d, + 0xc7, 0x47, 0x3a, 0xfb, 0xe5, 0x4b, 0xe5, 0xfd, 0x21, 0x30, 0x5c, 0xc7, 0xf6, 0x1a, 0xf4, 0x2d, + 0xf9, 0x2e, 0x28, 0xac, 0x87, 0xc8, 0x33, 0x4c, 0xcb, 0x0a, 0x21, 0xc6, 0x53, 0xd2, 0xac, 0xb4, + 0x90, 0xaf, 0x4d, 0x7d, 0xdb, 0x5f, 0x9a, 0x10, 0xfe, 0x0f, 0x39, 0xb2, 0x46, 0x42, 0xc7, 0xb7, + 0x1b, 0x23, 0x94, 0x2d, 0x96, 0xe4, 0x3b, 0x00, 0x10, 0x94, 0x48, 0x87, 0xce, 0x91, 0xe6, 0x09, + 0x8a, 0x85, 0xbb, 0x12, 0xc8, 0x99, 0x1e, 0x8a, 0x7c, 0x32, 0x95, 0x9d, 0xcd, 0x2e, 0x8c, 0xac, + 0x14, 0xb5, 0xa4, 0x8b, 0x18, 0xc6, 0x5d, 0xd4, 0x56, 0x91, 0xe3, 0xd7, 0xea, 0x07, 0x3f, 0x4a, + 0x99, 0xcf, 0x3f, 0x4b, 0x0b, 0xb6, 0x43, 0x36, 0xa2, 0xa6, 0xd6, 0x42, 0x9e, 0x88, 0x2e, 0x1e, + 0x4b, 0xd8, 0xda, 0xd4, 0xc9, 0x4e, 0x00, 0x31, 0x13, 0xe0, 0x8f, 0x9d, 0x76, 0x65, 0xdc, 0x8f, + 0x5c, 0xd7, 0xc0, 0xae, 0xd3, 0x82, 0x86, 0x89, 0x0d, 0xe8, 0x05, 0x64, 0xe7, 0x53, 0xa7, 0x5d, + 0x91, 0x1a, 0xa2, 0x6e, 0xf5, 0xc6, 0xbb, 0xbd, 0x52, 0xe6, 0xf7, 0x5e, 0x29, 0xf3, 0xb6, 0xd3, + 0xae, 0x74, 0xf5, 0xe0, 0x7d, 0xa7, 0x5d, 0x91, 0x53, 0xd6, 0xa2, 0x55, 0xe5, 0x31, 0x30, 0x2a, + 0x5e, 0x1b, 0x10, 0x07, 0xc8, 0xc7, 0xb0, 0xfc, 0x45, 0x02, 0x85, 0x3a, 0xb6, 0xeb, 0x91, 0x4b, + 0x1c, 0xd6, 0xce, 0x7b, 0x20, 0xe7, 0xf8, 0x41, 0x44, 0x68, 0x23, 0x69, 0x2e, 0x45, 0xeb, 0x33, + 0x1d, 0xda, 0x53, 0x4a, 0xa9, 0xe5, 0x69, 0x30, 0xb1, 0x29, 0x2e, 0x92, 0x1f, 0x80, 0x61, 0x14, + 0x11, 0xa6, 0x1f, 0x62, 0xfa, 0xe9, 0xbe, 0xfa, 0xe7, 0x8c, 0x93, 0x36, 0x88, 0x65, 0xd5, 0x6b, + 0x71, 0x24, 0x61, 0x49, 0xc3, 0x4c, 0x76, 0x87, 0x49, 0x76, 0x5b, 0xbe, 0x02, 0x26, 0xd2, 0xff, + 0x93, 0x58, 0x5f, 0x25, 0x16, 0xf5, 0x65, 0x60, 0x99, 0x04, 0xbe, 0x30, 0x43, 0xd3, 0xc3, 0xf2, + 0x6d, 0x90, 0x37, 0x23, 0xb2, 0x81, 0x42, 0x87, 0xec, 0x9c, 0x3b, 0x25, 0x27, 0x54, 0xf9, 0x3e, + 0xc8, 0x05, 0xcc, 0x81, 0xcd, 0xc7, 0xa0, 0x44, 0xbc, 0x48, 0x57, 0x4b, 0xb8, 0xaa, 0x7a, 0x8b, + 0x86, 0x39, 0xf1, 0xa3, 0x79, 0xe6, 0x52, 0x79, 0xb6, 0xf9, 0x61, 0xe9, 0xd9, 0x6d, 0xb9, 0x08, + 0x26, 0x7b, 0x96, 0x92, 0x70, 0x7f, 0x24, 0x30, 0xc6, 0xbe, 0x23, 0xa1, 0x99, 0x1f, 0xfb, 0x66, + 0xd3, 0x85, 0xd6, 0x3f, 0xc7, 0x5b, 0x05, 0x05, 0x0c, 0x7d, 0xcb, 0x80, 0xdc, 0x47, 0x7c, 0xb6, + 0xd9, 0xbe, 0x21, 0x53, 0xf5, 0x1a, 0x23, 0x38, 0x55, 0x7c, 0x1e, 0x8c, 0x46, 0x18, 0x1a, 0x16, + 0x5c, 0x37, 0x23, 0x97, 0x18, 0xeb, 0x28, 0x64, 0xc7, 0x22, 0xdf, 0xb8, 0x14, 0x61, 0xf8, 0x88, + 0xaf, 0x3e, 0x41, 0x61, 0x55, 0x3f, 0xdd, 0x8b, 0x99, 0xde, 0x41, 0x4d, 0xa7, 0x2a, 0x4f, 0x83, + 0xe2, 0xa9, 0xc5, 0xb8, 0x11, 0x2b, 0x6f, 0xb2, 0x20, 0x5b, 0xc7, 0xb6, 0xfc, 0x0c, 0xfc, 0xc7, + 0x66, 0x77, 0xa6, 0xef, 0xa6, 0xc5, 0xc8, 0x2b, 0x57, 0xcf, 0x42, 0x63, 0x4f, 0xf9, 0x15, 0xc8, + 0x9f, 0x1c, 0x86, 0xb9, 0x41, 0x92, 0x84, 0xa2, 0x2c, 0x9e, 0x4b, 0x49, 0xac, 0x9b, 0xa0, 0xd0, + 0x35, 0x90, 0x03, 0x37, 0x94, 0x66, 0x29, 0xd7, 0x2f, 0xc2, 0x4a, 0x6a, 0x6c, 0x80, 0xcb, 0x3d, + 0x73, 0x31, 0x3f, 0x38, 0x76, 0x9a, 0xa7, 0x68, 0x17, 0xe3, 0xc5, 0x95, 0x94, 0xff, 0x77, 0xe9, + 0x94, 0xd7, 0x56, 0x0f, 0x8e, 0x54, 0xe9, 0xf0, 0x48, 0x95, 0x7e, 0x1d, 0xa9, 0xd2, 0x87, 0x63, + 0x35, 0x73, 0x78, 0xac, 0x66, 0xbe, 0x1f, 0xab, 0x99, 0xd7, 0x8b, 0x67, 0x5e, 0x77, 0x62, 0xec, + 0xd9, 0xad, 0xd7, 0xcc, 0xb1, 0x6b, 0xfd, 0xe6, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x44, 0xa4, + 0xb2, 0x67, 0xa8, 0x06, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/distribution/types/distribution.pb.go b/x/distribution/types/distribution.pb.go index 30c5c725d3be..87de8638ef7b 100644 --- a/x/distribution/types/distribution.pb.go +++ b/x/distribution/types/distribution.pb.go @@ -642,69 +642,71 @@ func init() { } var fileDescriptor_cd78a31ea281a992 = []byte{ - // 990 bytes of a gzipped FileDescriptorProto + // 1013 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0x41, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0x34, 0x89, 0xd3, 0x4c, 0x69, 0x42, 0x27, 0x4e, 0xea, 0xb8, 0x95, 0x6d, 0xad, 0x54, - 0x30, 0x81, 0xd8, 0xa4, 0x08, 0x09, 0x45, 0x5c, 0x62, 0x3b, 0x08, 0x4e, 0x8d, 0x36, 0x88, 0x22, - 0x2e, 0xab, 0xf1, 0xee, 0xc4, 0x1e, 0x75, 0x77, 0x66, 0x99, 0x99, 0x75, 0xd2, 0x03, 0x57, 0x14, - 0x38, 0x00, 0x47, 0xc4, 0xa9, 0x82, 0x4b, 0xc5, 0x29, 0x87, 0xdc, 0xf8, 0x03, 0x15, 0xa7, 0xaa, - 0x48, 0xa8, 0xe2, 0x90, 0xa2, 0xe4, 0x10, 0xc4, 0xaf, 0x40, 0xb3, 0x33, 0x5e, 0x3b, 0x21, 0x94, - 0x4a, 0xad, 0xd5, 0x4b, 0xe2, 0xf9, 0xde, 0xee, 0xfb, 0xde, 0xf7, 0xde, 0x9b, 0xf7, 0x16, 0xd6, - 0x7d, 0x2e, 0x23, 0x2e, 0x1b, 0x01, 0x95, 0x4a, 0xd0, 0x4e, 0xa2, 0x28, 0x67, 0x8d, 0xfe, 0x6a, - 0x87, 0x28, 0xbc, 0x7a, 0x0a, 0xac, 0xc7, 0x82, 0x2b, 0x8e, 0xae, 0x99, 0xe7, 0xeb, 0xa7, 0x4c, - 0xf6, 0xf9, 0x52, 0xa1, 0xcb, 0xbb, 0x3c, 0x7d, 0xae, 0xa1, 0x7f, 0x99, 0x57, 0x4a, 0x65, 0x4b, - 0xd1, 0xc1, 0x92, 0x64, 0xae, 0x7d, 0x4e, 0xad, 0xcb, 0xd2, 0x92, 0xb1, 0x7b, 0xe6, 0x45, 0xeb, - 0xdf, 0x98, 0xae, 0xe0, 0x88, 0x32, 0xde, 0x48, 0xff, 0x1a, 0xc8, 0xf9, 0x65, 0x02, 0xe6, 0x37, - 0xb1, 0xc0, 0x91, 0x44, 0xdb, 0xf0, 0xb2, 0xcf, 0xa3, 0x28, 0x61, 0x54, 0xdd, 0xf5, 0x14, 0xde, - 0x2d, 0x82, 0x2a, 0xa8, 0xcd, 0x34, 0xd7, 0x1f, 0x1c, 0x56, 0x72, 0x7f, 0x1c, 0x56, 0x5e, 0xeb, - 0x52, 0xd5, 0x4b, 0x3a, 0x75, 0x9f, 0x47, 0xd6, 0xab, 0xfd, 0xb7, 0x22, 0x83, 0x3b, 0x0d, 0x75, - 0x37, 0x26, 0xb2, 0xde, 0x26, 0xfe, 0xa3, 0x83, 0x15, 0x68, 0x49, 0xdb, 0xc4, 0xbf, 0x7f, 0xb2, - 0xbf, 0x0c, 0xdc, 0x57, 0x32, 0xbf, 0x1f, 0xe3, 0x5d, 0x94, 0xc0, 0x82, 0x8e, 0x5d, 0x07, 0x18, - 0x73, 0x49, 0x84, 0x27, 0xc8, 0x0e, 0x16, 0x41, 0xf1, 0x42, 0x4a, 0xd7, 0x7a, 0x6e, 0xba, 0x22, - 0x70, 0x91, 0x26, 0xd8, 0xb4, 0xfe, 0xdd, 0xd4, 0x3d, 0xda, 0x81, 0x0b, 0x1d, 0xce, 0x12, 0xf9, - 0x2f, 0xde, 0x89, 0x17, 0xc7, 0x3b, 0x9f, 0x32, 0x9c, 0x21, 0xbe, 0x09, 0x17, 0x76, 0xa8, 0xea, - 0x05, 0x02, 0xef, 0x78, 0x38, 0x08, 0x84, 0x47, 0x18, 0xee, 0x84, 0x24, 0x28, 0x4e, 0x56, 0x41, - 0xed, 0xa2, 0x3b, 0x3f, 0x30, 0xae, 0x07, 0x81, 0xd8, 0x30, 0xa6, 0xb5, 0x1b, 0x5f, 0x9f, 0xec, - 0x2f, 0x57, 0x47, 0x88, 0x77, 0x4f, 0xb7, 0x94, 0x29, 0x99, 0xf3, 0x3b, 0x80, 0xa5, 0x4f, 0x70, - 0x48, 0x03, 0xac, 0xb8, 0xf8, 0x90, 0x4a, 0xc5, 0x05, 0xf5, 0x71, 0x68, 0x88, 0x25, 0xfa, 0x06, - 0xc0, 0xab, 0x7e, 0x12, 0x25, 0x21, 0x56, 0xb4, 0x4f, 0xac, 0x5e, 0x4f, 0x60, 0x45, 0x79, 0x11, - 0x54, 0x27, 0x6a, 0x97, 0x6e, 0x5e, 0xb7, 0x0d, 0x5b, 0xd7, 0x09, 0x1b, 0x34, 0x9e, 0x56, 0xd4, - 0xe2, 0x94, 0x35, 0xdf, 0xd3, 0x39, 0xf9, 0xf9, 0x49, 0xe5, 0xcd, 0x67, 0xcb, 0x89, 0x7e, 0x47, - 0x9a, 0x8a, 0x2f, 0x0c, 0x69, 0x4d, 0x30, 0xae, 0x26, 0x45, 0xaf, 0xc3, 0x39, 0x41, 0xb6, 0x89, - 0x20, 0xcc, 0x27, 0x9e, 0xcf, 0x13, 0xa6, 0xd2, 0xaa, 0x5f, 0x76, 0x67, 0x33, 0xb8, 0xa5, 0x51, - 0xe7, 0x27, 0x00, 0xaf, 0x66, 0xc2, 0x5a, 0x89, 0x10, 0x84, 0xa9, 0x81, 0xaa, 0x18, 0x4e, 0x1b, - 0x25, 0x72, 0xcc, 0x22, 0x06, 0x34, 0x68, 0x11, 0xe6, 0x63, 0x22, 0x28, 0x37, 0x3d, 0x3a, 0xe9, - 0xda, 0x93, 0xf3, 0x3d, 0x80, 0xe5, 0x2c, 0xca, 0x75, 0xdf, 0x6a, 0x26, 0x41, 0x8b, 0x47, 0x11, - 0x95, 0x92, 0x72, 0x86, 0xfa, 0x10, 0xfa, 0xd9, 0x69, 0xcc, 0xf1, 0x8e, 0x30, 0x39, 0xdf, 0x02, - 0x78, 0x2d, 0x0b, 0xed, 0x56, 0xa2, 0xa4, 0xc2, 0x2c, 0xa0, 0xac, 0xfb, 0xd2, 0x92, 0xe8, 0xfc, - 0x00, 0xe0, 0x7c, 0x16, 0xd1, 0x56, 0x88, 0x65, 0x6f, 0xa3, 0x4f, 0x98, 0x42, 0x6f, 0xc0, 0x57, - 0xfb, 0x03, 0xd8, 0xb3, 0x69, 0x06, 0x69, 0x9a, 0xe7, 0x32, 0x7c, 0x33, 0x85, 0xd1, 0xa7, 0xf0, - 0xe2, 0xb6, 0xc0, 0xbe, 0xbe, 0x01, 0x76, 0x5a, 0xbc, 0xff, 0x3c, 0xb7, 0xd6, 0xcd, 0xbc, 0x39, - 0x5f, 0x01, 0x58, 0x38, 0x27, 0x38, 0x89, 0x3e, 0x87, 0x8b, 0xc3, 0xe8, 0xa4, 0x36, 0x78, 0x24, - 0xb5, 0xd8, 0xb4, 0xbd, 0x5d, 0x7f, 0xca, 0x04, 0xaf, 0x9f, 0xe3, 0xb2, 0x39, 0xa3, 0x43, 0x36, - 0xb9, 0x29, 0xf4, 0xcf, 0xa1, 0x74, 0xf6, 0x00, 0x9c, 0xfe, 0x80, 0x90, 0x4d, 0xce, 0x43, 0xf4, - 0x05, 0x9c, 0x1d, 0xce, 0xe4, 0x98, 0xf3, 0x70, 0xcc, 0xd5, 0x1a, 0x6e, 0x00, 0x4d, 0xef, 0x7c, - 0x79, 0x01, 0x96, 0x5a, 0xa3, 0xc8, 0x56, 0x4c, 0x58, 0x60, 0xe6, 0x1b, 0x0e, 0x51, 0x01, 0x4e, - 0x29, 0xaa, 0x42, 0x62, 0x36, 0x85, 0x6b, 0x0e, 0xa8, 0x0a, 0x2f, 0x05, 0x44, 0xfa, 0x82, 0xc6, - 0xc3, 0x42, 0xb9, 0xa3, 0x10, 0xba, 0x0e, 0x67, 0x04, 0xf1, 0x69, 0x4c, 0x09, 0x53, 0x66, 0xfc, - 0xba, 0x43, 0x00, 0xf5, 0x60, 0x1e, 0x47, 0xe9, 0x6c, 0x98, 0x4c, 0xb5, 0x2e, 0x9d, 0xab, 0x35, - 0x15, 0xfa, 0xae, 0x15, 0x5a, 0x7b, 0x06, 0xa1, 0x23, 0x2a, 0xad, 0xff, 0xb5, 0xda, 0xde, 0xbd, - 0x4a, 0xee, 0xaf, 0x7b, 0x95, 0xdc, 0xaf, 0x07, 0x2b, 0x25, 0x4b, 0xd2, 0xe5, 0xfd, 0x11, 0x0e, - 0xa6, 0x74, 0x88, 0xc0, 0x79, 0x02, 0xe0, 0x42, 0x9b, 0x84, 0xa4, 0x9b, 0x16, 0x4b, 0x61, 0xa1, - 0x28, 0xeb, 0x7e, 0xc4, 0xb6, 0xd3, 0x91, 0x16, 0x0b, 0xd2, 0xa7, 0x5c, 0x6f, 0x96, 0xd1, 0xee, - 0x9d, 0x1d, 0xc0, 0xb6, 0x79, 0x6f, 0xc3, 0x29, 0xa9, 0xf0, 0x1d, 0x62, 0x3b, 0xf7, 0x05, 0xac, - 0x55, 0xe3, 0x0f, 0xb5, 0x61, 0xbe, 0x47, 0x68, 0xb7, 0x67, 0x52, 0x39, 0xd9, 0x7c, 0xeb, 0xef, - 0xc3, 0xca, 0x9c, 0x2f, 0x88, 0x9e, 0xb8, 0xcc, 0x33, 0xa6, 0x1f, 0x4f, 0xf6, 0x97, 0xcf, 0x62, - 0x36, 0x17, 0xe6, 0xe0, 0x3c, 0x06, 0x70, 0xc9, 0x2a, 0xa4, 0x9c, 0x65, 0x5a, 0xed, 0x0e, 0xdb, - 0x80, 0x57, 0x86, 0xd7, 0x40, 0x2f, 0x31, 0x22, 0xa5, 0xfd, 0x3e, 0x28, 0x3e, 0x3a, 0x58, 0x29, - 0xd8, 0xd0, 0xd6, 0x8d, 0x65, 0x4b, 0x09, 0x3d, 0x6a, 0x86, 0xf7, 0xda, 0xe2, 0x88, 0xc1, 0x7c, - 0xb6, 0xec, 0xc7, 0xd9, 0xc6, 0x96, 0x65, 0x6d, 0x52, 0x17, 0xd8, 0xf9, 0x0d, 0xc0, 0x1b, 0xff, - 0xdd, 0xc5, 0xb7, 0xa9, 0xea, 0xb5, 0x49, 0xcc, 0x25, 0x55, 0x63, 0x6a, 0xe8, 0xc5, 0x91, 0x86, - 0xd6, 0x26, 0x7b, 0x42, 0x45, 0x38, 0x1d, 0x18, 0xe2, 0xe2, 0x54, 0x6a, 0x18, 0x1c, 0xd7, 0x9c, - 0xbd, 0xff, 0x6d, 0xca, 0xe6, 0xad, 0xfb, 0x47, 0x65, 0xf0, 0xe0, 0xa8, 0x0c, 0x1e, 0x1e, 0x95, - 0xc1, 0x9f, 0x47, 0x65, 0xf0, 0xdd, 0x71, 0x39, 0xf7, 0xf0, 0xb8, 0x9c, 0x7b, 0x7c, 0x5c, 0xce, - 0x7d, 0xb6, 0xfa, 0xd4, 0x9c, 0x9d, 0xf9, 0x9a, 0x48, 0x53, 0xd8, 0xc9, 0xa7, 0x5f, 0x84, 0xef, - 0xfc, 0x13, 0x00, 0x00, 0xff, 0xff, 0x20, 0x86, 0xb8, 0xd3, 0xc4, 0x0a, 0x00, 0x00, + 0x14, 0xf6, 0x34, 0x89, 0xd3, 0x4c, 0x69, 0x42, 0x27, 0x4e, 0xea, 0xb8, 0x95, 0x1d, 0xad, 0x54, + 0x30, 0x81, 0xd8, 0xa4, 0x5c, 0x50, 0xc4, 0x25, 0xb6, 0x83, 0xe0, 0x80, 0x1a, 0x6d, 0x10, 0x45, + 0x5c, 0x56, 0xe3, 0xdd, 0x89, 0x3d, 0xea, 0xee, 0xcc, 0x32, 0x33, 0xeb, 0x24, 0x07, 0x24, 0x8e, + 0x81, 0x03, 0x70, 0x44, 0xbd, 0x50, 0xc1, 0xa5, 0xe2, 0x94, 0x43, 0x6e, 0xfc, 0x81, 0x8a, 0x53, + 0x55, 0x24, 0x54, 0x71, 0x48, 0x51, 0x72, 0x08, 0xe2, 0x57, 0xa0, 0xd9, 0x19, 0xaf, 0x9d, 0x10, + 0x4a, 0xa5, 0xd6, 0xea, 0x25, 0xf1, 0x7c, 0x6f, 0xe7, 0x7d, 0xef, 0x7b, 0xef, 0xcd, 0x9b, 0x81, + 0x35, 0x9f, 0xcb, 0x88, 0xcb, 0x7a, 0x40, 0xa5, 0x12, 0xb4, 0x9d, 0x28, 0xca, 0x59, 0xbd, 0xb7, + 0xd2, 0x26, 0x0a, 0xaf, 0x9c, 0x02, 0x6b, 0xb1, 0xe0, 0x8a, 0xa3, 0x6b, 0xe6, 0xfb, 0xda, 0x29, + 0x93, 0xfd, 0xbe, 0x54, 0xe8, 0xf0, 0x0e, 0x4f, 0xbf, 0xab, 0xeb, 0x5f, 0x66, 0x4b, 0xa9, 0x6c, + 0x29, 0xda, 0x58, 0x92, 0xcc, 0xb5, 0xcf, 0xa9, 0x75, 0x59, 0x5a, 0x30, 0x76, 0xcf, 0x6c, 0xb4, + 0xfe, 0x8d, 0xe9, 0x0a, 0x8e, 0x28, 0xe3, 0xf5, 0xf4, 0xaf, 0x81, 0x9c, 0x5f, 0xc6, 0x60, 0x7e, + 0x03, 0x0b, 0x1c, 0x49, 0xb4, 0x05, 0x2f, 0xfb, 0x3c, 0x8a, 0x12, 0x46, 0xd5, 0xae, 0xa7, 0xf0, + 0x4e, 0x11, 0x2c, 0x82, 0xea, 0x54, 0x63, 0xed, 0xc1, 0x61, 0x25, 0xf7, 0xc7, 0x61, 0xe5, 0xb5, + 0x0e, 0x55, 0xdd, 0xa4, 0x5d, 0xf3, 0x79, 0x64, 0xbd, 0xda, 0x7f, 0xcb, 0x32, 0xb8, 0x53, 0x57, + 0xbb, 0x31, 0x91, 0xb5, 0x16, 0xf1, 0x1f, 0x1d, 0x2c, 0x43, 0x4b, 0xda, 0x22, 0xfe, 0xfd, 0x93, + 0xfd, 0x25, 0xe0, 0xbe, 0x92, 0xf9, 0xfd, 0x18, 0xef, 0xa0, 0x04, 0x16, 0x74, 0xec, 0x3a, 0xc0, + 0x98, 0x4b, 0x22, 0x3c, 0x41, 0xb6, 0xb1, 0x08, 0x8a, 0x17, 0x52, 0xba, 0xe6, 0x73, 0xd3, 0x15, + 0x81, 0x8b, 0x34, 0xc1, 0x86, 0xf5, 0xef, 0xa6, 0xee, 0xd1, 0x36, 0x9c, 0x6b, 0x73, 0x96, 0xc8, + 0x7f, 0xf1, 0x8e, 0xbd, 0x38, 0xde, 0xd9, 0x94, 0xe1, 0x0c, 0xf1, 0x4d, 0x38, 0xb7, 0x4d, 0x55, + 0x37, 0x10, 0x78, 0xdb, 0xc3, 0x41, 0x20, 0x3c, 0xc2, 0x70, 0x3b, 0x24, 0x41, 0x71, 0x7c, 0x11, + 0x54, 0x2f, 0xba, 0xb3, 0x7d, 0xe3, 0x5a, 0x10, 0x88, 0x75, 0x63, 0x5a, 0xbd, 0xf1, 0xf5, 0xc9, + 0xfe, 0xd2, 0xe2, 0x10, 0xf1, 0xce, 0xe9, 0x96, 0x32, 0x25, 0x73, 0x7e, 0x07, 0xb0, 0xf4, 0x09, + 0x0e, 0x69, 0x80, 0x15, 0x17, 0x1f, 0x50, 0xa9, 0xb8, 0xa0, 0x3e, 0x0e, 0x0d, 0xb1, 0x44, 0xdf, + 0x00, 0x78, 0xd5, 0x4f, 0xa2, 0x24, 0xc4, 0x8a, 0xf6, 0x88, 0xd5, 0xeb, 0x09, 0xac, 0x28, 0x2f, + 0x82, 0xc5, 0xb1, 0xea, 0xa5, 0x9b, 0xd7, 0x6d, 0xc3, 0xd6, 0x74, 0xc2, 0xfa, 0x8d, 0xa7, 0x15, + 0x35, 0x39, 0x65, 0x8d, 0x77, 0x75, 0x4e, 0x7e, 0x7e, 0x52, 0x79, 0xf3, 0xd9, 0x72, 0xa2, 0xf7, + 0x48, 0x53, 0xf1, 0xb9, 0x01, 0xad, 0x09, 0xc6, 0xd5, 0xa4, 0xe8, 0x75, 0x38, 0x23, 0xc8, 0x16, + 0x11, 0x84, 0xf9, 0xc4, 0xf3, 0x79, 0xc2, 0x54, 0x5a, 0xf5, 0xcb, 0xee, 0x74, 0x06, 0x37, 0x35, + 0xea, 0xfc, 0x04, 0xe0, 0xd5, 0x4c, 0x58, 0x33, 0x11, 0x82, 0x30, 0xd5, 0x57, 0x15, 0xc3, 0x49, + 0xa3, 0x44, 0x8e, 0x58, 0x44, 0x9f, 0x06, 0xcd, 0xc3, 0x7c, 0x4c, 0x04, 0xe5, 0xa6, 0x47, 0xc7, + 0x5d, 0xbb, 0x72, 0xbe, 0x07, 0xb0, 0x9c, 0x45, 0xb9, 0xe6, 0x5b, 0xcd, 0x24, 0x68, 0xf2, 0x28, + 0xa2, 0x52, 0x52, 0xce, 0x50, 0x0f, 0x42, 0x3f, 0x5b, 0x8d, 0x38, 0xde, 0x21, 0x26, 0xe7, 0x5b, + 0x00, 0xaf, 0x65, 0xa1, 0xdd, 0x4a, 0x94, 0x54, 0x98, 0x05, 0x94, 0x75, 0x5e, 0x5a, 0x12, 0x9d, + 0xbb, 0x00, 0xce, 0x66, 0x11, 0x6d, 0x86, 0x58, 0x76, 0xd7, 0x7b, 0x84, 0x29, 0xf4, 0x06, 0x7c, + 0xb5, 0xd7, 0x87, 0x3d, 0x9b, 0x66, 0x90, 0xa6, 0x79, 0x26, 0xc3, 0x37, 0x52, 0x18, 0x7d, 0x0a, + 0x2f, 0x6e, 0x09, 0xec, 0xeb, 0x13, 0x60, 0xa7, 0xc5, 0x7b, 0xcf, 0x73, 0x6a, 0xdd, 0xcc, 0x9b, + 0xf3, 0x15, 0x80, 0x85, 0x73, 0x82, 0x93, 0xe8, 0x73, 0x38, 0x3f, 0x88, 0x4e, 0x6a, 0x83, 0x47, + 0x52, 0x8b, 0x4d, 0xdb, 0xdb, 0xb5, 0xa7, 0x4c, 0xf0, 0xda, 0x39, 0x2e, 0x1b, 0x53, 0x3a, 0x64, + 0x93, 0x9b, 0x42, 0xef, 0x1c, 0x4a, 0x67, 0x0f, 0xc0, 0xc9, 0xf7, 0x09, 0xd9, 0xe0, 0x3c, 0x44, + 0x5f, 0xc0, 0xe9, 0xc1, 0x4c, 0x8e, 0x39, 0x0f, 0x47, 0x5c, 0xad, 0xc1, 0x0d, 0xa0, 0xe9, 0x9d, + 0x1f, 0x2e, 0xc0, 0x52, 0x73, 0x18, 0xd9, 0x8c, 0x09, 0x0b, 0xcc, 0x7c, 0xc3, 0x21, 0x2a, 0xc0, + 0x09, 0x45, 0x55, 0x48, 0xcc, 0x4d, 0xe1, 0x9a, 0x05, 0x5a, 0x84, 0x97, 0x02, 0x22, 0x7d, 0x41, + 0xe3, 0x41, 0xa1, 0xdc, 0x61, 0x08, 0x5d, 0x87, 0x53, 0x82, 0xf8, 0x34, 0xa6, 0x84, 0x29, 0x33, + 0x7e, 0xdd, 0x01, 0x80, 0xbe, 0x04, 0x30, 0x8f, 0xa3, 0x74, 0x38, 0x8c, 0xa7, 0x62, 0x17, 0xce, + 0x15, 0x9b, 0x2a, 0xfd, 0xc8, 0x2a, 0xad, 0x3e, 0x83, 0xd2, 0x54, 0xe6, 0xdd, 0x93, 0xfd, 0xa5, + 0x59, 0x96, 0x84, 0xa1, 0x27, 0x43, 0xea, 0x13, 0x0f, 0x4b, 0x8f, 0x44, 0xb1, 0xda, 0x35, 0xf2, + 0x2d, 0xef, 0x6a, 0x75, 0xef, 0x5e, 0x25, 0xf7, 0xd7, 0xbd, 0x4a, 0xee, 0xd7, 0x83, 0xe5, 0x92, + 0x25, 0xef, 0xf0, 0xde, 0x10, 0x37, 0x53, 0x3a, 0x76, 0xe0, 0x3c, 0x01, 0x70, 0xae, 0x45, 0x42, + 0xd2, 0x49, 0xab, 0xa8, 0xb0, 0x50, 0x94, 0x75, 0x3e, 0x64, 0x5b, 0xe9, 0xac, 0x8b, 0x05, 0xe9, + 0x51, 0xae, 0xaf, 0x9c, 0xe1, 0xb6, 0x9e, 0xee, 0xc3, 0xb6, 0xab, 0x6f, 0xc3, 0x09, 0xa9, 0xf0, + 0x1d, 0x62, 0x5b, 0xfa, 0x05, 0xdc, 0xb7, 0xc6, 0x1f, 0x6a, 0xc1, 0x7c, 0x97, 0xd0, 0x4e, 0xd7, + 0xe4, 0x78, 0xbc, 0xf1, 0xd6, 0xdf, 0x87, 0x95, 0x19, 0x5f, 0x10, 0x3d, 0x8a, 0x99, 0x67, 0x4c, + 0x3f, 0x9e, 0xec, 0x2f, 0x9d, 0xc5, 0x6c, 0x2e, 0xcc, 0xc2, 0x79, 0x0c, 0xe0, 0x82, 0x55, 0x48, + 0x39, 0xcb, 0xb4, 0xda, 0xcb, 0x6d, 0x1d, 0x5e, 0x19, 0x9c, 0x0f, 0x7d, 0xbb, 0x11, 0x29, 0xed, + 0xc3, 0xa1, 0xf8, 0xe8, 0x60, 0xb9, 0x60, 0x43, 0x5b, 0x33, 0x96, 0x4d, 0x25, 0xf4, 0x0c, 0x1a, + 0x1c, 0x78, 0x8b, 0x23, 0x06, 0xf3, 0xd9, 0x2b, 0x60, 0x94, 0xfd, 0x6d, 0x59, 0x56, 0xc7, 0x75, + 0x81, 0x9d, 0xdf, 0x00, 0xbc, 0xf1, 0xdf, 0xed, 0x7d, 0x9b, 0xaa, 0x6e, 0x8b, 0xc4, 0x5c, 0x52, + 0x35, 0xa2, 0x4e, 0x9f, 0x1f, 0x6a, 0x74, 0x6d, 0xb2, 0x2b, 0x54, 0x84, 0x93, 0x81, 0x21, 0x2e, + 0x4e, 0xa4, 0x86, 0xfe, 0x72, 0xd5, 0xd9, 0xfb, 0xdf, 0xa6, 0x6c, 0xdc, 0xba, 0x7f, 0x54, 0x06, + 0x0f, 0x8e, 0xca, 0xe0, 0xe1, 0x51, 0x19, 0xfc, 0x79, 0x54, 0x06, 0xdf, 0x1d, 0x97, 0x73, 0x0f, + 0x8f, 0xcb, 0xb9, 0xc7, 0xc7, 0xe5, 0xdc, 0x67, 0x2b, 0x4f, 0xcd, 0xd9, 0x99, 0x67, 0x46, 0x9a, + 0xc2, 0x76, 0x3e, 0x7d, 0x2a, 0xbe, 0xf3, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1d, 0xc8, 0x78, + 0x0f, 0xdd, 0x0a, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { diff --git a/x/distribution/types/tx.pb.go b/x/distribution/types/tx.pb.go index 16e5c2d1c797..7a9296627967 100644 --- a/x/distribution/types/tx.pb.go +++ b/x/distribution/types/tx.pb.go @@ -675,64 +675,65 @@ func init() { } var fileDescriptor_ed4f433d965e58ca = []byte{ - // 898 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcf, 0x4f, 0xe3, 0x46, - 0x18, 0xcd, 0x80, 0x4a, 0x95, 0xa1, 0x12, 0x24, 0xa2, 0x02, 0x0c, 0x75, 0x90, 0x69, 0x69, 0x84, - 0x8a, 0xad, 0xa4, 0xbf, 0x44, 0x7a, 0x68, 0x9b, 0x00, 0x52, 0x0f, 0x51, 0x51, 0x50, 0x5b, 0xa9, - 0x17, 0xe4, 0xc4, 0xae, 0x33, 0x2a, 0xf6, 0x58, 0x9e, 0x09, 0x21, 0xb7, 0xb6, 0xea, 0xa1, 0xea, - 0xa1, 0xaa, 0xe8, 0x1f, 0x50, 0x8e, 0xa8, 0x97, 0x72, 0xe8, 0x1f, 0x81, 0x54, 0x55, 0x42, 0x3d, - 0xed, 0x69, 0x77, 0x15, 0x0e, 0xac, 0xb4, 0x7b, 0xdc, 0xbd, 0xaf, 0x6c, 0x8f, 0x1d, 0x3b, 0x76, - 0x6c, 0xc2, 0xb2, 0xec, 0x05, 0xd0, 0xcc, 0xf7, 0x9e, 0xdf, 0xf7, 0xfc, 0xe6, 0x1b, 0x03, 0xdf, - 0x6e, 0x61, 0xa2, 0x63, 0x22, 0x29, 0x88, 0x50, 0x0b, 0x35, 0x3b, 0x14, 0x61, 0x43, 0x3a, 0x2c, - 0x35, 0x55, 0x2a, 0x97, 0x24, 0x7a, 0x24, 0x9a, 0x16, 0xa6, 0x38, 0xbf, 0xe4, 0x56, 0x89, 0xc1, - 0x2a, 0x91, 0x55, 0x71, 0x73, 0x1a, 0xd6, 0xb0, 0x53, 0x27, 0xd9, 0x7f, 0xb9, 0x10, 0x8e, 0x67, - 0xc4, 0x4d, 0x99, 0xa8, 0x3e, 0x61, 0x0b, 0x23, 0x83, 0xed, 0x2f, 0xba, 0xfb, 0xfb, 0x2e, 0x90, - 0xf1, 0xbb, 0x5b, 0xf3, 0x0c, 0xaa, 0x13, 0x4d, 0x3a, 0x2c, 0xd9, 0xbf, 0xd8, 0x46, 0x4e, 0xd6, - 0x91, 0x81, 0x25, 0xe7, 0x27, 0x5b, 0x12, 0x93, 0xf4, 0x87, 0xe4, 0x3a, 0xf5, 0xc2, 0x63, 0x00, - 0xdf, 0xac, 0x13, 0x6d, 0x4f, 0xa5, 0xdf, 0x20, 0xda, 0x56, 0x2c, 0xb9, 0xfb, 0xb9, 0xa2, 0x58, - 0x2a, 0x21, 0xf9, 0x6d, 0x98, 0x53, 0xd4, 0x03, 0x55, 0x93, 0x29, 0xb6, 0xf6, 0x65, 0x77, 0x71, - 0x01, 0xac, 0x80, 0x62, 0xb6, 0xba, 0xf0, 0xff, 0x3f, 0x1b, 0x73, 0x4c, 0x22, 0x2b, 0xdf, 0xa3, - 0x16, 0x32, 0xb4, 0xc6, 0xac, 0x0f, 0xf1, 0x68, 0x6a, 0x70, 0xb6, 0xcb, 0x98, 0x7d, 0x96, 0x89, - 0x14, 0x96, 0x99, 0x6e, 0x58, 0x4b, 0x65, 0xe7, 0x97, 0x93, 0x42, 0xe6, 0xd1, 0x49, 0x21, 0xf3, - 0xd3, 0xd5, 0xd9, 0x7a, 0x54, 0xd6, 0xaf, 0x57, 0x67, 0xeb, 0xab, 0x2e, 0xd3, 0x06, 0x51, 0xbe, - 0x97, 0xea, 0x44, 0xab, 0x63, 0x05, 0x7d, 0xd7, 0x1b, 0xea, 0x49, 0x28, 0xc0, 0xb7, 0x62, 0x9b, - 0x6d, 0xa8, 0xc4, 0xc4, 0x06, 0x51, 0x85, 0x67, 0x00, 0x72, 0x75, 0xa2, 0x79, 0xdb, 0x5b, 0xde, - 0x93, 0x1a, 0x6a, 0x57, 0xb6, 0x94, 0xdb, 0xf2, 0x64, 0x1b, 0xe6, 0x0e, 0xe5, 0x03, 0xa4, 0x84, - 0x68, 0xd2, 0x4c, 0x99, 0xf5, 0x21, 0x9e, 0x2b, 0x5f, 0xa4, 0xbb, 0xb2, 0x16, 0x76, 0x65, 0xa8, - 0x2f, 0x84, 0x0d, 0xb7, 0x31, 0xe1, 0x37, 0x00, 0x85, 0xd1, 0x7d, 0x7b, 0xf6, 0xe4, 0xdb, 0x70, - 0x4a, 0xd6, 0x71, 0xc7, 0xa0, 0x0b, 0x60, 0x65, 0xb2, 0x38, 0x5d, 0x5e, 0x64, 0x71, 0x13, 0xed, - 0x54, 0x7b, 0x07, 0x40, 0xac, 0x61, 0x64, 0x54, 0x3f, 0x3c, 0xbf, 0x5f, 0xc8, 0xfc, 0xf5, 0xa0, - 0x50, 0xd4, 0x10, 0x6d, 0x77, 0x9a, 0x62, 0x0b, 0xeb, 0x2c, 0xd5, 0x52, 0x40, 0x13, 0xed, 0x99, - 0x2a, 0x71, 0x00, 0xe4, 0xf4, 0xea, 0x6c, 0x1d, 0x34, 0x18, 0xbf, 0xf0, 0x37, 0x80, 0x7c, 0x40, - 0xd0, 0xd7, 0x5e, 0xef, 0x35, 0xac, 0xeb, 0x88, 0x10, 0x84, 0x8d, 0x78, 0x17, 0xc1, 0xd8, 0x2e, - 0x86, 0xb3, 0x15, 0x61, 0x8c, 0xc9, 0x56, 0x40, 0xd4, 0x40, 0x8e, 0x70, 0x0c, 0xe0, 0x5a, 0xb2, - 0xe2, 0x57, 0x60, 0xe3, 0x53, 0x00, 0xe7, 0xea, 0x44, 0xdb, 0xe9, 0x18, 0x8a, 0xad, 0xa3, 0x63, - 0x20, 0xda, 0xdb, 0xc5, 0xf8, 0xe0, 0xee, 0x24, 0xe4, 0x3f, 0x82, 0x59, 0x45, 0x35, 0x31, 0x41, - 0x14, 0x5b, 0xa9, 0x21, 0x1f, 0x94, 0x56, 0x2a, 0xc1, 0xf7, 0x32, 0x58, 0xb7, 0xdf, 0x47, 0x21, - 0xfc, 0x3e, 0x22, 0xdd, 0x09, 0x3c, 0x5c, 0x8e, 0x5b, 0xf7, 0x8f, 0xf9, 0x7f, 0x00, 0xce, 0xd4, - 0x89, 0xf6, 0x95, 0xa9, 0xc8, 0x54, 0xdd, 0x95, 0x2d, 0x59, 0x27, 0xb6, 0x4e, 0xb9, 0x43, 0xdb, - 0xd8, 0x42, 0xb4, 0x97, 0x1a, 0xa3, 0x41, 0x69, 0x7e, 0x07, 0x4e, 0x99, 0x0e, 0x83, 0xd3, 0xdc, - 0x74, 0x79, 0x55, 0x4c, 0xb8, 0x1c, 0x44, 0xf7, 0x61, 0xd5, 0xac, 0xed, 0x29, 0xf3, 0xc9, 0x45, - 0x57, 0x2a, 0x4e, 0x9f, 0x3e, 0xaf, 0xdd, 0xe7, 0xbb, 0x81, 0x3e, 0x43, 0x03, 0x7d, 0x48, 0xbb, - 0xb0, 0x08, 0xe7, 0x87, 0x96, 0xfc, 0x56, 0x8f, 0x27, 0x9c, 0x01, 0x1f, 0xf2, 0x61, 0xcf, 0x54, - 0x0d, 0xe5, 0xc6, 0x0d, 0x2f, 0xc3, 0xac, 0xa5, 0xb6, 0x90, 0x89, 0x54, 0x83, 0xba, 0x2f, 0xb4, - 0x31, 0x58, 0x08, 0x04, 0x6b, 0xf2, 0xe5, 0x06, 0xab, 0xb2, 0x19, 0x35, 0x6c, 0x6d, 0xd8, 0x30, - 0x29, 0xb6, 0x75, 0x76, 0x0f, 0x44, 0x37, 0x7c, 0xd7, 0xfe, 0x9d, 0x70, 0xc6, 0xcf, 0x96, 0x9b, - 0x3a, 0xff, 0x2c, 0xbb, 0xe3, 0x90, 0x38, 0x27, 0xe8, 0xa6, 0xf6, 0xdd, 0xce, 0xf0, 0xbf, 0x43, - 0x9f, 0x3f, 0x0b, 0x1d, 0xc4, 0x90, 0xdf, 0xef, 0xc4, 0xf9, 0x3d, 0x30, 0x8d, 0xd9, 0x25, 0x14, - 0x9d, 0xc9, 0x98, 0x60, 0xa6, 0xe7, 0x7b, 0xf9, 0xc9, 0xeb, 0x70, 0xb2, 0x4e, 0xb4, 0xfc, 0xcf, - 0x00, 0xe6, 0x63, 0xbe, 0x49, 0xca, 0x89, 0x67, 0x2b, 0xf6, 0x6a, 0xe7, 0x2a, 0xe3, 0x63, 0xfc, - 0x41, 0xfd, 0x07, 0x80, 0xf3, 0xa3, 0xbe, 0x05, 0x3e, 0x4e, 0xe3, 0x1d, 0x01, 0xe4, 0x3e, 0xbd, - 0x21, 0xd0, 0x57, 0xf5, 0x27, 0x80, 0x4b, 0x49, 0x17, 0xe3, 0x27, 0xd7, 0x7d, 0x40, 0x0c, 0x98, - 0xab, 0xbd, 0x00, 0xd8, 0x57, 0xf8, 0x23, 0x80, 0xb9, 0xe8, 0x9d, 0x53, 0x4a, 0xa3, 0x8e, 0x40, - 0xb8, 0xcd, 0xb1, 0x21, 0xbe, 0x06, 0x0b, 0xbe, 0x11, 0x9a, 0xef, 0xef, 0xa5, 0x51, 0x05, 0xab, - 0xb9, 0x0f, 0xc6, 0xa9, 0xf6, 0x9f, 0x69, 0xc7, 0x36, 0x66, 0xd2, 0xa6, 0xc6, 0x36, 0x8a, 0x49, - 0x8f, 0xed, 0xe8, 0xe9, 0xe5, 0x04, 0x24, 0x69, 0x74, 0xa5, 0x06, 0x24, 0x01, 0x9c, 0x1e, 0x90, - 0x6b, 0x9c, 0x73, 0xee, 0xb5, 0x1f, 0xec, 0x11, 0x53, 0xfd, 0xf2, 0xb4, 0xcf, 0x83, 0xf3, 0x3e, - 0x0f, 0x2e, 0xfa, 0x3c, 0x78, 0xd8, 0xe7, 0xc1, 0xef, 0x97, 0x7c, 0xe6, 0xe2, 0x92, 0xcf, 0xdc, - 0xbb, 0xe4, 0x33, 0xdf, 0x96, 0x12, 0xe7, 0xd5, 0x51, 0xf8, 0x4a, 0x74, 0xc6, 0x57, 0x73, 0xca, - 0xf9, 0xaf, 0xe6, 0xfd, 0xe7, 0x01, 0x00, 0x00, 0xff, 0xff, 0xfa, 0x83, 0xe6, 0x97, 0xc7, 0x0d, - 0x00, 0x00, + // 922 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x41, 0x6f, 0xe3, 0x44, + 0x14, 0xce, 0xa4, 0xa2, 0x28, 0xb3, 0x48, 0xdb, 0x84, 0xa2, 0xb6, 0xde, 0xc5, 0x59, 0x79, 0xa1, + 0x44, 0x11, 0x6b, 0x2b, 0x01, 0x81, 0x36, 0x1c, 0x80, 0x64, 0xb7, 0x12, 0x07, 0x8b, 0x55, 0x2a, + 0x40, 0xe2, 0x12, 0x39, 0xf1, 0xe0, 0x8e, 0x88, 0x3d, 0x96, 0x67, 0xd2, 0x6c, 0x6e, 0x0b, 0xe2, + 0x80, 0x90, 0x90, 0x90, 0xb8, 0x71, 0x61, 0x6f, 0xac, 0xd8, 0x03, 0x39, 0xf0, 0x23, 0xf6, 0x82, + 0x54, 0x71, 0xe2, 0x04, 0x28, 0x45, 0x0a, 0x12, 0x5c, 0xb9, 0x23, 0xdb, 0x63, 0xc7, 0x8e, 0x1d, + 0xbb, 0x29, 0x95, 0xe8, 0xa5, 0xad, 0x66, 0xde, 0xf7, 0xe6, 0x7b, 0xdf, 0x7c, 0xf3, 0x9e, 0x0b, + 0x5f, 0x18, 0x10, 0x6a, 0x12, 0xaa, 0xe8, 0x98, 0x32, 0x07, 0xf7, 0x47, 0x0c, 0x13, 0x4b, 0x39, + 0x6e, 0xf4, 0x11, 0xd3, 0x1a, 0x0a, 0xbb, 0x2f, 0xdb, 0x0e, 0x61, 0xa4, 0x72, 0xcd, 0x8f, 0x92, + 0xa3, 0x51, 0x32, 0x8f, 0x12, 0xb6, 0x0d, 0x62, 0x10, 0x2f, 0x4e, 0x71, 0xff, 0xf2, 0x21, 0x82, + 0xc8, 0x13, 0xf7, 0x35, 0x8a, 0xc2, 0x84, 0x03, 0x82, 0x2d, 0xbe, 0xbf, 0xe7, 0xef, 0xf7, 0x7c, + 0x20, 0xcf, 0xef, 0x6f, 0xed, 0x70, 0xa8, 0x49, 0x0d, 0xe5, 0xb8, 0xe1, 0xfe, 0xe2, 0x1b, 0x65, + 0xcd, 0xc4, 0x16, 0x51, 0xbc, 0x9f, 0x7c, 0x49, 0xce, 0xe2, 0x1f, 0xa3, 0xeb, 0xc5, 0x4b, 0x7f, + 0x01, 0xf8, 0x9c, 0x4a, 0x8d, 0x43, 0xc4, 0x3e, 0xc0, 0xec, 0x48, 0x77, 0xb4, 0xf1, 0xdb, 0xba, + 0xee, 0x20, 0x4a, 0x2b, 0x77, 0x61, 0x59, 0x47, 0x43, 0x64, 0x68, 0x8c, 0x38, 0x3d, 0xcd, 0x5f, + 0xdc, 0x05, 0x37, 0x40, 0xad, 0xd4, 0xde, 0xfd, 0xf9, 0xc7, 0x5b, 0xdb, 0x9c, 0x22, 0x0f, 0x3f, + 0x64, 0x0e, 0xb6, 0x8c, 0xee, 0x56, 0x08, 0x09, 0xd2, 0x74, 0xe0, 0xd6, 0x98, 0x67, 0x0e, 0xb3, + 0x14, 0x73, 0xb2, 0x5c, 0x1d, 0xc7, 0xb9, 0xb4, 0x0e, 0x3e, 0x7f, 0x58, 0x2d, 0xfc, 0xf9, 0xb0, + 0x5a, 0xf8, 0x74, 0x3e, 0xad, 0x27, 0x69, 0x7d, 0x31, 0x9f, 0xd6, 0x6f, 0xfa, 0x99, 0x6e, 0x51, + 0xfd, 0x63, 0x45, 0xa5, 0x86, 0x4a, 0x74, 0xfc, 0xd1, 0x64, 0xa9, 0x26, 0xa9, 0x0a, 0x9f, 0x4f, + 0x2d, 0xb6, 0x8b, 0xa8, 0x4d, 0x2c, 0x8a, 0xa4, 0x7f, 0x00, 0x14, 0x54, 0x6a, 0x04, 0xdb, 0x77, + 0x82, 0x93, 0xba, 0x68, 0xac, 0x39, 0xfa, 0x45, 0x69, 0x72, 0x17, 0x96, 0x8f, 0xb5, 0x21, 0xd6, + 0x63, 0x69, 0xf2, 0x44, 0xd9, 0x0a, 0x21, 0x81, 0x2a, 0xef, 0xe4, 0xab, 0xb2, 0x1f, 0x57, 0x65, + 0xa9, 0x2e, 0x4c, 0x2c, 0xbf, 0x30, 0xe9, 0x3b, 0x00, 0xa5, 0xd5, 0x75, 0x07, 0xf2, 0x54, 0x1e, + 0x00, 0xb8, 0xa9, 0x99, 0x64, 0x64, 0xb1, 0x5d, 0x70, 0x63, 0xa3, 0x76, 0xa5, 0xb9, 0xc7, 0xfd, + 0x26, 0xbb, 0xb6, 0x0e, 0x5e, 0x80, 0xdc, 0x21, 0xd8, 0x6a, 0xab, 0x4f, 0x7e, 0xad, 0x16, 0xbe, + 0xff, 0xad, 0x5a, 0x33, 0x30, 0x3b, 0x1a, 0xf5, 0xe5, 0x01, 0x31, 0xb9, 0xad, 0x95, 0x08, 0x29, + 0x36, 0xb1, 0x11, 0xf5, 0x00, 0xf4, 0x9b, 0xf9, 0xb4, 0xfe, 0xac, 0x35, 0x1a, 0x0e, 0x7b, 0x74, + 0x88, 0x07, 0xa8, 0xa7, 0xd1, 0x1e, 0x32, 0x6d, 0x36, 0x79, 0x34, 0x9f, 0xd6, 0x41, 0x97, 0x9f, + 0x2b, 0xfd, 0x00, 0xa0, 0x18, 0x61, 0xfa, 0x7e, 0x20, 0x4a, 0x87, 0x98, 0x26, 0xa6, 0x14, 0x13, + 0x2b, 0x5d, 0x5e, 0xb0, 0xb6, 0xbc, 0x71, 0xd3, 0x25, 0x32, 0xa6, 0x98, 0x2e, 0x42, 0x6a, 0x41, + 0x47, 0x7a, 0x0c, 0xe0, 0x7e, 0x36, 0xe3, 0xcb, 0xa4, 0xef, 0x97, 0x45, 0xb8, 0xad, 0x52, 0xe3, + 0x60, 0x64, 0xe9, 0x2e, 0xc1, 0x91, 0x85, 0xd9, 0xe4, 0x1e, 0x21, 0xc3, 0x4b, 0xc0, 0xad, 0xf2, + 0x1a, 0x2c, 0xe9, 0xc8, 0x26, 0x14, 0x33, 0xe2, 0xe4, 0xbe, 0x97, 0x45, 0x68, 0xab, 0x15, 0xbd, + 0xc9, 0xc5, 0xba, 0x7b, 0x83, 0xd5, 0xf8, 0x0d, 0x26, 0xca, 0x96, 0x44, 0x78, 0x3d, 0x6d, 0x3d, + 0xec, 0x18, 0x3f, 0x01, 0x78, 0x55, 0xa5, 0xc6, 0x7b, 0xb6, 0xae, 0x31, 0x74, 0x4f, 0x73, 0x34, + 0x93, 0xba, 0x3c, 0xb5, 0x11, 0x3b, 0x22, 0x0e, 0x66, 0x93, 0x5c, 0xe3, 0x2d, 0x42, 0x2b, 0x07, + 0x70, 0xd3, 0xf6, 0x32, 0x78, 0xc5, 0x5d, 0x69, 0xde, 0x94, 0x33, 0xe6, 0x8c, 0xec, 0x1f, 0xd6, + 0x2e, 0xb9, 0x5a, 0x73, 0x9d, 0x7c, 0x74, 0xab, 0xe5, 0xd5, 0x19, 0xe6, 0x75, 0xeb, 0x7c, 0x29, + 0x52, 0x67, 0x6c, 0x36, 0x2c, 0x71, 0x97, 0xf6, 0xe0, 0xce, 0xd2, 0x52, 0x58, 0xea, 0xe3, 0xa2, + 0x37, 0x2b, 0x62, 0x3a, 0x1c, 0xda, 0xc8, 0xd2, 0xcf, 0x5d, 0xf0, 0x75, 0x58, 0x72, 0xd0, 0x00, + 0xdb, 0x18, 0x59, 0xcc, 0xbf, 0xd0, 0xee, 0x62, 0x21, 0xea, 0xb8, 0x8d, 0xff, 0xc7, 0x71, 0xad, + 0xdb, 0x49, 0x25, 0xf7, 0x97, 0x95, 0x54, 0x52, 0x35, 0xe1, 0xb3, 0x26, 0xb9, 0x11, 0xca, 0xf9, + 0x47, 0xd1, 0xeb, 0x64, 0x77, 0x7c, 0x3b, 0x86, 0x6d, 0xc1, 0x6f, 0xb9, 0xd4, 0x7b, 0x73, 0xe7, + 0xd5, 0xf5, 0x62, 0x06, 0xcc, 0x65, 0xb8, 0x80, 0xb7, 0x62, 0x4f, 0x37, 0x76, 0x11, 0x2f, 0xa6, + 0x5d, 0xc4, 0x42, 0x4d, 0xae, 0xa3, 0x54, 0xf3, 0xba, 0x6f, 0x86, 0xca, 0xc1, 0x85, 0x34, 0xff, + 0x7e, 0x1a, 0x6e, 0xa8, 0xd4, 0xa8, 0x7c, 0x06, 0x60, 0x25, 0xe5, 0x83, 0xa8, 0x99, 0xf9, 0x1a, + 0x53, 0xbf, 0x2b, 0x84, 0xd6, 0xfa, 0x98, 0x70, 0x18, 0x7c, 0x0d, 0xe0, 0xce, 0xaa, 0x0f, 0x91, + 0xd7, 0xf3, 0xf2, 0xae, 0x00, 0x0a, 0x6f, 0x9e, 0x13, 0x18, 0xb2, 0xfa, 0x16, 0xc0, 0x6b, 0x59, + 0xc3, 0xf7, 0x8d, 0xb3, 0x1e, 0x90, 0x02, 0x16, 0x3a, 0xff, 0x01, 0x1c, 0x32, 0xfc, 0x04, 0xc0, + 0x72, 0x72, 0x7c, 0x35, 0xf2, 0x52, 0x27, 0x20, 0xc2, 0xed, 0xb5, 0x21, 0x21, 0x07, 0x07, 0x3e, + 0x13, 0x9b, 0x08, 0x2f, 0xe7, 0xa5, 0x8a, 0x46, 0x0b, 0xaf, 0xae, 0x13, 0x1d, 0x9e, 0xe9, 0xda, + 0x36, 0xa5, 0x37, 0xe7, 0xda, 0x36, 0x89, 0xc9, 0xb7, 0xed, 0xea, 0xb6, 0xe6, 0x19, 0x24, 0xab, + 0xa7, 0xe5, 0x1a, 0x24, 0x03, 0x9c, 0x6f, 0x90, 0x33, 0xbc, 0x73, 0xe1, 0xa9, 0x07, 0x6e, 0x8b, + 0x69, 0xbf, 0xfb, 0x68, 0x26, 0x82, 0x27, 0x33, 0x11, 0x9c, 0xcc, 0x44, 0xf0, 0xfb, 0x4c, 0x04, + 0x5f, 0x9d, 0x8a, 0x85, 0x93, 0x53, 0xb1, 0xf0, 0xcb, 0xa9, 0x58, 0xf8, 0xb0, 0x91, 0xd9, 0xc7, + 0xee, 0xc7, 0x87, 0xa8, 0xd7, 0xd6, 0xfa, 0x9b, 0xde, 0xbf, 0x54, 0xaf, 0xfc, 0x1b, 0x00, 0x00, + 0xff, 0xff, 0x64, 0x0b, 0x1d, 0xdd, 0x44, 0x0e, 0x00, 0x00, } func (this *MsgSetWithdrawAddressResponse) Equal(that interface{}) bool { diff --git a/x/feegrant/feegrant.pb.go b/x/feegrant/feegrant.pb.go index e7a598d18792..e75560b57f92 100644 --- a/x/feegrant/feegrant.pb.go +++ b/x/feegrant/feegrant.pb.go @@ -295,48 +295,49 @@ func init() { } var fileDescriptor_7279582900c30aea = []byte{ - // 645 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xbf, 0x6f, 0xd3, 0x4e, - 0x14, 0x8f, 0x9b, 0xb6, 0x5f, 0xe5, 0xf2, 0xa5, 0xb4, 0xa6, 0x12, 0x4e, 0x85, 0xec, 0x2a, 0x12, - 0x90, 0x56, 0xaa, 0xad, 0x16, 0xb1, 0x74, 0x6a, 0x5c, 0x44, 0x01, 0xb5, 0x52, 0xe5, 0x32, 0x21, - 0xa1, 0xe8, 0x6c, 0x5f, 0xcd, 0xa9, 0xb1, 0xcf, 0xf8, 0x1c, 0x68, 0x18, 0x98, 0x11, 0x03, 0xca, - 0xc8, 0xc8, 0x88, 0x98, 0x3a, 0x94, 0xff, 0xa1, 0x62, 0x40, 0x15, 0x13, 0x13, 0x41, 0xc9, 0xd0, - 0x99, 0xff, 0x00, 0xf9, 0xee, 0xec, 0xb8, 0x09, 0x15, 0xad, 0x44, 0x97, 0xc4, 0xf7, 0xee, 0xbd, - 0xcf, 0x8f, 0xf7, 0x9e, 0x65, 0x70, 0xcb, 0x21, 0xd4, 0x27, 0xd4, 0xd8, 0x45, 0xc8, 0x8b, 0x60, - 0x10, 0x1b, 0x2f, 0x96, 0x6d, 0x14, 0xc3, 0xe5, 0x2c, 0xa0, 0x87, 0x11, 0x89, 0x89, 0x7c, 0x9d, - 0xe7, 0xe9, 0x59, 0x58, 0xe4, 0xcd, 0xcd, 0x7a, 0xc4, 0x23, 0x2c, 0xc7, 0x48, 0x9e, 0x78, 0xfa, - 0x5c, 0xc5, 0x23, 0xc4, 0x6b, 0x22, 0x83, 0x9d, 0xec, 0xd6, 0xae, 0x01, 0x83, 0x76, 0x7a, 0xc5, - 0x91, 0x1a, 0xbc, 0x46, 0xc0, 0xf2, 0x2b, 0x55, 0x88, 0xb1, 0x21, 0x45, 0x99, 0x10, 0x87, 0xe0, - 0x40, 0xdc, 0xcf, 0x40, 0x1f, 0x07, 0xc4, 0x60, 0xbf, 0x22, 0xa4, 0x0d, 0x13, 0xc5, 0xd8, 0x47, - 0x34, 0x86, 0x7e, 0x98, 0x62, 0x0e, 0x27, 0xb8, 0xad, 0x08, 0xc6, 0x98, 0x08, 0xcc, 0xea, 0xbb, - 0x31, 0x30, 0x65, 0x42, 0x8a, 0x9d, 0x7a, 0xb3, 0x49, 0x5e, 0xc2, 0xc0, 0x41, 0xf2, 0x73, 0x50, - 0xa6, 0x21, 0x0a, 0xdc, 0x46, 0x13, 0xfb, 0x38, 0x56, 0xa4, 0xf9, 0x62, 0xad, 0xbc, 0x52, 0xd1, - 0x85, 0xd4, 0x44, 0x5c, 0xea, 0x5e, 0x5f, 0x27, 0x38, 0x30, 0xef, 0x1e, 0xfd, 0xd0, 0x0a, 0x9f, - 0xba, 0x5a, 0xcd, 0xc3, 0xf1, 0xb3, 0x96, 0xad, 0x3b, 0xc4, 0x17, 0xbe, 0xc4, 0xdf, 0x12, 0x75, - 0xf7, 0x8c, 0xb8, 0x1d, 0x22, 0xca, 0x0a, 0xe8, 0xc7, 0x93, 0x83, 0x45, 0xc9, 0x02, 0x8c, 0x64, - 0x33, 0xe1, 0x90, 0xd7, 0x00, 0x40, 0xfb, 0x21, 0xe6, 0xca, 0x94, 0xb1, 0x79, 0xa9, 0x56, 0x5e, - 0x99, 0xd3, 0xb9, 0x74, 0x3d, 0x95, 0xae, 0x3f, 0x4e, 0xbd, 0x99, 0xe3, 0x9d, 0xae, 0x26, 0x59, - 0xb9, 0x9a, 0xd5, 0x8d, 0x2f, 0x87, 0x4b, 0x37, 0xcf, 0x18, 0x92, 0x7e, 0x1f, 0xa1, 0xcc, 0xde, - 0xc3, 0xb7, 0x27, 0x07, 0x8b, 0x95, 0x9c, 0xb0, 0xd3, 0xee, 0xab, 0x9f, 0xc7, 0xc1, 0xcc, 0x36, - 0x8a, 0x30, 0x71, 0xf3, 0x3d, 0x79, 0x00, 0x26, 0xec, 0x24, 0x4f, 0x91, 0x98, 0xb6, 0xdb, 0xfa, - 0x59, 0x54, 0xa7, 0xd1, 0xcc, 0x52, 0xd2, 0x1b, 0xee, 0x97, 0x03, 0xc8, 0x6b, 0x60, 0x32, 0x64, - 0xf0, 0xc2, 0x66, 0x65, 0xc4, 0xe6, 0x3d, 0x31, 0x21, 0xf3, 0x4a, 0x52, 0xfc, 0xbe, 0xab, 0x49, - 0x1c, 0x40, 0xd4, 0xc9, 0xaf, 0x81, 0xcc, 0x9f, 0x1a, 0xf9, 0x31, 0x15, 0x2f, 0x69, 0x4c, 0xd3, - 0x9c, 0x6b, 0x67, 0x30, 0xac, 0x57, 0x40, 0xc4, 0x1a, 0x0e, 0x0c, 0xb8, 0x06, 0x65, 0xfc, 0x92, - 0xd8, 0xa7, 0x38, 0xd3, 0x3a, 0x0c, 0x98, 0x00, 0x79, 0x13, 0xfc, 0x2f, 0xb8, 0x23, 0x44, 0x51, - 0xac, 0x4c, 0xfc, 0x75, 0x55, 0x58, 0x13, 0x3b, 0x59, 0x13, 0xcb, 0xbc, 0xdc, 0x4a, 0xaa, 0x57, - 0x1f, 0x5d, 0x68, 0x69, 0x6e, 0xe4, 0x84, 0x8e, 0x6c, 0x48, 0xf5, 0x97, 0x04, 0xae, 0xb1, 0x13, - 0x72, 0xb7, 0xa8, 0x37, 0xd8, 0x9c, 0xa7, 0xa0, 0x04, 0xd3, 0x83, 0xd8, 0x9e, 0xd9, 0x11, 0xb9, - 0xf5, 0xa0, 0x6d, 0x2e, 0x9c, 0x5b, 0x8c, 0x35, 0x40, 0x94, 0x17, 0xc0, 0x34, 0xe4, 0xac, 0x0d, - 0x1f, 0x51, 0x0a, 0x3d, 0x44, 0x95, 0xb1, 0xf9, 0x62, 0xad, 0x64, 0x5d, 0x15, 0xf1, 0x2d, 0x11, - 0x5e, 0xdd, 0x7e, 0xf3, 0x41, 0x2b, 0x5c, 0xc8, 0xb1, 0x9a, 0x73, 0xfc, 0x07, 0x6f, 0xd5, 0xaf, - 0x12, 0x98, 0xd8, 0x48, 0x20, 0xe4, 0x15, 0xf0, 0x1f, 0xc3, 0x42, 0x11, 0xf3, 0x58, 0x32, 0x95, - 0x6f, 0x87, 0x4b, 0xb3, 0x82, 0xa8, 0xee, 0xba, 0x11, 0xa2, 0x74, 0x27, 0x8e, 0x70, 0xe0, 0x59, - 0x69, 0xe2, 0xa0, 0x06, 0xb1, 0x57, 0xe1, 0x1c, 0x35, 0x43, 0xdd, 0x2c, 0xfe, 0xeb, 0x6e, 0x9a, - 0xcb, 0x47, 0x3d, 0x55, 0x3a, 0xee, 0xa9, 0xd2, 0xcf, 0x9e, 0x2a, 0x75, 0xfa, 0x6a, 0xe1, 0xb8, - 0xaf, 0x16, 0xbe, 0xf7, 0xd5, 0xc2, 0x13, 0xf1, 0x01, 0xa0, 0xee, 0x9e, 0x8e, 0x89, 0xb1, 0x9f, - 0x7d, 0x1f, 0xec, 0x49, 0x46, 0x7b, 0xe7, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x52, 0x13, 0x7a, - 0xee, 0x4a, 0x06, 0x00, 0x00, + // 667 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xc1, 0x4f, 0xd4, 0x4e, + 0x14, 0xde, 0x61, 0x81, 0x5f, 0x76, 0xf6, 0x27, 0x42, 0x21, 0xb1, 0x4b, 0x4c, 0x97, 0x6c, 0xa2, + 0x2e, 0x24, 0xb4, 0x01, 0x6f, 0x9c, 0xa0, 0x18, 0x51, 0x03, 0x09, 0x59, 0x3c, 0x99, 0x98, 0x66, + 0xb6, 0x1d, 0xea, 0x84, 0x76, 0xa6, 0xe9, 0xcc, 0x2a, 0xfb, 0x1f, 0xa8, 0x27, 0xe2, 0xc1, 0x18, + 0x4f, 0xde, 0x34, 0x9e, 0x38, 0xf0, 0x47, 0x10, 0x0f, 0x86, 0x78, 0xf2, 0x24, 0x06, 0x0e, 0x7b, + 0xf6, 0x3f, 0x30, 0x9d, 0x99, 0xee, 0x2e, 0x20, 0x11, 0x12, 0xc3, 0x65, 0xb7, 0xf3, 0xe6, 0x7d, + 0xdf, 0xfb, 0xbe, 0xf7, 0x5e, 0x53, 0x78, 0xdb, 0x67, 0x3c, 0x66, 0xdc, 0xd9, 0xc4, 0x38, 0x4c, + 0x11, 0x15, 0xce, 0xf3, 0xb9, 0x26, 0x16, 0x68, 0xae, 0x1b, 0xb0, 0x93, 0x94, 0x09, 0x66, 0xdc, + 0x50, 0x79, 0x76, 0x37, 0xac, 0xf3, 0x26, 0x27, 0x42, 0x16, 0x32, 0x99, 0xe3, 0x64, 0x4f, 0x2a, + 0x7d, 0xb2, 0x12, 0x32, 0x16, 0x46, 0xd8, 0x91, 0xa7, 0x66, 0x6b, 0xd3, 0x41, 0xb4, 0x9d, 0x5f, + 0x29, 0x26, 0x4f, 0x61, 0x34, 0xad, 0xba, 0xb2, 0xb4, 0x98, 0x26, 0xe2, 0xb8, 0x2b, 0xc4, 0x67, + 0x84, 0xea, 0xfb, 0x31, 0x14, 0x13, 0xca, 0x1c, 0xf9, 0xab, 0x43, 0xd5, 0xd3, 0x85, 0x04, 0x89, + 0x31, 0x17, 0x28, 0x4e, 0x72, 0xce, 0xd3, 0x09, 0x41, 0x2b, 0x45, 0x82, 0x30, 0xcd, 0x59, 0xfb, + 0x38, 0x00, 0x47, 0x5c, 0xc4, 0x89, 0xbf, 0x14, 0x45, 0xec, 0x05, 0xa2, 0x3e, 0x36, 0x5e, 0x01, + 0x58, 0xe6, 0x09, 0xa6, 0x81, 0x17, 0x91, 0x98, 0x08, 0x13, 0x4c, 0x15, 0xeb, 0xe5, 0xf9, 0x8a, + 0xad, 0xb5, 0x66, 0xea, 0x72, 0xfb, 0xf6, 0x32, 0x23, 0xd4, 0x5d, 0xdb, 0xff, 0x51, 0x2d, 0x7c, + 0x3e, 0xac, 0xd6, 0x43, 0x22, 0x9e, 0xb5, 0x9a, 0xb6, 0xcf, 0x62, 0x6d, 0x4c, 0xff, 0xcd, 0xf2, + 0x60, 0xcb, 0x11, 0xed, 0x04, 0x73, 0x09, 0xe0, 0xef, 0x3b, 0xbb, 0x33, 0xe3, 0xb4, 0x15, 0x45, + 0x1e, 0x8f, 0x88, 0x8f, 0x3d, 0xc4, 0x3d, 0x1c, 0x27, 0xa2, 0xfd, 0xa9, 0xb3, 0x3b, 0x03, 0x1a, + 0x50, 0x16, 0x5f, 0xcd, 0x6a, 0x1b, 0x8b, 0x10, 0xe2, 0xed, 0x84, 0x28, 0xc9, 0xe6, 0xc0, 0x14, + 0xa8, 0x97, 0xe7, 0x27, 0x6d, 0xe5, 0xc9, 0xce, 0x3d, 0xd9, 0x8f, 0x73, 0xd3, 0xee, 0xe0, 0xce, + 0x61, 0x15, 0x34, 0xfa, 0x30, 0x0b, 0x2b, 0x5f, 0xf6, 0x66, 0x6f, 0x9d, 0x33, 0x3d, 0xfb, 0x3e, + 0xc6, 0x5d, 0xdf, 0x0f, 0x5f, 0x77, 0x76, 0x67, 0x2a, 0x7d, 0x82, 0x4f, 0xb6, 0xa5, 0xd6, 0x19, + 0x84, 0x63, 0xeb, 0x38, 0x25, 0x2c, 0xe8, 0x6f, 0xd6, 0x03, 0x38, 0xd4, 0xcc, 0xf2, 0x4c, 0x20, + 0xb5, 0xdd, 0xb1, 0xcf, 0x2b, 0x75, 0x92, 0xcd, 0x2d, 0x65, 0x3d, 0x53, 0x7e, 0x15, 0x81, 0xb1, + 0x08, 0x87, 0x13, 0x49, 0xaf, 0x6d, 0x56, 0xce, 0xd8, 0xbc, 0xa7, 0x47, 0xe7, 0x5e, 0xcb, 0xc0, + 0xef, 0x0e, 0xab, 0x40, 0x11, 0x68, 0x9c, 0xf1, 0x16, 0x40, 0x43, 0x3d, 0x7a, 0xfd, 0xf3, 0x2b, + 0x5e, 0xf1, 0xfc, 0x46, 0x95, 0x86, 0x8d, 0xde, 0x14, 0xdf, 0x00, 0xa8, 0x83, 0x9e, 0x8f, 0xa8, + 0x12, 0x67, 0x0e, 0x5e, 0xb1, 0xac, 0x11, 0xa5, 0x60, 0x19, 0x51, 0xa9, 0xcc, 0x58, 0x85, 0xff, + 0x6b, 0x4d, 0x29, 0xe6, 0x58, 0x98, 0x43, 0x7f, 0x5d, 0x2e, 0xd9, 0xf6, 0x9d, 0x6e, 0xdb, 0xcb, + 0x0a, 0xde, 0xc8, 0xd0, 0x0b, 0x8f, 0x2e, 0xb5, 0x66, 0x37, 0xfb, 0x0c, 0x9c, 0xd9, 0xa9, 0xda, + 0x2f, 0x00, 0xc7, 0xe5, 0x09, 0x07, 0x6b, 0x3c, 0xec, 0xed, 0xda, 0x53, 0x58, 0x42, 0xf9, 0x41, + 0xef, 0xdb, 0xc4, 0x19, 0xb9, 0x4b, 0xb4, 0xed, 0x4e, 0x5f, 0x58, 0x4c, 0xa3, 0xc7, 0x68, 0x4c, + 0xc3, 0x51, 0xa4, 0xaa, 0x7a, 0x31, 0xe6, 0x1c, 0x85, 0x98, 0x9b, 0x03, 0x53, 0xc5, 0x7a, 0xa9, + 0x71, 0x5d, 0xc7, 0xd7, 0x74, 0x78, 0x61, 0xfd, 0xe5, 0x87, 0x6a, 0xe1, 0x52, 0x8e, 0xad, 0x3e, + 0xc7, 0x7f, 0xf0, 0x56, 0xfb, 0x0a, 0xe0, 0xd0, 0x4a, 0x46, 0x61, 0xcc, 0xc3, 0xff, 0x24, 0x17, + 0x4e, 0xa5, 0xc7, 0x92, 0x6b, 0x7e, 0xdb, 0x9b, 0x9d, 0xd0, 0x85, 0x96, 0x82, 0x20, 0xc5, 0x9c, + 0x6f, 0x88, 0x94, 0xd0, 0xb0, 0x91, 0x27, 0xf6, 0x30, 0x58, 0xbe, 0x3c, 0x17, 0xc0, 0x9c, 0xea, + 0x66, 0xf1, 0x5f, 0x77, 0xd3, 0x9d, 0xdb, 0x3f, 0xb2, 0xc0, 0xc1, 0x91, 0x05, 0x7e, 0x1e, 0x59, + 0x60, 0xe7, 0xd8, 0x2a, 0x1c, 0x1c, 0x5b, 0x85, 0xef, 0xc7, 0x56, 0xe1, 0x89, 0xfe, 0x96, 0xf0, + 0x60, 0xcb, 0x26, 0xcc, 0xd9, 0xee, 0x7e, 0x6a, 0x9a, 0xc3, 0xb2, 0xec, 0xdd, 0xdf, 0x01, 0x00, + 0x00, 0xff, 0xff, 0x39, 0x59, 0xf5, 0xd3, 0x95, 0x06, 0x00, 0x00, } func (m *BasicAllowance) Marshal() (dAtA []byte, err error) { diff --git a/x/gov/types/v1beta1/tx.pb.go b/x/gov/types/v1beta1/tx.pb.go index bd435422e49d..301d5273d2a9 100644 --- a/x/gov/types/v1beta1/tx.pb.go +++ b/x/gov/types/v1beta1/tx.pb.go @@ -382,53 +382,55 @@ func init() { func init() { proto.RegisterFile("cosmos/gov/v1beta1/tx.proto", fileDescriptor_3c053992595e3dce) } var fileDescriptor_3c053992595e3dce = []byte{ - // 734 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0x4d, 0x4c, 0x13, 0x41, - 0x14, 0xc7, 0xbb, 0x2d, 0x50, 0x19, 0x0c, 0x84, 0x4d, 0x0d, 0xed, 0x42, 0xb6, 0xcd, 0x1a, 0x49, - 0xc5, 0x74, 0xd7, 0x56, 0xe0, 0xd0, 0x1b, 0xd5, 0x83, 0x1f, 0xa9, 0x1f, 0x25, 0xd1, 0xc4, 0x0b, - 0x6e, 0xbb, 0xc3, 0xb0, 0x91, 0xee, 0x6c, 0x3a, 0xd3, 0x86, 0xde, 0x88, 0x27, 0xe3, 0xc9, 0xbb, - 0x17, 0x8e, 0xc6, 0x13, 0x07, 0xae, 0xde, 0x89, 0xf1, 0x40, 0x3c, 0x79, 0x30, 0x68, 0xe0, 0x80, - 0xf1, 0xea, 0xc5, 0xa3, 0xd9, 0xf9, 0xd8, 0x16, 0x5a, 0x0a, 0x12, 0x2f, 0xdd, 0x9d, 0xf7, 0xde, - 0xff, 0xbd, 0x7d, 0xbf, 0x79, 0xd3, 0x01, 0xd3, 0x35, 0x4c, 0xea, 0x98, 0x58, 0x08, 0xb7, 0xac, - 0x56, 0xbe, 0x0a, 0xa9, 0x9d, 0xb7, 0xe8, 0x86, 0xe9, 0x37, 0x30, 0xc5, 0xaa, 0xca, 0x9d, 0x26, - 0xc2, 0x2d, 0x53, 0x38, 0x35, 0x5d, 0x08, 0xaa, 0x36, 0x81, 0xa1, 0xa2, 0x86, 0x5d, 0x8f, 0x6b, - 0xb4, 0x99, 0x3e, 0x09, 0x03, 0x3d, 0xf7, 0xa6, 0xb8, 0x77, 0x85, 0xad, 0x2c, 0x91, 0x9e, 0xbb, - 0x12, 0x08, 0x23, 0xcc, 0xed, 0xc1, 0x9b, 0x14, 0x20, 0x8c, 0xd1, 0x3a, 0xb4, 0xd8, 0xaa, 0xda, - 0x5c, 0xb5, 0x6c, 0xaf, 0x2d, 0x5c, 0x53, 0xa2, 0x52, 0x9d, 0x20, 0xab, 0x95, 0x0f, 0x1e, 0xc2, - 0x31, 0x69, 0xd7, 0x5d, 0x0f, 0x5b, 0xec, 0x97, 0x9b, 0x8c, 0xcf, 0x51, 0x30, 0x59, 0x26, 0x68, - 0xb9, 0x59, 0xad, 0xbb, 0xf4, 0x71, 0x03, 0xfb, 0x98, 0xd8, 0xeb, 0xea, 0x43, 0x10, 0xaf, 0x61, - 0x8f, 0x42, 0x8f, 0x26, 0x95, 0x8c, 0x92, 0x1d, 0x2b, 0x24, 0x4c, 0x5e, 0xce, 0x94, 0xe5, 0xcc, - 0x25, 0xaf, 0x5d, 0xd2, 0x3f, 0xed, 0xe4, 0xb4, 0x5e, 0x14, 0xe6, 0x6d, 0xae, 0xad, 0xc8, 0x24, - 0x6a, 0x1b, 0x4c, 0xb8, 0x9e, 0x4b, 0x5d, 0x7b, 0x7d, 0xc5, 0x81, 0x3e, 0x26, 0x2e, 0x4d, 0x46, - 0x33, 0xb1, 0xec, 0x58, 0x21, 0x65, 0x0a, 0x79, 0x40, 0xad, 0x4b, 0xef, 0x7a, 0xa5, 0x85, 0xdd, - 0xfd, 0x74, 0xe4, 0xc3, 0xf7, 0x74, 0x16, 0xb9, 0x74, 0xad, 0x59, 0x35, 0x6b, 0xb8, 0x2e, 0xb8, - 0x88, 0x47, 0x8e, 0x38, 0x2f, 0x2d, 0xda, 0xf6, 0x21, 0x61, 0x02, 0xf2, 0xfe, 0x68, 0x7b, 0x4e, - 0xa9, 0x8c, 0x8b, 0x42, 0x77, 0x78, 0x1d, 0x75, 0x1e, 0x5c, 0xf2, 0x59, 0x5b, 0xb0, 0x91, 0x8c, - 0x65, 0x94, 0xec, 0x68, 0x29, 0xf9, 0x65, 0x27, 0x97, 0x10, 0x65, 0x97, 0x1c, 0xa7, 0x01, 0x09, - 0x59, 0xa6, 0x0d, 0xd7, 0x43, 0x95, 0x30, 0xb2, 0xb8, 0xf8, 0x7a, 0x2b, 0x1d, 0xf9, 0xb9, 0x95, - 0x8e, 0xbc, 0x3a, 0xda, 0x9e, 0x0b, 0xcd, 0x6f, 0x8e, 0xb6, 0xe7, 0x66, 0xba, 0x8a, 0xf7, 0x80, - 0x33, 0x2a, 0x20, 0xd5, 0x63, 0xac, 0x40, 0xe2, 0x63, 0x8f, 0x40, 0x75, 0x01, 0x8c, 0xf9, 0xc2, - 0xb6, 0xe2, 0x3a, 0x8c, 0xec, 0x50, 0x29, 0xf1, 0x6b, 0x3f, 0xdd, 0x6d, 0xe6, 0x5d, 0x00, 0x69, - 0xb9, 0xe7, 0x18, 0x1f, 0x15, 0x10, 0x2f, 0x13, 0xf4, 0x14, 0x53, 0xa8, 0xa6, 0xfb, 0xa4, 0xe8, - 0x0e, 0x56, 0x4d, 0x30, 0xdc, 0xc2, 0x14, 0x36, 0x92, 0xd1, 0x33, 0x7a, 0xe5, 0x61, 0xea, 0x22, - 0x18, 0xc1, 0x3e, 0x75, 0xb1, 0xc7, 0xe0, 0x8c, 0x17, 0x74, 0xb3, 0xcf, 0x7e, 0x06, 0xa5, 0x1f, - 0xb1, 0xa8, 0x8a, 0x88, 0x2e, 0x5e, 0xef, 0x06, 0xc4, 0x73, 0x05, 0x74, 0xd4, 0xe3, 0x74, 0x02, - 0xa1, 0x31, 0x09, 0x26, 0xc4, 0xab, 0x24, 0x61, 0xfc, 0x51, 0x42, 0xdb, 0x33, 0xe8, 0xa2, 0x35, - 0x0a, 0x9d, 0x0b, 0xd2, 0xf9, 0xe7, 0x86, 0x1f, 0x80, 0x38, 0x6f, 0x81, 0x24, 0x63, 0x6c, 0x04, - 0x67, 0xfb, 0x75, 0x2c, 0xbf, 0xaa, 0xd3, 0x79, 0x69, 0x34, 0x98, 0x47, 0x5e, 0x5f, 0x66, 0x28, - 0xe6, 0xfb, 0x53, 0xd0, 0x7a, 0x29, 0xc8, 0x84, 0x46, 0x0a, 0x4c, 0x9d, 0x30, 0x85, 0x54, 0xde, - 0x45, 0x01, 0x28, 0x13, 0x24, 0x27, 0xf7, 0x82, 0x40, 0x16, 0xc1, 0xa8, 0x38, 0x63, 0xf8, 0x6c, - 0x28, 0x9d, 0x50, 0x75, 0x0d, 0x8c, 0xd8, 0x75, 0xdc, 0xf4, 0xa8, 0xe0, 0xf2, 0xff, 0x8f, 0xa6, - 0xc8, 0x5f, 0x9c, 0x97, 0xd4, 0x36, 0xbf, 0x65, 0x18, 0xb9, 0xce, 0x57, 0x04, 0xf4, 0xae, 0x1c, - 0xa7, 0x27, 0x70, 0x18, 0x09, 0xa0, 0x76, 0x56, 0x92, 0x59, 0xe1, 0x77, 0x14, 0xc4, 0xca, 0x04, - 0xa9, 0xab, 0x60, 0xfc, 0xc4, 0x7f, 0xd8, 0xb5, 0x7e, 0xfb, 0xda, 0x73, 0x38, 0xb5, 0xdc, 0xb9, - 0xc2, 0xc2, 0x33, 0x7c, 0x17, 0x0c, 0xb1, 0x83, 0x38, 0x7d, 0x8a, 0x2c, 0x70, 0x6a, 0x57, 0x07, - 0x38, 0xc3, 0x4c, 0x2f, 0xc0, 0xe5, 0x63, 0xf3, 0x3f, 0x48, 0x24, 0x83, 0xb4, 0x1b, 0xe7, 0x08, - 0x0a, 0x2b, 0x3c, 0x01, 0x71, 0x39, 0x4b, 0xfa, 0x29, 0x3a, 0xe1, 0xd7, 0x66, 0x07, 0xfb, 0x65, - 0x4a, 0x6d, 0x78, 0x33, 0xd8, 0xc9, 0xd2, 0xfd, 0xdd, 0x03, 0x5d, 0xd9, 0x3b, 0xd0, 0x95, 0x1f, - 0x07, 0xba, 0xf2, 0xf6, 0x50, 0x8f, 0xec, 0x1d, 0xea, 0x91, 0xaf, 0x87, 0x7a, 0xe4, 0xf9, 0xcd, - 0x81, 0x23, 0xb1, 0xc1, 0x6e, 0x3f, 0x36, 0x18, 0xf2, 0x0e, 0xac, 0x8e, 0xb0, 0x2b, 0xe5, 0xd6, - 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x85, 0xed, 0xa7, 0x93, 0x71, 0x07, 0x00, 0x00, + // 760 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x95, 0x3d, 0x6c, 0xda, 0x5a, + 0x14, 0xc7, 0x31, 0x24, 0xe1, 0xe5, 0xe6, 0x29, 0x51, 0xfc, 0x78, 0x0a, 0x38, 0x91, 0x41, 0x3c, + 0xbd, 0x88, 0x52, 0x61, 0x17, 0x9a, 0x66, 0x60, 0x0b, 0xed, 0xd0, 0x0f, 0xd1, 0x0f, 0x22, 0xb5, + 0x52, 0x17, 0x6a, 0xe0, 0xc6, 0xb9, 0x2a, 0xf8, 0x5a, 0xdc, 0x0b, 0x0a, 0x5b, 0xd4, 0xa9, 0xea, + 0xd4, 0xae, 0x9d, 0x32, 0x56, 0x9d, 0x18, 0xb2, 0x76, 0x8f, 0x3a, 0x45, 0x9d, 0x3a, 0x54, 0x69, + 0x95, 0xa8, 0xa2, 0xea, 0xda, 0xa5, 0x63, 0xe5, 0xfb, 0x61, 0x48, 0x20, 0x24, 0xcd, 0xd0, 0x05, + 0xdb, 0xe7, 0x9c, 0xff, 0x39, 0xf7, 0xfc, 0x7c, 0x0e, 0x06, 0x8b, 0x55, 0x4c, 0x1a, 0x98, 0x98, + 0x36, 0x6e, 0x9b, 0xed, 0x6c, 0x05, 0x52, 0x2b, 0x6b, 0xd2, 0x2d, 0xc3, 0x6d, 0x62, 0x8a, 0x55, + 0x95, 0x3b, 0x0d, 0x1b, 0xb7, 0x0d, 0xe1, 0xd4, 0x74, 0x21, 0xa8, 0x58, 0x04, 0xfa, 0x8a, 0x2a, + 0x46, 0x0e, 0xd7, 0x68, 0x4b, 0x23, 0x12, 0x7a, 0x7a, 0xee, 0x8d, 0x71, 0x6f, 0x99, 0x3d, 0x99, + 0x22, 0x3d, 0x77, 0x45, 0x6c, 0x6c, 0x63, 0x6e, 0xf7, 0xee, 0xa4, 0xc0, 0xc6, 0xd8, 0xae, 0x43, + 0x93, 0x3d, 0x55, 0x5a, 0x1b, 0xa6, 0xe5, 0x74, 0x84, 0x6b, 0x41, 0x54, 0x6a, 0x10, 0xdb, 0x6c, + 0x67, 0xbd, 0x8b, 0x70, 0xcc, 0x5b, 0x0d, 0xe4, 0x60, 0x93, 0xfd, 0x72, 0x53, 0xf2, 0x6b, 0x10, + 0xcc, 0x17, 0x89, 0xbd, 0xde, 0xaa, 0x34, 0x10, 0xbd, 0xdf, 0xc4, 0x2e, 0x26, 0x56, 0x5d, 0xbd, + 0x0b, 0xc2, 0x55, 0xec, 0x50, 0xe8, 0xd0, 0xa8, 0x92, 0x50, 0x52, 0x33, 0xb9, 0x88, 0xc1, 0xcb, + 0x19, 0xb2, 0x9c, 0xb1, 0xe6, 0x74, 0x0a, 0xfa, 0xfb, 0xdd, 0x8c, 0x36, 0x8c, 0xc2, 0xb8, 0xce, + 0xb5, 0x25, 0x99, 0x44, 0x7d, 0xa5, 0x80, 0x39, 0xe4, 0x20, 0x8a, 0xac, 0x7a, 0xb9, 0x06, 0x5d, + 0x4c, 0x10, 0x8d, 0x06, 0x13, 0xa1, 0xd4, 0x4c, 0x2e, 0x66, 0x08, 0xbd, 0x87, 0x6d, 0x20, 0x01, + 0x72, 0x0a, 0xc5, 0xbd, 0x83, 0x78, 0xe0, 0xed, 0xe7, 0x78, 0xca, 0x46, 0x74, 0xb3, 0x55, 0x31, + 0xaa, 0xb8, 0x21, 0xc0, 0x88, 0x4b, 0x86, 0xd4, 0x9e, 0x9a, 0xb4, 0xe3, 0x42, 0xc2, 0x04, 0xe4, + 0x75, 0xaf, 0x9b, 0xfe, 0xc7, 0x69, 0xd5, 0xeb, 0x65, 0x52, 0x47, 0x55, 0x58, 0xb6, 0x48, 0x19, + 0x36, 0x5c, 0xda, 0x79, 0xd3, 0xeb, 0xa6, 0x95, 0xd2, 0xac, 0x38, 0xc0, 0x0d, 0x5e, 0x5f, 0x5d, + 0x01, 0x7f, 0xb9, 0xac, 0x5f, 0xd8, 0x8c, 0x86, 0x12, 0x4a, 0x6a, 0xba, 0x10, 0xfd, 0xb0, 0x9b, + 0x89, 0x88, 0xe3, 0xac, 0xd5, 0x6a, 0x4d, 0x48, 0xc8, 0x3a, 0x6d, 0x22, 0xc7, 0x2e, 0xf9, 0x91, + 0xf9, 0xd5, 0xe7, 0x3b, 0xf1, 0xc0, 0xb7, 0x9d, 0x78, 0xe0, 0x59, 0xaf, 0x9b, 0xf6, 0xcd, 0x2f, + 0x7a, 0xdd, 0xf4, 0xd2, 0xc0, 0xa1, 0x86, 0x88, 0x26, 0x4b, 0x20, 0x36, 0x64, 0x2c, 0x41, 0xe2, + 0x62, 0x87, 0x40, 0xf5, 0x1a, 0x98, 0x71, 0x85, 0xad, 0x8c, 0x6a, 0x0c, 0xf9, 0x44, 0x21, 0xf2, + 0xfd, 0x20, 0x3e, 0x68, 0xe6, 0x5d, 0x00, 0x69, 0xb9, 0x55, 0x4b, 0xbe, 0x53, 0x40, 0xb8, 0x48, + 0xec, 0x87, 0x98, 0x42, 0x35, 0x3e, 0x22, 0xc5, 0x60, 0xb0, 0x6a, 0x80, 0xc9, 0x36, 0xa6, 0xb0, + 0x19, 0x0d, 0x9e, 0xd1, 0x2b, 0x0f, 0x53, 0x57, 0xc1, 0x14, 0x76, 0x29, 0xc2, 0x0e, 0x83, 0x33, + 0x9b, 0xd3, 0x8d, 0x11, 0x2f, 0xda, 0x2b, 0x7d, 0x8f, 0x45, 0x95, 0x44, 0x74, 0xfe, 0xd2, 0x20, + 0x20, 0x9e, 0xcb, 0xa3, 0xa3, 0x1e, 0xa7, 0xe3, 0x09, 0x93, 0xf3, 0x60, 0x4e, 0xdc, 0x4a, 0x12, + 0xc9, 0x9f, 0x8a, 0x6f, 0x7b, 0x04, 0x91, 0xbd, 0x49, 0x61, 0xed, 0x82, 0x74, 0x7e, 0xbb, 0xe1, + 0x3b, 0x20, 0xcc, 0x5b, 0x20, 0xd1, 0x10, 0x1b, 0xcd, 0xe5, 0x51, 0x1d, 0xcb, 0x53, 0xf5, 0x3b, + 0x2f, 0x4c, 0x7b, 0x73, 0xca, 0xeb, 0xcb, 0x0c, 0xf9, 0xec, 0x68, 0x0a, 0xda, 0x30, 0x05, 0x99, + 0x30, 0x19, 0x03, 0x0b, 0x27, 0x4c, 0x3e, 0x95, 0xdd, 0x20, 0x00, 0x45, 0x62, 0xcb, 0xc9, 0xbd, + 0x20, 0x90, 0x55, 0x30, 0x2d, 0x76, 0x0f, 0x9f, 0x0d, 0xa5, 0x1f, 0xaa, 0x6e, 0x2b, 0x60, 0xca, + 0x6a, 0xe0, 0x96, 0x43, 0x05, 0x98, 0x3f, 0xb7, 0xb3, 0xa2, 0x6e, 0x7e, 0x45, 0xe2, 0xdc, 0xfe, + 0x94, 0x60, 0x48, 0xfb, 0xc7, 0xf3, 0xb0, 0xfe, 0x7b, 0x1c, 0xab, 0xe0, 0x94, 0x8c, 0x00, 0xb5, + 0xff, 0x24, 0x61, 0xe6, 0x7e, 0x04, 0x41, 0xa8, 0x48, 0x6c, 0x75, 0x03, 0xcc, 0x9e, 0xf8, 0xd7, + 0xfb, 0x7f, 0xd4, 0x0b, 0x1f, 0xda, 0x5a, 0x2d, 0x73, 0xae, 0x30, 0x7f, 0xb9, 0x6f, 0x82, 0x09, + 0xb6, 0xa1, 0x8b, 0xa7, 0xc8, 0x3c, 0xa7, 0xf6, 0xdf, 0x18, 0xa7, 0x9f, 0xe9, 0x09, 0xf8, 0xfb, + 0xd8, 0x62, 0x8c, 0x13, 0xc9, 0x20, 0xed, 0xf2, 0x39, 0x82, 0xfc, 0x0a, 0x0f, 0x40, 0x58, 0x0e, + 0x99, 0x7e, 0x8a, 0x4e, 0xf8, 0xb5, 0xe5, 0xf1, 0x7e, 0x99, 0x52, 0x9b, 0xdc, 0xf6, 0xde, 0x64, + 0xe1, 0xf6, 0xde, 0xa1, 0xae, 0xec, 0x1f, 0xea, 0xca, 0x97, 0x43, 0x5d, 0x79, 0x79, 0xa4, 0x07, + 0xf6, 0x8f, 0xf4, 0xc0, 0xc7, 0x23, 0x3d, 0xf0, 0xf8, 0xca, 0xd8, 0x51, 0xd9, 0x62, 0xdf, 0x4b, + 0x36, 0x30, 0xf2, 0xab, 0x59, 0x99, 0x62, 0x1f, 0xa1, 0xab, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, + 0x4a, 0xca, 0x38, 0x04, 0xa3, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index f19534c8b2ab..7d6e98a89cc6 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -358,12 +358,6 @@ func (aj AminoJSON) getMessageEncoder(message protoreflect.Message) MessageEncod } func (aj AminoJSON) getFieldEncoding(field protoreflect.FieldDescriptor) FieldEncoder { - // hardcoded special case for Coins, see https://github.com/cosmos/cosmos-sdk/pull/15019#discussion_r1106112024 - msg := field.Message() - if field.IsList() && msg != nil && msg.FullName() == coinFullName { - return nullSliceAsEmptyEncoder - } - opts := field.Options() if proto.HasExtension(opts, amino.E_Encoding) { enc := proto.GetExtension(opts, amino.E_Encoding).(string) @@ -384,5 +378,4 @@ const ( timestampFullName protoreflect.FullName = "google.protobuf.Timestamp" durationFullName protoreflect.FullName = "google.protobuf.Duration" anyFullName protoreflect.FullName = "google.protobuf.Any" - coinFullName protoreflect.FullName = "cosmos.base.v1beta1.Coin" ) From b33fa5926717fa711dfa9412d9eabb8b73618324 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 15 Feb 2023 09:36:46 -0700 Subject: [PATCH 089/122] change field encoder name --- api/amino/amino.pulsar.go | 7 + api/cosmos/bank/v1beta1/authz.pulsar.go | 54 +- api/cosmos/bank/v1beta1/bank.pulsar.go | 130 +++-- api/cosmos/bank/v1beta1/genesis.pulsar.go | 91 ++-- api/cosmos/bank/v1beta1/query.pulsar.go | 504 +++++++++--------- api/cosmos/bank/v1beta1/tx.pulsar.go | 183 ++++--- .../v1beta1/distribution.pulsar.go | 141 +++-- api/cosmos/distribution/v1beta1/tx.pulsar.go | 341 ++++++------ .../feegrant/v1beta1/feegrant.pulsar.go | 187 ++++--- api/cosmos/gov/v1beta1/tx.pulsar.go | 209 ++++---- api/cosmos/vesting/v1beta1/tx.pulsar.go | 65 ++- api/cosmos/vesting/v1beta1/vesting.pulsar.go | 194 ++++--- proto/cosmos/bank/v1beta1/authz.proto | 2 +- proto/cosmos/bank/v1beta1/bank.proto | 6 +- proto/cosmos/bank/v1beta1/genesis.proto | 4 +- proto/cosmos/bank/v1beta1/query.proto | 6 +- proto/cosmos/bank/v1beta1/tx.proto | 2 +- .../distribution/v1beta1/distribution.proto | 2 +- proto/cosmos/distribution/v1beta1/tx.proto | 10 +- proto/cosmos/feegrant/v1beta1/feegrant.proto | 6 +- proto/cosmos/gov/v1beta1/tx.proto | 4 +- proto/cosmos/vesting/v1beta1/tx.proto | 4 +- proto/cosmos/vesting/v1beta1/vesting.proto | 8 +- x/auth/vesting/types/tx.pb.go | 87 ++- x/auth/vesting/types/vesting.pb.go | 79 ++- x/bank/types/authz.pb.go | 30 +- x/bank/types/bank.pb.go | 88 +-- x/bank/types/genesis.pb.go | 61 ++- x/bank/types/query.pb.go | 155 +++--- x/bank/types/tx.pb.go | 91 ++-- x/distribution/types/distribution.pb.go | 127 +++-- x/distribution/types/tx.pb.go | 117 ++-- x/feegrant/feegrant.pb.go | 86 +-- x/gov/types/v1beta1/tx.pb.go | 97 ++-- x/tx/aminojson/json_marshal.go | 8 +- 35 files changed, 1585 insertions(+), 1601 deletions(-) diff --git a/api/amino/amino.pulsar.go b/api/amino/amino.pulsar.go index 74e13c0f9f2a..a136c7a4a5dc 100644 --- a/api/amino/amino.pulsar.go +++ b/api/amino/amino.pulsar.go @@ -157,12 +157,19 @@ var ( // // optional bool dont_omitempty = 11110005; E_DontOmitempty = &file_amino_amino_proto_extTypes[4] + // oneof_type_name sets the type name for the given field oneof field. This is used + // by the Amino JSON encoder to encode the type of the oneof field, and must be the same string as + // The RegisterConcrete() method usage used to register the concrete type. + // // optional string oneof_type_name = 11110006; E_OneofTypeName = &file_amino_amino_proto_extTypes[5] ) // Extension fields to descriptorpb.OneofOptions. var ( + // oneof_field_name sets the field name for the given oneof field. This is used by the Amino JSON + // encoder to set the field name encapsulating the oneof field. + // // optional string oneof_field_name = 11110007; E_OneofFieldName = &file_amino_amino_proto_extTypes[6] ) diff --git a/api/cosmos/bank/v1beta1/authz.pulsar.go b/api/cosmos/bank/v1beta1/authz.pulsar.go index 259ca548043f..272b0d04d24f 100644 --- a/api/cosmos/bank/v1beta1/authz.pulsar.go +++ b/api/cosmos/bank/v1beta1/authz.pulsar.go @@ -710,38 +710,38 @@ var file_cosmos_bank_v1beta1_authz_proto_rawDesc = []byte{ 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, - 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa1, 0x02, 0x0a, 0x11, 0x53, + 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9a, 0x02, 0x0a, 0x11, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, + 0x12, 0x82, 0x01, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, - 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x37, 0x0a, 0x0a, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, - 0x77, 0x4c, 0x69, 0x73, 0x74, 0x3a, 0x47, 0xca, 0xb4, 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x8a, 0xe7, 0xb0, - 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x65, 0x6e, - 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xc5, - 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x41, 0x75, 0x74, 0x68, - 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, - 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, - 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, - 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, + 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x4c, 0x69, 0x73, 0x74, 0x3a, 0x47, + 0xca, 0xb4, 0x2d, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x7a, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x65, 0x6e, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0xc5, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x42, 0x0a, 0x41, 0x75, 0x74, 0x68, 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, + 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, + 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, + 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/bank.pulsar.go b/api/cosmos/bank/v1beta1/bank.pulsar.go index 72005c128190..8e3a54902656 100644 --- a/api/cosmos/bank/v1beta1/bank.pulsar.go +++ b/api/cosmos/bank/v1beta1/bank.pulsar.go @@ -4620,80 +4620,78 @@ var file_cosmos_bank_v1beta1_bank_proto_rawDesc = []byte{ 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xd1, 0x01, 0x0a, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x3a, 0x04, 0xe8, 0xa0, 0x1f, 0x01, 0x22, 0xca, 0x01, 0x0a, 0x05, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x7e, 0x0a, 0x05, 0x63, 0x6f, + 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x77, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, + 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, - 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, 0x14, 0x88, 0xa0, 0x1f, 0x00, - 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x22, 0xc6, 0x01, 0x0a, 0x06, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, - 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x7e, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, - 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, - 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, - 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xb3, 0x01, 0x0a, 0x06, 0x53, 0x75, - 0x70, 0x70, 0x6c, 0x79, 0x12, 0x7e, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, - 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, - 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, - 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x3a, 0x29, 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x01, - 0xca, 0xb4, 0x2d, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x22, - 0x57, 0x0a, 0x09, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x07, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x65, 0x73, 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x5f, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, + 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, + 0x69, 0x6e, 0x73, 0x3a, 0x14, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, + 0x2a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xbf, 0x01, 0x0a, 0x06, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x77, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, + 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, + 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, + 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xac, 0x01, 0x0a, 0x06, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x77, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, + 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x3a, + 0x29, 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x01, 0xca, 0xb4, 0x2d, 0x1b, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x0a, 0x64, 0x65, - 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, - 0x6d, 0x62, 0x6f, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, - 0x6f, 0x6c, 0x12, 0x19, 0x0a, 0x03, 0x75, 0x72, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xe2, 0xde, 0x1f, 0x03, 0x55, 0x52, 0x49, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x26, 0x0a, - 0x08, 0x75, 0x72, 0x69, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x0b, 0xe2, 0xde, 0x1f, 0x07, 0x55, 0x52, 0x49, 0x48, 0x61, 0x73, 0x68, 0x52, 0x07, 0x75, 0x72, - 0x69, 0x48, 0x61, 0x73, 0x68, 0x42, 0xc4, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x42, 0x09, 0x42, 0x61, 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, - 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, - 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x31, 0x2e, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x49, 0x22, 0x57, 0x0a, 0x09, 0x44, 0x65, + 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, + 0x08, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x08, 0x65, 0x78, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6c, 0x69, + 0x61, 0x73, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x61, 0x6c, 0x69, 0x61, + 0x73, 0x65, 0x73, 0x22, 0x8a, 0x02, 0x0a, 0x08, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x75, 0x6e, 0x69, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, + 0x6e, 0x6f, 0x6d, 0x55, 0x6e, 0x69, 0x74, 0x52, 0x0a, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x55, 0x6e, + 0x69, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x62, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x62, 0x61, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x79, 0x6d, 0x62, 0x6f, 0x6c, 0x12, 0x19, 0x0a, + 0x03, 0x75, 0x72, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xe2, 0xde, 0x1f, 0x03, + 0x55, 0x52, 0x49, 0x52, 0x03, 0x75, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x08, 0x75, 0x72, 0x69, 0x5f, + 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0b, 0xe2, 0xde, 0x1f, 0x07, + 0x55, 0x52, 0x49, 0x48, 0x61, 0x73, 0x68, 0x52, 0x07, 0x75, 0x72, 0x69, 0x48, 0x61, 0x73, 0x68, + 0x42, 0xc4, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x09, 0x42, 0x61, + 0x6e, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, + 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, + 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, + 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/genesis.pulsar.go b/api/cosmos/bank/v1beta1/genesis.pulsar.go index 18f33e074611..e94e739e3005 100644 --- a/api/cosmos/bank/v1beta1/genesis.pulsar.go +++ b/api/cosmos/bank/v1beta1/genesis.pulsar.go @@ -1711,7 +1711,7 @@ var file_cosmos_bank_v1beta1_genesis_proto_rawDesc = []byte{ 0x74, 0x61, 0x31, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, - 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb7, 0x03, 0x0a, + 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaf, 0x03, 0x0a, 0x0c, 0x47, 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, @@ -1721,51 +1721,50 @@ var file_cosmos_bank_v1beta1_genesis_proto_rawDesc = []byte{ 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, - 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, - 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, - 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x4f, 0x0a, 0x0e, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, - 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4e, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, - 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xc7, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x7e, 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, - 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, - 0x42, 0xc7, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x47, 0x65, - 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, - 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, - 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x65, 0x73, 0x12, 0x79, 0x0a, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, + 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, + 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x4f, 0x0a, + 0x0e, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x0d, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x4e, + 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xc0, + 0x01, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, + 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x77, + 0x0a, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, + 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, + 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x05, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, + 0x00, 0x42, 0xc7, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x47, + 0x65, 0x6e, 0x65, 0x73, 0x69, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, + 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, + 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, + 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/query.pulsar.go b/api/cosmos/bank/v1beta1/query.pulsar.go index 1290aaa3a747..354cbdfb1283 100644 --- a/api/cosmos/bank/v1beta1/query.pulsar.go +++ b/api/cosmos/bank/v1beta1/query.pulsar.go @@ -12338,41 +12338,40 @@ var file_cosmos_bank_v1beta1_query_proto_rawDesc = []byte{ 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, - 0x22, 0xea, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, - 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, - 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, - 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa5, 0x01, - 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, - 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xf0, 0x01, 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, + 0x22, 0xe2, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x7d, 0x0a, + 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, + 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, + 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, + 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa5, 0x01, 0x0a, 0x1d, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x08, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xe8, 0x01, + 0x0a, 0x1e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, + 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x7d, 0x0a, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, + 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, + 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, @@ -12398,237 +12397,236 @@ var file_cosmos_bank_v1beta1_query_proto_rawDesc = []byte{ 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xe6, 0x01, + 0x69, 0x6f, 0x6e, 0x3a, 0x08, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x22, 0xde, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, - 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x73, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, + 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x06, 0x73, 0x75, + 0x70, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, + 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, + 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x55, 0x0a, 0x15, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x13, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, + 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x22, 0x64, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xae, 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, 0x12, 0x47, + 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x62, 0x0a, 0x1a, 0x51, 0x75, + 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x77, + 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, + 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x80, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6e, 0x6f, + 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x61, + 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x47, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2c, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, - 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, - 0x65, 0x6e, 0x6f, 0x6d, 0x22, 0x55, 0x0a, 0x15, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, - 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x55, 0x0a, 0x13, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x64, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xae, - 0x01, 0x0a, 0x1b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, - 0x0a, 0x09, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x09, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x31, 0x0a, 0x19, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, - 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x65, 0x6e, - 0x6f, 0x6d, 0x22, 0x62, 0x0a, 0x1a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x44, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x08, 0x6d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0x77, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, + 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x0b, + 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x17, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, + 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x80, 0x01, 0x0a, 0x0a, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x32, - 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x09, - 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x62, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x0b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, - 0x65, 0x72, 0x73, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x79, 0x0a, 0x17, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x12, - 0x46, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x63, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, + 0xa8, 0x01, 0x0a, 0x18, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, + 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, + 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x32, 0xb2, 0x0e, 0x0a, 0x05, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x12, 0x9d, 0x01, 0x0a, 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x12, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x0b, 0x73, 0x65, - 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x47, 0x0a, 0x0a, 0x70, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x63, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x32, 0xb2, 0x0e, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x9d, 0x01, 0x0a, - 0x07, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x88, - 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x30, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x7d, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xa0, 0x01, 0x0a, - 0x0b, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x63, + 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x32, 0x12, 0x30, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, + 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x62, 0x79, 0x5f, 0x64, + 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0xa0, 0x01, 0x0a, 0x0b, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, + 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, + 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x34, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x70, 0x65, 0x6e, + 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x32, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, + 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, + 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, + 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, 0xd7, 0x01, 0x0a, 0x17, 0x53, 0x70, 0x65, 0x6e, 0x64, + 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, + 0x6f, 0x6d, 0x12, 0x38, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, + 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, + 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x41, 0x6c, 0x6c, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x88, 0xe7, 0xb0, 0x2a, 0x01, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x27, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, - 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, - 0xbc, 0x01, 0x0a, 0x11, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, - 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x31, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x12, 0xd7, - 0x01, 0x0a, 0x17, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, - 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x38, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, + 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, + 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, + 0x12, 0x94, 0x01, 0x0a, 0x0b, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, + 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, + 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x94, 0x01, 0x0a, 0x08, 0x53, 0x75, 0x70, 0x70, + 0x6c, 0x79, 0x4f, 0x66, 0x12, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, - 0x53, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, - 0x42, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x47, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x3a, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x7d, 0x2f, - 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x94, 0x01, 0x0a, 0x0b, 0x54, 0x6f, 0x74, - 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, + 0x79, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, + 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, + 0x75, 0x70, 0x70, 0x6c, 0x79, 0x2f, 0x62, 0x79, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x85, + 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, + 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, + 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0xab, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6e, 0x6f, 0x6d, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x12, - 0x94, 0x01, 0x0a, 0x08, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x12, 0x29, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x88, 0xe7, 0xb0, 0x2a, 0x01, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, + 0x6f, 0x6d, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0xa6, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x4f, 0x66, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, - 0x12, 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x2f, 0x62, 0x79, - 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x12, 0x85, 0x01, 0x0a, 0x06, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x28, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1d, 0x12, 0x1b, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0xab, - 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x12, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x39, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x12, 0x2c, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0xa6, 0x01, 0x0a, - 0x0e, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, - 0x2f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, - 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, - 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, - 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x5f, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xa2, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, - 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, - 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, - 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, - 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x36, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, - 0x29, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x5f, 0x6f, 0x77, 0x6e, 0x65, - 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, 0x6d, 0x7d, 0x12, 0x9a, 0x01, 0x0a, 0x0b, 0x53, - 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, - 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, - 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x73, 0x65, 0x6e, 0x64, 0x5f, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, 0xc5, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, + 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x73, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x88, 0xe7, 0xb0, 0x2a, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0xa2, 0x01, + 0x0a, 0x0b, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, - 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, - 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x44, 0x65, 0x6e, 0x6f, 0x6d, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x88, 0xe7, 0xb0, 0x2a, + 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x64, 0x65, + 0x6e, 0x6f, 0x6d, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x73, 0x2f, 0x7b, 0x64, 0x65, 0x6e, 0x6f, + 0x6d, 0x7d, 0x12, 0x9a, 0x01, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, + 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x53, 0x65, 0x6e, 0x64, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x2e, 0x88, 0xe7, 0xb0, 0x2a, 0x01, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2f, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x42, + 0xc5, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, + 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, + 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, + 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/bank/v1beta1/tx.pulsar.go b/api/cosmos/bank/v1beta1/tx.pulsar.go index 31c7348023f2..952e29e2d0ea 100644 --- a/api/cosmos/bank/v1beta1/tx.pulsar.go +++ b/api/cosmos/bank/v1beta1/tx.pulsar.go @@ -4229,7 +4229,7 @@ var file_cosmos_bank_v1beta1_tx_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0xb4, 0x02, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x3b, 0x0a, 0x0c, + 0x22, 0xac, 0x02, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x3b, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x0b, 0x66, 0x72, @@ -4237,100 +4237,99 @@ var file_cosmos_bank_v1beta1_tx_proto_rawDesc = []byte{ 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, - 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, - 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, - 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, - 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x30, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, - 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x8a, 0xe7, 0xb0, 0x2a, 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x0c, 0x4d, - 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x69, - 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x75, - 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, - 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x3a, 0x2b, 0xe8, 0xa0, - 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x8a, 0xe7, 0xb0, - 0x2a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x4d, 0x73, 0x67, - 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x73, 0x73, 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, + 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, + 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x30, 0x88, + 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x12, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x22, + 0x11, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xbc, 0x01, 0x0a, 0x0c, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, + 0x65, 0x6e, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x69, 0x6e, 0x70, 0x75, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, + 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x49, 0x6e, 0x70, 0x75, 0x74, 0x42, + 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x69, 0x6e, 0x70, 0x75, + 0x74, 0x73, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, + 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, + 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x75, 0x74, + 0x70, 0x75, 0x74, 0x73, 0x3a, 0x2b, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x06, 0x69, + 0x6e, 0x70, 0x75, 0x74, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, + 0x64, 0x22, 0x16, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbf, 0x01, 0x0a, 0x0f, 0x4d, 0x73, + 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x34, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, + 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe9, 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x09, + 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0c, 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x0b, 0x73, 0x65, + 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, 0x65, + 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6f, + 0x72, 0x3a, 0x2f, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, + 0x81, 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x4a, 0x0a, 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, + 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x34, 0x82, - 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, - 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x78, 0x2f, 0x62, - 0x61, 0x6e, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe9, - 0x01, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, - 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x43, 0x0a, 0x0c, - 0x73, 0x65, 0x6e, 0x64, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x52, 0x0b, 0x73, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x5f, 0x66, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x44, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x46, 0x6f, 0x72, 0x3a, 0x2f, 0x82, 0xe7, 0xb0, 0x2a, 0x09, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, - 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x4d, 0x73, - 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x81, 0x03, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, - 0x4a, 0x0a, 0x04, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x09, 0x4d, - 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x12, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x1a, 0x29, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2c, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, - 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x53, 0x65, - 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x2e, 0x63, + 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x59, 0x0a, 0x09, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, + 0x12, 0x21, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x53, + 0x65, 0x6e, 0x64, 0x1a, 0x29, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, + 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x4d, 0x75, 0x6c, + 0x74, 0x69, 0x53, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x62, + 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x24, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x68, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, + 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x2e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, - 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, - 0x74, 0x53, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xc2, 0x01, 0x0a, 0x17, - 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, - 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, + 0xb0, 0x2a, 0x01, 0x42, 0xc2, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x6e, 0x6b, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, + 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x30, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x6e, 0x6b, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x3b, 0x62, 0x61, 0x6e, 0x6b, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, + 0x42, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x42, 0x61, 0x6e, 0x6b, + 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x13, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, + 0x1f, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x42, 0x61, 0x6e, 0x6b, 0x5c, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x15, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x42, 0x61, 0x6e, 0x6b, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/distribution/v1beta1/distribution.pulsar.go b/api/cosmos/distribution/v1beta1/distribution.pulsar.go index d0bb8c4707bb..a44407ae5399 100644 --- a/api/cosmos/distribution/v1beta1/distribution.pulsar.go +++ b/api/cosmos/distribution/v1beta1/distribution.pulsar.go @@ -7312,83 +7312,82 @@ var file_cosmos_distribution_v1beta1_distribution_proto_rawDesc = []byte{ 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x22, - 0x9f, 0x02, 0x0a, 0x1a, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x97, 0x02, 0x0a, 0x1a, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, - 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, - 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, - 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x28, 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, - 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, - 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, - 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x12, 0x57, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, - 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, - 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x73, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x44, 0x0a, - 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x2c, 0xea, - 0xde, 0x1f, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, - 0x68, 0x74, 0xa2, 0xe7, 0xb0, 0x2a, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x68, 0x65, 0x69, - 0x67, 0x68, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, - 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x6e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, - 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, - 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0xd3, - 0x01, 0x0a, 0x25, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, - 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, - 0x68, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x3a, 0x22, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x42, 0x88, 0x02, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x11, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, - 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, + 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, + 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, + 0x28, 0x18, 0x01, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x1a, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xdf, 0x01, 0x0a, 0x15, 0x44, 0x65, + 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x72, 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x5f, + 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x70, 0x72, + 0x65, 0x76, 0x69, 0x6f, 0x75, 0x73, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x57, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, + 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x65, 0x63, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x6b, 0x65, 0x12, 0x44, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x42, 0x2c, 0xea, 0xde, 0x1f, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa2, 0xe7, 0xb0, 0x2a, 0x0f, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0xa8, 0xe7, + 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xd8, 0x01, 0x0a, 0x19, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, + 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x6e, 0x0a, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x38, + 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x2b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x44, 0x65, 0x63, 0x43, 0x6f, + 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x3a, 0x04, 0x88, 0xa0, 0x1f, 0x00, 0x22, 0xd3, 0x01, 0x0a, 0x25, 0x43, 0x6f, 0x6d, 0x6d, 0x75, + 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x50, 0x72, 0x6f, + 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x57, 0x69, 0x74, 0x68, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x3a, 0x22, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, + 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x42, 0x88, 0x02, 0x0a, + 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x42, 0x11, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, + 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, + 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, + 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/distribution/v1beta1/tx.pulsar.go b/api/cosmos/distribution/v1beta1/tx.pulsar.go index 71e7f0390c74..ca4df29996d9 100644 --- a/api/cosmos/distribution/v1beta1/tx.pulsar.go +++ b/api/cosmos/distribution/v1beta1/tx.pulsar.go @@ -7092,94 +7092,92 @@ var file_cosmos_distribution_v1beta1_tx_proto_rawDesc = []byte{ 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0xa7, 0x01, 0x0a, 0x22, 0x4d, 0x73, 0x67, 0x57, + 0x6e, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x22, 0x9f, 0x01, 0x0a, 0x22, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, - 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, - 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, - 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x3a, 0x46, 0x88, 0xa0, 0x1f, - 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, - 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x57, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x22, 0xab, 0x01, 0x0a, 0x26, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x80, - 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, - 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, - 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8d, 0x02, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, - 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x6f, 0x72, 0x3a, 0x3a, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, - 0xe7, 0xb0, 0x2a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, - 0x2a, 0x1f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, - 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, - 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, + 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, + 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, + 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xaf, 0x01, 0x0a, 0x1e, 0x4d, 0x73, + 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, + 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x11, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x3a, 0x46, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, + 0x2a, 0x11, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, + 0x6c, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xa3, 0x01, 0x0a, 0x26, + 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, + 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, + 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x85, 0x02, 0x0a, 0x14, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, + 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, + 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x46, 0x0a, - 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x3a, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, - 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x27, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, 0x02, 0x0a, - 0x15, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, - 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1c, - 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x12, 0x80, 0x01, 0x0a, - 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, - 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, - 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, - 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, + 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x3a, 0x3a, 0x88, + 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x64, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x1e, 0x0a, 0x1c, 0x4d, 0x73, 0x67, + 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x0f, 0x4d, 0x73, + 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x36, 0x0a, + 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, 0x68, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, + 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x3a, 0x3a, 0x82, + 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, + 0x2a, 0x27, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x15, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x36, + 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x61, 0x75, 0x74, + 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, + 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, + 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, + 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x39, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x26, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, - 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe4, 0x02, 0x0a, 0x1e, + 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xdc, 0x02, 0x0a, 0x1e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, @@ -7189,102 +7187,101 @@ var file_cosmos_distribution_v1beta1_tx_proto_rawDesc = []byte{ 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x10, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x80, 0x01, - 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, - 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, - 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x3a, 0x40, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, - 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x2f, 0x4d, 0x73, - 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x22, 0x28, 0x0a, 0x26, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xec, 0x07, 0x0a, - 0x03, 0x4d, 0x73, 0x67, 0x12, 0x84, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, - 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x17, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x79, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, + 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, + 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, + 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x40, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, + 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x56, 0x61, 0x6c, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x22, 0x28, 0x0a, 0x26, 0x4d, 0x73, + 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, + 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xec, 0x07, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x84, 0x01, 0x0a, + 0x12, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, - 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, - 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x65, 0x74, 0x57, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x93, 0x01, 0x0a, 0x17, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, + 0x37, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, + 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x1a, 0x3f, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x44, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x57, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, + 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x11, + 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, + 0x6c, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x43, + 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, + 0x50, 0x6f, 0x6f, 0x6c, 0x1a, 0x39, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x72, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, + 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x34, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, + 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, + 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x81, 0x01, 0x0a, 0x11, 0x46, 0x75, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x31, 0x2e, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, 0x6e, 0x64, 0x43, - 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, 0x39, 0x2e, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, - 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x75, - 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x72, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x1a, 0x34, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, - 0x6e, 0x64, 0x12, 0x32, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x50, 0x6f, 0x6f, - 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x1a, 0x3a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, - 0x79, 0x50, 0x6f, 0x6f, 0x6c, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, - 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, - 0x6f, 0x6c, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, - 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, - 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, - 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, 0xfe, 0x01, 0x0a, 0x1f, - 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, - 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x40, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, - 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, - 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa8, 0xe2, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x1b, 0x44, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x3b, 0x2e, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, + 0x73, 0x69, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x50, 0x6f, 0x6f, 0x6c, 0x1a, 0x43, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x50, 0x6f, 0x6f, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, + 0xb0, 0x2a, 0x01, 0x42, 0xfe, 0x01, 0x0a, 0x1f, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x40, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x3b, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x44, 0x58, 0xaa, 0x02, 0x1b, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2e, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x1b, 0x43, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x5c, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x27, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, + 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x1d, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x44, 0x69, 0x73, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xa8, 0xe2, 0x1e, 0x01, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go b/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go index 06f86ab68b3b..fbd2ee96c773 100644 --- a/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go +++ b/api/cosmos/feegrant/v1beta1/feegrant.pulsar.go @@ -2845,107 +2845,106 @@ var file_cosmos_feegrant_v1beta1_feegrant_proto_rawDesc = []byte{ 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x22, 0xa7, 0x02, 0x0a, 0x0e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, - 0x61, 0x6e, 0x63, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, + 0x6f, 0x22, 0xa0, 0x02, 0x0a, 0x0e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0b, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, + 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, - 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x42, 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x3a, 0x47, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, - 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, - 0x2a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, - 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xe7, 0x04, 0x0a, 0x11, - 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x48, 0x0a, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x62, 0x61, 0x73, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x96, 0x01, - 0x0a, 0x12, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, - 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, - 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, - 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x70, 0x65, 0x6e, - 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x92, 0x01, 0x0a, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, - 0x64, 0x5f, 0x63, 0x61, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, - 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, - 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, - 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, - 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x70, 0x65, 0x72, - 0x69, 0x6f, 0x64, 0x43, 0x61, 0x6e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x4c, 0x0a, 0x0c, 0x70, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, - 0xde, 0x1f, 0x00, 0x90, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x70, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x52, 0x65, 0x73, 0x65, 0x74, 0x3a, 0x4a, 0xca, 0xb4, 0x2d, 0x25, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, - 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, - 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xf1, 0x01, 0x0a, 0x13, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, - 0x64, 0x4d, 0x73, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x5d, 0x0a, - 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, - 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, - 0x49, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10, - 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x3a, 0x50, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, + 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, + 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x73, + 0x70, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x40, 0x0a, 0x0a, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x04, 0x90, 0xdf, 0x1f, 0x01, 0x52, + 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x47, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, - 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x73, 0x67, - 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x05, 0x47, 0x72, - 0x61, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, - 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, - 0x65, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, - 0x6e, 0x67, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x12, 0x5d, 0x0a, 0x09, 0x61, - 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x61, 0x6e, 0x63, 0x65, 0x22, 0xd9, 0x04, 0x0a, 0x11, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, + 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x62, 0x61, + 0x73, 0x69, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, + 0x63, 0x65, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x05, 0x62, + 0x61, 0x73, 0x69, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x98, 0xdf, 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, + 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x8f, 0x01, 0x0a, 0x12, 0x70, 0x65, 0x72, 0x69, 0x6f, + 0x64, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, + 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, + 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, + 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x53, 0x70, + 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x8b, 0x01, 0x0a, 0x10, 0x70, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x5f, 0x63, 0x61, 0x6e, 0x5f, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x04, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, + 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, + 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, + 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x43, 0x61, + 0x6e, 0x53, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x4c, 0x0a, 0x0c, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, + 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x0d, 0xc8, 0xde, 0x1f, 0x00, 0x90, 0xdf, + 0x1f, 0x01, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x52, + 0x65, 0x73, 0x65, 0x74, 0x3a, 0x4a, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x52, - 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x42, 0xe4, 0x01, 0x0a, 0x1b, 0x63, - 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, - 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0d, 0x46, 0x65, 0x65, 0x67, - 0x72, 0x61, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x46, 0x58, 0xaa, 0x02, 0x17, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, - 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, - 0x02, 0x23, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, - 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, - 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x8a, + 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, + 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, + 0x22, 0xf1, 0x01, 0x0a, 0x13, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x41, + 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, + 0x79, 0x42, 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, + 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, + 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x52, 0x09, 0x61, 0x6c, + 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x6c, 0x6c, 0x6f, 0x77, + 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x73, 0x3a, 0x50, 0x88, 0xa0, 0x1f, 0x00, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, + 0x49, 0x8a, 0xe7, 0xb0, 0x2a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x41, 0x6c, 0x6c, 0x6f, 0x77, + 0x61, 0x6e, 0x63, 0x65, 0x22, 0xce, 0x01, 0x0a, 0x05, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x12, 0x32, + 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x32, 0x0a, 0x07, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x65, 0x65, 0x12, 0x5d, 0x0a, 0x09, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x61, + 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, + 0x29, 0xca, 0xb4, 0x2d, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x46, 0x65, 0x65, + 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x52, 0x09, 0x61, 0x6c, 0x6c, 0x6f, + 0x77, 0x61, 0x6e, 0x63, 0x65, 0x42, 0xe4, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0d, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, + 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x3b, 0x66, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xa2, 0x02, 0x03, 0x43, 0x46, 0x58, 0xaa, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0xca, 0x02, 0x17, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x23, 0x43, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x5c, 0x46, 0x65, 0x65, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x5c, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x19, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x46, 0x65, 0x65, 0x67, 0x72, + 0x61, 0x6e, 0x74, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/gov/v1beta1/tx.pulsar.go b/api/cosmos/gov/v1beta1/tx.pulsar.go index 3df1133e99f4..50b2c0c3d18b 100644 --- a/api/cosmos/gov/v1beta1/tx.pulsar.go +++ b/api/cosmos/gov/v1beta1/tx.pulsar.go @@ -4228,122 +4228,121 @@ var file_cosmos_gov_v1beta1_tx_proto_rawDesc = []byte{ 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, - 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe5, 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, + 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xde, 0x02, 0x0a, 0x11, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x4e, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, 0x42, 0x1e, 0xca, 0xb4, 0x2d, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x91, 0x01, + 0x74, 0x65, 0x6e, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x8a, 0x01, 0x0a, 0x0f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, + 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, - 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x3a, 0x36, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, - 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x8a, 0xe7, - 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, - 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x22, - 0x52, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, - 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, - 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, - 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x49, 0x64, 0x22, 0xbd, 0x01, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x12, - 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, - 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, - 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x29, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, - 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, - 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, - 0x6f, 0x74, 0x65, 0x22, 0x11, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xf8, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x56, 0x6f, - 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, - 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, - 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, - 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, - 0x72, 0x12, 0x4b, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, - 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, - 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x31, - 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, - 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, - 0x64, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, - 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb4, 0x02, 0x0a, - 0x0a, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, - 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, - 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, - 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, - 0x49, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, - 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, - 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, - 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, - 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x34, 0x88, - 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x80, 0xdc, 0x20, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x09, - 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x15, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, - 0x73, 0x69, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf3, 0x02, 0x0a, 0x03, 0x4d, 0x73, - 0x67, 0x12, 0x66, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, - 0x73, 0x61, 0x6c, 0x12, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, - 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, - 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x56, 0x6f, 0x74, - 0x65, 0x12, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, - 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x1a, 0x23, - 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0c, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x65, 0x64, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, - 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, - 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, + 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, + 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x69, 0x6e, 0x69, 0x74, + 0x69, 0x61, 0x6c, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, + 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, + 0x3a, 0x36, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x08, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1c, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x22, 0x52, 0x0a, 0x19, 0x4d, 0x73, 0x67, 0x53, + 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, + 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x22, 0xbd, 0x01, 0x0a, + 0x07, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x36, 0x0a, 0x06, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x56, + 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x3a, 0x29, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, + 0x76, 0x6f, 0x74, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x12, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x22, 0x11, 0x0a, 0x0f, + 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xf8, 0x01, 0x0a, 0x0f, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x65, 0x64, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, 0x72, + 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, + 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x05, 0x76, 0x6f, + 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, + 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x56, 0x6f, 0x74, 0x65, 0x4f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3a, 0x31, 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, + 0x00, 0x82, 0xe7, 0xb0, 0x2a, 0x05, 0x76, 0x6f, 0x74, 0x65, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x1a, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x56, 0x6f, + 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x22, 0x19, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x07, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, 0x42, - 0xbb, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, - 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, - 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x67, - 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x47, 0x6f, 0x76, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0xca, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, - 0x6f, 0x76, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, - 0x3a, 0x47, 0x6f, 0x76, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xac, 0x02, 0x0a, 0x0a, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x12, 0x35, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x42, 0x14, 0xea, 0xde, 0x1f, 0x0b, 0x70, + 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, + 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x09, 0x64, + 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, + 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x6f, 0x72, 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, + 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, + 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, + 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, + 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x34, + 0x88, 0xa0, 0x1f, 0x00, 0xe8, 0xa0, 0x1f, 0x00, 0x80, 0xdc, 0x20, 0x00, 0x82, 0xe7, 0xb0, 0x2a, + 0x09, 0x64, 0x65, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x6f, 0x72, 0x8a, 0xe7, 0xb0, 0x2a, 0x15, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, + 0x6f, 0x73, 0x69, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, + 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf3, 0x02, 0x0a, 0x03, 0x4d, + 0x73, 0x67, 0x12, 0x66, 0x0a, 0x0e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, + 0x6f, 0x73, 0x61, 0x6c, 0x12, 0x25, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, + 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, 0x61, 0x6c, 0x1a, 0x2d, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, + 0x2e, 0x4d, 0x73, 0x67, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x6f, 0x73, + 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x48, 0x0a, 0x04, 0x56, 0x6f, + 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x1a, + 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x0c, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, + 0x68, 0x74, 0x65, 0x64, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, + 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x56, 0x6f, 0x74, + 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, + 0x73, 0x67, 0x56, 0x6f, 0x74, 0x65, 0x57, 0x65, 0x69, 0x67, 0x68, 0x74, 0x65, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x51, 0x0a, 0x07, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x1a, 0x26, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x67, 0x6f, 0x76, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x65, 0x70, 0x6f, 0x73, 0x69, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x1a, 0x05, 0x80, 0xe7, 0xb0, 0x2a, 0x01, + 0x42, 0xbb, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, + 0x67, 0x6f, 0x76, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x07, 0x54, 0x78, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, + 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, + 0x67, 0x6f, 0x76, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x67, 0x6f, 0x76, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x47, 0x6f, 0x76, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, + 0x31, 0xca, 0x02, 0x12, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x47, 0x6f, 0x76, 0x5c, 0x56, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, + 0x47, 0x6f, 0x76, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x3a, 0x3a, 0x47, 0x6f, 0x76, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/api/cosmos/vesting/v1beta1/tx.pulsar.go b/api/cosmos/vesting/v1beta1/tx.pulsar.go index 7df32383e855..64ce01953593 100644 --- a/api/cosmos/vesting/v1beta1/tx.pulsar.go +++ b/api/cosmos/vesting/v1beta1/tx.pulsar.go @@ -3405,7 +3405,7 @@ var file_cosmos_vesting_v1beta1_tx_proto_rawDesc = []byte{ 0x61, 0x31, 0x2f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x17, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x6d, 0x73, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x73, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, - 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x85, 0x03, 0x0a, + 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xfd, 0x02, 0x0a, 0x17, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, @@ -3414,42 +3414,41 @@ var file_cosmos_vesting_v1beta1_tx_proto_rawDesc = []byte{ 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x18, 0xd2, 0xb4, 0x2d, 0x14, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x80, - 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, - 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, - 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, - 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x3a, 0x3c, 0xe8, 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, - 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, - 0x2a, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xd7, 0x02, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, - 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x0c, 0x66, - 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x17, 0xf2, 0xde, 0x1f, 0x13, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x66, 0x72, 0x6f, - 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, - 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x15, 0xf2, 0xde, 0x1f, - 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x22, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x80, 0x01, + 0x69, 0x6e, 0x67, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, + 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, - 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, - 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, + 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, + 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, + 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x3a, 0x3c, + 0xe8, 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x22, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x21, 0x0a, 0x1f, + 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0xcf, 0x02, 0x0a, 0x1f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, + 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x3a, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x17, 0xf2, 0xde, 0x1f, 0x13, 0x79, + 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x22, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x34, 0x0a, 0x0a, 0x74, 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x15, 0xf2, 0xde, 0x1f, 0x11, 0x79, 0x61, 0x6d, 0x6c, 0x3a, 0x22, 0x74, + 0x6f, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x52, 0x09, 0x74, 0x6f, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, + 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, + 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, + 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, + 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x3f, 0xe8, 0xa0, 0x1f, 0x01, 0x82, 0xe7, 0xb0, 0x2a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x8a, 0xe7, 0xb0, 0x2a, 0x25, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x4d, 0x73, 0x67, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, diff --git a/api/cosmos/vesting/v1beta1/vesting.pulsar.go b/api/cosmos/vesting/v1beta1/vesting.pulsar.go index da849a3ca6e3..a0a0378b2f92 100644 --- a/api/cosmos/vesting/v1beta1/vesting.pulsar.go +++ b/api/cosmos/vesting/v1beta1/vesting.pulsar.go @@ -3744,80 +3744,45 @@ var file_cosmos_vesting_v1beta1_vesting_proto_rawDesc = []byte{ 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x61, 0x75, 0x74, - 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe2, 0x04, 0x0a, 0x12, 0x42, 0x61, 0x73, 0x65, + 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xcd, 0x04, 0x0a, 0x12, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x0c, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x0b, 0x62, 0x61, - 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x93, 0x01, 0x0a, 0x10, 0x6f, 0x72, + 0x73, 0x65, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x8c, 0x01, 0x0a, 0x10, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, - 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x46, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, - 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, - 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, - 0x8f, 0x01, 0x0a, 0x0e, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, - 0x65, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, - 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, - 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, 0x72, 0x65, - 0x65, 0x12, 0x95, 0x01, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, - 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, - 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, - 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, - 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, - 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x26, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x1d, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xcb, 0x01, 0x0a, - 0x18, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x56, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, - 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, - 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x2c, 0x88, 0xa0, - 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x23, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, - 0x6b, 0x2f, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x56, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x15, 0x44, - 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, - 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, - 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x29, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, - 0xb0, 0x2a, 0x20, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x44, 0x65, - 0x6c, 0x61, 0x79, 0x65, 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x80, 0x01, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, - 0x69, 0x6e, 0x42, 0x4d, 0xc8, 0xde, 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, - 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x13, 0x6e, 0x75, 0x6c, 0x6c, 0x5f, 0x73, 0x6c, - 0x69, 0x63, 0x65, 0x5f, 0x61, 0x73, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0xa8, 0xe7, 0xb0, 0x2a, - 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x02, 0x0a, 0x16, 0x50, 0x65, - 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, + 0x73, 0x9a, 0xe7, 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, + 0x6e, 0x73, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, + 0x6c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x88, 0x01, 0x0a, 0x0e, 0x64, 0x65, 0x6c, + 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, + 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, + 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x46, + 0x72, 0x65, 0x65, 0x12, 0x8e, 0x01, 0x0a, 0x11, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, + 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, 0x1f, 0x00, + 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, 0xb0, 0x2a, + 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x10, 0x64, 0x65, 0x6c, 0x65, 0x67, 0x61, 0x74, 0x65, 0x64, 0x56, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x3a, + 0x26, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, + 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xcb, 0x01, 0x0a, 0x18, 0x43, 0x6f, 0x6e, 0x74, + 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, @@ -3826,40 +3791,73 @@ var file_cosmos_vesting_v1beta1_vesting_proto_rawDesc = []byte{ 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x76, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, - 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, 0x76, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, - 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, - 0x2f, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x50, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, - 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, - 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x6d, - 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x42, 0x0c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, - 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x76, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x56, 0x58, 0xaa, - 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, - 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, - 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, - 0x3a, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x2c, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, + 0x2a, 0x23, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x43, 0x6f, 0x6e, + 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x01, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x65, + 0x64, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, + 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, + 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x3a, 0x29, 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x20, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x65, 0x64, + 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, + 0x01, 0x0a, 0x06, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x12, 0x79, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, + 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x42, 0x46, 0xc8, 0xde, + 0x1f, 0x00, 0xaa, 0xdf, 0x1f, 0x28, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, + 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x69, 0x6e, 0x73, 0x9a, 0xe7, + 0xb0, 0x2a, 0x0c, 0x6c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x5f, 0x63, 0x6f, 0x69, 0x6e, 0x73, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x02, 0x0a, + 0x16, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, + 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, + 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x42, 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x52, 0x0a, 0x0f, 0x76, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x50, 0x65, 0x72, + 0x69, 0x6f, 0x64, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0e, + 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x73, 0x3a, 0x2a, + 0x88, 0xa0, 0x1f, 0x00, 0x8a, 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, + 0x73, 0x64, 0x6b, 0x2f, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x69, 0x63, 0x56, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x50, + 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x62, 0x0a, 0x14, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x76, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2e, 0x42, 0x61, 0x73, + 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x04, 0xd0, 0xde, 0x1f, 0x01, 0x52, 0x12, 0x62, 0x61, 0x73, 0x65, 0x56, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x67, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x3a, 0x2a, 0x88, 0xa0, 0x1f, 0x00, 0x8a, + 0xe7, 0xb0, 0x2a, 0x21, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x50, + 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0xdc, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x76, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x42, 0x0c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, + 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x76, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x76, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, + 0x56, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x56, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x56, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x3a, 0x3a, 0x56, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/proto/cosmos/bank/v1beta1/authz.proto b/proto/cosmos/bank/v1beta1/authz.proto index 07159edc1b93..d42c619a5b7e 100644 --- a/proto/cosmos/bank/v1beta1/authz.proto +++ b/proto/cosmos/bank/v1beta1/authz.proto @@ -19,7 +19,7 @@ message SendAuthorization { repeated cosmos.base.v1beta1.Coin spend_limit = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/proto/cosmos/bank/v1beta1/bank.proto b/proto/cosmos/bank/v1beta1/bank.proto index aa0ef5426586..cbf6a41cf88b 100644 --- a/proto/cosmos/bank/v1beta1/bank.proto +++ b/proto/cosmos/bank/v1beta1/bank.proto @@ -40,7 +40,7 @@ message Input { repeated cosmos.base.v1beta1.Coin coins = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -54,7 +54,7 @@ message Output { repeated cosmos.base.v1beta1.Coin coins = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -73,7 +73,7 @@ message Supply { repeated cosmos.base.v1beta1.Coin total = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/bank/v1beta1/genesis.proto b/proto/cosmos/bank/v1beta1/genesis.proto index 0221513bc6d5..caf05a95bb25 100644 --- a/proto/cosmos/bank/v1beta1/genesis.proto +++ b/proto/cosmos/bank/v1beta1/genesis.proto @@ -20,7 +20,7 @@ message GenesisState { // supply represents the total supply. If it is left empty, then supply will be calculated based on the provided // balances. Otherwise, it will be used to validate that the sum of the balances equals this amount. repeated cosmos.base.v1beta1.Coin supply = 3 [ - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false, (amino.dont_omitempty) = true @@ -46,7 +46,7 @@ message Balance { // coins defines the different coins this balance holds. repeated cosmos.base.v1beta1.Coin coins = 2 [ - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", (gogoproto.nullable) = false, (amino.dont_omitempty) = true diff --git a/proto/cosmos/bank/v1beta1/query.proto b/proto/cosmos/bank/v1beta1/query.proto index fe16a3f70493..23324504b6fa 100644 --- a/proto/cosmos/bank/v1beta1/query.proto +++ b/proto/cosmos/bank/v1beta1/query.proto @@ -157,7 +157,7 @@ message QueryAllBalancesResponse { repeated cosmos.base.v1beta1.Coin balances = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -189,7 +189,7 @@ message QuerySpendableBalancesResponse { repeated cosmos.base.v1beta1.Coin balances = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -240,7 +240,7 @@ message QueryTotalSupplyResponse { repeated cosmos.base.v1beta1.Coin supply = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/proto/cosmos/bank/v1beta1/tx.proto b/proto/cosmos/bank/v1beta1/tx.proto index 215223498954..c780be37866f 100644 --- a/proto/cosmos/bank/v1beta1/tx.proto +++ b/proto/cosmos/bank/v1beta1/tx.proto @@ -48,7 +48,7 @@ message MsgSend { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/distribution/v1beta1/distribution.proto b/proto/cosmos/distribution/v1beta1/distribution.proto index 85f25937dc08..ba6a67ef4c93 100644 --- a/proto/cosmos/distribution/v1beta1/distribution.proto +++ b/proto/cosmos/distribution/v1beta1/distribution.proto @@ -143,7 +143,7 @@ message CommunityPoolSpendProposal { repeated cosmos.base.v1beta1.Coin amount = 4 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/distribution/v1beta1/tx.proto b/proto/cosmos/distribution/v1beta1/tx.proto index 22be789dd9b2..6a69bcca7c9c 100644 --- a/proto/cosmos/distribution/v1beta1/tx.proto +++ b/proto/cosmos/distribution/v1beta1/tx.proto @@ -89,7 +89,7 @@ message MsgWithdrawDelegatorRewardResponse { repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -113,7 +113,7 @@ message MsgWithdrawValidatorCommissionResponse { repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -130,7 +130,7 @@ message MsgFundCommunityPool { repeated cosmos.base.v1beta1.Coin amount = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; string depositor = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; @@ -176,7 +176,7 @@ message MsgCommunityPoolSpend { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } @@ -202,7 +202,7 @@ message MsgDepositValidatorRewardsPool { string validator_address = 2 [(cosmos_proto.scalar) = "cosmos.AddressString"]; repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (amino.dont_omitempty) = true, (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/proto/cosmos/feegrant/v1beta1/feegrant.proto b/proto/cosmos/feegrant/v1beta1/feegrant.proto index e02a1e0136dd..a1c67eafbd15 100644 --- a/proto/cosmos/feegrant/v1beta1/feegrant.proto +++ b/proto/cosmos/feegrant/v1beta1/feegrant.proto @@ -24,7 +24,7 @@ message BasicAllowance { repeated cosmos.base.v1beta1.Coin spend_limit = 1 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -51,7 +51,7 @@ message PeriodicAllowance { repeated cosmos.base.v1beta1.Coin period_spend_limit = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -59,7 +59,7 @@ message PeriodicAllowance { repeated cosmos.base.v1beta1.Coin period_can_spend = 4 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; diff --git a/proto/cosmos/gov/v1beta1/tx.proto b/proto/cosmos/gov/v1beta1/tx.proto index e0b603182622..24795ab3b405 100644 --- a/proto/cosmos/gov/v1beta1/tx.proto +++ b/proto/cosmos/gov/v1beta1/tx.proto @@ -46,7 +46,7 @@ message MsgSubmitProposal { repeated cosmos.base.v1beta1.Coin initial_deposit = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -125,7 +125,7 @@ message MsgDeposit { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/vesting/v1beta1/tx.proto b/proto/cosmos/vesting/v1beta1/tx.proto index 52f146d9d1f7..ab80ef2f44cd 100644 --- a/proto/cosmos/vesting/v1beta1/tx.proto +++ b/proto/cosmos/vesting/v1beta1/tx.proto @@ -42,7 +42,7 @@ message MsgCreateVestingAccount { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; @@ -68,7 +68,7 @@ message MsgCreatePermanentLockedAccount { repeated cosmos.base.v1beta1.Coin amount = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/proto/cosmos/vesting/v1beta1/vesting.proto b/proto/cosmos/vesting/v1beta1/vesting.proto index c532c263fd65..086cf9d79373 100644 --- a/proto/cosmos/vesting/v1beta1/vesting.proto +++ b/proto/cosmos/vesting/v1beta1/vesting.proto @@ -18,19 +18,19 @@ message BaseVestingAccount { repeated cosmos.base.v1beta1.Coin original_vesting = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; repeated cosmos.base.v1beta1.Coin delegated_free = 3 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; repeated cosmos.base.v1beta1.Coin delegated_vesting = 4 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; int64 end_time = 5; @@ -62,7 +62,7 @@ message Period { repeated cosmos.base.v1beta1.Coin amount = 2 [ (gogoproto.nullable) = false, (amino.dont_omitempty) = true, - (amino.encoding) = "null_slice_as_empty", + (amino.encoding) = "legacy_coins", (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins" ]; } diff --git a/x/auth/vesting/types/tx.pb.go b/x/auth/vesting/types/tx.pb.go index 4bb66e9a378e..52ac6b4fe467 100644 --- a/x/auth/vesting/types/tx.pb.go +++ b/x/auth/vesting/types/tx.pb.go @@ -381,50 +381,49 @@ func init() { func init() { proto.RegisterFile("cosmos/vesting/v1beta1/tx.proto", fileDescriptor_5338ca97811f9792) } var fileDescriptor_5338ca97811f9792 = []byte{ - // 679 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0x3f, 0x6f, 0xd3, 0x4e, - 0x18, 0xc7, 0xe3, 0xba, 0xff, 0x72, 0xfd, 0xe9, 0x87, 0x9a, 0x16, 0xea, 0x46, 0xd4, 0x4e, 0x2d, - 0x10, 0x21, 0x52, 0x6d, 0xb5, 0x20, 0x55, 0x0a, 0x48, 0x55, 0xd3, 0x11, 0x2a, 0xa1, 0x80, 0x18, - 0x58, 0xac, 0x8b, 0x7d, 0xb8, 0xa7, 0xc6, 0x77, 0x91, 0xef, 0x52, 0x35, 0x5b, 0x85, 0xc4, 0xc2, - 0xc4, 0x06, 0x62, 0x62, 0x44, 0x4c, 0x19, 0x78, 0x0b, 0x48, 0x1d, 0x2b, 0x16, 0x98, 0x0a, 0x6a, - 0x87, 0x30, 0xf7, 0x15, 0x20, 0xfb, 0xce, 0x21, 0x29, 0x76, 0xff, 0x30, 0xb1, 0xd4, 0xcd, 0x3d, - 0xdf, 0xef, 0xe3, 0xc7, 0x9f, 0xe7, 0x79, 0x6c, 0x60, 0xb8, 0x94, 0x05, 0x94, 0xd9, 0x3b, 0x88, - 0x71, 0x4c, 0x7c, 0x7b, 0x67, 0xb9, 0x81, 0x38, 0x5c, 0xb6, 0xf9, 0xae, 0xd5, 0x0a, 0x29, 0xa7, - 0x85, 0x6b, 0x42, 0x60, 0x49, 0x81, 0x25, 0x05, 0xc5, 0x59, 0x9f, 0xfa, 0x34, 0x96, 0xd8, 0xd1, - 0x7f, 0x42, 0x5d, 0xd4, 0x65, 0xba, 0x06, 0x64, 0xa8, 0x9f, 0xcb, 0xa5, 0x98, 0xc8, 0xf8, 0xbc, - 0x88, 0x3b, 0xc2, 0x28, 0x53, 0x8b, 0xd0, 0x8d, 0x8c, 0x4a, 0x92, 0x1b, 0x0b, 0xd5, 0x9c, 0x54, - 0x05, 0x2c, 0x52, 0x44, 0x17, 0x19, 0x98, 0x86, 0x01, 0x26, 0xd4, 0x8e, 0xff, 0x8a, 0x23, 0xf3, - 0xa5, 0x0a, 0xe6, 0x36, 0x99, 0xbf, 0x11, 0x22, 0xc8, 0xd1, 0x53, 0x91, 0x66, 0xdd, 0x75, 0x69, - 0x9b, 0xf0, 0xc2, 0x3d, 0xf0, 0xdf, 0xf3, 0x90, 0x06, 0x0e, 0xf4, 0xbc, 0x10, 0x31, 0xa6, 0x29, - 0x25, 0xa5, 0x9c, 0xaf, 0x69, 0x5f, 0x3e, 0x2d, 0xcd, 0xca, 0xaa, 0xd6, 0x45, 0xe4, 0x31, 0x0f, - 0x31, 0xf1, 0xeb, 0x53, 0x91, 0x5a, 0x1e, 0x15, 0x56, 0x01, 0xe0, 0xb4, 0x6f, 0x1d, 0x39, 0xc7, - 0x9a, 0xe7, 0x34, 0x31, 0xee, 0x29, 0x60, 0x1c, 0x06, 0x51, 0x01, 0x9a, 0x5a, 0x52, 0xcb, 0x53, - 0x2b, 0xf3, 0x96, 0xb4, 0x44, 0xc0, 0x12, 0xb6, 0xd6, 0x06, 0xc5, 0xa4, 0xb6, 0xb9, 0x7f, 0x68, - 0xe4, 0x3e, 0x7e, 0x37, 0xca, 0x3e, 0xe6, 0x5b, 0xed, 0x86, 0xe5, 0xd2, 0x40, 0x02, 0x93, 0x97, - 0x25, 0xe6, 0x6d, 0xdb, 0xbc, 0xd3, 0x42, 0x2c, 0x36, 0xb0, 0x77, 0xbd, 0x6e, 0x65, 0x86, 0xb4, - 0x9b, 0x4d, 0x87, 0x35, 0xb1, 0x8b, 0x1c, 0xc8, 0x1c, 0x14, 0xb4, 0x78, 0xe7, 0x43, 0xaf, 0x5b, - 0x51, 0xea, 0xf2, 0xbe, 0x85, 0x79, 0x30, 0x89, 0x88, 0xe7, 0x70, 0x1c, 0x20, 0x6d, 0xb4, 0xa4, - 0x94, 0xd5, 0xfa, 0x04, 0x22, 0xde, 0x13, 0x1c, 0xa0, 0x82, 0x06, 0x26, 0x3c, 0xd4, 0x84, 0x1d, - 0xe4, 0x69, 0x63, 0x25, 0xa5, 0x3c, 0x59, 0x4f, 0x7e, 0x56, 0xef, 0xff, 0x7c, 0x6f, 0x28, 0x2f, - 0x7a, 0xdd, 0xca, 0x10, 0xb4, 0x57, 0xbd, 0x6e, 0xc5, 0x1c, 0xa8, 0x25, 0x83, 0xb5, 0xb9, 0x08, - 0x8c, 0x8c, 0x50, 0x1d, 0xb1, 0x16, 0x25, 0x0c, 0x99, 0x5f, 0x47, 0x06, 0x34, 0x8f, 0x50, 0x18, - 0x40, 0x82, 0x08, 0x7f, 0x48, 0xdd, 0x6d, 0xe4, 0x25, 0x2d, 0xab, 0xa6, 0xb6, 0x6c, 0xee, 0xe4, - 0xd0, 0x98, 0xe9, 0xc0, 0xa0, 0x59, 0x35, 0x07, 0xa3, 0xe6, 0x70, 0xc7, 0xee, 0xa6, 0x74, 0xec, - 0xea, 0xc9, 0xa1, 0x31, 0x2d, 0x9c, 0xbf, 0x63, 0xe6, 0xbf, 0xd5, 0xae, 0xea, 0x5a, 0x26, 0xf9, - 0x9b, 0x69, 0xe4, 0x23, 0x74, 0x43, 0xd4, 0xcc, 0xdb, 0xe0, 0xd6, 0x39, 0x60, 0xfb, 0x4d, 0x78, - 0x73, 0xaa, 0x09, 0x98, 0x7a, 0xd8, 0x3d, 0xb5, 0x37, 0x8b, 0x69, 0x4d, 0x18, 0x66, 0xbd, 0xf0, - 0x27, 0xeb, 0x41, 0xa8, 0x0b, 0x00, 0x30, 0x0e, 0x43, 0x2e, 0x46, 0x50, 0x8d, 0x47, 0x30, 0x1f, - 0x9f, 0xc4, 0x43, 0x58, 0x07, 0x57, 0xe4, 0xc6, 0x3b, 0xad, 0xb8, 0x04, 0xa6, 0x8d, 0xc6, 0xec, - 0x75, 0x2b, 0xfd, 0x4d, 0x64, 0x89, 0x4a, 0x6b, 0xf9, 0xa8, 0x01, 0x02, 0xde, 0xff, 0x52, 0x22, - 0x22, 0x2c, 0x86, 0x98, 0xbb, 0x14, 0x44, 0x4c, 0xbd, 0xe8, 0xc1, 0x33, 0x20, 0xa6, 0x80, 0x49, - 0x20, 0xae, 0x7c, 0x56, 0x81, 0xba, 0xc9, 0xfc, 0x68, 0x76, 0x66, 0x53, 0xdf, 0x3c, 0x76, 0xd6, - 0x73, 0x64, 0xec, 0x48, 0x71, 0xf5, 0x92, 0x86, 0xa4, 0x94, 0xc2, 0x5b, 0x05, 0x5c, 0x3f, 0x73, - 0xa3, 0xce, 0xcf, 0x9c, 0x6e, 0x2c, 0xae, 0xfd, 0xa5, 0x31, 0xbd, 0xb4, 0xb4, 0x39, 0xbb, 0x50, - 0x69, 0x29, 0xc6, 0x8b, 0x95, 0x76, 0x46, 0x03, 0x8b, 0x63, 0x7b, 0xd1, 0x0c, 0xd5, 0x1e, 0xec, - 0x1f, 0xe9, 0xca, 0xc1, 0x91, 0xae, 0xfc, 0x38, 0xd2, 0x95, 0xd7, 0xc7, 0x7a, 0xee, 0xe0, 0x58, - 0xcf, 0x7d, 0x3b, 0xd6, 0x73, 0xcf, 0x96, 0xcf, 0xdc, 0xf0, 0x5d, 0x1b, 0xb6, 0xf9, 0x56, 0xff, - 0x2b, 0x16, 0x2f, 0x7c, 0x63, 0x3c, 0xfe, 0x20, 0xdd, 0xf9, 0x15, 0x00, 0x00, 0xff, 0xff, 0xa3, - 0x43, 0xde, 0x6f, 0x6e, 0x07, 0x00, 0x00, + // 670 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0xbf, 0x6f, 0xd3, 0x40, + 0x14, 0xc7, 0xe3, 0xba, 0xbf, 0x72, 0xad, 0x40, 0x35, 0x85, 0xba, 0x11, 0xb5, 0x53, 0x0b, 0x44, + 0xa8, 0x54, 0x5b, 0x2d, 0x48, 0x95, 0x02, 0x52, 0xd5, 0x54, 0x62, 0x81, 0x4a, 0xc8, 0x20, 0x06, + 0x96, 0xe8, 0x62, 0x1f, 0xae, 0xd5, 0xda, 0x17, 0xf9, 0xae, 0x55, 0xb3, 0x55, 0x8c, 0x4c, 0x6c, + 0x20, 0x26, 0x46, 0xc4, 0xd4, 0x81, 0x7f, 0x01, 0xa9, 0x1b, 0x15, 0x13, 0x53, 0x40, 0xc9, 0x10, + 0xe6, 0xee, 0x48, 0xe8, 0x7c, 0xe7, 0x90, 0x14, 0x3b, 0x69, 0x99, 0x58, 0xe2, 0xf8, 0xde, 0xf7, + 0xfb, 0xee, 0xf9, 0xf3, 0xee, 0xd9, 0x40, 0x77, 0x30, 0x09, 0x30, 0xb1, 0xf6, 0x11, 0xa1, 0x7e, + 0xe8, 0x59, 0xfb, 0x2b, 0x35, 0x44, 0xe1, 0x8a, 0x45, 0x0f, 0xcc, 0x7a, 0x84, 0x29, 0x56, 0xae, + 0x71, 0x81, 0x29, 0x04, 0xa6, 0x10, 0x14, 0x66, 0x3d, 0xec, 0xe1, 0x58, 0x62, 0xb1, 0x7f, 0x5c, + 0x5d, 0xd0, 0x44, 0xba, 0x1a, 0x24, 0xa8, 0x9b, 0xcb, 0xc1, 0x7e, 0x28, 0xe2, 0xf3, 0x3c, 0x5e, + 0xe5, 0x46, 0x91, 0x9a, 0x87, 0x6e, 0x64, 0x54, 0x92, 0x6c, 0xcc, 0x55, 0x73, 0x42, 0x15, 0x10, + 0xa6, 0x60, 0x17, 0x11, 0x98, 0x81, 0x81, 0x1f, 0x62, 0x2b, 0xfe, 0xe5, 0x4b, 0xc6, 0xaf, 0x11, + 0x30, 0xb7, 0x45, 0xbc, 0xcd, 0x08, 0x41, 0x8a, 0x9e, 0xf1, 0x34, 0x1b, 0x8e, 0x83, 0xf7, 0x42, + 0xaa, 0xdc, 0x03, 0xd3, 0x2f, 0x22, 0x1c, 0x54, 0xa1, 0xeb, 0x46, 0x88, 0x10, 0x55, 0x2a, 0x4a, + 0xa5, 0x7c, 0x45, 0xfd, 0xfa, 0x69, 0x79, 0x56, 0x54, 0xb5, 0xc1, 0x23, 0x4f, 0x68, 0xe4, 0x87, + 0x9e, 0x3d, 0xc5, 0xd4, 0x62, 0x49, 0x59, 0x03, 0x80, 0xe2, 0xae, 0x75, 0x64, 0x88, 0x35, 0x4f, + 0x71, 0x62, 0x6c, 0x80, 0x71, 0x18, 0xb0, 0xfd, 0x55, 0xb9, 0x28, 0x97, 0xa6, 0x56, 0xe7, 0x4d, + 0xe1, 0x60, 0xbc, 0x12, 0xb4, 0xe6, 0x26, 0xf6, 0xc3, 0xca, 0x83, 0xe3, 0xa6, 0x9e, 0xfb, 0xf8, + 0x5d, 0x2f, 0x79, 0x3e, 0xdd, 0xde, 0xab, 0x99, 0x0e, 0x0e, 0x04, 0x2f, 0x71, 0x59, 0x26, 0xee, + 0x8e, 0x45, 0x1b, 0x75, 0x44, 0x62, 0x03, 0x79, 0xd7, 0x39, 0x5a, 0x9a, 0xde, 0x45, 0x1e, 0x74, + 0x1a, 0x55, 0x46, 0x9c, 0x7c, 0xe8, 0x1c, 0x2d, 0x49, 0xb6, 0xd8, 0x50, 0x99, 0x07, 0x93, 0x28, + 0x74, 0xab, 0xd4, 0x0f, 0x90, 0x3a, 0x5a, 0x94, 0x4a, 0xb2, 0x3d, 0x81, 0x42, 0xf7, 0xa9, 0x1f, + 0x20, 0x45, 0x05, 0x13, 0x2e, 0xda, 0x85, 0x0d, 0xe4, 0xaa, 0x63, 0x45, 0xa9, 0x34, 0x69, 0x27, + 0xb7, 0xe5, 0xfb, 0x3f, 0xdf, 0xeb, 0xd2, 0x4b, 0x96, 0xb8, 0x17, 0xd6, 0xab, 0xce, 0xd1, 0x92, + 0xd1, 0x53, 0x44, 0x06, 0x63, 0x63, 0x11, 0xe8, 0x19, 0x21, 0x1b, 0x91, 0x3a, 0x0e, 0x09, 0x32, + 0xbe, 0x8c, 0xf4, 0x68, 0x1e, 0xa3, 0x28, 0x80, 0x21, 0x0a, 0xe9, 0x23, 0xec, 0xec, 0x20, 0x37, + 0x69, 0x55, 0x39, 0xb5, 0x55, 0x73, 0xa7, 0x4d, 0xfd, 0x4a, 0x03, 0x06, 0xbb, 0x65, 0xa3, 0x37, + 0x6a, 0xf4, 0x77, 0xea, 0x6e, 0x4a, 0xa7, 0xae, 0x9e, 0x36, 0xf5, 0x19, 0xee, 0xfc, 0x13, 0x33, + 0xfe, 0x8f, 0x36, 0x95, 0xd7, 0x33, 0x89, 0xdf, 0x4c, 0x23, 0xce, 0x90, 0xf5, 0xd1, 0x32, 0x6e, + 0x83, 0x5b, 0x43, 0x80, 0x76, 0xe1, 0xbf, 0x39, 0x03, 0xdf, 0xc7, 0xae, 0xef, 0x9c, 0x99, 0x93, + 0xc5, 0x34, 0xf8, 0xfd, 0x8c, 0x17, 0xfe, 0x66, 0xdc, 0x0b, 0x73, 0x01, 0x00, 0x42, 0x61, 0x44, + 0xf9, 0xd1, 0x93, 0xe3, 0xa3, 0x97, 0x8f, 0x57, 0xe2, 0xc3, 0x67, 0x83, 0xcb, 0x62, 0xc2, 0xab, + 0xf5, 0xb8, 0x04, 0xa2, 0x8e, 0xc6, 0xd0, 0x35, 0x33, 0xfd, 0xcd, 0x63, 0xf2, 0x4a, 0x2b, 0x79, + 0x46, 0x9e, 0xc3, 0xbb, 0x24, 0x24, 0x3c, 0x42, 0x62, 0x88, 0xb9, 0x0b, 0x41, 0xf4, 0xb1, 0xcb, + 0x1e, 0x3c, 0x03, 0x62, 0x0a, 0x98, 0x04, 0xe2, 0xea, 0x67, 0x19, 0xc8, 0x5b, 0xc4, 0x53, 0x0e, + 0x25, 0x30, 0x9b, 0xfa, 0xa6, 0xb1, 0xb2, 0x9e, 0x23, 0x63, 0x36, 0x0a, 0x6b, 0x17, 0x34, 0x24, + 0xa5, 0x28, 0x6f, 0x25, 0x70, 0x7d, 0xe0, 0x24, 0x0d, 0xcf, 0x9c, 0x6e, 0x2c, 0xac, 0xff, 0xa3, + 0x31, 0xbd, 0xb4, 0xb4, 0x73, 0x76, 0xae, 0xd2, 0x52, 0x8c, 0xe7, 0x2b, 0x6d, 0x40, 0x03, 0x0b, + 0x63, 0x87, 0xec, 0x0c, 0x55, 0x1e, 0x1e, 0xb7, 0x34, 0xe9, 0xa4, 0xa5, 0x49, 0x3f, 0x5a, 0x9a, + 0xf4, 0xba, 0xad, 0xe5, 0x4e, 0xda, 0x5a, 0xee, 0x5b, 0x5b, 0xcb, 0x3d, 0x5f, 0x19, 0x38, 0xda, + 0x07, 0x16, 0xdc, 0xa3, 0xdb, 0xdd, 0xaf, 0x56, 0x3c, 0xe9, 0xb5, 0xf1, 0xf8, 0x03, 0x74, 0xe7, + 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x25, 0x64, 0x77, 0xbb, 0x5e, 0x07, 0x00, 0x00, } func (this *MsgCreateVestingAccount) Equal(that interface{}) bool { diff --git a/x/auth/vesting/types/vesting.pb.go b/x/auth/vesting/types/vesting.pb.go index 27cd62a7ee0c..266d0a48d6a0 100644 --- a/x/auth/vesting/types/vesting.pb.go +++ b/x/auth/vesting/types/vesting.pb.go @@ -300,46 +300,45 @@ func init() { } var fileDescriptor_89e80273ca606d6e = []byte{ - // 618 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x95, 0xcf, 0x8b, 0xd3, 0x40, - 0x14, 0xc7, 0x3b, 0xdb, 0xb5, 0xba, 0xb3, 0xba, 0x3f, 0xe2, 0xba, 0x74, 0x17, 0x36, 0xad, 0x51, - 0xa4, 0x16, 0x4d, 0xd8, 0xf5, 0xd6, 0x9b, 0x5d, 0x11, 0x44, 0x05, 0x29, 0xe2, 0xc1, 0x4b, 0x98, - 0x24, 0x63, 0x3a, 0x6c, 0x32, 0x53, 0x32, 0x93, 0xc5, 0xde, 0x3c, 0x8a, 0x17, 0x05, 0xf1, 0xa2, - 0x17, 0x41, 0x90, 0xc5, 0x53, 0xff, 0x8c, 0x05, 0x2f, 0x3d, 0x7a, 0x5a, 0xa5, 0x3d, 0xf4, 0xdf, - 0x90, 0x4c, 0x26, 0xd9, 0xd2, 0x1f, 0x1e, 0x8b, 0x97, 0x36, 0x33, 0xef, 0xcd, 0x7b, 0x9f, 0xef, - 0xeb, 0x37, 0x1d, 0x78, 0xd3, 0x65, 0x3c, 0x64, 0xdc, 0x3a, 0xc6, 0x5c, 0x10, 0xea, 0x5b, 0xc7, - 0xfb, 0x0e, 0x16, 0x68, 0x3f, 0x5b, 0x9b, 0x9d, 0x88, 0x09, 0xa6, 0x6d, 0xa7, 0x59, 0x66, 0xb6, - 0xab, 0xb2, 0x76, 0x37, 0x51, 0x48, 0x28, 0xb3, 0xe4, 0x67, 0x9a, 0xba, 0xbb, 0xe5, 0x33, 0x9f, - 0xc9, 0x47, 0x2b, 0x79, 0x52, 0xbb, 0xba, 0x6a, 0xe3, 0x20, 0x8e, 0xf3, 0x1e, 0x2e, 0x23, 0x74, - 0x22, 0x8e, 0x62, 0xd1, 0xce, 0xe3, 0xc9, 0x22, 0x8d, 0x1b, 0x83, 0x65, 0xa8, 0x35, 0x11, 0xc7, - 0x2f, 0x52, 0x80, 0xfb, 0xae, 0xcb, 0x62, 0x2a, 0xb4, 0x47, 0xf0, 0x72, 0x52, 0xd1, 0x46, 0xe9, - 0xba, 0x0c, 0xaa, 0xa0, 0xb6, 0x7a, 0x50, 0x35, 0x15, 0xae, 0x2c, 0xa0, 0xaa, 0x99, 0xc9, 0x71, - 0x75, 0xae, 0xb9, 0xdc, 0x3f, 0xab, 0x80, 0xd6, 0xaa, 0x73, 0xbe, 0xa5, 0x7d, 0x04, 0x70, 0x83, - 0x45, 0xc4, 0x27, 0x14, 0x05, 0xb6, 0xd2, 0x59, 0x5e, 0xaa, 0x16, 0x6b, 0xab, 0x07, 0x3b, 0x59, - 0xbd, 0x24, 0x3f, 0xaf, 0x77, 0xc8, 0x08, 0x6d, 0x3e, 0x3d, 0x3d, 0xab, 0x14, 0x7e, 0xfc, 0xae, - 0xd4, 0x7c, 0x22, 0xda, 0xb1, 0x63, 0xba, 0x2c, 0xb4, 0x94, 0x94, 0xf4, 0xeb, 0x2e, 0xf7, 0x8e, - 0x2c, 0xd1, 0xed, 0x60, 0x2e, 0x0f, 0xf0, 0xcf, 0xa3, 0x5e, 0xfd, 0x2a, 0x8d, 0x83, 0xc0, 0xe6, - 0x01, 0x71, 0xb1, 0x8d, 0xb8, 0x8d, 0xc3, 0x8e, 0xe8, 0x9e, 0x8c, 0x7a, 0x75, 0xd0, 0x5a, 0xcf, - 0x08, 0x94, 0x4e, 0xed, 0x3d, 0x80, 0x6b, 0x1e, 0x0e, 0xb0, 0x8f, 0x04, 0xf6, 0xec, 0x57, 0x11, - 0xc6, 0xe5, 0xe2, 0x82, 0x99, 0xae, 0xe4, 0xfd, 0x1f, 0x46, 0x18, 0x6b, 0x9f, 0x00, 0xdc, 0x3c, - 0x27, 0xca, 0x06, 0xb5, 0xbc, 0x60, 0xa8, 0x8d, 0x1c, 0x21, 0x9b, 0xd4, 0x0e, 0xbc, 0x84, 0xa9, - 0x67, 0x0b, 0x12, 0xe2, 0xf2, 0x85, 0x2a, 0xa8, 0x15, 0x5b, 0x17, 0x31, 0xf5, 0x9e, 0x93, 0x10, - 0x37, 0x6e, 0xbd, 0xfd, 0x5a, 0x29, 0xbc, 0x1b, 0xf5, 0xea, 0x7b, 0x63, 0xad, 0xa6, 0xdd, 0x64, - 0xfc, 0x04, 0xb0, 0x7c, 0xc8, 0xa8, 0x20, 0x34, 0x66, 0x31, 0x9f, 0xb0, 0x9a, 0x03, 0xb7, 0xa4, - 0xd5, 0x94, 0xe2, 0x09, 0xcb, 0xd5, 0xcd, 0xd9, 0x6f, 0x88, 0x39, 0xdd, 0x46, 0x99, 0x4f, 0x73, - 0xa6, 0xed, 0xbc, 0x07, 0x21, 0x17, 0x28, 0x12, 0xa9, 0x8a, 0x25, 0xa9, 0x62, 0x45, 0xee, 0x48, - 0x1d, 0x77, 0x32, 0x1d, 0x37, 0xc6, 0x74, 0xcc, 0x03, 0x36, 0xbe, 0x03, 0x78, 0xed, 0x01, 0x0e, - 0x50, 0x37, 0x9f, 0xd1, 0x02, 0xa5, 0x34, 0x6e, 0x67, 0xac, 0xd5, 0x31, 0xd6, 0x99, 0x38, 0xc6, - 0x37, 0x00, 0x4b, 0xcf, 0x70, 0x44, 0x98, 0xa7, 0x6d, 0xc3, 0x52, 0x80, 0xa9, 0x2f, 0xda, 0x92, - 0xa5, 0xd8, 0x52, 0x2b, 0xed, 0x0d, 0x80, 0x25, 0x14, 0x4a, 0xc8, 0x45, 0xbf, 0x92, 0xaa, 0xaf, - 0xf1, 0x65, 0x09, 0x6e, 0xa7, 0x94, 0xc4, 0xfd, 0xef, 0xac, 0xa1, 0xb5, 0xe0, 0x7a, 0xd6, 0xbd, - 0x23, 0x21, 0xb9, 0xfa, 0x9f, 0xd0, 0xe7, 0x75, 0x4f, 0xb5, 0x34, 0x57, 0x92, 0x69, 0xa5, 0x4a, - 0xd7, 0x54, 0x4a, 0x1a, 0xe1, 0x8d, 0x7a, 0xf6, 0x13, 0x5e, 0x1f, 0x9b, 0xdb, 0xec, 0x11, 0x18, - 0x27, 0x40, 0x4e, 0x27, 0x44, 0x14, 0x53, 0xf1, 0x84, 0xb9, 0x47, 0xd8, 0x5b, 0xa4, 0xdb, 0xe6, - 0xa1, 0xce, 0xe0, 0x69, 0x3e, 0x3e, 0x1d, 0xe8, 0xa0, 0x3f, 0xd0, 0xc1, 0x9f, 0x81, 0x0e, 0x3e, - 0x0c, 0xf5, 0x42, 0x7f, 0xa8, 0x17, 0x7e, 0x0d, 0xf5, 0xc2, 0xcb, 0xfd, 0x7f, 0x3a, 0xe6, 0xb5, - 0xba, 0x9c, 0xd4, 0x45, 0x29, 0x0d, 0xe4, 0x94, 0xe4, 0xf5, 0x74, 0xef, 0x6f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xe6, 0x60, 0xfb, 0xe0, 0x47, 0x07, 0x00, 0x00, + // 605 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x55, 0x4d, 0x6b, 0x13, 0x41, + 0x18, 0xce, 0x34, 0x35, 0xda, 0x69, 0xed, 0xc7, 0x52, 0x43, 0x5a, 0xe8, 0x26, 0xae, 0x22, 0x31, + 0xe8, 0x2e, 0xa9, 0xb7, 0xdc, 0x4c, 0xa5, 0x20, 0x7a, 0x90, 0x20, 0x1e, 0xbc, 0x84, 0xd9, 0xdd, + 0x71, 0x33, 0x34, 0x3b, 0x13, 0x76, 0x26, 0xc5, 0xfc, 0x83, 0x22, 0x22, 0x9e, 0xed, 0xc5, 0x93, + 0x14, 0x4f, 0xf9, 0x19, 0x05, 0x11, 0x72, 0xf4, 0x54, 0x25, 0x39, 0xe4, 0x6f, 0xc8, 0xce, 0xcc, + 0x6e, 0x43, 0x3e, 0x3c, 0x06, 0x2f, 0xc9, 0xbe, 0x1f, 0xf3, 0x3e, 0xcf, 0xf3, 0xe6, 0xd9, 0x0c, + 0xbc, 0xef, 0x31, 0x1e, 0x32, 0xee, 0x9c, 0x62, 0x2e, 0x08, 0x0d, 0x9c, 0xd3, 0xaa, 0x8b, 0x05, + 0xaa, 0x26, 0xb1, 0xdd, 0x89, 0x98, 0x60, 0x46, 0x5e, 0x75, 0xd9, 0x49, 0x56, 0x77, 0xed, 0xef, + 0xa0, 0x90, 0x50, 0xe6, 0xc8, 0x4f, 0xd5, 0xba, 0xbf, 0x1b, 0xb0, 0x80, 0xc9, 0x47, 0x27, 0x7e, + 0xd2, 0x59, 0x53, 0xc3, 0xb8, 0x88, 0xe3, 0x14, 0xc3, 0x63, 0x84, 0x4e, 0xd5, 0x51, 0x57, 0xb4, + 0xd2, 0x7a, 0x1c, 0xa8, 0xba, 0xf5, 0x73, 0x15, 0x1a, 0x75, 0xc4, 0xf1, 0x1b, 0x45, 0xe0, 0xa9, + 0xe7, 0xb1, 0x2e, 0x15, 0xc6, 0x73, 0xb8, 0x11, 0x4f, 0x6c, 0x22, 0x15, 0x17, 0x40, 0x09, 0x94, + 0xd7, 0x0f, 0x4b, 0xb6, 0xa6, 0x2b, 0x07, 0xe8, 0x69, 0x76, 0x7c, 0x5c, 0x9f, 0xab, 0xaf, 0x0e, + 0xae, 0x8a, 0xa0, 0xb1, 0xee, 0x5e, 0xa7, 0x8c, 0x8f, 0x00, 0x6e, 0xb3, 0x88, 0x04, 0x84, 0xa2, + 0x76, 0x53, 0xeb, 0x2c, 0xac, 0x94, 0xb2, 0xe5, 0xf5, 0xc3, 0xbd, 0x64, 0x5e, 0xdc, 0x9f, 0xce, + 0x3b, 0x62, 0x84, 0xd6, 0x8f, 0x2f, 0xaf, 0x8a, 0x99, 0xef, 0xbf, 0x8b, 0xe5, 0x80, 0x88, 0x56, + 0xd7, 0xb5, 0x3d, 0x16, 0x3a, 0x5a, 0x8a, 0xfa, 0x7a, 0xcc, 0xfd, 0x13, 0x47, 0xf4, 0x3a, 0x98, + 0xcb, 0x03, 0xfc, 0xcb, 0xb8, 0x5f, 0xd9, 0x68, 0xe3, 0x00, 0x79, 0xbd, 0x66, 0xac, 0x9f, 0x5f, + 0x8c, 0xfb, 0x15, 0xd0, 0xd8, 0x4a, 0xa0, 0xb5, 0x40, 0xe3, 0x0c, 0xc0, 0x4d, 0x1f, 0xc7, 0x8d, + 0x02, 0xfb, 0xcd, 0x77, 0x11, 0xc6, 0x85, 0xec, 0xb2, 0xc8, 0xdc, 0x4e, 0x81, 0x8f, 0x23, 0x8c, + 0x8d, 0x4f, 0x00, 0xee, 0x5c, 0x53, 0x49, 0x56, 0xb3, 0xba, 0x2c, 0x36, 0xdb, 0x29, 0x76, 0xb2, + 0x9b, 0x3d, 0x78, 0x0b, 0x53, 0xbf, 0x29, 0x48, 0x88, 0x0b, 0x37, 0x4a, 0xa0, 0x9c, 0x6d, 0xdc, + 0xc4, 0xd4, 0x7f, 0x4d, 0x42, 0x5c, 0x7b, 0x70, 0xf6, 0xb5, 0x98, 0xf9, 0x30, 0xee, 0x57, 0x0e, + 0x26, 0x30, 0x66, 0x8d, 0x63, 0xfd, 0x00, 0xb0, 0x70, 0xc4, 0xa8, 0x20, 0xb4, 0xcb, 0xba, 0x7c, + 0xca, 0x55, 0x2e, 0xdc, 0x95, 0xae, 0xd2, 0x52, 0xa7, 0xdc, 0x55, 0xb1, 0xe7, 0xbf, 0x0c, 0xf6, + 0x2c, 0x8c, 0xf6, 0x99, 0xe1, 0xce, 0x3a, 0xf7, 0x00, 0x42, 0x2e, 0x50, 0x24, 0x94, 0x8a, 0x15, + 0xa9, 0x62, 0x4d, 0x66, 0xa4, 0x8e, 0x47, 0x89, 0x8e, 0x7b, 0x13, 0x3a, 0x16, 0x11, 0xb6, 0xbe, + 0x01, 0x78, 0xe7, 0x19, 0x6e, 0xa3, 0x5e, 0xba, 0xa3, 0x25, 0x4a, 0xa9, 0x3d, 0x4c, 0xb8, 0x96, + 0x26, 0xb8, 0xce, 0xa5, 0x63, 0x9d, 0x03, 0x98, 0x7b, 0x85, 0x23, 0xc2, 0x7c, 0x23, 0x0f, 0x73, + 0x6d, 0x4c, 0x03, 0xd1, 0x92, 0x5c, 0xb2, 0x0d, 0x1d, 0x19, 0x3d, 0x98, 0x43, 0xa1, 0xe4, 0xb8, + 0xb4, 0x97, 0x4f, 0x03, 0x5a, 0xe7, 0x2b, 0x30, 0xaf, 0xd8, 0x11, 0xef, 0xbf, 0xb3, 0x84, 0xd1, + 0x80, 0x5b, 0x09, 0x7a, 0x47, 0x92, 0xe4, 0xfa, 0x1f, 0xc1, 0x5c, 0x84, 0xae, 0xb4, 0xd4, 0xd7, + 0xe2, 0x35, 0x29, 0xa5, 0x9b, 0xba, 0x45, 0x55, 0x78, 0xad, 0x92, 0xfc, 0x74, 0x77, 0x27, 0x16, + 0x36, 0x7f, 0x05, 0xd6, 0x05, 0x90, 0xdb, 0x09, 0x11, 0xc5, 0x54, 0xbc, 0x64, 0xde, 0x09, 0xf6, + 0x97, 0xe9, 0xb2, 0x45, 0x54, 0xe7, 0xf0, 0xa9, 0xbf, 0xb8, 0x1c, 0x9a, 0x60, 0x30, 0x34, 0xc1, + 0x9f, 0xa1, 0x09, 0x3e, 0x8f, 0xcc, 0xcc, 0x60, 0x64, 0x66, 0x7e, 0x8d, 0xcc, 0xcc, 0xdb, 0xea, + 0x3f, 0xad, 0xf2, 0x5e, 0xdf, 0x3f, 0xfa, 0x2e, 0x94, 0xce, 0x71, 0x73, 0xf2, 0x06, 0x7a, 0xf2, + 0x37, 0x00, 0x00, 0xff, 0xff, 0x47, 0xcb, 0xcd, 0xc9, 0x2a, 0x07, 0x00, 0x00, } func (m *BaseVestingAccount) Marshal() (dAtA []byte, err error) { diff --git a/x/bank/types/authz.pb.go b/x/bank/types/authz.pb.go index 2984aded7207..4f84c70591f6 100644 --- a/x/bank/types/authz.pb.go +++ b/x/bank/types/authz.pb.go @@ -94,30 +94,30 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/authz.proto", fileDescriptor_a4d2a37888ea779f) } var fileDescriptor_a4d2a37888ea779f = []byte{ - // 365 bytes of a gzipped FileDescriptorProto + // 356 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4f, 0xce, 0x2f, 0xce, 0xcd, 0x2f, 0xd6, 0x4f, 0x4a, 0xcc, 0xcb, 0xd6, 0x2f, 0x33, 0x4c, 0x4a, 0x2d, 0x49, 0x34, 0xd4, 0x4f, 0x2c, 0x2d, 0xc9, 0xa8, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x86, 0x28, 0xd0, 0x03, 0x29, 0xd0, 0x83, 0x2a, 0x90, 0x12, 0x4c, 0xcc, 0xcd, 0xcc, 0xcb, 0xd7, 0x07, 0x93, 0x10, 0x75, 0x52, 0x22, 0xe9, 0xf9, 0xe9, 0xf9, 0x60, 0xa6, 0x3e, 0x88, 0x05, 0x15, 0x95, 0x84, 0xe8, 0x8e, 0x87, 0x48, 0x40, 0x8d, 0x82, 0x48, 0xc9, 0xc1, 0x6d, 0x2e, 0x4e, 0x85, 0xdb, 0x9c, 0x9c, - 0x9f, 0x99, 0x07, 0x91, 0x57, 0x5a, 0xc8, 0xc4, 0x25, 0x18, 0x9c, 0x9a, 0x97, 0xe2, 0x58, 0x5a, - 0x92, 0x91, 0x5f, 0x94, 0x59, 0x95, 0x58, 0x92, 0x99, 0x9f, 0x27, 0xd4, 0xc9, 0xc8, 0xc5, 0x5d, + 0x9f, 0x99, 0x07, 0x91, 0x57, 0x9a, 0xc5, 0xc4, 0x25, 0x18, 0x9c, 0x9a, 0x97, 0xe2, 0x58, 0x5a, + 0x92, 0x91, 0x5f, 0x94, 0x59, 0x95, 0x58, 0x92, 0x99, 0x9f, 0x27, 0xd4, 0xc4, 0xc8, 0xc5, 0x5d, 0x5c, 0x90, 0x9a, 0x97, 0x12, 0x9f, 0x93, 0x99, 0x9b, 0x59, 0x22, 0xc1, 0xa8, 0xc0, 0xac, 0xc1, 0x6d, 0x24, 0xa9, 0x07, 0x77, 0x65, 0x71, 0x2a, 0xcc, 0x95, 0x7a, 0xce, 0xf9, 0x99, 0x79, 0x4e, - 0xbe, 0x27, 0xee, 0xc9, 0x33, 0xac, 0xba, 0x2f, 0xaf, 0x91, 0x9e, 0x59, 0x92, 0x51, 0x9a, 0xa4, + 0x6e, 0x27, 0xee, 0xc9, 0x33, 0xac, 0xba, 0x2f, 0xaf, 0x91, 0x9e, 0x59, 0x92, 0x51, 0x9a, 0xa4, 0x97, 0x9c, 0x9f, 0x0b, 0x75, 0x07, 0x94, 0xd2, 0x2d, 0x4e, 0xc9, 0xd6, 0x2f, 0xa9, 0x2c, 0x48, - 0x2d, 0x06, 0x6b, 0x28, 0x9e, 0xf5, 0x7c, 0x83, 0x96, 0x70, 0x5e, 0x69, 0x4e, 0x4e, 0x7c, 0x71, - 0x4e, 0x66, 0x72, 0x6a, 0x7c, 0x62, 0x71, 0x7c, 0x6a, 0x6e, 0x41, 0x49, 0xe5, 0x8a, 0xe7, 0x1b, - 0xb4, 0x18, 0x83, 0xb8, 0xc0, 0x96, 0xfb, 0x80, 0xec, 0x16, 0x32, 0xe7, 0xe2, 0x4a, 0xcc, 0xc9, - 0xc9, 0x2f, 0x8f, 0xcf, 0xc9, 0x2c, 0x2e, 0x91, 0x60, 0x52, 0x60, 0xd6, 0xe0, 0x74, 0x92, 0xb8, - 0xb4, 0x45, 0x57, 0x04, 0xea, 0x18, 0xc7, 0x94, 0x94, 0xa2, 0xd4, 0xe2, 0xe2, 0xe0, 0x92, 0xa2, - 0xcc, 0xbc, 0xf4, 0x20, 0x4e, 0xb0, 0x5a, 0x9f, 0xcc, 0xe2, 0x12, 0x2b, 0xf7, 0x53, 0x5b, 0x74, - 0x95, 0xa0, 0x8a, 0x20, 0x61, 0x0d, 0x73, 0x32, 0x8a, 0x67, 0xbb, 0x9e, 0x6f, 0xd0, 0x92, 0x41, - 0x72, 0x24, 0x46, 0x68, 0x38, 0x39, 0x9f, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, - 0x47, 0x72, 0x8c, 0x13, 0x1e, 0xcb, 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, - 0x94, 0x26, 0x5e, 0xef, 0x56, 0x40, 0xe2, 0x1b, 0xec, 0xeb, 0x24, 0x36, 0x70, 0x78, 0x1b, 0x03, - 0x02, 0x00, 0x00, 0xff, 0xff, 0x3f, 0x32, 0xe9, 0x50, 0x0b, 0x02, 0x00, 0x00, + 0x2d, 0x06, 0x6b, 0x28, 0x9e, 0xf5, 0x7c, 0x83, 0x16, 0x4f, 0x4e, 0x6a, 0x7a, 0x62, 0x72, 0x65, + 0x3c, 0xc8, 0x39, 0xc5, 0x2b, 0x9e, 0x6f, 0xd0, 0x62, 0x0c, 0xe2, 0x02, 0xdb, 0xea, 0x03, 0xb2, + 0x54, 0xc8, 0x9c, 0x8b, 0x2b, 0x31, 0x27, 0x27, 0xbf, 0x3c, 0x3e, 0x27, 0xb3, 0xb8, 0x44, 0x82, + 0x49, 0x81, 0x59, 0x83, 0xd3, 0x49, 0xe2, 0xd2, 0x16, 0x5d, 0x11, 0xa8, 0x2b, 0x1c, 0x53, 0x52, + 0x8a, 0x52, 0x8b, 0x8b, 0x83, 0x4b, 0x8a, 0x32, 0xf3, 0xd2, 0x83, 0x38, 0xc1, 0x6a, 0x7d, 0x32, + 0x8b, 0x4b, 0xac, 0xdc, 0x4f, 0x6d, 0xd1, 0x55, 0x82, 0x2a, 0x82, 0x04, 0x32, 0xcc, 0xad, 0x28, + 0xbe, 0xec, 0x7a, 0xbe, 0x41, 0x4b, 0x06, 0xc9, 0x75, 0x18, 0xc1, 0xe0, 0xe4, 0x7c, 0xe2, 0x91, + 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, 0xe1, + 0xb1, 0x1c, 0xc3, 0x8d, 0xc7, 0x72, 0x0c, 0x51, 0x9a, 0x78, 0xfd, 0x59, 0x01, 0x89, 0x68, 0xb0, + 0x77, 0x93, 0xd8, 0xc0, 0x01, 0x6d, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x31, 0x64, 0xff, 0x07, + 0x04, 0x02, 0x00, 0x00, } func (m *SendAuthorization) Marshal() (dAtA []byte, err error) { diff --git a/x/bank/types/bank.pb.go b/x/bank/types/bank.pb.go index 956dd99598f4..19dd28219e85 100644 --- a/x/bank/types/bank.pb.go +++ b/x/bank/types/bank.pb.go @@ -463,50 +463,50 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/bank.proto", fileDescriptor_dd052eee12edf988) } var fileDescriptor_dd052eee12edf988 = []byte{ - // 688 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x54, 0xbf, 0x6f, 0x13, 0x49, - 0x14, 0xf6, 0xd8, 0xf1, 0x8f, 0x8c, 0xef, 0x8a, 0x9b, 0x58, 0x77, 0x93, 0x9c, 0x6e, 0x6d, 0xb9, - 0x38, 0x39, 0x96, 0x62, 0x93, 0xd0, 0xb9, 0x41, 0x38, 0x20, 0x70, 0x11, 0x81, 0x36, 0x8a, 0x90, - 0x68, 0x56, 0x63, 0xef, 0x60, 0x8f, 0xb2, 0x3b, 0xb3, 0xda, 0x99, 0x8d, 0xe2, 0x86, 0x82, 0x0a, - 0xa5, 0xa2, 0xa6, 0x8a, 0xa8, 0x10, 0x95, 0x25, 0xf2, 0x37, 0xa0, 0x88, 0x2a, 0x50, 0x51, 0x05, - 0xe4, 0x14, 0xce, 0x9f, 0x81, 0x76, 0x66, 0xd7, 0x71, 0xa4, 0x40, 0x89, 0x44, 0x63, 0xbf, 0xf7, - 0xbe, 0x6f, 0xdf, 0xfb, 0xde, 0x8f, 0x5d, 0x68, 0x0d, 0x84, 0xf4, 0x85, 0x6c, 0xf7, 0x09, 0xdf, - 0x6f, 0x1f, 0x6c, 0xf6, 0xa9, 0x22, 0x9b, 0xda, 0x69, 0x05, 0xa1, 0x50, 0x02, 0xad, 0x18, 0xbc, - 0xa5, 0x43, 0x09, 0xbe, 0x56, 0x19, 0x8a, 0xa1, 0xd0, 0x78, 0x3b, 0xb6, 0x0c, 0x75, 0x6d, 0xd5, - 0x50, 0x1d, 0x03, 0x24, 0xcf, 0x19, 0xe8, 0xaa, 0x8a, 0xa4, 0xf3, 0x2a, 0x03, 0xc1, 0x78, 0x82, - 0xff, 0x93, 0xe0, 0xbe, 0x1c, 0xb6, 0x0f, 0x36, 0xe3, 0xbf, 0x04, 0xf8, 0x8b, 0xf8, 0x8c, 0x8b, - 0xb6, 0xfe, 0x35, 0xa1, 0xfa, 0x1b, 0x00, 0x0b, 0x8f, 0x49, 0x48, 0x7c, 0x89, 0x1e, 0xc0, 0x3f, - 0x24, 0xe5, 0xae, 0x43, 0x39, 0xe9, 0x7b, 0xd4, 0xc5, 0xa0, 0x96, 0x6b, 0x94, 0xb7, 0x6a, 0xad, - 0x1b, 0x34, 0xb7, 0x76, 0x29, 0x77, 0xef, 0x1b, 0x5e, 0x37, 0x8b, 0x81, 0x5d, 0x96, 0x57, 0x01, - 0x74, 0x0b, 0x56, 0x5c, 0xfa, 0x8c, 0x44, 0x9e, 0x72, 0xae, 0x25, 0xcc, 0xd6, 0x40, 0xa3, 0x64, - 0xa3, 0x04, 0x5b, 0x48, 0xd1, 0xf9, 0xef, 0x68, 0x36, 0x69, 0x62, 0x53, 0x68, 0x43, 0xba, 0xfb, - 0xed, 0x43, 0x33, 0x42, 0xa3, 0xac, 0xbe, 0x0d, 0xcb, 0x0b, 0x6c, 0x54, 0x81, 0x79, 0x97, 0x72, - 0xe1, 0x63, 0x50, 0x03, 0x8d, 0x65, 0xdb, 0x38, 0x08, 0xc3, 0xe2, 0xf5, 0x42, 0xa9, 0xdb, 0x59, - 0xba, 0x3c, 0xae, 0x82, 0xfa, 0x27, 0x00, 0xf3, 0x3d, 0x1e, 0x44, 0x0a, 0x6d, 0xc1, 0x22, 0x71, - 0xdd, 0x90, 0x4a, 0x69, 0x32, 0x74, 0xf1, 0xe7, 0x93, 0x8d, 0x4a, 0xd2, 0xe6, 0x5d, 0x83, 0xec, - 0xaa, 0x90, 0xf1, 0xa1, 0x9d, 0x12, 0xd1, 0x73, 0x98, 0x8f, 0x27, 0x2c, 0x71, 0x56, 0x4f, 0x65, - 0xf5, 0x6a, 0x2a, 0x92, 0xce, 0xa7, 0xb2, 0x2d, 0x18, 0xef, 0xee, 0x9c, 0x9e, 0x57, 0x33, 0xef, - 0xbe, 0x56, 0x1b, 0x43, 0xa6, 0x46, 0x51, 0xbf, 0x35, 0x10, 0x7e, 0xb2, 0xbe, 0xf6, 0x42, 0x83, - 0x6a, 0x1c, 0x50, 0xa9, 0x1f, 0x90, 0xaf, 0x67, 0x93, 0xe6, 0x0a, 0x8f, 0x3c, 0xcf, 0x91, 0x1e, - 0x1b, 0x50, 0x87, 0x48, 0x87, 0xfa, 0x81, 0x1a, 0xbf, 0x9d, 0x4d, 0x9a, 0xc0, 0x36, 0x65, 0x3b, - 0x95, 0x97, 0xc7, 0xd5, 0xcc, 0xe5, 0x71, 0x35, 0xf3, 0x62, 0x36, 0x69, 0xa6, 0xaa, 0xea, 0x1f, - 0x00, 0x2c, 0x3c, 0x8a, 0xd4, 0xef, 0xda, 0x54, 0x29, 0x6d, 0xaa, 0xfe, 0x1e, 0xc0, 0xc2, 0x6e, - 0x14, 0x04, 0xde, 0x38, 0x16, 0xa5, 0x84, 0x22, 0x5e, 0x72, 0x7f, 0xbf, 0x50, 0x94, 0x2e, 0xdb, - 0x59, 0x4f, 0x44, 0x81, 0x8f, 0x27, 0x1b, 0xff, 0xde, 0x78, 0xfb, 0x5a, 0x67, 0x0f, 0x83, 0xfa, - 0x13, 0xb8, 0x7c, 0x2f, 0xbe, 0xbd, 0x3d, 0xce, 0xd4, 0x0f, 0xae, 0x72, 0x0d, 0x96, 0xe8, 0x61, - 0x20, 0x38, 0xe5, 0x4a, 0x9f, 0xe5, 0x9f, 0xf6, 0xdc, 0x8f, 0x2f, 0x96, 0x78, 0x8c, 0x48, 0x2a, - 0x71, 0xae, 0x96, 0x6b, 0x2c, 0xdb, 0xa9, 0x5b, 0x3f, 0xca, 0xc2, 0xd2, 0x0e, 0x55, 0xc4, 0x25, - 0x8a, 0xa0, 0x1a, 0x2c, 0xbb, 0x54, 0x0e, 0x42, 0x16, 0x28, 0x26, 0x78, 0x92, 0x7e, 0x31, 0x84, - 0xee, 0xc4, 0x0c, 0x2e, 0x7c, 0x27, 0xe2, 0x4c, 0xa5, 0xdb, 0xb4, 0x6e, 0x7c, 0x71, 0xe7, 0x7a, - 0x6d, 0xe8, 0xa6, 0xa6, 0x44, 0x08, 0x2e, 0xc5, 0xe3, 0xc5, 0x39, 0x9d, 0x5b, 0xdb, 0xb1, 0x3a, - 0x97, 0xc9, 0xc0, 0x23, 0x63, 0xbc, 0xa4, 0xc3, 0xa9, 0x1b, 0xb3, 0x39, 0xf1, 0x29, 0xce, 0x1b, - 0x76, 0x6c, 0xa3, 0xbf, 0x61, 0x41, 0x8e, 0xfd, 0xbe, 0xf0, 0x70, 0x41, 0x47, 0x13, 0x0f, 0xad, - 0xc2, 0x5c, 0x14, 0x32, 0x5c, 0xd4, 0x27, 0x59, 0x9c, 0x9e, 0x57, 0x73, 0x7b, 0x76, 0xcf, 0x8e, - 0x63, 0xe8, 0x7f, 0x58, 0x8a, 0x42, 0xe6, 0x8c, 0x88, 0x1c, 0xe1, 0x92, 0xc6, 0xcb, 0xd3, 0xf3, - 0x6a, 0x71, 0xcf, 0xee, 0x3d, 0x24, 0x72, 0x64, 0x17, 0xa3, 0x90, 0xc5, 0x46, 0x77, 0xfb, 0x74, - 0x6a, 0x81, 0xb3, 0xa9, 0x05, 0xbe, 0x4d, 0x2d, 0xf0, 0xea, 0xc2, 0xca, 0x9c, 0x5d, 0x58, 0x99, - 0x2f, 0x17, 0x56, 0xe6, 0xe9, 0xfa, 0x4f, 0x17, 0x9f, 0x7c, 0x43, 0xf4, 0xfe, 0xfb, 0x05, 0xfd, - 0xb9, 0xbb, 0xfd, 0x3d, 0x00, 0x00, 0xff, 0xff, 0x85, 0xe4, 0x67, 0xe8, 0xa2, 0x05, 0x00, 0x00, + // 677 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x54, 0xbd, 0x6f, 0xd3, 0x40, + 0x14, 0xcf, 0x25, 0xcd, 0x47, 0x2f, 0x65, 0xe0, 0x88, 0xe0, 0x5a, 0x84, 0x13, 0x65, 0x40, 0x69, + 0xa4, 0x26, 0xb4, 0x6c, 0x59, 0x10, 0x29, 0x5f, 0x19, 0x10, 0xc8, 0x55, 0x85, 0xc4, 0x12, 0x5d, + 0xe2, 0x23, 0x39, 0xd5, 0xbe, 0xb3, 0x7c, 0xe7, 0xd2, 0xac, 0x4c, 0xa8, 0x13, 0x33, 0x53, 0xc5, + 0x84, 0x10, 0x43, 0x86, 0xee, 0xac, 0x55, 0xa7, 0x8a, 0x89, 0xa9, 0xa0, 0x74, 0x48, 0xff, 0x0c, + 0xe4, 0x3b, 0x3b, 0x4d, 0xa5, 0xc2, 0x88, 0xc4, 0x92, 0xbc, 0xf7, 0x7e, 0x3f, 0xbf, 0xf7, 0x7b, + 0x1f, 0x36, 0xb4, 0xfa, 0x42, 0x7a, 0x42, 0x36, 0x7b, 0x84, 0xef, 0x34, 0x77, 0xd7, 0x7b, 0x54, + 0x91, 0x75, 0xed, 0x34, 0xfc, 0x40, 0x28, 0x81, 0x6e, 0x18, 0xbc, 0xa1, 0x43, 0x31, 0xbe, 0x52, + 0x1a, 0x88, 0x81, 0xd0, 0x78, 0x33, 0xb2, 0x0c, 0x75, 0x65, 0xd9, 0x50, 0xbb, 0x06, 0x88, 0x9f, + 0x33, 0xd0, 0x45, 0x15, 0x49, 0x67, 0x55, 0xfa, 0x82, 0xf1, 0x18, 0xbf, 0x15, 0xe3, 0x9e, 0x1c, + 0x34, 0x77, 0xd7, 0xa3, 0xbf, 0x18, 0xb8, 0x4e, 0x3c, 0xc6, 0x45, 0x53, 0xff, 0x9a, 0x50, 0xf5, + 0x13, 0x80, 0xb9, 0x97, 0x24, 0x20, 0x9e, 0x44, 0x4f, 0xe1, 0x92, 0xa4, 0xdc, 0xe9, 0x52, 0x4e, + 0x7a, 0x2e, 0x75, 0x30, 0xa8, 0x64, 0x6a, 0xc5, 0x8d, 0x4a, 0xe3, 0x0a, 0xcd, 0x8d, 0x2d, 0xca, + 0x9d, 0xc7, 0x86, 0xd7, 0x4e, 0x63, 0x60, 0x17, 0xe5, 0x45, 0x00, 0xdd, 0x83, 0x25, 0x87, 0xbe, + 0x21, 0xa1, 0xab, 0xba, 0x97, 0x12, 0xa6, 0x2b, 0xa0, 0x56, 0xb0, 0x51, 0x8c, 0xcd, 0xa5, 0x68, + 0xdd, 0xd9, 0x9f, 0x8e, 0xeb, 0xd8, 0x14, 0x5a, 0x93, 0xce, 0x4e, 0x73, 0xcf, 0x8c, 0xd0, 0x28, + 0xab, 0x6e, 0xc2, 0xe2, 0x1c, 0x1b, 0x95, 0x60, 0xd6, 0xa1, 0x5c, 0x78, 0x18, 0x54, 0x40, 0x6d, + 0xd1, 0x36, 0x0e, 0xc2, 0x30, 0x7f, 0xb9, 0x50, 0xe2, 0xb6, 0x16, 0xce, 0x0f, 0xca, 0xa0, 0x7a, + 0x0c, 0x60, 0xb6, 0xc3, 0xfd, 0x50, 0xa1, 0x0d, 0x98, 0x27, 0x8e, 0x13, 0x50, 0x29, 0x4d, 0x86, + 0x36, 0xfe, 0x7e, 0xb8, 0x56, 0x8a, 0xdb, 0x7c, 0x68, 0x90, 0x2d, 0x15, 0x30, 0x3e, 0xb0, 0x13, + 0x22, 0x7a, 0x0b, 0xb3, 0xd1, 0x84, 0x25, 0x4e, 0xeb, 0xa9, 0x2c, 0x5f, 0x4c, 0x45, 0xd2, 0xd9, + 0x54, 0x36, 0x05, 0xe3, 0xed, 0x27, 0x47, 0xa7, 0xe5, 0xd4, 0x97, 0x9f, 0xe5, 0xda, 0x80, 0xa9, + 0x61, 0xd8, 0x6b, 0xf4, 0x85, 0x17, 0xaf, 0xaf, 0x39, 0xd7, 0xa0, 0x1a, 0xf9, 0x54, 0xea, 0x07, + 0xe4, 0xc7, 0xe9, 0xb8, 0xbe, 0xe4, 0xd2, 0x01, 0xe9, 0x8f, 0xba, 0xba, 0xc6, 0xe7, 0xe9, 0xb8, + 0x0e, 0x6c, 0x53, 0xaf, 0x55, 0x7a, 0x7f, 0x50, 0x4e, 0x9d, 0x1f, 0x94, 0x53, 0xef, 0xa6, 0xe3, + 0x7a, 0x22, 0xa7, 0xfa, 0x0d, 0xc0, 0xdc, 0x8b, 0x50, 0xfd, 0x77, 0xdd, 0x14, 0x92, 0x6e, 0xaa, + 0x5f, 0x01, 0xcc, 0x6d, 0x85, 0xbe, 0xef, 0x8e, 0x22, 0x35, 0x4a, 0x28, 0xe2, 0xc6, 0x17, 0xf7, + 0x2f, 0xd4, 0xe8, 0x7a, 0xad, 0xd5, 0x58, 0x0d, 0x38, 0x3e, 0x5c, 0xbb, 0x7d, 0xe5, 0x99, 0x6b, + 0x81, 0x1d, 0x0c, 0xaa, 0xaf, 0xe0, 0xe2, 0xa3, 0xe8, 0xcc, 0xb6, 0x39, 0x53, 0x7f, 0x38, 0xc0, + 0x15, 0x58, 0xa0, 0x7b, 0xbe, 0xe0, 0x94, 0x2b, 0x7d, 0x81, 0xd7, 0xec, 0x99, 0x1f, 0x1d, 0x27, + 0x71, 0x19, 0x91, 0x54, 0xe2, 0x4c, 0x25, 0x53, 0x5b, 0xb4, 0x13, 0xb7, 0xba, 0x9f, 0x86, 0x85, + 0xe7, 0x54, 0x11, 0x87, 0x28, 0x82, 0x2a, 0xb0, 0xe8, 0x50, 0xd9, 0x0f, 0x98, 0xaf, 0x98, 0xe0, + 0x71, 0xfa, 0xf9, 0x10, 0x7a, 0x10, 0x31, 0xb8, 0xf0, 0xba, 0x21, 0x67, 0x2a, 0xd9, 0x9f, 0x75, + 0xe5, 0x3b, 0x3a, 0xd3, 0x6b, 0x43, 0x27, 0x31, 0x25, 0x42, 0x70, 0x21, 0x9a, 0x2b, 0xce, 0xe8, + 0xdc, 0xda, 0x8e, 0xd4, 0x39, 0x4c, 0xfa, 0x2e, 0x19, 0xe1, 0x05, 0x1d, 0x4e, 0xdc, 0x88, 0xcd, + 0x89, 0x47, 0x71, 0xd6, 0xb0, 0x23, 0x1b, 0xdd, 0x84, 0x39, 0x39, 0xf2, 0x7a, 0xc2, 0xc5, 0x39, + 0x1d, 0x8d, 0x3d, 0xb4, 0x0c, 0x33, 0x61, 0xc0, 0x70, 0x5e, 0x1f, 0x61, 0x7e, 0x72, 0x5a, 0xce, + 0x6c, 0xdb, 0x1d, 0x3b, 0x8a, 0xa1, 0xbb, 0xb0, 0x10, 0x06, 0xac, 0x3b, 0x24, 0x72, 0x88, 0x0b, + 0x1a, 0x2f, 0x4e, 0x4e, 0xcb, 0xf9, 0x6d, 0xbb, 0xf3, 0x8c, 0xc8, 0xa1, 0x9d, 0x0f, 0x03, 0x16, + 0x19, 0xed, 0xcd, 0xa3, 0x89, 0x05, 0x4e, 0x26, 0x16, 0xf8, 0x35, 0xb1, 0xc0, 0x87, 0x33, 0x2b, + 0x75, 0x72, 0x66, 0xa5, 0x7e, 0x9c, 0x59, 0xa9, 0xd7, 0xab, 0x7f, 0xdd, 0x78, 0xfc, 0xb9, 0xd0, + 0x8b, 0xef, 0xe5, 0xf4, 0x97, 0xed, 0xfe, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9f, 0x47, 0xd8, + 0x49, 0x8d, 0x05, 0x00, 0x00, } func (this *SendEnabled) Equal(that interface{}) bool { diff --git a/x/bank/types/genesis.pb.go b/x/bank/types/genesis.pb.go index 1cbe1661f781..8bbafac80599 100644 --- a/x/bank/types/genesis.pb.go +++ b/x/bank/types/genesis.pb.go @@ -162,37 +162,36 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/genesis.proto", fileDescriptor_8f007de11b420c6e) } var fileDescriptor_8f007de11b420c6e = []byte{ - // 469 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x93, 0xb1, 0x6f, 0xd3, 0x40, - 0x14, 0xc6, 0x6d, 0x42, 0xd3, 0xf6, 0x52, 0x90, 0xb8, 0x76, 0x70, 0x0b, 0x38, 0xa1, 0x53, 0xa8, - 0x54, 0x5b, 0x0d, 0x1b, 0x03, 0x12, 0x8e, 0x10, 0x53, 0x01, 0x35, 0x1b, 0x8b, 0x75, 0xf6, 0x3d, - 0x19, 0xab, 0xf6, 0x9d, 0x95, 0x77, 0x41, 0x64, 0x41, 0x8c, 0x8c, 0xcc, 0x4c, 0x1d, 0x11, 0x53, - 0x07, 0x24, 0xfe, 0x04, 0x3a, 0x56, 0x4c, 0x4c, 0x80, 0x92, 0xa1, 0xfc, 0x19, 0x28, 0x77, 0x97, - 0x34, 0x12, 0x16, 0x63, 0x17, 0xdb, 0xba, 0xef, 0x7b, 0xbf, 0xef, 0xbd, 0xbb, 0x33, 0xb9, 0x97, - 0x4a, 0x2c, 0x25, 0x86, 0x09, 0x13, 0xc7, 0xe1, 0xeb, 0x83, 0x04, 0x14, 0x3b, 0x08, 0x33, 0x10, - 0x80, 0x39, 0x06, 0xd5, 0x50, 0x2a, 0x49, 0x37, 0x8d, 0x25, 0x98, 0x59, 0x02, 0x6b, 0xd9, 0xd9, - 0xca, 0x64, 0x26, 0xb5, 0x1e, 0xce, 0xbe, 0x8c, 0x75, 0xc7, 0x5f, 0xd0, 0x10, 0x16, 0xb4, 0x54, - 0xe6, 0xe2, 0x1f, 0x7d, 0x29, 0x4d, 0x73, 0x8d, 0xbe, 0x6d, 0xf4, 0xd8, 0x80, 0x6d, 0xae, 0x91, - 0x6e, 0xb1, 0x32, 0x17, 0x32, 0xd4, 0x4f, 0xb3, 0xb4, 0xfb, 0xb5, 0x41, 0x36, 0x9e, 0x9a, 0x56, - 0x07, 0x8a, 0x29, 0xa0, 0x8f, 0x48, 0xb3, 0x62, 0x43, 0x56, 0xa2, 0xe7, 0x76, 0xdc, 0x6e, 0xab, - 0x77, 0x3b, 0xa8, 0x69, 0x3d, 0x78, 0xa1, 0x2d, 0xd1, 0xfa, 0xd9, 0xcf, 0xb6, 0xf3, 0xe9, 0xe2, - 0x74, 0xcf, 0x3d, 0xb2, 0x55, 0xb4, 0x4f, 0xd6, 0x12, 0x56, 0x30, 0x91, 0x02, 0x7a, 0xd7, 0x3a, - 0x8d, 0x6e, 0xab, 0x77, 0xa7, 0x96, 0x10, 0x19, 0xd3, 0x32, 0x62, 0x51, 0x48, 0xdf, 0xb9, 0xa4, - 0x89, 0xa3, 0xaa, 0x2a, 0xc6, 0x5e, 0x43, 0x33, 0xb6, 0x2f, 0x19, 0x08, 0x0b, 0x46, 0x5f, 0xe6, - 0x22, 0x3a, 0x9c, 0x01, 0x3e, 0xff, 0x6a, 0x77, 0xb3, 0x5c, 0xbd, 0x1a, 0x25, 0x41, 0x2a, 0x4b, - 0x3b, 0xb5, 0x7d, 0xed, 0x23, 0x3f, 0x0e, 0xd5, 0xb8, 0x02, 0xd4, 0x05, 0xf8, 0xf1, 0xe2, 0x74, - 0x6f, 0x53, 0x8c, 0x8a, 0x22, 0xc6, 0x22, 0x4f, 0x21, 0x66, 0x18, 0x43, 0x59, 0xa9, 0xb1, 0x9d, - 0xc3, 0xe4, 0xd2, 0xe7, 0xe4, 0x26, 0x07, 0x21, 0xcb, 0xb8, 0x04, 0xc5, 0x38, 0x53, 0xcc, 0xbb, - 0xae, 0x3b, 0xb9, 0x5b, 0x3b, 0xcd, 0xa1, 0x35, 0x2d, 0x8f, 0x73, 0x43, 0xd7, 0xcf, 0x15, 0xfa, - 0x8c, 0x6c, 0x20, 0x08, 0x1e, 0x83, 0x60, 0x49, 0x01, 0xdc, 0x5b, 0xd1, 0xb8, 0x4e, 0x2d, 0x6e, - 0x00, 0x82, 0x3f, 0x31, 0xbe, 0x65, 0x62, 0x0b, 0x2f, 0xd7, 0x77, 0xbf, 0xb9, 0x64, 0xd5, 0x6e, - 0x22, 0xed, 0x91, 0x55, 0xc6, 0xf9, 0x10, 0xd0, 0x9c, 0xda, 0x7a, 0xe4, 0x7d, 0xff, 0xb2, 0xbf, - 0x65, 0xc9, 0x8f, 0x8d, 0x32, 0x50, 0xc3, 0x5c, 0x64, 0x47, 0x73, 0x23, 0x7d, 0x4b, 0x56, 0x66, - 0xb7, 0x6a, 0x7e, 0x4a, 0x57, 0xb7, 0xc3, 0x26, 0xf6, 0xe1, 0xda, 0xfb, 0x93, 0xb6, 0xf3, 0xe7, - 0xa4, 0xed, 0x44, 0xfd, 0xb3, 0x89, 0xef, 0x9e, 0x4f, 0x7c, 0xf7, 0xf7, 0xc4, 0x77, 0x3f, 0x4c, - 0x7d, 0xe7, 0x7c, 0xea, 0x3b, 0x3f, 0xa6, 0xbe, 0xf3, 0xf2, 0xfe, 0x7f, 0x13, 0xdf, 0x98, 0x7f, - 0x40, 0x07, 0x27, 0x4d, 0x7d, 0x9f, 0x1f, 0xfc, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xb7, 0x75, 0xe4, - 0x92, 0x8d, 0x03, 0x00, 0x00, + // 461 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x92, 0xbf, 0x6f, 0xd3, 0x40, + 0x14, 0xc7, 0x6d, 0x42, 0xd3, 0xf6, 0x12, 0x90, 0x38, 0x3a, 0xb8, 0x05, 0x9c, 0xd0, 0x29, 0x54, + 0xaa, 0xad, 0x86, 0x8d, 0x01, 0x09, 0x47, 0xc0, 0xc4, 0x0f, 0x35, 0x1b, 0x4b, 0x74, 0xf6, 0x3d, + 0x19, 0xab, 0xf1, 0x9d, 0x95, 0x77, 0x05, 0xf2, 0x1f, 0x30, 0x32, 0x33, 0x75, 0x44, 0x2c, 0x74, + 0xe0, 0x0f, 0x60, 0xec, 0x58, 0x31, 0x31, 0x01, 0x4a, 0x86, 0xf2, 0x67, 0x20, 0xdf, 0x5d, 0x5d, + 0x4b, 0x58, 0x8c, 0x5d, 0x12, 0xeb, 0xbe, 0xdf, 0xf7, 0xf9, 0xbe, 0xf7, 0xee, 0xc8, 0xdd, 0x44, + 0x62, 0x2e, 0x31, 0x8c, 0x99, 0x38, 0x08, 0xdf, 0xec, 0xc5, 0xa0, 0xd8, 0x5e, 0x98, 0x82, 0x00, + 0xcc, 0x30, 0x28, 0x66, 0x52, 0x49, 0x7a, 0xd3, 0x58, 0x82, 0xd2, 0x12, 0x58, 0xcb, 0xd6, 0x46, + 0x2a, 0x53, 0xa9, 0xf5, 0xb0, 0xfc, 0x32, 0xd6, 0x2d, 0xbf, 0xa2, 0x21, 0x54, 0xb4, 0x44, 0x66, + 0xe2, 0x1f, 0xbd, 0x96, 0xa6, 0xb9, 0x46, 0xdf, 0x34, 0xfa, 0xc4, 0x80, 0x6d, 0xae, 0x91, 0x6e, + 0xb0, 0x3c, 0x13, 0x32, 0xd4, 0xbf, 0xe6, 0x68, 0xfb, 0x4b, 0x8b, 0x74, 0x9f, 0x9a, 0x56, 0xc7, + 0x8a, 0x29, 0xa0, 0x0f, 0x49, 0xbb, 0x60, 0x33, 0x96, 0xa3, 0xe7, 0xf6, 0xdd, 0x41, 0x67, 0x78, + 0x2b, 0x68, 0x68, 0x3d, 0x78, 0xa9, 0x2d, 0xd1, 0xfa, 0xc9, 0xcf, 0x9e, 0xf3, 0xe9, 0xec, 0x78, + 0xc7, 0xdd, 0xb7, 0x55, 0x74, 0x44, 0xd6, 0x62, 0x36, 0x65, 0x22, 0x01, 0xf4, 0xae, 0xf4, 0x5b, + 0x83, 0xce, 0xf0, 0x76, 0x23, 0x21, 0x32, 0xa6, 0x3a, 0xa2, 0x2a, 0xa4, 0x73, 0xd2, 0xc6, 0xc3, + 0xa2, 0x98, 0xce, 0xbd, 0x96, 0x46, 0x6c, 0x5e, 0x20, 0x10, 0x2a, 0xc4, 0x48, 0x66, 0x22, 0x7a, + 0x52, 0xd6, 0x7f, 0xfe, 0xd5, 0x1b, 0xa4, 0x99, 0x7a, 0x7d, 0x18, 0x07, 0x89, 0xcc, 0xed, 0xd0, + 0xf6, 0x6f, 0x17, 0xf9, 0x41, 0xa8, 0xe6, 0x05, 0xa0, 0x2e, 0xc0, 0x8f, 0x67, 0xc7, 0x3b, 0xdd, + 0x29, 0xa4, 0x2c, 0x99, 0x4f, 0xca, 0xb5, 0xa2, 0xed, 0xdf, 0x04, 0xd2, 0x17, 0xe4, 0x3a, 0x07, + 0x21, 0xf3, 0x49, 0x0e, 0x8a, 0x71, 0xa6, 0x98, 0x77, 0x55, 0xb7, 0x70, 0xa7, 0x71, 0x8a, 0x67, + 0xd6, 0x54, 0x1f, 0xe3, 0x9a, 0xae, 0x3f, 0x57, 0xe8, 0x73, 0xd2, 0x45, 0x10, 0x7c, 0x02, 0x82, + 0xc5, 0x53, 0xe0, 0xde, 0x8a, 0xc6, 0xf5, 0x1b, 0x71, 0x63, 0x10, 0xfc, 0xb1, 0xf1, 0xd5, 0x89, + 0x1d, 0xbc, 0x38, 0xdf, 0xfe, 0xe6, 0x92, 0x55, 0xbb, 0x3c, 0x3a, 0x24, 0xab, 0x8c, 0xf3, 0x19, + 0xa0, 0xb9, 0xad, 0xf5, 0xc8, 0xfb, 0xfe, 0x75, 0x77, 0xc3, 0x92, 0x1f, 0x19, 0x65, 0xac, 0x66, + 0x99, 0x48, 0xf7, 0xcf, 0x8d, 0xf4, 0x2d, 0x59, 0xd1, 0x63, 0xdb, 0xdb, 0xb9, 0x84, 0xd5, 0x9a, + 0xbc, 0x07, 0x6b, 0xef, 0x8f, 0x7a, 0xce, 0x9f, 0xa3, 0x9e, 0x13, 0x8d, 0x4e, 0x16, 0xbe, 0x7b, + 0xba, 0xf0, 0xdd, 0xdf, 0x0b, 0xdf, 0xfd, 0xb0, 0xf4, 0x9d, 0xd3, 0xa5, 0xef, 0xfc, 0x58, 0xfa, + 0xce, 0xab, 0x7b, 0xff, 0x8d, 0x7a, 0x67, 0x1e, 0xbd, 0x4e, 0x8c, 0xdb, 0xfa, 0x01, 0xdf, 0xff, + 0x1b, 0x00, 0x00, 0xff, 0xff, 0x78, 0x65, 0xc7, 0x6b, 0x7e, 0x03, 0x00, 0x00, } func (m *GenesisState) Marshal() (dAtA []byte, err error) { diff --git a/x/bank/types/query.pb.go b/x/bank/types/query.pb.go index 1c681006177b..a9f873a613c4 100644 --- a/x/bank/types/query.pb.go +++ b/x/bank/types/query.pb.go @@ -1202,85 +1202,84 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/query.proto", fileDescriptor_9c6fc1939682df13) } var fileDescriptor_9c6fc1939682df13 = []byte{ - // 1236 bytes of a gzipped FileDescriptorProto + // 1225 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcf, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0xb4, 0xaa, 0x93, 0x3c, 0xa7, 0x95, 0x3a, 0x09, 0x34, 0xd9, 0x10, 0x3b, 0x6c, 0xaa, - 0xc6, 0x09, 0xc9, 0x6e, 0xe3, 0x20, 0x44, 0xab, 0x12, 0xa9, 0x4e, 0x69, 0x0f, 0xa8, 0x6a, 0x71, - 0xe8, 0x05, 0x0e, 0xd6, 0xda, 0x3b, 0x18, 0x2b, 0xeb, 0x5d, 0xd7, 0xb3, 0x6e, 0xb1, 0xaa, 0x4a, - 0x15, 0x02, 0xa9, 0x47, 0x24, 0x7a, 0xaa, 0x84, 0x14, 0x21, 0x01, 0x15, 0x48, 0xa8, 0x42, 0x1c, - 0x39, 0x72, 0xe8, 0xb1, 0x82, 0x03, 0x9c, 0x00, 0x25, 0x88, 0x22, 0x4e, 0xfc, 0x09, 0xc8, 0xf3, - 0xc3, 0xbb, 0x6b, 0x8f, 0x37, 0x4e, 0x6a, 0x10, 0xe2, 0xd2, 0xda, 0x33, 0xef, 0xcd, 0xfb, 0xde, - 0xf7, 0xde, 0xcc, 0xfb, 0x1c, 0xc8, 0x94, 0x3d, 0x5a, 0xf3, 0xa8, 0x59, 0xb2, 0xdc, 0x2d, 0xf3, - 0xc6, 0x6a, 0x89, 0xf8, 0xd6, 0xaa, 0x79, 0xbd, 0x49, 0x1a, 0x2d, 0xa3, 0xde, 0xf0, 0x7c, 0x0f, - 0x4f, 0x70, 0x03, 0xa3, 0x6d, 0x60, 0x08, 0x03, 0x6d, 0xa9, 0xe3, 0x45, 0x09, 0xb7, 0xee, 0xf8, - 0xd6, 0xad, 0x4a, 0xd5, 0xb5, 0xfc, 0xaa, 0xe7, 0xf2, 0x03, 0xb4, 0xc9, 0x8a, 0x57, 0xf1, 0xd8, - 0x47, 0xb3, 0xfd, 0x49, 0xac, 0x3e, 0x57, 0xf1, 0xbc, 0x8a, 0x43, 0x4c, 0xab, 0x5e, 0x35, 0x2d, - 0xd7, 0xf5, 0x7c, 0xe6, 0x42, 0xc5, 0x6e, 0x3a, 0x7c, 0xbe, 0x3c, 0xb9, 0xec, 0x55, 0xdd, 0x9e, - 0xfd, 0x10, 0x6a, 0x86, 0x90, 0xef, 0x4f, 0xf3, 0xfd, 0x22, 0x0f, 0x2b, 0x32, 0xe0, 0x5b, 0x33, - 0xc2, 0x55, 0xa2, 0x0e, 0x27, 0xab, 0x1d, 0xb7, 0x6a, 0x55, 0xd7, 0x33, 0xd9, 0xbf, 0x7c, 0x49, - 0xaf, 0xc2, 0xc4, 0xeb, 0x6d, 0x8b, 0xbc, 0xe5, 0x58, 0x6e, 0x99, 0x14, 0xc8, 0xf5, 0x26, 0xa1, - 0x3e, 0xce, 0xc1, 0x88, 0x65, 0xdb, 0x0d, 0x42, 0xe9, 0x14, 0x9a, 0x43, 0xd9, 0xb1, 0xfc, 0xd4, - 0xf7, 0xdf, 0xac, 0x4c, 0x8a, 0x48, 0xe7, 0xf9, 0xce, 0xa6, 0xdf, 0xa8, 0xba, 0x95, 0x82, 0x34, - 0xc4, 0x93, 0x70, 0xc4, 0x26, 0xae, 0x57, 0x9b, 0x3a, 0xd4, 0xf6, 0x28, 0xf0, 0x2f, 0x67, 0x47, - 0xef, 0x6e, 0x67, 0x12, 0x7f, 0x6c, 0x67, 0x12, 0xfa, 0x6b, 0x30, 0x19, 0x0d, 0x45, 0xeb, 0x9e, - 0x4b, 0x09, 0x5e, 0x83, 0x91, 0x12, 0x5f, 0x62, 0xb1, 0x52, 0xb9, 0x69, 0xa3, 0x53, 0x14, 0x4a, - 0x64, 0x51, 0x8c, 0x0d, 0xaf, 0xea, 0x16, 0xa4, 0xa5, 0xfe, 0x1d, 0x82, 0x13, 0xec, 0xb4, 0xf3, - 0x8e, 0x23, 0x0e, 0xa4, 0x4f, 0x03, 0xfe, 0x22, 0x40, 0x50, 0x5a, 0x96, 0x41, 0x2a, 0x77, 0x2a, - 0x82, 0x83, 0x13, 0x29, 0xd1, 0x5c, 0xb5, 0x2a, 0x92, 0xac, 0x42, 0xc8, 0x13, 0xcf, 0xc3, 0xd1, - 0x06, 0xa1, 0x9e, 0x73, 0x83, 0x14, 0x39, 0x19, 0x87, 0xe7, 0x50, 0x76, 0xb4, 0x30, 0x2e, 0x16, - 0x2f, 0x74, 0x71, 0xf2, 0x27, 0x82, 0xa9, 0xde, 0x34, 0x04, 0x31, 0xef, 0x23, 0x18, 0x15, 0xf9, - 0xb6, 0x33, 0x39, 0x1c, 0x4b, 0x4d, 0xfe, 0xf2, 0xa3, 0x9f, 0x33, 0x89, 0x2f, 0x7e, 0xc9, 0x64, - 0x2b, 0x55, 0xff, 0x9d, 0x66, 0xc9, 0x28, 0x7b, 0x35, 0xd1, 0x1a, 0xe2, 0xbf, 0x15, 0x6a, 0x6f, - 0x99, 0x7e, 0xab, 0x4e, 0x28, 0x73, 0xa0, 0xf7, 0x9f, 0x3c, 0x5c, 0x9a, 0x70, 0x9b, 0x8e, 0x53, - 0xa4, 0x4e, 0xb5, 0x4c, 0x8a, 0x16, 0x2d, 0x92, 0x5a, 0xdd, 0x6f, 0x3d, 0x78, 0xf2, 0x70, 0x09, - 0x15, 0x3a, 0x91, 0xf1, 0x25, 0x05, 0x35, 0x0b, 0x7b, 0x52, 0xc3, 0x73, 0x08, 0x73, 0xa3, 0x7f, - 0x8a, 0x60, 0x96, 0x25, 0xbb, 0x59, 0x27, 0xae, 0x6d, 0x95, 0x1c, 0xf2, 0x1f, 0xaa, 0x5c, 0xa8, - 0x28, 0x7f, 0x21, 0x48, 0xf7, 0xc3, 0xf9, 0x3f, 0x2d, 0x4d, 0x0b, 0xe6, 0x95, 0x19, 0xe7, 0x5b, - 0xac, 0x63, 0xff, 0xc9, 0x67, 0xe1, 0x2d, 0x38, 0x19, 0x1f, 0xfa, 0x69, 0x9e, 0x89, 0x2d, 0xf1, - 0x4a, 0xbc, 0xe1, 0xf9, 0x96, 0xb3, 0xd9, 0xac, 0xd7, 0x9d, 0x96, 0xcc, 0x25, 0xda, 0x37, 0x68, - 0x08, 0x7d, 0xf3, 0xbb, 0xbc, 0xcc, 0x91, 0x68, 0x02, 0xfe, 0x1d, 0x04, 0x49, 0xca, 0x96, 0xfe, - 0xf5, 0x7e, 0x11, 0x71, 0x87, 0xd7, 0x2d, 0xcb, 0xe2, 0x25, 0xe7, 0x29, 0x5e, 0x79, 0x5b, 0x52, - 0xda, 0x29, 0x35, 0x0a, 0x95, 0x5a, 0xbf, 0x06, 0xcf, 0x74, 0x59, 0x0b, 0x4a, 0xce, 0x41, 0xd2, - 0xaa, 0x79, 0x4d, 0xd7, 0xdf, 0xb3, 0xa0, 0xf9, 0xb1, 0x36, 0x23, 0x22, 0x1b, 0xee, 0xa3, 0x4f, - 0x02, 0x66, 0xc7, 0x5e, 0xb5, 0x1a, 0x56, 0x4d, 0xbe, 0x20, 0xfa, 0x35, 0x31, 0xcf, 0xe4, 0xaa, - 0x08, 0xb5, 0x0e, 0xc9, 0x3a, 0x5b, 0x11, 0xa1, 0x66, 0x0c, 0xc5, 0xdc, 0x37, 0xb8, 0x53, 0x24, - 0x18, 0xf7, 0xd2, 0x6d, 0xd0, 0xd8, 0xb1, 0xac, 0x25, 0xe9, 0x65, 0xe2, 0x5b, 0xb6, 0xe5, 0x5b, - 0x43, 0x6e, 0x25, 0xfd, 0x2b, 0x04, 0x33, 0xca, 0x30, 0x22, 0x8b, 0x8b, 0x30, 0x56, 0x13, 0x6b, - 0xf2, 0xd5, 0x99, 0x55, 0x26, 0x22, 0x3d, 0xc3, 0xa9, 0x04, 0xae, 0xc3, 0x6b, 0x84, 0x55, 0x98, - 0x0e, 0xf0, 0x76, 0xb3, 0xa2, 0xee, 0x86, 0x52, 0x98, 0xc9, 0x9e, 0x0c, 0x2f, 0xc0, 0xa8, 0x84, - 0x29, 0x78, 0x1c, 0x3c, 0xc1, 0x8e, 0xa7, 0x7e, 0x53, 0xdc, 0x7a, 0x16, 0xe3, 0xca, 0x4d, 0x97, - 0x34, 0x68, 0x2c, 0xa8, 0x61, 0xcd, 0x10, 0xfd, 0x0e, 0x02, 0x08, 0x82, 0x1e, 0xe8, 0xb9, 0x5c, - 0x0f, 0x9e, 0xb9, 0x43, 0xfb, 0xb8, 0x15, 0x9d, 0x17, 0xef, 0x73, 0xf9, 0x08, 0x45, 0x92, 0x17, - 0xf4, 0xe6, 0x61, 0x9c, 0x25, 0x5c, 0xf4, 0xd8, 0xba, 0xe8, 0xa1, 0x8c, 0x92, 0xe2, 0xc0, 0xbf, - 0x90, 0xb2, 0x83, 0xb3, 0x86, 0x39, 0x73, 0x78, 0x95, 0x36, 0x89, 0x6b, 0xbf, 0xea, 0xb6, 0x5f, - 0x7e, 0x5b, 0x56, 0xe9, 0x59, 0x48, 0xb2, 0x90, 0x1c, 0xe1, 0x58, 0x41, 0x7c, 0xeb, 0xaa, 0x53, - 0xf9, 0xc0, 0x75, 0x7a, 0x20, 0x49, 0x8a, 0xc4, 0x16, 0x24, 0x6d, 0xc0, 0x38, 0x25, 0xae, 0x5d, - 0x24, 0x7c, 0x5d, 0x90, 0x34, 0xa7, 0x24, 0x29, 0xec, 0x9f, 0xa2, 0xc1, 0x97, 0x2e, 0x96, 0xca, - 0x07, 0x66, 0x29, 0xf7, 0xf5, 0x31, 0x38, 0xc2, 0xa0, 0xe2, 0x8f, 0x11, 0x8c, 0x88, 0xd9, 0x88, - 0xb3, 0x4a, 0x34, 0x0a, 0x25, 0xaf, 0x2d, 0x0e, 0x60, 0xc9, 0xc3, 0xea, 0xaf, 0xdc, 0x6d, 0xb7, - 0xd2, 0x7b, 0x3f, 0xfc, 0xf6, 0xd1, 0xa1, 0x1c, 0x3e, 0x6d, 0xaa, 0x7f, 0x84, 0x70, 0xe5, 0x61, - 0xde, 0x12, 0xfd, 0x7a, 0xdb, 0x2c, 0xb5, 0xb8, 0xd2, 0xc5, 0xdb, 0x08, 0x52, 0x21, 0x19, 0x8b, - 0x97, 0xfb, 0x47, 0xee, 0x15, 0xed, 0xda, 0xca, 0x80, 0xd6, 0x02, 0xeb, 0x8b, 0x01, 0xd6, 0x45, - 0xbc, 0x30, 0x20, 0x56, 0xfc, 0x2d, 0x82, 0xe3, 0x3d, 0xa2, 0x0e, 0xe7, 0xfa, 0x87, 0xee, 0xa7, - 0x54, 0xb5, 0xb5, 0x7d, 0xf9, 0x08, 0xd0, 0xeb, 0x01, 0xe8, 0x35, 0xbc, 0xaa, 0x04, 0x4d, 0xa5, - 0x73, 0x51, 0x01, 0xff, 0x47, 0x04, 0x27, 0xfa, 0xc8, 0x24, 0xfc, 0xf2, 0xe0, 0x80, 0xa2, 0xa2, - 0x4e, 0x3b, 0x73, 0x00, 0x4f, 0x91, 0xd0, 0xa5, 0x20, 0xa1, 0x73, 0xf8, 0xec, 0xbe, 0x13, 0x0a, - 0x7a, 0xe7, 0x1e, 0x82, 0x54, 0x48, 0x35, 0xc5, 0xf5, 0x4e, 0xaf, 0x94, 0x8b, 0xeb, 0x1d, 0x85, - 0x14, 0xd3, 0xb3, 0x01, 0xea, 0x59, 0x3c, 0xa3, 0x46, 0xcd, 0x61, 0xdc, 0x43, 0x30, 0x2a, 0x65, - 0x0b, 0x8e, 0xb9, 0x49, 0x5d, 0x42, 0x48, 0x5b, 0x1a, 0xc4, 0x54, 0xa0, 0x59, 0x0d, 0xd0, 0x9c, - 0xc2, 0x27, 0x63, 0xd0, 0x04, 0x6c, 0x7d, 0x80, 0x20, 0xc9, 0xb5, 0x0a, 0x5e, 0xe8, 0x1f, 0x29, - 0x22, 0x8c, 0xb4, 0xec, 0xde, 0x86, 0x83, 0xd3, 0xc3, 0x55, 0x11, 0xfe, 0x12, 0xc1, 0xd1, 0xc8, - 0x1c, 0xc7, 0x46, 0xff, 0x28, 0x2a, 0x8d, 0xa0, 0x99, 0x03, 0xdb, 0x0b, 0x70, 0x67, 0x02, 0x70, - 0x06, 0x5e, 0x56, 0x82, 0xe3, 0xb3, 0xa2, 0x28, 0xd5, 0x80, 0x79, 0x8b, 0x2d, 0xdc, 0xc6, 0x9f, - 0x21, 0x38, 0x16, 0x15, 0x56, 0x78, 0xaf, 0xf0, 0xdd, 0x4a, 0x4f, 0x3b, 0x3d, 0xb8, 0xc3, 0xe0, - 0xe5, 0xed, 0x02, 0x8c, 0x3f, 0x41, 0x90, 0x0a, 0x4d, 0xef, 0xb8, 0xcb, 0xd0, 0xab, 0x70, 0xe2, - 0x2e, 0x83, 0x42, 0x12, 0xe8, 0x2f, 0x05, 0xf8, 0x5e, 0xc0, 0x8b, 0xfd, 0xf1, 0x09, 0xc9, 0xd0, - 0x61, 0xf3, 0x3e, 0x82, 0x54, 0x68, 0xfa, 0xc5, 0x81, 0xec, 0x1d, 0xf0, 0x71, 0x20, 0x15, 0x23, - 0x59, 0x37, 0x02, 0x90, 0xf3, 0xf8, 0x79, 0xf5, 0x1d, 0x09, 0x8d, 0xec, 0xfc, 0xc6, 0xa3, 0x9d, - 0x34, 0x7a, 0xbc, 0x93, 0x46, 0xbf, 0xee, 0xa4, 0xd1, 0x87, 0xbb, 0xe9, 0xc4, 0xe3, 0xdd, 0x74, - 0xe2, 0xa7, 0xdd, 0x74, 0xe2, 0xcd, 0xc5, 0xd8, 0x9f, 0x54, 0xef, 0xf2, 0x33, 0xd9, 0x2f, 0xab, - 0x52, 0x92, 0xfd, 0x85, 0x6c, 0xed, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd3, 0xf0, 0xdb, 0xcc, - 0x44, 0x14, 0x00, 0x00, + 0x14, 0xf6, 0xa4, 0xaa, 0x93, 0x3c, 0xa7, 0x95, 0x3a, 0x0d, 0x34, 0xd9, 0x10, 0x3b, 0x6c, 0xaa, + 0xc6, 0x09, 0xc9, 0x6e, 0xe3, 0x20, 0x44, 0xab, 0x12, 0xa9, 0x4e, 0x49, 0x0f, 0x08, 0xb5, 0x38, + 0xf4, 0x02, 0x07, 0x6b, 0xed, 0x1d, 0x8c, 0x15, 0x7b, 0xd7, 0xf5, 0xac, 0x5b, 0xac, 0x2a, 0x12, + 0x42, 0x42, 0xea, 0x11, 0x89, 0x9e, 0x2a, 0x21, 0x45, 0x48, 0x40, 0x05, 0x12, 0xaa, 0x10, 0x47, + 0x8e, 0x1c, 0x7a, 0xac, 0xe0, 0x00, 0xa7, 0x82, 0x12, 0xa4, 0xf6, 0xcf, 0x40, 0x9e, 0x1f, 0xde, + 0x5d, 0x7b, 0xbc, 0xd9, 0xa4, 0x06, 0x21, 0x2e, 0xad, 0x3d, 0xf3, 0xde, 0xbc, 0xef, 0x7d, 0xef, + 0xcd, 0xbc, 0xcf, 0x81, 0x4c, 0xd9, 0xa5, 0x75, 0x97, 0x9a, 0x25, 0xcb, 0xd9, 0x36, 0x6f, 0xad, + 0x96, 0x88, 0x67, 0xad, 0x9a, 0x37, 0x5b, 0xa4, 0xd9, 0x36, 0x1a, 0x4d, 0xd7, 0x73, 0xf1, 0x69, + 0x6e, 0x60, 0x74, 0x0c, 0x0c, 0x61, 0xa0, 0x2d, 0x75, 0xbd, 0x28, 0xe1, 0xd6, 0x5d, 0xdf, 0x86, + 0x55, 0xa9, 0x3a, 0x96, 0x57, 0x75, 0x1d, 0x7e, 0x80, 0x36, 0x59, 0x71, 0x2b, 0x2e, 0xfb, 0x68, + 0x76, 0x3e, 0x89, 0xd5, 0x97, 0x2a, 0xae, 0x5b, 0xa9, 0x11, 0xd3, 0x6a, 0x54, 0x4d, 0xcb, 0x71, + 0x5c, 0x8f, 0xb9, 0x50, 0xb1, 0x9b, 0x0e, 0x9e, 0x2f, 0x4f, 0x2e, 0xbb, 0x55, 0xa7, 0x6f, 0x3f, + 0x80, 0x9a, 0x21, 0xe4, 0xfb, 0xd3, 0x7c, 0xbf, 0xc8, 0xc3, 0x8a, 0x0c, 0xf8, 0xd6, 0x8c, 0x70, + 0x95, 0xa8, 0x83, 0xc9, 0x6a, 0xa7, 0xac, 0x7a, 0xd5, 0x71, 0x4d, 0xf6, 0x2f, 0x5f, 0xd2, 0xab, + 0x70, 0xfa, 0x9d, 0x8e, 0x45, 0xde, 0xaa, 0x59, 0x4e, 0x99, 0x14, 0xc8, 0xcd, 0x16, 0xa1, 0x1e, + 0xce, 0xc1, 0xa8, 0x65, 0xdb, 0x4d, 0x42, 0xe9, 0x14, 0x9a, 0x43, 0xd9, 0xf1, 0xfc, 0xd4, 0x2f, + 0x3f, 0xae, 0x4c, 0x8a, 0x48, 0x97, 0xf9, 0xce, 0x96, 0xd7, 0xac, 0x3a, 0x95, 0x82, 0x34, 0xc4, + 0x93, 0x70, 0xdc, 0x26, 0x8e, 0x5b, 0x9f, 0x1a, 0xe9, 0x78, 0x14, 0xf8, 0x97, 0x8b, 0x63, 0x77, + 0x77, 0x33, 0x89, 0x67, 0xbb, 0x99, 0x84, 0xfe, 0x16, 0x4c, 0x86, 0x43, 0xd1, 0x86, 0xeb, 0x50, + 0x82, 0xd7, 0x60, 0xb4, 0xc4, 0x97, 0x58, 0xac, 0x54, 0x6e, 0xda, 0xe8, 0x16, 0x85, 0x12, 0x59, + 0x14, 0x63, 0xc3, 0xad, 0x3a, 0x05, 0x69, 0xa9, 0xff, 0x8c, 0xe0, 0x0c, 0x3b, 0xed, 0x72, 0xad, + 0x26, 0x0e, 0xa4, 0xcf, 0x03, 0x7e, 0x13, 0xc0, 0x2f, 0x2d, 0xcb, 0x20, 0x95, 0x3b, 0x17, 0xc2, + 0xc1, 0x89, 0x94, 0x68, 0xae, 0x5b, 0x15, 0x49, 0x56, 0x21, 0xe0, 0x89, 0xe7, 0xe1, 0x44, 0x93, + 0x50, 0xb7, 0x76, 0x8b, 0x14, 0x39, 0x19, 0xc7, 0xe6, 0x50, 0x76, 0xac, 0x30, 0x21, 0x16, 0xaf, + 0xf4, 0x70, 0xb2, 0x87, 0x60, 0xaa, 0x3f, 0x0d, 0x41, 0xcc, 0x0e, 0x8c, 0x89, 0x74, 0x3b, 0x89, + 0x1c, 0x8b, 0x64, 0x26, 0xbf, 0xf9, 0xe8, 0x49, 0x26, 0xf1, 0xed, 0x1f, 0x99, 0x6c, 0xa5, 0xea, + 0x7d, 0xd8, 0x2a, 0x19, 0x65, 0xb7, 0x2e, 0x3a, 0x43, 0xfc, 0xb7, 0x42, 0xed, 0x6d, 0xd3, 0x6b, + 0x37, 0x08, 0x65, 0x0e, 0xf4, 0xfe, 0xd3, 0x87, 0x4b, 0x13, 0x35, 0x52, 0xb1, 0xca, 0xed, 0x62, + 0xa7, 0xf7, 0xe8, 0x83, 0xa7, 0x0f, 0x97, 0x50, 0xa1, 0x1b, 0x12, 0x5f, 0x55, 0x50, 0xb2, 0x70, + 0x20, 0x25, 0x1c, 0x7b, 0x90, 0x13, 0xfd, 0x2b, 0x04, 0xb3, 0x2c, 0xc9, 0xad, 0x06, 0x71, 0x6c, + 0xab, 0x54, 0x23, 0xff, 0xa1, 0x8a, 0x05, 0x8a, 0xf1, 0x0c, 0x41, 0x7a, 0x10, 0xce, 0xff, 0x59, + 0x49, 0xda, 0x30, 0xaf, 0xcc, 0x34, 0xdf, 0x66, 0x1d, 0xfa, 0x4f, 0x3e, 0x03, 0xef, 0xc3, 0xd9, + 0xe8, 0xd0, 0xcf, 0xf3, 0x2c, 0x6c, 0x8b, 0x57, 0xe1, 0x5d, 0xd7, 0xb3, 0x6a, 0x5b, 0xad, 0x46, + 0xa3, 0xd6, 0x96, 0xb9, 0x84, 0xfb, 0x05, 0x0d, 0xa1, 0x5f, 0x9e, 0xc8, 0xcb, 0x1b, 0x8a, 0x26, + 0xe0, 0xb7, 0x21, 0x49, 0xd9, 0xca, 0xbf, 0xd7, 0x27, 0x22, 0xe0, 0xf0, 0xba, 0x64, 0x59, 0xbc, + 0xd8, 0x3c, 0xb5, 0x6b, 0x1f, 0x48, 0x2a, 0xbb, 0x25, 0x46, 0x81, 0x12, 0xeb, 0x37, 0xe0, 0x85, + 0x1e, 0x6b, 0x41, 0xc5, 0x25, 0x48, 0x5a, 0x75, 0xb7, 0xe5, 0x78, 0x07, 0x16, 0x32, 0x3f, 0xde, + 0xa1, 0x42, 0x64, 0xc3, 0x7d, 0xf4, 0x49, 0xc0, 0xec, 0xd8, 0xeb, 0x56, 0xd3, 0xaa, 0xcb, 0x17, + 0x43, 0xbf, 0x21, 0xe6, 0x96, 0x5c, 0x15, 0xa1, 0xd6, 0x21, 0xd9, 0x60, 0x2b, 0x22, 0xd4, 0x8c, + 0xa1, 0x98, 0xef, 0x06, 0x77, 0x0a, 0x05, 0xe3, 0x5e, 0xba, 0x0d, 0x1a, 0x3b, 0x96, 0xb5, 0x22, + 0x7d, 0x9b, 0x78, 0x96, 0x6d, 0x79, 0xd6, 0x90, 0x5b, 0x48, 0xff, 0x1e, 0xc1, 0x8c, 0x32, 0x8c, + 0xc8, 0x62, 0x13, 0xc6, 0xeb, 0x62, 0x4d, 0x3e, 0x33, 0xb3, 0xca, 0x44, 0xa4, 0x67, 0x30, 0x15, + 0xdf, 0x75, 0x78, 0x8d, 0xb0, 0x0a, 0xd3, 0x3e, 0xde, 0x5e, 0x56, 0xd4, 0xdd, 0x50, 0x0a, 0x32, + 0xd9, 0x97, 0xe1, 0x15, 0x18, 0x93, 0x30, 0x05, 0x8f, 0xf1, 0x13, 0xec, 0x7a, 0xea, 0xb7, 0xc5, + 0x6d, 0x67, 0x31, 0xae, 0xdd, 0x76, 0x48, 0x93, 0x46, 0x82, 0x1a, 0xd6, 0xcc, 0xd0, 0x3f, 0x46, + 0x00, 0x7e, 0xd0, 0x23, 0x3d, 0x93, 0xeb, 0xfe, 0xf3, 0x36, 0x72, 0x88, 0x5b, 0xd1, 0x7d, 0xe9, + 0xbe, 0x91, 0x8f, 0x4f, 0x28, 0x79, 0x41, 0x6f, 0x1e, 0x26, 0x58, 0xc2, 0x45, 0x97, 0xad, 0x8b, + 0x1e, 0xca, 0x28, 0x29, 0xf6, 0xfd, 0x0b, 0x29, 0xdb, 0x3f, 0x6b, 0x98, 0xb3, 0x86, 0x57, 0x69, + 0x8b, 0x38, 0xf6, 0x9b, 0x4e, 0xe7, 0xc5, 0xb7, 0x65, 0x95, 0x5e, 0x84, 0x24, 0x0b, 0xc9, 0x11, + 0x8e, 0x17, 0xc4, 0xb7, 0x9e, 0x3a, 0x95, 0x8f, 0x5c, 0xa7, 0x07, 0x92, 0xa4, 0x50, 0x6c, 0x41, + 0xd2, 0x06, 0x4c, 0x50, 0xe2, 0xd8, 0x45, 0xc2, 0xd7, 0x05, 0x49, 0x73, 0x4a, 0x92, 0x82, 0xfe, + 0x29, 0xea, 0x7f, 0xe9, 0x61, 0xa9, 0x7c, 0x64, 0x96, 0x72, 0x3f, 0x9c, 0x84, 0xe3, 0x0c, 0x2a, + 0xfe, 0x02, 0xc1, 0xa8, 0x98, 0x89, 0x38, 0xab, 0x44, 0xa3, 0x50, 0xec, 0xda, 0x62, 0x0c, 0x4b, + 0x1e, 0x56, 0x7f, 0xe3, 0x6e, 0xa7, 0x95, 0x3e, 0xf9, 0xf5, 0xaf, 0xcf, 0x47, 0x72, 0xf8, 0xbc, + 0xa9, 0xfe, 0xb1, 0xc1, 0x15, 0x87, 0x79, 0x47, 0xf4, 0xeb, 0x8e, 0x59, 0x6a, 0x73, 0x45, 0x8b, + 0x77, 0x11, 0xa4, 0x02, 0x72, 0x15, 0x2f, 0x0f, 0x8e, 0xdc, 0x2f, 0xce, 0xb5, 0x95, 0x98, 0xd6, + 0x02, 0xeb, 0xab, 0x3e, 0xd6, 0x45, 0xbc, 0x10, 0x13, 0x2b, 0xfe, 0x09, 0xc1, 0xa9, 0x3e, 0x11, + 0x87, 0x73, 0x83, 0x43, 0x0f, 0x52, 0xa6, 0xda, 0xda, 0xa1, 0x7c, 0x04, 0xe8, 0x75, 0x1f, 0xf4, + 0x1a, 0x5e, 0x55, 0x82, 0xa6, 0xd2, 0xb9, 0xa8, 0x80, 0xff, 0x1b, 0x82, 0x33, 0x03, 0xe4, 0x11, + 0x7e, 0x3d, 0x3e, 0xa0, 0xb0, 0x98, 0xd3, 0x2e, 0x1c, 0xc1, 0x53, 0x24, 0x74, 0xd5, 0x4f, 0xe8, + 0x12, 0xbe, 0x78, 0xe8, 0x84, 0xfc, 0xde, 0xb9, 0x87, 0x20, 0x15, 0x50, 0x4b, 0x51, 0xbd, 0xd3, + 0x2f, 0xe1, 0xa2, 0x7a, 0x47, 0x21, 0xc1, 0xf4, 0xac, 0x8f, 0x7a, 0x16, 0xcf, 0xa8, 0x51, 0x73, + 0x18, 0xf7, 0x10, 0x8c, 0x49, 0xd9, 0x82, 0x23, 0x6e, 0x52, 0x8f, 0x10, 0xd2, 0x96, 0xe2, 0x98, + 0x0a, 0x34, 0xab, 0x3e, 0x9a, 0x73, 0xf8, 0x6c, 0x04, 0x1a, 0x9f, 0xad, 0x4f, 0x11, 0x24, 0xb9, + 0x56, 0xc1, 0x0b, 0x83, 0x23, 0x85, 0x84, 0x91, 0x96, 0x3d, 0xd8, 0x30, 0x3e, 0x3d, 0x5c, 0x15, + 0xe1, 0xef, 0x10, 0x9c, 0x08, 0xcd, 0x71, 0x6c, 0x0c, 0x8e, 0xa2, 0xd2, 0x08, 0x9a, 0x19, 0xdb, + 0x5e, 0x80, 0xbb, 0xe0, 0x83, 0x33, 0xf0, 0xb2, 0x12, 0x1c, 0x9f, 0x15, 0x45, 0xa9, 0x06, 0xcc, + 0x3b, 0x6c, 0x61, 0x07, 0x7f, 0x8d, 0xe0, 0x64, 0x58, 0x58, 0xe1, 0x83, 0xc2, 0xf7, 0x2a, 0x3d, + 0xed, 0x7c, 0x7c, 0x87, 0xf8, 0xe5, 0xed, 0x01, 0x8c, 0xbf, 0x44, 0x90, 0x0a, 0x4c, 0xef, 0xa8, + 0xcb, 0xd0, 0xaf, 0x70, 0xa2, 0x2e, 0x83, 0x42, 0x12, 0xe8, 0xaf, 0xf9, 0xf8, 0x5e, 0xc1, 0x8b, + 0x83, 0xf1, 0x09, 0xc9, 0xd0, 0x65, 0xf3, 0x3e, 0x82, 0x54, 0x60, 0xfa, 0x45, 0x81, 0xec, 0x1f, + 0xf0, 0x51, 0x20, 0x15, 0x23, 0x59, 0x37, 0x7c, 0x90, 0xf3, 0xf8, 0x65, 0xf5, 0x1d, 0x09, 0x8c, + 0xec, 0xfc, 0xc6, 0xa3, 0xbd, 0x34, 0x7a, 0xbc, 0x97, 0x46, 0x7f, 0xee, 0xa5, 0xd1, 0x67, 0xfb, + 0xe9, 0xc4, 0xe3, 0xfd, 0x74, 0xe2, 0xf7, 0xfd, 0x74, 0xe2, 0xbd, 0xc5, 0xc8, 0xdf, 0x52, 0x1f, + 0xf1, 0x33, 0xd9, 0x4f, 0xaa, 0x52, 0x92, 0xfd, 0x25, 0x6c, 0xed, 0xef, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x71, 0x4c, 0x05, 0x91, 0x2c, 0x14, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/bank/types/tx.pb.go b/x/bank/types/tx.pb.go index 05ed288a8963..12b6b196116c 100644 --- a/x/bank/types/tx.pb.go +++ b/x/bank/types/tx.pb.go @@ -426,52 +426,51 @@ func init() { func init() { proto.RegisterFile("cosmos/bank/v1beta1/tx.proto", fileDescriptor_1d8cb1613481f5b7) } var fileDescriptor_1d8cb1613481f5b7 = []byte{ - // 710 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xbd, 0x6f, 0xd3, 0x4c, - 0x18, 0x8f, 0x9b, 0xf7, 0x4d, 0x95, 0x6b, 0xa0, 0xaa, 0x5b, 0xd1, 0xc6, 0xad, 0x9c, 0x36, 0x42, - 0x55, 0x1b, 0xa8, 0x4d, 0x0b, 0x02, 0x29, 0x08, 0x04, 0x29, 0x20, 0x81, 0x14, 0x81, 0x52, 0x31, - 0xc0, 0x62, 0x39, 0xf1, 0xd5, 0xb5, 0x6a, 0xfb, 0x2c, 0xdf, 0xb9, 0x6a, 0xb7, 0xc2, 0x84, 0x98, - 0x98, 0x99, 0x3a, 0x22, 0xa6, 0x0c, 0x1d, 0x91, 0x58, 0x3b, 0x56, 0x4c, 0x4c, 0x80, 0xda, 0x21, - 0xf0, 0x5f, 0xa0, 0xfb, 0xb0, 0xeb, 0xa4, 0x49, 0x5b, 0xb1, 0xc4, 0xce, 0xfd, 0x3e, 0x9e, 0xfb, - 0x3d, 0x7e, 0xee, 0xc0, 0x4c, 0x0b, 0x61, 0x0f, 0x61, 0xbd, 0x69, 0xfa, 0x9b, 0xfa, 0xd6, 0x72, - 0x13, 0x12, 0x73, 0x59, 0x27, 0xdb, 0x5a, 0x10, 0x22, 0x82, 0xe4, 0x71, 0x8e, 0x6a, 0x14, 0xd5, - 0x04, 0xaa, 0x4c, 0xd8, 0xc8, 0x46, 0x0c, 0xd7, 0xe9, 0x1b, 0xa7, 0x2a, 0x6a, 0x62, 0x84, 0x61, - 0x62, 0xd4, 0x42, 0x8e, 0x7f, 0x0a, 0x4f, 0x15, 0x62, 0xbe, 0x1c, 0x2f, 0x72, 0xdc, 0xe0, 0xc6, - 0xa2, 0x2e, 0x87, 0x26, 0x85, 0xd4, 0xc3, 0xb6, 0xbe, 0xb5, 0x4c, 0x1f, 0x02, 0x18, 0x33, 0x3d, - 0xc7, 0x47, 0x3a, 0xfb, 0xe5, 0x4b, 0xe5, 0xfd, 0x21, 0x30, 0x5c, 0xc7, 0xf6, 0x1a, 0xf4, 0x2d, - 0xf9, 0x2e, 0x28, 0xac, 0x87, 0xc8, 0x33, 0x4c, 0xcb, 0x0a, 0x21, 0xc6, 0x53, 0xd2, 0xac, 0xb4, - 0x90, 0xaf, 0x4d, 0x7d, 0xdb, 0x5f, 0x9a, 0x10, 0xfe, 0x0f, 0x39, 0xb2, 0x46, 0x42, 0xc7, 0xb7, - 0x1b, 0x23, 0x94, 0x2d, 0x96, 0xe4, 0x3b, 0x00, 0x10, 0x94, 0x48, 0x87, 0xce, 0x91, 0xe6, 0x09, - 0x8a, 0x85, 0xbb, 0x12, 0xc8, 0x99, 0x1e, 0x8a, 0x7c, 0x32, 0x95, 0x9d, 0xcd, 0x2e, 0x8c, 0xac, - 0x14, 0xb5, 0xa4, 0x8b, 0x18, 0xc6, 0x5d, 0xd4, 0x56, 0x91, 0xe3, 0xd7, 0xea, 0x07, 0x3f, 0x4a, - 0x99, 0xcf, 0x3f, 0x4b, 0x0b, 0xb6, 0x43, 0x36, 0xa2, 0xa6, 0xd6, 0x42, 0x9e, 0x88, 0x2e, 0x1e, - 0x4b, 0xd8, 0xda, 0xd4, 0xc9, 0x4e, 0x00, 0x31, 0x13, 0xe0, 0x8f, 0x9d, 0x76, 0x65, 0xdc, 0x8f, - 0x5c, 0xd7, 0xc0, 0xae, 0xd3, 0x82, 0x86, 0x89, 0x0d, 0xe8, 0x05, 0x64, 0xe7, 0x53, 0xa7, 0x5d, - 0x91, 0x1a, 0xa2, 0x6e, 0xf5, 0xc6, 0xbb, 0xbd, 0x52, 0xe6, 0xf7, 0x5e, 0x29, 0xf3, 0xb6, 0xd3, - 0xae, 0x74, 0xf5, 0xe0, 0x7d, 0xa7, 0x5d, 0x91, 0x53, 0xd6, 0xa2, 0x55, 0xe5, 0x31, 0x30, 0x2a, - 0x5e, 0x1b, 0x10, 0x07, 0xc8, 0xc7, 0xb0, 0xfc, 0x45, 0x02, 0x85, 0x3a, 0xb6, 0xeb, 0x91, 0x4b, - 0x1c, 0xd6, 0xce, 0x7b, 0x20, 0xe7, 0xf8, 0x41, 0x44, 0x68, 0x23, 0x69, 0x2e, 0x45, 0xeb, 0x33, - 0x1d, 0xda, 0x53, 0x4a, 0xa9, 0xe5, 0x69, 0x30, 0xb1, 0x29, 0x2e, 0x92, 0x1f, 0x80, 0x61, 0x14, - 0x11, 0xa6, 0x1f, 0x62, 0xfa, 0xe9, 0xbe, 0xfa, 0xe7, 0x8c, 0x93, 0x36, 0x88, 0x65, 0xd5, 0x6b, - 0x71, 0x24, 0x61, 0x49, 0xc3, 0x4c, 0x76, 0x87, 0x49, 0x76, 0x5b, 0xbe, 0x02, 0x26, 0xd2, 0xff, - 0x93, 0x58, 0x5f, 0x25, 0x16, 0xf5, 0x65, 0x60, 0x99, 0x04, 0xbe, 0x30, 0x43, 0xd3, 0xc3, 0xf2, - 0x6d, 0x90, 0x37, 0x23, 0xb2, 0x81, 0x42, 0x87, 0xec, 0x9c, 0x3b, 0x25, 0x27, 0x54, 0xf9, 0x3e, - 0xc8, 0x05, 0xcc, 0x81, 0xcd, 0xc7, 0xa0, 0x44, 0xbc, 0x48, 0x57, 0x4b, 0xb8, 0xaa, 0x7a, 0x8b, - 0x86, 0x39, 0xf1, 0xa3, 0x79, 0xe6, 0x52, 0x79, 0xb6, 0xf9, 0x61, 0xe9, 0xd9, 0x6d, 0xb9, 0x08, - 0x26, 0x7b, 0x96, 0x92, 0x70, 0x7f, 0x24, 0x30, 0xc6, 0xbe, 0x23, 0xa1, 0x99, 0x1f, 0xfb, 0x66, - 0xd3, 0x85, 0xd6, 0x3f, 0xc7, 0x5b, 0x05, 0x05, 0x0c, 0x7d, 0xcb, 0x80, 0xdc, 0x47, 0x7c, 0xb6, - 0xd9, 0xbe, 0x21, 0x53, 0xf5, 0x1a, 0x23, 0x38, 0x55, 0x7c, 0x1e, 0x8c, 0x46, 0x18, 0x1a, 0x16, - 0x5c, 0x37, 0x23, 0x97, 0x18, 0xeb, 0x28, 0x64, 0xc7, 0x22, 0xdf, 0xb8, 0x14, 0x61, 0xf8, 0x88, - 0xaf, 0x3e, 0x41, 0x61, 0x55, 0x3f, 0xdd, 0x8b, 0x99, 0xde, 0x41, 0x4d, 0xa7, 0x2a, 0x4f, 0x83, - 0xe2, 0xa9, 0xc5, 0xb8, 0x11, 0x2b, 0x6f, 0xb2, 0x20, 0x5b, 0xc7, 0xb6, 0xfc, 0x0c, 0xfc, 0xc7, - 0x66, 0x77, 0xa6, 0xef, 0xa6, 0xc5, 0xc8, 0x2b, 0x57, 0xcf, 0x42, 0x63, 0x4f, 0xf9, 0x15, 0xc8, - 0x9f, 0x1c, 0x86, 0xb9, 0x41, 0x92, 0x84, 0xa2, 0x2c, 0x9e, 0x4b, 0x49, 0xac, 0x9b, 0xa0, 0xd0, - 0x35, 0x90, 0x03, 0x37, 0x94, 0x66, 0x29, 0xd7, 0x2f, 0xc2, 0x4a, 0x6a, 0x6c, 0x80, 0xcb, 0x3d, - 0x73, 0x31, 0x3f, 0x38, 0x76, 0x9a, 0xa7, 0x68, 0x17, 0xe3, 0xc5, 0x95, 0x94, 0xff, 0x77, 0xe9, - 0x94, 0xd7, 0x56, 0x0f, 0x8e, 0x54, 0xe9, 0xf0, 0x48, 0x95, 0x7e, 0x1d, 0xa9, 0xd2, 0x87, 0x63, - 0x35, 0x73, 0x78, 0xac, 0x66, 0xbe, 0x1f, 0xab, 0x99, 0xd7, 0x8b, 0x67, 0x5e, 0x77, 0x62, 0xec, - 0xd9, 0xad, 0xd7, 0xcc, 0xb1, 0x6b, 0xfd, 0xe6, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x44, 0xa4, - 0xb2, 0x67, 0xa8, 0x06, 0x00, 0x00, + // 700 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xcf, 0x4f, 0xd3, 0x50, + 0x1c, 0x5f, 0x99, 0x8e, 0xec, 0x31, 0x25, 0x54, 0x22, 0xac, 0x90, 0x0e, 0x16, 0x43, 0x00, 0xa5, + 0x15, 0x34, 0x9a, 0xcc, 0x68, 0x74, 0x28, 0x89, 0x26, 0x8b, 0x66, 0xc4, 0x83, 0x5e, 0x96, 0xd7, + 0xf5, 0x51, 0x1a, 0xd6, 0xbe, 0xa6, 0xef, 0x95, 0xb0, 0x9b, 0x7a, 0x32, 0x9e, 0x3c, 0x7b, 0xe2, + 0x68, 0x8c, 0x07, 0x0e, 0x1e, 0x4d, 0xbc, 0x72, 0x24, 0x9e, 0x3c, 0xa9, 0x81, 0x03, 0xfa, 0x5f, + 0x98, 0xf7, 0xa3, 0xa5, 0x8c, 0x8d, 0x11, 0x2f, 0x6b, 0xf7, 0x3e, 0x3f, 0xbe, 0xef, 0xf3, 0xed, + 0xf7, 0x3d, 0x30, 0xd9, 0xc4, 0xc4, 0xc3, 0xc4, 0xb4, 0xa0, 0xbf, 0x61, 0x6e, 0x2e, 0x5a, 0x88, + 0xc2, 0x45, 0x93, 0x6e, 0x19, 0x41, 0x88, 0x29, 0x56, 0x2f, 0x09, 0xd4, 0x60, 0xa8, 0x21, 0x51, + 0x6d, 0xd4, 0xc1, 0x0e, 0xe6, 0xb8, 0xc9, 0xde, 0x04, 0x55, 0xd3, 0x13, 0x23, 0x82, 0x12, 0xa3, + 0x26, 0x76, 0xfd, 0x13, 0x78, 0xaa, 0x10, 0xf7, 0x15, 0x78, 0x51, 0xe0, 0x0d, 0x61, 0x2c, 0xeb, + 0x0a, 0x68, 0x4c, 0x4a, 0x3d, 0xe2, 0x98, 0x9b, 0x8b, 0xec, 0x21, 0x81, 0x11, 0xe8, 0xb9, 0x3e, + 0x36, 0xf9, 0xaf, 0x58, 0x2a, 0x7f, 0x1e, 0x00, 0x83, 0x35, 0xe2, 0xac, 0x22, 0xdf, 0x56, 0xef, + 0x80, 0xc2, 0x5a, 0x88, 0xbd, 0x06, 0xb4, 0xed, 0x10, 0x11, 0x32, 0xae, 0x4c, 0x29, 0xb3, 0xf9, + 0xea, 0xf8, 0xf7, 0x2f, 0x0b, 0xa3, 0xd2, 0xff, 0x81, 0x40, 0x56, 0x69, 0xe8, 0xfa, 0x4e, 0x7d, + 0x88, 0xb1, 0xe5, 0x92, 0x7a, 0x1b, 0x00, 0x8a, 0x13, 0xe9, 0x40, 0x1f, 0x69, 0x9e, 0xe2, 0x58, + 0xd8, 0x06, 0x39, 0xe8, 0xe1, 0xc8, 0xa7, 0xe3, 0xd9, 0xa9, 0xec, 0xec, 0xd0, 0x52, 0xd1, 0x48, + 0x9a, 0x48, 0x50, 0xdc, 0x44, 0x63, 0x19, 0xbb, 0x7e, 0x75, 0x65, 0xf7, 0x67, 0x29, 0xf3, 0xe9, + 0x57, 0x69, 0xd6, 0x71, 0xe9, 0x7a, 0x64, 0x19, 0x4d, 0xec, 0xc9, 0xe4, 0xf2, 0xb1, 0x40, 0xec, + 0x0d, 0x93, 0xb6, 0x03, 0x44, 0xb8, 0x80, 0x7c, 0x38, 0xdc, 0x99, 0x2f, 0xb4, 0x90, 0x03, 0x9b, + 0xed, 0x06, 0xeb, 0x2d, 0xf9, 0x78, 0xb8, 0x33, 0xaf, 0xd4, 0x65, 0xc1, 0xca, 0xf5, 0xb7, 0xdb, + 0xa5, 0xcc, 0x9f, 0xed, 0x52, 0xe6, 0x0d, 0xe3, 0xa5, 0xb3, 0xbf, 0x3b, 0xdc, 0x99, 0x57, 0x53, + 0x9e, 0xb2, 0x45, 0xe5, 0x11, 0x30, 0x2c, 0x5f, 0xeb, 0x88, 0x04, 0xd8, 0x27, 0xa8, 0xfc, 0x55, + 0x01, 0x85, 0x1a, 0x71, 0x6a, 0x51, 0x8b, 0xba, 0xbc, 0x8d, 0x77, 0x41, 0xce, 0xf5, 0x83, 0x88, + 0xb2, 0x06, 0xb2, 0x40, 0x9a, 0xd1, 0x65, 0x2a, 0x8c, 0xc7, 0x8c, 0x52, 0xcd, 0xb3, 0x44, 0x72, + 0x53, 0x42, 0xa4, 0xde, 0x07, 0x83, 0x38, 0xa2, 0x5c, 0x3f, 0xc0, 0xf5, 0x13, 0x5d, 0xf5, 0x4f, + 0x39, 0x27, 0x6d, 0x10, 0xcb, 0x2a, 0x57, 0xe3, 0x48, 0xd2, 0x92, 0x85, 0x19, 0x3b, 0x1e, 0x26, + 0xd9, 0x6d, 0xf9, 0x32, 0x18, 0x4d, 0xff, 0x4f, 0x62, 0x7d, 0x53, 0x78, 0xd4, 0xe7, 0x81, 0x0d, + 0x29, 0x7a, 0x06, 0x43, 0xe8, 0x11, 0xf5, 0x16, 0xc8, 0xc3, 0x88, 0xae, 0xe3, 0xd0, 0xa5, 0xed, + 0xbe, 0xd3, 0x71, 0x44, 0x55, 0xef, 0x81, 0x5c, 0xc0, 0x1d, 0xf8, 0x5c, 0xf4, 0x4a, 0x24, 0x8a, + 0x1c, 0x6b, 0x89, 0x50, 0x55, 0x6e, 0xb2, 0x30, 0x47, 0x7e, 0x2c, 0xcf, 0x74, 0x2a, 0xcf, 0x96, + 0x38, 0x24, 0x1d, 0xbb, 0x2d, 0x17, 0xc1, 0x58, 0xc7, 0x52, 0x12, 0xee, 0xaf, 0x02, 0x46, 0xf8, + 0x77, 0xa4, 0x2c, 0xf3, 0x23, 0x1f, 0x5a, 0x2d, 0x64, 0xff, 0x77, 0xbc, 0x65, 0x50, 0x20, 0xc8, + 0xb7, 0x1b, 0x48, 0xf8, 0xc8, 0xcf, 0x36, 0xd5, 0x35, 0x64, 0xaa, 0x5e, 0x7d, 0x88, 0xa4, 0x8a, + 0xcf, 0x80, 0xe1, 0x88, 0xa0, 0x86, 0x8d, 0xd6, 0x60, 0xd4, 0xa2, 0x8d, 0x35, 0x1c, 0xf2, 0xf3, + 0x90, 0xaf, 0x5f, 0x88, 0x08, 0x7a, 0x28, 0x56, 0x57, 0x70, 0x58, 0x31, 0x4f, 0xf6, 0x62, 0xb2, + 0x73, 0x50, 0xd3, 0xa9, 0xca, 0x13, 0xa0, 0x78, 0x62, 0x31, 0x6e, 0xc4, 0xd2, 0xeb, 0x2c, 0xc8, + 0xd6, 0x88, 0xa3, 0x3e, 0x01, 0xe7, 0xf8, 0xec, 0x4e, 0x76, 0xdd, 0xb4, 0x1c, 0x79, 0xed, 0xca, + 0x69, 0x68, 0xec, 0xa9, 0xbe, 0x00, 0xf9, 0xa3, 0xc3, 0x30, 0xdd, 0x4b, 0x92, 0x50, 0xb4, 0xb9, + 0xbe, 0x94, 0xc4, 0xda, 0x02, 0x85, 0x63, 0x03, 0xd9, 0x73, 0x43, 0x69, 0x96, 0x76, 0xed, 0x2c, + 0xac, 0xa4, 0xc6, 0x3a, 0xb8, 0xd8, 0x31, 0x17, 0x33, 0xbd, 0x63, 0xa7, 0x79, 0x9a, 0x71, 0x36, + 0x5e, 0x5c, 0x49, 0x3b, 0xff, 0x8a, 0x4d, 0x79, 0x75, 0x79, 0x77, 0x5f, 0x57, 0xf6, 0xf6, 0x75, + 0xe5, 0xf7, 0xbe, 0xae, 0xbc, 0x3f, 0xd0, 0x33, 0x7b, 0x07, 0x7a, 0xe6, 0xc7, 0x81, 0x9e, 0x79, + 0x39, 0x77, 0xea, 0x3d, 0x27, 0xc7, 0x9e, 0x5f, 0x77, 0x56, 0x8e, 0x5f, 0xe7, 0x37, 0xfe, 0x05, + 0x00, 0x00, 0xff, 0xff, 0x5b, 0x5b, 0x43, 0xa9, 0xa0, 0x06, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/distribution/types/distribution.pb.go b/x/distribution/types/distribution.pb.go index 87de8638ef7b..5c5e82b6c130 100644 --- a/x/distribution/types/distribution.pb.go +++ b/x/distribution/types/distribution.pb.go @@ -642,71 +642,70 @@ func init() { } var fileDescriptor_cd78a31ea281a992 = []byte{ - // 1013 bytes of a gzipped FileDescriptorProto + // 1002 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0x41, 0x6f, 0x1b, 0x45, - 0x14, 0xf6, 0x34, 0x89, 0xd3, 0x4c, 0x69, 0x42, 0x27, 0x4e, 0xea, 0xb8, 0x95, 0x1d, 0xad, 0x54, - 0x30, 0x81, 0xd8, 0xa4, 0x5c, 0x50, 0xc4, 0x25, 0xb6, 0x83, 0xe0, 0x80, 0x1a, 0x6d, 0x10, 0x45, - 0x5c, 0x56, 0xe3, 0xdd, 0x89, 0x3d, 0xea, 0xee, 0xcc, 0x32, 0x33, 0xeb, 0x24, 0x07, 0x24, 0x8e, - 0x81, 0x03, 0x70, 0x44, 0xbd, 0x50, 0xc1, 0xa5, 0xe2, 0x94, 0x43, 0x6e, 0xfc, 0x81, 0x8a, 0x53, - 0x55, 0x24, 0x54, 0x71, 0x48, 0x51, 0x72, 0x08, 0xe2, 0x57, 0xa0, 0xd9, 0x19, 0xaf, 0x9d, 0x10, - 0x4a, 0xa5, 0xd6, 0xea, 0x25, 0xf1, 0x7c, 0x6f, 0xe7, 0x7d, 0xef, 0x7b, 0xef, 0xcd, 0x9b, 0x81, - 0x35, 0x9f, 0xcb, 0x88, 0xcb, 0x7a, 0x40, 0xa5, 0x12, 0xb4, 0x9d, 0x28, 0xca, 0x59, 0xbd, 0xb7, - 0xd2, 0x26, 0x0a, 0xaf, 0x9c, 0x02, 0x6b, 0xb1, 0xe0, 0x8a, 0xa3, 0x6b, 0xe6, 0xfb, 0xda, 0x29, - 0x93, 0xfd, 0xbe, 0x54, 0xe8, 0xf0, 0x0e, 0x4f, 0xbf, 0xab, 0xeb, 0x5f, 0x66, 0x4b, 0xa9, 0x6c, - 0x29, 0xda, 0x58, 0x92, 0xcc, 0xb5, 0xcf, 0xa9, 0x75, 0x59, 0x5a, 0x30, 0x76, 0xcf, 0x6c, 0xb4, - 0xfe, 0x8d, 0xe9, 0x0a, 0x8e, 0x28, 0xe3, 0xf5, 0xf4, 0xaf, 0x81, 0x9c, 0x5f, 0xc6, 0x60, 0x7e, - 0x03, 0x0b, 0x1c, 0x49, 0xb4, 0x05, 0x2f, 0xfb, 0x3c, 0x8a, 0x12, 0x46, 0xd5, 0xae, 0xa7, 0xf0, - 0x4e, 0x11, 0x2c, 0x82, 0xea, 0x54, 0x63, 0xed, 0xc1, 0x61, 0x25, 0xf7, 0xc7, 0x61, 0xe5, 0xb5, - 0x0e, 0x55, 0xdd, 0xa4, 0x5d, 0xf3, 0x79, 0x64, 0xbd, 0xda, 0x7f, 0xcb, 0x32, 0xb8, 0x53, 0x57, - 0xbb, 0x31, 0x91, 0xb5, 0x16, 0xf1, 0x1f, 0x1d, 0x2c, 0x43, 0x4b, 0xda, 0x22, 0xfe, 0xfd, 0x93, - 0xfd, 0x25, 0xe0, 0xbe, 0x92, 0xf9, 0xfd, 0x18, 0xef, 0xa0, 0x04, 0x16, 0x74, 0xec, 0x3a, 0xc0, - 0x98, 0x4b, 0x22, 0x3c, 0x41, 0xb6, 0xb1, 0x08, 0x8a, 0x17, 0x52, 0xba, 0xe6, 0x73, 0xd3, 0x15, - 0x81, 0x8b, 0x34, 0xc1, 0x86, 0xf5, 0xef, 0xa6, 0xee, 0xd1, 0x36, 0x9c, 0x6b, 0x73, 0x96, 0xc8, - 0x7f, 0xf1, 0x8e, 0xbd, 0x38, 0xde, 0xd9, 0x94, 0xe1, 0x0c, 0xf1, 0x4d, 0x38, 0xb7, 0x4d, 0x55, - 0x37, 0x10, 0x78, 0xdb, 0xc3, 0x41, 0x20, 0x3c, 0xc2, 0x70, 0x3b, 0x24, 0x41, 0x71, 0x7c, 0x11, - 0x54, 0x2f, 0xba, 0xb3, 0x7d, 0xe3, 0x5a, 0x10, 0x88, 0x75, 0x63, 0x5a, 0xbd, 0xf1, 0xf5, 0xc9, - 0xfe, 0xd2, 0xe2, 0x10, 0xf1, 0xce, 0xe9, 0x96, 0x32, 0x25, 0x73, 0x7e, 0x07, 0xb0, 0xf4, 0x09, - 0x0e, 0x69, 0x80, 0x15, 0x17, 0x1f, 0x50, 0xa9, 0xb8, 0xa0, 0x3e, 0x0e, 0x0d, 0xb1, 0x44, 0xdf, - 0x00, 0x78, 0xd5, 0x4f, 0xa2, 0x24, 0xc4, 0x8a, 0xf6, 0x88, 0xd5, 0xeb, 0x09, 0xac, 0x28, 0x2f, - 0x82, 0xc5, 0xb1, 0xea, 0xa5, 0x9b, 0xd7, 0x6d, 0xc3, 0xd6, 0x74, 0xc2, 0xfa, 0x8d, 0xa7, 0x15, - 0x35, 0x39, 0x65, 0x8d, 0x77, 0x75, 0x4e, 0x7e, 0x7e, 0x52, 0x79, 0xf3, 0xd9, 0x72, 0xa2, 0xf7, - 0x48, 0x53, 0xf1, 0xb9, 0x01, 0xad, 0x09, 0xc6, 0xd5, 0xa4, 0xe8, 0x75, 0x38, 0x23, 0xc8, 0x16, - 0x11, 0x84, 0xf9, 0xc4, 0xf3, 0x79, 0xc2, 0x54, 0x5a, 0xf5, 0xcb, 0xee, 0x74, 0x06, 0x37, 0x35, - 0xea, 0xfc, 0x04, 0xe0, 0xd5, 0x4c, 0x58, 0x33, 0x11, 0x82, 0x30, 0xd5, 0x57, 0x15, 0xc3, 0x49, - 0xa3, 0x44, 0x8e, 0x58, 0x44, 0x9f, 0x06, 0xcd, 0xc3, 0x7c, 0x4c, 0x04, 0xe5, 0xa6, 0x47, 0xc7, - 0x5d, 0xbb, 0x72, 0xbe, 0x07, 0xb0, 0x9c, 0x45, 0xb9, 0xe6, 0x5b, 0xcd, 0x24, 0x68, 0xf2, 0x28, - 0xa2, 0x52, 0x52, 0xce, 0x50, 0x0f, 0x42, 0x3f, 0x5b, 0x8d, 0x38, 0xde, 0x21, 0x26, 0xe7, 0x5b, - 0x00, 0xaf, 0x65, 0xa1, 0xdd, 0x4a, 0x94, 0x54, 0x98, 0x05, 0x94, 0x75, 0x5e, 0x5a, 0x12, 0x9d, - 0xbb, 0x00, 0xce, 0x66, 0x11, 0x6d, 0x86, 0x58, 0x76, 0xd7, 0x7b, 0x84, 0x29, 0xf4, 0x06, 0x7c, - 0xb5, 0xd7, 0x87, 0x3d, 0x9b, 0x66, 0x90, 0xa6, 0x79, 0x26, 0xc3, 0x37, 0x52, 0x18, 0x7d, 0x0a, - 0x2f, 0x6e, 0x09, 0xec, 0xeb, 0x13, 0x60, 0xa7, 0xc5, 0x7b, 0xcf, 0x73, 0x6a, 0xdd, 0xcc, 0x9b, - 0xf3, 0x15, 0x80, 0x85, 0x73, 0x82, 0x93, 0xe8, 0x73, 0x38, 0x3f, 0x88, 0x4e, 0x6a, 0x83, 0x47, - 0x52, 0x8b, 0x4d, 0xdb, 0xdb, 0xb5, 0xa7, 0x4c, 0xf0, 0xda, 0x39, 0x2e, 0x1b, 0x53, 0x3a, 0x64, - 0x93, 0x9b, 0x42, 0xef, 0x1c, 0x4a, 0x67, 0x0f, 0xc0, 0xc9, 0xf7, 0x09, 0xd9, 0xe0, 0x3c, 0x44, - 0x5f, 0xc0, 0xe9, 0xc1, 0x4c, 0x8e, 0x39, 0x0f, 0x47, 0x5c, 0xad, 0xc1, 0x0d, 0xa0, 0xe9, 0x9d, - 0x1f, 0x2e, 0xc0, 0x52, 0x73, 0x18, 0xd9, 0x8c, 0x09, 0x0b, 0xcc, 0x7c, 0xc3, 0x21, 0x2a, 0xc0, - 0x09, 0x45, 0x55, 0x48, 0xcc, 0x4d, 0xe1, 0x9a, 0x05, 0x5a, 0x84, 0x97, 0x02, 0x22, 0x7d, 0x41, - 0xe3, 0x41, 0xa1, 0xdc, 0x61, 0x08, 0x5d, 0x87, 0x53, 0x82, 0xf8, 0x34, 0xa6, 0x84, 0x29, 0x33, - 0x7e, 0xdd, 0x01, 0x80, 0xbe, 0x04, 0x30, 0x8f, 0xa3, 0x74, 0x38, 0x8c, 0xa7, 0x62, 0x17, 0xce, - 0x15, 0x9b, 0x2a, 0xfd, 0xc8, 0x2a, 0xad, 0x3e, 0x83, 0xd2, 0x54, 0xe6, 0xdd, 0x93, 0xfd, 0xa5, - 0x59, 0x96, 0x84, 0xa1, 0x27, 0x43, 0xea, 0x13, 0x0f, 0x4b, 0x8f, 0x44, 0xb1, 0xda, 0x35, 0xf2, - 0x2d, 0xef, 0x6a, 0x75, 0xef, 0x5e, 0x25, 0xf7, 0xd7, 0xbd, 0x4a, 0xee, 0xd7, 0x83, 0xe5, 0x92, - 0x25, 0xef, 0xf0, 0xde, 0x10, 0x37, 0x53, 0x3a, 0x76, 0xe0, 0x3c, 0x01, 0x70, 0xae, 0x45, 0x42, - 0xd2, 0x49, 0xab, 0xa8, 0xb0, 0x50, 0x94, 0x75, 0x3e, 0x64, 0x5b, 0xe9, 0xac, 0x8b, 0x05, 0xe9, - 0x51, 0xae, 0xaf, 0x9c, 0xe1, 0xb6, 0x9e, 0xee, 0xc3, 0xb6, 0xab, 0x6f, 0xc3, 0x09, 0xa9, 0xf0, - 0x1d, 0x62, 0x5b, 0xfa, 0x05, 0xdc, 0xb7, 0xc6, 0x1f, 0x6a, 0xc1, 0x7c, 0x97, 0xd0, 0x4e, 0xd7, - 0xe4, 0x78, 0xbc, 0xf1, 0xd6, 0xdf, 0x87, 0x95, 0x19, 0x5f, 0x10, 0x3d, 0x8a, 0x99, 0x67, 0x4c, - 0x3f, 0x9e, 0xec, 0x2f, 0x9d, 0xc5, 0x6c, 0x2e, 0xcc, 0xc2, 0x79, 0x0c, 0xe0, 0x82, 0x55, 0x48, - 0x39, 0xcb, 0xb4, 0xda, 0xcb, 0x6d, 0x1d, 0x5e, 0x19, 0x9c, 0x0f, 0x7d, 0xbb, 0x11, 0x29, 0xed, - 0xc3, 0xa1, 0xf8, 0xe8, 0x60, 0xb9, 0x60, 0x43, 0x5b, 0x33, 0x96, 0x4d, 0x25, 0xf4, 0x0c, 0x1a, - 0x1c, 0x78, 0x8b, 0x23, 0x06, 0xf3, 0xd9, 0x2b, 0x60, 0x94, 0xfd, 0x6d, 0x59, 0x56, 0xc7, 0x75, - 0x81, 0x9d, 0xdf, 0x00, 0xbc, 0xf1, 0xdf, 0xed, 0x7d, 0x9b, 0xaa, 0x6e, 0x8b, 0xc4, 0x5c, 0x52, - 0x35, 0xa2, 0x4e, 0x9f, 0x1f, 0x6a, 0x74, 0x6d, 0xb2, 0x2b, 0x54, 0x84, 0x93, 0x81, 0x21, 0x2e, - 0x4e, 0xa4, 0x86, 0xfe, 0x72, 0xd5, 0xd9, 0xfb, 0xdf, 0xa6, 0x6c, 0xdc, 0xba, 0x7f, 0x54, 0x06, - 0x0f, 0x8e, 0xca, 0xe0, 0xe1, 0x51, 0x19, 0xfc, 0x79, 0x54, 0x06, 0xdf, 0x1d, 0x97, 0x73, 0x0f, - 0x8f, 0xcb, 0xb9, 0xc7, 0xc7, 0xe5, 0xdc, 0x67, 0x2b, 0x4f, 0xcd, 0xd9, 0x99, 0x67, 0x46, 0x9a, - 0xc2, 0x76, 0x3e, 0x7d, 0x2a, 0xbe, 0xf3, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1d, 0xc8, 0x78, - 0x0f, 0xdd, 0x0a, 0x00, 0x00, + 0x14, 0xf6, 0x34, 0x89, 0xd3, 0x4c, 0xdb, 0x84, 0x4e, 0x9c, 0xd4, 0x71, 0x2b, 0x3b, 0x5a, 0xa9, + 0x60, 0x02, 0xb1, 0x49, 0xb9, 0xa0, 0x88, 0x4b, 0x6c, 0xa7, 0x82, 0x53, 0xa3, 0x0d, 0xa2, 0x88, + 0xcb, 0x6a, 0xbc, 0x3b, 0xb1, 0x47, 0xdd, 0x9d, 0x59, 0x66, 0x66, 0x9d, 0xe4, 0xc0, 0x3d, 0x70, + 0x00, 0x6e, 0xa0, 0x9e, 0x2a, 0xb8, 0x54, 0x9c, 0x72, 0xc8, 0x8d, 0x3f, 0x50, 0x71, 0xaa, 0x8a, + 0x84, 0x2a, 0x0e, 0x29, 0x4a, 0x0e, 0x41, 0xfc, 0x0a, 0x34, 0x3b, 0xe3, 0xb5, 0x13, 0x42, 0xa9, + 0xd4, 0x5a, 0xbd, 0x24, 0x9e, 0xef, 0xed, 0xbe, 0xef, 0x7d, 0xef, 0xbd, 0x79, 0x6f, 0x61, 0xcd, + 0xe7, 0x32, 0xe2, 0xb2, 0x1e, 0x50, 0xa9, 0x04, 0x6d, 0x27, 0x8a, 0x72, 0x56, 0xef, 0xad, 0xb4, + 0x89, 0xc2, 0x2b, 0xa7, 0xc0, 0x5a, 0x2c, 0xb8, 0xe2, 0xe8, 0xba, 0x79, 0xbe, 0x76, 0xca, 0x64, + 0x9f, 0x2f, 0x15, 0x3a, 0xbc, 0xc3, 0xd3, 0xe7, 0xea, 0xfa, 0x97, 0x79, 0xa5, 0x54, 0xb6, 0x14, + 0x6d, 0x2c, 0x49, 0xe6, 0xda, 0xe7, 0xd4, 0xba, 0x2c, 0x2d, 0x18, 0xbb, 0x67, 0x5e, 0xb4, 0xfe, + 0x8d, 0xe9, 0x2a, 0x8e, 0x28, 0xe3, 0xf5, 0xf4, 0xaf, 0x81, 0x9c, 0x5f, 0xc6, 0x60, 0x7e, 0x03, + 0x0b, 0x1c, 0x49, 0xb4, 0x05, 0xaf, 0xf8, 0x3c, 0x8a, 0x12, 0x46, 0xd5, 0xae, 0xa7, 0xf0, 0x4e, + 0x11, 0x2c, 0x82, 0xea, 0x54, 0x63, 0xed, 0xd1, 0x61, 0x25, 0xf7, 0xc7, 0x61, 0xe5, 0xcd, 0x0e, + 0x55, 0xdd, 0xa4, 0x5d, 0xf3, 0x79, 0x64, 0xbd, 0xda, 0x7f, 0xcb, 0x32, 0xb8, 0x57, 0x57, 0xbb, + 0x31, 0x91, 0xb5, 0x16, 0xf1, 0x9f, 0x1c, 0x2c, 0x43, 0x4b, 0xda, 0x22, 0xfe, 0xc3, 0x93, 0xfd, + 0x25, 0xe0, 0x5e, 0xce, 0xfc, 0x7e, 0x82, 0x77, 0x50, 0x02, 0x0b, 0x3a, 0x76, 0x1d, 0x60, 0xcc, + 0x25, 0x11, 0x9e, 0x20, 0xdb, 0x58, 0x04, 0xc5, 0x0b, 0x29, 0x5d, 0xf3, 0xa5, 0xe9, 0x8a, 0xc0, + 0x45, 0x9a, 0x60, 0xc3, 0xfa, 0x77, 0x53, 0xf7, 0x68, 0x1b, 0xce, 0xb5, 0x39, 0x4b, 0xe4, 0xbf, + 0x78, 0xc7, 0x5e, 0x1d, 0xef, 0x6c, 0xca, 0x70, 0x86, 0xf8, 0x16, 0x9c, 0xdb, 0xa6, 0xaa, 0x1b, + 0x08, 0xbc, 0xed, 0xe1, 0x20, 0x10, 0x1e, 0x61, 0xb8, 0x1d, 0x92, 0xa0, 0x38, 0xbe, 0x08, 0xaa, + 0x17, 0xdd, 0xd9, 0xbe, 0x71, 0x2d, 0x08, 0xc4, 0xba, 0x31, 0xad, 0xde, 0xfc, 0xfa, 0x64, 0x7f, + 0x69, 0x71, 0x88, 0x78, 0xe7, 0x74, 0x4b, 0x99, 0x92, 0x39, 0xbf, 0x03, 0x58, 0xfa, 0x14, 0x87, + 0x34, 0xc0, 0x8a, 0x8b, 0x8f, 0xa8, 0x54, 0x5c, 0x50, 0x1f, 0x87, 0x86, 0x58, 0xa2, 0x6f, 0x00, + 0xbc, 0xe6, 0x27, 0x51, 0x12, 0x62, 0x45, 0x7b, 0xc4, 0xea, 0xf5, 0x04, 0x56, 0x94, 0x17, 0xc1, + 0xe2, 0x58, 0xf5, 0xd2, 0xad, 0x1b, 0xb6, 0x61, 0x6b, 0x3a, 0x61, 0xfd, 0xc6, 0xd3, 0x8a, 0x9a, + 0x9c, 0xb2, 0xc6, 0x07, 0x3a, 0x27, 0x3f, 0x3f, 0xab, 0xbc, 0xf3, 0x62, 0x39, 0xd1, 0xef, 0x48, + 0x53, 0xf1, 0xb9, 0x01, 0xad, 0x09, 0xc6, 0xd5, 0xa4, 0xe8, 0x2d, 0x38, 0x23, 0xc8, 0x16, 0x11, + 0x84, 0xf9, 0xc4, 0xf3, 0x79, 0xc2, 0x54, 0x5a, 0xf5, 0x2b, 0xee, 0x74, 0x06, 0x37, 0x35, 0xea, + 0xfc, 0x04, 0xe0, 0xb5, 0x4c, 0x58, 0x33, 0x11, 0x82, 0x30, 0xd5, 0x57, 0x15, 0xc3, 0x49, 0xa3, + 0x44, 0x8e, 0x58, 0x44, 0x9f, 0x06, 0xcd, 0xc3, 0x7c, 0x4c, 0x04, 0xe5, 0xa6, 0x47, 0xc7, 0x5d, + 0x7b, 0x72, 0x7e, 0x00, 0xb0, 0x9c, 0x45, 0xb9, 0xe6, 0x5b, 0xcd, 0x24, 0x68, 0xf2, 0x28, 0xa2, + 0x52, 0x52, 0xce, 0x50, 0x0f, 0x42, 0x3f, 0x3b, 0x8d, 0x38, 0xde, 0x21, 0x26, 0xe7, 0x5b, 0x00, + 0xaf, 0x67, 0xa1, 0xdd, 0x49, 0x94, 0x54, 0x98, 0x05, 0x94, 0x75, 0x5e, 0x5b, 0x12, 0x9d, 0xfb, + 0x00, 0xce, 0x66, 0x11, 0x6d, 0x86, 0x58, 0x76, 0xd7, 0x7b, 0x84, 0x29, 0xf4, 0x36, 0x7c, 0xa3, + 0xd7, 0x87, 0x3d, 0x9b, 0x66, 0x90, 0xa6, 0x79, 0x26, 0xc3, 0x37, 0x52, 0x18, 0x7d, 0x06, 0x2f, + 0x6e, 0x09, 0xec, 0xeb, 0x1b, 0x60, 0xa7, 0xc5, 0x87, 0x2f, 0x73, 0x6b, 0xdd, 0xcc, 0x9b, 0xf3, + 0x15, 0x80, 0x85, 0x73, 0x82, 0x93, 0xe8, 0x0b, 0x38, 0x3f, 0x88, 0x4e, 0x6a, 0x83, 0x47, 0x52, + 0x8b, 0x4d, 0xdb, 0x7b, 0xb5, 0xe7, 0x4c, 0xf0, 0xda, 0x39, 0x2e, 0x1b, 0x53, 0x3a, 0x64, 0x93, + 0x9b, 0x42, 0xef, 0x1c, 0x4a, 0x67, 0x0f, 0xc0, 0xc9, 0xdb, 0x84, 0x6c, 0x70, 0x1e, 0xa2, 0x2f, + 0xe1, 0xf4, 0x60, 0x26, 0xc7, 0x9c, 0x87, 0x23, 0xae, 0xd6, 0x60, 0x03, 0x68, 0x7a, 0xe7, 0xfb, + 0x0b, 0xb0, 0xd4, 0x1c, 0x46, 0x36, 0x63, 0xc2, 0x02, 0x33, 0xdf, 0x70, 0x88, 0x0a, 0x70, 0x42, + 0x51, 0x15, 0x12, 0xb3, 0x29, 0x5c, 0x73, 0x40, 0x8b, 0xf0, 0x52, 0x40, 0xa4, 0x2f, 0x68, 0x3c, + 0x28, 0x94, 0x3b, 0x0c, 0xa1, 0x1b, 0x70, 0x4a, 0x10, 0x9f, 0xc6, 0x94, 0x30, 0x65, 0xc6, 0xaf, + 0x3b, 0x00, 0xd0, 0x2e, 0xcc, 0xe3, 0x28, 0x9d, 0x0d, 0xe3, 0xa9, 0xd6, 0x85, 0x73, 0xb5, 0xa6, + 0x42, 0x6f, 0x5b, 0xa1, 0xd5, 0x17, 0x10, 0x9a, 0xaa, 0xbc, 0x7f, 0xb2, 0xbf, 0x74, 0x39, 0x24, + 0x1d, 0xec, 0xef, 0x7a, 0xfe, 0x40, 0xb6, 0x25, 0x5c, 0xad, 0xee, 0x3d, 0xa8, 0xe4, 0xfe, 0x7a, + 0x50, 0xc9, 0xfd, 0x7a, 0xb0, 0x5c, 0xb2, 0xac, 0x1d, 0xde, 0x1b, 0x22, 0x65, 0x4a, 0xc7, 0x0c, + 0x9c, 0x67, 0x00, 0xce, 0xb5, 0x88, 0xf6, 0xa4, 0xab, 0xa7, 0xb0, 0x50, 0x94, 0x75, 0x3e, 0x66, + 0x5b, 0xe9, 0x8c, 0x8b, 0x05, 0xe9, 0x51, 0xae, 0x57, 0xcd, 0x70, 0x3b, 0x4f, 0xf7, 0x61, 0xdb, + 0xcd, 0x77, 0xe1, 0x84, 0x54, 0xf8, 0x1e, 0xb1, 0xad, 0xfc, 0x0a, 0xf6, 0xac, 0xf1, 0x87, 0x5a, + 0x30, 0xdf, 0x25, 0xb4, 0xd3, 0x35, 0xb9, 0x1d, 0x6f, 0xbc, 0xfb, 0xf7, 0x61, 0x65, 0xc6, 0x17, + 0x44, 0x8f, 0x60, 0xe6, 0x19, 0xd3, 0x8f, 0x27, 0xfb, 0x4b, 0x67, 0x31, 0x9b, 0x0b, 0x73, 0x70, + 0x9e, 0x02, 0xb8, 0x60, 0x15, 0x52, 0xce, 0x32, 0xad, 0x76, 0xa9, 0xad, 0xc3, 0xab, 0x83, 0x7b, + 0xa1, 0xb7, 0x1a, 0x91, 0xd2, 0x7e, 0x30, 0x14, 0x9f, 0x1c, 0x2c, 0x17, 0x6c, 0x68, 0x6b, 0xc6, + 0xb2, 0xa9, 0x84, 0x9e, 0x3d, 0x83, 0x8b, 0x6e, 0x71, 0xc4, 0x60, 0x3e, 0xdb, 0xfe, 0xa3, 0xec, + 0x6b, 0xcb, 0xb2, 0x3a, 0xae, 0x0b, 0xec, 0xfc, 0x06, 0xe0, 0xcd, 0xff, 0x6e, 0xeb, 0xbb, 0x54, + 0x75, 0x5b, 0x24, 0xe6, 0x92, 0xaa, 0x11, 0x75, 0xf8, 0xfc, 0x50, 0x87, 0x6b, 0x93, 0x3d, 0xa1, + 0x22, 0x9c, 0x0c, 0x0c, 0x71, 0x71, 0x22, 0x35, 0xf4, 0x8f, 0xab, 0xce, 0xde, 0xff, 0x36, 0x65, + 0xe3, 0xce, 0xc3, 0xa3, 0x32, 0x78, 0x74, 0x54, 0x06, 0x8f, 0x8f, 0xca, 0xe0, 0xcf, 0xa3, 0x32, + 0xf8, 0xee, 0xb8, 0x9c, 0x7b, 0x7c, 0x5c, 0xce, 0x3d, 0x3d, 0x2e, 0xe7, 0x3e, 0x5f, 0x79, 0x6e, + 0xce, 0xce, 0x7c, 0x5e, 0xa4, 0x29, 0x6c, 0xe7, 0xd3, 0x4f, 0xc4, 0xf7, 0xff, 0x09, 0x00, 0x00, + 0xff, 0xff, 0x74, 0x83, 0x5e, 0x7e, 0xd5, 0x0a, 0x00, 0x00, } func (this *Params) Equal(that interface{}) bool { diff --git a/x/distribution/types/tx.pb.go b/x/distribution/types/tx.pb.go index 7a9296627967..bc421dddc7ab 100644 --- a/x/distribution/types/tx.pb.go +++ b/x/distribution/types/tx.pb.go @@ -675,65 +675,64 @@ func init() { } var fileDescriptor_ed4f433d965e58ca = []byte{ - // 922 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0x41, 0x6f, 0xe3, 0x44, - 0x14, 0xce, 0xa4, 0xa2, 0x28, 0xb3, 0x48, 0xdb, 0x84, 0xa2, 0xb6, 0xde, 0xc5, 0x59, 0x79, 0xa1, - 0x44, 0x11, 0x6b, 0x2b, 0x01, 0x81, 0x36, 0x1c, 0x80, 0x64, 0xb7, 0x12, 0x07, 0x8b, 0x55, 0x2a, - 0x40, 0xe2, 0x12, 0x39, 0xf1, 0xe0, 0x8e, 0x88, 0x3d, 0x96, 0x67, 0xd2, 0x6c, 0x6e, 0x0b, 0xe2, - 0x80, 0x90, 0x90, 0x90, 0xb8, 0x71, 0x61, 0x6f, 0xac, 0xd8, 0x03, 0x39, 0xf0, 0x23, 0xf6, 0x82, - 0x54, 0x71, 0xe2, 0x04, 0x28, 0x45, 0x0a, 0x12, 0x5c, 0xb9, 0x23, 0xdb, 0x63, 0xc7, 0x8e, 0x1d, - 0xbb, 0x29, 0x95, 0xe8, 0xa5, 0xad, 0x66, 0xde, 0xf7, 0xe6, 0x7b, 0xdf, 0x7c, 0xf3, 0x9e, 0x0b, - 0x5f, 0x18, 0x10, 0x6a, 0x12, 0xaa, 0xe8, 0x98, 0x32, 0x07, 0xf7, 0x47, 0x0c, 0x13, 0x4b, 0x39, - 0x6e, 0xf4, 0x11, 0xd3, 0x1a, 0x0a, 0xbb, 0x2f, 0xdb, 0x0e, 0x61, 0xa4, 0x72, 0xcd, 0x8f, 0x92, - 0xa3, 0x51, 0x32, 0x8f, 0x12, 0xb6, 0x0d, 0x62, 0x10, 0x2f, 0x4e, 0x71, 0xff, 0xf2, 0x21, 0x82, - 0xc8, 0x13, 0xf7, 0x35, 0x8a, 0xc2, 0x84, 0x03, 0x82, 0x2d, 0xbe, 0xbf, 0xe7, 0xef, 0xf7, 0x7c, - 0x20, 0xcf, 0xef, 0x6f, 0xed, 0x70, 0xa8, 0x49, 0x0d, 0xe5, 0xb8, 0xe1, 0xfe, 0xe2, 0x1b, 0x65, - 0xcd, 0xc4, 0x16, 0x51, 0xbc, 0x9f, 0x7c, 0x49, 0xce, 0xe2, 0x1f, 0xa3, 0xeb, 0xc5, 0x4b, 0x7f, - 0x01, 0xf8, 0x9c, 0x4a, 0x8d, 0x43, 0xc4, 0x3e, 0xc0, 0xec, 0x48, 0x77, 0xb4, 0xf1, 0xdb, 0xba, - 0xee, 0x20, 0x4a, 0x2b, 0x77, 0x61, 0x59, 0x47, 0x43, 0x64, 0x68, 0x8c, 0x38, 0x3d, 0xcd, 0x5f, - 0xdc, 0x05, 0x37, 0x40, 0xad, 0xd4, 0xde, 0xfd, 0xf9, 0xc7, 0x5b, 0xdb, 0x9c, 0x22, 0x0f, 0x3f, - 0x64, 0x0e, 0xb6, 0x8c, 0xee, 0x56, 0x08, 0x09, 0xd2, 0x74, 0xe0, 0xd6, 0x98, 0x67, 0x0e, 0xb3, - 0x14, 0x73, 0xb2, 0x5c, 0x1d, 0xc7, 0xb9, 0xb4, 0x0e, 0x3e, 0x7f, 0x58, 0x2d, 0xfc, 0xf9, 0xb0, - 0x5a, 0xf8, 0x74, 0x3e, 0xad, 0x27, 0x69, 0x7d, 0x31, 0x9f, 0xd6, 0x6f, 0xfa, 0x99, 0x6e, 0x51, - 0xfd, 0x63, 0x45, 0xa5, 0x86, 0x4a, 0x74, 0xfc, 0xd1, 0x64, 0xa9, 0x26, 0xa9, 0x0a, 0x9f, 0x4f, - 0x2d, 0xb6, 0x8b, 0xa8, 0x4d, 0x2c, 0x8a, 0xa4, 0x7f, 0x00, 0x14, 0x54, 0x6a, 0x04, 0xdb, 0x77, - 0x82, 0x93, 0xba, 0x68, 0xac, 0x39, 0xfa, 0x45, 0x69, 0x72, 0x17, 0x96, 0x8f, 0xb5, 0x21, 0xd6, - 0x63, 0x69, 0xf2, 0x44, 0xd9, 0x0a, 0x21, 0x81, 0x2a, 0xef, 0xe4, 0xab, 0xb2, 0x1f, 0x57, 0x65, - 0xa9, 0x2e, 0x4c, 0x2c, 0xbf, 0x30, 0xe9, 0x3b, 0x00, 0xa5, 0xd5, 0x75, 0x07, 0xf2, 0x54, 0x1e, - 0x00, 0xb8, 0xa9, 0x99, 0x64, 0x64, 0xb1, 0x5d, 0x70, 0x63, 0xa3, 0x76, 0xa5, 0xb9, 0xc7, 0xfd, - 0x26, 0xbb, 0xb6, 0x0e, 0x5e, 0x80, 0xdc, 0x21, 0xd8, 0x6a, 0xab, 0x4f, 0x7e, 0xad, 0x16, 0xbe, - 0xff, 0xad, 0x5a, 0x33, 0x30, 0x3b, 0x1a, 0xf5, 0xe5, 0x01, 0x31, 0xb9, 0xad, 0x95, 0x08, 0x29, - 0x36, 0xb1, 0x11, 0xf5, 0x00, 0xf4, 0x9b, 0xf9, 0xb4, 0xfe, 0xac, 0x35, 0x1a, 0x0e, 0x7b, 0x74, - 0x88, 0x07, 0xa8, 0xa7, 0xd1, 0x1e, 0x32, 0x6d, 0x36, 0x79, 0x34, 0x9f, 0xd6, 0x41, 0x97, 0x9f, - 0x2b, 0xfd, 0x00, 0xa0, 0x18, 0x61, 0xfa, 0x7e, 0x20, 0x4a, 0x87, 0x98, 0x26, 0xa6, 0x14, 0x13, - 0x2b, 0x5d, 0x5e, 0xb0, 0xb6, 0xbc, 0x71, 0xd3, 0x25, 0x32, 0xa6, 0x98, 0x2e, 0x42, 0x6a, 0x41, - 0x47, 0x7a, 0x0c, 0xe0, 0x7e, 0x36, 0xe3, 0xcb, 0xa4, 0xef, 0x97, 0x45, 0xb8, 0xad, 0x52, 0xe3, - 0x60, 0x64, 0xe9, 0x2e, 0xc1, 0x91, 0x85, 0xd9, 0xe4, 0x1e, 0x21, 0xc3, 0x4b, 0xc0, 0xad, 0xf2, - 0x1a, 0x2c, 0xe9, 0xc8, 0x26, 0x14, 0x33, 0xe2, 0xe4, 0xbe, 0x97, 0x45, 0x68, 0xab, 0x15, 0xbd, - 0xc9, 0xc5, 0xba, 0x7b, 0x83, 0xd5, 0xf8, 0x0d, 0x26, 0xca, 0x96, 0x44, 0x78, 0x3d, 0x6d, 0x3d, - 0xec, 0x18, 0x3f, 0x01, 0x78, 0x55, 0xa5, 0xc6, 0x7b, 0xb6, 0xae, 0x31, 0x74, 0x4f, 0x73, 0x34, - 0x93, 0xba, 0x3c, 0xb5, 0x11, 0x3b, 0x22, 0x0e, 0x66, 0x93, 0x5c, 0xe3, 0x2d, 0x42, 0x2b, 0x07, - 0x70, 0xd3, 0xf6, 0x32, 0x78, 0xc5, 0x5d, 0x69, 0xde, 0x94, 0x33, 0xe6, 0x8c, 0xec, 0x1f, 0xd6, - 0x2e, 0xb9, 0x5a, 0x73, 0x9d, 0x7c, 0x74, 0xab, 0xe5, 0xd5, 0x19, 0xe6, 0x75, 0xeb, 0x7c, 0x29, - 0x52, 0x67, 0x6c, 0x36, 0x2c, 0x71, 0x97, 0xf6, 0xe0, 0xce, 0xd2, 0x52, 0x58, 0xea, 0xe3, 0xa2, - 0x37, 0x2b, 0x62, 0x3a, 0x1c, 0xda, 0xc8, 0xd2, 0xcf, 0x5d, 0xf0, 0x75, 0x58, 0x72, 0xd0, 0x00, - 0xdb, 0x18, 0x59, 0xcc, 0xbf, 0xd0, 0xee, 0x62, 0x21, 0xea, 0xb8, 0x8d, 0xff, 0xc7, 0x71, 0xad, - 0xdb, 0x49, 0x25, 0xf7, 0x97, 0x95, 0x54, 0x52, 0x35, 0xe1, 0xb3, 0x26, 0xb9, 0x11, 0xca, 0xf9, - 0x47, 0xd1, 0xeb, 0x64, 0x77, 0x7c, 0x3b, 0x86, 0x6d, 0xc1, 0x6f, 0xb9, 0xd4, 0x7b, 0x73, 0xe7, - 0xd5, 0xf5, 0x62, 0x06, 0xcc, 0x65, 0xb8, 0x80, 0xb7, 0x62, 0x4f, 0x37, 0x76, 0x11, 0x2f, 0xa6, - 0x5d, 0xc4, 0x42, 0x4d, 0xae, 0xa3, 0x54, 0xf3, 0xba, 0x6f, 0x86, 0xca, 0xc1, 0x85, 0x34, 0xff, - 0x7e, 0x1a, 0x6e, 0xa8, 0xd4, 0xa8, 0x7c, 0x06, 0x60, 0x25, 0xe5, 0x83, 0xa8, 0x99, 0xf9, 0x1a, - 0x53, 0xbf, 0x2b, 0x84, 0xd6, 0xfa, 0x98, 0x70, 0x18, 0x7c, 0x0d, 0xe0, 0xce, 0xaa, 0x0f, 0x91, - 0xd7, 0xf3, 0xf2, 0xae, 0x00, 0x0a, 0x6f, 0x9e, 0x13, 0x18, 0xb2, 0xfa, 0x16, 0xc0, 0x6b, 0x59, - 0xc3, 0xf7, 0x8d, 0xb3, 0x1e, 0x90, 0x02, 0x16, 0x3a, 0xff, 0x01, 0x1c, 0x32, 0xfc, 0x04, 0xc0, - 0x72, 0x72, 0x7c, 0x35, 0xf2, 0x52, 0x27, 0x20, 0xc2, 0xed, 0xb5, 0x21, 0x21, 0x07, 0x07, 0x3e, - 0x13, 0x9b, 0x08, 0x2f, 0xe7, 0xa5, 0x8a, 0x46, 0x0b, 0xaf, 0xae, 0x13, 0x1d, 0x9e, 0xe9, 0xda, - 0x36, 0xa5, 0x37, 0xe7, 0xda, 0x36, 0x89, 0xc9, 0xb7, 0xed, 0xea, 0xb6, 0xe6, 0x19, 0x24, 0xab, - 0xa7, 0xe5, 0x1a, 0x24, 0x03, 0x9c, 0x6f, 0x90, 0x33, 0xbc, 0x73, 0xe1, 0xa9, 0x07, 0x6e, 0x8b, - 0x69, 0xbf, 0xfb, 0x68, 0x26, 0x82, 0x27, 0x33, 0x11, 0x9c, 0xcc, 0x44, 0xf0, 0xfb, 0x4c, 0x04, - 0x5f, 0x9d, 0x8a, 0x85, 0x93, 0x53, 0xb1, 0xf0, 0xcb, 0xa9, 0x58, 0xf8, 0xb0, 0x91, 0xd9, 0xc7, - 0xee, 0xc7, 0x87, 0xa8, 0xd7, 0xd6, 0xfa, 0x9b, 0xde, 0xbf, 0x54, 0xaf, 0xfc, 0x1b, 0x00, 0x00, - 0xff, 0xff, 0x64, 0x0b, 0x1d, 0xdd, 0x44, 0x0e, 0x00, 0x00, + // 912 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xb1, 0x6f, 0xf3, 0x44, + 0x14, 0xcf, 0xa5, 0xa2, 0x28, 0xf7, 0x7d, 0xd2, 0xd7, 0x44, 0x45, 0x6d, 0xfd, 0x15, 0xa7, 0x72, + 0xa1, 0x44, 0x11, 0xb5, 0x95, 0x80, 0x40, 0x0d, 0x03, 0x90, 0xb4, 0x91, 0x18, 0x22, 0xaa, 0x54, + 0x80, 0xc4, 0x52, 0x39, 0xb1, 0x71, 0x4f, 0xd4, 0x3e, 0xcb, 0x77, 0x69, 0x9a, 0x0d, 0x10, 0x48, + 0x88, 0x09, 0x89, 0x8d, 0xa5, 0x95, 0xba, 0x54, 0x2c, 0x64, 0xe0, 0x8f, 0xe8, 0x82, 0x54, 0x31, + 0x31, 0x20, 0x40, 0xe9, 0x10, 0x24, 0x58, 0xd9, 0x91, 0xed, 0xb3, 0x63, 0xc7, 0x8e, 0xdd, 0x94, + 0x8a, 0xb2, 0xb4, 0xd5, 0xdd, 0xfb, 0xbd, 0xfb, 0xbd, 0xdf, 0xfd, 0xee, 0x3d, 0x17, 0xbe, 0xd0, + 0xc5, 0x44, 0xc7, 0x44, 0x52, 0x10, 0xa1, 0x16, 0xea, 0xf4, 0x28, 0xc2, 0x86, 0x74, 0x52, 0xe9, + 0xa8, 0x54, 0xae, 0x48, 0xf4, 0x54, 0x34, 0x2d, 0x4c, 0x71, 0xe1, 0xa9, 0x1b, 0x25, 0x06, 0xa3, + 0x44, 0x16, 0xc5, 0x2d, 0x6b, 0x58, 0xc3, 0x4e, 0x9c, 0x64, 0xff, 0xe5, 0x42, 0x38, 0x9e, 0x25, + 0xee, 0xc8, 0x44, 0xf5, 0x13, 0x76, 0x31, 0x32, 0xd8, 0xfe, 0x9a, 0xbb, 0x7f, 0xe8, 0x02, 0x59, + 0x7e, 0x77, 0x6b, 0x85, 0x41, 0x75, 0xa2, 0x49, 0x27, 0x15, 0xfb, 0x17, 0xdb, 0xc8, 0xcb, 0x3a, + 0x32, 0xb0, 0xe4, 0xfc, 0x64, 0x4b, 0x62, 0x12, 0xff, 0x10, 0x5d, 0x27, 0x5e, 0xf8, 0x13, 0xc0, + 0xe7, 0x5a, 0x44, 0x3b, 0x50, 0xe9, 0x07, 0x88, 0x1e, 0x29, 0x96, 0xdc, 0x7f, 0x5b, 0x51, 0x2c, + 0x95, 0x90, 0xc2, 0x1e, 0xcc, 0x2b, 0xea, 0xb1, 0xaa, 0xc9, 0x14, 0x5b, 0x87, 0xb2, 0xbb, 0xb8, + 0x0a, 0x36, 0x40, 0x29, 0x57, 0x5f, 0xfd, 0xe9, 0x87, 0xed, 0x65, 0x46, 0x91, 0x85, 0x1f, 0x50, + 0x0b, 0x19, 0x5a, 0x7b, 0xc9, 0x87, 0x78, 0x69, 0x1a, 0x70, 0xa9, 0xcf, 0x32, 0xfb, 0x59, 0xb2, + 0x29, 0x59, 0x9e, 0xf4, 0xc3, 0x5c, 0x6a, 0xcd, 0x2f, 0xcf, 0x8b, 0x99, 0x3f, 0xce, 0x8b, 0x99, + 0xcf, 0xc6, 0xc3, 0x72, 0x94, 0xd6, 0x57, 0xe3, 0x61, 0x79, 0xd3, 0xcd, 0xb4, 0x4d, 0x94, 0x8f, + 0xa5, 0x16, 0xd1, 0x5a, 0x58, 0x41, 0x1f, 0x0d, 0xa6, 0x6a, 0x12, 0x8a, 0xf0, 0xf9, 0xd8, 0x62, + 0xdb, 0x2a, 0x31, 0xb1, 0x41, 0x54, 0xe1, 0x6f, 0x00, 0xb9, 0x16, 0xd1, 0xbc, 0xed, 0x5d, 0xef, + 0xa4, 0xb6, 0xda, 0x97, 0x2d, 0xe5, 0xbe, 0x34, 0xd9, 0x83, 0xf9, 0x13, 0xf9, 0x18, 0x29, 0xa1, + 0x34, 0x69, 0xa2, 0x2c, 0xf9, 0x10, 0x4f, 0x95, 0x77, 0xd2, 0x55, 0xd9, 0x0a, 0xab, 0x32, 0x55, + 0x17, 0xc2, 0x86, 0x5b, 0x98, 0x70, 0x06, 0xa0, 0x30, 0xbb, 0x6e, 0x4f, 0x9e, 0xc2, 0x00, 0x2e, + 0xca, 0x3a, 0xee, 0x19, 0x74, 0x15, 0x6c, 0x2c, 0x94, 0x1e, 0x55, 0xd7, 0x98, 0xdd, 0x44, 0xdb, + 0xd5, 0xde, 0x03, 0x10, 0x1b, 0x18, 0x19, 0xf5, 0xe6, 0xd5, 0xaf, 0xc5, 0xcc, 0x77, 0xbf, 0x15, + 0x4b, 0x1a, 0xa2, 0x47, 0xbd, 0x8e, 0xd8, 0xc5, 0x3a, 0x73, 0xb5, 0x14, 0xe0, 0x44, 0x07, 0xa6, + 0x4a, 0x1c, 0x00, 0xf9, 0x76, 0x3c, 0x2c, 0x3f, 0xb6, 0x8f, 0xed, 0x0e, 0x0e, 0xed, 0x77, 0x41, + 0x2e, 0xc7, 0xc3, 0x32, 0x68, 0xb3, 0x03, 0x85, 0xef, 0x01, 0xe4, 0x03, 0x0c, 0xdf, 0xf7, 0xc4, + 0x68, 0x60, 0x5d, 0x47, 0x84, 0x20, 0x6c, 0xc4, 0xcb, 0x0a, 0xe6, 0x96, 0x35, 0x6c, 0xb6, 0x48, + 0xc6, 0x18, 0xb3, 0x05, 0x48, 0x4d, 0xe8, 0x08, 0x17, 0x00, 0x6e, 0x25, 0x33, 0xfe, 0x3f, 0xe8, + 0xfa, 0x45, 0x16, 0x2e, 0xb7, 0x88, 0xd6, 0xec, 0x19, 0x8a, 0x4d, 0xac, 0x67, 0x20, 0x3a, 0xd8, + 0xc7, 0xf8, 0xf8, 0x01, 0x39, 0x15, 0x5e, 0x83, 0x39, 0x45, 0x35, 0x31, 0x41, 0x14, 0x5b, 0xa9, + 0xef, 0x62, 0x12, 0x5a, 0xab, 0x05, 0x6f, 0x6e, 0xb2, 0x6e, 0xdf, 0x58, 0x31, 0x7c, 0x63, 0x91, + 0x72, 0x05, 0x1e, 0xae, 0xc7, 0xad, 0xfb, 0x9d, 0xe1, 0x47, 0x00, 0x9f, 0xb4, 0x88, 0xf6, 0x9e, + 0xa9, 0xc8, 0x54, 0xdd, 0x97, 0x2d, 0x59, 0x27, 0x36, 0x4f, 0xb9, 0x47, 0x8f, 0xb0, 0x85, 0xe8, + 0x20, 0xd5, 0x68, 0x93, 0xd0, 0x42, 0x13, 0x2e, 0x9a, 0x4e, 0x06, 0xa7, 0xb8, 0x47, 0xd5, 0x4d, + 0x31, 0x61, 0x9e, 0x88, 0xee, 0x61, 0xf5, 0x9c, 0x2d, 0x32, 0xd3, 0xc9, 0x45, 0xd7, 0x6a, 0x4e, + 0x9d, 0x7e, 0x5e, 0xbb, 0xce, 0x97, 0x02, 0x75, 0x86, 0x66, 0xc0, 0x14, 0x77, 0x61, 0x0d, 0xae, + 0x4c, 0x2d, 0xf9, 0xa5, 0x5e, 0x64, 0x9d, 0x99, 0x10, 0xd2, 0xe1, 0xc0, 0x54, 0x0d, 0xe5, 0xce, + 0x05, 0xaf, 0xc3, 0x9c, 0xa5, 0x76, 0x91, 0x89, 0x54, 0x83, 0xba, 0x17, 0xda, 0x9e, 0x2c, 0x04, + 0x9c, 0xb6, 0xf0, 0x1f, 0x3b, 0xad, 0xb6, 0x13, 0x55, 0x70, 0x6b, 0x5a, 0x41, 0x29, 0x56, 0x0b, + 0x36, 0x4b, 0xa2, 0x1b, 0xbe, 0x8c, 0xbf, 0x64, 0x9d, 0x8e, 0xb5, 0xeb, 0xda, 0xd0, 0x7f, 0xfe, + 0x6e, 0x4b, 0x25, 0xce, 0x1b, 0xbb, 0xab, 0x9e, 0xf7, 0x33, 0x40, 0x1e, 0x52, 0xf8, 0xb7, 0x42, + 0x4f, 0x35, 0x74, 0x01, 0x2f, 0xc6, 0x5d, 0xc0, 0x44, 0x45, 0xa6, 0x9f, 0x50, 0x72, 0xba, 0x6b, + 0x82, 0xba, 0xde, 0x45, 0x54, 0xff, 0x7a, 0x16, 0x2e, 0xb4, 0x88, 0x56, 0xf8, 0x1c, 0xc0, 0x42, + 0xcc, 0x87, 0x4e, 0x35, 0xf1, 0xf5, 0xc5, 0x7e, 0x2f, 0x70, 0xb5, 0xf9, 0x31, 0x7e, 0xb3, 0xff, + 0x06, 0xc0, 0x95, 0x59, 0x1f, 0x18, 0xaf, 0xa7, 0xe5, 0x9d, 0x01, 0xe4, 0xde, 0xbc, 0x23, 0xd0, + 0x67, 0x75, 0x06, 0xe0, 0xd3, 0xa4, 0xe1, 0xfa, 0xc6, 0x6d, 0x0f, 0x88, 0x01, 0x73, 0x8d, 0x7f, + 0x01, 0xf6, 0x19, 0x7e, 0x0a, 0x60, 0x3e, 0x3a, 0xa6, 0x2a, 0x69, 0xa9, 0x23, 0x10, 0x6e, 0x67, + 0x6e, 0x88, 0xcf, 0xc1, 0x82, 0x8f, 0x43, 0x13, 0xe0, 0xe5, 0xb4, 0x54, 0xc1, 0x68, 0xee, 0xd5, + 0x79, 0xa2, 0xfd, 0x33, 0x6d, 0xdb, 0xc6, 0xf4, 0xe2, 0x54, 0xdb, 0x46, 0x31, 0xe9, 0xb6, 0x9d, + 0xdd, 0xce, 0x1c, 0x83, 0x24, 0xf5, 0xb2, 0x54, 0x83, 0x24, 0x80, 0xd3, 0x0d, 0x72, 0x8b, 0x77, + 0xce, 0x3d, 0xf3, 0x89, 0xdd, 0x62, 0xea, 0xef, 0x5e, 0x8e, 0x78, 0x70, 0x35, 0xe2, 0xc1, 0xf5, + 0x88, 0x07, 0xbf, 0x8f, 0x78, 0xf0, 0xf5, 0x0d, 0x9f, 0xb9, 0xbe, 0xe1, 0x33, 0x3f, 0xdf, 0xf0, + 0x99, 0x0f, 0x2b, 0x89, 0x0d, 0xec, 0x34, 0x3c, 0x34, 0x9d, 0x7e, 0xd6, 0x59, 0x74, 0xfe, 0x55, + 0x7a, 0xe5, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0d, 0xb6, 0xd1, 0xb4, 0x1c, 0x0e, 0x00, 0x00, } func (this *MsgSetWithdrawAddressResponse) Equal(that interface{}) bool { diff --git a/x/feegrant/feegrant.pb.go b/x/feegrant/feegrant.pb.go index e75560b57f92..b30f725c8a7f 100644 --- a/x/feegrant/feegrant.pb.go +++ b/x/feegrant/feegrant.pb.go @@ -295,49 +295,49 @@ func init() { } var fileDescriptor_7279582900c30aea = []byte{ - // 667 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xc1, 0x4f, 0xd4, 0x4e, - 0x14, 0xde, 0x61, 0x81, 0x5f, 0x76, 0xf6, 0x27, 0x42, 0x21, 0xb1, 0x4b, 0x4c, 0x97, 0x6c, 0xa2, - 0x2e, 0x24, 0xb4, 0x01, 0x6f, 0x9c, 0xa0, 0x18, 0x51, 0x03, 0x09, 0x59, 0x3c, 0x99, 0x98, 0x66, - 0xb6, 0x1d, 0xea, 0x84, 0x76, 0xa6, 0xe9, 0xcc, 0x2a, 0xfb, 0x1f, 0xa8, 0x27, 0xe2, 0xc1, 0x18, - 0x4f, 0xde, 0x34, 0x9e, 0x38, 0xf0, 0x47, 0x10, 0x0f, 0x86, 0x78, 0xf2, 0x24, 0x06, 0x0e, 0x7b, - 0xf6, 0x3f, 0x30, 0x9d, 0x99, 0xee, 0x2e, 0x20, 0x11, 0x12, 0xc3, 0x65, 0xb7, 0xf3, 0xe6, 0x7d, - 0xdf, 0xfb, 0xbe, 0xf7, 0x5e, 0x53, 0x78, 0xdb, 0x67, 0x3c, 0x66, 0xdc, 0xd9, 0xc4, 0x38, 0x4c, - 0x11, 0x15, 0xce, 0xf3, 0xb9, 0x26, 0x16, 0x68, 0xae, 0x1b, 0xb0, 0x93, 0x94, 0x09, 0x66, 0xdc, - 0x50, 0x79, 0x76, 0x37, 0xac, 0xf3, 0x26, 0x27, 0x42, 0x16, 0x32, 0x99, 0xe3, 0x64, 0x4f, 0x2a, - 0x7d, 0xb2, 0x12, 0x32, 0x16, 0x46, 0xd8, 0x91, 0xa7, 0x66, 0x6b, 0xd3, 0x41, 0xb4, 0x9d, 0x5f, - 0x29, 0x26, 0x4f, 0x61, 0x34, 0xad, 0xba, 0xb2, 0xb4, 0x98, 0x26, 0xe2, 0xb8, 0x2b, 0xc4, 0x67, - 0x84, 0xea, 0xfb, 0x31, 0x14, 0x13, 0xca, 0x1c, 0xf9, 0xab, 0x43, 0xd5, 0xd3, 0x85, 0x04, 0x89, - 0x31, 0x17, 0x28, 0x4e, 0x72, 0xce, 0xd3, 0x09, 0x41, 0x2b, 0x45, 0x82, 0x30, 0xcd, 0x59, 0xfb, - 0x38, 0x00, 0x47, 0x5c, 0xc4, 0x89, 0xbf, 0x14, 0x45, 0xec, 0x05, 0xa2, 0x3e, 0x36, 0x5e, 0x01, - 0x58, 0xe6, 0x09, 0xa6, 0x81, 0x17, 0x91, 0x98, 0x08, 0x13, 0x4c, 0x15, 0xeb, 0xe5, 0xf9, 0x8a, - 0xad, 0xb5, 0x66, 0xea, 0x72, 0xfb, 0xf6, 0x32, 0x23, 0xd4, 0x5d, 0xdb, 0xff, 0x51, 0x2d, 0x7c, - 0x3e, 0xac, 0xd6, 0x43, 0x22, 0x9e, 0xb5, 0x9a, 0xb6, 0xcf, 0x62, 0x6d, 0x4c, 0xff, 0xcd, 0xf2, - 0x60, 0xcb, 0x11, 0xed, 0x04, 0x73, 0x09, 0xe0, 0xef, 0x3b, 0xbb, 0x33, 0xe3, 0xb4, 0x15, 0x45, - 0x1e, 0x8f, 0x88, 0x8f, 0x3d, 0xc4, 0x3d, 0x1c, 0x27, 0xa2, 0xfd, 0xa9, 0xb3, 0x3b, 0x03, 0x1a, - 0x50, 0x16, 0x5f, 0xcd, 0x6a, 0x1b, 0x8b, 0x10, 0xe2, 0xed, 0x84, 0x28, 0xc9, 0xe6, 0xc0, 0x14, - 0xa8, 0x97, 0xe7, 0x27, 0x6d, 0xe5, 0xc9, 0xce, 0x3d, 0xd9, 0x8f, 0x73, 0xd3, 0xee, 0xe0, 0xce, - 0x61, 0x15, 0x34, 0xfa, 0x30, 0x0b, 0x2b, 0x5f, 0xf6, 0x66, 0x6f, 0x9d, 0x33, 0x3d, 0xfb, 0x3e, - 0xc6, 0x5d, 0xdf, 0x0f, 0x5f, 0x77, 0x76, 0x67, 0x2a, 0x7d, 0x82, 0x4f, 0xb6, 0xa5, 0xd6, 0x19, - 0x84, 0x63, 0xeb, 0x38, 0x25, 0x2c, 0xe8, 0x6f, 0xd6, 0x03, 0x38, 0xd4, 0xcc, 0xf2, 0x4c, 0x20, - 0xb5, 0xdd, 0xb1, 0xcf, 0x2b, 0x75, 0x92, 0xcd, 0x2d, 0x65, 0x3d, 0x53, 0x7e, 0x15, 0x81, 0xb1, - 0x08, 0x87, 0x13, 0x49, 0xaf, 0x6d, 0x56, 0xce, 0xd8, 0xbc, 0xa7, 0x47, 0xe7, 0x5e, 0xcb, 0xc0, - 0xef, 0x0e, 0xab, 0x40, 0x11, 0x68, 0x9c, 0xf1, 0x16, 0x40, 0x43, 0x3d, 0x7a, 0xfd, 0xf3, 0x2b, - 0x5e, 0xf1, 0xfc, 0x46, 0x95, 0x86, 0x8d, 0xde, 0x14, 0xdf, 0x00, 0xa8, 0x83, 0x9e, 0x8f, 0xa8, - 0x12, 0x67, 0x0e, 0x5e, 0xb1, 0xac, 0x11, 0xa5, 0x60, 0x19, 0x51, 0xa9, 0xcc, 0x58, 0x85, 0xff, - 0x6b, 0x4d, 0x29, 0xe6, 0x58, 0x98, 0x43, 0x7f, 0x5d, 0x2e, 0xd9, 0xf6, 0x9d, 0x6e, 0xdb, 0xcb, - 0x0a, 0xde, 0xc8, 0xd0, 0x0b, 0x8f, 0x2e, 0xb5, 0x66, 0x37, 0xfb, 0x0c, 0x9c, 0xd9, 0xa9, 0xda, - 0x2f, 0x00, 0xc7, 0xe5, 0x09, 0x07, 0x6b, 0x3c, 0xec, 0xed, 0xda, 0x53, 0x58, 0x42, 0xf9, 0x41, - 0xef, 0xdb, 0xc4, 0x19, 0xb9, 0x4b, 0xb4, 0xed, 0x4e, 0x5f, 0x58, 0x4c, 0xa3, 0xc7, 0x68, 0x4c, - 0xc3, 0x51, 0xa4, 0xaa, 0x7a, 0x31, 0xe6, 0x1c, 0x85, 0x98, 0x9b, 0x03, 0x53, 0xc5, 0x7a, 0xa9, - 0x71, 0x5d, 0xc7, 0xd7, 0x74, 0x78, 0x61, 0xfd, 0xe5, 0x87, 0x6a, 0xe1, 0x52, 0x8e, 0xad, 0x3e, - 0xc7, 0x7f, 0xf0, 0x56, 0xfb, 0x0a, 0xe0, 0xd0, 0x4a, 0x46, 0x61, 0xcc, 0xc3, 0xff, 0x24, 0x17, - 0x4e, 0xa5, 0xc7, 0x92, 0x6b, 0x7e, 0xdb, 0x9b, 0x9d, 0xd0, 0x85, 0x96, 0x82, 0x20, 0xc5, 0x9c, - 0x6f, 0x88, 0x94, 0xd0, 0xb0, 0x91, 0x27, 0xf6, 0x30, 0x58, 0xbe, 0x3c, 0x17, 0xc0, 0x9c, 0xea, - 0x66, 0xf1, 0x5f, 0x77, 0xd3, 0x9d, 0xdb, 0x3f, 0xb2, 0xc0, 0xc1, 0x91, 0x05, 0x7e, 0x1e, 0x59, - 0x60, 0xe7, 0xd8, 0x2a, 0x1c, 0x1c, 0x5b, 0x85, 0xef, 0xc7, 0x56, 0xe1, 0x89, 0xfe, 0x96, 0xf0, - 0x60, 0xcb, 0x26, 0xcc, 0xd9, 0xee, 0x7e, 0x6a, 0x9a, 0xc3, 0xb2, 0xec, 0xdd, 0xdf, 0x01, 0x00, - 0x00, 0xff, 0xff, 0x39, 0x59, 0xf5, 0xd3, 0x95, 0x06, 0x00, 0x00, + // 658 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0xcf, 0x4f, 0xd4, 0x4e, + 0x14, 0xdf, 0x61, 0x81, 0x6f, 0x76, 0x96, 0x2f, 0x42, 0x25, 0xb1, 0x4b, 0x4c, 0x4b, 0x36, 0x51, + 0x17, 0x12, 0xda, 0x80, 0x37, 0x4e, 0x50, 0x0c, 0xa8, 0x81, 0x84, 0x14, 0x4f, 0x26, 0xa6, 0x99, + 0xb6, 0x43, 0x9d, 0xb0, 0xed, 0x34, 0x9d, 0xa2, 0xec, 0xd5, 0x93, 0xd1, 0x83, 0x1c, 0x8d, 0x27, + 0x8e, 0xc6, 0x13, 0x07, 0xfe, 0x08, 0xe2, 0xc1, 0x10, 0x4f, 0x7a, 0x11, 0x03, 0x07, 0xce, 0xfe, + 0x07, 0xa6, 0x33, 0xd3, 0x6e, 0x61, 0x25, 0x42, 0x62, 0xb8, 0xec, 0x76, 0xde, 0xbc, 0xf7, 0xf9, + 0xf1, 0xde, 0x6b, 0x0a, 0xef, 0x7a, 0x94, 0x85, 0x94, 0x99, 0x1b, 0x18, 0x07, 0x09, 0x8a, 0x52, + 0xf3, 0xc5, 0x8c, 0x8b, 0x53, 0x34, 0x53, 0x04, 0x8c, 0x38, 0xa1, 0x29, 0x55, 0x6e, 0x89, 0x3c, + 0xa3, 0x08, 0xcb, 0xbc, 0xf1, 0xb1, 0x80, 0x06, 0x94, 0xe7, 0x98, 0xd9, 0x93, 0x48, 0x1f, 0x6f, + 0x04, 0x94, 0x06, 0x6d, 0x6c, 0xf2, 0x93, 0xbb, 0xb5, 0x61, 0xa2, 0xa8, 0x93, 0x5f, 0x09, 0x24, + 0x47, 0xd4, 0x48, 0x58, 0x71, 0xa5, 0x49, 0x31, 0x2e, 0x62, 0xb8, 0x10, 0xe2, 0x51, 0x12, 0xc9, + 0xfb, 0x51, 0x14, 0x92, 0x88, 0x9a, 0xfc, 0x57, 0x86, 0xf4, 0xf3, 0x44, 0x29, 0x09, 0x31, 0x4b, + 0x51, 0x18, 0xe7, 0x98, 0xe7, 0x13, 0xfc, 0xad, 0x04, 0xa5, 0x84, 0x4a, 0xcc, 0xe6, 0x6e, 0x1f, + 0x1c, 0xb6, 0x10, 0x23, 0xde, 0x42, 0xbb, 0x4d, 0x5f, 0xa2, 0xc8, 0xc3, 0xca, 0x2b, 0x00, 0xeb, + 0x2c, 0xc6, 0x91, 0xef, 0xb4, 0x49, 0x48, 0x52, 0x15, 0x4c, 0x54, 0x5b, 0xf5, 0xd9, 0x86, 0x21, + 0xb5, 0x66, 0xea, 0x72, 0xfb, 0xc6, 0x22, 0x25, 0x91, 0xb5, 0x74, 0xf0, 0x43, 0xaf, 0x7c, 0x3a, + 0xd2, 0x5b, 0x01, 0x49, 0x9f, 0x6f, 0xb9, 0x86, 0x47, 0x43, 0x69, 0x4c, 0xfe, 0x4d, 0x33, 0x7f, + 0xd3, 0x4c, 0x3b, 0x31, 0x66, 0xbc, 0x80, 0x7d, 0x38, 0xdd, 0x9b, 0x1a, 0x6a, 0xe3, 0x00, 0x79, + 0x1d, 0x27, 0xf3, 0xc7, 0x3e, 0x9e, 0xee, 0x4d, 0x01, 0x1b, 0x72, 0xd6, 0x95, 0x8c, 0x54, 0x99, + 0x87, 0x10, 0x6f, 0xc7, 0x44, 0x68, 0x55, 0xfb, 0x26, 0x40, 0xab, 0x3e, 0x3b, 0x6e, 0x08, 0x33, + 0x46, 0x6e, 0xc6, 0x78, 0x92, 0xbb, 0xb5, 0xfa, 0x77, 0x8e, 0x74, 0x60, 0x97, 0x6a, 0xe6, 0x96, + 0x3f, 0xef, 0x4f, 0xdf, 0xb9, 0x60, 0x6c, 0xc6, 0x12, 0xc6, 0x85, 0xe1, 0x47, 0x6f, 0x4e, 0xf7, + 0xa6, 0x1a, 0x25, 0xa5, 0x67, 0xfb, 0xd1, 0xfc, 0xde, 0x0f, 0x47, 0xd7, 0x70, 0x42, 0xa8, 0x5f, + 0xee, 0xd2, 0x43, 0x38, 0xe0, 0x66, 0x79, 0x2a, 0xe0, 0xda, 0xee, 0x19, 0x17, 0x51, 0x9d, 0x45, + 0xb3, 0x6a, 0x59, 0xb3, 0x84, 0x5f, 0x01, 0xa0, 0xcc, 0xc3, 0xc1, 0x98, 0xc3, 0x4b, 0x9b, 0x8d, + 0x1e, 0x9b, 0x0f, 0xe4, 0xcc, 0xac, 0xff, 0xb3, 0xe2, 0xf7, 0x47, 0x3a, 0x10, 0x00, 0xb2, 0x4e, + 0x79, 0x07, 0xa0, 0x22, 0x1e, 0x9d, 0xf2, 0xe0, 0xaa, 0xd7, 0x35, 0xb8, 0x11, 0x41, 0xbe, 0xde, + 0x1d, 0xdf, 0x5b, 0x00, 0x65, 0xd0, 0xf1, 0x50, 0x24, 0x54, 0xa9, 0xfd, 0xd7, 0xa5, 0x67, 0x58, + 0x50, 0x2f, 0xa2, 0x88, 0x4b, 0x52, 0x56, 0xe0, 0x90, 0x14, 0x93, 0x60, 0x86, 0x53, 0x75, 0xe0, + 0xaf, 0xeb, 0xc4, 0x1b, 0xbd, 0x53, 0x34, 0xba, 0x2e, 0xca, 0xed, 0xac, 0x7a, 0xee, 0xf1, 0x95, + 0x16, 0xeb, 0x76, 0x49, 0x79, 0xcf, 0x16, 0x35, 0x7f, 0x01, 0x78, 0x93, 0x9f, 0xb0, 0xbf, 0xca, + 0x82, 0xee, 0x76, 0x3d, 0x83, 0x35, 0x94, 0x1f, 0xe4, 0x86, 0x8d, 0xf5, 0xc8, 0x5d, 0x88, 0x3a, + 0xd6, 0xe4, 0xa5, 0xc5, 0xd8, 0x5d, 0x44, 0x65, 0x12, 0x8e, 0x20, 0xc1, 0xea, 0x84, 0x98, 0x31, + 0x14, 0x60, 0xa6, 0xf6, 0x4d, 0x54, 0x5b, 0x35, 0xfb, 0x86, 0x8c, 0xaf, 0xca, 0xf0, 0xdc, 0xda, + 0xeb, 0x5d, 0xbd, 0x72, 0x25, 0xc7, 0x5a, 0xc9, 0xf1, 0x1f, 0xbc, 0x35, 0xbf, 0x00, 0x38, 0xb0, + 0x9c, 0x41, 0x28, 0xb3, 0xf0, 0x3f, 0x8e, 0x85, 0x13, 0xee, 0xb1, 0x66, 0xa9, 0x5f, 0xf7, 0xa7, + 0xc7, 0x24, 0xd1, 0x82, 0xef, 0x27, 0x98, 0xb1, 0xf5, 0x34, 0x21, 0x51, 0x60, 0xe7, 0x89, 0xdd, + 0x1a, 0xcc, 0x5f, 0x97, 0x4b, 0xd4, 0x9c, 0xeb, 0x66, 0xf5, 0x5f, 0x77, 0xd3, 0x9a, 0x39, 0x38, + 0xd6, 0xc0, 0xe1, 0xb1, 0x06, 0x7e, 0x1e, 0x6b, 0x60, 0xe7, 0x44, 0xab, 0x1c, 0x9e, 0x68, 0x95, + 0x6f, 0x27, 0x5a, 0xe5, 0xa9, 0xfc, 0x6c, 0x30, 0x7f, 0xd3, 0x20, 0xd4, 0xdc, 0x2e, 0xbe, 0x2a, + 0xee, 0x20, 0xa7, 0xbd, 0xff, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x0d, 0x76, 0xbd, 0x15, 0x80, 0x06, + 0x00, 0x00, } func (m *BasicAllowance) Marshal() (dAtA []byte, err error) { diff --git a/x/gov/types/v1beta1/tx.pb.go b/x/gov/types/v1beta1/tx.pb.go index 301d5273d2a9..80d6fe1f1f4e 100644 --- a/x/gov/types/v1beta1/tx.pb.go +++ b/x/gov/types/v1beta1/tx.pb.go @@ -382,55 +382,54 @@ func init() { func init() { proto.RegisterFile("cosmos/gov/v1beta1/tx.proto", fileDescriptor_3c053992595e3dce) } var fileDescriptor_3c053992595e3dce = []byte{ - // 760 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x95, 0x3d, 0x6c, 0xda, 0x5a, - 0x14, 0xc7, 0x31, 0x24, 0xe1, 0xe5, 0xe6, 0x29, 0x51, 0xfc, 0x78, 0x0a, 0x38, 0x91, 0x41, 0x3c, - 0xbd, 0x88, 0x52, 0x61, 0x17, 0x9a, 0x66, 0x60, 0x0b, 0xed, 0xd0, 0x0f, 0xd1, 0x0f, 0x22, 0xb5, - 0x52, 0x17, 0x6a, 0xe0, 0xc6, 0xb9, 0x2a, 0xf8, 0x5a, 0xdc, 0x0b, 0x0a, 0x5b, 0xd4, 0xa9, 0xea, - 0xd4, 0xae, 0x9d, 0x32, 0x56, 0x9d, 0x18, 0xb2, 0x76, 0x8f, 0x3a, 0x45, 0x9d, 0x3a, 0x54, 0x69, - 0x95, 0xa8, 0xa2, 0xea, 0xda, 0xa5, 0x63, 0xe5, 0xfb, 0x61, 0x48, 0x20, 0x24, 0xcd, 0xd0, 0x05, - 0xdb, 0xe7, 0x9c, 0xff, 0x39, 0xf7, 0xfc, 0x7c, 0x0e, 0x06, 0x8b, 0x55, 0x4c, 0x1a, 0x98, 0x98, - 0x36, 0x6e, 0x9b, 0xed, 0x6c, 0x05, 0x52, 0x2b, 0x6b, 0xd2, 0x2d, 0xc3, 0x6d, 0x62, 0x8a, 0x55, - 0x95, 0x3b, 0x0d, 0x1b, 0xb7, 0x0d, 0xe1, 0xd4, 0x74, 0x21, 0xa8, 0x58, 0x04, 0xfa, 0x8a, 0x2a, - 0x46, 0x0e, 0xd7, 0x68, 0x4b, 0x23, 0x12, 0x7a, 0x7a, 0xee, 0x8d, 0x71, 0x6f, 0x99, 0x3d, 0x99, - 0x22, 0x3d, 0x77, 0x45, 0x6c, 0x6c, 0x63, 0x6e, 0xf7, 0xee, 0xa4, 0xc0, 0xc6, 0xd8, 0xae, 0x43, - 0x93, 0x3d, 0x55, 0x5a, 0x1b, 0xa6, 0xe5, 0x74, 0x84, 0x6b, 0x41, 0x54, 0x6a, 0x10, 0xdb, 0x6c, - 0x67, 0xbd, 0x8b, 0x70, 0xcc, 0x5b, 0x0d, 0xe4, 0x60, 0x93, 0xfd, 0x72, 0x53, 0xf2, 0x6b, 0x10, - 0xcc, 0x17, 0x89, 0xbd, 0xde, 0xaa, 0x34, 0x10, 0xbd, 0xdf, 0xc4, 0x2e, 0x26, 0x56, 0x5d, 0xbd, - 0x0b, 0xc2, 0x55, 0xec, 0x50, 0xe8, 0xd0, 0xa8, 0x92, 0x50, 0x52, 0x33, 0xb9, 0x88, 0xc1, 0xcb, - 0x19, 0xb2, 0x9c, 0xb1, 0xe6, 0x74, 0x0a, 0xfa, 0xfb, 0xdd, 0x8c, 0x36, 0x8c, 0xc2, 0xb8, 0xce, - 0xb5, 0x25, 0x99, 0x44, 0x7d, 0xa5, 0x80, 0x39, 0xe4, 0x20, 0x8a, 0xac, 0x7a, 0xb9, 0x06, 0x5d, - 0x4c, 0x10, 0x8d, 0x06, 0x13, 0xa1, 0xd4, 0x4c, 0x2e, 0x66, 0x08, 0xbd, 0x87, 0x6d, 0x20, 0x01, - 0x72, 0x0a, 0xc5, 0xbd, 0x83, 0x78, 0xe0, 0xed, 0xe7, 0x78, 0xca, 0x46, 0x74, 0xb3, 0x55, 0x31, - 0xaa, 0xb8, 0x21, 0xc0, 0x88, 0x4b, 0x86, 0xd4, 0x9e, 0x9a, 0xb4, 0xe3, 0x42, 0xc2, 0x04, 0xe4, - 0x75, 0xaf, 0x9b, 0xfe, 0xc7, 0x69, 0xd5, 0xeb, 0x65, 0x52, 0x47, 0x55, 0x58, 0xb6, 0x48, 0x19, - 0x36, 0x5c, 0xda, 0x79, 0xd3, 0xeb, 0xa6, 0x95, 0xd2, 0xac, 0x38, 0xc0, 0x0d, 0x5e, 0x5f, 0x5d, - 0x01, 0x7f, 0xb9, 0xac, 0x5f, 0xd8, 0x8c, 0x86, 0x12, 0x4a, 0x6a, 0xba, 0x10, 0xfd, 0xb0, 0x9b, - 0x89, 0x88, 0xe3, 0xac, 0xd5, 0x6a, 0x4d, 0x48, 0xc8, 0x3a, 0x6d, 0x22, 0xc7, 0x2e, 0xf9, 0x91, - 0xf9, 0xd5, 0xe7, 0x3b, 0xf1, 0xc0, 0xb7, 0x9d, 0x78, 0xe0, 0x59, 0xaf, 0x9b, 0xf6, 0xcd, 0x2f, - 0x7a, 0xdd, 0xf4, 0xd2, 0xc0, 0xa1, 0x86, 0x88, 0x26, 0x4b, 0x20, 0x36, 0x64, 0x2c, 0x41, 0xe2, - 0x62, 0x87, 0x40, 0xf5, 0x1a, 0x98, 0x71, 0x85, 0xad, 0x8c, 0x6a, 0x0c, 0xf9, 0x44, 0x21, 0xf2, - 0xfd, 0x20, 0x3e, 0x68, 0xe6, 0x5d, 0x00, 0x69, 0xb9, 0x55, 0x4b, 0xbe, 0x53, 0x40, 0xb8, 0x48, - 0xec, 0x87, 0x98, 0x42, 0x35, 0x3e, 0x22, 0xc5, 0x60, 0xb0, 0x6a, 0x80, 0xc9, 0x36, 0xa6, 0xb0, - 0x19, 0x0d, 0x9e, 0xd1, 0x2b, 0x0f, 0x53, 0x57, 0xc1, 0x14, 0x76, 0x29, 0xc2, 0x0e, 0x83, 0x33, - 0x9b, 0xd3, 0x8d, 0x11, 0x2f, 0xda, 0x2b, 0x7d, 0x8f, 0x45, 0x95, 0x44, 0x74, 0xfe, 0xd2, 0x20, - 0x20, 0x9e, 0xcb, 0xa3, 0xa3, 0x1e, 0xa7, 0xe3, 0x09, 0x93, 0xf3, 0x60, 0x4e, 0xdc, 0x4a, 0x12, - 0xc9, 0x9f, 0x8a, 0x6f, 0x7b, 0x04, 0x91, 0xbd, 0x49, 0x61, 0xed, 0x82, 0x74, 0x7e, 0xbb, 0xe1, - 0x3b, 0x20, 0xcc, 0x5b, 0x20, 0xd1, 0x10, 0x1b, 0xcd, 0xe5, 0x51, 0x1d, 0xcb, 0x53, 0xf5, 0x3b, - 0x2f, 0x4c, 0x7b, 0x73, 0xca, 0xeb, 0xcb, 0x0c, 0xf9, 0xec, 0x68, 0x0a, 0xda, 0x30, 0x05, 0x99, - 0x30, 0x19, 0x03, 0x0b, 0x27, 0x4c, 0x3e, 0x95, 0xdd, 0x20, 0x00, 0x45, 0x62, 0xcb, 0xc9, 0xbd, - 0x20, 0x90, 0x55, 0x30, 0x2d, 0x76, 0x0f, 0x9f, 0x0d, 0xa5, 0x1f, 0xaa, 0x6e, 0x2b, 0x60, 0xca, - 0x6a, 0xe0, 0x96, 0x43, 0x05, 0x98, 0x3f, 0xb7, 0xb3, 0xa2, 0x6e, 0x7e, 0x45, 0xe2, 0xdc, 0xfe, - 0x94, 0x60, 0x48, 0xfb, 0xc7, 0xf3, 0xb0, 0xfe, 0x7b, 0x1c, 0xab, 0xe0, 0x94, 0x8c, 0x00, 0xb5, - 0xff, 0x24, 0x61, 0xe6, 0x7e, 0x04, 0x41, 0xa8, 0x48, 0x6c, 0x75, 0x03, 0xcc, 0x9e, 0xf8, 0xd7, - 0xfb, 0x7f, 0xd4, 0x0b, 0x1f, 0xda, 0x5a, 0x2d, 0x73, 0xae, 0x30, 0x7f, 0xb9, 0x6f, 0x82, 0x09, - 0xb6, 0xa1, 0x8b, 0xa7, 0xc8, 0x3c, 0xa7, 0xf6, 0xdf, 0x18, 0xa7, 0x9f, 0xe9, 0x09, 0xf8, 0xfb, - 0xd8, 0x62, 0x8c, 0x13, 0xc9, 0x20, 0xed, 0xf2, 0x39, 0x82, 0xfc, 0x0a, 0x0f, 0x40, 0x58, 0x0e, - 0x99, 0x7e, 0x8a, 0x4e, 0xf8, 0xb5, 0xe5, 0xf1, 0x7e, 0x99, 0x52, 0x9b, 0xdc, 0xf6, 0xde, 0x64, - 0xe1, 0xf6, 0xde, 0xa1, 0xae, 0xec, 0x1f, 0xea, 0xca, 0x97, 0x43, 0x5d, 0x79, 0x79, 0xa4, 0x07, - 0xf6, 0x8f, 0xf4, 0xc0, 0xc7, 0x23, 0x3d, 0xf0, 0xf8, 0xca, 0xd8, 0x51, 0xd9, 0x62, 0xdf, 0x4b, - 0x36, 0x30, 0xf2, 0xab, 0x59, 0x99, 0x62, 0x1f, 0xa1, 0xab, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, - 0x4a, 0xca, 0x38, 0x04, 0xa3, 0x07, 0x00, 0x00, + // 750 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x95, 0x3d, 0x6c, 0xd3, 0x40, + 0x14, 0xc7, 0xe3, 0xa4, 0x6d, 0xe8, 0xb5, 0x6a, 0x55, 0x2b, 0xa8, 0x89, 0x5b, 0x39, 0x51, 0x10, + 0x55, 0x08, 0x8a, 0x4d, 0x42, 0xe9, 0x90, 0xad, 0x01, 0x21, 0x3e, 0x14, 0x3e, 0x52, 0x09, 0x24, + 0x96, 0xe0, 0xc4, 0xd7, 0xab, 0x45, 0xe2, 0xb3, 0x72, 0x97, 0xa8, 0xd9, 0x2a, 0x26, 0xd4, 0x89, + 0x99, 0xa9, 0x23, 0x42, 0x0c, 0x19, 0xba, 0xb2, 0x57, 0x4c, 0x15, 0x13, 0x03, 0x2a, 0xa8, 0x1d, + 0x82, 0x58, 0x59, 0x18, 0x91, 0x7d, 0x77, 0x4e, 0xda, 0xa4, 0x69, 0xe9, 0xc0, 0x12, 0xdb, 0xef, + 0xbd, 0xff, 0x7b, 0xf7, 0x7e, 0x7e, 0x2f, 0x06, 0x0b, 0x55, 0x4c, 0xea, 0x98, 0xe8, 0x08, 0xb7, + 0xf4, 0x56, 0xb6, 0x02, 0xa9, 0x91, 0xd5, 0xe9, 0xa6, 0xe6, 0x34, 0x30, 0xc5, 0xb2, 0xcc, 0x9c, + 0x1a, 0xc2, 0x2d, 0x8d, 0x3b, 0x15, 0x95, 0x0b, 0x2a, 0x06, 0x81, 0xbe, 0xa2, 0x8a, 0x2d, 0x9b, + 0x69, 0x94, 0xc5, 0x21, 0x09, 0x5d, 0x3d, 0xf3, 0xc6, 0x98, 0xb7, 0xec, 0x3d, 0xe9, 0x3c, 0x3d, + 0x73, 0x45, 0x10, 0x46, 0x98, 0xd9, 0xdd, 0x3b, 0x21, 0x40, 0x18, 0xa3, 0x1a, 0xd4, 0xbd, 0xa7, + 0x4a, 0x73, 0x5d, 0x37, 0xec, 0x36, 0x77, 0xcd, 0xf3, 0x4a, 0x75, 0x82, 0xf4, 0x56, 0xd6, 0xbd, + 0x70, 0xc7, 0x9c, 0x51, 0xb7, 0x6c, 0xac, 0x7b, 0xbf, 0xcc, 0x94, 0x3c, 0x08, 0x82, 0xb9, 0x22, + 0x41, 0x6b, 0xcd, 0x4a, 0xdd, 0xa2, 0x4f, 0x1a, 0xd8, 0xc1, 0xc4, 0xa8, 0xc9, 0x8f, 0x40, 0xb8, + 0x8a, 0x6d, 0x0a, 0x6d, 0x1a, 0x95, 0x12, 0x52, 0x6a, 0x2a, 0x17, 0xd1, 0x58, 0x39, 0x4d, 0x94, + 0xd3, 0x56, 0xed, 0x76, 0x41, 0xfd, 0xbc, 0x9b, 0x51, 0x06, 0x51, 0x68, 0xb7, 0x99, 0xb6, 0x24, + 0x92, 0xc8, 0xdb, 0x12, 0x98, 0xb5, 0x6c, 0x8b, 0x5a, 0x46, 0xad, 0x6c, 0x42, 0x07, 0x13, 0x8b, + 0x46, 0x83, 0x89, 0x50, 0x6a, 0x2a, 0x17, 0xd3, 0xb8, 0xde, 0xc5, 0xd6, 0x97, 0xc0, 0xb2, 0x0b, + 0x77, 0xf7, 0x0e, 0xe2, 0x81, 0x0f, 0xdf, 0xe3, 0x29, 0x64, 0xd1, 0x8d, 0x66, 0x45, 0xab, 0xe2, + 0x3a, 0x07, 0xc3, 0x2f, 0x19, 0x62, 0xbe, 0xd2, 0x69, 0xdb, 0x81, 0xc4, 0x13, 0x90, 0x77, 0xdd, + 0x4e, 0x7a, 0xba, 0x06, 0x91, 0x51, 0x6d, 0x97, 0x5d, 0xf0, 0xe4, 0x7d, 0xb7, 0x93, 0x96, 0x4a, + 0x33, 0xbc, 0xf2, 0x1d, 0x56, 0x58, 0x5e, 0x06, 0x97, 0x1c, 0xaf, 0x51, 0xd8, 0x88, 0x86, 0x12, + 0x52, 0x6a, 0xb2, 0x10, 0xfd, 0xb2, 0x9b, 0x89, 0xf0, 0x73, 0xac, 0x9a, 0x66, 0x03, 0x12, 0xb2, + 0x46, 0x1b, 0x96, 0x8d, 0x4a, 0x7e, 0x64, 0x7e, 0xe5, 0xcd, 0x4e, 0x3c, 0xf0, 0x73, 0x27, 0x1e, + 0x78, 0xdd, 0xed, 0xa4, 0x7d, 0xf3, 0x76, 0xb7, 0x93, 0x5e, 0xec, 0x3b, 0xcd, 0x00, 0xca, 0x64, + 0x09, 0xc4, 0x06, 0x8c, 0x25, 0x48, 0x1c, 0x6c, 0x13, 0x28, 0xdf, 0x02, 0x53, 0x0e, 0xb7, 0x95, + 0x2d, 0xd3, 0x63, 0x3d, 0x56, 0x88, 0xfc, 0x3a, 0x88, 0xf7, 0x9b, 0x59, 0x17, 0x40, 0x58, 0xee, + 0x9b, 0xc9, 0x4f, 0x12, 0x08, 0x17, 0x09, 0x7a, 0x86, 0x29, 0x94, 0xe3, 0x43, 0x52, 0xf4, 0x07, + 0xcb, 0x1a, 0x18, 0x6f, 0x61, 0x0a, 0x1b, 0xd1, 0xe0, 0x19, 0xbd, 0xb2, 0x30, 0x79, 0x05, 0x4c, + 0x60, 0x87, 0x5a, 0xd8, 0xf6, 0xe0, 0xcc, 0xe4, 0x54, 0x6d, 0xc8, 0x1b, 0x76, 0x4b, 0x3f, 0xf6, + 0xa2, 0x4a, 0x3c, 0x3a, 0x7f, 0xad, 0x1f, 0x10, 0xcb, 0xe5, 0xd2, 0x91, 0x8f, 0xd3, 0x71, 0x85, + 0xc9, 0x39, 0x30, 0xcb, 0x6f, 0x05, 0x89, 0xe4, 0x1f, 0xc9, 0xb7, 0x3d, 0x87, 0x16, 0xda, 0xa0, + 0xd0, 0xbc, 0x20, 0x9d, 0x7f, 0x6e, 0xf8, 0x21, 0x08, 0xb3, 0x16, 0x48, 0x34, 0xe4, 0xcd, 0xe4, + 0xd2, 0xb0, 0x8e, 0xc5, 0xa9, 0x7a, 0x9d, 0x17, 0x26, 0xdd, 0x01, 0x65, 0xf5, 0x45, 0x86, 0x7c, + 0x76, 0x38, 0x05, 0x65, 0x90, 0x82, 0x48, 0x98, 0x8c, 0x81, 0xf9, 0x13, 0x26, 0x9f, 0xca, 0xc7, + 0x20, 0x00, 0x45, 0x82, 0xc4, 0xe4, 0x5e, 0x10, 0xc8, 0x0a, 0x98, 0xe4, 0x4b, 0x87, 0xcf, 0x86, + 0xd2, 0x0b, 0x95, 0xdb, 0x60, 0xc2, 0xa8, 0xe3, 0xa6, 0x4d, 0x39, 0x97, 0xff, 0xb0, 0xab, 0xbc, + 0x60, 0x7e, 0x59, 0x60, 0xdc, 0xfa, 0x96, 0xf0, 0x50, 0xf6, 0x8e, 0xe5, 0xe2, 0xbc, 0x7c, 0x1c, + 0x27, 0xe7, 0x93, 0x8c, 0x00, 0xb9, 0xf7, 0x24, 0x20, 0xe6, 0x7e, 0x07, 0x41, 0xa8, 0x48, 0x90, + 0xbc, 0x0e, 0x66, 0x4e, 0xfc, 0xcd, 0x5d, 0x1d, 0xf6, 0xa2, 0x07, 0xb6, 0x55, 0xc9, 0x9c, 0x2b, + 0xcc, 0x5f, 0xea, 0x7b, 0x60, 0xcc, 0xdb, 0xcc, 0x85, 0x53, 0x64, 0xae, 0x53, 0xb9, 0x32, 0xc2, + 0xe9, 0x67, 0x7a, 0x09, 0xa6, 0x8f, 0x2d, 0xc4, 0x28, 0x91, 0x08, 0x52, 0xae, 0x9f, 0x23, 0xc8, + 0xaf, 0xf0, 0x14, 0x84, 0xc5, 0x70, 0xa9, 0xa7, 0xe8, 0xb8, 0x5f, 0x59, 0x1a, 0xed, 0x17, 0x29, + 0x95, 0xf1, 0x2d, 0xf7, 0x4d, 0x16, 0x1e, 0xec, 0x1d, 0xaa, 0xd2, 0xfe, 0xa1, 0x2a, 0xfd, 0x38, + 0x54, 0xa5, 0xb7, 0x47, 0x6a, 0x60, 0xff, 0x48, 0x0d, 0x7c, 0x3d, 0x52, 0x03, 0x2f, 0x6e, 0x8c, + 0x9c, 0x91, 0x4d, 0xef, 0x03, 0xe9, 0x4d, 0x8a, 0xf8, 0x4c, 0x56, 0x26, 0xbc, 0xaf, 0xce, 0xcd, + 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x84, 0xd3, 0xd2, 0xa1, 0x94, 0x07, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 7d6e98a89cc6..a9a8ebc03ea3 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -41,10 +41,10 @@ func NewAminoJSON() AminoJSON { "module_account": moduleAccountEncoder, }, fieldEncoders: map[string]FieldEncoder{ - "empty_string": emptyStringEncoder, - "json_default": jsonDefaultEncoder, - "null_slice_as_empty": nullSliceAsEmptyEncoder, - "cosmos_dec_bytes": cosmosDecBytesEncoder, + "empty_string": emptyStringEncoder, + "json_default": jsonDefaultEncoder, + "legacy_coins": nullSliceAsEmptyEncoder, + "cosmos_dec_bytes": cosmosDecBytesEncoder, }, } return aj From 53e36f95ea5170ba972a8b952e79825723ba394e Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 15 Feb 2023 09:56:37 -0700 Subject: [PATCH 090/122] use convention for oneof field names --- api/amino/amino.pulsar.go | 74 +- api/cosmos/staking/v1beta1/authz.pulsar.go | 55 +- proto/amino/amino.proto | 14 +- proto/cosmos/staking/v1beta1/authz.proto | 5 +- types/tx/amino/amino.pb.go | 60 +- x/staking/types/authz.pb.go | 70 +- x/staking/types/staking.pb.go | 1332 ++++++++++---------- x/tx/aminojson/json_marshal.go | 20 +- x/tx/go.mod | 1 + x/tx/go.sum | 2 + 10 files changed, 794 insertions(+), 839 deletions(-) diff --git a/api/amino/amino.pulsar.go b/api/amino/amino.pulsar.go index a136c7a4a5dc..2fd0727d8ed6 100644 --- a/api/amino/amino.pulsar.go +++ b/api/amino/amino.pulsar.go @@ -66,16 +66,8 @@ var file_amino_amino_proto_extTypes = []protoimpl.ExtensionInfo{ ExtendedType: (*descriptorpb.FieldOptions)(nil), ExtensionType: (*string)(nil), Field: 11110006, - Name: "amino.oneof_type_name", - Tag: "bytes,11110006,opt,name=oneof_type_name", - Filename: "amino/amino.proto", - }, - { - ExtendedType: (*descriptorpb.OneofOptions)(nil), - ExtensionType: (*string)(nil), - Field: 11110007, - Name: "amino.oneof_field_name", - Tag: "bytes,11110007,opt,name=oneof_field_name", + Name: "amino.oneof_name", + Tag: "bytes,11110006,opt,name=oneof_name", Filename: "amino/amino.proto", }, } @@ -157,21 +149,12 @@ var ( // // optional bool dont_omitempty = 11110005; E_DontOmitempty = &file_amino_amino_proto_extTypes[4] - // oneof_type_name sets the type name for the given field oneof field. This is used - // by the Amino JSON encoder to encode the type of the oneof field, and must be the same string as - // The RegisterConcrete() method usage used to register the concrete type. - // - // optional string oneof_type_name = 11110006; - E_OneofTypeName = &file_amino_amino_proto_extTypes[5] -) - -// Extension fields to descriptorpb.OneofOptions. -var ( - // oneof_field_name sets the field name for the given oneof field. This is used by the Amino JSON - // encoder to set the field name encapsulating the oneof field. + // oneof_name sets the type name for the given field oneof field. This is used + // by the Amino JSON encoder to encode the type of the oneof field, and must be the same string in + // the RegisterConcrete() method usage used to register the concrete type. // - // optional string oneof_field_name = 11110007; - E_OneofFieldName = &file_amino_amino_proto_extTypes[6] + // optional string oneof_name = 11110006; + E_OneofName = &file_amino_amino_proto_extTypes[5] ) var File_amino_amino_proto protoreflect.FileDescriptor @@ -201,29 +184,23 @@ var file_amino_amino_proto_rawDesc = []byte{ 0x6d, 0x70, 0x74, 0x79, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf5, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x6f, - 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x48, 0x0a, 0x0f, 0x6f, - 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf6, 0x8c, - 0xa6, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x54, 0x79, 0x70, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x3a, 0x4a, 0x0a, 0x10, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x66, - 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4f, 0x6e, 0x65, 0x6f, - 0x66, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf7, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4e, 0x61, 0x6d, - 0x65, 0x42, 0x63, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x42, 0x0a, - 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, - 0x6d, 0x69, 0x6e, 0x6f, 0xa2, 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x05, 0x41, 0x6d, 0x69, - 0x6e, 0x6f, 0xca, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0xe2, 0x02, 0x11, 0x41, 0x6d, 0x69, - 0x6e, 0x6f, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x3a, 0x3f, 0x0a, 0x0a, 0x6f, + 0x6e, 0x65, 0x6f, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xf6, 0x8c, 0xa6, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6f, 0x6e, 0x65, 0x6f, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x42, 0x63, 0x0a, 0x09, + 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x42, 0x0a, 0x41, 0x6d, 0x69, 0x6e, 0x6f, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x16, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x73, + 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0xa2, + 0x02, 0x03, 0x41, 0x58, 0x58, 0xaa, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0xca, 0x02, 0x05, + 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0xe2, 0x02, 0x11, 0x41, 0x6d, 0x69, 0x6e, 0x6f, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x05, 0x41, 0x6d, 0x69, 0x6e, + 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_amino_amino_proto_goTypes = []interface{}{ (*descriptorpb.MessageOptions)(nil), // 0: google.protobuf.MessageOptions (*descriptorpb.FieldOptions)(nil), // 1: google.protobuf.FieldOptions - (*descriptorpb.OneofOptions)(nil), // 2: google.protobuf.OneofOptions } var file_amino_amino_proto_depIdxs = []int32{ 0, // 0: amino.name:extendee -> google.protobuf.MessageOptions @@ -231,12 +208,11 @@ var file_amino_amino_proto_depIdxs = []int32{ 1, // 2: amino.encoding:extendee -> google.protobuf.FieldOptions 1, // 3: amino.field_name:extendee -> google.protobuf.FieldOptions 1, // 4: amino.dont_omitempty:extendee -> google.protobuf.FieldOptions - 1, // 5: amino.oneof_type_name:extendee -> google.protobuf.FieldOptions - 2, // 6: amino.oneof_field_name:extendee -> google.protobuf.OneofOptions - 7, // [7:7] is the sub-list for method output_type - 7, // [7:7] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 0, // [0:7] is the sub-list for extension extendee + 1, // 5: amino.oneof_name:extendee -> google.protobuf.FieldOptions + 6, // [6:6] is the sub-list for method output_type + 6, // [6:6] is the sub-list for method input_type + 6, // [6:6] is the sub-list for extension type_name + 0, // [0:6] is the sub-list for extension extendee 0, // [0:0] is the sub-list for field type_name } @@ -252,7 +228,7 @@ func file_amino_amino_proto_init() { RawDescriptor: file_amino_amino_proto_rawDesc, NumEnums: 0, NumMessages: 0, - NumExtensions: 7, + NumExtensions: 6, NumServices: 0, }, GoTypes: file_amino_amino_proto_goTypes, diff --git a/api/cosmos/staking/v1beta1/authz.pulsar.go b/api/cosmos/staking/v1beta1/authz.pulsar.go index f4c7cbf4b6db..80cc82b0db0d 100644 --- a/api/cosmos/staking/v1beta1/authz.pulsar.go +++ b/api/cosmos/staking/v1beta1/authz.pulsar.go @@ -1418,7 +1418,7 @@ var file_cosmos_staking_v1beta1_authz_proto_rawDesc = []byte{ 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x2f, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x2f, 0x63, 0x6f, 0x69, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0x8b, 0x05, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, + 0x22, 0xfa, 0x04, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x65, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x62, 0x61, 0x73, 0x65, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, @@ -1457,33 +1457,32 @@ var file_cosmos_staking_v1beta1_authz_proto_rawDesc = []byte{ 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x8a, 0xe7, 0xb0, 0x2a, 0x1d, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x53, 0x74, 0x61, 0x6b, 0x65, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, - 0x1d, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x0f, 0xba, - 0xe7, 0xb0, 0x2a, 0x0a, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2a, 0x9e, - 0x01, 0x0a, 0x11, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, - 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x55, 0x54, 0x48, - 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, - 0x45, 0x4c, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x55, 0x54, - 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, - 0x55, 0x4e, 0x44, 0x45, 0x4c, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, - 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, - 0x50, 0x45, 0x5f, 0x52, 0x45, 0x44, 0x45, 0x4c, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x03, 0x42, - 0xda, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, - 0x41, 0x75, 0x74, 0x68, 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, - 0x73, 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, - 0x65, 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, - 0x6d, 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, - 0x74, 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, - 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, - 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, - 0x62, 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x0c, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x2a, 0x9e, 0x01, + 0x0a, 0x11, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x41, 0x55, 0x54, 0x48, 0x4f, + 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x45, + 0x4c, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x01, 0x12, 0x21, 0x0a, 0x1d, 0x41, 0x55, 0x54, 0x48, + 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, + 0x4e, 0x44, 0x45, 0x4c, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x41, + 0x55, 0x54, 0x48, 0x4f, 0x52, 0x49, 0x5a, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x52, 0x45, 0x44, 0x45, 0x4c, 0x45, 0x47, 0x41, 0x54, 0x45, 0x10, 0x03, 0x42, 0xda, + 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x42, 0x0a, 0x41, + 0x75, 0x74, 0x68, 0x7a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x73, 0x64, 0x6b, 0x2e, 0x69, 0x6f, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x63, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x76, 0x31, 0x62, 0x65, + 0x74, 0x61, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0x62, 0x65, 0x74, + 0x61, 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, + 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, + 0x73, 0x6d, 0x6f, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x62, + 0x65, 0x74, 0x61, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x18, 0x43, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x6b, 0x69, + 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x65, 0x74, 0x61, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/proto/amino/amino.proto b/proto/amino/amino.proto index e3688b7f56a5..fb099b8ee6fe 100644 --- a/proto/amino/amino.proto +++ b/proto/amino/amino.proto @@ -77,14 +77,8 @@ extend google.protobuf.FieldOptions { // out == {"baz":""} bool dont_omitempty = 11110005; - // oneof_type_name sets the type name for the given field oneof field. This is used - // by the Amino JSON encoder to encode the type of the oneof field, and must be the same string as - // The RegisterConcrete() method usage used to register the concrete type. - string oneof_type_name = 11110006; -} - -extend google.protobuf.OneofOptions { - // oneof_field_name sets the field name for the given oneof field. This is used by the Amino JSON - // encoder to set the field name encapsulating the oneof field. - string oneof_field_name = 11110007; + // oneof_name sets the type name for the given field oneof field. This is used + // by the Amino JSON encoder to encode the type of the oneof field, and must be the same string in + // the RegisterConcrete() method usage used to register the concrete type. + string oneof_name = 11110006; } \ No newline at end of file diff --git a/proto/cosmos/staking/v1beta1/authz.proto b/proto/cosmos/staking/v1beta1/authz.proto index f08c5effdcda..1fb04219b66e 100644 --- a/proto/cosmos/staking/v1beta1/authz.proto +++ b/proto/cosmos/staking/v1beta1/authz.proto @@ -20,12 +20,11 @@ message StakeAuthorization { cosmos.base.v1beta1.Coin max_tokens = 1 [(gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coin"]; // validators is the oneof that represents either allow_list or deny_list oneof validators { - option (amino.oneof_field_name) = "Validators"; // allow_list specifies list of validator addresses to whom grantee can delegate tokens on behalf of granter's // account. - Validators allow_list = 2 [(amino.oneof_type_name) = "cosmos-sdk/StakeAuthorization/AllowList"]; + Validators allow_list = 2 [(amino.oneof_name) = "cosmos-sdk/StakeAuthorization/AllowList"]; // deny_list specifies list of validator addresses to whom grantee can not delegate tokens. - Validators deny_list = 3 [(amino.oneof_type_name) = "cosmos-sdk/StakeAuthorization/DenyList"]; + Validators deny_list = 3 [(amino.oneof_name) = "cosmos-sdk/StakeAuthorization/DenyList"]; } // Validators defines list of validator addresses. message Validators { diff --git a/types/tx/amino/amino.pb.go b/types/tx/amino/amino.pb.go index 75973e8e8ad7..f3c9a293b593 100644 --- a/types/tx/amino/amino.pb.go +++ b/types/tx/amino/amino.pb.go @@ -66,21 +66,12 @@ var E_DontOmitempty = &proto.ExtensionDesc{ Filename: "amino/amino.proto", } -var E_OneofTypeName = &proto.ExtensionDesc{ +var E_OneofName = &proto.ExtensionDesc{ ExtendedType: (*descriptorpb.FieldOptions)(nil), ExtensionType: (*string)(nil), Field: 11110006, - Name: "amino.oneof_type_name", - Tag: "bytes,11110006,opt,name=oneof_type_name", - Filename: "amino/amino.proto", -} - -var E_OneofFieldName = &proto.ExtensionDesc{ - ExtendedType: (*descriptorpb.OneofOptions)(nil), - ExtensionType: (*string)(nil), - Field: 11110007, - Name: "amino.oneof_field_name", - Tag: "bytes,11110007,opt,name=oneof_field_name", + Name: "amino.oneof_name", + Tag: "bytes,11110006,opt,name=oneof_name", Filename: "amino/amino.proto", } @@ -90,33 +81,30 @@ func init() { proto.RegisterExtension(E_Encoding) proto.RegisterExtension(E_FieldName) proto.RegisterExtension(E_DontOmitempty) - proto.RegisterExtension(E_OneofTypeName) - proto.RegisterExtension(E_OneofFieldName) + proto.RegisterExtension(E_OneofName) } func init() { proto.RegisterFile("amino/amino.proto", fileDescriptor_115c1f70afec6bc5) } var fileDescriptor_115c1f70afec6bc5 = []byte{ - // 333 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcb, 0x4a, 0x33, 0x31, - 0x18, 0x86, 0x3b, 0xf0, 0xf7, 0xa7, 0x0d, 0xf4, 0x60, 0x57, 0x22, 0x18, 0xbb, 0x14, 0xc4, 0xc9, - 0x42, 0x70, 0x31, 0x08, 0x82, 0xd0, 0x2a, 0x42, 0x2d, 0x14, 0x57, 0x6e, 0x86, 0x76, 0x26, 0x1d, - 0x83, 0x4d, 0xbe, 0xd0, 0xa4, 0x60, 0xef, 0xc1, 0x85, 0x57, 0xe1, 0xb5, 0xb8, 0xec, 0xd2, 0xa5, - 0xcc, 0x5c, 0x81, 0xe7, 0xad, 0x4c, 0x32, 0xe9, 0x46, 0x70, 0xdc, 0x24, 0x24, 0xbc, 0xcf, 0x93, - 0xef, 0x85, 0xa0, 0x8d, 0x31, 0x67, 0x02, 0x88, 0x59, 0x7d, 0x39, 0x07, 0x0d, 0x9d, 0xaa, 0x39, - 0x6c, 0x75, 0x13, 0x80, 0x64, 0x46, 0x89, 0xb9, 0x9c, 0x2c, 0xa6, 0x24, 0xa6, 0x2a, 0x9a, 0x33, - 0xa9, 0x61, 0x6e, 0x83, 0xc1, 0x21, 0xfa, 0x27, 0xc6, 0x9c, 0x76, 0x76, 0x7c, 0x1b, 0xf5, 0x5d, - 0xd4, 0x1f, 0x50, 0xa5, 0xc6, 0x09, 0x1d, 0x4a, 0xcd, 0x40, 0xa8, 0xcd, 0x97, 0xbb, 0x87, 0x6a, - 0xd7, 0xdb, 0xad, 0x8f, 0x4c, 0x3e, 0x18, 0xa0, 0x36, 0xb7, 0x81, 0x90, 0x8a, 0x08, 0x62, 0x26, - 0x92, 0x72, 0xc7, 0xab, 0x73, 0xb4, 0x0a, 0xb6, 0x57, 0xa0, 0xc1, 0x11, 0xaa, 0xad, 0x35, 0xdb, - 0x3f, 0x34, 0x7d, 0x46, 0x67, 0xb1, 0x93, 0xbc, 0x39, 0xc9, 0x9a, 0x08, 0x8e, 0x11, 0x9a, 0xe6, - 0x91, 0xd0, 0x54, 0x29, 0xe1, 0xdf, 0x1d, 0x5f, 0x37, 0xcc, 0x45, 0xde, 0xe6, 0x14, 0x35, 0x63, - 0x10, 0x3a, 0x04, 0xce, 0x34, 0xe5, 0x52, 0x2f, 0xcb, 0x24, 0x1f, 0x56, 0x52, 0x1b, 0x35, 0x72, - 0x6e, 0xe8, 0xb0, 0xe0, 0x0c, 0xb5, 0x40, 0x50, 0x98, 0x86, 0x7a, 0x29, 0xe9, 0x9f, 0xc6, 0xf9, - 0x74, 0xe3, 0x34, 0x0c, 0x78, 0xb9, 0x94, 0xd4, 0x8c, 0x74, 0x8e, 0xda, 0xd6, 0xf4, 0x6b, 0xb3, - 0x61, 0x1e, 0x71, 0xaa, 0x2f, 0xa7, 0x6a, 0x1a, 0xb2, 0xef, 0xea, 0x9d, 0xf4, 0x1e, 0x53, 0xec, - 0xad, 0x52, 0xec, 0x3d, 0xa7, 0xd8, 0xbb, 0xcf, 0x70, 0x65, 0x95, 0xe1, 0xca, 0x53, 0x86, 0x2b, - 0x57, 0x7b, 0x09, 0xd3, 0xd7, 0x8b, 0x89, 0x1f, 0x01, 0x27, 0x11, 0x28, 0x0e, 0xaa, 0xd8, 0xf6, - 0x55, 0x7c, 0x43, 0xf2, 0x12, 0x8a, 0xe8, 0x5b, 0xfb, 0xb5, 0x26, 0xff, 0xcd, 0xb3, 0x07, 0xdf, - 0x01, 0x00, 0x00, 0xff, 0xff, 0x13, 0xb1, 0xdc, 0x29, 0x70, 0x02, 0x00, 0x00, + // 302 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4c, 0xcc, 0xcd, 0xcc, + 0xcb, 0xd7, 0x07, 0x93, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0xac, 0x60, 0x8e, 0x94, 0x42, + 0x7a, 0x7e, 0x7e, 0x7a, 0x4e, 0xaa, 0x3e, 0x58, 0x30, 0xa9, 0x34, 0x4d, 0x3f, 0x25, 0xb5, 0x38, + 0xb9, 0x28, 0xb3, 0xa0, 0x24, 0xbf, 0x08, 0xa2, 0xd0, 0xca, 0x8c, 0x8b, 0x25, 0x2f, 0x31, 0x37, + 0x55, 0x48, 0x5e, 0x0f, 0xa2, 0x54, 0x0f, 0xa6, 0x54, 0xcf, 0x37, 0xb5, 0xb8, 0x38, 0x31, 0x3d, + 0xd5, 0xbf, 0xa0, 0x24, 0x33, 0x3f, 0xaf, 0x58, 0xe2, 0x63, 0xcf, 0x32, 0x56, 0x05, 0x46, 0x0d, + 0xce, 0x20, 0xb0, 0x7a, 0x2b, 0x5f, 0x2e, 0x81, 0x5c, 0x88, 0x82, 0xf8, 0xd4, 0xbc, 0xe4, 0xfc, + 0x94, 0xcc, 0xbc, 0x74, 0xc2, 0x66, 0x7c, 0x82, 0x99, 0xc1, 0x0f, 0xd5, 0xeb, 0x0a, 0xd5, 0x6a, + 0x65, 0xc3, 0xc5, 0x01, 0x37, 0x46, 0x16, 0xc3, 0x18, 0xb7, 0xcc, 0xd4, 0x9c, 0x14, 0x98, 0x21, + 0x9f, 0x61, 0x86, 0xc0, 0x75, 0x58, 0xd9, 0x73, 0x71, 0xa5, 0x81, 0x94, 0xc4, 0x83, 0xbd, 0x42, + 0x40, 0xff, 0x17, 0x98, 0x7e, 0x4e, 0xb0, 0x1e, 0x3f, 0x90, 0x6f, 0xdc, 0xb9, 0xf8, 0x52, 0xf2, + 0xf3, 0x4a, 0xe2, 0xf3, 0x73, 0x33, 0x4b, 0x52, 0x73, 0x0b, 0x4a, 0x2a, 0x09, 0x19, 0xf2, 0x15, + 0x62, 0x08, 0x47, 0x10, 0x2f, 0x48, 0x9f, 0x3f, 0x4c, 0x1b, 0xc8, 0x25, 0xf9, 0x79, 0xa9, 0xf9, + 0x69, 0x44, 0xb9, 0xe4, 0x1b, 0xdc, 0x25, 0x60, 0x3d, 0x20, 0x97, 0x38, 0xb9, 0x9e, 0x78, 0x24, + 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, 0x8c, 0x13, 0x1e, 0xcb, 0x31, 0x5c, 0x78, + 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, 0x94, 0x76, 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, + 0x72, 0x7e, 0xae, 0x7e, 0x72, 0x7e, 0x71, 0x6e, 0x7e, 0x31, 0x94, 0xd2, 0x2d, 0x4e, 0xc9, 0xd6, + 0x2f, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x2f, 0xa9, 0x80, 0xa4, 0x82, 0x24, 0x36, 0xb0, 0x8d, 0xc6, + 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcf, 0x97, 0xdd, 0x37, 0x1b, 0x02, 0x00, 0x00, } diff --git a/x/staking/types/authz.pb.go b/x/staking/types/authz.pb.go index a08d8141a7b4..e812716038fc 100644 --- a/x/staking/types/authz.pb.go +++ b/x/staking/types/authz.pb.go @@ -229,41 +229,41 @@ func init() { } var fileDescriptor_d6d8cdbc6f4432f0 = []byte{ - // 542 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x94, 0xc1, 0x6e, 0x12, 0x4f, - 0x18, 0xc0, 0xd9, 0xf2, 0xff, 0xab, 0x8c, 0x89, 0x96, 0x49, 0x63, 0x28, 0x86, 0x6d, 0xe5, 0x60, - 0x91, 0x96, 0xd9, 0x14, 0xe3, 0xc5, 0x93, 0x4b, 0xd9, 0x0a, 0x49, 0xd3, 0x36, 0xcb, 0xd6, 0x68, - 0x2f, 0x9b, 0x81, 0x9d, 0xc0, 0x04, 0xd8, 0x21, 0x3b, 0x43, 0x85, 0xde, 0x4c, 0x3c, 0xe9, 0xc5, - 0x27, 0xf0, 0x01, 0x3c, 0x11, 0xd3, 0x93, 0x4f, 0x60, 0x3c, 0x35, 0x9e, 0xbc, 0x69, 0xe0, 0xc0, - 0x6b, 0x98, 0xdd, 0x1d, 0x28, 0x0a, 0xe5, 0xe2, 0x65, 0x77, 0x76, 0xbe, 0xdf, 0x7e, 0xdf, 0x6f, - 0x66, 0xbf, 0x59, 0x90, 0xae, 0x31, 0xde, 0x66, 0x5c, 0xe3, 0x02, 0x37, 0xa9, 0x5b, 0xd7, 0xce, - 0x76, 0xab, 0x44, 0xe0, 0x5d, 0x0d, 0x77, 0x45, 0xe3, 0x1c, 0x75, 0x3c, 0x26, 0x18, 0xbc, 0x17, - 0x32, 0x48, 0x32, 0x48, 0x32, 0xc9, 0xb5, 0x3a, 0xab, 0xb3, 0x00, 0xd1, 0xfc, 0x51, 0x48, 0x27, - 0xd7, 0x43, 0xda, 0x0e, 0x03, 0xf2, 0xd5, 0x30, 0xa4, 0xca, 0x62, 0x55, 0xcc, 0xc9, 0xb4, 0x52, - 0x8d, 0x51, 0x57, 0xc6, 0xe3, 0xb8, 0x4d, 0x5d, 0xa6, 0x05, 0xd7, 0x70, 0x2a, 0xfd, 0xfe, 0x7f, - 0x00, 0x2b, 0x02, 0x37, 0x89, 0xde, 0x15, 0x0d, 0xe6, 0xd1, 0x73, 0x2c, 0x28, 0x73, 0x21, 0x01, - 0xa0, 0x8d, 0x7b, 0xb6, 0x60, 0x4d, 0xe2, 0xf2, 0x84, 0xb2, 0xa9, 0x64, 0x6e, 0xe7, 0xd7, 0x91, - 0x2c, 0xe6, 0xa7, 0x9f, 0x48, 0xa2, 0x3d, 0x46, 0xdd, 0xc2, 0xf6, 0xa7, 0x9f, 0x1b, 0x5b, 0x75, - 0x2a, 0x1a, 0xdd, 0x2a, 0xaa, 0xb1, 0xb6, 0xb4, 0x92, 0xb7, 0x1c, 0x77, 0x9a, 0x9a, 0xe8, 0x77, - 0x08, 0x0f, 0x60, 0x33, 0xd6, 0xc6, 0x3d, 0x2b, 0x48, 0x0c, 0xdf, 0x2a, 0x00, 0xe0, 0x56, 0x8b, - 0xbd, 0xb6, 0x5b, 0x94, 0x8b, 0xc4, 0x4a, 0x50, 0xe7, 0x09, 0x5a, 0xbc, 0x1f, 0x68, 0xde, 0x13, - 0xbd, 0xc0, 0x2d, 0xea, 0x60, 0xc1, 0x3c, 0x5e, 0xd8, 0xf9, 0x3c, 0x1e, 0x64, 0xb7, 0x66, 0x4a, - 0xce, 0xe3, 0x9a, 0xee, 0xd7, 0x3a, 0xa0, 0x5c, 0x94, 0x22, 0x66, 0x0c, 0x4f, 0x1e, 0xe0, 0x1b, - 0x05, 0xc4, 0x1c, 0xe2, 0xf6, 0x43, 0x8b, 0xe8, 0xbf, 0x58, 0x6c, 0xfb, 0x16, 0x0f, 0x97, 0x5b, - 0x14, 0x89, 0xdb, 0x97, 0x12, 0xb7, 0x1c, 0x39, 0x86, 0x2f, 0x01, 0xc4, 0xb3, 0x94, 0xed, 0xef, - 0x58, 0xe2, 0xbf, 0x4d, 0x25, 0x73, 0x27, 0xff, 0xe8, 0x3a, 0x97, 0x3f, 0xf2, 0x5a, 0xfd, 0x0e, - 0x31, 0xe3, 0xf8, 0xef, 0xa9, 0xe4, 0x33, 0x00, 0xae, 0x04, 0x61, 0x1e, 0xdc, 0xc4, 0x8e, 0xe3, - 0x11, 0xee, 0x7f, 0xd6, 0x68, 0x26, 0x56, 0x48, 0x7c, 0xbf, 0xc8, 0xad, 0xc9, 0xfc, 0x7a, 0x18, - 0xa9, 0x08, 0x8f, 0xba, 0x75, 0x73, 0x02, 0x3e, 0x2d, 0x7d, 0xbb, 0xc8, 0xc9, 0x46, 0x46, 0x61, - 0xe3, 0x2e, 0x14, 0x78, 0x37, 0x1e, 0x64, 0x53, 0x4b, 0x97, 0x5e, 0x48, 0x01, 0x70, 0x76, 0xe5, - 0x72, 0xf7, 0xcb, 0x78, 0x90, 0x9d, 0x91, 0xcb, 0x7e, 0x54, 0x40, 0x7c, 0x6e, 0x4d, 0x30, 0x0d, - 0x54, 0xfd, 0xc4, 0x2a, 0x1d, 0x99, 0xe5, 0x53, 0xdd, 0x2a, 0x1f, 0x1d, 0xda, 0xd6, 0xab, 0x63, - 0xc3, 0x3e, 0x39, 0xac, 0x1c, 0x1b, 0x7b, 0xe5, 0xfd, 0xb2, 0x51, 0x5c, 0x8d, 0xc0, 0x0d, 0x70, - 0x7f, 0x01, 0x53, 0x34, 0x0e, 0x8c, 0xe7, 0xba, 0x65, 0xac, 0x2a, 0xf0, 0x01, 0x48, 0x2d, 0x4c, - 0x32, 0x45, 0x56, 0xae, 0x41, 0x4c, 0x63, 0x8a, 0x44, 0x0b, 0xfb, 0x5f, 0x87, 0xaa, 0x72, 0x39, - 0x54, 0x95, 0x5f, 0x43, 0x55, 0xf9, 0x30, 0x52, 0x23, 0x97, 0x23, 0x35, 0xf2, 0x63, 0xa4, 0x46, - 0x4e, 0x77, 0x96, 0xb6, 0x7f, 0x6f, 0xfa, 0x03, 0x08, 0x0e, 0x42, 0xf5, 0x46, 0x70, 0xfa, 0x1e, - 0xff, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xca, 0x9a, 0xfc, 0xe0, 0x1f, 0x04, 0x00, 0x00, + // 533 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x93, 0xc1, 0x6e, 0x12, 0x41, + 0x18, 0x80, 0x99, 0xd2, 0xa8, 0x8c, 0xc6, 0x94, 0x49, 0x63, 0x28, 0xa6, 0xdb, 0xca, 0xc1, 0x22, + 0x2d, 0xb3, 0x29, 0xc6, 0x8b, 0x27, 0x97, 0xb2, 0x15, 0x92, 0xa6, 0x6d, 0x96, 0xad, 0xd1, 0x5e, + 0x36, 0x03, 0x3b, 0x81, 0x09, 0xb0, 0x43, 0x98, 0xa1, 0x42, 0x6f, 0x26, 0x9e, 0x3c, 0xf9, 0x04, + 0x3e, 0x80, 0xa7, 0xc6, 0xf4, 0x21, 0x8c, 0xa7, 0xc6, 0x93, 0x37, 0x0d, 0x1c, 0xfa, 0x0e, 0x9e, + 0xcc, 0xee, 0x0e, 0x6b, 0x15, 0xca, 0xa5, 0x97, 0xdd, 0xd9, 0xf9, 0xbf, 0xfd, 0xff, 0x6f, 0x66, + 0xfe, 0x81, 0x99, 0x3a, 0x17, 0x1d, 0x2e, 0x74, 0x21, 0x49, 0x8b, 0x79, 0x0d, 0xfd, 0x64, 0xbb, + 0x46, 0x25, 0xd9, 0xd6, 0x49, 0x5f, 0x36, 0x4f, 0x71, 0xb7, 0xc7, 0x25, 0x47, 0x0f, 0x42, 0x06, + 0x2b, 0x06, 0x2b, 0x26, 0xbd, 0xdc, 0xe0, 0x0d, 0x1e, 0x20, 0xba, 0x3f, 0x0a, 0xe9, 0xf4, 0x4a, + 0x48, 0x3b, 0x61, 0x40, 0xfd, 0x1a, 0x86, 0x34, 0x55, 0xac, 0x46, 0x04, 0x8d, 0x2a, 0xd5, 0x39, + 0xf3, 0x54, 0x3c, 0x49, 0x3a, 0xcc, 0xe3, 0x7a, 0xf0, 0x0c, 0xa7, 0x32, 0xbf, 0x17, 0x21, 0xaa, + 0x4a, 0xd2, 0xa2, 0x46, 0x5f, 0x36, 0x79, 0x8f, 0x9d, 0x12, 0xc9, 0xb8, 0x87, 0x28, 0x84, 0x1d, + 0x32, 0x70, 0x24, 0x6f, 0x51, 0x4f, 0xa4, 0xc0, 0x3a, 0xc8, 0xde, 0x2d, 0xac, 0x60, 0x55, 0xcc, + 0x4f, 0x3f, 0x91, 0xc4, 0x3b, 0x9c, 0x79, 0xc5, 0xcd, 0xcf, 0x3f, 0xd7, 0x36, 0x1a, 0x4c, 0x36, + 0xfb, 0x35, 0x5c, 0xe7, 0x1d, 0x65, 0xa5, 0x5e, 0x79, 0xe1, 0xb6, 0x74, 0x39, 0xec, 0x52, 0x11, + 0xc0, 0x56, 0xa2, 0x43, 0x06, 0x76, 0x90, 0x18, 0xbd, 0x07, 0x10, 0x92, 0x76, 0x9b, 0xbf, 0x75, + 0xda, 0x4c, 0xc8, 0xd4, 0x42, 0x50, 0xe7, 0x19, 0x9e, 0xbd, 0x1f, 0x78, 0xda, 0x13, 0xbf, 0x22, + 0x6d, 0xe6, 0x12, 0xc9, 0x7b, 0xa2, 0xb8, 0xf5, 0xe5, 0xf2, 0x2c, 0xb7, 0x71, 0xa5, 0xe4, 0x34, + 0xae, 0x1b, 0x7e, 0xad, 0x3d, 0x26, 0x64, 0x39, 0x66, 0x25, 0xc8, 0xe4, 0x03, 0xbd, 0x03, 0x30, + 0xe1, 0x52, 0x6f, 0x18, 0x5a, 0xc4, 0x6f, 0x62, 0xb1, 0xe9, 0x5b, 0x3c, 0x9e, 0x6f, 0x51, 0xa2, + 0xde, 0x50, 0x49, 0xdc, 0x71, 0xd5, 0x18, 0xbd, 0x86, 0x88, 0x5c, 0xa5, 0x1c, 0x7f, 0xc7, 0x52, + 0x8b, 0xeb, 0x20, 0x7b, 0xbf, 0xf0, 0xe4, 0x3a, 0x97, 0x7f, 0xf2, 0xda, 0xc3, 0x2e, 0xb5, 0x92, + 0xe4, 0xff, 0xa9, 0xf4, 0x0b, 0x08, 0xff, 0x0a, 0xa2, 0x02, 0xbc, 0x4d, 0x5c, 0xb7, 0x47, 0x85, + 0x7f, 0xac, 0xf1, 0x6c, 0xa2, 0x98, 0xfa, 0x7e, 0x9e, 0x5f, 0x56, 0xf9, 0x8d, 0x30, 0x52, 0x95, + 0x3d, 0xe6, 0x35, 0xac, 0x09, 0xf8, 0xbc, 0xfc, 0xed, 0x3c, 0xaf, 0x1a, 0x19, 0x87, 0x8d, 0x3b, + 0x53, 0xe0, 0xc3, 0xe5, 0x59, 0x6e, 0x75, 0xee, 0xd2, 0x8b, 0xf7, 0x20, 0x3c, 0x89, 0x5c, 0x72, + 0x9f, 0x00, 0x4c, 0x4e, 0x2d, 0x01, 0x65, 0xa0, 0x66, 0x1c, 0xd9, 0xe5, 0x03, 0xab, 0x72, 0x6c, + 0xd8, 0x95, 0x83, 0x7d, 0xc7, 0x7e, 0x73, 0x68, 0x3a, 0x47, 0xfb, 0xd5, 0x43, 0x73, 0xa7, 0xb2, + 0x5b, 0x31, 0x4b, 0x4b, 0x31, 0xb4, 0x06, 0x1f, 0xce, 0x60, 0x4a, 0xe6, 0x9e, 0xf9, 0xd2, 0xb0, + 0xcd, 0x25, 0x80, 0x1e, 0xc1, 0xd5, 0x99, 0x49, 0x22, 0x64, 0xe1, 0x1a, 0xc4, 0x32, 0x23, 0x24, + 0x5e, 0xdc, 0xfd, 0x3a, 0xd2, 0xc0, 0xc5, 0x48, 0x03, 0xbf, 0x46, 0x1a, 0xf8, 0x38, 0xd6, 0x62, + 0x17, 0x63, 0x2d, 0xf6, 0x63, 0xac, 0xc5, 0x8e, 0xb7, 0xe6, 0x76, 0xfb, 0x20, 0xba, 0xef, 0x41, + 0xdf, 0xd7, 0x6e, 0x05, 0x97, 0xed, 0xe9, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x05, 0x01, 0x42, + 0x8b, 0x0e, 0x04, 0x00, 0x00, } func (m *StakeAuthorization) Marshal() (dAtA []byte, err error) { diff --git a/x/staking/types/staking.pb.go b/x/staking/types/staking.pb.go index 4cf1f09938bb..8f0b289ac855 100644 --- a/x/staking/types/staking.pb.go +++ b/x/staking/types/staking.pb.go @@ -1403,673 +1403,671 @@ func (this *Pool) Description() (desc *github_com_cosmos_gogoproto_protoc_gen_go func StakingDescription() (desc *github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet) { d := &github_com_cosmos_gogoproto_protoc_gen_gogo_descriptor.FileDescriptorSet{} var gzipped = []byte{ - // 10651 bytes of a gzipped FileDescriptorSet - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0xbd, 0x7b, 0x90, 0x1c, 0xd7, - 0x75, 0x1f, 0xbc, 0xf3, 0x9e, 0x39, 0xf3, 0xea, 0xbd, 0xbb, 0x04, 0x16, 0x03, 0x72, 0x77, 0xd9, - 0x7c, 0xe0, 0x41, 0x72, 0x41, 0x82, 0x04, 0x48, 0x0e, 0x44, 0xd1, 0x33, 0xb3, 0x03, 0x60, 0xc1, - 0x7d, 0xa9, 0x67, 0x17, 0x7c, 0xd8, 0x52, 0xab, 0x77, 0xe6, 0xee, 0x6e, 0x13, 0x33, 0xdd, 0xa3, - 0xee, 0x1e, 0x60, 0x97, 0xf5, 0xd5, 0x57, 0xb4, 0x65, 0x27, 0x32, 0xe2, 0xc8, 0xb2, 0x95, 0xb2, - 0x65, 0x59, 0x50, 0x28, 0x2b, 0x96, 0x64, 0x27, 0x71, 0x64, 0x4b, 0x91, 0xe4, 0xb8, 0xec, 0x92, - 0x53, 0x79, 0xc8, 0x4e, 0x2a, 0x25, 0xb9, 0x52, 0x89, 0x2b, 0x95, 0xd0, 0x0e, 0xa5, 0xb2, 0x14, - 0x59, 0x8e, 0x65, 0x99, 0x8e, 0xe3, 0xa8, 0x52, 0x49, 0xdd, 0x57, 0x3f, 0xe6, 0xb1, 0x3d, 0x0b, - 0x91, 0xb4, 0x53, 0xfa, 0x07, 0x98, 0xbe, 0xf7, 0x9c, 0x5f, 0xdf, 0x7b, 0xee, 0xb9, 0xe7, 0x9e, - 0x73, 0xee, 0xed, 0xbb, 0xf0, 0xe7, 0x17, 0x60, 0x7e, 0xc7, 0x34, 0x77, 0xda, 0xf8, 0x4c, 0xd7, - 0x32, 0x1d, 0x73, 0xab, 0xb7, 0x7d, 0xa6, 0x85, 0xed, 0xa6, 0xa5, 0x77, 0x1d, 0xd3, 0x5a, 0xa0, - 0x65, 0xa8, 0xc8, 0x28, 0x16, 0x04, 0x85, 0xbc, 0x02, 0x93, 0x17, 0xf5, 0x36, 0x5e, 0x74, 0x09, - 0x1b, 0xd8, 0x41, 0x4f, 0x40, 0x7c, 0x5b, 0x6f, 0xe3, 0x99, 0xc8, 0x7c, 0xec, 0x64, 0xf6, 0xec, - 0xbd, 0x0b, 0x7d, 0x4c, 0x0b, 0x41, 0x8e, 0x75, 0x52, 0xac, 0x50, 0x0e, 0xf9, 0x6b, 0x71, 0x98, - 0x1a, 0x52, 0x8b, 0x10, 0xc4, 0x0d, 0xad, 0x43, 0x10, 0x23, 0x27, 0x33, 0x0a, 0xfd, 0x8d, 0x66, - 0x20, 0xd5, 0xd5, 0x9a, 0xd7, 0xb4, 0x1d, 0x3c, 0x13, 0xa5, 0xc5, 0xe2, 0x11, 0xcd, 0x02, 0xb4, - 0x70, 0x17, 0x1b, 0x2d, 0x6c, 0x34, 0xf7, 0x67, 0x62, 0xf3, 0xb1, 0x93, 0x19, 0xc5, 0x57, 0x82, - 0x1e, 0x80, 0xc9, 0x6e, 0x6f, 0xab, 0xad, 0x37, 0x55, 0x1f, 0x19, 0xcc, 0xc7, 0x4e, 0x26, 0x14, - 0x89, 0x55, 0x2c, 0x7a, 0xc4, 0x27, 0xa0, 0x78, 0x03, 0x6b, 0xd7, 0xfc, 0xa4, 0x59, 0x4a, 0x5a, - 0x20, 0xc5, 0x3e, 0xc2, 0x1a, 0xe4, 0x3a, 0xd8, 0xb6, 0xb5, 0x1d, 0xac, 0x3a, 0xfb, 0x5d, 0x3c, - 0x13, 0xa7, 0xbd, 0x9f, 0x1f, 0xe8, 0x7d, 0x7f, 0xcf, 0xb3, 0x9c, 0x6b, 0x63, 0xbf, 0x8b, 0x51, - 0x05, 0x32, 0xd8, 0xe8, 0x75, 0x18, 0x42, 0x62, 0x84, 0xfc, 0xea, 0x46, 0xaf, 0xd3, 0x8f, 0x92, - 0x26, 0x6c, 0x1c, 0x22, 0x65, 0x63, 0xeb, 0xba, 0xde, 0xc4, 0x33, 0x49, 0x0a, 0x70, 0x62, 0x00, - 0xa0, 0xc1, 0xea, 0xfb, 0x31, 0x04, 0x1f, 0xaa, 0x41, 0x06, 0xef, 0x39, 0xd8, 0xb0, 0x75, 0xd3, - 0x98, 0x49, 0x51, 0x90, 0xfb, 0x86, 0x8c, 0x22, 0x6e, 0xb7, 0xfa, 0x21, 0x3c, 0x3e, 0x74, 0x1e, - 0x52, 0x66, 0xd7, 0xd1, 0x4d, 0xc3, 0x9e, 0x49, 0xcf, 0x47, 0x4e, 0x66, 0xcf, 0xde, 0x39, 0x54, - 0x11, 0xd6, 0x18, 0x8d, 0x22, 0x88, 0xd1, 0x12, 0x48, 0xb6, 0xd9, 0xb3, 0x9a, 0x58, 0x6d, 0x9a, - 0x2d, 0xac, 0xea, 0xc6, 0xb6, 0x39, 0x93, 0xa1, 0x00, 0x73, 0x83, 0x1d, 0xa1, 0x84, 0x35, 0xb3, - 0x85, 0x97, 0x8c, 0x6d, 0x53, 0x29, 0xd8, 0x81, 0x67, 0x74, 0x04, 0x92, 0xf6, 0xbe, 0xe1, 0x68, - 0x7b, 0x33, 0x39, 0xaa, 0x21, 0xfc, 0x49, 0xfe, 0xf5, 0x24, 0x14, 0xc7, 0x51, 0xb1, 0x0b, 0x90, - 0xd8, 0x26, 0xbd, 0x9c, 0x89, 0x1e, 0x46, 0x06, 0x8c, 0x27, 0x28, 0xc4, 0xe4, 0x6d, 0x0a, 0xb1, - 0x02, 0x59, 0x03, 0xdb, 0x0e, 0x6e, 0x31, 0x8d, 0x88, 0x8d, 0xa9, 0x53, 0xc0, 0x98, 0x06, 0x55, - 0x2a, 0x7e, 0x5b, 0x2a, 0xf5, 0x1c, 0x14, 0xdd, 0x26, 0xa9, 0x96, 0x66, 0xec, 0x08, 0xdd, 0x3c, - 0x13, 0xd6, 0x92, 0x85, 0xba, 0xe0, 0x53, 0x08, 0x9b, 0x52, 0xc0, 0x81, 0x67, 0xb4, 0x08, 0x60, - 0x1a, 0xd8, 0xdc, 0x56, 0x5b, 0xb8, 0xd9, 0x9e, 0x49, 0x8f, 0x90, 0xd2, 0x1a, 0x21, 0x19, 0x90, - 0x92, 0xc9, 0x4a, 0x9b, 0x6d, 0xf4, 0xa4, 0xa7, 0x6a, 0xa9, 0x11, 0x9a, 0xb2, 0xc2, 0x26, 0xd9, - 0x80, 0xb6, 0x6d, 0x42, 0xc1, 0xc2, 0x44, 0xef, 0x71, 0x8b, 0xf7, 0x2c, 0x43, 0x1b, 0xb1, 0x10, - 0xda, 0x33, 0x85, 0xb3, 0xb1, 0x8e, 0xe5, 0x2d, 0xff, 0x23, 0xba, 0x07, 0xdc, 0x02, 0x95, 0xaa, - 0x15, 0x50, 0x2b, 0x94, 0x13, 0x85, 0xab, 0x5a, 0x07, 0x97, 0x5e, 0x82, 0x42, 0x50, 0x3c, 0x68, - 0x1a, 0x12, 0xb6, 0xa3, 0x59, 0x0e, 0xd5, 0xc2, 0x84, 0xc2, 0x1e, 0x90, 0x04, 0x31, 0x6c, 0xb4, - 0xa8, 0x95, 0x4b, 0x28, 0xe4, 0x27, 0xfa, 0x01, 0xaf, 0xc3, 0x31, 0xda, 0xe1, 0xfb, 0x07, 0x47, - 0x34, 0x80, 0xdc, 0xdf, 0xef, 0xd2, 0xe3, 0x90, 0x0f, 0x74, 0x60, 0xdc, 0x57, 0xcb, 0xff, 0x1f, - 0xdc, 0x31, 0x14, 0x1a, 0x3d, 0x07, 0xd3, 0x3d, 0x43, 0x37, 0x1c, 0x6c, 0x75, 0x2d, 0x4c, 0x34, - 0x96, 0xbd, 0x6a, 0xe6, 0xeb, 0xa9, 0x11, 0x3a, 0xb7, 0xe9, 0xa7, 0x66, 0x28, 0xca, 0x54, 0x6f, - 0xb0, 0xf0, 0x74, 0x26, 0xfd, 0x8d, 0x94, 0xf4, 0xf2, 0xcb, 0x2f, 0xbf, 0x1c, 0x95, 0x7f, 0x3b, - 0x09, 0xd3, 0xc3, 0xe6, 0xcc, 0xd0, 0xe9, 0x7b, 0x04, 0x92, 0x46, 0xaf, 0xb3, 0x85, 0x2d, 0x2a, - 0xa4, 0x84, 0xc2, 0x9f, 0x50, 0x05, 0x12, 0x6d, 0x6d, 0x0b, 0xb7, 0x67, 0xe2, 0xf3, 0x91, 0x93, - 0x85, 0xb3, 0x0f, 0x8c, 0x35, 0x2b, 0x17, 0x96, 0x09, 0x8b, 0xc2, 0x38, 0xd1, 0xdb, 0x21, 0xce, - 0x4d, 0x34, 0x41, 0x38, 0x3d, 0x1e, 0x02, 0x99, 0x4b, 0x0a, 0xe5, 0x43, 0xc7, 0x21, 0x43, 0xfe, - 0x67, 0xba, 0x91, 0xa4, 0x6d, 0x4e, 0x93, 0x02, 0xa2, 0x17, 0xa8, 0x04, 0x69, 0x3a, 0x4d, 0x5a, - 0x58, 0x2c, 0x6d, 0xee, 0x33, 0x51, 0xac, 0x16, 0xde, 0xd6, 0x7a, 0x6d, 0x47, 0xbd, 0xae, 0xb5, - 0x7b, 0x98, 0x2a, 0x7c, 0x46, 0xc9, 0xf1, 0xc2, 0xab, 0xa4, 0x0c, 0xcd, 0x41, 0x96, 0xcd, 0x2a, - 0xdd, 0x68, 0xe1, 0x3d, 0x6a, 0x3d, 0x13, 0x0a, 0x9b, 0x68, 0x4b, 0xa4, 0x84, 0xbc, 0xfe, 0x45, - 0xdb, 0x34, 0x84, 0x6a, 0xd2, 0x57, 0x90, 0x02, 0xfa, 0xfa, 0xc7, 0xfb, 0x0d, 0xf7, 0x5d, 0xc3, - 0xbb, 0x37, 0x30, 0x97, 0x4e, 0x40, 0x91, 0x52, 0x3c, 0xca, 0x87, 0x5e, 0x6b, 0xcf, 0x4c, 0xce, - 0x47, 0x4e, 0xa6, 0x95, 0x02, 0x2b, 0x5e, 0xe3, 0xa5, 0xf2, 0xe7, 0xa2, 0x10, 0xa7, 0x86, 0xa5, - 0x08, 0xd9, 0x8d, 0xe7, 0xd7, 0xeb, 0xea, 0xe2, 0xda, 0x66, 0x75, 0xb9, 0x2e, 0x45, 0x50, 0x01, - 0x80, 0x16, 0x5c, 0x5c, 0x5e, 0xab, 0x6c, 0x48, 0x51, 0xf7, 0x79, 0x69, 0x75, 0xe3, 0xfc, 0x63, - 0x52, 0xcc, 0x65, 0xd8, 0x64, 0x05, 0x71, 0x3f, 0xc1, 0xa3, 0x67, 0xa5, 0x04, 0x92, 0x20, 0xc7, - 0x00, 0x96, 0x9e, 0xab, 0x2f, 0x9e, 0x7f, 0x4c, 0x4a, 0x06, 0x4b, 0x1e, 0x3d, 0x2b, 0xa5, 0x50, - 0x1e, 0x32, 0xb4, 0xa4, 0xba, 0xb6, 0xb6, 0x2c, 0xa5, 0x5d, 0xcc, 0xc6, 0x86, 0xb2, 0xb4, 0x7a, - 0x49, 0xca, 0xb8, 0x98, 0x97, 0x94, 0xb5, 0xcd, 0x75, 0x09, 0x5c, 0x84, 0x95, 0x7a, 0xa3, 0x51, - 0xb9, 0x54, 0x97, 0xb2, 0x2e, 0x45, 0xf5, 0xf9, 0x8d, 0x7a, 0x43, 0xca, 0x05, 0x9a, 0xf5, 0xe8, - 0x59, 0x29, 0xef, 0xbe, 0xa2, 0xbe, 0xba, 0xb9, 0x22, 0x15, 0xd0, 0x24, 0xe4, 0xd9, 0x2b, 0x44, - 0x23, 0x8a, 0x7d, 0x45, 0xe7, 0x1f, 0x93, 0x24, 0xaf, 0x21, 0x0c, 0x65, 0x32, 0x50, 0x70, 0xfe, - 0x31, 0x09, 0xc9, 0x35, 0x48, 0x50, 0x35, 0x44, 0x08, 0x0a, 0xcb, 0x95, 0x6a, 0x7d, 0x59, 0x5d, - 0x5b, 0xdf, 0x58, 0x5a, 0x5b, 0xad, 0x2c, 0x4b, 0x11, 0xaf, 0x4c, 0xa9, 0xbf, 0x63, 0x73, 0x49, - 0xa9, 0x2f, 0x4a, 0x51, 0x7f, 0xd9, 0x7a, 0xbd, 0xb2, 0x51, 0x5f, 0x94, 0x62, 0x72, 0x13, 0xa6, - 0x87, 0x19, 0xd4, 0xa1, 0x53, 0xc8, 0xa7, 0x0b, 0xd1, 0x11, 0xba, 0x40, 0xb1, 0xfa, 0x75, 0x41, - 0xfe, 0x6a, 0x14, 0xa6, 0x86, 0x2c, 0x2a, 0x43, 0x5f, 0xf2, 0x34, 0x24, 0x98, 0x2e, 0xb3, 0x65, - 0xf6, 0xd4, 0xd0, 0xd5, 0x89, 0x6a, 0xf6, 0xc0, 0x52, 0x4b, 0xf9, 0xfc, 0xae, 0x46, 0x6c, 0x84, - 0xab, 0x41, 0x20, 0x06, 0x14, 0xf6, 0x9d, 0x03, 0xc6, 0x9f, 0xad, 0x8f, 0xe7, 0xc7, 0x59, 0x1f, - 0x69, 0xd9, 0xe1, 0x16, 0x81, 0xc4, 0x90, 0x45, 0xe0, 0x02, 0x4c, 0x0e, 0x00, 0x8d, 0x6d, 0x8c, - 0xdf, 0x1b, 0x81, 0x99, 0x51, 0xc2, 0x09, 0x31, 0x89, 0xd1, 0x80, 0x49, 0xbc, 0xd0, 0x2f, 0xc1, - 0xbb, 0x47, 0x0f, 0xc2, 0xc0, 0x58, 0x7f, 0x32, 0x02, 0x47, 0x86, 0xbb, 0x94, 0x43, 0xdb, 0xf0, - 0x76, 0x48, 0x76, 0xb0, 0xb3, 0x6b, 0x0a, 0xb7, 0xea, 0xfe, 0x21, 0x8b, 0x35, 0xa9, 0xee, 0x1f, - 0x6c, 0xce, 0xe5, 0x5f, 0xed, 0x63, 0xa3, 0xfc, 0x42, 0xd6, 0x9a, 0x81, 0x96, 0xfe, 0x78, 0x14, - 0xee, 0x18, 0x0a, 0x3e, 0xb4, 0xa1, 0x77, 0x01, 0xe8, 0x46, 0xb7, 0xe7, 0x30, 0xd7, 0x89, 0x59, - 0xe2, 0x0c, 0x2d, 0xa1, 0xc6, 0x8b, 0x58, 0xd9, 0x9e, 0xe3, 0xd6, 0xc7, 0x68, 0x3d, 0xb0, 0x22, - 0x4a, 0xf0, 0x84, 0xd7, 0xd0, 0x38, 0x6d, 0xe8, 0xec, 0x88, 0x9e, 0x0e, 0x28, 0xe6, 0xc3, 0x20, - 0x35, 0xdb, 0x3a, 0x36, 0x1c, 0xd5, 0x76, 0x2c, 0xac, 0x75, 0x74, 0x63, 0x87, 0x2e, 0x35, 0xe9, - 0x72, 0x62, 0x5b, 0x6b, 0xdb, 0x58, 0x29, 0xb2, 0xea, 0x86, 0xa8, 0x25, 0x1c, 0x54, 0x81, 0x2c, - 0x1f, 0x47, 0x32, 0xc0, 0xc1, 0xaa, 0x5d, 0x0e, 0xf9, 0xa7, 0x32, 0x90, 0xf5, 0x39, 0xe0, 0xe8, - 0x6e, 0xc8, 0xbd, 0xa8, 0x5d, 0xd7, 0x54, 0x11, 0x54, 0x31, 0x49, 0x64, 0x49, 0xd9, 0x3a, 0x0f, - 0xac, 0x1e, 0x86, 0x69, 0x4a, 0x62, 0xf6, 0x1c, 0x6c, 0xa9, 0xcd, 0xb6, 0x66, 0xdb, 0x54, 0x68, - 0x69, 0x4a, 0x8a, 0x48, 0xdd, 0x1a, 0xa9, 0xaa, 0x89, 0x1a, 0x74, 0x0e, 0xa6, 0x28, 0x47, 0xa7, - 0xd7, 0x76, 0xf4, 0x6e, 0x1b, 0xab, 0x24, 0xcc, 0xb3, 0xe9, 0x92, 0xe3, 0xb6, 0x6c, 0x92, 0x50, - 0xac, 0x70, 0x02, 0xd2, 0x22, 0x1b, 0x2d, 0xc2, 0x5d, 0x94, 0x6d, 0x07, 0x1b, 0xd8, 0xd2, 0x1c, - 0xac, 0xe2, 0xf7, 0xf4, 0xb4, 0xb6, 0xad, 0x6a, 0x46, 0x4b, 0xdd, 0xd5, 0xec, 0xdd, 0x99, 0x69, - 0x02, 0x50, 0x8d, 0xce, 0x44, 0x94, 0x63, 0x84, 0xf0, 0x12, 0xa7, 0xab, 0x53, 0xb2, 0x8a, 0xd1, - 0xba, 0xac, 0xd9, 0xbb, 0xa8, 0x0c, 0x47, 0x28, 0x8a, 0xed, 0x58, 0xba, 0xb1, 0xa3, 0x36, 0x77, - 0x71, 0xf3, 0x9a, 0xda, 0x73, 0xb6, 0x9f, 0x98, 0x39, 0xee, 0x7f, 0x3f, 0x6d, 0x61, 0x83, 0xd2, - 0xd4, 0x08, 0xc9, 0xa6, 0xb3, 0xfd, 0x04, 0x6a, 0x40, 0x8e, 0x0c, 0x46, 0x47, 0x7f, 0x09, 0xab, - 0xdb, 0xa6, 0x45, 0xd7, 0xd0, 0xc2, 0x10, 0xd3, 0xe4, 0x93, 0xe0, 0xc2, 0x1a, 0x67, 0x58, 0x31, - 0x5b, 0xb8, 0x9c, 0x68, 0xac, 0xd7, 0xeb, 0x8b, 0x4a, 0x56, 0xa0, 0x5c, 0x34, 0x2d, 0xa2, 0x50, - 0x3b, 0xa6, 0x2b, 0xe0, 0x2c, 0x53, 0xa8, 0x1d, 0x53, 0x88, 0xf7, 0x1c, 0x4c, 0x35, 0x9b, 0xac, - 0xcf, 0x7a, 0x53, 0xe5, 0xc1, 0x98, 0x3d, 0x23, 0x05, 0x84, 0xd5, 0x6c, 0x5e, 0x62, 0x04, 0x5c, - 0xc7, 0x6d, 0xf4, 0x24, 0xdc, 0xe1, 0x09, 0xcb, 0xcf, 0x38, 0x39, 0xd0, 0xcb, 0x7e, 0xd6, 0x73, - 0x30, 0xd5, 0xdd, 0x1f, 0x64, 0x44, 0x81, 0x37, 0x76, 0xf7, 0xfb, 0xd9, 0x1e, 0x87, 0xe9, 0xee, - 0x6e, 0x77, 0x90, 0xef, 0xb4, 0x9f, 0x0f, 0x75, 0x77, 0xbb, 0xfd, 0x8c, 0xf7, 0xd1, 0xc8, 0xdc, - 0xc2, 0x4d, 0xcd, 0xc1, 0xad, 0x99, 0xa3, 0x7e, 0x72, 0x5f, 0x05, 0x5a, 0x00, 0xa9, 0xd9, 0x54, - 0xb1, 0xa1, 0x6d, 0xb5, 0xb1, 0xaa, 0x59, 0xd8, 0xd0, 0xec, 0x99, 0x39, 0x4a, 0x1c, 0x77, 0xac, - 0x1e, 0x56, 0x0a, 0xcd, 0x66, 0x9d, 0x56, 0x56, 0x68, 0x1d, 0x3a, 0x0d, 0x93, 0xe6, 0xd6, 0x8b, - 0x4d, 0xa6, 0x91, 0x6a, 0xd7, 0xc2, 0xdb, 0xfa, 0xde, 0xcc, 0xbd, 0x54, 0xbc, 0x45, 0x52, 0x41, - 0xf5, 0x71, 0x9d, 0x16, 0xa3, 0x53, 0x20, 0x35, 0xed, 0x5d, 0xcd, 0xea, 0x52, 0x93, 0x6c, 0x77, - 0xb5, 0x26, 0x9e, 0xb9, 0x8f, 0x91, 0xb2, 0xf2, 0x55, 0x51, 0x4c, 0x66, 0x84, 0x7d, 0x43, 0xdf, - 0x76, 0x04, 0xe2, 0x09, 0x36, 0x23, 0x68, 0x19, 0x47, 0x3b, 0x09, 0x12, 0x91, 0x44, 0xe0, 0xc5, - 0x27, 0x29, 0x59, 0xa1, 0xbb, 0xdb, 0xf5, 0xbf, 0xf7, 0x1e, 0xc8, 0x13, 0x4a, 0xef, 0xa5, 0xa7, - 0x98, 0xe3, 0xd6, 0xdd, 0xf5, 0xbd, 0xf1, 0x31, 0x38, 0x42, 0x88, 0x3a, 0xd8, 0xd1, 0x5a, 0x9a, - 0xa3, 0xf9, 0xa8, 0x1f, 0xa4, 0xd4, 0x44, 0xec, 0x2b, 0xbc, 0x32, 0xd0, 0x4e, 0xab, 0xb7, 0xb5, - 0xef, 0x2a, 0xd6, 0x43, 0xac, 0x9d, 0xa4, 0x4c, 0xa8, 0xd6, 0x9b, 0xe6, 0x9c, 0xcb, 0x65, 0xc8, - 0xf9, 0xf5, 0x1e, 0x65, 0x80, 0x69, 0xbe, 0x14, 0x21, 0x4e, 0x50, 0x6d, 0x6d, 0x91, 0xb8, 0x2f, - 0x2f, 0xd4, 0xa5, 0x28, 0x71, 0xa3, 0x96, 0x97, 0x36, 0xea, 0xaa, 0xb2, 0xb9, 0xba, 0xb1, 0xb4, - 0x52, 0x97, 0x62, 0x3e, 0xc7, 0xfe, 0x4a, 0x3c, 0x7d, 0xbf, 0x74, 0x82, 0x78, 0x0d, 0x85, 0x60, - 0xa4, 0x86, 0xde, 0x06, 0x47, 0x45, 0x5a, 0xc5, 0xc6, 0x8e, 0x7a, 0x43, 0xb7, 0xe8, 0x84, 0xec, - 0x68, 0x6c, 0x71, 0x74, 0xf5, 0x67, 0x9a, 0x53, 0x35, 0xb0, 0xf3, 0xac, 0x6e, 0x91, 0xe9, 0xd6, - 0xd1, 0x1c, 0xb4, 0x0c, 0x73, 0x86, 0xa9, 0xda, 0x8e, 0x66, 0xb4, 0x34, 0xab, 0xa5, 0x7a, 0x09, - 0x2d, 0x55, 0x6b, 0x36, 0xb1, 0x6d, 0x9b, 0x6c, 0x21, 0x74, 0x51, 0xee, 0x34, 0xcc, 0x06, 0x27, - 0xf6, 0x56, 0x88, 0x0a, 0x27, 0xed, 0x53, 0xdf, 0xd8, 0x28, 0xf5, 0x3d, 0x0e, 0x99, 0x8e, 0xd6, - 0x55, 0xb1, 0xe1, 0x58, 0xfb, 0xd4, 0x3f, 0x4f, 0x2b, 0xe9, 0x8e, 0xd6, 0xad, 0x93, 0xe7, 0xb7, - 0x24, 0x4c, 0xba, 0x12, 0x4f, 0xc7, 0xa5, 0xc4, 0x95, 0x78, 0x3a, 0x21, 0x25, 0xaf, 0xc4, 0xd3, - 0x49, 0x29, 0x75, 0x25, 0x9e, 0x4e, 0x4b, 0x99, 0x2b, 0xf1, 0x74, 0x46, 0x02, 0xf9, 0xa7, 0xe3, - 0x90, 0xf3, 0x7b, 0xf0, 0x24, 0x20, 0x6a, 0xd2, 0x35, 0x2c, 0x42, 0xad, 0xdc, 0x3d, 0x07, 0xfa, - 0xfb, 0x0b, 0x35, 0xb2, 0xb8, 0x95, 0x93, 0xcc, 0x5d, 0x56, 0x18, 0x27, 0x71, 0x2c, 0x88, 0xfa, - 0x61, 0xe6, 0x9e, 0xa4, 0x15, 0xfe, 0x84, 0x2e, 0x41, 0xf2, 0x45, 0x9b, 0x62, 0x27, 0x29, 0xf6, - 0xbd, 0x07, 0x63, 0x5f, 0x69, 0x50, 0xf0, 0xcc, 0x95, 0x86, 0xba, 0xba, 0xa6, 0xac, 0x54, 0x96, - 0x15, 0xce, 0x8e, 0x8e, 0x41, 0xbc, 0xad, 0xbd, 0xb4, 0x1f, 0x5c, 0x06, 0x69, 0x11, 0x5a, 0x80, - 0x62, 0xcf, 0xb8, 0x8e, 0x2d, 0x7d, 0x5b, 0xc7, 0x2d, 0x95, 0x52, 0x15, 0xfd, 0x54, 0x05, 0xaf, - 0x76, 0x99, 0xd0, 0x8f, 0x39, 0x8c, 0xc7, 0x20, 0x7e, 0x03, 0x6b, 0xd7, 0x82, 0x8b, 0x15, 0x2d, - 0x7a, 0x13, 0xa7, 0xd3, 0x19, 0x48, 0x50, 0xf9, 0x22, 0x00, 0x2e, 0x61, 0x69, 0x02, 0xa5, 0x21, - 0x5e, 0x5b, 0x53, 0xc8, 0x94, 0x92, 0x20, 0xc7, 0x4a, 0xd5, 0xf5, 0xa5, 0x7a, 0xad, 0x2e, 0x45, - 0xe5, 0x73, 0x90, 0x64, 0x42, 0x23, 0xd3, 0xcd, 0x15, 0x9b, 0x34, 0xc1, 0x1f, 0x39, 0x46, 0x44, - 0xd4, 0x6e, 0xae, 0x54, 0xeb, 0x8a, 0x14, 0x1d, 0x50, 0x16, 0xd9, 0x86, 0x9c, 0xdf, 0x93, 0x7f, - 0x6b, 0xc2, 0xf9, 0x2f, 0x46, 0x20, 0xeb, 0xf3, 0xcc, 0x89, 0x4b, 0xa5, 0xb5, 0xdb, 0xe6, 0x0d, - 0x55, 0x6b, 0xeb, 0x9a, 0xcd, 0x55, 0x09, 0x68, 0x51, 0x85, 0x94, 0x8c, 0x3b, 0x74, 0x6f, 0xd1, - 0x24, 0x4b, 0x48, 0x49, 0xf9, 0xa3, 0x11, 0x90, 0xfa, 0x5d, 0xe3, 0xbe, 0x66, 0x46, 0xfe, 0x3a, - 0x9b, 0x29, 0x7f, 0x24, 0x02, 0x85, 0xa0, 0x3f, 0xdc, 0xd7, 0xbc, 0xbb, 0xff, 0x5a, 0x9b, 0xf7, - 0x87, 0x51, 0xc8, 0x07, 0xbc, 0xe0, 0x71, 0x5b, 0xf7, 0x1e, 0x98, 0xd4, 0x5b, 0xb8, 0xd3, 0x35, - 0x1d, 0x6c, 0x34, 0xf7, 0xd5, 0x36, 0xbe, 0x8e, 0xdb, 0x33, 0x32, 0x35, 0x32, 0x67, 0x0e, 0xf6, - 0xb3, 0x17, 0x96, 0x3c, 0xbe, 0x65, 0xc2, 0x56, 0x9e, 0x5a, 0x5a, 0xac, 0xaf, 0xac, 0xaf, 0x6d, - 0xd4, 0x57, 0x6b, 0xcf, 0xab, 0x9b, 0xab, 0xcf, 0xac, 0xae, 0x3d, 0xbb, 0xaa, 0x48, 0x7a, 0x1f, - 0xd9, 0x9b, 0x38, 0xed, 0xd7, 0x41, 0xea, 0x6f, 0x14, 0x3a, 0x0a, 0xc3, 0x9a, 0x25, 0x4d, 0xa0, - 0x29, 0x28, 0xae, 0xae, 0xa9, 0x8d, 0xa5, 0xc5, 0xba, 0x5a, 0xbf, 0x78, 0xb1, 0x5e, 0xdb, 0x68, - 0xb0, 0xcc, 0x89, 0x4b, 0xbd, 0x11, 0x98, 0xe0, 0xf2, 0x87, 0x63, 0x30, 0x35, 0xa4, 0x25, 0xa8, - 0xc2, 0x63, 0x1e, 0x16, 0x86, 0x3d, 0x34, 0x4e, 0xeb, 0x17, 0x88, 0xd7, 0xb1, 0xae, 0x59, 0x0e, - 0x0f, 0x91, 0x4e, 0x01, 0x91, 0x92, 0xe1, 0x10, 0xe3, 0x6a, 0xf1, 0x8c, 0x14, 0x0b, 0x84, 0x8a, - 0x5e, 0x39, 0x4b, 0x4a, 0x3d, 0x08, 0xa8, 0x6b, 0xda, 0xba, 0xa3, 0x5f, 0xc7, 0xaa, 0x6e, 0x88, - 0xf4, 0x15, 0x09, 0x8c, 0xe2, 0x8a, 0x24, 0x6a, 0x96, 0x0c, 0xc7, 0xa5, 0x36, 0xf0, 0x8e, 0xd6, - 0x47, 0x4d, 0x8c, 0x7f, 0x4c, 0x91, 0x44, 0x8d, 0x4b, 0x7d, 0x37, 0xe4, 0x5a, 0x66, 0x8f, 0x78, - 0x8b, 0x8c, 0x8e, 0xac, 0x35, 0x11, 0x25, 0xcb, 0xca, 0x5c, 0x12, 0x1e, 0x07, 0x78, 0x79, 0xb3, - 0x9c, 0x92, 0x65, 0x65, 0x8c, 0xe4, 0x04, 0x14, 0xb5, 0x9d, 0x1d, 0x8b, 0x80, 0x0b, 0x20, 0x16, - 0xd9, 0x14, 0xdc, 0x62, 0x4a, 0x58, 0xba, 0x02, 0x69, 0x21, 0x07, 0xb2, 0xd8, 0x13, 0x49, 0xa8, - 0x5d, 0x16, 0xae, 0x47, 0x4f, 0x66, 0x94, 0xb4, 0x21, 0x2a, 0xef, 0x86, 0x9c, 0x6e, 0xab, 0xde, - 0x36, 0x40, 0x74, 0x3e, 0x7a, 0x32, 0xad, 0x64, 0x75, 0xdb, 0x4d, 0xa1, 0xca, 0x9f, 0x8c, 0x42, - 0x21, 0xb8, 0x8d, 0x81, 0x16, 0x21, 0xdd, 0x36, 0x9b, 0x1a, 0x55, 0x2d, 0xb6, 0x87, 0x76, 0x32, - 0x64, 0xe7, 0x63, 0x61, 0x99, 0xd3, 0x2b, 0x2e, 0x67, 0xe9, 0xdf, 0x45, 0x20, 0x2d, 0x8a, 0xd1, - 0x11, 0x88, 0x77, 0x35, 0x67, 0x97, 0xc2, 0x25, 0xaa, 0x51, 0x29, 0xa2, 0xd0, 0x67, 0x52, 0x6e, - 0x77, 0x35, 0x83, 0xaa, 0x00, 0x2f, 0x27, 0xcf, 0x64, 0x5c, 0xdb, 0x58, 0x6b, 0xd1, 0xb0, 0xc9, - 0xec, 0x74, 0xb0, 0xe1, 0xd8, 0x62, 0x5c, 0x79, 0x79, 0x8d, 0x17, 0xa3, 0x07, 0x60, 0xd2, 0xb1, - 0x34, 0xbd, 0x1d, 0xa0, 0x8d, 0x53, 0x5a, 0x49, 0x54, 0xb8, 0xc4, 0x65, 0x38, 0x26, 0x70, 0x5b, - 0xd8, 0xd1, 0x9a, 0xbb, 0xb8, 0xe5, 0x31, 0x25, 0x69, 0x7a, 0xe4, 0x28, 0x27, 0x58, 0xe4, 0xf5, - 0x82, 0x57, 0xfe, 0x4a, 0x04, 0x26, 0x45, 0xa0, 0xd7, 0x72, 0x85, 0xb5, 0x02, 0xa0, 0x19, 0x86, - 0xe9, 0xf8, 0xc5, 0x35, 0xa8, 0xca, 0x03, 0x7c, 0x0b, 0x15, 0x97, 0x49, 0xf1, 0x01, 0x94, 0x3a, - 0x00, 0x5e, 0xcd, 0x48, 0xb1, 0xcd, 0x41, 0x96, 0xef, 0x51, 0xd1, 0x8d, 0x4e, 0x96, 0x1a, 0x00, - 0x56, 0x44, 0x22, 0x42, 0x34, 0x0d, 0x89, 0x2d, 0xbc, 0xa3, 0x1b, 0x3c, 0xf3, 0xcc, 0x1e, 0x44, - 0x02, 0x27, 0xee, 0x26, 0x70, 0xaa, 0xff, 0x3f, 0x4c, 0x35, 0xcd, 0x4e, 0x7f, 0x73, 0xab, 0x52, - 0x5f, 0x7a, 0xc2, 0xbe, 0x1c, 0x79, 0xe1, 0x21, 0x4e, 0xb4, 0x63, 0xb6, 0x35, 0x63, 0x67, 0xc1, - 0xb4, 0x76, 0xbc, 0x8d, 0x5a, 0xe2, 0x21, 0xd9, 0xbe, 0xed, 0xda, 0xee, 0xd6, 0xff, 0x8c, 0x44, - 0x7e, 0x21, 0x1a, 0xbb, 0xb4, 0x5e, 0xfd, 0xe5, 0x68, 0xe9, 0x12, 0x63, 0x5c, 0x17, 0xc2, 0x50, - 0xf0, 0x76, 0x1b, 0x37, 0x49, 0x07, 0xe1, 0x4f, 0x1e, 0x80, 0xe9, 0x1d, 0x73, 0xc7, 0xa4, 0x48, - 0x67, 0xc8, 0x2f, 0xbe, 0xd3, 0x9b, 0x71, 0x4b, 0x4b, 0xa1, 0xdb, 0xc2, 0xe5, 0x55, 0x98, 0xe2, - 0xc4, 0x2a, 0xdd, 0x6a, 0x62, 0x81, 0x10, 0x3a, 0x30, 0x0b, 0x37, 0xf3, 0xab, 0x5f, 0xa3, 0xcb, - 0xb7, 0x32, 0xc9, 0x59, 0x49, 0x1d, 0x8b, 0x95, 0xca, 0x0a, 0xdc, 0x11, 0xc0, 0x63, 0x93, 0x14, - 0x5b, 0x21, 0x88, 0xff, 0x92, 0x23, 0x4e, 0xf9, 0x10, 0x1b, 0x9c, 0xb5, 0x5c, 0x83, 0xfc, 0x61, - 0xb0, 0xfe, 0x15, 0xc7, 0xca, 0x61, 0x3f, 0xc8, 0x25, 0x28, 0x52, 0x90, 0x66, 0xcf, 0x76, 0xcc, - 0x0e, 0xb5, 0x80, 0x07, 0xc3, 0xfc, 0xeb, 0xaf, 0xb1, 0x59, 0x53, 0x20, 0x6c, 0x35, 0x97, 0xab, - 0x5c, 0x06, 0xba, 0xbb, 0xd6, 0xc2, 0xcd, 0x76, 0x08, 0xc2, 0x97, 0x78, 0x43, 0x5c, 0xfa, 0xf2, - 0x55, 0x98, 0x26, 0xbf, 0xa9, 0x81, 0xf2, 0xb7, 0x24, 0x3c, 0x65, 0x37, 0xf3, 0x95, 0xf7, 0xb2, - 0x89, 0x39, 0xe5, 0x02, 0xf8, 0xda, 0xe4, 0x1b, 0xc5, 0x1d, 0xec, 0x38, 0xd8, 0xb2, 0x55, 0xad, - 0x3d, 0xac, 0x79, 0xbe, 0x9c, 0xc7, 0xcc, 0xcf, 0x7d, 0x2b, 0x38, 0x8a, 0x97, 0x18, 0x67, 0xa5, - 0xdd, 0x2e, 0x6f, 0xc2, 0xd1, 0x21, 0x5a, 0x31, 0x06, 0xe6, 0x87, 0x39, 0xe6, 0xf4, 0x80, 0x66, - 0x10, 0xd8, 0x75, 0x10, 0xe5, 0xee, 0x58, 0x8e, 0x81, 0xf9, 0xf3, 0x1c, 0x13, 0x71, 0x5e, 0x31, - 0xa4, 0x04, 0xf1, 0x0a, 0x4c, 0x5e, 0xc7, 0xd6, 0x96, 0x69, 0xf3, 0x3c, 0xd3, 0x18, 0x70, 0x1f, - 0xe1, 0x70, 0x45, 0xce, 0x48, 0x13, 0x4f, 0x04, 0xeb, 0x49, 0x48, 0x6f, 0x6b, 0x4d, 0x3c, 0x06, - 0xc4, 0x2d, 0x0e, 0x91, 0x22, 0xf4, 0x84, 0xb5, 0x02, 0xb9, 0x1d, 0x93, 0xaf, 0x51, 0xe1, 0xec, - 0x1f, 0xe5, 0xec, 0x59, 0xc1, 0xc3, 0x21, 0xba, 0x66, 0xb7, 0xd7, 0x26, 0x0b, 0x58, 0x38, 0xc4, - 0xdf, 0x17, 0x10, 0x82, 0x87, 0x43, 0x1c, 0x42, 0xac, 0xaf, 0x08, 0x08, 0xdb, 0x27, 0xcf, 0xa7, - 0x21, 0x6b, 0x1a, 0xed, 0x7d, 0xd3, 0x18, 0xa7, 0x11, 0x1f, 0xe3, 0x08, 0xc0, 0x59, 0x08, 0xc0, - 0x05, 0xc8, 0x8c, 0x3b, 0x10, 0xbf, 0xf8, 0x2d, 0x31, 0x3d, 0xc4, 0x08, 0x5c, 0x82, 0xa2, 0x30, - 0x50, 0xba, 0x69, 0x8c, 0x01, 0xf1, 0x09, 0x0e, 0x51, 0xf0, 0xb1, 0xf1, 0x6e, 0x38, 0xd8, 0x76, - 0x76, 0xf0, 0x38, 0x20, 0x9f, 0x14, 0xdd, 0xe0, 0x2c, 0x5c, 0x94, 0x5b, 0xd8, 0x68, 0xee, 0x8e, - 0x87, 0xf0, 0x29, 0x21, 0x4a, 0xc1, 0x43, 0x20, 0x6a, 0x90, 0xef, 0x68, 0x96, 0xbd, 0xab, 0xb5, - 0xc7, 0x1a, 0x8e, 0x5f, 0xe2, 0x18, 0x39, 0x97, 0x89, 0x4b, 0xa4, 0x67, 0x1c, 0x06, 0xe6, 0x97, - 0x85, 0x44, 0x7c, 0x6c, 0x7c, 0xea, 0xd9, 0x0e, 0x4d, 0xca, 0x1d, 0x06, 0xed, 0x1f, 0x8a, 0xa9, - 0xc7, 0x78, 0x57, 0xfc, 0x88, 0x17, 0x20, 0x63, 0xeb, 0x2f, 0x8d, 0x05, 0xf3, 0x8f, 0xc4, 0x48, - 0x53, 0x06, 0xc2, 0xfc, 0x3c, 0x1c, 0x1b, 0xba, 0x4c, 0x8c, 0x01, 0xf6, 0x8f, 0x39, 0xd8, 0x91, - 0x21, 0x4b, 0x05, 0x37, 0x09, 0x87, 0x85, 0xfc, 0x15, 0x61, 0x12, 0x70, 0x1f, 0xd6, 0x3a, 0x89, - 0x1a, 0x6c, 0x6d, 0xfb, 0x70, 0x52, 0xfb, 0x27, 0x42, 0x6a, 0x8c, 0x37, 0x20, 0xb5, 0x0d, 0x38, - 0xc2, 0x11, 0x0f, 0x37, 0xae, 0x9f, 0x16, 0x86, 0x95, 0x71, 0x6f, 0x06, 0x47, 0xf7, 0x07, 0xa1, - 0xe4, 0x8a, 0x53, 0xb8, 0xa7, 0xb6, 0xda, 0xd1, 0xba, 0x63, 0x20, 0xff, 0x2a, 0x47, 0x16, 0x16, - 0xdf, 0xf5, 0x6f, 0xed, 0x15, 0xad, 0x4b, 0xc0, 0x9f, 0x83, 0x19, 0x01, 0xde, 0x33, 0x2c, 0xdc, - 0x34, 0x77, 0x0c, 0xfd, 0x25, 0xdc, 0x1a, 0x03, 0xfa, 0xd7, 0xfa, 0x86, 0x6a, 0xd3, 0xc7, 0x4e, - 0x90, 0x97, 0x40, 0x72, 0x7d, 0x15, 0x55, 0xef, 0x74, 0x4d, 0xcb, 0x09, 0x41, 0xfc, 0x8c, 0x18, - 0x29, 0x97, 0x6f, 0x89, 0xb2, 0x95, 0xeb, 0xc0, 0x76, 0xaa, 0xc7, 0x55, 0xc9, 0xcf, 0x72, 0xa0, - 0xbc, 0xc7, 0xc5, 0x0d, 0x47, 0xd3, 0xec, 0x74, 0x35, 0x6b, 0x1c, 0xfb, 0xf7, 0x4f, 0x85, 0xe1, - 0xe0, 0x2c, 0xdc, 0x70, 0x10, 0x8f, 0x8e, 0xac, 0xf6, 0x63, 0x20, 0x7c, 0x4e, 0x18, 0x0e, 0xc1, - 0xc3, 0x21, 0x84, 0xc3, 0x30, 0x06, 0xc4, 0xe7, 0x05, 0x84, 0xe0, 0x21, 0x10, 0xef, 0xf0, 0x16, - 0x5a, 0x0b, 0xef, 0xe8, 0xb6, 0x63, 0x31, 0xa7, 0xf8, 0x60, 0xa8, 0x2f, 0x7c, 0x2b, 0xe8, 0x84, - 0x29, 0x3e, 0x56, 0x62, 0x89, 0x78, 0x9a, 0x96, 0xc6, 0x4c, 0xe1, 0x0d, 0xfb, 0x75, 0x61, 0x89, - 0x7c, 0x6c, 0xa4, 0x6d, 0x3e, 0x0f, 0x91, 0x88, 0xbd, 0x49, 0x22, 0x85, 0x31, 0xe0, 0xfe, 0x59, - 0x5f, 0xe3, 0x1a, 0x82, 0x97, 0x60, 0xfa, 0xfc, 0x9f, 0x9e, 0x71, 0x0d, 0xef, 0x8f, 0xa5, 0x9d, - 0xbf, 0xd1, 0xe7, 0xff, 0x6c, 0x32, 0x4e, 0x66, 0x43, 0x8a, 0x7d, 0xfe, 0x14, 0x0a, 0x3b, 0x97, - 0x34, 0xf3, 0xc3, 0xaf, 0xf3, 0xfe, 0x06, 0xdd, 0xa9, 0xf2, 0x32, 0x51, 0xf2, 0xa0, 0xd3, 0x13, - 0x0e, 0xf6, 0xde, 0xd7, 0x5d, 0x3d, 0x0f, 0xf8, 0x3c, 0xe5, 0x8b, 0x90, 0x0f, 0x38, 0x3c, 0xe1, - 0x50, 0x3f, 0xca, 0xa1, 0x72, 0x7e, 0x7f, 0xa7, 0x7c, 0x0e, 0xe2, 0xc4, 0x79, 0x09, 0x67, 0xff, - 0x31, 0xce, 0x4e, 0xc9, 0xcb, 0x4f, 0x41, 0x5a, 0x38, 0x2d, 0xe1, 0xac, 0x7f, 0x8b, 0xb3, 0xba, - 0x2c, 0x84, 0x5d, 0x38, 0x2c, 0xe1, 0xec, 0x7f, 0x5b, 0xb0, 0x0b, 0x16, 0xc2, 0x3e, 0xbe, 0x08, - 0xbf, 0xf8, 0x77, 0xe2, 0x7c, 0xd1, 0x11, 0xb2, 0xbb, 0x00, 0x29, 0xee, 0xa9, 0x84, 0x73, 0xff, - 0x38, 0x7f, 0xb9, 0xe0, 0x28, 0x3f, 0x0e, 0x89, 0x31, 0x05, 0xfe, 0x77, 0x39, 0x2b, 0xa3, 0x2f, - 0xd7, 0x20, 0xeb, 0xf3, 0x4e, 0xc2, 0xd9, 0xdf, 0xcf, 0xd9, 0xfd, 0x5c, 0xa4, 0xe9, 0xdc, 0x3b, - 0x09, 0x07, 0xf8, 0x49, 0xd1, 0x74, 0xce, 0x41, 0xc4, 0x26, 0x1c, 0x93, 0x70, 0xee, 0x0f, 0x08, - 0xa9, 0x0b, 0x96, 0xf2, 0xd3, 0x90, 0x71, 0x17, 0x9b, 0x70, 0xfe, 0x9f, 0xe2, 0xfc, 0x1e, 0x0f, - 0x91, 0x80, 0x6f, 0xb1, 0x0b, 0x87, 0xf8, 0x69, 0x21, 0x01, 0x1f, 0x17, 0x99, 0x46, 0xfd, 0x0e, - 0x4c, 0x38, 0xd2, 0x07, 0xc5, 0x34, 0xea, 0xf3, 0x5f, 0xc8, 0x68, 0x52, 0x9b, 0x1f, 0x0e, 0xf1, - 0xf7, 0xc4, 0x68, 0x52, 0x7a, 0xd2, 0x8c, 0x7e, 0x8f, 0x20, 0x1c, 0xe3, 0x67, 0x45, 0x33, 0xfa, - 0x1c, 0x82, 0xf2, 0x3a, 0xa0, 0x41, 0x6f, 0x20, 0x1c, 0xef, 0x43, 0x1c, 0x6f, 0x72, 0xc0, 0x19, - 0x28, 0x3f, 0x0b, 0x47, 0x86, 0x7b, 0x02, 0xe1, 0xa8, 0x3f, 0xf7, 0x7a, 0x5f, 0xec, 0xe6, 0x77, - 0x04, 0xca, 0x1b, 0xde, 0x92, 0xe2, 0xf7, 0x02, 0xc2, 0x61, 0x3f, 0xfc, 0x7a, 0xd0, 0x70, 0xfb, - 0x9d, 0x80, 0x72, 0x05, 0xc0, 0x5b, 0x80, 0xc3, 0xb1, 0x3e, 0xc2, 0xb1, 0x7c, 0x4c, 0x64, 0x6a, - 0xf0, 0xf5, 0x37, 0x9c, 0xff, 0x96, 0x98, 0x1a, 0x9c, 0x83, 0x4c, 0x0d, 0xb1, 0xf4, 0x86, 0x73, - 0x7f, 0x54, 0x4c, 0x0d, 0xc1, 0x42, 0x34, 0xdb, 0xb7, 0xba, 0x85, 0x23, 0x7c, 0x4c, 0x68, 0xb6, - 0x8f, 0xab, 0xbc, 0x0a, 0x93, 0x03, 0x0b, 0x62, 0x38, 0xd4, 0x2f, 0x70, 0x28, 0xa9, 0x7f, 0x3d, - 0xf4, 0x2f, 0x5e, 0x7c, 0x31, 0x0c, 0x47, 0xfb, 0x78, 0xdf, 0xe2, 0xc5, 0xd7, 0xc2, 0xf2, 0x05, - 0x48, 0x1b, 0xbd, 0x76, 0x9b, 0x4c, 0x1e, 0x74, 0xf0, 0x59, 0xc2, 0x99, 0xff, 0xf6, 0x5d, 0x2e, - 0x1d, 0xc1, 0x50, 0x3e, 0x07, 0x09, 0xdc, 0xd9, 0xc2, 0xad, 0x30, 0xce, 0x6f, 0x7e, 0x57, 0x18, - 0x4c, 0x42, 0x5d, 0x7e, 0x1a, 0x80, 0xa5, 0x46, 0xe8, 0xe6, 0x61, 0x08, 0xef, 0x1f, 0x7f, 0x97, - 0x1f, 0xde, 0xf1, 0x58, 0x3c, 0x00, 0x76, 0x14, 0xe8, 0x60, 0x80, 0x6f, 0x05, 0x01, 0xe8, 0x88, - 0x3c, 0x09, 0xa9, 0x17, 0x6d, 0xd3, 0x70, 0xb4, 0x9d, 0x30, 0xee, 0x3f, 0xe1, 0xdc, 0x82, 0x9e, - 0x08, 0xac, 0x63, 0x5a, 0xd8, 0xd1, 0x76, 0xec, 0x30, 0xde, 0xff, 0xce, 0x79, 0x5d, 0x06, 0xc2, - 0xdc, 0xd4, 0x6c, 0x67, 0x9c, 0x7e, 0xff, 0xa9, 0x60, 0x16, 0x0c, 0xa4, 0xd1, 0xe4, 0xf7, 0x35, - 0xbc, 0x1f, 0xc6, 0xfb, 0x6d, 0xd1, 0x68, 0x4e, 0x5f, 0x7e, 0x0a, 0x32, 0xe4, 0x27, 0x3b, 0x91, - 0x17, 0xc2, 0xfc, 0x67, 0x9c, 0xd9, 0xe3, 0x20, 0x6f, 0xb6, 0x9d, 0x96, 0xa3, 0x87, 0x0b, 0xfb, - 0x3b, 0x7c, 0xa4, 0x05, 0x7d, 0xb9, 0x02, 0x59, 0xdb, 0x69, 0xb5, 0x7a, 0xdc, 0x3f, 0x0d, 0x61, - 0xff, 0xf3, 0xef, 0xba, 0x29, 0x0b, 0x97, 0x87, 0x8c, 0xf6, 0x8d, 0x6b, 0x4e, 0xd7, 0xa4, 0x1b, - 0x1e, 0x61, 0x08, 0xaf, 0x73, 0x04, 0x1f, 0x4b, 0xb9, 0x06, 0x39, 0xd2, 0x17, 0x0b, 0x77, 0x31, - 0xdd, 0x9d, 0x0a, 0x81, 0xf8, 0x0b, 0x2e, 0x80, 0x00, 0x53, 0xf5, 0xdd, 0x5f, 0x7a, 0x6d, 0x36, - 0xf2, 0xe5, 0xd7, 0x66, 0x23, 0x7f, 0xf8, 0xda, 0x6c, 0xe4, 0x03, 0x5f, 0x9d, 0x9d, 0xf8, 0xf2, - 0x57, 0x67, 0x27, 0x7e, 0xff, 0xab, 0xb3, 0x13, 0xc3, 0xb3, 0xc4, 0x70, 0xc9, 0xbc, 0x64, 0xb2, - 0xfc, 0xf0, 0x0b, 0xf7, 0xed, 0xe8, 0xce, 0x6e, 0x6f, 0x6b, 0xa1, 0x69, 0x76, 0xce, 0x34, 0x4d, - 0xbb, 0x63, 0xda, 0x67, 0x82, 0x79, 0x5d, 0xfa, 0x0b, 0xfe, 0x77, 0x84, 0xc4, 0xcc, 0xc1, 0x74, - 0xae, 0x66, 0xec, 0x8f, 0xfa, 0xbc, 0xe7, 0x3c, 0xc4, 0x2a, 0xc6, 0x3e, 0x3a, 0xc6, 0x0c, 0x9c, - 0xda, 0xb3, 0xda, 0xfc, 0x58, 0x58, 0x8a, 0x3c, 0x6f, 0x5a, 0x6d, 0x34, 0xed, 0x9d, 0xdd, 0x8c, - 0x9c, 0xcc, 0xf1, 0x03, 0x99, 0xd5, 0xf7, 0x47, 0x0e, 0xd7, 0x93, 0x74, 0xc5, 0xd8, 0xa7, 0x1d, - 0x59, 0x8f, 0xbc, 0xf0, 0x60, 0x68, 0x9e, 0xfb, 0x9a, 0x61, 0xde, 0x30, 0x48, 0xb3, 0xbb, 0x5b, - 0x22, 0xc7, 0x3d, 0xdb, 0x9f, 0xe3, 0x7e, 0x16, 0xb7, 0xdb, 0xcf, 0x10, 0xba, 0x0d, 0xc2, 0xb2, - 0x95, 0x64, 0x27, 0x90, 0xe1, 0x83, 0x51, 0x98, 0x1d, 0x48, 0x67, 0x73, 0x25, 0x18, 0x25, 0x84, - 0x32, 0xa4, 0x17, 0x85, 0x6e, 0xcd, 0x40, 0xca, 0xc6, 0x4d, 0xd3, 0x68, 0xd9, 0x54, 0x10, 0x31, - 0x45, 0x3c, 0x12, 0x41, 0x18, 0x9a, 0x61, 0xda, 0xfc, 0x60, 0x25, 0x7b, 0xa8, 0xfe, 0xfc, 0x21, - 0x05, 0x91, 0x17, 0x6f, 0x12, 0xd2, 0x78, 0x64, 0x4c, 0x69, 0x88, 0x4e, 0x04, 0x32, 0xff, 0xe3, - 0x4a, 0xe5, 0x67, 0xa3, 0x30, 0xd7, 0x2f, 0x15, 0x32, 0xb3, 0x6c, 0x47, 0xeb, 0x74, 0x47, 0x89, - 0xe5, 0x02, 0x64, 0x36, 0x04, 0xcd, 0xa1, 0xe5, 0x72, 0xeb, 0x90, 0x72, 0x29, 0xb8, 0xaf, 0x12, - 0x82, 0x39, 0x3b, 0xa6, 0x60, 0xdc, 0x7e, 0xdc, 0x96, 0x64, 0xfe, 0x2a, 0x09, 0xc7, 0xd8, 0x74, - 0x52, 0xd9, 0x54, 0x62, 0x0f, 0x5c, 0x26, 0x39, 0x7f, 0x55, 0xf8, 0x3e, 0x89, 0xfc, 0x0c, 0x4c, - 0x2d, 0x11, 0x6b, 0x41, 0xa2, 0x20, 0x6f, 0x87, 0x67, 0xe8, 0xd9, 0xd3, 0xf9, 0x80, 0xc3, 0xcf, - 0x77, 0x98, 0xfc, 0x45, 0xf2, 0x0f, 0x47, 0x40, 0x6a, 0x34, 0xb5, 0xb6, 0x66, 0x7d, 0xaf, 0x50, - 0xe8, 0x71, 0x00, 0xfa, 0xcd, 0x92, 0xf7, 0x91, 0x51, 0xe1, 0xec, 0xcc, 0x82, 0xbf, 0x73, 0x0b, - 0xec, 0x4d, 0xf4, 0x0b, 0x86, 0x0c, 0xa5, 0x25, 0x3f, 0x4f, 0x3f, 0x07, 0xe0, 0x55, 0xa0, 0xe3, - 0x70, 0xb4, 0x51, 0xab, 0x2c, 0x57, 0x14, 0x95, 0x1d, 0x86, 0x5f, 0x6d, 0xac, 0xd7, 0x6b, 0x4b, - 0x17, 0x97, 0xea, 0x8b, 0xd2, 0x04, 0x3a, 0x02, 0xc8, 0x5f, 0xe9, 0x9e, 0x4b, 0xb9, 0x03, 0x26, - 0xfd, 0xe5, 0xec, 0x44, 0x7d, 0x94, 0x78, 0x8a, 0x7a, 0xa7, 0xdb, 0xc6, 0x74, 0xeb, 0x4f, 0xd5, - 0x85, 0xd4, 0xc2, 0x9d, 0x90, 0xdf, 0xf9, 0x0f, 0xec, 0x94, 0xf5, 0x94, 0xc7, 0xee, 0xca, 0xbc, - 0xbc, 0x0c, 0x93, 0x5a, 0xb3, 0x89, 0xbb, 0x01, 0xc8, 0x10, 0x53, 0x4d, 0x00, 0xe9, 0x66, 0x26, - 0xe7, 0xf4, 0xd0, 0x1e, 0x87, 0xa4, 0x4d, 0x7b, 0x1f, 0x06, 0xf1, 0xbb, 0x1c, 0x82, 0x93, 0x97, - 0x0d, 0x98, 0x24, 0x9e, 0x9f, 0x66, 0x61, 0x5f, 0x33, 0x0e, 0xce, 0x33, 0xfc, 0xe6, 0x67, 0x1e, - 0xa6, 0x5b, 0x9b, 0x77, 0x07, 0x87, 0x65, 0x88, 0x3a, 0x29, 0x12, 0xc7, 0xf6, 0x1a, 0x8a, 0xa1, - 0x20, 0xde, 0xc7, 0x1b, 0x7c, 0xf0, 0xcb, 0x7e, 0x8b, 0xbf, 0x6c, 0x76, 0x98, 0x0e, 0xf8, 0xde, - 0x94, 0xe7, 0xa8, 0xac, 0xa2, 0x5a, 0x1f, 0x35, 0xa7, 0x5f, 0x78, 0x60, 0x70, 0x75, 0x62, 0xff, - 0x3d, 0x44, 0x91, 0x2f, 0xf8, 0x5f, 0xe3, 0xce, 0xbd, 0x6f, 0xc7, 0x61, 0x52, 0xeb, 0xe8, 0x86, - 0x79, 0x86, 0xfe, 0xcb, 0xe7, 0x5c, 0x82, 0x3e, 0x8c, 0xb1, 0x29, 0x79, 0x9e, 0x4d, 0x85, 0x70, - 0x8d, 0xf9, 0xb3, 0x9f, 0xf8, 0x44, 0xc2, 0x9b, 0x2e, 0xe5, 0x15, 0x90, 0xc4, 0x81, 0x43, 0x6c, - 0x34, 0xcd, 0xd6, 0x58, 0x59, 0x8a, 0xef, 0x08, 0x0c, 0x91, 0xdf, 0xaa, 0x73, 0xd6, 0xf2, 0xdb, - 0x20, 0xed, 0xc2, 0x84, 0x79, 0x26, 0x02, 0xc4, 0xe5, 0x20, 0x7e, 0x09, 0x9b, 0x99, 0xe3, 0x78, - 0xa1, 0xaf, 0x0b, 0x7e, 0x36, 0x43, 0x57, 0x49, 0x6f, 0x2e, 0x41, 0xa1, 0x65, 0x1a, 0x8e, 0x6a, - 0x76, 0x74, 0x07, 0x77, 0xba, 0x4e, 0xa8, 0x5f, 0xf7, 0x17, 0x0c, 0x24, 0xad, 0xe4, 0x09, 0xdf, - 0x9a, 0x60, 0x2b, 0x5f, 0x86, 0x22, 0xfb, 0xa6, 0xc8, 0xfd, 0x6e, 0x29, 0x0c, 0xe9, 0x7f, 0x88, - 0xe6, 0xe4, 0x29, 0xe3, 0x06, 0xff, 0xbc, 0xa9, 0x7c, 0x05, 0x24, 0x86, 0x74, 0x60, 0xcf, 0xfc, - 0x87, 0xd1, 0x66, 0xfe, 0x52, 0x40, 0x15, 0x28, 0xe7, 0x45, 0xd1, 0xbd, 0xdb, 0x52, 0x39, 0xbb, - 0x75, 0x8d, 0xaf, 0x10, 0xce, 0x1e, 0x53, 0x2d, 0x57, 0xe5, 0xfe, 0x34, 0x06, 0xb3, 0x9c, 0x78, - 0x4b, 0xb3, 0xf1, 0x99, 0xeb, 0x8f, 0x6c, 0x61, 0x47, 0x7b, 0xe4, 0x4c, 0xd3, 0xd4, 0x85, 0x7b, - 0x30, 0xc5, 0x57, 0x00, 0x52, 0xbf, 0xc0, 0xeb, 0x4b, 0x43, 0xf7, 0xd0, 0x4b, 0xa3, 0x57, 0x8e, - 0xd2, 0xa0, 0x62, 0xcb, 0x2f, 0x40, 0xbc, 0x66, 0xea, 0x06, 0x59, 0x30, 0x5b, 0xd8, 0x30, 0x3b, - 0xdc, 0x86, 0xb3, 0x07, 0x74, 0x1e, 0x92, 0x5a, 0xc7, 0xec, 0x19, 0x0e, 0xb3, 0xdf, 0xd5, 0xd9, - 0x2f, 0xbd, 0x3a, 0x37, 0xf1, 0x9f, 0x5e, 0x9d, 0x8b, 0x2d, 0x19, 0xce, 0xef, 0x7d, 0xf6, 0x21, - 0xe0, 0xe8, 0x4b, 0x86, 0xf3, 0xa9, 0xaf, 0x7f, 0xfa, 0x74, 0x44, 0xe1, 0xd4, 0xe5, 0xf8, 0x37, - 0x5e, 0x99, 0x8b, 0xc8, 0xcf, 0x41, 0x6a, 0x11, 0x37, 0x0f, 0x80, 0x7f, 0xa4, 0x0f, 0xfe, 0x98, - 0x80, 0x5f, 0xc4, 0x4d, 0x1f, 0xfc, 0x22, 0x6e, 0xf6, 0x21, 0x3f, 0x0e, 0xe9, 0x25, 0xc3, 0x61, - 0xdf, 0x50, 0x3c, 0x00, 0x31, 0xdd, 0x60, 0xc7, 0x72, 0x7d, 0x08, 0x03, 0x0d, 0x54, 0x08, 0x15, - 0x61, 0x5c, 0xc4, 0x4d, 0x97, 0xb1, 0x85, 0x9b, 0xfd, 0x8c, 0x83, 0xaf, 0x26, 0x54, 0xd5, 0xc5, - 0xdf, 0xff, 0xaf, 0xb3, 0x13, 0x2f, 0xbf, 0x36, 0x3b, 0x31, 0x72, 0xe8, 0xe5, 0xf0, 0xa1, 0x77, - 0x47, 0xfc, 0x13, 0x71, 0xb8, 0x8b, 0x7e, 0x5a, 0x67, 0x75, 0x74, 0xc3, 0x39, 0xd3, 0xb4, 0xf6, - 0xbb, 0x8e, 0x49, 0xac, 0x8a, 0xb9, 0xcd, 0x07, 0x7c, 0xd2, 0xab, 0x5e, 0x60, 0xd5, 0xc3, 0x87, - 0x5b, 0xde, 0x86, 0xc4, 0x3a, 0xe1, 0x23, 0x22, 0x76, 0x4c, 0x47, 0x6b, 0x73, 0x57, 0x88, 0x3d, - 0x90, 0x52, 0xf6, 0x39, 0x5e, 0x94, 0x95, 0xea, 0xe2, 0x4b, 0xbc, 0x36, 0xd6, 0xb6, 0xd9, 0x57, - 0x0d, 0x31, 0xea, 0x43, 0xa7, 0x49, 0x01, 0xfd, 0x80, 0x61, 0x1a, 0x12, 0x5a, 0x8f, 0x1d, 0xa7, - 0x89, 0x11, 0xe7, 0x9a, 0x3e, 0xc8, 0xcf, 0x40, 0x8a, 0x6f, 0xea, 0x23, 0x09, 0x62, 0xd7, 0xf0, - 0x3e, 0x7d, 0x4f, 0x4e, 0x21, 0x3f, 0xd1, 0x02, 0x24, 0x68, 0xe3, 0xf9, 0xe7, 0x5a, 0x33, 0x0b, - 0x03, 0xad, 0x5f, 0xa0, 0x8d, 0x54, 0x18, 0x99, 0x7c, 0x05, 0xd2, 0x8b, 0x26, 0xd1, 0xc2, 0x20, - 0x5a, 0x86, 0xa1, 0xd1, 0x36, 0x77, 0x7b, 0x5c, 0x2b, 0x14, 0xf6, 0x80, 0x8e, 0x40, 0x92, 0x7d, - 0xe5, 0xc2, 0x8f, 0x04, 0xf1, 0x27, 0xb9, 0x06, 0x29, 0x8a, 0xbd, 0xd6, 0x25, 0x7e, 0x88, 0x7b, - 0xa0, 0x38, 0xc3, 0xbf, 0x79, 0xe4, 0xf0, 0x51, 0xaf, 0xb1, 0x08, 0xe2, 0x2d, 0xcd, 0xd1, 0x78, - 0xbf, 0xe9, 0x6f, 0xf9, 0xed, 0x90, 0xe6, 0x20, 0x36, 0x3a, 0x0b, 0x31, 0xb3, 0x6b, 0xf3, 0x43, - 0x3d, 0xa5, 0x51, 0x5d, 0x59, 0xeb, 0x56, 0xe3, 0x44, 0x67, 0x14, 0x42, 0x5c, 0x5d, 0x1d, 0xa9, - 0x16, 0x8f, 0x05, 0xd4, 0xa2, 0x83, 0x9d, 0xad, 0x6d, 0xc7, 0xfb, 0xc1, 0x86, 0x73, 0x40, 0x15, - 0x5c, 0x45, 0xb9, 0x15, 0x85, 0x59, 0x5f, 0xed, 0x75, 0x6c, 0xd9, 0xba, 0x69, 0x30, 0x6d, 0xe2, - 0x9a, 0x82, 0x7c, 0x0d, 0xe4, 0xf5, 0x23, 0x54, 0xe5, 0x29, 0x88, 0x55, 0xba, 0x5d, 0x54, 0x82, - 0x34, 0x7d, 0x6e, 0x9a, 0x4c, 0x57, 0xe2, 0x8a, 0xfb, 0x4c, 0xea, 0x6c, 0x73, 0xdb, 0xb9, 0xa1, - 0x59, 0xee, 0x47, 0xa0, 0xe2, 0x59, 0x7e, 0x12, 0x32, 0x35, 0xd3, 0xb0, 0xb1, 0x61, 0xf7, 0xa8, - 0x83, 0xbd, 0xd5, 0x36, 0x9b, 0xd7, 0x38, 0x02, 0x7b, 0x20, 0xc2, 0xd6, 0xba, 0x5d, 0xca, 0x19, - 0x57, 0xc8, 0x4f, 0x36, 0x5f, 0xab, 0x6b, 0x23, 0xc5, 0x73, 0xee, 0x70, 0xe2, 0xe1, 0x1d, 0xf4, - 0x3c, 0xe5, 0x08, 0xdc, 0x39, 0x38, 0x91, 0xae, 0xe1, 0x7d, 0xfb, 0xb0, 0xf3, 0xe8, 0x39, 0xc8, - 0xac, 0xd3, 0x5b, 0x18, 0x9e, 0xc1, 0xfb, 0xa8, 0x04, 0x29, 0xdc, 0x3a, 0x7b, 0xee, 0xdc, 0x23, - 0x4f, 0x32, 0x2d, 0xbf, 0x3c, 0xa1, 0x88, 0x02, 0x34, 0x0b, 0x19, 0x1b, 0x37, 0xbb, 0x67, 0xcf, - 0x9d, 0xbf, 0xf6, 0x08, 0x53, 0xab, 0xcb, 0x13, 0x8a, 0x57, 0x54, 0x4e, 0x93, 0x1e, 0x7f, 0xe3, - 0x63, 0x73, 0x91, 0x6a, 0x02, 0x62, 0x76, 0xaf, 0xf3, 0xa6, 0xe9, 0xc6, 0xcf, 0x24, 0x60, 0xde, - 0x57, 0xcb, 0x16, 0x97, 0xeb, 0x5a, 0x5b, 0x6f, 0x69, 0xde, 0xdd, 0x19, 0x92, 0xaf, 0xff, 0x94, - 0x62, 0xc4, 0xaa, 0x71, 0xa0, 0x14, 0xe5, 0x5f, 0x8b, 0x40, 0xee, 0xaa, 0x40, 0x6e, 0x60, 0x07, - 0x5d, 0x00, 0x70, 0xdf, 0x24, 0xa6, 0xca, 0xf1, 0x85, 0xfe, 0x77, 0x2d, 0xb8, 0x3c, 0x8a, 0x8f, - 0x1c, 0x3d, 0x4e, 0x15, 0xb0, 0x6b, 0xda, 0xfc, 0x83, 0xc0, 0x10, 0x56, 0x97, 0x18, 0x3d, 0x08, - 0x88, 0x5a, 0x35, 0xf5, 0xba, 0xe9, 0xe8, 0xc6, 0x8e, 0xda, 0x35, 0x6f, 0xf0, 0xcf, 0xac, 0x63, - 0x8a, 0x44, 0x6b, 0xae, 0xd2, 0x8a, 0x75, 0x52, 0x4e, 0x1a, 0x9d, 0x71, 0x51, 0x48, 0xac, 0xa8, - 0xb5, 0x5a, 0x16, 0xb6, 0x6d, 0x6e, 0xb8, 0xc4, 0x23, 0xba, 0x00, 0xa9, 0x6e, 0x6f, 0x4b, 0x15, - 0x56, 0x22, 0x7b, 0xf6, 0xce, 0x61, 0x73, 0x5e, 0xe8, 0x06, 0x9f, 0xf5, 0xc9, 0x6e, 0x6f, 0x8b, - 0x68, 0xca, 0xdd, 0x90, 0x1b, 0xd2, 0x98, 0xec, 0x75, 0xaf, 0x1d, 0xf4, 0xe2, 0x0f, 0xde, 0x03, - 0xb5, 0x6b, 0xe9, 0xa6, 0xa5, 0x3b, 0xfb, 0xf4, 0x34, 0x5e, 0x4c, 0x91, 0x44, 0xc5, 0x3a, 0x2f, - 0x97, 0xaf, 0x41, 0xb1, 0x41, 0x63, 0x08, 0xaf, 0xe5, 0xe7, 0xbc, 0xf6, 0x45, 0xc2, 0xdb, 0x37, - 0xb2, 0x65, 0xd1, 0x81, 0x96, 0x55, 0x57, 0x46, 0x6a, 0xe6, 0xa3, 0x87, 0xd3, 0xcc, 0xe0, 0xea, - 0xf6, 0xc7, 0xc7, 0x02, 0x93, 0x92, 0x7b, 0x3d, 0x3e, 0x93, 0x35, 0xae, 0x52, 0x86, 0xa5, 0x07, - 0x4a, 0x07, 0x2f, 0xa2, 0xa5, 0x10, 0xd3, 0x59, 0x0a, 0x9d, 0x3e, 0xf2, 0x93, 0x90, 0x5f, 0xd7, - 0x2c, 0xa7, 0x81, 0x9d, 0xcb, 0x58, 0x6b, 0x61, 0x2b, 0xb8, 0xca, 0xe6, 0xc5, 0x2a, 0x8b, 0x20, - 0x4e, 0x97, 0x52, 0xb6, 0xca, 0xd0, 0xdf, 0xf2, 0x2e, 0xc4, 0xe9, 0x69, 0x5c, 0x77, 0x05, 0xe6, - 0x1c, 0x6c, 0x05, 0x26, 0xf6, 0x73, 0xdf, 0xc1, 0xb6, 0xc8, 0x60, 0xd1, 0x07, 0xf4, 0x98, 0x58, - 0x47, 0x63, 0x07, 0xaf, 0xa3, 0x5c, 0x09, 0xf9, 0x6a, 0xda, 0x86, 0x54, 0x95, 0x98, 0xdf, 0xa5, - 0x45, 0xb7, 0x21, 0x11, 0xaf, 0x21, 0x68, 0x05, 0x8a, 0x5d, 0xcd, 0x72, 0xe8, 0x87, 0x4c, 0xbb, - 0xb4, 0x17, 0x5c, 0xcf, 0xe7, 0x06, 0x67, 0x5d, 0xa0, 0xb3, 0xfc, 0x2d, 0xf9, 0xae, 0xbf, 0x50, - 0xfe, 0xa3, 0x38, 0x24, 0xb9, 0x30, 0x9e, 0x82, 0x14, 0x17, 0x2b, 0xd7, 0xcc, 0xbb, 0x16, 0x06, - 0x17, 0xa3, 0x05, 0x77, 0xd1, 0xe0, 0x78, 0x82, 0x07, 0xdd, 0x0f, 0xe9, 0xe6, 0xae, 0xa6, 0x1b, - 0xaa, 0xde, 0xe2, 0x0e, 0x60, 0xf6, 0xb5, 0x57, 0xe7, 0x52, 0x35, 0x52, 0xb6, 0xb4, 0xa8, 0xa4, - 0x68, 0xe5, 0x52, 0x8b, 0xac, 0xfc, 0xbb, 0x58, 0xdf, 0xd9, 0x75, 0xf8, 0xec, 0xe2, 0x4f, 0xe8, - 0x09, 0x88, 0x13, 0x85, 0xe0, 0x9f, 0xb9, 0x96, 0x06, 0x9c, 0x79, 0x37, 0x7b, 0x53, 0x4d, 0x93, - 0x17, 0x7f, 0xe0, 0x0f, 0xe6, 0x22, 0x0a, 0xe5, 0x40, 0x35, 0xc8, 0xb7, 0x35, 0xdb, 0x51, 0xe9, - 0xaa, 0x45, 0x5e, 0x9f, 0xa0, 0x10, 0xc7, 0x06, 0x05, 0xc2, 0x05, 0xcb, 0x9b, 0x9e, 0x25, 0x5c, - 0xac, 0xa8, 0x85, 0x4e, 0x82, 0x44, 0x41, 0x9a, 0x66, 0xa7, 0xa3, 0x3b, 0xcc, 0x97, 0x4a, 0x52, - 0xb9, 0x17, 0x48, 0x79, 0x8d, 0x16, 0x53, 0x8f, 0xea, 0x38, 0x64, 0xe8, 0x87, 0x75, 0x94, 0x84, - 0x1d, 0x01, 0x4f, 0x93, 0x02, 0x5a, 0x79, 0x02, 0x8a, 0x9e, 0x6d, 0x64, 0x24, 0x69, 0x86, 0xe2, - 0x15, 0x53, 0xc2, 0x87, 0x61, 0xda, 0xc0, 0x7b, 0xf4, 0x50, 0x7a, 0x80, 0x3a, 0x43, 0xa9, 0x11, - 0xa9, 0xbb, 0x1a, 0xe4, 0xb8, 0x0f, 0x0a, 0x4d, 0x21, 0x7c, 0x46, 0x0b, 0x94, 0x36, 0xef, 0x96, - 0x52, 0xb2, 0x63, 0x90, 0xd6, 0xba, 0x5d, 0x46, 0x90, 0xe5, 0xb6, 0xb1, 0xdb, 0xa5, 0x55, 0xa7, - 0x61, 0x92, 0xf6, 0xd1, 0xc2, 0x76, 0xaf, 0xed, 0x70, 0x90, 0x1c, 0xa5, 0x29, 0x92, 0x0a, 0x85, - 0x95, 0x53, 0xda, 0x7b, 0x20, 0x8f, 0xaf, 0xeb, 0x2d, 0x6c, 0x34, 0x31, 0xa3, 0xcb, 0x53, 0xba, - 0x9c, 0x28, 0xa4, 0x44, 0xa7, 0xc0, 0xb5, 0x79, 0xaa, 0xb0, 0xc7, 0x05, 0x86, 0x27, 0xca, 0x2b, - 0xac, 0x58, 0x9e, 0x81, 0xf8, 0xa2, 0xe6, 0x68, 0xc4, 0xa9, 0x70, 0xf6, 0xd8, 0x22, 0x93, 0x53, - 0xc8, 0x4f, 0xf9, 0x1b, 0x51, 0x88, 0x5f, 0x35, 0x1d, 0x8c, 0x1e, 0xf5, 0x39, 0x7c, 0x85, 0x61, - 0xfa, 0xdc, 0xd0, 0x77, 0x0c, 0xdc, 0x5a, 0xb1, 0x77, 0x7c, 0xb7, 0x60, 0x78, 0xea, 0x14, 0x0d, - 0xa8, 0xd3, 0x34, 0x24, 0x2c, 0xb3, 0x67, 0xb4, 0xc4, 0xe9, 0x69, 0xfa, 0x80, 0xea, 0x90, 0x76, - 0xb5, 0x24, 0x1e, 0xa6, 0x25, 0x45, 0xa2, 0x25, 0x44, 0x87, 0x79, 0x81, 0x92, 0xda, 0xe2, 0xca, - 0x52, 0x85, 0x8c, 0x6b, 0xbc, 0xb8, 0xb6, 0x8d, 0xa7, 0xb0, 0x1e, 0x1b, 0x59, 0x48, 0xdc, 0xb1, - 0x77, 0x85, 0xc7, 0x34, 0x4e, 0x72, 0x2b, 0xb8, 0xf4, 0x02, 0x6a, 0xc5, 0x6f, 0xe4, 0x48, 0xd1, - 0x7e, 0x79, 0x6a, 0xc5, 0x6e, 0xe5, 0xb8, 0x13, 0x32, 0xb6, 0xbe, 0x63, 0x68, 0x4e, 0xcf, 0xc2, - 0x5c, 0xf3, 0xbc, 0x02, 0xf9, 0x8b, 0x11, 0x48, 0x32, 0x4d, 0xf6, 0xc9, 0x2d, 0x32, 0x5c, 0x6e, - 0xd1, 0x51, 0x72, 0x8b, 0xdd, 0xbe, 0xdc, 0x2a, 0x00, 0x6e, 0x63, 0x6c, 0x7e, 0x51, 0xc2, 0x10, - 0x6f, 0x81, 0x35, 0xb1, 0xa1, 0xef, 0xf0, 0x89, 0xea, 0x63, 0x92, 0xff, 0x4b, 0x84, 0x38, 0xae, - 0xbc, 0x1e, 0x55, 0x20, 0x2f, 0xda, 0xa5, 0x6e, 0xb7, 0xb5, 0x1d, 0xae, 0x3b, 0x77, 0x8d, 0x6c, - 0xdc, 0xc5, 0xb6, 0xb6, 0xa3, 0x64, 0x79, 0x7b, 0xc8, 0xc3, 0xf0, 0x71, 0x88, 0x8e, 0x18, 0x87, - 0xc0, 0xc0, 0xc7, 0x6e, 0x6f, 0xe0, 0x03, 0x43, 0x14, 0xef, 0x1f, 0xa2, 0xcf, 0x44, 0x69, 0xf0, - 0xd2, 0x35, 0x6d, 0xad, 0xfd, 0x56, 0xcc, 0x88, 0xe3, 0x90, 0xe9, 0x9a, 0x6d, 0x95, 0xd5, 0xb0, - 0xaf, 0x0a, 0xd2, 0x5d, 0xb3, 0xad, 0x0c, 0x0c, 0x7b, 0xe2, 0x0d, 0x9a, 0x2e, 0xc9, 0x37, 0x40, - 0x6a, 0xa9, 0x7e, 0xa9, 0x59, 0x90, 0x63, 0xa2, 0xe0, 0x6b, 0xd9, 0xc3, 0x44, 0x06, 0x74, 0x71, - 0x8c, 0x0c, 0xae, 0xbd, 0xac, 0xd9, 0x8c, 0x52, 0xe1, 0x74, 0x84, 0x83, 0x99, 0xfe, 0x61, 0x51, - 0xaf, 0x5f, 0x2d, 0x15, 0x4e, 0x27, 0xff, 0x4c, 0x04, 0x60, 0x99, 0x48, 0x96, 0xf6, 0x97, 0xac, - 0x42, 0x36, 0x6d, 0x82, 0x1a, 0x78, 0xf3, 0xec, 0xa8, 0x41, 0xe3, 0xef, 0xcf, 0xd9, 0xfe, 0x76, - 0xd7, 0x20, 0xef, 0x29, 0xa3, 0x8d, 0x45, 0x63, 0x66, 0x0f, 0xf0, 0xa8, 0x1b, 0xd8, 0x51, 0x72, - 0xd7, 0x7d, 0x4f, 0xf2, 0x3f, 0x8f, 0x40, 0x86, 0xb6, 0x69, 0x05, 0x3b, 0x5a, 0x60, 0x0c, 0x23, - 0xb7, 0x3f, 0x86, 0x77, 0x01, 0x30, 0x18, 0x5b, 0x7f, 0x09, 0x73, 0xcd, 0xca, 0xd0, 0x92, 0x86, - 0xfe, 0x12, 0x46, 0xe7, 0x5d, 0x81, 0xc7, 0x0e, 0x16, 0xb8, 0xf0, 0xb8, 0xb9, 0xd8, 0x8f, 0x42, - 0x8a, 0x5e, 0x2c, 0xb6, 0x67, 0x73, 0x27, 0x3a, 0x69, 0xf4, 0x3a, 0x1b, 0x7b, 0xb6, 0xfc, 0x22, - 0xa4, 0x36, 0xf6, 0x58, 0x2e, 0xe4, 0x38, 0x64, 0x2c, 0xd3, 0xe4, 0x6b, 0x32, 0xf3, 0x85, 0xd2, - 0xa4, 0x80, 0x2e, 0x41, 0x22, 0xfe, 0x8f, 0x7a, 0xf1, 0xbf, 0x97, 0xc0, 0x88, 0x8d, 0x95, 0xc0, - 0x38, 0xfd, 0x1f, 0x23, 0x90, 0xf5, 0xd9, 0x07, 0xf4, 0x08, 0xdc, 0x51, 0x5d, 0x5e, 0xab, 0x3d, - 0xa3, 0x2e, 0x2d, 0xaa, 0x17, 0x97, 0x2b, 0x97, 0xbc, 0xef, 0xe6, 0x4a, 0x47, 0x6e, 0xde, 0x9a, - 0x47, 0x3e, 0xda, 0x4d, 0x83, 0x6e, 0x11, 0xa1, 0x33, 0x30, 0x1d, 0x64, 0xa9, 0x54, 0x1b, 0xf5, - 0xd5, 0x0d, 0x29, 0x52, 0xba, 0xe3, 0xe6, 0xad, 0xf9, 0x49, 0x1f, 0x47, 0x65, 0xcb, 0xc6, 0x86, - 0x33, 0xc8, 0x50, 0x5b, 0x5b, 0x59, 0x59, 0xda, 0x90, 0xa2, 0x03, 0x0c, 0xdc, 0x60, 0x9f, 0x82, - 0xc9, 0x20, 0xc3, 0xea, 0xd2, 0xb2, 0x14, 0x2b, 0xa1, 0x9b, 0xb7, 0xe6, 0x0b, 0x3e, 0xea, 0x55, - 0xbd, 0x5d, 0x4a, 0xbf, 0xef, 0xe3, 0xb3, 0x13, 0x9f, 0xfa, 0x07, 0xb3, 0x11, 0xd2, 0xb3, 0x7c, - 0xc0, 0x46, 0xa0, 0x07, 0xe1, 0x68, 0x63, 0xe9, 0xd2, 0x6a, 0x7d, 0x51, 0x5d, 0x69, 0x5c, 0x12, - 0x9b, 0x2c, 0xa2, 0x77, 0xc5, 0x9b, 0xb7, 0xe6, 0xb3, 0xbc, 0x4b, 0xa3, 0xa8, 0xd7, 0x95, 0xfa, - 0xd5, 0xb5, 0x8d, 0xba, 0x14, 0x61, 0xd4, 0xeb, 0x16, 0xbe, 0x6e, 0x3a, 0xec, 0xe6, 0xc1, 0x87, - 0xe1, 0xd8, 0x10, 0x6a, 0xb7, 0x63, 0x93, 0x37, 0x6f, 0xcd, 0xe7, 0xd7, 0x2d, 0xcc, 0xe6, 0x0f, - 0xe5, 0x58, 0x80, 0x99, 0x41, 0x8e, 0xb5, 0xf5, 0xb5, 0x46, 0x65, 0x59, 0x9a, 0x2f, 0x49, 0x37, - 0x6f, 0xcd, 0xe7, 0x84, 0x31, 0x24, 0xf4, 0x5e, 0xcf, 0xde, 0xac, 0x68, 0xe7, 0xa3, 0xa9, 0x40, - 0x2e, 0x8f, 0xc5, 0x11, 0x5d, 0xcd, 0xd2, 0x3a, 0xa3, 0xc3, 0x9d, 0xc1, 0x44, 0xec, 0x88, 0x08, - 0x28, 0x64, 0xdb, 0x58, 0x7e, 0x39, 0x0a, 0x45, 0xd7, 0xbf, 0x5e, 0xa7, 0x2f, 0x45, 0x8f, 0xfa, - 0x53, 0x33, 0xd9, 0x91, 0x2b, 0x1b, 0xa3, 0x16, 0x99, 0x9b, 0xb7, 0x41, 0x5a, 0xf8, 0x69, 0xdc, - 0x82, 0xcc, 0x0f, 0xf2, 0xd5, 0x39, 0x05, 0x67, 0x75, 0x39, 0xd0, 0xd3, 0x90, 0x71, 0xed, 0x89, - 0x7b, 0x95, 0xcf, 0x68, 0x03, 0xc4, 0xf9, 0x3d, 0x1e, 0xf4, 0xa4, 0x17, 0x49, 0xc4, 0x47, 0xc5, - 0x26, 0x57, 0x19, 0x01, 0x67, 0x16, 0xf4, 0xf2, 0x12, 0x9f, 0x89, 0xbc, 0xf7, 0xf4, 0x1a, 0x84, - 0x3d, 0x95, 0x05, 0x57, 0xcc, 0x51, 0x49, 0x77, 0xb4, 0xbd, 0x2a, 0x8d, 0xaf, 0x8e, 0x42, 0x8a, - 0x54, 0xee, 0xf0, 0xaf, 0xbc, 0x63, 0x4a, 0xb2, 0xa3, 0xed, 0x5d, 0xd2, 0xec, 0x2b, 0xf1, 0x74, - 0x4c, 0x8a, 0xcb, 0xbf, 0x12, 0x81, 0x42, 0xb0, 0x8f, 0xe8, 0x01, 0x40, 0x84, 0x43, 0xdb, 0xc1, - 0x2a, 0xb1, 0x3a, 0x54, 0x58, 0x02, 0xb7, 0xd8, 0xd1, 0xf6, 0x2a, 0x3b, 0x78, 0xb5, 0xd7, 0xa1, - 0x0d, 0xb0, 0x91, 0x02, 0x92, 0x20, 0x16, 0xe3, 0xc4, 0x85, 0x79, 0x6c, 0xf0, 0x62, 0x3f, 0x4e, - 0x50, 0xcd, 0x13, 0xeb, 0xf6, 0xa1, 0x3f, 0x98, 0x8b, 0xb0, 0x14, 0x7a, 0x81, 0x81, 0xba, 0x7b, - 0xff, 0x81, 0xfe, 0xc4, 0x82, 0xfd, 0x91, 0x9f, 0x86, 0x62, 0x9f, 0x50, 0x91, 0x0c, 0x79, 0x9e, - 0x2d, 0xa0, 0x7b, 0x26, 0xcc, 0x6f, 0xce, 0x28, 0x59, 0x96, 0x15, 0xa0, 0xfb, 0xcc, 0xe5, 0xf4, - 0x17, 0x5e, 0x99, 0x8b, 0xd0, 0x44, 0xfa, 0x03, 0x90, 0x0f, 0x88, 0x55, 0x64, 0xf0, 0x22, 0x5e, - 0x06, 0xcf, 0x23, 0x7e, 0x01, 0x72, 0xc4, 0x80, 0xe2, 0x16, 0xa7, 0xbd, 0x1f, 0x8a, 0xcc, 0xc0, - 0xf7, 0x0b, 0x9c, 0x79, 0x58, 0x2b, 0x42, 0xea, 0xb2, 0x70, 0xb9, 0x82, 0xb2, 0xcf, 0x0a, 0xaa, - 0x4b, 0x9a, 0x5d, 0x7d, 0xc7, 0xa7, 0x5e, 0x9b, 0x8d, 0xbc, 0x39, 0x13, 0xf4, 0x2b, 0xef, 0x80, - 0xe3, 0xbe, 0x4a, 0x6d, 0xab, 0xa9, 0x07, 0xb2, 0x11, 0x45, 0x9f, 0xa6, 0x91, 0xca, 0xb0, 0xac, - 0xc2, 0x81, 0xb9, 0x8d, 0x83, 0x13, 0x69, 0xa5, 0x83, 0x2d, 0x45, 0x78, 0xc2, 0x63, 0x78, 0xee, - 0xf2, 0xff, 0xa4, 0x21, 0xa5, 0xe0, 0xf7, 0xf4, 0xb0, 0xed, 0xa0, 0xb3, 0x10, 0xc7, 0xcd, 0x5d, - 0x73, 0x58, 0xaa, 0x88, 0x74, 0x6e, 0x81, 0xd3, 0xd5, 0x9b, 0xbb, 0xe6, 0xe5, 0x09, 0x85, 0xd2, - 0xa2, 0x73, 0x90, 0xd8, 0x6e, 0xf7, 0x78, 0xfe, 0xa2, 0xcf, 0x62, 0xf8, 0x99, 0x2e, 0x12, 0xa2, - 0xcb, 0x13, 0x0a, 0xa3, 0x26, 0xaf, 0xa2, 0xf7, 0xa4, 0xc6, 0x0e, 0x7e, 0xd5, 0x92, 0xb1, 0x4d, - 0x5f, 0x45, 0x68, 0x51, 0x15, 0x40, 0x37, 0x74, 0x47, 0xa5, 0xb1, 0x3d, 0xf7, 0x10, 0xef, 0x1e, - 0xcd, 0xa9, 0x3b, 0x34, 0x1b, 0x70, 0x79, 0x42, 0xc9, 0xe8, 0xe2, 0x81, 0x34, 0xf7, 0x3d, 0x3d, - 0x6c, 0xed, 0x73, 0xc7, 0x70, 0x64, 0x73, 0xdf, 0x41, 0x88, 0x48, 0x73, 0x29, 0x35, 0xaa, 0x43, - 0x96, 0x7e, 0x10, 0xcb, 0x26, 0x31, 0xbf, 0xb3, 0x53, 0x1e, 0xc5, 0x5c, 0x25, 0xa4, 0x74, 0x5e, - 0x5f, 0x9e, 0x50, 0x60, 0xcb, 0x7d, 0x22, 0x96, 0x92, 0xdd, 0xe9, 0xe4, 0xec, 0xf1, 0x9b, 0x0a, - 0xe7, 0x46, 0x61, 0xd0, 0x8b, 0x9d, 0x36, 0xf6, 0x2e, 0x4f, 0x28, 0xa9, 0x26, 0xfb, 0x49, 0xfa, - 0xdf, 0xc2, 0x6d, 0xfd, 0x3a, 0xb6, 0x08, 0x7f, 0xe6, 0xe0, 0xfe, 0x2f, 0x32, 0x4a, 0x8a, 0x90, - 0x69, 0x89, 0x07, 0x62, 0x6d, 0xb1, 0xd1, 0xe2, 0xdd, 0x80, 0x41, 0x63, 0x1d, 0x18, 0x67, 0xa3, - 0x25, 0x3a, 0x91, 0xc6, 0xfc, 0x37, 0x7a, 0xc2, 0xf5, 0x5c, 0xb3, 0x83, 0xce, 0x62, 0xa0, 0x03, - 0x2c, 0x87, 0x31, 0x21, 0x3c, 0x58, 0xb4, 0x0a, 0x85, 0xb6, 0x6e, 0x3b, 0xaa, 0x6d, 0x68, 0x5d, - 0x7b, 0xd7, 0x74, 0x6c, 0x9a, 0x0c, 0xc8, 0x9e, 0xbd, 0x6f, 0x14, 0xc2, 0xb2, 0x6e, 0x3b, 0x0d, - 0x41, 0x7c, 0x79, 0x42, 0xc9, 0xb7, 0xfd, 0x05, 0x04, 0xcf, 0xdc, 0xde, 0xc6, 0x96, 0x0b, 0x48, - 0x93, 0x06, 0x07, 0xe0, 0xad, 0x11, 0x6a, 0xc1, 0x4f, 0xf0, 0x4c, 0x7f, 0x01, 0xfa, 0x41, 0x98, - 0x6a, 0x9b, 0x5a, 0xcb, 0x85, 0x53, 0x9b, 0xbb, 0x3d, 0xe3, 0x1a, 0xcd, 0x30, 0x64, 0xcf, 0x9e, - 0x1a, 0xd9, 0x48, 0x53, 0x6b, 0x09, 0x88, 0x1a, 0x61, 0xb8, 0x3c, 0xa1, 0x4c, 0xb6, 0xfb, 0x0b, - 0xd1, 0xbb, 0x60, 0x5a, 0xeb, 0x76, 0xdb, 0xfb, 0xfd, 0xe8, 0x45, 0x8a, 0x7e, 0x7a, 0x14, 0x7a, - 0x85, 0xf0, 0xf4, 0xc3, 0x23, 0x6d, 0xa0, 0x14, 0x6d, 0x80, 0xd4, 0xb5, 0x30, 0xfd, 0x82, 0xa7, - 0xcb, 0x5d, 0x18, 0x7a, 0x0d, 0x57, 0xf6, 0xec, 0x89, 0x51, 0xd8, 0xeb, 0x8c, 0x5e, 0x78, 0x3c, - 0x97, 0x27, 0x94, 0x62, 0x37, 0x58, 0xc4, 0x50, 0xcd, 0x26, 0xa6, 0x57, 0x45, 0x71, 0xd4, 0xc9, - 0x30, 0x54, 0x4a, 0x1f, 0x44, 0x0d, 0x14, 0x55, 0x53, 0xfc, 0x04, 0x1e, 0xbf, 0xc7, 0xe5, 0x04, - 0x64, 0x7d, 0x86, 0x05, 0xcd, 0x40, 0x8a, 0x9f, 0x48, 0x10, 0x27, 0xf7, 0xf8, 0xa3, 0x5c, 0x80, - 0x9c, 0xdf, 0x98, 0xc8, 0x1f, 0x88, 0xb8, 0x9c, 0xf4, 0xc3, 0xfa, 0x99, 0x60, 0x4a, 0x31, 0xe3, - 0x65, 0x0b, 0xef, 0x11, 0xab, 0x88, 0xa8, 0x67, 0xbb, 0x4c, 0x39, 0x5a, 0xc8, 0x17, 0x31, 0x34, - 0x07, 0xd9, 0xee, 0xd9, 0xae, 0x4b, 0x12, 0xa3, 0x24, 0xd0, 0x3d, 0xdb, 0x15, 0x04, 0x77, 0x43, - 0x8e, 0xf4, 0x54, 0xf5, 0x7b, 0x1b, 0x19, 0x25, 0x4b, 0xca, 0x38, 0x89, 0xfc, 0x6f, 0xa3, 0x20, - 0xf5, 0x1b, 0x20, 0x37, 0xd7, 0x18, 0x39, 0x74, 0xae, 0xf1, 0x58, 0x7f, 0x96, 0xd3, 0x4b, 0x6c, - 0x2e, 0x83, 0xe4, 0xe5, 0xe7, 0xd8, 0x42, 0x30, 0xda, 0x7b, 0xea, 0x73, 0xf3, 0x94, 0x62, 0xb3, - 0xcf, 0xef, 0xbb, 0x18, 0xd8, 0x93, 0x11, 0x17, 0x81, 0xf7, 0x0f, 0xb1, 0xeb, 0x2f, 0x6c, 0x76, - 0x5b, 0x9a, 0x83, 0x45, 0xbe, 0xc4, 0xb7, 0x3d, 0x73, 0x3f, 0x14, 0xb5, 0x6e, 0x57, 0xb5, 0x1d, - 0xcd, 0xc1, 0x7c, 0x59, 0x4f, 0xb0, 0xb4, 0xa1, 0xd6, 0xed, 0x36, 0x48, 0x29, 0x5b, 0xd6, 0xef, - 0x83, 0x02, 0xb1, 0xc9, 0xba, 0xd6, 0x56, 0x79, 0xf6, 0x20, 0xc9, 0x56, 0x7f, 0x5e, 0x7a, 0x99, - 0x16, 0xca, 0x2d, 0x77, 0xc4, 0xa9, 0x3d, 0x76, 0xc3, 0xaf, 0x88, 0x2f, 0xfc, 0x42, 0xfc, 0xc6, - 0x03, 0x26, 0x1f, 0x71, 0x49, 0xc4, 0xf0, 0xac, 0xef, 0x34, 0x0d, 0xd5, 0xae, 0xb3, 0x44, 0x48, - 0x5a, 0x61, 0x0f, 0xf2, 0x7b, 0xa3, 0x30, 0x39, 0x60, 0xb9, 0x87, 0xa6, 0xc3, 0xbd, 0xb8, 0x33, - 0x7a, 0xa8, 0xb8, 0xf3, 0x99, 0x60, 0xba, 0xd7, 0xb7, 0xf2, 0x1d, 0x1f, 0x10, 0x32, 0xb3, 0x9b, - 0x44, 0xa1, 0x39, 0x88, 0x2f, 0x23, 0x4c, 0xd5, 0x7c, 0x13, 0xa6, 0xb7, 0xf6, 0x5f, 0xd2, 0x0c, - 0x47, 0x37, 0xb0, 0x3a, 0x30, 0x6a, 0x83, 0x4b, 0xe9, 0x8a, 0x6e, 0x6f, 0xe1, 0x5d, 0xed, 0xba, - 0x6e, 0x8a, 0x66, 0x4d, 0xb9, 0xfc, 0x5e, 0xd2, 0x57, 0x56, 0xa0, 0x10, 0x5c, 0x7a, 0x50, 0x01, - 0xa2, 0xce, 0x1e, 0xef, 0x7f, 0xd4, 0xd9, 0x43, 0x0f, 0xf3, 0xfc, 0x50, 0x94, 0xe6, 0x87, 0x06, - 0x5f, 0xc4, 0xf9, 0xbc, 0xe4, 0x90, 0x2c, 0xbb, 0xb3, 0xc1, 0x5d, 0x8e, 0xfa, 0x51, 0xe5, 0x53, - 0x50, 0xec, 0x5b, 0x6f, 0x46, 0x65, 0x0b, 0xe5, 0x22, 0xe4, 0x03, 0x8b, 0x8b, 0x7c, 0x04, 0xa6, - 0x87, 0xad, 0x15, 0xf2, 0xae, 0x5b, 0x1e, 0xb0, 0xf9, 0xe8, 0x1c, 0xa4, 0xdd, 0xc5, 0x62, 0x48, - 0x76, 0x82, 0xf6, 0x42, 0x10, 0x2b, 0x2e, 0x69, 0x20, 0xc9, 0x1d, 0x0d, 0x24, 0xb9, 0xe5, 0x77, - 0xc3, 0xcc, 0xa8, 0x85, 0xa0, 0xaf, 0x1b, 0x71, 0x57, 0x0b, 0x8f, 0x40, 0x92, 0xdf, 0x07, 0x17, - 0xa5, 0xdb, 0x3a, 0xfc, 0x89, 0x68, 0x27, 0x5b, 0x14, 0x62, 0x6c, 0xb7, 0x87, 0x3e, 0xc8, 0x2a, - 0x1c, 0x1b, 0xb9, 0x18, 0x8c, 0xde, 0x20, 0x62, 0x40, 0x7c, 0x83, 0xa8, 0x29, 0x9a, 0x63, 0xd3, - 0xbe, 0x8a, 0x43, 0x10, 0xec, 0x49, 0xfe, 0x50, 0x0c, 0x8e, 0x0c, 0x5f, 0x12, 0xd0, 0x3c, 0xe4, - 0x88, 0xdf, 0xed, 0x04, 0x5d, 0x74, 0xe8, 0x68, 0x7b, 0x1b, 0xdc, 0x3f, 0xe7, 0x09, 0xf6, 0xa8, - 0x9b, 0x60, 0x47, 0x9b, 0x30, 0xd9, 0x36, 0x9b, 0x5a, 0x5b, 0xf5, 0x69, 0x3c, 0x57, 0xf6, 0x7b, - 0x06, 0x84, 0x5d, 0x67, 0xb7, 0x44, 0xb7, 0x06, 0x94, 0xbe, 0x48, 0x31, 0x96, 0x5d, 0xcd, 0x47, - 0x8b, 0x90, 0xed, 0x78, 0x8a, 0x7c, 0x08, 0x65, 0xf7, 0xb3, 0xf9, 0x86, 0x24, 0x31, 0x74, 0x3b, - 0x28, 0x79, 0x68, 0x13, 0x3d, 0x6a, 0x67, 0x25, 0x35, 0x72, 0x67, 0x65, 0xd8, 0x36, 0x46, 0x7a, - 0xf8, 0x36, 0xc6, 0xfb, 0xfc, 0x43, 0x13, 0x58, 0x44, 0x07, 0x77, 0x36, 0x50, 0x03, 0xa6, 0x39, - 0x7f, 0x2b, 0x20, 0xfb, 0xe8, 0xb8, 0x86, 0x06, 0x09, 0xf6, 0xd1, 0x62, 0x8f, 0xdd, 0x9e, 0xd8, - 0x85, 0x2d, 0x8d, 0xfb, 0x6c, 0xe9, 0xff, 0x63, 0x43, 0xf1, 0xef, 0x33, 0x90, 0x56, 0xb0, 0xdd, - 0x25, 0x0b, 0x27, 0xaa, 0x42, 0x06, 0xef, 0x35, 0x71, 0xd7, 0xf1, 0xb6, 0x2f, 0x87, 0x05, 0x03, - 0x8c, 0xba, 0x2e, 0x28, 0x89, 0x27, 0xee, 0xb2, 0xa1, 0x47, 0x79, 0xb0, 0x35, 0x3a, 0x6e, 0xe2, - 0xec, 0xfe, 0x68, 0xeb, 0xbc, 0x88, 0xb6, 0x62, 0x23, 0x9d, 0x6f, 0xc6, 0xd5, 0x17, 0x6e, 0x3d, - 0xca, 0xc3, 0xad, 0x78, 0xc8, 0xcb, 0x02, 0xf1, 0x56, 0x2d, 0x10, 0x6f, 0x25, 0x43, 0xba, 0x39, - 0x22, 0xe0, 0x3a, 0x2f, 0x02, 0xae, 0x54, 0x48, 0x8b, 0xfb, 0x22, 0xae, 0x8b, 0xc1, 0x88, 0x2b, - 0x3d, 0xc2, 0x80, 0x08, 0xee, 0x91, 0x21, 0xd7, 0x53, 0xbe, 0x90, 0x2b, 0x33, 0x32, 0xde, 0x61, - 0x20, 0x43, 0x62, 0xae, 0x5a, 0x20, 0xe6, 0x82, 0x10, 0x19, 0x8c, 0x08, 0xba, 0x7e, 0xc0, 0x1f, - 0x74, 0x65, 0x47, 0xc6, 0x6d, 0x7c, 0xbc, 0x87, 0x45, 0x5d, 0x4f, 0xba, 0x51, 0x57, 0x6e, 0x64, - 0xd8, 0xc8, 0xfb, 0xd0, 0x1f, 0x76, 0xad, 0x0d, 0x84, 0x5d, 0x79, 0xfe, 0x07, 0x18, 0x46, 0x41, - 0x84, 0xc4, 0x5d, 0x6b, 0x03, 0x71, 0x57, 0x21, 0x04, 0x30, 0x24, 0xf0, 0xfa, 0xa1, 0xe1, 0x81, - 0xd7, 0xe8, 0xd0, 0x88, 0x37, 0x73, 0xbc, 0xc8, 0x4b, 0x1d, 0x11, 0x79, 0xb1, 0xe8, 0xe8, 0x81, - 0x91, 0xf0, 0x63, 0x87, 0x5e, 0x9b, 0x43, 0x42, 0x2f, 0x16, 0x24, 0x9d, 0x1c, 0x09, 0x3e, 0x46, - 0xec, 0xb5, 0x39, 0x24, 0xf6, 0x42, 0xa1, 0xb0, 0x87, 0x09, 0xbe, 0x12, 0x52, 0x52, 0x3e, 0x45, - 0x5c, 0xdf, 0x3e, 0x3b, 0x45, 0xfc, 0x07, 0x6c, 0x59, 0xa6, 0x25, 0x4e, 0xdc, 0xd2, 0x07, 0xf9, - 0x24, 0x71, 0xc6, 0x3d, 0x9b, 0x74, 0x40, 0xa0, 0x46, 0xfd, 0x34, 0x9f, 0x1d, 0x92, 0xbf, 0x10, - 0xf1, 0x78, 0xa9, 0x0f, 0xeb, 0x77, 0xe4, 0x33, 0xdc, 0x91, 0xf7, 0x85, 0x6f, 0xd1, 0x60, 0xf8, - 0x36, 0x07, 0x59, 0xe2, 0x7f, 0xf5, 0x45, 0x66, 0x5a, 0xd7, 0x8d, 0xcc, 0xc4, 0x51, 0x03, 0x16, - 0xe4, 0xf1, 0x65, 0x85, 0xed, 0xf0, 0x14, 0xdd, 0x63, 0x17, 0x2c, 0xa6, 0x40, 0x0f, 0xc1, 0x94, - 0x8f, 0xd6, 0xf5, 0xeb, 0x58, 0x98, 0x22, 0xb9, 0xd4, 0x15, 0xee, 0xe0, 0xfd, 0x8b, 0x88, 0x27, - 0x21, 0x2f, 0xa4, 0x1b, 0x16, 0x7d, 0x45, 0xde, 0xa0, 0xe8, 0x2b, 0x7a, 0xdb, 0xd1, 0x97, 0xdf, - 0x4f, 0x8d, 0x05, 0xfd, 0xd4, 0xbf, 0x8c, 0x78, 0x63, 0xe2, 0xc6, 0x52, 0x4d, 0xb3, 0x85, 0xb9, - 0xe7, 0x48, 0x7f, 0x13, 0xa7, 0xa2, 0x6d, 0xee, 0x70, 0xff, 0x90, 0xfc, 0x24, 0x54, 0xee, 0xc2, - 0x91, 0xe1, 0xeb, 0x82, 0xeb, 0x74, 0x26, 0xfc, 0xe7, 0x82, 0xf9, 0x61, 0xd9, 0xa4, 0x77, 0x58, - 0xd6, 0xfd, 0xd2, 0x2e, 0xe5, 0xfb, 0xd2, 0x0e, 0x3d, 0x01, 0x19, 0x9a, 0x11, 0x55, 0xcd, 0xae, - 0xf8, 0x73, 0x1d, 0xc7, 0x47, 0x1f, 0x94, 0xb5, 0xe9, 0x11, 0x3e, 0x76, 0xb8, 0xd6, 0xf3, 0x18, - 0x32, 0x01, 0x8f, 0xe1, 0x4e, 0xc8, 0x90, 0xd6, 0xb3, 0x6b, 0xa7, 0x81, 0x7f, 0xa6, 0x29, 0x0a, - 0xe4, 0x77, 0x01, 0x1a, 0x5c, 0x24, 0xd0, 0x65, 0x48, 0xe2, 0xeb, 0xf4, 0x0e, 0x3f, 0x76, 0x00, - 0xf1, 0xc8, 0xa0, 0x6b, 0x4a, 0xaa, 0xab, 0x33, 0x44, 0xc8, 0xdf, 0x7c, 0x75, 0x4e, 0x62, 0xd4, - 0x0f, 0xba, 0x5f, 0x25, 0x28, 0x9c, 0x5f, 0xfe, 0xcf, 0x51, 0x12, 0xc0, 0x04, 0x16, 0x90, 0xa1, - 0xb2, 0x1d, 0xb6, 0x75, 0x38, 0x9e, 0xbc, 0x67, 0x01, 0x76, 0x34, 0x5b, 0xbd, 0xa1, 0x19, 0x0e, - 0x6e, 0x71, 0xa1, 0xfb, 0x4a, 0x50, 0x09, 0xd2, 0xe4, 0xa9, 0x67, 0xe3, 0x16, 0x0f, 0xa3, 0xdd, - 0x67, 0x5f, 0x3f, 0x53, 0xdf, 0x5b, 0x3f, 0x83, 0x52, 0x4e, 0xf7, 0x49, 0xd9, 0x17, 0x5c, 0x64, - 0xfc, 0xc1, 0x05, 0x3b, 0x30, 0xcc, 0xcf, 0x2d, 0x02, 0x6b, 0x9b, 0x78, 0x46, 0xf7, 0x40, 0xbe, - 0x83, 0x3b, 0x5d, 0xd3, 0x6c, 0xab, 0xcc, 0xdc, 0xb0, 0xfb, 0xe5, 0x73, 0xbc, 0xb0, 0x4e, 0xad, - 0xce, 0x8f, 0x45, 0xbd, 0xf9, 0xe7, 0x05, 0x91, 0xdf, 0x77, 0x02, 0x96, 0x7f, 0x82, 0x66, 0x96, - 0x82, 0x2e, 0x02, 0x6a, 0xf8, 0x4f, 0x93, 0xf4, 0xa8, 0x59, 0x10, 0x0a, 0x3d, 0xae, 0xfd, 0xf0, - 0x4e, 0x9d, 0xb0, 0x62, 0x1b, 0x3d, 0x0f, 0x47, 0xfb, 0x6c, 0x9b, 0x0b, 0x1d, 0x1d, 0xd7, 0xc4, - 0xdd, 0x11, 0x34, 0x71, 0x02, 0xda, 0x13, 0x56, 0xec, 0x7b, 0x9c, 0x75, 0x4b, 0x50, 0x08, 0x7a, - 0x3c, 0x43, 0x87, 0x9f, 0xfe, 0x3d, 0x13, 0x47, 0xd3, 0x0d, 0x35, 0x90, 0x0e, 0xca, 0xb1, 0x42, - 0x9e, 0x64, 0x5a, 0x87, 0x3b, 0x86, 0x7a, 0x3e, 0xe8, 0x71, 0xc8, 0x78, 0x4e, 0x13, 0x93, 0xea, - 0x01, 0xe9, 0x02, 0x8f, 0x56, 0xfe, 0xad, 0x88, 0x07, 0x19, 0x4c, 0x40, 0xd4, 0x21, 0xc9, 0x8e, - 0xc3, 0xf1, 0x43, 0x36, 0x0f, 0x8d, 0xe7, 0x33, 0x2d, 0xb0, 0xb3, 0x72, 0x0a, 0x67, 0x96, 0xdf, - 0x05, 0x49, 0x56, 0x82, 0xb2, 0x90, 0xf2, 0xae, 0xd9, 0x05, 0x48, 0x56, 0x6a, 0xb5, 0xfa, 0xfa, - 0x86, 0x14, 0x41, 0x19, 0x48, 0x54, 0xaa, 0x6b, 0xca, 0x86, 0x14, 0x25, 0xc5, 0x4a, 0xfd, 0x4a, - 0xbd, 0xb6, 0x21, 0xc5, 0xd0, 0x24, 0xe4, 0xd9, 0x6f, 0xf5, 0xe2, 0x9a, 0xb2, 0x52, 0xd9, 0x90, - 0xe2, 0xbe, 0xa2, 0x46, 0x7d, 0x75, 0xb1, 0xae, 0x48, 0x09, 0xf9, 0x11, 0x38, 0x36, 0xd2, 0xcb, - 0xf2, 0xb2, 0x0b, 0x11, 0x5f, 0x76, 0x41, 0xfe, 0x50, 0x14, 0x4a, 0xa3, 0x5d, 0x27, 0x74, 0xa5, - 0xaf, 0xe3, 0x67, 0x0f, 0xe1, 0x77, 0xf5, 0xf5, 0x1e, 0xdd, 0x07, 0x05, 0x0b, 0x6f, 0x63, 0xa7, - 0xb9, 0xcb, 0x5c, 0x39, 0xb6, 0x64, 0xe6, 0x95, 0x3c, 0x2f, 0xa5, 0x4c, 0x36, 0x23, 0x7b, 0x11, - 0x37, 0x1d, 0x95, 0xd9, 0x22, 0x9b, 0xff, 0x61, 0xc5, 0x3c, 0x2b, 0x6d, 0xb0, 0x42, 0xf9, 0xdd, - 0x87, 0x92, 0x65, 0x06, 0x12, 0x4a, 0x7d, 0x43, 0x79, 0x5e, 0x8a, 0x21, 0x04, 0x05, 0xfa, 0x53, - 0x6d, 0xac, 0x56, 0xd6, 0x1b, 0x97, 0xd7, 0x88, 0x2c, 0xa7, 0xa0, 0x28, 0x64, 0x29, 0x0a, 0x13, - 0xf2, 0x03, 0x70, 0x74, 0x84, 0xdf, 0x37, 0xe4, 0x7c, 0xe2, 0xc7, 0x22, 0x7e, 0xea, 0x60, 0xcc, - 0xbf, 0x06, 0x49, 0xdb, 0xd1, 0x9c, 0x9e, 0xcd, 0x85, 0xf8, 0xf8, 0xb8, 0x8e, 0xe0, 0x82, 0xf8, - 0xd1, 0xa0, 0xec, 0x0a, 0x87, 0x91, 0xcf, 0x41, 0x21, 0x58, 0x33, 0x5a, 0x06, 0x9e, 0x12, 0x45, - 0xe5, 0xe7, 0x01, 0x7c, 0xf9, 0x48, 0xf7, 0xa4, 0x57, 0xc4, 0x7f, 0xd2, 0xeb, 0x1c, 0x24, 0xae, - 0x9b, 0xcc, 0x66, 0x0c, 0x9f, 0x38, 0x57, 0x4d, 0x07, 0xfb, 0x92, 0x0f, 0x8c, 0x5a, 0xd6, 0x01, - 0x0d, 0xe6, 0x84, 0x46, 0xbc, 0xe2, 0xa9, 0xe0, 0x2b, 0xee, 0x1e, 0x99, 0x5d, 0x1a, 0xfe, 0xaa, - 0x97, 0x20, 0x41, 0xad, 0xcd, 0xd0, 0x4f, 0x7f, 0xde, 0x09, 0xa0, 0x39, 0x8e, 0xa5, 0x6f, 0xf5, - 0xbc, 0x17, 0xcc, 0x0d, 0xb7, 0x56, 0x15, 0x41, 0x57, 0xbd, 0x93, 0x9b, 0xad, 0x69, 0x8f, 0xd5, - 0x67, 0xba, 0x7c, 0x80, 0xf2, 0x2a, 0x14, 0x82, 0xbc, 0xc3, 0x3f, 0x65, 0xf2, 0x2e, 0x2a, 0xc8, - 0x08, 0xf7, 0xc9, 0x75, 0xbe, 0xf8, 0xe5, 0x21, 0xf4, 0x41, 0xbe, 0x19, 0x81, 0xf4, 0xc6, 0x1e, - 0xd7, 0xe3, 0x03, 0x0e, 0x5b, 0x7a, 0xdf, 0x73, 0xb9, 0xc9, 0x42, 0x96, 0x8f, 0x8d, 0xb9, 0x59, - 0xde, 0x1f, 0x70, 0x67, 0x6a, 0x7c, 0xdc, 0x68, 0x57, 0x64, 0xbb, 0xb9, 0x75, 0xba, 0x30, 0xde, - 0xb7, 0x13, 0xd3, 0x90, 0xf0, 0x7f, 0xf7, 0xc0, 0x1e, 0xe4, 0x96, 0xef, 0x58, 0x02, 0x5b, 0x36, - 0xfc, 0x1f, 0x59, 0x44, 0x0e, 0xfd, 0x91, 0x85, 0xfb, 0x96, 0xa8, 0xff, 0x2d, 0xd7, 0x21, 0x2d, - 0x94, 0x02, 0xbd, 0xdd, 0x7f, 0x00, 0x45, 0xec, 0xd1, 0x8c, 0x5c, 0x3c, 0x39, 0xbc, 0xef, 0xfc, - 0xc9, 0x69, 0x98, 0xe4, 0x47, 0xf1, 0xbc, 0xb8, 0x82, 0xff, 0x21, 0x80, 0x22, 0xab, 0x58, 0x16, - 0x41, 0x85, 0xfc, 0x8b, 0x11, 0x90, 0xfa, 0xb5, 0xf2, 0xad, 0x6c, 0x00, 0x31, 0x8a, 0x44, 0xfb, - 0x7d, 0x37, 0x7c, 0xb3, 0x91, 0xcf, 0x93, 0x52, 0xef, 0x8e, 0xef, 0xf7, 0x46, 0x21, 0xeb, 0xcb, - 0xe9, 0xa1, 0xc7, 0x02, 0x47, 0x43, 0xe7, 0x0f, 0xca, 0xff, 0xf9, 0xce, 0x86, 0x06, 0x3a, 0x16, - 0x3d, 0x7c, 0xc7, 0xde, 0xf8, 0xc3, 0xfb, 0xc3, 0xbf, 0x02, 0x4a, 0x8c, 0xf8, 0x0a, 0xe8, 0x47, - 0x22, 0x90, 0x76, 0x97, 0xee, 0xc3, 0x66, 0xf3, 0x8f, 0x40, 0x92, 0xaf, 0x4e, 0x2c, 0x9d, 0xcf, - 0x9f, 0x86, 0xe6, 0x42, 0x4b, 0x90, 0x16, 0x7f, 0x41, 0x87, 0x07, 0xa2, 0xee, 0xf3, 0xe9, 0x27, - 0x21, 0xeb, 0xdb, 0x58, 0x21, 0x76, 0x62, 0xb5, 0xfe, 0xac, 0x34, 0x51, 0x4a, 0xdd, 0xbc, 0x35, - 0x1f, 0x5b, 0xc5, 0x37, 0xc8, 0x0c, 0x53, 0xea, 0xb5, 0xcb, 0xf5, 0xda, 0x33, 0x52, 0xa4, 0x94, - 0xbd, 0x79, 0x6b, 0x3e, 0xa5, 0x60, 0x9a, 0xbe, 0x3a, 0xfd, 0x0c, 0x14, 0xfb, 0x06, 0x26, 0x68, - 0xdf, 0x11, 0x14, 0x16, 0x37, 0xd7, 0x97, 0x97, 0x6a, 0x95, 0x8d, 0xba, 0xca, 0x8e, 0xd9, 0xa1, - 0xa3, 0x30, 0xb5, 0xbc, 0x74, 0xe9, 0xf2, 0x86, 0x5a, 0x5b, 0x5e, 0xaa, 0xaf, 0x6e, 0xa8, 0x95, - 0x8d, 0x8d, 0x4a, 0xed, 0x19, 0x29, 0x7a, 0xf6, 0xbb, 0x00, 0xc5, 0x4a, 0xb5, 0xb6, 0x44, 0xd6, - 0x67, 0x9d, 0x5f, 0xd2, 0x5e, 0x83, 0x38, 0x4d, 0x05, 0x1c, 0x78, 0x54, 0xa4, 0x74, 0x70, 0x6e, - 0x13, 0x5d, 0x84, 0x04, 0xcd, 0x12, 0xa0, 0x83, 0xcf, 0x8e, 0x94, 0x42, 0x92, 0x9d, 0xa4, 0x31, - 0x74, 0x3a, 0x1d, 0x78, 0x98, 0xa4, 0x74, 0x70, 0xee, 0x13, 0x29, 0x90, 0xf1, 0xa2, 0x8c, 0xf0, - 0xc3, 0x15, 0xa5, 0x31, 0xac, 0x23, 0x5a, 0x86, 0x94, 0x08, 0x0c, 0xc3, 0x8e, 0x7b, 0x94, 0x42, - 0x93, 0x93, 0x44, 0x5c, 0x2c, 0x80, 0x3f, 0xf8, 0xec, 0x4a, 0x29, 0x24, 0xd3, 0x8a, 0x96, 0xdc, - 0xc3, 0xf9, 0x21, 0x47, 0x38, 0x4a, 0x61, 0xc9, 0x46, 0x22, 0x34, 0x2f, 0x35, 0x12, 0x7e, 0x22, - 0xa7, 0x34, 0x46, 0x12, 0x19, 0x6d, 0x02, 0xf8, 0xc2, 0xf5, 0x31, 0x8e, 0xda, 0x94, 0xc6, 0x49, - 0x0e, 0xa3, 0x35, 0x48, 0xbb, 0xd1, 0x53, 0xe8, 0xc1, 0x97, 0x52, 0x78, 0x96, 0x16, 0xbd, 0x0b, - 0xf2, 0xc1, 0xa8, 0x61, 0xbc, 0xe3, 0x2c, 0xa5, 0x31, 0xd3, 0xaf, 0x04, 0x3f, 0x18, 0x42, 0x8c, - 0x77, 0xbc, 0xa5, 0x34, 0x66, 0x36, 0x16, 0xbd, 0x08, 0x93, 0x83, 0x2e, 0xfe, 0xf8, 0xa7, 0x5d, - 0x4a, 0x87, 0xc8, 0xcf, 0xa2, 0x0e, 0xa0, 0x21, 0xa1, 0xc1, 0x21, 0x0e, 0xbf, 0x94, 0x0e, 0x93, - 0xae, 0x45, 0x2d, 0x28, 0xf6, 0xfb, 0xdb, 0xe3, 0x1e, 0x86, 0x29, 0x8d, 0x9d, 0xba, 0x65, 0x6f, - 0x09, 0xfa, 0xe9, 0xe3, 0x1e, 0x8e, 0x29, 0x8d, 0x9d, 0xc9, 0xad, 0x56, 0x46, 0x9e, 0x6f, 0x3c, - 0x71, 0xe0, 0xf9, 0x46, 0xef, 0xc4, 0xa2, 0x7b, 0xa6, 0xf1, 0x8f, 0x1e, 0x86, 0x7b, 0xf9, 0x25, - 0x03, 0xb6, 0xa3, 0x5d, 0xd3, 0x8d, 0x1d, 0xf7, 0xd6, 0x08, 0xfe, 0xcc, 0x0f, 0x37, 0x1e, 0xe1, - 0x17, 0x19, 0x88, 0xd2, 0x90, 0xbb, 0x23, 0x46, 0xde, 0xd2, 0x15, 0x76, 0x12, 0x39, 0xfc, 0xe8, - 0xe2, 0x01, 0xf7, 0x52, 0x84, 0xdc, 0x7e, 0x31, 0xec, 0xb8, 0xf4, 0xc1, 0x87, 0x30, 0x0f, 0x3a, - 0xef, 0x29, 0x7f, 0x30, 0x02, 0x85, 0xcb, 0xba, 0xed, 0x98, 0x96, 0xde, 0xd4, 0xda, 0x74, 0xc5, - 0xb8, 0x30, 0xee, 0xc7, 0x1f, 0xd5, 0x0c, 0x71, 0x46, 0xf8, 0x65, 0x17, 0xfc, 0x60, 0xc8, 0x22, - 0x24, 0xaf, 0x6b, 0x6d, 0xf6, 0xe9, 0x85, 0xff, 0xb2, 0x9c, 0x7e, 0x99, 0xfb, 0xbc, 0x24, 0x3f, - 0x0a, 0xe3, 0x95, 0x3f, 0x4f, 0x4f, 0x72, 0x77, 0x3a, 0xba, 0xcd, 0xfe, 0xc6, 0xb5, 0x83, 0x6d, - 0xb4, 0x09, 0x71, 0x4b, 0x73, 0x78, 0x50, 0x53, 0xad, 0xf0, 0x2b, 0x2a, 0xee, 0x0f, 0xbf, 0x68, - 0x62, 0x61, 0xe0, 0x16, 0x0b, 0xf6, 0x32, 0x0a, 0x87, 0x7e, 0x08, 0xd2, 0x1d, 0x6d, 0x4f, 0xa5, - 0xd0, 0xd1, 0x37, 0x0a, 0x3a, 0xd5, 0xd1, 0xf6, 0x48, 0xab, 0x91, 0x0e, 0x45, 0x82, 0xde, 0xdc, - 0xd5, 0x8c, 0x1d, 0xcc, 0x5e, 0x12, 0x7b, 0xa3, 0x5e, 0x92, 0xef, 0x68, 0x7b, 0x35, 0x0a, 0x4c, - 0x5e, 0xc5, 0x2f, 0x03, 0xf9, 0xed, 0x08, 0x0f, 0x65, 0xa9, 0xe4, 0x90, 0x06, 0x52, 0xd3, 0x7d, - 0xa2, 0xef, 0x17, 0x69, 0xfd, 0x13, 0xa3, 0x06, 0xa6, 0x4f, 0xee, 0xec, 0x48, 0xf6, 0x97, 0x5f, - 0x15, 0x47, 0xb2, 0x8b, 0xcd, 0xbe, 0x71, 0xb9, 0x02, 0x59, 0x96, 0x4d, 0x53, 0xa9, 0x0b, 0x1b, - 0x0d, 0x75, 0x61, 0xf3, 0xc2, 0x85, 0x65, 0x80, 0xc0, 0xb8, 0x49, 0x3d, 0xef, 0xc3, 0xa7, 0x22, - 0x90, 0x5d, 0xf4, 0xdd, 0x8d, 0x35, 0x03, 0xa9, 0x8e, 0x69, 0xe8, 0xd7, 0xb0, 0xe5, 0xee, 0xcb, - 0xb0, 0x47, 0xe2, 0x66, 0xb2, 0xbf, 0x71, 0xe4, 0xec, 0x8b, 0x1b, 0x1a, 0xc4, 0x33, 0xe1, 0xba, - 0x81, 0xb7, 0x6c, 0x5d, 0x88, 0x5c, 0x11, 0x8f, 0xe8, 0x14, 0x48, 0x36, 0x6e, 0xf6, 0x2c, 0xdd, - 0xd9, 0x57, 0x9b, 0xa6, 0xe1, 0x68, 0x4d, 0x87, 0x67, 0x4f, 0x8b, 0xa2, 0xbc, 0xc6, 0x8a, 0x09, - 0x48, 0x0b, 0x3b, 0x9a, 0xde, 0x66, 0xc7, 0xbe, 0x32, 0x8a, 0x78, 0xe4, 0x4d, 0xfd, 0x7c, 0xca, - 0x1f, 0x1a, 0xd6, 0x40, 0x32, 0xbb, 0xd8, 0x0a, 0x7c, 0x0a, 0xc7, 0xd4, 0x75, 0xe6, 0xf7, 0x3e, - 0xfb, 0xd0, 0x34, 0x17, 0x38, 0xdf, 0x80, 0x67, 0x57, 0x41, 0x2b, 0x45, 0xc1, 0x21, 0xbe, 0x91, - 0x7b, 0x3e, 0xb0, 0x13, 0xd3, 0xdb, 0xf2, 0x3e, 0xc5, 0x9f, 0x1e, 0x10, 0x6a, 0xc5, 0xd8, 0xaf, - 0xce, 0xfc, 0xae, 0x07, 0xed, 0x85, 0x8e, 0xcf, 0xe0, 0x7d, 0xff, 0xb6, 0x0c, 0x85, 0x21, 0x1e, - 0xfc, 0x8b, 0x9a, 0xde, 0x16, 0x7f, 0xb6, 0x4d, 0xe1, 0x4f, 0xa8, 0xec, 0xa6, 0x61, 0xd8, 0x9f, - 0x63, 0x97, 0x47, 0xe9, 0x46, 0xd5, 0x34, 0x5a, 0xc1, 0x8c, 0x0b, 0xda, 0x80, 0xa4, 0x63, 0x5e, - 0xc3, 0x06, 0x17, 0x50, 0xf5, 0x6d, 0x87, 0x50, 0xec, 0xc1, 0x7b, 0x69, 0x38, 0x16, 0xda, 0x01, - 0xa9, 0x85, 0xdb, 0x78, 0x87, 0x7d, 0xc8, 0xb5, 0xab, 0x59, 0x98, 0x7d, 0xdc, 0x79, 0x38, 0xfc, - 0xc1, 0xeb, 0x6b, 0x8a, 0x2e, 0x6a, 0x83, 0x82, 0xa2, 0xf5, 0xe0, 0xcd, 0x6c, 0x29, 0xbe, 0x2b, - 0x3f, 0xa2, 0xff, 0x3e, 0xad, 0xf4, 0x9b, 0xad, 0xc0, 0x4d, 0x6e, 0xa7, 0x40, 0xea, 0x19, 0x5b, - 0xa6, 0x41, 0xff, 0xc2, 0x12, 0x0f, 0xb0, 0xd2, 0x6c, 0xe7, 0xce, 0x2d, 0xe7, 0x3b, 0x77, 0xeb, - 0x50, 0xf0, 0x48, 0xe9, 0xec, 0xc9, 0x1c, 0x76, 0xf6, 0xe4, 0x5d, 0x00, 0x42, 0x82, 0x56, 0x00, - 0xbc, 0xf9, 0xe9, 0xee, 0xee, 0x87, 0xce, 0x74, 0x7f, 0x67, 0x7c, 0x00, 0xa8, 0x0d, 0x53, 0x1d, - 0xdd, 0x50, 0x6d, 0xdc, 0xde, 0x56, 0xb9, 0xe4, 0x08, 0x6e, 0xf6, 0x0d, 0x18, 0xe9, 0xc9, 0x8e, - 0x6e, 0x34, 0x70, 0x7b, 0x7b, 0xd1, 0x85, 0x45, 0x6f, 0x83, 0xe3, 0x9e, 0x38, 0x4c, 0x43, 0xdd, - 0x35, 0xdb, 0x2d, 0xd5, 0xc2, 0xdb, 0x6a, 0x93, 0x5e, 0x8b, 0x94, 0xa3, 0x42, 0x3c, 0xea, 0x92, - 0xac, 0x19, 0x97, 0xcd, 0x76, 0x4b, 0xc1, 0xdb, 0x35, 0x52, 0x8d, 0xee, 0x01, 0x4f, 0x16, 0xaa, - 0xde, 0xb2, 0x67, 0xf2, 0xf3, 0xb1, 0x93, 0x71, 0x25, 0xe7, 0x16, 0x2e, 0xb5, 0xec, 0x72, 0xfa, - 0x7d, 0xaf, 0xcc, 0x4d, 0x7c, 0xe3, 0x95, 0xb9, 0x09, 0xf9, 0x22, 0xbd, 0xc4, 0x83, 0x4f, 0x3a, - 0x6c, 0xa3, 0xf3, 0x90, 0xd1, 0xc4, 0x03, 0xfb, 0x4c, 0xe4, 0x80, 0x49, 0xeb, 0x91, 0xca, 0xaf, - 0x44, 0x20, 0xb9, 0x78, 0x75, 0x5d, 0xd3, 0x2d, 0x54, 0x87, 0x49, 0x4f, 0x69, 0xc7, 0x9d, 0xff, - 0x9e, 0x9e, 0x0b, 0x03, 0x50, 0x1f, 0xf5, 0x45, 0xed, 0x81, 0x30, 0xfd, 0xdf, 0xda, 0xfa, 0xba, - 0x7a, 0x05, 0x52, 0xac, 0x85, 0x36, 0x7a, 0x1a, 0x12, 0x5d, 0xf2, 0x83, 0x67, 0xff, 0x67, 0x47, - 0x2a, 0x3a, 0xa5, 0xf7, 0xab, 0x05, 0xe3, 0x93, 0xff, 0x2a, 0x02, 0xb0, 0x78, 0xf5, 0xea, 0x86, - 0xa5, 0x77, 0xdb, 0xd8, 0x79, 0xa3, 0xba, 0xbc, 0x0c, 0x77, 0xf8, 0xbe, 0xdb, 0xb4, 0x9a, 0x63, - 0x77, 0x7b, 0xca, 0xfb, 0x72, 0xd3, 0x6a, 0x0e, 0x45, 0x6b, 0xd9, 0x8e, 0x8b, 0x16, 0x1b, 0x1b, - 0x6d, 0xd1, 0x76, 0x06, 0xe5, 0xf8, 0x1c, 0x64, 0xbd, 0xae, 0xdb, 0x68, 0x09, 0xd2, 0x0e, 0xff, - 0xcd, 0xc5, 0x29, 0x8f, 0x16, 0xa7, 0x60, 0xf3, 0x8b, 0xd4, 0x65, 0x97, 0xff, 0x17, 0x91, 0xaa, - 0x37, 0x11, 0xfe, 0x46, 0x29, 0x12, 0xb1, 0xf0, 0xdc, 0x02, 0xc7, 0xde, 0x00, 0x0b, 0xcc, 0xb1, - 0x7c, 0x62, 0xfd, 0xd1, 0x28, 0x4c, 0x6d, 0x8a, 0x49, 0xfa, 0x37, 0x56, 0x0a, 0x9b, 0x90, 0xc2, - 0x86, 0x63, 0xe9, 0x58, 0x6c, 0xf5, 0x3d, 0x3c, 0x6a, 0xb0, 0x87, 0xf4, 0x85, 0xfe, 0xdd, 0x61, - 0xff, 0xd0, 0x0b, 0x2c, 0x9f, 0x18, 0x7e, 0x33, 0x06, 0x33, 0xa3, 0x58, 0xd1, 0x09, 0x28, 0x36, - 0x2d, 0x4c, 0x0b, 0xd4, 0x40, 0x2a, 0xbc, 0x20, 0x8a, 0xf9, 0x92, 0xa2, 0x00, 0x71, 0xd0, 0x88, - 0x56, 0x11, 0xd2, 0xdb, 0xf3, 0xc8, 0x0a, 0x1e, 0x02, 0x5d, 0x54, 0x30, 0x14, 0xc5, 0xd9, 0xf6, - 0x2d, 0xad, 0xad, 0x19, 0x4d, 0x7c, 0x1b, 0x9a, 0x30, 0xb8, 0x02, 0x88, 0x03, 0xf3, 0x55, 0x86, - 0x89, 0xae, 0x42, 0x4a, 0xc0, 0xc7, 0xdf, 0x00, 0x78, 0x01, 0x86, 0xee, 0x86, 0x9c, 0x7f, 0x61, - 0xa0, 0x7e, 0x4a, 0x5c, 0xc9, 0xfa, 0xd6, 0x85, 0xb0, 0x95, 0x27, 0x79, 0xe0, 0xca, 0xc3, 0x5d, - 0xc1, 0xdf, 0x88, 0xc1, 0xa4, 0x82, 0x5b, 0xdf, 0x87, 0x03, 0xf7, 0x83, 0x00, 0x6c, 0x52, 0x13, - 0x63, 0x7b, 0x1b, 0x63, 0x37, 0x68, 0x24, 0x32, 0x0c, 0x6f, 0xd1, 0x76, 0xde, 0xaa, 0xd1, 0xfb, - 0x37, 0x51, 0xc8, 0xf9, 0x47, 0xef, 0xfb, 0x60, 0x65, 0x43, 0xab, 0x9e, 0x49, 0x63, 0xa7, 0xcf, - 0x4f, 0x8d, 0x32, 0x69, 0x03, 0x7a, 0x1d, 0x62, 0xcb, 0x3e, 0x19, 0x83, 0x24, 0x3f, 0x0a, 0xb6, - 0x36, 0xe0, 0xe3, 0x46, 0x0e, 0xf9, 0x11, 0x70, 0x9f, 0x8b, 0x7b, 0x1f, 0x14, 0x48, 0x48, 0x1d, - 0x38, 0x5f, 0x16, 0x39, 0x99, 0xa7, 0xe1, 0xb0, 0x77, 0x1a, 0x1a, 0xcd, 0x41, 0x96, 0x90, 0x79, - 0x36, 0x9b, 0xd0, 0x40, 0x47, 0xdb, 0xab, 0xb3, 0x12, 0xf4, 0x10, 0xa0, 0x5d, 0x37, 0xf1, 0xa1, - 0x7a, 0x82, 0x20, 0x74, 0x93, 0x5e, 0x8d, 0x20, 0xbf, 0x0b, 0x80, 0xb4, 0x42, 0x65, 0x37, 0x77, - 0xf2, 0x4b, 0x5e, 0x49, 0xc9, 0x22, 0xbd, 0xbd, 0xf3, 0x27, 0x23, 0xcc, 0x55, 0xee, 0x8b, 0xb6, - 0x79, 0xd0, 0xa2, 0x1e, 0x6e, 0x36, 0x7c, 0xe7, 0xd5, 0xb9, 0xd2, 0xbe, 0xd6, 0x69, 0x97, 0xe5, - 0x21, 0x90, 0xf2, 0xb0, 0x5c, 0x00, 0xf1, 0xa6, 0x83, 0x81, 0x7b, 0xf9, 0x5e, 0xa2, 0xd7, 0x37, - 0xbf, 0xfe, 0xe9, 0xd3, 0xc7, 0x7d, 0xaf, 0xd8, 0x73, 0x33, 0x64, 0x6c, 0x78, 0xe4, 0x5f, 0x8a, - 0x00, 0xf2, 0x16, 0x1b, 0xf7, 0x3c, 0xf8, 0x0a, 0x3d, 0x25, 0x2c, 0xfc, 0xfd, 0xc8, 0xc1, 0x71, - 0x84, 0xc7, 0x1f, 0x88, 0x23, 0x7c, 0x93, 0xe9, 0xed, 0x9e, 0x69, 0x17, 0x9f, 0x80, 0x0f, 0xb9, - 0xc3, 0x75, 0xa1, 0x66, 0xea, 0x01, 0x08, 0xc1, 0x44, 0xe7, 0xe8, 0x84, 0xfc, 0x6a, 0x04, 0x8e, - 0x0d, 0x68, 0xa2, 0xdb, 0xe4, 0x26, 0x20, 0xcb, 0x57, 0xc9, 0xff, 0xf6, 0x7f, 0x84, 0x7f, 0xec, - 0x78, 0x3b, 0x8a, 0x3d, 0x69, 0x0d, 0x98, 0xf3, 0x37, 0x69, 0x8d, 0xe2, 0x46, 0xe8, 0x77, 0x22, - 0x30, 0xed, 0x6f, 0x91, 0xdb, 0xb7, 0x06, 0xe4, 0xfc, 0x6d, 0xe1, 0xbd, 0xba, 0x77, 0x9c, 0x5e, - 0xf9, 0x3b, 0x14, 0x00, 0x21, 0x7d, 0x11, 0x5a, 0xcf, 0x72, 0x75, 0x8f, 0x8c, 0x2d, 0x25, 0x77, - 0x1f, 0x62, 0x98, 0x19, 0x60, 0x83, 0xf5, 0xfe, 0x28, 0xc4, 0xd7, 0x4d, 0xb3, 0x8d, 0x7e, 0x24, - 0x02, 0x93, 0x86, 0xe9, 0xa8, 0x64, 0xae, 0xe0, 0x96, 0xca, 0x93, 0x05, 0xcc, 0x92, 0x5e, 0x3d, - 0x9c, 0xf4, 0xbe, 0xf9, 0xea, 0xdc, 0x20, 0xd4, 0xb0, 0xab, 0x77, 0x8b, 0x86, 0xe9, 0x54, 0x29, - 0xd1, 0x06, 0xcb, 0x27, 0xdc, 0x80, 0x7c, 0xf0, 0xfd, 0xcc, 0xfc, 0x2a, 0x87, 0x7e, 0x7f, 0x3e, - 0xf4, 0xdd, 0xb9, 0x2d, 0xdf, 0x8b, 0xd9, 0x05, 0x98, 0xdf, 0x26, 0x83, 0xfb, 0x3c, 0x48, 0x57, - 0xfb, 0x4f, 0xa6, 0xd5, 0x21, 0x75, 0xd8, 0x43, 0x6e, 0x7e, 0x89, 0x73, 0xde, 0xd3, 0x9f, 0x8b, - 0x00, 0x78, 0xa9, 0x19, 0xf4, 0x20, 0x1c, 0xad, 0xae, 0xad, 0x2e, 0xaa, 0x8d, 0x8d, 0xca, 0xc6, - 0x66, 0x23, 0x78, 0x09, 0xbc, 0xb8, 0xa3, 0xc4, 0xee, 0xe2, 0xa6, 0xbe, 0xad, 0xe3, 0x16, 0xba, - 0x1f, 0xa6, 0x83, 0xd4, 0xe4, 0xa9, 0xbe, 0x28, 0x45, 0x4a, 0xb9, 0x9b, 0xb7, 0xe6, 0xd3, 0xcc, - 0x25, 0xc5, 0x2d, 0x74, 0x12, 0xee, 0x18, 0xa4, 0x5b, 0x5a, 0xbd, 0x24, 0x45, 0x4b, 0xf9, 0x9b, - 0xb7, 0xe6, 0x33, 0xae, 0xef, 0x8a, 0x64, 0x40, 0x7e, 0x4a, 0x8e, 0x17, 0x2b, 0xc1, 0xcd, 0x5b, - 0xf3, 0x49, 0x36, 0x2c, 0xa5, 0xf8, 0xfb, 0x3e, 0x3e, 0x3b, 0x71, 0xfa, 0x9d, 0x00, 0x4b, 0xc6, - 0xb6, 0xa5, 0xd1, 0xbf, 0x84, 0x8c, 0x4a, 0x70, 0x64, 0x69, 0xf5, 0xa2, 0x52, 0xa9, 0x6d, 0x2c, - 0xad, 0xad, 0xf6, 0xdd, 0x5d, 0x1f, 0xac, 0x5b, 0x5c, 0xdb, 0xac, 0x2e, 0xd7, 0xd5, 0xc6, 0xd2, - 0xa5, 0x55, 0xb6, 0xc3, 0x1b, 0xa8, 0x7b, 0x76, 0x75, 0x63, 0x69, 0xa5, 0x2e, 0x45, 0xab, 0x17, - 0x47, 0xee, 0x31, 0x3c, 0x78, 0xe0, 0x80, 0x7b, 0x56, 0x32, 0xb0, 0xd1, 0xf0, 0x7f, 0x03, 0x00, - 0x00, 0xff, 0xff, 0x11, 0x00, 0x16, 0x24, 0xa1, 0x97, 0x00, 0x00, + // 10622 bytes of a gzipped FileDescriptorSet + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x7b, 0x70, 0x24, 0xc7, + 0x79, 0x1f, 0xf6, 0xbd, 0xfb, 0xed, 0x62, 0x77, 0xd0, 0x00, 0xef, 0x70, 0x7b, 0x24, 0x00, 0x0e, + 0x1f, 0xf7, 0x20, 0x89, 0x23, 0x8f, 0xbc, 0x23, 0x89, 0x13, 0x45, 0xef, 0x2e, 0xf6, 0xee, 0x70, + 0xc4, 0x4b, 0xb3, 0xc0, 0xf1, 0x61, 0x4b, 0xa3, 0xc1, 0x6e, 0x03, 0x18, 0xde, 0xee, 0xcc, 0x68, + 0x66, 0xf6, 0x0e, 0x60, 0xa5, 0x52, 0xb4, 0x65, 0x27, 0xf2, 0xc5, 0x91, 0x65, 0x2b, 0x65, 0xcb, + 0x92, 0x4e, 0xa1, 0xac, 0x58, 0x92, 0x9d, 0xc4, 0x91, 0x2d, 0x45, 0x92, 0xe3, 0xb2, 0x4b, 0x4e, + 0xe5, 0x21, 0x3b, 0xa9, 0x94, 0xe4, 0x4a, 0x25, 0xae, 0x54, 0x42, 0x3b, 0x94, 0xca, 0x52, 0x64, + 0x39, 0xb6, 0x65, 0x3a, 0x89, 0xa3, 0x4a, 0x25, 0xd5, 0xaf, 0x79, 0xec, 0x03, 0xb3, 0x38, 0x91, + 0xb4, 0x53, 0xfa, 0xe7, 0x6e, 0xa7, 0xfb, 0xfb, 0x7e, 0xd3, 0xfd, 0xf5, 0xd7, 0x5f, 0x7f, 0xdf, + 0xd7, 0x3d, 0x0d, 0xf8, 0xf3, 0x0b, 0x30, 0xb7, 0x63, 0x9a, 0x3b, 0x6d, 0x7c, 0xc6, 0xb2, 0x4d, + 0xd7, 0xdc, 0xea, 0x6e, 0x9f, 0x69, 0x61, 0xa7, 0x69, 0xeb, 0x96, 0x6b, 0xda, 0xf3, 0xb4, 0x0c, + 0x95, 0x18, 0xc5, 0xbc, 0xa0, 0x90, 0x57, 0x60, 0xe2, 0xa2, 0xde, 0xc6, 0x8b, 0x1e, 0x61, 0x03, + 0xbb, 0xe8, 0x09, 0x48, 0x6e, 0xeb, 0x6d, 0x3c, 0x1d, 0x9b, 0x4b, 0x9c, 0xcc, 0x9f, 0xbd, 0x77, + 0xbe, 0x87, 0x69, 0x3e, 0xcc, 0xb1, 0x4e, 0x8a, 0x15, 0xca, 0x21, 0x7f, 0x3d, 0x09, 0x93, 0x03, + 0x6a, 0x11, 0x82, 0xa4, 0xa1, 0x75, 0x08, 0x62, 0xec, 0x64, 0x4e, 0xa1, 0xbf, 0xd1, 0x34, 0x64, + 0x2c, 0xad, 0x79, 0x4d, 0xdb, 0xc1, 0xd3, 0x71, 0x5a, 0x2c, 0x1e, 0xd1, 0x0c, 0x40, 0x0b, 0x5b, + 0xd8, 0x68, 0x61, 0xa3, 0xb9, 0x3f, 0x9d, 0x98, 0x4b, 0x9c, 0xcc, 0x29, 0x81, 0x12, 0xf4, 0x00, + 0x4c, 0x58, 0xdd, 0xad, 0xb6, 0xde, 0x54, 0x03, 0x64, 0x30, 0x97, 0x38, 0x99, 0x52, 0x24, 0x56, + 0xb1, 0xe8, 0x13, 0x9f, 0x80, 0xd2, 0x0d, 0xac, 0x5d, 0x0b, 0x92, 0xe6, 0x29, 0x69, 0x91, 0x14, + 0x07, 0x08, 0x6b, 0x50, 0xe8, 0x60, 0xc7, 0xd1, 0x76, 0xb0, 0xea, 0xee, 0x5b, 0x78, 0x3a, 0x49, + 0x7b, 0x3f, 0xd7, 0xd7, 0xfb, 0xde, 0x9e, 0xe7, 0x39, 0xd7, 0xc6, 0xbe, 0x85, 0x51, 0x05, 0x72, + 0xd8, 0xe8, 0x76, 0x18, 0x42, 0x6a, 0x88, 0xfc, 0xea, 0x46, 0xb7, 0xd3, 0x8b, 0x92, 0x25, 0x6c, + 0x1c, 0x22, 0xe3, 0x60, 0xfb, 0xba, 0xde, 0xc4, 0xd3, 0x69, 0x0a, 0x70, 0xa2, 0x0f, 0xa0, 0xc1, + 0xea, 0x7b, 0x31, 0x04, 0x1f, 0xaa, 0x41, 0x0e, 0xef, 0xb9, 0xd8, 0x70, 0x74, 0xd3, 0x98, 0xce, + 0x50, 0x90, 0xfb, 0x06, 0x8c, 0x22, 0x6e, 0xb7, 0x7a, 0x21, 0x7c, 0x3e, 0x74, 0x1e, 0x32, 0xa6, + 0xe5, 0xea, 0xa6, 0xe1, 0x4c, 0x67, 0xe7, 0x62, 0x27, 0xf3, 0x67, 0xef, 0x1c, 0xa8, 0x08, 0x6b, + 0x8c, 0x46, 0x11, 0xc4, 0x68, 0x09, 0x24, 0xc7, 0xec, 0xda, 0x4d, 0xac, 0x36, 0xcd, 0x16, 0x56, + 0x75, 0x63, 0xdb, 0x9c, 0xce, 0x51, 0x80, 0xd9, 0xfe, 0x8e, 0x50, 0xc2, 0x9a, 0xd9, 0xc2, 0x4b, + 0xc6, 0xb6, 0xa9, 0x14, 0x9d, 0xd0, 0x33, 0x3a, 0x02, 0x69, 0x67, 0xdf, 0x70, 0xb5, 0xbd, 0xe9, + 0x02, 0xd5, 0x10, 0xfe, 0x24, 0xff, 0x5a, 0x1a, 0x4a, 0xa3, 0xa8, 0xd8, 0x05, 0x48, 0x6d, 0x93, + 0x5e, 0x4e, 0xc7, 0x0f, 0x23, 0x03, 0xc6, 0x13, 0x16, 0x62, 0xfa, 0x36, 0x85, 0x58, 0x81, 0xbc, + 0x81, 0x1d, 0x17, 0xb7, 0x98, 0x46, 0x24, 0x46, 0xd4, 0x29, 0x60, 0x4c, 0xfd, 0x2a, 0x95, 0xbc, + 0x2d, 0x95, 0x7a, 0x0e, 0x4a, 0x5e, 0x93, 0x54, 0x5b, 0x33, 0x76, 0x84, 0x6e, 0x9e, 0x89, 0x6a, + 0xc9, 0x7c, 0x5d, 0xf0, 0x29, 0x84, 0x4d, 0x29, 0xe2, 0xd0, 0x33, 0x5a, 0x04, 0x30, 0x0d, 0x6c, + 0x6e, 0xab, 0x2d, 0xdc, 0x6c, 0x4f, 0x67, 0x87, 0x48, 0x69, 0x8d, 0x90, 0xf4, 0x49, 0xc9, 0x64, + 0xa5, 0xcd, 0x36, 0x7a, 0xd2, 0x57, 0xb5, 0xcc, 0x10, 0x4d, 0x59, 0x61, 0x93, 0xac, 0x4f, 0xdb, + 0x36, 0xa1, 0x68, 0x63, 0xa2, 0xf7, 0xb8, 0xc5, 0x7b, 0x96, 0xa3, 0x8d, 0x98, 0x8f, 0xec, 0x99, + 0xc2, 0xd9, 0x58, 0xc7, 0xc6, 0xed, 0xe0, 0x23, 0xba, 0x07, 0xbc, 0x02, 0x95, 0xaa, 0x15, 0x50, + 0x2b, 0x54, 0x10, 0x85, 0xab, 0x5a, 0x07, 0x97, 0x5f, 0x82, 0x62, 0x58, 0x3c, 0x68, 0x0a, 0x52, + 0x8e, 0xab, 0xd9, 0x2e, 0xd5, 0xc2, 0x94, 0xc2, 0x1e, 0x90, 0x04, 0x09, 0x6c, 0xb4, 0xa8, 0x95, + 0x4b, 0x29, 0xe4, 0x27, 0xfa, 0x01, 0xbf, 0xc3, 0x09, 0xda, 0xe1, 0xfb, 0xfb, 0x47, 0x34, 0x84, + 0xdc, 0xdb, 0xef, 0xf2, 0xe3, 0x30, 0x1e, 0xea, 0xc0, 0xa8, 0xaf, 0x96, 0xff, 0x06, 0xdc, 0x31, + 0x10, 0x1a, 0x3d, 0x07, 0x53, 0x5d, 0x43, 0x37, 0x5c, 0x6c, 0x5b, 0x36, 0x26, 0x1a, 0xcb, 0x5e, + 0x35, 0xfd, 0x8d, 0xcc, 0x10, 0x9d, 0xdb, 0x0c, 0x52, 0x33, 0x14, 0x65, 0xb2, 0xdb, 0x5f, 0x78, + 0x3a, 0x97, 0xfd, 0x66, 0x46, 0x7a, 0xf9, 0xe5, 0x97, 0x5f, 0x8e, 0xcb, 0xbf, 0x95, 0x86, 0xa9, + 0x41, 0x73, 0x66, 0xe0, 0xf4, 0x3d, 0x02, 0x69, 0xa3, 0xdb, 0xd9, 0xc2, 0x36, 0x15, 0x52, 0x4a, + 0xe1, 0x4f, 0xa8, 0x02, 0xa9, 0xb6, 0xb6, 0x85, 0xdb, 0xd3, 0xc9, 0xb9, 0xd8, 0xc9, 0xe2, 0xd9, + 0x07, 0x46, 0x9a, 0x95, 0xf3, 0xcb, 0x84, 0x45, 0x61, 0x9c, 0xe8, 0xed, 0x90, 0xe4, 0x26, 0x9a, + 0x20, 0x9c, 0x1e, 0x0d, 0x81, 0xcc, 0x25, 0x85, 0xf2, 0xa1, 0xe3, 0x90, 0x23, 0xff, 0x33, 0xdd, + 0x48, 0xd3, 0x36, 0x67, 0x49, 0x01, 0xd1, 0x0b, 0x54, 0x86, 0x2c, 0x9d, 0x26, 0x2d, 0x2c, 0x96, + 0x36, 0xef, 0x99, 0x28, 0x56, 0x0b, 0x6f, 0x6b, 0xdd, 0xb6, 0xab, 0x5e, 0xd7, 0xda, 0x5d, 0x4c, + 0x15, 0x3e, 0xa7, 0x14, 0x78, 0xe1, 0x55, 0x52, 0x86, 0x66, 0x21, 0xcf, 0x66, 0x95, 0x6e, 0xb4, + 0xf0, 0x1e, 0xb5, 0x9e, 0x29, 0x85, 0x4d, 0xb4, 0x25, 0x52, 0x42, 0x5e, 0xff, 0xa2, 0x63, 0x1a, + 0x42, 0x35, 0xe9, 0x2b, 0x48, 0x01, 0x7d, 0xfd, 0xe3, 0xbd, 0x86, 0xfb, 0xae, 0xc1, 0xdd, 0xeb, + 0x9b, 0x4b, 0x27, 0xa0, 0x44, 0x29, 0x1e, 0xe5, 0x43, 0xaf, 0xb5, 0xa7, 0x27, 0xe6, 0x62, 0x27, + 0xb3, 0x4a, 0x91, 0x15, 0xaf, 0xf1, 0x52, 0xf9, 0xf3, 0x71, 0x48, 0x52, 0xc3, 0x52, 0x82, 0xfc, + 0xc6, 0xf3, 0xeb, 0x75, 0x75, 0x71, 0x6d, 0xb3, 0xba, 0x5c, 0x97, 0x62, 0xa8, 0x08, 0x40, 0x0b, + 0x2e, 0x2e, 0xaf, 0x55, 0x36, 0xa4, 0xb8, 0xf7, 0xbc, 0xb4, 0xba, 0x71, 0xfe, 0x31, 0x29, 0xe1, + 0x31, 0x6c, 0xb2, 0x82, 0x64, 0x90, 0xe0, 0xd1, 0xb3, 0x52, 0x0a, 0x49, 0x50, 0x60, 0x00, 0x4b, + 0xcf, 0xd5, 0x17, 0xcf, 0x3f, 0x26, 0xa5, 0xc3, 0x25, 0x8f, 0x9e, 0x95, 0x32, 0x68, 0x1c, 0x72, + 0xb4, 0xa4, 0xba, 0xb6, 0xb6, 0x2c, 0x65, 0x3d, 0xcc, 0xc6, 0x86, 0xb2, 0xb4, 0x7a, 0x49, 0xca, + 0x79, 0x98, 0x97, 0x94, 0xb5, 0xcd, 0x75, 0x09, 0x3c, 0x84, 0x95, 0x7a, 0xa3, 0x51, 0xb9, 0x54, + 0x97, 0xf2, 0x1e, 0x45, 0xf5, 0xf9, 0x8d, 0x7a, 0x43, 0x2a, 0x84, 0x9a, 0xf5, 0xe8, 0x59, 0x69, + 0xdc, 0x7b, 0x45, 0x7d, 0x75, 0x73, 0x45, 0x2a, 0xa2, 0x09, 0x18, 0x67, 0xaf, 0x10, 0x8d, 0x28, + 0xf5, 0x14, 0x9d, 0x7f, 0x4c, 0x92, 0xfc, 0x86, 0x30, 0x94, 0x89, 0x50, 0xc1, 0xf9, 0xc7, 0x24, + 0x24, 0xd7, 0x20, 0x45, 0xd5, 0x10, 0x21, 0x28, 0x2e, 0x57, 0xaa, 0xf5, 0x65, 0x75, 0x6d, 0x7d, + 0x63, 0x69, 0x6d, 0xb5, 0xb2, 0x2c, 0xc5, 0xfc, 0x32, 0xa5, 0xfe, 0x8e, 0xcd, 0x25, 0xa5, 0xbe, + 0x28, 0xc5, 0x83, 0x65, 0xeb, 0xf5, 0xca, 0x46, 0x7d, 0x51, 0x4a, 0xc8, 0x4d, 0x98, 0x1a, 0x64, + 0x50, 0x07, 0x4e, 0xa1, 0x80, 0x2e, 0xc4, 0x87, 0xe8, 0x02, 0xc5, 0xea, 0xd5, 0x05, 0xf9, 0x6b, + 0x71, 0x98, 0x1c, 0xb0, 0xa8, 0x0c, 0x7c, 0xc9, 0xd3, 0x90, 0x62, 0xba, 0xcc, 0x96, 0xd9, 0x53, + 0x03, 0x57, 0x27, 0xaa, 0xd9, 0x7d, 0x4b, 0x2d, 0xe5, 0x0b, 0xba, 0x1a, 0x89, 0x21, 0xae, 0x06, + 0x81, 0xe8, 0x53, 0xd8, 0x77, 0xf6, 0x19, 0x7f, 0xb6, 0x3e, 0x9e, 0x1f, 0x65, 0x7d, 0xa4, 0x65, + 0x87, 0x5b, 0x04, 0x52, 0x03, 0x16, 0x81, 0x0b, 0x30, 0xd1, 0x07, 0x34, 0xb2, 0x31, 0x7e, 0x6f, + 0x0c, 0xa6, 0x87, 0x09, 0x27, 0xc2, 0x24, 0xc6, 0x43, 0x26, 0xf1, 0x42, 0xaf, 0x04, 0xef, 0x1e, + 0x3e, 0x08, 0x7d, 0x63, 0xfd, 0xa9, 0x18, 0x1c, 0x19, 0xec, 0x52, 0x0e, 0x6c, 0xc3, 0xdb, 0x21, + 0xdd, 0xc1, 0xee, 0xae, 0x29, 0xdc, 0xaa, 0xfb, 0x07, 0x2c, 0xd6, 0xa4, 0xba, 0x77, 0xb0, 0x39, + 0x57, 0x70, 0xb5, 0x4f, 0x0c, 0xf3, 0x0b, 0x59, 0x6b, 0xfa, 0x5a, 0xfa, 0xe3, 0x71, 0xb8, 0x63, + 0x20, 0xf8, 0xc0, 0x86, 0xde, 0x05, 0xa0, 0x1b, 0x56, 0xd7, 0x65, 0xae, 0x13, 0xb3, 0xc4, 0x39, + 0x5a, 0x42, 0x8d, 0x17, 0xb1, 0xb2, 0x5d, 0xd7, 0xab, 0x4f, 0xd0, 0x7a, 0x60, 0x45, 0x94, 0xe0, + 0x09, 0xbf, 0xa1, 0x49, 0xda, 0xd0, 0x99, 0x21, 0x3d, 0xed, 0x53, 0xcc, 0x87, 0x41, 0x6a, 0xb6, + 0x75, 0x6c, 0xb8, 0xaa, 0xe3, 0xda, 0x58, 0xeb, 0xe8, 0xc6, 0x0e, 0x5d, 0x6a, 0xb2, 0x0b, 0xa9, + 0x6d, 0xad, 0xed, 0x60, 0xa5, 0xc4, 0xaa, 0x1b, 0xa2, 0x96, 0x70, 0x50, 0x05, 0xb2, 0x03, 0x1c, + 0xe9, 0x10, 0x07, 0xab, 0xf6, 0x38, 0xe4, 0x9f, 0xca, 0x41, 0x3e, 0xe0, 0x80, 0xa3, 0xbb, 0xa1, + 0xf0, 0xa2, 0x76, 0x5d, 0x53, 0x45, 0x50, 0xc5, 0x24, 0x91, 0x27, 0x65, 0xeb, 0x3c, 0xb0, 0x7a, + 0x18, 0xa6, 0x28, 0x89, 0xd9, 0x75, 0xb1, 0xad, 0x36, 0xdb, 0x9a, 0xe3, 0x50, 0xa1, 0x65, 0x29, + 0x29, 0x22, 0x75, 0x6b, 0xa4, 0xaa, 0x26, 0x6a, 0xd0, 0x39, 0x98, 0xa4, 0x1c, 0x9d, 0x6e, 0xdb, + 0xd5, 0xad, 0x36, 0x56, 0x49, 0x98, 0xe7, 0xd0, 0x25, 0xc7, 0x6b, 0xd9, 0x04, 0xa1, 0x58, 0xe1, + 0x04, 0xa4, 0x45, 0x0e, 0x5a, 0x84, 0xbb, 0x28, 0xdb, 0x0e, 0x36, 0xb0, 0xad, 0xb9, 0x58, 0xc5, + 0xef, 0xe9, 0x6a, 0x6d, 0x47, 0xd5, 0x8c, 0x96, 0xba, 0xab, 0x39, 0xbb, 0xd3, 0x53, 0x04, 0xa0, + 0x1a, 0x9f, 0x8e, 0x29, 0xc7, 0x08, 0xe1, 0x25, 0x4e, 0x57, 0xa7, 0x64, 0x15, 0xa3, 0x75, 0x59, + 0x73, 0x76, 0xd1, 0x02, 0x1c, 0xa1, 0x28, 0x8e, 0x6b, 0xeb, 0xc6, 0x8e, 0xda, 0xdc, 0xc5, 0xcd, + 0x6b, 0x6a, 0xd7, 0xdd, 0x7e, 0x62, 0xfa, 0x78, 0xf0, 0xfd, 0xb4, 0x85, 0x0d, 0x4a, 0x53, 0x23, + 0x24, 0x9b, 0xee, 0xf6, 0x13, 0xa8, 0x01, 0x05, 0x32, 0x18, 0x1d, 0xfd, 0x25, 0xac, 0x6e, 0x9b, + 0x36, 0x5d, 0x43, 0x8b, 0x03, 0x4c, 0x53, 0x40, 0x82, 0xf3, 0x6b, 0x9c, 0x61, 0xc5, 0x6c, 0xe1, + 0x85, 0x54, 0x63, 0xbd, 0x5e, 0x5f, 0x54, 0xf2, 0x02, 0xe5, 0xa2, 0x69, 0x13, 0x85, 0xda, 0x31, + 0x3d, 0x01, 0xe7, 0x99, 0x42, 0xed, 0x98, 0x42, 0xbc, 0xe7, 0x60, 0xb2, 0xd9, 0x64, 0x7d, 0xd6, + 0x9b, 0x2a, 0x0f, 0xc6, 0x9c, 0x69, 0x29, 0x24, 0xac, 0x66, 0xf3, 0x12, 0x23, 0xe0, 0x3a, 0xee, + 0xa0, 0x27, 0xe1, 0x0e, 0x5f, 0x58, 0x41, 0xc6, 0x89, 0xbe, 0x5e, 0xf6, 0xb2, 0x9e, 0x83, 0x49, + 0x6b, 0xbf, 0x9f, 0x11, 0x85, 0xde, 0x68, 0xed, 0xf7, 0xb2, 0x3d, 0x0e, 0x53, 0xd6, 0xae, 0xd5, + 0xcf, 0x77, 0x3a, 0xc8, 0x87, 0xac, 0x5d, 0xab, 0x97, 0xf1, 0x3e, 0x1a, 0x99, 0xdb, 0xb8, 0xa9, + 0xb9, 0xb8, 0x35, 0x7d, 0x34, 0x48, 0x1e, 0xa8, 0x40, 0xf3, 0x20, 0x35, 0x9b, 0x2a, 0x36, 0xb4, + 0xad, 0x36, 0x56, 0x35, 0x1b, 0x1b, 0x9a, 0x33, 0x3d, 0x4b, 0x89, 0x93, 0xae, 0xdd, 0xc5, 0x4a, + 0xb1, 0xd9, 0xac, 0xd3, 0xca, 0x0a, 0xad, 0x43, 0xa7, 0x61, 0xc2, 0xdc, 0x7a, 0xb1, 0xc9, 0x34, + 0x52, 0xb5, 0x6c, 0xbc, 0xad, 0xef, 0x4d, 0xdf, 0x4b, 0xc5, 0x5b, 0x22, 0x15, 0x54, 0x1f, 0xd7, + 0x69, 0x31, 0x3a, 0x05, 0x52, 0xd3, 0xd9, 0xd5, 0x6c, 0x8b, 0x9a, 0x64, 0xc7, 0xd2, 0x9a, 0x78, + 0xfa, 0x3e, 0x46, 0xca, 0xca, 0x57, 0x45, 0x31, 0x99, 0x11, 0xce, 0x0d, 0x7d, 0xdb, 0x15, 0x88, + 0x27, 0xd8, 0x8c, 0xa0, 0x65, 0x1c, 0xed, 0x24, 0x48, 0x44, 0x12, 0xa1, 0x17, 0x9f, 0xa4, 0x64, + 0x45, 0x6b, 0xd7, 0x0a, 0xbe, 0xf7, 0x1e, 0x18, 0x27, 0x94, 0xfe, 0x4b, 0x4f, 0x31, 0xc7, 0xcd, + 0xda, 0x0d, 0xbc, 0xf1, 0x31, 0x38, 0x42, 0x88, 0x3a, 0xd8, 0xd5, 0x5a, 0x9a, 0xab, 0x05, 0xa8, + 0x1f, 0xa4, 0xd4, 0x44, 0xec, 0x2b, 0xbc, 0x32, 0xd4, 0x4e, 0xbb, 0xbb, 0xb5, 0xef, 0x29, 0xd6, + 0x43, 0xac, 0x9d, 0xa4, 0x4c, 0xa8, 0xd6, 0x9b, 0xe6, 0x9c, 0xcb, 0x0b, 0x50, 0x08, 0xea, 0x3d, + 0xca, 0x01, 0xd3, 0x7c, 0x29, 0x46, 0x9c, 0xa0, 0xda, 0xda, 0x22, 0x71, 0x5f, 0x5e, 0xa8, 0x4b, + 0x71, 0xe2, 0x46, 0x2d, 0x2f, 0x6d, 0xd4, 0x55, 0x65, 0x73, 0x75, 0x63, 0x69, 0xa5, 0x2e, 0x25, + 0x02, 0x8e, 0xfd, 0x95, 0x64, 0xf6, 0x7e, 0xe9, 0x04, 0xf1, 0x1a, 0x8a, 0xe1, 0x48, 0x0d, 0xbd, + 0x0d, 0x8e, 0x8a, 0xb4, 0x8a, 0x83, 0x5d, 0xf5, 0x86, 0x6e, 0xd3, 0x09, 0xd9, 0xd1, 0xd8, 0xe2, + 0xe8, 0xe9, 0xcf, 0x14, 0xa7, 0x6a, 0x60, 0xf7, 0x59, 0xdd, 0x26, 0xd3, 0xad, 0xa3, 0xb9, 0x68, + 0x19, 0x66, 0x0d, 0x53, 0x75, 0x5c, 0xcd, 0x68, 0x69, 0x76, 0x4b, 0xf5, 0x13, 0x5a, 0xaa, 0xd6, + 0x6c, 0x62, 0xc7, 0x31, 0xd9, 0x42, 0xe8, 0xa1, 0xdc, 0x69, 0x98, 0x0d, 0x4e, 0xec, 0xaf, 0x10, + 0x15, 0x4e, 0xda, 0xa3, 0xbe, 0x89, 0x61, 0xea, 0x7b, 0x1c, 0x72, 0x1d, 0xcd, 0x52, 0xb1, 0xe1, + 0xda, 0xfb, 0xd4, 0x3f, 0xcf, 0x2a, 0xd9, 0x8e, 0x66, 0xd5, 0xc9, 0xf3, 0x5b, 0x12, 0x26, 0x5d, + 0x49, 0x66, 0x93, 0x52, 0xea, 0x4a, 0x32, 0x9b, 0x92, 0xd2, 0x57, 0x92, 0xd9, 0xb4, 0x94, 0xb9, + 0x92, 0xcc, 0x66, 0xa5, 0xdc, 0x95, 0x64, 0x36, 0x27, 0x81, 0xfc, 0xd3, 0x49, 0x28, 0x04, 0x3d, + 0x78, 0x12, 0x10, 0x35, 0xe9, 0x1a, 0x16, 0xa3, 0x56, 0xee, 0x9e, 0x03, 0xfd, 0xfd, 0xf9, 0x1a, + 0x59, 0xdc, 0x16, 0xd2, 0xcc, 0x5d, 0x56, 0x18, 0x27, 0x71, 0x2c, 0x88, 0xfa, 0x61, 0xe6, 0x9e, + 0x64, 0x15, 0xfe, 0x84, 0x2e, 0x41, 0xfa, 0x45, 0x87, 0x62, 0xa7, 0x29, 0xf6, 0xbd, 0x07, 0x63, + 0x5f, 0x69, 0x50, 0xf0, 0xdc, 0x95, 0x86, 0xba, 0xba, 0xa6, 0xac, 0x54, 0x96, 0x15, 0xce, 0x8e, + 0x8e, 0x41, 0xb2, 0xad, 0xbd, 0xb4, 0x1f, 0x5e, 0x06, 0x69, 0x11, 0x9a, 0x87, 0x52, 0xd7, 0xb8, + 0x8e, 0x6d, 0x7d, 0x5b, 0xc7, 0x2d, 0x95, 0x52, 0x95, 0x82, 0x54, 0x45, 0xbf, 0x76, 0x99, 0xd0, + 0x8f, 0x38, 0x8c, 0xc7, 0x20, 0x79, 0x03, 0x6b, 0xd7, 0xc2, 0x8b, 0x15, 0x2d, 0x7a, 0x13, 0xa7, + 0xd3, 0x19, 0x48, 0x51, 0xf9, 0x22, 0x00, 0x2e, 0x61, 0x69, 0x0c, 0x65, 0x21, 0x59, 0x5b, 0x53, + 0xc8, 0x94, 0x92, 0xa0, 0xc0, 0x4a, 0xd5, 0xf5, 0xa5, 0x7a, 0xad, 0x2e, 0xc5, 0xe5, 0x73, 0x90, + 0x66, 0x42, 0x23, 0xd3, 0xcd, 0x13, 0x9b, 0x34, 0xc6, 0x1f, 0x39, 0x46, 0x4c, 0xd4, 0x6e, 0xae, + 0x54, 0xeb, 0x8a, 0x14, 0xef, 0x53, 0x16, 0xd9, 0x81, 0x42, 0xd0, 0x93, 0x7f, 0x6b, 0xc2, 0xf9, + 0x2f, 0xc5, 0x20, 0x1f, 0xf0, 0xcc, 0x89, 0x4b, 0xa5, 0xb5, 0xdb, 0xe6, 0x0d, 0x55, 0x6b, 0xeb, + 0x9a, 0xc3, 0x55, 0x09, 0x68, 0x51, 0x85, 0x94, 0x8c, 0x3a, 0x74, 0x6f, 0xd1, 0x24, 0x4b, 0x49, + 0x69, 0xf9, 0x63, 0x31, 0x90, 0x7a, 0x5d, 0xe3, 0x9e, 0x66, 0xc6, 0xfe, 0x2a, 0x9b, 0x29, 0x7f, + 0x34, 0x06, 0xc5, 0xb0, 0x3f, 0xdc, 0xd3, 0xbc, 0xbb, 0xff, 0x4a, 0x9b, 0xf7, 0x07, 0x71, 0x18, + 0x0f, 0x79, 0xc1, 0xa3, 0xb6, 0xee, 0x3d, 0x30, 0xa1, 0xb7, 0x70, 0xc7, 0x32, 0x5d, 0x6c, 0x34, + 0xf7, 0xd5, 0x36, 0xbe, 0x8e, 0xdb, 0xd3, 0x32, 0x35, 0x32, 0x67, 0x0e, 0xf6, 0xb3, 0xe7, 0x97, + 0x7c, 0xbe, 0x65, 0xc2, 0xb6, 0x30, 0xb9, 0xb4, 0x58, 0x5f, 0x59, 0x5f, 0xdb, 0xa8, 0xaf, 0xd6, + 0x9e, 0x57, 0x37, 0x57, 0x9f, 0x59, 0x5d, 0x7b, 0x76, 0x55, 0x91, 0xf4, 0x1e, 0xb2, 0x37, 0x71, + 0xda, 0xaf, 0x83, 0xd4, 0xdb, 0x28, 0x74, 0x14, 0x06, 0x35, 0x4b, 0x1a, 0x43, 0x93, 0x50, 0x5a, + 0x5d, 0x53, 0x1b, 0x4b, 0x8b, 0x75, 0xb5, 0x7e, 0xf1, 0x62, 0xbd, 0xb6, 0xd1, 0x60, 0x99, 0x13, + 0x8f, 0x7a, 0x23, 0x34, 0xc1, 0xe5, 0x0f, 0x27, 0x60, 0x72, 0x40, 0x4b, 0x50, 0x85, 0xc7, 0x3c, + 0x2c, 0x0c, 0x7b, 0x68, 0x94, 0xd6, 0xcf, 0x13, 0xaf, 0x63, 0x5d, 0xb3, 0x5d, 0x1e, 0x22, 0x9d, + 0x02, 0x22, 0x25, 0xc3, 0x25, 0xc6, 0xd5, 0xe6, 0x19, 0x29, 0x16, 0x08, 0x95, 0xfc, 0x72, 0x96, + 0x94, 0x7a, 0x10, 0x90, 0x65, 0x3a, 0xba, 0xab, 0x5f, 0xc7, 0xaa, 0x6e, 0x88, 0xf4, 0x15, 0x09, + 0x8c, 0x92, 0x8a, 0x24, 0x6a, 0x96, 0x0c, 0xd7, 0xa3, 0x36, 0xf0, 0x8e, 0xd6, 0x43, 0x4d, 0x8c, + 0x7f, 0x42, 0x91, 0x44, 0x8d, 0x47, 0x7d, 0x37, 0x14, 0x5a, 0x66, 0x97, 0x78, 0x8b, 0x8c, 0x8e, + 0xac, 0x35, 0x31, 0x25, 0xcf, 0xca, 0x3c, 0x12, 0x1e, 0x07, 0xf8, 0x79, 0xb3, 0x82, 0x92, 0x67, + 0x65, 0x8c, 0xe4, 0x04, 0x94, 0xb4, 0x9d, 0x1d, 0x9b, 0x80, 0x0b, 0x20, 0x16, 0xd9, 0x14, 0xbd, + 0x62, 0x4a, 0x58, 0xbe, 0x02, 0x59, 0x21, 0x07, 0xb2, 0xd8, 0x13, 0x49, 0xa8, 0x16, 0x0b, 0xd7, + 0xe3, 0x27, 0x73, 0x4a, 0xd6, 0x10, 0x95, 0x77, 0x43, 0x41, 0x77, 0x54, 0x7f, 0x1b, 0x20, 0x3e, + 0x17, 0x3f, 0x99, 0x55, 0xf2, 0xba, 0xe3, 0xa5, 0x50, 0xe5, 0x4f, 0xc5, 0xa1, 0x18, 0xde, 0xc6, + 0x40, 0x8b, 0x90, 0x6d, 0x9b, 0x4d, 0x8d, 0xaa, 0x16, 0xdb, 0x43, 0x3b, 0x19, 0xb1, 0xf3, 0x31, + 0xbf, 0xcc, 0xe9, 0x15, 0x8f, 0xb3, 0xfc, 0xef, 0x62, 0x90, 0x15, 0xc5, 0xe8, 0x08, 0x24, 0x2d, + 0xcd, 0xdd, 0xa5, 0x70, 0xa9, 0x6a, 0x5c, 0x8a, 0x29, 0xf4, 0x99, 0x94, 0x3b, 0x96, 0x66, 0x50, + 0x15, 0xe0, 0xe5, 0xe4, 0x99, 0x8c, 0x6b, 0x1b, 0x6b, 0x2d, 0x1a, 0x36, 0x99, 0x9d, 0x0e, 0x36, + 0x5c, 0x47, 0x8c, 0x2b, 0x2f, 0xaf, 0xf1, 0x62, 0xf4, 0x00, 0x4c, 0xb8, 0xb6, 0xa6, 0xb7, 0x43, + 0xb4, 0x49, 0x4a, 0x2b, 0x89, 0x0a, 0x8f, 0x78, 0x01, 0x8e, 0x09, 0xdc, 0x16, 0x76, 0xb5, 0xe6, + 0x2e, 0x6e, 0xf9, 0x4c, 0x69, 0x9a, 0x1e, 0x39, 0xca, 0x09, 0x16, 0x79, 0xbd, 0xe0, 0x95, 0xbf, + 0x1a, 0x83, 0x09, 0x11, 0xe8, 0xb5, 0x3c, 0x61, 0xad, 0x00, 0x68, 0x86, 0x61, 0xba, 0x41, 0x71, + 0xf5, 0xab, 0x72, 0x1f, 0xdf, 0x7c, 0xc5, 0x63, 0x52, 0x02, 0x00, 0xe5, 0x0e, 0x80, 0x5f, 0x33, + 0x54, 0x6c, 0xb3, 0x90, 0xe7, 0x7b, 0x54, 0x74, 0xa3, 0x93, 0xa5, 0x06, 0x80, 0x15, 0x91, 0x88, + 0x10, 0x4d, 0x41, 0x6a, 0x0b, 0xef, 0xe8, 0x06, 0xcf, 0x3c, 0xb3, 0x07, 0x91, 0xc0, 0x49, 0x7a, + 0x09, 0x9c, 0xea, 0xdf, 0x84, 0xc9, 0xa6, 0xd9, 0xe9, 0x6d, 0x6e, 0x55, 0xea, 0x49, 0x4f, 0x38, + 0x97, 0x63, 0x2f, 0x3c, 0xc4, 0x89, 0x76, 0xcc, 0xb6, 0x66, 0xec, 0xcc, 0x9b, 0xf6, 0x8e, 0xbf, + 0x51, 0x4b, 0x3c, 0x24, 0x27, 0xb0, 0x5d, 0x6b, 0x6d, 0xfd, 0xaf, 0x58, 0xec, 0xe7, 0xe3, 0x89, + 0x4b, 0xeb, 0xd5, 0x5f, 0x8a, 0x97, 0x2f, 0x31, 0xc6, 0x75, 0x21, 0x0c, 0x05, 0x6f, 0xb7, 0x71, + 0x93, 0x74, 0x10, 0xfe, 0xf8, 0x01, 0x98, 0xda, 0x31, 0x77, 0x4c, 0x8a, 0x74, 0x86, 0xfc, 0xe2, + 0x3b, 0xbd, 0x39, 0xaf, 0xb4, 0x1c, 0xb9, 0x2d, 0xbc, 0xb0, 0x0a, 0x93, 0x9c, 0x58, 0xa5, 0x5b, + 0x4d, 0x2c, 0x10, 0x42, 0x07, 0x66, 0xe1, 0xa6, 0x7f, 0xe5, 0xeb, 0x74, 0xf9, 0x56, 0x26, 0x38, + 0x2b, 0xa9, 0x63, 0xb1, 0xd2, 0x82, 0x02, 0x77, 0x84, 0xf0, 0xd8, 0x24, 0xc5, 0x76, 0x04, 0xe2, + 0xbf, 0xe4, 0x88, 0x93, 0x01, 0xc4, 0x06, 0x67, 0x5d, 0xa8, 0xc1, 0xf8, 0x61, 0xb0, 0xfe, 0x15, + 0xc7, 0x2a, 0xe0, 0x20, 0xc8, 0x25, 0x28, 0x51, 0x90, 0x66, 0xd7, 0x71, 0xcd, 0x0e, 0xb5, 0x80, + 0x07, 0xc3, 0xfc, 0xeb, 0xaf, 0xb3, 0x59, 0x53, 0x24, 0x6c, 0x35, 0x8f, 0x6b, 0x61, 0x01, 0xe8, + 0xee, 0x5a, 0x0b, 0x37, 0xdb, 0x11, 0x08, 0x5f, 0xe6, 0x0d, 0xf1, 0xe8, 0x17, 0xae, 0xc2, 0x14, + 0xf9, 0x4d, 0x0d, 0x54, 0xb0, 0x25, 0xd1, 0x29, 0xbb, 0xe9, 0xaf, 0xbe, 0x97, 0x4d, 0xcc, 0x49, + 0x0f, 0x20, 0xd0, 0xa6, 0xc0, 0x28, 0xee, 0x60, 0xd7, 0xc5, 0xb6, 0xa3, 0x6a, 0xed, 0x41, 0xcd, + 0x0b, 0xe4, 0x3c, 0xa6, 0x7f, 0xee, 0xdb, 0xe1, 0x51, 0xbc, 0xc4, 0x38, 0x2b, 0xed, 0xf6, 0xc2, + 0x26, 0x1c, 0x1d, 0xa0, 0x15, 0x23, 0x60, 0x7e, 0x98, 0x63, 0x4e, 0xf5, 0x69, 0x06, 0x81, 0x5d, + 0x07, 0x51, 0xee, 0x8d, 0xe5, 0x08, 0x98, 0x1f, 0xe1, 0x98, 0x88, 0xf3, 0x8a, 0x21, 0x25, 0x88, + 0x57, 0x60, 0xe2, 0x3a, 0xb6, 0xb7, 0x4c, 0x87, 0xe7, 0x99, 0x46, 0x80, 0xfb, 0x28, 0x87, 0x2b, + 0x71, 0x46, 0x9a, 0x78, 0x22, 0x58, 0x4f, 0x42, 0x76, 0x5b, 0x6b, 0xe2, 0x11, 0x20, 0x6e, 0x71, + 0x88, 0x0c, 0xa1, 0x27, 0xac, 0x15, 0x28, 0xec, 0x98, 0x7c, 0x8d, 0x8a, 0x66, 0xff, 0x18, 0x67, + 0xcf, 0x0b, 0x1e, 0x0e, 0x61, 0x99, 0x56, 0xb7, 0x4d, 0x16, 0xb0, 0x68, 0x88, 0xbf, 0x2f, 0x20, + 0x04, 0x0f, 0x87, 0x38, 0x84, 0x58, 0x5f, 0x11, 0x10, 0x4e, 0x40, 0x9e, 0x4f, 0x43, 0xde, 0x34, + 0xda, 0xfb, 0xa6, 0x31, 0x4a, 0x23, 0x3e, 0xce, 0x11, 0x80, 0xb3, 0x10, 0x80, 0x0b, 0x90, 0x1b, + 0x75, 0x20, 0x7e, 0xe1, 0xdb, 0x62, 0x7a, 0x88, 0x11, 0xb8, 0x04, 0x25, 0x61, 0xa0, 0x74, 0xd3, + 0x18, 0x01, 0xe2, 0x93, 0x1c, 0xa2, 0x18, 0x60, 0xe3, 0xdd, 0x70, 0xb1, 0xe3, 0xee, 0xe0, 0x51, + 0x40, 0x3e, 0x25, 0xba, 0xc1, 0x59, 0xb8, 0x28, 0xb7, 0xb0, 0xd1, 0xdc, 0x1d, 0x0d, 0xe1, 0xd3, + 0x42, 0x94, 0x82, 0x87, 0x40, 0xd4, 0x60, 0xbc, 0xa3, 0xd9, 0xce, 0xae, 0xd6, 0x1e, 0x69, 0x38, + 0x7e, 0x91, 0x63, 0x14, 0x3c, 0x26, 0x2e, 0x91, 0xae, 0x71, 0x18, 0x98, 0x5f, 0x12, 0x12, 0x09, + 0xb0, 0xf1, 0xa9, 0xe7, 0xb8, 0x34, 0x29, 0x77, 0x18, 0xb4, 0x7f, 0x28, 0xa6, 0x1e, 0xe3, 0x5d, + 0x09, 0x22, 0x5e, 0x80, 0x9c, 0xa3, 0xbf, 0x34, 0x12, 0xcc, 0x3f, 0x12, 0x23, 0x4d, 0x19, 0x08, + 0xf3, 0xf3, 0x70, 0x6c, 0xe0, 0x32, 0x31, 0x02, 0xd8, 0x3f, 0xe6, 0x60, 0x47, 0x06, 0x2c, 0x15, + 0xdc, 0x24, 0x1c, 0x16, 0xf2, 0x97, 0x85, 0x49, 0xc0, 0x3d, 0x58, 0xeb, 0x24, 0x6a, 0x70, 0xb4, + 0xed, 0xc3, 0x49, 0xed, 0x9f, 0x08, 0xa9, 0x31, 0xde, 0x90, 0xd4, 0x36, 0xe0, 0x08, 0x47, 0x3c, + 0xdc, 0xb8, 0x7e, 0x46, 0x18, 0x56, 0xc6, 0xbd, 0x19, 0x1e, 0xdd, 0x1f, 0x84, 0xb2, 0x27, 0x4e, + 0xe1, 0x9e, 0x3a, 0x6a, 0x47, 0xb3, 0x46, 0x40, 0xfe, 0x15, 0x8e, 0x2c, 0x2c, 0xbe, 0xe7, 0xdf, + 0x3a, 0x2b, 0x9a, 0x45, 0xc0, 0x9f, 0x83, 0x69, 0x01, 0xde, 0x35, 0x6c, 0xdc, 0x34, 0x77, 0x0c, + 0xfd, 0x25, 0xdc, 0x1a, 0x01, 0xfa, 0x57, 0x7b, 0x86, 0x6a, 0x33, 0xc0, 0x4e, 0x90, 0x97, 0x40, + 0xf2, 0x7c, 0x15, 0x55, 0xef, 0x58, 0xa6, 0xed, 0x46, 0x20, 0x7e, 0x56, 0x8c, 0x94, 0xc7, 0xb7, + 0x44, 0xd9, 0x16, 0xea, 0xc0, 0x76, 0xaa, 0x47, 0x55, 0xc9, 0xcf, 0x71, 0xa0, 0x71, 0x9f, 0x8b, + 0x1b, 0x8e, 0xa6, 0xd9, 0xb1, 0x34, 0x7b, 0x14, 0xfb, 0xf7, 0x4f, 0x85, 0xe1, 0xe0, 0x2c, 0xdc, + 0x70, 0x10, 0x8f, 0x8e, 0xac, 0xf6, 0x23, 0x20, 0x7c, 0x5e, 0x18, 0x0e, 0xc1, 0xc3, 0x21, 0x84, + 0xc3, 0x30, 0x02, 0xc4, 0x17, 0x04, 0x84, 0xe0, 0x21, 0x10, 0xef, 0xf0, 0x17, 0x5a, 0x1b, 0xef, + 0xe8, 0x8e, 0x6b, 0x33, 0xa7, 0xf8, 0x60, 0xa8, 0x2f, 0x7e, 0x3b, 0xec, 0x84, 0x29, 0x01, 0x56, + 0x62, 0x89, 0x78, 0x9a, 0x96, 0xc6, 0x4c, 0xd1, 0x0d, 0xfb, 0x35, 0x61, 0x89, 0x02, 0x6c, 0xa4, + 0x6d, 0x01, 0x0f, 0x91, 0x88, 0xbd, 0x49, 0x22, 0x85, 0x11, 0xe0, 0xfe, 0x59, 0x4f, 0xe3, 0x1a, + 0x82, 0x97, 0x60, 0x06, 0xfc, 0x9f, 0xae, 0x71, 0x0d, 0xef, 0x8f, 0xa4, 0x9d, 0xbf, 0xde, 0xe3, + 0xff, 0x6c, 0x32, 0x4e, 0x66, 0x43, 0x4a, 0x3d, 0xfe, 0x14, 0x8a, 0x3a, 0x97, 0x34, 0xfd, 0xc3, + 0xaf, 0xf3, 0xfe, 0x86, 0xdd, 0xa9, 0x85, 0x65, 0xa2, 0xe4, 0x61, 0xa7, 0x27, 0x1a, 0xec, 0xbd, + 0xaf, 0x7b, 0x7a, 0x1e, 0xf2, 0x79, 0x16, 0x2e, 0xc2, 0x78, 0xc8, 0xe1, 0x89, 0x86, 0xfa, 0x51, + 0x0e, 0x55, 0x08, 0xfa, 0x3b, 0x0b, 0xe7, 0x20, 0x49, 0x9c, 0x97, 0x68, 0xf6, 0x1f, 0xe3, 0xec, + 0x94, 0x7c, 0xe1, 0x29, 0xc8, 0x0a, 0xa7, 0x25, 0x9a, 0xf5, 0x6f, 0x71, 0x56, 0x8f, 0x85, 0xb0, + 0x0b, 0x87, 0x25, 0x9a, 0xfd, 0x6f, 0x0b, 0x76, 0xc1, 0x42, 0xd8, 0x47, 0x17, 0xe1, 0x97, 0xfe, + 0x4e, 0x92, 0x2f, 0x3a, 0x42, 0x76, 0x17, 0x20, 0xc3, 0x3d, 0x95, 0x68, 0xee, 0x1f, 0xe7, 0x2f, + 0x17, 0x1c, 0x0b, 0x8f, 0x43, 0x6a, 0x44, 0x81, 0xff, 0x5d, 0xce, 0xca, 0xe8, 0x17, 0x6a, 0x90, + 0x0f, 0x78, 0x27, 0xd1, 0xec, 0xef, 0xe7, 0xec, 0x41, 0x2e, 0xd2, 0x74, 0xee, 0x9d, 0x44, 0x03, + 0xfc, 0xa4, 0x68, 0x3a, 0xe7, 0x20, 0x62, 0x13, 0x8e, 0x49, 0x34, 0xf7, 0x07, 0x84, 0xd4, 0x05, + 0xcb, 0xc2, 0xd3, 0x90, 0xf3, 0x16, 0x9b, 0x68, 0xfe, 0x9f, 0xe2, 0xfc, 0x3e, 0x0f, 0x91, 0x40, + 0x60, 0xb1, 0x8b, 0x86, 0xf8, 0x69, 0x21, 0x81, 0x00, 0x17, 0x99, 0x46, 0xbd, 0x0e, 0x4c, 0x34, + 0xd2, 0x07, 0xc5, 0x34, 0xea, 0xf1, 0x5f, 0xc8, 0x68, 0x52, 0x9b, 0x1f, 0x0d, 0xf1, 0xf7, 0xc4, + 0x68, 0x52, 0x7a, 0xd2, 0x8c, 0x5e, 0x8f, 0x20, 0x1a, 0xe3, 0x67, 0x45, 0x33, 0x7a, 0x1c, 0x82, + 0x85, 0x75, 0x40, 0xfd, 0xde, 0x40, 0x34, 0xde, 0x87, 0x38, 0xde, 0x44, 0x9f, 0x33, 0xb0, 0xf0, + 0x2c, 0x1c, 0x19, 0xec, 0x09, 0x44, 0xa3, 0xfe, 0xdc, 0xeb, 0x3d, 0xb1, 0x5b, 0xd0, 0x11, 0x58, + 0xd8, 0xf0, 0x97, 0x94, 0xa0, 0x17, 0x10, 0x0d, 0xfb, 0xe1, 0xd7, 0xc3, 0x86, 0x3b, 0xe8, 0x04, + 0x2c, 0x54, 0x00, 0xfc, 0x05, 0x38, 0x1a, 0xeb, 0xa3, 0x1c, 0x2b, 0xc0, 0x44, 0xa6, 0x06, 0x5f, + 0x7f, 0xa3, 0xf9, 0x6f, 0x89, 0xa9, 0xc1, 0x39, 0xc8, 0xd4, 0x10, 0x4b, 0x6f, 0x34, 0xf7, 0xc7, + 0xc4, 0xd4, 0x10, 0x2c, 0x44, 0xb3, 0x03, 0xab, 0x5b, 0x34, 0xc2, 0xc7, 0x85, 0x66, 0x07, 0xb8, + 0x16, 0x56, 0x61, 0xa2, 0x6f, 0x41, 0x8c, 0x86, 0xfa, 0x79, 0x0e, 0x25, 0xf5, 0xae, 0x87, 0xc1, + 0xc5, 0x8b, 0x2f, 0x86, 0xd1, 0x68, 0x9f, 0xe8, 0x59, 0xbc, 0xf8, 0x5a, 0xb8, 0x70, 0x01, 0xb2, + 0x46, 0xb7, 0xdd, 0x26, 0x93, 0x07, 0x1d, 0x7c, 0x96, 0x70, 0xfa, 0xbf, 0x7d, 0x97, 0x4b, 0x47, + 0x30, 0x2c, 0x9c, 0x83, 0x14, 0xee, 0x6c, 0xe1, 0x56, 0x14, 0xe7, 0xb7, 0xbe, 0x2b, 0x0c, 0x26, + 0xa1, 0x5e, 0x78, 0x1a, 0x80, 0xa5, 0x46, 0xe8, 0xe6, 0x61, 0x04, 0xef, 0x1f, 0x7d, 0x97, 0x1f, + 0xde, 0xf1, 0x59, 0x7c, 0x00, 0x76, 0x14, 0xe8, 0x60, 0x80, 0x6f, 0x87, 0x01, 0xe8, 0x88, 0x3c, + 0x09, 0x99, 0x17, 0x1d, 0xd3, 0x70, 0xb5, 0x9d, 0x28, 0xee, 0x3f, 0xe6, 0xdc, 0x82, 0x9e, 0x08, + 0xac, 0x63, 0xda, 0xd8, 0xd5, 0x76, 0x9c, 0x28, 0xde, 0xff, 0xce, 0x79, 0x3d, 0x06, 0xc2, 0xdc, + 0xd4, 0x1c, 0x77, 0x94, 0x7e, 0xff, 0x89, 0x60, 0x16, 0x0c, 0xa4, 0xd1, 0xe4, 0xf7, 0x35, 0xbc, + 0x1f, 0xc5, 0xfb, 0xa7, 0xa2, 0xd1, 0x9c, 0x7e, 0xe1, 0x29, 0xc8, 0x91, 0x9f, 0xec, 0x44, 0x5e, + 0x04, 0xf3, 0x9f, 0x71, 0x66, 0x9f, 0x83, 0xbc, 0xd9, 0x71, 0x5b, 0xae, 0x1e, 0x2d, 0xec, 0xef, + 0xf0, 0x91, 0x16, 0xf4, 0x0b, 0x15, 0xc8, 0x3b, 0x6e, 0xab, 0xd5, 0xe5, 0xfe, 0x69, 0x04, 0xfb, + 0x9f, 0x7f, 0xd7, 0x4b, 0x59, 0x78, 0x3c, 0x64, 0xb4, 0x6f, 0x5c, 0x73, 0x2d, 0x93, 0x6e, 0x78, + 0x44, 0x21, 0xbc, 0xce, 0x11, 0x02, 0x2c, 0x0b, 0x35, 0x28, 0x90, 0xbe, 0xd8, 0xd8, 0xc2, 0x74, + 0x77, 0x2a, 0x02, 0xe2, 0x2f, 0xb8, 0x00, 0x42, 0x4c, 0xd5, 0x77, 0x7f, 0xf9, 0xb5, 0x99, 0xd8, + 0x57, 0x5e, 0x9b, 0x89, 0xfd, 0xc1, 0x6b, 0x33, 0xb1, 0x0f, 0x7c, 0x6d, 0x66, 0xec, 0x2b, 0x5f, + 0x9b, 0x19, 0xfb, 0xbd, 0xaf, 0xcd, 0x8c, 0x0d, 0xce, 0x12, 0xc3, 0x25, 0xf3, 0x92, 0xc9, 0xf2, + 0xc3, 0x2f, 0xdc, 0xb7, 0xa3, 0xbb, 0xbb, 0xdd, 0xad, 0xf9, 0xa6, 0xd9, 0x39, 0xd3, 0x34, 0x9d, + 0x8e, 0xe9, 0x9c, 0x09, 0xe7, 0x75, 0xe9, 0x2f, 0xf8, 0x3f, 0x31, 0x12, 0x33, 0x87, 0xd3, 0xb9, + 0x9a, 0xb1, 0x3f, 0xec, 0xf3, 0x9e, 0xf3, 0x90, 0xa8, 0x18, 0xfb, 0xe8, 0x18, 0x33, 0x70, 0x6a, + 0xd7, 0x6e, 0xf3, 0x63, 0x61, 0x19, 0xf2, 0xbc, 0x69, 0xb7, 0xd1, 0x94, 0x7f, 0x76, 0x33, 0x76, + 0xb2, 0xc0, 0x0f, 0x64, 0x56, 0xdf, 0x1f, 0x3b, 0x5c, 0x4f, 0xb2, 0x15, 0x63, 0x9f, 0x76, 0x64, + 0x3d, 0xf6, 0xc2, 0x83, 0x91, 0x79, 0xee, 0x6b, 0x86, 0x79, 0xc3, 0x20, 0xcd, 0xb6, 0xb6, 0x44, + 0x8e, 0x7b, 0xa6, 0x37, 0xc7, 0xfd, 0x2c, 0x6e, 0xb7, 0x9f, 0x21, 0x74, 0x1b, 0x84, 0x65, 0x2b, + 0xcd, 0x4e, 0x20, 0xc3, 0x07, 0xe3, 0x30, 0xd3, 0x97, 0xce, 0xe6, 0x4a, 0x30, 0x4c, 0x08, 0x0b, + 0x90, 0x5d, 0x14, 0xba, 0x35, 0x0d, 0x19, 0x07, 0x37, 0x4d, 0xa3, 0xe5, 0x50, 0x41, 0x24, 0x14, + 0xf1, 0x48, 0x04, 0x61, 0x68, 0x86, 0xe9, 0xf0, 0x83, 0x95, 0xec, 0xa1, 0xfa, 0x91, 0x43, 0x0a, + 0x62, 0x5c, 0xbc, 0x49, 0x48, 0xe3, 0x91, 0x11, 0xa5, 0x21, 0x3a, 0x11, 0xca, 0xfc, 0x8f, 0x2a, + 0x95, 0x9f, 0x8d, 0xc3, 0x6c, 0xaf, 0x54, 0xc8, 0xcc, 0x72, 0x5c, 0xad, 0x63, 0x0d, 0x13, 0xcb, + 0x05, 0xc8, 0x6d, 0x08, 0x9a, 0x43, 0xcb, 0xe5, 0xd6, 0x21, 0xe5, 0x52, 0xf4, 0x5e, 0x25, 0x04, + 0x73, 0x76, 0x44, 0xc1, 0x78, 0xfd, 0xb8, 0x2d, 0xc9, 0xfc, 0x65, 0x1a, 0x8e, 0xb1, 0xe9, 0xa4, + 0xb2, 0xa9, 0xc4, 0x1e, 0xb8, 0x4c, 0x0a, 0xc1, 0xaa, 0xe8, 0x7d, 0x12, 0xf9, 0x19, 0x98, 0x5c, + 0x22, 0xd6, 0x82, 0x44, 0x41, 0xfe, 0x0e, 0xcf, 0xc0, 0xb3, 0xa7, 0x73, 0x21, 0x87, 0x9f, 0xef, + 0x30, 0x05, 0x8b, 0xe4, 0x1f, 0x8e, 0x81, 0xd4, 0x68, 0x6a, 0x6d, 0xcd, 0xfe, 0x5e, 0xa1, 0xd0, + 0xe3, 0x00, 0xf4, 0x9b, 0x25, 0xff, 0x23, 0xa3, 0xe2, 0xd9, 0xe9, 0xf9, 0x60, 0xe7, 0xe6, 0xd9, + 0x9b, 0xe8, 0x17, 0x0c, 0x39, 0x4a, 0x4b, 0x7e, 0x9e, 0x7e, 0x0e, 0xc0, 0xaf, 0x40, 0xc7, 0xe1, + 0x68, 0xa3, 0x56, 0x59, 0xae, 0x28, 0x2a, 0x3b, 0x0c, 0xbf, 0xda, 0x58, 0xaf, 0xd7, 0x96, 0x2e, + 0x2e, 0xd5, 0x17, 0xa5, 0x31, 0x74, 0x04, 0x50, 0xb0, 0xd2, 0x3b, 0x97, 0x72, 0x07, 0x4c, 0x04, + 0xcb, 0xd9, 0x89, 0xfa, 0x38, 0xf1, 0x14, 0xf5, 0x8e, 0xd5, 0xc6, 0x74, 0xeb, 0x4f, 0xd5, 0x85, + 0xd4, 0xa2, 0x9d, 0x90, 0xdf, 0xfe, 0x0f, 0xec, 0x94, 0xf5, 0xa4, 0xcf, 0xee, 0xc9, 0x7c, 0x61, + 0x19, 0x26, 0xb4, 0x66, 0x13, 0x5b, 0x21, 0xc8, 0x08, 0x53, 0x4d, 0x00, 0xe9, 0x66, 0x26, 0xe7, + 0xf4, 0xd1, 0x1e, 0x87, 0xb4, 0x43, 0x7b, 0x1f, 0x05, 0xf1, 0x3b, 0x1c, 0x82, 0x93, 0x2f, 0x18, + 0x30, 0x41, 0x3c, 0x3f, 0xcd, 0xc6, 0x81, 0x66, 0x1c, 0x9c, 0x67, 0xf8, 0x8d, 0xcf, 0x3e, 0x4c, + 0xb7, 0x36, 0xef, 0x0e, 0x0f, 0xcb, 0x00, 0x75, 0x52, 0x24, 0x8e, 0xed, 0x37, 0x14, 0x43, 0x51, + 0xbc, 0x8f, 0x37, 0xf8, 0xe0, 0x97, 0xfd, 0x26, 0x7f, 0xd9, 0xcc, 0x20, 0x1d, 0x08, 0xbc, 0x69, + 0x9c, 0xa3, 0xb2, 0x8a, 0x6a, 0x7d, 0xd8, 0x9c, 0x7e, 0xe1, 0x81, 0xfe, 0xd5, 0x89, 0xfd, 0xf7, + 0x10, 0x45, 0xbe, 0x10, 0x7c, 0x8d, 0x37, 0xf7, 0x3e, 0x92, 0x84, 0x09, 0xad, 0xa3, 0x1b, 0xe6, + 0x19, 0xfa, 0x2f, 0x9f, 0x73, 0x29, 0xfa, 0x30, 0xc2, 0xa6, 0xe4, 0x79, 0x36, 0x15, 0xa2, 0x35, + 0xe6, 0xcf, 0x7e, 0xe2, 0x93, 0x29, 0x7f, 0xba, 0x2c, 0xac, 0x80, 0x24, 0x0e, 0x1c, 0x62, 0xa3, + 0x69, 0xb6, 0x46, 0xca, 0x52, 0x7c, 0x47, 0x60, 0x88, 0xfc, 0x56, 0x9d, 0xb3, 0x2e, 0xbc, 0x0d, + 0xb2, 0x1e, 0x4c, 0x94, 0x67, 0x22, 0x40, 0x3c, 0x0e, 0xe2, 0x97, 0xb0, 0x99, 0x39, 0x8a, 0x17, + 0xfa, 0xba, 0xe0, 0x67, 0x33, 0x74, 0x95, 0xf4, 0xe6, 0x12, 0x14, 0x5b, 0xa6, 0xe1, 0xaa, 0x66, + 0x47, 0x77, 0x71, 0xc7, 0x72, 0x23, 0xfd, 0xba, 0xbf, 0x60, 0x20, 0x59, 0x65, 0x9c, 0xf0, 0xad, + 0x09, 0x36, 0xd2, 0x12, 0xf6, 0x4d, 0xd1, 0x28, 0x2d, 0xf9, 0x1f, 0x5e, 0x4b, 0x28, 0x0f, 0x69, + 0xc9, 0x6d, 0x69, 0x87, 0xd3, 0xba, 0xc6, 0x8d, 0xb9, 0xbb, 0xc7, 0xb4, 0xc0, 0xd3, 0x8e, 0x3f, + 0x49, 0xc0, 0x0c, 0x27, 0xde, 0xd2, 0x1c, 0x7c, 0xe6, 0xfa, 0x23, 0x5b, 0xd8, 0xd5, 0x1e, 0x39, + 0xd3, 0x34, 0x75, 0xb1, 0x92, 0x4f, 0x72, 0x63, 0x4d, 0xea, 0xe7, 0x79, 0x7d, 0x79, 0xe0, 0x76, + 0x77, 0x79, 0xb8, 0x91, 0x2f, 0xf7, 0xeb, 0xa0, 0xfc, 0x02, 0x24, 0x6b, 0xa6, 0x6e, 0x90, 0xb5, + 0xad, 0x85, 0x0d, 0xb3, 0xc3, 0xcd, 0x2d, 0x7b, 0x40, 0xe7, 0x21, 0xad, 0x75, 0xcc, 0xae, 0xe1, + 0x32, 0x53, 0x5b, 0x9d, 0xf9, 0xf2, 0xab, 0xb3, 0x63, 0xff, 0xe9, 0xd5, 0xd9, 0xc4, 0x92, 0xe1, + 0xfe, 0xee, 0xe7, 0x1e, 0x02, 0x8e, 0xbe, 0x64, 0xb8, 0x9f, 0xfe, 0xc6, 0x67, 0x4e, 0xc7, 0x14, + 0x4e, 0xbd, 0x90, 0xfc, 0xe6, 0x2b, 0xb3, 0x31, 0xf9, 0x39, 0xc8, 0x2c, 0xe2, 0xe6, 0x01, 0xf0, + 0x8f, 0xf4, 0xc0, 0x1f, 0x13, 0xf0, 0x8b, 0xb8, 0x19, 0x80, 0x5f, 0xc4, 0xcd, 0x1e, 0xe4, 0xc7, + 0x21, 0xbb, 0x64, 0xb8, 0xec, 0x73, 0x87, 0x07, 0x20, 0xa1, 0x1b, 0xec, 0x04, 0x6d, 0x00, 0xa1, + 0xaf, 0x81, 0x0a, 0xa1, 0x22, 0x8c, 0x8b, 0xb8, 0xe9, 0x31, 0xb6, 0x70, 0xb3, 0x97, 0xb1, 0xff, + 0xd5, 0x84, 0xaa, 0xba, 0xf8, 0x7b, 0xff, 0x75, 0x66, 0xec, 0xe5, 0xd7, 0x66, 0xc6, 0x86, 0x0e, + 0xbd, 0x1c, 0x3d, 0xf4, 0xde, 0x88, 0x7f, 0x32, 0x09, 0x77, 0xd1, 0xaf, 0xe0, 0xec, 0x8e, 0x6e, + 0xb8, 0x67, 0x9a, 0xf6, 0xbe, 0xe5, 0x9a, 0xc4, 0x00, 0x98, 0xdb, 0x7c, 0xc0, 0x27, 0xfc, 0xea, + 0x79, 0x56, 0x3d, 0x78, 0xb8, 0xe5, 0x6d, 0x48, 0xad, 0x13, 0x3e, 0x22, 0x62, 0xd7, 0x74, 0xb5, + 0x36, 0xf7, 0x5a, 0xd8, 0x03, 0x29, 0x65, 0x5f, 0xce, 0xc5, 0x59, 0xa9, 0x2e, 0x3e, 0x9a, 0x6b, + 0x63, 0x6d, 0x9b, 0x7d, 0x80, 0x90, 0xa0, 0xee, 0x6e, 0x96, 0x14, 0xd0, 0x6f, 0x0d, 0xa6, 0x20, + 0xa5, 0x75, 0xd9, 0xc9, 0x97, 0x04, 0xf1, 0x83, 0xe9, 0x83, 0xfc, 0x0c, 0x64, 0xf8, 0xfe, 0x3b, + 0x92, 0x20, 0x71, 0x0d, 0xef, 0xd3, 0xf7, 0x14, 0x14, 0xf2, 0x13, 0xcd, 0x43, 0x8a, 0x36, 0x9e, + 0x7f, 0x59, 0x35, 0x3d, 0xdf, 0xd7, 0xfa, 0x79, 0xda, 0x48, 0x85, 0x91, 0xc9, 0x57, 0x20, 0xbb, + 0x68, 0x12, 0x2d, 0x0c, 0xa3, 0xe5, 0x18, 0x1a, 0x6d, 0xb3, 0xd5, 0xe5, 0x5a, 0xa1, 0xb0, 0x07, + 0x74, 0x04, 0xd2, 0xec, 0x83, 0x14, 0x7e, 0x7a, 0x87, 0x3f, 0xc9, 0x35, 0xc8, 0x50, 0xec, 0x35, + 0x8b, 0xb8, 0x0c, 0xde, 0xd9, 0xdf, 0x1c, 0xff, 0x3c, 0x91, 0xc3, 0xc7, 0xfd, 0xc6, 0x22, 0x48, + 0xb6, 0x34, 0x57, 0xe3, 0xfd, 0xa6, 0xbf, 0xe5, 0xb7, 0x43, 0x96, 0x83, 0x38, 0xe8, 0x2c, 0x24, + 0x4c, 0xcb, 0xe1, 0xe7, 0x6f, 0xca, 0xc3, 0xba, 0xb2, 0x66, 0x55, 0x93, 0x44, 0x67, 0x14, 0x42, + 0x5c, 0x5d, 0x1d, 0xaa, 0x16, 0x8f, 0x85, 0xd4, 0xa2, 0x83, 0xdd, 0xad, 0x6d, 0xd7, 0xff, 0xc1, + 0x86, 0xb3, 0x4f, 0x15, 0x3c, 0x45, 0xb9, 0x15, 0x87, 0x99, 0x40, 0xed, 0x75, 0x6c, 0x3b, 0xba, + 0x69, 0x30, 0x6d, 0xe2, 0x9a, 0x82, 0x02, 0x0d, 0xe4, 0xf5, 0x43, 0x54, 0xe5, 0x29, 0x48, 0x54, + 0x2c, 0x0b, 0x95, 0x21, 0x4b, 0x9f, 0x9b, 0x26, 0xd3, 0x95, 0xa4, 0xe2, 0x3d, 0x93, 0x3a, 0xc7, + 0xdc, 0x76, 0x6f, 0x68, 0xb6, 0xf7, 0xbd, 0xa6, 0x78, 0x96, 0x9f, 0x84, 0x5c, 0xcd, 0x34, 0x1c, + 0x6c, 0x38, 0x5d, 0xea, 0x0b, 0x6f, 0xb5, 0xcd, 0xe6, 0x35, 0x8e, 0xc0, 0x1e, 0x88, 0xb0, 0x35, + 0xcb, 0xa2, 0x9c, 0x49, 0x85, 0xfc, 0x64, 0xf3, 0xb5, 0xba, 0x36, 0x54, 0x3c, 0xe7, 0x0e, 0x27, + 0x1e, 0xde, 0x41, 0xdf, 0xa9, 0x8d, 0xc1, 0x9d, 0xfd, 0x13, 0xe9, 0x1a, 0xde, 0x77, 0x0e, 0x3b, + 0x8f, 0x9e, 0x83, 0xdc, 0x3a, 0xbd, 0x30, 0xe1, 0x19, 0xbc, 0x8f, 0xca, 0x90, 0xc1, 0xad, 0xb3, + 0xe7, 0xce, 0x3d, 0xf2, 0x24, 0xd3, 0xf2, 0xcb, 0x63, 0x8a, 0x28, 0x40, 0x33, 0x90, 0x73, 0x70, + 0xd3, 0x3a, 0x7b, 0xee, 0xfc, 0xb5, 0x47, 0x98, 0x5a, 0x5d, 0x1e, 0x53, 0xfc, 0xa2, 0x85, 0x2c, + 0xe9, 0xf1, 0x37, 0x3f, 0x3e, 0x1b, 0xab, 0xa6, 0x20, 0xe1, 0x74, 0x3b, 0x6f, 0x9a, 0x6e, 0xfc, + 0x4c, 0x0a, 0xe6, 0x02, 0xb5, 0x6c, 0x71, 0xb9, 0xae, 0xb5, 0xf5, 0x96, 0xe6, 0x5f, 0x73, 0x21, + 0x05, 0xfa, 0x4f, 0x29, 0x86, 0xac, 0x1a, 0x07, 0x4a, 0x51, 0xfe, 0xd5, 0x18, 0x14, 0xae, 0x0a, + 0xe4, 0x06, 0x76, 0xd1, 0x05, 0x00, 0xef, 0x4d, 0x62, 0xaa, 0x1c, 0x9f, 0xef, 0x7d, 0xd7, 0xbc, + 0xc7, 0xa3, 0x04, 0xc8, 0xd1, 0xe3, 0x54, 0x01, 0x2d, 0xd3, 0xe1, 0xdf, 0xee, 0x45, 0xb0, 0x7a, + 0xc4, 0xe8, 0x41, 0x40, 0xd4, 0xaa, 0xa9, 0xd7, 0x4d, 0x57, 0x37, 0x76, 0x54, 0xcb, 0xbc, 0xc1, + 0xbf, 0x88, 0x4e, 0x28, 0x12, 0xad, 0xb9, 0x4a, 0x2b, 0xd6, 0x49, 0x39, 0x69, 0x74, 0xce, 0x43, + 0x21, 0x61, 0x9d, 0xd6, 0x6a, 0xd9, 0xd8, 0x71, 0xb8, 0xe1, 0x12, 0x8f, 0xe8, 0x02, 0x64, 0xac, + 0xee, 0x96, 0x2a, 0xac, 0x44, 0xfe, 0xec, 0x9d, 0x83, 0xe6, 0xbc, 0xd0, 0x0d, 0x3e, 0xeb, 0xd3, + 0x56, 0x77, 0x8b, 0x68, 0xca, 0xdd, 0x50, 0x18, 0xd0, 0x98, 0xfc, 0x75, 0xbf, 0x1d, 0xf4, 0x8e, + 0x0e, 0xde, 0x03, 0xd5, 0xb2, 0x75, 0xd3, 0xd6, 0xdd, 0x7d, 0x7a, 0x70, 0x2e, 0xa1, 0x48, 0xa2, + 0x62, 0x9d, 0x97, 0xcb, 0xd7, 0xa0, 0xd4, 0xa0, 0xee, 0xbe, 0xdf, 0xf2, 0x73, 0x7e, 0xfb, 0x62, + 0xd1, 0xed, 0x1b, 0xda, 0xb2, 0x78, 0x5f, 0xcb, 0xaa, 0x2b, 0x43, 0x35, 0xf3, 0xd1, 0xc3, 0x69, + 0x66, 0x78, 0x75, 0xfb, 0xa3, 0x63, 0xa1, 0x49, 0xc9, 0xbd, 0x9e, 0x80, 0xc9, 0x1a, 0x55, 0x29, + 0xa3, 0x22, 0xf9, 0xf2, 0xc1, 0x8b, 0x68, 0x39, 0xc2, 0x74, 0x96, 0x23, 0xa7, 0x8f, 0xfc, 0x24, + 0x8c, 0xaf, 0x6b, 0xb6, 0xdb, 0xc0, 0xee, 0x65, 0xac, 0xb5, 0xb0, 0x1d, 0x5e, 0x65, 0xc7, 0xc5, + 0x2a, 0x8b, 0x20, 0x49, 0x97, 0x52, 0xb6, 0xca, 0xd0, 0xdf, 0xf2, 0x2e, 0x24, 0xe9, 0xc1, 0x59, + 0x6f, 0x05, 0xe6, 0x1c, 0x6c, 0x05, 0x26, 0xf6, 0x73, 0xdf, 0xc5, 0x8e, 0x48, 0x36, 0xd1, 0x07, + 0xf4, 0x98, 0x58, 0x47, 0x13, 0x07, 0xaf, 0xa3, 0x5c, 0x09, 0xf9, 0x6a, 0xda, 0x86, 0x4c, 0x95, + 0x98, 0xdf, 0xa5, 0x45, 0xaf, 0x21, 0x31, 0xbf, 0x21, 0x68, 0x05, 0x4a, 0x96, 0x66, 0xbb, 0xf4, + 0x9b, 0xa3, 0x5d, 0xda, 0x0b, 0xae, 0xe7, 0xb3, 0xfd, 0xb3, 0x2e, 0xd4, 0x59, 0xfe, 0x96, 0x71, + 0x2b, 0x58, 0x28, 0xff, 0x61, 0x12, 0xd2, 0x5c, 0x18, 0x4f, 0x41, 0x86, 0x8b, 0x95, 0x6b, 0xe6, + 0x5d, 0xf3, 0xfd, 0x8b, 0xd1, 0xbc, 0xb7, 0x68, 0x70, 0x3c, 0xc1, 0x83, 0xee, 0x87, 0x6c, 0x73, + 0x57, 0xd3, 0x0d, 0x55, 0x6f, 0x71, 0x07, 0x30, 0xff, 0xda, 0xab, 0xb3, 0x99, 0x1a, 0x29, 0x5b, + 0x5a, 0x54, 0x32, 0xb4, 0x72, 0xa9, 0x45, 0x56, 0xfe, 0x5d, 0xac, 0xef, 0xec, 0xba, 0x7c, 0x76, + 0xf1, 0x27, 0xf4, 0x04, 0x24, 0x89, 0x42, 0xf0, 0x2f, 0x52, 0xcb, 0x7d, 0x7e, 0xbc, 0x97, 0x68, + 0xa9, 0x66, 0xc9, 0x8b, 0x3f, 0xf0, 0xfb, 0xb3, 0x31, 0x85, 0x72, 0xa0, 0x1a, 0x8c, 0xb7, 0x35, + 0xc7, 0x55, 0xe9, 0xaa, 0x45, 0x5e, 0x9f, 0xa2, 0x10, 0xc7, 0xfa, 0x05, 0xc2, 0x05, 0xcb, 0x9b, + 0x9e, 0x27, 0x5c, 0xac, 0xa8, 0x85, 0x4e, 0x82, 0x44, 0x41, 0x9a, 0x66, 0xa7, 0xa3, 0xbb, 0xcc, + 0x97, 0x4a, 0x53, 0xb9, 0x17, 0x49, 0x79, 0x8d, 0x16, 0x53, 0x8f, 0xea, 0x38, 0xe4, 0xe8, 0x37, + 0x70, 0x94, 0x84, 0x9d, 0xd6, 0xce, 0x92, 0x02, 0x5a, 0x79, 0x02, 0x4a, 0xbe, 0x6d, 0x64, 0x24, + 0x59, 0x86, 0xe2, 0x17, 0x53, 0xc2, 0x87, 0x61, 0xca, 0xc0, 0x7b, 0xf4, 0xfc, 0x78, 0x88, 0x3a, + 0x47, 0xa9, 0x11, 0xa9, 0xbb, 0x1a, 0xe6, 0xb8, 0x0f, 0x8a, 0x4d, 0x21, 0x7c, 0x46, 0x0b, 0x94, + 0x76, 0xdc, 0x2b, 0xa5, 0x64, 0xc7, 0x20, 0xab, 0x59, 0x16, 0x23, 0xc8, 0x73, 0xdb, 0x68, 0x59, + 0xb4, 0xea, 0x34, 0x4c, 0xd0, 0x3e, 0xda, 0xd8, 0xe9, 0xb6, 0x5d, 0x0e, 0x52, 0xa0, 0x34, 0x25, + 0x52, 0xa1, 0xb0, 0x72, 0x4a, 0x7b, 0x0f, 0x8c, 0xe3, 0xeb, 0x7a, 0x0b, 0x1b, 0x4d, 0xcc, 0xe8, + 0xc6, 0x29, 0x5d, 0x41, 0x14, 0x52, 0xa2, 0x53, 0xe0, 0xd9, 0x3c, 0x55, 0xd8, 0xe3, 0x22, 0xc3, + 0x13, 0xe5, 0x15, 0x56, 0x2c, 0x4f, 0x43, 0x72, 0x51, 0x73, 0x35, 0xe2, 0x54, 0xb8, 0x7b, 0x6c, + 0x91, 0x29, 0x28, 0xe4, 0xa7, 0xfc, 0xcd, 0x38, 0x24, 0xaf, 0x9a, 0x2e, 0x46, 0x8f, 0x06, 0x1c, + 0xbe, 0xe2, 0x20, 0x7d, 0x6e, 0xe8, 0x3b, 0x06, 0x6e, 0xad, 0x38, 0x3b, 0x81, 0x0b, 0x2b, 0x7c, + 0x75, 0x8a, 0x87, 0xd4, 0x69, 0x0a, 0x52, 0xb6, 0xd9, 0x35, 0x5a, 0xe2, 0xa0, 0x33, 0x7d, 0x40, + 0x75, 0xc8, 0x7a, 0x5a, 0x92, 0x8c, 0xd2, 0x92, 0x12, 0xd1, 0x12, 0xa2, 0xc3, 0xbc, 0x40, 0xc9, + 0x6c, 0x71, 0x65, 0xa9, 0x42, 0xce, 0x33, 0x5e, 0x5c, 0xdb, 0x46, 0x53, 0x58, 0x9f, 0x8d, 0x2c, + 0x24, 0xde, 0xd8, 0x7b, 0xc2, 0x63, 0x1a, 0x27, 0x79, 0x15, 0x5c, 0x7a, 0x21, 0xb5, 0xe2, 0x97, + 0x67, 0x64, 0x68, 0xbf, 0x7c, 0xb5, 0x62, 0x17, 0x68, 0xdc, 0x09, 0x39, 0x47, 0xdf, 0x31, 0x34, + 0xb7, 0x6b, 0x63, 0xae, 0x79, 0x7e, 0x81, 0xfc, 0xa5, 0x18, 0xa4, 0x99, 0x26, 0x07, 0xe4, 0x16, + 0x1b, 0x2c, 0xb7, 0xf8, 0x30, 0xb9, 0x25, 0x6e, 0x5f, 0x6e, 0x15, 0x00, 0xaf, 0x31, 0x0e, 0xbf, + 0xd3, 0x60, 0x80, 0xb7, 0xc0, 0x9a, 0xd8, 0xd0, 0x77, 0xf8, 0x44, 0x0d, 0x30, 0xc9, 0xff, 0x25, + 0x46, 0x1c, 0x57, 0x5e, 0x8f, 0x2a, 0x30, 0x2e, 0xda, 0xa5, 0x6e, 0xb7, 0xb5, 0x1d, 0xae, 0x3b, + 0x77, 0x0d, 0x6d, 0xdc, 0xc5, 0xb6, 0xb6, 0xa3, 0xe4, 0x79, 0x7b, 0xc8, 0xc3, 0xe0, 0x71, 0x88, + 0x0f, 0x19, 0x87, 0xd0, 0xc0, 0x27, 0x6e, 0x6f, 0xe0, 0x43, 0x43, 0x94, 0xec, 0x1d, 0xa2, 0xcf, + 0xc6, 0x69, 0xf0, 0x62, 0x99, 0x8e, 0xd6, 0x7e, 0x2b, 0x66, 0xc4, 0x71, 0xc8, 0x59, 0x66, 0x5b, + 0x65, 0x35, 0xec, 0x03, 0x80, 0xac, 0x65, 0xb6, 0x95, 0xbe, 0x61, 0x4f, 0xbd, 0x41, 0xd3, 0x25, + 0xfd, 0x06, 0x48, 0x2d, 0xd3, 0x2b, 0x35, 0x1b, 0x0a, 0x4c, 0x14, 0x7c, 0x2d, 0x7b, 0x98, 0xc8, + 0x80, 0x2e, 0x8e, 0xb1, 0xfe, 0xb5, 0x97, 0x35, 0x9b, 0x51, 0x2a, 0x9c, 0x8e, 0x70, 0x30, 0xd3, + 0x3f, 0x28, 0xea, 0x0d, 0xaa, 0xa5, 0xc2, 0xe9, 0xe4, 0x9f, 0x89, 0x01, 0x2c, 0x13, 0xc9, 0xd2, + 0xfe, 0x92, 0x55, 0xc8, 0xa1, 0x4d, 0x50, 0x43, 0x6f, 0x9e, 0x19, 0x36, 0x68, 0xfc, 0xfd, 0x05, + 0x27, 0xd8, 0xee, 0x1a, 0x8c, 0xfb, 0xca, 0xe8, 0x60, 0xd1, 0x98, 0x99, 0x03, 0x3c, 0xea, 0x06, + 0x76, 0x95, 0xc2, 0xf5, 0xc0, 0x93, 0xfc, 0xcf, 0x63, 0x90, 0xa3, 0x6d, 0x5a, 0xc1, 0xae, 0x16, + 0x1a, 0xc3, 0xd8, 0xed, 0x8f, 0xe1, 0x5d, 0x00, 0x0c, 0xc6, 0xd1, 0x5f, 0xc2, 0x5c, 0xb3, 0x72, + 0xb4, 0xa4, 0xa1, 0xbf, 0x84, 0xd1, 0x79, 0x4f, 0xe0, 0x89, 0x83, 0x05, 0x2e, 0x3c, 0x6e, 0x2e, + 0xf6, 0xa3, 0x90, 0xa1, 0x77, 0x80, 0xed, 0x39, 0xdc, 0x89, 0x4e, 0x1b, 0xdd, 0xce, 0xc6, 0x9e, + 0x23, 0xbf, 0x08, 0x99, 0x8d, 0x3d, 0x96, 0x0b, 0x39, 0x0e, 0x39, 0xdb, 0x34, 0xf9, 0x9a, 0xcc, + 0x7c, 0xa1, 0x2c, 0x29, 0xa0, 0x4b, 0x90, 0x88, 0xff, 0xe3, 0x7e, 0xfc, 0xef, 0x27, 0x30, 0x12, + 0x23, 0x25, 0x30, 0x4e, 0xff, 0xc7, 0x18, 0xe4, 0x03, 0xf6, 0x01, 0x3d, 0x02, 0x77, 0x54, 0x97, + 0xd7, 0x6a, 0xcf, 0xa8, 0x4b, 0x8b, 0xea, 0xc5, 0xe5, 0xca, 0x25, 0xff, 0x13, 0xb7, 0xf2, 0x91, + 0x9b, 0xb7, 0xe6, 0x50, 0x80, 0x76, 0xd3, 0xa0, 0xbb, 0x39, 0xe8, 0x0c, 0x4c, 0x85, 0x59, 0x2a, + 0xd5, 0x46, 0x7d, 0x75, 0x43, 0x8a, 0x95, 0xef, 0xb8, 0x79, 0x6b, 0x6e, 0x22, 0xc0, 0x51, 0xd9, + 0x72, 0xb0, 0xe1, 0xf6, 0x33, 0xd4, 0xd6, 0x56, 0x56, 0x96, 0x36, 0xa4, 0x78, 0x1f, 0x03, 0x37, + 0xd8, 0xa7, 0x60, 0x22, 0xcc, 0xb0, 0xba, 0xb4, 0x2c, 0x25, 0xca, 0xe8, 0xe6, 0xad, 0xb9, 0x62, + 0x80, 0x7a, 0x55, 0x6f, 0x97, 0xb3, 0xef, 0xfb, 0xc4, 0xcc, 0xd8, 0xa7, 0xff, 0xc1, 0x4c, 0x8c, + 0xf4, 0x6c, 0x3c, 0x64, 0x23, 0xd0, 0x83, 0x70, 0xb4, 0xb1, 0x74, 0x69, 0xb5, 0xbe, 0xa8, 0xae, + 0x34, 0x2e, 0x89, 0xfd, 0x10, 0xd1, 0xbb, 0xd2, 0xcd, 0x5b, 0x73, 0x79, 0xde, 0xa5, 0x61, 0xd4, + 0xeb, 0x4a, 0xfd, 0xea, 0xda, 0x46, 0x5d, 0x8a, 0x31, 0xea, 0x75, 0x1b, 0x5f, 0x37, 0x5d, 0x76, + 0x49, 0xe0, 0xc3, 0x70, 0x6c, 0x00, 0xb5, 0xd7, 0xb1, 0x89, 0x9b, 0xb7, 0xe6, 0xc6, 0xd7, 0x6d, + 0xcc, 0xe6, 0x0f, 0xe5, 0x98, 0x87, 0xe9, 0x7e, 0x8e, 0xb5, 0xf5, 0xb5, 0x46, 0x65, 0x59, 0x9a, + 0x2b, 0x4b, 0x37, 0x6f, 0xcd, 0x15, 0x84, 0x31, 0x24, 0xf4, 0x7e, 0xcf, 0xde, 0xac, 0x68, 0xe7, + 0x63, 0x99, 0x50, 0x2e, 0x8f, 0xc5, 0x11, 0x96, 0x66, 0x6b, 0x9d, 0xe1, 0xe1, 0x4e, 0x7f, 0x22, + 0x76, 0x48, 0x04, 0x14, 0xb1, 0xc3, 0x2b, 0xbf, 0x1c, 0x87, 0x92, 0xe7, 0x5f, 0xaf, 0xd3, 0x97, + 0xa2, 0x47, 0x83, 0xa9, 0x99, 0xfc, 0xd0, 0x95, 0x8d, 0x51, 0x8b, 0xcc, 0xcd, 0xdb, 0x20, 0x2b, + 0xfc, 0x34, 0x6e, 0x41, 0xe6, 0xfa, 0xf9, 0xea, 0x9c, 0x82, 0xb3, 0x7a, 0x1c, 0xe8, 0x69, 0xc8, + 0x79, 0xf6, 0xc4, 0xbb, 0x75, 0x67, 0xb8, 0x01, 0xe2, 0xfc, 0x3e, 0x0f, 0x7a, 0xd2, 0x8f, 0x24, + 0x92, 0xc3, 0x62, 0x93, 0xab, 0x8c, 0x80, 0x33, 0x0b, 0x7a, 0x79, 0x89, 0xcf, 0x44, 0xde, 0x7b, + 0x7a, 0x63, 0xc1, 0x9e, 0xca, 0x82, 0x2b, 0xe6, 0xa8, 0x64, 0x3b, 0xda, 0x5e, 0x95, 0xc6, 0x57, + 0x47, 0x21, 0x43, 0x2a, 0x77, 0xf8, 0x07, 0xd9, 0x09, 0x25, 0xdd, 0xd1, 0xf6, 0x2e, 0x69, 0xce, + 0x95, 0x64, 0x36, 0x21, 0x25, 0xe5, 0x5f, 0x8e, 0x41, 0x31, 0xdc, 0x47, 0xf4, 0x00, 0x20, 0xc2, + 0xa1, 0xed, 0x60, 0x95, 0x58, 0x1d, 0x2a, 0x2c, 0x81, 0x5b, 0xea, 0x68, 0x7b, 0x95, 0x1d, 0xbc, + 0xda, 0xed, 0xd0, 0x06, 0x38, 0x48, 0x01, 0x49, 0x10, 0x8b, 0x71, 0xe2, 0xc2, 0x3c, 0xd6, 0x7f, + 0x07, 0x1f, 0x27, 0xa8, 0x8e, 0x13, 0xeb, 0xf6, 0xa1, 0xdf, 0x9f, 0x8d, 0xb1, 0x14, 0x7a, 0x91, + 0x81, 0x7a, 0xdb, 0xf4, 0xa1, 0xfe, 0x24, 0xc2, 0xfd, 0x91, 0x9f, 0x86, 0x52, 0x8f, 0x50, 0x91, + 0x0c, 0xe3, 0x3c, 0x5b, 0x40, 0xb7, 0x40, 0x99, 0xdf, 0x9c, 0x53, 0xf2, 0x2c, 0x2b, 0x40, 0xb7, + 0x84, 0x17, 0xb2, 0x5f, 0x7c, 0x65, 0x36, 0x46, 0x13, 0xe9, 0x0f, 0xc0, 0x78, 0x48, 0xac, 0x22, + 0x83, 0x17, 0xf3, 0x33, 0x78, 0x3e, 0xf1, 0x0b, 0x50, 0x20, 0x06, 0x14, 0xb7, 0x38, 0xed, 0xfd, + 0x50, 0x62, 0x06, 0xbe, 0x57, 0xe0, 0xcc, 0xc3, 0x5a, 0x11, 0x52, 0x97, 0x85, 0xcb, 0x15, 0x96, + 0x7d, 0x5e, 0x50, 0x5d, 0xd2, 0x9c, 0xea, 0x3b, 0x3e, 0xfd, 0xda, 0x4c, 0xec, 0xcd, 0x99, 0xa0, + 0x5f, 0x7d, 0x07, 0x1c, 0x0f, 0x54, 0x6a, 0x5b, 0x4d, 0x3d, 0x94, 0x8d, 0x28, 0x05, 0x34, 0x8d, + 0x54, 0x46, 0x65, 0x15, 0x0e, 0xcc, 0x6d, 0x1c, 0x9c, 0x48, 0x2b, 0x1f, 0x6c, 0x29, 0xa2, 0x13, + 0x1e, 0x83, 0x73, 0x97, 0xff, 0x37, 0x0b, 0x19, 0x05, 0xbf, 0xa7, 0x8b, 0x1d, 0x17, 0x9d, 0x85, + 0x24, 0x6e, 0xee, 0x9a, 0x83, 0x52, 0x45, 0xa4, 0x73, 0xf3, 0x9c, 0xae, 0xde, 0xdc, 0x35, 0x2f, + 0x8f, 0x29, 0x94, 0x16, 0x9d, 0x83, 0xd4, 0x76, 0xbb, 0xcb, 0xf3, 0x17, 0x3d, 0x16, 0x23, 0xc8, + 0x74, 0x91, 0x10, 0x5d, 0x1e, 0x53, 0x18, 0x35, 0x79, 0x15, 0xbd, 0xd2, 0x34, 0x71, 0xf0, 0xab, + 0x96, 0x8c, 0x6d, 0xfa, 0x2a, 0x42, 0x8b, 0xaa, 0x00, 0xba, 0xa1, 0xbb, 0x2a, 0x8d, 0xed, 0xb9, + 0x87, 0x78, 0xf7, 0x70, 0x4e, 0xdd, 0xa5, 0xd9, 0x80, 0xcb, 0x63, 0x4a, 0x4e, 0x17, 0x0f, 0xa4, + 0xb9, 0xef, 0xe9, 0x62, 0x7b, 0x9f, 0x3b, 0x86, 0x43, 0x9b, 0xfb, 0x0e, 0x42, 0x44, 0x9a, 0x4b, + 0xa9, 0x51, 0x1d, 0xf2, 0xf4, 0xdb, 0x55, 0x36, 0x89, 0xf9, 0xf5, 0x9a, 0xf2, 0x30, 0xe6, 0x2a, + 0x21, 0xa5, 0xf3, 0xfa, 0xf2, 0x98, 0x02, 0x5b, 0xde, 0x13, 0xb1, 0x94, 0xec, 0xfa, 0x25, 0x77, + 0x8f, 0x5f, 0x2a, 0x38, 0x3b, 0x0c, 0x83, 0xde, 0xc1, 0xb4, 0xb1, 0x77, 0x79, 0x4c, 0xc9, 0x34, + 0xd9, 0x4f, 0xd2, 0xff, 0x16, 0x6e, 0xeb, 0xd7, 0xb1, 0x4d, 0xf8, 0x73, 0x07, 0xf7, 0x7f, 0x91, + 0x51, 0x52, 0x84, 0x5c, 0x4b, 0x3c, 0x10, 0x6b, 0x8b, 0x8d, 0x16, 0xef, 0x06, 0xf4, 0x1b, 0xeb, + 0xd0, 0x38, 0x1b, 0x2d, 0xd1, 0x89, 0x2c, 0xe6, 0xbf, 0xd1, 0x13, 0x9e, 0xe7, 0x9a, 0xef, 0x77, + 0x16, 0x43, 0x1d, 0x60, 0x39, 0x8c, 0x31, 0xe1, 0xc1, 0xa2, 0x55, 0x28, 0xb6, 0x75, 0xc7, 0x55, + 0x1d, 0x43, 0xb3, 0x9c, 0x5d, 0xd3, 0x75, 0x68, 0x32, 0x20, 0x7f, 0xf6, 0xbe, 0x61, 0x08, 0xcb, + 0xba, 0xe3, 0x36, 0x04, 0xf1, 0xe5, 0x31, 0x65, 0xbc, 0x1d, 0x2c, 0x20, 0x78, 0xe6, 0xf6, 0x36, + 0xb6, 0x3d, 0x40, 0x9a, 0x34, 0x38, 0x00, 0x6f, 0x8d, 0x50, 0x0b, 0x7e, 0x82, 0x67, 0x06, 0x0b, + 0xd0, 0x0f, 0xc2, 0x64, 0xdb, 0xd4, 0x5a, 0x1e, 0x9c, 0xda, 0xdc, 0xed, 0x1a, 0xd7, 0x68, 0x86, + 0x21, 0x7f, 0xf6, 0xd4, 0xd0, 0x46, 0x9a, 0x5a, 0x4b, 0x40, 0xd4, 0x08, 0xc3, 0xe5, 0x31, 0x65, + 0xa2, 0xdd, 0x5b, 0x88, 0xde, 0x05, 0x53, 0x9a, 0x65, 0xb5, 0xf7, 0x7b, 0xd1, 0x4b, 0x14, 0xfd, + 0xf4, 0x30, 0xf4, 0x0a, 0xe1, 0xe9, 0x85, 0x47, 0x5a, 0x5f, 0x29, 0xda, 0x00, 0xc9, 0xb2, 0x31, + 0xfd, 0xd8, 0xc6, 0xe2, 0x2e, 0x0c, 0xbd, 0x31, 0x2b, 0x7f, 0xf6, 0xc4, 0x30, 0xec, 0x75, 0x46, + 0x2f, 0x3c, 0x9e, 0xcb, 0x63, 0x4a, 0xc9, 0x0a, 0x17, 0x31, 0x54, 0xb3, 0x89, 0xe9, 0xad, 0x4e, + 0x1c, 0x75, 0x22, 0x0a, 0x95, 0xd2, 0x87, 0x51, 0x43, 0x45, 0xd5, 0x0c, 0x3f, 0x2c, 0xc7, 0xaf, + 0x5c, 0x39, 0x01, 0xf9, 0x80, 0x61, 0x41, 0xd3, 0x90, 0xe1, 0x87, 0x07, 0xc4, 0x21, 0x3b, 0xfe, + 0x28, 0x17, 0xa1, 0x10, 0x34, 0x26, 0xf2, 0x07, 0x62, 0x1e, 0x27, 0xfd, 0x06, 0x7e, 0x3a, 0x9c, + 0x52, 0xcc, 0xf9, 0xd9, 0xc2, 0x7b, 0xc4, 0x2a, 0x22, 0xea, 0xd9, 0x2e, 0x53, 0x81, 0x16, 0xf2, + 0x45, 0x0c, 0xcd, 0x42, 0xde, 0x3a, 0x6b, 0x79, 0x24, 0x09, 0x4a, 0x02, 0xd6, 0x59, 0x4b, 0x10, + 0xdc, 0x0d, 0x05, 0xd2, 0x53, 0x35, 0xe8, 0x6d, 0xe4, 0x94, 0x3c, 0x29, 0xe3, 0x24, 0xf2, 0xbf, + 0x8d, 0x83, 0xd4, 0x6b, 0x80, 0xbc, 0x5c, 0x63, 0xec, 0xd0, 0xb9, 0xc6, 0x63, 0xbd, 0x59, 0x4e, + 0x3f, 0xb1, 0xb9, 0x0c, 0x92, 0x9f, 0x9f, 0x63, 0x0b, 0xc1, 0x70, 0xef, 0xa9, 0xc7, 0xcd, 0x53, + 0x4a, 0xcd, 0x1e, 0xbf, 0xef, 0x62, 0x68, 0x4f, 0x46, 0xdc, 0xd9, 0xdd, 0x3b, 0xc4, 0x9e, 0xbf, + 0xb0, 0x69, 0xb5, 0x34, 0x17, 0x8b, 0x7c, 0x49, 0x60, 0x7b, 0xe6, 0x7e, 0x28, 0x69, 0x96, 0xa5, + 0x3a, 0xae, 0xe6, 0x62, 0xbe, 0xac, 0xa7, 0x58, 0xda, 0x50, 0xb3, 0xac, 0x06, 0x29, 0x65, 0xcb, + 0xfa, 0x7d, 0x50, 0x24, 0x36, 0x59, 0xd7, 0xda, 0x2a, 0xcf, 0x1e, 0xa4, 0xd9, 0xea, 0xcf, 0x4b, + 0x2f, 0xd3, 0x42, 0xb9, 0xe5, 0x8d, 0x38, 0xb5, 0xc7, 0x5e, 0xf8, 0x15, 0x0b, 0x84, 0x5f, 0x88, + 0x5f, 0x4e, 0xc0, 0xe4, 0x23, 0xee, 0x73, 0x18, 0x9c, 0xf5, 0x9d, 0xa2, 0xa1, 0xda, 0x75, 0x96, + 0x08, 0xc9, 0x2a, 0xec, 0x41, 0x7e, 0x6f, 0x1c, 0x26, 0xfa, 0x2c, 0xf7, 0xc0, 0x74, 0xb8, 0x1f, + 0x77, 0xc6, 0x0f, 0x15, 0x77, 0x3e, 0x13, 0x4e, 0xf7, 0x06, 0x56, 0xbe, 0xe3, 0x7d, 0x42, 0x66, + 0x76, 0x93, 0x28, 0x34, 0x07, 0x09, 0x64, 0x84, 0xa9, 0x9a, 0x6f, 0xc2, 0xd4, 0xd6, 0xfe, 0x4b, + 0x9a, 0xe1, 0xea, 0x06, 0x56, 0xfb, 0x46, 0xad, 0x7f, 0x29, 0x5d, 0xd1, 0x9d, 0x2d, 0xbc, 0xab, + 0x5d, 0xd7, 0x4d, 0xd1, 0xac, 0x49, 0x8f, 0xdf, 0x4f, 0xfa, 0xca, 0x0a, 0x14, 0xc3, 0x4b, 0x0f, + 0x2a, 0x42, 0xdc, 0xdd, 0xe3, 0xfd, 0x8f, 0xbb, 0x7b, 0xe8, 0x61, 0x9e, 0x1f, 0x8a, 0xd3, 0xfc, + 0x50, 0xff, 0x8b, 0x38, 0x9f, 0x9f, 0x1c, 0x92, 0x65, 0x6f, 0x36, 0x78, 0xcb, 0x51, 0x2f, 0xaa, + 0x7c, 0x0a, 0x4a, 0x3d, 0xeb, 0xcd, 0xb0, 0x6c, 0xa1, 0x5c, 0x82, 0xf1, 0xd0, 0xe2, 0x22, 0x1f, + 0x81, 0xa9, 0x41, 0x6b, 0x85, 0xbc, 0xeb, 0x95, 0x87, 0x6c, 0x3e, 0x3a, 0x07, 0x59, 0x6f, 0xb1, + 0x18, 0x90, 0x9d, 0xa0, 0xbd, 0x10, 0xc4, 0x8a, 0x47, 0x1a, 0x4a, 0x72, 0xc7, 0x43, 0x49, 0x6e, + 0xf9, 0xdd, 0x30, 0x3d, 0x6c, 0x21, 0xe8, 0xe9, 0x46, 0xd2, 0xd3, 0xc2, 0x23, 0x90, 0xe6, 0x57, + 0xb7, 0xc5, 0xe9, 0xb6, 0x0e, 0x7f, 0x22, 0xda, 0xc9, 0x16, 0x85, 0x04, 0xdb, 0xed, 0xa1, 0x0f, + 0xb2, 0x0a, 0xc7, 0x86, 0x2e, 0x06, 0xc3, 0x37, 0x88, 0x18, 0x10, 0xdf, 0x20, 0x6a, 0x8a, 0xe6, + 0x38, 0xb4, 0xaf, 0xe2, 0x10, 0x04, 0x7b, 0x92, 0x3f, 0x94, 0x80, 0x23, 0x83, 0x97, 0x04, 0x34, + 0x07, 0x05, 0xe2, 0x77, 0xbb, 0x61, 0x17, 0x1d, 0x3a, 0xda, 0xde, 0x06, 0xf7, 0xcf, 0x79, 0x82, + 0x3d, 0xee, 0x25, 0xd8, 0xd1, 0x26, 0x4c, 0xb4, 0xcd, 0xa6, 0xd6, 0x56, 0x03, 0x1a, 0xcf, 0x95, + 0xfd, 0x9e, 0x3e, 0x61, 0xd7, 0xd9, 0x85, 0xce, 0xad, 0x3e, 0xa5, 0x2f, 0x51, 0x8c, 0x65, 0x4f, + 0xf3, 0xd1, 0x22, 0xe4, 0x3b, 0xbe, 0x22, 0x1f, 0x42, 0xd9, 0x83, 0x6c, 0x81, 0x21, 0x49, 0x0d, + 0xdc, 0x0e, 0x4a, 0x1f, 0xda, 0x44, 0x0f, 0xdb, 0x59, 0xc9, 0x0c, 0xdd, 0x59, 0x19, 0xb4, 0x8d, + 0x91, 0x1d, 0xbc, 0x8d, 0xf1, 0xbe, 0xe0, 0xd0, 0x84, 0x16, 0xd1, 0xfe, 0x9d, 0x0d, 0xd4, 0x80, + 0x29, 0xce, 0xdf, 0x0a, 0xc9, 0x3e, 0x3e, 0xaa, 0xa1, 0x41, 0x82, 0x7d, 0xb8, 0xd8, 0x13, 0xb7, + 0x27, 0x76, 0x61, 0x4b, 0x93, 0x01, 0x5b, 0xfa, 0xff, 0xd9, 0x50, 0xfc, 0xfb, 0x1c, 0x64, 0x15, + 0xec, 0x58, 0x64, 0xe1, 0x44, 0x55, 0xc8, 0xe1, 0xbd, 0x26, 0xb6, 0x5c, 0x7f, 0xfb, 0x72, 0x50, + 0x30, 0xc0, 0xa8, 0xeb, 0x82, 0x92, 0x78, 0xe2, 0x1e, 0x1b, 0x7a, 0x94, 0x07, 0x5b, 0xc3, 0xe3, + 0x26, 0xce, 0x1e, 0x8c, 0xb6, 0xce, 0x8b, 0x68, 0x2b, 0x31, 0xd4, 0xf9, 0x66, 0x5c, 0x3d, 0xe1, + 0xd6, 0xa3, 0x3c, 0xdc, 0x4a, 0x46, 0xbc, 0x2c, 0x14, 0x6f, 0xd5, 0x42, 0xf1, 0x56, 0x3a, 0xa2, + 0x9b, 0x43, 0x02, 0xae, 0xf3, 0x22, 0xe0, 0xca, 0x44, 0xb4, 0xb8, 0x27, 0xe2, 0xba, 0x18, 0x8e, + 0xb8, 0xb2, 0x43, 0x0c, 0x88, 0xe0, 0x1e, 0x1a, 0x72, 0x3d, 0x15, 0x08, 0xb9, 0x72, 0x43, 0xe3, + 0x1d, 0x06, 0x32, 0x20, 0xe6, 0xaa, 0x85, 0x62, 0x2e, 0x88, 0x90, 0xc1, 0x90, 0xa0, 0xeb, 0x07, + 0x82, 0x41, 0x57, 0x7e, 0x68, 0xdc, 0xc6, 0xc7, 0x7b, 0x50, 0xd4, 0xf5, 0xa4, 0x17, 0x75, 0x15, + 0x86, 0x86, 0x8d, 0xbc, 0x0f, 0xbd, 0x61, 0xd7, 0x5a, 0x5f, 0xd8, 0x35, 0xce, 0xff, 0x56, 0xc2, + 0x30, 0x88, 0x88, 0xb8, 0x6b, 0xad, 0x2f, 0xee, 0x2a, 0x46, 0x00, 0x46, 0x04, 0x5e, 0x3f, 0x34, + 0x38, 0xf0, 0x1a, 0x1e, 0x1a, 0xf1, 0x66, 0x8e, 0x16, 0x79, 0xa9, 0x43, 0x22, 0x2f, 0x16, 0x1d, + 0x3d, 0x30, 0x14, 0x7e, 0xe4, 0xd0, 0x6b, 0x73, 0x40, 0xe8, 0xc5, 0x82, 0xa4, 0x93, 0x43, 0xc1, + 0x47, 0x88, 0xbd, 0x36, 0x07, 0xc4, 0x5e, 0x28, 0x12, 0xf6, 0x30, 0xc1, 0x57, 0x4a, 0x4a, 0xcb, + 0xa7, 0x88, 0xeb, 0xdb, 0x63, 0xa7, 0x88, 0xff, 0x80, 0x6d, 0xdb, 0xb4, 0xc5, 0x89, 0x5b, 0xfa, + 0x20, 0x9f, 0x24, 0xce, 0xb8, 0x6f, 0x93, 0x0e, 0x08, 0xd4, 0xa8, 0x9f, 0x16, 0xb0, 0x43, 0xf2, + 0x17, 0x63, 0x3e, 0x2f, 0xf5, 0x61, 0x83, 0x8e, 0x7c, 0x8e, 0x3b, 0xf2, 0x81, 0xf0, 0x2d, 0x1e, + 0x0e, 0xdf, 0x66, 0x21, 0x4f, 0xfc, 0xaf, 0x9e, 0xc8, 0x4c, 0xb3, 0xbc, 0xc8, 0x4c, 0x1c, 0x35, + 0x60, 0x41, 0x1e, 0x5f, 0x56, 0xd8, 0x0e, 0x4f, 0xc9, 0x3b, 0x76, 0xc1, 0x62, 0x0a, 0xf4, 0x10, + 0x4c, 0x06, 0x68, 0x3d, 0xbf, 0x8e, 0x85, 0x29, 0x92, 0x47, 0x5d, 0xe1, 0x0e, 0xde, 0xbf, 0x88, + 0xf9, 0x12, 0xf2, 0x43, 0xba, 0x41, 0xd1, 0x57, 0xec, 0x0d, 0x8a, 0xbe, 0xe2, 0xb7, 0x1d, 0x7d, + 0x05, 0xfd, 0xd4, 0x44, 0xd8, 0x4f, 0xfd, 0x9f, 0x31, 0x7f, 0x4c, 0xbc, 0x58, 0xaa, 0x69, 0xb6, + 0x30, 0xf7, 0x1c, 0xe9, 0x6f, 0xe2, 0x54, 0xb4, 0xcd, 0x1d, 0xee, 0x1f, 0x92, 0x9f, 0x84, 0xca, + 0x5b, 0x38, 0x72, 0x7c, 0x5d, 0xf0, 0x9c, 0xce, 0x54, 0xf0, 0x5c, 0x30, 0x3f, 0x2c, 0x9b, 0xf6, + 0x0f, 0xcb, 0x7a, 0x1f, 0xc5, 0x65, 0x02, 0x1f, 0xc5, 0xa1, 0x27, 0x20, 0x47, 0x33, 0xa2, 0xaa, + 0x69, 0x89, 0xbf, 0xac, 0x71, 0x7c, 0xf8, 0x41, 0x59, 0x87, 0x1e, 0xe1, 0x63, 0x87, 0x6b, 0x7d, + 0x8f, 0x21, 0x17, 0xf2, 0x18, 0xee, 0x84, 0x1c, 0x69, 0x3d, 0xbb, 0x21, 0x1a, 0xf8, 0x17, 0x95, + 0xa2, 0x40, 0x7e, 0x17, 0xa0, 0xfe, 0x45, 0x02, 0x5d, 0x86, 0x34, 0xbe, 0x4e, 0xaf, 0xdb, 0x63, + 0x07, 0x10, 0x8f, 0xf4, 0xbb, 0xa6, 0xa4, 0xba, 0x3a, 0x4d, 0x84, 0xfc, 0xad, 0x57, 0x67, 0x25, + 0x46, 0xfd, 0xa0, 0xf7, 0x01, 0x81, 0xc2, 0xf9, 0xe5, 0xff, 0x1c, 0x27, 0x01, 0x4c, 0x68, 0x01, + 0x19, 0x28, 0xdb, 0x41, 0x5b, 0x87, 0xa3, 0xc9, 0x7b, 0x06, 0x60, 0x47, 0x73, 0xd4, 0x1b, 0x9a, + 0xe1, 0xe2, 0x16, 0x17, 0x7a, 0xa0, 0x04, 0x95, 0x21, 0x4b, 0x9e, 0xba, 0x0e, 0x6e, 0xf1, 0x30, + 0xda, 0x7b, 0x0e, 0xf4, 0x33, 0xf3, 0xbd, 0xf5, 0x33, 0x2c, 0xe5, 0x6c, 0x8f, 0x94, 0x03, 0xc1, + 0x45, 0x2e, 0x18, 0x5c, 0xb0, 0x03, 0xc3, 0xfc, 0xdc, 0x22, 0xb0, 0xb6, 0x89, 0x67, 0x74, 0x0f, + 0x8c, 0x77, 0x70, 0xc7, 0x32, 0xcd, 0xb6, 0xca, 0xcc, 0x0d, 0xbb, 0x0a, 0xbe, 0xc0, 0x0b, 0xeb, + 0xd4, 0xea, 0xfc, 0x58, 0xdc, 0x9f, 0x7f, 0x7e, 0x10, 0xf9, 0x7d, 0x27, 0x60, 0xf9, 0x27, 0x68, + 0x66, 0x29, 0xec, 0x22, 0xa0, 0x46, 0xf0, 0x34, 0x49, 0x97, 0x9a, 0x05, 0xa1, 0xd0, 0xa3, 0xda, + 0x0f, 0xff, 0xd4, 0x09, 0x2b, 0x76, 0xd0, 0xf3, 0x70, 0xb4, 0xc7, 0xb6, 0x79, 0xd0, 0xf1, 0x51, + 0x4d, 0xdc, 0x1d, 0x61, 0x13, 0x27, 0xa0, 0x7d, 0x61, 0x25, 0xbe, 0xc7, 0x59, 0xb7, 0x04, 0xc5, + 0xb0, 0xc7, 0x33, 0x70, 0xf8, 0xe9, 0x9f, 0x1e, 0x71, 0x35, 0xdd, 0x50, 0x43, 0xe9, 0xa0, 0x02, + 0x2b, 0xe4, 0x49, 0xa6, 0x75, 0xb8, 0x63, 0xa0, 0xe7, 0x83, 0x1e, 0x87, 0x9c, 0xef, 0x34, 0x31, + 0xa9, 0x1e, 0x90, 0x2e, 0xf0, 0x69, 0xe5, 0xdf, 0x8c, 0xf9, 0x90, 0xe1, 0x04, 0x44, 0x1d, 0xd2, + 0xec, 0x38, 0x1c, 0x3f, 0x64, 0xf3, 0xd0, 0x68, 0x3e, 0xd3, 0x3c, 0x3b, 0x2b, 0xa7, 0x70, 0x66, + 0xf9, 0x5d, 0x90, 0x66, 0x25, 0x28, 0x0f, 0x19, 0xff, 0x46, 0x5c, 0x80, 0x74, 0xa5, 0x56, 0xab, + 0xaf, 0x6f, 0x48, 0x31, 0x94, 0x83, 0x54, 0xa5, 0xba, 0xa6, 0x6c, 0x48, 0x71, 0x52, 0xac, 0xd4, + 0xaf, 0xd4, 0x6b, 0x1b, 0x52, 0x02, 0x4d, 0xc0, 0x38, 0xfb, 0xad, 0x5e, 0x5c, 0x53, 0x56, 0x2a, + 0x1b, 0x52, 0x32, 0x50, 0xd4, 0xa8, 0xaf, 0x2e, 0xd6, 0x15, 0x29, 0x25, 0x3f, 0x02, 0xc7, 0x86, + 0x7a, 0x59, 0x7e, 0x76, 0x21, 0x16, 0xc8, 0x2e, 0xc8, 0x1f, 0x8a, 0x43, 0x79, 0xb8, 0xeb, 0x84, + 0xae, 0xf4, 0x74, 0xfc, 0xec, 0x21, 0xfc, 0xae, 0x9e, 0xde, 0xa3, 0xfb, 0xa0, 0x68, 0xe3, 0x6d, + 0xec, 0x36, 0x77, 0x99, 0x2b, 0xc7, 0x96, 0xcc, 0x71, 0x65, 0x9c, 0x97, 0x52, 0x26, 0x87, 0x91, + 0xbd, 0x88, 0x9b, 0xae, 0xca, 0x6c, 0x91, 0xc3, 0xff, 0x06, 0xe2, 0x38, 0x2b, 0x6d, 0xb0, 0x42, + 0xf9, 0xdd, 0x87, 0x92, 0x65, 0x0e, 0x52, 0x4a, 0x7d, 0x43, 0x79, 0x5e, 0x4a, 0x20, 0x04, 0x45, + 0xfa, 0x53, 0x6d, 0xac, 0x56, 0xd6, 0x1b, 0x97, 0xd7, 0x88, 0x2c, 0x27, 0xa1, 0x24, 0x64, 0x29, + 0x0a, 0x53, 0xf2, 0x03, 0x70, 0x74, 0x88, 0xdf, 0x37, 0xe0, 0x7c, 0xe2, 0xc7, 0x63, 0x41, 0xea, + 0x70, 0xcc, 0xbf, 0x06, 0x69, 0xc7, 0xd5, 0xdc, 0xae, 0xc3, 0x85, 0xf8, 0xf8, 0xa8, 0x8e, 0xe0, + 0xbc, 0xf8, 0xd1, 0xa0, 0xec, 0x0a, 0x87, 0x91, 0xcf, 0x41, 0x31, 0x5c, 0x33, 0x5c, 0x06, 0xbe, + 0x12, 0xc5, 0xe5, 0xe7, 0x01, 0x02, 0xf9, 0x48, 0xef, 0xa4, 0x57, 0x2c, 0x78, 0xd2, 0xeb, 0x1c, + 0xa4, 0xae, 0x9b, 0xcc, 0x66, 0x0c, 0x9e, 0x38, 0x57, 0x4d, 0x17, 0x07, 0x92, 0x0f, 0x8c, 0x5a, + 0xd6, 0x01, 0xf5, 0xe7, 0x84, 0x86, 0xbc, 0xe2, 0xa9, 0xf0, 0x2b, 0xee, 0x1e, 0x9a, 0x5d, 0x1a, + 0xfc, 0xaa, 0x97, 0x20, 0x45, 0xad, 0xcd, 0xc0, 0x4f, 0x7f, 0xde, 0x09, 0xa0, 0xb9, 0xae, 0xad, + 0x6f, 0x75, 0xfd, 0x17, 0xcc, 0x0e, 0xb6, 0x56, 0x15, 0x41, 0x57, 0xbd, 0x93, 0x9b, 0xad, 0x29, + 0x9f, 0x35, 0x60, 0xba, 0x02, 0x80, 0xf2, 0x2a, 0x14, 0xc3, 0xbc, 0x83, 0x3f, 0x65, 0xf2, 0xef, + 0x14, 0xc8, 0x09, 0xf7, 0xc9, 0x73, 0xbe, 0xf8, 0x3d, 0x1f, 0xf4, 0x41, 0xbe, 0x19, 0x83, 0xec, + 0xc6, 0x1e, 0xd7, 0xe3, 0x03, 0x0e, 0x5b, 0xfa, 0xdf, 0x73, 0x79, 0xc9, 0x42, 0x96, 0x8f, 0x4d, + 0x78, 0x59, 0xde, 0x1f, 0xf0, 0x66, 0x6a, 0x72, 0xd4, 0x68, 0x57, 0x64, 0xbb, 0xb9, 0x75, 0xba, + 0x30, 0xda, 0xb7, 0x13, 0x53, 0x90, 0x0a, 0x7e, 0xf7, 0xc0, 0x1e, 0xe4, 0x56, 0xe0, 0x58, 0x02, + 0x5b, 0x36, 0x82, 0x1f, 0x59, 0xc4, 0x0e, 0xfd, 0x91, 0x85, 0xf7, 0x96, 0x78, 0xf0, 0x2d, 0xd7, + 0x21, 0x2b, 0x94, 0x02, 0xbd, 0x3d, 0x78, 0x00, 0x45, 0xec, 0xd1, 0x0c, 0x5d, 0x3c, 0x39, 0x7c, + 0xe0, 0xfc, 0xc9, 0x69, 0x98, 0xe0, 0x47, 0xf1, 0xfc, 0xb8, 0x82, 0xdf, 0xd9, 0x5f, 0x62, 0x15, + 0xcb, 0x22, 0xa8, 0x90, 0x7f, 0x21, 0x06, 0x52, 0xaf, 0x56, 0xbe, 0x95, 0x0d, 0x20, 0x46, 0x91, + 0x68, 0x7f, 0xe0, 0x32, 0x6e, 0x36, 0xf2, 0xe3, 0xa4, 0xd4, 0xbf, 0x8e, 0xfb, 0xbd, 0x71, 0xc8, + 0x07, 0x72, 0x7a, 0xe8, 0xb1, 0xd0, 0xd1, 0xd0, 0xb9, 0x83, 0xf2, 0x7f, 0x81, 0xb3, 0xa1, 0xa1, + 0x8e, 0xc5, 0x0f, 0xdf, 0xb1, 0x37, 0xfe, 0xf0, 0xfe, 0xe0, 0xaf, 0x80, 0x52, 0x43, 0xbe, 0x02, + 0xfa, 0x91, 0x18, 0x64, 0xbd, 0xa5, 0xfb, 0xb0, 0xd9, 0xfc, 0x23, 0x90, 0xe6, 0xab, 0x13, 0x4b, + 0xe7, 0xf3, 0xa7, 0x81, 0xb9, 0xd0, 0x32, 0x64, 0xc5, 0x1f, 0xbb, 0xe1, 0x81, 0xa8, 0xf7, 0x7c, + 0xfa, 0x49, 0xc8, 0x07, 0x36, 0x56, 0x88, 0x9d, 0x58, 0xad, 0x3f, 0x2b, 0x8d, 0x95, 0x33, 0x37, + 0x6f, 0xcd, 0x25, 0x56, 0xf1, 0x0d, 0x32, 0xc3, 0x94, 0x7a, 0xed, 0x72, 0xbd, 0xf6, 0x8c, 0x14, + 0x2b, 0xe7, 0x6f, 0xde, 0x9a, 0xcb, 0x28, 0x98, 0xa6, 0xaf, 0x4e, 0x3f, 0x03, 0xa5, 0x9e, 0x81, + 0x09, 0xdb, 0x77, 0x04, 0xc5, 0xc5, 0xcd, 0xf5, 0xe5, 0xa5, 0x5a, 0x65, 0xa3, 0xae, 0xb2, 0x63, + 0x76, 0xe8, 0x28, 0x4c, 0x2e, 0x2f, 0x5d, 0xba, 0xbc, 0xa1, 0xd6, 0x96, 0x97, 0xea, 0xab, 0x1b, + 0x6a, 0x65, 0x63, 0xa3, 0x52, 0x7b, 0x46, 0x8a, 0x9f, 0xfd, 0x2e, 0x40, 0xa9, 0x52, 0xad, 0x2d, + 0x91, 0xf5, 0x59, 0xe7, 0xf7, 0xa9, 0xd7, 0x20, 0x49, 0x53, 0x01, 0x07, 0x1e, 0x15, 0x29, 0x1f, + 0x9c, 0xdb, 0x44, 0x17, 0x21, 0x45, 0xb3, 0x04, 0xe8, 0xe0, 0xb3, 0x23, 0xe5, 0x88, 0x64, 0x27, + 0x69, 0x0c, 0x9d, 0x4e, 0x07, 0x1e, 0x26, 0x29, 0x1f, 0x9c, 0xfb, 0x44, 0x0a, 0xe4, 0xfc, 0x28, + 0x23, 0xfa, 0x70, 0x45, 0x79, 0x04, 0xeb, 0x88, 0x96, 0x21, 0x23, 0x02, 0xc3, 0xa8, 0xe3, 0x1e, + 0xe5, 0xc8, 0xe4, 0x24, 0x11, 0x17, 0x0b, 0xe0, 0x0f, 0x3e, 0xbb, 0x52, 0x8e, 0xc8, 0xb4, 0xa2, + 0x25, 0xef, 0x70, 0x7e, 0xc4, 0x11, 0x8e, 0x72, 0x54, 0xb2, 0x91, 0x08, 0xcd, 0x4f, 0x8d, 0x44, + 0x9f, 0xc8, 0x29, 0x8f, 0x90, 0x44, 0x46, 0x9b, 0x00, 0x81, 0x70, 0x7d, 0x84, 0xa3, 0x36, 0xe5, + 0x51, 0x92, 0xc3, 0x68, 0x0d, 0xb2, 0x5e, 0xf4, 0x14, 0x79, 0xf0, 0xa5, 0x1c, 0x9d, 0xa5, 0x45, + 0xef, 0x82, 0xf1, 0x70, 0xd4, 0x30, 0xda, 0x71, 0x96, 0xf2, 0x88, 0xe9, 0x57, 0x82, 0x1f, 0x0e, + 0x21, 0x46, 0x3b, 0xde, 0x52, 0x1e, 0x31, 0x1b, 0x8b, 0x5e, 0x84, 0x89, 0x7e, 0x17, 0x7f, 0xf4, + 0xd3, 0x2e, 0xe5, 0x43, 0xe4, 0x67, 0x51, 0x07, 0xd0, 0x80, 0xd0, 0xe0, 0x10, 0x87, 0x5f, 0xca, + 0x87, 0x49, 0xd7, 0xa2, 0x16, 0x94, 0x7a, 0xfd, 0xed, 0x51, 0x0f, 0xc3, 0x94, 0x47, 0x4e, 0xdd, + 0xb2, 0xb7, 0x84, 0xfd, 0xf4, 0x51, 0x0f, 0xc7, 0x94, 0x47, 0xce, 0xe4, 0x56, 0x2b, 0x43, 0xcf, + 0x37, 0x9e, 0x38, 0xf0, 0x7c, 0xa3, 0x7f, 0x62, 0xd1, 0x3b, 0xd3, 0xf8, 0x87, 0x0f, 0xc3, 0xbd, + 0xfc, 0x92, 0x01, 0xc7, 0xd5, 0xae, 0xe9, 0xc6, 0x8e, 0x77, 0x6b, 0x04, 0x7f, 0xe6, 0x87, 0x1b, + 0x8f, 0xf0, 0x8b, 0x0c, 0x44, 0x69, 0xc4, 0xdd, 0x11, 0x43, 0x2f, 0xd4, 0x8a, 0x3a, 0x89, 0x1c, + 0x7d, 0x74, 0xf1, 0x80, 0x7b, 0x29, 0x22, 0x6e, 0xbf, 0x18, 0x74, 0x5c, 0xfa, 0xe0, 0x43, 0x98, + 0x07, 0x9d, 0xf7, 0x94, 0x3f, 0x18, 0x83, 0xe2, 0x65, 0xdd, 0x71, 0x4d, 0x5b, 0x6f, 0x6a, 0x6d, + 0xba, 0x62, 0x5c, 0x18, 0xf5, 0xe3, 0x8f, 0x6a, 0x8e, 0x38, 0x23, 0xfc, 0xb2, 0x0b, 0x7e, 0x30, + 0x64, 0x11, 0xd2, 0xd7, 0xb5, 0x36, 0xfb, 0xf4, 0x22, 0x78, 0xaf, 0x4d, 0xaf, 0xcc, 0x03, 0x5e, + 0x52, 0x10, 0x85, 0xf1, 0xca, 0x5f, 0xa0, 0x27, 0xb9, 0x3b, 0x1d, 0xdd, 0x61, 0x7f, 0x8e, 0xda, + 0xc5, 0x0e, 0xda, 0x84, 0xa4, 0xad, 0xb9, 0x3c, 0xa8, 0xa9, 0x56, 0xf8, 0x15, 0x15, 0xf7, 0x47, + 0x5f, 0x34, 0x31, 0xdf, 0x77, 0x8b, 0x05, 0x7b, 0x19, 0x85, 0x43, 0x3f, 0x04, 0xd9, 0x8e, 0xb6, + 0xa7, 0x52, 0xe8, 0xf8, 0x1b, 0x05, 0x9d, 0xe9, 0x68, 0x7b, 0xa4, 0xd5, 0x48, 0x87, 0x12, 0x41, + 0x6f, 0xee, 0x6a, 0xc6, 0x0e, 0x66, 0x2f, 0x49, 0xbc, 0x51, 0x2f, 0x19, 0xef, 0x68, 0x7b, 0x35, + 0x0a, 0x4c, 0x5e, 0xc5, 0x2f, 0x03, 0xf9, 0xad, 0x18, 0x0f, 0x65, 0xa9, 0xe4, 0x90, 0x06, 0x52, + 0xd3, 0x7b, 0xa2, 0xef, 0x17, 0x69, 0xfd, 0x13, 0xc3, 0x06, 0xa6, 0x47, 0xee, 0xec, 0x48, 0xf6, + 0x57, 0x5e, 0x15, 0x47, 0xb2, 0x4b, 0xcd, 0x9e, 0x71, 0xb9, 0x02, 0x79, 0x96, 0x4d, 0x53, 0xa9, + 0x0b, 0x1b, 0x8f, 0x74, 0x61, 0xc7, 0x85, 0x0b, 0xcb, 0x00, 0x81, 0x71, 0x93, 0x7a, 0xde, 0x87, + 0x4f, 0xc7, 0x20, 0xbf, 0x18, 0xb8, 0xc6, 0x6a, 0x1a, 0x32, 0x1d, 0xd3, 0xd0, 0xaf, 0x61, 0xdb, + 0xdb, 0x97, 0x61, 0x8f, 0xc4, 0xcd, 0x64, 0x7f, 0x8e, 0xc8, 0xdd, 0x17, 0x37, 0x34, 0x88, 0x67, + 0xc2, 0x75, 0x03, 0x6f, 0x39, 0xba, 0x10, 0xb9, 0x22, 0x1e, 0xd1, 0x29, 0x90, 0x1c, 0xdc, 0xec, + 0xda, 0xba, 0xbb, 0xaf, 0x36, 0x4d, 0xc3, 0xd5, 0x9a, 0x2e, 0xcf, 0x9e, 0x96, 0x44, 0x79, 0x8d, + 0x15, 0x13, 0x90, 0x16, 0x76, 0x35, 0xbd, 0xcd, 0x8e, 0x7d, 0xe5, 0x14, 0xf1, 0xc8, 0x9b, 0xfa, + 0x85, 0x4c, 0x30, 0x34, 0xac, 0x81, 0x64, 0x5a, 0xd8, 0x0e, 0x7d, 0x0a, 0xc7, 0xd4, 0x75, 0xfa, + 0x77, 0x3f, 0xf7, 0xd0, 0x14, 0x17, 0x38, 0xdf, 0x80, 0x67, 0xb7, 0x36, 0x2b, 0x25, 0xc1, 0x21, + 0xbe, 0x91, 0x7b, 0x3e, 0xb4, 0x13, 0xd3, 0xdd, 0xf2, 0x3f, 0xc5, 0x9f, 0xea, 0x13, 0x6a, 0xc5, + 0xd8, 0xaf, 0x4e, 0xff, 0x8e, 0x0f, 0xed, 0x87, 0x8e, 0xcf, 0xe0, 0xfd, 0xe0, 0xb6, 0x0c, 0x85, + 0x21, 0x1e, 0xfc, 0x8b, 0x9a, 0xde, 0x16, 0x7f, 0x61, 0x4d, 0xe1, 0x4f, 0x68, 0xc1, 0x4b, 0xc3, + 0xb0, 0xbf, 0x9c, 0x2e, 0x0f, 0xd3, 0x8d, 0xaa, 0x69, 0xb4, 0xc2, 0x19, 0x17, 0xb4, 0x01, 0x69, + 0xd7, 0xbc, 0x86, 0x0d, 0x2e, 0xa0, 0xea, 0xdb, 0x0e, 0xa1, 0xd8, 0xfd, 0xf7, 0xd2, 0x70, 0x2c, + 0xb4, 0x03, 0x52, 0x0b, 0xb7, 0xf1, 0x0e, 0xfb, 0x90, 0x6b, 0x57, 0xb3, 0x31, 0xfb, 0xb8, 0xf3, + 0x70, 0xf8, 0xfd, 0xd7, 0xd7, 0x94, 0x3c, 0xd4, 0x06, 0x05, 0x45, 0xeb, 0xe1, 0x4b, 0xd4, 0x32, + 0x7c, 0x57, 0x7e, 0x48, 0xff, 0x03, 0x5a, 0x19, 0x34, 0x5b, 0xa1, 0x4b, 0xd7, 0x4e, 0x81, 0xd4, + 0x35, 0xb6, 0x4c, 0x83, 0xfe, 0x31, 0x24, 0x1e, 0x60, 0x65, 0xd9, 0xce, 0x9d, 0x57, 0xce, 0x77, + 0xee, 0xd6, 0xa1, 0xe8, 0x93, 0xd2, 0xd9, 0x93, 0x3b, 0xec, 0xec, 0x19, 0xf7, 0x00, 0x08, 0x09, + 0x5a, 0x01, 0xf0, 0xe7, 0xa7, 0xb7, 0xbb, 0x1f, 0x39, 0xd3, 0x83, 0x9d, 0x09, 0x00, 0xa0, 0x36, + 0x4c, 0x76, 0x74, 0x43, 0x75, 0x70, 0x7b, 0x5b, 0xe5, 0x92, 0x23, 0xb8, 0xf9, 0x37, 0x60, 0xa4, + 0x27, 0x3a, 0xba, 0xd1, 0xc0, 0xed, 0xed, 0x45, 0x0f, 0x16, 0xbd, 0x0d, 0x8e, 0xfb, 0xe2, 0x30, + 0x0d, 0x75, 0xd7, 0x6c, 0xb7, 0x54, 0x1b, 0x6f, 0xab, 0x4d, 0x7a, 0x2d, 0x52, 0x81, 0x0a, 0xf1, + 0xa8, 0x47, 0xb2, 0x66, 0x5c, 0x36, 0xdb, 0x2d, 0x05, 0x6f, 0xd7, 0x48, 0x35, 0xba, 0x07, 0x7c, + 0x59, 0xa8, 0x7a, 0xcb, 0x99, 0x1e, 0x9f, 0x4b, 0x9c, 0x4c, 0x2a, 0x05, 0xaf, 0x70, 0xa9, 0xe5, + 0x2c, 0x64, 0xdf, 0xf7, 0xca, 0xec, 0xd8, 0x37, 0x5f, 0x99, 0x1d, 0x93, 0x2f, 0xd2, 0x4b, 0x3c, + 0xf8, 0xa4, 0xc3, 0x0e, 0x3a, 0x0f, 0x39, 0x4d, 0x3c, 0xb0, 0xcf, 0x44, 0x0e, 0x98, 0xb4, 0x3e, + 0xa9, 0xfc, 0x4a, 0x0c, 0xd2, 0x8b, 0x57, 0xd7, 0x35, 0xdd, 0x46, 0x75, 0x98, 0xf0, 0x95, 0x76, + 0xd4, 0xf9, 0xef, 0xeb, 0xb9, 0x30, 0x00, 0xf5, 0x61, 0x5f, 0xd4, 0x1e, 0x08, 0xd3, 0xfb, 0xad, + 0x6d, 0xa0, 0xab, 0x57, 0x20, 0xc3, 0x5a, 0xe8, 0xa0, 0xa7, 0x21, 0x65, 0x91, 0x1f, 0x3c, 0xfb, + 0x3f, 0x33, 0x54, 0xd1, 0x29, 0x7d, 0x50, 0x2d, 0x18, 0x9f, 0xfc, 0x97, 0x31, 0x80, 0xc5, 0xab, + 0x57, 0x37, 0x6c, 0xdd, 0x6a, 0x63, 0xf7, 0x8d, 0xea, 0xf2, 0x32, 0xdc, 0x11, 0xf8, 0x6e, 0xd3, + 0x6e, 0x8e, 0xdc, 0xed, 0x49, 0xff, 0xcb, 0x4d, 0xbb, 0x39, 0x10, 0xad, 0xe5, 0xb8, 0x1e, 0x5a, + 0x62, 0x64, 0xb4, 0x45, 0xc7, 0xed, 0x97, 0xe3, 0x73, 0x90, 0xf7, 0xbb, 0xee, 0xa0, 0x25, 0xc8, + 0xba, 0xfc, 0x37, 0x17, 0xa7, 0x3c, 0x5c, 0x9c, 0x82, 0x2d, 0x28, 0x52, 0x8f, 0x5d, 0xfe, 0xdf, + 0x44, 0xaa, 0xfe, 0x44, 0xf8, 0x6b, 0xa5, 0x48, 0xc4, 0xc2, 0x73, 0x0b, 0x9c, 0x78, 0x03, 0x2c, + 0x30, 0xc7, 0x0a, 0x88, 0xf5, 0x47, 0xe3, 0x30, 0xb9, 0x29, 0x26, 0xe9, 0x5f, 0x5b, 0x29, 0x6c, + 0x42, 0x06, 0x1b, 0xae, 0xad, 0x63, 0xb1, 0xd5, 0xf7, 0xf0, 0xb0, 0xc1, 0x1e, 0xd0, 0x17, 0xfa, + 0x27, 0x82, 0x83, 0x43, 0x2f, 0xb0, 0x02, 0x62, 0xf8, 0x8d, 0x04, 0x4c, 0x0f, 0x63, 0x45, 0x27, + 0xa0, 0xd4, 0xb4, 0x31, 0x2d, 0x50, 0x43, 0xa9, 0xf0, 0xa2, 0x28, 0xe6, 0x4b, 0x8a, 0x02, 0xc4, + 0x41, 0x23, 0x5a, 0x45, 0x48, 0x6f, 0xcf, 0x23, 0x2b, 0xfa, 0x08, 0x74, 0x51, 0xc1, 0x50, 0x12, + 0x67, 0xdb, 0xb7, 0xb4, 0xb6, 0x66, 0x34, 0xf1, 0x6d, 0x68, 0x42, 0xff, 0x0a, 0x20, 0x0e, 0xcc, + 0x57, 0x19, 0x26, 0xba, 0x0a, 0x19, 0x01, 0x9f, 0x7c, 0x03, 0xe0, 0x05, 0x18, 0xba, 0x1b, 0x0a, + 0xc1, 0x85, 0x81, 0xfa, 0x29, 0x49, 0x25, 0x1f, 0x58, 0x17, 0xa2, 0x56, 0x9e, 0xf4, 0x81, 0x2b, + 0x0f, 0x77, 0x05, 0x7f, 0x3d, 0x01, 0x13, 0x0a, 0x6e, 0x7d, 0x1f, 0x0e, 0xdc, 0x0f, 0x02, 0xb0, + 0x49, 0x4d, 0x8c, 0xed, 0x6d, 0x8c, 0x5d, 0xbf, 0x91, 0xc8, 0x31, 0xbc, 0x45, 0xc7, 0x7d, 0xab, + 0x46, 0xef, 0xdf, 0xc4, 0xa1, 0x10, 0x1c, 0xbd, 0xef, 0x83, 0x95, 0x0d, 0xad, 0xfa, 0x26, 0x8d, + 0x9d, 0x3e, 0x3f, 0x35, 0xcc, 0xa4, 0xf5, 0xe9, 0x75, 0x84, 0x2d, 0xfb, 0x54, 0x02, 0xd2, 0xfc, + 0x28, 0xd8, 0x5a, 0x9f, 0x8f, 0x1b, 0x3b, 0xe4, 0x47, 0xc0, 0x3d, 0x2e, 0xee, 0x7d, 0x50, 0x24, + 0x21, 0x75, 0xe8, 0x7c, 0x59, 0xec, 0xe4, 0x38, 0x0d, 0x87, 0xfd, 0xd3, 0xd0, 0x68, 0x16, 0xf2, + 0x84, 0xcc, 0xb7, 0xd9, 0x84, 0x06, 0x3a, 0xda, 0x5e, 0x9d, 0x95, 0xa0, 0x87, 0x00, 0xed, 0x7a, + 0x89, 0x0f, 0xd5, 0x17, 0x04, 0xa1, 0x9b, 0xf0, 0x6b, 0x04, 0xf9, 0x5d, 0x00, 0xa4, 0x15, 0x2a, + 0xbb, 0xb9, 0x93, 0xdf, 0x82, 0x4a, 0x4a, 0x16, 0xe9, 0xed, 0x9d, 0x3f, 0x19, 0x63, 0xae, 0x72, + 0x4f, 0xb4, 0xcd, 0x83, 0x16, 0xf5, 0x70, 0xb3, 0xe1, 0x3b, 0xaf, 0xce, 0x96, 0xf7, 0xb5, 0x4e, + 0x7b, 0x41, 0x1e, 0x00, 0x29, 0x0f, 0xca, 0x05, 0x10, 0x6f, 0x3a, 0x1c, 0xb8, 0x2f, 0xdc, 0x4b, + 0xf4, 0xfa, 0xe6, 0x37, 0x3e, 0x73, 0xfa, 0x78, 0xe0, 0x15, 0x7b, 0x5e, 0x86, 0x8c, 0x0d, 0x8f, + 0xfc, 0x8b, 0x31, 0x40, 0xfe, 0x62, 0xe3, 0x9d, 0x07, 0x5f, 0xa1, 0xa7, 0x84, 0x85, 0xbf, 0x1f, + 0x3b, 0x38, 0x8e, 0xf0, 0xf9, 0x43, 0x71, 0x44, 0x60, 0x32, 0xbd, 0xdd, 0x37, 0xed, 0xe2, 0x13, + 0xf0, 0x01, 0x77, 0xb8, 0xce, 0xd7, 0x4c, 0x3d, 0x04, 0x21, 0x98, 0xe8, 0x1c, 0x1d, 0x93, 0x5f, + 0x8d, 0xc1, 0xb1, 0x3e, 0x4d, 0xf4, 0x9a, 0xdc, 0x04, 0x64, 0x07, 0x2a, 0xf9, 0x9f, 0xe9, 0x8f, + 0xf1, 0x8f, 0x1d, 0x6f, 0x47, 0xb1, 0x27, 0xec, 0x3e, 0x73, 0xfe, 0x26, 0xad, 0x51, 0xdc, 0x08, + 0xfd, 0x76, 0x0c, 0xa6, 0x82, 0x2d, 0xf2, 0xfa, 0xd6, 0x80, 0x42, 0xb0, 0x2d, 0xbc, 0x57, 0xf7, + 0x8e, 0xd2, 0xab, 0x60, 0x87, 0x42, 0x20, 0xa4, 0x2f, 0x42, 0xeb, 0x59, 0xae, 0xee, 0x91, 0x91, + 0xa5, 0xe4, 0xed, 0x43, 0x0c, 0x32, 0x03, 0x6c, 0xb0, 0xde, 0x1f, 0x87, 0xe4, 0xba, 0x69, 0xb6, + 0xd1, 0x8f, 0xc4, 0x60, 0xc2, 0x30, 0x5d, 0x95, 0xcc, 0x15, 0xdc, 0x52, 0x79, 0xb2, 0x80, 0x59, + 0xd2, 0xab, 0x87, 0x93, 0xde, 0xb7, 0x5e, 0x9d, 0xed, 0x87, 0x1a, 0x74, 0xf5, 0x6e, 0xc9, 0x30, + 0xdd, 0x2a, 0x25, 0xda, 0x60, 0xf9, 0x84, 0x1b, 0x30, 0x1e, 0x7e, 0x3f, 0x33, 0xbf, 0xca, 0xa1, + 0xdf, 0x3f, 0x1e, 0xf9, 0xee, 0xc2, 0x56, 0xe0, 0xc5, 0xec, 0x02, 0xcc, 0x3f, 0x25, 0x83, 0xfb, + 0x3c, 0x48, 0x57, 0x7b, 0x4f, 0xa6, 0xd5, 0x21, 0x73, 0xd8, 0x43, 0x6e, 0x41, 0x89, 0x73, 0xde, + 0xd3, 0x9f, 0x8f, 0x01, 0xf8, 0xa9, 0x19, 0xf4, 0x20, 0x1c, 0xad, 0xae, 0xad, 0x2e, 0xaa, 0x8d, + 0x8d, 0xca, 0xc6, 0x66, 0x23, 0x7c, 0x5f, 0xbb, 0xb8, 0xa3, 0xc4, 0xb1, 0x70, 0x53, 0xdf, 0xd6, + 0x71, 0x0b, 0xdd, 0x0f, 0x53, 0x61, 0x6a, 0xf2, 0x54, 0x5f, 0x94, 0x62, 0xe5, 0xc2, 0xcd, 0x5b, + 0x73, 0x59, 0xe6, 0x92, 0xe2, 0x16, 0x3a, 0x09, 0x77, 0xf4, 0xd3, 0x2d, 0xad, 0x5e, 0x92, 0xe2, + 0xe5, 0xf1, 0x9b, 0xb7, 0xe6, 0x72, 0x9e, 0xef, 0x8a, 0x64, 0x40, 0x41, 0x4a, 0x8e, 0x97, 0x28, + 0xc3, 0xcd, 0x5b, 0x73, 0x69, 0x36, 0x2c, 0xe5, 0xe4, 0xfb, 0x3e, 0x31, 0x33, 0x76, 0xfa, 0x9d, + 0x00, 0x4b, 0xc6, 0xb6, 0xad, 0xd1, 0x3f, 0x5a, 0x8c, 0xca, 0x70, 0x64, 0x69, 0xf5, 0xa2, 0x52, + 0xa9, 0x6d, 0x2c, 0xad, 0xad, 0xf6, 0x5c, 0x33, 0x1f, 0xae, 0x5b, 0x5c, 0xdb, 0xac, 0x2e, 0xd7, + 0xd5, 0xc6, 0xd2, 0xa5, 0x55, 0xb6, 0xc3, 0x1b, 0xaa, 0x7b, 0x76, 0x75, 0x63, 0x69, 0xa5, 0x2e, + 0xc5, 0xab, 0x17, 0x87, 0xee, 0x31, 0x3c, 0x78, 0xe0, 0x80, 0xfb, 0x56, 0x32, 0xb4, 0xd1, 0xf0, + 0xff, 0x02, 0x00, 0x00, 0xff, 0xff, 0x9e, 0xf6, 0x42, 0xee, 0x4c, 0x97, 0x00, 0x00, } r := bytes.NewReader(gzipped) gzipr, err := compress_gzip.NewReader(r) diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index a9a8ebc03ea3..44414901984e 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -5,13 +5,15 @@ import ( "encoding/base64" "encoding/json" "fmt" - cosmos_proto "github.com/cosmos/cosmos-proto" + "io" + + "github.com/iancoleman/strcase" "github.com/pkg/errors" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" - "io" "cosmossdk.io/api/amino" + cosmos_proto "github.com/cosmos/cosmos-proto" ) type MessageEncoder func(protoreflect.Message, io.Writer) error @@ -317,16 +319,12 @@ func getOneOfNames(field protoreflect.FieldDescriptor) (string, string, error) { if oneOf == nil { return "", "", errors.Errorf("field %s must be within a oneof", field.Name()) } - oneOfOpts := oneOf.Options() - var fieldName, typeName string - if proto.HasExtension(oneOfOpts, amino.E_OneofFieldName) { - fieldName = proto.GetExtension(oneOfOpts, amino.E_OneofFieldName).(string) - } else { - return "", "", errors.Errorf("oneof %s must have the amino.oneof_field_name option set", oneOf.Name()) - } - if proto.HasExtension(opts, amino.E_OneofTypeName) { - typeName = proto.GetExtension(opts, amino.E_OneofTypeName).(string) + fieldName := strcase.ToCamel(string(oneOf.Name())) + var typeName string + + if proto.HasExtension(opts, amino.E_OneofName) { + typeName = proto.GetExtension(opts, amino.E_OneofName).(string) } else { return "", "", errors.Errorf("field %s within a oneof must have the amino.oneof_type_name option set", field.Name()) diff --git a/x/tx/go.mod b/x/tx/go.mod index 51ed876b7b46..a27878236627 100644 --- a/x/tx/go.mod +++ b/x/tx/go.mod @@ -8,6 +8,7 @@ require ( cosmossdk.io/math v1.0.0-beta.6 github.com/cosmos/cosmos-proto v1.0.0-beta.1 github.com/google/go-cmp v0.5.9 + github.com/iancoleman/strcase v0.2.0 github.com/pkg/errors v0.9.1 github.com/stretchr/testify v1.8.1 github.com/tendermint/go-amino v0.16.0 diff --git a/x/tx/go.sum b/x/tx/go.sum index 60a835ccb91e..6ee701dd9973 100644 --- a/x/tx/go.sum +++ b/x/tx/go.sum @@ -20,6 +20,8 @@ github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf h1:+RRA9JqSOZFfKrOeqr2z77+8R2RKyh8PG66dcu1V0ck= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= +github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= From b12b67859cefc5be0e683c599e0a00e1dc0f593c Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 16 Feb 2023 11:01:29 -0700 Subject: [PATCH 091/122] a little cleanup on the test suite --- codec/types/compat.go | 3 -- tests/integration/aminojson/aminojson_test.go | 41 +++++-------------- 2 files changed, 11 insertions(+), 33 deletions(-) diff --git a/codec/types/compat.go b/codec/types/compat.go index ef1980fae50c..3b669385624f 100644 --- a/codec/types/compat.go +++ b/codec/types/compat.go @@ -170,9 +170,6 @@ type AminoJSONPacker struct { var _ AnyUnpacker = AminoJSONPacker{} func (a AminoJSONPacker) UnpackAny(any *Any, _ interface{}) error { - if any == nil { - println("any is nil, what a problem!") - } err := UnpackInterfaces(any.cachedValue, a) if err != nil { return err diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index a08a955fb680..745724849cd1 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -111,7 +111,7 @@ var ( genType(&authtypes.BaseAccount{}, &authapi.BaseAccount{}, genOpts.WithAnyTypes(&ed25519.PubKey{})), genType(&authtypes.ModuleAccount{}, &authapi.ModuleAccount{}, genOpts.WithAnyTypes(&ed25519.PubKey{})), genType(&authtypes.ModuleCredential{}, &authapi.ModuleCredential{}, genOpts), - genType(&authtypes.MsgUpdateParams{}, &authapi.MsgUpdateParams{}, genOpts), + genType(&authtypes.MsgUpdateParams{}, &authapi.MsgUpdateParams{}, genOpts.WithDisallowNil()), // authz genType(&authztypes.GenericAuthorization{}, &authzapi.GenericAuthorization{}, genOpts), @@ -289,12 +289,14 @@ func TestAminoJSON_Equivalence(t *testing.T) { gen := rapidproto.MessageGenerator(tt.pulsar, tt.opts) fmt.Printf("testing %s\n", tt.pulsar.ProtoReflect().Descriptor().FullName()) rapid.Check(t, func(t *rapid.T) { - defer func() { - if r := recover(); r != nil { - //fmt.Printf("Panic: %+v\n", r) - t.FailNow() - } - }() + // uncomment to debug; catch a panic and inspect application state + //defer func() { + // if r := recover(); r != nil { + // //fmt.Printf("Panic: %+v\n", r) + // t.FailNow() + // } + //}() + msg := gen.Draw(t, "msg") postFixPulsarMessage(msg) @@ -314,11 +316,7 @@ func TestAminoJSON_Equivalence(t *testing.T) { require.NoError(t, err) aminoJson, err := aj.MarshalAmino(msg) require.NoError(t, err) - //if !bytes.Equal(legacyAminoJson, aminoJson) { - // println("UNMATCHED") - //} require.Equal(t, string(legacyAminoJson), string(aminoJson)) - //fmt.Printf("MATCHED %s\n", aminoJson) }) }) } @@ -340,13 +338,11 @@ func TestAminoJSON_LegacyParity(t *testing.T) { vesting.AppModuleBasic{}) aj := aminojson.NewAminoJSON() - addr1 := types.AccAddress([]byte("addr1")) + addr1 := types.AccAddress("addr1") now := time.Now() genericAuth, _ := codectypes.NewAnyWithValue(&authztypes.GenericAuthorization{Msg: "foo"}) genericAuthPulsar := newAny(t, &authzapi.GenericAuthorization{Msg: "foo"}) - //pubkeyAny, _ := codectypes.NewAnyWithValue(&ed25519.PubKey{Key: []byte("foo")}) - //pubkeyAnyPulsar := newAny(t, &ed25519.PubKey{Key: []byte("foo")}) pubkeyAny, _ := codectypes.NewAnyWithValue(&secp256k1types.PubKey{Key: []byte("foo")}) pubkeyAnyPulsar := newAny(t, &secp256k1.PubKey{Key: []byte("foo")}) dec10bz, _ := types.NewDec(10).Marshal() @@ -435,8 +431,6 @@ func TestAminoJSON_LegacyParity(t *testing.T) { pulsarMarshalFails: true, }, // amino.dont_omitempty + empty/nil lists produce some surprising results - // TODO - // custom renderer for coins "bank/send_authorization/empty_coins": { gogo: &banktypes.SendAuthorization{SpendLimit: []types.Coin{}}, pulsar: &bankapi.SendAuthorization{SpendLimit: []*v1beta1.Coin{}}, @@ -461,7 +455,6 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &slashingtypes.Params{DowntimeJailDuration: 1e9 + 7}, pulsar: &slashingapi.Params{DowntimeJailDuration: &durationpb.Duration{Seconds: 1, Nanos: 7}}, }, - // !! Important !! // This test cases demonstrates the expected contract and proper way to set a cosmos.Dec field represented // as bytes in protobuf message, namely: // dec10bz, _ := types.NewDec(10).Marshal() @@ -549,9 +542,6 @@ func TestAminoJSON_LegacyParity(t *testing.T) { } } -func TestScratch(t *testing.T) { -} - func TestSendAuthorization(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, distribution.AppModuleBasic{}, bank.AppModuleBasic{}) @@ -606,6 +596,7 @@ func postFixPulsarMessage(msg proto.Message) { m.BaseAccount = &authapi.BaseAccount{} } _, _, bz := testdata.KeyTestPubAddr() + // always set address to a valid bech32 address text, _ := bech32.ConvertAndEncode("cosmos", bz) m.BaseAccount.Address = text @@ -613,15 +604,5 @@ func postFixPulsarMessage(msg proto.Message) { if len(m.Permissions) == 0 { m.Permissions = nil } - case *authapi.MsgUpdateParams: - // params is required in the gogo message - if m.Params == nil { - m.Params = &authapi.Params{} - } - case *authzapi.MsgGrant: - // grant is required in the gogo message - if m.Grant == nil { - m.Grant = &authzapi.Grant{} - } } } From 5a48d895d50d0c298acf6e0d07644350090a84f4 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 16 Feb 2023 11:56:11 -0700 Subject: [PATCH 092/122] comments and clean up --- tests/integration/aminojson/aminojson_test.go | 15 +++++++ x/tx/aminojson/README.md | 22 ----------- x/tx/aminojson/any.go | 2 - x/tx/aminojson/json_marshal.go | 39 ++++--------------- x/tx/rapidproto/rapidproto.go | 11 +++++- 5 files changed, 32 insertions(+), 57 deletions(-) delete mode 100644 x/tx/aminojson/README.md diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 745724849cd1..98ccd0e4d4e6 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -275,6 +275,20 @@ var ( } ) +// TestAminoJSON_Equivalence tests that x/tx/AminoJSON encoding is equivalent to the legacy AminoJSON encoding. +// A custom generator is used to generate random messages that are then encoded using both encoders. The custom +// generator only supports proto.Message (which implement the protoreflect API) so in order to test legacy gogo types +// we end up with a workflow as follows: +// +// 1. Generate a random protobuf proto.Message using the custom generator +// 2. Marshal the proto.Message to protobuf binary bytes +// 3. Unmarshal the protobuf bytes to a gogoproto.Message +// 4. Marshal the gogoproto.Message to amino JSON bytes +// 5. Marshal the proto.Message to amino JSON bytes +// 6. Compare the amino JSON bytes from steps 4 and 5 +// +// In order for step 3 to work certain restrictions on the data generated in step 1 must be enforced and are described +// by the mutation of genOpts passed to the generator. func TestAminoJSON_Equivalence(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig( auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, consensus.AppModuleBasic{}, @@ -332,6 +346,7 @@ func newAny(t *testing.T, msg proto.Message) *anypb.Any { } } +// TestAminoJSON_LegacyParity tests that the AminoJSON encoder produces the same output as the AminoJSON encoder. func TestAminoJSON_LegacyParity(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, distribution.AppModuleBasic{}, slashing.AppModuleBasic{}, staking.AppModuleBasic{}, diff --git a/x/tx/aminojson/README.md b/x/tx/aminojson/README.md deleted file mode 100644 index cfcd87aece87..000000000000 --- a/x/tx/aminojson/README.md +++ /dev/null @@ -1,22 +0,0 @@ -### go-amino/encoding-json behavior - -Types which implement the interface method `cosmos-sdk/codec.AminoMarshaler.MarshalAminoJSON` will be -marshaled using that method instead of the default JSON encoding. This is called by [reflection](https://github.com/tendermint/go-amino/blob/01b51bd47ba0f0bedebea6e8174484ff7863b282/reflect.go#L232). We will -find feature parity through the [amino.encoding](https://github.com/cosmos/cosmos-sdk/blob/b49f948b36bc991db5be431607b475633aed697e/proto/amino/amino.proto#L30encoding) and/or `amino.message_encoding` annotations. - -The same seems to be true for `encoding/json.Marshaler.MarshalJSON` and `MarshalAmino`. - -Note that go-amino [special cases byte arrays](https://github.com/tendermint/go-amino/blob/ccb15b138dfd74282be78f5e9059387768b12918/json-encode.go#L231) to support e.g. key serialization. This odd feature must be -included for total feature parity. - -look to `std.RegisterLegacyAminoCodec(amino)` for current usages and registration of the codec -amino map serialization is non-deterministic - -- structurally follow legacy amino json encoding -- refer to stablejson for protoreflect details translating golang reflect -> protoreflect -- add special casing custom encoders (including tests) -- add rapid tests -- refactor for readability. not really convinced stablejson is anymore readable than amino json yet -- check timestamp special casing is equivalent - -- ensure all usages of gogoproto.nullable are augmented with amino.dont_omitempty \ No newline at end of file diff --git a/x/tx/aminojson/any.go b/x/tx/aminojson/any.go index 6b40f35df048..3ab8bd1527a7 100644 --- a/x/tx/aminojson/any.go +++ b/x/tx/aminojson/any.go @@ -23,8 +23,6 @@ func (aj AminoJSON) marshalAny(message protoreflect.Message, writer io.Writer) e } typeUrl := message.Get(typeUrlField).String() - // TODO - // need an override for this? resolver := protoregistry.GlobalTypes typ, err := resolver.FindMessageByURL(typeUrl) diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 44414901984e..f8e7d35bd848 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -16,24 +16,23 @@ import ( cosmos_proto "github.com/cosmos/cosmos-proto" ) +// MessageEncoder is a function that can encode a protobuf protoreflect.Message to JSON. type MessageEncoder func(protoreflect.Message, io.Writer) error + +// FieldEncoder is a function that can encode a protobuf protoreflect.Value to JSON. type FieldEncoder func(AminoJSON, protoreflect.Value, io.Writer) error +// AminoJSON is a JSON encoder that uses the Amino JSON encoding rules. type AminoJSON struct { // maps cosmos_proto.scalar -> zero value factory scalarEncoders map[string]FieldEncoder - zeroValues map[string]func() protoreflect.Value messageEncoders map[string]MessageEncoder fieldEncoders map[string]FieldEncoder } +// NewAminoJSON returns a new AminoJSON encoder. func NewAminoJSON() AminoJSON { aj := AminoJSON{ - zeroValues: map[string]func() protoreflect.Value{ - "cosmos.Dec": func() protoreflect.Value { - return protoreflect.ValueOfString("0") - }, - }, scalarEncoders: map[string]FieldEncoder{ "cosmos.Dec": cosmosDecEncoder, "cosmos.Int": cosmosDecEncoder, @@ -52,22 +51,23 @@ func NewAminoJSON() AminoJSON { return aj } +// DefineMessageEncoding defines a custom encoding for a protobuf message. func (aj AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) { aj.messageEncoders[name] = encoder } +// DefineFieldEncoding defines a custom encoding for a protobuf field. func (aj AminoJSON) DefineFieldEncoding(name string, encoder FieldEncoder) { aj.fieldEncoders[name] = encoder } +// MarshalAmino serializes a protobuf message to JSON. func (aj AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} err := aj.beginMarshal(message.ProtoReflect(), buf) return buf.Bytes(), err } -// TODO -// move into marshalMessage func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) error { name, named := getMessageName(msg) if named { @@ -93,9 +93,6 @@ func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) err } func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { - // TODO timestamp - // this is what is breaking MsgGrant - switch val := value.Interface().(type) { case protoreflect.Message: err := aj.marshalMessage(val, writer) @@ -293,15 +290,6 @@ func omitEmpty(field protoreflect.FieldDescriptor) bool { dontOmitEmpty := proto.GetExtension(opts, amino.E_DontOmitempty).(bool) return !dontOmitEmpty } - //if field.ContainingOneof() != nil { - // return false - //} - - // legacy support for gogoproto would need to look something like below. - // - // if gproto.GetBoolExtension(opts, gogoproto.E_Nullable, true) { - // - // } return true } @@ -333,17 +321,6 @@ func getOneOfNames(field protoreflect.FieldDescriptor) (string, string, error) { return fieldName, typeName, nil } -func (aj AminoJSON) getZeroValue(field protoreflect.FieldDescriptor) (protoreflect.Value, bool) { - opts := field.Options() - if proto.HasExtension(opts, cosmos_proto.E_Scalar) { - scalar := proto.GetExtension(opts, cosmos_proto.E_Scalar).(string) - if fn, ok := aj.zeroValues[scalar]; ok { - return fn(), true - } - } - return field.Default(), false -} - func (aj AminoJSON) getMessageEncoder(message protoreflect.Message) MessageEncoder { opts := message.Descriptor().Options() if proto.HasExtension(opts, amino.E_MessageEncoding) { diff --git a/x/tx/rapidproto/rapidproto.go b/x/tx/rapidproto/rapidproto.go index c6fa29df822f..ac49d9654545 100644 --- a/x/tx/rapidproto/rapidproto.go +++ b/x/tx/rapidproto/rapidproto.go @@ -28,11 +28,18 @@ type GeneratorOptions struct { AnyTypeURLs []string InterfaceHints map[string]string Resolver protoregistry.MessageTypeResolver + // NoEmptyLists will cause the generator to not generate empty lists // Recall that an empty list will marshal (and unmarshal) to null. Some encodings may treat these states // differently. For example, in JSON, an empty list is encoded as [], while null is encoded as null. - NoEmptyLists bool - DisallowNilMessages bool + NoEmptyLists bool + + // DisallowNilMessages will cause the generator to not generate nil messages to protoreflect.MessageKind fields + DisallowNilMessages bool + + // GogoUnmarshalCompatibleDecimal will cause the generator to generate decimal values which, when serialized as + // either bytes or a string, are compatible with gogo's unmarshaler. These fields are identified by the presence + // of (amino.encoding = "cosmos_dec_bytes") or (cosmos_proto.scalar = "cosmos.Dec") annotations. GogoUnmarshalCompatibleDecimal bool } From a1898b3807f5ecd890c38c1aadcdc0edd20dd37f Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 16 Feb 2023 11:58:19 -0700 Subject: [PATCH 093/122] revert line --- x/auth/tx/encode_decode_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/auth/tx/encode_decode_test.go b/x/auth/tx/encode_decode_test.go index 9d7512ffd064..f4297770959c 100644 --- a/x/auth/tx/encode_decode_test.go +++ b/x/auth/tx/encode_decode_test.go @@ -32,7 +32,7 @@ func TestDefaultTxDecoderError(t *testing.T) { require.NoError(t, err) _, err = decoder(txBz) - require.EqualError(t, err, "unable to resolve type URL /testdata.TestMsg: tx parse error") + require.EqualError(t, err, "unable to resolve type URL /testpb.TestMsg: tx parse error") testdata.RegisterInterfaces(registry) _, err = decoder(txBz) From 0702382839c4a2d4ee9399dc180fb97bb49eee19 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 16 Feb 2023 11:59:17 -0700 Subject: [PATCH 094/122] clean up --- x/tx/aminojson/time.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/x/tx/aminojson/time.go b/x/tx/aminojson/time.go index 75f509180759..c141de0eff4c 100644 --- a/x/tx/aminojson/time.go +++ b/x/tx/aminojson/time.go @@ -14,10 +14,6 @@ const ( ) func marshalTimestamp(message protoreflect.Message, writer io.Writer) error { - // PROTO3 SPEC: - // Uses RFC 3339, where generated output will always be Z-normalized and uses 0, 3, 6 or 9 fractional digits. - // Offsets other than "Z" are also accepted. - fields := message.Descriptor().Fields() secondsField := fields.ByName(secondsName) if secondsField == nil { From 83a6f05e188bb366631fd3d3a82dccec8313b714 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 16 Feb 2023 12:18:26 -0700 Subject: [PATCH 095/122] go mod tidy --- tests/go.mod | 4 +++- tests/go.sum | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/go.mod b/tests/go.mod index 6c88f462b687..99f1775d0902 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -28,6 +28,8 @@ require ( pgregory.net/rapid v0.5.5 ) +require github.com/cosmos/cosmos-proto v1.0.0-beta.1 + require ( cloud.google.com/go v0.107.0 // indirect cloud.google.com/go/compute v1.15.1 // indirect @@ -61,7 +63,6 @@ require ( github.com/cometbft/cometbft-db v0.7.0 // indirect github.com/confio/ics23/go v0.9.0 // indirect github.com/cosmos/btcutil v1.0.5 // indirect - github.com/cosmos/cosmos-proto v1.0.0-beta.1 // indirect github.com/cosmos/go-bip39 v1.0.0 // indirect github.com/cosmos/gogogateway v1.2.0 // indirect github.com/cosmos/iavl v0.20.0-alpha3 // indirect @@ -113,6 +114,7 @@ require ( github.com/hashicorp/hcl v1.0.0 // indirect github.com/hdevalence/ed25519consensus v0.0.0-20220222234857-c00d1f31bab3 // indirect github.com/huandu/skiplist v1.2.0 // indirect + github.com/iancoleman/strcase v0.2.0 // indirect github.com/improbable-eng/grpc-web v0.15.0 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jmespath/go-jmespath v0.4.0 // indirect diff --git a/tests/go.sum b/tests/go.sum index 518ee73919db..c06ab32da4ed 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -514,6 +514,8 @@ github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= +github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= From 82382e3323a1149942e55880938792917068d830 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 20 Feb 2023 09:18:06 -0600 Subject: [PATCH 096/122] use api v0.3.1 --- tests/go.mod | 3 +-- tests/go.sum | 4 ++-- x/tx/go.mod | 2 +- x/tx/go.sum | 4 ++-- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/go.mod b/tests/go.mod index b8ec8d57a237..a7554c06c46d 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -3,7 +3,7 @@ module github.com/cosmos/cosmos-sdk/tests go 1.20 require ( - cosmossdk.io/api v0.3.0 + cosmossdk.io/api v0.3.1 cosmossdk.io/depinject v1.0.0-alpha.3 cosmossdk.io/errors v1.0.0-beta.7 cosmossdk.io/log v0.0.0-20230219145338-9553bf1eec78 @@ -40,7 +40,6 @@ require ( cosmossdk.io/client/v2 v2.0.0-20230104083136-11f46a0bae58 // indirect cosmossdk.io/collections v0.0.0-20230214153846-b6c6e4e99177 // indirect cosmossdk.io/core v0.5.1 // indirect - cosmossdk.io/errors v1.0.0-beta.7 // indirect filippo.io/edwards25519 v1.0.0-rc.1 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect diff --git a/tests/go.sum b/tests/go.sum index 0179543239e7..ba5253703717 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -188,8 +188,8 @@ cloud.google.com/go/webrisk v1.4.0/go.mod h1:Hn8X6Zr+ziE2aNd8SliSDWpEnSS1u4R9+xX cloud.google.com/go/webrisk v1.5.0/go.mod h1:iPG6fr52Tv7sGk0H6qUFzmL3HHZev1htXuWDEEsqMTg= cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1Vwf+KmJENM0= cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= -cosmossdk.io/api v0.3.0 h1:cxsu79MWJAXqiYANNgcP357BXvm5Tw5ppDr/maOANxw= -cosmossdk.io/api v0.3.0/go.mod h1:2HDRQHwVIyklENrrXko0E/waZrRFZWHhPyhcBO4qHq4= +cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= +cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/client/v2 v2.0.0-20230104083136-11f46a0bae58 h1:q0AkHBZnYhsnnS3AmTUu1BOO+TH3oNOsXbG6oeExwvg= cosmossdk.io/client/v2 v2.0.0-20230104083136-11f46a0bae58/go.mod h1:ztqtfnFSD3edvhNOAShzKod13nfKLM1sZj0uu0fo56w= cosmossdk.io/collections v0.0.0-20230214153846-b6c6e4e99177 h1:At2M0aYQKEAWqr6JtZrJPOlfhdvENiGwJg2NCNHwIdc= diff --git a/x/tx/go.mod b/x/tx/go.mod index 76651e4e0281..9d44a7d29672 100644 --- a/x/tx/go.mod +++ b/x/tx/go.mod @@ -3,7 +3,7 @@ module cosmossdk.io/x/tx go 1.19 require ( - cosmossdk.io/api v0.3.0 + cosmossdk.io/api v0.3.1 cosmossdk.io/core v0.5.1 cosmossdk.io/math v1.0.0-beta.6 github.com/cosmos/cosmos-proto v1.0.0-beta.1 diff --git a/x/tx/go.sum b/x/tx/go.sum index 76b56a0ff222..233518a032c4 100644 --- a/x/tx/go.sum +++ b/x/tx/go.sum @@ -1,5 +1,5 @@ -cosmossdk.io/api v0.3.0 h1:cxsu79MWJAXqiYANNgcP357BXvm5Tw5ppDr/maOANxw= -cosmossdk.io/api v0.3.0/go.mod h1:2HDRQHwVIyklENrrXko0E/waZrRFZWHhPyhcBO4qHq4= +cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= +cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE= cosmossdk.io/math v1.0.0-beta.6 h1:WF29SiFYNde5eYvqO2kdOM9nYbDb44j3YW5B8M1m9KE= From 8bcc7250632ee23e74f9cbad12ec934a2e3b75b6 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 20 Feb 2023 09:27:18 -0600 Subject: [PATCH 097/122] update test seeds --- x/tx/rapidproto/testdata/seed0.json | 2 +- x/tx/rapidproto/testdata/seed1.json | 2 +- x/tx/rapidproto/testdata/seed2.json | 2 +- x/tx/rapidproto/testdata/seed3.json | 2 +- x/tx/rapidproto/testdata/seed4.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/x/tx/rapidproto/testdata/seed0.json b/x/tx/rapidproto/testdata/seed0.json index fc8ba93a5450..18f00f0a7d84 100644 --- a/x/tx/rapidproto/testdata/seed0.json +++ b/x/tx/rapidproto/testdata/seed0.json @@ -1 +1 @@ -{"enum":"Two", "someBoolean":true, "INT32":6, "SINT32":-53, "INT64":"-261", "SFIXED32":3, "FIXED32":65302, "FIXED64":"45044", "STRING":"󳲠~Âaႃ#", "MESSAGE":{"x":"ʰ="}, "MAP":{"":{"x":"௹"}, "%󠇯º$&.":{"x":"-"}, "=A":{}, "AA|𞀠":{"x":"a\u0000ๆ"}}, "LIST":[{}], "ONEOFSTRING":"", "imported":{}} \ No newline at end of file +{"enum":"Two", "someBoolean":true, "INT32":6, "SINT32":-53, "UINT32":387, "INT64":"55744386", "SING64":"3", "UINT64":"3669782", "SFIXED32":-1, "FIXED32":55, "FLOAT":0.4375, "SFIXED64":"-9223372036854775808", "FIXED64":"220", "DOUBLE":-2.7557020405947696, "STRING":"{~", "BYTES":"KAgdAwEDngMAJgUaAg==", "MAP":{"":{"x":"~<%󠇯º$&."}, "ः=A":{"x":"🄌AA/ᕗ󠁫𒐻A+aÃd𖾚#ˆ󠀧٣A꜑"}}, "LIST":[{"x":"ȧ$:𞻱"}, {"x":"\t\t!Ⱥ𝝧؂°\r@\"$ႜ[×h<Ⅳऻ⁄⃢~%􏿽︱"}, {"x":"/"}], "ONEOFSTRING":"", "LISTENUM":["Two"], "type":"a_<"} \ No newline at end of file diff --git a/x/tx/rapidproto/testdata/seed1.json b/x/tx/rapidproto/testdata/seed1.json index 881e8d32c433..f97d09960fc4 100644 --- a/x/tx/rapidproto/testdata/seed1.json +++ b/x/tx/rapidproto/testdata/seed1.json @@ -1 +1 @@ -{"UINT32":177, "INT64":"-139958413", "SFIXED32":41418, "FIXED32":25381940, "FLOAT":-8.336453e+31, "SFIXED64":"-2503553836720", "DOUBLE":-0.03171187036377887, "STRING":"?˄~ע", "MESSAGE":{"x":"dDž#"}, "MAP":{"Ⱥa<":{"x":"+["}, "֑Ⱥ|@!`":{}}, "ONEOFSTRING":"\u0012\t?A", "imported":{}, "type":"A�=*ى~~‮Ⱥ*ᾈാȺAᶊ?"} \ No newline at end of file +{"INT32":75750681, "SINT32":-18, "UINT32":41418, "INT64":"-12", "SING64":"882666", "UINT64":"1", "SFIXED32":-661644976, "FIXED32":200, "FLOAT":5.715152e-31, "SFIXED64":"-21034573818", "FIXED64":"109589290783", "DOUBLE":-2.6619938527987775e-171, "MESSAGE":{"x":"dDž#"}, "MAP":{"̏a[":{"x":"A"}, "֑Ⱥ|@!`":{"x":"Ⱥa<"}}, "LIST":[{"x":"$੬&ắA"}, {"x":"2"}, {"x":"�=*ى~~‮Ⱥ*ᾈാȺAᶊ?"}, {"x":"/𫆞/\\B+₸⊚\u000b𝝺​Ⱥ +\u001c"}, {"x":"𐹹aa"}, {"x":"\u0000Ⱥa"}, {"x":".("}, {}, {"x":"𞤡|𤕐A\u0000₰€¢+"}, {}], "ONEOFSTRING":"\t", "LISTENUM":["Two", "One", "Two", "One", "One", "Two", "Two"], "imported":{}, "type":"⍦"} \ No newline at end of file diff --git a/x/tx/rapidproto/testdata/seed2.json b/x/tx/rapidproto/testdata/seed2.json index 8a1986c45689..0537a74d6df3 100644 --- a/x/tx/rapidproto/testdata/seed2.json +++ b/x/tx/rapidproto/testdata/seed2.json @@ -1 +1 @@ -{"INT32":-48, "UINT32":246, "INT64":"-21558176502", "SING64":"5030347", "UINT64":"28", "FIXED32":92, "DOUBLE":2.3547259926790202e-142, "STRING":"ಾ", "LIST":[{}, {}, {}, {}, {"x":" ᾚ DzA{˭҄\nA ^$?ᾦ,:<\"?_\u0014;|"}], "ONEOFSTRING":"𝟠Ÿ", "LISTENUM":["Two", "One", "One"]} \ No newline at end of file +{"INT32":-48, "SINT32":246, "UINT32":134746579, "INT64":"-1", "SING64":"28", "UINT64":"1", "SFIXED32":14, "FIXED32":14, "FLOAT":-0.203125, "SFIXED64":"-677950", "FIXED64":"1152", "DOUBLE":-44.06591796875, "STRING":"\u001b", "BYTES":"AyQD7wU=", "LIST":[{"x":"["}, {"x":"A٤"}, {"x":" ^$?ᾦ,:<\"?_\u0014;|"}, {"x":"'i#&"}, {"x":"$#"}, {"x":" Ⱥ!/"}, {"x":"⃝̚"}, {}, {"x":"􆏷/a֍)!\"˂A"}, {}], "ONEOFSTRING":"", "LISTENUM":["One", "Two", "One", "Two"], "type":" ࿋a­̋ᛮ"} \ No newline at end of file diff --git a/x/tx/rapidproto/testdata/seed3.json b/x/tx/rapidproto/testdata/seed3.json index 6b02c4152d59..8da212b1d05b 100644 --- a/x/tx/rapidproto/testdata/seed3.json +++ b/x/tx/rapidproto/testdata/seed3.json @@ -1 +1 @@ -{"INT32":22525032, "SINT32":897, "INT64":"-301128487533312", "SFIXED64":"-71", "FIXED64":"14", "DOUBLE":-2.983041182946181, "STRING":"-A^'", "MESSAGE":{"x":"#ऻ;́\r‮⋁"}, "LIST":[{}, {}, {}, {}, {}], "ONEOFSTRING":"", "imported":{}, "type":"₩\u0000^৴~౽  NjAৈ􁇸⃠𝖜ೄ"} \ No newline at end of file +{"someBoolean":true, "INT32":-5642, "SINT32":-103, "UINT32":454, "INT64":"46201042", "SING64":"182", "UINT64":"14668", "SFIXED32":6, "FIXED32":13915, "FLOAT":-3.148335e-10, "SFIXED64":"106827", "DOUBLE":-0.00146484375, "MESSAGE":{"x":"#ऻ;́\r‮⋁"}, "LIST":[{}, {"x":"#ş‍"}, {"x":"􉶋৴~౽  NjAৈ􁇸⃠𝖜ೄ"}, {}, {}], "ONEOFSTRING":"%ᎦA᪗ʰ𞻱`", "LISTENUM":["Two", "One", "Two", "Two", "Two", "One", "Two"], "imported":{}, "type":"?+Ⱥ&aAࡂ\u0000+"} \ No newline at end of file diff --git a/x/tx/rapidproto/testdata/seed4.json b/x/tx/rapidproto/testdata/seed4.json index fe4be997095c..8b60b6bbd922 100644 --- a/x/tx/rapidproto/testdata/seed4.json +++ b/x/tx/rapidproto/testdata/seed4.json @@ -1 +1 @@ -{"SINT32":1, "INT64":"-9223372036854775808", "SING64":"1", "FLOAT":-0.00013906474, "SFIXED64":"71414010", "STRING":"ף̂", "MESSAGE":{"x":" "}, "LIST":[{}], "ONEOFSTRING":"#¯∑Ⱥ�", "LISTENUM":["One", "One", "Two", "Two", "One", "One", "One", "Two"], "imported":{}, "type":"\u001b<ʰ+`𑱐@\u001b*Dž‮\u0000#₻\u0000"} \ No newline at end of file +{"INT32":1, "SINT32":14302, "UINT32":23, "INT64":"1476419818092", "SING64":"-108760277393", "UINT64":"795", "SFIXED32":-1, "FIXED32":4078, "FLOAT":-2.546875, "SFIXED64":"-1948", "FIXED64":"3", "DOUBLE":9.548842982977199, "BYTES":"Ag==", "MESSAGE":{"x":"ª1¯∑Ⱥ�"}, "MAP":{"":{"x":"ʳ"}, "A𐐒٧?A":{}, "aɝ":{"x":"."}, "Ⱥ":{"x":"%"}, "̇ڂ!a\u0000~":{"x":"⑱?"}, "ᛯ=[฿́\u001b<ʰ+`𑱐@\u001b*Dž‮\u0000#₻\u0000":{}, "ᾛ𝅷|Ⱥ\n#ꜿ=&A":{"x":"a"}}, "ONEOFSTRING":";a", "imported":{}, "type":"&´aᾼa\u0000#ᛮ𑙢aᾮ&₰?𐧀~ ा၉𩴱A` "} \ No newline at end of file From 8f6cec9aeaefe668a21e84e3de00042bd8bdc63e Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 20 Feb 2023 09:41:24 -0600 Subject: [PATCH 098/122] update rapidproto test seeds --- x/tx/rapidproto/testdata/seed0.json | 2 +- x/tx/rapidproto/testdata/seed1.json | 2 +- x/tx/rapidproto/testdata/seed2.json | 2 +- x/tx/rapidproto/testdata/seed3.json | 2 +- x/tx/rapidproto/testdata/seed4.json | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/x/tx/rapidproto/testdata/seed0.json b/x/tx/rapidproto/testdata/seed0.json index 18f00f0a7d84..286a0b9d8962 100644 --- a/x/tx/rapidproto/testdata/seed0.json +++ b/x/tx/rapidproto/testdata/seed0.json @@ -1 +1 @@ -{"enum":"Two", "someBoolean":true, "INT32":6, "SINT32":-53, "UINT32":387, "INT64":"55744386", "SING64":"3", "UINT64":"3669782", "SFIXED32":-1, "FIXED32":55, "FLOAT":0.4375, "SFIXED64":"-9223372036854775808", "FIXED64":"220", "DOUBLE":-2.7557020405947696, "STRING":"{~", "BYTES":"KAgdAwEDngMAJgUaAg==", "MAP":{"":{"x":"~<%󠇯º$&."}, "ः=A":{"x":"🄌AA/ᕗ󠁫𒐻A+aÃd𖾚#ˆ󠀧٣A꜑"}}, "LIST":[{"x":"ȧ$:𞻱"}, {"x":"\t\t!Ⱥ𝝧؂°\r@\"$ႜ[×h<Ⅳऻ⁄⃢~%􏿽︱"}, {"x":"/"}], "ONEOFSTRING":"", "LISTENUM":["Two"], "type":"a_<"} \ No newline at end of file +{"enum":"Two","someBoolean":true,"INT32":6,"SINT32":-53,"UINT32":387,"INT64":"55744386","SING64":"3","UINT64":"3669782","SFIXED32":-1,"FIXED32":55,"FLOAT":0.4375,"SFIXED64":"-9223372036854775808","FIXED64":"220","DOUBLE":-2.7557020405947696,"STRING":"{~","BYTES":"KAgdAwEDngMAJgUaAg==","MAP":{"":{"x":"~<%󠇯º$&."},"ः=A":{"x":"🄌AA/ᕗ󠁫𒐻A+aÃd𖾚#ˆ󠀧٣A꜑"}},"LIST":[{"x":"ȧ$:𞻱"},{"x":"\t\t!Ⱥ𝝧؂°\r@\"$ႜ[×h<Ⅳऻ⁄⃢~%􏿽︱"},{"x":"/"}],"ONEOFSTRING":"","LISTENUM":["Two"],"type":"a_<"} \ No newline at end of file diff --git a/x/tx/rapidproto/testdata/seed1.json b/x/tx/rapidproto/testdata/seed1.json index f97d09960fc4..a95047c08d30 100644 --- a/x/tx/rapidproto/testdata/seed1.json +++ b/x/tx/rapidproto/testdata/seed1.json @@ -1 +1 @@ -{"INT32":75750681, "SINT32":-18, "UINT32":41418, "INT64":"-12", "SING64":"882666", "UINT64":"1", "SFIXED32":-661644976, "FIXED32":200, "FLOAT":5.715152e-31, "SFIXED64":"-21034573818", "FIXED64":"109589290783", "DOUBLE":-2.6619938527987775e-171, "MESSAGE":{"x":"dDž#"}, "MAP":{"̏a[":{"x":"A"}, "֑Ⱥ|@!`":{"x":"Ⱥa<"}}, "LIST":[{"x":"$੬&ắA"}, {"x":"2"}, {"x":"�=*ى~~‮Ⱥ*ᾈാȺAᶊ?"}, {"x":"/𫆞/\\B+₸⊚\u000b𝝺​Ⱥ +\u001c"}, {"x":"𐹹aa"}, {"x":"\u0000Ⱥa"}, {"x":".("}, {}, {"x":"𞤡|𤕐A\u0000₰€¢+"}, {}], "ONEOFSTRING":"\t", "LISTENUM":["Two", "One", "Two", "One", "One", "Two", "Two"], "imported":{}, "type":"⍦"} \ No newline at end of file +{"INT32":75750681,"SINT32":-18,"UINT32":41418,"INT64":"-12","SING64":"882666","UINT64":"1","SFIXED32":-661644976,"FIXED32":200,"FLOAT":5.715152e-31,"SFIXED64":"-21034573818","FIXED64":"109589290783","DOUBLE":-2.6619938527987775e-171,"MESSAGE":{"x":"dDž#"},"MAP":{"̏a[":{"x":"A"},"֑Ⱥ|@!`":{"x":"Ⱥa<"}},"LIST":[{"x":"$੬&ắA"},{"x":"2"},{"x":"�=*ى~~‮Ⱥ*ᾈാȺAᶊ?"},{"x":"/𫆞/\\B+₸⊚\u000b𝝺​Ⱥ +\u001c"},{"x":"𐹹aa"},{"x":"\u0000Ⱥa"},{"x":".("},{},{"x":"𞤡|𤕐A\u0000₰€¢+"},{}],"ONEOFSTRING":"\t","LISTENUM":["Two","One","Two","One","One","Two","Two"],"imported":{},"type":"⍦"} \ No newline at end of file diff --git a/x/tx/rapidproto/testdata/seed2.json b/x/tx/rapidproto/testdata/seed2.json index 0537a74d6df3..1ec5e39679ed 100644 --- a/x/tx/rapidproto/testdata/seed2.json +++ b/x/tx/rapidproto/testdata/seed2.json @@ -1 +1 @@ -{"INT32":-48, "SINT32":246, "UINT32":134746579, "INT64":"-1", "SING64":"28", "UINT64":"1", "SFIXED32":14, "FIXED32":14, "FLOAT":-0.203125, "SFIXED64":"-677950", "FIXED64":"1152", "DOUBLE":-44.06591796875, "STRING":"\u001b", "BYTES":"AyQD7wU=", "LIST":[{"x":"["}, {"x":"A٤"}, {"x":" ^$?ᾦ,:<\"?_\u0014;|"}, {"x":"'i#&"}, {"x":"$#"}, {"x":" Ⱥ!/"}, {"x":"⃝̚"}, {}, {"x":"􆏷/a֍)!\"˂A"}, {}], "ONEOFSTRING":"", "LISTENUM":["One", "Two", "One", "Two"], "type":" ࿋a­̋ᛮ"} \ No newline at end of file +{"INT32":-48,"SINT32":246,"UINT32":134746579,"INT64":"-1","SING64":"28","UINT64":"1","SFIXED32":14,"FIXED32":14,"FLOAT":-0.203125,"SFIXED64":"-677950","FIXED64":"1152","DOUBLE":-44.06591796875,"STRING":"\u001b","BYTES":"AyQD7wU=","LIST":[{"x":"["},{"x":"A٤"},{"x":" ^$?ᾦ,:<\"?_\u0014;|"},{"x":"'i#&"},{"x":"$#"},{"x":" Ⱥ!/"},{"x":"⃝̚"},{},{"x":"􆏷/a֍)!\"˂A"},{}],"ONEOFSTRING":"","LISTENUM":["One","Two","One","Two"],"type":" ࿋a­̋ᛮ"} \ No newline at end of file diff --git a/x/tx/rapidproto/testdata/seed3.json b/x/tx/rapidproto/testdata/seed3.json index 8da212b1d05b..b2e1ac12b467 100644 --- a/x/tx/rapidproto/testdata/seed3.json +++ b/x/tx/rapidproto/testdata/seed3.json @@ -1 +1 @@ -{"someBoolean":true, "INT32":-5642, "SINT32":-103, "UINT32":454, "INT64":"46201042", "SING64":"182", "UINT64":"14668", "SFIXED32":6, "FIXED32":13915, "FLOAT":-3.148335e-10, "SFIXED64":"106827", "DOUBLE":-0.00146484375, "MESSAGE":{"x":"#ऻ;́\r‮⋁"}, "LIST":[{}, {"x":"#ş‍"}, {"x":"􉶋৴~౽  NjAৈ􁇸⃠𝖜ೄ"}, {}, {}], "ONEOFSTRING":"%ᎦA᪗ʰ𞻱`", "LISTENUM":["Two", "One", "Two", "Two", "Two", "One", "Two"], "imported":{}, "type":"?+Ⱥ&aAࡂ\u0000+"} \ No newline at end of file +{"someBoolean":true,"INT32":-5642,"SINT32":-103,"UINT32":454,"INT64":"46201042","SING64":"182","UINT64":"14668","SFIXED32":6,"FIXED32":13915,"FLOAT":-3.148335e-10,"SFIXED64":"106827","DOUBLE":-0.00146484375,"MESSAGE":{"x":"#ऻ;́\r‮⋁"},"LIST":[{},{"x":"#ş‍"},{"x":"􉶋৴~౽  NjAৈ􁇸⃠𝖜ೄ"},{},{}],"ONEOFSTRING":"%ᎦA᪗ʰ𞻱`","LISTENUM":["Two","One","Two","Two","Two","One","Two"],"imported":{},"type":"?+Ⱥ&aAࡂ\u0000+"} \ No newline at end of file diff --git a/x/tx/rapidproto/testdata/seed4.json b/x/tx/rapidproto/testdata/seed4.json index 8b60b6bbd922..014c06729aea 100644 --- a/x/tx/rapidproto/testdata/seed4.json +++ b/x/tx/rapidproto/testdata/seed4.json @@ -1 +1 @@ -{"INT32":1, "SINT32":14302, "UINT32":23, "INT64":"1476419818092", "SING64":"-108760277393", "UINT64":"795", "SFIXED32":-1, "FIXED32":4078, "FLOAT":-2.546875, "SFIXED64":"-1948", "FIXED64":"3", "DOUBLE":9.548842982977199, "BYTES":"Ag==", "MESSAGE":{"x":"ª1¯∑Ⱥ�"}, "MAP":{"":{"x":"ʳ"}, "A𐐒٧?A":{}, "aɝ":{"x":"."}, "Ⱥ":{"x":"%"}, "̇ڂ!a\u0000~":{"x":"⑱?"}, "ᛯ=[฿́\u001b<ʰ+`𑱐@\u001b*Dž‮\u0000#₻\u0000":{}, "ᾛ𝅷|Ⱥ\n#ꜿ=&A":{"x":"a"}}, "ONEOFSTRING":";a", "imported":{}, "type":"&´aᾼa\u0000#ᛮ𑙢aᾮ&₰?𐧀~ ा၉𩴱A` "} \ No newline at end of file +{"INT32":1,"SINT32":14302,"UINT32":23,"INT64":"1476419818092","SING64":"-108760277393","UINT64":"795","SFIXED32":-1,"FIXED32":4078,"FLOAT":-2.546875,"SFIXED64":"-1948","FIXED64":"3","DOUBLE":9.548842982977199,"BYTES":"Ag==","MESSAGE":{"x":"ª1¯∑Ⱥ�"},"MAP":{"":{"x":"ʳ"},"A𐐒٧?A":{},"aɝ":{"x":"."},"Ⱥ":{"x":"%"},"̇ڂ!a\u0000~":{"x":"⑱?"},"ᛯ=[฿́\u001b<ʰ+`𑱐@\u001b*Dž‮\u0000#₻\u0000":{},"ᾛ𝅷|Ⱥ\n#ꜿ=&A":{"x":"a"}},"ONEOFSTRING":";a","imported":{},"type":"&´aᾼa\u0000#ᛮ𑙢aᾮ&₰?𐧀~ ा၉𩴱A` "} \ No newline at end of file From f9717685116d0d69f85182d045b7aaa21229a4fd Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 20 Feb 2023 15:08:07 -0600 Subject: [PATCH 099/122] use rapidproto package from cosmos-proto --- tests/integration/aminojson/aminojson_test.go | 31 +- x/tx/aminojson/json_marshal_test.go | 2 +- x/tx/go.mod | 2 +- x/tx/rapidproto/rapidproto.go | 312 ------------------ x/tx/rapidproto/rapidproto_test.go | 33 -- x/tx/rapidproto/testdata/seed0.json | 1 - x/tx/rapidproto/testdata/seed1.json | 1 - x/tx/rapidproto/testdata/seed2.json | 1 - x/tx/rapidproto/testdata/seed3.json | 1 - x/tx/rapidproto/testdata/seed4.json | 1 - 10 files changed, 18 insertions(+), 367 deletions(-) delete mode 100644 x/tx/rapidproto/rapidproto.go delete mode 100644 x/tx/rapidproto/rapidproto_test.go delete mode 100644 x/tx/rapidproto/testdata/seed0.json delete mode 100644 x/tx/rapidproto/testdata/seed1.json delete mode 100644 x/tx/rapidproto/testdata/seed2.json delete mode 100644 x/tx/rapidproto/testdata/seed3.json delete mode 100644 x/tx/rapidproto/testdata/seed4.json diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 98ccd0e4d4e6..dd02ada2ee26 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -1,22 +1,11 @@ package aminojson import ( - "cosmossdk.io/api/cosmos/crypto/secp256k1" - "cosmossdk.io/x/upgrade" - upgradetypes "cosmossdk.io/x/upgrade/types" "fmt" - "github.com/cosmos/cosmos-sdk/x/auth/vesting" - vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" - groupmodule "github.com/cosmos/cosmos-sdk/x/group/module" - "github.com/cosmos/cosmos-sdk/x/mint" - "github.com/cosmos/cosmos-sdk/x/params" - "github.com/cosmos/cosmos-sdk/x/slashing" - "github.com/cosmos/cosmos-sdk/x/staking" "reflect" "testing" "time" - gogoproto "github.com/cosmos/gogoproto/proto" "github.com/stretchr/testify/require" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoregistry" @@ -25,12 +14,17 @@ import ( "google.golang.org/protobuf/types/known/timestamppb" "pgregory.net/rapid" + "github.com/cosmos/cosmos-proto/rapidproto" + gogoproto "github.com/cosmos/gogoproto/proto" + + "cosmossdk.io/api/amino" authapi "cosmossdk.io/api/cosmos/auth/v1beta1" authzapi "cosmossdk.io/api/cosmos/authz/v1beta1" bankapi "cosmossdk.io/api/cosmos/bank/v1beta1" v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" consensusapi "cosmossdk.io/api/cosmos/consensus/v1" "cosmossdk.io/api/cosmos/crypto/ed25519" + "cosmossdk.io/api/cosmos/crypto/secp256k1" distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" evidenceapi "cosmossdk.io/api/cosmos/evidence/v1beta1" feegrantapi "cosmossdk.io/api/cosmos/feegrant/v1beta1" @@ -48,7 +42,8 @@ import ( feegranttypes "cosmossdk.io/x/feegrant" feegrantmodule "cosmossdk.io/x/feegrant/module" "cosmossdk.io/x/tx/aminojson" - "cosmossdk.io/x/tx/rapidproto" + "cosmossdk.io/x/upgrade" + upgradetypes "cosmossdk.io/x/upgrade/types" codectypes "github.com/cosmos/cosmos-sdk/codec/types" ed25519types "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" secp256k1types "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" @@ -58,6 +53,8 @@ import ( "github.com/cosmos/cosmos-sdk/types/module/testutil" "github.com/cosmos/cosmos-sdk/x/auth" authtypes "github.com/cosmos/cosmos-sdk/x/auth/types" + "github.com/cosmos/cosmos-sdk/x/auth/vesting" + vestingtypes "github.com/cosmos/cosmos-sdk/x/auth/vesting/types" authztypes "github.com/cosmos/cosmos-sdk/x/authz" authzmodule "github.com/cosmos/cosmos-sdk/x/authz/module" "github.com/cosmos/cosmos-sdk/x/bank" @@ -70,9 +67,14 @@ import ( gov_v1_types "github.com/cosmos/cosmos-sdk/x/gov/types/v1" gov_v1beta1_types "github.com/cosmos/cosmos-sdk/x/gov/types/v1beta1" grouptypes "github.com/cosmos/cosmos-sdk/x/group" + groupmodule "github.com/cosmos/cosmos-sdk/x/group/module" + "github.com/cosmos/cosmos-sdk/x/mint" minttypes "github.com/cosmos/cosmos-sdk/x/mint/types" + "github.com/cosmos/cosmos-sdk/x/params" "github.com/cosmos/cosmos-sdk/x/params/types/proposal" + "github.com/cosmos/cosmos-sdk/x/slashing" slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" + "github.com/cosmos/cosmos-sdk/x/staking" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" ) @@ -102,9 +104,8 @@ func withDecisionPolicy(opts rapidproto.GeneratorOptions) rapidproto.GeneratorOp var ( genOpts = rapidproto.GeneratorOptions{ - Resolver: protoregistry.GlobalTypes, - GogoUnmarshalCompatibleDecimal: true, - } + Resolver: protoregistry.GlobalTypes, + }.WithGogoUnmarshalCompatibleDecimals(amino.E_Encoding) genTypes = []generatedType{ // auth genType(&authtypes.Params{}, &authapi.Params{}, genOpts), diff --git a/x/tx/aminojson/json_marshal_test.go b/x/tx/aminojson/json_marshal_test.go index 9088fa2b54b7..a41a5deb5e22 100644 --- a/x/tx/aminojson/json_marshal_test.go +++ b/x/tx/aminojson/json_marshal_test.go @@ -4,6 +4,7 @@ import ( "reflect" "testing" + "github.com/cosmos/cosmos-proto/rapidproto" "github.com/stretchr/testify/require" "github.com/tendermint/go-amino" "google.golang.org/protobuf/encoding/protojson" @@ -13,7 +14,6 @@ import ( "gotest.tools/v3/assert" "cosmossdk.io/x/tx/aminojson" - "cosmossdk.io/x/tx/rapidproto" "cosmossdk.io/x/tx/aminojson/internal/testpb" ) diff --git a/x/tx/go.mod b/x/tx/go.mod index 9d44a7d29672..76210ee0a86e 100644 --- a/x/tx/go.mod +++ b/x/tx/go.mod @@ -29,4 +29,4 @@ require ( google.golang.org/genproto v0.0.0-20230202175211-008b39050e57 // indirect google.golang.org/grpc v1.53.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect -) +) \ No newline at end of file diff --git a/x/tx/rapidproto/rapidproto.go b/x/tx/rapidproto/rapidproto.go deleted file mode 100644 index ac49d9654545..000000000000 --- a/x/tx/rapidproto/rapidproto.go +++ /dev/null @@ -1,312 +0,0 @@ -package rapidproto - -import ( - "cosmossdk.io/api/amino" - "fmt" - "math" - - cosmos_proto "github.com/cosmos/cosmos-proto" - "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/reflect/protoreflect" - "google.golang.org/protobuf/reflect/protoregistry" - "gotest.tools/v3/assert" - "pgregory.net/rapid" -) - -func MessageGenerator[T proto.Message](x T, options GeneratorOptions) *rapid.Generator[T] { - msgType := x.ProtoReflect().Type() - return rapid.Custom(func(t *rapid.T) T { - msg := msgType.New() - - options.setFields(t, nil, msg, 0) - - return msg.Interface().(T) - }) -} - -type GeneratorOptions struct { - AnyTypeURLs []string - InterfaceHints map[string]string - Resolver protoregistry.MessageTypeResolver - - // NoEmptyLists will cause the generator to not generate empty lists - // Recall that an empty list will marshal (and unmarshal) to null. Some encodings may treat these states - // differently. For example, in JSON, an empty list is encoded as [], while null is encoded as null. - NoEmptyLists bool - - // DisallowNilMessages will cause the generator to not generate nil messages to protoreflect.MessageKind fields - DisallowNilMessages bool - - // GogoUnmarshalCompatibleDecimal will cause the generator to generate decimal values which, when serialized as - // either bytes or a string, are compatible with gogo's unmarshaler. These fields are identified by the presence - // of (amino.encoding = "cosmos_dec_bytes") or (cosmos_proto.scalar = "cosmos.Dec") annotations. - GogoUnmarshalCompatibleDecimal bool -} - -const depthLimit = 10 - -func (opts GeneratorOptions) WithAnyTypes(anyTypes ...proto.Message) GeneratorOptions { - for _, a := range anyTypes { - opts.AnyTypeURLs = append(opts.AnyTypeURLs, fmt.Sprintf("/%s", a.ProtoReflect().Descriptor().FullName())) - } - return opts -} - -func (opts GeneratorOptions) WithDisallowNil() GeneratorOptions { - o := &opts - o.DisallowNilMessages = true - return *o -} - -func (opts GeneratorOptions) WithInterfaceHint(i string, impl proto.Message) GeneratorOptions { - if opts.InterfaceHints == nil { - opts.InterfaceHints = make(map[string]string) - } - opts.InterfaceHints[i] = string(impl.ProtoReflect().Descriptor().FullName()) - return opts -} - -func (opts GeneratorOptions) setFields( - t *rapid.T, field protoreflect.FieldDescriptor, msg protoreflect.Message, depth int) bool { - // to avoid stack overflow we limit the depth of nested messages - if depth > depthLimit { - return false - } - - descriptor := msg.Descriptor() - fullName := descriptor.FullName() - switch fullName { - case timestampFullName: - opts.genTimestamp(t, msg) - return true - case durationFullName: - opts.genDuration(t, msg) - return true - case anyFullName: - opts.genAny(t, field, msg, depth) - return true - case fieldMaskFullName: - opts.genFieldMask(t, msg) - return true - default: - fields := descriptor.Fields() - n := fields.Len() - for i := 0; i < n; i++ { - f := fields.Get(i) - if !rapid.Bool().Draw(t, fmt.Sprintf("gen-%s", f.Name())) { - if (f.Kind() == protoreflect.MessageKind) && !opts.DisallowNilMessages { - continue - } - } - - opts.setFieldValue(t, msg, f, depth) - } - return true - } -} - -const ( - timestampFullName = "google.protobuf.Timestamp" - durationFullName = "google.protobuf.Duration" - anyFullName = "google.protobuf.Any" - fieldMaskFullName = "google.protobuf.FieldMask" -) - -func (opts GeneratorOptions) setFieldValue(t *rapid.T, msg protoreflect.Message, field protoreflect.FieldDescriptor, depth int) { - name := string(field.Name()) - kind := field.Kind() - - switch { - case field.IsList(): - list := msg.Mutable(field).List() - min := 0 - if opts.NoEmptyLists { - min = 1 - } - n := rapid.IntRange(min, 10).Draw(t, fmt.Sprintf("%sN", name)) - for i := 0; i < n; i++ { - if kind == protoreflect.MessageKind || kind == protoreflect.GroupKind { - if !opts.setFields(t, field, list.AppendMutable().Message(), depth+1) { - list.Truncate(i) - } - } else { - list.Append(opts.genScalarFieldValue(t, field, fmt.Sprintf("%s%d", name, i))) - } - } - case field.IsMap(): - m := msg.Mutable(field).Map() - n := rapid.IntRange(0, 10).Draw(t, fmt.Sprintf("%sN", name)) - for i := 0; i < n; i++ { - keyField := field.MapKey() - valueField := field.MapValue() - valueKind := valueField.Kind() - key := opts.genScalarFieldValue(t, keyField, fmt.Sprintf("%s%d-key", name, i)) - if valueKind == protoreflect.MessageKind || valueKind == protoreflect.GroupKind { - if !opts.setFields(t, field, m.Mutable(key.MapKey()).Message(), depth+1) { - m.Clear(key.MapKey()) - } - } else { - value := opts.genScalarFieldValue(t, valueField, fmt.Sprintf("%s%d-key", name, i)) - m.Set(key.MapKey(), value) - } - } - case kind == protoreflect.MessageKind: - mutableField := msg.Mutable(field) - if mutableField.Message().Descriptor().FullName() == anyFullName { - if !opts.genAny(t, field, mutableField.Message(), depth+1) { - msg.Clear(field) - } - } else if !opts.setFields(t, field, mutableField.Message(), depth+1) { - msg.Clear(field) - } - case kind == protoreflect.GroupKind: - if !opts.setFields(t, field, msg.Mutable(field).Message(), depth+1) { - msg.Clear(field) - } - default: - msg.Set(field, opts.genScalarFieldValue(t, field, name)) - } -} - -func (opts GeneratorOptions) genScalarFieldValue(t *rapid.T, field protoreflect.FieldDescriptor, name string) protoreflect.Value { - fopts := field.Options() - if proto.HasExtension(fopts, cosmos_proto.E_Scalar) { - scalar := proto.GetExtension(fopts, cosmos_proto.E_Scalar).(string) - switch scalar { - case "cosmos.Int": - i32 := rapid.Int32().Draw(t, name) - return protoreflect.ValueOfString(fmt.Sprintf("%d", i32)) - case "cosmos.Dec": - if opts.GogoUnmarshalCompatibleDecimal { - return protoreflect.ValueOfString("") - } - x := rapid.Int16().Draw(t, name) - y := rapid.Uint8().Draw(t, name) - return protoreflect.ValueOfString(fmt.Sprintf("%d.%d", x, y)) - } - } - - switch field.Kind() { - case protoreflect.Int32Kind, protoreflect.Sint32Kind, protoreflect.Sfixed32Kind: - return protoreflect.ValueOfInt32(rapid.Int32().Draw(t, name)) - case protoreflect.Uint32Kind, protoreflect.Fixed32Kind: - return protoreflect.ValueOfUint32(rapid.Uint32().Draw(t, name)) - case protoreflect.Int64Kind, protoreflect.Sint64Kind, protoreflect.Sfixed64Kind: - return protoreflect.ValueOfInt64(rapid.Int64().Draw(t, name)) - case protoreflect.Uint64Kind, protoreflect.Fixed64Kind: - return protoreflect.ValueOfUint64(rapid.Uint64().Draw(t, name)) - case protoreflect.BoolKind: - return protoreflect.ValueOfBool(rapid.Bool().Draw(t, name)) - case protoreflect.BytesKind: - if proto.HasExtension(fopts, amino.E_Encoding) { - encoding := proto.GetExtension(fopts, amino.E_Encoding).(string) - if encoding == "cosmos_dec_bytes" && opts.GogoUnmarshalCompatibleDecimal { - return protoreflect.ValueOfBytes([]byte{}) - } - } - return protoreflect.ValueOfBytes(rapid.SliceOf(rapid.Byte()).Draw(t, name)) - case protoreflect.FloatKind: - return protoreflect.ValueOfFloat32(rapid.Float32().Draw(t, name)) - case protoreflect.DoubleKind: - return protoreflect.ValueOfFloat64(rapid.Float64().Draw(t, name)) - case protoreflect.EnumKind: - enumValues := field.Enum().Values() - val := rapid.Int32Range(0, int32(enumValues.Len()-1)).Draw(t, name) - return protoreflect.ValueOfEnum(protoreflect.EnumNumber(val)) - case protoreflect.StringKind: - return protoreflect.ValueOfString(rapid.String().Draw(t, name)) - default: - t.Fatalf("unexpected %v", field) - return protoreflect.Value{} - } -} - -const ( - // MaxDurationSeconds the maximum number of seconds (when expressed as nanoseconds) which can fit in an int64. - // gogoproto encodes google.protobuf.Duration as a time.Duration, which is 64-bit signed integer. - MaxDurationSeconds = int64(math.MaxInt64/int(1e9)) - 1 - secondsName = "seconds" - nanosName = "nanos" -) - -func (opts GeneratorOptions) genTimestamp(t *rapid.T, msg protoreflect.Message) { - seconds := rapid.Int64Range(-9999999999, 9999999999).Draw(t, "seconds") - nanos := rapid.Int32Range(0, 999999999).Draw(t, "nanos") - setSecondsNanosFields(t, msg, seconds, nanos) -} - -func (opts GeneratorOptions) genDuration(t *rapid.T, msg protoreflect.Message) { - seconds := rapid.Int64Range(0, int64(MaxDurationSeconds)).Draw(t, "seconds") - nanos := rapid.Int32Range(0, 999999999).Draw(t, "nanos") - setSecondsNanosFields(t, msg, seconds, nanos) -} - -func setSecondsNanosFields(t *rapid.T, message protoreflect.Message, seconds int64, nanos int32) { - fields := message.Descriptor().Fields() - - secondsField := fields.ByName(secondsName) - assert.Assert(t, secondsField != nil) - message.Set(secondsField, protoreflect.ValueOfInt64(seconds)) - - nanosField := fields.ByName(nanosName) - assert.Assert(t, nanosField != nil) - message.Set(nanosField, protoreflect.ValueOfInt32(nanos)) -} - -const ( - typeURLName = "type_url" - valueName = "value" -) - -func (opts GeneratorOptions) genAny( - t *rapid.T, field protoreflect.FieldDescriptor, msg protoreflect.Message, depth int) bool { - if len(opts.AnyTypeURLs) == 0 { - return false - } - - var typeURL string - fopts := field.Options() - if proto.HasExtension(fopts, cosmos_proto.E_AcceptsInterface) { - ai := proto.GetExtension(fopts, cosmos_proto.E_AcceptsInterface).(string) - if impl, found := opts.InterfaceHints[ai]; found { - typeURL = fmt.Sprintf("/%s", impl) - } else { - panic(fmt.Sprintf("no implementation found for interface %s", ai)) - } - } else { - typeURL = rapid.SampledFrom(opts.AnyTypeURLs).Draw(t, "type_url") - } - - typ, err := opts.Resolver.FindMessageByURL(typeURL) - assert.NilError(t, err) - fields := msg.Descriptor().Fields() - - typeURLField := fields.ByName(typeURLName) - assert.Assert(t, typeURLField != nil) - msg.Set(typeURLField, protoreflect.ValueOfString(typeURL)) - - valueMsg := typ.New() - opts.setFields(t, nil, valueMsg, depth+1) - valueBz, err := proto.Marshal(valueMsg.Interface()) - assert.NilError(t, err) - - valueField := fields.ByName(valueName) - assert.Assert(t, valueField != nil) - msg.Set(valueField, protoreflect.ValueOfBytes(valueBz)) - - return true -} - -const ( - pathsName = "paths" -) - -func (opts GeneratorOptions) genFieldMask(t *rapid.T, msg protoreflect.Message) { - paths := rapid.SliceOfN(rapid.StringMatching("[a-z]+([.][a-z]+){0,2}"), 1, 5).Draw(t, "paths") - pathsField := msg.Descriptor().Fields().ByName(pathsName) - assert.Assert(t, pathsField != nil) - pathsList := msg.NewField(pathsField).List() - for _, path := range paths { - pathsList.Append(protoreflect.ValueOfString(path)) - } -} diff --git a/x/tx/rapidproto/rapidproto_test.go b/x/tx/rapidproto/rapidproto_test.go deleted file mode 100644 index a18f5430a2e4..000000000000 --- a/x/tx/rapidproto/rapidproto_test.go +++ /dev/null @@ -1,33 +0,0 @@ -package rapidproto_test - -import ( - "fmt" - "testing" - - "google.golang.org/protobuf/encoding/protojson" - "google.golang.org/protobuf/proto" - "gotest.tools/v3/assert" - "gotest.tools/v3/golden" - "pgregory.net/rapid" - - "github.com/cosmos/cosmos-proto/testpb" - - "cosmossdk.io/x/tx/rapidproto" -) - -// TestRegression checks that the generator still produces the same output -// for the same random seeds, assuming that this data has been hand expected -// to generally look good. -func TestRegression(t *testing.T) { - gen := rapidproto.MessageGenerator(&testpb.A{}, rapidproto.GeneratorOptions{}) - for i := 0; i < 5; i++ { - testRegressionSeed(t, i, gen) - } -} - -func testRegressionSeed[X proto.Message](t *testing.T, seed int, generator *rapid.Generator[X]) { - x := generator.Example(seed) - bz, err := protojson.Marshal(x) - assert.NilError(t, err) - golden.Assert(t, string(bz), fmt.Sprintf("seed%d.json", seed)) -} diff --git a/x/tx/rapidproto/testdata/seed0.json b/x/tx/rapidproto/testdata/seed0.json deleted file mode 100644 index 286a0b9d8962..000000000000 --- a/x/tx/rapidproto/testdata/seed0.json +++ /dev/null @@ -1 +0,0 @@ -{"enum":"Two","someBoolean":true,"INT32":6,"SINT32":-53,"UINT32":387,"INT64":"55744386","SING64":"3","UINT64":"3669782","SFIXED32":-1,"FIXED32":55,"FLOAT":0.4375,"SFIXED64":"-9223372036854775808","FIXED64":"220","DOUBLE":-2.7557020405947696,"STRING":"{~","BYTES":"KAgdAwEDngMAJgUaAg==","MAP":{"":{"x":"~<%󠇯º$&."},"ः=A":{"x":"🄌AA/ᕗ󠁫𒐻A+aÃd𖾚#ˆ󠀧٣A꜑"}},"LIST":[{"x":"ȧ$:𞻱"},{"x":"\t\t!Ⱥ𝝧؂°\r@\"$ႜ[×h<Ⅳऻ⁄⃢~%􏿽︱"},{"x":"/"}],"ONEOFSTRING":"","LISTENUM":["Two"],"type":"a_<"} \ No newline at end of file diff --git a/x/tx/rapidproto/testdata/seed1.json b/x/tx/rapidproto/testdata/seed1.json deleted file mode 100644 index a95047c08d30..000000000000 --- a/x/tx/rapidproto/testdata/seed1.json +++ /dev/null @@ -1 +0,0 @@ -{"INT32":75750681,"SINT32":-18,"UINT32":41418,"INT64":"-12","SING64":"882666","UINT64":"1","SFIXED32":-661644976,"FIXED32":200,"FLOAT":5.715152e-31,"SFIXED64":"-21034573818","FIXED64":"109589290783","DOUBLE":-2.6619938527987775e-171,"MESSAGE":{"x":"dDž#"},"MAP":{"̏a[":{"x":"A"},"֑Ⱥ|@!`":{"x":"Ⱥa<"}},"LIST":[{"x":"$੬&ắA"},{"x":"2"},{"x":"�=*ى~~‮Ⱥ*ᾈാȺAᶊ?"},{"x":"/𫆞/\\B+₸⊚\u000b𝝺​Ⱥ +\u001c"},{"x":"𐹹aa"},{"x":"\u0000Ⱥa"},{"x":".("},{},{"x":"𞤡|𤕐A\u0000₰€¢+"},{}],"ONEOFSTRING":"\t","LISTENUM":["Two","One","Two","One","One","Two","Two"],"imported":{},"type":"⍦"} \ No newline at end of file diff --git a/x/tx/rapidproto/testdata/seed2.json b/x/tx/rapidproto/testdata/seed2.json deleted file mode 100644 index 1ec5e39679ed..000000000000 --- a/x/tx/rapidproto/testdata/seed2.json +++ /dev/null @@ -1 +0,0 @@ -{"INT32":-48,"SINT32":246,"UINT32":134746579,"INT64":"-1","SING64":"28","UINT64":"1","SFIXED32":14,"FIXED32":14,"FLOAT":-0.203125,"SFIXED64":"-677950","FIXED64":"1152","DOUBLE":-44.06591796875,"STRING":"\u001b","BYTES":"AyQD7wU=","LIST":[{"x":"["},{"x":"A٤"},{"x":" ^$?ᾦ,:<\"?_\u0014;|"},{"x":"'i#&"},{"x":"$#"},{"x":" Ⱥ!/"},{"x":"⃝̚"},{},{"x":"􆏷/a֍)!\"˂A"},{}],"ONEOFSTRING":"","LISTENUM":["One","Two","One","Two"],"type":" ࿋a­̋ᛮ"} \ No newline at end of file diff --git a/x/tx/rapidproto/testdata/seed3.json b/x/tx/rapidproto/testdata/seed3.json deleted file mode 100644 index b2e1ac12b467..000000000000 --- a/x/tx/rapidproto/testdata/seed3.json +++ /dev/null @@ -1 +0,0 @@ -{"someBoolean":true,"INT32":-5642,"SINT32":-103,"UINT32":454,"INT64":"46201042","SING64":"182","UINT64":"14668","SFIXED32":6,"FIXED32":13915,"FLOAT":-3.148335e-10,"SFIXED64":"106827","DOUBLE":-0.00146484375,"MESSAGE":{"x":"#ऻ;́\r‮⋁"},"LIST":[{},{"x":"#ş‍"},{"x":"􉶋৴~౽  NjAৈ􁇸⃠𝖜ೄ"},{},{}],"ONEOFSTRING":"%ᎦA᪗ʰ𞻱`","LISTENUM":["Two","One","Two","Two","Two","One","Two"],"imported":{},"type":"?+Ⱥ&aAࡂ\u0000+"} \ No newline at end of file diff --git a/x/tx/rapidproto/testdata/seed4.json b/x/tx/rapidproto/testdata/seed4.json deleted file mode 100644 index 014c06729aea..000000000000 --- a/x/tx/rapidproto/testdata/seed4.json +++ /dev/null @@ -1 +0,0 @@ -{"INT32":1,"SINT32":14302,"UINT32":23,"INT64":"1476419818092","SING64":"-108760277393","UINT64":"795","SFIXED32":-1,"FIXED32":4078,"FLOAT":-2.546875,"SFIXED64":"-1948","FIXED64":"3","DOUBLE":9.548842982977199,"BYTES":"Ag==","MESSAGE":{"x":"ª1¯∑Ⱥ�"},"MAP":{"":{"x":"ʳ"},"A𐐒٧?A":{},"aɝ":{"x":"."},"Ⱥ":{"x":"%"},"̇ڂ!a\u0000~":{"x":"⑱?"},"ᛯ=[฿́\u001b<ʰ+`𑱐@\u001b*Dž‮\u0000#₻\u0000":{},"ᾛ𝅷|Ⱥ\n#ꜿ=&A":{"x":"a"}},"ONEOFSTRING":";a","imported":{},"type":"&´aᾼa\u0000#ᛮ𑙢aᾮ&₰?𐧀~ ा၉𩴱A` "} \ No newline at end of file From 60180b3a11c839f9fd9f7b32d3066732324e4aac Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 20 Feb 2023 15:40:57 -0600 Subject: [PATCH 100/122] use replace directive instead of go.work --- tests/go.mod | 4 ++-- tests/go.sum | 2 -- x/tx/go.mod | 6 ++++-- x/tx/go.sum | 6 ++---- 4 files changed, 8 insertions(+), 10 deletions(-) diff --git a/tests/go.mod b/tests/go.mod index 90986ed82080..ccaf77068181 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -17,6 +17,7 @@ require ( cosmossdk.io/x/upgrade v0.0.0-20230127052425-54c8e1568335 github.com/cometbft/cometbft v0.0.0-20230203130311-387422ac220d github.com/cosmos/cosmos-db v1.0.0-rc.1 + github.com/cosmos/cosmos-proto v1.0.0-beta.1 // this version is not used as it is always replaced by the latest Cosmos SDK version github.com/cosmos/cosmos-sdk v0.48.0 github.com/cosmos/gogoproto v1.4.5 @@ -29,8 +30,6 @@ require ( pgregory.net/rapid v0.5.5 ) -require github.com/cosmos/cosmos-proto v1.0.0-beta.1 - require ( cloud.google.com/go v0.110.0 // indirect cloud.google.com/go/compute v1.18.0 // indirect @@ -199,6 +198,7 @@ replace ( cosmossdk.io/x/upgrade => ../x/upgrade // This can be deleted after the CometBFT PR is merged github.com/cometbft/cometbft => github.com/cometbft/cometbft v0.0.0-20230203130311-387422ac220d + github.com/cosmos/cosmos-proto => ../../cosmos-proto ) // Below are the long-lived replace for tests. diff --git a/tests/go.sum b/tests/go.sum index 437bea73f319..9020dac98b55 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -338,8 +338,6 @@ github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-db v1.0.0-rc.1 h1:SjnT8B6WKMW9WEIX32qMhnEEKcI7ZP0+G1Sa9HD3nmY= github.com/cosmos/cosmos-db v1.0.0-rc.1/go.mod h1:Dnmk3flSf5lkwCqvvjNpoxjpXzhxnCAFzKHlbaForso= -github.com/cosmos/cosmos-proto v1.0.0-beta.1 h1:iDL5qh++NoXxG8hSy93FdYJut4XfgbShIocllGaXx/0= -github.com/cosmos/cosmos-proto v1.0.0-beta.1/go.mod h1:8k2GNZghi5sDRFw/scPL8gMSowT1vDA+5ouxL8GjaUE= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= diff --git a/x/tx/go.mod b/x/tx/go.mod index 76210ee0a86e..a4450e0da015 100644 --- a/x/tx/go.mod +++ b/x/tx/go.mod @@ -14,7 +14,7 @@ require ( github.com/tendermint/go-amino v0.16.0 google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 gotest.tools/v3 v3.4.0 - pgregory.net/rapid v0.5.3 + pgregory.net/rapid v0.5.5 ) require ( @@ -29,4 +29,6 @@ require ( google.golang.org/genproto v0.0.0-20230202175211-008b39050e57 // indirect google.golang.org/grpc v1.53.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect -) \ No newline at end of file +) + +replace github.com/cosmos/cosmos-proto => ../../../cosmos-proto diff --git a/x/tx/go.sum b/x/tx/go.sum index 233518a032c4..f8c3e04ab04e 100644 --- a/x/tx/go.sum +++ b/x/tx/go.sum @@ -4,8 +4,6 @@ cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE= cosmossdk.io/math v1.0.0-beta.6 h1:WF29SiFYNde5eYvqO2kdOM9nYbDb44j3YW5B8M1m9KE= cosmossdk.io/math v1.0.0-beta.6/go.mod h1:gUVtWwIzfSXqcOT+lBVz2jyjfua8DoBdzRsIyaUAT/8= -github.com/cosmos/cosmos-proto v1.0.0-beta.1 h1:iDL5qh++NoXxG8hSy93FdYJut4XfgbShIocllGaXx/0= -github.com/cosmos/cosmos-proto v1.0.0-beta.1/go.mod h1:8k2GNZghi5sDRFw/scPL8gMSowT1vDA+5ouxL8GjaUE= github.com/cosmos/gogoproto v1.4.4 h1:nVAsgLlAf5jeN0fV7hRlkZvf768zU+dy4pG+hxc2P34= github.com/cosmos/gogoproto v1.4.4/go.mod h1:/yl6/nLwsZcZ2JY3OrqjRqvqCG9InUMcXRfRjQiF9DU= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -90,6 +88,6 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= -pgregory.net/rapid v0.5.3 h1:163N50IHFqr1phZens4FQOdPgfJscR7a562mjQqeo4M= -pgregory.net/rapid v0.5.3/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= +pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= +pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= From 036d428fe128546b86fc80cbc3e25e92a6d569f6 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 20 Feb 2023 16:42:30 -0600 Subject: [PATCH 101/122] replace directive for client/v2 in tests --- tests/go.mod | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/go.mod b/tests/go.mod index ccaf77068181..f317fff81cf6 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -196,6 +196,7 @@ replace ( cosmossdk.io/x/nft => ../x/nft cosmossdk.io/x/tx => ../x/tx cosmossdk.io/x/upgrade => ../x/upgrade + cosmossdk.io/client/v2 => ../client/v2 // This can be deleted after the CometBFT PR is merged github.com/cometbft/cometbft => github.com/cometbft/cometbft v0.0.0-20230203130311-387422ac220d github.com/cosmos/cosmos-proto => ../../cosmos-proto From f6473d319f22e31cfb11e5463ed5e0f9cd9ea933 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Mon, 20 Feb 2023 21:30:12 -0600 Subject: [PATCH 102/122] refactor to support custom field mapping --- tests/integration/aminojson/aminojson_test.go | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index dd02ada2ee26..07584b3ae5e8 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -6,8 +6,10 @@ import ( "testing" "time" + cosmos_proto "github.com/cosmos/cosmos-proto" "github.com/stretchr/testify/require" "google.golang.org/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/durationpb" @@ -105,7 +107,30 @@ func withDecisionPolicy(opts rapidproto.GeneratorOptions) rapidproto.GeneratorOp var ( genOpts = rapidproto.GeneratorOptions{ Resolver: protoregistry.GlobalTypes, - }.WithGogoUnmarshalCompatibleDecimals(amino.E_Encoding) + FieldMaps: []rapidproto.FieldMapper{func(t *rapid.T, field protoreflect.FieldDescriptor, name string) (protoreflect.Value, bool) { + opts := field.Options() + switch { + case proto.HasExtension(opts, cosmos_proto.E_Scalar): + scalar := proto.GetExtension(opts, cosmos_proto.E_Scalar).(string) + switch scalar { + case "cosmos.Int": + i32 := rapid.Int32().Draw(t, name) + return protoreflect.ValueOfString(fmt.Sprintf("%d", i32)), true + case "cosmos.Dec": + return protoreflect.ValueOfString(""), true + } + case field.Kind() == protoreflect.BytesKind: + if proto.HasExtension(opts, amino.E_Encoding) { + encoding := proto.GetExtension(opts, amino.E_Encoding).(string) + if encoding == "cosmos_dec_bytes" { + return protoreflect.ValueOfBytes([]byte{}), true + } + } + } + + return protoreflect.Value{}, false + }}, + } genTypes = []generatedType{ // auth genType(&authtypes.Params{}, &authapi.Params{}, genOpts), From 49543ec45cf4041307ab5450e157e6eb35c25336 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 21 Feb 2023 10:15:56 -0600 Subject: [PATCH 103/122] update cosmos-proto version --- tests/go.mod | 5 +- tests/go.sum | 4 +- tests/integration/aminojson/aminojson_test.go | 50 ++++++++++--------- x/tx/go.mod | 4 +- x/tx/go.sum | 2 + 5 files changed, 33 insertions(+), 32 deletions(-) diff --git a/tests/go.mod b/tests/go.mod index f317fff81cf6..7803f441e1a3 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -17,7 +17,7 @@ require ( cosmossdk.io/x/upgrade v0.0.0-20230127052425-54c8e1568335 github.com/cometbft/cometbft v0.0.0-20230203130311-387422ac220d github.com/cosmos/cosmos-db v1.0.0-rc.1 - github.com/cosmos/cosmos-proto v1.0.0-beta.1 + github.com/cosmos/cosmos-proto v1.0.0-beta.2 // this version is not used as it is always replaced by the latest Cosmos SDK version github.com/cosmos/cosmos-sdk v0.48.0 github.com/cosmos/gogoproto v1.4.5 @@ -191,15 +191,14 @@ require ( // It must be in sync with SimApp temporary replaces replace ( // TODO tag all extracted modules after SDK refactor + cosmossdk.io/client/v2 => ../client/v2 cosmossdk.io/x/evidence => ../x/evidence cosmossdk.io/x/feegrant => ../x/feegrant cosmossdk.io/x/nft => ../x/nft cosmossdk.io/x/tx => ../x/tx cosmossdk.io/x/upgrade => ../x/upgrade - cosmossdk.io/client/v2 => ../client/v2 // This can be deleted after the CometBFT PR is merged github.com/cometbft/cometbft => github.com/cometbft/cometbft v0.0.0-20230203130311-387422ac220d - github.com/cosmos/cosmos-proto => ../../cosmos-proto ) // Below are the long-lived replace for tests. diff --git a/tests/go.sum b/tests/go.sum index 9020dac98b55..63f5470bcc3e 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -190,8 +190,6 @@ cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1V cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= -cosmossdk.io/client/v2 v2.0.0-20230104083136-11f46a0bae58 h1:q0AkHBZnYhsnnS3AmTUu1BOO+TH3oNOsXbG6oeExwvg= -cosmossdk.io/client/v2 v2.0.0-20230104083136-11f46a0bae58/go.mod h1:ztqtfnFSD3edvhNOAShzKod13nfKLM1sZj0uu0fo56w= cosmossdk.io/collections v0.0.0-20230214153846-b6c6e4e99177 h1:At2M0aYQKEAWqr6JtZrJPOlfhdvENiGwJg2NCNHwIdc= cosmossdk.io/collections v0.0.0-20230214153846-b6c6e4e99177/go.mod h1:uqCi8FG+Bh2vv/qf5xZ8iab0E0c/DMA/cwafbp8dkcU= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= @@ -338,6 +336,8 @@ github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-db v1.0.0-rc.1 h1:SjnT8B6WKMW9WEIX32qMhnEEKcI7ZP0+G1Sa9HD3nmY= github.com/cosmos/cosmos-db v1.0.0-rc.1/go.mod h1:Dnmk3flSf5lkwCqvvjNpoxjpXzhxnCAFzKHlbaForso= +github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= +github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 07584b3ae5e8..e3c6cfa445e7 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -104,32 +104,34 @@ func withDecisionPolicy(opts rapidproto.GeneratorOptions) rapidproto.GeneratorOp WithInterfaceHint("cosmos.group.v1.DecisionPolicy", &groupapi.PercentageDecisionPolicy{}) } -var ( - genOpts = rapidproto.GeneratorOptions{ - Resolver: protoregistry.GlobalTypes, - FieldMaps: []rapidproto.FieldMapper{func(t *rapid.T, field protoreflect.FieldDescriptor, name string) (protoreflect.Value, bool) { - opts := field.Options() - switch { - case proto.HasExtension(opts, cosmos_proto.E_Scalar): - scalar := proto.GetExtension(opts, cosmos_proto.E_Scalar).(string) - switch scalar { - case "cosmos.Int": - i32 := rapid.Int32().Draw(t, name) - return protoreflect.ValueOfString(fmt.Sprintf("%d", i32)), true - case "cosmos.Dec": - return protoreflect.ValueOfString(""), true - } - case field.Kind() == protoreflect.BytesKind: - if proto.HasExtension(opts, amino.E_Encoding) { - encoding := proto.GetExtension(opts, amino.E_Encoding).(string) - if encoding == "cosmos_dec_bytes" { - return protoreflect.ValueOfBytes([]byte{}), true - } - } +func generatorFieldMapper(t *rapid.T, field protoreflect.FieldDescriptor, name string) (protoreflect.Value, bool) { + opts := field.Options() + switch { + case proto.HasExtension(opts, cosmos_proto.E_Scalar): + scalar := proto.GetExtension(opts, cosmos_proto.E_Scalar).(string) + switch scalar { + case "cosmos.Int": + i32 := rapid.Int32().Draw(t, name) + return protoreflect.ValueOfString(fmt.Sprintf("%d", i32)), true + case "cosmos.Dec": + return protoreflect.ValueOfString(""), true + } + case field.Kind() == protoreflect.BytesKind: + if proto.HasExtension(opts, amino.E_Encoding) { + encoding := proto.GetExtension(opts, amino.E_Encoding).(string) + if encoding == "cosmos_dec_bytes" { + return protoreflect.ValueOfBytes([]byte{}), true } + } + } - return protoreflect.Value{}, false - }}, + return protoreflect.Value{}, false +} + +var ( + genOpts = rapidproto.GeneratorOptions{ + Resolver: protoregistry.GlobalTypes, + FieldMaps: []rapidproto.FieldMapper{generatorFieldMapper}, } genTypes = []generatedType{ // auth diff --git a/x/tx/go.mod b/x/tx/go.mod index a4450e0da015..1d1011160e69 100644 --- a/x/tx/go.mod +++ b/x/tx/go.mod @@ -6,7 +6,7 @@ require ( cosmossdk.io/api v0.3.1 cosmossdk.io/core v0.5.1 cosmossdk.io/math v1.0.0-beta.6 - github.com/cosmos/cosmos-proto v1.0.0-beta.1 + github.com/cosmos/cosmos-proto v1.0.0-beta.2 github.com/google/go-cmp v0.5.9 github.com/iancoleman/strcase v0.2.0 github.com/pkg/errors v0.9.1 @@ -30,5 +30,3 @@ require ( google.golang.org/grpc v1.53.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) - -replace github.com/cosmos/cosmos-proto => ../../../cosmos-proto diff --git a/x/tx/go.sum b/x/tx/go.sum index f8c3e04ab04e..77e756f91d85 100644 --- a/x/tx/go.sum +++ b/x/tx/go.sum @@ -4,6 +4,8 @@ cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE= cosmossdk.io/math v1.0.0-beta.6 h1:WF29SiFYNde5eYvqO2kdOM9nYbDb44j3YW5B8M1m9KE= cosmossdk.io/math v1.0.0-beta.6/go.mod h1:gUVtWwIzfSXqcOT+lBVz2jyjfua8DoBdzRsIyaUAT/8= +github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= +github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= github.com/cosmos/gogoproto v1.4.4 h1:nVAsgLlAf5jeN0fV7hRlkZvf768zU+dy4pG+hxc2P34= github.com/cosmos/gogoproto v1.4.4/go.mod h1:/yl6/nLwsZcZ2JY3OrqjRqvqCG9InUMcXRfRjQiF9DU= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= From 35bc669c59431b4eea2764261e8e32d4d1cb4134 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 21 Feb 2023 11:16:18 -0600 Subject: [PATCH 104/122] wip docs, refactor, clean up --- tests/go.sum | 10 ++--- x/tx/aminojson/encoder.go | 70 ++++++++++++++++++---------------- x/tx/aminojson/json_marshal.go | 30 ++++++++++++--- x/tx/go.sum | 48 +++++++++++++++++++++-- 4 files changed, 109 insertions(+), 49 deletions(-) diff --git a/tests/go.sum b/tests/go.sum index fa4bfead3b2f..b3237fe853e8 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -190,8 +190,6 @@ cloud.google.com/go/workflows v1.6.0/go.mod h1:6t9F5h/unJz41YqfBmqSASJSXccBLtD1V cloud.google.com/go/workflows v1.7.0/go.mod h1:JhSrZuVZWuiDfKEFxU0/F1PQjmpnpcoISEXH2bcHC3M= cosmossdk.io/api v0.3.1 h1:NNiOclKRR0AOlO4KIqeaG6PS6kswOMhHD0ir0SscNXE= cosmossdk.io/api v0.3.1/go.mod h1:DfHfMkiNA2Uhy8fj0JJlOCYOBp4eWUUJ1te5zBGNyIw= -cosmossdk.io/client/v2 v2.0.0-20230220152935-67f04e629623 h1:QzZA1P+twvj10ylCVXzHodLge+RvrwoNIlWpU+MrRa0= -cosmossdk.io/client/v2 v2.0.0-20230220152935-67f04e629623/go.mod h1:Yo6R3XSXKxi+G642kK7+ZOh2czNTwTO1b8ywOvwaFQo= cosmossdk.io/collections v0.0.0-20230214153846-b6c6e4e99177 h1:At2M0aYQKEAWqr6JtZrJPOlfhdvENiGwJg2NCNHwIdc= cosmossdk.io/collections v0.0.0-20230214153846-b6c6e4e99177/go.mod h1:uqCi8FG+Bh2vv/qf5xZ8iab0E0c/DMA/cwafbp8dkcU= cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= @@ -206,8 +204,6 @@ cosmossdk.io/math v1.0.0-beta.6.0.20230216172121-959ce49135e4 h1:/jnzJ9zFsL7qkV8 cosmossdk.io/math v1.0.0-beta.6.0.20230216172121-959ce49135e4/go.mod h1:gUVtWwIzfSXqcOT+lBVz2jyjfua8DoBdzRsIyaUAT/8= cosmossdk.io/store v0.0.0-20230206092147-e03195e4b8a7 h1:IwyDN/YaQmF+Pmuv8d7vRWMM/k2RjSmPBycMcmd3ICE= cosmossdk.io/store v0.0.0-20230206092147-e03195e4b8a7/go.mod h1:1XOtuYs7jsfQkn7G3VQXB6I+2tHXKHZw2U/AafNbnlk= -cosmossdk.io/x/tx v0.2.0 h1:53f5TIXhpPYJGMm47SUslcV2i8JNBEN3eE08BmxE/Zg= -cosmossdk.io/x/tx v0.2.0/go.mod h1:CTko7wgt7aBdbxOesZ+Wo1uO/03ueKzIQ0iI323Rqgk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.0.0-rc.1 h1:m0VOOB23frXZvAOK44usCgLWvtsxIoMCTBGJZlpmGfU= filippo.io/edwards25519 v1.0.0-rc.1/go.mod h1:N1IkdkCkiLB6tki+MYJoSx2JTY9NUlxZE7eHn5EwJns= @@ -340,8 +336,8 @@ github.com/cosmos/btcutil v1.0.5 h1:t+ZFcX77LpKtDBhjucvnOH8C2l2ioGsBNEQ3jef8xFk= github.com/cosmos/btcutil v1.0.5/go.mod h1:IyB7iuqZMJlthe2tkIFL33xPyzbFYP0XVdS8P5lUPis= github.com/cosmos/cosmos-db v1.0.0-rc.1 h1:SjnT8B6WKMW9WEIX32qMhnEEKcI7ZP0+G1Sa9HD3nmY= github.com/cosmos/cosmos-db v1.0.0-rc.1/go.mod h1:Dnmk3flSf5lkwCqvvjNpoxjpXzhxnCAFzKHlbaForso= -github.com/cosmos/cosmos-proto v1.0.0-beta.1 h1:iDL5qh++NoXxG8hSy93FdYJut4XfgbShIocllGaXx/0= -github.com/cosmos/cosmos-proto v1.0.0-beta.1/go.mod h1:8k2GNZghi5sDRFw/scPL8gMSowT1vDA+5ouxL8GjaUE= +github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= +github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= github.com/cosmos/go-bip39 v0.0.0-20180819234021-555e2067c45d/go.mod h1:tSxLoYXyBmiFeKpvmq4dzayMdCjCnu8uqmCysIGBT2Y= github.com/cosmos/go-bip39 v1.0.0 h1:pcomnQdrdH22njcAatO0yWojsUnCO3y2tNoV1cb6hHY= github.com/cosmos/go-bip39 v1.0.0/go.mod h1:RNJv0H/pOIVgxw6KS7QeX2a0Uo0aKUlfhZ4xuwvCdJw= @@ -682,6 +678,8 @@ github.com/huandu/skiplist v1.2.0 h1:gox56QD77HzSC0w+Ws3MH3iie755GBJU1OER3h5VsYw github.com/huandu/skiplist v1.2.0/go.mod h1:7v3iFjLcSAzO4fN5B8dvebvo/qsfumiLiDXMrPiHF9w= github.com/hudl/fargo v1.3.0/go.mod h1:y3CKSmjA+wD2gak7sUSXTAoopbhU08POFhmITJgmKTg= github.com/hydrogen18/memlistener v0.0.0-20200120041712-dcc25e7acd91/go.mod h1:qEIFzExnS6016fRpRfxrExeVn2gbClQA99gQhnIcdhE= +github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imkira/go-interpol v1.1.0/go.mod h1:z0h2/2T3XF8kyEPpRgJ3kmNv+C43p+I/CoI+jC3w2iA= diff --git a/x/tx/aminojson/encoder.go b/x/tx/aminojson/encoder.go index aaf8eee84c7f..52623b445601 100644 --- a/x/tx/aminojson/encoder.go +++ b/x/tx/aminojson/encoder.go @@ -1,42 +1,57 @@ package aminojson import ( - authapi "cosmossdk.io/api/cosmos/auth/v1beta1" - "cosmossdk.io/math" "encoding/base64" "encoding/json" "errors" "fmt" - "google.golang.org/protobuf/reflect/protoreflect" "io" + + "google.golang.org/protobuf/reflect/protoreflect" + + authapi "cosmossdk.io/api/cosmos/auth/v1beta1" + "cosmossdk.io/math" ) -func cosmosDecBytesEncoder(_ AminoJSON, v protoreflect.Value, w io.Writer) error { - switch bz := v.Interface().(type) { - case []byte: - if len(bz) == 0 { +// cosmosIntEncoder provides legacy compatible encoding for cosmos.Int types. In gogo messages these are sometimes +// represented by a `cosmos-sdk/types.Int` through the usage of the option: +// +// (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" +// +// In pulsar message they represented as strings, which is the only format this encoder supports. +func cosmosIntEncoder(_ AminoJSON, v protoreflect.Value, w io.Writer) error { + switch val := v.Interface().(type) { + case string: + if val == "" { return jsonMarshal(w, "0") } - var dec math.LegacyDec - err := dec.Unmarshal(bz) - if err != nil { - return err - } - return jsonMarshal(w, dec.String()) + return jsonMarshal(w, val) default: - return fmt.Errorf("unsupported type %T", bz) + return fmt.Errorf("unsupported type %T", val) } } -func cosmosDecEncoder(aj AminoJSON, v protoreflect.Value, w io.Writer) error { - switch s := v.Interface().(type) { +// cosmosDecEncoder provides legacy compatible encoding for cosmos.Dec and cosmos.Int types. These are sometimes +// represented as strings in pulsar messages and sometimes as bytes. This encoder handles both cases. +func cosmosDecEncoder(_ AminoJSON, v protoreflect.Value, w io.Writer) error { + switch val := v.Interface().(type) { case string: - if s == "" { + if val == "" { return jsonMarshal(w, "0") } - return jsonMarshal(w, s) + return jsonMarshal(w, val) + case []byte: + if len(val) == 0 { + return jsonMarshal(w, "0") + } + var dec math.LegacyDec + err := dec.Unmarshal(val) + if err != nil { + return err + } + return jsonMarshal(w, dec.String()) default: - return fmt.Errorf("unsupported type %T", s) + return fmt.Errorf("unsupported type %T", val) } } @@ -55,20 +70,9 @@ func nullSliceAsEmptyEncoder(aj AminoJSON, v protoreflect.Value, w io.Writer) er } } -func emptyStringEncoder(_ AminoJSON, _ protoreflect.Value, w io.Writer) error { - _, err := w.Write([]byte(`""`)) - return err -} - -func jsonDefaultEncoder(_ AminoJSON, v protoreflect.Value, w io.Writer) error { - switch val := v.Interface().(type) { - case string, bool, int32, uint32, uint64, int64, protoreflect.EnumNumber: - return jsonMarshal(w, val) - default: - return fmt.Errorf("unsupported type %T", val) - } -} - +// keyFieldEncoder replicates the behavior at described at: +// https://github.com/cosmos/cosmos-sdk/blob/b49f948b36bc991db5be431607b475633aed697e/proto/cosmos/crypto/secp256k1/keys.proto#L16 +// The message is treated if it were bytes directly without the key field specified. func keyFieldEncoder(msg protoreflect.Message, w io.Writer) error { keyField := msg.Descriptor().Fields().ByName("key") if keyField == nil { diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 38672d188936..df8d8707fedc 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -36,28 +36,46 @@ func NewAminoJSON() AminoJSON { aj := AminoJSON{ scalarEncoders: map[string]FieldEncoder{ "cosmos.Dec": cosmosDecEncoder, - "cosmos.Int": cosmosDecEncoder, + "cosmos.Int": cosmosIntEncoder, }, messageEncoders: map[string]MessageEncoder{ "key_field": keyFieldEncoder, "module_account": moduleAccountEncoder, }, fieldEncoders: map[string]FieldEncoder{ - "empty_string": emptyStringEncoder, - "json_default": jsonDefaultEncoder, "legacy_coins": nullSliceAsEmptyEncoder, - "cosmos_dec_bytes": cosmosDecBytesEncoder, + "cosmos_dec_bytes": cosmosDecEncoder, }, } return aj } -// DefineMessageEncoding defines a custom encoding for a protobuf message. +// DefineMessageEncoding defines a custom encoding for a protobuf message. The `name` field must match a usage of +// an (amino.message_encoding) option in the protobuf message as in the following example. This encoding will be +// used instead of the default encoding for all usages of the tagged message. +// +// message ModuleAccount { +// option (amino.name) = "cosmos-sdk/ModuleAccount"; +// option (amino.message_encoding) = "module_account"; +// ... +// } func (aj AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) { aj.messageEncoders[name] = encoder } -// DefineFieldEncoding defines a custom encoding for a protobuf field. +// DefineFieldEncoding defines a custom encoding for a protobuf field. The `name` field must match a usage of +// an (amino.encoding) option in the protobuf message as in the following example. This encoding will be used +// instead of the default encoding for all usages of the tagged field. +// +// message Balance { +// repeated cosmos.base.v1beta1.Coin coins = 2 [ +// (amino.encoding) = "legacy_coins", +// (gogoproto.castrepeated) = "github.com/cosmos/cosmos-sdk/types.Coins", +// (gogoproto.nullable) = false, +// (amino.dont_omitempty) = true +// ]; +// ... +// } func (aj AminoJSON) DefineFieldEncoding(name string, encoder FieldEncoder) { aj.fieldEncoders[name] = encoder } diff --git a/x/tx/go.sum b/x/tx/go.sum index 64aff0c9d78f..049324397a69 100644 --- a/x/tx/go.sum +++ b/x/tx/go.sum @@ -4,52 +4,92 @@ cosmossdk.io/core v0.5.1 h1:vQVtFrIYOQJDV3f7rw4pjjVqc1id4+mE0L9hHP66pyI= cosmossdk.io/core v0.5.1/go.mod h1:KZtwHCLjcFuo0nmDc24Xy6CRNEL9Vl/MeimQ2aC7NLE= cosmossdk.io/math v1.0.0-beta.6 h1:WF29SiFYNde5eYvqO2kdOM9nYbDb44j3YW5B8M1m9KE= cosmossdk.io/math v1.0.0-beta.6/go.mod h1:gUVtWwIzfSXqcOT+lBVz2jyjfua8DoBdzRsIyaUAT/8= -github.com/cosmos/cosmos-proto v1.0.0-beta.1 h1:iDL5qh++NoXxG8hSy93FdYJut4XfgbShIocllGaXx/0= -github.com/cosmos/cosmos-proto v1.0.0-beta.1/go.mod h1:8k2GNZghi5sDRFw/scPL8gMSowT1vDA+5ouxL8GjaUE= +github.com/cosmos/cosmos-proto v1.0.0-beta.2 h1:X3OKvWgK9Gsejo0F1qs5l8Qn6xJV/AzgIWR2wZ8Nua8= +github.com/cosmos/cosmos-proto v1.0.0-beta.2/go.mod h1:+XRCLJ14pr5HFEHIUcn51IKXD1Fy3rkEQqt4WqmN4V0= github.com/cosmos/gogoproto v1.4.6 h1:Ee7z15dWJaGlgM2rWrK8N2IX7PQcuccu8oG68jp5RL4= github.com/cosmos/gogoproto v1.4.6/go.mod h1:VS/ASYmPgv6zkPKLjR9EB91lwbLHOzaGCirmKKhncfI= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/golang/protobuf v1.3.0/go.mod h1:Qd/q+1AKNOZr9uGQzbzCmRO6sUih6GTPZv6a1/R87v0= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf h1:+RRA9JqSOZFfKrOeqr2z77+8R2RKyh8PG66dcu1V0ck= +github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= +github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= +github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20230203172020-98cc5a0785f9 h1:frX3nT9RkKybPnjyI+yvZh6ZucTZatCCEm9D47sZ2zo= golang.org/x/exp v0.0.0-20230203172020-98cc5a0785f9/go.mod h1:CxIveKay+FTh1D0yPZemJVgC/95VzuuOLq5Qi4xnoYc= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20180831171423-11092d34479b/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20230202175211-008b39050e57 h1:vArvWooPH749rNHpBGgVl+U9B9dATjiEhJzcWGlovNs= google.golang.org/genproto v0.0.0-20230202175211-008b39050e57/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= google.golang.org/grpc v1.53.0 h1:LAv2ds7cmFV/XTS3XG1NneeENYrXGmorPxsBbptIjNc= google.golang.org/grpc v1.53.0/go.mod h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= -google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8 h1:KR8+MyP7/qOlV+8Af01LtjL04bu7on42eVsxT4EyBQk= +google.golang.org/protobuf v1.28.2-0.20220831092852-f930b1dc76e8/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= +gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= +pgregory.net/rapid v0.5.5 h1:jkgx1TjbQPD/feRoK+S/mXw9e1uj6WilpHrXJowi6oA= +pgregory.net/rapid v0.5.5/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= From 9e0ae4673684c54f8135533975bd99e398886033 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 21 Feb 2023 13:16:05 -0600 Subject: [PATCH 105/122] break out options.go --- x/tx/aminojson/any.go | 27 ++--------- x/tx/aminojson/json_marshal.go | 80 ------------------------------- x/tx/aminojson/options.go | 86 ++++++++++++++++++++++++++++++++++ 3 files changed, 91 insertions(+), 102 deletions(-) create mode 100644 x/tx/aminojson/options.go diff --git a/x/tx/aminojson/any.go b/x/tx/aminojson/any.go index 3ab8bd1527a7..19940227ebee 100644 --- a/x/tx/aminojson/any.go +++ b/x/tx/aminojson/any.go @@ -2,6 +2,7 @@ package aminojson import ( "fmt" + "google.golang.org/protobuf/types/known/anypb" "io" "github.com/pkg/errors" @@ -10,35 +11,17 @@ import ( "google.golang.org/protobuf/reflect/protoregistry" ) -const ( - typeUrlName protoreflect.Name = "type_url" - valueName protoreflect.Name = "value" -) - func (aj AminoJSON) marshalAny(message protoreflect.Message, writer io.Writer) error { - fields := message.Descriptor().Fields() - typeUrlField := fields.ByName(typeUrlName) - if typeUrlField == nil { - return fmt.Errorf("expected type_url field") - } - - typeUrl := message.Get(typeUrlField).String() + anyMsg := message.Interface().(*anypb.Any) resolver := protoregistry.GlobalTypes - typ, err := resolver.FindMessageByURL(typeUrl) + typ, err := resolver.FindMessageByURL(anyMsg.TypeUrl) if err != nil { - return errors.Wrapf(err, "can't resolve type URL %s", typeUrl) + return errors.Wrapf(err, "can't resolve type URL %s", anyMsg.TypeUrl) } - valueField := fields.ByName(valueName) - if valueField == nil { - return fmt.Errorf("expected value field") - } - - valueBz := message.Get(valueField).Bytes() - valueMsg := typ.New() - err = proto.Unmarshal(valueBz, valueMsg.Interface()) + err = proto.Unmarshal(anyMsg.Value, valueMsg.Interface()) if err != nil { return err } diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index df8d8707fedc..f5df15c40f94 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -7,14 +7,9 @@ import ( "fmt" "io" - "github.com/iancoleman/strcase" "github.com/pkg/errors" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" - - cosmos_proto "github.com/cosmos/cosmos-proto" - - "cosmossdk.io/api/amino" ) // MessageEncoder is a function that can encode a protobuf protoreflect.Message to JSON. @@ -293,81 +288,6 @@ func (aj AminoJSON) marshalList(list protoreflect.List, writer io.Writer) error return err } -func getMessageName(msg protoreflect.Message) (string, bool) { - opts := msg.Descriptor().Options() - if proto.HasExtension(opts, amino.E_Name) { - name := proto.GetExtension(opts, amino.E_Name) - return name.(string), true - } - return "", false -} - -// omitEmpty returns true if the field should be omitted if empty. Empty field omission is the default behavior. -func omitEmpty(field protoreflect.FieldDescriptor) bool { - opts := field.Options() - if proto.HasExtension(opts, amino.E_DontOmitempty) { - dontOmitEmpty := proto.GetExtension(opts, amino.E_DontOmitempty).(bool) - return !dontOmitEmpty - } - return true -} - -func getFieldName(field protoreflect.FieldDescriptor) string { - opts := field.Options() - if proto.HasExtension(opts, amino.E_FieldName) { - return proto.GetExtension(opts, amino.E_FieldName).(string) - } - return string(field.Name()) -} - -func getOneOfNames(field protoreflect.FieldDescriptor) (string, string, error) { - opts := field.Options() - oneOf := field.ContainingOneof() - if oneOf == nil { - return "", "", errors.Errorf("field %s must be within a oneof", field.Name()) - } - - fieldName := strcase.ToCamel(string(oneOf.Name())) - var typeName string - - if proto.HasExtension(opts, amino.E_OneofName) { - typeName = proto.GetExtension(opts, amino.E_OneofName).(string) - } else { - return "", "", errors.Errorf("field %s within a oneof must have the amino.oneof_type_name option set", - field.Name()) - } - - return fieldName, typeName, nil -} - -func (aj AminoJSON) getMessageEncoder(message protoreflect.Message) MessageEncoder { - opts := message.Descriptor().Options() - if proto.HasExtension(opts, amino.E_MessageEncoding) { - encoding := proto.GetExtension(opts, amino.E_MessageEncoding).(string) - if fn, ok := aj.messageEncoders[encoding]; ok { - return fn - } - } - return nil -} - -func (aj AminoJSON) getFieldEncoding(field protoreflect.FieldDescriptor) FieldEncoder { - opts := field.Options() - if proto.HasExtension(opts, amino.E_Encoding) { - enc := proto.GetExtension(opts, amino.E_Encoding).(string) - if fn, ok := aj.fieldEncoders[enc]; ok { - return fn - } - } - if proto.HasExtension(opts, cosmos_proto.E_Scalar) { - scalar := proto.GetExtension(opts, cosmos_proto.E_Scalar).(string) - if fn, ok := aj.scalarEncoders[scalar]; ok { - return fn - } - } - return nil -} - const ( timestampFullName protoreflect.FullName = "google.protobuf.Timestamp" durationFullName protoreflect.FullName = "google.protobuf.Duration" diff --git a/x/tx/aminojson/options.go b/x/tx/aminojson/options.go new file mode 100644 index 000000000000..cb51c79aaf9c --- /dev/null +++ b/x/tx/aminojson/options.go @@ -0,0 +1,86 @@ +package aminojson + +import ( + cosmos_proto "github.com/cosmos/cosmos-proto" + "github.com/iancoleman/strcase" + "github.com/pkg/errors" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/reflect/protoreflect" + + "cosmossdk.io/api/amino" +) + +func getMessageName(msg protoreflect.Message) (string, bool) { + opts := msg.Descriptor().Options() + if proto.HasExtension(opts, amino.E_Name) { + name := proto.GetExtension(opts, amino.E_Name) + return name.(string), true + } + return "", false +} + +// omitEmpty returns true if the field should be omitted if empty. Empty field omission is the default behavior. +func omitEmpty(field protoreflect.FieldDescriptor) bool { + opts := field.Options() + if proto.HasExtension(opts, amino.E_DontOmitempty) { + dontOmitEmpty := proto.GetExtension(opts, amino.E_DontOmitempty).(bool) + return !dontOmitEmpty + } + return true +} + +func getFieldName(field protoreflect.FieldDescriptor) string { + opts := field.Options() + if proto.HasExtension(opts, amino.E_FieldName) { + return proto.GetExtension(opts, amino.E_FieldName).(string) + } + return string(field.Name()) +} + +func getOneOfNames(field protoreflect.FieldDescriptor) (string, string, error) { + opts := field.Options() + oneOf := field.ContainingOneof() + if oneOf == nil { + return "", "", errors.Errorf("field %s must be within a oneof", field.Name()) + } + + fieldName := strcase.ToCamel(string(oneOf.Name())) + var typeName string + + if proto.HasExtension(opts, amino.E_OneofName) { + typeName = proto.GetExtension(opts, amino.E_OneofName).(string) + } else { + return "", "", errors.Errorf("field %s within a oneof must have the amino.oneof_type_name option set", + field.Name()) + } + + return fieldName, typeName, nil +} + +func (aj AminoJSON) getMessageEncoder(message protoreflect.Message) MessageEncoder { + opts := message.Descriptor().Options() + if proto.HasExtension(opts, amino.E_MessageEncoding) { + encoding := proto.GetExtension(opts, amino.E_MessageEncoding).(string) + if fn, ok := aj.messageEncoders[encoding]; ok { + return fn + } + } + return nil +} + +func (aj AminoJSON) getFieldEncoding(field protoreflect.FieldDescriptor) FieldEncoder { + opts := field.Options() + if proto.HasExtension(opts, amino.E_Encoding) { + enc := proto.GetExtension(opts, amino.E_Encoding).(string) + if fn, ok := aj.fieldEncoders[enc]; ok { + return fn + } + } + if proto.HasExtension(opts, cosmos_proto.E_Scalar) { + scalar := proto.GetExtension(opts, cosmos_proto.E_Scalar).(string) + if fn, ok := aj.scalarEncoders[scalar]; ok { + return fn + } + } + return nil +} From cbb277eadfe6b78ad912c600c636a4d8712718a0 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 21 Feb 2023 13:23:39 -0600 Subject: [PATCH 106/122] Update x/tx/aminojson/any.go Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com> --- x/tx/aminojson/any.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/tx/aminojson/any.go b/x/tx/aminojson/any.go index 19940227ebee..29283f864cd6 100644 --- a/x/tx/aminojson/any.go +++ b/x/tx/aminojson/any.go @@ -28,7 +28,7 @@ func (aj AminoJSON) marshalAny(message protoreflect.Message, writer io.Writer) e aminoName, named := getMessageName(valueMsg) if !named { - return fmt.Errorf("any fields require an amino.name annotation") + return fmt.Errorf("message %s is packed into an any field, so requires an amino.name annotation") } _, err = writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, aminoName))) From c7a7e4c8f157ae2bdb805bcf1a90381d0765b55b Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 21 Feb 2023 13:37:23 -0600 Subject: [PATCH 107/122] return err if not nil --- x/tx/aminojson/any.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/x/tx/aminojson/any.go b/x/tx/aminojson/any.go index 29283f864cd6..548ea8e292a4 100644 --- a/x/tx/aminojson/any.go +++ b/x/tx/aminojson/any.go @@ -32,6 +32,9 @@ func (aj AminoJSON) marshalAny(message protoreflect.Message, writer io.Writer) e } _, err = writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, aminoName))) + if err != nil { + return err + } err = aj.marshalMessage(valueMsg, writer) if err != nil { From c6b1de92843426c8f383a351a91c67276bef4069 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 21 Feb 2023 13:51:21 -0600 Subject: [PATCH 108/122] add docs --- x/tx/aminojson/any.go | 2 +- x/tx/aminojson/json_marshal.go | 4 ++-- x/tx/aminojson/options.go | 8 ++++++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/x/tx/aminojson/any.go b/x/tx/aminojson/any.go index 548ea8e292a4..f327122a4ee4 100644 --- a/x/tx/aminojson/any.go +++ b/x/tx/aminojson/any.go @@ -26,7 +26,7 @@ func (aj AminoJSON) marshalAny(message protoreflect.Message, writer io.Writer) e return err } - aminoName, named := getMessageName(valueMsg) + aminoName, named := getMessageAminoName(valueMsg) if !named { return fmt.Errorf("message %s is packed into an any field, so requires an amino.name annotation") } diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index f5df15c40f94..9f401a94479e 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -83,7 +83,7 @@ func (aj AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { } func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) error { - name, named := getMessageName(msg) + name, named := getMessageAminoName(msg) if named { _, err := writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, name))) if err != nil { @@ -169,7 +169,7 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e for i := 0; i < fields.Len(); i++ { f := fields.Get(i) v := msg.Get(f) - name := getFieldName(f) + name := getAminoFieldName(f) oneof := f.ContainingOneof() isOneOf := oneof != nil oneofFieldName, oneofTypeName, err := getOneOfNames(f) diff --git a/x/tx/aminojson/options.go b/x/tx/aminojson/options.go index cb51c79aaf9c..715075ca603e 100644 --- a/x/tx/aminojson/options.go +++ b/x/tx/aminojson/options.go @@ -10,7 +10,9 @@ import ( "cosmossdk.io/api/amino" ) -func getMessageName(msg protoreflect.Message) (string, bool) { +// getMessageAminoName returns the amino name of a message if it has been set by the `amino.name` option. +// If the message does not have an amino name, then the function returns false. +func getMessageAminoName(msg protoreflect.Message) (string, bool) { opts := msg.Descriptor().Options() if proto.HasExtension(opts, amino.E_Name) { name := proto.GetExtension(opts, amino.E_Name) @@ -29,7 +31,9 @@ func omitEmpty(field protoreflect.FieldDescriptor) bool { return true } -func getFieldName(field protoreflect.FieldDescriptor) string { +// getAminoFieldName returns the amino field name of a field if it has been set by the `amino.field_name` option. +// If the field does not have an amino field name, then the function returns the protobuf field name. +func getAminoFieldName(field protoreflect.FieldDescriptor) string { opts := field.Options() if proto.HasExtension(opts, amino.E_FieldName) { return proto.GetExtension(opts, amino.E_FieldName).(string) From 85337539fa9ee07c47570b075054db9fef2443db Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 21 Feb 2023 13:57:08 -0600 Subject: [PATCH 109/122] refactor marshalAny a bit --- x/tx/aminojson/any.go | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/x/tx/aminojson/any.go b/x/tx/aminojson/any.go index f327122a4ee4..37a591dd06e0 100644 --- a/x/tx/aminojson/any.go +++ b/x/tx/aminojson/any.go @@ -26,21 +26,10 @@ func (aj AminoJSON) marshalAny(message protoreflect.Message, writer io.Writer) e return err } - aminoName, named := getMessageAminoName(valueMsg) + _, named := getMessageAminoName(valueMsg) if !named { return fmt.Errorf("message %s is packed into an any field, so requires an amino.name annotation") } - _, err = writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, aminoName))) - if err != nil { - return err - } - - err = aj.marshalMessage(valueMsg, writer) - if err != nil { - return err - } - - _, err = writer.Write([]byte("}")) - return err + return aj.beginMarshal(valueMsg, writer) } From 21e7d7768b28c401affb4d2b8769e567a68e6acc Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 21 Feb 2023 14:50:15 -0600 Subject: [PATCH 110/122] fix error message --- x/tx/aminojson/any.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/x/tx/aminojson/any.go b/x/tx/aminojson/any.go index 37a591dd06e0..d87d6c0269b8 100644 --- a/x/tx/aminojson/any.go +++ b/x/tx/aminojson/any.go @@ -2,9 +2,10 @@ package aminojson import ( "fmt" - "google.golang.org/protobuf/types/known/anypb" "io" + "google.golang.org/protobuf/types/known/anypb" + "github.com/pkg/errors" "google.golang.org/protobuf/proto" "google.golang.org/protobuf/reflect/protoreflect" @@ -28,7 +29,8 @@ func (aj AminoJSON) marshalAny(message protoreflect.Message, writer io.Writer) e _, named := getMessageAminoName(valueMsg) if !named { - return fmt.Errorf("message %s is packed into an any field, so requires an amino.name annotation") + return fmt.Errorf("message %s is packed into an any field, so requires an amino.name annotation", + anyMsg.TypeUrl) } return aj.beginMarshal(valueMsg, writer) From 9ffbf76c9a9a45931a492cce1e6113d27b7ef9cb Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Tue, 21 Feb 2023 14:54:58 -0600 Subject: [PATCH 111/122] refactor byte array case --- x/tx/aminojson/json_marshal.go | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 9f401a94479e..5f6103f673ee 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -2,7 +2,6 @@ package aminojson import ( "bytes" - "encoding/base64" "encoding/json" "fmt" "io" @@ -122,17 +121,13 @@ func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { } return aj.marshalList(val, writer) - case string, bool, int32, uint32, protoreflect.EnumNumber: + case string, bool, int32, uint32, []byte, protoreflect.EnumNumber: return jsonMarshal(writer, val) case uint64, int64: _, err := fmt.Fprintf(writer, `"%d"`, val) // quoted return err - case []byte: - _, err := fmt.Fprintf(writer, `"%s"`, base64.StdEncoding.EncodeToString(val)) - return err - default: return errors.Errorf("unknown type %T", val) } From be04a6591e59acb969df25e902fae36f77e31e47 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 22 Feb 2023 12:46:31 -0600 Subject: [PATCH 112/122] support math.Int as bytes --- proto/cosmos/staking/v1beta1/staking.proto | 4 +- tests/integration/aminojson/aminojson_test.go | 21 +- .../aminojson/internal/gogo/testpb/test.pb.go | 603 +++++- .../internal/pulsar/testpb/test.pulsar.go | 1611 ++++++++++++++++- .../aminojson/internal/testpb/test.proto | 19 + x/tx/aminojson/encoder.go | 10 + 6 files changed, 2191 insertions(+), 77 deletions(-) diff --git a/proto/cosmos/staking/v1beta1/staking.proto b/proto/cosmos/staking/v1beta1/staking.proto index 231a200c89dd..6432a85f5231 100644 --- a/proto/cosmos/staking/v1beta1/staking.proto +++ b/proto/cosmos/staking/v1beta1/staking.proto @@ -262,9 +262,7 @@ message RedelegationEntry { [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; // initial_balance defines the initial balance when redelegation started. string initial_balance = 3 [ - (cosmos_proto.scalar) = "cosmos.Int", - (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", - (gogoproto.nullable) = false + ]; // shares_dst is the amount of destination-validator shares created by redelegation. string shares_dst = 4 [ diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index e3c6cfa445e7..e9b20ea53b12 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -9,7 +9,7 @@ import ( cosmos_proto "github.com/cosmos/cosmos-proto" "github.com/stretchr/testify/require" "google.golang.org/protobuf/proto" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" + "google.golang.org/protobuf/reflect/protoreflect" "google.golang.org/protobuf/reflect/protoregistry" "google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/durationpb" @@ -49,6 +49,8 @@ import ( codectypes "github.com/cosmos/cosmos-sdk/codec/types" ed25519types "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" secp256k1types "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" + gogo_testpb "github.com/cosmos/cosmos-sdk/tests/integration/aminojson/internal/gogo/testpb" + pulsar_testpb "github.com/cosmos/cosmos-sdk/tests/integration/aminojson/internal/pulsar/testpb" "github.com/cosmos/cosmos-sdk/testutil/testdata" "github.com/cosmos/cosmos-sdk/types" "github.com/cosmos/cosmos-sdk/types/bech32" @@ -389,6 +391,7 @@ func TestAminoJSON_LegacyParity(t *testing.T) { pubkeyAny, _ := codectypes.NewAnyWithValue(&secp256k1types.PubKey{Key: []byte("foo")}) pubkeyAnyPulsar := newAny(t, &secp256k1.PubKey{Key: []byte("foo")}) dec10bz, _ := types.NewDec(10).Marshal() + int123bz, _ := types.NewInt(123).Marshal() cases := map[string]struct { gogo gogoproto.Message @@ -545,6 +548,22 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &vestingtypes.BaseVestingAccount{BaseAccount: &authtypes.BaseAccount{PubKey: pubkeyAny}}, pulsar: &vestingapi.BaseVestingAccount{BaseAccount: &authapi.BaseAccount{PubKey: pubkeyAnyPulsar}}, }, + "math/int_as_string": { + gogo: &gogo_testpb.IntAsString{IntAsString: types.NewInt(123)}, + pulsar: &pulsar_testpb.IntAsString{IntAsString: "123"}, + }, + "math/int_as_string/empty": { + gogo: &gogo_testpb.IntAsString{}, + pulsar: &pulsar_testpb.IntAsString{}, + }, + "math/int_as_bytes": { + gogo: &gogo_testpb.IntAsBytes{IntAsBytes: types.NewInt(123)}, + pulsar: &pulsar_testpb.IntAsBytes{IntAsBytes: int123bz}, + }, + "math/int_as_bytes/empty": { + gogo: &gogo_testpb.IntAsBytes{}, + pulsar: &pulsar_testpb.IntAsBytes{}, + }, } for name, tc := range cases { t.Run(name, func(t *testing.T) { diff --git a/tests/integration/aminojson/internal/gogo/testpb/test.pb.go b/tests/integration/aminojson/internal/gogo/testpb/test.pb.go index 660cb7f84e37..4ed2ed504d53 100644 --- a/tests/integration/aminojson/internal/gogo/testpb/test.pb.go +++ b/tests/integration/aminojson/internal/gogo/testpb/test.pb.go @@ -5,6 +5,8 @@ package testpb import ( fmt "fmt" + _ "github.com/cosmos/cosmos-proto" + github_com_cosmos_cosmos_sdk_types "github.com/cosmos/cosmos-sdk/types" _ "github.com/cosmos/cosmos-sdk/types/tx/amino" _ "github.com/cosmos/gogoproto/gogoproto" proto "github.com/cosmos/gogoproto/proto" @@ -142,11 +144,12 @@ func (m *TestRepeatedFields) GetNonNullableDontOmitempty() []Streng { type TestNullableFields struct { NullableOmitempty *Streng `protobuf:"bytes,1,opt,name=nullable_omitempty,json=nullableOmitempty,proto3" json:"nullable_omitempty,omitempty"` - // not supported for empty sets - // go-amino emits nothing but the protoreflect library emits a null + // not supported + // go-amino emits nothing and the protoreflect returns an error + // alternatively protoreflect could emit `{}` NullableDontOmitempty *Streng `protobuf:"bytes,2,opt,name=nullable_dont_omitempty,json=nullableDontOmitempty,proto3" json:"nullable_dont_omitempty,omitempty"` - // not supported for empty sets - // go-amino emits a null but the protoreflect library emits nothing + // not supported + // go-amino emits `{}` but the protoreflect library emits nothing NonNullableOmitempty Streng `protobuf:"bytes,3,opt,name=non_nullable_omitempty,json=nonNullableOmitempty,proto3" json:"non_nullable_omitempty"` NonNullableDontOmitempty Streng `protobuf:"bytes,4,opt,name=non_nullable_dont_omitempty,json=nonNullableDontOmitempty,proto3" json:"non_nullable_dont_omitempty"` } @@ -212,35 +215,159 @@ func (m *TestNullableFields) GetNonNullableDontOmitempty() Streng { return Streng{} } +type IntAsString struct { + IntAsString github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=int_as_string,json=intAsString,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"int_as_string"` +} + +func (m *IntAsString) Reset() { *m = IntAsString{} } +func (m *IntAsString) String() string { return proto.CompactTextString(m) } +func (*IntAsString) ProtoMessage() {} +func (*IntAsString) Descriptor() ([]byte, []int) { + return fileDescriptor_41c67e33ca9d1f26, []int{3} +} +func (m *IntAsString) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IntAsString) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_IntAsString.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *IntAsString) XXX_Merge(src proto.Message) { + xxx_messageInfo_IntAsString.Merge(m, src) +} +func (m *IntAsString) XXX_Size() int { + return m.Size() +} +func (m *IntAsString) XXX_DiscardUnknown() { + xxx_messageInfo_IntAsString.DiscardUnknown(m) +} + +var xxx_messageInfo_IntAsString proto.InternalMessageInfo + +type IntAsBytes struct { + IntAsBytes github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=int_as_bytes,json=intAsBytes,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"int_as_bytes"` +} + +func (m *IntAsBytes) Reset() { *m = IntAsBytes{} } +func (m *IntAsBytes) String() string { return proto.CompactTextString(m) } +func (*IntAsBytes) ProtoMessage() {} +func (*IntAsBytes) Descriptor() ([]byte, []int) { + return fileDescriptor_41c67e33ca9d1f26, []int{4} +} +func (m *IntAsBytes) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IntAsBytes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_IntAsBytes.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *IntAsBytes) XXX_Merge(src proto.Message) { + xxx_messageInfo_IntAsBytes.Merge(m, src) +} +func (m *IntAsBytes) XXX_Size() int { + return m.Size() +} +func (m *IntAsBytes) XXX_DiscardUnknown() { + xxx_messageInfo_IntAsBytes.DiscardUnknown(m) +} + +var xxx_messageInfo_IntAsBytes proto.InternalMessageInfo + +type IntAsBothStringAndBytes struct { + IntAsString github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,1,opt,name=int_as_string,json=intAsString,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"int_as_string"` + IntAsBytes github_com_cosmos_cosmos_sdk_types.Int `protobuf:"bytes,2,opt,name=int_as_bytes,json=intAsBytes,proto3,customtype=github.com/cosmos/cosmos-sdk/types.Int" json:"int_as_bytes"` +} + +func (m *IntAsBothStringAndBytes) Reset() { *m = IntAsBothStringAndBytes{} } +func (m *IntAsBothStringAndBytes) String() string { return proto.CompactTextString(m) } +func (*IntAsBothStringAndBytes) ProtoMessage() {} +func (*IntAsBothStringAndBytes) Descriptor() ([]byte, []int) { + return fileDescriptor_41c67e33ca9d1f26, []int{5} +} +func (m *IntAsBothStringAndBytes) XXX_Unmarshal(b []byte) error { + return m.Unmarshal(b) +} +func (m *IntAsBothStringAndBytes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + if deterministic { + return xxx_messageInfo_IntAsBothStringAndBytes.Marshal(b, m, deterministic) + } else { + b = b[:cap(b)] + n, err := m.MarshalToSizedBuffer(b) + if err != nil { + return nil, err + } + return b[:n], nil + } +} +func (m *IntAsBothStringAndBytes) XXX_Merge(src proto.Message) { + xxx_messageInfo_IntAsBothStringAndBytes.Merge(m, src) +} +func (m *IntAsBothStringAndBytes) XXX_Size() int { + return m.Size() +} +func (m *IntAsBothStringAndBytes) XXX_DiscardUnknown() { + xxx_messageInfo_IntAsBothStringAndBytes.DiscardUnknown(m) +} + +var xxx_messageInfo_IntAsBothStringAndBytes proto.InternalMessageInfo + func init() { proto.RegisterType((*Streng)(nil), "testpb.streng") proto.RegisterType((*TestRepeatedFields)(nil), "testpb.TestRepeatedFields") proto.RegisterType((*TestNullableFields)(nil), "testpb.TestNullableFields") + proto.RegisterType((*IntAsString)(nil), "testpb.IntAsString") + proto.RegisterType((*IntAsBytes)(nil), "testpb.IntAsBytes") + proto.RegisterType((*IntAsBothStringAndBytes)(nil), "testpb.IntAsBothStringAndBytes") } func init() { proto.RegisterFile("testpb/test.proto", fileDescriptor_41c67e33ca9d1f26) } var fileDescriptor_41c67e33ca9d1f26 = []byte{ - // 300 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2c, 0x49, 0x2d, 0x2e, - 0x29, 0x48, 0xd2, 0x07, 0x51, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0x6c, 0x10, 0x21, 0x29, - 0x91, 0xf4, 0xfc, 0xf4, 0x7c, 0xb0, 0x90, 0x3e, 0x88, 0x05, 0x91, 0x95, 0x12, 0x4c, 0xcc, 0xcd, - 0xcc, 0xcb, 0xd7, 0x07, 0x93, 0x10, 0x21, 0x25, 0x39, 0x2e, 0xb6, 0xe2, 0x92, 0xa2, 0xd4, 0xbc, - 0x74, 0x21, 0x11, 0x2e, 0xd6, 0xb2, 0xc4, 0x9c, 0xd2, 0x54, 0x09, 0x46, 0x05, 0x46, 0x0d, 0xce, - 0x20, 0x08, 0x47, 0xe9, 0x04, 0x13, 0x97, 0x50, 0x48, 0x6a, 0x71, 0x49, 0x50, 0x6a, 0x41, 0x6a, - 0x62, 0x49, 0x6a, 0x8a, 0x5b, 0x66, 0x6a, 0x4e, 0x4a, 0xb1, 0x90, 0x2d, 0x97, 0x50, 0x5e, 0x69, - 0x4e, 0x4e, 0x62, 0x52, 0x4e, 0x6a, 0x7c, 0x7e, 0x6e, 0x66, 0x49, 0x6a, 0x6e, 0x41, 0x49, 0xa5, - 0x04, 0xa3, 0x02, 0xb3, 0x06, 0xb7, 0x11, 0x9f, 0x1e, 0xc4, 0x11, 0x7a, 0x10, 0x83, 0x83, 0x04, - 0x61, 0x2a, 0xfd, 0x61, 0x0a, 0x85, 0x7c, 0xb9, 0xc4, 0xe1, 0xda, 0x53, 0xf2, 0xf3, 0x4a, 0x90, - 0xcc, 0x60, 0xc2, 0x66, 0x86, 0x13, 0xeb, 0x8a, 0xe7, 0x1b, 0xb4, 0x18, 0x83, 0x44, 0x61, 0xba, - 0x5c, 0xf2, 0xf3, 0x4a, 0x10, 0xc6, 0x79, 0x71, 0x89, 0xe5, 0xe5, 0xe7, 0xc5, 0x63, 0x71, 0x11, - 0x33, 0x56, 0xd3, 0x58, 0x4e, 0xdc, 0x93, 0x67, 0x08, 0x12, 0xc9, 0xcb, 0xcf, 0xf3, 0xc3, 0x70, - 0x5a, 0x04, 0x97, 0x34, 0x8a, 0x59, 0x68, 0xce, 0x63, 0xc1, 0x6a, 0x20, 0x27, 0xc8, 0x40, 0x88, - 0x13, 0x25, 0x90, 0x4c, 0x45, 0x71, 0x25, 0x3c, 0x28, 0x61, 0xb2, 0x04, 0x82, 0x92, 0x91, 0x0a, - 0x41, 0xc9, 0x48, 0xd5, 0xa0, 0x64, 0xa4, 0x76, 0x50, 0x32, 0x92, 0x19, 0x94, 0x4e, 0x12, 0x27, - 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, 0xe3, 0x84, 0xc7, 0x72, 0x0c, - 0x17, 0x1e, 0xcb, 0x31, 0xdc, 0x78, 0x2c, 0xc7, 0x90, 0xc4, 0x06, 0x4e, 0xd6, 0xc6, 0x80, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x6e, 0xbb, 0x3c, 0x09, 0x1c, 0x03, 0x00, 0x00, + // 445 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x4d, 0x8b, 0xd3, 0x40, + 0x18, 0xce, 0x74, 0x77, 0x0b, 0xfb, 0x76, 0x15, 0x3a, 0x54, 0x37, 0xae, 0x90, 0x5d, 0x72, 0x90, + 0x45, 0xd8, 0x04, 0xf4, 0xec, 0xa1, 0x41, 0x84, 0x0a, 0x2a, 0x44, 0x0f, 0xde, 0x42, 0xd2, 0x0c, + 0xd9, 0xc1, 0x64, 0x26, 0x76, 0xde, 0x0a, 0xfd, 0x17, 0xfe, 0x0c, 0x8f, 0x1e, 0xfc, 0x11, 0x3d, + 0x2e, 0x9e, 0xc4, 0xc3, 0x22, 0x2d, 0xe2, 0xdf, 0x90, 0x64, 0x92, 0x7e, 0xd8, 0x80, 0x20, 0x71, + 0x2f, 0x99, 0xbc, 0x1f, 0xf3, 0x3c, 0xcf, 0xfb, 0xf0, 0x26, 0xd0, 0x47, 0xa6, 0x30, 0x8f, 0xdc, + 0xe2, 0x70, 0xf2, 0x89, 0x44, 0x49, 0xbb, 0x3a, 0x75, 0x32, 0x48, 0x64, 0x22, 0xcb, 0x94, 0x5b, + 0xbc, 0xe9, 0xea, 0x49, 0x3f, 0xcc, 0xb8, 0x90, 0x6e, 0xf9, 0xac, 0x52, 0xf7, 0xc6, 0x52, 0x65, + 0x52, 0x05, 0xba, 0x57, 0x07, 0xba, 0x64, 0x5b, 0xd0, 0x55, 0x38, 0x61, 0x22, 0xa1, 0x03, 0x38, + 0xf8, 0x10, 0xa6, 0x53, 0x66, 0x92, 0x33, 0x72, 0x7e, 0xe8, 0xeb, 0xc0, 0x9e, 0x77, 0x80, 0xbe, + 0x61, 0x0a, 0x7d, 0x96, 0xb3, 0x10, 0x59, 0xfc, 0x8c, 0xb3, 0x34, 0x56, 0xf4, 0x09, 0x50, 0x31, + 0x4d, 0xd3, 0x30, 0x4a, 0x59, 0x20, 0x33, 0x8e, 0x2c, 0xcb, 0x71, 0x66, 0x92, 0xb3, 0xbd, 0xf3, + 0xde, 0xa3, 0xdb, 0x8e, 0xd6, 0xe7, 0x68, 0x60, 0xbf, 0x5f, 0x77, 0xbe, 0xaa, 0x1b, 0xe9, 0x0b, + 0x38, 0x5e, 0x5d, 0x8f, 0xa5, 0xc0, 0x0d, 0x8c, 0x4e, 0x13, 0x86, 0x77, 0xf0, 0xe9, 0xd7, 0xe7, + 0x87, 0xc4, 0xbf, 0x53, 0xdf, 0x7a, 0x2a, 0x05, 0xae, 0xe1, 0x9e, 0xc3, 0x5d, 0x21, 0x45, 0xd0, + 0xa0, 0x68, 0xaf, 0x11, 0x6d, 0x7f, 0x7e, 0x7d, 0x6a, 0xf8, 0x03, 0x21, 0xc5, 0xcb, 0x1d, 0x69, + 0x6f, 0xe1, 0xfe, 0x16, 0xd6, 0x1f, 0xf2, 0xf6, 0x1b, 0x01, 0x0f, 0x0b, 0x40, 0x2d, 0xd1, 0xdc, + 0x40, 0xdd, 0x52, 0xb9, 0xb2, 0xb2, 0xae, 0xfe, 0xc5, 0x4a, 0xd2, 0x82, 0x95, 0xa4, 0x55, 0x2b, + 0x49, 0xdb, 0x56, 0x92, 0x7f, 0xb5, 0x12, 0xa1, 0x37, 0x12, 0x38, 0x54, 0xaf, 0x71, 0xc2, 0x45, + 0x42, 0x19, 0xdc, 0xe2, 0x02, 0x83, 0x50, 0x05, 0xaa, 0x4c, 0xe8, 0x15, 0xf6, 0x86, 0x05, 0xd4, + 0xf7, 0xeb, 0xd3, 0x07, 0x09, 0xc7, 0xcb, 0x69, 0xe4, 0x8c, 0x65, 0x56, 0x2d, 0x7f, 0x75, 0x5c, + 0xa8, 0xf8, 0x9d, 0x8b, 0xb3, 0x9c, 0x29, 0x67, 0x24, 0xf0, 0xeb, 0x97, 0x0b, 0xa8, 0xbe, 0x8d, + 0x91, 0x40, 0x2d, 0xa1, 0xc7, 0xd7, 0x34, 0xf6, 0x7b, 0x80, 0x92, 0xd5, 0x9b, 0x21, 0x53, 0x74, + 0x0c, 0x47, 0x15, 0x69, 0x54, 0xc4, 0x25, 0xe7, 0x51, 0x1b, 0x9c, 0xc0, 0x57, 0x24, 0xf6, 0x4f, + 0x02, 0xc7, 0x9a, 0x53, 0xe2, 0xa5, 0x96, 0x31, 0x14, 0xb1, 0x16, 0x70, 0x33, 0x53, 0xef, 0xcc, + 0xd9, 0xf9, 0x0f, 0x73, 0x7a, 0xe6, 0x7c, 0x61, 0x91, 0xab, 0x85, 0x45, 0x7e, 0x2c, 0x2c, 0xf2, + 0x71, 0x69, 0x19, 0x57, 0x4b, 0xcb, 0xf8, 0xb6, 0xb4, 0x8c, 0xa8, 0x5b, 0xfe, 0xa7, 0x1e, 0xff, + 0x0e, 0x00, 0x00, 0xff, 0xff, 0xdd, 0xa4, 0x3a, 0xad, 0x08, 0x05, 0x00, 0x00, } func (m *Streng) Marshal() (dAtA []byte, err error) { @@ -419,6 +546,115 @@ func (m *TestNullableFields) MarshalToSizedBuffer(dAtA []byte) (int, error) { return len(dAtA) - i, nil } +func (m *IntAsString) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IntAsString) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IntAsString) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.IntAsString.Size() + i -= size + if _, err := m.IntAsString.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTest(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *IntAsBytes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IntAsBytes) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IntAsBytes) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.IntAsBytes.Size() + i -= size + if _, err := m.IntAsBytes.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTest(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + +func (m *IntAsBothStringAndBytes) Marshal() (dAtA []byte, err error) { + size := m.Size() + dAtA = make([]byte, size) + n, err := m.MarshalToSizedBuffer(dAtA[:size]) + if err != nil { + return nil, err + } + return dAtA[:n], nil +} + +func (m *IntAsBothStringAndBytes) MarshalTo(dAtA []byte) (int, error) { + size := m.Size() + return m.MarshalToSizedBuffer(dAtA[:size]) +} + +func (m *IntAsBothStringAndBytes) MarshalToSizedBuffer(dAtA []byte) (int, error) { + i := len(dAtA) + _ = i + var l int + _ = l + { + size := m.IntAsBytes.Size() + i -= size + if _, err := m.IntAsBytes.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTest(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0x12 + { + size := m.IntAsString.Size() + i -= size + if _, err := m.IntAsString.MarshalTo(dAtA[i:]); err != nil { + return 0, err + } + i = encodeVarintTest(dAtA, i, uint64(size)) + } + i-- + dAtA[i] = 0xa + return len(dAtA) - i, nil +} + func encodeVarintTest(dAtA []byte, offset int, v uint64) int { offset -= sovTest(v) base := offset @@ -497,6 +733,41 @@ func (m *TestNullableFields) Size() (n int) { return n } +func (m *IntAsString) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.IntAsString.Size() + n += 1 + l + sovTest(uint64(l)) + return n +} + +func (m *IntAsBytes) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.IntAsBytes.Size() + n += 1 + l + sovTest(uint64(l)) + return n +} + +func (m *IntAsBothStringAndBytes) Size() (n int) { + if m == nil { + return 0 + } + var l int + _ = l + l = m.IntAsString.Size() + n += 1 + l + sovTest(uint64(l)) + l = m.IntAsBytes.Size() + n += 1 + l + sovTest(uint64(l)) + return n +} + func sovTest(x uint64) (n int) { return (math_bits.Len64(x|1) + 6) / 7 } @@ -959,6 +1230,290 @@ func (m *TestNullableFields) Unmarshal(dAtA []byte) error { } return nil } +func (m *IntAsString) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IntAsString: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IntAsString: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IntAsString", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTest + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTest + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.IntAsString.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTest(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IntAsBytes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IntAsBytes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IntAsBytes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IntAsBytes", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTest + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTest + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.IntAsBytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTest(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} +func (m *IntAsBothStringAndBytes) Unmarshal(dAtA []byte) error { + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return fmt.Errorf("proto: IntAsBothStringAndBytes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return fmt.Errorf("proto: IntAsBothStringAndBytes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IntAsString", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return ErrInvalidLengthTest + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return ErrInvalidLengthTest + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.IntAsString.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + case 2: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field IntAsBytes", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTest + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTest + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTest + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + if err := m.IntAsBytes.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { + return err + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := skipTest(dAtA[iNdEx:]) + if err != nil { + return err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return ErrInvalidLengthTest + } + if (iNdEx + skippy) > l { + return io.ErrUnexpectedEOF + } + iNdEx += skippy + } + } + + if iNdEx > l { + return io.ErrUnexpectedEOF + } + return nil +} func skipTest(dAtA []byte) (n int, err error) { l := len(dAtA) iNdEx := 0 diff --git a/tests/integration/aminojson/internal/pulsar/testpb/test.pulsar.go b/tests/integration/aminojson/internal/pulsar/testpb/test.pulsar.go index 73229daa2267..dd3158b93eae 100644 --- a/tests/integration/aminojson/internal/pulsar/testpb/test.pulsar.go +++ b/tests/integration/aminojson/internal/pulsar/testpb/test.pulsar.go @@ -4,6 +4,7 @@ package testpb import ( _ "cosmossdk.io/api/amino" fmt "fmt" + _ "github.com/cosmos/cosmos-proto" runtime "github.com/cosmos/cosmos-proto/runtime" _ "github.com/cosmos/gogoproto/gogoproto" protoreflect "google.golang.org/protobuf/reflect/protoreflect" @@ -2014,6 +2015,1334 @@ func (x *fastReflection_TestNullableFields) ProtoMethods() *protoiface.Methods { } } +var ( + md_IntAsString protoreflect.MessageDescriptor + fd_IntAsString_int_as_string protoreflect.FieldDescriptor +) + +func init() { + file_testpb_test_proto_init() + md_IntAsString = File_testpb_test_proto.Messages().ByName("IntAsString") + fd_IntAsString_int_as_string = md_IntAsString.Fields().ByName("int_as_string") +} + +var _ protoreflect.Message = (*fastReflection_IntAsString)(nil) + +type fastReflection_IntAsString IntAsString + +func (x *IntAsString) ProtoReflect() protoreflect.Message { + return (*fastReflection_IntAsString)(x) +} + +func (x *IntAsString) slowProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_IntAsString_messageType fastReflection_IntAsString_messageType +var _ protoreflect.MessageType = fastReflection_IntAsString_messageType{} + +type fastReflection_IntAsString_messageType struct{} + +func (x fastReflection_IntAsString_messageType) Zero() protoreflect.Message { + return (*fastReflection_IntAsString)(nil) +} +func (x fastReflection_IntAsString_messageType) New() protoreflect.Message { + return new(fastReflection_IntAsString) +} +func (x fastReflection_IntAsString_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_IntAsString +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_IntAsString) Descriptor() protoreflect.MessageDescriptor { + return md_IntAsString +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_IntAsString) Type() protoreflect.MessageType { + return _fastReflection_IntAsString_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_IntAsString) New() protoreflect.Message { + return new(fastReflection_IntAsString) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_IntAsString) Interface() protoreflect.ProtoMessage { + return (*IntAsString)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_IntAsString) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.IntAsString != "" { + value := protoreflect.ValueOfString(x.IntAsString) + if !f(fd_IntAsString_int_as_string, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_IntAsString) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "testpb.IntAsString.int_as_string": + return x.IntAsString != "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsString")) + } + panic(fmt.Errorf("message testpb.IntAsString does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_IntAsString) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "testpb.IntAsString.int_as_string": + x.IntAsString = "" + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsString")) + } + panic(fmt.Errorf("message testpb.IntAsString does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_IntAsString) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "testpb.IntAsString.int_as_string": + value := x.IntAsString + return protoreflect.ValueOfString(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsString")) + } + panic(fmt.Errorf("message testpb.IntAsString does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_IntAsString) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "testpb.IntAsString.int_as_string": + x.IntAsString = value.Interface().(string) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsString")) + } + panic(fmt.Errorf("message testpb.IntAsString does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_IntAsString) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.IntAsString.int_as_string": + panic(fmt.Errorf("field int_as_string of message testpb.IntAsString is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsString")) + } + panic(fmt.Errorf("message testpb.IntAsString does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_IntAsString) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.IntAsString.int_as_string": + return protoreflect.ValueOfString("") + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsString")) + } + panic(fmt.Errorf("message testpb.IntAsString does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_IntAsString) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in testpb.IntAsString", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_IntAsString) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_IntAsString) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_IntAsString) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_IntAsString) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*IntAsString) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.IntAsString) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*IntAsString) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.IntAsString) > 0 { + i -= len(x.IntAsString) + copy(dAtA[i:], x.IntAsString) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.IntAsString))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*IntAsString) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: IntAsString: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: IntAsString: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field IntAsString", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.IntAsString = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_IntAsBytes protoreflect.MessageDescriptor + fd_IntAsBytes_int_as_bytes protoreflect.FieldDescriptor +) + +func init() { + file_testpb_test_proto_init() + md_IntAsBytes = File_testpb_test_proto.Messages().ByName("IntAsBytes") + fd_IntAsBytes_int_as_bytes = md_IntAsBytes.Fields().ByName("int_as_bytes") +} + +var _ protoreflect.Message = (*fastReflection_IntAsBytes)(nil) + +type fastReflection_IntAsBytes IntAsBytes + +func (x *IntAsBytes) ProtoReflect() protoreflect.Message { + return (*fastReflection_IntAsBytes)(x) +} + +func (x *IntAsBytes) slowProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_IntAsBytes_messageType fastReflection_IntAsBytes_messageType +var _ protoreflect.MessageType = fastReflection_IntAsBytes_messageType{} + +type fastReflection_IntAsBytes_messageType struct{} + +func (x fastReflection_IntAsBytes_messageType) Zero() protoreflect.Message { + return (*fastReflection_IntAsBytes)(nil) +} +func (x fastReflection_IntAsBytes_messageType) New() protoreflect.Message { + return new(fastReflection_IntAsBytes) +} +func (x fastReflection_IntAsBytes_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_IntAsBytes +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_IntAsBytes) Descriptor() protoreflect.MessageDescriptor { + return md_IntAsBytes +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_IntAsBytes) Type() protoreflect.MessageType { + return _fastReflection_IntAsBytes_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_IntAsBytes) New() protoreflect.Message { + return new(fastReflection_IntAsBytes) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_IntAsBytes) Interface() protoreflect.ProtoMessage { + return (*IntAsBytes)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_IntAsBytes) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if len(x.IntAsBytes) != 0 { + value := protoreflect.ValueOfBytes(x.IntAsBytes) + if !f(fd_IntAsBytes_int_as_bytes, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_IntAsBytes) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "testpb.IntAsBytes.int_as_bytes": + return len(x.IntAsBytes) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsBytes")) + } + panic(fmt.Errorf("message testpb.IntAsBytes does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_IntAsBytes) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "testpb.IntAsBytes.int_as_bytes": + x.IntAsBytes = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsBytes")) + } + panic(fmt.Errorf("message testpb.IntAsBytes does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_IntAsBytes) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "testpb.IntAsBytes.int_as_bytes": + value := x.IntAsBytes + return protoreflect.ValueOfBytes(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsBytes")) + } + panic(fmt.Errorf("message testpb.IntAsBytes does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_IntAsBytes) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "testpb.IntAsBytes.int_as_bytes": + x.IntAsBytes = value.Bytes() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsBytes")) + } + panic(fmt.Errorf("message testpb.IntAsBytes does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_IntAsBytes) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.IntAsBytes.int_as_bytes": + panic(fmt.Errorf("field int_as_bytes of message testpb.IntAsBytes is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsBytes")) + } + panic(fmt.Errorf("message testpb.IntAsBytes does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_IntAsBytes) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.IntAsBytes.int_as_bytes": + return protoreflect.ValueOfBytes(nil) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsBytes")) + } + panic(fmt.Errorf("message testpb.IntAsBytes does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_IntAsBytes) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in testpb.IntAsBytes", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_IntAsBytes) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_IntAsBytes) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_IntAsBytes) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_IntAsBytes) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*IntAsBytes) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.IntAsBytes) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*IntAsBytes) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.IntAsBytes) > 0 { + i -= len(x.IntAsBytes) + copy(dAtA[i:], x.IntAsBytes) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.IntAsBytes))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*IntAsBytes) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: IntAsBytes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: IntAsBytes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field IntAsBytes", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.IntAsBytes = append(x.IntAsBytes[:0], dAtA[iNdEx:postIndex]...) + if x.IntAsBytes == nil { + x.IntAsBytes = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + +var ( + md_IntAsBothStringAndBytes protoreflect.MessageDescriptor + fd_IntAsBothStringAndBytes_int_as_string protoreflect.FieldDescriptor + fd_IntAsBothStringAndBytes_int_as_bytes protoreflect.FieldDescriptor +) + +func init() { + file_testpb_test_proto_init() + md_IntAsBothStringAndBytes = File_testpb_test_proto.Messages().ByName("IntAsBothStringAndBytes") + fd_IntAsBothStringAndBytes_int_as_string = md_IntAsBothStringAndBytes.Fields().ByName("int_as_string") + fd_IntAsBothStringAndBytes_int_as_bytes = md_IntAsBothStringAndBytes.Fields().ByName("int_as_bytes") +} + +var _ protoreflect.Message = (*fastReflection_IntAsBothStringAndBytes)(nil) + +type fastReflection_IntAsBothStringAndBytes IntAsBothStringAndBytes + +func (x *IntAsBothStringAndBytes) ProtoReflect() protoreflect.Message { + return (*fastReflection_IntAsBothStringAndBytes)(x) +} + +func (x *IntAsBothStringAndBytes) slowProtoReflect() protoreflect.Message { + mi := &file_testpb_test_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +var _fastReflection_IntAsBothStringAndBytes_messageType fastReflection_IntAsBothStringAndBytes_messageType +var _ protoreflect.MessageType = fastReflection_IntAsBothStringAndBytes_messageType{} + +type fastReflection_IntAsBothStringAndBytes_messageType struct{} + +func (x fastReflection_IntAsBothStringAndBytes_messageType) Zero() protoreflect.Message { + return (*fastReflection_IntAsBothStringAndBytes)(nil) +} +func (x fastReflection_IntAsBothStringAndBytes_messageType) New() protoreflect.Message { + return new(fastReflection_IntAsBothStringAndBytes) +} +func (x fastReflection_IntAsBothStringAndBytes_messageType) Descriptor() protoreflect.MessageDescriptor { + return md_IntAsBothStringAndBytes +} + +// Descriptor returns message descriptor, which contains only the protobuf +// type information for the message. +func (x *fastReflection_IntAsBothStringAndBytes) Descriptor() protoreflect.MessageDescriptor { + return md_IntAsBothStringAndBytes +} + +// Type returns the message type, which encapsulates both Go and protobuf +// type information. If the Go type information is not needed, +// it is recommended that the message descriptor be used instead. +func (x *fastReflection_IntAsBothStringAndBytes) Type() protoreflect.MessageType { + return _fastReflection_IntAsBothStringAndBytes_messageType +} + +// New returns a newly allocated and mutable empty message. +func (x *fastReflection_IntAsBothStringAndBytes) New() protoreflect.Message { + return new(fastReflection_IntAsBothStringAndBytes) +} + +// Interface unwraps the message reflection interface and +// returns the underlying ProtoMessage interface. +func (x *fastReflection_IntAsBothStringAndBytes) Interface() protoreflect.ProtoMessage { + return (*IntAsBothStringAndBytes)(x) +} + +// Range iterates over every populated field in an undefined order, +// calling f for each field descriptor and value encountered. +// Range returns immediately if f returns false. +// While iterating, mutating operations may only be performed +// on the current field descriptor. +func (x *fastReflection_IntAsBothStringAndBytes) Range(f func(protoreflect.FieldDescriptor, protoreflect.Value) bool) { + if x.IntAsString != "" { + value := protoreflect.ValueOfString(x.IntAsString) + if !f(fd_IntAsBothStringAndBytes_int_as_string, value) { + return + } + } + if len(x.IntAsBytes) != 0 { + value := protoreflect.ValueOfBytes(x.IntAsBytes) + if !f(fd_IntAsBothStringAndBytes_int_as_bytes, value) { + return + } + } +} + +// Has reports whether a field is populated. +// +// Some fields have the property of nullability where it is possible to +// distinguish between the default value of a field and whether the field +// was explicitly populated with the default value. Singular message fields, +// member fields of a oneof, and proto2 scalar fields are nullable. Such +// fields are populated only if explicitly set. +// +// In other cases (aside from the nullable cases above), +// a proto3 scalar field is populated if it contains a non-zero value, and +// a repeated field is populated if it is non-empty. +func (x *fastReflection_IntAsBothStringAndBytes) Has(fd protoreflect.FieldDescriptor) bool { + switch fd.FullName() { + case "testpb.IntAsBothStringAndBytes.int_as_string": + return x.IntAsString != "" + case "testpb.IntAsBothStringAndBytes.int_as_bytes": + return len(x.IntAsBytes) != 0 + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsBothStringAndBytes")) + } + panic(fmt.Errorf("message testpb.IntAsBothStringAndBytes does not contain field %s", fd.FullName())) + } +} + +// Clear clears the field such that a subsequent Has call reports false. +// +// Clearing an extension field clears both the extension type and value +// associated with the given field number. +// +// Clear is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_IntAsBothStringAndBytes) Clear(fd protoreflect.FieldDescriptor) { + switch fd.FullName() { + case "testpb.IntAsBothStringAndBytes.int_as_string": + x.IntAsString = "" + case "testpb.IntAsBothStringAndBytes.int_as_bytes": + x.IntAsBytes = nil + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsBothStringAndBytes")) + } + panic(fmt.Errorf("message testpb.IntAsBothStringAndBytes does not contain field %s", fd.FullName())) + } +} + +// Get retrieves the value for a field. +// +// For unpopulated scalars, it returns the default value, where +// the default value of a bytes scalar is guaranteed to be a copy. +// For unpopulated composite types, it returns an empty, read-only view +// of the value; to obtain a mutable reference, use Mutable. +func (x *fastReflection_IntAsBothStringAndBytes) Get(descriptor protoreflect.FieldDescriptor) protoreflect.Value { + switch descriptor.FullName() { + case "testpb.IntAsBothStringAndBytes.int_as_string": + value := x.IntAsString + return protoreflect.ValueOfString(value) + case "testpb.IntAsBothStringAndBytes.int_as_bytes": + value := x.IntAsBytes + return protoreflect.ValueOfBytes(value) + default: + if descriptor.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsBothStringAndBytes")) + } + panic(fmt.Errorf("message testpb.IntAsBothStringAndBytes does not contain field %s", descriptor.FullName())) + } +} + +// Set stores the value for a field. +// +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType. +// When setting a composite type, it is unspecified whether the stored value +// aliases the source's memory in any way. If the composite value is an +// empty, read-only value, then it panics. +// +// Set is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_IntAsBothStringAndBytes) Set(fd protoreflect.FieldDescriptor, value protoreflect.Value) { + switch fd.FullName() { + case "testpb.IntAsBothStringAndBytes.int_as_string": + x.IntAsString = value.Interface().(string) + case "testpb.IntAsBothStringAndBytes.int_as_bytes": + x.IntAsBytes = value.Bytes() + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsBothStringAndBytes")) + } + panic(fmt.Errorf("message testpb.IntAsBothStringAndBytes does not contain field %s", fd.FullName())) + } +} + +// Mutable returns a mutable reference to a composite type. +// +// If the field is unpopulated, it may allocate a composite value. +// For a field belonging to a oneof, it implicitly clears any other field +// that may be currently set within the same oneof. +// For extension fields, it implicitly stores the provided ExtensionType +// if not already stored. +// It panics if the field does not contain a composite type. +// +// Mutable is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_IntAsBothStringAndBytes) Mutable(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.IntAsBothStringAndBytes.int_as_string": + panic(fmt.Errorf("field int_as_string of message testpb.IntAsBothStringAndBytes is not mutable")) + case "testpb.IntAsBothStringAndBytes.int_as_bytes": + panic(fmt.Errorf("field int_as_bytes of message testpb.IntAsBothStringAndBytes is not mutable")) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsBothStringAndBytes")) + } + panic(fmt.Errorf("message testpb.IntAsBothStringAndBytes does not contain field %s", fd.FullName())) + } +} + +// NewField returns a new value that is assignable to the field +// for the given descriptor. For scalars, this returns the default value. +// For lists, maps, and messages, this returns a new, empty, mutable value. +func (x *fastReflection_IntAsBothStringAndBytes) NewField(fd protoreflect.FieldDescriptor) protoreflect.Value { + switch fd.FullName() { + case "testpb.IntAsBothStringAndBytes.int_as_string": + return protoreflect.ValueOfString("") + case "testpb.IntAsBothStringAndBytes.int_as_bytes": + return protoreflect.ValueOfBytes(nil) + default: + if fd.IsExtension() { + panic(fmt.Errorf("proto3 declared messages do not support extensions: testpb.IntAsBothStringAndBytes")) + } + panic(fmt.Errorf("message testpb.IntAsBothStringAndBytes does not contain field %s", fd.FullName())) + } +} + +// WhichOneof reports which field within the oneof is populated, +// returning nil if none are populated. +// It panics if the oneof descriptor does not belong to this message. +func (x *fastReflection_IntAsBothStringAndBytes) WhichOneof(d protoreflect.OneofDescriptor) protoreflect.FieldDescriptor { + switch d.FullName() { + default: + panic(fmt.Errorf("%s is not a oneof field in testpb.IntAsBothStringAndBytes", d.FullName())) + } + panic("unreachable") +} + +// GetUnknown retrieves the entire list of unknown fields. +// The caller may only mutate the contents of the RawFields +// if the mutated bytes are stored back into the message with SetUnknown. +func (x *fastReflection_IntAsBothStringAndBytes) GetUnknown() protoreflect.RawFields { + return x.unknownFields +} + +// SetUnknown stores an entire list of unknown fields. +// The raw fields must be syntactically valid according to the wire format. +// An implementation may panic if this is not the case. +// Once stored, the caller must not mutate the content of the RawFields. +// An empty RawFields may be passed to clear the fields. +// +// SetUnknown is a mutating operation and unsafe for concurrent use. +func (x *fastReflection_IntAsBothStringAndBytes) SetUnknown(fields protoreflect.RawFields) { + x.unknownFields = fields +} + +// IsValid reports whether the message is valid. +// +// An invalid message is an empty, read-only value. +// +// An invalid message often corresponds to a nil pointer of the concrete +// message type, but the details are implementation dependent. +// Validity is not part of the protobuf data model, and may not +// be preserved in marshaling or other operations. +func (x *fastReflection_IntAsBothStringAndBytes) IsValid() bool { + return x != nil +} + +// ProtoMethods returns optional fastReflectionFeature-path implementations of various operations. +// This method may return nil. +// +// The returned methods type is identical to +// "google.golang.org/protobuf/runtime/protoiface".Methods. +// Consult the protoiface package documentation for details. +func (x *fastReflection_IntAsBothStringAndBytes) ProtoMethods() *protoiface.Methods { + size := func(input protoiface.SizeInput) protoiface.SizeOutput { + x := input.Message.Interface().(*IntAsBothStringAndBytes) + if x == nil { + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: 0, + } + } + options := runtime.SizeInputToOptions(input) + _ = options + var n int + var l int + _ = l + l = len(x.IntAsString) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + l = len(x.IntAsBytes) + if l > 0 { + n += 1 + l + runtime.Sov(uint64(l)) + } + if x.unknownFields != nil { + n += len(x.unknownFields) + } + return protoiface.SizeOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Size: n, + } + } + + marshal := func(input protoiface.MarshalInput) (protoiface.MarshalOutput, error) { + x := input.Message.Interface().(*IntAsBothStringAndBytes) + if x == nil { + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + options := runtime.MarshalInputToOptions(input) + _ = options + size := options.Size(x) + dAtA := make([]byte, size) + i := len(dAtA) + _ = i + var l int + _ = l + if x.unknownFields != nil { + i -= len(x.unknownFields) + copy(dAtA[i:], x.unknownFields) + } + if len(x.IntAsBytes) > 0 { + i -= len(x.IntAsBytes) + copy(dAtA[i:], x.IntAsBytes) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.IntAsBytes))) + i-- + dAtA[i] = 0x12 + } + if len(x.IntAsString) > 0 { + i -= len(x.IntAsString) + copy(dAtA[i:], x.IntAsString) + i = runtime.EncodeVarint(dAtA, i, uint64(len(x.IntAsString))) + i-- + dAtA[i] = 0xa + } + if input.Buf != nil { + input.Buf = append(input.Buf, dAtA...) + } else { + input.Buf = dAtA + } + return protoiface.MarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Buf: input.Buf, + }, nil + } + unmarshal := func(input protoiface.UnmarshalInput) (protoiface.UnmarshalOutput, error) { + x := input.Message.Interface().(*IntAsBothStringAndBytes) + if x == nil { + return protoiface.UnmarshalOutput{ + NoUnkeyedLiterals: input.NoUnkeyedLiterals, + Flags: input.Flags, + }, nil + } + options := runtime.UnmarshalInputToOptions(input) + _ = options + dAtA := input.Buf + l := len(dAtA) + iNdEx := 0 + for iNdEx < l { + preIndex := iNdEx + var wire uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + wire |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + fieldNum := int32(wire >> 3) + wireType := int(wire & 0x7) + if wireType == 4 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: IntAsBothStringAndBytes: wiretype end group for non-group") + } + if fieldNum <= 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: IntAsBothStringAndBytes: illegal tag %d (wire type %d)", fieldNum, wire) + } + switch fieldNum { + case 1: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field IntAsString", wireType) + } + var stringLen uint64 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + stringLen |= uint64(b&0x7F) << shift + if b < 0x80 { + break + } + } + intStringLen := int(stringLen) + if intStringLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + intStringLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.IntAsString = string(dAtA[iNdEx:postIndex]) + iNdEx = postIndex + case 2: + if wireType != 2 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, fmt.Errorf("proto: wrong wireType = %d for field IntAsBytes", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrIntOverflow + } + if iNdEx >= l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if postIndex > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + x.IntAsBytes = append(x.IntAsBytes[:0], dAtA[iNdEx:postIndex]...) + if x.IntAsBytes == nil { + x.IntAsBytes = []byte{} + } + iNdEx = postIndex + default: + iNdEx = preIndex + skippy, err := runtime.Skip(dAtA[iNdEx:]) + if err != nil { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, err + } + if (skippy < 0) || (iNdEx+skippy) < 0 { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, runtime.ErrInvalidLength + } + if (iNdEx + skippy) > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + if !options.DiscardUnknown { + x.unknownFields = append(x.unknownFields, dAtA[iNdEx:iNdEx+skippy]...) + } + iNdEx += skippy + } + } + + if iNdEx > l { + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, io.ErrUnexpectedEOF + } + return protoiface.UnmarshalOutput{NoUnkeyedLiterals: input.NoUnkeyedLiterals, Flags: input.Flags}, nil + } + return &protoiface.Methods{ + NoUnkeyedLiterals: struct{}{}, + Flags: protoiface.SupportMarshalDeterministic | protoiface.SupportUnmarshalDiscardUnknown, + Size: size, + Marshal: marshal, + Unmarshal: unmarshal, + Merge: nil, + CheckInitialized: nil, + } +} + // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.27.0 @@ -2131,11 +3460,12 @@ type TestNullableFields struct { unknownFields protoimpl.UnknownFields NullableOmitempty *Streng `protobuf:"bytes,1,opt,name=nullable_omitempty,json=nullableOmitempty,proto3" json:"nullable_omitempty,omitempty"` - // not supported for empty sets - // go-amino emits nothing but the protoreflect library emits a null + // not supported + // go-amino emits nothing and the protoreflect returns an error + // alternatively protoreflect could emit `{}` NullableDontOmitempty *Streng `protobuf:"bytes,2,opt,name=nullable_dont_omitempty,json=nullableDontOmitempty,proto3" json:"nullable_dont_omitempty,omitempty"` - // not supported for empty sets - // go-amino emits a null but the protoreflect library emits nothing + // not supported + // go-amino emits `{}` but the protoreflect library emits nothing NonNullableOmitempty *Streng `protobuf:"bytes,3,opt,name=non_nullable_omitempty,json=nonNullableOmitempty,proto3" json:"non_nullable_omitempty,omitempty"` NonNullableDontOmitempty *Streng `protobuf:"bytes,4,opt,name=non_nullable_dont_omitempty,json=nonNullableDontOmitempty,proto3" json:"non_nullable_dont_omitempty,omitempty"` } @@ -2188,6 +3518,119 @@ func (x *TestNullableFields) GetNonNullableDontOmitempty() *Streng { return nil } +type IntAsString struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IntAsString string `protobuf:"bytes,1,opt,name=int_as_string,json=intAsString,proto3" json:"int_as_string,omitempty"` +} + +func (x *IntAsString) Reset() { + *x = IntAsString{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IntAsString) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IntAsString) ProtoMessage() {} + +// Deprecated: Use IntAsString.ProtoReflect.Descriptor instead. +func (*IntAsString) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{3} +} + +func (x *IntAsString) GetIntAsString() string { + if x != nil { + return x.IntAsString + } + return "" +} + +type IntAsBytes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IntAsBytes []byte `protobuf:"bytes,1,opt,name=int_as_bytes,json=intAsBytes,proto3" json:"int_as_bytes,omitempty"` +} + +func (x *IntAsBytes) Reset() { + *x = IntAsBytes{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IntAsBytes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IntAsBytes) ProtoMessage() {} + +// Deprecated: Use IntAsBytes.ProtoReflect.Descriptor instead. +func (*IntAsBytes) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{4} +} + +func (x *IntAsBytes) GetIntAsBytes() []byte { + if x != nil { + return x.IntAsBytes + } + return nil +} + +type IntAsBothStringAndBytes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IntAsString string `protobuf:"bytes,1,opt,name=int_as_string,json=intAsString,proto3" json:"int_as_string,omitempty"` + IntAsBytes []byte `protobuf:"bytes,2,opt,name=int_as_bytes,json=intAsBytes,proto3" json:"int_as_bytes,omitempty"` +} + +func (x *IntAsBothStringAndBytes) Reset() { + *x = IntAsBothStringAndBytes{} + if protoimpl.UnsafeEnabled { + mi := &file_testpb_test_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *IntAsBothStringAndBytes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IntAsBothStringAndBytes) ProtoMessage() {} + +// Deprecated: Use IntAsBothStringAndBytes.ProtoReflect.Descriptor instead. +func (*IntAsBothStringAndBytes) Descriptor() ([]byte, []int) { + return file_testpb_test_proto_rawDescGZIP(), []int{5} +} + +func (x *IntAsBothStringAndBytes) GetIntAsString() string { + if x != nil { + return x.IntAsString + } + return "" +} + +func (x *IntAsBothStringAndBytes) GetIntAsBytes() []byte { + if x != nil { + return x.IntAsBytes + } + return nil +} + var File_testpb_test_proto protoreflect.FileDescriptor var file_testpb_test_proto_rawDesc = []byte{ @@ -2195,61 +3638,92 @@ var file_testpb_test_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x1a, 0x14, 0x67, 0x6f, 0x67, 0x6f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x1e, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0xc8, 0x02, 0x0a, 0x12, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x3d, 0x0a, 0x12, 0x6e, - 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x52, 0x11, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x17, 0x6e, 0x75, - 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x6f, 0x6d, 0x69, 0x74, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, - 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x42, 0x05, 0xa8, 0xe7, 0xb0, - 0x2a, 0x01, 0x52, 0x15, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x6e, 0x74, - 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x16, 0x6e, 0x6f, 0x6e, - 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, - 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, - 0x14, 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x6d, 0x69, 0x74, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x58, 0x0a, 0x1b, 0x6e, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6c, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, - 0x6d, 0x70, 0x74, 0x79, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, - 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, - 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x18, 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x44, 0x6f, 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0xc8, 0x02, 0x0a, 0x12, 0x54, 0x65, 0x73, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x5f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0x1e, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, + 0xc8, 0x02, 0x0a, 0x12, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x64, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x3d, 0x0a, 0x12, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x6c, 0x65, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x52, 0x11, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4d, 0x0a, 0x17, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x42, 0x05, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x15, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x4a, 0x0a, 0x16, 0x6e, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x42, 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x14, 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x58, 0x0a, 0x1b, 0x6e, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x18, 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x6e, - 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x42, 0xa7, 0x01, 0x0a, 0x0a, 0x63, - 0x6f, 0x6d, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x56, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, - 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x67, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x6a, 0x73, 0x6f, 0x6e, - 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, - 0x2f, 0x70, 0x75, 0x6c, 0x73, 0x61, 0x72, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, - 0x03, 0x54, 0x58, 0x58, 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, - 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, - 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x22, 0xc8, 0x02, 0x0a, 0x12, 0x54, + 0x65, 0x73, 0x74, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x12, 0x3d, 0x0a, 0x12, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6f, 0x6d, + 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x52, 0x11, 0x6e, + 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, + 0x12, 0x4d, 0x0a, 0x17, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x6e, + 0x74, 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, + 0x67, 0x42, 0x05, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x15, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x44, 0x6f, 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, + 0x4a, 0x0a, 0x16, 0x6e, 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, + 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, 0x42, + 0x04, 0xc8, 0xde, 0x1f, 0x00, 0x52, 0x14, 0x6e, 0x6f, 0x6e, 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x4f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x58, 0x0a, 0x1b, 0x6e, + 0x6f, 0x6e, 0x5f, 0x6e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x6f, 0x6e, 0x74, + 0x5f, 0x6f, 0x6d, 0x69, 0x74, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x6e, 0x67, + 0x42, 0x09, 0xc8, 0xde, 0x1f, 0x00, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x18, 0x6e, 0x6f, 0x6e, + 0x4e, 0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x44, 0x6f, 0x6e, 0x74, 0x4f, 0x6d, 0x69, 0x74, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x74, 0x0a, 0x0b, 0x49, 0x6e, 0x74, 0x41, 0x73, 0x53, 0x74, + 0x72, 0x69, 0x6e, 0x67, 0x12, 0x65, 0x0a, 0x0d, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x73, + 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, + 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, + 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, + 0x69, 0x6e, 0x74, 0x41, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x71, 0x0a, 0x0a, 0x49, + 0x6e, 0x74, 0x41, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x63, 0x0a, 0x0c, 0x69, 0x6e, 0x74, + 0x5f, 0x61, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x42, + 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, + 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, + 0x2a, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x41, 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0xe5, + 0x01, 0x0a, 0x17, 0x49, 0x6e, 0x74, 0x41, 0x73, 0x42, 0x6f, 0x74, 0x68, 0x53, 0x74, 0x72, 0x69, + 0x6e, 0x67, 0x41, 0x6e, 0x64, 0x42, 0x79, 0x74, 0x65, 0x73, 0x12, 0x65, 0x0a, 0x0d, 0x69, 0x6e, + 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, + 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, + 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, + 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0b, 0x69, 0x6e, 0x74, 0x41, 0x73, 0x53, 0x74, 0x72, 0x69, 0x6e, + 0x67, 0x12, 0x63, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x5f, 0x61, 0x73, 0x5f, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x41, 0xc8, 0xde, 0x1f, 0x00, 0xda, 0xde, 0x1f, + 0x26, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, 0x6f, 0x73, 0x6d, + 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, 0x2f, 0x74, 0x79, + 0x70, 0x65, 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xd2, 0xb4, 0x2d, 0x0a, 0x63, 0x6f, 0x73, 0x6d, 0x6f, + 0x73, 0x2e, 0x49, 0x6e, 0x74, 0xa8, 0xe7, 0xb0, 0x2a, 0x01, 0x52, 0x0a, 0x69, 0x6e, 0x74, 0x41, + 0x73, 0x42, 0x79, 0x74, 0x65, 0x73, 0x42, 0xa7, 0x01, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x2e, 0x74, + 0x65, 0x73, 0x74, 0x70, 0x62, 0x42, 0x09, 0x54, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x50, 0x01, 0x5a, 0x56, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x63, + 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x73, 0x6d, 0x6f, 0x73, 0x2d, 0x73, 0x64, 0x6b, + 0x2f, 0x74, 0x65, 0x73, 0x74, 0x73, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2f, 0x61, 0x6d, 0x69, 0x6e, 0x6f, 0x6a, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2f, 0x70, 0x75, 0x6c, + 0x73, 0x61, 0x72, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0xa2, 0x02, 0x03, 0x54, 0x58, 0x58, + 0xaa, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0xca, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, + 0x70, 0x62, 0xe2, 0x02, 0x12, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x06, 0x54, 0x65, 0x73, 0x74, 0x70, 0x62, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2264,11 +3738,14 @@ func file_testpb_test_proto_rawDescGZIP() []byte { return file_testpb_test_proto_rawDescData } -var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_testpb_test_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_testpb_test_proto_goTypes = []interface{}{ - (*Streng)(nil), // 0: testpb.streng - (*TestRepeatedFields)(nil), // 1: testpb.TestRepeatedFields - (*TestNullableFields)(nil), // 2: testpb.TestNullableFields + (*Streng)(nil), // 0: testpb.streng + (*TestRepeatedFields)(nil), // 1: testpb.TestRepeatedFields + (*TestNullableFields)(nil), // 2: testpb.TestNullableFields + (*IntAsString)(nil), // 3: testpb.IntAsString + (*IntAsBytes)(nil), // 4: testpb.IntAsBytes + (*IntAsBothStringAndBytes)(nil), // 5: testpb.IntAsBothStringAndBytes } var file_testpb_test_proto_depIdxs = []int32{ 0, // 0: testpb.TestRepeatedFields.nullable_omitempty:type_name -> testpb.streng @@ -2328,6 +3805,42 @@ func file_testpb_test_proto_init() { return nil } } + file_testpb_test_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IntAsString); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_testpb_test_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IntAsBytes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_testpb_test_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IntAsBothStringAndBytes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -2335,7 +3848,7 @@ func file_testpb_test_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_testpb_test_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 6, NumExtensions: 0, NumServices: 0, }, diff --git a/tests/integration/aminojson/internal/testpb/test.proto b/tests/integration/aminojson/internal/testpb/test.proto index eef2cd3b0be5..413b0411744f 100644 --- a/tests/integration/aminojson/internal/testpb/test.proto +++ b/tests/integration/aminojson/internal/testpb/test.proto @@ -4,6 +4,7 @@ package testpb; import "gogoproto/gogo.proto"; import "amino/amino.proto"; +import "cosmos_proto/cosmos.proto"; message streng { string value = 1; @@ -36,4 +37,22 @@ message TestNullableFields { streng non_nullable_omitempty = 3 [(gogoproto.nullable) = false]; streng non_nullable_dont_omitempty = 4 [(gogoproto.nullable) = false, (amino.dont_omitempty) = true]; +} + +message IntAsString { + string int_as_string = 1 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (amino.dont_omitempty) = true, + (gogoproto.nullable) = false + ]; +} + +message IntAsBytes { + bytes int_as_bytes = 1 [ + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (amino.dont_omitempty) = true, + (gogoproto.nullable) = false + ]; } \ No newline at end of file diff --git a/x/tx/aminojson/encoder.go b/x/tx/aminojson/encoder.go index 52623b445601..561ced2319d0 100644 --- a/x/tx/aminojson/encoder.go +++ b/x/tx/aminojson/encoder.go @@ -26,6 +26,16 @@ func cosmosIntEncoder(_ AminoJSON, v protoreflect.Value, w io.Writer) error { return jsonMarshal(w, "0") } return jsonMarshal(w, val) + case []byte: + if len(val) == 0 { + return jsonMarshal(w, "0") + } + var i math.Int + err := i.Unmarshal(val) + if err != nil { + return err + } + return jsonMarshal(w, i.String()) default: return fmt.Errorf("unsupported type %T", val) } From 5d66060b9f741dcee8ac62fec25a5d133f4e2220 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 22 Feb 2023 12:50:22 -0600 Subject: [PATCH 113/122] reverse mistaken change --- proto/cosmos/staking/v1beta1/staking.proto | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/proto/cosmos/staking/v1beta1/staking.proto b/proto/cosmos/staking/v1beta1/staking.proto index 6432a85f5231..231a200c89dd 100644 --- a/proto/cosmos/staking/v1beta1/staking.proto +++ b/proto/cosmos/staking/v1beta1/staking.proto @@ -262,7 +262,9 @@ message RedelegationEntry { [(gogoproto.nullable) = false, (amino.dont_omitempty) = true, (gogoproto.stdtime) = true]; // initial_balance defines the initial balance when redelegation started. string initial_balance = 3 [ - + (cosmos_proto.scalar) = "cosmos.Int", + (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int", + (gogoproto.nullable) = false ]; // shares_dst is the amount of destination-validator shares created by redelegation. string shares_dst = 4 [ From 588ff72a0a3e76cd91c19d387af1bc54bf8d7d5f Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 22 Feb 2023 12:51:56 -0600 Subject: [PATCH 114/122] Update x/tx/aminojson/json_marshal.go Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com> --- x/tx/aminojson/json_marshal.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 5f6103f673ee..dbb81bcb0619 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -19,7 +19,7 @@ type FieldEncoder func(AminoJSON, protoreflect.Value, io.Writer) error // AminoJSON is a JSON encoder that uses the Amino JSON encoding rules. type AminoJSON struct { - // maps cosmos_proto.scalar -> zero value factory + // maps cosmos_proto.scalar -> field encoder scalarEncoders map[string]FieldEncoder messageEncoders map[string]MessageEncoder fieldEncoders map[string]FieldEncoder From 97bcc1aed49b17cf128d21b45e2f27049733c03c Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 22 Feb 2023 16:13:37 -0600 Subject: [PATCH 115/122] implement special handling for LegacyAminoPubKey --- tests/go.mod | 1 + tests/integration/aminojson/aminojson_test.go | 14 ++++++++ x/tx/aminojson/encoder.go | 36 ++++++++++++++++++- x/tx/aminojson/json_marshal.go | 27 ++++++++------ 4 files changed, 67 insertions(+), 11 deletions(-) diff --git a/tests/go.mod b/tests/go.mod index 5864f7fdcb20..a421a6145b47 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -207,6 +207,7 @@ replace ( // We always want to test against the latest version of the simapp. cosmossdk.io/simapp => ../simapp github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 + cosmossdk.io/api => ../api // We always want to test against the latest version of the SDK. github.com/cosmos/cosmos-sdk => ../. // Fix upstream GHSA-h395-qcrw-5vmq vulnerability. diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index e9b20ea53b12..120783e043ee 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -26,6 +26,7 @@ import ( v1beta1 "cosmossdk.io/api/cosmos/base/v1beta1" consensusapi "cosmossdk.io/api/cosmos/consensus/v1" "cosmossdk.io/api/cosmos/crypto/ed25519" + multisigapi "cosmossdk.io/api/cosmos/crypto/multisig" "cosmossdk.io/api/cosmos/crypto/secp256k1" distapi "cosmossdk.io/api/cosmos/distribution/v1beta1" evidenceapi "cosmossdk.io/api/cosmos/evidence/v1beta1" @@ -48,6 +49,7 @@ import ( upgradetypes "cosmossdk.io/x/upgrade/types" codectypes "github.com/cosmos/cosmos-sdk/codec/types" ed25519types "github.com/cosmos/cosmos-sdk/crypto/keys/ed25519" + "github.com/cosmos/cosmos-sdk/crypto/keys/multisig" secp256k1types "github.com/cosmos/cosmos-sdk/crypto/keys/secp256k1" gogo_testpb "github.com/cosmos/cosmos-sdk/tests/integration/aminojson/internal/gogo/testpb" pulsar_testpb "github.com/cosmos/cosmos-sdk/tests/integration/aminojson/internal/pulsar/testpb" @@ -173,6 +175,10 @@ var ( // consensus genType(&consensustypes.MsgUpdateParams{}, &consensusapi.MsgUpdateParams{}, genOpts.WithDisallowNil()), + // crypto + genType(&multisig.LegacyAminoPubKey{}, &multisigapi.LegacyAminoPubKey{}, + genOpts.WithAnyTypes(&ed25519.PubKey{}, &secp256k1.PubKey{})), + // distribution genType(&disttypes.MsgWithdrawDelegatorReward{}, &distapi.MsgWithdrawDelegatorReward{}, genOpts), genType(&disttypes.MsgWithdrawValidatorCommission{}, &distapi.MsgWithdrawValidatorCommission{}, genOpts), @@ -461,6 +467,14 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogo: &secp256k1types.PubKey{Key: []byte("key")}, pulsar: &secp256k1.PubKey{Key: []byte("key")}, }, + "crypto/legacy_amino_pubkey": { + gogo: &multisig.LegacyAminoPubKey{PubKeys: []*codectypes.Any{pubkeyAny}}, + pulsar: &multisigapi.LegacyAminoPubKey{PublicKeys: []*anypb.Any{pubkeyAnyPulsar}}, + }, + "crypto/legacy_amino_pubkey/empty": { + gogo: &multisig.LegacyAminoPubKey{}, + pulsar: &multisigapi.LegacyAminoPubKey{}, + }, "consensus/evidence_params/duration": { gogo: &gov_v1beta1_types.VotingParams{VotingPeriod: 1e9 + 7}, pulsar: &gov_v1beta1_api.VotingParams{VotingPeriod: &durationpb.Duration{Seconds: 1, Nanos: 7}}, diff --git a/x/tx/aminojson/encoder.go b/x/tx/aminojson/encoder.go index 561ced2319d0..8f290d86c7c7 100644 --- a/x/tx/aminojson/encoder.go +++ b/x/tx/aminojson/encoder.go @@ -3,13 +3,14 @@ package aminojson import ( "encoding/base64" "encoding/json" - "errors" "fmt" "io" + "github.com/pkg/errors" "google.golang.org/protobuf/reflect/protoreflect" authapi "cosmossdk.io/api/cosmos/auth/v1beta1" + multisig "cosmossdk.io/api/cosmos/crypto/multisig" "cosmossdk.io/math" ) @@ -136,3 +137,36 @@ func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { _, err = w.Write(bz) return err } + +// thresholdStringEncoder replicates the behavior at: +// https://github.com/cosmos/cosmos-sdk/blob/4a6a1e3cb8de459891cb0495052589673d14ef51/crypto/keys/multisig/amino.go#L35 +// also see: +// https://github.com/cosmos/cosmos-sdk/blob/b49f948b36bc991db5be431607b475633aed697e/proto/cosmos/crypto/multisig/keys.proto#L15/ +func thresholdStringEncoder(msg protoreflect.Message, w io.Writer) error { + pk, ok := msg.Interface().(*multisig.LegacyAminoPubKey) + if !ok { + return errors.New("thresholdStringEncoder: msg not a multisig.LegacyAminoPubKey") + } + _, err := w.Write([]byte(fmt.Sprintf(`{"threshold":"%d","pubkeys":`, pk.Threshold))) + if err != nil { + return err + } + + if len(pk.PublicKeys) == 0 { + _, err = w.Write([]byte(`[]}`)) + return err + } + + fields := msg.Descriptor().Fields() + pubkeysField := fields.ByName("public_keys") + pubkeysMsg := msg.Get(pubkeysField).List() + + aj := AminoJSON{} + aj.DefineMessageEncoding("key_field", keyFieldEncoder) + err = aj.marshalList(pubkeysMsg, w) + if err != nil { + return err + } + _, err = w.Write([]byte(`}`)) + return err +} diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 5f6103f673ee..88fae6e94eb0 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -33,8 +33,9 @@ func NewAminoJSON() AminoJSON { "cosmos.Int": cosmosIntEncoder, }, messageEncoders: map[string]MessageEncoder{ - "key_field": keyFieldEncoder, - "module_account": moduleAccountEncoder, + "key_field": keyFieldEncoder, + "module_account": moduleAccountEncoder, + "threshold_string": thresholdStringEncoder, }, fieldEncoders: map[string]FieldEncoder{ "legacy_coins": nullSliceAsEmptyEncoder, @@ -53,7 +54,10 @@ func NewAminoJSON() AminoJSON { // option (amino.message_encoding) = "module_account"; // ... // } -func (aj AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) { +func (aj *AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) { + if aj.messageEncoders == nil { + aj.messageEncoders = map[string]MessageEncoder{} + } aj.messageEncoders[name] = encoder } @@ -70,18 +74,21 @@ func (aj AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) { // ]; // ... // } -func (aj AminoJSON) DefineFieldEncoding(name string, encoder FieldEncoder) { +func (aj *AminoJSON) DefineFieldEncoding(name string, encoder FieldEncoder) { + if aj.fieldEncoders == nil { + aj.fieldEncoders = map[string]FieldEncoder{} + } aj.fieldEncoders[name] = encoder } // MarshalAmino serializes a protobuf message to JSON. -func (aj AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { +func (aj *AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} err := aj.beginMarshal(message.ProtoReflect(), buf) return buf.Bytes(), err } -func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) error { +func (aj *AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) error { name, named := getMessageAminoName(msg) if named { _, err := writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, name))) @@ -105,7 +112,7 @@ func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) err return nil } -func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { +func (aj *AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { switch val := value.Interface().(type) { case protoreflect.Message: err := aj.marshalMessage(val, writer) @@ -133,7 +140,7 @@ func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { } } -func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) error { +func (aj *AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) error { if msg == nil { return errors.New("nil message") } @@ -216,7 +223,7 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e // encode value if encoder := aj.getFieldEncoding(f); encoder != nil { - err = encoder(aj, v, writer) + err = encoder(*aj, v, writer) if err != nil { return err } @@ -255,7 +262,7 @@ func jsonMarshal(w io.Writer, v interface{}) error { return err } -func (aj AminoJSON) marshalList(list protoreflect.List, writer io.Writer) error { +func (aj *AminoJSON) marshalList(list protoreflect.List, writer io.Writer) error { n := list.Len() _, err := writer.Write([]byte("[")) From 73207ae5e5143e275bf96bd85b8a4cfaf2eb84d2 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Wed, 22 Feb 2023 19:02:38 -0600 Subject: [PATCH 116/122] revert to struct receiver methods --- x/tx/aminojson/encoder.go | 7 +++---- x/tx/aminojson/json_marshal.go | 18 ++++++++++-------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/x/tx/aminojson/encoder.go b/x/tx/aminojson/encoder.go index 8f290d86c7c7..e2ba6114afd4 100644 --- a/x/tx/aminojson/encoder.go +++ b/x/tx/aminojson/encoder.go @@ -159,11 +159,10 @@ func thresholdStringEncoder(msg protoreflect.Message, w io.Writer) error { fields := msg.Descriptor().Fields() pubkeysField := fields.ByName("public_keys") - pubkeysMsg := msg.Get(pubkeysField).List() + pubkeys := msg.Get(pubkeysField).List() - aj := AminoJSON{} - aj.DefineMessageEncoding("key_field", keyFieldEncoder) - err = aj.marshalList(pubkeysMsg, w) + aj := AminoJSON{}.DefineMessageEncoding("key_field", keyFieldEncoder) + err = aj.marshalList(pubkeys, w) if err != nil { return err } diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 76e88ce23c67..e65c24e1e854 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -54,11 +54,12 @@ func NewAminoJSON() AminoJSON { // option (amino.message_encoding) = "module_account"; // ... // } -func (aj *AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) { +func (aj AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) AminoJSON { if aj.messageEncoders == nil { aj.messageEncoders = map[string]MessageEncoder{} } aj.messageEncoders[name] = encoder + return aj } // DefineFieldEncoding defines a custom encoding for a protobuf field. The `name` field must match a usage of @@ -74,21 +75,22 @@ func (aj *AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) // ]; // ... // } -func (aj *AminoJSON) DefineFieldEncoding(name string, encoder FieldEncoder) { +func (aj AminoJSON) DefineFieldEncoding(name string, encoder FieldEncoder) AminoJSON { if aj.fieldEncoders == nil { aj.fieldEncoders = map[string]FieldEncoder{} } aj.fieldEncoders[name] = encoder + return aj } // MarshalAmino serializes a protobuf message to JSON. -func (aj *AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { +func (aj AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} err := aj.beginMarshal(message.ProtoReflect(), buf) return buf.Bytes(), err } -func (aj *AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) error { +func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) error { name, named := getMessageAminoName(msg) if named { _, err := writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, name))) @@ -112,7 +114,7 @@ func (aj *AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) er return nil } -func (aj *AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { +func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { switch val := value.Interface().(type) { case protoreflect.Message: err := aj.marshalMessage(val, writer) @@ -140,7 +142,7 @@ func (aj *AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { } } -func (aj *AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) error { +func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) error { if msg == nil { return errors.New("nil message") } @@ -223,7 +225,7 @@ func (aj *AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) // encode value if encoder := aj.getFieldEncoding(f); encoder != nil { - err = encoder(*aj, v, writer) + err = encoder(aj, v, writer) if err != nil { return err } @@ -262,7 +264,7 @@ func jsonMarshal(w io.Writer, v interface{}) error { return err } -func (aj *AminoJSON) marshalList(list protoreflect.List, writer io.Writer) error { +func (aj AminoJSON) marshalList(list protoreflect.List, writer io.Writer) error { n := list.Len() _, err := writer.Write([]byte("[")) From 5769996fd1a4a453c5c1795f0ca1bce9b369f1f2 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 23 Feb 2023 08:53:50 -0600 Subject: [PATCH 117/122] rm replace directive --- tests/go.mod | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/go.mod b/tests/go.mod index a421a6145b47..5864f7fdcb20 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -207,7 +207,6 @@ replace ( // We always want to test against the latest version of the simapp. cosmossdk.io/simapp => ../simapp github.com/99designs/keyring => github.com/cosmos/keyring v1.2.0 - cosmossdk.io/api => ../api // We always want to test against the latest version of the SDK. github.com/cosmos/cosmos-sdk => ../. // Fix upstream GHSA-h395-qcrw-5vmq vulnerability. From a5d45bde6f52cddd9e7b64038fb61844b27f6525 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 23 Feb 2023 10:23:29 -0600 Subject: [PATCH 118/122] rename AminoJSON struct -> Encoder --- tests/integration/aminojson/.gitignore | 2 +- tests/integration/aminojson/aminojson_test.go | 4 +- x/tx/aminojson/any.go | 4 +- x/tx/aminojson/encoder.go | 10 +-- x/tx/aminojson/json_marshal.go | 65 ++++++++++--------- x/tx/aminojson/options.go | 10 +-- 6 files changed, 48 insertions(+), 47 deletions(-) diff --git a/tests/integration/aminojson/.gitignore b/tests/integration/aminojson/.gitignore index d383c56fffdc..9309455bc5b4 100644 --- a/tests/integration/aminojson/.gitignore +++ b/tests/integration/aminojson/.gitignore @@ -1 +1 @@ -testdata +testdata/rapid diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index 120783e043ee..ac0d42ece866 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -311,7 +311,7 @@ var ( } ) -// TestAminoJSON_Equivalence tests that x/tx/AminoJSON encoding is equivalent to the legacy AminoJSON encoding. +// TestAminoJSON_Equivalence tests that x/tx/Encoder encoding is equivalent to the legacy Encoder encoding. // A custom generator is used to generate random messages that are then encoded using both encoders. The custom // generator only supports proto.Message (which implement the protoreflect API) so in order to test legacy gogo types // we end up with a workflow as follows: @@ -382,7 +382,7 @@ func newAny(t *testing.T, msg proto.Message) *anypb.Any { } } -// TestAminoJSON_LegacyParity tests that the AminoJSON encoder produces the same output as the AminoJSON encoder. +// TestAminoJSON_LegacyParity tests that the Encoder encoder produces the same output as the Encoder encoder. func TestAminoJSON_LegacyParity(t *testing.T) { encCfg := testutil.MakeTestEncodingConfig(auth.AppModuleBasic{}, authzmodule.AppModuleBasic{}, bank.AppModuleBasic{}, distribution.AppModuleBasic{}, slashing.AppModuleBasic{}, staking.AppModuleBasic{}, diff --git a/x/tx/aminojson/any.go b/x/tx/aminojson/any.go index d87d6c0269b8..68b1a9ec1024 100644 --- a/x/tx/aminojson/any.go +++ b/x/tx/aminojson/any.go @@ -12,7 +12,7 @@ import ( "google.golang.org/protobuf/reflect/protoregistry" ) -func (aj AminoJSON) marshalAny(message protoreflect.Message, writer io.Writer) error { +func (enc Encoder) marshalAny(message protoreflect.Message, writer io.Writer) error { anyMsg := message.Interface().(*anypb.Any) resolver := protoregistry.GlobalTypes @@ -33,5 +33,5 @@ func (aj AminoJSON) marshalAny(message protoreflect.Message, writer io.Writer) e anyMsg.TypeUrl) } - return aj.beginMarshal(valueMsg, writer) + return enc.beginMarshal(valueMsg, writer) } diff --git a/x/tx/aminojson/encoder.go b/x/tx/aminojson/encoder.go index e2ba6114afd4..4b0444cf1587 100644 --- a/x/tx/aminojson/encoder.go +++ b/x/tx/aminojson/encoder.go @@ -10,7 +10,7 @@ import ( "google.golang.org/protobuf/reflect/protoreflect" authapi "cosmossdk.io/api/cosmos/auth/v1beta1" - multisig "cosmossdk.io/api/cosmos/crypto/multisig" + "cosmossdk.io/api/cosmos/crypto/multisig" "cosmossdk.io/math" ) @@ -20,7 +20,7 @@ import ( // (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" // // In pulsar message they represented as strings, which is the only format this encoder supports. -func cosmosIntEncoder(_ AminoJSON, v protoreflect.Value, w io.Writer) error { +func cosmosIntEncoder(_ Encoder, v protoreflect.Value, w io.Writer) error { switch val := v.Interface().(type) { case string: if val == "" { @@ -44,7 +44,7 @@ func cosmosIntEncoder(_ AminoJSON, v protoreflect.Value, w io.Writer) error { // cosmosDecEncoder provides legacy compatible encoding for cosmos.Dec and cosmos.Int types. These are sometimes // represented as strings in pulsar messages and sometimes as bytes. This encoder handles both cases. -func cosmosDecEncoder(_ AminoJSON, v protoreflect.Value, w io.Writer) error { +func cosmosDecEncoder(_ Encoder, v protoreflect.Value, w io.Writer) error { switch val := v.Interface().(type) { case string: if val == "" { @@ -68,7 +68,7 @@ func cosmosDecEncoder(_ AminoJSON, v protoreflect.Value, w io.Writer) error { // nullSliceAsEmptyEncoder replicates the behavior at: // https://github.com/cosmos/cosmos-sdk/blob/be9bd7a8c1b41b115d58f4e76ee358e18a52c0af/types/coin.go#L199-L205 -func nullSliceAsEmptyEncoder(aj AminoJSON, v protoreflect.Value, w io.Writer) error { +func nullSliceAsEmptyEncoder(aj Encoder, v protoreflect.Value, w io.Writer) error { switch list := v.Interface().(type) { case protoreflect.List: if list.Len() == 0 { @@ -161,7 +161,7 @@ func thresholdStringEncoder(msg protoreflect.Message, w io.Writer) error { pubkeysField := fields.ByName("public_keys") pubkeys := msg.Get(pubkeysField).List() - aj := AminoJSON{}.DefineMessageEncoding("key_field", keyFieldEncoder) + aj := Encoder{}.DefineMessageEncoding("key_field", keyFieldEncoder) err = aj.marshalList(pubkeys, w) if err != nil { return err diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index e65c24e1e854..51440ed7029d 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -15,19 +15,20 @@ import ( type MessageEncoder func(protoreflect.Message, io.Writer) error // FieldEncoder is a function that can encode a protobuf protoreflect.Value to JSON. -type FieldEncoder func(AminoJSON, protoreflect.Value, io.Writer) error +type FieldEncoder func(Encoder, protoreflect.Value, io.Writer) error -// AminoJSON is a JSON encoder that uses the Amino JSON encoding rules. -type AminoJSON struct { +// Encoder is a JSON encoder that uses the Amino JSON encoding rules for protobuf messages. +type Encoder struct { // maps cosmos_proto.scalar -> field encoder scalarEncoders map[string]FieldEncoder messageEncoders map[string]MessageEncoder fieldEncoders map[string]FieldEncoder } -// NewAminoJSON returns a new AminoJSON encoder. -func NewAminoJSON() AminoJSON { - aj := AminoJSON{ +// NewAminoJSON returns a new Encoder capable of serializing protobuf messages to JSON using the Amino JSON encoding +// rules. +func NewAminoJSON() Encoder { + enc := Encoder{ scalarEncoders: map[string]FieldEncoder{ "cosmos.Dec": cosmosDecEncoder, "cosmos.Int": cosmosIntEncoder, @@ -42,7 +43,7 @@ func NewAminoJSON() AminoJSON { "cosmos_dec_bytes": cosmosDecEncoder, }, } - return aj + return enc } // DefineMessageEncoding defines a custom encoding for a protobuf message. The `name` field must match a usage of @@ -54,12 +55,12 @@ func NewAminoJSON() AminoJSON { // option (amino.message_encoding) = "module_account"; // ... // } -func (aj AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) AminoJSON { - if aj.messageEncoders == nil { - aj.messageEncoders = map[string]MessageEncoder{} +func (enc Encoder) DefineMessageEncoding(name string, encoder MessageEncoder) Encoder { + if enc.messageEncoders == nil { + enc.messageEncoders = map[string]MessageEncoder{} } - aj.messageEncoders[name] = encoder - return aj + enc.messageEncoders[name] = encoder + return enc } // DefineFieldEncoding defines a custom encoding for a protobuf field. The `name` field must match a usage of @@ -75,22 +76,22 @@ func (aj AminoJSON) DefineMessageEncoding(name string, encoder MessageEncoder) A // ]; // ... // } -func (aj AminoJSON) DefineFieldEncoding(name string, encoder FieldEncoder) AminoJSON { - if aj.fieldEncoders == nil { - aj.fieldEncoders = map[string]FieldEncoder{} +func (enc Encoder) DefineFieldEncoding(name string, encoder FieldEncoder) Encoder { + if enc.fieldEncoders == nil { + enc.fieldEncoders = map[string]FieldEncoder{} } - aj.fieldEncoders[name] = encoder - return aj + enc.fieldEncoders[name] = encoder + return enc } // MarshalAmino serializes a protobuf message to JSON. -func (aj AminoJSON) MarshalAmino(message proto.Message) ([]byte, error) { +func (enc Encoder) MarshalAmino(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} - err := aj.beginMarshal(message.ProtoReflect(), buf) + err := enc.beginMarshal(message.ProtoReflect(), buf) return buf.Bytes(), err } -func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) error { +func (enc Encoder) beginMarshal(msg protoreflect.Message, writer io.Writer) error { name, named := getMessageAminoName(msg) if named { _, err := writer.Write([]byte(fmt.Sprintf(`{"type":"%s","value":`, name))) @@ -99,7 +100,7 @@ func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) err } } - err := aj.marshal(protoreflect.ValueOfMessage(msg), writer) + err := enc.marshal(protoreflect.ValueOfMessage(msg), writer) if err != nil { return err } @@ -114,10 +115,10 @@ func (aj AminoJSON) beginMarshal(msg protoreflect.Message, writer io.Writer) err return nil } -func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { +func (enc Encoder) marshal(value protoreflect.Value, writer io.Writer) error { switch val := value.Interface().(type) { case protoreflect.Message: - err := aj.marshalMessage(val, writer) + err := enc.marshalMessage(val, writer) return err case protoreflect.Map: @@ -128,7 +129,7 @@ func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { _, err := writer.Write([]byte("null")) return err } - return aj.marshalList(val, writer) + return enc.marshalList(val, writer) case string, bool, int32, uint32, []byte, protoreflect.EnumNumber: return jsonMarshal(writer, val) @@ -142,7 +143,7 @@ func (aj AminoJSON) marshal(value protoreflect.Value, writer io.Writer) error { } } -func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) error { +func (enc Encoder) marshalMessage(msg protoreflect.Message, writer io.Writer) error { if msg == nil { return errors.New("nil message") } @@ -154,10 +155,10 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e case durationFullName: return marshalDuration(msg, writer) case anyFullName: - return aj.marshalAny(msg, writer) + return enc.marshalAny(msg, writer) } - if encoder := aj.getMessageEncoder(msg); encoder != nil { + if encoder := enc.getMessageEncoder(msg); encoder != nil { err := encoder(msg, writer) return err } @@ -224,8 +225,8 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e } // encode value - if encoder := aj.getFieldEncoding(f); encoder != nil { - err = encoder(aj, v, writer) + if encoder := enc.getFieldEncoding(f); encoder != nil { + err = encoder(enc, v, writer) if err != nil { return err } @@ -235,7 +236,7 @@ func (aj AminoJSON) marshalMessage(msg protoreflect.Message, writer io.Writer) e return err } } else { - err = aj.marshal(v, writer) + err = enc.marshal(v, writer) if err != nil { return err } @@ -264,7 +265,7 @@ func jsonMarshal(w io.Writer, v interface{}) error { return err } -func (aj AminoJSON) marshalList(list protoreflect.List, writer io.Writer) error { +func (enc Encoder) marshalList(list protoreflect.List, writer io.Writer) error { n := list.Len() _, err := writer.Write([]byte("[")) @@ -282,7 +283,7 @@ func (aj AminoJSON) marshalList(list protoreflect.List, writer io.Writer) error } first = false - err = aj.marshal(list.Get(i), writer) + err = enc.marshal(list.Get(i), writer) if err != nil { return err } diff --git a/x/tx/aminojson/options.go b/x/tx/aminojson/options.go index 715075ca603e..7dc4a7e10b5d 100644 --- a/x/tx/aminojson/options.go +++ b/x/tx/aminojson/options.go @@ -61,28 +61,28 @@ func getOneOfNames(field protoreflect.FieldDescriptor) (string, string, error) { return fieldName, typeName, nil } -func (aj AminoJSON) getMessageEncoder(message protoreflect.Message) MessageEncoder { +func (enc Encoder) getMessageEncoder(message protoreflect.Message) MessageEncoder { opts := message.Descriptor().Options() if proto.HasExtension(opts, amino.E_MessageEncoding) { encoding := proto.GetExtension(opts, amino.E_MessageEncoding).(string) - if fn, ok := aj.messageEncoders[encoding]; ok { + if fn, ok := enc.messageEncoders[encoding]; ok { return fn } } return nil } -func (aj AminoJSON) getFieldEncoding(field protoreflect.FieldDescriptor) FieldEncoder { +func (enc Encoder) getFieldEncoding(field protoreflect.FieldDescriptor) FieldEncoder { opts := field.Options() if proto.HasExtension(opts, amino.E_Encoding) { enc := proto.GetExtension(opts, amino.E_Encoding).(string) - if fn, ok := aj.fieldEncoders[enc]; ok { + if fn, ok := enc.fieldEncoders[enc]; ok { return fn } } if proto.HasExtension(opts, cosmos_proto.E_Scalar) { scalar := proto.GetExtension(opts, cosmos_proto.E_Scalar).(string) - if fn, ok := aj.scalarEncoders[scalar]; ok { + if fn, ok := enc.scalarEncoders[scalar]; ok { return fn } } From 60feafc5833c41ffbf51d060d69241f898c01be3 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 23 Feb 2023 10:25:39 -0600 Subject: [PATCH 119/122] Rename Encoder.MarshalAmino -> Encoder.Marshal --- tests/integration/aminojson/aminojson_test.go | 8 ++++---- tests/integration/aminojson/repeated_test.go | 10 ++++++---- x/tx/aminojson/json_marshal.go | 4 ++-- x/tx/aminojson/json_marshal_test.go | 6 +++--- 4 files changed, 15 insertions(+), 13 deletions(-) diff --git a/tests/integration/aminojson/aminojson_test.go b/tests/integration/aminojson/aminojson_test.go index ac0d42ece866..9e0733e2343f 100644 --- a/tests/integration/aminojson/aminojson_test.go +++ b/tests/integration/aminojson/aminojson_test.go @@ -364,7 +364,7 @@ func TestAminoJSON_Equivalence(t *testing.T) { legacyAminoJson, err := encCfg.Amino.MarshalJSON(gogo) require.NoError(t, err) - aminoJson, err := aj.MarshalAmino(msg) + aminoJson, err := aj.Marshal(msg) require.NoError(t, err) require.Equal(t, string(legacyAminoJson), string(aminoJson)) }) @@ -584,7 +584,7 @@ func TestAminoJSON_LegacyParity(t *testing.T) { gogoBytes, err := encCfg.Amino.MarshalJSON(tc.gogo) require.NoError(t, err) - pulsarBytes, err := aj.MarshalAmino(tc.pulsar) + pulsarBytes, err := aj.Marshal(tc.pulsar) if tc.pulsarMarshalFails { require.Error(t, err) return @@ -653,11 +653,11 @@ func TestSendAuthorization(t *testing.T) { require.Zero(t, len(pulsar.SpendLimit)) legacyAminoJson, err := encCfg.Amino.MarshalJSON(gogo) - aminoJson, err := aj.MarshalAmino(sanityPulsar) + aminoJson, err := aj.Marshal(sanityPulsar) require.Equal(t, string(legacyAminoJson), string(aminoJson)) - aminoJson, err = aj.MarshalAmino(pulsar) + aminoJson, err = aj.Marshal(pulsar) require.NoError(t, err) // at this point, pulsar.SpendLimit = [], and gogo.SpendLimit = nil, but they will both marshal to `[]` diff --git a/tests/integration/aminojson/repeated_test.go b/tests/integration/aminojson/repeated_test.go index 95d1afcf2fae..ae0a2bdfd490 100644 --- a/tests/integration/aminojson/repeated_test.go +++ b/tests/integration/aminojson/repeated_test.go @@ -1,16 +1,18 @@ package aminojson import ( + "fmt" + "testing" + gogoproto "github.com/cosmos/gogoproto/proto" "google.golang.org/protobuf/proto" + "github.com/stretchr/testify/require" + "cosmossdk.io/x/tx/aminojson" - "fmt" "github.com/cosmos/cosmos-sdk/codec" gogopb "github.com/cosmos/cosmos-sdk/tests/integration/aminojson/internal/gogo/testpb" pulsarpb "github.com/cosmos/cosmos-sdk/tests/integration/aminojson/internal/pulsar/testpb" - "github.com/stretchr/testify/require" - "testing" ) func TestRepeatedFields(t *testing.T) { @@ -60,7 +62,7 @@ func TestRepeatedFields(t *testing.T) { t.Run(n, func(t *testing.T) { gogoBz, err := cdc.MarshalJSON(tc.gogo) require.NoError(t, err) - pulsarBz, err := aj.MarshalAmino(tc.pulsar) + pulsarBz, err := aj.Marshal(tc.pulsar) if tc.errs { require.Error(t, err) return diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 51440ed7029d..384bbe109b06 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -84,8 +84,8 @@ func (enc Encoder) DefineFieldEncoding(name string, encoder FieldEncoder) Encode return enc } -// MarshalAmino serializes a protobuf message to JSON. -func (enc Encoder) MarshalAmino(message proto.Message) ([]byte, error) { +// Marshal serializes a protobuf message to JSON. +func (enc Encoder) Marshal(message proto.Message) ([]byte, error) { buf := &bytes.Buffer{} err := enc.beginMarshal(message.ProtoReflect(), buf) return buf.Bytes(), err diff --git a/x/tx/aminojson/json_marshal_test.go b/x/tx/aminojson/json_marshal_test.go index a41a5deb5e22..d0333de3b3a2 100644 --- a/x/tx/aminojson/json_marshal_test.go +++ b/x/tx/aminojson/json_marshal_test.go @@ -41,7 +41,7 @@ func TestAminoJSON_EdgeCases(t *testing.T) { } for name, tc := range cases { t.Run(name, func(t *testing.T) { - bz, err := aj.MarshalAmino(tc.msg) + bz, err := aj.Marshal(tc.msg) if tc.shouldErr { require.Error(t, err) @@ -91,7 +91,7 @@ func TestAminoJSON(t *testing.T) { Si64: -59268425823934, Sf64: -659101379604211154, } - bz, err := aminojson.NewAminoJSON().MarshalAmino(msg) + bz, err := aminojson.NewAminoJSON().Marshal(msg) assert.NilError(t, err) legacyBz, err := cdc.MarshalJSON(msg) assert.NilError(t, err) @@ -102,7 +102,7 @@ func TestRapid(t *testing.T) { gen := rapidproto.MessageGenerator(&testpb.ABitOfEverything{}, rapidproto.GeneratorOptions{}) rapid.Check(t, func(t *rapid.T) { msg := gen.Draw(t, "msg") - bz, err := aminojson.NewAminoJSON().MarshalAmino(msg) + bz, err := aminojson.NewAminoJSON().Marshal(msg) assert.NilError(t, err) checkInvariants(t, msg, bz) }) From 9cb66d049e86de871ea8d94c91f9c2b142e5aa61 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 23 Feb 2023 10:38:15 -0600 Subject: [PATCH 120/122] fix name collision --- x/tx/aminojson/options.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/x/tx/aminojson/options.go b/x/tx/aminojson/options.go index 7dc4a7e10b5d..51498d0a8b6c 100644 --- a/x/tx/aminojson/options.go +++ b/x/tx/aminojson/options.go @@ -75,8 +75,8 @@ func (enc Encoder) getMessageEncoder(message protoreflect.Message) MessageEncode func (enc Encoder) getFieldEncoding(field protoreflect.FieldDescriptor) FieldEncoder { opts := field.Options() if proto.HasExtension(opts, amino.E_Encoding) { - enc := proto.GetExtension(opts, amino.E_Encoding).(string) - if fn, ok := enc.fieldEncoders[enc]; ok { + encoding := proto.GetExtension(opts, amino.E_Encoding).(string) + if fn, ok := enc.fieldEncoders[encoding]; ok { return fn } } From e100fdd2491afe8375f9a790fb2d7d0796325d58 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 23 Feb 2023 13:45:23 -0600 Subject: [PATCH 121/122] change signature of message encoders to include encoder struct --- x/tx/aminojson/encoder.go | 17 ++++++++--------- x/tx/aminojson/json_marshal.go | 8 ++++---- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/x/tx/aminojson/encoder.go b/x/tx/aminojson/encoder.go index 4b0444cf1587..8fab6aba62e1 100644 --- a/x/tx/aminojson/encoder.go +++ b/x/tx/aminojson/encoder.go @@ -20,7 +20,7 @@ import ( // (gogoproto.customtype) = "github.com/cosmos/cosmos-sdk/types.Int" // // In pulsar message they represented as strings, which is the only format this encoder supports. -func cosmosIntEncoder(_ Encoder, v protoreflect.Value, w io.Writer) error { +func cosmosIntEncoder(_ *Encoder, v protoreflect.Value, w io.Writer) error { switch val := v.Interface().(type) { case string: if val == "" { @@ -44,7 +44,7 @@ func cosmosIntEncoder(_ Encoder, v protoreflect.Value, w io.Writer) error { // cosmosDecEncoder provides legacy compatible encoding for cosmos.Dec and cosmos.Int types. These are sometimes // represented as strings in pulsar messages and sometimes as bytes. This encoder handles both cases. -func cosmosDecEncoder(_ Encoder, v protoreflect.Value, w io.Writer) error { +func cosmosDecEncoder(_ *Encoder, v protoreflect.Value, w io.Writer) error { switch val := v.Interface().(type) { case string: if val == "" { @@ -68,14 +68,14 @@ func cosmosDecEncoder(_ Encoder, v protoreflect.Value, w io.Writer) error { // nullSliceAsEmptyEncoder replicates the behavior at: // https://github.com/cosmos/cosmos-sdk/blob/be9bd7a8c1b41b115d58f4e76ee358e18a52c0af/types/coin.go#L199-L205 -func nullSliceAsEmptyEncoder(aj Encoder, v protoreflect.Value, w io.Writer) error { +func nullSliceAsEmptyEncoder(enc *Encoder, v protoreflect.Value, w io.Writer) error { switch list := v.Interface().(type) { case protoreflect.List: if list.Len() == 0 { _, err := w.Write([]byte("[]")) return err } - return aj.marshalList(list, w) + return enc.marshalList(list, w) default: return fmt.Errorf("unsupported type %T", list) } @@ -84,7 +84,7 @@ func nullSliceAsEmptyEncoder(aj Encoder, v protoreflect.Value, w io.Writer) erro // keyFieldEncoder replicates the behavior at described at: // https://github.com/cosmos/cosmos-sdk/blob/b49f948b36bc991db5be431607b475633aed697e/proto/cosmos/crypto/secp256k1/keys.proto#L16 // The message is treated if it were bytes directly without the key field specified. -func keyFieldEncoder(msg protoreflect.Message, w io.Writer) error { +func keyFieldEncoder(_ *Encoder, msg protoreflect.Message, w io.Writer) error { keyField := msg.Descriptor().Fields().ByName("key") if keyField == nil { return errors.New(`message encoder for key_field: no field named "key" found`) @@ -113,7 +113,7 @@ type moduleAccountPretty struct { // moduleAccountEncoder replicates the behavior in // https://github.com/cosmos/cosmos-sdk/blob/41a3dfeced2953beba3a7d11ec798d17ee19f506/x/auth/types/account.go#L230-L254 -func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { +func moduleAccountEncoder(_ *Encoder, msg protoreflect.Message, w io.Writer) error { ma := msg.Interface().(*authapi.ModuleAccount) pretty := moduleAccountPretty{ PubKey: "", @@ -142,7 +142,7 @@ func moduleAccountEncoder(msg protoreflect.Message, w io.Writer) error { // https://github.com/cosmos/cosmos-sdk/blob/4a6a1e3cb8de459891cb0495052589673d14ef51/crypto/keys/multisig/amino.go#L35 // also see: // https://github.com/cosmos/cosmos-sdk/blob/b49f948b36bc991db5be431607b475633aed697e/proto/cosmos/crypto/multisig/keys.proto#L15/ -func thresholdStringEncoder(msg protoreflect.Message, w io.Writer) error { +func thresholdStringEncoder(enc *Encoder, msg protoreflect.Message, w io.Writer) error { pk, ok := msg.Interface().(*multisig.LegacyAminoPubKey) if !ok { return errors.New("thresholdStringEncoder: msg not a multisig.LegacyAminoPubKey") @@ -161,8 +161,7 @@ func thresholdStringEncoder(msg protoreflect.Message, w io.Writer) error { pubkeysField := fields.ByName("public_keys") pubkeys := msg.Get(pubkeysField).List() - aj := Encoder{}.DefineMessageEncoding("key_field", keyFieldEncoder) - err = aj.marshalList(pubkeys, w) + err = enc.marshalList(pubkeys, w) if err != nil { return err } diff --git a/x/tx/aminojson/json_marshal.go b/x/tx/aminojson/json_marshal.go index 384bbe109b06..49c2e7f08cab 100644 --- a/x/tx/aminojson/json_marshal.go +++ b/x/tx/aminojson/json_marshal.go @@ -12,10 +12,10 @@ import ( ) // MessageEncoder is a function that can encode a protobuf protoreflect.Message to JSON. -type MessageEncoder func(protoreflect.Message, io.Writer) error +type MessageEncoder func(*Encoder, protoreflect.Message, io.Writer) error // FieldEncoder is a function that can encode a protobuf protoreflect.Value to JSON. -type FieldEncoder func(Encoder, protoreflect.Value, io.Writer) error +type FieldEncoder func(*Encoder, protoreflect.Value, io.Writer) error // Encoder is a JSON encoder that uses the Amino JSON encoding rules for protobuf messages. type Encoder struct { @@ -159,7 +159,7 @@ func (enc Encoder) marshalMessage(msg protoreflect.Message, writer io.Writer) er } if encoder := enc.getMessageEncoder(msg); encoder != nil { - err := encoder(msg, writer) + err := encoder(&enc, msg, writer) return err } @@ -226,7 +226,7 @@ func (enc Encoder) marshalMessage(msg protoreflect.Message, writer io.Writer) er // encode value if encoder := enc.getFieldEncoding(f); encoder != nil { - err = encoder(enc, v, writer) + err = encoder(&enc, v, writer) if err != nil { return err } From 14ac34ac6802203562fa14626097ba22adad27a0 Mon Sep 17 00:00:00 2001 From: Matt Kocubinski Date: Thu, 23 Feb 2023 13:47:42 -0600 Subject: [PATCH 122/122] go mod tidy --- tests/go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/go.mod b/tests/go.mod index 521a613c91cf..514c164f9473 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -39,7 +39,7 @@ require ( cosmossdk.io/client/v2 v2.0.0-20230220152935-67f04e629623 // indirect cosmossdk.io/collections v0.0.0-20230214153846-b6c6e4e99177 // indirect cosmossdk.io/core v0.5.1 // indirect - filippo.io/edwards25519 v1.0.0-rc.1 // indirect + filippo.io/edwards25519 v1.0.0 // indirect github.com/99designs/go-keychain v0.0.0-20191008050251-8e49817e8af4 // indirect github.com/99designs/keyring v1.2.1 // indirect github.com/ChainSafe/go-schnorrkel v0.0.0-20200405005733-88cbf1b4c40d // indirect