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

/*
Package lnrpc is a generated protocol buffer package.

It is generated from these files:
	rpc.proto

It has these top-level messages:
	SendRequest
	SendResponse
	ChannelPoint
	LightningAddress
	SendManyRequest
	SendManyResponse
	SendCoinsRequest
	SendCoinsResponse
	NewAddressRequest
	NewAddressResponse
	ConnectPeerRequest
	ConnectPeerResponse
	HTLC
	ActiveChannel
	ListChannelsRequest
	ListChannelsResponse
	Peer
	ListPeersRequest
	ListPeersResponse
	GetInfoRequest
	GetInfoResponse
	ConfirmationUpdate
	ChannelOpenUpdate
	ChannelCloseUpdate
	CloseChannelRequest
	CloseStatusUpdate
	PendingUpdate
	OpenChannelRequest
	OpenStatusUpdate
	PendingChannelRequest
	PendingChannelResponse
	WalletBalanceRequest
	WalletBalanceResponse
	ChannelBalanceRequest
	ChannelBalanceResponse
	RoutingTableLink
	ShowRoutingTableRequest
	ShowRoutingTableResponse
	Invoice
	AddInvoiceResponse
	PaymentHash
	ListInvoiceRequest
	ListInvoiceResponse
*/
package lnrpc

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"

import (
	context "golang.org/x/net/context"
	grpc "google.golang.org/grpc"
)

// 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.ProtoPackageIsVersion2 // please upgrade the proto package

type ChannelStatus int32

const (
	ChannelStatus_ALL     ChannelStatus = 0
	ChannelStatus_OPENING ChannelStatus = 1
	ChannelStatus_CLOSING ChannelStatus = 2
)

var ChannelStatus_name = map[int32]string{
	0: "ALL",
	1: "OPENING",
	2: "CLOSING",
}
var ChannelStatus_value = map[string]int32{
	"ALL":     0,
	"OPENING": 1,
	"CLOSING": 2,
}

func (x ChannelStatus) String() string {
	return proto.EnumName(ChannelStatus_name, int32(x))
}
func (ChannelStatus) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

type NewAddressRequest_AddressType int32

const (
	NewAddressRequest_WITNESS_PUBKEY_HASH NewAddressRequest_AddressType = 0
	NewAddressRequest_NESTED_PUBKEY_HASH  NewAddressRequest_AddressType = 1
	NewAddressRequest_PUBKEY_HASH         NewAddressRequest_AddressType = 2
)

var NewAddressRequest_AddressType_name = map[int32]string{
	0: "WITNESS_PUBKEY_HASH",
	1: "NESTED_PUBKEY_HASH",
	2: "PUBKEY_HASH",
}
var NewAddressRequest_AddressType_value = map[string]int32{
	"WITNESS_PUBKEY_HASH": 0,
	"NESTED_PUBKEY_HASH":  1,
	"PUBKEY_HASH":         2,
}

func (x NewAddressRequest_AddressType) String() string {
	return proto.EnumName(NewAddressRequest_AddressType_name, int32(x))
}
func (NewAddressRequest_AddressType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor0, []int{8, 0}
}

type SendRequest struct {
	Dest        []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"`
	Amt         int64  `protobuf:"varint,2,opt,name=amt" json:"amt,omitempty"`
	PaymentHash []byte `protobuf:"bytes,3,opt,name=payment_hash,proto3" json:"payment_hash,omitempty"`
	FastSend    bool   `protobuf:"varint,4,opt,name=fast_send" json:"fast_send,omitempty"`
}

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

type SendResponse struct {
}

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

type ChannelPoint struct {
	FundingTxid []byte `protobuf:"bytes,1,opt,name=funding_txid,proto3" json:"funding_txid,omitempty"`
	OutputIndex uint32 `protobuf:"varint,2,opt,name=output_index" json:"output_index,omitempty"`
}

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

type LightningAddress struct {
	PubKeyHash string `protobuf:"bytes,1,opt,name=pubKeyHash" json:"pubKeyHash,omitempty"`
	Host       string `protobuf:"bytes,2,opt,name=host" json:"host,omitempty"`
}

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

type SendManyRequest struct {
	AddrToAmount map[string]int64 `protobuf:"bytes,1,rep,name=AddrToAmount" json:"AddrToAmount,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
}

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

func (m *SendManyRequest) GetAddrToAmount() map[string]int64 {
	if m != nil {
		return m.AddrToAmount
	}
	return nil
}

type SendManyResponse struct {
	Txid string `protobuf:"bytes,1,opt,name=txid" json:"txid,omitempty"`
}

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

type SendCoinsRequest struct {
	Addr   string `protobuf:"bytes,1,opt,name=addr" json:"addr,omitempty"`
	Amount int64  `protobuf:"varint,2,opt,name=amount" json:"amount,omitempty"`
}

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

type SendCoinsResponse struct {
	Txid string `protobuf:"bytes,1,opt,name=txid" json:"txid,omitempty"`
}

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

type NewAddressRequest struct {
	Type NewAddressRequest_AddressType `protobuf:"varint,1,opt,name=type,enum=lnrpc.NewAddressRequest_AddressType" json:"type,omitempty"`
}

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

type NewAddressResponse struct {
	Address string `protobuf:"bytes,1,opt,name=address" json:"address,omitempty"`
}

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

type ConnectPeerRequest struct {
	Addr *LightningAddress `protobuf:"bytes,1,opt,name=addr" json:"addr,omitempty"`
}

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

func (m *ConnectPeerRequest) GetAddr() *LightningAddress {
	if m != nil {
		return m.Addr
	}
	return nil
}

type ConnectPeerResponse struct {
	PeerId int32 `protobuf:"varint,1,opt,name=peer_id" json:"peer_id,omitempty"`
}

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

type HTLC struct {
	Incoming         bool   `protobuf:"varint,1,opt,name=incoming" json:"incoming,omitempty"`
	Amount           int64  `protobuf:"varint,2,opt,name=amount" json:"amount,omitempty"`
	HashLock         []byte `protobuf:"bytes,3,opt,name=hash_lock,proto3" json:"hash_lock,omitempty"`
	ExpirationHeight uint32 `protobuf:"varint,4,opt,name=expiration_height" json:"expiration_height,omitempty"`
	RevocationDelay  uint32 `protobuf:"varint,5,opt,name=revocation_delay" json:"revocation_delay,omitempty"`
}

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

type ActiveChannel struct {
	RemotePubkey     string  `protobuf:"bytes,1,opt,name=remote_pubkey" json:"remote_pubkey,omitempty"`
	ChannelPoint     string  `protobuf:"bytes,2,opt,name=channel_point" json:"channel_point,omitempty"`
	Capacity         int64   `protobuf:"varint,3,opt,name=capacity" json:"capacity,omitempty"`
	LocalBalance     int64   `protobuf:"varint,4,opt,name=local_balance" json:"local_balance,omitempty"`
	RemoteBalance    int64   `protobuf:"varint,5,opt,name=remote_balance" json:"remote_balance,omitempty"`
	UnsettledBalance int64   `protobuf:"varint,6,opt,name=unsettled_balance" json:"unsettled_balance,omitempty"`
	PendingHtlcs     []*HTLC `protobuf:"bytes,7,rep,name=pending_htlcs" json:"pending_htlcs,omitempty"`
	NumUpdates       uint64  `protobuf:"varint,8,opt,name=num_updates" json:"num_updates,omitempty"`
}

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

func (m *ActiveChannel) GetPendingHtlcs() []*HTLC {
	if m != nil {
		return m.PendingHtlcs
	}
	return nil
}

type ListChannelsRequest struct {
}

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

type ListChannelsResponse struct {
	Channels []*ActiveChannel `protobuf:"bytes,9,rep,name=channels" json:"channels,omitempty"`
}

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

func (m *ListChannelsResponse) GetChannels() []*ActiveChannel {
	if m != nil {
		return m.Channels
	}
	return nil
}

type Peer struct {
	LightningId string `protobuf:"bytes,1,opt,name=lightning_id" json:"lightning_id,omitempty"`
	PeerId      int32  `protobuf:"varint,2,opt,name=peer_id" json:"peer_id,omitempty"`
	Address     string `protobuf:"bytes,3,opt,name=address" json:"address,omitempty"`
	BytesSent   uint64 `protobuf:"varint,4,opt,name=bytes_sent" json:"bytes_sent,omitempty"`
	BytesRecv   uint64 `protobuf:"varint,5,opt,name=bytes_recv" json:"bytes_recv,omitempty"`
	SatSent     int64  `protobuf:"varint,6,opt,name=sat_sent" json:"sat_sent,omitempty"`
	SatRecv     int64  `protobuf:"varint,7,opt,name=sat_recv" json:"sat_recv,omitempty"`
	Inbound     bool   `protobuf:"varint,8,opt,name=inbound" json:"inbound,omitempty"`
}

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

type ListPeersRequest struct {
}

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

type ListPeersResponse struct {
	Peers []*Peer `protobuf:"bytes,1,rep,name=peers" json:"peers,omitempty"`
}

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

func (m *ListPeersResponse) GetPeers() []*Peer {
	if m != nil {
		return m.Peers
	}
	return nil
}

type GetInfoRequest struct {
}

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

type GetInfoResponse struct {
	LightningId        string `protobuf:"bytes,1,opt,name=lightning_id" json:"lightning_id,omitempty"`
	IdentityAddress    string `protobuf:"bytes,2,opt,name=identity_address" json:"identity_address,omitempty"`
	IdentityPubkey     string `protobuf:"bytes,3,opt,name=identity_pubkey" json:"identity_pubkey,omitempty"`
	NumPendingChannels uint32 `protobuf:"varint,4,opt,name=num_pending_channels" json:"num_pending_channels,omitempty"`
	NumActiveChannels  uint32 `protobuf:"varint,5,opt,name=num_active_channels" json:"num_active_channels,omitempty"`
	NumPeers           uint32 `protobuf:"varint,6,opt,name=num_peers" json:"num_peers,omitempty"`
}

func (m *GetInfoResponse) Reset()                    { *m = GetInfoResponse{} }
func (m *GetInfoResponse) String() string            { return proto.CompactTextString(m) }
func (*GetInfoResponse) ProtoMessage()               {}
func (*GetInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }

type ConfirmationUpdate struct {
	BlockSha     []byte `protobuf:"bytes,1,opt,name=block_sha,proto3" json:"block_sha,omitempty"`
	BlockHeight  int32  `protobuf:"varint,2,opt,name=block_height" json:"block_height,omitempty"`
	NumConfsLeft uint32 `protobuf:"varint,3,opt,name=num_confs_left" json:"num_confs_left,omitempty"`
}

func (m *ConfirmationUpdate) Reset()                    { *m = ConfirmationUpdate{} }
func (m *ConfirmationUpdate) String() string            { return proto.CompactTextString(m) }
func (*ConfirmationUpdate) ProtoMessage()               {}
func (*ConfirmationUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }

type ChannelOpenUpdate struct {
	ChannelPoint *ChannelPoint `protobuf:"bytes,1,opt,name=channel_point" json:"channel_point,omitempty"`
}

func (m *ChannelOpenUpdate) Reset()                    { *m = ChannelOpenUpdate{} }
func (m *ChannelOpenUpdate) String() string            { return proto.CompactTextString(m) }
func (*ChannelOpenUpdate) ProtoMessage()               {}
func (*ChannelOpenUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }

func (m *ChannelOpenUpdate) GetChannelPoint() *ChannelPoint {
	if m != nil {
		return m.ChannelPoint
	}
	return nil
}

type ChannelCloseUpdate struct {
	ClosingTxid []byte `protobuf:"bytes,1,opt,name=closing_txid,proto3" json:"closing_txid,omitempty"`
	Success     bool   `protobuf:"varint,2,opt,name=success" json:"success,omitempty"`
}

func (m *ChannelCloseUpdate) Reset()                    { *m = ChannelCloseUpdate{} }
func (m *ChannelCloseUpdate) String() string            { return proto.CompactTextString(m) }
func (*ChannelCloseUpdate) ProtoMessage()               {}
func (*ChannelCloseUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }

type CloseChannelRequest struct {
	ChannelPoint *ChannelPoint `protobuf:"bytes,1,opt,name=channel_point" json:"channel_point,omitempty"`
	TimeLimit    int64         `protobuf:"varint,2,opt,name=time_limit" json:"time_limit,omitempty"`
	Force        bool          `protobuf:"varint,3,opt,name=force" json:"force,omitempty"`
}

func (m *CloseChannelRequest) Reset()                    { *m = CloseChannelRequest{} }
func (m *CloseChannelRequest) String() string            { return proto.CompactTextString(m) }
func (*CloseChannelRequest) ProtoMessage()               {}
func (*CloseChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }

func (m *CloseChannelRequest) GetChannelPoint() *ChannelPoint {
	if m != nil {
		return m.ChannelPoint
	}
	return nil
}

type CloseStatusUpdate struct {
	// Types that are valid to be assigned to Update:
	//	*CloseStatusUpdate_ClosePending
	//	*CloseStatusUpdate_Confirmation
	//	*CloseStatusUpdate_ChanClose
	Update isCloseStatusUpdate_Update `protobuf_oneof:"update"`
}

func (m *CloseStatusUpdate) Reset()                    { *m = CloseStatusUpdate{} }
func (m *CloseStatusUpdate) String() string            { return proto.CompactTextString(m) }
func (*CloseStatusUpdate) ProtoMessage()               {}
func (*CloseStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }

type isCloseStatusUpdate_Update interface {
	isCloseStatusUpdate_Update()
}

type CloseStatusUpdate_ClosePending struct {
	ClosePending *PendingUpdate `protobuf:"bytes,1,opt,name=close_pending,oneof"`
}
type CloseStatusUpdate_Confirmation struct {
	Confirmation *ConfirmationUpdate `protobuf:"bytes,2,opt,name=confirmation,oneof"`
}
type CloseStatusUpdate_ChanClose struct {
	ChanClose *ChannelCloseUpdate `protobuf:"bytes,3,opt,name=chan_close,oneof"`
}

func (*CloseStatusUpdate_ClosePending) isCloseStatusUpdate_Update() {}
func (*CloseStatusUpdate_Confirmation) isCloseStatusUpdate_Update() {}
func (*CloseStatusUpdate_ChanClose) isCloseStatusUpdate_Update()    {}

func (m *CloseStatusUpdate) GetUpdate() isCloseStatusUpdate_Update {
	if m != nil {
		return m.Update
	}
	return nil
}

func (m *CloseStatusUpdate) GetClosePending() *PendingUpdate {
	if x, ok := m.GetUpdate().(*CloseStatusUpdate_ClosePending); ok {
		return x.ClosePending
	}
	return nil
}

func (m *CloseStatusUpdate) GetConfirmation() *ConfirmationUpdate {
	if x, ok := m.GetUpdate().(*CloseStatusUpdate_Confirmation); ok {
		return x.Confirmation
	}
	return nil
}

func (m *CloseStatusUpdate) GetChanClose() *ChannelCloseUpdate {
	if x, ok := m.GetUpdate().(*CloseStatusUpdate_ChanClose); ok {
		return x.ChanClose
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*CloseStatusUpdate) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _CloseStatusUpdate_OneofMarshaler, _CloseStatusUpdate_OneofUnmarshaler, _CloseStatusUpdate_OneofSizer, []interface{}{
		(*CloseStatusUpdate_ClosePending)(nil),
		(*CloseStatusUpdate_Confirmation)(nil),
		(*CloseStatusUpdate_ChanClose)(nil),
	}
}

func _CloseStatusUpdate_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*CloseStatusUpdate)
	// update
	switch x := m.Update.(type) {
	case *CloseStatusUpdate_ClosePending:
		b.EncodeVarint(1<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.ClosePending); err != nil {
			return err
		}
	case *CloseStatusUpdate_Confirmation:
		b.EncodeVarint(2<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Confirmation); err != nil {
			return err
		}
	case *CloseStatusUpdate_ChanClose:
		b.EncodeVarint(3<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.ChanClose); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("CloseStatusUpdate.Update has unexpected type %T", x)
	}
	return nil
}

func _CloseStatusUpdate_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*CloseStatusUpdate)
	switch tag {
	case 1: // update.close_pending
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(PendingUpdate)
		err := b.DecodeMessage(msg)
		m.Update = &CloseStatusUpdate_ClosePending{msg}
		return true, err
	case 2: // update.confirmation
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(ConfirmationUpdate)
		err := b.DecodeMessage(msg)
		m.Update = &CloseStatusUpdate_Confirmation{msg}
		return true, err
	case 3: // update.chan_close
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(ChannelCloseUpdate)
		err := b.DecodeMessage(msg)
		m.Update = &CloseStatusUpdate_ChanClose{msg}
		return true, err
	default:
		return false, nil
	}
}

func _CloseStatusUpdate_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*CloseStatusUpdate)
	// update
	switch x := m.Update.(type) {
	case *CloseStatusUpdate_ClosePending:
		s := proto.Size(x.ClosePending)
		n += proto.SizeVarint(1<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *CloseStatusUpdate_Confirmation:
		s := proto.Size(x.Confirmation)
		n += proto.SizeVarint(2<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *CloseStatusUpdate_ChanClose:
		s := proto.Size(x.ChanClose)
		n += proto.SizeVarint(3<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type PendingUpdate struct {
	Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"`
}

func (m *PendingUpdate) Reset()                    { *m = PendingUpdate{} }
func (m *PendingUpdate) String() string            { return proto.CompactTextString(m) }
func (*PendingUpdate) ProtoMessage()               {}
func (*PendingUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }

type OpenChannelRequest struct {
	TargetPeerId        int32  `protobuf:"varint,1,opt,name=target_peer_id" json:"target_peer_id,omitempty"`
	TargetNode          []byte `protobuf:"bytes,2,opt,name=target_node,proto3" json:"target_node,omitempty"`
	LocalFundingAmount  int64  `protobuf:"varint,3,opt,name=local_funding_amount" json:"local_funding_amount,omitempty"`
	RemoteFundingAmount int64  `protobuf:"varint,4,opt,name=remote_funding_amount" json:"remote_funding_amount,omitempty"`
	CommissionSize      int64  `protobuf:"varint,5,opt,name=commission_size" json:"commission_size,omitempty"`
	NumConfs            uint32 `protobuf:"varint,6,opt,name=num_confs" json:"num_confs,omitempty"`
}

func (m *OpenChannelRequest) Reset()                    { *m = OpenChannelRequest{} }
func (m *OpenChannelRequest) String() string            { return proto.CompactTextString(m) }
func (*OpenChannelRequest) ProtoMessage()               {}
func (*OpenChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }

type OpenStatusUpdate struct {
	// Types that are valid to be assigned to Update:
	//	*OpenStatusUpdate_ChanPending
	//	*OpenStatusUpdate_Confirmation
	//	*OpenStatusUpdate_ChanOpen
	Update isOpenStatusUpdate_Update `protobuf_oneof:"update"`
}

func (m *OpenStatusUpdate) Reset()                    { *m = OpenStatusUpdate{} }
func (m *OpenStatusUpdate) String() string            { return proto.CompactTextString(m) }
func (*OpenStatusUpdate) ProtoMessage()               {}
func (*OpenStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }

type isOpenStatusUpdate_Update interface {
	isOpenStatusUpdate_Update()
}

type OpenStatusUpdate_ChanPending struct {
	ChanPending *PendingUpdate `protobuf:"bytes,1,opt,name=chan_pending,oneof"`
}
type OpenStatusUpdate_Confirmation struct {
	Confirmation *ConfirmationUpdate `protobuf:"bytes,2,opt,name=confirmation,oneof"`
}
type OpenStatusUpdate_ChanOpen struct {
	ChanOpen *ChannelOpenUpdate `protobuf:"bytes,3,opt,name=chan_open,oneof"`
}

func (*OpenStatusUpdate_ChanPending) isOpenStatusUpdate_Update()  {}
func (*OpenStatusUpdate_Confirmation) isOpenStatusUpdate_Update() {}
func (*OpenStatusUpdate_ChanOpen) isOpenStatusUpdate_Update()     {}

func (m *OpenStatusUpdate) GetUpdate() isOpenStatusUpdate_Update {
	if m != nil {
		return m.Update
	}
	return nil
}

func (m *OpenStatusUpdate) GetChanPending() *PendingUpdate {
	if x, ok := m.GetUpdate().(*OpenStatusUpdate_ChanPending); ok {
		return x.ChanPending
	}
	return nil
}

func (m *OpenStatusUpdate) GetConfirmation() *ConfirmationUpdate {
	if x, ok := m.GetUpdate().(*OpenStatusUpdate_Confirmation); ok {
		return x.Confirmation
	}
	return nil
}

func (m *OpenStatusUpdate) GetChanOpen() *ChannelOpenUpdate {
	if x, ok := m.GetUpdate().(*OpenStatusUpdate_ChanOpen); ok {
		return x.ChanOpen
	}
	return nil
}

// XXX_OneofFuncs is for the internal use of the proto package.
func (*OpenStatusUpdate) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
	return _OpenStatusUpdate_OneofMarshaler, _OpenStatusUpdate_OneofUnmarshaler, _OpenStatusUpdate_OneofSizer, []interface{}{
		(*OpenStatusUpdate_ChanPending)(nil),
		(*OpenStatusUpdate_Confirmation)(nil),
		(*OpenStatusUpdate_ChanOpen)(nil),
	}
}

func _OpenStatusUpdate_OneofMarshaler(msg proto.Message, b *proto.Buffer) error {
	m := msg.(*OpenStatusUpdate)
	// update
	switch x := m.Update.(type) {
	case *OpenStatusUpdate_ChanPending:
		b.EncodeVarint(1<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.ChanPending); err != nil {
			return err
		}
	case *OpenStatusUpdate_Confirmation:
		b.EncodeVarint(2<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.Confirmation); err != nil {
			return err
		}
	case *OpenStatusUpdate_ChanOpen:
		b.EncodeVarint(3<<3 | proto.WireBytes)
		if err := b.EncodeMessage(x.ChanOpen); err != nil {
			return err
		}
	case nil:
	default:
		return fmt.Errorf("OpenStatusUpdate.Update has unexpected type %T", x)
	}
	return nil
}

func _OpenStatusUpdate_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
	m := msg.(*OpenStatusUpdate)
	switch tag {
	case 1: // update.chan_pending
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(PendingUpdate)
		err := b.DecodeMessage(msg)
		m.Update = &OpenStatusUpdate_ChanPending{msg}
		return true, err
	case 2: // update.confirmation
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(ConfirmationUpdate)
		err := b.DecodeMessage(msg)
		m.Update = &OpenStatusUpdate_Confirmation{msg}
		return true, err
	case 3: // update.chan_open
		if wire != proto.WireBytes {
			return true, proto.ErrInternalBadWireType
		}
		msg := new(ChannelOpenUpdate)
		err := b.DecodeMessage(msg)
		m.Update = &OpenStatusUpdate_ChanOpen{msg}
		return true, err
	default:
		return false, nil
	}
}

func _OpenStatusUpdate_OneofSizer(msg proto.Message) (n int) {
	m := msg.(*OpenStatusUpdate)
	// update
	switch x := m.Update.(type) {
	case *OpenStatusUpdate_ChanPending:
		s := proto.Size(x.ChanPending)
		n += proto.SizeVarint(1<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *OpenStatusUpdate_Confirmation:
		s := proto.Size(x.Confirmation)
		n += proto.SizeVarint(2<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case *OpenStatusUpdate_ChanOpen:
		s := proto.Size(x.ChanOpen)
		n += proto.SizeVarint(3<<3 | proto.WireBytes)
		n += proto.SizeVarint(uint64(s))
		n += s
	case nil:
	default:
		panic(fmt.Sprintf("proto: unexpected type %T in oneof", x))
	}
	return n
}

type PendingChannelRequest struct {
	Status ChannelStatus `protobuf:"varint,1,opt,name=status,enum=lnrpc.ChannelStatus" json:"status,omitempty"`
}

func (m *PendingChannelRequest) Reset()                    { *m = PendingChannelRequest{} }
func (m *PendingChannelRequest) String() string            { return proto.CompactTextString(m) }
func (*PendingChannelRequest) ProtoMessage()               {}
func (*PendingChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }

type PendingChannelResponse struct {
	PendingChannels []*PendingChannelResponse_PendingChannel `protobuf:"bytes,1,rep,name=pending_channels" json:"pending_channels,omitempty"`
}

func (m *PendingChannelResponse) Reset()                    { *m = PendingChannelResponse{} }
func (m *PendingChannelResponse) String() string            { return proto.CompactTextString(m) }
func (*PendingChannelResponse) ProtoMessage()               {}
func (*PendingChannelResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }

func (m *PendingChannelResponse) GetPendingChannels() []*PendingChannelResponse_PendingChannel {
	if m != nil {
		return m.PendingChannels
	}
	return nil
}

type PendingChannelResponse_PendingChannel struct {
	PeerId        int32         `protobuf:"varint,1,opt,name=peer_id" json:"peer_id,omitempty"`
	LightningId   string        `protobuf:"bytes,2,opt,name=lightning_id" json:"lightning_id,omitempty"`
	ChannelPoint  string        `protobuf:"bytes,3,opt,name=channel_point" json:"channel_point,omitempty"`
	Capacity      int64         `protobuf:"varint,4,opt,name=capacity" json:"capacity,omitempty"`
	LocalBalance  int64         `protobuf:"varint,5,opt,name=local_balance" json:"local_balance,omitempty"`
	RemoteBalance int64         `protobuf:"varint,6,opt,name=remote_balance" json:"remote_balance,omitempty"`
	ClosingTxid   string        `protobuf:"bytes,7,opt,name=closing_txid" json:"closing_txid,omitempty"`
	Status        ChannelStatus `protobuf:"varint,8,opt,name=status,enum=lnrpc.ChannelStatus" json:"status,omitempty"`
}

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

type WalletBalanceRequest struct {
	WitnessOnly bool `protobuf:"varint,1,opt,name=witness_only" json:"witness_only,omitempty"`
}

func (m *WalletBalanceRequest) Reset()                    { *m = WalletBalanceRequest{} }
func (m *WalletBalanceRequest) String() string            { return proto.CompactTextString(m) }
func (*WalletBalanceRequest) ProtoMessage()               {}
func (*WalletBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }

type WalletBalanceResponse struct {
	Balance float64 `protobuf:"fixed64,1,opt,name=balance" json:"balance,omitempty"`
}

func (m *WalletBalanceResponse) Reset()                    { *m = WalletBalanceResponse{} }
func (m *WalletBalanceResponse) String() string            { return proto.CompactTextString(m) }
func (*WalletBalanceResponse) ProtoMessage()               {}
func (*WalletBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }

type ChannelBalanceRequest struct {
}

func (m *ChannelBalanceRequest) Reset()                    { *m = ChannelBalanceRequest{} }
func (m *ChannelBalanceRequest) String() string            { return proto.CompactTextString(m) }
func (*ChannelBalanceRequest) ProtoMessage()               {}
func (*ChannelBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} }

type ChannelBalanceResponse struct {
	Balance int64 `protobuf:"varint,1,opt,name=balance" json:"balance,omitempty"`
}

func (m *ChannelBalanceResponse) Reset()                    { *m = ChannelBalanceResponse{} }
func (m *ChannelBalanceResponse) String() string            { return proto.CompactTextString(m) }
func (*ChannelBalanceResponse) ProtoMessage()               {}
func (*ChannelBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} }

type RoutingTableLink struct {
	Id1      string  `protobuf:"bytes,1,opt,name=id1" json:"id1,omitempty"`
	Id2      string  `protobuf:"bytes,2,opt,name=id2" json:"id2,omitempty"`
	Outpoint string  `protobuf:"bytes,3,opt,name=outpoint" json:"outpoint,omitempty"`
	Capacity int64   `protobuf:"varint,4,opt,name=capacity" json:"capacity,omitempty"`
	Weight   float64 `protobuf:"fixed64,5,opt,name=weight" json:"weight,omitempty"`
}

func (m *RoutingTableLink) Reset()                    { *m = RoutingTableLink{} }
func (m *RoutingTableLink) String() string            { return proto.CompactTextString(m) }
func (*RoutingTableLink) ProtoMessage()               {}
func (*RoutingTableLink) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} }

type ShowRoutingTableRequest struct {
}

func (m *ShowRoutingTableRequest) Reset()                    { *m = ShowRoutingTableRequest{} }
func (m *ShowRoutingTableRequest) String() string            { return proto.CompactTextString(m) }
func (*ShowRoutingTableRequest) ProtoMessage()               {}
func (*ShowRoutingTableRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }

type ShowRoutingTableResponse struct {
	Channels []*RoutingTableLink `protobuf:"bytes,1,rep,name=channels" json:"channels,omitempty"`
}

func (m *ShowRoutingTableResponse) Reset()                    { *m = ShowRoutingTableResponse{} }
func (m *ShowRoutingTableResponse) String() string            { return proto.CompactTextString(m) }
func (*ShowRoutingTableResponse) ProtoMessage()               {}
func (*ShowRoutingTableResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }

func (m *ShowRoutingTableResponse) GetChannels() []*RoutingTableLink {
	if m != nil {
		return m.Channels
	}
	return nil
}

type Invoice struct {
	Memo      string `protobuf:"bytes,1,opt,name=memo" json:"memo,omitempty"`
	Receipt   []byte `protobuf:"bytes,2,opt,name=receipt,proto3" json:"receipt,omitempty"`
	RPreimage []byte `protobuf:"bytes,3,opt,name=r_preimage,proto3" json:"r_preimage,omitempty"`
	RHash     []byte `protobuf:"bytes,4,opt,name=r_hash,proto3" json:"r_hash,omitempty"`
	Value     int64  `protobuf:"varint,5,opt,name=value" json:"value,omitempty"`
	Settled   bool   `protobuf:"varint,6,opt,name=settled" json:"settled,omitempty"`
}

func (m *Invoice) Reset()                    { *m = Invoice{} }
func (m *Invoice) String() string            { return proto.CompactTextString(m) }
func (*Invoice) ProtoMessage()               {}
func (*Invoice) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }

type AddInvoiceResponse struct {
	RHash []byte `protobuf:"bytes,1,opt,name=r_hash,proto3" json:"r_hash,omitempty"`
}

func (m *AddInvoiceResponse) Reset()                    { *m = AddInvoiceResponse{} }
func (m *AddInvoiceResponse) String() string            { return proto.CompactTextString(m) }
func (*AddInvoiceResponse) ProtoMessage()               {}
func (*AddInvoiceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }

type PaymentHash struct {
	RHash []byte `protobuf:"bytes,1,opt,name=r_hash,proto3" json:"r_hash,omitempty"`
}

func (m *PaymentHash) Reset()                    { *m = PaymentHash{} }
func (m *PaymentHash) String() string            { return proto.CompactTextString(m) }
func (*PaymentHash) ProtoMessage()               {}
func (*PaymentHash) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }

type ListInvoiceRequest struct {
	PendingOnly bool `protobuf:"varint,1,opt,name=pending_only" json:"pending_only,omitempty"`
}

func (m *ListInvoiceRequest) Reset()                    { *m = ListInvoiceRequest{} }
func (m *ListInvoiceRequest) String() string            { return proto.CompactTextString(m) }
func (*ListInvoiceRequest) ProtoMessage()               {}
func (*ListInvoiceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }

type ListInvoiceResponse struct {
	Invoices []*Invoice `protobuf:"bytes,1,rep,name=invoices" json:"invoices,omitempty"`
}

func (m *ListInvoiceResponse) Reset()                    { *m = ListInvoiceResponse{} }
func (m *ListInvoiceResponse) String() string            { return proto.CompactTextString(m) }
func (*ListInvoiceResponse) ProtoMessage()               {}
func (*ListInvoiceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }

func (m *ListInvoiceResponse) GetInvoices() []*Invoice {
	if m != nil {
		return m.Invoices
	}
	return nil
}

func init() {
	proto.RegisterType((*SendRequest)(nil), "lnrpc.SendRequest")
	proto.RegisterType((*SendResponse)(nil), "lnrpc.SendResponse")
	proto.RegisterType((*ChannelPoint)(nil), "lnrpc.ChannelPoint")
	proto.RegisterType((*LightningAddress)(nil), "lnrpc.LightningAddress")
	proto.RegisterType((*SendManyRequest)(nil), "lnrpc.SendManyRequest")
	proto.RegisterType((*SendManyResponse)(nil), "lnrpc.SendManyResponse")
	proto.RegisterType((*SendCoinsRequest)(nil), "lnrpc.SendCoinsRequest")
	proto.RegisterType((*SendCoinsResponse)(nil), "lnrpc.SendCoinsResponse")
	proto.RegisterType((*NewAddressRequest)(nil), "lnrpc.NewAddressRequest")
	proto.RegisterType((*NewAddressResponse)(nil), "lnrpc.NewAddressResponse")
	proto.RegisterType((*ConnectPeerRequest)(nil), "lnrpc.ConnectPeerRequest")
	proto.RegisterType((*ConnectPeerResponse)(nil), "lnrpc.ConnectPeerResponse")
	proto.RegisterType((*HTLC)(nil), "lnrpc.HTLC")
	proto.RegisterType((*ActiveChannel)(nil), "lnrpc.ActiveChannel")
	proto.RegisterType((*ListChannelsRequest)(nil), "lnrpc.ListChannelsRequest")
	proto.RegisterType((*ListChannelsResponse)(nil), "lnrpc.ListChannelsResponse")
	proto.RegisterType((*Peer)(nil), "lnrpc.Peer")
	proto.RegisterType((*ListPeersRequest)(nil), "lnrpc.ListPeersRequest")
	proto.RegisterType((*ListPeersResponse)(nil), "lnrpc.ListPeersResponse")
	proto.RegisterType((*GetInfoRequest)(nil), "lnrpc.GetInfoRequest")
	proto.RegisterType((*GetInfoResponse)(nil), "lnrpc.GetInfoResponse")
	proto.RegisterType((*ConfirmationUpdate)(nil), "lnrpc.ConfirmationUpdate")
	proto.RegisterType((*ChannelOpenUpdate)(nil), "lnrpc.ChannelOpenUpdate")
	proto.RegisterType((*ChannelCloseUpdate)(nil), "lnrpc.ChannelCloseUpdate")
	proto.RegisterType((*CloseChannelRequest)(nil), "lnrpc.CloseChannelRequest")
	proto.RegisterType((*CloseStatusUpdate)(nil), "lnrpc.CloseStatusUpdate")
	proto.RegisterType((*PendingUpdate)(nil), "lnrpc.PendingUpdate")
	proto.RegisterType((*OpenChannelRequest)(nil), "lnrpc.OpenChannelRequest")
	proto.RegisterType((*OpenStatusUpdate)(nil), "lnrpc.OpenStatusUpdate")
	proto.RegisterType((*PendingChannelRequest)(nil), "lnrpc.PendingChannelRequest")
	proto.RegisterType((*PendingChannelResponse)(nil), "lnrpc.PendingChannelResponse")
	proto.RegisterType((*PendingChannelResponse_PendingChannel)(nil), "lnrpc.PendingChannelResponse.PendingChannel")
	proto.RegisterType((*WalletBalanceRequest)(nil), "lnrpc.WalletBalanceRequest")
	proto.RegisterType((*WalletBalanceResponse)(nil), "lnrpc.WalletBalanceResponse")
	proto.RegisterType((*ChannelBalanceRequest)(nil), "lnrpc.ChannelBalanceRequest")
	proto.RegisterType((*ChannelBalanceResponse)(nil), "lnrpc.ChannelBalanceResponse")
	proto.RegisterType((*RoutingTableLink)(nil), "lnrpc.RoutingTableLink")
	proto.RegisterType((*ShowRoutingTableRequest)(nil), "lnrpc.ShowRoutingTableRequest")
	proto.RegisterType((*ShowRoutingTableResponse)(nil), "lnrpc.ShowRoutingTableResponse")
	proto.RegisterType((*Invoice)(nil), "lnrpc.Invoice")
	proto.RegisterType((*AddInvoiceResponse)(nil), "lnrpc.AddInvoiceResponse")
	proto.RegisterType((*PaymentHash)(nil), "lnrpc.PaymentHash")
	proto.RegisterType((*ListInvoiceRequest)(nil), "lnrpc.ListInvoiceRequest")
	proto.RegisterType((*ListInvoiceResponse)(nil), "lnrpc.ListInvoiceResponse")
	proto.RegisterEnum("lnrpc.ChannelStatus", ChannelStatus_name, ChannelStatus_value)
	proto.RegisterEnum("lnrpc.NewAddressRequest_AddressType", NewAddressRequest_AddressType_name, NewAddressRequest_AddressType_value)
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion3

// Client API for Lightning service

type LightningClient interface {
	WalletBalance(ctx context.Context, in *WalletBalanceRequest, opts ...grpc.CallOption) (*WalletBalanceResponse, error)
	ChannelBalance(ctx context.Context, in *ChannelBalanceRequest, opts ...grpc.CallOption) (*ChannelBalanceResponse, error)
	SendMany(ctx context.Context, in *SendManyRequest, opts ...grpc.CallOption) (*SendManyResponse, error)
	SendCoins(ctx context.Context, in *SendCoinsRequest, opts ...grpc.CallOption) (*SendCoinsResponse, error)
	NewAddress(ctx context.Context, in *NewAddressRequest, opts ...grpc.CallOption) (*NewAddressResponse, error)
	ConnectPeer(ctx context.Context, in *ConnectPeerRequest, opts ...grpc.CallOption) (*ConnectPeerResponse, error)
	ListPeers(ctx context.Context, in *ListPeersRequest, opts ...grpc.CallOption) (*ListPeersResponse, error)
	GetInfo(ctx context.Context, in *GetInfoRequest, opts ...grpc.CallOption) (*GetInfoResponse, error)
	OpenChannel(ctx context.Context, in *OpenChannelRequest, opts ...grpc.CallOption) (Lightning_OpenChannelClient, error)
	CloseChannel(ctx context.Context, in *CloseChannelRequest, opts ...grpc.CallOption) (Lightning_CloseChannelClient, error)
	PendingChannels(ctx context.Context, in *PendingChannelRequest, opts ...grpc.CallOption) (*PendingChannelResponse, error)
	ListChannels(ctx context.Context, in *ListChannelsRequest, opts ...grpc.CallOption) (*ListChannelsResponse, error)
	SendPayment(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendPaymentClient, error)
	AddInvoice(ctx context.Context, in *Invoice, opts ...grpc.CallOption) (*AddInvoiceResponse, error)
	LookupInvoice(ctx context.Context, in *PaymentHash, opts ...grpc.CallOption) (*Invoice, error)
	ListInvoices(ctx context.Context, in *ListInvoiceRequest, opts ...grpc.CallOption) (*ListInvoiceResponse, error)
	ShowRoutingTable(ctx context.Context, in *ShowRoutingTableRequest, opts ...grpc.CallOption) (*ShowRoutingTableResponse, error)
}

type lightningClient struct {
	cc *grpc.ClientConn
}

func NewLightningClient(cc *grpc.ClientConn) LightningClient {
	return &lightningClient{cc}
}

func (c *lightningClient) WalletBalance(ctx context.Context, in *WalletBalanceRequest, opts ...grpc.CallOption) (*WalletBalanceResponse, error) {
	out := new(WalletBalanceResponse)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/WalletBalance", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lightningClient) ChannelBalance(ctx context.Context, in *ChannelBalanceRequest, opts ...grpc.CallOption) (*ChannelBalanceResponse, error) {
	out := new(ChannelBalanceResponse)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/ChannelBalance", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lightningClient) SendMany(ctx context.Context, in *SendManyRequest, opts ...grpc.CallOption) (*SendManyResponse, error) {
	out := new(SendManyResponse)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/SendMany", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lightningClient) SendCoins(ctx context.Context, in *SendCoinsRequest, opts ...grpc.CallOption) (*SendCoinsResponse, error) {
	out := new(SendCoinsResponse)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/SendCoins", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lightningClient) NewAddress(ctx context.Context, in *NewAddressRequest, opts ...grpc.CallOption) (*NewAddressResponse, error) {
	out := new(NewAddressResponse)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/NewAddress", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lightningClient) ConnectPeer(ctx context.Context, in *ConnectPeerRequest, opts ...grpc.CallOption) (*ConnectPeerResponse, error) {
	out := new(ConnectPeerResponse)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/ConnectPeer", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lightningClient) ListPeers(ctx context.Context, in *ListPeersRequest, opts ...grpc.CallOption) (*ListPeersResponse, error) {
	out := new(ListPeersResponse)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/ListPeers", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lightningClient) GetInfo(ctx context.Context, in *GetInfoRequest, opts ...grpc.CallOption) (*GetInfoResponse, error) {
	out := new(GetInfoResponse)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/GetInfo", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lightningClient) OpenChannel(ctx context.Context, in *OpenChannelRequest, opts ...grpc.CallOption) (Lightning_OpenChannelClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_Lightning_serviceDesc.Streams[0], c.cc, "/lnrpc.Lightning/OpenChannel", opts...)
	if err != nil {
		return nil, err
	}
	x := &lightningOpenChannelClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Lightning_OpenChannelClient interface {
	Recv() (*OpenStatusUpdate, error)
	grpc.ClientStream
}

type lightningOpenChannelClient struct {
	grpc.ClientStream
}

func (x *lightningOpenChannelClient) Recv() (*OpenStatusUpdate, error) {
	m := new(OpenStatusUpdate)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *lightningClient) CloseChannel(ctx context.Context, in *CloseChannelRequest, opts ...grpc.CallOption) (Lightning_CloseChannelClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_Lightning_serviceDesc.Streams[1], c.cc, "/lnrpc.Lightning/CloseChannel", opts...)
	if err != nil {
		return nil, err
	}
	x := &lightningCloseChannelClient{stream}
	if err := x.ClientStream.SendMsg(in); err != nil {
		return nil, err
	}
	if err := x.ClientStream.CloseSend(); err != nil {
		return nil, err
	}
	return x, nil
}

type Lightning_CloseChannelClient interface {
	Recv() (*CloseStatusUpdate, error)
	grpc.ClientStream
}

type lightningCloseChannelClient struct {
	grpc.ClientStream
}

func (x *lightningCloseChannelClient) Recv() (*CloseStatusUpdate, error) {
	m := new(CloseStatusUpdate)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *lightningClient) PendingChannels(ctx context.Context, in *PendingChannelRequest, opts ...grpc.CallOption) (*PendingChannelResponse, error) {
	out := new(PendingChannelResponse)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/PendingChannels", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lightningClient) ListChannels(ctx context.Context, in *ListChannelsRequest, opts ...grpc.CallOption) (*ListChannelsResponse, error) {
	out := new(ListChannelsResponse)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/ListChannels", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lightningClient) SendPayment(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendPaymentClient, error) {
	stream, err := grpc.NewClientStream(ctx, &_Lightning_serviceDesc.Streams[2], c.cc, "/lnrpc.Lightning/SendPayment", opts...)
	if err != nil {
		return nil, err
	}
	x := &lightningSendPaymentClient{stream}
	return x, nil
}

type Lightning_SendPaymentClient interface {
	Send(*SendRequest) error
	Recv() (*SendResponse, error)
	grpc.ClientStream
}

type lightningSendPaymentClient struct {
	grpc.ClientStream
}

func (x *lightningSendPaymentClient) Send(m *SendRequest) error {
	return x.ClientStream.SendMsg(m)
}

func (x *lightningSendPaymentClient) Recv() (*SendResponse, error) {
	m := new(SendResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *lightningClient) AddInvoice(ctx context.Context, in *Invoice, opts ...grpc.CallOption) (*AddInvoiceResponse, error) {
	out := new(AddInvoiceResponse)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/AddInvoice", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lightningClient) LookupInvoice(ctx context.Context, in *PaymentHash, opts ...grpc.CallOption) (*Invoice, error) {
	out := new(Invoice)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/LookupInvoice", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lightningClient) ListInvoices(ctx context.Context, in *ListInvoiceRequest, opts ...grpc.CallOption) (*ListInvoiceResponse, error) {
	out := new(ListInvoiceResponse)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/ListInvoices", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lightningClient) ShowRoutingTable(ctx context.Context, in *ShowRoutingTableRequest, opts ...grpc.CallOption) (*ShowRoutingTableResponse, error) {
	out := new(ShowRoutingTableResponse)
	err := grpc.Invoke(ctx, "/lnrpc.Lightning/ShowRoutingTable", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Server API for Lightning service

type LightningServer interface {
	WalletBalance(context.Context, *WalletBalanceRequest) (*WalletBalanceResponse, error)
	ChannelBalance(context.Context, *ChannelBalanceRequest) (*ChannelBalanceResponse, error)
	SendMany(context.Context, *SendManyRequest) (*SendManyResponse, error)
	SendCoins(context.Context, *SendCoinsRequest) (*SendCoinsResponse, error)
	NewAddress(context.Context, *NewAddressRequest) (*NewAddressResponse, error)
	ConnectPeer(context.Context, *ConnectPeerRequest) (*ConnectPeerResponse, error)
	ListPeers(context.Context, *ListPeersRequest) (*ListPeersResponse, error)
	GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error)
	OpenChannel(*OpenChannelRequest, Lightning_OpenChannelServer) error
	CloseChannel(*CloseChannelRequest, Lightning_CloseChannelServer) error
	PendingChannels(context.Context, *PendingChannelRequest) (*PendingChannelResponse, error)
	ListChannels(context.Context, *ListChannelsRequest) (*ListChannelsResponse, error)
	SendPayment(Lightning_SendPaymentServer) error
	AddInvoice(context.Context, *Invoice) (*AddInvoiceResponse, error)
	LookupInvoice(context.Context, *PaymentHash) (*Invoice, error)
	ListInvoices(context.Context, *ListInvoiceRequest) (*ListInvoiceResponse, error)
	ShowRoutingTable(context.Context, *ShowRoutingTableRequest) (*ShowRoutingTableResponse, error)
}

func RegisterLightningServer(s *grpc.Server, srv LightningServer) {
	s.RegisterService(&_Lightning_serviceDesc, srv)
}

func _Lightning_WalletBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(WalletBalanceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).WalletBalance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/WalletBalance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).WalletBalance(ctx, req.(*WalletBalanceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Lightning_ChannelBalance_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ChannelBalanceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).ChannelBalance(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/ChannelBalance",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).ChannelBalance(ctx, req.(*ChannelBalanceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Lightning_SendMany_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SendManyRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).SendMany(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/SendMany",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).SendMany(ctx, req.(*SendManyRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Lightning_SendCoins_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(SendCoinsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).SendCoins(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/SendCoins",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).SendCoins(ctx, req.(*SendCoinsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Lightning_NewAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(NewAddressRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).NewAddress(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/NewAddress",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).NewAddress(ctx, req.(*NewAddressRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Lightning_ConnectPeer_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ConnectPeerRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).ConnectPeer(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/ConnectPeer",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).ConnectPeer(ctx, req.(*ConnectPeerRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Lightning_ListPeers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListPeersRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).ListPeers(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/ListPeers",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).ListPeers(ctx, req.(*ListPeersRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Lightning_GetInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(GetInfoRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).GetInfo(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/GetInfo",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).GetInfo(ctx, req.(*GetInfoRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Lightning_OpenChannel_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(OpenChannelRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(LightningServer).OpenChannel(m, &lightningOpenChannelServer{stream})
}

type Lightning_OpenChannelServer interface {
	Send(*OpenStatusUpdate) error
	grpc.ServerStream
}

type lightningOpenChannelServer struct {
	grpc.ServerStream
}

func (x *lightningOpenChannelServer) Send(m *OpenStatusUpdate) error {
	return x.ServerStream.SendMsg(m)
}

func _Lightning_CloseChannel_Handler(srv interface{}, stream grpc.ServerStream) error {
	m := new(CloseChannelRequest)
	if err := stream.RecvMsg(m); err != nil {
		return err
	}
	return srv.(LightningServer).CloseChannel(m, &lightningCloseChannelServer{stream})
}

type Lightning_CloseChannelServer interface {
	Send(*CloseStatusUpdate) error
	grpc.ServerStream
}

type lightningCloseChannelServer struct {
	grpc.ServerStream
}

func (x *lightningCloseChannelServer) Send(m *CloseStatusUpdate) error {
	return x.ServerStream.SendMsg(m)
}

func _Lightning_PendingChannels_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PendingChannelRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).PendingChannels(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/PendingChannels",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).PendingChannels(ctx, req.(*PendingChannelRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Lightning_ListChannels_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListChannelsRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).ListChannels(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/ListChannels",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).ListChannels(ctx, req.(*ListChannelsRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Lightning_SendPayment_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(LightningServer).SendPayment(&lightningSendPaymentServer{stream})
}

type Lightning_SendPaymentServer interface {
	Send(*SendResponse) error
	Recv() (*SendRequest, error)
	grpc.ServerStream
}

type lightningSendPaymentServer struct {
	grpc.ServerStream
}

func (x *lightningSendPaymentServer) Send(m *SendResponse) error {
	return x.ServerStream.SendMsg(m)
}

func (x *lightningSendPaymentServer) Recv() (*SendRequest, error) {
	m := new(SendRequest)
	if err := x.ServerStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func _Lightning_AddInvoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(Invoice)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).AddInvoice(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/AddInvoice",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).AddInvoice(ctx, req.(*Invoice))
	}
	return interceptor(ctx, in, info, handler)
}

func _Lightning_LookupInvoice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(PaymentHash)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).LookupInvoice(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/LookupInvoice",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).LookupInvoice(ctx, req.(*PaymentHash))
	}
	return interceptor(ctx, in, info, handler)
}

func _Lightning_ListInvoices_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ListInvoiceRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).ListInvoices(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/ListInvoices",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).ListInvoices(ctx, req.(*ListInvoiceRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _Lightning_ShowRoutingTable_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(ShowRoutingTableRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LightningServer).ShowRoutingTable(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/lnrpc.Lightning/ShowRoutingTable",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LightningServer).ShowRoutingTable(ctx, req.(*ShowRoutingTableRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _Lightning_serviceDesc = grpc.ServiceDesc{
	ServiceName: "lnrpc.Lightning",
	HandlerType: (*LightningServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "WalletBalance",
			Handler:    _Lightning_WalletBalance_Handler,
		},
		{
			MethodName: "ChannelBalance",
			Handler:    _Lightning_ChannelBalance_Handler,
		},
		{
			MethodName: "SendMany",
			Handler:    _Lightning_SendMany_Handler,
		},
		{
			MethodName: "SendCoins",
			Handler:    _Lightning_SendCoins_Handler,
		},
		{
			MethodName: "NewAddress",
			Handler:    _Lightning_NewAddress_Handler,
		},
		{
			MethodName: "ConnectPeer",
			Handler:    _Lightning_ConnectPeer_Handler,
		},
		{
			MethodName: "ListPeers",
			Handler:    _Lightning_ListPeers_Handler,
		},
		{
			MethodName: "GetInfo",
			Handler:    _Lightning_GetInfo_Handler,
		},
		{
			MethodName: "PendingChannels",
			Handler:    _Lightning_PendingChannels_Handler,
		},
		{
			MethodName: "ListChannels",
			Handler:    _Lightning_ListChannels_Handler,
		},
		{
			MethodName: "AddInvoice",
			Handler:    _Lightning_AddInvoice_Handler,
		},
		{
			MethodName: "LookupInvoice",
			Handler:    _Lightning_LookupInvoice_Handler,
		},
		{
			MethodName: "ListInvoices",
			Handler:    _Lightning_ListInvoices_Handler,
		},
		{
			MethodName: "ShowRoutingTable",
			Handler:    _Lightning_ShowRoutingTable_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "OpenChannel",
			Handler:       _Lightning_OpenChannel_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "CloseChannel",
			Handler:       _Lightning_CloseChannel_Handler,
			ServerStreams: true,
		},
		{
			StreamName:    "SendPayment",
			Handler:       _Lightning_SendPayment_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: fileDescriptor0,
}

func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) }

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