// Code generated by protoc-gen-go. DO NOT EDIT.
// source: vote.proto

package types

import (
	fmt "fmt"
	math "math"

	proto "github.com/golang/protobuf/proto"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// vote 合约交易行为总类型
type VoteAction struct {
	Ty int32 `protobuf:"varint,1,opt,name=ty,proto3" json:"ty,omitempty"`
	// Types that are valid to be assigned to Value:
	//	*VoteAction_CreateGroup
	//	*VoteAction_UpdateGroup
	//	*VoteAction_CreateVote
	//	*VoteAction_CommitVote
	//	*VoteAction_CloseVote
	//	*VoteAction_UpdateMember
	Value                isVoteAction_Value `protobuf_oneof:"value"`
	XXX_NoUnkeyedLiteral struct{}           `json:"-"`
	XXX_unrecognized     []byte             `json:"-"`
	XXX_sizecache        int32              `json:"-"`
}

func (m *VoteAction) Reset()         { *m = VoteAction{} }
func (m *VoteAction) String() string { return proto.CompactTextString(m) }
func (*VoteAction) ProtoMessage()    {}
func (*VoteAction) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{0}
}

func (m *VoteAction) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VoteAction.Unmarshal(m, b)
}
func (m *VoteAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VoteAction.Marshal(b, m, deterministic)
}
func (m *VoteAction) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VoteAction.Merge(m, src)
}
func (m *VoteAction) XXX_Size() int {
	return xxx_messageInfo_VoteAction.Size(m)
}
func (m *VoteAction) XXX_DiscardUnknown() {
	xxx_messageInfo_VoteAction.DiscardUnknown(m)
}

var xxx_messageInfo_VoteAction proto.InternalMessageInfo

func (m *VoteAction) GetTy() int32 {
	if m != nil {
		return m.Ty
	}
	return 0
}

type isVoteAction_Value interface {
	isVoteAction_Value()
}

type VoteAction_CreateGroup struct {
	CreateGroup *CreateGroup `protobuf:"bytes,2,opt,name=createGroup,proto3,oneof"`
}

type VoteAction_UpdateGroup struct {
	UpdateGroup *UpdateGroup `protobuf:"bytes,3,opt,name=updateGroup,proto3,oneof"`
}

type VoteAction_CreateVote struct {
	CreateVote *CreateVote `protobuf:"bytes,4,opt,name=createVote,proto3,oneof"`
}

type VoteAction_CommitVote struct {
	CommitVote *CommitVote `protobuf:"bytes,5,opt,name=commitVote,proto3,oneof"`
}

type VoteAction_CloseVote struct {
	CloseVote *CloseVote `protobuf:"bytes,6,opt,name=closeVote,proto3,oneof"`
}

type VoteAction_UpdateMember struct {
	UpdateMember *UpdateMember `protobuf:"bytes,7,opt,name=updateMember,proto3,oneof"`
}

func (*VoteAction_CreateGroup) isVoteAction_Value() {}

func (*VoteAction_UpdateGroup) isVoteAction_Value() {}

func (*VoteAction_CreateVote) isVoteAction_Value() {}

func (*VoteAction_CommitVote) isVoteAction_Value() {}

func (*VoteAction_CloseVote) isVoteAction_Value() {}

func (*VoteAction_UpdateMember) isVoteAction_Value() {}

func (m *VoteAction) GetValue() isVoteAction_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (m *VoteAction) GetCreateGroup() *CreateGroup {
	if x, ok := m.GetValue().(*VoteAction_CreateGroup); ok {
		return x.CreateGroup
	}
	return nil
}

func (m *VoteAction) GetUpdateGroup() *UpdateGroup {
	if x, ok := m.GetValue().(*VoteAction_UpdateGroup); ok {
		return x.UpdateGroup
	}
	return nil
}

func (m *VoteAction) GetCreateVote() *CreateVote {
	if x, ok := m.GetValue().(*VoteAction_CreateVote); ok {
		return x.CreateVote
	}
	return nil
}

func (m *VoteAction) GetCommitVote() *CommitVote {
	if x, ok := m.GetValue().(*VoteAction_CommitVote); ok {
		return x.CommitVote
	}
	return nil
}

func (m *VoteAction) GetCloseVote() *CloseVote {
	if x, ok := m.GetValue().(*VoteAction_CloseVote); ok {
		return x.CloseVote
	}
	return nil
}

func (m *VoteAction) GetUpdateMember() *UpdateMember {
	if x, ok := m.GetValue().(*VoteAction_UpdateMember); ok {
		return x.UpdateMember
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*VoteAction) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*VoteAction_CreateGroup)(nil),
		(*VoteAction_UpdateGroup)(nil),
		(*VoteAction_CreateVote)(nil),
		(*VoteAction_CommitVote)(nil),
		(*VoteAction_CloseVote)(nil),
		(*VoteAction_UpdateMember)(nil),
	}
}

type GroupMember struct {
	Addr                 string   `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
	VoteWeight           uint32   `protobuf:"varint,2,opt,name=voteWeight,proto3" json:"voteWeight,omitempty"`
	NickName             string   `protobuf:"bytes,3,opt,name=nickName,proto3" json:"nickName,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GroupMember) Reset()         { *m = GroupMember{} }
func (m *GroupMember) String() string { return proto.CompactTextString(m) }
func (*GroupMember) ProtoMessage()    {}
func (*GroupMember) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{1}
}

func (m *GroupMember) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupMember.Unmarshal(m, b)
}
func (m *GroupMember) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupMember.Marshal(b, m, deterministic)
}
func (m *GroupMember) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupMember.Merge(m, src)
}
func (m *GroupMember) XXX_Size() int {
	return xxx_messageInfo_GroupMember.Size(m)
}
func (m *GroupMember) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupMember.DiscardUnknown(m)
}

var xxx_messageInfo_GroupMember proto.InternalMessageInfo

func (m *GroupMember) GetAddr() string {
	if m != nil {
		return m.Addr
	}
	return ""
}

func (m *GroupMember) GetVoteWeight() uint32 {
	if m != nil {
		return m.VoteWeight
	}
	return 0
}

func (m *GroupMember) GetNickName() string {
	if m != nil {
		return m.NickName
	}
	return ""
}

//创建投票组
type CreateGroup struct {
	Name                 string         `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Admins               []string       `protobuf:"bytes,2,rep,name=admins,proto3" json:"admins,omitempty"`
	Members              []*GroupMember `protobuf:"bytes,3,rep,name=members,proto3" json:"members,omitempty"`
	Description          string         `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *CreateGroup) Reset()         { *m = CreateGroup{} }
func (m *CreateGroup) String() string { return proto.CompactTextString(m) }
func (*CreateGroup) ProtoMessage()    {}
func (*CreateGroup) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{2}
}

func (m *CreateGroup) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateGroup.Unmarshal(m, b)
}
func (m *CreateGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateGroup.Marshal(b, m, deterministic)
}
func (m *CreateGroup) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateGroup.Merge(m, src)
}
func (m *CreateGroup) XXX_Size() int {
	return xxx_messageInfo_CreateGroup.Size(m)
}
func (m *CreateGroup) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateGroup.DiscardUnknown(m)
}

var xxx_messageInfo_CreateGroup proto.InternalMessageInfo

func (m *CreateGroup) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *CreateGroup) GetAdmins() []string {
	if m != nil {
		return m.Admins
	}
	return nil
}

func (m *CreateGroup) GetMembers() []*GroupMember {
	if m != nil {
		return m.Members
	}
	return nil
}

func (m *CreateGroup) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

//更新投票组
type UpdateGroup struct {
	GroupID              string         `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"`
	AddMembers           []*GroupMember `protobuf:"bytes,2,rep,name=addMembers,proto3" json:"addMembers,omitempty"`
	RemoveMembers        []string       `protobuf:"bytes,3,rep,name=removeMembers,proto3" json:"removeMembers,omitempty"`
	AddAdmins            []string       `protobuf:"bytes,4,rep,name=addAdmins,proto3" json:"addAdmins,omitempty"`
	RemoveAdmins         []string       `protobuf:"bytes,5,rep,name=removeAdmins,proto3" json:"removeAdmins,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *UpdateGroup) Reset()         { *m = UpdateGroup{} }
func (m *UpdateGroup) String() string { return proto.CompactTextString(m) }
func (*UpdateGroup) ProtoMessage()    {}
func (*UpdateGroup) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{3}
}

func (m *UpdateGroup) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UpdateGroup.Unmarshal(m, b)
}
func (m *UpdateGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UpdateGroup.Marshal(b, m, deterministic)
}
func (m *UpdateGroup) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UpdateGroup.Merge(m, src)
}
func (m *UpdateGroup) XXX_Size() int {
	return xxx_messageInfo_UpdateGroup.Size(m)
}
func (m *UpdateGroup) XXX_DiscardUnknown() {
	xxx_messageInfo_UpdateGroup.DiscardUnknown(m)
}

var xxx_messageInfo_UpdateGroup proto.InternalMessageInfo

func (m *UpdateGroup) GetGroupID() string {
	if m != nil {
		return m.GroupID
	}
	return ""
}

func (m *UpdateGroup) GetAddMembers() []*GroupMember {
	if m != nil {
		return m.AddMembers
	}
	return nil
}

func (m *UpdateGroup) GetRemoveMembers() []string {
	if m != nil {
		return m.RemoveMembers
	}
	return nil
}

func (m *UpdateGroup) GetAddAdmins() []string {
	if m != nil {
		return m.AddAdmins
	}
	return nil
}

func (m *UpdateGroup) GetRemoveAdmins() []string {
	if m != nil {
		return m.RemoveAdmins
	}
	return nil
}

// 投票组信息
type GroupInfo struct {
	ID                   string         `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"`
	Name                 string         `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	MemberNum            uint32         `protobuf:"varint,3,opt,name=memberNum,proto3" json:"memberNum,omitempty"`
	Creator              string         `protobuf:"bytes,4,opt,name=creator,proto3" json:"creator,omitempty"`
	Admins               []string       `protobuf:"bytes,5,rep,name=admins,proto3" json:"admins,omitempty"`
	Members              []*GroupMember `protobuf:"bytes,6,rep,name=members,proto3" json:"members,omitempty"`
	Description          string         `protobuf:"bytes,7,opt,name=description,proto3" json:"description,omitempty"`
	VoteNum              uint32         `protobuf:"varint,8,opt,name=voteNum,proto3" json:"voteNum,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *GroupInfo) Reset()         { *m = GroupInfo{} }
func (m *GroupInfo) String() string { return proto.CompactTextString(m) }
func (*GroupInfo) ProtoMessage()    {}
func (*GroupInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{4}
}

func (m *GroupInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupInfo.Unmarshal(m, b)
}
func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic)
}
func (m *GroupInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupInfo.Merge(m, src)
}
func (m *GroupInfo) XXX_Size() int {
	return xxx_messageInfo_GroupInfo.Size(m)
}
func (m *GroupInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupInfo.DiscardUnknown(m)
}

var xxx_messageInfo_GroupInfo proto.InternalMessageInfo

func (m *GroupInfo) GetID() string {
	if m != nil {
		return m.ID
	}
	return ""
}

func (m *GroupInfo) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *GroupInfo) GetMemberNum() uint32 {
	if m != nil {
		return m.MemberNum
	}
	return 0
}

func (m *GroupInfo) GetCreator() string {
	if m != nil {
		return m.Creator
	}
	return ""
}

func (m *GroupInfo) GetAdmins() []string {
	if m != nil {
		return m.Admins
	}
	return nil
}

func (m *GroupInfo) GetMembers() []*GroupMember {
	if m != nil {
		return m.Members
	}
	return nil
}

func (m *GroupInfo) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *GroupInfo) GetVoteNum() uint32 {
	if m != nil {
		return m.VoteNum
	}
	return 0
}

type GroupInfos struct {
	GroupList            []*GroupInfo `protobuf:"bytes,1,rep,name=groupList,proto3" json:"groupList,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *GroupInfos) Reset()         { *m = GroupInfos{} }
func (m *GroupInfos) String() string { return proto.CompactTextString(m) }
func (*GroupInfos) ProtoMessage()    {}
func (*GroupInfos) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{5}
}

func (m *GroupInfos) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_GroupInfos.Unmarshal(m, b)
}
func (m *GroupInfos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_GroupInfos.Marshal(b, m, deterministic)
}
func (m *GroupInfos) XXX_Merge(src proto.Message) {
	xxx_messageInfo_GroupInfos.Merge(m, src)
}
func (m *GroupInfos) XXX_Size() int {
	return xxx_messageInfo_GroupInfos.Size(m)
}
func (m *GroupInfos) XXX_DiscardUnknown() {
	xxx_messageInfo_GroupInfos.DiscardUnknown(m)
}

var xxx_messageInfo_GroupInfos proto.InternalMessageInfo

func (m *GroupInfos) GetGroupList() []*GroupInfo {
	if m != nil {
		return m.GroupList
	}
	return nil
}

//投票选项
type VoteOption struct {
	Option               string   `protobuf:"bytes,1,opt,name=option,proto3" json:"option,omitempty"`
	Score                uint32   `protobuf:"varint,2,opt,name=score,proto3" json:"score,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *VoteOption) Reset()         { *m = VoteOption{} }
func (m *VoteOption) String() string { return proto.CompactTextString(m) }
func (*VoteOption) ProtoMessage()    {}
func (*VoteOption) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{6}
}

func (m *VoteOption) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VoteOption.Unmarshal(m, b)
}
func (m *VoteOption) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VoteOption.Marshal(b, m, deterministic)
}
func (m *VoteOption) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VoteOption.Merge(m, src)
}
func (m *VoteOption) XXX_Size() int {
	return xxx_messageInfo_VoteOption.Size(m)
}
func (m *VoteOption) XXX_DiscardUnknown() {
	xxx_messageInfo_VoteOption.DiscardUnknown(m)
}

var xxx_messageInfo_VoteOption proto.InternalMessageInfo

func (m *VoteOption) GetOption() string {
	if m != nil {
		return m.Option
	}
	return ""
}

func (m *VoteOption) GetScore() uint32 {
	if m != nil {
		return m.Score
	}
	return 0
}

// 创建投票交易，请求结构
type CreateVote struct {
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	GroupID              string   `protobuf:"bytes,2,opt,name=groupID,proto3" json:"groupID,omitempty"`
	VoteOptions          []string `protobuf:"bytes,3,rep,name=voteOptions,proto3" json:"voteOptions,omitempty"`
	BeginTimestamp       int64    `protobuf:"varint,4,opt,name=beginTimestamp,proto3" json:"beginTimestamp,omitempty"`
	EndTimestamp         int64    `protobuf:"varint,5,opt,name=endTimestamp,proto3" json:"endTimestamp,omitempty"`
	Description          string   `protobuf:"bytes,6,opt,name=description,proto3" json:"description,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CreateVote) Reset()         { *m = CreateVote{} }
func (m *CreateVote) String() string { return proto.CompactTextString(m) }
func (*CreateVote) ProtoMessage()    {}
func (*CreateVote) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{7}
}

func (m *CreateVote) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CreateVote.Unmarshal(m, b)
}
func (m *CreateVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CreateVote.Marshal(b, m, deterministic)
}
func (m *CreateVote) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CreateVote.Merge(m, src)
}
func (m *CreateVote) XXX_Size() int {
	return xxx_messageInfo_CreateVote.Size(m)
}
func (m *CreateVote) XXX_DiscardUnknown() {
	xxx_messageInfo_CreateVote.DiscardUnknown(m)
}

var xxx_messageInfo_CreateVote proto.InternalMessageInfo

func (m *CreateVote) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *CreateVote) GetGroupID() string {
	if m != nil {
		return m.GroupID
	}
	return ""
}

func (m *CreateVote) GetVoteOptions() []string {
	if m != nil {
		return m.VoteOptions
	}
	return nil
}

func (m *CreateVote) GetBeginTimestamp() int64 {
	if m != nil {
		return m.BeginTimestamp
	}
	return 0
}

func (m *CreateVote) GetEndTimestamp() int64 {
	if m != nil {
		return m.EndTimestamp
	}
	return 0
}

func (m *CreateVote) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

// 创建提交投票交易，请求结构
type CommitVote struct {
	VoteID               string   `protobuf:"bytes,1,opt,name=voteID,proto3" json:"voteID,omitempty"`
	OptionIndex          uint32   `protobuf:"varint,2,opt,name=optionIndex,proto3" json:"optionIndex,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CommitVote) Reset()         { *m = CommitVote{} }
func (m *CommitVote) String() string { return proto.CompactTextString(m) }
func (*CommitVote) ProtoMessage()    {}
func (*CommitVote) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{8}
}

func (m *CommitVote) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CommitVote.Unmarshal(m, b)
}
func (m *CommitVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CommitVote.Marshal(b, m, deterministic)
}
func (m *CommitVote) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CommitVote.Merge(m, src)
}
func (m *CommitVote) XXX_Size() int {
	return xxx_messageInfo_CommitVote.Size(m)
}
func (m *CommitVote) XXX_DiscardUnknown() {
	xxx_messageInfo_CommitVote.DiscardUnknown(m)
}

var xxx_messageInfo_CommitVote proto.InternalMessageInfo

func (m *CommitVote) GetVoteID() string {
	if m != nil {
		return m.VoteID
	}
	return ""
}

func (m *CommitVote) GetOptionIndex() uint32 {
	if m != nil {
		return m.OptionIndex
	}
	return 0
}

type CommitInfo struct {
	Addr                 string   `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
	TxHash               string   `protobuf:"bytes,2,opt,name=txHash,proto3" json:"txHash,omitempty"`
	VoteWeight           uint32   `protobuf:"varint,3,opt,name=voteWeight,proto3" json:"voteWeight,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CommitInfo) Reset()         { *m = CommitInfo{} }
func (m *CommitInfo) String() string { return proto.CompactTextString(m) }
func (*CommitInfo) ProtoMessage()    {}
func (*CommitInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{9}
}

func (m *CommitInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CommitInfo.Unmarshal(m, b)
}
func (m *CommitInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CommitInfo.Marshal(b, m, deterministic)
}
func (m *CommitInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CommitInfo.Merge(m, src)
}
func (m *CommitInfo) XXX_Size() int {
	return xxx_messageInfo_CommitInfo.Size(m)
}
func (m *CommitInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_CommitInfo.DiscardUnknown(m)
}

var xxx_messageInfo_CommitInfo proto.InternalMessageInfo

func (m *CommitInfo) GetAddr() string {
	if m != nil {
		return m.Addr
	}
	return ""
}

func (m *CommitInfo) GetTxHash() string {
	if m != nil {
		return m.TxHash
	}
	return ""
}

func (m *CommitInfo) GetVoteWeight() uint32 {
	if m != nil {
		return m.VoteWeight
	}
	return 0
}

type CloseVote struct {
	VoteID               string   `protobuf:"bytes,1,opt,name=voteID,proto3" json:"voteID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CloseVote) Reset()         { *m = CloseVote{} }
func (m *CloseVote) String() string { return proto.CompactTextString(m) }
func (*CloseVote) ProtoMessage()    {}
func (*CloseVote) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{10}
}

func (m *CloseVote) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CloseVote.Unmarshal(m, b)
}
func (m *CloseVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CloseVote.Marshal(b, m, deterministic)
}
func (m *CloseVote) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CloseVote.Merge(m, src)
}
func (m *CloseVote) XXX_Size() int {
	return xxx_messageInfo_CloseVote.Size(m)
}
func (m *CloseVote) XXX_DiscardUnknown() {
	xxx_messageInfo_CloseVote.DiscardUnknown(m)
}

var xxx_messageInfo_CloseVote proto.InternalMessageInfo

func (m *CloseVote) GetVoteID() string {
	if m != nil {
		return m.VoteID
	}
	return ""
}

type UpdateMember struct {
	Name                 string   `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UpdateMember) Reset()         { *m = UpdateMember{} }
func (m *UpdateMember) String() string { return proto.CompactTextString(m) }
func (*UpdateMember) ProtoMessage()    {}
func (*UpdateMember) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{11}
}

func (m *UpdateMember) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UpdateMember.Unmarshal(m, b)
}
func (m *UpdateMember) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UpdateMember.Marshal(b, m, deterministic)
}
func (m *UpdateMember) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UpdateMember.Merge(m, src)
}
func (m *UpdateMember) XXX_Size() int {
	return xxx_messageInfo_UpdateMember.Size(m)
}
func (m *UpdateMember) XXX_DiscardUnknown() {
	xxx_messageInfo_UpdateMember.DiscardUnknown(m)
}

var xxx_messageInfo_UpdateMember proto.InternalMessageInfo

func (m *UpdateMember) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

//投票信息
type VoteInfo struct {
	ID                   string        `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"`
	Name                 string        `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	Creator              string        `protobuf:"bytes,3,opt,name=creator,proto3" json:"creator,omitempty"`
	GroupID              string        `protobuf:"bytes,4,opt,name=groupID,proto3" json:"groupID,omitempty"`
	VoteOptions          []*VoteOption `protobuf:"bytes,5,rep,name=voteOptions,proto3" json:"voteOptions,omitempty"`
	BeginTimestamp       int64         `protobuf:"varint,6,opt,name=beginTimestamp,proto3" json:"beginTimestamp,omitempty"`
	EndTimestamp         int64         `protobuf:"varint,7,opt,name=endTimestamp,proto3" json:"endTimestamp,omitempty"`
	CommitInfos          []*CommitInfo `protobuf:"bytes,8,rep,name=commitInfos,proto3" json:"commitInfos,omitempty"`
	Description          string        `protobuf:"bytes,9,opt,name=description,proto3" json:"description,omitempty"`
	Status               uint32        `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *VoteInfo) Reset()         { *m = VoteInfo{} }
func (m *VoteInfo) String() string { return proto.CompactTextString(m) }
func (*VoteInfo) ProtoMessage()    {}
func (*VoteInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{12}
}

func (m *VoteInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VoteInfo.Unmarshal(m, b)
}
func (m *VoteInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VoteInfo.Marshal(b, m, deterministic)
}
func (m *VoteInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VoteInfo.Merge(m, src)
}
func (m *VoteInfo) XXX_Size() int {
	return xxx_messageInfo_VoteInfo.Size(m)
}
func (m *VoteInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_VoteInfo.DiscardUnknown(m)
}

var xxx_messageInfo_VoteInfo proto.InternalMessageInfo

func (m *VoteInfo) GetID() string {
	if m != nil {
		return m.ID
	}
	return ""
}

func (m *VoteInfo) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *VoteInfo) GetCreator() string {
	if m != nil {
		return m.Creator
	}
	return ""
}

func (m *VoteInfo) GetGroupID() string {
	if m != nil {
		return m.GroupID
	}
	return ""
}

func (m *VoteInfo) GetVoteOptions() []*VoteOption {
	if m != nil {
		return m.VoteOptions
	}
	return nil
}

func (m *VoteInfo) GetBeginTimestamp() int64 {
	if m != nil {
		return m.BeginTimestamp
	}
	return 0
}

func (m *VoteInfo) GetEndTimestamp() int64 {
	if m != nil {
		return m.EndTimestamp
	}
	return 0
}

func (m *VoteInfo) GetCommitInfos() []*CommitInfo {
	if m != nil {
		return m.CommitInfos
	}
	return nil
}

func (m *VoteInfo) GetDescription() string {
	if m != nil {
		return m.Description
	}
	return ""
}

func (m *VoteInfo) GetStatus() uint32 {
	if m != nil {
		return m.Status
	}
	return 0
}

type VoteInfos struct {
	VoteList             []*VoteInfo `protobuf:"bytes,1,rep,name=voteList,proto3" json:"voteList,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *VoteInfos) Reset()         { *m = VoteInfos{} }
func (m *VoteInfos) String() string { return proto.CompactTextString(m) }
func (*VoteInfos) ProtoMessage()    {}
func (*VoteInfos) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{13}
}

func (m *VoteInfos) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VoteInfos.Unmarshal(m, b)
}
func (m *VoteInfos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VoteInfos.Marshal(b, m, deterministic)
}
func (m *VoteInfos) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VoteInfos.Merge(m, src)
}
func (m *VoteInfos) XXX_Size() int {
	return xxx_messageInfo_VoteInfos.Size(m)
}
func (m *VoteInfos) XXX_DiscardUnknown() {
	xxx_messageInfo_VoteInfos.DiscardUnknown(m)
}

var xxx_messageInfo_VoteInfos proto.InternalMessageInfo

func (m *VoteInfos) GetVoteList() []*VoteInfo {
	if m != nil {
		return m.VoteList
	}
	return nil
}

type MemberInfo struct {
	Addr                 string   `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
	Name                 string   `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	GroupIDs             []string `protobuf:"bytes,3,rep,name=groupIDs,proto3" json:"groupIDs,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MemberInfo) Reset()         { *m = MemberInfo{} }
func (m *MemberInfo) String() string { return proto.CompactTextString(m) }
func (*MemberInfo) ProtoMessage()    {}
func (*MemberInfo) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{14}
}

func (m *MemberInfo) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MemberInfo.Unmarshal(m, b)
}
func (m *MemberInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MemberInfo.Marshal(b, m, deterministic)
}
func (m *MemberInfo) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MemberInfo.Merge(m, src)
}
func (m *MemberInfo) XXX_Size() int {
	return xxx_messageInfo_MemberInfo.Size(m)
}
func (m *MemberInfo) XXX_DiscardUnknown() {
	xxx_messageInfo_MemberInfo.DiscardUnknown(m)
}

var xxx_messageInfo_MemberInfo proto.InternalMessageInfo

func (m *MemberInfo) GetAddr() string {
	if m != nil {
		return m.Addr
	}
	return ""
}

func (m *MemberInfo) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *MemberInfo) GetGroupIDs() []string {
	if m != nil {
		return m.GroupIDs
	}
	return nil
}

type MemberInfos struct {
	MemberList           []*MemberInfo `protobuf:"bytes,1,rep,name=memberList,proto3" json:"memberList,omitempty"`
	XXX_NoUnkeyedLiteral struct{}      `json:"-"`
	XXX_unrecognized     []byte        `json:"-"`
	XXX_sizecache        int32         `json:"-"`
}

func (m *MemberInfos) Reset()         { *m = MemberInfos{} }
func (m *MemberInfos) String() string { return proto.CompactTextString(m) }
func (*MemberInfos) ProtoMessage()    {}
func (*MemberInfos) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{15}
}

func (m *MemberInfos) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_MemberInfos.Unmarshal(m, b)
}
func (m *MemberInfos) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_MemberInfos.Marshal(b, m, deterministic)
}
func (m *MemberInfos) XXX_Merge(src proto.Message) {
	xxx_messageInfo_MemberInfos.Merge(m, src)
}
func (m *MemberInfos) XXX_Size() int {
	return xxx_messageInfo_MemberInfos.Size(m)
}
func (m *MemberInfos) XXX_DiscardUnknown() {
	xxx_messageInfo_MemberInfos.DiscardUnknown(m)
}

var xxx_messageInfo_MemberInfos proto.InternalMessageInfo

func (m *MemberInfos) GetMemberList() []*MemberInfo {
	if m != nil {
		return m.MemberList
	}
	return nil
}

type ReqStrings struct {
	Items                []string `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReqStrings) Reset()         { *m = ReqStrings{} }
func (m *ReqStrings) String() string { return proto.CompactTextString(m) }
func (*ReqStrings) ProtoMessage()    {}
func (*ReqStrings) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{16}
}

func (m *ReqStrings) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReqStrings.Unmarshal(m, b)
}
func (m *ReqStrings) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReqStrings.Marshal(b, m, deterministic)
}
func (m *ReqStrings) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReqStrings.Merge(m, src)
}
func (m *ReqStrings) XXX_Size() int {
	return xxx_messageInfo_ReqStrings.Size(m)
}
func (m *ReqStrings) XXX_DiscardUnknown() {
	xxx_messageInfo_ReqStrings.DiscardUnknown(m)
}

var xxx_messageInfo_ReqStrings proto.InternalMessageInfo

func (m *ReqStrings) GetItems() []string {
	if m != nil {
		return m.Items
	}
	return nil
}

//列表请求结构
type ReqListItem struct {
	StartItemID          string   `protobuf:"bytes,1,opt,name=startItemID,proto3" json:"startItemID,omitempty"`
	Count                int32    `protobuf:"varint,2,opt,name=count,proto3" json:"count,omitempty"`
	Direction            int32    `protobuf:"varint,3,opt,name=direction,proto3" json:"direction,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReqListItem) Reset()         { *m = ReqListItem{} }
func (m *ReqListItem) String() string { return proto.CompactTextString(m) }
func (*ReqListItem) ProtoMessage()    {}
func (*ReqListItem) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{17}
}

func (m *ReqListItem) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReqListItem.Unmarshal(m, b)
}
func (m *ReqListItem) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReqListItem.Marshal(b, m, deterministic)
}
func (m *ReqListItem) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReqListItem.Merge(m, src)
}
func (m *ReqListItem) XXX_Size() int {
	return xxx_messageInfo_ReqListItem.Size(m)
}
func (m *ReqListItem) XXX_DiscardUnknown() {
	xxx_messageInfo_ReqListItem.DiscardUnknown(m)
}

var xxx_messageInfo_ReqListItem proto.InternalMessageInfo

func (m *ReqListItem) GetStartItemID() string {
	if m != nil {
		return m.StartItemID
	}
	return ""
}

func (m *ReqListItem) GetCount() int32 {
	if m != nil {
		return m.Count
	}
	return 0
}

func (m *ReqListItem) GetDirection() int32 {
	if m != nil {
		return m.Direction
	}
	return 0
}

type ReqListVote struct {
	GroupID              string       `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"`
	ListReq              *ReqListItem `protobuf:"bytes,2,opt,name=listReq,proto3" json:"listReq,omitempty"`
	Status               uint32       `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"`
	XXX_NoUnkeyedLiteral struct{}     `json:"-"`
	XXX_unrecognized     []byte       `json:"-"`
	XXX_sizecache        int32        `json:"-"`
}

func (m *ReqListVote) Reset()         { *m = ReqListVote{} }
func (m *ReqListVote) String() string { return proto.CompactTextString(m) }
func (*ReqListVote) ProtoMessage()    {}
func (*ReqListVote) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{18}
}

func (m *ReqListVote) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReqListVote.Unmarshal(m, b)
}
func (m *ReqListVote) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReqListVote.Marshal(b, m, deterministic)
}
func (m *ReqListVote) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReqListVote.Merge(m, src)
}
func (m *ReqListVote) XXX_Size() int {
	return xxx_messageInfo_ReqListVote.Size(m)
}
func (m *ReqListVote) XXX_DiscardUnknown() {
	xxx_messageInfo_ReqListVote.DiscardUnknown(m)
}

var xxx_messageInfo_ReqListVote proto.InternalMessageInfo

func (m *ReqListVote) GetGroupID() string {
	if m != nil {
		return m.GroupID
	}
	return ""
}

func (m *ReqListVote) GetListReq() *ReqListItem {
	if m != nil {
		return m.ListReq
	}
	return nil
}

func (m *ReqListVote) GetStatus() uint32 {
	if m != nil {
		return m.Status
	}
	return 0
}

type ReplyVoteList struct {
	VoteList             []*VoteInfo `protobuf:"bytes,1,rep,name=voteList,proto3" json:"voteList,omitempty"`
	CurrentTimestamp     int64       `protobuf:"varint,2,opt,name=currentTimestamp,proto3" json:"currentTimestamp,omitempty"`
	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
	XXX_unrecognized     []byte      `json:"-"`
	XXX_sizecache        int32       `json:"-"`
}

func (m *ReplyVoteList) Reset()         { *m = ReplyVoteList{} }
func (m *ReplyVoteList) String() string { return proto.CompactTextString(m) }
func (*ReplyVoteList) ProtoMessage()    {}
func (*ReplyVoteList) Descriptor() ([]byte, []int) {
	return fileDescriptor_21d31c94b62a6ac7, []int{19}
}

func (m *ReplyVoteList) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ReplyVoteList.Unmarshal(m, b)
}
func (m *ReplyVoteList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ReplyVoteList.Marshal(b, m, deterministic)
}
func (m *ReplyVoteList) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ReplyVoteList.Merge(m, src)
}
func (m *ReplyVoteList) XXX_Size() int {
	return xxx_messageInfo_ReplyVoteList.Size(m)
}
func (m *ReplyVoteList) XXX_DiscardUnknown() {
	xxx_messageInfo_ReplyVoteList.DiscardUnknown(m)
}

var xxx_messageInfo_ReplyVoteList proto.InternalMessageInfo

func (m *ReplyVoteList) GetVoteList() []*VoteInfo {
	if m != nil {
		return m.VoteList
	}
	return nil
}

func (m *ReplyVoteList) GetCurrentTimestamp() int64 {
	if m != nil {
		return m.CurrentTimestamp
	}
	return 0
}

func init() {
	proto.RegisterType((*VoteAction)(nil), "types.VoteAction")
	proto.RegisterType((*GroupMember)(nil), "types.GroupMember")
	proto.RegisterType((*CreateGroup)(nil), "types.CreateGroup")
	proto.RegisterType((*UpdateGroup)(nil), "types.UpdateGroup")
	proto.RegisterType((*GroupInfo)(nil), "types.GroupInfo")
	proto.RegisterType((*GroupInfos)(nil), "types.GroupInfos")
	proto.RegisterType((*VoteOption)(nil), "types.VoteOption")
	proto.RegisterType((*CreateVote)(nil), "types.CreateVote")
	proto.RegisterType((*CommitVote)(nil), "types.CommitVote")
	proto.RegisterType((*CommitInfo)(nil), "types.CommitInfo")
	proto.RegisterType((*CloseVote)(nil), "types.CloseVote")
	proto.RegisterType((*UpdateMember)(nil), "types.UpdateMember")
	proto.RegisterType((*VoteInfo)(nil), "types.VoteInfo")
	proto.RegisterType((*VoteInfos)(nil), "types.VoteInfos")
	proto.RegisterType((*MemberInfo)(nil), "types.MemberInfo")
	proto.RegisterType((*MemberInfos)(nil), "types.MemberInfos")
	proto.RegisterType((*ReqStrings)(nil), "types.ReqStrings")
	proto.RegisterType((*ReqListItem)(nil), "types.ReqListItem")
	proto.RegisterType((*ReqListVote)(nil), "types.ReqListVote")
	proto.RegisterType((*ReplyVoteList)(nil), "types.ReplyVoteList")
}

func init() {
	proto.RegisterFile("vote.proto", fileDescriptor_21d31c94b62a6ac7)
}

var fileDescriptor_21d31c94b62a6ac7 = []byte{
	// 912 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x56, 0xdd, 0x8e, 0xe3, 0x34,
	0x14, 0x6e, 0x92, 0x26, 0x6d, 0x4e, 0xa6, 0xcb, 0x60, 0x50, 0x15, 0xad, 0x56, 0xa8, 0x32, 0x08,
	0x8d, 0x60, 0x55, 0xc1, 0x56, 0x42, 0x80, 0xb8, 0x60, 0x61, 0x05, 0xad, 0xc4, 0x0c, 0xc8, 0xc0,
	0xc0, 0x0d, 0x17, 0x99, 0xc4, 0x74, 0x22, 0x9a, 0xa4, 0x13, 0xbb, 0xd5, 0xf4, 0x11, 0x78, 0x2e,
	0xee, 0xb8, 0xe4, 0x2d, 0x90, 0x78, 0x08, 0xe4, 0xe3, 0xfc, 0x38, 0xfd, 0xd1, 0xce, 0xdc, 0xf5,
	0x1c, 0x7f, 0xc7, 0x3e, 0xfe, 0xbe, 0xcf, 0xa7, 0x01, 0xd8, 0x16, 0x92, 0x4f, 0xd7, 0x65, 0x21,
	0x0b, 0xe2, 0xca, 0xdd, 0x9a, 0x0b, 0xfa, 0x9f, 0x0d, 0x70, 0x5d, 0x48, 0xfe, 0x32, 0x96, 0x69,
	0x91, 0x93, 0x27, 0x60, 0xcb, 0x5d, 0x68, 0x4d, 0xac, 0x0b, 0x97, 0xd9, 0x72, 0x47, 0x3e, 0x81,
	0x20, 0x2e, 0x79, 0x24, 0xf9, 0xb7, 0x65, 0xb1, 0x59, 0x87, 0xf6, 0xc4, 0xba, 0x08, 0x5e, 0x90,
	0x29, 0xd6, 0x4e, 0xbf, 0x6e, 0x57, 0xe6, 0x3d, 0x66, 0x02, 0x55, 0xdd, 0x66, 0x9d, 0x34, 0x75,
	0x4e, 0xa7, 0xee, 0xe7, 0x76, 0x45, 0xd5, 0x19, 0x40, 0x32, 0x03, 0xd0, 0xdb, 0xa8, 0x9e, 0xc2,
	0x3e, 0x96, 0xbd, 0xd9, 0x39, 0x4e, 0x2d, 0xcc, 0x7b, 0xcc, 0x80, 0x61, 0x51, 0x91, 0x65, 0xa9,
	0xc4, 0x22, 0xb7, 0x5b, 0xd4, 0x2c, 0x60, 0x51, 0x13, 0x91, 0x8f, 0xc0, 0x8f, 0x57, 0x85, 0xd0,
	0x07, 0x79, 0x58, 0x73, 0x5e, 0xd7, 0xd4, 0xf9, 0x79, 0x8f, 0xb5, 0x20, 0xf2, 0x19, 0x9c, 0xe9,
	0x56, 0x2f, 0x79, 0x76, 0xc3, 0xcb, 0x70, 0x80, 0x45, 0x6f, 0x75, 0x2e, 0xa5, 0x97, 0xe6, 0x3d,
	0xd6, 0x81, 0x7e, 0x35, 0x00, 0x77, 0x1b, 0xad, 0x36, 0x9c, 0xfe, 0x06, 0x01, 0x5e, 0x54, 0xe7,
	0x09, 0x81, 0x7e, 0x94, 0x24, 0x25, 0x12, 0xee, 0x33, 0xfc, 0x4d, 0xde, 0xd1, 0x32, 0xfd, 0xc2,
	0xd3, 0xe5, 0xad, 0x44, 0xc6, 0x47, 0xcc, 0xc8, 0x90, 0xa7, 0x30, 0xcc, 0xd3, 0xf8, 0x8f, 0xab,
	0x28, 0xe3, 0xc8, 0xab, 0xcf, 0x9a, 0x98, 0xfe, 0x69, 0x41, 0x60, 0xa8, 0xa2, 0xf6, 0xcf, 0x15,
	0xae, 0xda, 0x5f, 0xfd, 0x26, 0x63, 0xf0, 0xa2, 0x24, 0x4b, 0x73, 0x11, 0xda, 0x13, 0xe7, 0xc2,
	0x67, 0x55, 0x44, 0x9e, 0xc3, 0x20, 0xc3, 0xae, 0x44, 0xe8, 0x4c, 0x1c, 0x43, 0x2e, 0xa3, 0x61,
	0x56, 0x43, 0xc8, 0x04, 0x82, 0x84, 0x8b, 0xb8, 0x4c, 0xd7, 0xca, 0x37, 0xa8, 0x94, 0xcf, 0xcc,
	0x14, 0xfd, 0xcb, 0x82, 0xc0, 0x50, 0x9a, 0x84, 0x30, 0x58, 0xaa, 0x1f, 0x8b, 0x57, 0x55, 0x3b,
	0x75, 0x48, 0x5e, 0x00, 0x44, 0x49, 0x72, 0x59, 0x1d, 0x6e, 0x9f, 0x3c, 0xdc, 0x40, 0x91, 0xf7,
	0x60, 0x54, 0xf2, 0xac, 0xd8, 0xf2, 0x4b, 0xa3, 0x67, 0x9f, 0x75, 0x93, 0xe4, 0x19, 0xf8, 0x51,
	0x92, 0xbc, 0xd4, 0xd7, 0xed, 0x23, 0xa2, 0x4d, 0x10, 0x0a, 0x67, 0x1a, 0x5e, 0x01, 0x5c, 0x04,
	0x74, 0x72, 0xf4, 0x5f, 0x0b, 0x7c, 0xec, 0x61, 0x91, 0xff, 0x5e, 0xa8, 0xe7, 0xd1, 0xb4, 0x6f,
	0x2f, 0x5e, 0x35, 0xfc, 0xda, 0x06, 0xbf, 0xcf, 0xc0, 0xd7, 0x24, 0x5d, 0x6d, 0x32, 0x14, 0x68,
	0xc4, 0xda, 0x84, 0x62, 0x01, 0x9d, 0x5b, 0x94, 0x15, 0x67, 0x75, 0x68, 0xe8, 0xe2, 0x9e, 0xd2,
	0xc5, 0x7b, 0xb4, 0x2e, 0x83, 0x03, 0x5d, 0x54, 0x07, 0xca, 0x4d, 0xaa, 0xbb, 0x21, 0x76, 0x57,
	0x87, 0xf4, 0x0b, 0x80, 0xe6, 0xaa, 0x82, 0x4c, 0xc1, 0x47, 0x81, 0xbe, 0x4b, 0x85, 0x0c, 0x2d,
	0x3c, 0xf9, 0xdc, 0x3c, 0x59, 0xa1, 0x58, 0x0b, 0xa1, 0x9f, 0xeb, 0x41, 0xf2, 0xbd, 0x3e, 0x65,
	0x0c, 0x5e, 0xa1, 0x5b, 0xd0, 0x6c, 0x55, 0x11, 0x79, 0x1b, 0x5c, 0x11, 0x17, 0x25, 0xaf, 0x8c,
	0xad, 0x03, 0xfa, 0xb7, 0x05, 0xd0, 0x3e, 0xef, 0xa3, 0xb6, 0x35, 0xec, 0x63, 0x77, 0xed, 0x33,
	0x81, 0x60, 0xdb, 0x1c, 0x5c, 0x1b, 0xc1, 0x4c, 0x91, 0xf7, 0xe1, 0xc9, 0x0d, 0x5f, 0xa6, 0xf9,
	0x4f, 0x69, 0xc6, 0x85, 0x8c, 0xb2, 0x35, 0x72, 0xef, 0xb0, 0xbd, 0xac, 0x32, 0x04, 0xcf, 0x93,
	0x16, 0xe5, 0x22, 0xaa, 0x93, 0xdb, 0x27, 0xd8, 0x3b, 0x34, 0xfe, 0x37, 0x00, 0xed, 0xd4, 0x51,
	0x44, 0xa8, 0x56, 0x1a, 0xdb, 0x54, 0x91, 0xda, 0x47, 0x53, 0xb2, 0xc8, 0x13, 0x7e, 0x5f, 0xd1,
	0x61, 0xa6, 0xe8, 0xaf, 0xf5, 0x3e, 0x68, 0xbd, 0x63, 0xa3, 0x62, 0x0c, 0x9e, 0xbc, 0x9f, 0x47,
	0xe2, 0xb6, 0xa2, 0xa4, 0x8a, 0xf6, 0x46, 0x88, 0xb3, 0x3f, 0x42, 0xe8, 0xbb, 0xe0, 0x37, 0x33,
	0xee, 0x54, 0x83, 0x94, 0xc2, 0x99, 0x39, 0xd3, 0x8e, 0x89, 0x42, 0xff, 0xb1, 0x61, 0xa8, 0x36,
	0x79, 0xf0, 0xe3, 0x30, 0xec, 0xef, 0x74, 0xed, 0x6f, 0xe8, 0xdb, 0xef, 0xea, 0x3b, 0xeb, 0xea,
	0xeb, 0xa2, 0x15, 0xeb, 0xf9, 0xde, 0x5a, 0xee, 0x75, 0x92, 0x7b, 0x0f, 0x92, 0x7c, 0x70, 0x44,
	0xf2, 0x19, 0x04, 0x71, 0x23, 0x84, 0x08, 0x87, 0x9d, 0x06, 0x5a, 0x89, 0x98, 0x89, 0xda, 0xf7,
	0x89, 0x7f, 0xf8, 0x10, 0xc7, 0xe0, 0x09, 0x19, 0xc9, 0x8d, 0x08, 0x01, 0x15, 0xaa, 0x22, 0xfa,
	0x29, 0xf8, 0x35, 0xa7, 0x82, 0x7c, 0x08, 0x43, 0x75, 0x2d, 0xe3, 0x11, 0xbe, 0x61, 0xdc, 0x1c,
	0x8f, 0x6d, 0x00, 0xf4, 0x07, 0x00, 0x2d, 0xd6, 0x49, 0xc7, 0x1c, 0xd3, 0xe4, 0x29, 0x0c, 0x2b,
	0xaa, 0xeb, 0xc7, 0xd3, 0xc4, 0xf4, 0x4b, 0x08, 0xda, 0x1d, 0x05, 0xf9, 0x18, 0x40, 0x0f, 0x1a,
	0xa3, 0x9f, 0x9a, 0x88, 0x16, 0xc7, 0x0c, 0x10, 0xa5, 0x00, 0x8c, 0xdf, 0xfd, 0x28, 0xcb, 0x34,
	0x5f, 0x0a, 0xf5, 0xfc, 0x53, 0xc9, 0x33, 0x81, 0xb5, 0x3e, 0xd3, 0x01, 0x8d, 0x21, 0x60, 0xfc,
	0x4e, 0xc1, 0x17, 0x92, 0x67, 0x8a, 0x3a, 0x21, 0xa3, 0x12, 0x83, 0xc6, 0x51, 0x66, 0x4a, 0x6d,
	0x13, 0x17, 0x9b, 0x5c, 0xff, 0x3d, 0xba, 0x4c, 0x07, 0x6a, 0xf2, 0x26, 0x69, 0xc9, 0xf1, 0x4b,
	0x06, 0xed, 0xe5, 0xb2, 0x36, 0x41, 0xb3, 0xe6, 0x10, 0xb4, 0xfd, 0xe9, 0xbf, 0xa3, 0xe7, 0x30,
	0x58, 0xa5, 0x42, 0x32, 0x7e, 0xb7, 0xf7, 0xbd, 0x63, 0xf4, 0xc8, 0x6a, 0x88, 0xa1, 0xa2, 0xd3,
	0x51, 0xf1, 0x16, 0x46, 0x8c, 0xaf, 0x57, 0xbb, 0xeb, 0x4a, 0x9c, 0x47, 0x29, 0x49, 0x3e, 0x80,
	0xf3, 0x78, 0x53, 0x96, 0x3c, 0x97, 0xad, 0x35, 0x6d, 0xb4, 0xe6, 0x41, 0xfe, 0xc6, 0xc3, 0x0f,
	0xba, 0xd9, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x1d, 0x74, 0x0c, 0x4b, 0xde, 0x09, 0x00, 0x00,
}
