lnd.xprv/lnrpc/rpc.pb.go

4207 lines
149 KiB
Go

// 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:
Transaction
GetTransactionsRequest
TransactionDetails
SendRequest
SendResponse
ChannelPoint
LightningAddress
SendManyRequest
SendManyResponse
SendCoinsRequest
SendCoinsResponse
NewAddressRequest
NewWitnessAddressRequest
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
QueryRoutesRequest
QueryRoutesResponse
Hop
Route
NodeInfoRequest
NodeInfo
LightningNode
NodeAddress
RoutingPolicy
ChannelEdge
ChannelGraphRequest
ChannelGraph
ChanInfoRequest
NetworkInfoRequest
NetworkInfo
GraphTopologySubscription
GraphTopologyUpdate
NodeUpdate
ChannelEdgeUpdate
ClosedChannelUpdate
SetAliasRequest
SetAliasResponse
Invoice
AddInvoiceResponse
PaymentHash
ListInvoiceRequest
ListInvoiceResponse
InvoiceSubscription
Payment
ListPaymentsRequest
ListPaymentsResponse
DeleteAllPaymentsRequest
DeleteAllPaymentsResponse
DebugLevelRequest
DebugLevelResponse
PayReqString
PayReq
*/
package lnrpc
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "google.golang.org/genproto/googleapis/api/annotations"
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{11, 0}
}
type Transaction struct {
TxHash string `protobuf:"bytes,1,opt,name=tx_hash" json:"tx_hash,omitempty"`
Amount int64 `protobuf:"varint,2,opt,name=amount" json:"amount,omitempty"`
NumConfirmations int32 `protobuf:"varint,3,opt,name=num_confirmations" json:"num_confirmations,omitempty"`
BlockHash string `protobuf:"bytes,4,opt,name=block_hash" json:"block_hash,omitempty"`
BlockHeight int32 `protobuf:"varint,5,opt,name=block_height" json:"block_height,omitempty"`
TimeStamp int64 `protobuf:"varint,6,opt,name=time_stamp" json:"time_stamp,omitempty"`
TotalFees int64 `protobuf:"varint,7,opt,name=total_fees" json:"total_fees,omitempty"`
}
func (m *Transaction) Reset() { *m = Transaction{} }
func (m *Transaction) String() string { return proto.CompactTextString(m) }
func (*Transaction) ProtoMessage() {}
func (*Transaction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }
func (m *Transaction) GetTxHash() string {
if m != nil {
return m.TxHash
}
return ""
}
func (m *Transaction) GetAmount() int64 {
if m != nil {
return m.Amount
}
return 0
}
func (m *Transaction) GetNumConfirmations() int32 {
if m != nil {
return m.NumConfirmations
}
return 0
}
func (m *Transaction) GetBlockHash() string {
if m != nil {
return m.BlockHash
}
return ""
}
func (m *Transaction) GetBlockHeight() int32 {
if m != nil {
return m.BlockHeight
}
return 0
}
func (m *Transaction) GetTimeStamp() int64 {
if m != nil {
return m.TimeStamp
}
return 0
}
func (m *Transaction) GetTotalFees() int64 {
if m != nil {
return m.TotalFees
}
return 0
}
type GetTransactionsRequest struct {
}
func (m *GetTransactionsRequest) Reset() { *m = GetTransactionsRequest{} }
func (m *GetTransactionsRequest) String() string { return proto.CompactTextString(m) }
func (*GetTransactionsRequest) ProtoMessage() {}
func (*GetTransactionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }
type TransactionDetails struct {
Transactions []*Transaction `protobuf:"bytes,1,rep,name=transactions" json:"transactions,omitempty"`
}
func (m *TransactionDetails) Reset() { *m = TransactionDetails{} }
func (m *TransactionDetails) String() string { return proto.CompactTextString(m) }
func (*TransactionDetails) ProtoMessage() {}
func (*TransactionDetails) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }
func (m *TransactionDetails) GetTransactions() []*Transaction {
if m != nil {
return m.Transactions
}
return nil
}
type SendRequest struct {
Dest []byte `protobuf:"bytes,1,opt,name=dest,proto3" json:"dest,omitempty"`
DestString string `protobuf:"bytes,2,opt,name=dest_string,json=destString" json:"dest_string,omitempty"`
Amt int64 `protobuf:"varint,3,opt,name=amt" json:"amt,omitempty"`
PaymentHash []byte `protobuf:"bytes,4,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
PaymentHashString string `protobuf:"bytes,5,opt,name=payment_hash_string,json=paymentHashString" json:"payment_hash_string,omitempty"`
PaymentRequest string `protobuf:"bytes,6,opt,name=payment_request,json=paymentRequest" json:"payment_request,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{3} }
func (m *SendRequest) GetDest() []byte {
if m != nil {
return m.Dest
}
return nil
}
func (m *SendRequest) GetDestString() string {
if m != nil {
return m.DestString
}
return ""
}
func (m *SendRequest) GetAmt() int64 {
if m != nil {
return m.Amt
}
return 0
}
func (m *SendRequest) GetPaymentHash() []byte {
if m != nil {
return m.PaymentHash
}
return nil
}
func (m *SendRequest) GetPaymentHashString() string {
if m != nil {
return m.PaymentHashString
}
return ""
}
func (m *SendRequest) GetPaymentRequest() string {
if m != nil {
return m.PaymentRequest
}
return ""
}
type SendResponse struct {
PaymentPreimage []byte `protobuf:"bytes,1,opt,name=payment_preimage,proto3" json:"payment_preimage,omitempty"`
PaymentRoute *Route `protobuf:"bytes,2,opt,name=payment_route" json:"payment_route,omitempty"`
}
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{4} }
func (m *SendResponse) GetPaymentPreimage() []byte {
if m != nil {
return m.PaymentPreimage
}
return nil
}
func (m *SendResponse) GetPaymentRoute() *Route {
if m != nil {
return m.PaymentRoute
}
return nil
}
type ChannelPoint struct {
// TODO(roasbeef): make str vs bytes into a oneof
FundingTxid []byte `protobuf:"bytes,1,opt,name=funding_txid,proto3" json:"funding_txid,omitempty"`
FundingTxidStr string `protobuf:"bytes,2,opt,name=funding_txid_str" json:"funding_txid_str,omitempty"`
OutputIndex uint32 `protobuf:"varint,3,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{5} }
func (m *ChannelPoint) GetFundingTxid() []byte {
if m != nil {
return m.FundingTxid
}
return nil
}
func (m *ChannelPoint) GetFundingTxidStr() string {
if m != nil {
return m.FundingTxidStr
}
return ""
}
func (m *ChannelPoint) GetOutputIndex() uint32 {
if m != nil {
return m.OutputIndex
}
return 0
}
type LightningAddress struct {
Pubkey string `protobuf:"bytes,1,opt,name=pubkey" json:"pubkey,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{6} }
func (m *LightningAddress) GetPubkey() string {
if m != nil {
return m.Pubkey
}
return ""
}
func (m *LightningAddress) GetHost() string {
if m != nil {
return m.Host
}
return ""
}
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{7} }
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{8} }
func (m *SendManyResponse) GetTxid() string {
if m != nil {
return m.Txid
}
return ""
}
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{9} }
func (m *SendCoinsRequest) GetAddr() string {
if m != nil {
return m.Addr
}
return ""
}
func (m *SendCoinsRequest) GetAmount() int64 {
if m != nil {
return m.Amount
}
return 0
}
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{10} }
func (m *SendCoinsResponse) GetTxid() string {
if m != nil {
return m.Txid
}
return ""
}
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{11} }
func (m *NewAddressRequest) GetType() NewAddressRequest_AddressType {
if m != nil {
return m.Type
}
return NewAddressRequest_WITNESS_PUBKEY_HASH
}
type NewWitnessAddressRequest struct {
}
func (m *NewWitnessAddressRequest) Reset() { *m = NewWitnessAddressRequest{} }
func (m *NewWitnessAddressRequest) String() string { return proto.CompactTextString(m) }
func (*NewWitnessAddressRequest) ProtoMessage() {}
func (*NewWitnessAddressRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
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{13} }
func (m *NewAddressResponse) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
type ConnectPeerRequest struct {
Addr *LightningAddress `protobuf:"bytes,1,opt,name=addr" json:"addr,omitempty"`
Perm bool `protobuf:"varint,2,opt,name=perm" json:"perm,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{14} }
func (m *ConnectPeerRequest) GetAddr() *LightningAddress {
if m != nil {
return m.Addr
}
return nil
}
func (m *ConnectPeerRequest) GetPerm() bool {
if m != nil {
return m.Perm
}
return false
}
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{15} }
func (m *ConnectPeerResponse) GetPeerId() int32 {
if m != nil {
return m.PeerId
}
return 0
}
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{16} }
func (m *HTLC) GetIncoming() bool {
if m != nil {
return m.Incoming
}
return false
}
func (m *HTLC) GetAmount() int64 {
if m != nil {
return m.Amount
}
return 0
}
func (m *HTLC) GetHashLock() []byte {
if m != nil {
return m.HashLock
}
return nil
}
func (m *HTLC) GetExpirationHeight() uint32 {
if m != nil {
return m.ExpirationHeight
}
return 0
}
func (m *HTLC) GetRevocationDelay() uint32 {
if m != nil {
return m.RevocationDelay
}
return 0
}
type ActiveChannel struct {
Active bool `protobuf:"varint,1,opt,name=active" json:"active,omitempty"`
RemotePubkey string `protobuf:"bytes,2,opt,name=remote_pubkey" json:"remote_pubkey,omitempty"`
ChannelPoint string `protobuf:"bytes,3,opt,name=channel_point" json:"channel_point,omitempty"`
ChanId uint64 `protobuf:"varint,4,opt,name=chan_id" json:"chan_id,omitempty"`
Capacity int64 `protobuf:"varint,5,opt,name=capacity" json:"capacity,omitempty"`
LocalBalance int64 `protobuf:"varint,6,opt,name=local_balance" json:"local_balance,omitempty"`
RemoteBalance int64 `protobuf:"varint,7,opt,name=remote_balance" json:"remote_balance,omitempty"`
UnsettledBalance int64 `protobuf:"varint,8,opt,name=unsettled_balance" json:"unsettled_balance,omitempty"`
TotalSatoshisSent int64 `protobuf:"varint,9,opt,name=total_satoshis_sent" json:"total_satoshis_sent,omitempty"`
TotalSatoshisReceived int64 `protobuf:"varint,10,opt,name=total_satoshis_received" json:"total_satoshis_received,omitempty"`
NumUpdates uint64 `protobuf:"varint,11,opt,name=num_updates" json:"num_updates,omitempty"`
PendingHtlcs []*HTLC `protobuf:"bytes,12,rep,name=pending_htlcs" json:"pending_htlcs,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{17} }
func (m *ActiveChannel) GetActive() bool {
if m != nil {
return m.Active
}
return false
}
func (m *ActiveChannel) GetRemotePubkey() string {
if m != nil {
return m.RemotePubkey
}
return ""
}
func (m *ActiveChannel) GetChannelPoint() string {
if m != nil {
return m.ChannelPoint
}
return ""
}
func (m *ActiveChannel) GetChanId() uint64 {
if m != nil {
return m.ChanId
}
return 0
}
func (m *ActiveChannel) GetCapacity() int64 {
if m != nil {
return m.Capacity
}
return 0
}
func (m *ActiveChannel) GetLocalBalance() int64 {
if m != nil {
return m.LocalBalance
}
return 0
}
func (m *ActiveChannel) GetRemoteBalance() int64 {
if m != nil {
return m.RemoteBalance
}
return 0
}
func (m *ActiveChannel) GetUnsettledBalance() int64 {
if m != nil {
return m.UnsettledBalance
}
return 0
}
func (m *ActiveChannel) GetTotalSatoshisSent() int64 {
if m != nil {
return m.TotalSatoshisSent
}
return 0
}
func (m *ActiveChannel) GetTotalSatoshisReceived() int64 {
if m != nil {
return m.TotalSatoshisReceived
}
return 0
}
func (m *ActiveChannel) GetNumUpdates() uint64 {
if m != nil {
return m.NumUpdates
}
return 0
}
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{18} }
type ListChannelsResponse struct {
Channels []*ActiveChannel `protobuf:"bytes,11,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{19} }
func (m *ListChannelsResponse) GetChannels() []*ActiveChannel {
if m != nil {
return m.Channels
}
return nil
}
type Peer struct {
PubKey string `protobuf:"bytes,1,opt,name=pub_key" json:"pub_key,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"`
PingTime int64 `protobuf:"varint,9,opt,name=ping_time" json:"ping_time,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{20} }
func (m *Peer) GetPubKey() string {
if m != nil {
return m.PubKey
}
return ""
}
func (m *Peer) GetPeerId() int32 {
if m != nil {
return m.PeerId
}
return 0
}
func (m *Peer) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
func (m *Peer) GetBytesSent() uint64 {
if m != nil {
return m.BytesSent
}
return 0
}
func (m *Peer) GetBytesRecv() uint64 {
if m != nil {
return m.BytesRecv
}
return 0
}
func (m *Peer) GetSatSent() int64 {
if m != nil {
return m.SatSent
}
return 0
}
func (m *Peer) GetSatRecv() int64 {
if m != nil {
return m.SatRecv
}
return 0
}
func (m *Peer) GetInbound() bool {
if m != nil {
return m.Inbound
}
return false
}
func (m *Peer) GetPingTime() int64 {
if m != nil {
return m.PingTime
}
return 0
}
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{21} }
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{22} }
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{23} }
type GetInfoResponse struct {
IdentityPubkey string `protobuf:"bytes,1,opt,name=identity_pubkey" json:"identity_pubkey,omitempty"`
Alias string `protobuf:"bytes,2,opt,name=alias" json:"alias,omitempty"`
NumPendingChannels uint32 `protobuf:"varint,3,opt,name=num_pending_channels" json:"num_pending_channels,omitempty"`
NumActiveChannels uint32 `protobuf:"varint,4,opt,name=num_active_channels" json:"num_active_channels,omitempty"`
NumPeers uint32 `protobuf:"varint,5,opt,name=num_peers" json:"num_peers,omitempty"`
BlockHeight uint32 `protobuf:"varint,6,opt,name=block_height" json:"block_height,omitempty"`
BlockHash string `protobuf:"bytes,8,opt,name=block_hash" json:"block_hash,omitempty"`
SyncedToChain bool `protobuf:"varint,9,opt,name=synced_to_chain" json:"synced_to_chain,omitempty"`
Testnet bool `protobuf:"varint,10,opt,name=testnet" json:"testnet,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{24} }
func (m *GetInfoResponse) GetIdentityPubkey() string {
if m != nil {
return m.IdentityPubkey
}
return ""
}
func (m *GetInfoResponse) GetAlias() string {
if m != nil {
return m.Alias
}
return ""
}
func (m *GetInfoResponse) GetNumPendingChannels() uint32 {
if m != nil {
return m.NumPendingChannels
}
return 0
}
func (m *GetInfoResponse) GetNumActiveChannels() uint32 {
if m != nil {
return m.NumActiveChannels
}
return 0
}
func (m *GetInfoResponse) GetNumPeers() uint32 {
if m != nil {
return m.NumPeers
}
return 0
}
func (m *GetInfoResponse) GetBlockHeight() uint32 {
if m != nil {
return m.BlockHeight
}
return 0
}
func (m *GetInfoResponse) GetBlockHash() string {
if m != nil {
return m.BlockHash
}
return ""
}
func (m *GetInfoResponse) GetSyncedToChain() bool {
if m != nil {
return m.SyncedToChain
}
return false
}
func (m *GetInfoResponse) GetTestnet() bool {
if m != nil {
return m.Testnet
}
return false
}
type ConfirmationUpdate struct {
BlockSha []byte `protobuf:"bytes,1,opt,name=block_sha,json=blockSha,proto3" json:"block_sha,omitempty"`
BlockHeight int32 `protobuf:"varint,2,opt,name=block_height,json=blockHeight" json:"block_height,omitempty"`
NumConfsLeft uint32 `protobuf:"varint,3,opt,name=num_confs_left,json=numConfsLeft" 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{25} }
func (m *ConfirmationUpdate) GetBlockSha() []byte {
if m != nil {
return m.BlockSha
}
return nil
}
func (m *ConfirmationUpdate) GetBlockHeight() int32 {
if m != nil {
return m.BlockHeight
}
return 0
}
func (m *ConfirmationUpdate) GetNumConfsLeft() uint32 {
if m != nil {
return m.NumConfsLeft
}
return 0
}
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{26} }
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{27} }
func (m *ChannelCloseUpdate) GetClosingTxid() []byte {
if m != nil {
return m.ClosingTxid
}
return nil
}
func (m *ChannelCloseUpdate) GetSuccess() bool {
if m != nil {
return m.Success
}
return false
}
type CloseChannelRequest struct {
ChannelPoint *ChannelPoint `protobuf:"bytes,1,opt,name=channel_point,json=channelPoint" json:"channel_point,omitempty"`
TimeLimit int64 `protobuf:"varint,2,opt,name=time_limit,json=timeLimit" 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{28} }
func (m *CloseChannelRequest) GetChannelPoint() *ChannelPoint {
if m != nil {
return m.ChannelPoint
}
return nil
}
func (m *CloseChannelRequest) GetTimeLimit() int64 {
if m != nil {
return m.TimeLimit
}
return 0
}
func (m *CloseChannelRequest) GetForce() bool {
if m != nil {
return m.Force
}
return false
}
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{29} }
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"`
OutputIndex uint32 `protobuf:"varint,2,opt,name=output_index" json:"output_index,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{30} }
func (m *PendingUpdate) GetTxid() []byte {
if m != nil {
return m.Txid
}
return nil
}
func (m *PendingUpdate) GetOutputIndex() uint32 {
if m != nil {
return m.OutputIndex
}
return 0
}
type OpenChannelRequest struct {
TargetPeerId int32 `protobuf:"varint,1,opt,name=target_peer_id" json:"target_peer_id,omitempty"`
NodePubkey []byte `protobuf:"bytes,2,opt,name=node_pubkey,proto3" json:"node_pubkey,omitempty"`
NodePubkeyString string `protobuf:"bytes,3,opt,name=node_pubkey_string" json:"node_pubkey_string,omitempty"`
LocalFundingAmount int64 `protobuf:"varint,4,opt,name=local_funding_amount" json:"local_funding_amount,omitempty"`
PushSat int64 `protobuf:"varint,5,opt,name=push_sat" json:"push_sat,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{31} }
func (m *OpenChannelRequest) GetTargetPeerId() int32 {
if m != nil {
return m.TargetPeerId
}
return 0
}
func (m *OpenChannelRequest) GetNodePubkey() []byte {
if m != nil {
return m.NodePubkey
}
return nil
}
func (m *OpenChannelRequest) GetNodePubkeyString() string {
if m != nil {
return m.NodePubkeyString
}
return ""
}
func (m *OpenChannelRequest) GetLocalFundingAmount() int64 {
if m != nil {
return m.LocalFundingAmount
}
return 0
}
func (m *OpenChannelRequest) GetPushSat() int64 {
if m != nil {
return m.PushSat
}
return 0
}
func (m *OpenChannelRequest) GetNumConfs() uint32 {
if m != nil {
return m.NumConfs
}
return 0
}
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{32} }
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{33} }
func (m *PendingChannelRequest) GetStatus() ChannelStatus {
if m != nil {
return m.Status
}
return ChannelStatus_ALL
}
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{34} }
func (m *PendingChannelResponse) GetPendingChannels() []*PendingChannelResponse_PendingChannel {
if m != nil {
return m.PendingChannels
}
return nil
}
type PendingChannelResponse_PendingChannel struct {
IdentityKey string `protobuf:"bytes,1,opt,name=identity_key" json:"identity_key,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"`
ClosingTxid string `protobuf:"bytes,6,opt,name=closing_txid" json:"closing_txid,omitempty"`
Status ChannelStatus `protobuf:"varint,7,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{34, 0}
}
func (m *PendingChannelResponse_PendingChannel) GetIdentityKey() string {
if m != nil {
return m.IdentityKey
}
return ""
}
func (m *PendingChannelResponse_PendingChannel) GetChannelPoint() string {
if m != nil {
return m.ChannelPoint
}
return ""
}
func (m *PendingChannelResponse_PendingChannel) GetCapacity() int64 {
if m != nil {
return m.Capacity
}
return 0
}
func (m *PendingChannelResponse_PendingChannel) GetLocalBalance() int64 {
if m != nil {
return m.LocalBalance
}
return 0
}
func (m *PendingChannelResponse_PendingChannel) GetRemoteBalance() int64 {
if m != nil {
return m.RemoteBalance
}
return 0
}
func (m *PendingChannelResponse_PendingChannel) GetClosingTxid() string {
if m != nil {
return m.ClosingTxid
}
return ""
}
func (m *PendingChannelResponse_PendingChannel) GetStatus() ChannelStatus {
if m != nil {
return m.Status
}
return ChannelStatus_ALL
}
type WalletBalanceRequest struct {
WitnessOnly bool `protobuf:"varint,1,opt,name=witness_only,json=witnessOnly" 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{35} }
func (m *WalletBalanceRequest) GetWitnessOnly() bool {
if m != nil {
return m.WitnessOnly
}
return false
}
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{36} }
func (m *WalletBalanceResponse) GetBalance() float64 {
if m != nil {
return m.Balance
}
return 0
}
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{37} }
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{38} }
func (m *ChannelBalanceResponse) GetBalance() int64 {
if m != nil {
return m.Balance
}
return 0
}
type QueryRoutesRequest struct {
PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey" json:"pub_key,omitempty"`
Amt int64 `protobuf:"varint,2,opt,name=amt" json:"amt,omitempty"`
}
func (m *QueryRoutesRequest) Reset() { *m = QueryRoutesRequest{} }
func (m *QueryRoutesRequest) String() string { return proto.CompactTextString(m) }
func (*QueryRoutesRequest) ProtoMessage() {}
func (*QueryRoutesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }
func (m *QueryRoutesRequest) GetPubKey() string {
if m != nil {
return m.PubKey
}
return ""
}
func (m *QueryRoutesRequest) GetAmt() int64 {
if m != nil {
return m.Amt
}
return 0
}
type QueryRoutesResponse struct {
Routes []*Route `protobuf:"bytes,1,rep,name=routes" json:"routes,omitempty"`
}
func (m *QueryRoutesResponse) Reset() { *m = QueryRoutesResponse{} }
func (m *QueryRoutesResponse) String() string { return proto.CompactTextString(m) }
func (*QueryRoutesResponse) ProtoMessage() {}
func (*QueryRoutesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }
func (m *QueryRoutesResponse) GetRoutes() []*Route {
if m != nil {
return m.Routes
}
return nil
}
type Hop struct {
ChanId uint64 `protobuf:"varint,1,opt,name=chan_id" json:"chan_id,omitempty"`
ChanCapacity int64 `protobuf:"varint,2,opt,name=chan_capacity" json:"chan_capacity,omitempty"`
AmtToForward int64 `protobuf:"varint,3,opt,name=amt_to_forward" json:"amt_to_forward,omitempty"`
Fee int64 `protobuf:"varint,4,opt,name=fee" json:"fee,omitempty"`
}
func (m *Hop) Reset() { *m = Hop{} }
func (m *Hop) String() string { return proto.CompactTextString(m) }
func (*Hop) ProtoMessage() {}
func (*Hop) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }
func (m *Hop) GetChanId() uint64 {
if m != nil {
return m.ChanId
}
return 0
}
func (m *Hop) GetChanCapacity() int64 {
if m != nil {
return m.ChanCapacity
}
return 0
}
func (m *Hop) GetAmtToForward() int64 {
if m != nil {
return m.AmtToForward
}
return 0
}
func (m *Hop) GetFee() int64 {
if m != nil {
return m.Fee
}
return 0
}
type Route struct {
TotalTimeLock uint32 `protobuf:"varint,1,opt,name=total_time_lock" json:"total_time_lock,omitempty"`
TotalFees int64 `protobuf:"varint,2,opt,name=total_fees" json:"total_fees,omitempty"`
TotalAmt int64 `protobuf:"varint,3,opt,name=total_amt" json:"total_amt,omitempty"`
Hops []*Hop `protobuf:"bytes,4,rep,name=hops" json:"hops,omitempty"`
}
func (m *Route) Reset() { *m = Route{} }
func (m *Route) String() string { return proto.CompactTextString(m) }
func (*Route) ProtoMessage() {}
func (*Route) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }
func (m *Route) GetTotalTimeLock() uint32 {
if m != nil {
return m.TotalTimeLock
}
return 0
}
func (m *Route) GetTotalFees() int64 {
if m != nil {
return m.TotalFees
}
return 0
}
func (m *Route) GetTotalAmt() int64 {
if m != nil {
return m.TotalAmt
}
return 0
}
func (m *Route) GetHops() []*Hop {
if m != nil {
return m.Hops
}
return nil
}
type NodeInfoRequest struct {
PubKey string `protobuf:"bytes,1,opt,name=pub_key,json=pubKey" json:"pub_key,omitempty"`
}
func (m *NodeInfoRequest) Reset() { *m = NodeInfoRequest{} }
func (m *NodeInfoRequest) String() string { return proto.CompactTextString(m) }
func (*NodeInfoRequest) ProtoMessage() {}
func (*NodeInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }
func (m *NodeInfoRequest) GetPubKey() string {
if m != nil {
return m.PubKey
}
return ""
}
type NodeInfo struct {
Node *LightningNode `protobuf:"bytes,1,opt,name=node" json:"node,omitempty"`
NumChannels uint32 `protobuf:"varint,2,opt,name=num_channels" json:"num_channels,omitempty"`
TotalCapacity int64 `protobuf:"varint,3,opt,name=total_capacity" json:"total_capacity,omitempty"`
}
func (m *NodeInfo) Reset() { *m = NodeInfo{} }
func (m *NodeInfo) String() string { return proto.CompactTextString(m) }
func (*NodeInfo) ProtoMessage() {}
func (*NodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }
func (m *NodeInfo) GetNode() *LightningNode {
if m != nil {
return m.Node
}
return nil
}
func (m *NodeInfo) GetNumChannels() uint32 {
if m != nil {
return m.NumChannels
}
return 0
}
func (m *NodeInfo) GetTotalCapacity() int64 {
if m != nil {
return m.TotalCapacity
}
return 0
}
type LightningNode struct {
LastUpdate uint32 `protobuf:"varint,1,opt,name=last_update" json:"last_update,omitempty"`
PubKey string `protobuf:"bytes,2,opt,name=pub_key" json:"pub_key,omitempty"`
Alias string `protobuf:"bytes,3,opt,name=alias" json:"alias,omitempty"`
Addresses []*NodeAddress `protobuf:"bytes,4,rep,name=addresses" json:"addresses,omitempty"`
}
func (m *LightningNode) Reset() { *m = LightningNode{} }
func (m *LightningNode) String() string { return proto.CompactTextString(m) }
func (*LightningNode) ProtoMessage() {}
func (*LightningNode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }
func (m *LightningNode) GetLastUpdate() uint32 {
if m != nil {
return m.LastUpdate
}
return 0
}
func (m *LightningNode) GetPubKey() string {
if m != nil {
return m.PubKey
}
return ""
}
func (m *LightningNode) GetAlias() string {
if m != nil {
return m.Alias
}
return ""
}
func (m *LightningNode) GetAddresses() []*NodeAddress {
if m != nil {
return m.Addresses
}
return nil
}
type NodeAddress struct {
Network string `protobuf:"bytes,1,opt,name=network" json:"network,omitempty"`
Addr string `protobuf:"bytes,2,opt,name=addr" json:"addr,omitempty"`
}
func (m *NodeAddress) Reset() { *m = NodeAddress{} }
func (m *NodeAddress) String() string { return proto.CompactTextString(m) }
func (*NodeAddress) ProtoMessage() {}
func (*NodeAddress) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }
func (m *NodeAddress) GetNetwork() string {
if m != nil {
return m.Network
}
return ""
}
func (m *NodeAddress) GetAddr() string {
if m != nil {
return m.Addr
}
return ""
}
type RoutingPolicy struct {
TimeLockDelta uint32 `protobuf:"varint,1,opt,name=time_lock_delta" json:"time_lock_delta,omitempty"`
MinHtlc int64 `protobuf:"varint,2,opt,name=min_htlc" json:"min_htlc,omitempty"`
FeeBaseMsat int64 `protobuf:"varint,3,opt,name=fee_base_msat" json:"fee_base_msat,omitempty"`
FeeRateMilliMsat int64 `protobuf:"varint,4,opt,name=fee_rate_milli_msat" json:"fee_rate_milli_msat,omitempty"`
}
func (m *RoutingPolicy) Reset() { *m = RoutingPolicy{} }
func (m *RoutingPolicy) String() string { return proto.CompactTextString(m) }
func (*RoutingPolicy) ProtoMessage() {}
func (*RoutingPolicy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }
func (m *RoutingPolicy) GetTimeLockDelta() uint32 {
if m != nil {
return m.TimeLockDelta
}
return 0
}
func (m *RoutingPolicy) GetMinHtlc() int64 {
if m != nil {
return m.MinHtlc
}
return 0
}
func (m *RoutingPolicy) GetFeeBaseMsat() int64 {
if m != nil {
return m.FeeBaseMsat
}
return 0
}
func (m *RoutingPolicy) GetFeeRateMilliMsat() int64 {
if m != nil {
return m.FeeRateMilliMsat
}
return 0
}
type ChannelEdge struct {
ChannelId uint64 `protobuf:"varint,1,opt,name=channel_id" json:"channel_id,omitempty"`
ChanPoint string `protobuf:"bytes,2,opt,name=chan_point" json:"chan_point,omitempty"`
LastUpdate uint32 `protobuf:"varint,3,opt,name=last_update" json:"last_update,omitempty"`
Node1Pub string `protobuf:"bytes,4,opt,name=node1_pub" json:"node1_pub,omitempty"`
Node2Pub string `protobuf:"bytes,5,opt,name=node2_pub" json:"node2_pub,omitempty"`
Capacity int64 `protobuf:"varint,6,opt,name=capacity" json:"capacity,omitempty"`
Node1Policy *RoutingPolicy `protobuf:"bytes,7,opt,name=node1_policy" json:"node1_policy,omitempty"`
Node2Policy *RoutingPolicy `protobuf:"bytes,8,opt,name=node2_policy" json:"node2_policy,omitempty"`
}
func (m *ChannelEdge) Reset() { *m = ChannelEdge{} }
func (m *ChannelEdge) String() string { return proto.CompactTextString(m) }
func (*ChannelEdge) ProtoMessage() {}
func (*ChannelEdge) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }
func (m *ChannelEdge) GetChannelId() uint64 {
if m != nil {
return m.ChannelId
}
return 0
}
func (m *ChannelEdge) GetChanPoint() string {
if m != nil {
return m.ChanPoint
}
return ""
}
func (m *ChannelEdge) GetLastUpdate() uint32 {
if m != nil {
return m.LastUpdate
}
return 0
}
func (m *ChannelEdge) GetNode1Pub() string {
if m != nil {
return m.Node1Pub
}
return ""
}
func (m *ChannelEdge) GetNode2Pub() string {
if m != nil {
return m.Node2Pub
}
return ""
}
func (m *ChannelEdge) GetCapacity() int64 {
if m != nil {
return m.Capacity
}
return 0
}
func (m *ChannelEdge) GetNode1Policy() *RoutingPolicy {
if m != nil {
return m.Node1Policy
}
return nil
}
func (m *ChannelEdge) GetNode2Policy() *RoutingPolicy {
if m != nil {
return m.Node2Policy
}
return nil
}
type ChannelGraphRequest struct {
}
func (m *ChannelGraphRequest) Reset() { *m = ChannelGraphRequest{} }
func (m *ChannelGraphRequest) String() string { return proto.CompactTextString(m) }
func (*ChannelGraphRequest) ProtoMessage() {}
func (*ChannelGraphRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }
type ChannelGraph struct {
Nodes []*LightningNode `protobuf:"bytes,1,rep,name=nodes" json:"nodes,omitempty"`
Edges []*ChannelEdge `protobuf:"bytes,2,rep,name=edges" json:"edges,omitempty"`
}
func (m *ChannelGraph) Reset() { *m = ChannelGraph{} }
func (m *ChannelGraph) String() string { return proto.CompactTextString(m) }
func (*ChannelGraph) ProtoMessage() {}
func (*ChannelGraph) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }
func (m *ChannelGraph) GetNodes() []*LightningNode {
if m != nil {
return m.Nodes
}
return nil
}
func (m *ChannelGraph) GetEdges() []*ChannelEdge {
if m != nil {
return m.Edges
}
return nil
}
type ChanInfoRequest struct {
ChanId uint64 `protobuf:"varint,1,opt,name=chan_id,json=chanId" json:"chan_id,omitempty"`
}
func (m *ChanInfoRequest) Reset() { *m = ChanInfoRequest{} }
func (m *ChanInfoRequest) String() string { return proto.CompactTextString(m) }
func (*ChanInfoRequest) ProtoMessage() {}
func (*ChanInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} }
func (m *ChanInfoRequest) GetChanId() uint64 {
if m != nil {
return m.ChanId
}
return 0
}
type NetworkInfoRequest struct {
}
func (m *NetworkInfoRequest) Reset() { *m = NetworkInfoRequest{} }
func (m *NetworkInfoRequest) String() string { return proto.CompactTextString(m) }
func (*NetworkInfoRequest) ProtoMessage() {}
func (*NetworkInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} }
type NetworkInfo struct {
GraphDiameter uint32 `protobuf:"varint,1,opt,name=graph_diameter" json:"graph_diameter,omitempty"`
AvgOutDegree float64 `protobuf:"fixed64,2,opt,name=avg_out_degree" json:"avg_out_degree,omitempty"`
MaxOutDegree uint32 `protobuf:"varint,3,opt,name=max_out_degree" json:"max_out_degree,omitempty"`
NumNodes uint32 `protobuf:"varint,4,opt,name=num_nodes" json:"num_nodes,omitempty"`
NumChannels uint32 `protobuf:"varint,5,opt,name=num_channels" json:"num_channels,omitempty"`
TotalNetworkCapacity int64 `protobuf:"varint,6,opt,name=total_network_capacity" json:"total_network_capacity,omitempty"`
AvgChannelSize float64 `protobuf:"fixed64,7,opt,name=avg_channel_size" json:"avg_channel_size,omitempty"`
MinChannelSize int64 `protobuf:"varint,8,opt,name=min_channel_size" json:"min_channel_size,omitempty"`
MaxChannelSize int64 `protobuf:"varint,9,opt,name=max_channel_size" json:"max_channel_size,omitempty"`
}
func (m *NetworkInfo) Reset() { *m = NetworkInfo{} }
func (m *NetworkInfo) String() string { return proto.CompactTextString(m) }
func (*NetworkInfo) ProtoMessage() {}
func (*NetworkInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} }
func (m *NetworkInfo) GetGraphDiameter() uint32 {
if m != nil {
return m.GraphDiameter
}
return 0
}
func (m *NetworkInfo) GetAvgOutDegree() float64 {
if m != nil {
return m.AvgOutDegree
}
return 0
}
func (m *NetworkInfo) GetMaxOutDegree() uint32 {
if m != nil {
return m.MaxOutDegree
}
return 0
}
func (m *NetworkInfo) GetNumNodes() uint32 {
if m != nil {
return m.NumNodes
}
return 0
}
func (m *NetworkInfo) GetNumChannels() uint32 {
if m != nil {
return m.NumChannels
}
return 0
}
func (m *NetworkInfo) GetTotalNetworkCapacity() int64 {
if m != nil {
return m.TotalNetworkCapacity
}
return 0
}
func (m *NetworkInfo) GetAvgChannelSize() float64 {
if m != nil {
return m.AvgChannelSize
}
return 0
}
func (m *NetworkInfo) GetMinChannelSize() int64 {
if m != nil {
return m.MinChannelSize
}
return 0
}
func (m *NetworkInfo) GetMaxChannelSize() int64 {
if m != nil {
return m.MaxChannelSize
}
return 0
}
type GraphTopologySubscription struct {
}
func (m *GraphTopologySubscription) Reset() { *m = GraphTopologySubscription{} }
func (m *GraphTopologySubscription) String() string { return proto.CompactTextString(m) }
func (*GraphTopologySubscription) ProtoMessage() {}
func (*GraphTopologySubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} }
type GraphTopologyUpdate struct {
NodeUpdates []*NodeUpdate `protobuf:"bytes,1,rep,name=node_updates,json=nodeUpdates" json:"node_updates,omitempty"`
ChannelUpdates []*ChannelEdgeUpdate `protobuf:"bytes,2,rep,name=channel_updates,json=channelUpdates" json:"channel_updates,omitempty"`
ClosedChans []*ClosedChannelUpdate `protobuf:"bytes,3,rep,name=closed_chans,json=closedChans" json:"closed_chans,omitempty"`
}
func (m *GraphTopologyUpdate) Reset() { *m = GraphTopologyUpdate{} }
func (m *GraphTopologyUpdate) String() string { return proto.CompactTextString(m) }
func (*GraphTopologyUpdate) ProtoMessage() {}
func (*GraphTopologyUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} }
func (m *GraphTopologyUpdate) GetNodeUpdates() []*NodeUpdate {
if m != nil {
return m.NodeUpdates
}
return nil
}
func (m *GraphTopologyUpdate) GetChannelUpdates() []*ChannelEdgeUpdate {
if m != nil {
return m.ChannelUpdates
}
return nil
}
func (m *GraphTopologyUpdate) GetClosedChans() []*ClosedChannelUpdate {
if m != nil {
return m.ClosedChans
}
return nil
}
type NodeUpdate struct {
Addresses []string `protobuf:"bytes,1,rep,name=addresses" json:"addresses,omitempty"`
IdentityKey string `protobuf:"bytes,2,opt,name=identity_key,json=identityKey" json:"identity_key,omitempty"`
GlobalFeatures []byte `protobuf:"bytes,3,opt,name=global_features,json=globalFeatures,proto3" json:"global_features,omitempty"`
Alias string `protobuf:"bytes,4,opt,name=alias" json:"alias,omitempty"`
}
func (m *NodeUpdate) Reset() { *m = NodeUpdate{} }
func (m *NodeUpdate) String() string { return proto.CompactTextString(m) }
func (*NodeUpdate) ProtoMessage() {}
func (*NodeUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} }
func (m *NodeUpdate) GetAddresses() []string {
if m != nil {
return m.Addresses
}
return nil
}
func (m *NodeUpdate) GetIdentityKey() string {
if m != nil {
return m.IdentityKey
}
return ""
}
func (m *NodeUpdate) GetGlobalFeatures() []byte {
if m != nil {
return m.GlobalFeatures
}
return nil
}
func (m *NodeUpdate) GetAlias() string {
if m != nil {
return m.Alias
}
return ""
}
type ChannelEdgeUpdate struct {
ChanId uint64 `protobuf:"varint,1,opt,name=chan_id,json=chanId" json:"chan_id,omitempty"`
ChanPoint *ChannelPoint `protobuf:"bytes,2,opt,name=chan_point,json=chanPoint" json:"chan_point,omitempty"`
Capacity int64 `protobuf:"varint,3,opt,name=capacity" json:"capacity,omitempty"`
RoutingPolicy *RoutingPolicy `protobuf:"bytes,4,opt,name=routing_policy,json=routingPolicy" json:"routing_policy,omitempty"`
AdvertisingNode string `protobuf:"bytes,5,opt,name=advertising_node,json=advertisingNode" json:"advertising_node,omitempty"`
ConnectingNode string `protobuf:"bytes,6,opt,name=connecting_node,json=connectingNode" json:"connecting_node,omitempty"`
}
func (m *ChannelEdgeUpdate) Reset() { *m = ChannelEdgeUpdate{} }
func (m *ChannelEdgeUpdate) String() string { return proto.CompactTextString(m) }
func (*ChannelEdgeUpdate) ProtoMessage() {}
func (*ChannelEdgeUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} }
func (m *ChannelEdgeUpdate) GetChanId() uint64 {
if m != nil {
return m.ChanId
}
return 0
}
func (m *ChannelEdgeUpdate) GetChanPoint() *ChannelPoint {
if m != nil {
return m.ChanPoint
}
return nil
}
func (m *ChannelEdgeUpdate) GetCapacity() int64 {
if m != nil {
return m.Capacity
}
return 0
}
func (m *ChannelEdgeUpdate) GetRoutingPolicy() *RoutingPolicy {
if m != nil {
return m.RoutingPolicy
}
return nil
}
func (m *ChannelEdgeUpdate) GetAdvertisingNode() string {
if m != nil {
return m.AdvertisingNode
}
return ""
}
func (m *ChannelEdgeUpdate) GetConnectingNode() string {
if m != nil {
return m.ConnectingNode
}
return ""
}
type ClosedChannelUpdate struct {
ChanId uint64 `protobuf:"varint,1,opt,name=chan_id,json=chanId" json:"chan_id,omitempty"`
Capacity int64 `protobuf:"varint,2,opt,name=capacity" json:"capacity,omitempty"`
ClosedHeight uint32 `protobuf:"varint,3,opt,name=closed_height,json=closedHeight" json:"closed_height,omitempty"`
ChanPoint *ChannelPoint `protobuf:"bytes,4,opt,name=chan_point,json=chanPoint" json:"chan_point,omitempty"`
}
func (m *ClosedChannelUpdate) Reset() { *m = ClosedChannelUpdate{} }
func (m *ClosedChannelUpdate) String() string { return proto.CompactTextString(m) }
func (*ClosedChannelUpdate) ProtoMessage() {}
func (*ClosedChannelUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} }
func (m *ClosedChannelUpdate) GetChanId() uint64 {
if m != nil {
return m.ChanId
}
return 0
}
func (m *ClosedChannelUpdate) GetCapacity() int64 {
if m != nil {
return m.Capacity
}
return 0
}
func (m *ClosedChannelUpdate) GetClosedHeight() uint32 {
if m != nil {
return m.ClosedHeight
}
return 0
}
func (m *ClosedChannelUpdate) GetChanPoint() *ChannelPoint {
if m != nil {
return m.ChanPoint
}
return nil
}
type SetAliasRequest struct {
NewAlias string `protobuf:"bytes,1,opt,name=new_alias,json=newAlias" json:"new_alias,omitempty"`
}
func (m *SetAliasRequest) Reset() { *m = SetAliasRequest{} }
func (m *SetAliasRequest) String() string { return proto.CompactTextString(m) }
func (*SetAliasRequest) ProtoMessage() {}
func (*SetAliasRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} }
func (m *SetAliasRequest) GetNewAlias() string {
if m != nil {
return m.NewAlias
}
return ""
}
type SetAliasResponse struct {
}
func (m *SetAliasResponse) Reset() { *m = SetAliasResponse{} }
func (m *SetAliasResponse) String() string { return proto.CompactTextString(m) }
func (*SetAliasResponse) ProtoMessage() {}
func (*SetAliasResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} }
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"`
CreationDate int64 `protobuf:"varint,7,opt,name=creation_date" json:"creation_date,omitempty"`
SettleDate int64 `protobuf:"varint,8,opt,name=settle_date" json:"settle_date,omitempty"`
PaymentRequest string `protobuf:"bytes,9,opt,name=payment_request" json:"payment_request,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{61} }
func (m *Invoice) GetMemo() string {
if m != nil {
return m.Memo
}
return ""
}
func (m *Invoice) GetReceipt() []byte {
if m != nil {
return m.Receipt
}
return nil
}
func (m *Invoice) GetRPreimage() []byte {
if m != nil {
return m.RPreimage
}
return nil
}
func (m *Invoice) GetRHash() []byte {
if m != nil {
return m.RHash
}
return nil
}
func (m *Invoice) GetValue() int64 {
if m != nil {
return m.Value
}
return 0
}
func (m *Invoice) GetSettled() bool {
if m != nil {
return m.Settled
}
return false
}
func (m *Invoice) GetCreationDate() int64 {
if m != nil {
return m.CreationDate
}
return 0
}
func (m *Invoice) GetSettleDate() int64 {
if m != nil {
return m.SettleDate
}
return 0
}
func (m *Invoice) GetPaymentRequest() string {
if m != nil {
return m.PaymentRequest
}
return ""
}
type AddInvoiceResponse struct {
RHash []byte `protobuf:"bytes,1,opt,name=r_hash,proto3" json:"r_hash,omitempty"`
PaymentRequest string `protobuf:"bytes,2,opt,name=payment_request" json:"payment_request,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{62} }
func (m *AddInvoiceResponse) GetRHash() []byte {
if m != nil {
return m.RHash
}
return nil
}
func (m *AddInvoiceResponse) GetPaymentRequest() string {
if m != nil {
return m.PaymentRequest
}
return ""
}
type PaymentHash struct {
RHashStr string `protobuf:"bytes,1,opt,name=r_hash_str" json:"r_hash_str,omitempty"`
RHash []byte `protobuf:"bytes,2,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{63} }
func (m *PaymentHash) GetRHashStr() string {
if m != nil {
return m.RHashStr
}
return ""
}
func (m *PaymentHash) GetRHash() []byte {
if m != nil {
return m.RHash
}
return nil
}
type ListInvoiceRequest struct {
PendingOnly bool `protobuf:"varint,1,opt,name=pending_only,json=pendingOnly" 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{64} }
func (m *ListInvoiceRequest) GetPendingOnly() bool {
if m != nil {
return m.PendingOnly
}
return false
}
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{65} }
func (m *ListInvoiceResponse) GetInvoices() []*Invoice {
if m != nil {
return m.Invoices
}
return nil
}
type InvoiceSubscription struct {
}
func (m *InvoiceSubscription) Reset() { *m = InvoiceSubscription{} }
func (m *InvoiceSubscription) String() string { return proto.CompactTextString(m) }
func (*InvoiceSubscription) ProtoMessage() {}
func (*InvoiceSubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} }
type Payment struct {
PaymentHash string `protobuf:"bytes,1,opt,name=payment_hash" json:"payment_hash,omitempty"`
Value int64 `protobuf:"varint,2,opt,name=value" json:"value,omitempty"`
CreationDate int64 `protobuf:"varint,3,opt,name=creation_date" json:"creation_date,omitempty"`
Path []string `protobuf:"bytes,4,rep,name=path" json:"path,omitempty"`
Fee int64 `protobuf:"varint,5,opt,name=fee" json:"fee,omitempty"`
}
func (m *Payment) Reset() { *m = Payment{} }
func (m *Payment) String() string { return proto.CompactTextString(m) }
func (*Payment) ProtoMessage() {}
func (*Payment) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} }
func (m *Payment) GetPaymentHash() string {
if m != nil {
return m.PaymentHash
}
return ""
}
func (m *Payment) GetValue() int64 {
if m != nil {
return m.Value
}
return 0
}
func (m *Payment) GetCreationDate() int64 {
if m != nil {
return m.CreationDate
}
return 0
}
func (m *Payment) GetPath() []string {
if m != nil {
return m.Path
}
return nil
}
func (m *Payment) GetFee() int64 {
if m != nil {
return m.Fee
}
return 0
}
type ListPaymentsRequest struct {
}
func (m *ListPaymentsRequest) Reset() { *m = ListPaymentsRequest{} }
func (m *ListPaymentsRequest) String() string { return proto.CompactTextString(m) }
func (*ListPaymentsRequest) ProtoMessage() {}
func (*ListPaymentsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} }
type ListPaymentsResponse struct {
Payments []*Payment `protobuf:"bytes,1,rep,name=payments" json:"payments,omitempty"`
}
func (m *ListPaymentsResponse) Reset() { *m = ListPaymentsResponse{} }
func (m *ListPaymentsResponse) String() string { return proto.CompactTextString(m) }
func (*ListPaymentsResponse) ProtoMessage() {}
func (*ListPaymentsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} }
func (m *ListPaymentsResponse) GetPayments() []*Payment {
if m != nil {
return m.Payments
}
return nil
}
type DeleteAllPaymentsRequest struct {
}
func (m *DeleteAllPaymentsRequest) Reset() { *m = DeleteAllPaymentsRequest{} }
func (m *DeleteAllPaymentsRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteAllPaymentsRequest) ProtoMessage() {}
func (*DeleteAllPaymentsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} }
type DeleteAllPaymentsResponse struct {
}
func (m *DeleteAllPaymentsResponse) Reset() { *m = DeleteAllPaymentsResponse{} }
func (m *DeleteAllPaymentsResponse) String() string { return proto.CompactTextString(m) }
func (*DeleteAllPaymentsResponse) ProtoMessage() {}
func (*DeleteAllPaymentsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} }
type DebugLevelRequest struct {
Show bool `protobuf:"varint,1,opt,name=show" json:"show,omitempty"`
LevelSpec string `protobuf:"bytes,2,opt,name=level_spec,json=levelSpec" json:"level_spec,omitempty"`
}
func (m *DebugLevelRequest) Reset() { *m = DebugLevelRequest{} }
func (m *DebugLevelRequest) String() string { return proto.CompactTextString(m) }
func (*DebugLevelRequest) ProtoMessage() {}
func (*DebugLevelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} }
func (m *DebugLevelRequest) GetShow() bool {
if m != nil {
return m.Show
}
return false
}
func (m *DebugLevelRequest) GetLevelSpec() string {
if m != nil {
return m.LevelSpec
}
return ""
}
type DebugLevelResponse struct {
SubSystems string `protobuf:"bytes,1,opt,name=sub_systems" json:"sub_systems,omitempty"`
}
func (m *DebugLevelResponse) Reset() { *m = DebugLevelResponse{} }
func (m *DebugLevelResponse) String() string { return proto.CompactTextString(m) }
func (*DebugLevelResponse) ProtoMessage() {}
func (*DebugLevelResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{73} }
func (m *DebugLevelResponse) GetSubSystems() string {
if m != nil {
return m.SubSystems
}
return ""
}
type PayReqString struct {
PayReq string `protobuf:"bytes,1,opt,name=pay_req,json=payReq" json:"pay_req,omitempty"`
}
func (m *PayReqString) Reset() { *m = PayReqString{} }
func (m *PayReqString) String() string { return proto.CompactTextString(m) }
func (*PayReqString) ProtoMessage() {}
func (*PayReqString) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{74} }
func (m *PayReqString) GetPayReq() string {
if m != nil {
return m.PayReq
}
return ""
}
type PayReq struct {
Destination string `protobuf:"bytes,1,opt,name=destination" json:"destination,omitempty"`
PaymentHash string `protobuf:"bytes,2,opt,name=payment_hash" json:"payment_hash,omitempty"`
NumSatoshis int64 `protobuf:"varint,3,opt,name=num_satoshis" json:"num_satoshis,omitempty"`
}
func (m *PayReq) Reset() { *m = PayReq{} }
func (m *PayReq) String() string { return proto.CompactTextString(m) }
func (*PayReq) ProtoMessage() {}
func (*PayReq) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} }
func (m *PayReq) GetDestination() string {
if m != nil {
return m.Destination
}
return ""
}
func (m *PayReq) GetPaymentHash() string {
if m != nil {
return m.PaymentHash
}
return ""
}
func (m *PayReq) GetNumSatoshis() int64 {
if m != nil {
return m.NumSatoshis
}
return 0
}
func init() {
proto.RegisterType((*Transaction)(nil), "lnrpc.Transaction")
proto.RegisterType((*GetTransactionsRequest)(nil), "lnrpc.GetTransactionsRequest")
proto.RegisterType((*TransactionDetails)(nil), "lnrpc.TransactionDetails")
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((*NewWitnessAddressRequest)(nil), "lnrpc.NewWitnessAddressRequest")
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((*QueryRoutesRequest)(nil), "lnrpc.QueryRoutesRequest")
proto.RegisterType((*QueryRoutesResponse)(nil), "lnrpc.QueryRoutesResponse")
proto.RegisterType((*Hop)(nil), "lnrpc.Hop")
proto.RegisterType((*Route)(nil), "lnrpc.Route")
proto.RegisterType((*NodeInfoRequest)(nil), "lnrpc.NodeInfoRequest")
proto.RegisterType((*NodeInfo)(nil), "lnrpc.NodeInfo")
proto.RegisterType((*LightningNode)(nil), "lnrpc.LightningNode")
proto.RegisterType((*NodeAddress)(nil), "lnrpc.NodeAddress")
proto.RegisterType((*RoutingPolicy)(nil), "lnrpc.RoutingPolicy")
proto.RegisterType((*ChannelEdge)(nil), "lnrpc.ChannelEdge")
proto.RegisterType((*ChannelGraphRequest)(nil), "lnrpc.ChannelGraphRequest")
proto.RegisterType((*ChannelGraph)(nil), "lnrpc.ChannelGraph")
proto.RegisterType((*ChanInfoRequest)(nil), "lnrpc.ChanInfoRequest")
proto.RegisterType((*NetworkInfoRequest)(nil), "lnrpc.NetworkInfoRequest")
proto.RegisterType((*NetworkInfo)(nil), "lnrpc.NetworkInfo")
proto.RegisterType((*GraphTopologySubscription)(nil), "lnrpc.GraphTopologySubscription")
proto.RegisterType((*GraphTopologyUpdate)(nil), "lnrpc.GraphTopologyUpdate")
proto.RegisterType((*NodeUpdate)(nil), "lnrpc.NodeUpdate")
proto.RegisterType((*ChannelEdgeUpdate)(nil), "lnrpc.ChannelEdgeUpdate")
proto.RegisterType((*ClosedChannelUpdate)(nil), "lnrpc.ClosedChannelUpdate")
proto.RegisterType((*SetAliasRequest)(nil), "lnrpc.SetAliasRequest")
proto.RegisterType((*SetAliasResponse)(nil), "lnrpc.SetAliasResponse")
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.RegisterType((*InvoiceSubscription)(nil), "lnrpc.InvoiceSubscription")
proto.RegisterType((*Payment)(nil), "lnrpc.Payment")
proto.RegisterType((*ListPaymentsRequest)(nil), "lnrpc.ListPaymentsRequest")
proto.RegisterType((*ListPaymentsResponse)(nil), "lnrpc.ListPaymentsResponse")
proto.RegisterType((*DeleteAllPaymentsRequest)(nil), "lnrpc.DeleteAllPaymentsRequest")
proto.RegisterType((*DeleteAllPaymentsResponse)(nil), "lnrpc.DeleteAllPaymentsResponse")
proto.RegisterType((*DebugLevelRequest)(nil), "lnrpc.DebugLevelRequest")
proto.RegisterType((*DebugLevelResponse)(nil), "lnrpc.DebugLevelResponse")
proto.RegisterType((*PayReqString)(nil), "lnrpc.PayReqString")
proto.RegisterType((*PayReq)(nil), "lnrpc.PayReq")
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.SupportPackageIsVersion4
// 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)
GetTransactions(ctx context.Context, in *GetTransactionsRequest, opts ...grpc.CallOption) (*TransactionDetails, error)
SendCoins(ctx context.Context, in *SendCoinsRequest, opts ...grpc.CallOption) (*SendCoinsResponse, error)
SubscribeTransactions(ctx context.Context, in *GetTransactionsRequest, opts ...grpc.CallOption) (Lightning_SubscribeTransactionsClient, error)
SendMany(ctx context.Context, in *SendManyRequest, opts ...grpc.CallOption) (*SendManyResponse, error)
NewAddress(ctx context.Context, in *NewAddressRequest, opts ...grpc.CallOption) (*NewAddressResponse, error)
NewWitnessAddress(ctx context.Context, in *NewWitnessAddressRequest, 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)
// TODO(roasbeef): merge with below with bool?
PendingChannels(ctx context.Context, in *PendingChannelRequest, opts ...grpc.CallOption) (*PendingChannelResponse, error)
ListChannels(ctx context.Context, in *ListChannelsRequest, opts ...grpc.CallOption) (*ListChannelsResponse, error)
OpenChannelSync(ctx context.Context, in *OpenChannelRequest, opts ...grpc.CallOption) (*ChannelPoint, 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)
SendPayment(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendPaymentClient, error)
SendPaymentSync(ctx context.Context, in *SendRequest, opts ...grpc.CallOption) (*SendResponse, error)
AddInvoice(ctx context.Context, in *Invoice, opts ...grpc.CallOption) (*AddInvoiceResponse, error)
ListInvoices(ctx context.Context, in *ListInvoiceRequest, opts ...grpc.CallOption) (*ListInvoiceResponse, error)
LookupInvoice(ctx context.Context, in *PaymentHash, opts ...grpc.CallOption) (*Invoice, error)
SubscribeInvoices(ctx context.Context, in *InvoiceSubscription, opts ...grpc.CallOption) (Lightning_SubscribeInvoicesClient, error)
DecodePayReq(ctx context.Context, in *PayReqString, opts ...grpc.CallOption) (*PayReq, error)
ListPayments(ctx context.Context, in *ListPaymentsRequest, opts ...grpc.CallOption) (*ListPaymentsResponse, error)
DeleteAllPayments(ctx context.Context, in *DeleteAllPaymentsRequest, opts ...grpc.CallOption) (*DeleteAllPaymentsResponse, error)
DescribeGraph(ctx context.Context, in *ChannelGraphRequest, opts ...grpc.CallOption) (*ChannelGraph, error)
GetChanInfo(ctx context.Context, in *ChanInfoRequest, opts ...grpc.CallOption) (*ChannelEdge, error)
GetNodeInfo(ctx context.Context, in *NodeInfoRequest, opts ...grpc.CallOption) (*NodeInfo, error)
QueryRoutes(ctx context.Context, in *QueryRoutesRequest, opts ...grpc.CallOption) (*QueryRoutesResponse, error)
GetNetworkInfo(ctx context.Context, in *NetworkInfoRequest, opts ...grpc.CallOption) (*NetworkInfo, error)
SubscribeChannelGraph(ctx context.Context, in *GraphTopologySubscription, opts ...grpc.CallOption) (Lightning_SubscribeChannelGraphClient, error)
SetAlias(ctx context.Context, in *SetAliasRequest, opts ...grpc.CallOption) (*SetAliasResponse, error)
DebugLevel(ctx context.Context, in *DebugLevelRequest, opts ...grpc.CallOption) (*DebugLevelResponse, 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) GetTransactions(ctx context.Context, in *GetTransactionsRequest, opts ...grpc.CallOption) (*TransactionDetails, error) {
out := new(TransactionDetails)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/GetTransactions", 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) SubscribeTransactions(ctx context.Context, in *GetTransactionsRequest, opts ...grpc.CallOption) (Lightning_SubscribeTransactionsClient, error) {
stream, err := grpc.NewClientStream(ctx, &_Lightning_serviceDesc.Streams[0], c.cc, "/lnrpc.Lightning/SubscribeTransactions", opts...)
if err != nil {
return nil, err
}
x := &lightningSubscribeTransactionsClient{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_SubscribeTransactionsClient interface {
Recv() (*Transaction, error)
grpc.ClientStream
}
type lightningSubscribeTransactionsClient struct {
grpc.ClientStream
}
func (x *lightningSubscribeTransactionsClient) Recv() (*Transaction, error) {
m := new(Transaction)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, 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) 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) NewWitnessAddress(ctx context.Context, in *NewWitnessAddressRequest, opts ...grpc.CallOption) (*NewAddressResponse, error) {
out := new(NewAddressResponse)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/NewWitnessAddress", 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) 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) OpenChannelSync(ctx context.Context, in *OpenChannelRequest, opts ...grpc.CallOption) (*ChannelPoint, error) {
out := new(ChannelPoint)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/OpenChannelSync", 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[1], 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[2], 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) SendPayment(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendPaymentClient, error) {
stream, err := grpc.NewClientStream(ctx, &_Lightning_serviceDesc.Streams[3], 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) SendPaymentSync(ctx context.Context, in *SendRequest, opts ...grpc.CallOption) (*SendResponse, error) {
out := new(SendResponse)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/SendPaymentSync", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, 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) 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) 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) SubscribeInvoices(ctx context.Context, in *InvoiceSubscription, opts ...grpc.CallOption) (Lightning_SubscribeInvoicesClient, error) {
stream, err := grpc.NewClientStream(ctx, &_Lightning_serviceDesc.Streams[4], c.cc, "/lnrpc.Lightning/SubscribeInvoices", opts...)
if err != nil {
return nil, err
}
x := &lightningSubscribeInvoicesClient{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_SubscribeInvoicesClient interface {
Recv() (*Invoice, error)
grpc.ClientStream
}
type lightningSubscribeInvoicesClient struct {
grpc.ClientStream
}
func (x *lightningSubscribeInvoicesClient) Recv() (*Invoice, error) {
m := new(Invoice)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
func (c *lightningClient) DecodePayReq(ctx context.Context, in *PayReqString, opts ...grpc.CallOption) (*PayReq, error) {
out := new(PayReq)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/DecodePayReq", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *lightningClient) ListPayments(ctx context.Context, in *ListPaymentsRequest, opts ...grpc.CallOption) (*ListPaymentsResponse, error) {
out := new(ListPaymentsResponse)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/ListPayments", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *lightningClient) DeleteAllPayments(ctx context.Context, in *DeleteAllPaymentsRequest, opts ...grpc.CallOption) (*DeleteAllPaymentsResponse, error) {
out := new(DeleteAllPaymentsResponse)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/DeleteAllPayments", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *lightningClient) DescribeGraph(ctx context.Context, in *ChannelGraphRequest, opts ...grpc.CallOption) (*ChannelGraph, error) {
out := new(ChannelGraph)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/DescribeGraph", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *lightningClient) GetChanInfo(ctx context.Context, in *ChanInfoRequest, opts ...grpc.CallOption) (*ChannelEdge, error) {
out := new(ChannelEdge)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/GetChanInfo", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *lightningClient) GetNodeInfo(ctx context.Context, in *NodeInfoRequest, opts ...grpc.CallOption) (*NodeInfo, error) {
out := new(NodeInfo)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/GetNodeInfo", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *lightningClient) QueryRoutes(ctx context.Context, in *QueryRoutesRequest, opts ...grpc.CallOption) (*QueryRoutesResponse, error) {
out := new(QueryRoutesResponse)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/QueryRoutes", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *lightningClient) GetNetworkInfo(ctx context.Context, in *NetworkInfoRequest, opts ...grpc.CallOption) (*NetworkInfo, error) {
out := new(NetworkInfo)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/GetNetworkInfo", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *lightningClient) SubscribeChannelGraph(ctx context.Context, in *GraphTopologySubscription, opts ...grpc.CallOption) (Lightning_SubscribeChannelGraphClient, error) {
stream, err := grpc.NewClientStream(ctx, &_Lightning_serviceDesc.Streams[5], c.cc, "/lnrpc.Lightning/SubscribeChannelGraph", opts...)
if err != nil {
return nil, err
}
x := &lightningSubscribeChannelGraphClient{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_SubscribeChannelGraphClient interface {
Recv() (*GraphTopologyUpdate, error)
grpc.ClientStream
}
type lightningSubscribeChannelGraphClient struct {
grpc.ClientStream
}
func (x *lightningSubscribeChannelGraphClient) Recv() (*GraphTopologyUpdate, error) {
m := new(GraphTopologyUpdate)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
func (c *lightningClient) SetAlias(ctx context.Context, in *SetAliasRequest, opts ...grpc.CallOption) (*SetAliasResponse, error) {
out := new(SetAliasResponse)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/SetAlias", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *lightningClient) DebugLevel(ctx context.Context, in *DebugLevelRequest, opts ...grpc.CallOption) (*DebugLevelResponse, error) {
out := new(DebugLevelResponse)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/DebugLevel", 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)
GetTransactions(context.Context, *GetTransactionsRequest) (*TransactionDetails, error)
SendCoins(context.Context, *SendCoinsRequest) (*SendCoinsResponse, error)
SubscribeTransactions(*GetTransactionsRequest, Lightning_SubscribeTransactionsServer) error
SendMany(context.Context, *SendManyRequest) (*SendManyResponse, error)
NewAddress(context.Context, *NewAddressRequest) (*NewAddressResponse, error)
NewWitnessAddress(context.Context, *NewWitnessAddressRequest) (*NewAddressResponse, error)
ConnectPeer(context.Context, *ConnectPeerRequest) (*ConnectPeerResponse, error)
ListPeers(context.Context, *ListPeersRequest) (*ListPeersResponse, error)
GetInfo(context.Context, *GetInfoRequest) (*GetInfoResponse, error)
// TODO(roasbeef): merge with below with bool?
PendingChannels(context.Context, *PendingChannelRequest) (*PendingChannelResponse, error)
ListChannels(context.Context, *ListChannelsRequest) (*ListChannelsResponse, error)
OpenChannelSync(context.Context, *OpenChannelRequest) (*ChannelPoint, error)
OpenChannel(*OpenChannelRequest, Lightning_OpenChannelServer) error
CloseChannel(*CloseChannelRequest, Lightning_CloseChannelServer) error
SendPayment(Lightning_SendPaymentServer) error
SendPaymentSync(context.Context, *SendRequest) (*SendResponse, error)
AddInvoice(context.Context, *Invoice) (*AddInvoiceResponse, error)
ListInvoices(context.Context, *ListInvoiceRequest) (*ListInvoiceResponse, error)
LookupInvoice(context.Context, *PaymentHash) (*Invoice, error)
SubscribeInvoices(*InvoiceSubscription, Lightning_SubscribeInvoicesServer) error
DecodePayReq(context.Context, *PayReqString) (*PayReq, error)
ListPayments(context.Context, *ListPaymentsRequest) (*ListPaymentsResponse, error)
DeleteAllPayments(context.Context, *DeleteAllPaymentsRequest) (*DeleteAllPaymentsResponse, error)
DescribeGraph(context.Context, *ChannelGraphRequest) (*ChannelGraph, error)
GetChanInfo(context.Context, *ChanInfoRequest) (*ChannelEdge, error)
GetNodeInfo(context.Context, *NodeInfoRequest) (*NodeInfo, error)
QueryRoutes(context.Context, *QueryRoutesRequest) (*QueryRoutesResponse, error)
GetNetworkInfo(context.Context, *NetworkInfoRequest) (*NetworkInfo, error)
SubscribeChannelGraph(*GraphTopologySubscription, Lightning_SubscribeChannelGraphServer) error
SetAlias(context.Context, *SetAliasRequest) (*SetAliasResponse, error)
DebugLevel(context.Context, *DebugLevelRequest) (*DebugLevelResponse, 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_GetTransactions_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(GetTransactionsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).GetTransactions(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/GetTransactions",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).GetTransactions(ctx, req.(*GetTransactionsRequest))
}
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_SubscribeTransactions_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(GetTransactionsRequest)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(LightningServer).SubscribeTransactions(m, &lightningSubscribeTransactionsServer{stream})
}
type Lightning_SubscribeTransactionsServer interface {
Send(*Transaction) error
grpc.ServerStream
}
type lightningSubscribeTransactionsServer struct {
grpc.ServerStream
}
func (x *lightningSubscribeTransactionsServer) Send(m *Transaction) error {
return x.ServerStream.SendMsg(m)
}
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_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_NewWitnessAddress_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(NewWitnessAddressRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).NewWitnessAddress(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/NewWitnessAddress",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).NewWitnessAddress(ctx, req.(*NewWitnessAddressRequest))
}
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_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_OpenChannelSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(OpenChannelRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).OpenChannelSync(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/OpenChannelSync",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).OpenChannelSync(ctx, req.(*OpenChannelRequest))
}
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_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_SendPaymentSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SendRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).SendPaymentSync(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/SendPaymentSync",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).SendPaymentSync(ctx, req.(*SendRequest))
}
return interceptor(ctx, in, info, handler)
}
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_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_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_SubscribeInvoices_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(InvoiceSubscription)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(LightningServer).SubscribeInvoices(m, &lightningSubscribeInvoicesServer{stream})
}
type Lightning_SubscribeInvoicesServer interface {
Send(*Invoice) error
grpc.ServerStream
}
type lightningSubscribeInvoicesServer struct {
grpc.ServerStream
}
func (x *lightningSubscribeInvoicesServer) Send(m *Invoice) error {
return x.ServerStream.SendMsg(m)
}
func _Lightning_DecodePayReq_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(PayReqString)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).DecodePayReq(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/DecodePayReq",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).DecodePayReq(ctx, req.(*PayReqString))
}
return interceptor(ctx, in, info, handler)
}
func _Lightning_ListPayments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ListPaymentsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).ListPayments(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/ListPayments",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).ListPayments(ctx, req.(*ListPaymentsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Lightning_DeleteAllPayments_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DeleteAllPaymentsRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).DeleteAllPayments(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/DeleteAllPayments",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).DeleteAllPayments(ctx, req.(*DeleteAllPaymentsRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Lightning_DescribeGraph_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ChannelGraphRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).DescribeGraph(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/DescribeGraph",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).DescribeGraph(ctx, req.(*ChannelGraphRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Lightning_GetChanInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ChanInfoRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).GetChanInfo(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/GetChanInfo",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).GetChanInfo(ctx, req.(*ChanInfoRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Lightning_GetNodeInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(NodeInfoRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).GetNodeInfo(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/GetNodeInfo",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).GetNodeInfo(ctx, req.(*NodeInfoRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Lightning_QueryRoutes_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(QueryRoutesRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).QueryRoutes(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/QueryRoutes",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).QueryRoutes(ctx, req.(*QueryRoutesRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Lightning_GetNetworkInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(NetworkInfoRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).GetNetworkInfo(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/GetNetworkInfo",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).GetNetworkInfo(ctx, req.(*NetworkInfoRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Lightning_SubscribeChannelGraph_Handler(srv interface{}, stream grpc.ServerStream) error {
m := new(GraphTopologySubscription)
if err := stream.RecvMsg(m); err != nil {
return err
}
return srv.(LightningServer).SubscribeChannelGraph(m, &lightningSubscribeChannelGraphServer{stream})
}
type Lightning_SubscribeChannelGraphServer interface {
Send(*GraphTopologyUpdate) error
grpc.ServerStream
}
type lightningSubscribeChannelGraphServer struct {
grpc.ServerStream
}
func (x *lightningSubscribeChannelGraphServer) Send(m *GraphTopologyUpdate) error {
return x.ServerStream.SendMsg(m)
}
func _Lightning_SetAlias_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SetAliasRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).SetAlias(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/SetAlias",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).SetAlias(ctx, req.(*SetAliasRequest))
}
return interceptor(ctx, in, info, handler)
}
func _Lightning_DebugLevel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(DebugLevelRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).DebugLevel(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/DebugLevel",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).DebugLevel(ctx, req.(*DebugLevelRequest))
}
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: "GetTransactions",
Handler: _Lightning_GetTransactions_Handler,
},
{
MethodName: "SendCoins",
Handler: _Lightning_SendCoins_Handler,
},
{
MethodName: "SendMany",
Handler: _Lightning_SendMany_Handler,
},
{
MethodName: "NewAddress",
Handler: _Lightning_NewAddress_Handler,
},
{
MethodName: "NewWitnessAddress",
Handler: _Lightning_NewWitnessAddress_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: "OpenChannelSync",
Handler: _Lightning_OpenChannelSync_Handler,
},
{
MethodName: "SendPaymentSync",
Handler: _Lightning_SendPaymentSync_Handler,
},
{
MethodName: "AddInvoice",
Handler: _Lightning_AddInvoice_Handler,
},
{
MethodName: "ListInvoices",
Handler: _Lightning_ListInvoices_Handler,
},
{
MethodName: "LookupInvoice",
Handler: _Lightning_LookupInvoice_Handler,
},
{
MethodName: "DecodePayReq",
Handler: _Lightning_DecodePayReq_Handler,
},
{
MethodName: "ListPayments",
Handler: _Lightning_ListPayments_Handler,
},
{
MethodName: "DeleteAllPayments",
Handler: _Lightning_DeleteAllPayments_Handler,
},
{
MethodName: "DescribeGraph",
Handler: _Lightning_DescribeGraph_Handler,
},
{
MethodName: "GetChanInfo",
Handler: _Lightning_GetChanInfo_Handler,
},
{
MethodName: "GetNodeInfo",
Handler: _Lightning_GetNodeInfo_Handler,
},
{
MethodName: "QueryRoutes",
Handler: _Lightning_QueryRoutes_Handler,
},
{
MethodName: "GetNetworkInfo",
Handler: _Lightning_GetNetworkInfo_Handler,
},
{
MethodName: "SetAlias",
Handler: _Lightning_SetAlias_Handler,
},
{
MethodName: "DebugLevel",
Handler: _Lightning_DebugLevel_Handler,
},
},
Streams: []grpc.StreamDesc{
{
StreamName: "SubscribeTransactions",
Handler: _Lightning_SubscribeTransactions_Handler,
ServerStreams: true,
},
{
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,
},
{
StreamName: "SubscribeInvoices",
Handler: _Lightning_SubscribeInvoices_Handler,
ServerStreams: true,
},
{
StreamName: "SubscribeChannelGraph",
Handler: _Lightning_SubscribeChannelGraph_Handler,
ServerStreams: true,
},
},
Metadata: "rpc.proto",
}
func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 3972 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x5a, 0xcd, 0x6f, 0x1c, 0xc9,
0x75, 0x57, 0x0f, 0x87, 0x1f, 0xf3, 0x66, 0x86, 0x1f, 0x45, 0x8a, 0x1c, 0x0d, 0xb5, 0x6b, 0x6d,
0x59, 0x58, 0x31, 0xcc, 0x82, 0xd4, 0x32, 0xc1, 0x46, 0x5e, 0x25, 0x59, 0x70, 0x25, 0x5a, 0x14,
0x4c, 0x53, 0x74, 0x53, 0xbb, 0x72, 0x6c, 0x04, 0x93, 0xe6, 0x74, 0x71, 0xd8, 0x56, 0x4f, 0x77,
0x6f, 0x77, 0x0d, 0xa9, 0xb1, 0x40, 0x24, 0x70, 0x7c, 0x4b, 0x02, 0x23, 0x30, 0x90, 0xa3, 0x11,
0x20, 0xe7, 0x5c, 0x72, 0xcd, 0xdf, 0x10, 0xc0, 0x80, 0x4f, 0x39, 0xe4, 0x16, 0xe4, 0x9e, 0x7b,
0x0e, 0xc1, 0xab, 0x8f, 0xee, 0xaa, 0xee, 0xa6, 0x56, 0x41, 0x4e, 0x33, 0xf5, 0xab, 0x57, 0xaf,
0xaa, 0x5e, 0xbd, 0xaf, 0x7a, 0xd5, 0xd0, 0x4a, 0x93, 0xe1, 0x4e, 0x92, 0xc6, 0x3c, 0x26, 0xb3,
0x61, 0x94, 0x26, 0xc3, 0xfe, 0xdd, 0x51, 0x1c, 0x8f, 0x42, 0xb6, 0xeb, 0x25, 0xc1, 0xae, 0x17,
0x45, 0x31, 0xf7, 0x78, 0x10, 0x47, 0x99, 0x24, 0xa2, 0xff, 0xed, 0x40, 0xfb, 0x65, 0xea, 0x45,
0x99, 0x37, 0x44, 0x98, 0xf4, 0x60, 0x9e, 0xbf, 0x19, 0x5c, 0x78, 0xd9, 0x45, 0xcf, 0xb9, 0xe7,
0x6c, 0xb5, 0x5c, 0xdd, 0x24, 0xeb, 0x30, 0xe7, 0x8d, 0xe3, 0x49, 0xc4, 0x7b, 0x8d, 0x7b, 0xce,
0xd6, 0x8c, 0xab, 0x5a, 0xe4, 0x13, 0x58, 0x89, 0x26, 0xe3, 0xc1, 0x30, 0x8e, 0xce, 0x83, 0x74,
0x2c, 0x99, 0xf7, 0x66, 0xee, 0x39, 0x5b, 0xb3, 0x6e, 0xb5, 0x83, 0x7c, 0x08, 0x70, 0x16, 0xc6,
0xc3, 0xd7, 0x72, 0x8a, 0xa6, 0x98, 0xc2, 0x40, 0x08, 0x85, 0x8e, 0x6a, 0xb1, 0x60, 0x74, 0xc1,
0x7b, 0xb3, 0x82, 0x91, 0x85, 0x21, 0x0f, 0x1e, 0x8c, 0xd9, 0x20, 0xe3, 0xde, 0x38, 0xe9, 0xcd,
0x89, 0xd5, 0x18, 0x88, 0xe8, 0x8f, 0xb9, 0x17, 0x0e, 0xce, 0x19, 0xcb, 0x7a, 0xf3, 0xaa, 0x3f,
0x47, 0x68, 0x0f, 0xd6, 0x9f, 0x31, 0x6e, 0xec, 0x3a, 0x73, 0xd9, 0x37, 0x13, 0x96, 0x71, 0x7a,
0x04, 0xc4, 0x80, 0x9f, 0x32, 0xee, 0x05, 0x61, 0x46, 0x3e, 0x83, 0x0e, 0x37, 0x88, 0x7b, 0xce,
0xbd, 0x99, 0xad, 0xf6, 0x1e, 0xd9, 0x11, 0xf2, 0xdd, 0x31, 0x06, 0xb8, 0x16, 0x1d, 0xfd, 0xad,
0x03, 0xed, 0x53, 0x16, 0xf9, 0x8a, 0x3b, 0x21, 0xd0, 0xf4, 0x59, 0xc6, 0x85, 0x60, 0x3b, 0xae,
0xf8, 0x4f, 0xbe, 0x03, 0x6d, 0xfc, 0x1d, 0x64, 0x3c, 0x0d, 0xa2, 0x91, 0x10, 0x6d, 0xcb, 0x05,
0x84, 0x4e, 0x05, 0x42, 0x96, 0x61, 0xc6, 0x1b, 0x73, 0x21, 0xd0, 0x19, 0x17, 0xff, 0x92, 0x8f,
0xa0, 0x93, 0x78, 0xd3, 0x31, 0x8b, 0x78, 0x21, 0xc4, 0x8e, 0xdb, 0x56, 0xd8, 0x21, 0x4a, 0x71,
0x07, 0x56, 0x4d, 0x12, 0xcd, 0x7d, 0x56, 0x70, 0x5f, 0x31, 0x28, 0xd5, 0x24, 0x0f, 0x60, 0x49,
0xd3, 0xa7, 0x72, 0xb1, 0x42, 0xac, 0x2d, 0x77, 0x51, 0xc1, 0x5a, 0x40, 0x11, 0x74, 0xe4, 0x8e,
0xb2, 0x24, 0x8e, 0x32, 0x46, 0xb6, 0x61, 0x59, 0x0f, 0x4c, 0x52, 0x16, 0x8c, 0xbd, 0x11, 0x53,
0xdb, 0xab, 0xe0, 0x64, 0x0f, 0xba, 0xf9, 0x24, 0xf1, 0x84, 0x33, 0xb1, 0xd9, 0xf6, 0x5e, 0x47,
0xc9, 0xd1, 0x45, 0xcc, 0xb5, 0x49, 0xe8, 0x2f, 0x1c, 0xe8, 0x3c, 0xb9, 0xf0, 0xa2, 0x88, 0x85,
0x27, 0x71, 0x10, 0x71, 0xd4, 0x8f, 0xf3, 0x49, 0xe4, 0x07, 0xd1, 0x68, 0xc0, 0xdf, 0x04, 0xbe,
0x9a, 0xcc, 0xc2, 0x70, 0x51, 0x66, 0x1b, 0x77, 0xaf, 0x04, 0x5b, 0xc1, 0x91, 0x5f, 0x3c, 0xe1,
0xc9, 0x84, 0x0f, 0x82, 0xc8, 0x67, 0x6f, 0x84, 0x9c, 0xbb, 0xae, 0x85, 0xd1, 0x3f, 0x85, 0xe5,
0x23, 0x54, 0xbc, 0x28, 0x88, 0x46, 0xfb, 0xbe, 0x9f, 0xb2, 0x2c, 0x43, 0x6b, 0x48, 0x26, 0x67,
0xaf, 0xd9, 0x54, 0x99, 0x89, 0x6a, 0xe1, 0x19, 0x5f, 0xc4, 0x19, 0x57, 0xf3, 0x89, 0xff, 0xf4,
0x1f, 0x1d, 0x58, 0x42, 0xa9, 0xfd, 0xd0, 0x8b, 0xa6, 0x5a, 0x17, 0x8e, 0xa0, 0x83, 0xac, 0x5e,
0xc6, 0xfb, 0xd2, 0xa6, 0xa4, 0x4e, 0x6d, 0x29, 0x59, 0x94, 0xa8, 0x77, 0x4c, 0xd2, 0x83, 0x88,
0xa7, 0x53, 0xd7, 0x1a, 0xdd, 0xff, 0x02, 0x56, 0x2a, 0x24, 0xa8, 0x39, 0xc5, 0xfa, 0xf0, 0x2f,
0x59, 0x83, 0xd9, 0x4b, 0x2f, 0x9c, 0x30, 0x65, 0xc1, 0xb2, 0xf1, 0x79, 0xe3, 0x91, 0x43, 0x3f,
0x86, 0xe5, 0x62, 0x4e, 0x75, 0xb6, 0x04, 0x9a, 0xb9, 0x88, 0x5b, 0xae, 0xf8, 0x8f, 0xa2, 0x40,
0xba, 0x27, 0x71, 0x90, 0x1b, 0x0d, 0xd2, 0x79, 0xbe, 0x9f, 0x6a, 0x3a, 0xfc, 0x7f, 0x93, 0xb3,
0xa0, 0x0f, 0x60, 0xc5, 0x18, 0xff, 0x8e, 0x89, 0x7e, 0xe3, 0xc0, 0xca, 0x31, 0xbb, 0x52, 0xe2,
0xd6, 0x53, 0x3d, 0x82, 0x26, 0x9f, 0x26, 0x52, 0xc5, 0x16, 0xf7, 0xee, 0x2b, 0x69, 0x55, 0xe8,
0x76, 0x54, 0xf3, 0xe5, 0x34, 0x61, 0xae, 0x18, 0x41, 0x5f, 0x40, 0xdb, 0x00, 0xc9, 0x06, 0xac,
0xbe, 0x7a, 0xfe, 0xf2, 0xf8, 0xe0, 0xf4, 0x74, 0x70, 0xf2, 0xd5, 0x97, 0x3f, 0x38, 0xf8, 0xb3,
0xc1, 0xe1, 0xfe, 0xe9, 0xe1, 0xf2, 0x2d, 0xb2, 0x0e, 0xe4, 0xf8, 0xe0, 0xf4, 0xe5, 0xc1, 0x53,
0x0b, 0x77, 0xc8, 0x12, 0xb4, 0x4d, 0xa0, 0x41, 0xfb, 0xd0, 0x3b, 0x66, 0x57, 0xaf, 0x02, 0x1e,
0xb1, 0x2c, 0xb3, 0xa7, 0xa7, 0x3b, 0x40, 0xcc, 0x35, 0xa9, 0x6d, 0xf6, 0x60, 0xde, 0x93, 0x90,
0x76, 0xad, 0xaa, 0x49, 0xbf, 0x02, 0xf2, 0x24, 0x8e, 0x22, 0x36, 0xe4, 0x27, 0x8c, 0xa5, 0x7a,
0xb3, 0xbf, 0x6f, 0xc8, 0xb5, 0xbd, 0xb7, 0xa1, 0x36, 0x5b, 0xd6, 0x44, 0x25, 0x70, 0x02, 0xcd,
0x84, 0xa5, 0x63, 0x21, 0xee, 0x05, 0x57, 0xfc, 0xa7, 0xbb, 0xb0, 0x6a, 0xb1, 0x2d, 0xd6, 0x91,
0x30, 0x96, 0x0e, 0x94, 0xc4, 0x67, 0x5d, 0xdd, 0xa4, 0xff, 0xe2, 0x40, 0xf3, 0xf0, 0xe5, 0xd1,
0x13, 0xd2, 0x87, 0x85, 0x20, 0x1a, 0xc6, 0x63, 0x74, 0x1a, 0x8e, 0xe0, 0x98, 0xb7, 0x6f, 0x8c,
0x03, 0x77, 0xa1, 0x25, 0x7c, 0x0d, 0x7a, 0x6a, 0x61, 0x46, 0x1d, 0xb7, 0x00, 0x30, 0x4a, 0xb0,
0x37, 0x49, 0x90, 0x8a, 0x30, 0xa0, 0x9d, 0x7b, 0x53, 0x18, 0x5b, 0xb5, 0x03, 0x2d, 0x38, 0x65,
0x97, 0xf1, 0x50, 0x82, 0x3e, 0x0b, 0xbd, 0xa9, 0x70, 0x5e, 0x5d, 0xb7, 0x82, 0xd3, 0xff, 0x9a,
0x81, 0xee, 0xfe, 0x90, 0x07, 0x97, 0x4c, 0x39, 0x0a, 0xb1, 0x42, 0x01, 0xa8, 0xb5, 0xab, 0x16,
0xb9, 0x0f, 0xdd, 0x94, 0x8d, 0x63, 0xce, 0x06, 0xca, 0x74, 0xa5, 0x91, 0xda, 0x20, 0x52, 0x0d,
0x25, 0xa3, 0x41, 0x82, 0x2e, 0x47, 0xec, 0xa5, 0xe5, 0xda, 0x20, 0x0a, 0x11, 0x01, 0x14, 0x22,
0xee, 0xa2, 0xe9, 0xea, 0x26, 0xca, 0x6e, 0xe8, 0x25, 0xde, 0x30, 0xe0, 0x72, 0xcd, 0x33, 0x6e,
0xde, 0x46, 0xde, 0x61, 0x3c, 0xf4, 0xc2, 0xc1, 0x99, 0x17, 0x7a, 0xd1, 0x90, 0xa9, 0xe0, 0x65,
0x83, 0xe4, 0x63, 0x58, 0x54, 0x4b, 0xd2, 0x64, 0x32, 0x86, 0x95, 0x50, 0x94, 0xe9, 0x24, 0xca,
0x18, 0xe7, 0x21, 0xf3, 0x73, 0xd2, 0x05, 0x41, 0x5a, 0xed, 0x20, 0x0f, 0x61, 0x55, 0xc6, 0xc0,
0xcc, 0xe3, 0x71, 0x76, 0x11, 0x64, 0x83, 0x8c, 0x45, 0xbc, 0xd7, 0x12, 0xf4, 0x75, 0x5d, 0xe4,
0x11, 0x6c, 0x94, 0xe0, 0x94, 0x0d, 0x59, 0x70, 0xc9, 0xfc, 0x1e, 0x88, 0x51, 0x37, 0x75, 0x93,
0x7b, 0xd0, 0xc6, 0xd0, 0x3f, 0x49, 0x7c, 0x8f, 0xb3, 0xac, 0xd7, 0x16, 0x12, 0x32, 0x21, 0xf2,
0x29, 0x74, 0x13, 0x26, 0x7d, 0xf1, 0x05, 0x0f, 0x87, 0x59, 0xaf, 0x23, 0x1c, 0x60, 0x5b, 0x69,
0x39, 0x6a, 0xa1, 0x6b, 0x53, 0xd0, 0xdb, 0xb0, 0x7a, 0x14, 0x64, 0x5c, 0x9d, 0x72, 0x6e, 0x6c,
0x87, 0xb0, 0x66, 0xc3, 0x4a, 0xcd, 0x1f, 0xc2, 0x82, 0x3a, 0x32, 0x5c, 0x00, 0x32, 0x5f, 0x53,
0xcc, 0x2d, 0x6d, 0x71, 0x73, 0x2a, 0xfa, 0xcb, 0x06, 0x34, 0xd1, 0x52, 0x84, 0x85, 0x4c, 0xce,
0x06, 0x85, 0xf7, 0xd4, 0x4d, 0xd3, 0x76, 0x1a, 0x96, 0xed, 0x98, 0xd6, 0x3d, 0x63, 0x59, 0xb7,
0x48, 0x79, 0xa6, 0x9c, 0x29, 0x79, 0x4b, 0x6d, 0x31, 0x90, 0xa2, 0x3f, 0x65, 0xc3, 0x4b, 0xa1,
0x32, 0x79, 0x3f, 0x22, 0xa8, 0x50, 0x99, 0xc7, 0xe5, 0x68, 0xa9, 0x2f, 0x79, 0x5b, 0xf7, 0x89,
0x91, 0xf3, 0x45, 0x9f, 0x18, 0xd7, 0x83, 0xf9, 0x20, 0x3a, 0x8b, 0x27, 0x91, 0x2f, 0x94, 0x62,
0xc1, 0xd5, 0x4d, 0x34, 0xd5, 0x44, 0x44, 0xc1, 0x60, 0xcc, 0x94, 0x02, 0x14, 0x00, 0x25, 0x18,
0xee, 0x32, 0xe1, 0x33, 0x72, 0x21, 0x7f, 0x06, 0x2b, 0x06, 0xa6, 0x24, 0xfc, 0x11, 0xcc, 0xe2,
0xee, 0x75, 0x42, 0xa4, 0xcf, 0x4e, 0x38, 0x1b, 0xd9, 0x43, 0x97, 0x61, 0xf1, 0x19, 0xe3, 0xcf,
0xa3, 0xf3, 0x58, 0x73, 0xfa, 0x8f, 0x06, 0x2c, 0xe5, 0x90, 0x62, 0xb4, 0x05, 0x4b, 0x81, 0xcf,
0x22, 0x1e, 0xf0, 0xe9, 0xc0, 0x8a, 0xaa, 0x65, 0x18, 0x23, 0x98, 0x17, 0x06, 0x5e, 0xa6, 0x4c,
0x57, 0x36, 0xc8, 0x1e, 0xac, 0xa1, 0x6e, 0x69, 0x75, 0xc9, 0x8f, 0x5d, 0x06, 0xf3, 0xda, 0x3e,
0x34, 0x07, 0xc4, 0xa5, 0x6b, 0x28, 0x86, 0x48, 0x97, 0x54, 0xd7, 0x85, 0x52, 0x93, 0x9c, 0x70,
0xcb, 0xd2, 0x1b, 0x15, 0x40, 0x25, 0x71, 0x9d, 0x93, 0x89, 0x44, 0x39, 0x71, 0x35, 0x92, 0xdf,
0x85, 0x4a, 0xf2, 0xbb, 0x05, 0x4b, 0xd9, 0x34, 0x1a, 0x32, 0x7f, 0xc0, 0x63, 0x9c, 0x37, 0x88,
0xc4, 0xe9, 0x2c, 0xb8, 0x65, 0x58, 0xa4, 0xe9, 0x2c, 0xe3, 0x11, 0xe3, 0xc2, 0x14, 0x17, 0x5c,
0xdd, 0xa4, 0x3f, 0x17, 0xb1, 0x24, 0xcf, 0xb8, 0xbf, 0x12, 0xf6, 0x46, 0x36, 0xa1, 0x25, 0xe7,
0xc9, 0x2e, 0x3c, 0x95, 0x33, 0x2d, 0x08, 0xe0, 0xf4, 0xc2, 0xc3, 0x84, 0xd2, 0x5a, 0xba, 0xd4,
0xec, 0xb6, 0xc0, 0x0e, 0xe5, 0xca, 0xef, 0xc3, 0xa2, 0xce, 0xe5, 0xb3, 0x41, 0xc8, 0xce, 0xb9,
0x4e, 0x94, 0xa2, 0xc9, 0x18, 0xa7, 0xcb, 0x8e, 0xd8, 0x39, 0xa7, 0xc7, 0xb0, 0xa2, 0xac, 0xea,
0x45, 0xc2, 0xf4, 0xd4, 0xdf, 0x2b, 0xfb, 0x53, 0x19, 0xcf, 0x56, 0x95, 0xb6, 0x98, 0xd9, 0x5d,
0xc9, 0xc9, 0x52, 0x17, 0x88, 0xea, 0x7e, 0x12, 0xc6, 0x19, 0x53, 0x0c, 0x29, 0x74, 0x86, 0x61,
0x9c, 0x95, 0x53, 0x40, 0x13, 0x43, 0xf9, 0x64, 0x93, 0xe1, 0x10, 0xad, 0x51, 0x46, 0x44, 0xdd,
0xa4, 0xbf, 0x74, 0x60, 0x55, 0x70, 0xd3, 0xf6, 0x9f, 0xa7, 0x16, 0xef, 0xbf, 0xcc, 0xce, 0xd0,
0x4c, 0x49, 0x3f, 0x50, 0xd7, 0x91, 0x30, 0x18, 0x07, 0x3a, 0x28, 0xb6, 0x10, 0x39, 0x42, 0x00,
0x55, 0xf6, 0x3c, 0x4e, 0x87, 0x4c, 0x48, 0x6c, 0xc1, 0x95, 0x0d, 0xfa, 0xef, 0x0e, 0xac, 0x88,
0x65, 0x9c, 0x72, 0x8f, 0x4f, 0x32, 0xb5, 0xb5, 0x3f, 0x86, 0x2e, 0x6e, 0x83, 0x69, 0x75, 0x55,
0x8b, 0x58, 0xcb, 0x2d, 0x4b, 0xa0, 0x92, 0xf8, 0xf0, 0x96, 0x6b, 0x13, 0x93, 0x2f, 0xa0, 0x63,
0x5e, 0xb6, 0x54, 0x7e, 0x7d, 0x47, 0xef, 0xa0, 0xa2, 0x15, 0x87, 0xb7, 0x5c, 0x6b, 0x00, 0x79,
0x0c, 0x20, 0xa2, 0x98, 0x60, 0x2b, 0xd6, 0x6b, 0x0c, 0xaf, 0x1c, 0xc4, 0xe1, 0x2d, 0xd7, 0x20,
0xff, 0x72, 0x01, 0xe6, 0xa4, 0x73, 0xa7, 0xcf, 0xa0, 0x6b, 0xad, 0xd4, 0x4a, 0xf0, 0x3a, 0x32,
0xc1, 0xab, 0x24, 0xde, 0x8d, 0x9a, 0xc4, 0xfb, 0x7f, 0x1c, 0x20, 0xa8, 0x49, 0xa5, 0xa3, 0xfa,
0x18, 0x16, 0xb9, 0x97, 0x8e, 0x18, 0x1f, 0xd8, 0x79, 0x4c, 0x09, 0x15, 0x51, 0x28, 0xf6, 0xad,
0x68, 0xdf, 0x71, 0x4d, 0x88, 0xec, 0x00, 0x31, 0x9a, 0xfa, 0x9a, 0x24, 0xfd, 0x77, 0x4d, 0x0f,
0x3a, 0x1a, 0x19, 0xaa, 0xf5, 0x3d, 0x42, 0x65, 0x42, 0x4d, 0x71, 0xe8, 0xb5, 0x7d, 0xe8, 0xa2,
0x93, 0x09, 0xde, 0xc1, 0x3c, 0xae, 0xf3, 0x01, 0xdd, 0xd6, 0x2e, 0x45, 0x98, 0x95, 0xf2, 0x18,
0x05, 0x40, 0x7f, 0xe7, 0xc0, 0x32, 0x6e, 0xdf, 0x52, 0x91, 0xcf, 0x41, 0x68, 0xdf, 0x7b, 0x6a,
0x88, 0x45, 0xfb, 0xff, 0x57, 0x90, 0x47, 0xd0, 0x12, 0x0c, 0xe3, 0x84, 0x45, 0x4a, 0x3f, 0x7a,
0xb6, 0x7e, 0x14, 0x86, 0x7f, 0x78, 0xcb, 0x2d, 0x88, 0x0d, 0xed, 0x38, 0x80, 0xdb, 0x6a, 0x95,
0xa5, 0x63, 0xfd, 0x04, 0xe6, 0x32, 0xb1, 0x53, 0x95, 0xde, 0xaf, 0xd9, 0x9c, 0xa5, 0x14, 0x5c,
0x45, 0x43, 0xff, 0x66, 0x06, 0xd6, 0xcb, 0x7c, 0x54, 0x38, 0xf9, 0x31, 0x2c, 0x57, 0x42, 0x81,
0x0c, 0x51, 0x9f, 0xd8, 0x62, 0x2a, 0x0d, 0x2c, 0xc3, 0x15, 0x2e, 0xfd, 0x7f, 0x68, 0xc0, 0xa2,
0x4d, 0x84, 0x7a, 0x9c, 0x07, 0xa9, 0x22, 0x70, 0x59, 0x58, 0x35, 0xa5, 0x6c, 0xd4, 0xa5, 0x94,
0x66, 0xe2, 0x38, 0xf3, 0x6d, 0x89, 0x63, 0xf3, 0xfd, 0x12, 0xc7, 0xd9, 0xda, 0xc4, 0xb1, 0xec,
0x41, 0xe5, 0x5d, 0xdf, 0xf6, 0xa0, 0xc5, 0x69, 0xcc, 0xbf, 0xc7, 0x69, 0x7c, 0x0f, 0xd6, 0x5e,
0x79, 0x61, 0xc8, 0xf8, 0x97, 0x72, 0x0a, 0x7d, 0xa6, 0x1f, 0x41, 0xe7, 0x4a, 0x5e, 0x91, 0x06,
0x71, 0x14, 0x4e, 0x55, 0x42, 0xde, 0x56, 0xd8, 0x8b, 0x28, 0x9c, 0xd2, 0x4f, 0xe1, 0x76, 0x69,
0x68, 0x71, 0x4f, 0xd1, 0xdb, 0xc0, 0x61, 0x8e, 0xab, 0x9b, 0x74, 0x03, 0x6e, 0xab, 0x65, 0xd8,
0xd3, 0xd1, 0x3d, 0x58, 0x2f, 0x77, 0xd4, 0x33, 0x9b, 0x29, 0x98, 0x7d, 0x01, 0xe4, 0x47, 0x13,
0x96, 0x4e, 0x45, 0xfd, 0x21, 0xbf, 0x69, 0x6e, 0x94, 0x53, 0x40, 0xbc, 0xe0, 0xff, 0x80, 0x4d,
0x75, 0x3d, 0xa6, 0x91, 0xd7, 0x63, 0xe8, 0x63, 0x58, 0xb5, 0x18, 0xa8, 0x19, 0xef, 0xc3, 0x9c,
0xa8, 0x61, 0x68, 0xdd, 0xb3, 0xeb, 0x1c, 0xaa, 0x8f, 0xfe, 0x25, 0xcc, 0x1c, 0xc6, 0x89, 0x79,
0x9d, 0x70, 0xec, 0xeb, 0x84, 0xd2, 0x9d, 0x41, 0xae, 0x1a, 0x72, 0x66, 0x1b, 0xc4, 0x93, 0xf7,
0xc6, 0x1c, 0xf3, 0x83, 0xf3, 0x38, 0xbd, 0xf2, 0x52, 0x5f, 0x69, 0x50, 0x09, 0xc5, 0xd5, 0x9f,
0x33, 0xad, 0x3d, 0xf8, 0x97, 0xfe, 0xca, 0x81, 0x59, 0xb1, 0x24, 0xcc, 0x3e, 0x64, 0x3e, 0x2f,
0xa3, 0x19, 0x5e, 0xe3, 0x1c, 0xe1, 0x92, 0xca, 0x70, 0xa9, 0xc0, 0xd6, 0x28, 0x17, 0xd8, 0xd0,
0xad, 0xc9, 0x56, 0x51, 0xb9, 0x2a, 0x00, 0xf2, 0x21, 0x34, 0x2f, 0xe2, 0x04, 0x53, 0x2d, 0x14,
0x0b, 0xe8, 0x8c, 0x3f, 0x4e, 0x5c, 0x81, 0xd3, 0x6d, 0x58, 0x3a, 0x8e, 0x7d, 0x66, 0x24, 0x8d,
0x37, 0x9e, 0x06, 0xfd, 0x2b, 0x07, 0x16, 0x34, 0x31, 0xd9, 0x82, 0x26, 0xfa, 0xec, 0x92, 0x4b,
0xcc, 0x2f, 0xcc, 0x48, 0xe7, 0x0a, 0x0a, 0x34, 0x00, 0xe1, 0x66, 0xb5, 0x77, 0x68, 0xe4, 0xc9,
0x4c, 0x91, 0xee, 0x61, 0x94, 0x11, 0x6b, 0x2e, 0x19, 0x65, 0x09, 0xa5, 0xbf, 0x76, 0xa0, 0x6b,
0xcd, 0x81, 0x71, 0x27, 0xf4, 0x32, 0xae, 0xee, 0x3a, 0x4a, 0x88, 0x26, 0x64, 0x5e, 0x30, 0x1a,
0xf6, 0x05, 0x23, 0x4f, 0x70, 0x67, 0xcc, 0x04, 0xf7, 0x21, 0xb4, 0xd4, 0x6d, 0x82, 0x69, 0xb9,
0xe9, 0xf2, 0x23, 0xce, 0xa8, 0x4b, 0x01, 0x05, 0x11, 0x7d, 0x0c, 0x6d, 0xa3, 0x07, 0x27, 0x8c,
0x18, 0xbf, 0x8a, 0xd3, 0xd7, 0xfa, 0x46, 0xa3, 0x9a, 0x79, 0xf5, 0xa6, 0x51, 0x54, 0x6f, 0xe8,
0x3f, 0x3b, 0xd0, 0x45, 0x9d, 0x08, 0xa2, 0xd1, 0x49, 0x1c, 0x06, 0xc3, 0xa9, 0xd0, 0x0d, 0x7d,
0xfc, 0x78, 0xef, 0xe6, 0x5e, 0xae, 0x1b, 0x36, 0x8c, 0x5e, 0x6c, 0x1c, 0x44, 0xe2, 0xca, 0xa6,
0x34, 0x23, 0x6f, 0xa3, 0x2e, 0x9f, 0x33, 0x74, 0x43, 0x19, 0x1b, 0x8c, 0x31, 0x1e, 0x4a, 0x89,
0xda, 0x20, 0x66, 0xe6, 0x08, 0xa4, 0x1e, 0x67, 0x83, 0x71, 0x10, 0x86, 0x81, 0xa4, 0x95, 0x3a,
0x5b, 0xd7, 0x45, 0xff, 0xb5, 0x01, 0x6d, 0x65, 0xf7, 0x07, 0xfe, 0x88, 0xa1, 0x7e, 0x6a, 0xd7,
0x9a, 0x1b, 0x94, 0x81, 0xe8, 0x7e, 0xcb, 0x19, 0x1b, 0x48, 0xf9, 0x00, 0x67, 0xaa, 0x07, 0x88,
0x81, 0x3b, 0xf6, 0xd9, 0xa7, 0x98, 0x1f, 0xa8, 0x2a, 0x76, 0x01, 0xe8, 0xde, 0x3d, 0xd1, 0x3b,
0x5b, 0xf4, 0x0a, 0xc0, 0xf2, 0xf3, 0x73, 0x25, 0x3f, 0xff, 0x08, 0x3a, 0x8a, 0x8d, 0x90, 0xbb,
0xf0, 0xbd, 0x85, 0x2a, 0x5b, 0x67, 0xe2, 0x5a, 0x94, 0x7a, 0xe4, 0x9e, 0x1e, 0xb9, 0xf0, 0x6d,
0x23, 0x35, 0x25, 0xde, 0xab, 0x95, 0xf0, 0x9e, 0xa5, 0x5e, 0x72, 0xa1, 0x7d, 0xa9, 0x9f, 0x57,
0x5e, 0x05, 0x4c, 0xb6, 0x61, 0x16, 0x87, 0x69, 0x77, 0x56, 0x6f, 0x5e, 0x92, 0x84, 0x6c, 0xc1,
0x2c, 0xf3, 0x47, 0xc2, 0x37, 0x98, 0xba, 0x6a, 0x9c, 0x91, 0x2b, 0x09, 0xd0, 0xd8, 0x11, 0x2d,
0x19, 0xbb, 0xed, 0x0b, 0xe7, 0xb0, 0xf9, 0xdc, 0xa7, 0x6b, 0x40, 0x8e, 0xa5, 0xd6, 0x9a, 0x17,
0xca, 0xbf, 0x9e, 0x81, 0xb6, 0x01, 0xa3, 0xdd, 0x8e, 0x70, 0xc1, 0x03, 0x3f, 0xf0, 0xc6, 0x8c,
0xb3, 0x54, 0x69, 0x6a, 0x09, 0x15, 0x2e, 0xf3, 0x72, 0x34, 0x88, 0x27, 0x7c, 0xe0, 0xb3, 0x51,
0xca, 0x64, 0x55, 0xd4, 0x71, 0x4b, 0x28, 0xd2, 0x8d, 0xbd, 0x37, 0x26, 0x9d, 0xd4, 0x87, 0x12,
0xaa, 0x73, 0x39, 0x29, 0xa3, 0x66, 0x91, 0xcb, 0x49, 0x89, 0x94, 0x3d, 0xce, 0x6c, 0x8d, 0xc7,
0xf9, 0x0c, 0xd6, 0xa5, 0x6f, 0x51, 0xb6, 0x39, 0x28, 0xa9, 0xc9, 0x0d, 0xbd, 0x64, 0x1b, 0x96,
0x71, 0xcd, 0x5a, 0xc1, 0xb3, 0xe0, 0xe7, 0xb2, 0x62, 0xe4, 0xb8, 0x15, 0x1c, 0x69, 0xd1, 0x1c,
0x2d, 0x5a, 0x59, 0x32, 0xaa, 0xe0, 0x82, 0xd6, 0x7b, 0x63, 0xd3, 0xb6, 0x14, 0x6d, 0x09, 0xa7,
0x9b, 0x70, 0x47, 0xa8, 0xc9, 0xcb, 0x38, 0x89, 0xc3, 0x78, 0x34, 0x3d, 0x9d, 0x9c, 0x65, 0xc3,
0x34, 0x48, 0x30, 0x6d, 0xa4, 0xff, 0xe6, 0xc0, 0xaa, 0xd5, 0xab, 0x72, 0xd9, 0x3f, 0x94, 0x3a,
0x9b, 0xd7, 0x89, 0xa4, 0x66, 0xad, 0x18, 0x9e, 0x4d, 0x12, 0xca, 0xa4, 0xfd, 0x2b, 0x55, 0x3a,
0xda, 0x87, 0x25, 0x3d, 0xb5, 0x1e, 0x28, 0xd5, 0xac, 0x57, 0x55, 0x33, 0x35, 0x7e, 0x51, 0x0d,
0xd0, 0x2c, 0xfe, 0x44, 0x26, 0x40, 0xcc, 0x17, 0x9b, 0x40, 0x67, 0x8b, 0xe3, 0xfb, 0x7a, 0xbc,
0xe8, 0x7a, 0x62, 0x0e, 0x71, 0xdb, 0xc3, 0x1c, 0xcc, 0xe8, 0xdf, 0x3a, 0x00, 0xc5, 0xea, 0xf0,
0xe4, 0x0b, 0xef, 0x8c, 0x7b, 0x68, 0x19, 0x9e, 0x18, 0x53, 0x20, 0x2b, 0x41, 0x94, 0xee, 0xa6,
0xad, 0x31, 0xcc, 0x29, 0x1e, 0xc0, 0xd2, 0x28, 0x8c, 0xcf, 0x44, 0xf8, 0xf4, 0xf8, 0x24, 0x65,
0x99, 0x2a, 0xa0, 0x2e, 0x4a, 0xf8, 0xfb, 0x0a, 0x2d, 0xa2, 0x43, 0xd3, 0x88, 0x0e, 0xf4, 0xef,
0x1a, 0xf9, 0xbd, 0xbb, 0xd8, 0xf3, 0x8d, 0x66, 0x44, 0xf6, 0x2a, 0xde, 0xef, 0x86, 0x6b, 0xae,
0x48, 0xdf, 0x4f, 0xbe, 0x35, 0x37, 0x7d, 0x0c, 0x8b, 0xa9, 0x74, 0x2f, 0xda, 0xf7, 0x34, 0xdf,
0xe1, 0x7b, 0xba, 0xa9, 0x15, 0x58, 0x7e, 0x0f, 0x96, 0x3d, 0xff, 0x92, 0xa5, 0x3c, 0x10, 0xa9,
0xa7, 0x88, 0xdf, 0xd2, 0x63, 0x2e, 0x19, 0xb8, 0x08, 0xab, 0x0f, 0x60, 0x69, 0x28, 0xcb, 0xd9,
0x39, 0xa5, 0x7a, 0xa4, 0x2a, 0x60, 0x24, 0xa4, 0xff, 0xa4, 0xaf, 0xf8, 0xf6, 0x19, 0xde, 0x2c,
0x11, 0x73, 0x77, 0x8d, 0xd2, 0xee, 0xbe, 0xab, 0xae, 0xe4, 0xbe, 0xae, 0x8e, 0xa8, 0xc2, 0x87,
0x04, 0x55, 0x79, 0xc4, 0x16, 0x69, 0xf3, 0x7d, 0x44, 0x4a, 0x77, 0x60, 0xe9, 0x94, 0xf1, 0x7d,
0x3c, 0x41, 0xed, 0xf9, 0x36, 0xa1, 0x15, 0xb1, 0xab, 0x81, 0x3c, 0x62, 0x19, 0xa7, 0x17, 0x22,
0x76, 0x25, 0x68, 0x28, 0x81, 0xe5, 0x82, 0x5e, 0xe6, 0x98, 0xf4, 0xef, 0x1b, 0x30, 0xff, 0x3c,
0xba, 0x8c, 0x83, 0xa1, 0xb8, 0x64, 0x8f, 0xd9, 0x38, 0xd6, 0xaf, 0x28, 0xf8, 0x1f, 0xc3, 0xbe,
0xa8, 0xc9, 0x26, 0x5c, 0xdd, 0x7e, 0x75, 0x13, 0x43, 0x60, 0x5a, 0x3c, 0xd9, 0x49, 0x6d, 0x33,
0x10, 0xb2, 0x0e, 0x73, 0xa9, 0xf9, 0xbc, 0xa8, 0x5a, 0xc5, 0x13, 0xd2, 0xac, 0xf1, 0x84, 0x24,
0xca, 0x2d, 0xb2, 0xdc, 0x2c, 0x8e, 0x64, 0xc1, 0xd5, 0x4d, 0x91, 0xbe, 0xa6, 0x4c, 0xd5, 0xeb,
0x31, 0x98, 0xce, 0xab, 0xf4, 0xd5, 0x04, 0x31, 0xe0, 0xca, 0x01, 0x92, 0x46, 0x3a, 0x24, 0x13,
0xc2, 0x04, 0xa4, 0xfc, 0x42, 0xd9, 0x92, 0x6a, 0x52, 0x82, 0xe9, 0xd7, 0x40, 0xf6, 0x7d, 0x5f,
0x49, 0x25, 0xcf, 0xc6, 0x8b, 0xfd, 0x38, 0xd6, 0x7e, 0x6a, 0xf8, 0x36, 0xea, 0xf9, 0x1e, 0x40,
0xfb, 0xc4, 0x78, 0x62, 0x15, 0x02, 0xd4, 0x8f, 0xab, 0x4a, 0xe8, 0x06, 0x62, 0x4c, 0xd8, 0x30,
0x27, 0xa4, 0x7f, 0x04, 0xe4, 0x28, 0xc8, 0x78, 0xbe, 0xbe, 0xfc, 0x9e, 0xa4, 0x2f, 0x9b, 0xe6,
0x3d, 0x49, 0x61, 0xe2, 0x9e, 0xb4, 0x2f, 0xcb, 0xdf, 0xe5, 0x8d, 0x6d, 0xc3, 0x42, 0x20, 0x21,
0xed, 0x3f, 0x17, 0x95, 0xe2, 0x69, 0xca, 0xbc, 0x1f, 0x23, 0xbd, 0x02, 0x2d, 0xf7, 0xfc, 0x2b,
0x07, 0xe6, 0xd5, 0xd6, 0x30, 0x4e, 0x59, 0x8f, 0xcb, 0xea, 0x3a, 0x6b, 0x62, 0xf5, 0xcf, 0x88,
0xd5, 0x93, 0x9e, 0xa9, 0x3b, 0x69, 0x02, 0xcd, 0xc4, 0xe3, 0x17, 0x22, 0x89, 0x6d, 0xb9, 0xe2,
0xbf, 0xbe, 0x94, 0xcc, 0x16, 0x97, 0x12, 0x55, 0xea, 0x57, 0x8b, 0xca, 0xab, 0xd0, 0x5f, 0xca,
0x52, 0x7f, 0x01, 0x17, 0x32, 0x50, 0x0b, 0x2c, 0xcb, 0x40, 0x91, 0xba, 0x79, 0x3f, 0xed, 0x43,
0xef, 0x29, 0x0b, 0x19, 0x67, 0xfb, 0x61, 0x58, 0xe6, 0xbf, 0x09, 0x77, 0x6a, 0xfa, 0x94, 0xad,
0x7d, 0x1f, 0x56, 0x9e, 0xb2, 0xb3, 0xc9, 0xe8, 0x88, 0x5d, 0x16, 0x35, 0x0b, 0x02, 0xcd, 0xec,
0x22, 0xbe, 0x52, 0xe7, 0x25, 0xfe, 0x93, 0x0f, 0x00, 0x42, 0xa4, 0x19, 0x64, 0x09, 0x1b, 0x2a,
0x6d, 0x6a, 0x09, 0xe4, 0x34, 0x61, 0x43, 0xfa, 0x19, 0x10, 0x93, 0x8f, 0xda, 0x02, 0x5a, 0xc0,
0xe4, 0x6c, 0x90, 0x4d, 0x33, 0xce, 0xc6, 0xda, 0xf8, 0x4d, 0x88, 0x3e, 0x80, 0xce, 0x89, 0x37,
0x75, 0xd9, 0x37, 0xea, 0xcd, 0x1e, 0xef, 0x44, 0xde, 0x14, 0xd5, 0x33, 0xbf, 0x13, 0x89, 0x6e,
0x9a, 0xc2, 0x9c, 0x24, 0x44, 0xa6, 0x3e, 0xcb, 0x78, 0x10, 0xc9, 0x72, 0x8f, 0x62, 0x6a, 0x40,
0x95, 0xe3, 0x6e, 0xd4, 0x1c, 0xb7, 0x4a, 0x5d, 0xf4, 0x2b, 0x8f, 0x3a, 0x57, 0x0b, 0xdb, 0xde,
0x83, 0xae, 0x55, 0x18, 0x20, 0xf3, 0x30, 0xb3, 0x7f, 0x74, 0xb4, 0x7c, 0x8b, 0xb4, 0x61, 0xfe,
0xc5, 0xc9, 0xc1, 0xf1, 0xf3, 0xe3, 0x67, 0xcb, 0x0e, 0x36, 0x9e, 0x1c, 0xbd, 0x38, 0xc5, 0x46,
0x63, 0xef, 0xb7, 0x1b, 0xd0, 0xca, 0xb3, 0x47, 0xf2, 0x33, 0xe8, 0x5a, 0x65, 0x00, 0xb2, 0xa9,
0x8e, 0xb0, 0xae, 0xae, 0xd0, 0xbf, 0x5b, 0xdf, 0xa9, 0x8e, 0xea, 0xc3, 0x5f, 0xfc, 0xee, 0x3f,
0x7f, 0xdd, 0xe8, 0x91, 0xf5, 0xdd, 0xcb, 0x4f, 0x77, 0xd5, 0x3d, 0x7f, 0x57, 0x94, 0xb3, 0x65,
0xf5, 0xfc, 0x35, 0x2c, 0xda, 0x65, 0x02, 0x72, 0xd7, 0x76, 0xd6, 0xa5, 0xd9, 0x3e, 0xb8, 0xa1,
0x57, 0x4d, 0x77, 0x57, 0x4c, 0xb7, 0x4e, 0xd6, 0xcc, 0xe9, 0xf2, 0xac, 0x8e, 0x89, 0xf7, 0x0e,
0xf3, 0x6b, 0x13, 0xa2, 0xf9, 0xd5, 0x7f, 0x85, 0xd2, 0xbf, 0x53, 0xfd, 0xb2, 0x44, 0x7d, 0x8a,
0x42, 0x7b, 0x62, 0x2a, 0x42, 0x96, 0x71, 0x2a, 0xf3, 0x63, 0x13, 0xf2, 0x53, 0x68, 0xe5, 0x2f,
0xeb, 0x64, 0xc3, 0xf8, 0x8e, 0xc0, 0x7c, 0xab, 0xef, 0xf7, 0xaa, 0x1d, 0x6a, 0x13, 0x9b, 0x82,
0xf3, 0x6d, 0x5a, 0xe1, 0xfc, 0xb9, 0xb3, 0x4d, 0x8e, 0xe0, 0xb6, 0xf2, 0x18, 0x67, 0xec, 0xff,
0xb2, 0x93, 0x9a, 0x6f, 0x64, 0x1e, 0x3a, 0xe4, 0x31, 0x2c, 0xe8, 0x8f, 0x0d, 0xc8, 0x7a, 0xfd,
0x17, 0x0f, 0xfd, 0x8d, 0x0a, 0xae, 0x0c, 0x65, 0x1f, 0xa0, 0x78, 0x5b, 0x27, 0xbd, 0x9b, 0x3e,
0x01, 0xc8, 0x85, 0x58, 0xf3, 0x10, 0x3f, 0x12, 0x9f, 0x16, 0xd8, 0x4f, 0xf7, 0xe4, 0x3b, 0x05,
0x7d, 0xed, 0xa3, 0xfe, 0x3b, 0x18, 0xd2, 0x75, 0x21, 0xbb, 0x65, 0xb2, 0x88, 0xb2, 0x8b, 0xd8,
0x95, 0x7e, 0xf9, 0xfb, 0x09, 0xb4, 0x8d, 0x07, 0x78, 0x62, 0x14, 0x5a, 0x4b, 0x6f, 0xfd, 0xfd,
0x7e, 0x5d, 0x97, 0xe2, 0xbe, 0x26, 0xb8, 0x2f, 0xd2, 0x16, 0x72, 0x17, 0x8f, 0x4d, 0x78, 0x24,
0x3f, 0x42, 0xe3, 0x51, 0x2f, 0x72, 0xa4, 0xf8, 0x38, 0xc0, 0x7e, 0xb7, 0xcb, 0xcf, 0xbb, 0xf2,
0x78, 0x47, 0x57, 0x04, 0xd7, 0x36, 0x29, 0xb8, 0x92, 0x1f, 0xc2, 0xbc, 0x7a, 0x99, 0x23, 0xb7,
0x8b, 0x73, 0x35, 0xee, 0x5a, 0xfd, 0xf5, 0x32, 0xac, 0x98, 0xad, 0x0a, 0x66, 0x5d, 0xd2, 0x46,
0x66, 0x23, 0xc6, 0x03, 0xe4, 0x11, 0xc2, 0x92, 0x5d, 0x2b, 0xcd, 0x72, 0x33, 0xab, 0x2d, 0x00,
0xe7, 0x66, 0x56, 0x5f, 0x9d, 0xb5, 0xcd, 0x4c, 0x9b, 0xd7, 0xae, 0xae, 0x6d, 0xff, 0x39, 0x74,
0xcc, 0x67, 0x60, 0xd2, 0x37, 0x76, 0x5e, 0x7a, 0x32, 0xee, 0x6f, 0xd6, 0xf6, 0xd9, 0xe2, 0x26,
0x1d, 0x73, 0x1a, 0xf2, 0x13, 0x58, 0x32, 0x5e, 0x22, 0x4e, 0xa7, 0xd1, 0x30, 0x3f, 0xce, 0xea,
0x0b, 0x45, 0xbf, 0x2e, 0xf7, 0xa3, 0x1b, 0x82, 0xf1, 0x0a, 0xb5, 0x18, 0xe3, 0x51, 0x3e, 0x81,
0xb6, 0xc1, 0xe3, 0x5d, 0x7c, 0x37, 0x8c, 0x2e, 0xf3, 0x55, 0xe0, 0xa1, 0x43, 0x7e, 0xe3, 0x40,
0xc7, 0x7c, 0xd7, 0x22, 0xd6, 0x6d, 0xa6, 0xc4, 0xa7, 0x67, 0xf6, 0x99, 0x8c, 0xe8, 0xd7, 0x62,
0x91, 0x27, 0xdb, 0xc7, 0x96, 0x90, 0xdf, 0x5a, 0x95, 0xea, 0x1d, 0xf3, 0x2b, 0xaa, 0xeb, 0x72,
0xa7, 0xf9, 0x82, 0x73, 0xbd, 0xfb, 0x56, 0x3c, 0x77, 0x5d, 0x3f, 0x74, 0xc8, 0xe7, 0xf2, 0x63,
0x38, 0x9d, 0x68, 0x10, 0xc3, 0xc0, 0xcb, 0x62, 0x33, 0x3f, 0x31, 0xdb, 0x72, 0x1e, 0x3a, 0xe4,
0x2f, 0xe4, 0x07, 0x54, 0x6a, 0xac, 0x90, 0xfe, 0xfb, 0x8e, 0xa7, 0xf7, 0xc5, 0x8e, 0x3e, 0xa4,
0x77, 0xac, 0x1d, 0x95, 0x3d, 0xdc, 0x09, 0x40, 0x91, 0x35, 0x92, 0x52, 0x0a, 0x95, 0xdb, 0x7e,
0x35, 0xb1, 0xb4, 0x4f, 0x55, 0x67, 0x5a, 0xc8, 0xf1, 0x67, 0x52, 0x21, 0x15, 0x7d, 0x96, 0x1f,
0x6b, 0x35, 0xfb, 0xeb, 0xf7, 0xeb, 0xba, 0x14, 0xff, 0xef, 0x0a, 0xfe, 0x1f, 0x90, 0x4d, 0x93,
0xff, 0xee, 0x5b, 0x33, 0x5b, 0xbc, 0x26, 0x5f, 0x43, 0xf7, 0x28, 0x8e, 0x5f, 0x4f, 0x92, 0xfc,
0x32, 0x60, 0xe7, 0x3f, 0x98, 0xb1, 0xf6, 0x4b, 0x9b, 0xa2, 0x1f, 0x09, 0xce, 0x9b, 0xe4, 0x8e,
0xcd, 0xb9, 0xc8, 0x61, 0xaf, 0x89, 0x07, 0x2b, 0xb9, 0xdf, 0xcf, 0x37, 0xd2, 0xb7, 0xf9, 0x98,
0xa9, 0x64, 0x65, 0x0e, 0x2b, 0x12, 0xe7, 0x73, 0x64, 0x9a, 0xe7, 0x43, 0x87, 0x9c, 0x40, 0xe7,
0x29, 0x1b, 0xc6, 0x3e, 0x53, 0x39, 0xcb, 0x6a, 0xb1, 0xf2, 0x3c, 0xd7, 0xe9, 0x77, 0x2d, 0xd0,
0xf6, 0x04, 0x89, 0x37, 0x4d, 0xd9, 0x37, 0xbb, 0x6f, 0x55, 0x32, 0x74, 0xad, 0x3d, 0x81, 0x4e,
0xe0, 0x2c, 0x4f, 0x50, 0xca, 0xf8, 0x2c, 0x4f, 0x50, 0xc9, 0xf8, 0x2c, 0x4f, 0xa0, 0x13, 0x48,
0x12, 0x62, 0x1e, 0x58, 0x4a, 0x12, 0xf3, 0xe8, 0x71, 0x53, 0x6a, 0xd9, 0xbf, 0x77, 0x33, 0x81,
0x3d, 0xdb, 0xb6, 0x3d, 0xdb, 0x29, 0x74, 0x9f, 0x32, 0x29, 0x2c, 0x59, 0x86, 0xeb, 0xdb, 0xae,
0xc5, 0x2c, 0xd9, 0x95, 0xdd, 0x8e, 0xe8, 0xb3, 0x1d, 0xbd, 0xa8, 0x81, 0x91, 0x9f, 0x42, 0xfb,
0x19, 0xe3, 0xba, 0xee, 0x96, 0xc7, 0xe0, 0x52, 0x21, 0xae, 0x5f, 0x53, 0xb6, 0xa3, 0xf7, 0x04,
0xb7, 0x3e, 0xe9, 0xe5, 0xdc, 0x76, 0x99, 0x3f, 0x62, 0xd2, 0x09, 0x0c, 0x02, 0xff, 0x9a, 0xfc,
0x58, 0x30, 0xcf, 0x8b, 0xf2, 0xeb, 0x46, 0x35, 0xc7, 0x64, 0xbe, 0x54, 0xc2, 0xeb, 0x38, 0xe3,
0x1d, 0x7f, 0xf7, 0xad, 0x2a, 0x8d, 0x5f, 0x93, 0x08, 0xda, 0xc6, 0x43, 0x4b, 0x6e, 0x50, 0xd5,
0xd7, 0x9b, 0xdc, 0xa0, 0x6a, 0xde, 0x65, 0xe8, 0x96, 0x98, 0x87, 0x92, 0x7b, 0xc5, 0x3c, 0xf2,
0x2d, 0xa6, 0x98, 0x69, 0xf7, 0xad, 0x37, 0xe6, 0xd7, 0xe4, 0x95, 0xf8, 0x78, 0xc5, 0xac, 0x2d,
0x16, 0x39, 0x40, 0xb9, 0x0c, 0x99, 0x0b, 0xcb, 0xe8, 0xb2, 0xf3, 0x02, 0x39, 0x95, 0x88, 0x8c,
0xaf, 0x8c, 0x74, 0xca, 0xaa, 0xb1, 0x6a, 0x2d, 0xb9, 0xb1, 0x94, 0x96, 0xef, 0xac, 0xa6, 0x9c,
0xa6, 0x33, 0x2b, 0x59, 0x23, 0x30, 0x32, 0x2b, 0xab, 0xc8, 0x60, 0x64, 0x56, 0x76, 0x31, 0x01,
0x33, 0xab, 0xe2, 0x62, 0x92, 0x67, 0x56, 0x95, 0x3b, 0x4f, 0xee, 0x0c, 0xab, 0xb7, 0x98, 0xb3,
0x39, 0xf1, 0x51, 0xf9, 0x1f, 0xfc, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd5, 0xa2, 0x29, 0xef,
0x86, 0x2e, 0x00, 0x00,
}