github.com/adoriasoft/tendermint@v0.34.0-dev1.0.20200722151356-96d84601a75a/proto/tendermint/types/evidence.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: tendermint/types/evidence.proto
     3  
     4  package types
     5  
     6  import (
     7  	fmt "fmt"
     8  	crypto "github.com/adoriasoft/tendermint/proto/tendermint/crypto"
     9  	_ "github.com/gogo/protobuf/gogoproto"
    10  	proto "github.com/gogo/protobuf/proto"
    11  	io "io"
    12  	math "math"
    13  	math_bits "math/bits"
    14  )
    15  
    16  // Reference imports to suppress errors if they are not otherwise used.
    17  var _ = proto.Marshal
    18  var _ = fmt.Errorf
    19  var _ = math.Inf
    20  
    21  // This is a compile-time assertion to ensure that this generated file
    22  // is compatible with the proto package it is being compiled against.
    23  // A compilation error at this line likely means your copy of the
    24  // proto package needs to be updated.
    25  const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
    26  
    27  // DuplicateVoteEvidence contains evidence a validator signed two conflicting
    28  // votes.
    29  type DuplicateVoteEvidence struct {
    30  	VoteA *Vote `protobuf:"bytes,1,opt,name=vote_a,json=voteA,proto3" json:"vote_a,omitempty"`
    31  	VoteB *Vote `protobuf:"bytes,2,opt,name=vote_b,json=voteB,proto3" json:"vote_b,omitempty"`
    32  }
    33  
    34  func (m *DuplicateVoteEvidence) Reset()         { *m = DuplicateVoteEvidence{} }
    35  func (m *DuplicateVoteEvidence) String() string { return proto.CompactTextString(m) }
    36  func (*DuplicateVoteEvidence) ProtoMessage()    {}
    37  func (*DuplicateVoteEvidence) Descriptor() ([]byte, []int) {
    38  	return fileDescriptor_6825fabc78e0a168, []int{0}
    39  }
    40  func (m *DuplicateVoteEvidence) XXX_Unmarshal(b []byte) error {
    41  	return m.Unmarshal(b)
    42  }
    43  func (m *DuplicateVoteEvidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    44  	if deterministic {
    45  		return xxx_messageInfo_DuplicateVoteEvidence.Marshal(b, m, deterministic)
    46  	} else {
    47  		b = b[:cap(b)]
    48  		n, err := m.MarshalToSizedBuffer(b)
    49  		if err != nil {
    50  			return nil, err
    51  		}
    52  		return b[:n], nil
    53  	}
    54  }
    55  func (m *DuplicateVoteEvidence) XXX_Merge(src proto.Message) {
    56  	xxx_messageInfo_DuplicateVoteEvidence.Merge(m, src)
    57  }
    58  func (m *DuplicateVoteEvidence) XXX_Size() int {
    59  	return m.Size()
    60  }
    61  func (m *DuplicateVoteEvidence) XXX_DiscardUnknown() {
    62  	xxx_messageInfo_DuplicateVoteEvidence.DiscardUnknown(m)
    63  }
    64  
    65  var xxx_messageInfo_DuplicateVoteEvidence proto.InternalMessageInfo
    66  
    67  func (m *DuplicateVoteEvidence) GetVoteA() *Vote {
    68  	if m != nil {
    69  		return m.VoteA
    70  	}
    71  	return nil
    72  }
    73  
    74  func (m *DuplicateVoteEvidence) GetVoteB() *Vote {
    75  	if m != nil {
    76  		return m.VoteB
    77  	}
    78  	return nil
    79  }
    80  
    81  type PotentialAmnesiaEvidence struct {
    82  	VoteA       *Vote `protobuf:"bytes,1,opt,name=vote_a,json=voteA,proto3" json:"vote_a,omitempty"`
    83  	VoteB       *Vote `protobuf:"bytes,2,opt,name=vote_b,json=voteB,proto3" json:"vote_b,omitempty"`
    84  	HeightStamp int64 `protobuf:"varint,3,opt,name=height_stamp,json=heightStamp,proto3" json:"height_stamp,omitempty"`
    85  }
    86  
    87  func (m *PotentialAmnesiaEvidence) Reset()         { *m = PotentialAmnesiaEvidence{} }
    88  func (m *PotentialAmnesiaEvidence) String() string { return proto.CompactTextString(m) }
    89  func (*PotentialAmnesiaEvidence) ProtoMessage()    {}
    90  func (*PotentialAmnesiaEvidence) Descriptor() ([]byte, []int) {
    91  	return fileDescriptor_6825fabc78e0a168, []int{1}
    92  }
    93  func (m *PotentialAmnesiaEvidence) XXX_Unmarshal(b []byte) error {
    94  	return m.Unmarshal(b)
    95  }
    96  func (m *PotentialAmnesiaEvidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    97  	if deterministic {
    98  		return xxx_messageInfo_PotentialAmnesiaEvidence.Marshal(b, m, deterministic)
    99  	} else {
   100  		b = b[:cap(b)]
   101  		n, err := m.MarshalToSizedBuffer(b)
   102  		if err != nil {
   103  			return nil, err
   104  		}
   105  		return b[:n], nil
   106  	}
   107  }
   108  func (m *PotentialAmnesiaEvidence) XXX_Merge(src proto.Message) {
   109  	xxx_messageInfo_PotentialAmnesiaEvidence.Merge(m, src)
   110  }
   111  func (m *PotentialAmnesiaEvidence) XXX_Size() int {
   112  	return m.Size()
   113  }
   114  func (m *PotentialAmnesiaEvidence) XXX_DiscardUnknown() {
   115  	xxx_messageInfo_PotentialAmnesiaEvidence.DiscardUnknown(m)
   116  }
   117  
   118  var xxx_messageInfo_PotentialAmnesiaEvidence proto.InternalMessageInfo
   119  
   120  func (m *PotentialAmnesiaEvidence) GetVoteA() *Vote {
   121  	if m != nil {
   122  		return m.VoteA
   123  	}
   124  	return nil
   125  }
   126  
   127  func (m *PotentialAmnesiaEvidence) GetVoteB() *Vote {
   128  	if m != nil {
   129  		return m.VoteB
   130  	}
   131  	return nil
   132  }
   133  
   134  func (m *PotentialAmnesiaEvidence) GetHeightStamp() int64 {
   135  	if m != nil {
   136  		return m.HeightStamp
   137  	}
   138  	return 0
   139  }
   140  
   141  type AmnesiaEvidence struct {
   142  	PotentialAmnesiaEvidence *PotentialAmnesiaEvidence `protobuf:"bytes,1,opt,name=potential_amnesia_evidence,json=potentialAmnesiaEvidence,proto3" json:"potential_amnesia_evidence,omitempty"`
   143  	Polc                     *ProofOfLockChange        `protobuf:"bytes,2,opt,name=polc,proto3" json:"polc,omitempty"`
   144  }
   145  
   146  func (m *AmnesiaEvidence) Reset()         { *m = AmnesiaEvidence{} }
   147  func (m *AmnesiaEvidence) String() string { return proto.CompactTextString(m) }
   148  func (*AmnesiaEvidence) ProtoMessage()    {}
   149  func (*AmnesiaEvidence) Descriptor() ([]byte, []int) {
   150  	return fileDescriptor_6825fabc78e0a168, []int{2}
   151  }
   152  func (m *AmnesiaEvidence) XXX_Unmarshal(b []byte) error {
   153  	return m.Unmarshal(b)
   154  }
   155  func (m *AmnesiaEvidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   156  	if deterministic {
   157  		return xxx_messageInfo_AmnesiaEvidence.Marshal(b, m, deterministic)
   158  	} else {
   159  		b = b[:cap(b)]
   160  		n, err := m.MarshalToSizedBuffer(b)
   161  		if err != nil {
   162  			return nil, err
   163  		}
   164  		return b[:n], nil
   165  	}
   166  }
   167  func (m *AmnesiaEvidence) XXX_Merge(src proto.Message) {
   168  	xxx_messageInfo_AmnesiaEvidence.Merge(m, src)
   169  }
   170  func (m *AmnesiaEvidence) XXX_Size() int {
   171  	return m.Size()
   172  }
   173  func (m *AmnesiaEvidence) XXX_DiscardUnknown() {
   174  	xxx_messageInfo_AmnesiaEvidence.DiscardUnknown(m)
   175  }
   176  
   177  var xxx_messageInfo_AmnesiaEvidence proto.InternalMessageInfo
   178  
   179  func (m *AmnesiaEvidence) GetPotentialAmnesiaEvidence() *PotentialAmnesiaEvidence {
   180  	if m != nil {
   181  		return m.PotentialAmnesiaEvidence
   182  	}
   183  	return nil
   184  }
   185  
   186  func (m *AmnesiaEvidence) GetPolc() *ProofOfLockChange {
   187  	if m != nil {
   188  		return m.Polc
   189  	}
   190  	return nil
   191  }
   192  
   193  type ConflictingHeadersEvidence struct {
   194  	H1 *SignedHeader `protobuf:"bytes,1,opt,name=h1,proto3" json:"h1,omitempty"`
   195  	H2 *SignedHeader `protobuf:"bytes,2,opt,name=h2,proto3" json:"h2,omitempty"`
   196  }
   197  
   198  func (m *ConflictingHeadersEvidence) Reset()         { *m = ConflictingHeadersEvidence{} }
   199  func (m *ConflictingHeadersEvidence) String() string { return proto.CompactTextString(m) }
   200  func (*ConflictingHeadersEvidence) ProtoMessage()    {}
   201  func (*ConflictingHeadersEvidence) Descriptor() ([]byte, []int) {
   202  	return fileDescriptor_6825fabc78e0a168, []int{3}
   203  }
   204  func (m *ConflictingHeadersEvidence) XXX_Unmarshal(b []byte) error {
   205  	return m.Unmarshal(b)
   206  }
   207  func (m *ConflictingHeadersEvidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   208  	if deterministic {
   209  		return xxx_messageInfo_ConflictingHeadersEvidence.Marshal(b, m, deterministic)
   210  	} else {
   211  		b = b[:cap(b)]
   212  		n, err := m.MarshalToSizedBuffer(b)
   213  		if err != nil {
   214  			return nil, err
   215  		}
   216  		return b[:n], nil
   217  	}
   218  }
   219  func (m *ConflictingHeadersEvidence) XXX_Merge(src proto.Message) {
   220  	xxx_messageInfo_ConflictingHeadersEvidence.Merge(m, src)
   221  }
   222  func (m *ConflictingHeadersEvidence) XXX_Size() int {
   223  	return m.Size()
   224  }
   225  func (m *ConflictingHeadersEvidence) XXX_DiscardUnknown() {
   226  	xxx_messageInfo_ConflictingHeadersEvidence.DiscardUnknown(m)
   227  }
   228  
   229  var xxx_messageInfo_ConflictingHeadersEvidence proto.InternalMessageInfo
   230  
   231  func (m *ConflictingHeadersEvidence) GetH1() *SignedHeader {
   232  	if m != nil {
   233  		return m.H1
   234  	}
   235  	return nil
   236  }
   237  
   238  func (m *ConflictingHeadersEvidence) GetH2() *SignedHeader {
   239  	if m != nil {
   240  		return m.H2
   241  	}
   242  	return nil
   243  }
   244  
   245  type LunaticValidatorEvidence struct {
   246  	Header             *Header `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
   247  	Vote               *Vote   `protobuf:"bytes,2,opt,name=vote,proto3" json:"vote,omitempty"`
   248  	InvalidHeaderField string  `protobuf:"bytes,3,opt,name=invalid_header_field,json=invalidHeaderField,proto3" json:"invalid_header_field,omitempty"`
   249  }
   250  
   251  func (m *LunaticValidatorEvidence) Reset()         { *m = LunaticValidatorEvidence{} }
   252  func (m *LunaticValidatorEvidence) String() string { return proto.CompactTextString(m) }
   253  func (*LunaticValidatorEvidence) ProtoMessage()    {}
   254  func (*LunaticValidatorEvidence) Descriptor() ([]byte, []int) {
   255  	return fileDescriptor_6825fabc78e0a168, []int{4}
   256  }
   257  func (m *LunaticValidatorEvidence) XXX_Unmarshal(b []byte) error {
   258  	return m.Unmarshal(b)
   259  }
   260  func (m *LunaticValidatorEvidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   261  	if deterministic {
   262  		return xxx_messageInfo_LunaticValidatorEvidence.Marshal(b, m, deterministic)
   263  	} else {
   264  		b = b[:cap(b)]
   265  		n, err := m.MarshalToSizedBuffer(b)
   266  		if err != nil {
   267  			return nil, err
   268  		}
   269  		return b[:n], nil
   270  	}
   271  }
   272  func (m *LunaticValidatorEvidence) XXX_Merge(src proto.Message) {
   273  	xxx_messageInfo_LunaticValidatorEvidence.Merge(m, src)
   274  }
   275  func (m *LunaticValidatorEvidence) XXX_Size() int {
   276  	return m.Size()
   277  }
   278  func (m *LunaticValidatorEvidence) XXX_DiscardUnknown() {
   279  	xxx_messageInfo_LunaticValidatorEvidence.DiscardUnknown(m)
   280  }
   281  
   282  var xxx_messageInfo_LunaticValidatorEvidence proto.InternalMessageInfo
   283  
   284  func (m *LunaticValidatorEvidence) GetHeader() *Header {
   285  	if m != nil {
   286  		return m.Header
   287  	}
   288  	return nil
   289  }
   290  
   291  func (m *LunaticValidatorEvidence) GetVote() *Vote {
   292  	if m != nil {
   293  		return m.Vote
   294  	}
   295  	return nil
   296  }
   297  
   298  func (m *LunaticValidatorEvidence) GetInvalidHeaderField() string {
   299  	if m != nil {
   300  		return m.InvalidHeaderField
   301  	}
   302  	return ""
   303  }
   304  
   305  type PhantomValidatorEvidence struct {
   306  	Vote                        *Vote `protobuf:"bytes,1,opt,name=vote,proto3" json:"vote,omitempty"`
   307  	LastHeightValidatorWasInSet int64 `protobuf:"varint,2,opt,name=last_height_validator_was_in_set,json=lastHeightValidatorWasInSet,proto3" json:"last_height_validator_was_in_set,omitempty"`
   308  }
   309  
   310  func (m *PhantomValidatorEvidence) Reset()         { *m = PhantomValidatorEvidence{} }
   311  func (m *PhantomValidatorEvidence) String() string { return proto.CompactTextString(m) }
   312  func (*PhantomValidatorEvidence) ProtoMessage()    {}
   313  func (*PhantomValidatorEvidence) Descriptor() ([]byte, []int) {
   314  	return fileDescriptor_6825fabc78e0a168, []int{5}
   315  }
   316  func (m *PhantomValidatorEvidence) XXX_Unmarshal(b []byte) error {
   317  	return m.Unmarshal(b)
   318  }
   319  func (m *PhantomValidatorEvidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   320  	if deterministic {
   321  		return xxx_messageInfo_PhantomValidatorEvidence.Marshal(b, m, deterministic)
   322  	} else {
   323  		b = b[:cap(b)]
   324  		n, err := m.MarshalToSizedBuffer(b)
   325  		if err != nil {
   326  			return nil, err
   327  		}
   328  		return b[:n], nil
   329  	}
   330  }
   331  func (m *PhantomValidatorEvidence) XXX_Merge(src proto.Message) {
   332  	xxx_messageInfo_PhantomValidatorEvidence.Merge(m, src)
   333  }
   334  func (m *PhantomValidatorEvidence) XXX_Size() int {
   335  	return m.Size()
   336  }
   337  func (m *PhantomValidatorEvidence) XXX_DiscardUnknown() {
   338  	xxx_messageInfo_PhantomValidatorEvidence.DiscardUnknown(m)
   339  }
   340  
   341  var xxx_messageInfo_PhantomValidatorEvidence proto.InternalMessageInfo
   342  
   343  func (m *PhantomValidatorEvidence) GetVote() *Vote {
   344  	if m != nil {
   345  		return m.Vote
   346  	}
   347  	return nil
   348  }
   349  
   350  func (m *PhantomValidatorEvidence) GetLastHeightValidatorWasInSet() int64 {
   351  	if m != nil {
   352  		return m.LastHeightValidatorWasInSet
   353  	}
   354  	return 0
   355  }
   356  
   357  type Evidence struct {
   358  	// Types that are valid to be assigned to Sum:
   359  	//	*Evidence_DuplicateVoteEvidence
   360  	//	*Evidence_ConflictingHeadersEvidence
   361  	//	*Evidence_LunaticValidatorEvidence
   362  	//	*Evidence_PotentialAmnesiaEvidence
   363  	//	*Evidence_AmnesiaEvidence
   364  	//	*Evidence_PhantomValidatorEvidence
   365  	Sum isEvidence_Sum `protobuf_oneof:"sum"`
   366  }
   367  
   368  func (m *Evidence) Reset()         { *m = Evidence{} }
   369  func (m *Evidence) String() string { return proto.CompactTextString(m) }
   370  func (*Evidence) ProtoMessage()    {}
   371  func (*Evidence) Descriptor() ([]byte, []int) {
   372  	return fileDescriptor_6825fabc78e0a168, []int{6}
   373  }
   374  func (m *Evidence) XXX_Unmarshal(b []byte) error {
   375  	return m.Unmarshal(b)
   376  }
   377  func (m *Evidence) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   378  	if deterministic {
   379  		return xxx_messageInfo_Evidence.Marshal(b, m, deterministic)
   380  	} else {
   381  		b = b[:cap(b)]
   382  		n, err := m.MarshalToSizedBuffer(b)
   383  		if err != nil {
   384  			return nil, err
   385  		}
   386  		return b[:n], nil
   387  	}
   388  }
   389  func (m *Evidence) XXX_Merge(src proto.Message) {
   390  	xxx_messageInfo_Evidence.Merge(m, src)
   391  }
   392  func (m *Evidence) XXX_Size() int {
   393  	return m.Size()
   394  }
   395  func (m *Evidence) XXX_DiscardUnknown() {
   396  	xxx_messageInfo_Evidence.DiscardUnknown(m)
   397  }
   398  
   399  var xxx_messageInfo_Evidence proto.InternalMessageInfo
   400  
   401  type isEvidence_Sum interface {
   402  	isEvidence_Sum()
   403  	MarshalTo([]byte) (int, error)
   404  	Size() int
   405  }
   406  
   407  type Evidence_DuplicateVoteEvidence struct {
   408  	DuplicateVoteEvidence *DuplicateVoteEvidence `protobuf:"bytes,1,opt,name=duplicate_vote_evidence,json=duplicateVoteEvidence,proto3,oneof" json:"duplicate_vote_evidence,omitempty"`
   409  }
   410  type Evidence_ConflictingHeadersEvidence struct {
   411  	ConflictingHeadersEvidence *ConflictingHeadersEvidence `protobuf:"bytes,2,opt,name=conflicting_headers_evidence,json=conflictingHeadersEvidence,proto3,oneof" json:"conflicting_headers_evidence,omitempty"`
   412  }
   413  type Evidence_LunaticValidatorEvidence struct {
   414  	LunaticValidatorEvidence *LunaticValidatorEvidence `protobuf:"bytes,3,opt,name=lunatic_validator_evidence,json=lunaticValidatorEvidence,proto3,oneof" json:"lunatic_validator_evidence,omitempty"`
   415  }
   416  type Evidence_PotentialAmnesiaEvidence struct {
   417  	PotentialAmnesiaEvidence *PotentialAmnesiaEvidence `protobuf:"bytes,4,opt,name=potential_amnesia_evidence,json=potentialAmnesiaEvidence,proto3,oneof" json:"potential_amnesia_evidence,omitempty"`
   418  }
   419  type Evidence_AmnesiaEvidence struct {
   420  	AmnesiaEvidence *AmnesiaEvidence `protobuf:"bytes,5,opt,name=amnesia_evidence,json=amnesiaEvidence,proto3,oneof" json:"amnesia_evidence,omitempty"`
   421  }
   422  type Evidence_PhantomValidatorEvidence struct {
   423  	PhantomValidatorEvidence *PhantomValidatorEvidence `protobuf:"bytes,6,opt,name=phantom_validator_evidence,json=phantomValidatorEvidence,proto3,oneof" json:"phantom_validator_evidence,omitempty"`
   424  }
   425  
   426  func (*Evidence_DuplicateVoteEvidence) isEvidence_Sum()      {}
   427  func (*Evidence_ConflictingHeadersEvidence) isEvidence_Sum() {}
   428  func (*Evidence_LunaticValidatorEvidence) isEvidence_Sum()   {}
   429  func (*Evidence_PotentialAmnesiaEvidence) isEvidence_Sum()   {}
   430  func (*Evidence_AmnesiaEvidence) isEvidence_Sum()            {}
   431  func (*Evidence_PhantomValidatorEvidence) isEvidence_Sum()   {}
   432  
   433  func (m *Evidence) GetSum() isEvidence_Sum {
   434  	if m != nil {
   435  		return m.Sum
   436  	}
   437  	return nil
   438  }
   439  
   440  func (m *Evidence) GetDuplicateVoteEvidence() *DuplicateVoteEvidence {
   441  	if x, ok := m.GetSum().(*Evidence_DuplicateVoteEvidence); ok {
   442  		return x.DuplicateVoteEvidence
   443  	}
   444  	return nil
   445  }
   446  
   447  func (m *Evidence) GetConflictingHeadersEvidence() *ConflictingHeadersEvidence {
   448  	if x, ok := m.GetSum().(*Evidence_ConflictingHeadersEvidence); ok {
   449  		return x.ConflictingHeadersEvidence
   450  	}
   451  	return nil
   452  }
   453  
   454  func (m *Evidence) GetLunaticValidatorEvidence() *LunaticValidatorEvidence {
   455  	if x, ok := m.GetSum().(*Evidence_LunaticValidatorEvidence); ok {
   456  		return x.LunaticValidatorEvidence
   457  	}
   458  	return nil
   459  }
   460  
   461  func (m *Evidence) GetPotentialAmnesiaEvidence() *PotentialAmnesiaEvidence {
   462  	if x, ok := m.GetSum().(*Evidence_PotentialAmnesiaEvidence); ok {
   463  		return x.PotentialAmnesiaEvidence
   464  	}
   465  	return nil
   466  }
   467  
   468  func (m *Evidence) GetAmnesiaEvidence() *AmnesiaEvidence {
   469  	if x, ok := m.GetSum().(*Evidence_AmnesiaEvidence); ok {
   470  		return x.AmnesiaEvidence
   471  	}
   472  	return nil
   473  }
   474  
   475  func (m *Evidence) GetPhantomValidatorEvidence() *PhantomValidatorEvidence {
   476  	if x, ok := m.GetSum().(*Evidence_PhantomValidatorEvidence); ok {
   477  		return x.PhantomValidatorEvidence
   478  	}
   479  	return nil
   480  }
   481  
   482  // XXX_OneofWrappers is for the internal use of the proto package.
   483  func (*Evidence) XXX_OneofWrappers() []interface{} {
   484  	return []interface{}{
   485  		(*Evidence_DuplicateVoteEvidence)(nil),
   486  		(*Evidence_ConflictingHeadersEvidence)(nil),
   487  		(*Evidence_LunaticValidatorEvidence)(nil),
   488  		(*Evidence_PotentialAmnesiaEvidence)(nil),
   489  		(*Evidence_AmnesiaEvidence)(nil),
   490  		(*Evidence_PhantomValidatorEvidence)(nil),
   491  	}
   492  }
   493  
   494  // EvidenceData contains any evidence of malicious wrong-doing by validators
   495  type EvidenceData struct {
   496  	Evidence []Evidence `protobuf:"bytes,1,rep,name=evidence,proto3" json:"evidence"`
   497  	Hash     []byte     `protobuf:"bytes,2,opt,name=hash,proto3" json:"hash,omitempty"`
   498  }
   499  
   500  func (m *EvidenceData) Reset()         { *m = EvidenceData{} }
   501  func (m *EvidenceData) String() string { return proto.CompactTextString(m) }
   502  func (*EvidenceData) ProtoMessage()    {}
   503  func (*EvidenceData) Descriptor() ([]byte, []int) {
   504  	return fileDescriptor_6825fabc78e0a168, []int{7}
   505  }
   506  func (m *EvidenceData) XXX_Unmarshal(b []byte) error {
   507  	return m.Unmarshal(b)
   508  }
   509  func (m *EvidenceData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   510  	if deterministic {
   511  		return xxx_messageInfo_EvidenceData.Marshal(b, m, deterministic)
   512  	} else {
   513  		b = b[:cap(b)]
   514  		n, err := m.MarshalToSizedBuffer(b)
   515  		if err != nil {
   516  			return nil, err
   517  		}
   518  		return b[:n], nil
   519  	}
   520  }
   521  func (m *EvidenceData) XXX_Merge(src proto.Message) {
   522  	xxx_messageInfo_EvidenceData.Merge(m, src)
   523  }
   524  func (m *EvidenceData) XXX_Size() int {
   525  	return m.Size()
   526  }
   527  func (m *EvidenceData) XXX_DiscardUnknown() {
   528  	xxx_messageInfo_EvidenceData.DiscardUnknown(m)
   529  }
   530  
   531  var xxx_messageInfo_EvidenceData proto.InternalMessageInfo
   532  
   533  func (m *EvidenceData) GetEvidence() []Evidence {
   534  	if m != nil {
   535  		return m.Evidence
   536  	}
   537  	return nil
   538  }
   539  
   540  func (m *EvidenceData) GetHash() []byte {
   541  	if m != nil {
   542  		return m.Hash
   543  	}
   544  	return nil
   545  }
   546  
   547  type ProofOfLockChange struct {
   548  	Votes  []*Vote           `protobuf:"bytes,1,rep,name=votes,proto3" json:"votes,omitempty"`
   549  	PubKey *crypto.PublicKey `protobuf:"bytes,2,opt,name=pub_key,json=pubKey,proto3" json:"pub_key,omitempty"`
   550  }
   551  
   552  func (m *ProofOfLockChange) Reset()         { *m = ProofOfLockChange{} }
   553  func (m *ProofOfLockChange) String() string { return proto.CompactTextString(m) }
   554  func (*ProofOfLockChange) ProtoMessage()    {}
   555  func (*ProofOfLockChange) Descriptor() ([]byte, []int) {
   556  	return fileDescriptor_6825fabc78e0a168, []int{8}
   557  }
   558  func (m *ProofOfLockChange) XXX_Unmarshal(b []byte) error {
   559  	return m.Unmarshal(b)
   560  }
   561  func (m *ProofOfLockChange) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   562  	if deterministic {
   563  		return xxx_messageInfo_ProofOfLockChange.Marshal(b, m, deterministic)
   564  	} else {
   565  		b = b[:cap(b)]
   566  		n, err := m.MarshalToSizedBuffer(b)
   567  		if err != nil {
   568  			return nil, err
   569  		}
   570  		return b[:n], nil
   571  	}
   572  }
   573  func (m *ProofOfLockChange) XXX_Merge(src proto.Message) {
   574  	xxx_messageInfo_ProofOfLockChange.Merge(m, src)
   575  }
   576  func (m *ProofOfLockChange) XXX_Size() int {
   577  	return m.Size()
   578  }
   579  func (m *ProofOfLockChange) XXX_DiscardUnknown() {
   580  	xxx_messageInfo_ProofOfLockChange.DiscardUnknown(m)
   581  }
   582  
   583  var xxx_messageInfo_ProofOfLockChange proto.InternalMessageInfo
   584  
   585  func (m *ProofOfLockChange) GetVotes() []*Vote {
   586  	if m != nil {
   587  		return m.Votes
   588  	}
   589  	return nil
   590  }
   591  
   592  func (m *ProofOfLockChange) GetPubKey() *crypto.PublicKey {
   593  	if m != nil {
   594  		return m.PubKey
   595  	}
   596  	return nil
   597  }
   598  
   599  func init() {
   600  	proto.RegisterType((*DuplicateVoteEvidence)(nil), "tendermint.types.DuplicateVoteEvidence")
   601  	proto.RegisterType((*PotentialAmnesiaEvidence)(nil), "tendermint.types.PotentialAmnesiaEvidence")
   602  	proto.RegisterType((*AmnesiaEvidence)(nil), "tendermint.types.AmnesiaEvidence")
   603  	proto.RegisterType((*ConflictingHeadersEvidence)(nil), "tendermint.types.ConflictingHeadersEvidence")
   604  	proto.RegisterType((*LunaticValidatorEvidence)(nil), "tendermint.types.LunaticValidatorEvidence")
   605  	proto.RegisterType((*PhantomValidatorEvidence)(nil), "tendermint.types.PhantomValidatorEvidence")
   606  	proto.RegisterType((*Evidence)(nil), "tendermint.types.Evidence")
   607  	proto.RegisterType((*EvidenceData)(nil), "tendermint.types.EvidenceData")
   608  	proto.RegisterType((*ProofOfLockChange)(nil), "tendermint.types.ProofOfLockChange")
   609  }
   610  
   611  func init() { proto.RegisterFile("tendermint/types/evidence.proto", fileDescriptor_6825fabc78e0a168) }
   612  
   613  var fileDescriptor_6825fabc78e0a168 = []byte{
   614  	// 731 bytes of a gzipped FileDescriptorProto
   615  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x55, 0x4f, 0x4f, 0xd4, 0x40,
   616  	0x1c, 0xdd, 0xb2, 0xcb, 0x8a, 0x03, 0x09, 0xd8, 0x80, 0x36, 0x95, 0x14, 0xa8, 0x07, 0x09, 0xc1,
   617  	0x2e, 0xac, 0x31, 0x5c, 0xbc, 0xf0, 0xcf, 0xac, 0x81, 0x28, 0x96, 0x04, 0x13, 0x2f, 0x75, 0xb6,
   618  	0x9d, 0x6d, 0x07, 0xba, 0x33, 0x4d, 0x67, 0xba, 0xba, 0x89, 0x5f, 0xc1, 0xc4, 0xbb, 0xdf, 0xc0,
   619  	0xb3, 0x1f, 0x82, 0x23, 0x47, 0x4f, 0xc6, 0xc0, 0xb7, 0xf0, 0x64, 0x3a, 0x9d, 0x2d, 0x9b, 0xed,
   620  	0x16, 0xf4, 0xe2, 0xa5, 0x69, 0xe6, 0xf7, 0xe6, 0xbd, 0x37, 0x33, 0xef, 0x37, 0x03, 0x96, 0x38,
   621  	0x22, 0x1e, 0x8a, 0xbb, 0x98, 0xf0, 0x06, 0xef, 0x47, 0x88, 0x35, 0x50, 0x0f, 0x7b, 0x88, 0xb8,
   622  	0xc8, 0x8a, 0x62, 0xca, 0xa9, 0x3a, 0x77, 0x0d, 0xb0, 0x04, 0x40, 0x9f, 0xf7, 0xa9, 0x4f, 0x45,
   623  	0xb1, 0x91, 0xfe, 0x65, 0x38, 0x7d, 0xb1, 0x40, 0x24, 0xbe, 0x63, 0xaa, 0x6e, 0xdc, 0x8f, 0x38,
   624  	0x6d, 0x9c, 0xa1, 0xbe, 0xac, 0x9a, 0x09, 0x58, 0xd8, 0x4b, 0xa2, 0x10, 0xbb, 0x90, 0xa3, 0x13,
   625  	0xca, 0xd1, 0xbe, 0xb4, 0xa0, 0x3e, 0x01, 0xf5, 0x1e, 0xe5, 0xc8, 0x81, 0x9a, 0xb2, 0xac, 0xac,
   626  	0x4e, 0x37, 0xef, 0x5b, 0xa3, 0x6e, 0xac, 0x14, 0x6f, 0x4f, 0xa6, 0xa8, 0xed, 0x1c, 0xde, 0xd6,
   627  	0x26, 0x6e, 0x87, 0xef, 0x98, 0x5f, 0x15, 0xa0, 0x1d, 0x51, 0x8e, 0x08, 0xc7, 0x30, 0xdc, 0xee,
   628  	0x12, 0xc4, 0x30, 0xfc, 0x3f, 0xd2, 0xea, 0x0a, 0x98, 0x09, 0x10, 0xf6, 0x03, 0xee, 0x30, 0x0e,
   629  	0xbb, 0x91, 0x56, 0x5d, 0x56, 0x56, 0xab, 0xf6, 0x74, 0x36, 0x76, 0x9c, 0x0e, 0x99, 0xdf, 0x15,
   630  	0x30, 0x3b, 0x6a, 0x2a, 0x00, 0x7a, 0x34, 0x30, 0xec, 0xc0, 0xac, 0xe8, 0x0c, 0x0e, 0x4c, 0x1a,
   631  	0x5d, 0x2b, 0x2a, 0x97, 0x2d, 0xd2, 0xd6, 0xa2, 0xb2, 0xe5, 0x6f, 0x81, 0x5a, 0x44, 0x43, 0x57,
   632  	0xae, 0xe6, 0xd1, 0x18, 0xce, 0x98, 0xd2, 0xce, 0xeb, 0xce, 0x21, 0x75, 0xcf, 0x76, 0x03, 0x48,
   633  	0x7c, 0x64, 0x8b, 0x09, 0xe6, 0x27, 0xa0, 0xef, 0x52, 0xd2, 0x09, 0xb1, 0xcb, 0x31, 0xf1, 0x5b,
   634  	0x08, 0x7a, 0x28, 0x66, 0x39, 0xad, 0x05, 0x26, 0x82, 0x4d, 0x69, 0xd4, 0x28, 0x92, 0x1e, 0x63,
   635  	0x9f, 0x20, 0x2f, 0x9b, 0x64, 0x4f, 0x04, 0x9b, 0x02, 0xdf, 0x94, 0x26, 0x6e, 0xc7, 0x37, 0xcd,
   636  	0x6f, 0x0a, 0xd0, 0x0e, 0x13, 0x02, 0x39, 0x76, 0x4f, 0x60, 0x88, 0x3d, 0xc8, 0x69, 0x9c, 0x8b,
   637  	0x6f, 0x80, 0x7a, 0x20, 0xa0, 0xd2, 0x80, 0x56, 0x24, 0x94, 0x54, 0x12, 0xa7, 0xae, 0x81, 0x5a,
   638  	0x7a, 0x5e, 0xb7, 0x9c, 0xa9, 0xc0, 0xa8, 0x1b, 0x60, 0x1e, 0x93, 0x5e, 0x2a, 0xea, 0x64, 0xb3,
   639  	0x9d, 0x0e, 0x46, 0xa1, 0x27, 0x8e, 0xf6, 0xae, 0xad, 0xca, 0x5a, 0x26, 0xf0, 0x22, 0xad, 0x98,
   640  	0x9f, 0xd3, 0xfc, 0x05, 0x90, 0x70, 0xda, 0x2d, 0x9a, 0x1d, 0x48, 0x2b, 0x7f, 0x21, 0xbd, 0x0f,
   641  	0x96, 0x43, 0xc8, 0xb8, 0x23, 0x23, 0xd5, 0x1b, 0x90, 0x39, 0x1f, 0x20, 0x73, 0x30, 0x71, 0x18,
   642  	0xe2, 0x62, 0x09, 0x55, 0xfb, 0x61, 0x8a, 0x6b, 0x09, 0x58, 0x2e, 0xf9, 0x16, 0xb2, 0x97, 0xe4,
   643  	0x18, 0x71, 0xf3, 0x77, 0x0d, 0x4c, 0xe5, 0xfa, 0x10, 0x3c, 0xf0, 0x06, 0x3d, 0xe9, 0x88, 0x68,
   644  	0x8f, 0xe4, 0xec, 0x71, 0xd1, 0xd2, 0xd8, 0x26, 0x6e, 0x55, 0xec, 0x05, 0x6f, 0x6c, 0x77, 0x47,
   645  	0x60, 0xd1, 0xbd, 0x8e, 0x8a, 0xdc, 0x35, 0x76, 0xad, 0x93, 0xed, 0xfa, 0x7a, 0x51, 0xa7, 0x3c,
   646  	0x60, 0xad, 0x8a, 0xad, 0xbb, 0xe5, 0xf1, 0x3b, 0x05, 0x7a, 0x98, 0xa5, 0x63, 0x68, 0x93, 0x72,
   647  	0xbd, 0x6a, 0x59, 0xff, 0x94, 0x25, 0xaa, 0x55, 0xb1, 0xb5, 0xb0, 0x2c, 0x6d, 0xa7, 0x37, 0xf6,
   648  	0x6a, 0xed, 0x5f, 0x7b, 0x35, 0xd5, 0x2a, 0xed, 0xd6, 0x57, 0x60, 0xae, 0xa0, 0x30, 0x29, 0x14,
   649  	0x56, 0x8a, 0x0a, 0x45, 0xe2, 0x59, 0x38, 0xc2, 0x97, 0x7a, 0xcf, 0x82, 0x39, 0x6e, 0x9f, 0xea,
   650  	0xa5, 0xde, 0x4b, 0xc2, 0x2c, 0xbc, 0x97, 0xd4, 0x76, 0x26, 0x41, 0x95, 0x25, 0x5d, 0xf3, 0x3d,
   651  	0x98, 0x19, 0x0c, 0xed, 0x41, 0x0e, 0xd5, 0xe7, 0x60, 0x6a, 0x28, 0x70, 0xd5, 0xd5, 0xe9, 0xa6,
   652  	0x5e, 0x14, 0xcc, 0x49, 0x6a, 0xe7, 0x3f, 0x97, 0x2a, 0x76, 0x3e, 0x43, 0x55, 0x41, 0x2d, 0x80,
   653  	0x2c, 0x10, 0x11, 0x9a, 0xb1, 0xc5, 0xbf, 0xf9, 0x11, 0xdc, 0x2b, 0x5c, 0x5a, 0xea, 0x3a, 0x10,
   654  	0x37, 0x32, 0x93, 0x1a, 0x37, 0x5e, 0xdb, 0x4c, 0x7d, 0x06, 0xee, 0x44, 0x49, 0xdb, 0x39, 0x43,
   655  	0x7d, 0x19, 0xce, 0xc5, 0x61, 0x7c, 0xf6, 0xb0, 0x59, 0x47, 0x49, 0x3b, 0xc4, 0xee, 0x01, 0xea,
   656  	0xdb, 0xf5, 0x28, 0x69, 0x1f, 0xa0, 0xfe, 0xce, 0x9b, 0xf3, 0x4b, 0x43, 0xb9, 0xb8, 0x34, 0x94,
   657  	0x5f, 0x97, 0x86, 0xf2, 0xe5, 0xca, 0xa8, 0x5c, 0x5c, 0x19, 0x95, 0x1f, 0x57, 0x46, 0xe5, 0xdd,
   658  	0x96, 0x8f, 0x79, 0x90, 0xb4, 0x2d, 0x97, 0x76, 0x1b, 0xd0, 0xa3, 0x31, 0x86, 0x8c, 0x76, 0x78,
   659  	0x63, 0xe8, 0xb5, 0xcc, 0x1e, 0xda, 0xd1, 0xc7, 0xb5, 0x5d, 0x17, 0xe3, 0x4f, 0xff, 0x04, 0x00,
   660  	0x00, 0xff, 0xff, 0xd3, 0x1f, 0xe3, 0x19, 0xc0, 0x07, 0x00, 0x00,
   661  }
   662  
   663  func (m *DuplicateVoteEvidence) Marshal() (dAtA []byte, err error) {
   664  	size := m.Size()
   665  	dAtA = make([]byte, size)
   666  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   667  	if err != nil {
   668  		return nil, err
   669  	}
   670  	return dAtA[:n], nil
   671  }
   672  
   673  func (m *DuplicateVoteEvidence) MarshalTo(dAtA []byte) (int, error) {
   674  	size := m.Size()
   675  	return m.MarshalToSizedBuffer(dAtA[:size])
   676  }
   677  
   678  func (m *DuplicateVoteEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   679  	i := len(dAtA)
   680  	_ = i
   681  	var l int
   682  	_ = l
   683  	if m.VoteB != nil {
   684  		{
   685  			size, err := m.VoteB.MarshalToSizedBuffer(dAtA[:i])
   686  			if err != nil {
   687  				return 0, err
   688  			}
   689  			i -= size
   690  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   691  		}
   692  		i--
   693  		dAtA[i] = 0x12
   694  	}
   695  	if m.VoteA != nil {
   696  		{
   697  			size, err := m.VoteA.MarshalToSizedBuffer(dAtA[:i])
   698  			if err != nil {
   699  				return 0, err
   700  			}
   701  			i -= size
   702  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   703  		}
   704  		i--
   705  		dAtA[i] = 0xa
   706  	}
   707  	return len(dAtA) - i, nil
   708  }
   709  
   710  func (m *PotentialAmnesiaEvidence) Marshal() (dAtA []byte, err error) {
   711  	size := m.Size()
   712  	dAtA = make([]byte, size)
   713  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   714  	if err != nil {
   715  		return nil, err
   716  	}
   717  	return dAtA[:n], nil
   718  }
   719  
   720  func (m *PotentialAmnesiaEvidence) MarshalTo(dAtA []byte) (int, error) {
   721  	size := m.Size()
   722  	return m.MarshalToSizedBuffer(dAtA[:size])
   723  }
   724  
   725  func (m *PotentialAmnesiaEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   726  	i := len(dAtA)
   727  	_ = i
   728  	var l int
   729  	_ = l
   730  	if m.HeightStamp != 0 {
   731  		i = encodeVarintEvidence(dAtA, i, uint64(m.HeightStamp))
   732  		i--
   733  		dAtA[i] = 0x18
   734  	}
   735  	if m.VoteB != nil {
   736  		{
   737  			size, err := m.VoteB.MarshalToSizedBuffer(dAtA[:i])
   738  			if err != nil {
   739  				return 0, err
   740  			}
   741  			i -= size
   742  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   743  		}
   744  		i--
   745  		dAtA[i] = 0x12
   746  	}
   747  	if m.VoteA != nil {
   748  		{
   749  			size, err := m.VoteA.MarshalToSizedBuffer(dAtA[:i])
   750  			if err != nil {
   751  				return 0, err
   752  			}
   753  			i -= size
   754  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   755  		}
   756  		i--
   757  		dAtA[i] = 0xa
   758  	}
   759  	return len(dAtA) - i, nil
   760  }
   761  
   762  func (m *AmnesiaEvidence) Marshal() (dAtA []byte, err error) {
   763  	size := m.Size()
   764  	dAtA = make([]byte, size)
   765  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   766  	if err != nil {
   767  		return nil, err
   768  	}
   769  	return dAtA[:n], nil
   770  }
   771  
   772  func (m *AmnesiaEvidence) MarshalTo(dAtA []byte) (int, error) {
   773  	size := m.Size()
   774  	return m.MarshalToSizedBuffer(dAtA[:size])
   775  }
   776  
   777  func (m *AmnesiaEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   778  	i := len(dAtA)
   779  	_ = i
   780  	var l int
   781  	_ = l
   782  	if m.Polc != nil {
   783  		{
   784  			size, err := m.Polc.MarshalToSizedBuffer(dAtA[:i])
   785  			if err != nil {
   786  				return 0, err
   787  			}
   788  			i -= size
   789  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   790  		}
   791  		i--
   792  		dAtA[i] = 0x12
   793  	}
   794  	if m.PotentialAmnesiaEvidence != nil {
   795  		{
   796  			size, err := m.PotentialAmnesiaEvidence.MarshalToSizedBuffer(dAtA[:i])
   797  			if err != nil {
   798  				return 0, err
   799  			}
   800  			i -= size
   801  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   802  		}
   803  		i--
   804  		dAtA[i] = 0xa
   805  	}
   806  	return len(dAtA) - i, nil
   807  }
   808  
   809  func (m *ConflictingHeadersEvidence) Marshal() (dAtA []byte, err error) {
   810  	size := m.Size()
   811  	dAtA = make([]byte, size)
   812  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   813  	if err != nil {
   814  		return nil, err
   815  	}
   816  	return dAtA[:n], nil
   817  }
   818  
   819  func (m *ConflictingHeadersEvidence) MarshalTo(dAtA []byte) (int, error) {
   820  	size := m.Size()
   821  	return m.MarshalToSizedBuffer(dAtA[:size])
   822  }
   823  
   824  func (m *ConflictingHeadersEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   825  	i := len(dAtA)
   826  	_ = i
   827  	var l int
   828  	_ = l
   829  	if m.H2 != nil {
   830  		{
   831  			size, err := m.H2.MarshalToSizedBuffer(dAtA[:i])
   832  			if err != nil {
   833  				return 0, err
   834  			}
   835  			i -= size
   836  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   837  		}
   838  		i--
   839  		dAtA[i] = 0x12
   840  	}
   841  	if m.H1 != nil {
   842  		{
   843  			size, err := m.H1.MarshalToSizedBuffer(dAtA[:i])
   844  			if err != nil {
   845  				return 0, err
   846  			}
   847  			i -= size
   848  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   849  		}
   850  		i--
   851  		dAtA[i] = 0xa
   852  	}
   853  	return len(dAtA) - i, nil
   854  }
   855  
   856  func (m *LunaticValidatorEvidence) Marshal() (dAtA []byte, err error) {
   857  	size := m.Size()
   858  	dAtA = make([]byte, size)
   859  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   860  	if err != nil {
   861  		return nil, err
   862  	}
   863  	return dAtA[:n], nil
   864  }
   865  
   866  func (m *LunaticValidatorEvidence) MarshalTo(dAtA []byte) (int, error) {
   867  	size := m.Size()
   868  	return m.MarshalToSizedBuffer(dAtA[:size])
   869  }
   870  
   871  func (m *LunaticValidatorEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   872  	i := len(dAtA)
   873  	_ = i
   874  	var l int
   875  	_ = l
   876  	if len(m.InvalidHeaderField) > 0 {
   877  		i -= len(m.InvalidHeaderField)
   878  		copy(dAtA[i:], m.InvalidHeaderField)
   879  		i = encodeVarintEvidence(dAtA, i, uint64(len(m.InvalidHeaderField)))
   880  		i--
   881  		dAtA[i] = 0x1a
   882  	}
   883  	if m.Vote != nil {
   884  		{
   885  			size, err := m.Vote.MarshalToSizedBuffer(dAtA[:i])
   886  			if err != nil {
   887  				return 0, err
   888  			}
   889  			i -= size
   890  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   891  		}
   892  		i--
   893  		dAtA[i] = 0x12
   894  	}
   895  	if m.Header != nil {
   896  		{
   897  			size, err := m.Header.MarshalToSizedBuffer(dAtA[:i])
   898  			if err != nil {
   899  				return 0, err
   900  			}
   901  			i -= size
   902  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   903  		}
   904  		i--
   905  		dAtA[i] = 0xa
   906  	}
   907  	return len(dAtA) - i, nil
   908  }
   909  
   910  func (m *PhantomValidatorEvidence) Marshal() (dAtA []byte, err error) {
   911  	size := m.Size()
   912  	dAtA = make([]byte, size)
   913  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   914  	if err != nil {
   915  		return nil, err
   916  	}
   917  	return dAtA[:n], nil
   918  }
   919  
   920  func (m *PhantomValidatorEvidence) MarshalTo(dAtA []byte) (int, error) {
   921  	size := m.Size()
   922  	return m.MarshalToSizedBuffer(dAtA[:size])
   923  }
   924  
   925  func (m *PhantomValidatorEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   926  	i := len(dAtA)
   927  	_ = i
   928  	var l int
   929  	_ = l
   930  	if m.LastHeightValidatorWasInSet != 0 {
   931  		i = encodeVarintEvidence(dAtA, i, uint64(m.LastHeightValidatorWasInSet))
   932  		i--
   933  		dAtA[i] = 0x10
   934  	}
   935  	if m.Vote != nil {
   936  		{
   937  			size, err := m.Vote.MarshalToSizedBuffer(dAtA[:i])
   938  			if err != nil {
   939  				return 0, err
   940  			}
   941  			i -= size
   942  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   943  		}
   944  		i--
   945  		dAtA[i] = 0xa
   946  	}
   947  	return len(dAtA) - i, nil
   948  }
   949  
   950  func (m *Evidence) Marshal() (dAtA []byte, err error) {
   951  	size := m.Size()
   952  	dAtA = make([]byte, size)
   953  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   954  	if err != nil {
   955  		return nil, err
   956  	}
   957  	return dAtA[:n], nil
   958  }
   959  
   960  func (m *Evidence) MarshalTo(dAtA []byte) (int, error) {
   961  	size := m.Size()
   962  	return m.MarshalToSizedBuffer(dAtA[:size])
   963  }
   964  
   965  func (m *Evidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   966  	i := len(dAtA)
   967  	_ = i
   968  	var l int
   969  	_ = l
   970  	if m.Sum != nil {
   971  		{
   972  			size := m.Sum.Size()
   973  			i -= size
   974  			if _, err := m.Sum.MarshalTo(dAtA[i:]); err != nil {
   975  				return 0, err
   976  			}
   977  		}
   978  	}
   979  	return len(dAtA) - i, nil
   980  }
   981  
   982  func (m *Evidence_DuplicateVoteEvidence) MarshalTo(dAtA []byte) (int, error) {
   983  	size := m.Size()
   984  	return m.MarshalToSizedBuffer(dAtA[:size])
   985  }
   986  
   987  func (m *Evidence_DuplicateVoteEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   988  	i := len(dAtA)
   989  	if m.DuplicateVoteEvidence != nil {
   990  		{
   991  			size, err := m.DuplicateVoteEvidence.MarshalToSizedBuffer(dAtA[:i])
   992  			if err != nil {
   993  				return 0, err
   994  			}
   995  			i -= size
   996  			i = encodeVarintEvidence(dAtA, i, uint64(size))
   997  		}
   998  		i--
   999  		dAtA[i] = 0xa
  1000  	}
  1001  	return len(dAtA) - i, nil
  1002  }
  1003  func (m *Evidence_ConflictingHeadersEvidence) MarshalTo(dAtA []byte) (int, error) {
  1004  	size := m.Size()
  1005  	return m.MarshalToSizedBuffer(dAtA[:size])
  1006  }
  1007  
  1008  func (m *Evidence_ConflictingHeadersEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1009  	i := len(dAtA)
  1010  	if m.ConflictingHeadersEvidence != nil {
  1011  		{
  1012  			size, err := m.ConflictingHeadersEvidence.MarshalToSizedBuffer(dAtA[:i])
  1013  			if err != nil {
  1014  				return 0, err
  1015  			}
  1016  			i -= size
  1017  			i = encodeVarintEvidence(dAtA, i, uint64(size))
  1018  		}
  1019  		i--
  1020  		dAtA[i] = 0x12
  1021  	}
  1022  	return len(dAtA) - i, nil
  1023  }
  1024  func (m *Evidence_LunaticValidatorEvidence) MarshalTo(dAtA []byte) (int, error) {
  1025  	size := m.Size()
  1026  	return m.MarshalToSizedBuffer(dAtA[:size])
  1027  }
  1028  
  1029  func (m *Evidence_LunaticValidatorEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1030  	i := len(dAtA)
  1031  	if m.LunaticValidatorEvidence != nil {
  1032  		{
  1033  			size, err := m.LunaticValidatorEvidence.MarshalToSizedBuffer(dAtA[:i])
  1034  			if err != nil {
  1035  				return 0, err
  1036  			}
  1037  			i -= size
  1038  			i = encodeVarintEvidence(dAtA, i, uint64(size))
  1039  		}
  1040  		i--
  1041  		dAtA[i] = 0x1a
  1042  	}
  1043  	return len(dAtA) - i, nil
  1044  }
  1045  func (m *Evidence_PotentialAmnesiaEvidence) MarshalTo(dAtA []byte) (int, error) {
  1046  	size := m.Size()
  1047  	return m.MarshalToSizedBuffer(dAtA[:size])
  1048  }
  1049  
  1050  func (m *Evidence_PotentialAmnesiaEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1051  	i := len(dAtA)
  1052  	if m.PotentialAmnesiaEvidence != nil {
  1053  		{
  1054  			size, err := m.PotentialAmnesiaEvidence.MarshalToSizedBuffer(dAtA[:i])
  1055  			if err != nil {
  1056  				return 0, err
  1057  			}
  1058  			i -= size
  1059  			i = encodeVarintEvidence(dAtA, i, uint64(size))
  1060  		}
  1061  		i--
  1062  		dAtA[i] = 0x22
  1063  	}
  1064  	return len(dAtA) - i, nil
  1065  }
  1066  func (m *Evidence_AmnesiaEvidence) MarshalTo(dAtA []byte) (int, error) {
  1067  	size := m.Size()
  1068  	return m.MarshalToSizedBuffer(dAtA[:size])
  1069  }
  1070  
  1071  func (m *Evidence_AmnesiaEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1072  	i := len(dAtA)
  1073  	if m.AmnesiaEvidence != nil {
  1074  		{
  1075  			size, err := m.AmnesiaEvidence.MarshalToSizedBuffer(dAtA[:i])
  1076  			if err != nil {
  1077  				return 0, err
  1078  			}
  1079  			i -= size
  1080  			i = encodeVarintEvidence(dAtA, i, uint64(size))
  1081  		}
  1082  		i--
  1083  		dAtA[i] = 0x2a
  1084  	}
  1085  	return len(dAtA) - i, nil
  1086  }
  1087  func (m *Evidence_PhantomValidatorEvidence) MarshalTo(dAtA []byte) (int, error) {
  1088  	size := m.Size()
  1089  	return m.MarshalToSizedBuffer(dAtA[:size])
  1090  }
  1091  
  1092  func (m *Evidence_PhantomValidatorEvidence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1093  	i := len(dAtA)
  1094  	if m.PhantomValidatorEvidence != nil {
  1095  		{
  1096  			size, err := m.PhantomValidatorEvidence.MarshalToSizedBuffer(dAtA[:i])
  1097  			if err != nil {
  1098  				return 0, err
  1099  			}
  1100  			i -= size
  1101  			i = encodeVarintEvidence(dAtA, i, uint64(size))
  1102  		}
  1103  		i--
  1104  		dAtA[i] = 0x32
  1105  	}
  1106  	return len(dAtA) - i, nil
  1107  }
  1108  func (m *EvidenceData) Marshal() (dAtA []byte, err error) {
  1109  	size := m.Size()
  1110  	dAtA = make([]byte, size)
  1111  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1112  	if err != nil {
  1113  		return nil, err
  1114  	}
  1115  	return dAtA[:n], nil
  1116  }
  1117  
  1118  func (m *EvidenceData) MarshalTo(dAtA []byte) (int, error) {
  1119  	size := m.Size()
  1120  	return m.MarshalToSizedBuffer(dAtA[:size])
  1121  }
  1122  
  1123  func (m *EvidenceData) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1124  	i := len(dAtA)
  1125  	_ = i
  1126  	var l int
  1127  	_ = l
  1128  	if len(m.Hash) > 0 {
  1129  		i -= len(m.Hash)
  1130  		copy(dAtA[i:], m.Hash)
  1131  		i = encodeVarintEvidence(dAtA, i, uint64(len(m.Hash)))
  1132  		i--
  1133  		dAtA[i] = 0x12
  1134  	}
  1135  	if len(m.Evidence) > 0 {
  1136  		for iNdEx := len(m.Evidence) - 1; iNdEx >= 0; iNdEx-- {
  1137  			{
  1138  				size, err := m.Evidence[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  1139  				if err != nil {
  1140  					return 0, err
  1141  				}
  1142  				i -= size
  1143  				i = encodeVarintEvidence(dAtA, i, uint64(size))
  1144  			}
  1145  			i--
  1146  			dAtA[i] = 0xa
  1147  		}
  1148  	}
  1149  	return len(dAtA) - i, nil
  1150  }
  1151  
  1152  func (m *ProofOfLockChange) Marshal() (dAtA []byte, err error) {
  1153  	size := m.Size()
  1154  	dAtA = make([]byte, size)
  1155  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1156  	if err != nil {
  1157  		return nil, err
  1158  	}
  1159  	return dAtA[:n], nil
  1160  }
  1161  
  1162  func (m *ProofOfLockChange) MarshalTo(dAtA []byte) (int, error) {
  1163  	size := m.Size()
  1164  	return m.MarshalToSizedBuffer(dAtA[:size])
  1165  }
  1166  
  1167  func (m *ProofOfLockChange) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1168  	i := len(dAtA)
  1169  	_ = i
  1170  	var l int
  1171  	_ = l
  1172  	if m.PubKey != nil {
  1173  		{
  1174  			size, err := m.PubKey.MarshalToSizedBuffer(dAtA[:i])
  1175  			if err != nil {
  1176  				return 0, err
  1177  			}
  1178  			i -= size
  1179  			i = encodeVarintEvidence(dAtA, i, uint64(size))
  1180  		}
  1181  		i--
  1182  		dAtA[i] = 0x12
  1183  	}
  1184  	if len(m.Votes) > 0 {
  1185  		for iNdEx := len(m.Votes) - 1; iNdEx >= 0; iNdEx-- {
  1186  			{
  1187  				size, err := m.Votes[iNdEx].MarshalToSizedBuffer(dAtA[:i])
  1188  				if err != nil {
  1189  					return 0, err
  1190  				}
  1191  				i -= size
  1192  				i = encodeVarintEvidence(dAtA, i, uint64(size))
  1193  			}
  1194  			i--
  1195  			dAtA[i] = 0xa
  1196  		}
  1197  	}
  1198  	return len(dAtA) - i, nil
  1199  }
  1200  
  1201  func encodeVarintEvidence(dAtA []byte, offset int, v uint64) int {
  1202  	offset -= sovEvidence(v)
  1203  	base := offset
  1204  	for v >= 1<<7 {
  1205  		dAtA[offset] = uint8(v&0x7f | 0x80)
  1206  		v >>= 7
  1207  		offset++
  1208  	}
  1209  	dAtA[offset] = uint8(v)
  1210  	return base
  1211  }
  1212  func (m *DuplicateVoteEvidence) Size() (n int) {
  1213  	if m == nil {
  1214  		return 0
  1215  	}
  1216  	var l int
  1217  	_ = l
  1218  	if m.VoteA != nil {
  1219  		l = m.VoteA.Size()
  1220  		n += 1 + l + sovEvidence(uint64(l))
  1221  	}
  1222  	if m.VoteB != nil {
  1223  		l = m.VoteB.Size()
  1224  		n += 1 + l + sovEvidence(uint64(l))
  1225  	}
  1226  	return n
  1227  }
  1228  
  1229  func (m *PotentialAmnesiaEvidence) Size() (n int) {
  1230  	if m == nil {
  1231  		return 0
  1232  	}
  1233  	var l int
  1234  	_ = l
  1235  	if m.VoteA != nil {
  1236  		l = m.VoteA.Size()
  1237  		n += 1 + l + sovEvidence(uint64(l))
  1238  	}
  1239  	if m.VoteB != nil {
  1240  		l = m.VoteB.Size()
  1241  		n += 1 + l + sovEvidence(uint64(l))
  1242  	}
  1243  	if m.HeightStamp != 0 {
  1244  		n += 1 + sovEvidence(uint64(m.HeightStamp))
  1245  	}
  1246  	return n
  1247  }
  1248  
  1249  func (m *AmnesiaEvidence) Size() (n int) {
  1250  	if m == nil {
  1251  		return 0
  1252  	}
  1253  	var l int
  1254  	_ = l
  1255  	if m.PotentialAmnesiaEvidence != nil {
  1256  		l = m.PotentialAmnesiaEvidence.Size()
  1257  		n += 1 + l + sovEvidence(uint64(l))
  1258  	}
  1259  	if m.Polc != nil {
  1260  		l = m.Polc.Size()
  1261  		n += 1 + l + sovEvidence(uint64(l))
  1262  	}
  1263  	return n
  1264  }
  1265  
  1266  func (m *ConflictingHeadersEvidence) Size() (n int) {
  1267  	if m == nil {
  1268  		return 0
  1269  	}
  1270  	var l int
  1271  	_ = l
  1272  	if m.H1 != nil {
  1273  		l = m.H1.Size()
  1274  		n += 1 + l + sovEvidence(uint64(l))
  1275  	}
  1276  	if m.H2 != nil {
  1277  		l = m.H2.Size()
  1278  		n += 1 + l + sovEvidence(uint64(l))
  1279  	}
  1280  	return n
  1281  }
  1282  
  1283  func (m *LunaticValidatorEvidence) Size() (n int) {
  1284  	if m == nil {
  1285  		return 0
  1286  	}
  1287  	var l int
  1288  	_ = l
  1289  	if m.Header != nil {
  1290  		l = m.Header.Size()
  1291  		n += 1 + l + sovEvidence(uint64(l))
  1292  	}
  1293  	if m.Vote != nil {
  1294  		l = m.Vote.Size()
  1295  		n += 1 + l + sovEvidence(uint64(l))
  1296  	}
  1297  	l = len(m.InvalidHeaderField)
  1298  	if l > 0 {
  1299  		n += 1 + l + sovEvidence(uint64(l))
  1300  	}
  1301  	return n
  1302  }
  1303  
  1304  func (m *PhantomValidatorEvidence) Size() (n int) {
  1305  	if m == nil {
  1306  		return 0
  1307  	}
  1308  	var l int
  1309  	_ = l
  1310  	if m.Vote != nil {
  1311  		l = m.Vote.Size()
  1312  		n += 1 + l + sovEvidence(uint64(l))
  1313  	}
  1314  	if m.LastHeightValidatorWasInSet != 0 {
  1315  		n += 1 + sovEvidence(uint64(m.LastHeightValidatorWasInSet))
  1316  	}
  1317  	return n
  1318  }
  1319  
  1320  func (m *Evidence) Size() (n int) {
  1321  	if m == nil {
  1322  		return 0
  1323  	}
  1324  	var l int
  1325  	_ = l
  1326  	if m.Sum != nil {
  1327  		n += m.Sum.Size()
  1328  	}
  1329  	return n
  1330  }
  1331  
  1332  func (m *Evidence_DuplicateVoteEvidence) Size() (n int) {
  1333  	if m == nil {
  1334  		return 0
  1335  	}
  1336  	var l int
  1337  	_ = l
  1338  	if m.DuplicateVoteEvidence != nil {
  1339  		l = m.DuplicateVoteEvidence.Size()
  1340  		n += 1 + l + sovEvidence(uint64(l))
  1341  	}
  1342  	return n
  1343  }
  1344  func (m *Evidence_ConflictingHeadersEvidence) Size() (n int) {
  1345  	if m == nil {
  1346  		return 0
  1347  	}
  1348  	var l int
  1349  	_ = l
  1350  	if m.ConflictingHeadersEvidence != nil {
  1351  		l = m.ConflictingHeadersEvidence.Size()
  1352  		n += 1 + l + sovEvidence(uint64(l))
  1353  	}
  1354  	return n
  1355  }
  1356  func (m *Evidence_LunaticValidatorEvidence) Size() (n int) {
  1357  	if m == nil {
  1358  		return 0
  1359  	}
  1360  	var l int
  1361  	_ = l
  1362  	if m.LunaticValidatorEvidence != nil {
  1363  		l = m.LunaticValidatorEvidence.Size()
  1364  		n += 1 + l + sovEvidence(uint64(l))
  1365  	}
  1366  	return n
  1367  }
  1368  func (m *Evidence_PotentialAmnesiaEvidence) Size() (n int) {
  1369  	if m == nil {
  1370  		return 0
  1371  	}
  1372  	var l int
  1373  	_ = l
  1374  	if m.PotentialAmnesiaEvidence != nil {
  1375  		l = m.PotentialAmnesiaEvidence.Size()
  1376  		n += 1 + l + sovEvidence(uint64(l))
  1377  	}
  1378  	return n
  1379  }
  1380  func (m *Evidence_AmnesiaEvidence) Size() (n int) {
  1381  	if m == nil {
  1382  		return 0
  1383  	}
  1384  	var l int
  1385  	_ = l
  1386  	if m.AmnesiaEvidence != nil {
  1387  		l = m.AmnesiaEvidence.Size()
  1388  		n += 1 + l + sovEvidence(uint64(l))
  1389  	}
  1390  	return n
  1391  }
  1392  func (m *Evidence_PhantomValidatorEvidence) Size() (n int) {
  1393  	if m == nil {
  1394  		return 0
  1395  	}
  1396  	var l int
  1397  	_ = l
  1398  	if m.PhantomValidatorEvidence != nil {
  1399  		l = m.PhantomValidatorEvidence.Size()
  1400  		n += 1 + l + sovEvidence(uint64(l))
  1401  	}
  1402  	return n
  1403  }
  1404  func (m *EvidenceData) Size() (n int) {
  1405  	if m == nil {
  1406  		return 0
  1407  	}
  1408  	var l int
  1409  	_ = l
  1410  	if len(m.Evidence) > 0 {
  1411  		for _, e := range m.Evidence {
  1412  			l = e.Size()
  1413  			n += 1 + l + sovEvidence(uint64(l))
  1414  		}
  1415  	}
  1416  	l = len(m.Hash)
  1417  	if l > 0 {
  1418  		n += 1 + l + sovEvidence(uint64(l))
  1419  	}
  1420  	return n
  1421  }
  1422  
  1423  func (m *ProofOfLockChange) Size() (n int) {
  1424  	if m == nil {
  1425  		return 0
  1426  	}
  1427  	var l int
  1428  	_ = l
  1429  	if len(m.Votes) > 0 {
  1430  		for _, e := range m.Votes {
  1431  			l = e.Size()
  1432  			n += 1 + l + sovEvidence(uint64(l))
  1433  		}
  1434  	}
  1435  	if m.PubKey != nil {
  1436  		l = m.PubKey.Size()
  1437  		n += 1 + l + sovEvidence(uint64(l))
  1438  	}
  1439  	return n
  1440  }
  1441  
  1442  func sovEvidence(x uint64) (n int) {
  1443  	return (math_bits.Len64(x|1) + 6) / 7
  1444  }
  1445  func sozEvidence(x uint64) (n int) {
  1446  	return sovEvidence(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  1447  }
  1448  func (m *DuplicateVoteEvidence) Unmarshal(dAtA []byte) error {
  1449  	l := len(dAtA)
  1450  	iNdEx := 0
  1451  	for iNdEx < l {
  1452  		preIndex := iNdEx
  1453  		var wire uint64
  1454  		for shift := uint(0); ; shift += 7 {
  1455  			if shift >= 64 {
  1456  				return ErrIntOverflowEvidence
  1457  			}
  1458  			if iNdEx >= l {
  1459  				return io.ErrUnexpectedEOF
  1460  			}
  1461  			b := dAtA[iNdEx]
  1462  			iNdEx++
  1463  			wire |= uint64(b&0x7F) << shift
  1464  			if b < 0x80 {
  1465  				break
  1466  			}
  1467  		}
  1468  		fieldNum := int32(wire >> 3)
  1469  		wireType := int(wire & 0x7)
  1470  		if wireType == 4 {
  1471  			return fmt.Errorf("proto: DuplicateVoteEvidence: wiretype end group for non-group")
  1472  		}
  1473  		if fieldNum <= 0 {
  1474  			return fmt.Errorf("proto: DuplicateVoteEvidence: illegal tag %d (wire type %d)", fieldNum, wire)
  1475  		}
  1476  		switch fieldNum {
  1477  		case 1:
  1478  			if wireType != 2 {
  1479  				return fmt.Errorf("proto: wrong wireType = %d for field VoteA", wireType)
  1480  			}
  1481  			var msglen int
  1482  			for shift := uint(0); ; shift += 7 {
  1483  				if shift >= 64 {
  1484  					return ErrIntOverflowEvidence
  1485  				}
  1486  				if iNdEx >= l {
  1487  					return io.ErrUnexpectedEOF
  1488  				}
  1489  				b := dAtA[iNdEx]
  1490  				iNdEx++
  1491  				msglen |= int(b&0x7F) << shift
  1492  				if b < 0x80 {
  1493  					break
  1494  				}
  1495  			}
  1496  			if msglen < 0 {
  1497  				return ErrInvalidLengthEvidence
  1498  			}
  1499  			postIndex := iNdEx + msglen
  1500  			if postIndex < 0 {
  1501  				return ErrInvalidLengthEvidence
  1502  			}
  1503  			if postIndex > l {
  1504  				return io.ErrUnexpectedEOF
  1505  			}
  1506  			if m.VoteA == nil {
  1507  				m.VoteA = &Vote{}
  1508  			}
  1509  			if err := m.VoteA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1510  				return err
  1511  			}
  1512  			iNdEx = postIndex
  1513  		case 2:
  1514  			if wireType != 2 {
  1515  				return fmt.Errorf("proto: wrong wireType = %d for field VoteB", wireType)
  1516  			}
  1517  			var msglen int
  1518  			for shift := uint(0); ; shift += 7 {
  1519  				if shift >= 64 {
  1520  					return ErrIntOverflowEvidence
  1521  				}
  1522  				if iNdEx >= l {
  1523  					return io.ErrUnexpectedEOF
  1524  				}
  1525  				b := dAtA[iNdEx]
  1526  				iNdEx++
  1527  				msglen |= int(b&0x7F) << shift
  1528  				if b < 0x80 {
  1529  					break
  1530  				}
  1531  			}
  1532  			if msglen < 0 {
  1533  				return ErrInvalidLengthEvidence
  1534  			}
  1535  			postIndex := iNdEx + msglen
  1536  			if postIndex < 0 {
  1537  				return ErrInvalidLengthEvidence
  1538  			}
  1539  			if postIndex > l {
  1540  				return io.ErrUnexpectedEOF
  1541  			}
  1542  			if m.VoteB == nil {
  1543  				m.VoteB = &Vote{}
  1544  			}
  1545  			if err := m.VoteB.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1546  				return err
  1547  			}
  1548  			iNdEx = postIndex
  1549  		default:
  1550  			iNdEx = preIndex
  1551  			skippy, err := skipEvidence(dAtA[iNdEx:])
  1552  			if err != nil {
  1553  				return err
  1554  			}
  1555  			if skippy < 0 {
  1556  				return ErrInvalidLengthEvidence
  1557  			}
  1558  			if (iNdEx + skippy) < 0 {
  1559  				return ErrInvalidLengthEvidence
  1560  			}
  1561  			if (iNdEx + skippy) > l {
  1562  				return io.ErrUnexpectedEOF
  1563  			}
  1564  			iNdEx += skippy
  1565  		}
  1566  	}
  1567  
  1568  	if iNdEx > l {
  1569  		return io.ErrUnexpectedEOF
  1570  	}
  1571  	return nil
  1572  }
  1573  func (m *PotentialAmnesiaEvidence) Unmarshal(dAtA []byte) error {
  1574  	l := len(dAtA)
  1575  	iNdEx := 0
  1576  	for iNdEx < l {
  1577  		preIndex := iNdEx
  1578  		var wire uint64
  1579  		for shift := uint(0); ; shift += 7 {
  1580  			if shift >= 64 {
  1581  				return ErrIntOverflowEvidence
  1582  			}
  1583  			if iNdEx >= l {
  1584  				return io.ErrUnexpectedEOF
  1585  			}
  1586  			b := dAtA[iNdEx]
  1587  			iNdEx++
  1588  			wire |= uint64(b&0x7F) << shift
  1589  			if b < 0x80 {
  1590  				break
  1591  			}
  1592  		}
  1593  		fieldNum := int32(wire >> 3)
  1594  		wireType := int(wire & 0x7)
  1595  		if wireType == 4 {
  1596  			return fmt.Errorf("proto: PotentialAmnesiaEvidence: wiretype end group for non-group")
  1597  		}
  1598  		if fieldNum <= 0 {
  1599  			return fmt.Errorf("proto: PotentialAmnesiaEvidence: illegal tag %d (wire type %d)", fieldNum, wire)
  1600  		}
  1601  		switch fieldNum {
  1602  		case 1:
  1603  			if wireType != 2 {
  1604  				return fmt.Errorf("proto: wrong wireType = %d for field VoteA", wireType)
  1605  			}
  1606  			var msglen int
  1607  			for shift := uint(0); ; shift += 7 {
  1608  				if shift >= 64 {
  1609  					return ErrIntOverflowEvidence
  1610  				}
  1611  				if iNdEx >= l {
  1612  					return io.ErrUnexpectedEOF
  1613  				}
  1614  				b := dAtA[iNdEx]
  1615  				iNdEx++
  1616  				msglen |= int(b&0x7F) << shift
  1617  				if b < 0x80 {
  1618  					break
  1619  				}
  1620  			}
  1621  			if msglen < 0 {
  1622  				return ErrInvalidLengthEvidence
  1623  			}
  1624  			postIndex := iNdEx + msglen
  1625  			if postIndex < 0 {
  1626  				return ErrInvalidLengthEvidence
  1627  			}
  1628  			if postIndex > l {
  1629  				return io.ErrUnexpectedEOF
  1630  			}
  1631  			if m.VoteA == nil {
  1632  				m.VoteA = &Vote{}
  1633  			}
  1634  			if err := m.VoteA.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1635  				return err
  1636  			}
  1637  			iNdEx = postIndex
  1638  		case 2:
  1639  			if wireType != 2 {
  1640  				return fmt.Errorf("proto: wrong wireType = %d for field VoteB", wireType)
  1641  			}
  1642  			var msglen int
  1643  			for shift := uint(0); ; shift += 7 {
  1644  				if shift >= 64 {
  1645  					return ErrIntOverflowEvidence
  1646  				}
  1647  				if iNdEx >= l {
  1648  					return io.ErrUnexpectedEOF
  1649  				}
  1650  				b := dAtA[iNdEx]
  1651  				iNdEx++
  1652  				msglen |= int(b&0x7F) << shift
  1653  				if b < 0x80 {
  1654  					break
  1655  				}
  1656  			}
  1657  			if msglen < 0 {
  1658  				return ErrInvalidLengthEvidence
  1659  			}
  1660  			postIndex := iNdEx + msglen
  1661  			if postIndex < 0 {
  1662  				return ErrInvalidLengthEvidence
  1663  			}
  1664  			if postIndex > l {
  1665  				return io.ErrUnexpectedEOF
  1666  			}
  1667  			if m.VoteB == nil {
  1668  				m.VoteB = &Vote{}
  1669  			}
  1670  			if err := m.VoteB.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1671  				return err
  1672  			}
  1673  			iNdEx = postIndex
  1674  		case 3:
  1675  			if wireType != 0 {
  1676  				return fmt.Errorf("proto: wrong wireType = %d for field HeightStamp", wireType)
  1677  			}
  1678  			m.HeightStamp = 0
  1679  			for shift := uint(0); ; shift += 7 {
  1680  				if shift >= 64 {
  1681  					return ErrIntOverflowEvidence
  1682  				}
  1683  				if iNdEx >= l {
  1684  					return io.ErrUnexpectedEOF
  1685  				}
  1686  				b := dAtA[iNdEx]
  1687  				iNdEx++
  1688  				m.HeightStamp |= int64(b&0x7F) << shift
  1689  				if b < 0x80 {
  1690  					break
  1691  				}
  1692  			}
  1693  		default:
  1694  			iNdEx = preIndex
  1695  			skippy, err := skipEvidence(dAtA[iNdEx:])
  1696  			if err != nil {
  1697  				return err
  1698  			}
  1699  			if skippy < 0 {
  1700  				return ErrInvalidLengthEvidence
  1701  			}
  1702  			if (iNdEx + skippy) < 0 {
  1703  				return ErrInvalidLengthEvidence
  1704  			}
  1705  			if (iNdEx + skippy) > l {
  1706  				return io.ErrUnexpectedEOF
  1707  			}
  1708  			iNdEx += skippy
  1709  		}
  1710  	}
  1711  
  1712  	if iNdEx > l {
  1713  		return io.ErrUnexpectedEOF
  1714  	}
  1715  	return nil
  1716  }
  1717  func (m *AmnesiaEvidence) Unmarshal(dAtA []byte) error {
  1718  	l := len(dAtA)
  1719  	iNdEx := 0
  1720  	for iNdEx < l {
  1721  		preIndex := iNdEx
  1722  		var wire uint64
  1723  		for shift := uint(0); ; shift += 7 {
  1724  			if shift >= 64 {
  1725  				return ErrIntOverflowEvidence
  1726  			}
  1727  			if iNdEx >= l {
  1728  				return io.ErrUnexpectedEOF
  1729  			}
  1730  			b := dAtA[iNdEx]
  1731  			iNdEx++
  1732  			wire |= uint64(b&0x7F) << shift
  1733  			if b < 0x80 {
  1734  				break
  1735  			}
  1736  		}
  1737  		fieldNum := int32(wire >> 3)
  1738  		wireType := int(wire & 0x7)
  1739  		if wireType == 4 {
  1740  			return fmt.Errorf("proto: AmnesiaEvidence: wiretype end group for non-group")
  1741  		}
  1742  		if fieldNum <= 0 {
  1743  			return fmt.Errorf("proto: AmnesiaEvidence: illegal tag %d (wire type %d)", fieldNum, wire)
  1744  		}
  1745  		switch fieldNum {
  1746  		case 1:
  1747  			if wireType != 2 {
  1748  				return fmt.Errorf("proto: wrong wireType = %d for field PotentialAmnesiaEvidence", wireType)
  1749  			}
  1750  			var msglen int
  1751  			for shift := uint(0); ; shift += 7 {
  1752  				if shift >= 64 {
  1753  					return ErrIntOverflowEvidence
  1754  				}
  1755  				if iNdEx >= l {
  1756  					return io.ErrUnexpectedEOF
  1757  				}
  1758  				b := dAtA[iNdEx]
  1759  				iNdEx++
  1760  				msglen |= int(b&0x7F) << shift
  1761  				if b < 0x80 {
  1762  					break
  1763  				}
  1764  			}
  1765  			if msglen < 0 {
  1766  				return ErrInvalidLengthEvidence
  1767  			}
  1768  			postIndex := iNdEx + msglen
  1769  			if postIndex < 0 {
  1770  				return ErrInvalidLengthEvidence
  1771  			}
  1772  			if postIndex > l {
  1773  				return io.ErrUnexpectedEOF
  1774  			}
  1775  			if m.PotentialAmnesiaEvidence == nil {
  1776  				m.PotentialAmnesiaEvidence = &PotentialAmnesiaEvidence{}
  1777  			}
  1778  			if err := m.PotentialAmnesiaEvidence.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1779  				return err
  1780  			}
  1781  			iNdEx = postIndex
  1782  		case 2:
  1783  			if wireType != 2 {
  1784  				return fmt.Errorf("proto: wrong wireType = %d for field Polc", wireType)
  1785  			}
  1786  			var msglen int
  1787  			for shift := uint(0); ; shift += 7 {
  1788  				if shift >= 64 {
  1789  					return ErrIntOverflowEvidence
  1790  				}
  1791  				if iNdEx >= l {
  1792  					return io.ErrUnexpectedEOF
  1793  				}
  1794  				b := dAtA[iNdEx]
  1795  				iNdEx++
  1796  				msglen |= int(b&0x7F) << shift
  1797  				if b < 0x80 {
  1798  					break
  1799  				}
  1800  			}
  1801  			if msglen < 0 {
  1802  				return ErrInvalidLengthEvidence
  1803  			}
  1804  			postIndex := iNdEx + msglen
  1805  			if postIndex < 0 {
  1806  				return ErrInvalidLengthEvidence
  1807  			}
  1808  			if postIndex > l {
  1809  				return io.ErrUnexpectedEOF
  1810  			}
  1811  			if m.Polc == nil {
  1812  				m.Polc = &ProofOfLockChange{}
  1813  			}
  1814  			if err := m.Polc.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1815  				return err
  1816  			}
  1817  			iNdEx = postIndex
  1818  		default:
  1819  			iNdEx = preIndex
  1820  			skippy, err := skipEvidence(dAtA[iNdEx:])
  1821  			if err != nil {
  1822  				return err
  1823  			}
  1824  			if skippy < 0 {
  1825  				return ErrInvalidLengthEvidence
  1826  			}
  1827  			if (iNdEx + skippy) < 0 {
  1828  				return ErrInvalidLengthEvidence
  1829  			}
  1830  			if (iNdEx + skippy) > l {
  1831  				return io.ErrUnexpectedEOF
  1832  			}
  1833  			iNdEx += skippy
  1834  		}
  1835  	}
  1836  
  1837  	if iNdEx > l {
  1838  		return io.ErrUnexpectedEOF
  1839  	}
  1840  	return nil
  1841  }
  1842  func (m *ConflictingHeadersEvidence) Unmarshal(dAtA []byte) error {
  1843  	l := len(dAtA)
  1844  	iNdEx := 0
  1845  	for iNdEx < l {
  1846  		preIndex := iNdEx
  1847  		var wire uint64
  1848  		for shift := uint(0); ; shift += 7 {
  1849  			if shift >= 64 {
  1850  				return ErrIntOverflowEvidence
  1851  			}
  1852  			if iNdEx >= l {
  1853  				return io.ErrUnexpectedEOF
  1854  			}
  1855  			b := dAtA[iNdEx]
  1856  			iNdEx++
  1857  			wire |= uint64(b&0x7F) << shift
  1858  			if b < 0x80 {
  1859  				break
  1860  			}
  1861  		}
  1862  		fieldNum := int32(wire >> 3)
  1863  		wireType := int(wire & 0x7)
  1864  		if wireType == 4 {
  1865  			return fmt.Errorf("proto: ConflictingHeadersEvidence: wiretype end group for non-group")
  1866  		}
  1867  		if fieldNum <= 0 {
  1868  			return fmt.Errorf("proto: ConflictingHeadersEvidence: illegal tag %d (wire type %d)", fieldNum, wire)
  1869  		}
  1870  		switch fieldNum {
  1871  		case 1:
  1872  			if wireType != 2 {
  1873  				return fmt.Errorf("proto: wrong wireType = %d for field H1", wireType)
  1874  			}
  1875  			var msglen int
  1876  			for shift := uint(0); ; shift += 7 {
  1877  				if shift >= 64 {
  1878  					return ErrIntOverflowEvidence
  1879  				}
  1880  				if iNdEx >= l {
  1881  					return io.ErrUnexpectedEOF
  1882  				}
  1883  				b := dAtA[iNdEx]
  1884  				iNdEx++
  1885  				msglen |= int(b&0x7F) << shift
  1886  				if b < 0x80 {
  1887  					break
  1888  				}
  1889  			}
  1890  			if msglen < 0 {
  1891  				return ErrInvalidLengthEvidence
  1892  			}
  1893  			postIndex := iNdEx + msglen
  1894  			if postIndex < 0 {
  1895  				return ErrInvalidLengthEvidence
  1896  			}
  1897  			if postIndex > l {
  1898  				return io.ErrUnexpectedEOF
  1899  			}
  1900  			if m.H1 == nil {
  1901  				m.H1 = &SignedHeader{}
  1902  			}
  1903  			if err := m.H1.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1904  				return err
  1905  			}
  1906  			iNdEx = postIndex
  1907  		case 2:
  1908  			if wireType != 2 {
  1909  				return fmt.Errorf("proto: wrong wireType = %d for field H2", wireType)
  1910  			}
  1911  			var msglen int
  1912  			for shift := uint(0); ; shift += 7 {
  1913  				if shift >= 64 {
  1914  					return ErrIntOverflowEvidence
  1915  				}
  1916  				if iNdEx >= l {
  1917  					return io.ErrUnexpectedEOF
  1918  				}
  1919  				b := dAtA[iNdEx]
  1920  				iNdEx++
  1921  				msglen |= int(b&0x7F) << shift
  1922  				if b < 0x80 {
  1923  					break
  1924  				}
  1925  			}
  1926  			if msglen < 0 {
  1927  				return ErrInvalidLengthEvidence
  1928  			}
  1929  			postIndex := iNdEx + msglen
  1930  			if postIndex < 0 {
  1931  				return ErrInvalidLengthEvidence
  1932  			}
  1933  			if postIndex > l {
  1934  				return io.ErrUnexpectedEOF
  1935  			}
  1936  			if m.H2 == nil {
  1937  				m.H2 = &SignedHeader{}
  1938  			}
  1939  			if err := m.H2.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1940  				return err
  1941  			}
  1942  			iNdEx = postIndex
  1943  		default:
  1944  			iNdEx = preIndex
  1945  			skippy, err := skipEvidence(dAtA[iNdEx:])
  1946  			if err != nil {
  1947  				return err
  1948  			}
  1949  			if skippy < 0 {
  1950  				return ErrInvalidLengthEvidence
  1951  			}
  1952  			if (iNdEx + skippy) < 0 {
  1953  				return ErrInvalidLengthEvidence
  1954  			}
  1955  			if (iNdEx + skippy) > l {
  1956  				return io.ErrUnexpectedEOF
  1957  			}
  1958  			iNdEx += skippy
  1959  		}
  1960  	}
  1961  
  1962  	if iNdEx > l {
  1963  		return io.ErrUnexpectedEOF
  1964  	}
  1965  	return nil
  1966  }
  1967  func (m *LunaticValidatorEvidence) Unmarshal(dAtA []byte) error {
  1968  	l := len(dAtA)
  1969  	iNdEx := 0
  1970  	for iNdEx < l {
  1971  		preIndex := iNdEx
  1972  		var wire uint64
  1973  		for shift := uint(0); ; shift += 7 {
  1974  			if shift >= 64 {
  1975  				return ErrIntOverflowEvidence
  1976  			}
  1977  			if iNdEx >= l {
  1978  				return io.ErrUnexpectedEOF
  1979  			}
  1980  			b := dAtA[iNdEx]
  1981  			iNdEx++
  1982  			wire |= uint64(b&0x7F) << shift
  1983  			if b < 0x80 {
  1984  				break
  1985  			}
  1986  		}
  1987  		fieldNum := int32(wire >> 3)
  1988  		wireType := int(wire & 0x7)
  1989  		if wireType == 4 {
  1990  			return fmt.Errorf("proto: LunaticValidatorEvidence: wiretype end group for non-group")
  1991  		}
  1992  		if fieldNum <= 0 {
  1993  			return fmt.Errorf("proto: LunaticValidatorEvidence: illegal tag %d (wire type %d)", fieldNum, wire)
  1994  		}
  1995  		switch fieldNum {
  1996  		case 1:
  1997  			if wireType != 2 {
  1998  				return fmt.Errorf("proto: wrong wireType = %d for field Header", wireType)
  1999  			}
  2000  			var msglen int
  2001  			for shift := uint(0); ; shift += 7 {
  2002  				if shift >= 64 {
  2003  					return ErrIntOverflowEvidence
  2004  				}
  2005  				if iNdEx >= l {
  2006  					return io.ErrUnexpectedEOF
  2007  				}
  2008  				b := dAtA[iNdEx]
  2009  				iNdEx++
  2010  				msglen |= int(b&0x7F) << shift
  2011  				if b < 0x80 {
  2012  					break
  2013  				}
  2014  			}
  2015  			if msglen < 0 {
  2016  				return ErrInvalidLengthEvidence
  2017  			}
  2018  			postIndex := iNdEx + msglen
  2019  			if postIndex < 0 {
  2020  				return ErrInvalidLengthEvidence
  2021  			}
  2022  			if postIndex > l {
  2023  				return io.ErrUnexpectedEOF
  2024  			}
  2025  			if m.Header == nil {
  2026  				m.Header = &Header{}
  2027  			}
  2028  			if err := m.Header.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2029  				return err
  2030  			}
  2031  			iNdEx = postIndex
  2032  		case 2:
  2033  			if wireType != 2 {
  2034  				return fmt.Errorf("proto: wrong wireType = %d for field Vote", wireType)
  2035  			}
  2036  			var msglen int
  2037  			for shift := uint(0); ; shift += 7 {
  2038  				if shift >= 64 {
  2039  					return ErrIntOverflowEvidence
  2040  				}
  2041  				if iNdEx >= l {
  2042  					return io.ErrUnexpectedEOF
  2043  				}
  2044  				b := dAtA[iNdEx]
  2045  				iNdEx++
  2046  				msglen |= int(b&0x7F) << shift
  2047  				if b < 0x80 {
  2048  					break
  2049  				}
  2050  			}
  2051  			if msglen < 0 {
  2052  				return ErrInvalidLengthEvidence
  2053  			}
  2054  			postIndex := iNdEx + msglen
  2055  			if postIndex < 0 {
  2056  				return ErrInvalidLengthEvidence
  2057  			}
  2058  			if postIndex > l {
  2059  				return io.ErrUnexpectedEOF
  2060  			}
  2061  			if m.Vote == nil {
  2062  				m.Vote = &Vote{}
  2063  			}
  2064  			if err := m.Vote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2065  				return err
  2066  			}
  2067  			iNdEx = postIndex
  2068  		case 3:
  2069  			if wireType != 2 {
  2070  				return fmt.Errorf("proto: wrong wireType = %d for field InvalidHeaderField", wireType)
  2071  			}
  2072  			var stringLen uint64
  2073  			for shift := uint(0); ; shift += 7 {
  2074  				if shift >= 64 {
  2075  					return ErrIntOverflowEvidence
  2076  				}
  2077  				if iNdEx >= l {
  2078  					return io.ErrUnexpectedEOF
  2079  				}
  2080  				b := dAtA[iNdEx]
  2081  				iNdEx++
  2082  				stringLen |= uint64(b&0x7F) << shift
  2083  				if b < 0x80 {
  2084  					break
  2085  				}
  2086  			}
  2087  			intStringLen := int(stringLen)
  2088  			if intStringLen < 0 {
  2089  				return ErrInvalidLengthEvidence
  2090  			}
  2091  			postIndex := iNdEx + intStringLen
  2092  			if postIndex < 0 {
  2093  				return ErrInvalidLengthEvidence
  2094  			}
  2095  			if postIndex > l {
  2096  				return io.ErrUnexpectedEOF
  2097  			}
  2098  			m.InvalidHeaderField = string(dAtA[iNdEx:postIndex])
  2099  			iNdEx = postIndex
  2100  		default:
  2101  			iNdEx = preIndex
  2102  			skippy, err := skipEvidence(dAtA[iNdEx:])
  2103  			if err != nil {
  2104  				return err
  2105  			}
  2106  			if skippy < 0 {
  2107  				return ErrInvalidLengthEvidence
  2108  			}
  2109  			if (iNdEx + skippy) < 0 {
  2110  				return ErrInvalidLengthEvidence
  2111  			}
  2112  			if (iNdEx + skippy) > l {
  2113  				return io.ErrUnexpectedEOF
  2114  			}
  2115  			iNdEx += skippy
  2116  		}
  2117  	}
  2118  
  2119  	if iNdEx > l {
  2120  		return io.ErrUnexpectedEOF
  2121  	}
  2122  	return nil
  2123  }
  2124  func (m *PhantomValidatorEvidence) Unmarshal(dAtA []byte) error {
  2125  	l := len(dAtA)
  2126  	iNdEx := 0
  2127  	for iNdEx < l {
  2128  		preIndex := iNdEx
  2129  		var wire uint64
  2130  		for shift := uint(0); ; shift += 7 {
  2131  			if shift >= 64 {
  2132  				return ErrIntOverflowEvidence
  2133  			}
  2134  			if iNdEx >= l {
  2135  				return io.ErrUnexpectedEOF
  2136  			}
  2137  			b := dAtA[iNdEx]
  2138  			iNdEx++
  2139  			wire |= uint64(b&0x7F) << shift
  2140  			if b < 0x80 {
  2141  				break
  2142  			}
  2143  		}
  2144  		fieldNum := int32(wire >> 3)
  2145  		wireType := int(wire & 0x7)
  2146  		if wireType == 4 {
  2147  			return fmt.Errorf("proto: PhantomValidatorEvidence: wiretype end group for non-group")
  2148  		}
  2149  		if fieldNum <= 0 {
  2150  			return fmt.Errorf("proto: PhantomValidatorEvidence: illegal tag %d (wire type %d)", fieldNum, wire)
  2151  		}
  2152  		switch fieldNum {
  2153  		case 1:
  2154  			if wireType != 2 {
  2155  				return fmt.Errorf("proto: wrong wireType = %d for field Vote", wireType)
  2156  			}
  2157  			var msglen int
  2158  			for shift := uint(0); ; shift += 7 {
  2159  				if shift >= 64 {
  2160  					return ErrIntOverflowEvidence
  2161  				}
  2162  				if iNdEx >= l {
  2163  					return io.ErrUnexpectedEOF
  2164  				}
  2165  				b := dAtA[iNdEx]
  2166  				iNdEx++
  2167  				msglen |= int(b&0x7F) << shift
  2168  				if b < 0x80 {
  2169  					break
  2170  				}
  2171  			}
  2172  			if msglen < 0 {
  2173  				return ErrInvalidLengthEvidence
  2174  			}
  2175  			postIndex := iNdEx + msglen
  2176  			if postIndex < 0 {
  2177  				return ErrInvalidLengthEvidence
  2178  			}
  2179  			if postIndex > l {
  2180  				return io.ErrUnexpectedEOF
  2181  			}
  2182  			if m.Vote == nil {
  2183  				m.Vote = &Vote{}
  2184  			}
  2185  			if err := m.Vote.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2186  				return err
  2187  			}
  2188  			iNdEx = postIndex
  2189  		case 2:
  2190  			if wireType != 0 {
  2191  				return fmt.Errorf("proto: wrong wireType = %d for field LastHeightValidatorWasInSet", wireType)
  2192  			}
  2193  			m.LastHeightValidatorWasInSet = 0
  2194  			for shift := uint(0); ; shift += 7 {
  2195  				if shift >= 64 {
  2196  					return ErrIntOverflowEvidence
  2197  				}
  2198  				if iNdEx >= l {
  2199  					return io.ErrUnexpectedEOF
  2200  				}
  2201  				b := dAtA[iNdEx]
  2202  				iNdEx++
  2203  				m.LastHeightValidatorWasInSet |= int64(b&0x7F) << shift
  2204  				if b < 0x80 {
  2205  					break
  2206  				}
  2207  			}
  2208  		default:
  2209  			iNdEx = preIndex
  2210  			skippy, err := skipEvidence(dAtA[iNdEx:])
  2211  			if err != nil {
  2212  				return err
  2213  			}
  2214  			if skippy < 0 {
  2215  				return ErrInvalidLengthEvidence
  2216  			}
  2217  			if (iNdEx + skippy) < 0 {
  2218  				return ErrInvalidLengthEvidence
  2219  			}
  2220  			if (iNdEx + skippy) > l {
  2221  				return io.ErrUnexpectedEOF
  2222  			}
  2223  			iNdEx += skippy
  2224  		}
  2225  	}
  2226  
  2227  	if iNdEx > l {
  2228  		return io.ErrUnexpectedEOF
  2229  	}
  2230  	return nil
  2231  }
  2232  func (m *Evidence) Unmarshal(dAtA []byte) error {
  2233  	l := len(dAtA)
  2234  	iNdEx := 0
  2235  	for iNdEx < l {
  2236  		preIndex := iNdEx
  2237  		var wire uint64
  2238  		for shift := uint(0); ; shift += 7 {
  2239  			if shift >= 64 {
  2240  				return ErrIntOverflowEvidence
  2241  			}
  2242  			if iNdEx >= l {
  2243  				return io.ErrUnexpectedEOF
  2244  			}
  2245  			b := dAtA[iNdEx]
  2246  			iNdEx++
  2247  			wire |= uint64(b&0x7F) << shift
  2248  			if b < 0x80 {
  2249  				break
  2250  			}
  2251  		}
  2252  		fieldNum := int32(wire >> 3)
  2253  		wireType := int(wire & 0x7)
  2254  		if wireType == 4 {
  2255  			return fmt.Errorf("proto: Evidence: wiretype end group for non-group")
  2256  		}
  2257  		if fieldNum <= 0 {
  2258  			return fmt.Errorf("proto: Evidence: illegal tag %d (wire type %d)", fieldNum, wire)
  2259  		}
  2260  		switch fieldNum {
  2261  		case 1:
  2262  			if wireType != 2 {
  2263  				return fmt.Errorf("proto: wrong wireType = %d for field DuplicateVoteEvidence", wireType)
  2264  			}
  2265  			var msglen int
  2266  			for shift := uint(0); ; shift += 7 {
  2267  				if shift >= 64 {
  2268  					return ErrIntOverflowEvidence
  2269  				}
  2270  				if iNdEx >= l {
  2271  					return io.ErrUnexpectedEOF
  2272  				}
  2273  				b := dAtA[iNdEx]
  2274  				iNdEx++
  2275  				msglen |= int(b&0x7F) << shift
  2276  				if b < 0x80 {
  2277  					break
  2278  				}
  2279  			}
  2280  			if msglen < 0 {
  2281  				return ErrInvalidLengthEvidence
  2282  			}
  2283  			postIndex := iNdEx + msglen
  2284  			if postIndex < 0 {
  2285  				return ErrInvalidLengthEvidence
  2286  			}
  2287  			if postIndex > l {
  2288  				return io.ErrUnexpectedEOF
  2289  			}
  2290  			v := &DuplicateVoteEvidence{}
  2291  			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2292  				return err
  2293  			}
  2294  			m.Sum = &Evidence_DuplicateVoteEvidence{v}
  2295  			iNdEx = postIndex
  2296  		case 2:
  2297  			if wireType != 2 {
  2298  				return fmt.Errorf("proto: wrong wireType = %d for field ConflictingHeadersEvidence", wireType)
  2299  			}
  2300  			var msglen int
  2301  			for shift := uint(0); ; shift += 7 {
  2302  				if shift >= 64 {
  2303  					return ErrIntOverflowEvidence
  2304  				}
  2305  				if iNdEx >= l {
  2306  					return io.ErrUnexpectedEOF
  2307  				}
  2308  				b := dAtA[iNdEx]
  2309  				iNdEx++
  2310  				msglen |= int(b&0x7F) << shift
  2311  				if b < 0x80 {
  2312  					break
  2313  				}
  2314  			}
  2315  			if msglen < 0 {
  2316  				return ErrInvalidLengthEvidence
  2317  			}
  2318  			postIndex := iNdEx + msglen
  2319  			if postIndex < 0 {
  2320  				return ErrInvalidLengthEvidence
  2321  			}
  2322  			if postIndex > l {
  2323  				return io.ErrUnexpectedEOF
  2324  			}
  2325  			v := &ConflictingHeadersEvidence{}
  2326  			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2327  				return err
  2328  			}
  2329  			m.Sum = &Evidence_ConflictingHeadersEvidence{v}
  2330  			iNdEx = postIndex
  2331  		case 3:
  2332  			if wireType != 2 {
  2333  				return fmt.Errorf("proto: wrong wireType = %d for field LunaticValidatorEvidence", wireType)
  2334  			}
  2335  			var msglen int
  2336  			for shift := uint(0); ; shift += 7 {
  2337  				if shift >= 64 {
  2338  					return ErrIntOverflowEvidence
  2339  				}
  2340  				if iNdEx >= l {
  2341  					return io.ErrUnexpectedEOF
  2342  				}
  2343  				b := dAtA[iNdEx]
  2344  				iNdEx++
  2345  				msglen |= int(b&0x7F) << shift
  2346  				if b < 0x80 {
  2347  					break
  2348  				}
  2349  			}
  2350  			if msglen < 0 {
  2351  				return ErrInvalidLengthEvidence
  2352  			}
  2353  			postIndex := iNdEx + msglen
  2354  			if postIndex < 0 {
  2355  				return ErrInvalidLengthEvidence
  2356  			}
  2357  			if postIndex > l {
  2358  				return io.ErrUnexpectedEOF
  2359  			}
  2360  			v := &LunaticValidatorEvidence{}
  2361  			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2362  				return err
  2363  			}
  2364  			m.Sum = &Evidence_LunaticValidatorEvidence{v}
  2365  			iNdEx = postIndex
  2366  		case 4:
  2367  			if wireType != 2 {
  2368  				return fmt.Errorf("proto: wrong wireType = %d for field PotentialAmnesiaEvidence", wireType)
  2369  			}
  2370  			var msglen int
  2371  			for shift := uint(0); ; shift += 7 {
  2372  				if shift >= 64 {
  2373  					return ErrIntOverflowEvidence
  2374  				}
  2375  				if iNdEx >= l {
  2376  					return io.ErrUnexpectedEOF
  2377  				}
  2378  				b := dAtA[iNdEx]
  2379  				iNdEx++
  2380  				msglen |= int(b&0x7F) << shift
  2381  				if b < 0x80 {
  2382  					break
  2383  				}
  2384  			}
  2385  			if msglen < 0 {
  2386  				return ErrInvalidLengthEvidence
  2387  			}
  2388  			postIndex := iNdEx + msglen
  2389  			if postIndex < 0 {
  2390  				return ErrInvalidLengthEvidence
  2391  			}
  2392  			if postIndex > l {
  2393  				return io.ErrUnexpectedEOF
  2394  			}
  2395  			v := &PotentialAmnesiaEvidence{}
  2396  			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2397  				return err
  2398  			}
  2399  			m.Sum = &Evidence_PotentialAmnesiaEvidence{v}
  2400  			iNdEx = postIndex
  2401  		case 5:
  2402  			if wireType != 2 {
  2403  				return fmt.Errorf("proto: wrong wireType = %d for field AmnesiaEvidence", wireType)
  2404  			}
  2405  			var msglen int
  2406  			for shift := uint(0); ; shift += 7 {
  2407  				if shift >= 64 {
  2408  					return ErrIntOverflowEvidence
  2409  				}
  2410  				if iNdEx >= l {
  2411  					return io.ErrUnexpectedEOF
  2412  				}
  2413  				b := dAtA[iNdEx]
  2414  				iNdEx++
  2415  				msglen |= int(b&0x7F) << shift
  2416  				if b < 0x80 {
  2417  					break
  2418  				}
  2419  			}
  2420  			if msglen < 0 {
  2421  				return ErrInvalidLengthEvidence
  2422  			}
  2423  			postIndex := iNdEx + msglen
  2424  			if postIndex < 0 {
  2425  				return ErrInvalidLengthEvidence
  2426  			}
  2427  			if postIndex > l {
  2428  				return io.ErrUnexpectedEOF
  2429  			}
  2430  			v := &AmnesiaEvidence{}
  2431  			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2432  				return err
  2433  			}
  2434  			m.Sum = &Evidence_AmnesiaEvidence{v}
  2435  			iNdEx = postIndex
  2436  		case 6:
  2437  			if wireType != 2 {
  2438  				return fmt.Errorf("proto: wrong wireType = %d for field PhantomValidatorEvidence", wireType)
  2439  			}
  2440  			var msglen int
  2441  			for shift := uint(0); ; shift += 7 {
  2442  				if shift >= 64 {
  2443  					return ErrIntOverflowEvidence
  2444  				}
  2445  				if iNdEx >= l {
  2446  					return io.ErrUnexpectedEOF
  2447  				}
  2448  				b := dAtA[iNdEx]
  2449  				iNdEx++
  2450  				msglen |= int(b&0x7F) << shift
  2451  				if b < 0x80 {
  2452  					break
  2453  				}
  2454  			}
  2455  			if msglen < 0 {
  2456  				return ErrInvalidLengthEvidence
  2457  			}
  2458  			postIndex := iNdEx + msglen
  2459  			if postIndex < 0 {
  2460  				return ErrInvalidLengthEvidence
  2461  			}
  2462  			if postIndex > l {
  2463  				return io.ErrUnexpectedEOF
  2464  			}
  2465  			v := &PhantomValidatorEvidence{}
  2466  			if err := v.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2467  				return err
  2468  			}
  2469  			m.Sum = &Evidence_PhantomValidatorEvidence{v}
  2470  			iNdEx = postIndex
  2471  		default:
  2472  			iNdEx = preIndex
  2473  			skippy, err := skipEvidence(dAtA[iNdEx:])
  2474  			if err != nil {
  2475  				return err
  2476  			}
  2477  			if skippy < 0 {
  2478  				return ErrInvalidLengthEvidence
  2479  			}
  2480  			if (iNdEx + skippy) < 0 {
  2481  				return ErrInvalidLengthEvidence
  2482  			}
  2483  			if (iNdEx + skippy) > l {
  2484  				return io.ErrUnexpectedEOF
  2485  			}
  2486  			iNdEx += skippy
  2487  		}
  2488  	}
  2489  
  2490  	if iNdEx > l {
  2491  		return io.ErrUnexpectedEOF
  2492  	}
  2493  	return nil
  2494  }
  2495  func (m *EvidenceData) Unmarshal(dAtA []byte) error {
  2496  	l := len(dAtA)
  2497  	iNdEx := 0
  2498  	for iNdEx < l {
  2499  		preIndex := iNdEx
  2500  		var wire uint64
  2501  		for shift := uint(0); ; shift += 7 {
  2502  			if shift >= 64 {
  2503  				return ErrIntOverflowEvidence
  2504  			}
  2505  			if iNdEx >= l {
  2506  				return io.ErrUnexpectedEOF
  2507  			}
  2508  			b := dAtA[iNdEx]
  2509  			iNdEx++
  2510  			wire |= uint64(b&0x7F) << shift
  2511  			if b < 0x80 {
  2512  				break
  2513  			}
  2514  		}
  2515  		fieldNum := int32(wire >> 3)
  2516  		wireType := int(wire & 0x7)
  2517  		if wireType == 4 {
  2518  			return fmt.Errorf("proto: EvidenceData: wiretype end group for non-group")
  2519  		}
  2520  		if fieldNum <= 0 {
  2521  			return fmt.Errorf("proto: EvidenceData: illegal tag %d (wire type %d)", fieldNum, wire)
  2522  		}
  2523  		switch fieldNum {
  2524  		case 1:
  2525  			if wireType != 2 {
  2526  				return fmt.Errorf("proto: wrong wireType = %d for field Evidence", wireType)
  2527  			}
  2528  			var msglen int
  2529  			for shift := uint(0); ; shift += 7 {
  2530  				if shift >= 64 {
  2531  					return ErrIntOverflowEvidence
  2532  				}
  2533  				if iNdEx >= l {
  2534  					return io.ErrUnexpectedEOF
  2535  				}
  2536  				b := dAtA[iNdEx]
  2537  				iNdEx++
  2538  				msglen |= int(b&0x7F) << shift
  2539  				if b < 0x80 {
  2540  					break
  2541  				}
  2542  			}
  2543  			if msglen < 0 {
  2544  				return ErrInvalidLengthEvidence
  2545  			}
  2546  			postIndex := iNdEx + msglen
  2547  			if postIndex < 0 {
  2548  				return ErrInvalidLengthEvidence
  2549  			}
  2550  			if postIndex > l {
  2551  				return io.ErrUnexpectedEOF
  2552  			}
  2553  			m.Evidence = append(m.Evidence, Evidence{})
  2554  			if err := m.Evidence[len(m.Evidence)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2555  				return err
  2556  			}
  2557  			iNdEx = postIndex
  2558  		case 2:
  2559  			if wireType != 2 {
  2560  				return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType)
  2561  			}
  2562  			var byteLen int
  2563  			for shift := uint(0); ; shift += 7 {
  2564  				if shift >= 64 {
  2565  					return ErrIntOverflowEvidence
  2566  				}
  2567  				if iNdEx >= l {
  2568  					return io.ErrUnexpectedEOF
  2569  				}
  2570  				b := dAtA[iNdEx]
  2571  				iNdEx++
  2572  				byteLen |= int(b&0x7F) << shift
  2573  				if b < 0x80 {
  2574  					break
  2575  				}
  2576  			}
  2577  			if byteLen < 0 {
  2578  				return ErrInvalidLengthEvidence
  2579  			}
  2580  			postIndex := iNdEx + byteLen
  2581  			if postIndex < 0 {
  2582  				return ErrInvalidLengthEvidence
  2583  			}
  2584  			if postIndex > l {
  2585  				return io.ErrUnexpectedEOF
  2586  			}
  2587  			m.Hash = append(m.Hash[:0], dAtA[iNdEx:postIndex]...)
  2588  			if m.Hash == nil {
  2589  				m.Hash = []byte{}
  2590  			}
  2591  			iNdEx = postIndex
  2592  		default:
  2593  			iNdEx = preIndex
  2594  			skippy, err := skipEvidence(dAtA[iNdEx:])
  2595  			if err != nil {
  2596  				return err
  2597  			}
  2598  			if skippy < 0 {
  2599  				return ErrInvalidLengthEvidence
  2600  			}
  2601  			if (iNdEx + skippy) < 0 {
  2602  				return ErrInvalidLengthEvidence
  2603  			}
  2604  			if (iNdEx + skippy) > l {
  2605  				return io.ErrUnexpectedEOF
  2606  			}
  2607  			iNdEx += skippy
  2608  		}
  2609  	}
  2610  
  2611  	if iNdEx > l {
  2612  		return io.ErrUnexpectedEOF
  2613  	}
  2614  	return nil
  2615  }
  2616  func (m *ProofOfLockChange) Unmarshal(dAtA []byte) error {
  2617  	l := len(dAtA)
  2618  	iNdEx := 0
  2619  	for iNdEx < l {
  2620  		preIndex := iNdEx
  2621  		var wire uint64
  2622  		for shift := uint(0); ; shift += 7 {
  2623  			if shift >= 64 {
  2624  				return ErrIntOverflowEvidence
  2625  			}
  2626  			if iNdEx >= l {
  2627  				return io.ErrUnexpectedEOF
  2628  			}
  2629  			b := dAtA[iNdEx]
  2630  			iNdEx++
  2631  			wire |= uint64(b&0x7F) << shift
  2632  			if b < 0x80 {
  2633  				break
  2634  			}
  2635  		}
  2636  		fieldNum := int32(wire >> 3)
  2637  		wireType := int(wire & 0x7)
  2638  		if wireType == 4 {
  2639  			return fmt.Errorf("proto: ProofOfLockChange: wiretype end group for non-group")
  2640  		}
  2641  		if fieldNum <= 0 {
  2642  			return fmt.Errorf("proto: ProofOfLockChange: illegal tag %d (wire type %d)", fieldNum, wire)
  2643  		}
  2644  		switch fieldNum {
  2645  		case 1:
  2646  			if wireType != 2 {
  2647  				return fmt.Errorf("proto: wrong wireType = %d for field Votes", wireType)
  2648  			}
  2649  			var msglen int
  2650  			for shift := uint(0); ; shift += 7 {
  2651  				if shift >= 64 {
  2652  					return ErrIntOverflowEvidence
  2653  				}
  2654  				if iNdEx >= l {
  2655  					return io.ErrUnexpectedEOF
  2656  				}
  2657  				b := dAtA[iNdEx]
  2658  				iNdEx++
  2659  				msglen |= int(b&0x7F) << shift
  2660  				if b < 0x80 {
  2661  					break
  2662  				}
  2663  			}
  2664  			if msglen < 0 {
  2665  				return ErrInvalidLengthEvidence
  2666  			}
  2667  			postIndex := iNdEx + msglen
  2668  			if postIndex < 0 {
  2669  				return ErrInvalidLengthEvidence
  2670  			}
  2671  			if postIndex > l {
  2672  				return io.ErrUnexpectedEOF
  2673  			}
  2674  			m.Votes = append(m.Votes, &Vote{})
  2675  			if err := m.Votes[len(m.Votes)-1].Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2676  				return err
  2677  			}
  2678  			iNdEx = postIndex
  2679  		case 2:
  2680  			if wireType != 2 {
  2681  				return fmt.Errorf("proto: wrong wireType = %d for field PubKey", wireType)
  2682  			}
  2683  			var msglen int
  2684  			for shift := uint(0); ; shift += 7 {
  2685  				if shift >= 64 {
  2686  					return ErrIntOverflowEvidence
  2687  				}
  2688  				if iNdEx >= l {
  2689  					return io.ErrUnexpectedEOF
  2690  				}
  2691  				b := dAtA[iNdEx]
  2692  				iNdEx++
  2693  				msglen |= int(b&0x7F) << shift
  2694  				if b < 0x80 {
  2695  					break
  2696  				}
  2697  			}
  2698  			if msglen < 0 {
  2699  				return ErrInvalidLengthEvidence
  2700  			}
  2701  			postIndex := iNdEx + msglen
  2702  			if postIndex < 0 {
  2703  				return ErrInvalidLengthEvidence
  2704  			}
  2705  			if postIndex > l {
  2706  				return io.ErrUnexpectedEOF
  2707  			}
  2708  			if m.PubKey == nil {
  2709  				m.PubKey = &crypto.PublicKey{}
  2710  			}
  2711  			if err := m.PubKey.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  2712  				return err
  2713  			}
  2714  			iNdEx = postIndex
  2715  		default:
  2716  			iNdEx = preIndex
  2717  			skippy, err := skipEvidence(dAtA[iNdEx:])
  2718  			if err != nil {
  2719  				return err
  2720  			}
  2721  			if skippy < 0 {
  2722  				return ErrInvalidLengthEvidence
  2723  			}
  2724  			if (iNdEx + skippy) < 0 {
  2725  				return ErrInvalidLengthEvidence
  2726  			}
  2727  			if (iNdEx + skippy) > l {
  2728  				return io.ErrUnexpectedEOF
  2729  			}
  2730  			iNdEx += skippy
  2731  		}
  2732  	}
  2733  
  2734  	if iNdEx > l {
  2735  		return io.ErrUnexpectedEOF
  2736  	}
  2737  	return nil
  2738  }
  2739  func skipEvidence(dAtA []byte) (n int, err error) {
  2740  	l := len(dAtA)
  2741  	iNdEx := 0
  2742  	depth := 0
  2743  	for iNdEx < l {
  2744  		var wire uint64
  2745  		for shift := uint(0); ; shift += 7 {
  2746  			if shift >= 64 {
  2747  				return 0, ErrIntOverflowEvidence
  2748  			}
  2749  			if iNdEx >= l {
  2750  				return 0, io.ErrUnexpectedEOF
  2751  			}
  2752  			b := dAtA[iNdEx]
  2753  			iNdEx++
  2754  			wire |= (uint64(b) & 0x7F) << shift
  2755  			if b < 0x80 {
  2756  				break
  2757  			}
  2758  		}
  2759  		wireType := int(wire & 0x7)
  2760  		switch wireType {
  2761  		case 0:
  2762  			for shift := uint(0); ; shift += 7 {
  2763  				if shift >= 64 {
  2764  					return 0, ErrIntOverflowEvidence
  2765  				}
  2766  				if iNdEx >= l {
  2767  					return 0, io.ErrUnexpectedEOF
  2768  				}
  2769  				iNdEx++
  2770  				if dAtA[iNdEx-1] < 0x80 {
  2771  					break
  2772  				}
  2773  			}
  2774  		case 1:
  2775  			iNdEx += 8
  2776  		case 2:
  2777  			var length int
  2778  			for shift := uint(0); ; shift += 7 {
  2779  				if shift >= 64 {
  2780  					return 0, ErrIntOverflowEvidence
  2781  				}
  2782  				if iNdEx >= l {
  2783  					return 0, io.ErrUnexpectedEOF
  2784  				}
  2785  				b := dAtA[iNdEx]
  2786  				iNdEx++
  2787  				length |= (int(b) & 0x7F) << shift
  2788  				if b < 0x80 {
  2789  					break
  2790  				}
  2791  			}
  2792  			if length < 0 {
  2793  				return 0, ErrInvalidLengthEvidence
  2794  			}
  2795  			iNdEx += length
  2796  		case 3:
  2797  			depth++
  2798  		case 4:
  2799  			if depth == 0 {
  2800  				return 0, ErrUnexpectedEndOfGroupEvidence
  2801  			}
  2802  			depth--
  2803  		case 5:
  2804  			iNdEx += 4
  2805  		default:
  2806  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  2807  		}
  2808  		if iNdEx < 0 {
  2809  			return 0, ErrInvalidLengthEvidence
  2810  		}
  2811  		if depth == 0 {
  2812  			return iNdEx, nil
  2813  		}
  2814  	}
  2815  	return 0, io.ErrUnexpectedEOF
  2816  }
  2817  
  2818  var (
  2819  	ErrInvalidLengthEvidence        = fmt.Errorf("proto: negative length found during unmarshaling")
  2820  	ErrIntOverflowEvidence          = fmt.Errorf("proto: integer overflow")
  2821  	ErrUnexpectedEndOfGroupEvidence = fmt.Errorf("proto: unexpected end of group")
  2822  )