Browse Source

abci: move round back from votes to commit

pull/2159/head
Ethan Buchman 6 years ago
parent
commit
c919643c3e
4 changed files with 256 additions and 256 deletions
  1. +239
    -238
      abci/types/types.pb.go
  2. +3
    -2
      abci/types/types.proto
  3. +13
    -15
      state/execution.go
  4. +1
    -1
      state/execution_test.go

+ 239
- 238
abci/types/types.pb.go View File

@ -60,7 +60,7 @@ func (m *Request) Reset() { *m = Request{} }
func (m *Request) String() string { return proto.CompactTextString(m) } func (m *Request) String() string { return proto.CompactTextString(m) }
func (*Request) ProtoMessage() {} func (*Request) ProtoMessage() {}
func (*Request) Descriptor() ([]byte, []int) { func (*Request) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{0}
return fileDescriptor_types_bafb6deff4c77e13, []int{0}
} }
func (m *Request) XXX_Unmarshal(b []byte) error { func (m *Request) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -482,7 +482,7 @@ func (m *RequestEcho) Reset() { *m = RequestEcho{} }
func (m *RequestEcho) String() string { return proto.CompactTextString(m) } func (m *RequestEcho) String() string { return proto.CompactTextString(m) }
func (*RequestEcho) ProtoMessage() {} func (*RequestEcho) ProtoMessage() {}
func (*RequestEcho) Descriptor() ([]byte, []int) { func (*RequestEcho) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{1}
return fileDescriptor_types_bafb6deff4c77e13, []int{1}
} }
func (m *RequestEcho) XXX_Unmarshal(b []byte) error { func (m *RequestEcho) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -528,7 +528,7 @@ func (m *RequestFlush) Reset() { *m = RequestFlush{} }
func (m *RequestFlush) String() string { return proto.CompactTextString(m) } func (m *RequestFlush) String() string { return proto.CompactTextString(m) }
func (*RequestFlush) ProtoMessage() {} func (*RequestFlush) ProtoMessage() {}
func (*RequestFlush) Descriptor() ([]byte, []int) { func (*RequestFlush) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{2}
return fileDescriptor_types_bafb6deff4c77e13, []int{2}
} }
func (m *RequestFlush) XXX_Unmarshal(b []byte) error { func (m *RequestFlush) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -568,7 +568,7 @@ func (m *RequestInfo) Reset() { *m = RequestInfo{} }
func (m *RequestInfo) String() string { return proto.CompactTextString(m) } func (m *RequestInfo) String() string { return proto.CompactTextString(m) }
func (*RequestInfo) ProtoMessage() {} func (*RequestInfo) ProtoMessage() {}
func (*RequestInfo) Descriptor() ([]byte, []int) { func (*RequestInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{3}
return fileDescriptor_types_bafb6deff4c77e13, []int{3}
} }
func (m *RequestInfo) XXX_Unmarshal(b []byte) error { func (m *RequestInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -617,7 +617,7 @@ func (m *RequestSetOption) Reset() { *m = RequestSetOption{} }
func (m *RequestSetOption) String() string { return proto.CompactTextString(m) } func (m *RequestSetOption) String() string { return proto.CompactTextString(m) }
func (*RequestSetOption) ProtoMessage() {} func (*RequestSetOption) ProtoMessage() {}
func (*RequestSetOption) Descriptor() ([]byte, []int) { func (*RequestSetOption) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{4}
return fileDescriptor_types_bafb6deff4c77e13, []int{4}
} }
func (m *RequestSetOption) XXX_Unmarshal(b []byte) error { func (m *RequestSetOption) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -675,7 +675,7 @@ func (m *RequestInitChain) Reset() { *m = RequestInitChain{} }
func (m *RequestInitChain) String() string { return proto.CompactTextString(m) } func (m *RequestInitChain) String() string { return proto.CompactTextString(m) }
func (*RequestInitChain) ProtoMessage() {} func (*RequestInitChain) ProtoMessage() {}
func (*RequestInitChain) Descriptor() ([]byte, []int) { func (*RequestInitChain) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{5}
return fileDescriptor_types_bafb6deff4c77e13, []int{5}
} }
func (m *RequestInitChain) XXX_Unmarshal(b []byte) error { func (m *RequestInitChain) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -753,7 +753,7 @@ func (m *RequestQuery) Reset() { *m = RequestQuery{} }
func (m *RequestQuery) String() string { return proto.CompactTextString(m) } func (m *RequestQuery) String() string { return proto.CompactTextString(m) }
func (*RequestQuery) ProtoMessage() {} func (*RequestQuery) ProtoMessage() {}
func (*RequestQuery) Descriptor() ([]byte, []int) { func (*RequestQuery) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{6}
return fileDescriptor_types_bafb6deff4c77e13, []int{6}
} }
func (m *RequestQuery) XXX_Unmarshal(b []byte) error { func (m *RequestQuery) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -825,7 +825,7 @@ func (m *RequestBeginBlock) Reset() { *m = RequestBeginBlock{} }
func (m *RequestBeginBlock) String() string { return proto.CompactTextString(m) } func (m *RequestBeginBlock) String() string { return proto.CompactTextString(m) }
func (*RequestBeginBlock) ProtoMessage() {} func (*RequestBeginBlock) ProtoMessage() {}
func (*RequestBeginBlock) Descriptor() ([]byte, []int) { func (*RequestBeginBlock) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{7}
return fileDescriptor_types_bafb6deff4c77e13, []int{7}
} }
func (m *RequestBeginBlock) XXX_Unmarshal(b []byte) error { func (m *RequestBeginBlock) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -893,7 +893,7 @@ func (m *RequestCheckTx) Reset() { *m = RequestCheckTx{} }
func (m *RequestCheckTx) String() string { return proto.CompactTextString(m) } func (m *RequestCheckTx) String() string { return proto.CompactTextString(m) }
func (*RequestCheckTx) ProtoMessage() {} func (*RequestCheckTx) ProtoMessage() {}
func (*RequestCheckTx) Descriptor() ([]byte, []int) { func (*RequestCheckTx) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{8}
return fileDescriptor_types_bafb6deff4c77e13, []int{8}
} }
func (m *RequestCheckTx) XXX_Unmarshal(b []byte) error { func (m *RequestCheckTx) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -940,7 +940,7 @@ func (m *RequestDeliverTx) Reset() { *m = RequestDeliverTx{} }
func (m *RequestDeliverTx) String() string { return proto.CompactTextString(m) } func (m *RequestDeliverTx) String() string { return proto.CompactTextString(m) }
func (*RequestDeliverTx) ProtoMessage() {} func (*RequestDeliverTx) ProtoMessage() {}
func (*RequestDeliverTx) Descriptor() ([]byte, []int) { func (*RequestDeliverTx) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{9}
return fileDescriptor_types_bafb6deff4c77e13, []int{9}
} }
func (m *RequestDeliverTx) XXX_Unmarshal(b []byte) error { func (m *RequestDeliverTx) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -987,7 +987,7 @@ func (m *RequestEndBlock) Reset() { *m = RequestEndBlock{} }
func (m *RequestEndBlock) String() string { return proto.CompactTextString(m) } func (m *RequestEndBlock) String() string { return proto.CompactTextString(m) }
func (*RequestEndBlock) ProtoMessage() {} func (*RequestEndBlock) ProtoMessage() {}
func (*RequestEndBlock) Descriptor() ([]byte, []int) { func (*RequestEndBlock) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{10}
return fileDescriptor_types_bafb6deff4c77e13, []int{10}
} }
func (m *RequestEndBlock) XXX_Unmarshal(b []byte) error { func (m *RequestEndBlock) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -1033,7 +1033,7 @@ func (m *RequestCommit) Reset() { *m = RequestCommit{} }
func (m *RequestCommit) String() string { return proto.CompactTextString(m) } func (m *RequestCommit) String() string { return proto.CompactTextString(m) }
func (*RequestCommit) ProtoMessage() {} func (*RequestCommit) ProtoMessage() {}
func (*RequestCommit) Descriptor() ([]byte, []int) { func (*RequestCommit) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{11}
return fileDescriptor_types_bafb6deff4c77e13, []int{11}
} }
func (m *RequestCommit) XXX_Unmarshal(b []byte) error { func (m *RequestCommit) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -1086,7 +1086,7 @@ func (m *Response) Reset() { *m = Response{} }
func (m *Response) String() string { return proto.CompactTextString(m) } func (m *Response) String() string { return proto.CompactTextString(m) }
func (*Response) ProtoMessage() {} func (*Response) ProtoMessage() {}
func (*Response) Descriptor() ([]byte, []int) { func (*Response) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{12}
return fileDescriptor_types_bafb6deff4c77e13, []int{12}
} }
func (m *Response) XXX_Unmarshal(b []byte) error { func (m *Response) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -1539,7 +1539,7 @@ func (m *ResponseException) Reset() { *m = ResponseException{} }
func (m *ResponseException) String() string { return proto.CompactTextString(m) } func (m *ResponseException) String() string { return proto.CompactTextString(m) }
func (*ResponseException) ProtoMessage() {} func (*ResponseException) ProtoMessage() {}
func (*ResponseException) Descriptor() ([]byte, []int) { func (*ResponseException) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{13}
return fileDescriptor_types_bafb6deff4c77e13, []int{13}
} }
func (m *ResponseException) XXX_Unmarshal(b []byte) error { func (m *ResponseException) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -1586,7 +1586,7 @@ func (m *ResponseEcho) Reset() { *m = ResponseEcho{} }
func (m *ResponseEcho) String() string { return proto.CompactTextString(m) } func (m *ResponseEcho) String() string { return proto.CompactTextString(m) }
func (*ResponseEcho) ProtoMessage() {} func (*ResponseEcho) ProtoMessage() {}
func (*ResponseEcho) Descriptor() ([]byte, []int) { func (*ResponseEcho) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{14}
return fileDescriptor_types_bafb6deff4c77e13, []int{14}
} }
func (m *ResponseEcho) XXX_Unmarshal(b []byte) error { func (m *ResponseEcho) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -1632,7 +1632,7 @@ func (m *ResponseFlush) Reset() { *m = ResponseFlush{} }
func (m *ResponseFlush) String() string { return proto.CompactTextString(m) } func (m *ResponseFlush) String() string { return proto.CompactTextString(m) }
func (*ResponseFlush) ProtoMessage() {} func (*ResponseFlush) ProtoMessage() {}
func (*ResponseFlush) Descriptor() ([]byte, []int) { func (*ResponseFlush) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{15}
return fileDescriptor_types_bafb6deff4c77e13, []int{15}
} }
func (m *ResponseFlush) XXX_Unmarshal(b []byte) error { func (m *ResponseFlush) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -1675,7 +1675,7 @@ func (m *ResponseInfo) Reset() { *m = ResponseInfo{} }
func (m *ResponseInfo) String() string { return proto.CompactTextString(m) } func (m *ResponseInfo) String() string { return proto.CompactTextString(m) }
func (*ResponseInfo) ProtoMessage() {} func (*ResponseInfo) ProtoMessage() {}
func (*ResponseInfo) Descriptor() ([]byte, []int) { func (*ResponseInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{16}
return fileDescriptor_types_bafb6deff4c77e13, []int{16}
} }
func (m *ResponseInfo) XXX_Unmarshal(b []byte) error { func (m *ResponseInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -1747,7 +1747,7 @@ func (m *ResponseSetOption) Reset() { *m = ResponseSetOption{} }
func (m *ResponseSetOption) String() string { return proto.CompactTextString(m) } func (m *ResponseSetOption) String() string { return proto.CompactTextString(m) }
func (*ResponseSetOption) ProtoMessage() {} func (*ResponseSetOption) ProtoMessage() {}
func (*ResponseSetOption) Descriptor() ([]byte, []int) { func (*ResponseSetOption) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{17}
return fileDescriptor_types_bafb6deff4c77e13, []int{17}
} }
func (m *ResponseSetOption) XXX_Unmarshal(b []byte) error { func (m *ResponseSetOption) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -1809,7 +1809,7 @@ func (m *ResponseInitChain) Reset() { *m = ResponseInitChain{} }
func (m *ResponseInitChain) String() string { return proto.CompactTextString(m) } func (m *ResponseInitChain) String() string { return proto.CompactTextString(m) }
func (*ResponseInitChain) ProtoMessage() {} func (*ResponseInitChain) ProtoMessage() {}
func (*ResponseInitChain) Descriptor() ([]byte, []int) { func (*ResponseInitChain) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{18}
return fileDescriptor_types_bafb6deff4c77e13, []int{18}
} }
func (m *ResponseInitChain) XXX_Unmarshal(b []byte) error { func (m *ResponseInitChain) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -1871,7 +1871,7 @@ func (m *ResponseQuery) Reset() { *m = ResponseQuery{} }
func (m *ResponseQuery) String() string { return proto.CompactTextString(m) } func (m *ResponseQuery) String() string { return proto.CompactTextString(m) }
func (*ResponseQuery) ProtoMessage() {} func (*ResponseQuery) ProtoMessage() {}
func (*ResponseQuery) Descriptor() ([]byte, []int) { func (*ResponseQuery) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{19}
return fileDescriptor_types_bafb6deff4c77e13, []int{19}
} }
func (m *ResponseQuery) XXX_Unmarshal(b []byte) error { func (m *ResponseQuery) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -1967,7 +1967,7 @@ func (m *ResponseBeginBlock) Reset() { *m = ResponseBeginBlock{} }
func (m *ResponseBeginBlock) String() string { return proto.CompactTextString(m) } func (m *ResponseBeginBlock) String() string { return proto.CompactTextString(m) }
func (*ResponseBeginBlock) ProtoMessage() {} func (*ResponseBeginBlock) ProtoMessage() {}
func (*ResponseBeginBlock) Descriptor() ([]byte, []int) { func (*ResponseBeginBlock) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{20}
return fileDescriptor_types_bafb6deff4c77e13, []int{20}
} }
func (m *ResponseBeginBlock) XXX_Unmarshal(b []byte) error { func (m *ResponseBeginBlock) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2020,7 +2020,7 @@ func (m *ResponseCheckTx) Reset() { *m = ResponseCheckTx{} }
func (m *ResponseCheckTx) String() string { return proto.CompactTextString(m) } func (m *ResponseCheckTx) String() string { return proto.CompactTextString(m) }
func (*ResponseCheckTx) ProtoMessage() {} func (*ResponseCheckTx) ProtoMessage() {}
func (*ResponseCheckTx) Descriptor() ([]byte, []int) { func (*ResponseCheckTx) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{21}
return fileDescriptor_types_bafb6deff4c77e13, []int{21}
} }
func (m *ResponseCheckTx) XXX_Unmarshal(b []byte) error { func (m *ResponseCheckTx) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2115,7 +2115,7 @@ func (m *ResponseDeliverTx) Reset() { *m = ResponseDeliverTx{} }
func (m *ResponseDeliverTx) String() string { return proto.CompactTextString(m) } func (m *ResponseDeliverTx) String() string { return proto.CompactTextString(m) }
func (*ResponseDeliverTx) ProtoMessage() {} func (*ResponseDeliverTx) ProtoMessage() {}
func (*ResponseDeliverTx) Descriptor() ([]byte, []int) { func (*ResponseDeliverTx) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{22}
return fileDescriptor_types_bafb6deff4c77e13, []int{22}
} }
func (m *ResponseDeliverTx) XXX_Unmarshal(b []byte) error { func (m *ResponseDeliverTx) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2206,7 +2206,7 @@ func (m *ResponseEndBlock) Reset() { *m = ResponseEndBlock{} }
func (m *ResponseEndBlock) String() string { return proto.CompactTextString(m) } func (m *ResponseEndBlock) String() string { return proto.CompactTextString(m) }
func (*ResponseEndBlock) ProtoMessage() {} func (*ResponseEndBlock) ProtoMessage() {}
func (*ResponseEndBlock) Descriptor() ([]byte, []int) { func (*ResponseEndBlock) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{23}
return fileDescriptor_types_bafb6deff4c77e13, []int{23}
} }
func (m *ResponseEndBlock) XXX_Unmarshal(b []byte) error { func (m *ResponseEndBlock) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2268,7 +2268,7 @@ func (m *ResponseCommit) Reset() { *m = ResponseCommit{} }
func (m *ResponseCommit) String() string { return proto.CompactTextString(m) } func (m *ResponseCommit) String() string { return proto.CompactTextString(m) }
func (*ResponseCommit) ProtoMessage() {} func (*ResponseCommit) ProtoMessage() {}
func (*ResponseCommit) Descriptor() ([]byte, []int) { func (*ResponseCommit) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{24}
return fileDescriptor_types_bafb6deff4c77e13, []int{24}
} }
func (m *ResponseCommit) XXX_Unmarshal(b []byte) error { func (m *ResponseCommit) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2319,7 +2319,7 @@ func (m *ConsensusParams) Reset() { *m = ConsensusParams{} }
func (m *ConsensusParams) String() string { return proto.CompactTextString(m) } func (m *ConsensusParams) String() string { return proto.CompactTextString(m) }
func (*ConsensusParams) ProtoMessage() {} func (*ConsensusParams) ProtoMessage() {}
func (*ConsensusParams) Descriptor() ([]byte, []int) { func (*ConsensusParams) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{25}
return fileDescriptor_types_bafb6deff4c77e13, []int{25}
} }
func (m *ConsensusParams) XXX_Unmarshal(b []byte) error { func (m *ConsensusParams) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2383,7 +2383,7 @@ func (m *BlockSize) Reset() { *m = BlockSize{} }
func (m *BlockSize) String() string { return proto.CompactTextString(m) } func (m *BlockSize) String() string { return proto.CompactTextString(m) }
func (*BlockSize) ProtoMessage() {} func (*BlockSize) ProtoMessage() {}
func (*BlockSize) Descriptor() ([]byte, []int) { func (*BlockSize) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{26}
return fileDescriptor_types_bafb6deff4c77e13, []int{26}
} }
func (m *BlockSize) XXX_Unmarshal(b []byte) error { func (m *BlockSize) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2446,7 +2446,7 @@ func (m *TxSize) Reset() { *m = TxSize{} }
func (m *TxSize) String() string { return proto.CompactTextString(m) } func (m *TxSize) String() string { return proto.CompactTextString(m) }
func (*TxSize) ProtoMessage() {} func (*TxSize) ProtoMessage() {}
func (*TxSize) Descriptor() ([]byte, []int) { func (*TxSize) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{27}
return fileDescriptor_types_bafb6deff4c77e13, []int{27}
} }
func (m *TxSize) XXX_Unmarshal(b []byte) error { func (m *TxSize) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2503,7 +2503,7 @@ func (m *BlockGossip) Reset() { *m = BlockGossip{} }
func (m *BlockGossip) String() string { return proto.CompactTextString(m) } func (m *BlockGossip) String() string { return proto.CompactTextString(m) }
func (*BlockGossip) ProtoMessage() {} func (*BlockGossip) ProtoMessage() {}
func (*BlockGossip) Descriptor() ([]byte, []int) { func (*BlockGossip) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{28}
return fileDescriptor_types_bafb6deff4c77e13, []int{28}
} }
func (m *BlockGossip) XXX_Unmarshal(b []byte) error { func (m *BlockGossip) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2540,7 +2540,8 @@ func (m *BlockGossip) GetBlockPartSizeBytes() int32 {
} }
type LastCommitInfo struct { type LastCommitInfo struct {
CommitVotes []VoteInfo `protobuf:"bytes,1,rep,name=commit_votes,json=commitVotes" json:"commit_votes"`
Round int32 `protobuf:"varint,1,opt,name=round,proto3" json:"round,omitempty"`
Votes []VoteInfo `protobuf:"bytes,2,rep,name=votes" json:"votes"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -2550,7 +2551,7 @@ func (m *LastCommitInfo) Reset() { *m = LastCommitInfo{} }
func (m *LastCommitInfo) String() string { return proto.CompactTextString(m) } func (m *LastCommitInfo) String() string { return proto.CompactTextString(m) }
func (*LastCommitInfo) ProtoMessage() {} func (*LastCommitInfo) ProtoMessage() {}
func (*LastCommitInfo) Descriptor() ([]byte, []int) { func (*LastCommitInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{29}
return fileDescriptor_types_bafb6deff4c77e13, []int{29}
} }
func (m *LastCommitInfo) XXX_Unmarshal(b []byte) error { func (m *LastCommitInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2579,9 +2580,16 @@ func (m *LastCommitInfo) XXX_DiscardUnknown() {
var xxx_messageInfo_LastCommitInfo proto.InternalMessageInfo var xxx_messageInfo_LastCommitInfo proto.InternalMessageInfo
func (m *LastCommitInfo) GetCommitVotes() []VoteInfo {
func (m *LastCommitInfo) GetRound() int32 {
if m != nil { if m != nil {
return m.CommitVotes
return m.Round
}
return 0
}
func (m *LastCommitInfo) GetVotes() []VoteInfo {
if m != nil {
return m.Votes
} }
return nil return nil
} }
@ -2616,7 +2624,7 @@ func (m *Header) Reset() { *m = Header{} }
func (m *Header) String() string { return proto.CompactTextString(m) } func (m *Header) String() string { return proto.CompactTextString(m) }
func (*Header) ProtoMessage() {} func (*Header) ProtoMessage() {}
func (*Header) Descriptor() ([]byte, []int) { func (*Header) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{30}
return fileDescriptor_types_bafb6deff4c77e13, []int{30}
} }
func (m *Header) XXX_Unmarshal(b []byte) error { func (m *Header) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2762,7 +2770,7 @@ func (m *BlockID) Reset() { *m = BlockID{} }
func (m *BlockID) String() string { return proto.CompactTextString(m) } func (m *BlockID) String() string { return proto.CompactTextString(m) }
func (*BlockID) ProtoMessage() {} func (*BlockID) ProtoMessage() {}
func (*BlockID) Descriptor() ([]byte, []int) { func (*BlockID) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{31}
return fileDescriptor_types_bafb6deff4c77e13, []int{31}
} }
func (m *BlockID) XXX_Unmarshal(b []byte) error { func (m *BlockID) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2817,7 +2825,7 @@ func (m *PartSetHeader) Reset() { *m = PartSetHeader{} }
func (m *PartSetHeader) String() string { return proto.CompactTextString(m) } func (m *PartSetHeader) String() string { return proto.CompactTextString(m) }
func (*PartSetHeader) ProtoMessage() {} func (*PartSetHeader) ProtoMessage() {}
func (*PartSetHeader) Descriptor() ([]byte, []int) { func (*PartSetHeader) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{32}
return fileDescriptor_types_bafb6deff4c77e13, []int{32}
} }
func (m *PartSetHeader) XXX_Unmarshal(b []byte) error { func (m *PartSetHeader) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2862,7 +2870,8 @@ func (m *PartSetHeader) GetHash() []byte {
// Validator // Validator
type Validator struct { type Validator struct {
Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
Address []byte `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
// PubKey pub_key = 2 [(gogoproto.nullable)=false];
Power int64 `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"` Power int64 `protobuf:"varint,3,opt,name=power,proto3" json:"power,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
@ -2873,7 +2882,7 @@ func (m *Validator) Reset() { *m = Validator{} }
func (m *Validator) String() string { return proto.CompactTextString(m) } func (m *Validator) String() string { return proto.CompactTextString(m) }
func (*Validator) ProtoMessage() {} func (*Validator) ProtoMessage() {}
func (*Validator) Descriptor() ([]byte, []int) { func (*Validator) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{33}
return fileDescriptor_types_bafb6deff4c77e13, []int{33}
} }
func (m *Validator) XXX_Unmarshal(b []byte) error { func (m *Validator) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2929,7 +2938,7 @@ func (m *ValidatorUpdate) Reset() { *m = ValidatorUpdate{} }
func (m *ValidatorUpdate) String() string { return proto.CompactTextString(m) } func (m *ValidatorUpdate) String() string { return proto.CompactTextString(m) }
func (*ValidatorUpdate) ProtoMessage() {} func (*ValidatorUpdate) ProtoMessage() {}
func (*ValidatorUpdate) Descriptor() ([]byte, []int) { func (*ValidatorUpdate) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{34}
return fileDescriptor_types_bafb6deff4c77e13, []int{34}
} }
func (m *ValidatorUpdate) XXX_Unmarshal(b []byte) error { func (m *ValidatorUpdate) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -2976,7 +2985,6 @@ func (m *ValidatorUpdate) GetPower() int64 {
type VoteInfo struct { type VoteInfo struct {
Validator Validator `protobuf:"bytes,1,opt,name=validator" json:"validator"` Validator Validator `protobuf:"bytes,1,opt,name=validator" json:"validator"`
SignedLastBlock bool `protobuf:"varint,2,opt,name=signed_last_block,json=signedLastBlock,proto3" json:"signed_last_block,omitempty"` SignedLastBlock bool `protobuf:"varint,2,opt,name=signed_last_block,json=signedLastBlock,proto3" json:"signed_last_block,omitempty"`
CommitRound int64 `protobuf:"varint,3,opt,name=commit_round,json=commitRound,proto3" json:"commit_round,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@ -2986,7 +2994,7 @@ func (m *VoteInfo) Reset() { *m = VoteInfo{} }
func (m *VoteInfo) String() string { return proto.CompactTextString(m) } func (m *VoteInfo) String() string { return proto.CompactTextString(m) }
func (*VoteInfo) ProtoMessage() {} func (*VoteInfo) ProtoMessage() {}
func (*VoteInfo) Descriptor() ([]byte, []int) { func (*VoteInfo) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{35}
return fileDescriptor_types_bafb6deff4c77e13, []int{35}
} }
func (m *VoteInfo) XXX_Unmarshal(b []byte) error { func (m *VoteInfo) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -3029,13 +3037,6 @@ func (m *VoteInfo) GetSignedLastBlock() bool {
return false return false
} }
func (m *VoteInfo) GetCommitRound() int64 {
if m != nil {
return m.CommitRound
}
return 0
}
type PubKey struct { type PubKey struct {
Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
@ -3048,7 +3049,7 @@ func (m *PubKey) Reset() { *m = PubKey{} }
func (m *PubKey) String() string { return proto.CompactTextString(m) } func (m *PubKey) String() string { return proto.CompactTextString(m) }
func (*PubKey) ProtoMessage() {} func (*PubKey) ProtoMessage() {}
func (*PubKey) Descriptor() ([]byte, []int) { func (*PubKey) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{36}
return fileDescriptor_types_bafb6deff4c77e13, []int{36}
} }
func (m *PubKey) XXX_Unmarshal(b []byte) error { func (m *PubKey) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -3106,7 +3107,7 @@ func (m *Evidence) Reset() { *m = Evidence{} }
func (m *Evidence) String() string { return proto.CompactTextString(m) } func (m *Evidence) String() string { return proto.CompactTextString(m) }
func (*Evidence) ProtoMessage() {} func (*Evidence) ProtoMessage() {}
func (*Evidence) Descriptor() ([]byte, []int) { func (*Evidence) Descriptor() ([]byte, []int) {
return fileDescriptor_types_56d74249e896ebc1, []int{37}
return fileDescriptor_types_bafb6deff4c77e13, []int{37}
} }
func (m *Evidence) XXX_Unmarshal(b []byte) error { func (m *Evidence) XXX_Unmarshal(b []byte) error {
return m.Unmarshal(b) return m.Unmarshal(b)
@ -4774,11 +4775,14 @@ func (this *LastCommitInfo) Equal(that interface{}) bool {
} else if this == nil { } else if this == nil {
return false return false
} }
if len(this.CommitVotes) != len(that1.CommitVotes) {
if this.Round != that1.Round {
return false
}
if len(this.Votes) != len(that1.Votes) {
return false return false
} }
for i := range this.CommitVotes {
if !this.CommitVotes[i].Equal(&that1.CommitVotes[i]) {
for i := range this.Votes {
if !this.Votes[i].Equal(&that1.Votes[i]) {
return false return false
} }
} }
@ -5001,9 +5005,6 @@ func (this *VoteInfo) Equal(that interface{}) bool {
if this.SignedLastBlock != that1.SignedLastBlock { if this.SignedLastBlock != that1.SignedLastBlock {
return false return false
} }
if this.CommitRound != that1.CommitRound {
return false
}
if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) { if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
return false return false
} }
@ -6908,9 +6909,14 @@ func (m *LastCommitInfo) MarshalTo(dAtA []byte) (int, error) {
_ = i _ = i
var l int var l int
_ = l _ = l
if len(m.CommitVotes) > 0 {
for _, msg := range m.CommitVotes {
dAtA[i] = 0xa
if m.Round != 0 {
dAtA[i] = 0x8
i++
i = encodeVarintTypes(dAtA, i, uint64(m.Round))
}
if len(m.Votes) > 0 {
for _, msg := range m.Votes {
dAtA[i] = 0x12
i++ i++
i = encodeVarintTypes(dAtA, i, uint64(msg.Size())) i = encodeVarintTypes(dAtA, i, uint64(msg.Size()))
n, err := msg.MarshalTo(dAtA[i:]) n, err := msg.MarshalTo(dAtA[i:])
@ -7204,11 +7210,6 @@ func (m *VoteInfo) MarshalTo(dAtA []byte) (int, error) {
} }
i++ i++
} }
if m.CommitRound != 0 {
dAtA[i] = 0x18
i++
i = encodeVarintTypes(dAtA, i, uint64(m.CommitRound))
}
if m.XXX_unrecognized != nil { if m.XXX_unrecognized != nil {
i += copy(dAtA[i:], m.XXX_unrecognized) i += copy(dAtA[i:], m.XXX_unrecognized)
} }
@ -7942,16 +7943,20 @@ func NewPopulatedBlockGossip(r randyTypes, easy bool) *BlockGossip {
func NewPopulatedLastCommitInfo(r randyTypes, easy bool) *LastCommitInfo { func NewPopulatedLastCommitInfo(r randyTypes, easy bool) *LastCommitInfo {
this := &LastCommitInfo{} this := &LastCommitInfo{}
this.Round = int32(r.Int31())
if r.Intn(2) == 0 {
this.Round *= -1
}
if r.Intn(10) != 0 { if r.Intn(10) != 0 {
v32 := r.Intn(5) v32 := r.Intn(5)
this.CommitVotes = make([]VoteInfo, v32)
this.Votes = make([]VoteInfo, v32)
for i := 0; i < v32; i++ { for i := 0; i < v32; i++ {
v33 := NewPopulatedVoteInfo(r, easy) v33 := NewPopulatedVoteInfo(r, easy)
this.CommitVotes[i] = *v33
this.Votes[i] = *v33
} }
} }
if !easy && r.Intn(10) != 0 { if !easy && r.Intn(10) != 0 {
this.XXX_unrecognized = randUnrecognizedTypes(r, 2)
this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
} }
return this return this
} }
@ -8094,12 +8099,8 @@ func NewPopulatedVoteInfo(r randyTypes, easy bool) *VoteInfo {
v50 := NewPopulatedValidator(r, easy) v50 := NewPopulatedValidator(r, easy)
this.Validator = *v50 this.Validator = *v50
this.SignedLastBlock = bool(bool(r.Intn(2) == 0)) this.SignedLastBlock = bool(bool(r.Intn(2) == 0))
this.CommitRound = int64(r.Int63())
if r.Intn(2) == 0 {
this.CommitRound *= -1
}
if !easy && r.Intn(10) != 0 { if !easy && r.Intn(10) != 0 {
this.XXX_unrecognized = randUnrecognizedTypes(r, 4)
this.XXX_unrecognized = randUnrecognizedTypes(r, 3)
} }
return this return this
} }
@ -8946,8 +8947,11 @@ func (m *BlockGossip) Size() (n int) {
func (m *LastCommitInfo) Size() (n int) { func (m *LastCommitInfo) Size() (n int) {
var l int var l int
_ = l _ = l
if len(m.CommitVotes) > 0 {
for _, e := range m.CommitVotes {
if m.Round != 0 {
n += 1 + sovTypes(uint64(m.Round))
}
if len(m.Votes) > 0 {
for _, e := range m.Votes {
l = e.Size() l = e.Size()
n += 1 + l + sovTypes(uint64(l)) n += 1 + l + sovTypes(uint64(l))
} }
@ -9089,9 +9093,6 @@ func (m *VoteInfo) Size() (n int) {
if m.SignedLastBlock { if m.SignedLastBlock {
n += 2 n += 2
} }
if m.CommitRound != 0 {
n += 1 + sovTypes(uint64(m.CommitRound))
}
if m.XXX_unrecognized != nil { if m.XXX_unrecognized != nil {
n += len(m.XXX_unrecognized) n += len(m.XXX_unrecognized)
} }
@ -13207,8 +13208,27 @@ func (m *LastCommitInfo) Unmarshal(dAtA []byte) error {
} }
switch fieldNum { switch fieldNum {
case 1: case 1:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field Round", wireType)
}
m.Round = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTypes
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.Round |= (int32(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
case 2:
if wireType != 2 { if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field CommitVotes", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType)
} }
var msglen int var msglen int
for shift := uint(0); ; shift += 7 { for shift := uint(0); ; shift += 7 {
@ -13232,8 +13252,8 @@ func (m *LastCommitInfo) Unmarshal(dAtA []byte) error {
if postIndex > l { if postIndex > l {
return io.ErrUnexpectedEOF return io.ErrUnexpectedEOF
} }
m.CommitVotes = append(m.CommitVotes, VoteInfo{})
if err := m.CommitVotes[len(m.CommitVotes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
m.Votes = append(m.Votes, VoteInfo{})
if err := m.Votes[len(m.Votes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err return err
} }
iNdEx = postIndex iNdEx = postIndex
@ -14228,25 +14248,6 @@ func (m *VoteInfo) Unmarshal(dAtA []byte) error {
} }
} }
m.SignedLastBlock = bool(v != 0) m.SignedLastBlock = bool(v != 0)
case 3:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field CommitRound", wireType)
}
m.CommitRound = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowTypes
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.CommitRound |= (int64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
default: default:
iNdEx = preIndex iNdEx = preIndex
skippy, err := skipTypes(dAtA[iNdEx:]) skippy, err := skipTypes(dAtA[iNdEx:])
@ -14663,144 +14664,144 @@ var (
ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow") ErrIntOverflowTypes = fmt.Errorf("proto: integer overflow")
) )
func init() { proto.RegisterFile("abci/types/types.proto", fileDescriptor_types_56d74249e896ebc1) }
func init() { proto.RegisterFile("abci/types/types.proto", fileDescriptor_types_bafb6deff4c77e13) }
func init() { func init() {
golang_proto.RegisterFile("abci/types/types.proto", fileDescriptor_types_56d74249e896ebc1)
}
var fileDescriptor_types_56d74249e896ebc1 = []byte{
// 2126 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0x5f, 0x73, 0x1b, 0x49,
0x11, 0xf7, 0xca, 0xb2, 0xa4, 0x6d, 0xc9, 0x92, 0x33, 0xf9, 0xa7, 0xe8, 0xc0, 0x09, 0x0b, 0xe4,
0x6c, 0xce, 0x67, 0x1f, 0x3e, 0x42, 0x39, 0x97, 0xe3, 0x0a, 0x2b, 0x09, 0x67, 0x73, 0x07, 0x98,
0x4d, 0x62, 0xaa, 0x28, 0xaa, 0xb6, 0x46, 0xda, 0xb1, 0xb4, 0x15, 0x69, 0x77, 0x6f, 0x67, 0xe4,
0x93, 0xf3, 0x19, 0xae, 0x8a, 0x7b, 0xa0, 0x8a, 0x67, 0xde, 0xf8, 0x02, 0x54, 0xf1, 0xc8, 0x13,
0x75, 0x8f, 0x14, 0x05, 0xc5, 0x5b, 0x00, 0x53, 0x3c, 0xc0, 0x27, 0xe0, 0x91, 0x9a, 0x9e, 0xd9,
0xbf, 0x5e, 0xa5, 0x92, 0xf0, 0xc6, 0x8b, 0xb4, 0x33, 0xdd, 0x3d, 0x33, 0xdd, 0xd3, 0xdd, 0xbf,
0xee, 0x81, 0x6b, 0x74, 0x30, 0xf4, 0x76, 0xc4, 0x59, 0xc8, 0xb8, 0xfa, 0xdd, 0x0e, 0xa3, 0x40,
0x04, 0x64, 0x05, 0x07, 0xbd, 0xb7, 0x47, 0x9e, 0x18, 0xcf, 0x06, 0xdb, 0xc3, 0x60, 0xba, 0x33,
0x0a, 0x46, 0xc1, 0x0e, 0x52, 0x07, 0xb3, 0x13, 0x1c, 0xe1, 0x00, 0xbf, 0x94, 0x54, 0xef, 0xe6,
0x28, 0x08, 0x46, 0x13, 0x96, 0x72, 0x09, 0x6f, 0xca, 0xb8, 0xa0, 0xd3, 0x50, 0x33, 0xec, 0x65,
0xd6, 0x13, 0xcc, 0x77, 0x59, 0x34, 0xf5, 0x7c, 0x91, 0xfd, 0x9c, 0x78, 0x03, 0xbe, 0x33, 0x0c,
0xa6, 0xd3, 0xc0, 0xcf, 0x1e, 0xc8, 0xfa, 0x7d, 0x15, 0xea, 0x36, 0xfb, 0x64, 0xc6, 0xb8, 0x20,
0x1b, 0x50, 0x65, 0xc3, 0x71, 0xd0, 0xad, 0xdc, 0x32, 0x36, 0x9a, 0xbb, 0x64, 0x5b, 0xf1, 0x69,
0xea, 0xc3, 0xe1, 0x38, 0x38, 0x58, 0xb2, 0x91, 0x83, 0xbc, 0x05, 0x2b, 0x27, 0x93, 0x19, 0x1f,
0x77, 0x97, 0x91, 0xf5, 0x72, 0x9e, 0xf5, 0x7b, 0x92, 0x74, 0xb0, 0x64, 0x2b, 0x1e, 0xb9, 0xac,
0xe7, 0x9f, 0x04, 0xdd, 0x6a, 0xd9, 0xb2, 0x87, 0xfe, 0x09, 0x2e, 0x2b, 0x39, 0xc8, 0x1e, 0x00,
0x67, 0xc2, 0x09, 0x42, 0xe1, 0x05, 0x7e, 0x77, 0x05, 0xf9, 0xaf, 0xe7, 0xf9, 0x1f, 0x31, 0xf1,
0x23, 0x24, 0x1f, 0x2c, 0xd9, 0x26, 0x8f, 0x07, 0x52, 0xd2, 0xf3, 0x3d, 0xe1, 0x0c, 0xc7, 0xd4,
0xf3, 0xbb, 0xb5, 0x32, 0xc9, 0x43, 0xdf, 0x13, 0xf7, 0x25, 0x59, 0x4a, 0x7a, 0xf1, 0x40, 0xaa,
0xf2, 0xc9, 0x8c, 0x45, 0x67, 0xdd, 0x7a, 0x99, 0x2a, 0x3f, 0x96, 0x24, 0xa9, 0x0a, 0xf2, 0x90,
0x7b, 0xd0, 0x1c, 0xb0, 0x91, 0xe7, 0x3b, 0x83, 0x49, 0x30, 0x7c, 0xda, 0x6d, 0xa0, 0x48, 0x37,
0x2f, 0xd2, 0x97, 0x0c, 0x7d, 0x49, 0x3f, 0x58, 0xb2, 0x61, 0x90, 0x8c, 0xc8, 0x2e, 0x34, 0x86,
0x63, 0x36, 0x7c, 0xea, 0x88, 0x79, 0xd7, 0x44, 0xc9, 0xab, 0x79, 0xc9, 0xfb, 0x92, 0xfa, 0x78,
0x7e, 0xb0, 0x64, 0xd7, 0x87, 0xea, 0x93, 0xdc, 0x01, 0x93, 0xf9, 0xae, 0xde, 0xae, 0x89, 0x42,
0xd7, 0x0a, 0xf7, 0xe2, 0xbb, 0xf1, 0x66, 0x0d, 0xa6, 0xbf, 0xc9, 0x36, 0xd4, 0xe4, 0x5d, 0x7b,
0xa2, 0xdb, 0x42, 0x99, 0x2b, 0x85, 0x8d, 0x90, 0x76, 0xb0, 0x64, 0x6b, 0x2e, 0x69, 0x3e, 0x97,
0x4d, 0xbc, 0x53, 0x16, 0xc9, 0xc3, 0x5d, 0x2e, 0x33, 0xdf, 0x03, 0x45, 0xc7, 0xe3, 0x99, 0x6e,
0x3c, 0xe8, 0xd7, 0x61, 0xe5, 0x94, 0x4e, 0x66, 0xcc, 0x7a, 0x13, 0x9a, 0x19, 0x4f, 0x21, 0x5d,
0xa8, 0x4f, 0x19, 0xe7, 0x74, 0xc4, 0xba, 0xc6, 0x2d, 0x63, 0xc3, 0xb4, 0xe3, 0xa1, 0xd5, 0x86,
0x56, 0xd6, 0x4f, 0x32, 0x82, 0xd2, 0x17, 0xa4, 0xe0, 0x29, 0x8b, 0xb8, 0x74, 0x00, 0x2d, 0xa8,
0x87, 0xd6, 0x7b, 0xb0, 0x56, 0x74, 0x02, 0xb2, 0x06, 0xcb, 0x4f, 0xd9, 0x99, 0xe6, 0x94, 0x9f,
0xe4, 0x8a, 0x3e, 0x10, 0x7a, 0xb1, 0x69, 0xeb, 0xd3, 0x7d, 0x5e, 0x49, 0x84, 0x13, 0x3f, 0x20,
0x7b, 0x50, 0x95, 0x81, 0x84, 0xd2, 0xcd, 0xdd, 0xde, 0xb6, 0x8a, 0xb2, 0xed, 0x38, 0xca, 0xb6,
0x1f, 0xc7, 0x51, 0xd6, 0x6f, 0x7c, 0xf1, 0xfc, 0xe6, 0xd2, 0xe7, 0x7f, 0xbd, 0x69, 0xd8, 0x28,
0x41, 0x6e, 0xc8, 0xab, 0xa4, 0x9e, 0xef, 0x78, 0xae, 0xde, 0xa7, 0x8e, 0xe3, 0x43, 0x97, 0xec,
0xc3, 0xda, 0x30, 0xf0, 0x39, 0xf3, 0xf9, 0x8c, 0x3b, 0x21, 0x8d, 0xe8, 0x94, 0xeb, 0x28, 0x89,
0x2f, 0xee, 0x7e, 0x4c, 0x3e, 0x42, 0xaa, 0xdd, 0x19, 0xe6, 0x27, 0xc8, 0xfb, 0x00, 0xa7, 0x74,
0xe2, 0xb9, 0x54, 0x04, 0x11, 0xef, 0x56, 0x6f, 0x2d, 0x67, 0x84, 0x8f, 0x63, 0xc2, 0x93, 0xd0,
0xa5, 0x82, 0xf5, 0xab, 0xf2, 0x64, 0x76, 0x86, 0x9f, 0xdc, 0x86, 0x0e, 0x0d, 0x43, 0x87, 0x0b,
0x2a, 0x98, 0x33, 0x38, 0x13, 0x8c, 0x63, 0x24, 0xb5, 0xec, 0x55, 0x1a, 0x86, 0x8f, 0xe4, 0x6c,
0x5f, 0x4e, 0x5a, 0x6e, 0x72, 0x0f, 0xe8, 0xe4, 0x84, 0x40, 0xd5, 0xa5, 0x82, 0xa2, 0x35, 0x5a,
0x36, 0x7e, 0xcb, 0xb9, 0x90, 0x8a, 0xb1, 0xd6, 0x11, 0xbf, 0xc9, 0x35, 0xa8, 0x8d, 0x99, 0x37,
0x1a, 0x0b, 0x54, 0x6b, 0xd9, 0xd6, 0x23, 0x69, 0xf8, 0x30, 0x0a, 0x4e, 0x19, 0xc6, 0x79, 0xc3,
0x56, 0x03, 0xeb, 0x9f, 0x06, 0x5c, 0xba, 0x10, 0x18, 0x72, 0xdd, 0x31, 0xe5, 0xe3, 0x78, 0x2f,
0xf9, 0x4d, 0xde, 0x92, 0xeb, 0x52, 0x97, 0x45, 0x3a, 0xff, 0xac, 0x6a, 0x8d, 0x0f, 0x70, 0x52,
0x2b, 0xaa, 0x59, 0xc8, 0x43, 0x58, 0x9b, 0x50, 0x2e, 0x1c, 0xe5, 0xbf, 0x0e, 0xe6, 0x97, 0xe5,
0x5c, 0x4c, 0x7d, 0x4c, 0x63, 0x3f, 0x97, 0x6e, 0xa5, 0xc5, 0xdb, 0x93, 0xdc, 0x2c, 0x39, 0x80,
0x2b, 0x83, 0xb3, 0x67, 0xd4, 0x17, 0x9e, 0xcf, 0x9c, 0x0b, 0x36, 0xef, 0xe8, 0xa5, 0x1e, 0x9e,
0x7a, 0x2e, 0xf3, 0x87, 0xb1, 0xb1, 0x2f, 0x27, 0x22, 0xc9, 0x65, 0x70, 0xeb, 0x16, 0xb4, 0xf3,
0x51, 0x4c, 0xda, 0x50, 0x11, 0x73, 0xad, 0x61, 0x45, 0xcc, 0x2d, 0x2b, 0xf1, 0xc0, 0x24, 0x94,
0x2e, 0xf0, 0x6c, 0x42, 0xa7, 0x10, 0xd6, 0x19, 0x73, 0x1b, 0x59, 0x73, 0x5b, 0x1d, 0x58, 0xcd,
0x45, 0xb3, 0xf5, 0xd9, 0x0a, 0x34, 0x6c, 0xc6, 0x43, 0xe9, 0x4c, 0x64, 0x0f, 0x4c, 0x36, 0x1f,
0x32, 0x95, 0x48, 0x8d, 0x42, 0x9a, 0x52, 0x3c, 0x0f, 0x63, 0xba, 0x0c, 0xe8, 0x84, 0x99, 0x6c,
0xe6, 0x40, 0xe0, 0x72, 0x51, 0x28, 0x8b, 0x02, 0x5b, 0x79, 0x14, 0xb8, 0x52, 0xe0, 0x2d, 0xc0,
0xc0, 0x66, 0x0e, 0x06, 0x8a, 0x0b, 0xe7, 0x70, 0xe0, 0x6e, 0x09, 0x0e, 0x14, 0x8f, 0xbf, 0x00,
0x08, 0xee, 0x96, 0x00, 0x41, 0xf7, 0xc2, 0x5e, 0xa5, 0x48, 0xb0, 0x95, 0x47, 0x82, 0xa2, 0x3a,
0x05, 0x28, 0x78, 0xbf, 0x0c, 0x0a, 0x6e, 0x14, 0x64, 0x16, 0x62, 0xc1, 0xbb, 0x17, 0xb0, 0xe0,
0x5a, 0x41, 0xb4, 0x04, 0x0c, 0xee, 0xe6, 0xb2, 0x34, 0x94, 0xea, 0x56, 0x9e, 0xa6, 0xc9, 0xb7,
0x2f, 0xe2, 0xc8, 0xf5, 0xe2, 0xd5, 0x96, 0x01, 0xc9, 0x4e, 0x01, 0x48, 0xae, 0x16, 0x4f, 0x59,
0x40, 0x92, 0x14, 0x0f, 0x36, 0x65, 0xdc, 0x17, 0x3c, 0x4d, 0xe6, 0x08, 0x16, 0x45, 0x41, 0xa4,
0x13, 0xb6, 0x1a, 0x58, 0x1b, 0x32, 0x13, 0xa5, 0xfe, 0xf5, 0x02, 0xec, 0x40, 0xa7, 0xcf, 0x78,
0x97, 0xf5, 0x4b, 0x23, 0x95, 0xc5, 0x88, 0xce, 0x66, 0x31, 0x53, 0x67, 0xb1, 0x0c, 0xa4, 0x54,
0x72, 0x90, 0x42, 0xbe, 0x01, 0x97, 0x30, 0x8d, 0xa0, 0x5d, 0x9c, 0x5c, 0x5a, 0xeb, 0x48, 0x82,
0x32, 0x88, 0xca, 0x6f, 0x6f, 0xc3, 0xe5, 0x0c, 0xaf, 0x4c, 0xb1, 0x98, 0xc2, 0xaa, 0x18, 0xbc,
0x6b, 0x09, 0xf7, 0x7e, 0x18, 0x1e, 0x50, 0x3e, 0xb6, 0x7e, 0x90, 0xea, 0x9f, 0xc2, 0x15, 0x81,
0xea, 0x30, 0x70, 0x95, 0x5a, 0xab, 0x36, 0x7e, 0x4b, 0x08, 0x9b, 0x04, 0x23, 0xdc, 0xd5, 0xb4,
0xe5, 0xa7, 0xe4, 0x4a, 0x22, 0xc5, 0x54, 0x21, 0x61, 0xfd, 0xc2, 0x48, 0xd7, 0x4b, 0x11, 0xac,
0x0c, 0x6c, 0x8c, 0xff, 0x05, 0x6c, 0x2a, 0xaf, 0x06, 0x36, 0xd6, 0x6f, 0x8c, 0xf4, 0x46, 0x12,
0x18, 0x79, 0x3d, 0x15, 0xa5, 0x73, 0x78, 0xbe, 0xcb, 0xe6, 0x18, 0xf0, 0xcb, 0xb6, 0x1a, 0xc4,
0x08, 0x5f, 0x43, 0x33, 0xe7, 0x11, 0xbe, 0x8e, 0x73, 0x6a, 0xa0, 0xe1, 0x27, 0x38, 0xc1, 0x48,
0x6c, 0xd9, 0x6a, 0x90, 0xc9, 0x9e, 0x66, 0x2e, 0x7b, 0x1e, 0x01, 0xb9, 0x18, 0xa3, 0xe4, 0x3d,
0xa8, 0x0a, 0x3a, 0x92, 0x26, 0x94, 0x56, 0x68, 0x6f, 0xab, 0x7a, 0x79, 0xfb, 0xa3, 0xe3, 0x23,
0xea, 0x45, 0xfd, 0x6b, 0x52, 0xfb, 0x7f, 0x3f, 0xbf, 0xd9, 0x96, 0x3c, 0x5b, 0xc1, 0xd4, 0x13,
0x6c, 0x1a, 0x8a, 0x33, 0x1b, 0x65, 0xac, 0x3f, 0x1b, 0x32, 0x77, 0xe7, 0x62, 0xb7, 0xd4, 0x16,
0xb1, 0x83, 0x56, 0x32, 0x30, 0xfb, 0x72, 0xf6, 0xf9, 0x32, 0xc0, 0x88, 0x72, 0xe7, 0x53, 0xea,
0x0b, 0xe6, 0x6a, 0x23, 0x99, 0x23, 0xca, 0x7f, 0x82, 0x13, 0xb2, 0x26, 0x91, 0xe4, 0x19, 0x67,
0x2e, 0x5a, 0x6b, 0xd9, 0xae, 0x8f, 0x28, 0x7f, 0xc2, 0x99, 0x9b, 0xe8, 0x55, 0x7f, 0x0d, 0xbd,
0xfe, 0x92, 0x71, 0xbc, 0x14, 0xb8, 0xfe, 0x1f, 0x34, 0xfb, 0x97, 0x21, 0x11, 0x39, 0x9f, 0xfc,
0xc8, 0x21, 0x5c, 0x4a, 0xdc, 0xdb, 0x99, 0xa1, 0xdb, 0xc7, 0xfe, 0xf0, 0xe2, 0xa8, 0x58, 0x3b,
0xcd, 0x4f, 0x73, 0xf2, 0x43, 0xb8, 0x5e, 0x08, 0xce, 0x64, 0xc1, 0xca, 0x0b, 0x63, 0xf4, 0x6a,
0x3e, 0x46, 0xe3, 0xf5, 0x62, 0x5d, 0x97, 0x5f, 0x43, 0xd7, 0xaf, 0xc9, 0xf2, 0x24, 0x9b, 0xb2,
0xcb, 0x6e, 0xcb, 0xfa, 0x95, 0x01, 0x9d, 0xc2, 0x61, 0xc8, 0x0e, 0x80, 0xca, 0x78, 0xdc, 0x7b,
0x16, 0x97, 0xca, 0x6b, 0xfa, 0xe0, 0x68, 0xb2, 0x47, 0xde, 0x33, 0x66, 0x9b, 0x83, 0xf8, 0x93,
0xdc, 0x86, 0xba, 0x98, 0x2b, 0xee, 0x7c, 0x21, 0xf7, 0x78, 0x8e, 0xac, 0x35, 0x81, 0xff, 0xe4,
0x0e, 0xb4, 0xd4, 0xc2, 0xa3, 0x80, 0x73, 0x2f, 0xd4, 0x45, 0x04, 0xc9, 0x2e, 0xfd, 0x21, 0x52,
0xec, 0xe6, 0x20, 0x1d, 0x58, 0x3f, 0x05, 0x33, 0xd9, 0x96, 0xbc, 0x01, 0xe6, 0x94, 0xce, 0x75,
0x95, 0x2b, 0xcf, 0xb6, 0x62, 0x37, 0xa6, 0x74, 0x8e, 0x05, 0x2e, 0xb9, 0x0e, 0x75, 0x49, 0x14,
0x73, 0x65, 0xef, 0x15, 0xbb, 0x36, 0xa5, 0xf3, 0xc7, 0xf3, 0x84, 0x30, 0xa2, 0x3c, 0x2e, 0x61,
0xa7, 0x74, 0xfe, 0x21, 0xe5, 0xd6, 0x07, 0x50, 0x53, 0x87, 0x7c, 0xa9, 0x85, 0xa5, 0x7c, 0x25,
0x27, 0xff, 0x5d, 0x68, 0x66, 0xce, 0x4d, 0xbe, 0x09, 0x57, 0x95, 0x86, 0x21, 0x8d, 0x04, 0x5a,
0x24, 0xb7, 0x20, 0x41, 0xe2, 0x11, 0x8d, 0x84, 0xdc, 0x52, 0x15, 0xe5, 0xdf, 0x87, 0x76, 0xbe,
0x70, 0x25, 0x7b, 0xd0, 0xd2, 0x45, 0xee, 0x69, 0x90, 0xfa, 0x62, 0x5c, 0x9a, 0x1e, 0x07, 0x82,
0x65, 0xea, 0xdb, 0xa6, 0x62, 0x95, 0xb3, 0xdc, 0xfa, 0x63, 0x15, 0x6a, 0xaa, 0x78, 0x26, 0xb7,
0x33, 0xfd, 0x0a, 0x22, 0x63, 0xbf, 0x79, 0xfe, 0xfc, 0x66, 0x1d, 0x41, 0xe4, 0xf0, 0x41, 0xda,
0xbc, 0xa4, 0xe9, 0xb2, 0x92, 0xab, 0xed, 0xe3, 0x4e, 0x69, 0xf9, 0x95, 0x3b, 0xa5, 0xeb, 0x50,
0xf7, 0x67, 0x53, 0xbc, 0x84, 0xaa, 0x5a, 0xd2, 0x9f, 0x4d, 0xe5, 0x25, 0xbc, 0x01, 0xa6, 0x08,
0x04, 0x9d, 0x20, 0x49, 0x85, 0x7c, 0x03, 0x27, 0x24, 0x71, 0x0f, 0x56, 0x33, 0x58, 0xeb, 0xb9,
0xba, 0x90, 0x6b, 0x67, 0x9d, 0xe3, 0xf0, 0x41, 0xac, 0x74, 0x82, 0xbd, 0x87, 0x2e, 0xd9, 0xc8,
0x37, 0x06, 0x08, 0xd1, 0x0a, 0x27, 0x32, 0xb5, 0xbf, 0x04, 0x68, 0x79, 0x00, 0xe9, 0xf4, 0x8a,
0x45, 0x81, 0x46, 0x43, 0x4e, 0x20, 0xf1, 0x4d, 0xe8, 0xa4, 0x28, 0xa7, 0x58, 0x4c, 0xb5, 0x4a,
0x3a, 0x8d, 0x8c, 0xef, 0xc0, 0x15, 0x9f, 0xcd, 0x85, 0x53, 0xe4, 0x06, 0xe4, 0x26, 0x92, 0x76,
0x9c, 0x97, 0xf8, 0x3a, 0xb4, 0xd3, 0xb4, 0x80, 0xbc, 0x4d, 0xd5, 0x9e, 0x25, 0xb3, 0xc8, 0x76,
0x03, 0x1a, 0x49, 0x8d, 0xd1, 0x42, 0x86, 0x3a, 0x55, 0xa5, 0x45, 0x52, 0xb5, 0x44, 0x8c, 0xcf,
0x26, 0x42, 0x2f, 0xb2, 0x8a, 0x3c, 0x58, 0xb5, 0xd8, 0x6a, 0x1e, 0x79, 0xbf, 0x0a, 0xab, 0x4c,
0xb7, 0x2f, 0x8a, 0xaf, 0x8d, 0x7c, 0xad, 0x78, 0x12, 0x99, 0x36, 0x61, 0x2d, 0x8c, 0x82, 0x30,
0xe0, 0x2c, 0x72, 0xa8, 0xeb, 0x46, 0x8c, 0xf3, 0x6e, 0x47, 0xad, 0x17, 0xcf, 0xef, 0xab, 0x69,
0xeb, 0x67, 0x50, 0xd7, 0xd6, 0x2f, 0x6d, 0xe2, 0xbe, 0x03, 0x2d, 0xe9, 0xec, 0xdc, 0xc9, 0xb5,
0x72, 0x71, 0x29, 0x8d, 0xbe, 0xce, 0x44, 0xae, 0xa3, 0x6b, 0x22, 0xbf, 0x9a, 0xb2, 0xee, 0xc2,
0x6a, 0x8e, 0x47, 0xa2, 0x3a, 0x3a, 0x85, 0x0e, 0x19, 0x35, 0x48, 0x76, 0xae, 0xa4, 0x3b, 0x5b,
0xf7, 0xc0, 0x4c, 0x0c, 0x2d, 0x2b, 0xbe, 0x58, 0x0f, 0x43, 0xdb, 0x4e, 0x0d, 0xb1, 0x4c, 0x08,
0x3e, 0x65, 0x91, 0x8e, 0x7c, 0x35, 0xb0, 0x9e, 0x40, 0xa7, 0x90, 0xd5, 0xc9, 0x16, 0xd4, 0xc3,
0xd9, 0xc0, 0x89, 0x5f, 0x17, 0xd2, 0x34, 0x76, 0x34, 0x1b, 0x7c, 0xc4, 0xce, 0xe2, 0x7e, 0x34,
0xc4, 0x51, 0xba, 0x6c, 0x25, 0xbb, 0xec, 0xcf, 0x0d, 0x68, 0xc4, 0x11, 0x4a, 0xbe, 0x05, 0x66,
0xe2, 0x24, 0x85, 0x3c, 0x9a, 0xec, 0xad, 0x57, 0x4d, 0x19, 0xe5, 0x5d, 0x73, 0x6f, 0xe4, 0x33,
0xd7, 0x49, 0x03, 0x02, 0x37, 0x69, 0xd8, 0x1d, 0x45, 0xf8, 0x38, 0xf6, 0x7e, 0xf2, 0x95, 0x24,
0x55, 0x44, 0xc1, 0xcc, 0x77, 0xb5, 0x8a, 0x3a, 0x27, 0xd8, 0x72, 0xca, 0x7a, 0x07, 0x6a, 0xea,
0xfc, 0xd2, 0x86, 0x72, 0xf3, 0xb8, 0x50, 0x96, 0xdf, 0xa5, 0x98, 0xf0, 0x27, 0x03, 0x1a, 0x71,
0x03, 0x5c, 0x2a, 0x94, 0xd3, 0xab, 0xf2, 0xb2, 0x7a, 0x2d, 0x7a, 0x45, 0x88, 0x33, 0x4d, 0xf5,
0x95, 0x33, 0xcd, 0x16, 0x10, 0x95, 0x50, 0x4e, 0x03, 0xe1, 0xf9, 0x23, 0x47, 0xdd, 0x87, 0xca,
0x2c, 0x6b, 0x48, 0x39, 0x46, 0xc2, 0x91, 0x9c, 0xdf, 0xfd, 0x6c, 0x05, 0x3a, 0xfb, 0xfd, 0xfb,
0x87, 0xfb, 0x61, 0x38, 0xf1, 0x86, 0x14, 0xab, 0xf3, 0x1d, 0xa8, 0x62, 0xff, 0x51, 0xf2, 0xf2,
0xd9, 0x2b, 0x6b, 0x84, 0xc9, 0x2e, 0xac, 0x60, 0x1b, 0x42, 0xca, 0x1e, 0x40, 0x7b, 0xa5, 0xfd,
0xb0, 0xdc, 0x44, 0x35, 0x2a, 0x17, 0xdf, 0x41, 0x7b, 0x65, 0x4d, 0x31, 0xf9, 0x00, 0xcc, 0xb4,
0x81, 0x58, 0xf4, 0x1a, 0xda, 0x5b, 0xd8, 0x1e, 0x4b, 0xf9, 0xb4, 0x6e, 0x5b, 0xf4, 0xa8, 0xd7,
0x5b, 0xd8, 0x47, 0x92, 0x3d, 0xa8, 0xc7, 0xf5, 0x6c, 0xf9, 0x7b, 0x65, 0x6f, 0x41, 0xeb, 0x2a,
0xcd, 0xa3, 0x7a, 0x82, 0xb2, 0x47, 0xd5, 0x5e, 0x69, 0x7f, 0x4d, 0xee, 0x40, 0x4d, 0x17, 0x28,
0xa5, 0x6f, 0x96, 0xbd, 0xf2, 0x06, 0x54, 0x2a, 0x99, 0x76, 0x45, 0x8b, 0x1e, 0x7e, 0x7b, 0x0b,
0x1f, 0x02, 0xc8, 0x3e, 0x40, 0xa6, 0x0f, 0x58, 0xf8, 0xa2, 0xdb, 0x5b, 0xdc, 0xe0, 0x93, 0x7b,
0xd0, 0x48, 0x1f, 0x6d, 0xca, 0xdf, 0x68, 0x7b, 0x8b, 0x7a, 0xee, 0xfe, 0x97, 0xfe, 0xf3, 0xf7,
0x75, 0xe3, 0xd7, 0xe7, 0xeb, 0xc6, 0x6f, 0xcf, 0xd7, 0x8d, 0x2f, 0xce, 0xd7, 0x8d, 0x3f, 0x9c,
0xaf, 0x1b, 0x7f, 0x3b, 0x5f, 0x37, 0x7e, 0xf7, 0x8f, 0x75, 0x63, 0x50, 0x43, 0xf7, 0x7f, 0xf7,
0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0x30, 0x52, 0xb5, 0x7b, 0x56, 0x18, 0x00, 0x00,
golang_proto.RegisterFile("abci/types/types.proto", fileDescriptor_types_bafb6deff4c77e13)
}
var fileDescriptor_types_bafb6deff4c77e13 = []byte{
// 2115 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcf, 0x6e, 0x1b, 0xc9,
0xd1, 0xd7, 0x50, 0x14, 0xc9, 0x29, 0x4a, 0xa4, 0xdc, 0xb6, 0x25, 0x9a, 0xfb, 0x7d, 0x92, 0x31,
0x49, 0xbc, 0x52, 0x56, 0x2b, 0x6d, 0xb4, 0x71, 0x20, 0xaf, 0x37, 0x8b, 0x88, 0xb6, 0xb3, 0x12,
0x76, 0x93, 0x28, 0x63, 0x5b, 0x01, 0x82, 0x00, 0x83, 0x26, 0xa7, 0x45, 0x0e, 0x4c, 0xce, 0xcc,
0x4e, 0x37, 0xb5, 0x94, 0x9f, 0x61, 0x0f, 0x7b, 0x08, 0x90, 0x73, 0x6e, 0x79, 0x81, 0x00, 0x39,
0xe6, 0x14, 0xec, 0x31, 0x08, 0x12, 0xe4, 0xe6, 0x24, 0x0a, 0x72, 0x48, 0x9e, 0x20, 0xc7, 0xa0,
0xab, 0x7b, 0xfe, 0x6a, 0x68, 0xd8, 0xce, 0x2d, 0x17, 0x72, 0xba, 0xab, 0xaa, 0xbb, 0xab, 0xba,
0xaa, 0x7e, 0x55, 0x0d, 0x6b, 0xb4, 0x3f, 0xf0, 0xf6, 0xc4, 0x45, 0xc8, 0xb8, 0xfa, 0xdd, 0x0d,
0xa3, 0x40, 0x04, 0x64, 0x09, 0x07, 0xdd, 0x77, 0x87, 0x9e, 0x18, 0x4d, 0xfb, 0xbb, 0x83, 0x60,
0xb2, 0x37, 0x0c, 0x86, 0xc1, 0x1e, 0x52, 0xfb, 0xd3, 0x33, 0x1c, 0xe1, 0x00, 0xbf, 0x94, 0x54,
0x77, 0x73, 0x18, 0x04, 0xc3, 0x31, 0x4b, 0xb9, 0x84, 0x37, 0x61, 0x5c, 0xd0, 0x49, 0xa8, 0x19,
0x0e, 0x32, 0xeb, 0x09, 0xe6, 0xbb, 0x2c, 0x9a, 0x78, 0xbe, 0xc8, 0x7e, 0x8e, 0xbd, 0x3e, 0xdf,
0x1b, 0x04, 0x93, 0x49, 0xe0, 0x67, 0x0f, 0x64, 0xfd, 0xae, 0x0a, 0x75, 0x9b, 0x7d, 0x36, 0x65,
0x5c, 0x90, 0x2d, 0xa8, 0xb2, 0xc1, 0x28, 0xe8, 0x54, 0x6e, 0x1b, 0x5b, 0xcd, 0x7d, 0xb2, 0xab,
0xf8, 0x34, 0xf5, 0xd1, 0x60, 0x14, 0x1c, 0x2d, 0xd8, 0xc8, 0x41, 0xde, 0x81, 0xa5, 0xb3, 0xf1,
0x94, 0x8f, 0x3a, 0x8b, 0xc8, 0x7a, 0x3d, 0xcf, 0xfa, 0x7d, 0x49, 0x3a, 0x5a, 0xb0, 0x15, 0x8f,
0x5c, 0xd6, 0xf3, 0xcf, 0x82, 0x4e, 0xb5, 0x6c, 0xd9, 0x63, 0xff, 0x0c, 0x97, 0x95, 0x1c, 0xe4,
0x00, 0x80, 0x33, 0xe1, 0x04, 0xa1, 0xf0, 0x02, 0xbf, 0xb3, 0x84, 0xfc, 0xeb, 0x79, 0xfe, 0xc7,
0x4c, 0xfc, 0x08, 0xc9, 0x47, 0x0b, 0xb6, 0xc9, 0xe3, 0x81, 0x94, 0xf4, 0x7c, 0x4f, 0x38, 0x83,
0x11, 0xf5, 0xfc, 0x4e, 0xad, 0x4c, 0xf2, 0xd8, 0xf7, 0xc4, 0x03, 0x49, 0x96, 0x92, 0x5e, 0x3c,
0x90, 0xaa, 0x7c, 0x36, 0x65, 0xd1, 0x45, 0xa7, 0x5e, 0xa6, 0xca, 0x8f, 0x25, 0x49, 0xaa, 0x82,
0x3c, 0xe4, 0x3e, 0x34, 0xfb, 0x6c, 0xe8, 0xf9, 0x4e, 0x7f, 0x1c, 0x0c, 0x9e, 0x75, 0x1a, 0x28,
0xd2, 0xc9, 0x8b, 0xf4, 0x24, 0x43, 0x4f, 0xd2, 0x8f, 0x16, 0x6c, 0xe8, 0x27, 0x23, 0xb2, 0x0f,
0x8d, 0xc1, 0x88, 0x0d, 0x9e, 0x39, 0x62, 0xd6, 0x31, 0x51, 0xf2, 0x66, 0x5e, 0xf2, 0x81, 0xa4,
0x3e, 0x99, 0x1d, 0x2d, 0xd8, 0xf5, 0x81, 0xfa, 0x24, 0x77, 0xc1, 0x64, 0xbe, 0xab, 0xb7, 0x6b,
0xa2, 0xd0, 0x5a, 0xe1, 0x5e, 0x7c, 0x37, 0xde, 0xac, 0xc1, 0xf4, 0x37, 0xd9, 0x85, 0x9a, 0xbc,
0x6b, 0x4f, 0x74, 0x96, 0x51, 0xe6, 0x46, 0x61, 0x23, 0xa4, 0x1d, 0x2d, 0xd8, 0x9a, 0x4b, 0x9a,
0xcf, 0x65, 0x63, 0xef, 0x9c, 0x45, 0xf2, 0x70, 0xd7, 0xcb, 0xcc, 0xf7, 0x50, 0xd1, 0xf1, 0x78,
0xa6, 0x1b, 0x0f, 0x7a, 0x75, 0x58, 0x3a, 0xa7, 0xe3, 0x29, 0xb3, 0xde, 0x86, 0x66, 0xc6, 0x53,
0x48, 0x07, 0xea, 0x13, 0xc6, 0x39, 0x1d, 0xb2, 0x8e, 0x71, 0xdb, 0xd8, 0x32, 0xed, 0x78, 0x68,
0xb5, 0x60, 0x39, 0xeb, 0x27, 0x19, 0x41, 0xe9, 0x0b, 0x52, 0xf0, 0x9c, 0x45, 0x5c, 0x3a, 0x80,
0x16, 0xd4, 0x43, 0xeb, 0x03, 0x58, 0x2d, 0x3a, 0x01, 0x59, 0x85, 0xc5, 0x67, 0xec, 0x42, 0x73,
0xca, 0x4f, 0x72, 0x43, 0x1f, 0x08, 0xbd, 0xd8, 0xb4, 0xf5, 0xe9, 0xbe, 0xac, 0x24, 0xc2, 0x89,
0x1f, 0x90, 0x03, 0xa8, 0xca, 0x40, 0x42, 0xe9, 0xe6, 0x7e, 0x77, 0x57, 0x45, 0xd9, 0x6e, 0x1c,
0x65, 0xbb, 0x4f, 0xe2, 0x28, 0xeb, 0x35, 0xbe, 0x7a, 0xb1, 0xb9, 0xf0, 0xe5, 0x5f, 0x36, 0x0d,
0x1b, 0x25, 0xc8, 0x2d, 0x79, 0x95, 0xd4, 0xf3, 0x1d, 0xcf, 0xd5, 0xfb, 0xd4, 0x71, 0x7c, 0xec,
0x92, 0x43, 0x58, 0x1d, 0x04, 0x3e, 0x67, 0x3e, 0x9f, 0x72, 0x27, 0xa4, 0x11, 0x9d, 0x70, 0x1d,
0x25, 0xf1, 0xc5, 0x3d, 0x88, 0xc9, 0x27, 0x48, 0xb5, 0xdb, 0x83, 0xfc, 0x04, 0xf9, 0x10, 0xe0,
0x9c, 0x8e, 0x3d, 0x97, 0x8a, 0x20, 0xe2, 0x9d, 0xea, 0xed, 0xc5, 0x8c, 0xf0, 0x69, 0x4c, 0x78,
0x1a, 0xba, 0x54, 0xb0, 0x5e, 0x55, 0x9e, 0xcc, 0xce, 0xf0, 0x93, 0x3b, 0xd0, 0xa6, 0x61, 0xe8,
0x70, 0x41, 0x05, 0x73, 0xfa, 0x17, 0x82, 0x71, 0x8c, 0xa4, 0x65, 0x7b, 0x85, 0x86, 0xe1, 0x63,
0x39, 0xdb, 0x93, 0x93, 0x96, 0x9b, 0xdc, 0x03, 0x3a, 0x39, 0x21, 0x50, 0x75, 0xa9, 0xa0, 0x68,
0x8d, 0x65, 0x1b, 0xbf, 0xe5, 0x5c, 0x48, 0xc5, 0x48, 0xeb, 0x88, 0xdf, 0x64, 0x0d, 0x6a, 0x23,
0xe6, 0x0d, 0x47, 0x02, 0xd5, 0x5a, 0xb4, 0xf5, 0x48, 0x1a, 0x3e, 0x8c, 0x82, 0x73, 0x86, 0x71,
0xde, 0xb0, 0xd5, 0xc0, 0xfa, 0x87, 0x01, 0xd7, 0xae, 0x04, 0x86, 0x5c, 0x77, 0x44, 0xf9, 0x28,
0xde, 0x4b, 0x7e, 0x93, 0x77, 0xe4, 0xba, 0xd4, 0x65, 0x91, 0xce, 0x3f, 0x2b, 0x5a, 0xe3, 0x23,
0x9c, 0xd4, 0x8a, 0x6a, 0x16, 0xf2, 0x08, 0x56, 0xc7, 0x94, 0x0b, 0x47, 0xf9, 0xaf, 0x83, 0xf9,
0x65, 0x31, 0x17, 0x53, 0x9f, 0xd2, 0xd8, 0xcf, 0xa5, 0x5b, 0x69, 0xf1, 0xd6, 0x38, 0x37, 0x4b,
0x8e, 0xe0, 0x46, 0xff, 0xe2, 0x39, 0xf5, 0x85, 0xe7, 0x33, 0xe7, 0x8a, 0xcd, 0xdb, 0x7a, 0xa9,
0x47, 0xe7, 0x9e, 0xcb, 0xfc, 0x41, 0x6c, 0xec, 0xeb, 0x89, 0x48, 0x72, 0x19, 0xdc, 0xba, 0x0d,
0xad, 0x7c, 0x14, 0x93, 0x16, 0x54, 0xc4, 0x4c, 0x6b, 0x58, 0x11, 0x33, 0xcb, 0x4a, 0x3c, 0x30,
0x09, 0xa5, 0x2b, 0x3c, 0xdb, 0xd0, 0x2e, 0x84, 0x75, 0xc6, 0xdc, 0x46, 0xd6, 0xdc, 0x56, 0x1b,
0x56, 0x72, 0xd1, 0x6c, 0x7d, 0xb1, 0x04, 0x0d, 0x9b, 0xf1, 0x50, 0x3a, 0x13, 0x39, 0x00, 0x93,
0xcd, 0x06, 0x4c, 0x25, 0x52, 0xa3, 0x90, 0xa6, 0x14, 0xcf, 0xa3, 0x98, 0x2e, 0x03, 0x3a, 0x61,
0x26, 0xdb, 0x39, 0x10, 0xb8, 0x5e, 0x14, 0xca, 0xa2, 0xc0, 0x4e, 0x1e, 0x05, 0x6e, 0x14, 0x78,
0x0b, 0x30, 0xb0, 0x9d, 0x83, 0x81, 0xe2, 0xc2, 0x39, 0x1c, 0xb8, 0x57, 0x82, 0x03, 0xc5, 0xe3,
0xcf, 0x01, 0x82, 0x7b, 0x25, 0x40, 0xd0, 0xb9, 0xb2, 0x57, 0x29, 0x12, 0xec, 0xe4, 0x91, 0xa0,
0xa8, 0x4e, 0x01, 0x0a, 0x3e, 0x2c, 0x83, 0x82, 0x5b, 0x05, 0x99, 0xb9, 0x58, 0xf0, 0xfe, 0x15,
0x2c, 0x58, 0x2b, 0x88, 0x96, 0x80, 0xc1, 0xbd, 0x5c, 0x96, 0x86, 0x52, 0xdd, 0xca, 0xd3, 0x34,
0xf9, 0xce, 0x55, 0x1c, 0x59, 0x2f, 0x5e, 0x6d, 0x19, 0x90, 0xec, 0x15, 0x80, 0xe4, 0x66, 0xf1,
0x94, 0x05, 0x24, 0x49, 0xf1, 0x60, 0x5b, 0xc6, 0x7d, 0xc1, 0xd3, 0x64, 0x8e, 0x60, 0x51, 0x14,
0x44, 0x3a, 0x61, 0xab, 0x81, 0xb5, 0x25, 0x33, 0x51, 0xea, 0x5f, 0x2f, 0xc1, 0x0e, 0x74, 0xfa,
0x8c, 0x77, 0x59, 0xbf, 0x30, 0x52, 0x59, 0x8c, 0xe8, 0x6c, 0x16, 0x33, 0x75, 0x16, 0xcb, 0x40,
0x4a, 0x25, 0x07, 0x29, 0xe4, 0x9b, 0x70, 0x0d, 0xd3, 0x08, 0xda, 0xc5, 0xc9, 0xa5, 0xb5, 0xb6,
0x24, 0x28, 0x83, 0xa8, 0xfc, 0xf6, 0x2e, 0x5c, 0xcf, 0xf0, 0xca, 0x14, 0x8b, 0x29, 0xac, 0x8a,
0xc1, 0xbb, 0x9a, 0x70, 0x1f, 0x86, 0xe1, 0x11, 0xe5, 0x23, 0xeb, 0x07, 0xa9, 0xfe, 0x29, 0x5c,
0x11, 0xa8, 0x0e, 0x02, 0x57, 0xa9, 0xb5, 0x62, 0xe3, 0xb7, 0x84, 0xb0, 0x71, 0x30, 0xc4, 0x5d,
0x4d, 0x5b, 0x7e, 0x4a, 0xae, 0x24, 0x52, 0x4c, 0x15, 0x12, 0xd6, 0xcf, 0x8d, 0x74, 0xbd, 0x14,
0xc1, 0xca, 0xc0, 0xc6, 0xf8, 0x6f, 0xc0, 0xa6, 0xf2, 0x7a, 0x60, 0x63, 0xfd, 0xda, 0x48, 0x6f,
0x24, 0x81, 0x91, 0x37, 0x53, 0x51, 0x3a, 0x87, 0xe7, 0xbb, 0x6c, 0x86, 0x01, 0xbf, 0x68, 0xab,
0x41, 0x8c, 0xf0, 0x35, 0x34, 0x73, 0x1e, 0xe1, 0xeb, 0x38, 0xa7, 0x06, 0x1a, 0x7e, 0x82, 0x33,
0x8c, 0xc4, 0x65, 0x5b, 0x0d, 0x32, 0xd9, 0xd3, 0xcc, 0x65, 0xcf, 0x13, 0x20, 0x57, 0x63, 0x94,
0x7c, 0x00, 0x55, 0x41, 0x87, 0xd2, 0x84, 0xd2, 0x0a, 0xad, 0x5d, 0x55, 0x2f, 0xef, 0x7e, 0x72,
0x7a, 0x42, 0xbd, 0xa8, 0xb7, 0x26, 0xb5, 0xff, 0xd7, 0x8b, 0xcd, 0x96, 0xe4, 0xd9, 0x09, 0x26,
0x9e, 0x60, 0x93, 0x50, 0x5c, 0xd8, 0x28, 0x63, 0xfd, 0xc9, 0x90, 0xb9, 0x3b, 0x17, 0xbb, 0xa5,
0xb6, 0x88, 0x1d, 0xb4, 0x92, 0x81, 0xd9, 0x57, 0xb3, 0xcf, 0xff, 0x03, 0x0c, 0x29, 0x77, 0x3e,
0xa7, 0xbe, 0x60, 0xae, 0x36, 0x92, 0x39, 0xa4, 0xfc, 0x27, 0x38, 0x21, 0x6b, 0x12, 0x49, 0x9e,
0x72, 0xe6, 0xa2, 0xb5, 0x16, 0xed, 0xfa, 0x90, 0xf2, 0xa7, 0x9c, 0xb9, 0x89, 0x5e, 0xf5, 0x37,
0xd0, 0xeb, 0xcf, 0x19, 0xc7, 0x4b, 0x81, 0xeb, 0x7f, 0x41, 0xb3, 0x7f, 0x1a, 0x12, 0x91, 0xf3,
0xc9, 0x8f, 0x1c, 0xc3, 0xb5, 0xc4, 0xbd, 0x9d, 0x29, 0xba, 0x7d, 0xec, 0x0f, 0x2f, 0x8f, 0x8a,
0xd5, 0xf3, 0xfc, 0x34, 0x27, 0x3f, 0x84, 0xf5, 0x42, 0x70, 0x26, 0x0b, 0x56, 0x5e, 0x1a, 0xa3,
0x37, 0xf3, 0x31, 0x1a, 0xaf, 0x17, 0xeb, 0xba, 0xf8, 0x06, 0xba, 0x7e, 0x5d, 0x96, 0x27, 0xd9,
0x94, 0x5d, 0x76, 0x5b, 0xd6, 0x2f, 0x0d, 0x68, 0x17, 0x0e, 0x43, 0xf6, 0x00, 0x54, 0xc6, 0xe3,
0xde, 0xf3, 0xb8, 0x54, 0x5e, 0xd5, 0x07, 0x47, 0x93, 0x3d, 0xf6, 0x9e, 0x33, 0xdb, 0xec, 0xc7,
0x9f, 0xe4, 0x0e, 0xd4, 0xc5, 0x4c, 0x71, 0xe7, 0x0b, 0xb9, 0x27, 0x33, 0x64, 0xad, 0x09, 0xfc,
0x27, 0x77, 0x61, 0x59, 0x2d, 0x3c, 0x0c, 0x38, 0xf7, 0x42, 0x5d, 0x44, 0x90, 0xec, 0xd2, 0x1f,
0x23, 0xc5, 0x6e, 0xf6, 0xd3, 0x81, 0xf5, 0x53, 0x30, 0x93, 0x6d, 0xc9, 0x5b, 0x60, 0x4e, 0xe8,
0x4c, 0x57, 0xb9, 0xf2, 0x6c, 0x4b, 0x76, 0x63, 0x42, 0x67, 0x58, 0xe0, 0x92, 0x75, 0xa8, 0x4b,
0xa2, 0x98, 0x29, 0x7b, 0x2f, 0xd9, 0xb5, 0x09, 0x9d, 0x3d, 0x99, 0x25, 0x84, 0x21, 0xe5, 0x71,
0x09, 0x3b, 0xa1, 0xb3, 0x8f, 0x29, 0xb7, 0x3e, 0x82, 0x9a, 0x3a, 0xe4, 0x2b, 0x2d, 0x2c, 0xe5,
0x2b, 0x39, 0xf9, 0xef, 0x41, 0x33, 0x73, 0x6e, 0xf2, 0x2d, 0xb8, 0xa9, 0x34, 0x0c, 0x69, 0x24,
0xd0, 0x22, 0xb9, 0x05, 0x09, 0x12, 0x4f, 0x68, 0x24, 0xe4, 0x96, 0xaa, 0x28, 0x7f, 0x0c, 0xad,
0x7c, 0xe1, 0x2a, 0xf3, 0x5a, 0x14, 0x4c, 0x7d, 0x57, 0x0b, 0xa9, 0x81, 0xec, 0x5a, 0xcf, 0x03,
0xe5, 0x49, 0xd9, 0x4a, 0xf5, 0x34, 0x10, 0x2c, 0x53, 0xee, 0x2a, 0x1e, 0xeb, 0x0f, 0x55, 0xa8,
0xa9, 0x2a, 0x9a, 0xdc, 0xc9, 0x34, 0x2e, 0x08, 0x91, 0xbd, 0xe6, 0xe5, 0x8b, 0xcd, 0x3a, 0xa2,
0xc9, 0xf1, 0xc3, 0xb4, 0x8b, 0x49, 0xf3, 0x66, 0x25, 0x57, 0xe4, 0xc7, 0x2d, 0xd3, 0xe2, 0x6b,
0xb7, 0x4c, 0xeb, 0x50, 0xf7, 0xa7, 0x13, 0xbc, 0x8d, 0xaa, 0x5a, 0xd2, 0x9f, 0x4e, 0xe4, 0x6d,
0xbc, 0x05, 0xa6, 0x08, 0x04, 0x1d, 0x23, 0x49, 0xc5, 0x7e, 0x03, 0x27, 0x24, 0xf1, 0x00, 0x56,
0x32, 0xa0, 0xeb, 0xb9, 0xba, 0xa2, 0x6b, 0x65, 0xbd, 0xe4, 0xf8, 0xa1, 0x56, 0xb7, 0x99, 0x80,
0xf0, 0xb1, 0x4b, 0xb6, 0xf2, 0x1d, 0x02, 0x62, 0xb5, 0x02, 0x8c, 0x4c, 0x13, 0x20, 0x91, 0x5a,
0x1e, 0x40, 0x7a, 0xbf, 0x62, 0x51, 0xe8, 0xd1, 0x90, 0x13, 0x48, 0x7c, 0x1b, 0xda, 0x29, 0xdc,
0x29, 0x16, 0x53, 0xad, 0x92, 0x4e, 0x23, 0xe3, 0x7b, 0x70, 0xc3, 0x67, 0x33, 0xe1, 0x14, 0xb9,
0x01, 0xb9, 0x89, 0xa4, 0x9d, 0xe6, 0x25, 0xbe, 0x01, 0xad, 0x34, 0x3f, 0x20, 0x6f, 0x53, 0xf5,
0x69, 0xc9, 0x2c, 0xb2, 0xdd, 0x82, 0x46, 0x52, 0x6c, 0x2c, 0x23, 0x43, 0x9d, 0xaa, 0x1a, 0x23,
0x29, 0x5f, 0x22, 0xc6, 0xa7, 0x63, 0xa1, 0x17, 0x59, 0x41, 0x1e, 0x2c, 0x5f, 0x6c, 0x35, 0x8f,
0xbc, 0x5f, 0x83, 0x15, 0xa6, 0xfb, 0x18, 0xc5, 0xd7, 0x42, 0xbe, 0xe5, 0x78, 0x12, 0x99, 0xb6,
0x61, 0x35, 0x8c, 0x82, 0x30, 0xe0, 0x2c, 0x72, 0xa8, 0xeb, 0x46, 0x8c, 0xf3, 0x4e, 0x5b, 0xad,
0x17, 0xcf, 0x1f, 0xaa, 0x69, 0xeb, 0x67, 0x50, 0xd7, 0xd6, 0x2f, 0xed, 0xe6, 0xbe, 0x0b, 0xcb,
0xd2, 0xeb, 0xb9, 0x93, 0xeb, 0xe9, 0xe2, 0x9a, 0x1a, 0x9d, 0x9e, 0x89, 0x5c, 0x6b, 0xd7, 0x44,
0x7e, 0x35, 0x65, 0xdd, 0x83, 0x95, 0x1c, 0x8f, 0x0c, 0x03, 0x74, 0x8a, 0x38, 0x0c, 0x70, 0x90,
0xec, 0x5c, 0x49, 0x77, 0xb6, 0xee, 0x83, 0x99, 0x18, 0x5a, 0x96, 0x7e, 0xb1, 0x1e, 0x86, 0xb6,
0x9d, 0x1a, 0x62, 0xbd, 0x10, 0x7c, 0xce, 0x22, 0x9d, 0x02, 0xd4, 0xc0, 0x7a, 0x0a, 0xed, 0x42,
0x7a, 0x27, 0x3b, 0x50, 0x0f, 0xa7, 0x7d, 0x27, 0x7e, 0x66, 0x48, 0xf3, 0xd9, 0xc9, 0xb4, 0xff,
0x09, 0xbb, 0x88, 0x1b, 0xd3, 0x10, 0x47, 0xe9, 0xb2, 0x95, 0xec, 0xb2, 0x63, 0x68, 0xc4, 0xa1,
0x49, 0xbe, 0x0d, 0x66, 0xe2, 0x23, 0x85, 0x7c, 0x9a, 0x6c, 0xad, 0x17, 0x4d, 0x19, 0xe5, 0x55,
0x73, 0x6f, 0xe8, 0x33, 0xd7, 0x49, 0xe3, 0x01, 0xf7, 0x68, 0xd8, 0x6d, 0x45, 0xf8, 0x34, 0x76,
0x7e, 0xeb, 0x3d, 0xa8, 0xa9, 0xb3, 0x49, 0xfb, 0xc8, 0x95, 0xe3, 0x6a, 0x58, 0x7e, 0x97, 0x26,
0xfe, 0x3f, 0x1a, 0xd0, 0x88, 0xbb, 0xdc, 0x52, 0xa1, 0xdc, 0xa1, 0x2b, 0xaf, 0x7a, 0xe8, 0x79,
0x4f, 0x05, 0x71, 0x16, 0xa9, 0xbe, 0x76, 0x16, 0xd9, 0x01, 0xa2, 0x92, 0xc5, 0x79, 0x20, 0x3c,
0x7f, 0xe8, 0x28, 0x5b, 0xab, 0xac, 0xb1, 0x8a, 0x94, 0x53, 0x24, 0x9c, 0xc8, 0xf9, 0xfd, 0x2f,
0x96, 0xa0, 0x7d, 0xd8, 0x7b, 0x70, 0x7c, 0x18, 0x86, 0x63, 0x6f, 0x40, 0xb1, 0x04, 0xdf, 0x83,
0x2a, 0x36, 0x19, 0x25, 0xcf, 0x9b, 0xdd, 0xb2, 0x6e, 0x97, 0xec, 0xc3, 0x12, 0xf6, 0x1a, 0xa4,
0xec, 0x95, 0xb3, 0x5b, 0xda, 0xf4, 0xca, 0x4d, 0x54, 0x37, 0x72, 0xf5, 0xb1, 0xb3, 0x5b, 0xd6,
0xf9, 0x92, 0x8f, 0xc0, 0x4c, 0xbb, 0x84, 0x79, 0x4f, 0x9e, 0xdd, 0xb9, 0x3d, 0xb0, 0x94, 0x4f,
0x8b, 0xb3, 0x79, 0x2f, 0x77, 0xdd, 0xb9, 0xcd, 0x22, 0x39, 0x80, 0x7a, 0x5c, 0xb4, 0x96, 0x3f,
0x4a, 0x76, 0xe7, 0xf4, 0xa7, 0xd2, 0x3c, 0xaa, 0xf0, 0x2f, 0x7b, 0x39, 0xed, 0x96, 0x36, 0xd1,
0xe4, 0x2e, 0xd4, 0x74, 0x15, 0x52, 0xfa, 0x30, 0xd9, 0x2d, 0xef, 0x32, 0xa5, 0x92, 0x69, 0xeb,
0x33, 0xef, 0x75, 0xb7, 0x3b, 0xb7, 0xdb, 0x27, 0x87, 0x00, 0x99, 0x62, 0x7f, 0xee, 0xb3, 0x6d,
0x77, 0x7e, 0x17, 0x4f, 0xee, 0x43, 0x23, 0x7d, 0x99, 0x29, 0x7f, 0x88, 0xed, 0xce, 0x6b, 0xac,
0x7b, 0xff, 0xf7, 0xef, 0xbf, 0x6d, 0x18, 0xbf, 0xba, 0xdc, 0x30, 0x7e, 0x73, 0xb9, 0x61, 0x7c,
0x75, 0xb9, 0x61, 0xfc, 0xfe, 0x72, 0xc3, 0xf8, 0xeb, 0xe5, 0x86, 0xf1, 0xdb, 0xbf, 0x6f, 0x18,
0xfd, 0x1a, 0xba, 0xff, 0xfb, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xd6, 0x32, 0xa1, 0x6a, 0x3b,
0x18, 0x00, 0x00,
} }

+ 3
- 2
abci/types/types.proto View File

@ -225,7 +225,8 @@ message BlockGossip {
} }
message LastCommitInfo { message LastCommitInfo {
repeated VoteInfo commit_votes = 1 [(gogoproto.nullable)=false];
int32 round = 1;
repeated VoteInfo votes = 2 [(gogoproto.nullable)=false];
} }
//---------------------------------------- //----------------------------------------
@ -271,6 +272,7 @@ message PartSetHeader {
// Validator // Validator
message Validator { message Validator {
bytes address = 1; bytes address = 1;
//PubKey pub_key = 2 [(gogoproto.nullable)=false];
int64 power = 3; int64 power = 3;
} }
@ -284,7 +286,6 @@ message ValidatorUpdate {
message VoteInfo { message VoteInfo {
Validator validator = 1 [(gogoproto.nullable)=false]; Validator validator = 1 [(gogoproto.nullable)=false];
bool signed_last_block = 2; bool signed_last_block = 2;
int64 commit_round = 3;
} }
message PubKey { message PubKey {


+ 13
- 15
state/execution.go View File

@ -184,15 +184,13 @@ func execBlockOnProxyApp(logger log.Logger, proxyAppConn proxy.AppConnConsensus,
} }
proxyAppConn.SetResponseCallback(proxyCb) proxyAppConn.SetResponseCallback(proxyCb)
voteInfos, byzVals := getBeginBlockValidatorInfo(block, lastValSet, stateDB)
commitInfo, byzVals := getBeginBlockValidatorInfo(block, lastValSet, stateDB)
// Begin block. // Begin block.
_, err := proxyAppConn.BeginBlockSync(abci.RequestBeginBlock{ _, err := proxyAppConn.BeginBlockSync(abci.RequestBeginBlock{
Hash: block.Hash(),
Header: types.TM2PB.Header(&block.Header),
LastCommitInfo: abci.LastCommitInfo{
CommitVotes: voteInfos,
},
Hash: block.Hash(),
Header: types.TM2PB.Header(&block.Header),
LastCommitInfo: commitInfo,
ByzantineValidators: byzVals, ByzantineValidators: byzVals,
}) })
if err != nil { if err != nil {
@ -225,7 +223,7 @@ func execBlockOnProxyApp(logger log.Logger, proxyAppConn proxy.AppConnConsensus,
return abciResponses, nil return abciResponses, nil
} }
func getBeginBlockValidatorInfo(block *types.Block, lastValSet *types.ValidatorSet, stateDB dbm.DB) ([]abci.VoteInfo, []abci.Evidence) {
func getBeginBlockValidatorInfo(block *types.Block, lastValSet *types.ValidatorSet, stateDB dbm.DB) (abci.LastCommitInfo, []abci.Evidence) {
// Sanity check that commit length matches validator set size - // Sanity check that commit length matches validator set size -
// only applies after first block // only applies after first block
@ -239,25 +237,25 @@ func getBeginBlockValidatorInfo(block *types.Block, lastValSet *types.ValidatorS
} }
} }
// determine which validators did not sign last block.
// Collect the vote info (list of validators and whether or not they signed).
voteInfos := make([]abci.VoteInfo, len(lastValSet.Validators)) voteInfos := make([]abci.VoteInfo, len(lastValSet.Validators))
for i, val := range lastValSet.Validators { for i, val := range lastValSet.Validators {
var vote *types.Vote var vote *types.Vote
var commitRound = -1
if i < len(block.LastCommit.Precommits) { if i < len(block.LastCommit.Precommits) {
vote = block.LastCommit.Precommits[i] vote = block.LastCommit.Precommits[i]
if vote != nil {
commitRound = vote.Round
}
} }
voteInfo := abci.VoteInfo{ voteInfo := abci.VoteInfo{
Validator: types.TM2PB.Validator(val), Validator: types.TM2PB.Validator(val),
SignedLastBlock: vote != nil, // XXX: should we replace with commitRound == -1 ?
CommitRound: int64(commitRound), //XXX: why is round an int?
SignedLastBlock: vote != nil,
} }
voteInfos[i] = voteInfo voteInfos[i] = voteInfo
} }
commitInfo := abci.LastCommitInfo{
Round: int32(block.LastCommit.Round()),
Votes: voteInfos,
}
byzVals := make([]abci.Evidence, len(block.Evidence.Evidence)) byzVals := make([]abci.Evidence, len(block.Evidence.Evidence))
for i, ev := range block.Evidence.Evidence { for i, ev := range block.Evidence.Evidence {
// We need the validator set. We already did this in validateBlock. // We need the validator set. We already did this in validateBlock.
@ -270,7 +268,7 @@ func getBeginBlockValidatorInfo(block *types.Block, lastValSet *types.ValidatorS
byzVals[i] = types.TM2PB.Evidence(ev, valset, block.Time) byzVals[i] = types.TM2PB.Evidence(ev, valset, block.Time)
} }
return voteInfos, byzVals
return commitInfo, byzVals
} }


+ 1
- 1
state/execution_test.go View File

@ -347,7 +347,7 @@ func (app *testApp) Info(req abci.RequestInfo) (resInfo abci.ResponseInfo) {
} }
func (app *testApp) BeginBlock(req abci.RequestBeginBlock) abci.ResponseBeginBlock { func (app *testApp) BeginBlock(req abci.RequestBeginBlock) abci.ResponseBeginBlock {
app.CommitVotes = req.LastCommitInfo.CommitVotes
app.CommitVotes = req.LastCommitInfo.Votes
app.ByzantineValidators = req.ByzantineValidators app.ByzantineValidators = req.ByzantineValidators
return abci.ResponseBeginBlock{} return abci.ResponseBeginBlock{}
} }


Loading…
Cancel
Save