lnrpc: add SendToRoute command

This commit is contained in:
t4sk 2018-01-25 12:08:46 +07:00 committed by Olaoluwa Osuntokun
parent dc04df0f2e
commit dac62e812c
5 changed files with 760 additions and 459 deletions

@ -72,6 +72,11 @@ description):
* Send a payment over Lightning to a target peer.
* SendPaymentSync
* SendPaymentSync is the synchronous non-streaming version of SendPayment.
* SendToRoute
* Send a payment over Lightning to a target peer through a route explicitly
defined by the user.
* SendToRouteSync
* SendToRouteSync is the synchronous non-streaming version of SendToRoute.
* AddInvoice
* Adds an invoice to the daemon. Invoices are automatically settled once
seen as an incoming HTLC.

@ -21,6 +21,7 @@ It has these top-level messages:
TransactionDetails
SendRequest
SendResponse
SendToRouteRequest
ChannelPoint
LightningAddress
SendManyRequest
@ -153,7 +154,7 @@ func (x NewAddressRequest_AddressType) String() string {
return proto.EnumName(NewAddressRequest_AddressType_name, int32(x))
}
func (NewAddressRequest_AddressType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{19, 0}
return fileDescriptor0, []int{20, 0}
}
type GenSeedRequest struct {
@ -575,6 +576,41 @@ func (m *SendResponse) GetPaymentRoute() *Route {
return nil
}
type SendToRouteRequest struct {
// / The hash to use within the payment's HTLC
PaymentHash []byte `protobuf:"bytes,1,opt,name=payment_hash,json=paymentHash,proto3" json:"payment_hash,omitempty"`
// / The hex-encoded hash to use within the payment's HTLC
PaymentHashString string `protobuf:"bytes,2,opt,name=payment_hash_string,json=paymentHashString" json:"payment_hash_string,omitempty"`
// / The routes that should be tried in sending the payment.
Routes []*Route `protobuf:"bytes,3,rep,name=routes" json:"routes,omitempty"`
}
func (m *SendToRouteRequest) Reset() { *m = SendToRouteRequest{} }
func (m *SendToRouteRequest) String() string { return proto.CompactTextString(m) }
func (*SendToRouteRequest) ProtoMessage() {}
func (*SendToRouteRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
func (m *SendToRouteRequest) GetPaymentHash() []byte {
if m != nil {
return m.PaymentHash
}
return nil
}
func (m *SendToRouteRequest) GetPaymentHashString() string {
if m != nil {
return m.PaymentHashString
}
return ""
}
func (m *SendToRouteRequest) GetRoutes() []*Route {
if m != nil {
return m.Routes
}
return nil
}
type ChannelPoint struct {
// Types that are valid to be assigned to FundingTxid:
// *ChannelPoint_FundingTxidBytes
@ -587,9 +623,11 @@ type ChannelPoint struct {
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{13} }
func (*ChannelPoint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
type isChannelPoint_FundingTxid interface{ isChannelPoint_FundingTxid() }
type isChannelPoint_FundingTxid interface {
isChannelPoint_FundingTxid()
}
type ChannelPoint_FundingTxidBytes struct {
FundingTxidBytes []byte `protobuf:"bytes,1,opt,name=funding_txid_bytes,proto3,oneof"`
@ -705,7 +743,7 @@ type LightningAddress struct {
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{14} }
func (*LightningAddress) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
func (m *LightningAddress) GetPubkey() string {
if m != nil {
@ -733,7 +771,7 @@ type SendManyRequest struct {
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{15} }
func (*SendManyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
func (m *SendManyRequest) GetAddrToAmount() map[string]int64 {
if m != nil {
@ -764,7 +802,7 @@ type SendManyResponse struct {
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{16} }
func (*SendManyResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
func (m *SendManyResponse) GetTxid() string {
if m != nil {
@ -787,7 +825,7 @@ type SendCoinsRequest struct {
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{17} }
func (*SendCoinsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
func (m *SendCoinsRequest) GetAddr() string {
if m != nil {
@ -825,7 +863,7 @@ type SendCoinsResponse struct {
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{18} }
func (*SendCoinsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (m *SendCoinsResponse) GetTxid() string {
if m != nil {
@ -848,7 +886,7 @@ type NewAddressRequest struct {
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{19} }
func (*NewAddressRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
func (m *NewAddressRequest) GetType() NewAddressRequest_AddressType {
if m != nil {
@ -863,7 +901,7 @@ 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{20} }
func (*NewWitnessAddressRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
type NewAddressResponse struct {
// / The newly generated wallet address
@ -873,7 +911,7 @@ type NewAddressResponse struct {
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{21} }
func (*NewAddressResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
func (m *NewAddressResponse) GetAddress() string {
if m != nil {
@ -890,7 +928,7 @@ type SignMessageRequest struct {
func (m *SignMessageRequest) Reset() { *m = SignMessageRequest{} }
func (m *SignMessageRequest) String() string { return proto.CompactTextString(m) }
func (*SignMessageRequest) ProtoMessage() {}
func (*SignMessageRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
func (*SignMessageRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
func (m *SignMessageRequest) GetMsg() []byte {
if m != nil {
@ -907,7 +945,7 @@ type SignMessageResponse struct {
func (m *SignMessageResponse) Reset() { *m = SignMessageResponse{} }
func (m *SignMessageResponse) String() string { return proto.CompactTextString(m) }
func (*SignMessageResponse) ProtoMessage() {}
func (*SignMessageResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
func (*SignMessageResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
func (m *SignMessageResponse) GetSignature() string {
if m != nil {
@ -926,7 +964,7 @@ type VerifyMessageRequest struct {
func (m *VerifyMessageRequest) Reset() { *m = VerifyMessageRequest{} }
func (m *VerifyMessageRequest) String() string { return proto.CompactTextString(m) }
func (*VerifyMessageRequest) ProtoMessage() {}
func (*VerifyMessageRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
func (*VerifyMessageRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
func (m *VerifyMessageRequest) GetMsg() []byte {
if m != nil {
@ -952,7 +990,7 @@ type VerifyMessageResponse struct {
func (m *VerifyMessageResponse) Reset() { *m = VerifyMessageResponse{} }
func (m *VerifyMessageResponse) String() string { return proto.CompactTextString(m) }
func (*VerifyMessageResponse) ProtoMessage() {}
func (*VerifyMessageResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
func (*VerifyMessageResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
func (m *VerifyMessageResponse) GetValid() bool {
if m != nil {
@ -979,7 +1017,7 @@ type ConnectPeerRequest struct {
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{26} }
func (*ConnectPeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
func (m *ConnectPeerRequest) GetAddr() *LightningAddress {
if m != nil {
@ -1001,7 +1039,7 @@ type ConnectPeerResponse struct {
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{27} }
func (*ConnectPeerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
type DisconnectPeerRequest struct {
// / The pubkey of the node to disconnect from
@ -1011,7 +1049,7 @@ type DisconnectPeerRequest struct {
func (m *DisconnectPeerRequest) Reset() { *m = DisconnectPeerRequest{} }
func (m *DisconnectPeerRequest) String() string { return proto.CompactTextString(m) }
func (*DisconnectPeerRequest) ProtoMessage() {}
func (*DisconnectPeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
func (*DisconnectPeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
func (m *DisconnectPeerRequest) GetPubKey() string {
if m != nil {
@ -1026,7 +1064,7 @@ type DisconnectPeerResponse struct {
func (m *DisconnectPeerResponse) Reset() { *m = DisconnectPeerResponse{} }
func (m *DisconnectPeerResponse) String() string { return proto.CompactTextString(m) }
func (*DisconnectPeerResponse) ProtoMessage() {}
func (*DisconnectPeerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
func (*DisconnectPeerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }
type HTLC struct {
Incoming bool `protobuf:"varint,1,opt,name=incoming" json:"incoming,omitempty"`
@ -1038,7 +1076,7 @@ type HTLC struct {
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{30} }
func (*HTLC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }
func (m *HTLC) GetIncoming() bool {
if m != nil {
@ -1128,7 +1166,7 @@ type Channel struct {
func (m *Channel) Reset() { *m = Channel{} }
func (m *Channel) String() string { return proto.CompactTextString(m) }
func (*Channel) ProtoMessage() {}
func (*Channel) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }
func (*Channel) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }
func (m *Channel) GetActive() bool {
if m != nil {
@ -1259,7 +1297,7 @@ 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{32} }
func (*ListChannelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} }
func (m *ListChannelsRequest) GetActiveOnly() bool {
if m != nil {
@ -1297,7 +1335,7 @@ type ListChannelsResponse struct {
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{33} }
func (*ListChannelsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} }
func (m *ListChannelsResponse) GetChannels() []*Channel {
if m != nil {
@ -1328,7 +1366,7 @@ type Peer struct {
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{34} }
func (*Peer) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} }
func (m *Peer) GetPubKey() string {
if m != nil {
@ -1392,7 +1430,7 @@ 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{35} }
func (*ListPeersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }
type ListPeersResponse struct {
// / The list of currently connected peers
@ -1402,7 +1440,7 @@ type ListPeersResponse struct {
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{36} }
func (*ListPeersResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }
func (m *ListPeersResponse) GetPeers() []*Peer {
if m != nil {
@ -1417,7 +1455,7 @@ 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{37} }
func (*GetInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }
type GetInfoResponse struct {
// / The identity pubkey of the current node.
@ -1451,7 +1489,7 @@ type GetInfoResponse struct {
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{38} }
func (*GetInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }
func (m *GetInfoResponse) GetIdentityPubkey() string {
if m != nil {
@ -1553,7 +1591,7 @@ type ConfirmationUpdate struct {
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{39} }
func (*ConfirmationUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }
func (m *ConfirmationUpdate) GetBlockSha() []byte {
if m != nil {
@ -1583,7 +1621,7 @@ type ChannelOpenUpdate struct {
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{40} }
func (*ChannelOpenUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }
func (m *ChannelOpenUpdate) GetChannelPoint() *ChannelPoint {
if m != nil {
@ -1600,7 +1638,7 @@ type ChannelCloseUpdate struct {
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{41} }
func (*ChannelCloseUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }
func (m *ChannelCloseUpdate) GetClosingTxid() []byte {
if m != nil {
@ -1633,7 +1671,7 @@ type CloseChannelRequest struct {
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{42} }
func (*CloseChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }
func (m *CloseChannelRequest) GetChannelPoint() *ChannelPoint {
if m != nil {
@ -1674,9 +1712,11 @@ type CloseStatusUpdate struct {
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{43} }
func (*CloseStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }
type isCloseStatusUpdate_Update interface{ isCloseStatusUpdate_Update() }
type isCloseStatusUpdate_Update interface {
isCloseStatusUpdate_Update()
}
type CloseStatusUpdate_ClosePending struct {
ClosePending *PendingUpdate `protobuf:"bytes,1,opt,name=close_pending,oneof"`
@ -1821,7 +1861,7 @@ type PendingUpdate struct {
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{44} }
func (*PendingUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }
func (m *PendingUpdate) GetTxid() []byte {
if m != nil {
@ -1861,7 +1901,7 @@ type OpenChannelRequest struct {
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{45} }
func (*OpenChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }
func (m *OpenChannelRequest) GetNodePubkey() []byte {
if m != nil {
@ -1937,9 +1977,11 @@ type OpenStatusUpdate struct {
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{46} }
func (*OpenStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }
type isOpenStatusUpdate_Update interface{ isOpenStatusUpdate_Update() }
type isOpenStatusUpdate_Update interface {
isOpenStatusUpdate_Update()
}
type OpenStatusUpdate_ChanPending struct {
ChanPending *PendingUpdate `protobuf:"bytes,1,opt,name=chan_pending,oneof"`
@ -2097,7 +2139,7 @@ type PendingHTLC struct {
func (m *PendingHTLC) Reset() { *m = PendingHTLC{} }
func (m *PendingHTLC) String() string { return proto.CompactTextString(m) }
func (*PendingHTLC) ProtoMessage() {}
func (*PendingHTLC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }
func (*PendingHTLC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }
func (m *PendingHTLC) GetIncoming() bool {
if m != nil {
@ -2147,7 +2189,7 @@ type PendingChannelsRequest struct {
func (m *PendingChannelsRequest) Reset() { *m = PendingChannelsRequest{} }
func (m *PendingChannelsRequest) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsRequest) ProtoMessage() {}
func (*PendingChannelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }
func (*PendingChannelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }
type PendingChannelsResponse struct {
// / The balance in satoshis encumbered in pending channels
@ -2165,7 +2207,7 @@ type PendingChannelsResponse struct {
func (m *PendingChannelsResponse) Reset() { *m = PendingChannelsResponse{} }
func (m *PendingChannelsResponse) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsResponse) ProtoMessage() {}
func (*PendingChannelsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }
func (*PendingChannelsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }
func (m *PendingChannelsResponse) GetTotalLimboBalance() int64 {
if m != nil {
@ -2216,7 +2258,7 @@ func (m *PendingChannelsResponse_PendingChannel) Reset() {
func (m *PendingChannelsResponse_PendingChannel) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsResponse_PendingChannel) ProtoMessage() {}
func (*PendingChannelsResponse_PendingChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{49, 0}
return fileDescriptor0, []int{50, 0}
}
func (m *PendingChannelsResponse_PendingChannel) GetRemoteNodePub() string {
@ -2283,7 +2325,7 @@ func (m *PendingChannelsResponse_PendingOpenChannel) String() string {
}
func (*PendingChannelsResponse_PendingOpenChannel) ProtoMessage() {}
func (*PendingChannelsResponse_PendingOpenChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{49, 1}
return fileDescriptor0, []int{50, 1}
}
func (m *PendingChannelsResponse_PendingOpenChannel) GetChannel() *PendingChannelsResponse_PendingChannel {
@ -2336,7 +2378,7 @@ func (m *PendingChannelsResponse_WaitingCloseChannel) String() string {
}
func (*PendingChannelsResponse_WaitingCloseChannel) ProtoMessage() {}
func (*PendingChannelsResponse_WaitingCloseChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{49, 2}
return fileDescriptor0, []int{50, 2}
}
func (m *PendingChannelsResponse_WaitingCloseChannel) GetChannel() *PendingChannelsResponse_PendingChannel {
@ -2364,7 +2406,7 @@ func (m *PendingChannelsResponse_ClosedChannel) Reset() { *m = PendingCh
func (m *PendingChannelsResponse_ClosedChannel) String() string { return proto.CompactTextString(m) }
func (*PendingChannelsResponse_ClosedChannel) ProtoMessage() {}
func (*PendingChannelsResponse_ClosedChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{49, 3}
return fileDescriptor0, []int{50, 3}
}
func (m *PendingChannelsResponse_ClosedChannel) GetChannel() *PendingChannelsResponse_PendingChannel {
@ -2408,7 +2450,7 @@ func (m *PendingChannelsResponse_ForceClosedChannel) String() string {
}
func (*PendingChannelsResponse_ForceClosedChannel) ProtoMessage() {}
func (*PendingChannelsResponse_ForceClosedChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{49, 4}
return fileDescriptor0, []int{50, 4}
}
func (m *PendingChannelsResponse_ForceClosedChannel) GetChannel() *PendingChannelsResponse_PendingChannel {
@ -2466,7 +2508,7 @@ type WalletBalanceRequest struct {
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{50} }
func (*WalletBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} }
type WalletBalanceResponse struct {
// / The balance of the wallet
@ -2480,7 +2522,7 @@ type WalletBalanceResponse struct {
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{51} }
func (*WalletBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} }
func (m *WalletBalanceResponse) GetTotalBalance() int64 {
if m != nil {
@ -2509,7 +2551,7 @@ 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{52} }
func (*ChannelBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} }
type ChannelBalanceResponse struct {
// / Sum of channels balances denominated in satoshis
@ -2521,7 +2563,7 @@ type ChannelBalanceResponse struct {
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{53} }
func (*ChannelBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} }
func (m *ChannelBalanceResponse) GetBalance() int64 {
if m != nil {
@ -2549,7 +2591,7 @@ type QueryRoutesRequest struct {
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{54} }
func (*QueryRoutesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} }
func (m *QueryRoutesRequest) GetPubKey() string {
if m != nil {
@ -2579,7 +2621,7 @@ type QueryRoutesResponse struct {
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{55} }
func (*QueryRoutesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} }
func (m *QueryRoutesResponse) GetRoutes() []*Route {
if m != nil {
@ -2605,7 +2647,7 @@ type Hop struct {
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{56} }
func (*Hop) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} }
func (m *Hop) GetChanId() uint64 {
if m != nil {
@ -2695,7 +2737,7 @@ type Route struct {
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{57} }
func (*Route) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} }
func (m *Route) GetTotalTimeLock() uint32 {
if m != nil {
@ -2747,7 +2789,7 @@ type NodeInfoRequest struct {
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{58} }
func (*NodeInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} }
func (m *NodeInfoRequest) GetPubKey() string {
if m != nil {
@ -2770,7 +2812,7 @@ type NodeInfo struct {
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{59} }
func (*NodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} }
func (m *NodeInfo) GetNode() *LightningNode {
if m != nil {
@ -2809,7 +2851,7 @@ type LightningNode struct {
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{60} }
func (*LightningNode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} }
func (m *LightningNode) GetLastUpdate() uint32 {
if m != nil {
@ -2854,7 +2896,7 @@ type NodeAddress struct {
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{61} }
func (*NodeAddress) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} }
func (m *NodeAddress) GetNetwork() string {
if m != nil {
@ -2880,7 +2922,7 @@ type RoutingPolicy struct {
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{62} }
func (*RoutingPolicy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} }
func (m *RoutingPolicy) GetTimeLockDelta() uint32 {
if m != nil {
@ -2934,7 +2976,7 @@ type ChannelEdge struct {
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{63} }
func (*ChannelEdge) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} }
func (m *ChannelEdge) GetChannelId() uint64 {
if m != nil {
@ -2998,7 +3040,7 @@ 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{64} }
func (*ChannelGraphRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} }
// / Returns a new instance of the directed channel graph.
type ChannelGraph struct {
@ -3011,7 +3053,7 @@ type ChannelGraph struct {
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{65} }
func (*ChannelGraph) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} }
func (m *ChannelGraph) GetNodes() []*LightningNode {
if m != nil {
@ -3038,7 +3080,7 @@ type ChanInfoRequest struct {
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{66} }
func (*ChanInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} }
func (m *ChanInfoRequest) GetChanId() uint64 {
if m != nil {
@ -3053,7 +3095,7 @@ 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{67} }
func (*NetworkInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} }
type NetworkInfo struct {
GraphDiameter uint32 `protobuf:"varint,1,opt,name=graph_diameter" json:"graph_diameter,omitempty"`
@ -3070,7 +3112,7 @@ type NetworkInfo struct {
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{68} }
func (*NetworkInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} }
func (m *NetworkInfo) GetGraphDiameter() uint32 {
if m != nil {
@ -3141,7 +3183,7 @@ type StopRequest struct {
func (m *StopRequest) Reset() { *m = StopRequest{} }
func (m *StopRequest) String() string { return proto.CompactTextString(m) }
func (*StopRequest) ProtoMessage() {}
func (*StopRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} }
func (*StopRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} }
type StopResponse struct {
}
@ -3149,7 +3191,7 @@ type StopResponse struct {
func (m *StopResponse) Reset() { *m = StopResponse{} }
func (m *StopResponse) String() string { return proto.CompactTextString(m) }
func (*StopResponse) ProtoMessage() {}
func (*StopResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} }
func (*StopResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} }
type GraphTopologySubscription struct {
}
@ -3157,7 +3199,7 @@ 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{71} }
func (*GraphTopologySubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} }
type GraphTopologyUpdate struct {
NodeUpdates []*NodeUpdate `protobuf:"bytes,1,rep,name=node_updates,json=nodeUpdates" json:"node_updates,omitempty"`
@ -3168,7 +3210,7 @@ type GraphTopologyUpdate struct {
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{72} }
func (*GraphTopologyUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{73} }
func (m *GraphTopologyUpdate) GetNodeUpdates() []*NodeUpdate {
if m != nil {
@ -3201,7 +3243,7 @@ type NodeUpdate struct {
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{73} }
func (*NodeUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{74} }
func (m *NodeUpdate) GetAddresses() []string {
if m != nil {
@ -3247,7 +3289,7 @@ type ChannelEdgeUpdate struct {
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{74} }
func (*ChannelEdgeUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} }
func (m *ChannelEdgeUpdate) GetChanId() uint64 {
if m != nil {
@ -3305,7 +3347,7 @@ type ClosedChannelUpdate struct {
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{75} }
func (*ClosedChannelUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} }
func (m *ClosedChannelUpdate) GetChanId() uint64 {
if m != nil {
@ -3353,7 +3395,7 @@ type HopHint struct {
func (m *HopHint) Reset() { *m = HopHint{} }
func (m *HopHint) String() string { return proto.CompactTextString(m) }
func (*HopHint) ProtoMessage() {}
func (*HopHint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} }
func (*HopHint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} }
func (m *HopHint) GetNodeId() string {
if m != nil {
@ -3400,7 +3442,7 @@ type RouteHint struct {
func (m *RouteHint) Reset() { *m = RouteHint{} }
func (m *RouteHint) String() string { return proto.CompactTextString(m) }
func (*RouteHint) ProtoMessage() {}
func (*RouteHint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} }
func (*RouteHint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{78} }
func (m *RouteHint) GetHopHints() []*HopHint {
if m != nil {
@ -3459,7 +3501,7 @@ type Invoice struct {
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{78} }
func (*Invoice) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{79} }
func (m *Invoice) GetMemo() string {
if m != nil {
@ -3578,7 +3620,7 @@ type AddInvoiceResponse struct {
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{79} }
func (*AddInvoiceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{80} }
func (m *AddInvoiceResponse) GetRHash() []byte {
if m != nil {
@ -3606,7 +3648,7 @@ type PaymentHash struct {
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{80} }
func (*PaymentHash) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{81} }
func (m *PaymentHash) GetRHashStr() string {
if m != nil {
@ -3630,7 +3672,7 @@ type ListInvoiceRequest struct {
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{81} }
func (*ListInvoiceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{82} }
func (m *ListInvoiceRequest) GetPendingOnly() bool {
if m != nil {
@ -3646,7 +3688,7 @@ type ListInvoiceResponse struct {
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{82} }
func (*ListInvoiceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{83} }
func (m *ListInvoiceResponse) GetInvoices() []*Invoice {
if m != nil {
@ -3661,7 +3703,7 @@ 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{83} }
func (*InvoiceSubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{84} }
type Payment struct {
// / The payment hash
@ -3681,7 +3723,7 @@ type Payment struct {
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{84} }
func (*Payment) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{85} }
func (m *Payment) GetPaymentHash() string {
if m != nil {
@ -3731,7 +3773,7 @@ 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{85} }
func (*ListPaymentsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{86} }
type ListPaymentsResponse struct {
// / The list of payments
@ -3741,7 +3783,7 @@ type ListPaymentsResponse struct {
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{86} }
func (*ListPaymentsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{87} }
func (m *ListPaymentsResponse) GetPayments() []*Payment {
if m != nil {
@ -3756,7 +3798,7 @@ 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{87} }
func (*DeleteAllPaymentsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{88} }
type DeleteAllPaymentsResponse struct {
}
@ -3764,7 +3806,7 @@ 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{88} }
func (*DeleteAllPaymentsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{89} }
type DebugLevelRequest struct {
Show bool `protobuf:"varint,1,opt,name=show" json:"show,omitempty"`
@ -3774,7 +3816,7 @@ type DebugLevelRequest struct {
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{89} }
func (*DebugLevelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{90} }
func (m *DebugLevelRequest) GetShow() bool {
if m != nil {
@ -3797,7 +3839,7 @@ type DebugLevelResponse struct {
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{90} }
func (*DebugLevelResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{91} }
func (m *DebugLevelResponse) GetSubSystems() string {
if m != nil {
@ -3814,7 +3856,7 @@ type PayReqString struct {
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{91} }
func (*PayReqString) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{92} }
func (m *PayReqString) GetPayReq() string {
if m != nil {
@ -3839,7 +3881,7 @@ type PayReq struct {
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{92} }
func (*PayReq) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{93} }
func (m *PayReq) GetDestination() string {
if m != nil {
@ -3917,7 +3959,7 @@ type FeeReportRequest struct {
func (m *FeeReportRequest) Reset() { *m = FeeReportRequest{} }
func (m *FeeReportRequest) String() string { return proto.CompactTextString(m) }
func (*FeeReportRequest) ProtoMessage() {}
func (*FeeReportRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{93} }
func (*FeeReportRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{94} }
type ChannelFeeReport struct {
// / The channel that this fee report belongs to.
@ -3933,7 +3975,7 @@ type ChannelFeeReport struct {
func (m *ChannelFeeReport) Reset() { *m = ChannelFeeReport{} }
func (m *ChannelFeeReport) String() string { return proto.CompactTextString(m) }
func (*ChannelFeeReport) ProtoMessage() {}
func (*ChannelFeeReport) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{94} }
func (*ChannelFeeReport) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{95} }
func (m *ChannelFeeReport) GetChanPoint() string {
if m != nil {
@ -3977,7 +4019,7 @@ type FeeReportResponse struct {
func (m *FeeReportResponse) Reset() { *m = FeeReportResponse{} }
func (m *FeeReportResponse) String() string { return proto.CompactTextString(m) }
func (*FeeReportResponse) ProtoMessage() {}
func (*FeeReportResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{95} }
func (*FeeReportResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{96} }
func (m *FeeReportResponse) GetChannelFees() []*ChannelFeeReport {
if m != nil {
@ -4023,9 +4065,11 @@ type PolicyUpdateRequest struct {
func (m *PolicyUpdateRequest) Reset() { *m = PolicyUpdateRequest{} }
func (m *PolicyUpdateRequest) String() string { return proto.CompactTextString(m) }
func (*PolicyUpdateRequest) ProtoMessage() {}
func (*PolicyUpdateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{96} }
func (*PolicyUpdateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{97} }
type isPolicyUpdateRequest_Scope interface{ isPolicyUpdateRequest_Scope() }
type isPolicyUpdateRequest_Scope interface {
isPolicyUpdateRequest_Scope()
}
type PolicyUpdateRequest_Global struct {
Global bool `protobuf:"varint,1,opt,name=global,oneof"`
@ -4158,7 +4202,7 @@ type PolicyUpdateResponse struct {
func (m *PolicyUpdateResponse) Reset() { *m = PolicyUpdateResponse{} }
func (m *PolicyUpdateResponse) String() string { return proto.CompactTextString(m) }
func (*PolicyUpdateResponse) ProtoMessage() {}
func (*PolicyUpdateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{97} }
func (*PolicyUpdateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{98} }
type ForwardingHistoryRequest struct {
// / Start time is the starting point of the forwarding history request. All records beyond this point will be included, respecting the end time, and the index offset.
@ -4174,7 +4218,7 @@ type ForwardingHistoryRequest struct {
func (m *ForwardingHistoryRequest) Reset() { *m = ForwardingHistoryRequest{} }
func (m *ForwardingHistoryRequest) String() string { return proto.CompactTextString(m) }
func (*ForwardingHistoryRequest) ProtoMessage() {}
func (*ForwardingHistoryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{98} }
func (*ForwardingHistoryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{99} }
func (m *ForwardingHistoryRequest) GetStartTime() uint64 {
if m != nil {
@ -4222,7 +4266,7 @@ type ForwardingEvent struct {
func (m *ForwardingEvent) Reset() { *m = ForwardingEvent{} }
func (m *ForwardingEvent) String() string { return proto.CompactTextString(m) }
func (*ForwardingEvent) ProtoMessage() {}
func (*ForwardingEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{99} }
func (*ForwardingEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{100} }
func (m *ForwardingEvent) GetTimestamp() uint64 {
if m != nil {
@ -4276,7 +4320,7 @@ type ForwardingHistoryResponse struct {
func (m *ForwardingHistoryResponse) Reset() { *m = ForwardingHistoryResponse{} }
func (m *ForwardingHistoryResponse) String() string { return proto.CompactTextString(m) }
func (*ForwardingHistoryResponse) ProtoMessage() {}
func (*ForwardingHistoryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{100} }
func (*ForwardingHistoryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{101} }
func (m *ForwardingHistoryResponse) GetForwardingEvents() []*ForwardingEvent {
if m != nil {
@ -4306,6 +4350,7 @@ func init() {
proto.RegisterType((*TransactionDetails)(nil), "lnrpc.TransactionDetails")
proto.RegisterType((*SendRequest)(nil), "lnrpc.SendRequest")
proto.RegisterType((*SendResponse)(nil), "lnrpc.SendResponse")
proto.RegisterType((*SendToRouteRequest)(nil), "lnrpc.SendToRouteRequest")
proto.RegisterType((*ChannelPoint)(nil), "lnrpc.ChannelPoint")
proto.RegisterType((*LightningAddress)(nil), "lnrpc.LightningAddress")
proto.RegisterType((*SendManyRequest)(nil), "lnrpc.SendManyRequest")
@ -4742,6 +4787,19 @@ type LightningClient interface {
// Additionally, this RPC expects the destination's public key and the payment
// hash (if any) to be encoded as hex strings.
SendPaymentSync(ctx context.Context, in *SendRequest, opts ...grpc.CallOption) (*SendResponse, error)
// * lncli: `sendtoroute`
// SendToRoute dispatches a bi-directional streaming RPC for sending payments
// through the Lightning Network via predefined routes passed in. A single RPC
// invocation creates a persistent bi-directional stream allowing clients to
// rapidly send payments through the Lightning Network with a single
// persistent connection.
SendToRoute(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendToRouteClient, error)
// *
// SendToRouteSync is the synchronous non-streaming version of SendToRoute.
// This RPC is intended to be consumed by clients of the REST proxy.
// Additionally, this RPC expects the payment hash to be encoded
// as hex strings.
SendToRouteSync(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendResponse, error)
// * lncli: `addinvoice`
// AddInvoice attempts to add a new invoice to the invoice database. Any
// duplicated invoices are rejected, therefore all invoices *must* have a
@ -5128,6 +5186,46 @@ func (c *lightningClient) SendPaymentSync(ctx context.Context, in *SendRequest,
return out, nil
}
func (c *lightningClient) SendToRoute(ctx context.Context, opts ...grpc.CallOption) (Lightning_SendToRouteClient, error) {
stream, err := grpc.NewClientStream(ctx, &_Lightning_serviceDesc.Streams[4], c.cc, "/lnrpc.Lightning/SendToRoute", opts...)
if err != nil {
return nil, err
}
x := &lightningSendToRouteClient{stream}
return x, nil
}
type Lightning_SendToRouteClient interface {
Send(*SendToRouteRequest) error
Recv() (*SendResponse, error)
grpc.ClientStream
}
type lightningSendToRouteClient struct {
grpc.ClientStream
}
func (x *lightningSendToRouteClient) Send(m *SendToRouteRequest) error {
return x.ClientStream.SendMsg(m)
}
func (x *lightningSendToRouteClient) Recv() (*SendResponse, error) {
m := new(SendResponse)
if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
func (c *lightningClient) SendToRouteSync(ctx context.Context, in *SendToRouteRequest, opts ...grpc.CallOption) (*SendResponse, error) {
out := new(SendResponse)
err := grpc.Invoke(ctx, "/lnrpc.Lightning/SendToRouteSync", 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...)
@ -5156,7 +5254,7 @@ func (c *lightningClient) LookupInvoice(ctx context.Context, in *PaymentHash, op
}
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...)
stream, err := grpc.NewClientStream(ctx, &_Lightning_serviceDesc.Streams[5], c.cc, "/lnrpc.Lightning/SubscribeInvoices", opts...)
if err != nil {
return nil, err
}
@ -5269,7 +5367,7 @@ func (c *lightningClient) StopDaemon(ctx context.Context, in *StopRequest, opts
}
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...)
stream, err := grpc.NewClientStream(ctx, &_Lightning_serviceDesc.Streams[6], c.cc, "/lnrpc.Lightning/SubscribeChannelGraph", opts...)
if err != nil {
return nil, err
}
@ -5449,6 +5547,19 @@ type LightningServer interface {
// Additionally, this RPC expects the destination's public key and the payment
// hash (if any) to be encoded as hex strings.
SendPaymentSync(context.Context, *SendRequest) (*SendResponse, error)
// * lncli: `sendtoroute`
// SendToRoute dispatches a bi-directional streaming RPC for sending payments
// through the Lightning Network via predefined routes passed in. A single RPC
// invocation creates a persistent bi-directional stream allowing clients to
// rapidly send payments through the Lightning Network with a single
// persistent connection.
SendToRoute(Lightning_SendToRouteServer) error
// *
// SendToRouteSync is the synchronous non-streaming version of SendToRoute.
// This RPC is intended to be consumed by clients of the REST proxy.
// Additionally, this RPC expects the payment hash to be encoded
// as hex strings.
SendToRouteSync(context.Context, *SendToRouteRequest) (*SendResponse, error)
// * lncli: `addinvoice`
// AddInvoice attempts to add a new invoice to the invoice database. Any
// duplicated invoices are rejected, therefore all invoices *must* have a
@ -5946,6 +6057,50 @@ func _Lightning_SendPaymentSync_Handler(srv interface{}, ctx context.Context, de
return interceptor(ctx, in, info, handler)
}
func _Lightning_SendToRoute_Handler(srv interface{}, stream grpc.ServerStream) error {
return srv.(LightningServer).SendToRoute(&lightningSendToRouteServer{stream})
}
type Lightning_SendToRouteServer interface {
Send(*SendResponse) error
Recv() (*SendToRouteRequest, error)
grpc.ServerStream
}
type lightningSendToRouteServer struct {
grpc.ServerStream
}
func (x *lightningSendToRouteServer) Send(m *SendResponse) error {
return x.ServerStream.SendMsg(m)
}
func (x *lightningSendToRouteServer) Recv() (*SendToRouteRequest, error) {
m := new(SendToRouteRequest)
if err := x.ServerStream.RecvMsg(m); err != nil {
return nil, err
}
return m, nil
}
func _Lightning_SendToRouteSync_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SendToRouteRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(LightningServer).SendToRouteSync(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.Lightning/SendToRouteSync",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(LightningServer).SendToRouteSync(ctx, req.(*SendToRouteRequest))
}
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 {
@ -6348,6 +6503,10 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
MethodName: "SendPaymentSync",
Handler: _Lightning_SendPaymentSync_Handler,
},
{
MethodName: "SendToRouteSync",
Handler: _Lightning_SendToRouteSync_Handler,
},
{
MethodName: "AddInvoice",
Handler: _Lightning_AddInvoice_Handler,
@ -6435,6 +6594,12 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
ServerStreams: true,
ClientStreams: true,
},
{
StreamName: "SendToRoute",
Handler: _Lightning_SendToRoute_Handler,
ServerStreams: true,
ClientStreams: true,
},
{
StreamName: "SubscribeInvoices",
Handler: _Lightning_SubscribeInvoices_Handler,
@ -6452,363 +6617,367 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 5714 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x3c, 0x4b, 0x90, 0x1c, 0xc9,
0x55, 0xaa, 0x9e, 0x9e, 0x4f, 0xbf, 0xee, 0xe9, 0x99, 0xc9, 0x19, 0xcd, 0xb4, 0x7a, 0xb5, 0x5a,
0x6d, 0x79, 0xc3, 0x92, 0x87, 0x45, 0xa3, 0x1d, 0xdb, 0xcb, 0x7a, 0x05, 0x36, 0xfa, 0xcf, 0xda,
0x5a, 0x79, 0x5c, 0x23, 0x59, 0x60, 0x03, 0xed, 0x9a, 0xee, 0x9c, 0x9e, 0xb2, 0xaa, 0xab, 0xca,
0x55, 0xd5, 0x33, 0x6a, 0x2f, 0x8a, 0xe0, 0x17, 0x9c, 0x70, 0x10, 0x04, 0x5c, 0x4c, 0x04, 0x41,
0x84, 0xb9, 0xc0, 0x81, 0x23, 0x27, 0xc3, 0x8d, 0x13, 0x11, 0x04, 0x87, 0x3d, 0x39, 0xb8, 0xf1,
0x39, 0x80, 0x83, 0x0b, 0x11, 0x5c, 0x38, 0x10, 0xc4, 0x7b, 0xf9, 0xa9, 0xcc, 0xaa, 0x1a, 0x49,
0xfe, 0xc0, 0xad, 0xf3, 0xe5, 0xab, 0x97, 0xbf, 0xf7, 0x7f, 0x99, 0x0d, 0xad, 0x34, 0x19, 0x5e,
0x4b, 0xd2, 0x38, 0x8f, 0xd9, 0x7c, 0x18, 0xa5, 0xc9, 0xb0, 0x7f, 0x71, 0x1c, 0xc7, 0xe3, 0x90,
0xef, 0xf8, 0x49, 0xb0, 0xe3, 0x47, 0x51, 0x9c, 0xfb, 0x79, 0x10, 0x47, 0x99, 0x40, 0x72, 0xbf,
0x01, 0xdd, 0xfb, 0x3c, 0x3a, 0xe0, 0x7c, 0xe4, 0xf1, 0x6f, 0x4d, 0x79, 0x96, 0xb3, 0x9f, 0x81,
0x35, 0x9f, 0x7f, 0x9b, 0xf3, 0xd1, 0x20, 0xf1, 0xb3, 0x2c, 0x39, 0x4e, 0xfd, 0x8c, 0xf7, 0x9c,
0xcb, 0xce, 0xd5, 0x8e, 0xb7, 0x2a, 0x3a, 0xf6, 0x35, 0x9c, 0xbd, 0x09, 0x9d, 0x0c, 0x51, 0x79,
0x94, 0xa7, 0x71, 0x32, 0xeb, 0x35, 0x08, 0xaf, 0x8d, 0xb0, 0xbb, 0x02, 0xe4, 0x86, 0xb0, 0xa2,
0x47, 0xc8, 0x92, 0x38, 0xca, 0x38, 0xbb, 0x0e, 0x1b, 0xc3, 0x20, 0x39, 0xe6, 0xe9, 0x80, 0x3e,
0x9e, 0x44, 0x7c, 0x12, 0x47, 0xc1, 0xb0, 0xe7, 0x5c, 0x9e, 0xbb, 0xda, 0xf2, 0x98, 0xe8, 0xc3,
0x2f, 0x3e, 0x94, 0x3d, 0xec, 0x0a, 0xac, 0xf0, 0x48, 0xc0, 0xf9, 0x88, 0xbe, 0x92, 0x43, 0x75,
0x0b, 0x30, 0x7e, 0xe0, 0xfe, 0xad, 0x03, 0x6b, 0x1f, 0x44, 0x41, 0xfe, 0xc4, 0x0f, 0x43, 0x9e,
0xab, 0x35, 0x5d, 0x81, 0x95, 0x53, 0x02, 0xd0, 0x9a, 0x4e, 0xe3, 0x74, 0x24, 0x57, 0xd4, 0x15,
0xe0, 0x7d, 0x09, 0x3d, 0x73, 0x66, 0x8d, 0x33, 0x67, 0x56, 0xbb, 0x5d, 0x73, 0x67, 0x6c, 0xd7,
0x15, 0x58, 0x49, 0xf9, 0x30, 0x3e, 0xe1, 0xe9, 0x6c, 0x70, 0x1a, 0x44, 0xa3, 0xf8, 0xb4, 0xd7,
0xbc, 0xec, 0x5c, 0x9d, 0xf7, 0xba, 0x0a, 0xfc, 0x84, 0xa0, 0xee, 0x06, 0x30, 0x73, 0x15, 0x62,
0xdf, 0xdc, 0x31, 0xac, 0x3f, 0x8e, 0xc2, 0x78, 0xf8, 0xf4, 0xc7, 0x5c, 0x5d, 0xcd, 0xf0, 0x8d,
0xda, 0xe1, 0x37, 0x61, 0xc3, 0x1e, 0x48, 0x4e, 0x80, 0xc3, 0xf9, 0xdb, 0xc7, 0x7e, 0x34, 0xe6,
0x8a, 0xa4, 0x9a, 0xc2, 0xa7, 0x60, 0x75, 0x38, 0x4d, 0x53, 0x1e, 0x55, 0xe6, 0xb0, 0x22, 0xe1,
0x7a, 0x12, 0x6f, 0x42, 0x27, 0xe2, 0xa7, 0x05, 0x9a, 0x64, 0x99, 0x88, 0x9f, 0x2a, 0x14, 0xb7,
0x07, 0x9b, 0xe5, 0x61, 0xe4, 0x04, 0xbe, 0xdb, 0x80, 0xf6, 0xa3, 0xd4, 0x8f, 0x32, 0x7f, 0x88,
0x5c, 0xcc, 0x7a, 0xb0, 0x98, 0x3f, 0x1b, 0x1c, 0xfb, 0xd9, 0x31, 0x0d, 0xd7, 0xf2, 0x54, 0x93,
0x6d, 0xc2, 0x82, 0x3f, 0x89, 0xa7, 0x51, 0x4e, 0x03, 0xcc, 0x79, 0xb2, 0xc5, 0xde, 0x86, 0xb5,
0x68, 0x3a, 0x19, 0x0c, 0xe3, 0xe8, 0x28, 0x48, 0x27, 0x42, 0x16, 0xe8, 0xbc, 0xe6, 0xbd, 0x6a,
0x07, 0xbb, 0x04, 0x70, 0x88, 0xfb, 0x20, 0x86, 0x68, 0xd2, 0x10, 0x06, 0x84, 0xb9, 0xd0, 0x91,
0x2d, 0x1e, 0x8c, 0x8f, 0xf3, 0xde, 0x3c, 0x11, 0xb2, 0x60, 0x48, 0x23, 0x0f, 0x26, 0x7c, 0x90,
0xe5, 0xfe, 0x24, 0xe9, 0x2d, 0xd0, 0x6c, 0x0c, 0x08, 0xf5, 0xc7, 0xb9, 0x1f, 0x0e, 0x8e, 0x38,
0xcf, 0x7a, 0x8b, 0xb2, 0x5f, 0x43, 0xd8, 0x27, 0xa1, 0x3b, 0xe2, 0x59, 0x3e, 0xf0, 0x47, 0xa3,
0x94, 0x67, 0x19, 0xcf, 0x7a, 0x4b, 0xc4, 0x8d, 0x25, 0x28, 0xee, 0xda, 0x7d, 0x9e, 0x1b, 0xbb,
0x93, 0xc9, 0xd3, 0x71, 0x1f, 0x00, 0x33, 0xc0, 0x77, 0x78, 0xee, 0x07, 0x61, 0xc6, 0xde, 0x85,
0x4e, 0x6e, 0x20, 0x93, 0xf4, 0xb5, 0x77, 0xd9, 0x35, 0x52, 0x1b, 0xd7, 0x8c, 0x0f, 0x3c, 0x0b,
0xcf, 0xfd, 0x6f, 0x07, 0xda, 0x07, 0x3c, 0xd2, 0x67, 0xcf, 0xa0, 0x89, 0x33, 0x91, 0xe7, 0x4d,
0xbf, 0xd9, 0x1b, 0xd0, 0xa6, 0xd9, 0x65, 0x79, 0x1a, 0x44, 0x63, 0x3a, 0x82, 0x96, 0x07, 0x08,
0x3a, 0x20, 0x08, 0x5b, 0x85, 0x39, 0x7f, 0x92, 0xd3, 0xc6, 0xcf, 0x79, 0xf8, 0x13, 0xf9, 0x22,
0xf1, 0x67, 0x13, 0x64, 0x21, 0xbd, 0xd9, 0x1d, 0xaf, 0x2d, 0x61, 0x7b, 0xb8, 0xdb, 0xd7, 0x60,
0xdd, 0x44, 0x51, 0xd4, 0xe7, 0x89, 0xfa, 0x9a, 0x81, 0x29, 0x07, 0xb9, 0x02, 0x2b, 0x0a, 0x3f,
0x15, 0x93, 0xa5, 0xed, 0x6f, 0x79, 0x5d, 0x09, 0x56, 0x4b, 0xb8, 0x0a, 0xab, 0x47, 0x41, 0xe4,
0x87, 0x83, 0x61, 0x98, 0x9f, 0x0c, 0x46, 0x3c, 0xcc, 0x7d, 0x3a, 0x88, 0x79, 0xaf, 0x4b, 0xf0,
0xdb, 0x61, 0x7e, 0x72, 0x07, 0xa1, 0xee, 0x1f, 0x39, 0xd0, 0x11, 0x8b, 0x97, 0xba, 0xec, 0x2d,
0x58, 0x56, 0x63, 0xf0, 0x34, 0x8d, 0x53, 0xc9, 0x87, 0x36, 0x90, 0x6d, 0xc3, 0xaa, 0x02, 0x24,
0x29, 0x0f, 0x26, 0xfe, 0x98, 0x4b, 0xc6, 0xaf, 0xc0, 0xd9, 0x6e, 0x41, 0x31, 0x8d, 0xa7, 0xb9,
0xd0, 0x26, 0xed, 0xdd, 0x8e, 0x3c, 0x18, 0x0f, 0x61, 0x9e, 0x8d, 0xe2, 0x7e, 0xcf, 0x81, 0x0e,
0x8a, 0x4c, 0xc4, 0xc3, 0xfd, 0x38, 0x88, 0x72, 0x76, 0x1d, 0xd8, 0xd1, 0x34, 0x1a, 0x05, 0xd1,
0x78, 0x90, 0x3f, 0x0b, 0x46, 0x83, 0xc3, 0x59, 0xce, 0x33, 0x71, 0x44, 0x7b, 0xe7, 0xbc, 0x9a,
0x3e, 0xf6, 0x36, 0xac, 0x5a, 0xd0, 0x2c, 0x4f, 0xc5, 0xb9, 0xed, 0x9d, 0xf3, 0x2a, 0x3d, 0xc8,
0xf8, 0xf1, 0x34, 0x4f, 0xa6, 0xf9, 0x20, 0x88, 0x46, 0xfc, 0x19, 0xcd, 0x71, 0xd9, 0xb3, 0x60,
0xb7, 0xba, 0xd0, 0x31, 0xbf, 0x73, 0x3f, 0x0f, 0xab, 0x0f, 0x50, 0x22, 0xa2, 0x20, 0x1a, 0xdf,
0x14, 0x6c, 0x8b, 0x62, 0x9a, 0x4c, 0x0f, 0x9f, 0xf2, 0x99, 0xdc, 0x37, 0xd9, 0x42, 0xa6, 0x3a,
0x8e, 0xb3, 0x5c, 0x72, 0x0e, 0xfd, 0x76, 0xff, 0xd9, 0x81, 0x15, 0xdc, 0xfb, 0x0f, 0xfd, 0x68,
0xa6, 0x4e, 0xee, 0x01, 0x74, 0x90, 0xd4, 0xa3, 0xf8, 0xa6, 0x10, 0x76, 0xc1, 0xc4, 0x57, 0xe5,
0x5e, 0x95, 0xb0, 0xaf, 0x99, 0xa8, 0x68, 0x9f, 0x66, 0x9e, 0xf5, 0x35, 0xb2, 0x6d, 0xee, 0xa7,
0x63, 0x9e, 0x93, 0x1a, 0x90, 0x6a, 0x01, 0x04, 0xe8, 0x76, 0x1c, 0x1d, 0xb1, 0xcb, 0xd0, 0xc9,
0xfc, 0x7c, 0x90, 0xf0, 0x94, 0x76, 0x8d, 0x58, 0x6f, 0xce, 0x83, 0xcc, 0xcf, 0xf7, 0x79, 0x7a,
0x6b, 0x96, 0xf3, 0xfe, 0x17, 0x60, 0xad, 0x32, 0x0a, 0x72, 0x7b, 0xb1, 0x44, 0xfc, 0xc9, 0x36,
0x60, 0xfe, 0xc4, 0x0f, 0xa7, 0x5c, 0x6a, 0x27, 0xd1, 0x78, 0xbf, 0xf1, 0x9e, 0xe3, 0x7e, 0x12,
0x56, 0x8b, 0x69, 0x4b, 0x26, 0x63, 0xd0, 0xc4, 0x1d, 0x94, 0x04, 0xe8, 0xb7, 0xfb, 0x9b, 0x8e,
0x40, 0xbc, 0x1d, 0x07, 0x5a, 0xd2, 0x11, 0x11, 0x15, 0x82, 0x42, 0xc4, 0xdf, 0x67, 0x6a, 0xc2,
0x9f, 0x7c, 0xb1, 0xee, 0x15, 0x58, 0x33, 0xa6, 0xf0, 0x82, 0xc9, 0x7e, 0xc7, 0x81, 0xb5, 0x87,
0xfc, 0x54, 0x9e, 0xba, 0x9a, 0xed, 0x7b, 0xd0, 0xcc, 0x67, 0x89, 0xf0, 0x2e, 0xba, 0xbb, 0x6f,
0xc9, 0x43, 0xab, 0xe0, 0x5d, 0x93, 0xcd, 0x47, 0xb3, 0x84, 0x7b, 0xf4, 0x85, 0xfb, 0x79, 0x68,
0x1b, 0x40, 0xb6, 0x05, 0xeb, 0x4f, 0x3e, 0x78, 0xf4, 0xf0, 0xee, 0xc1, 0xc1, 0x60, 0xff, 0xf1,
0xad, 0x2f, 0xdd, 0xfd, 0xe5, 0xc1, 0xde, 0xcd, 0x83, 0xbd, 0xd5, 0x73, 0x6c, 0x13, 0xd8, 0xc3,
0xbb, 0x07, 0x8f, 0xee, 0xde, 0xb1, 0xe0, 0x8e, 0xdb, 0x87, 0xde, 0x43, 0x7e, 0xfa, 0x24, 0xc8,
0x23, 0x9e, 0x65, 0xf6, 0x68, 0xee, 0x35, 0x60, 0xe6, 0x14, 0xe4, 0xaa, 0x7a, 0xb0, 0x28, 0x55,
0xad, 0xb2, 0x34, 0xb2, 0xe9, 0x7e, 0x12, 0xd8, 0x41, 0x30, 0x8e, 0x3e, 0xe4, 0x59, 0xe6, 0x8f,
0xb9, 0x5a, 0xdb, 0x2a, 0xcc, 0x4d, 0xb2, 0xb1, 0x54, 0x8a, 0xf8, 0xd3, 0xfd, 0x34, 0xac, 0x5b,
0x78, 0x92, 0xf0, 0x45, 0x68, 0x65, 0xc1, 0x38, 0xf2, 0xf3, 0x69, 0xca, 0x25, 0xe9, 0x02, 0xe0,
0xde, 0x83, 0x8d, 0xaf, 0xf2, 0x34, 0x38, 0x9a, 0xbd, 0x8c, 0xbc, 0x4d, 0xa7, 0x51, 0xa6, 0x73,
0x17, 0xce, 0x97, 0xe8, 0xc8, 0xe1, 0x05, 0x23, 0xca, 0xe3, 0x5a, 0xf2, 0x44, 0xc3, 0x10, 0xcb,
0x86, 0x29, 0x96, 0xee, 0x63, 0x60, 0xb7, 0xe3, 0x28, 0xe2, 0xc3, 0x7c, 0x9f, 0xf3, 0xb4, 0x70,
0x19, 0x0b, 0xae, 0x6b, 0xef, 0x6e, 0xc9, 0x73, 0x2c, 0xcb, 0xba, 0x64, 0x47, 0x06, 0xcd, 0x84,
0xa7, 0x13, 0x22, 0xbc, 0xe4, 0xd1, 0x6f, 0xf7, 0x3c, 0xac, 0x5b, 0x64, 0xa5, 0xb5, 0x7f, 0x07,
0xce, 0xdf, 0x09, 0xb2, 0x61, 0x75, 0xc0, 0x1e, 0x2c, 0x26, 0xd3, 0xc3, 0x41, 0x21, 0x53, 0xaa,
0x89, 0x46, 0xb0, 0xfc, 0x89, 0x24, 0xf6, 0xbb, 0x0e, 0x34, 0xf7, 0x1e, 0x3d, 0xb8, 0xcd, 0xfa,
0xb0, 0x14, 0x44, 0xc3, 0x78, 0x82, 0xa6, 0x43, 0x2c, 0x5a, 0xb7, 0xcf, 0x94, 0x95, 0x8b, 0xd0,
0x22, 0x8b, 0x83, 0x76, 0x5d, 0x7a, 0x77, 0x05, 0x00, 0x7d, 0x0a, 0xfe, 0x2c, 0x09, 0x52, 0x72,
0x1a, 0x94, 0x2b, 0xd0, 0x24, 0x8d, 0x58, 0xed, 0x70, 0xff, 0xa7, 0x09, 0x8b, 0x52, 0x57, 0xd3,
0x78, 0xc3, 0x3c, 0x38, 0xe1, 0x72, 0x26, 0xb2, 0x85, 0x56, 0x25, 0xe5, 0x93, 0x38, 0xe7, 0x03,
0xeb, 0x18, 0x6c, 0x20, 0x62, 0x0d, 0x05, 0xa1, 0x41, 0x82, 0x5a, 0x9f, 0x66, 0xd6, 0xf2, 0x6c,
0x20, 0x6e, 0x16, 0x02, 0x06, 0xc1, 0x88, 0xe6, 0xd4, 0xf4, 0x54, 0x13, 0x77, 0x62, 0xe8, 0x27,
0xfe, 0x30, 0xc8, 0x67, 0x52, 0xb8, 0x75, 0x1b, 0x69, 0x87, 0xf1, 0xd0, 0x0f, 0x07, 0x87, 0x7e,
0xe8, 0x47, 0x43, 0x2e, 0x1d, 0x17, 0x1b, 0x88, 0xbe, 0x89, 0x9c, 0x92, 0x42, 0x13, 0xfe, 0x4b,
0x09, 0x8a, 0x3e, 0xce, 0x30, 0x9e, 0x4c, 0x82, 0x1c, 0x5d, 0x9a, 0xde, 0x92, 0x50, 0x24, 0x05,
0x84, 0x56, 0x22, 0x5a, 0xa7, 0x62, 0xf7, 0x5a, 0x62, 0x34, 0x0b, 0x88, 0x54, 0x8e, 0x38, 0x27,
0x85, 0xf4, 0xf4, 0xb4, 0x07, 0x82, 0x4a, 0x01, 0xc1, 0x73, 0x98, 0x46, 0x19, 0xcf, 0xf3, 0x90,
0x8f, 0xf4, 0x84, 0xda, 0x84, 0x56, 0xed, 0x60, 0xd7, 0x61, 0x5d, 0x78, 0x59, 0x99, 0x9f, 0xc7,
0xd9, 0x71, 0x90, 0x0d, 0x32, 0x1e, 0xe5, 0xbd, 0x0e, 0xe1, 0xd7, 0x75, 0xb1, 0xf7, 0x60, 0xab,
0x04, 0x4e, 0xf9, 0x90, 0x07, 0x27, 0x7c, 0xd4, 0x5b, 0xa6, 0xaf, 0xce, 0xea, 0x66, 0x97, 0xa1,
0x8d, 0xce, 0xe5, 0x34, 0x19, 0xf9, 0x68, 0x87, 0xbb, 0x74, 0x0e, 0x26, 0x88, 0xbd, 0x03, 0xcb,
0x09, 0x17, 0xc6, 0xf2, 0x38, 0x0f, 0x87, 0x59, 0x6f, 0x85, 0x2c, 0x59, 0x5b, 0x0a, 0x13, 0x72,
0xae, 0x67, 0x63, 0x20, 0x53, 0x0e, 0x33, 0x72, 0x57, 0xfc, 0x59, 0x6f, 0x95, 0xd8, 0xad, 0x00,
0x90, 0x8c, 0xa4, 0xc1, 0x89, 0x9f, 0xf3, 0xde, 0x1a, 0xf1, 0x96, 0x6a, 0xba, 0x7f, 0xea, 0xc0,
0xfa, 0x83, 0x20, 0xcb, 0x25, 0x13, 0x6a, 0x75, 0xfc, 0x06, 0xb4, 0x05, 0xfb, 0x0d, 0xe2, 0x28,
0x9c, 0x49, 0x8e, 0x04, 0x01, 0xfa, 0x72, 0x14, 0xce, 0xd8, 0x27, 0x60, 0x39, 0x88, 0x4c, 0x14,
0x21, 0xc3, 0x1d, 0x05, 0x24, 0xa4, 0x37, 0xa0, 0x9d, 0x4c, 0x0f, 0xc3, 0x60, 0x28, 0x50, 0xe6,
0x04, 0x15, 0x01, 0x22, 0x04, 0x74, 0xf4, 0xc4, 0x4c, 0x04, 0x46, 0x93, 0x30, 0xda, 0x12, 0x86,
0x28, 0xee, 0x2d, 0xd8, 0xb0, 0x27, 0x28, 0x95, 0xd5, 0x36, 0x2c, 0x49, 0xde, 0xce, 0x7a, 0x6d,
0xda, 0x9f, 0xae, 0xdc, 0x1f, 0x89, 0xea, 0xe9, 0x7e, 0xf7, 0xdf, 0x1d, 0x68, 0xa2, 0x02, 0x38,
0x5b, 0x59, 0x98, 0x3a, 0x7d, 0xce, 0xd2, 0xe9, 0xe4, 0xf7, 0xa3, 0x57, 0x24, 0x58, 0x42, 0x88,
0x8d, 0x01, 0x29, 0xfa, 0x53, 0x3e, 0x3c, 0x21, 0xd9, 0xd1, 0xfd, 0x08, 0x41, 0xc9, 0x42, 0xd3,
0x49, 0x5f, 0x0b, 0xc1, 0xd1, 0x6d, 0xd5, 0x47, 0x5f, 0x2e, 0x16, 0x7d, 0xf4, 0x5d, 0x0f, 0x16,
0x83, 0xe8, 0x30, 0x9e, 0x46, 0x23, 0x12, 0x92, 0x25, 0x4f, 0x35, 0xf1, 0xb0, 0x13, 0xf2, 0xa4,
0x82, 0x09, 0x97, 0xd2, 0x51, 0x00, 0x5c, 0x86, 0xae, 0x55, 0x46, 0x0a, 0x4f, 0xdb, 0xb1, 0x77,
0x61, 0xcd, 0x80, 0xc9, 0x1d, 0x7c, 0x13, 0xe6, 0x13, 0x04, 0x48, 0x47, 0x49, 0xb1, 0x17, 0x69,
0x4a, 0xd1, 0xe3, 0xae, 0x42, 0xf7, 0x3e, 0xcf, 0x3f, 0x88, 0x8e, 0x62, 0x45, 0xe9, 0x07, 0x73,
0x18, 0xc3, 0x4b, 0x90, 0x24, 0x74, 0x15, 0x56, 0x82, 0x11, 0x8f, 0xf2, 0x20, 0x9f, 0x0d, 0x2c,
0x0f, 0xae, 0x0c, 0x46, 0x0b, 0xe3, 0x87, 0x81, 0x9f, 0x49, 0x1d, 0x26, 0x1a, 0x6c, 0x17, 0x36,
0x90, 0xfd, 0x15, 0x47, 0xeb, 0x63, 0x15, 0x8e, 0x64, 0x6d, 0x1f, 0x4a, 0x2c, 0xc2, 0x25, 0x07,
0xea, 0x4f, 0x84, 0xa6, 0xad, 0xeb, 0xc2, 0x5d, 0x13, 0x94, 0x70, 0xc9, 0xf3, 0x42, 0x44, 0x34,
0xa0, 0x12, 0xbd, 0x2d, 0x08, 0x27, 0xb6, 0x1c, 0xbd, 0x19, 0x11, 0xe0, 0x52, 0x25, 0x02, 0xbc,
0x0a, 0x2b, 0xd9, 0x2c, 0x1a, 0xf2, 0xd1, 0x20, 0x8f, 0x71, 0xdc, 0x20, 0xa2, 0xd3, 0x59, 0xf2,
0xca, 0x60, 0x8a, 0x55, 0x79, 0x96, 0x47, 0x3c, 0x27, 0xd5, 0xb5, 0xe4, 0xa9, 0x26, 0x5a, 0x01,
0x42, 0x11, 0x4c, 0xdd, 0xf2, 0x64, 0x0b, 0x4d, 0xe5, 0x34, 0x0d, 0xb2, 0x5e, 0x87, 0xa0, 0xf4,
0x9b, 0x7d, 0x06, 0xce, 0x1f, 0x62, 0x64, 0x75, 0xcc, 0xfd, 0x11, 0x4f, 0xe9, 0xf4, 0x45, 0x60,
0x29, 0x34, 0x50, 0x7d, 0x27, 0x8e, 0x7d, 0xc2, 0xd3, 0x2c, 0x88, 0x23, 0xd2, 0x3d, 0x2d, 0x4f,
0x35, 0xdd, 0x6f, 0x93, 0x45, 0xd7, 0x21, 0xef, 0x63, 0x52, 0x47, 0xec, 0x35, 0x68, 0x89, 0x35,
0x66, 0xc7, 0xbe, 0x74, 0x32, 0x96, 0x08, 0x70, 0x70, 0xec, 0xa3, 0x00, 0x5b, 0xdb, 0x26, 0x72,
0x08, 0x6d, 0x82, 0xed, 0x89, 0x5d, 0x7b, 0x0b, 0xba, 0x2a, 0x98, 0xce, 0x06, 0x21, 0x3f, 0xca,
0x55, 0x80, 0x10, 0x4d, 0x27, 0x38, 0x5c, 0xf6, 0x80, 0x1f, 0xe5, 0xee, 0x43, 0x58, 0x93, 0x72,
0xfb, 0xe5, 0x84, 0xab, 0xa1, 0x3f, 0x57, 0x36, 0x6a, 0xc2, 0xab, 0x58, 0xb7, 0x05, 0x9d, 0xa2,
0x9c, 0x92, 0xa5, 0x73, 0x3d, 0x60, 0xb2, 0xfb, 0x76, 0x18, 0x67, 0x5c, 0x12, 0x74, 0xa1, 0x33,
0x0c, 0xe3, 0x4c, 0x85, 0x21, 0x72, 0x39, 0x16, 0x0c, 0xf7, 0x27, 0x9b, 0x0e, 0x87, 0xa8, 0x09,
0x84, 0x4e, 0x53, 0x4d, 0xf7, 0xcf, 0x1d, 0x58, 0x27, 0x6a, 0x4a, 0xc3, 0x68, 0xdf, 0xf5, 0xd5,
0xa7, 0xd9, 0x19, 0x9a, 0xa1, 0xd9, 0x06, 0xcc, 0x1f, 0xc5, 0xe9, 0x90, 0xcb, 0x91, 0x44, 0xe3,
0x47, 0xf7, 0xc6, 0x9b, 0x15, 0x6f, 0xfc, 0x07, 0x0e, 0xac, 0xd1, 0x54, 0x0f, 0x72, 0x3f, 0x9f,
0x66, 0x72, 0xf9, 0x3f, 0x0f, 0xcb, 0xb8, 0x54, 0xae, 0xc4, 0x49, 0x4e, 0x74, 0x43, 0x4b, 0x3e,
0x41, 0x05, 0xf2, 0xde, 0x39, 0xcf, 0x46, 0x66, 0x5f, 0x80, 0x8e, 0x99, 0x11, 0xa1, 0x39, 0xb7,
0x77, 0x2f, 0xa8, 0x55, 0x56, 0x38, 0x67, 0xef, 0x9c, 0x67, 0x7d, 0xc0, 0x6e, 0x00, 0x90, 0xbb,
0x41, 0x64, 0x65, 0x28, 0x7b, 0xc1, 0xde, 0x24, 0xe3, 0xb0, 0xf6, 0xce, 0x79, 0x06, 0xfa, 0xad,
0x25, 0x58, 0x10, 0xf6, 0xd1, 0xbd, 0x0f, 0xcb, 0xd6, 0x4c, 0xad, 0x28, 0xa3, 0x23, 0xa2, 0x8c,
0x4a, 0x50, 0xda, 0xa8, 0x06, 0xa5, 0xee, 0xbf, 0x36, 0x80, 0x21, 0xb7, 0x95, 0x8e, 0x13, 0x0d,
0x74, 0x3c, 0xb2, 0xdc, 0xad, 0x8e, 0x67, 0x82, 0xd8, 0x35, 0x60, 0x46, 0x53, 0xe5, 0x1e, 0x84,
0xdd, 0xa8, 0xe9, 0x41, 0x05, 0x27, 0x7c, 0x25, 0x15, 0x03, 0x4b, 0xc7, 0x52, 0x9c, 0x5b, 0x6d,
0x1f, 0x9a, 0x86, 0x64, 0x9a, 0x1d, 0xa3, 0x03, 0xa1, 0x1c, 0x32, 0xd5, 0x2e, 0x33, 0xc8, 0xc2,
0x4b, 0x19, 0x64, 0xb1, 0xcc, 0x20, 0xa6, 0x4b, 0xb0, 0x64, 0xb9, 0x04, 0xe8, 0x7f, 0x4d, 0x82,
0x88, 0xfc, 0x8a, 0xc1, 0x04, 0x47, 0x97, 0xfe, 0x97, 0x05, 0x64, 0xdb, 0xb0, 0x2a, 0xfd, 0xba,
0xc2, 0xef, 0x00, 0xda, 0xe3, 0x0a, 0xdc, 0xfd, 0xd8, 0x81, 0x55, 0xdc, 0x67, 0x8b, 0x17, 0xdf,
0x07, 0x12, 0x85, 0x57, 0x64, 0x45, 0x0b, 0xf7, 0x27, 0xe7, 0xc4, 0xf7, 0xa0, 0x45, 0x04, 0xe3,
0x84, 0x47, 0x92, 0x11, 0x7b, 0x36, 0x23, 0x16, 0x5a, 0x68, 0xef, 0x9c, 0x57, 0x20, 0x1b, 0x6c,
0xf8, 0x0f, 0x0e, 0xb4, 0xe5, 0x34, 0x7f, 0xec, 0x58, 0xa2, 0x0f, 0x4b, 0xc8, 0x91, 0x86, 0xc3,
0xae, 0xdb, 0x68, 0x4d, 0x26, 0x18, 0xb0, 0xa1, 0xf9, 0xb4, 0xe2, 0x88, 0x32, 0x18, 0x6d, 0x21,
0x29, 0xdc, 0x6c, 0x90, 0x07, 0xe1, 0x40, 0xf5, 0xca, 0x04, 0x64, 0x5d, 0x17, 0xea, 0x9d, 0x2c,
0xf7, 0xc7, 0x5c, 0x9a, 0x39, 0xd1, 0xc0, 0x80, 0x49, 0x2e, 0xa8, 0xe4, 0x0e, 0xba, 0x7f, 0xd3,
0x81, 0xad, 0x4a, 0x97, 0xce, 0xe0, 0x4b, 0x07, 0x39, 0x0c, 0x26, 0x87, 0xb1, 0xf6, 0xb5, 0x1d,
0xd3, 0x77, 0xb6, 0xba, 0xd8, 0x18, 0xce, 0x2b, 0x7b, 0x8e, 0x7b, 0x5a, 0x58, 0xef, 0x06, 0x39,
0x22, 0xef, 0xd8, 0x3c, 0x50, 0x1e, 0x50, 0xc1, 0x4d, 0xc9, 0xad, 0xa7, 0xc7, 0x8e, 0xa1, 0xa7,
0x1d, 0x07, 0xa9, 0xe2, 0x0d, 0xe7, 0x02, 0xc7, 0x7a, 0xfb, 0x25, 0x63, 0x91, 0x3e, 0x1a, 0xa9,
0x61, 0xce, 0xa4, 0xc6, 0x66, 0x70, 0x49, 0xf5, 0x91, 0x0e, 0xaf, 0x8e, 0xd7, 0x7c, 0xa5, 0xb5,
0xdd, 0xc3, 0x8f, 0xed, 0x41, 0x5f, 0x42, 0x98, 0x7d, 0x13, 0x36, 0x4f, 0xfd, 0x20, 0x57, 0xd3,
0x32, 0x9c, 0xa1, 0x79, 0x1a, 0x72, 0xf7, 0x25, 0x43, 0x3e, 0x11, 0x1f, 0x5b, 0x86, 0xed, 0x0c,
0x8a, 0xfd, 0xbf, 0x73, 0xa0, 0x6b, 0xd3, 0x41, 0x36, 0x95, 0x02, 0xaf, 0x14, 0x9f, 0x72, 0xfe,
0x4a, 0xe0, 0x6a, 0x88, 0xda, 0xa8, 0x0b, 0x51, 0xcd, 0x40, 0x74, 0xee, 0x65, 0x81, 0x68, 0xf3,
0xd5, 0x02, 0xd1, 0xf9, 0xba, 0x40, 0xb4, 0xff, 0x5f, 0x0e, 0xb0, 0x2a, 0x2f, 0xb1, 0xfb, 0x22,
0x46, 0x8e, 0x78, 0x28, 0x75, 0xd2, 0xcf, 0xbe, 0x1a, 0x3f, 0xaa, 0xbd, 0x53, 0x5f, 0xa3, 0x60,
0x98, 0x4a, 0xc7, 0x74, 0x91, 0x96, 0xbd, 0xba, 0xae, 0x52, 0x68, 0xdc, 0x7c, 0x79, 0x68, 0x3c,
0xff, 0xf2, 0xd0, 0x78, 0xa1, 0x1c, 0x1a, 0xf7, 0x7f, 0xc7, 0x81, 0xf5, 0x9a, 0x43, 0xff, 0xe9,
0x2d, 0x1c, 0x8f, 0xc9, 0xd2, 0x05, 0x0d, 0x79, 0x4c, 0x26, 0xb0, 0xff, 0xeb, 0xb0, 0x6c, 0x31,
0xfa, 0x4f, 0x6f, 0xfc, 0xb2, 0x97, 0x27, 0xf8, 0xcc, 0x82, 0xf5, 0x7f, 0xd8, 0x00, 0x56, 0x15,
0xb6, 0xff, 0xd7, 0x39, 0x54, 0xf7, 0x69, 0xae, 0x66, 0x9f, 0xfe, 0x4f, 0xed, 0xc0, 0xdb, 0xb0,
0x26, 0xcb, 0x7d, 0x46, 0x96, 0x44, 0x70, 0x4c, 0xb5, 0x03, 0xfd, 0x5c, 0x3b, 0x2f, 0xb1, 0x64,
0x95, 0x89, 0x0c, 0x63, 0x58, 0x4a, 0x4f, 0xb8, 0x9b, 0xb0, 0x21, 0xca, 0x87, 0xb7, 0x04, 0x29,
0x65, 0x57, 0xfe, 0xc4, 0x81, 0xf3, 0xa5, 0x8e, 0xa2, 0x96, 0x22, 0x4c, 0x87, 0x6d, 0x4f, 0x6c,
0x20, 0xce, 0x5f, 0xca, 0x91, 0x31, 0x7f, 0xc1, 0x6d, 0xd5, 0x0e, 0xdc, 0x9f, 0x69, 0x54, 0xc5,
0x17, 0xbb, 0x5e, 0xd7, 0xe5, 0x6e, 0x89, 0x22, 0x67, 0xc4, 0xc3, 0xd2, 0xc4, 0x8f, 0x44, 0x59,
0xd2, 0xec, 0x28, 0x92, 0xc3, 0xf6, 0x94, 0x55, 0x13, 0xbd, 0x40, 0xcb, 0x4c, 0xd9, 0xf3, 0xad,
0xed, 0x73, 0x7f, 0x0d, 0xd8, 0x57, 0xa6, 0x3c, 0x9d, 0x51, 0xa5, 0x47, 0x67, 0x67, 0xb6, 0xca,
0x69, 0x8c, 0x85, 0x64, 0x7a, 0xf8, 0x25, 0x3e, 0x53, 0xa5, 0xb4, 0x46, 0x51, 0x4a, 0x7b, 0x1d,
0x00, 0xa3, 0x2f, 0x2a, 0x0d, 0xa9, 0xe2, 0x26, 0x86, 0xbd, 0x82, 0xa0, 0x7b, 0x03, 0xd6, 0x2d,
0xfa, 0x7a, 0xf7, 0x17, 0xe4, 0x17, 0x22, 0x37, 0x60, 0x17, 0x9c, 0x64, 0x9f, 0xfb, 0x1f, 0x0e,
0xcc, 0xed, 0xc5, 0x89, 0x99, 0x55, 0x74, 0xec, 0xac, 0xa2, 0x54, 0xf9, 0x03, 0xad, 0xd1, 0xa5,
0x26, 0xb0, 0x80, 0x6c, 0x1b, 0xba, 0xfe, 0x24, 0xc7, 0xe8, 0xf8, 0x28, 0x4e, 0x4f, 0xfd, 0x74,
0x24, 0x8e, 0xe4, 0x56, 0xa3, 0xe7, 0x78, 0xa5, 0x1e, 0xb6, 0x01, 0x73, 0x5a, 0x37, 0x12, 0x02,
0x36, 0xd1, 0xbf, 0xa2, 0xe4, 0xea, 0x4c, 0x06, 0xf6, 0xb2, 0x85, 0x27, 0x6e, 0x7f, 0x2f, 0x3c,
0x5a, 0xc1, 0xe1, 0x75, 0x5d, 0x68, 0x7e, 0x50, 0x55, 0x12, 0x9a, 0xcc, 0xc8, 0xa8, 0xb6, 0xfb,
0x6f, 0x0e, 0xcc, 0xd3, 0x0e, 0xa0, 0x4c, 0x0a, 0x46, 0xa4, 0xda, 0x2d, 0x65, 0x82, 0x1d, 0x21,
0x93, 0x25, 0x30, 0x73, 0xad, 0x8a, 0x6e, 0x43, 0x4f, 0xdb, 0xac, 0xea, 0x5e, 0x86, 0x96, 0x68,
0xe9, 0x32, 0x28, 0xa1, 0x14, 0x40, 0x76, 0x09, 0x9a, 0xc7, 0x71, 0xa2, 0x9c, 0x08, 0x50, 0x89,
0xc0, 0x38, 0xf1, 0x08, 0x5e, 0xcc, 0x07, 0xe9, 0x89, 0xc9, 0x0b, 0xd3, 0x50, 0x06, 0xa3, 0x71,
0xd4, 0x64, 0xcd, 0xcd, 0x28, 0x41, 0xdd, 0x6d, 0x58, 0x79, 0x18, 0x8f, 0xb8, 0x91, 0xfa, 0x39,
0x93, 0xeb, 0xdc, 0xdf, 0x70, 0x60, 0x49, 0x21, 0xb3, 0xab, 0xd0, 0x44, 0x8b, 0x5f, 0xf2, 0xe7,
0x75, 0x01, 0x00, 0xf1, 0x3c, 0xc2, 0x40, 0x15, 0x49, 0x89, 0x81, 0xc2, 0xfb, 0x53, 0x69, 0x81,
0xc2, 0xb9, 0xd1, 0xd3, 0x2d, 0xf9, 0x04, 0x25, 0xa8, 0xfb, 0x17, 0x0e, 0x2c, 0x5b, 0x63, 0x60,
0x14, 0x17, 0xfa, 0x59, 0x2e, 0x93, 0xaa, 0xf2, 0x78, 0x4c, 0x90, 0x99, 0x0c, 0x6c, 0xd8, 0xc9,
0x40, 0x9d, 0xa6, 0x9a, 0x33, 0xd3, 0x54, 0xd7, 0xa1, 0x55, 0xd4, 0xdd, 0x9b, 0x96, 0xea, 0xc3,
0x11, 0x55, 0x69, 0xa3, 0x40, 0x42, 0x3a, 0xc3, 0x38, 0x8c, 0x53, 0x59, 0x96, 0x16, 0x0d, 0xf7,
0x06, 0xb4, 0x0d, 0x7c, 0x9c, 0x46, 0xc4, 0xf3, 0xd3, 0x38, 0x7d, 0xaa, 0x72, 0x92, 0xb2, 0xa9,
0x2b, 0x78, 0x8d, 0xa2, 0x82, 0xe7, 0xfe, 0xa5, 0x03, 0xcb, 0xc8, 0x83, 0x41, 0x34, 0xde, 0x8f,
0xc3, 0x60, 0x38, 0xa3, 0xb3, 0x57, 0xec, 0x26, 0xeb, 0xd5, 0x8a, 0x17, 0x6d, 0x30, 0xf2, 0xb6,
0x0a, 0xe2, 0xa4, 0x20, 0xea, 0x36, 0x4a, 0x2a, 0xf2, 0xf9, 0xa1, 0x9f, 0x49, 0xe6, 0x97, 0xb6,
0xc8, 0x02, 0xa2, 0x3c, 0x21, 0x20, 0xf5, 0x73, 0x3e, 0x98, 0x04, 0x61, 0x18, 0x08, 0x5c, 0xe1,
0xa9, 0xd4, 0x75, 0xb9, 0xdf, 0x6f, 0x40, 0x5b, 0x6a, 0xca, 0xbb, 0xa3, 0xb1, 0xc8, 0xfe, 0x4b,
0x7f, 0x4f, 0xab, 0x0b, 0x03, 0xa2, 0xfa, 0x2d, 0x0f, 0xd1, 0x80, 0x94, 0x8f, 0x75, 0xae, 0x7a,
0xac, 0x17, 0xa1, 0x85, 0xec, 0xf5, 0x0e, 0xb9, 0xa2, 0xe2, 0x9a, 0x46, 0x01, 0x50, 0xbd, 0xbb,
0xd4, 0x3b, 0x5f, 0xf4, 0x12, 0xc0, 0x72, 0x3e, 0x17, 0x4a, 0xce, 0xe7, 0x7b, 0xd0, 0x91, 0x64,
0x68, 0xdf, 0x49, 0x3b, 0x14, 0x0c, 0x6e, 0x9d, 0x89, 0x67, 0x61, 0xaa, 0x2f, 0x77, 0xd5, 0x97,
0x4b, 0x2f, 0xfb, 0x52, 0x61, 0x52, 0x31, 0x4c, 0xec, 0xcd, 0xfd, 0xd4, 0x4f, 0x8e, 0x95, 0xf5,
0x19, 0xe9, 0x0a, 0x3f, 0x81, 0xd9, 0x36, 0xcc, 0xe3, 0x67, 0x4a, 0x5b, 0xd7, 0x0b, 0x9d, 0x40,
0x61, 0x57, 0x61, 0x9e, 0x8f, 0xc6, 0x5c, 0x05, 0x5b, 0xcc, 0x0e, 0x7b, 0xf1, 0x8c, 0x3c, 0x81,
0x80, 0x2a, 0x00, 0xa1, 0x25, 0x15, 0x60, 0x6b, 0xfa, 0x05, 0x6c, 0x7e, 0x30, 0x72, 0x37, 0x80,
0x3d, 0x14, 0x5c, 0x6b, 0x26, 0x8b, 0x7f, 0x7b, 0x0e, 0xda, 0x06, 0x18, 0xa5, 0x79, 0x8c, 0x13,
0x1e, 0x8c, 0x02, 0x7f, 0xc2, 0x73, 0x9e, 0x4a, 0x4e, 0x2d, 0x41, 0x11, 0xcf, 0x3f, 0x19, 0x0f,
0xe2, 0x69, 0x3e, 0x18, 0xf1, 0x71, 0xca, 0x85, 0x8d, 0x44, 0x63, 0x60, 0x41, 0x11, 0x6f, 0xe2,
0x3f, 0x33, 0xf1, 0x04, 0x3f, 0x94, 0xa0, 0x2a, 0xf5, 0x2b, 0xf6, 0xa8, 0x59, 0xa4, 0x7e, 0xc5,
0x8e, 0x94, 0xf5, 0xd0, 0x7c, 0x8d, 0x1e, 0x7a, 0x17, 0x36, 0x85, 0xc6, 0x91, 0xb2, 0x39, 0x28,
0xb1, 0xc9, 0x19, 0xbd, 0x6c, 0x1b, 0x56, 0x71, 0xce, 0x8a, 0xc1, 0xb3, 0xe0, 0xdb, 0x22, 0x19,
0xe3, 0x78, 0x15, 0x38, 0xe2, 0xa2, 0x38, 0x5a, 0xb8, 0xa2, 0x3c, 0x56, 0x81, 0x13, 0xae, 0xff,
0xcc, 0xc6, 0x6d, 0x49, 0xdc, 0x12, 0xdc, 0x5d, 0x86, 0xf6, 0x41, 0x1e, 0x27, 0xea, 0x50, 0xba,
0xd0, 0x11, 0x4d, 0x59, 0x0c, 0x7d, 0x0d, 0x2e, 0x10, 0x17, 0x3d, 0x8a, 0x93, 0x38, 0x8c, 0xc7,
0xb3, 0x83, 0xe9, 0x61, 0x36, 0x4c, 0x83, 0x04, 0x03, 0x13, 0xf7, 0xef, 0x1d, 0x58, 0xb7, 0x7a,
0x65, 0xf6, 0xe6, 0x33, 0x82, 0xa5, 0x75, 0x15, 0x4b, 0x30, 0xde, 0x9a, 0xa1, 0x0e, 0x05, 0xa2,
0xc8, 0x9b, 0x3d, 0x96, 0x85, 0xad, 0x9b, 0xb0, 0xa2, 0x66, 0xa6, 0x3e, 0x14, 0x5c, 0xd8, 0xab,
0x72, 0xa1, 0xfc, 0xbe, 0x2b, 0x3f, 0x50, 0x24, 0x7e, 0x41, 0xf8, 0xd5, 0x7c, 0x44, 0x6b, 0x54,
0x61, 0x7c, 0x5f, 0x7d, 0x6f, 0x3a, 0xf3, 0x6a, 0x06, 0x43, 0x0d, 0xcc, 0xdc, 0xdf, 0x73, 0x00,
0x8a, 0xd9, 0x21, 0x63, 0x14, 0x2a, 0x5d, 0x5c, 0x39, 0x34, 0xd4, 0xf7, 0x9b, 0xd0, 0xd1, 0x05,
0x8c, 0xc2, 0x4a, 0xb4, 0x15, 0x0c, 0x1d, 0xae, 0x2b, 0xb0, 0x32, 0x0e, 0xe3, 0x43, 0x32, 0xb1,
0x54, 0x5d, 0xcf, 0x64, 0x49, 0xb8, 0x2b, 0xc0, 0xf7, 0x24, 0xb4, 0x30, 0x29, 0x4d, 0xc3, 0xa4,
0xb8, 0xdf, 0x69, 0xe8, 0xb4, 0x77, 0xb1, 0xe6, 0x33, 0xa5, 0x8c, 0xed, 0x56, 0x94, 0xe3, 0x19,
0x59, 0x66, 0x4a, 0x58, 0xed, 0xbf, 0x34, 0x9e, 0xbe, 0x01, 0xdd, 0x54, 0x68, 0x1f, 0xa5, 0x9a,
0x9a, 0x2f, 0x50, 0x4d, 0xcb, 0xa9, 0x65, 0x77, 0x3e, 0x05, 0xab, 0xfe, 0xe8, 0x84, 0xa7, 0x79,
0x40, 0x11, 0x0d, 0x19, 0x7d, 0xa1, 0x50, 0x57, 0x0c, 0x38, 0xd9, 0xe2, 0x2b, 0xb0, 0x22, 0xcb,
0xf0, 0x1a, 0x53, 0x5e, 0xbe, 0x2a, 0xc0, 0x88, 0xe8, 0xfe, 0x99, 0xca, 0xb0, 0xdb, 0x67, 0x78,
0xf6, 0x8e, 0x98, 0xab, 0x6b, 0x94, 0x56, 0xf7, 0x09, 0x99, 0xed, 0x1e, 0xa9, 0xb0, 0x49, 0xd6,
0x1d, 0x04, 0x50, 0x56, 0x27, 0xec, 0x2d, 0x6d, 0xbe, 0xca, 0x96, 0xba, 0x1f, 0x3b, 0xb0, 0xb8,
0x17, 0x27, 0x7b, 0xb2, 0xa2, 0x4e, 0x82, 0xa0, 0x2f, 0xb9, 0xa8, 0xa6, 0xe9, 0x15, 0x37, 0x2a,
0x5e, 0x71, 0xd5, 0xd6, 0x2e, 0x97, 0x6d, 0xed, 0x2f, 0xc2, 0x6b, 0x14, 0xb4, 0xa7, 0x71, 0x12,
0xa7, 0x28, 0x8c, 0x7e, 0x28, 0x0c, 0x6b, 0x1c, 0xe5, 0xc7, 0x4a, 0x8d, 0xbd, 0x08, 0x85, 0xa2,
0xa3, 0x30, 0x3f, 0x19, 0x08, 0x67, 0x58, 0xfa, 0x06, 0x42, 0xbb, 0x55, 0x3b, 0xdc, 0xcf, 0x41,
0x8b, 0x9c, 0x5b, 0x5a, 0xd6, 0xdb, 0xd0, 0x3a, 0x8e, 0x93, 0xc1, 0x71, 0x10, 0xe5, 0x4a, 0xb8,
0xbb, 0x85, 0xd7, 0xb9, 0x47, 0x1b, 0xa2, 0x11, 0xdc, 0x1f, 0xce, 0xc1, 0xe2, 0x07, 0xd1, 0x49,
0x1c, 0x0c, 0x29, 0x19, 0x3f, 0xe1, 0x93, 0x58, 0x5d, 0xf9, 0xc1, 0xdf, 0xb8, 0x15, 0x54, 0xfe,
0x4e, 0x72, 0x99, 0x4d, 0x57, 0x4d, 0x34, 0xf7, 0x69, 0x71, 0x0d, 0x4e, 0x88, 0x8e, 0x01, 0x41,
0xc7, 0x3e, 0x35, 0xef, 0x00, 0xca, 0x56, 0x71, 0x67, 0x6a, 0xde, 0xb8, 0x33, 0x45, 0xa5, 0x1b,
0x51, 0xd9, 0x27, 0xfe, 0x5a, 0xf2, 0x54, 0x93, 0x02, 0x91, 0x94, 0x8b, 0x64, 0x0b, 0x39, 0x0e,
0x8b, 0x32, 0x10, 0x31, 0x81, 0xe8, 0x5c, 0x88, 0x0f, 0x04, 0x8e, 0x50, 0xbe, 0x26, 0x08, 0x9d,
0xad, 0xf2, 0x35, 0xc2, 0x96, 0xe0, 0xf9, 0x12, 0x18, 0x35, 0xf4, 0x88, 0x6b, 0x45, 0x2a, 0xd6,
0x00, 0xe2, 0x9a, 0x5f, 0x19, 0x6e, 0x84, 0x2f, 0xe2, 0x86, 0x82, 0x0a, 0x5f, 0x90, 0x51, 0xfc,
0x30, 0x3c, 0xf4, 0x87, 0x4f, 0xe9, 0x72, 0x27, 0x5d, 0x48, 0x68, 0x79, 0x36, 0x10, 0x67, 0x6d,
0x9c, 0x26, 0x15, 0xff, 0x9a, 0x9e, 0x09, 0x62, 0xbb, 0xd0, 0xa6, 0x90, 0x4d, 0x9e, 0x67, 0x97,
0xce, 0x73, 0xd5, 0x8c, 0xe9, 0xe8, 0x44, 0x4d, 0x24, 0xb3, 0x40, 0xb0, 0x62, 0xdf, 0x19, 0xf8,
0x2a, 0xb0, 0x9b, 0xa3, 0x91, 0x3c, 0x6f, 0x1d, 0x32, 0x16, 0x27, 0xe5, 0x58, 0x27, 0x55, 0xb3,
0x63, 0x8d, 0xda, 0x1d, 0x73, 0xef, 0x42, 0x7b, 0xdf, 0xb8, 0xe1, 0x49, 0xac, 0xa1, 0xee, 0x76,
0x4a, 0x76, 0x32, 0x20, 0xc6, 0x80, 0x0d, 0x73, 0x40, 0xf7, 0xe7, 0x80, 0x3d, 0x08, 0xb2, 0x5c,
0xcf, 0x4f, 0x1c, 0xc7, 0x9b, 0xd0, 0xd1, 0x01, 0x76, 0x71, 0xa3, 0xa1, 0x2d, 0x61, 0x74, 0xd3,
0xe0, 0xa6, 0xb8, 0x0a, 0x51, 0x5e, 0xd8, 0x36, 0x2c, 0x05, 0x02, 0x54, 0x96, 0x04, 0x85, 0xa9,
0xfb, 0xd1, 0x5f, 0x93, 0x40, 0xcb, 0x8a, 0x7e, 0xdf, 0x81, 0x45, 0xb9, 0x34, 0xf4, 0x36, 0xac,
0xbb, 0xad, 0x62, 0x61, 0x16, 0xac, 0xfe, 0x46, 0x60, 0x95, 0x87, 0xe7, 0xea, 0x78, 0x98, 0x41,
0x33, 0xf1, 0xf3, 0x63, 0x0a, 0x50, 0x5a, 0x1e, 0xfd, 0x66, 0xab, 0x22, 0x68, 0x16, 0xb2, 0x42,
0x01, 0x73, 0xdd, 0x25, 0x54, 0xa1, 0x92, 0x2b, 0x70, 0x5c, 0x14, 0x5d, 0x1e, 0x10, 0x70, 0x5d,
0x13, 0x90, 0x17, 0x33, 0x0a, 0x70, 0xb1, 0x5f, 0x92, 0x44, 0x79, 0xbf, 0x24, 0xaa, 0xa7, 0xfb,
0xdd, 0x3e, 0xf4, 0xee, 0xf0, 0x90, 0xe7, 0xfc, 0x66, 0x18, 0x96, 0xe9, 0xbf, 0x06, 0x17, 0x6a,
0xfa, 0xa4, 0xd3, 0x72, 0x0f, 0xd6, 0xee, 0xf0, 0xc3, 0xe9, 0xf8, 0x01, 0x3f, 0x29, 0x0a, 0x77,
0x0c, 0x9a, 0xd9, 0x71, 0x7c, 0x2a, 0xcf, 0x96, 0x7e, 0xb3, 0xd7, 0x01, 0x42, 0xc4, 0x19, 0x64,
0x09, 0x1f, 0xaa, 0xbb, 0x70, 0x04, 0x39, 0x48, 0xf8, 0xd0, 0x7d, 0x17, 0x98, 0x49, 0x47, 0x2e,
0x01, 0xf5, 0xc0, 0xf4, 0x70, 0x90, 0xcd, 0xb2, 0x9c, 0x4f, 0xd4, 0x25, 0x3f, 0x13, 0xe4, 0x5e,
0x81, 0xce, 0xbe, 0x3f, 0xf3, 0xf8, 0xb7, 0xe4, 0xf5, 0x62, 0x8c, 0x8d, 0xfd, 0x19, 0xb2, 0xb2,
0x8e, 0x8d, 0xa9, 0xdb, 0xfd, 0xcf, 0x06, 0x2c, 0x08, 0x4c, 0xa4, 0x3a, 0xe2, 0x59, 0x1e, 0x44,
0xa2, 0x68, 0x25, 0xa9, 0x1a, 0xa0, 0x0a, 0x6f, 0x34, 0x6a, 0x78, 0x43, 0x7a, 0xab, 0xea, 0x5e,
0x91, 0x64, 0x02, 0x0b, 0x86, 0x6e, 0x4d, 0x71, 0x19, 0x40, 0x04, 0x67, 0x05, 0xa0, 0x94, 0x2c,
0x29, 0xb4, 0x8d, 0x98, 0x9f, 0x62, 0x5a, 0xc9, 0x0e, 0x26, 0xa8, 0x56, 0xa7, 0x2d, 0x0a, 0xae,
0xa9, 0xe8, 0xb4, 0x8a, 0xee, 0x5a, 0x7a, 0x05, 0xdd, 0x25, 0x5c, 0xd8, 0x17, 0xe9, 0x2e, 0x78,
0x05, 0xdd, 0xe5, 0x32, 0x58, 0xbd, 0xc7, 0xb9, 0xc7, 0xd1, 0x2a, 0x2a, 0x76, 0xfa, 0xae, 0x03,
0xab, 0xd2, 0xa0, 0xeb, 0x3e, 0xf6, 0xa6, 0x65, 0xfd, 0x9d, 0xba, 0x7a, 0xc4, 0x5b, 0xb0, 0x4c,
0x36, 0x59, 0x67, 0x85, 0x64, 0x0a, 0xcb, 0x02, 0xe2, 0x3a, 0x54, 0x86, 0x7d, 0x12, 0x84, 0xf2,
0x50, 0x4c, 0x90, 0x4a, 0x2c, 0x61, 0x7c, 0x4c, 0x47, 0xe2, 0x78, 0xba, 0xed, 0xfe, 0xb5, 0x03,
0x6b, 0xc6, 0x84, 0x25, 0x17, 0xde, 0x00, 0x75, 0x59, 0x40, 0x24, 0x8f, 0x84, 0x30, 0x6d, 0xd9,
0xce, 0x49, 0xf1, 0x99, 0x85, 0x4c, 0x87, 0xe9, 0xcf, 0x68, 0x82, 0xd9, 0x74, 0x22, 0x3d, 0x10,
0x13, 0x84, 0x8c, 0x74, 0xca, 0xf9, 0x53, 0x8d, 0x32, 0x47, 0x28, 0x16, 0x8c, 0x6a, 0xc1, 0xe8,
0x4b, 0x68, 0x24, 0x71, 0xfd, 0xc9, 0x06, 0xba, 0xff, 0xe8, 0xc0, 0xba, 0x70, 0x0a, 0xa5, 0xcb,
0xad, 0xaf, 0x66, 0x2e, 0x08, 0x2f, 0x58, 0x48, 0xe4, 0xde, 0x39, 0x4f, 0xb6, 0xd9, 0x67, 0x5f,
0xd1, 0x91, 0xd5, 0x77, 0x00, 0xce, 0x38, 0x8b, 0xb9, 0xba, 0xb3, 0x78, 0xc1, 0x4e, 0xd7, 0x25,
0x4b, 0xe6, 0x6b, 0x93, 0x25, 0xb7, 0x16, 0x61, 0x3e, 0x1b, 0xc6, 0x09, 0x77, 0x37, 0x61, 0xc3,
0x5e, 0x9c, 0x54, 0x41, 0xdf, 0x73, 0xa0, 0x77, 0x4f, 0xa4, 0x0e, 0x83, 0x68, 0xbc, 0x17, 0x64,
0x79, 0x9c, 0xea, 0xbb, 0xe8, 0x97, 0x00, 0xb2, 0xdc, 0x4f, 0x73, 0x71, 0x47, 0x4b, 0xa6, 0x39,
0x0a, 0x08, 0xce, 0x91, 0x47, 0x23, 0xd1, 0x2b, 0xce, 0x46, 0xb7, 0xf1, 0x60, 0xe8, 0x7e, 0xc2,
0x20, 0x3e, 0x3a, 0xca, 0xb8, 0x76, 0x5b, 0x4d, 0x18, 0x46, 0xbe, 0x28, 0xf1, 0x18, 0xeb, 0xf1,
0x13, 0x52, 0xb5, 0xc2, 0x1f, 0x2c, 0x41, 0xdd, 0xbf, 0x72, 0x60, 0xa5, 0x98, 0xe4, 0x5d, 0x04,
0xda, 0xda, 0x41, 0x4c, 0xcd, 0xd0, 0x0e, 0x2a, 0x01, 0x13, 0x8c, 0x06, 0x41, 0x24, 0xe7, 0x66,
0x40, 0x48, 0x62, 0x65, 0x2b, 0x9e, 0xaa, 0xfb, 0x70, 0x26, 0x48, 0x14, 0xbb, 0x73, 0xfc, 0x5a,
0x5c, 0x86, 0x93, 0x2d, 0xba, 0x62, 0x37, 0xc9, 0xe9, 0xab, 0x05, 0xe1, 0x10, 0xcb, 0xa6, 0xb2,
0x4f, 0x8b, 0x04, 0xc5, 0x9f, 0xee, 0xef, 0x3b, 0x70, 0xa1, 0x66, 0x73, 0xa5, 0x64, 0xdc, 0x81,
0xb5, 0x23, 0xdd, 0xa9, 0x36, 0x40, 0x88, 0xc7, 0xa6, 0xe4, 0xa2, 0xd2, 0xa2, 0xbd, 0xea, 0x07,
0xe8, 0x1e, 0x53, 0xde, 0x48, 0x6c, 0xa9, 0x75, 0x4f, 0xa4, 0xda, 0xb1, 0xfb, 0x07, 0x73, 0xd0,
0x15, 0xa5, 0x0a, 0xf1, 0x1c, 0x8a, 0xa7, 0xec, 0x43, 0x58, 0x94, 0xcf, 0xd9, 0xd8, 0x79, 0x39,
0xac, 0xfd, 0x80, 0xae, 0xbf, 0x59, 0x06, 0x4b, 0xde, 0x59, 0xff, 0xad, 0x8f, 0xff, 0xe5, 0x0f,
0x1b, 0xcb, 0xac, 0xbd, 0x73, 0xf2, 0xce, 0xce, 0x98, 0x47, 0x19, 0xd2, 0xf8, 0x15, 0x80, 0xe2,
0xa1, 0x17, 0xeb, 0x69, 0x27, 0xa3, 0xf4, 0x82, 0xad, 0x7f, 0xa1, 0xa6, 0x47, 0xd2, 0xbd, 0x40,
0x74, 0xd7, 0xdd, 0x2e, 0xd2, 0x0d, 0xa2, 0x20, 0x17, 0xaf, 0xbe, 0xde, 0x77, 0xb6, 0xd9, 0x08,
0x3a, 0xe6, 0x3b, 0x2e, 0xa6, 0x42, 0xe6, 0x9a, 0x57, 0x64, 0xfd, 0xd7, 0x6a, 0xfb, 0x54, 0xbe,
0x80, 0xc6, 0x38, 0xef, 0xae, 0xe2, 0x18, 0x53, 0xc2, 0x28, 0x46, 0x09, 0xa1, 0x6b, 0x3f, 0xd7,
0x62, 0x17, 0x0d, 0xb1, 0xae, 0x3c, 0x16, 0xeb, 0xbf, 0x7e, 0x46, 0xaf, 0x1c, 0xeb, 0x75, 0x1a,
0x6b, 0xcb, 0x65, 0x38, 0xd6, 0x90, 0x70, 0xd4, 0x63, 0xb1, 0xf7, 0x9d, 0xed, 0xdd, 0x7f, 0x7a,
0x0d, 0x5a, 0x3a, 0xc9, 0xc5, 0xbe, 0x09, 0xcb, 0x56, 0x2d, 0x89, 0xa9, 0x65, 0xd4, 0x95, 0x9e,
0xfa, 0x17, 0xeb, 0x3b, 0xe5, 0xc0, 0x97, 0x68, 0xe0, 0x1e, 0xdb, 0xc4, 0x81, 0x65, 0x31, 0x66,
0x87, 0x2a, 0x68, 0xe2, 0x02, 0xdf, 0x53, 0xb1, 0xce, 0xa2, 0xfe, 0x63, 0xad, 0xb3, 0x52, 0x2f,
0xb2, 0xd6, 0x59, 0x2d, 0x1a, 0xb9, 0x17, 0x69, 0xb8, 0x4d, 0xb6, 0x61, 0x0e, 0xa7, 0x93, 0x4f,
0x9c, 0xae, 0x5c, 0x9a, 0xaf, 0xb9, 0xd8, 0xeb, 0x9a, 0xb1, 0xea, 0x5e, 0x79, 0x69, 0x16, 0xa9,
0x3e, 0xf5, 0x72, 0x7b, 0x34, 0x14, 0x63, 0x74, 0x7c, 0xe6, 0x63, 0x2e, 0xf6, 0x75, 0x68, 0xe9,
0x17, 0x1c, 0x6c, 0xcb, 0x78, 0x36, 0x63, 0x3e, 0x2b, 0xe9, 0xf7, 0xaa, 0x1d, 0x75, 0x8c, 0x61,
0x52, 0x46, 0xc6, 0x78, 0x00, 0xe7, 0xa5, 0x4b, 0x7c, 0xc8, 0x7f, 0x94, 0x95, 0xd4, 0xbc, 0x41,
0xbb, 0xee, 0xb0, 0x1b, 0xb0, 0xa4, 0x1e, 0xc6, 0xb0, 0xcd, 0xfa, 0x07, 0x3e, 0xfd, 0xad, 0x0a,
0x5c, 0x6a, 0x8f, 0x9b, 0x00, 0xc5, 0xa3, 0x0e, 0x2d, 0x67, 0x95, 0xa7, 0x26, 0x7a, 0x13, 0x6b,
0x5e, 0x80, 0x8c, 0xe9, 0x09, 0x8b, 0xfd, 0x66, 0x84, 0xbd, 0x51, 0xe0, 0xd7, 0xbe, 0x26, 0x79,
0x01, 0x41, 0x77, 0x93, 0xf6, 0x6e, 0x95, 0x91, 0xe0, 0x46, 0xfc, 0x54, 0x5d, 0x3e, 0xbe, 0x03,
0x6d, 0xe3, 0xa1, 0x08, 0x53, 0x14, 0xaa, 0x8f, 0x4c, 0xfa, 0xfd, 0xba, 0x2e, 0x39, 0xdd, 0x2f,
0xc2, 0xb2, 0xf5, 0xe2, 0x43, 0x4b, 0x46, 0xdd, 0x7b, 0x12, 0x2d, 0x19, 0xf5, 0x8f, 0x44, 0xbe,
0x06, 0x6d, 0xe3, 0x7d, 0x06, 0x33, 0x2e, 0x5d, 0x95, 0x5e, 0x66, 0xe8, 0x19, 0xd5, 0x3d, 0xe7,
0xd8, 0xa0, 0xf5, 0x76, 0xdd, 0x16, 0xae, 0x97, 0x6e, 0xe0, 0x22, 0x93, 0x7c, 0x13, 0xba, 0xf6,
0x8b, 0x0d, 0x2d, 0x55, 0xb5, 0x6f, 0x3f, 0xb4, 0x54, 0x9d, 0xf1, 0xcc, 0x43, 0x32, 0xe4, 0xf6,
0xba, 0x1e, 0x64, 0xe7, 0x23, 0x59, 0xe2, 0x79, 0xce, 0xbe, 0x82, 0xaa, 0x43, 0x5e, 0x89, 0x66,
0xc5, 0x3b, 0x15, 0xfb, 0xe2, 0xb4, 0xe6, 0xf6, 0xca, 0xed, 0x69, 0x77, 0x8d, 0x88, 0xb7, 0x59,
0xb1, 0x02, 0x61, 0x0f, 0xe8, 0x6a, 0xb4, 0x61, 0x0f, 0xcc, 0xdb, 0xd3, 0x86, 0x3d, 0xb0, 0x6e,
0x50, 0x97, 0xed, 0x41, 0x1e, 0x20, 0x8d, 0x08, 0x56, 0x4a, 0xb7, 0x0e, 0xb4, 0xb0, 0xd4, 0x5f,
0xd3, 0xea, 0x5f, 0x7a, 0xf1, 0x65, 0x05, 0x5b, 0xcd, 0x28, 0xf5, 0xb2, 0xa3, 0x6e, 0xd5, 0xfd,
0x2a, 0x74, 0xcc, 0x9b, 0xf6, 0xda, 0x42, 0xd4, 0xbc, 0x0f, 0xd0, 0x16, 0xa2, 0xee, 0x6a, 0xbe,
0x3a, 0x5c, 0xd6, 0x31, 0x87, 0x61, 0x5f, 0x83, 0x15, 0xe3, 0x9a, 0xcd, 0xc1, 0x2c, 0x1a, 0x6a,
0xe6, 0xa9, 0x5e, 0xc2, 0xec, 0xd7, 0x79, 0x83, 0xee, 0x16, 0x11, 0x5e, 0x73, 0x2d, 0xc2, 0xc8,
0x38, 0xb7, 0xa1, 0x6d, 0x5e, 0xe1, 0x79, 0x01, 0xdd, 0x2d, 0xa3, 0xcb, 0xbc, 0x8f, 0x78, 0xdd,
0x61, 0x7f, 0xec, 0x40, 0xc7, 0xba, 0x10, 0x63, 0x65, 0x95, 0x4b, 0x74, 0x7a, 0x66, 0x9f, 0x49,
0xc8, 0xf5, 0x68, 0x92, 0x0f, 0xb6, 0xbf, 0x68, 0x6d, 0xf2, 0x47, 0x56, 0x54, 0x71, 0xad, 0xfc,
0x88, 0xf2, 0x79, 0x19, 0xc1, 0xbc, 0xa8, 0xfa, 0xfc, 0xba, 0xc3, 0xde, 0x17, 0x0f, 0x6d, 0x55,
0x16, 0x81, 0x19, 0xca, 0xad, 0xbc, 0x65, 0xe6, 0x9b, 0xd4, 0xab, 0xce, 0x75, 0x87, 0x7d, 0x43,
0xbc, 0x95, 0x94, 0xdf, 0xd2, 0xce, 0xbf, 0xea, 0xf7, 0xee, 0x5b, 0xb4, 0x9a, 0x4b, 0xee, 0x05,
0x6b, 0x35, 0x65, 0xed, 0xbe, 0x0f, 0x50, 0xa4, 0x84, 0x58, 0x29, 0x3f, 0xa2, 0xf5, 0x5e, 0x35,
0x6b, 0x64, 0x9f, 0xa8, 0x4a, 0xa3, 0x20, 0xc5, 0xaf, 0x0b, 0x66, 0x94, 0xf8, 0x99, 0x3e, 0xd2,
0x6a, 0x6a, 0xa7, 0xdf, 0xaf, 0xeb, 0xaa, 0x63, 0x45, 0x45, 0x9f, 0x3d, 0x86, 0xe5, 0x07, 0x71,
0xfc, 0x74, 0x9a, 0xe8, 0xa4, 0xa5, 0x9d, 0xa1, 0xd8, 0xf3, 0xb3, 0xe3, 0x7e, 0x69, 0x15, 0xee,
0x65, 0x22, 0xd5, 0x67, 0x3d, 0x83, 0xd4, 0xce, 0x47, 0x45, 0x42, 0xea, 0x39, 0xf3, 0x61, 0x4d,
0xdb, 0x38, 0x3d, 0xf1, 0xbe, 0x4d, 0xc6, 0xcc, 0x0b, 0x55, 0x86, 0xb0, 0xbc, 0x0e, 0x35, 0xdb,
0x9d, 0x4c, 0xd1, 0xbc, 0xee, 0xb0, 0x7d, 0xe8, 0xdc, 0xe1, 0xc3, 0x78, 0xc4, 0x65, 0x4e, 0x61,
0xbd, 0x98, 0xb8, 0x4e, 0x46, 0xf4, 0x97, 0x2d, 0xa0, 0x2d, 0xf5, 0x89, 0x3f, 0x4b, 0xf9, 0xb7,
0x76, 0x3e, 0x92, 0xd9, 0x8a, 0xe7, 0x4a, 0xea, 0x55, 0x86, 0xc5, 0x92, 0xfa, 0x52, 0x4a, 0xc6,
0x92, 0xfa, 0x4a, 0x4a, 0xc6, 0xda, 0x6a, 0x95, 0xe1, 0x61, 0x21, 0xac, 0x55, 0xb2, 0x38, 0xda,
0x52, 0x9e, 0x95, 0xfb, 0xe9, 0x5f, 0x3e, 0x1b, 0xc1, 0x1e, 0x6d, 0xdb, 0x1e, 0xed, 0x00, 0x96,
0xef, 0x70, 0xb1, 0x59, 0xa2, 0x32, 0xda, 0xb7, 0xd5, 0x88, 0x59, 0x45, 0x2d, 0xab, 0x18, 0xea,
0xb3, 0xd5, 0x3a, 0x95, 0x25, 0xd9, 0xd7, 0xa1, 0x7d, 0x9f, 0xe7, 0xaa, 0x14, 0xaa, 0xfd, 0x8d,
0x52, 0x6d, 0xb4, 0x5f, 0x53, 0x49, 0xb5, 0x79, 0x86, 0xa8, 0xed, 0xf0, 0xd1, 0x98, 0x0b, 0x61,
0x1f, 0x04, 0xa3, 0xe7, 0xec, 0x97, 0x88, 0xb8, 0xbe, 0x3d, 0xb1, 0x69, 0x54, 0xd0, 0x4c, 0xe2,
0x2b, 0x25, 0x78, 0x1d, 0xe5, 0x28, 0x1e, 0x71, 0xc3, 0xc0, 0x45, 0xd0, 0x36, 0xae, 0xf6, 0x68,
0x01, 0xaa, 0x5e, 0x27, 0xd2, 0x02, 0x54, 0x73, 0x13, 0xc8, 0xbd, 0x4a, 0xe3, 0xb8, 0xec, 0x72,
0x31, 0x8e, 0xb8, 0xfd, 0x53, 0x8c, 0xb4, 0xf3, 0x91, 0x3f, 0xc9, 0x9f, 0xb3, 0x27, 0xf4, 0x56,
0xc8, 0x2c, 0xf7, 0x16, 0xfe, 0x4e, 0xb9, 0x32, 0xac, 0x37, 0xcb, 0xe8, 0xb2, 0x7d, 0x20, 0x31,
0x14, 0xd9, 0xc1, 0xcf, 0x02, 0x1c, 0xe4, 0x71, 0x72, 0xc7, 0xe7, 0x93, 0x38, 0x2a, 0x34, 0x57,
0x51, 0xd2, 0x2c, 0x34, 0x97, 0x51, 0xd7, 0x64, 0x4f, 0x0c, 0x8f, 0xd3, 0xaa, 0x96, 0x2b, 0xe6,
0x3a, 0xb3, 0xea, 0xa9, 0x37, 0xa4, 0xa6, 0xf2, 0x79, 0xdd, 0x41, 0xff, 0xb1, 0xc8, 0x19, 0x6a,
0xff, 0xb1, 0x92, 0x8e, 0xd4, 0x6a, 0xaf, 0x26, 0xc1, 0xb8, 0x0f, 0xad, 0x22, 0x09, 0xa5, 0x4c,
0x52, 0x39, 0x65, 0xa5, 0x6d, 0x4c, 0x25, 0x35, 0xe4, 0xae, 0xd2, 0x56, 0x01, 0x5b, 0xc2, 0xad,
0xa2, 0x7c, 0x4f, 0x00, 0xeb, 0x62, 0x82, 0xda, 0x60, 0x52, 0x91, 0x4e, 0xad, 0xa4, 0x26, 0x3d,
0xa3, 0xa5, 0xb9, 0x36, 0xbb, 0x61, 0x45, 0x92, 0xc8, 0xad, 0xa2, 0x40, 0x88, 0xaa, 0x79, 0x02,
0x6b, 0x95, 0xd0, 0x5c, 0x8b, 0xf4, 0x59, 0x19, 0x11, 0x2d, 0xd2, 0x67, 0x46, 0xf5, 0xee, 0x79,
0x1a, 0x72, 0xc5, 0x05, 0x1c, 0x32, 0x3b, 0x0d, 0xf2, 0xe1, 0xf1, 0xfb, 0xce, 0xf6, 0xe1, 0x02,
0xfd, 0x3b, 0xcd, 0xa7, 0xff, 0x37, 0x00, 0x00, 0xff, 0xff, 0xe4, 0xec, 0x07, 0x7d, 0xcf, 0x46,
0x00, 0x00,
// 5789 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x7c, 0x4d, 0x90, 0x1c, 0xc9,
0x55, 0xb0, 0xaa, 0xa7, 0xe7, 0xa7, 0x5f, 0xf7, 0xf4, 0xcc, 0xe4, 0x8c, 0x46, 0xad, 0x5e, 0xad,
0x56, 0x5b, 0xde, 0xcf, 0x92, 0xe7, 0x5b, 0x34, 0xda, 0xb1, 0xbd, 0xac, 0x77, 0xc1, 0x46, 0x7f,
0xab, 0x59, 0x5b, 0x2b, 0x8f, 0x6b, 0xb4, 0x16, 0xd8, 0x40, 0xbb, 0xa6, 0x3b, 0xa7, 0xa7, 0xac,
0xea, 0xaa, 0x72, 0x55, 0xf5, 0xcc, 0xb6, 0x17, 0x45, 0xf0, 0x17, 0x9c, 0x70, 0x10, 0x04, 0x5c,
0xec, 0x08, 0x82, 0x08, 0x73, 0x81, 0x03, 0x47, 0x4e, 0x86, 0x1b, 0x27, 0x22, 0x08, 0x0e, 0x7b,
0x72, 0x70, 0x04, 0x0e, 0xe0, 0xe0, 0x42, 0x04, 0x17, 0x0e, 0x04, 0xf1, 0x5e, 0xfe, 0x54, 0x66,
0x55, 0xb5, 0x34, 0xfe, 0x81, 0x5b, 0xe7, 0xcb, 0x57, 0x2f, 0x5f, 0x66, 0xbe, 0xf7, 0xf2, 0xfd,
0x64, 0x36, 0xb4, 0xd2, 0x64, 0x78, 0x33, 0x49, 0xe3, 0x3c, 0x66, 0x8b, 0x61, 0x94, 0x26, 0xc3,
0xfe, 0x95, 0x71, 0x1c, 0x8f, 0x43, 0xbe, 0xeb, 0x27, 0xc1, 0xae, 0x1f, 0x45, 0x71, 0xee, 0xe7,
0x41, 0x1c, 0x65, 0x02, 0xc9, 0xfd, 0x06, 0x74, 0x1f, 0xf0, 0xe8, 0x90, 0xf3, 0x91, 0xc7, 0xbf,
0x35, 0xe5, 0x59, 0xce, 0xfe, 0x3f, 0x6c, 0xf8, 0xfc, 0xdb, 0x9c, 0x8f, 0x06, 0x89, 0x9f, 0x65,
0xc9, 0x49, 0xea, 0x67, 0xbc, 0xe7, 0x5c, 0x73, 0x6e, 0x74, 0xbc, 0x75, 0xd1, 0x71, 0xa0, 0xe1,
0xec, 0x55, 0xe8, 0x64, 0x88, 0xca, 0xa3, 0x3c, 0x8d, 0x93, 0x59, 0xaf, 0x41, 0x78, 0x6d, 0x84,
0xdd, 0x17, 0x20, 0x37, 0x84, 0x35, 0x3d, 0x42, 0x96, 0xc4, 0x51, 0xc6, 0xd9, 0x2d, 0xd8, 0x1a,
0x06, 0xc9, 0x09, 0x4f, 0x07, 0xf4, 0xf1, 0x24, 0xe2, 0x93, 0x38, 0x0a, 0x86, 0x3d, 0xe7, 0xda,
0xc2, 0x8d, 0x96, 0xc7, 0x44, 0x1f, 0x7e, 0xf1, 0xbe, 0xec, 0x61, 0xd7, 0x61, 0x8d, 0x47, 0x02,
0xce, 0x47, 0xf4, 0x95, 0x1c, 0xaa, 0x5b, 0x80, 0xf1, 0x03, 0xf7, 0x6f, 0x1d, 0xd8, 0x78, 0x2f,
0x0a, 0xf2, 0x27, 0x7e, 0x18, 0xf2, 0x5c, 0xcd, 0xe9, 0x3a, 0xac, 0x9d, 0x11, 0x80, 0xe6, 0x74,
0x16, 0xa7, 0x23, 0x39, 0xa3, 0xae, 0x00, 0x1f, 0x48, 0xe8, 0x5c, 0xce, 0x1a, 0x73, 0x39, 0xab,
0x5d, 0xae, 0x85, 0x39, 0xcb, 0x75, 0x1d, 0xd6, 0x52, 0x3e, 0x8c, 0x4f, 0x79, 0x3a, 0x1b, 0x9c,
0x05, 0xd1, 0x28, 0x3e, 0xeb, 0x35, 0xaf, 0x39, 0x37, 0x16, 0xbd, 0xae, 0x02, 0x3f, 0x21, 0xa8,
0xbb, 0x05, 0xcc, 0x9c, 0x85, 0x58, 0x37, 0x77, 0x0c, 0x9b, 0x1f, 0x44, 0x61, 0x3c, 0x7c, 0xfa,
0x13, 0xce, 0xae, 0x66, 0xf8, 0x46, 0xed, 0xf0, 0xdb, 0xb0, 0x65, 0x0f, 0x24, 0x19, 0xe0, 0x70,
0xf1, 0xee, 0x89, 0x1f, 0x8d, 0xb9, 0x22, 0xa9, 0x58, 0xf8, 0x14, 0xac, 0x0f, 0xa7, 0x69, 0xca,
0xa3, 0x0a, 0x0f, 0x6b, 0x12, 0xae, 0x99, 0x78, 0x15, 0x3a, 0x11, 0x3f, 0x2b, 0xd0, 0xa4, 0xc8,
0x44, 0xfc, 0x4c, 0xa1, 0xb8, 0x3d, 0xd8, 0x2e, 0x0f, 0x23, 0x19, 0xf8, 0x6e, 0x03, 0xda, 0x8f,
0x53, 0x3f, 0xca, 0xfc, 0x21, 0x4a, 0x31, 0xeb, 0xc1, 0x72, 0xfe, 0xe1, 0xe0, 0xc4, 0xcf, 0x4e,
0x68, 0xb8, 0x96, 0xa7, 0x9a, 0x6c, 0x1b, 0x96, 0xfc, 0x49, 0x3c, 0x8d, 0x72, 0x1a, 0x60, 0xc1,
0x93, 0x2d, 0xf6, 0x3a, 0x6c, 0x44, 0xd3, 0xc9, 0x60, 0x18, 0x47, 0xc7, 0x41, 0x3a, 0x11, 0xba,
0x40, 0xfb, 0xb5, 0xe8, 0x55, 0x3b, 0xd8, 0x55, 0x80, 0x23, 0x5c, 0x07, 0x31, 0x44, 0x93, 0x86,
0x30, 0x20, 0xcc, 0x85, 0x8e, 0x6c, 0xf1, 0x60, 0x7c, 0x92, 0xf7, 0x16, 0x89, 0x90, 0x05, 0x43,
0x1a, 0x79, 0x30, 0xe1, 0x83, 0x2c, 0xf7, 0x27, 0x49, 0x6f, 0x89, 0xb8, 0x31, 0x20, 0xd4, 0x1f,
0xe7, 0x7e, 0x38, 0x38, 0xe6, 0x3c, 0xeb, 0x2d, 0xcb, 0x7e, 0x0d, 0x61, 0x9f, 0x84, 0xee, 0x88,
0x67, 0xf9, 0xc0, 0x1f, 0x8d, 0x52, 0x9e, 0x65, 0x3c, 0xeb, 0xad, 0x90, 0x34, 0x96, 0xa0, 0xb8,
0x6a, 0x0f, 0x78, 0x6e, 0xac, 0x4e, 0x26, 0x77, 0xc7, 0x7d, 0x08, 0xcc, 0x00, 0xdf, 0xe3, 0xb9,
0x1f, 0x84, 0x19, 0x7b, 0x13, 0x3a, 0xb9, 0x81, 0x4c, 0xda, 0xd7, 0xde, 0x63, 0x37, 0xc9, 0x6c,
0xdc, 0x34, 0x3e, 0xf0, 0x2c, 0x3c, 0xf7, 0xbf, 0x1c, 0x68, 0x1f, 0xf2, 0x48, 0xef, 0x3d, 0x83,
0x26, 0x72, 0x22, 0xf7, 0x9b, 0x7e, 0xb3, 0x57, 0xa0, 0x4d, 0xdc, 0x65, 0x79, 0x1a, 0x44, 0x63,
0xda, 0x82, 0x96, 0x07, 0x08, 0x3a, 0x24, 0x08, 0x5b, 0x87, 0x05, 0x7f, 0x92, 0xd3, 0xc2, 0x2f,
0x78, 0xf8, 0x13, 0xe5, 0x22, 0xf1, 0x67, 0x13, 0x14, 0x21, 0xbd, 0xd8, 0x1d, 0xaf, 0x2d, 0x61,
0xfb, 0xb8, 0xda, 0x37, 0x61, 0xd3, 0x44, 0x51, 0xd4, 0x17, 0x89, 0xfa, 0x86, 0x81, 0x29, 0x07,
0xb9, 0x0e, 0x6b, 0x0a, 0x3f, 0x15, 0xcc, 0xd2, 0xf2, 0xb7, 0xbc, 0xae, 0x04, 0xab, 0x29, 0xdc,
0x80, 0xf5, 0xe3, 0x20, 0xf2, 0xc3, 0xc1, 0x30, 0xcc, 0x4f, 0x07, 0x23, 0x1e, 0xe6, 0x3e, 0x6d,
0xc4, 0xa2, 0xd7, 0x25, 0xf8, 0xdd, 0x30, 0x3f, 0xbd, 0x87, 0x50, 0xf7, 0x8f, 0x1d, 0xe8, 0x88,
0xc9, 0x4b, 0x5b, 0xf6, 0x1a, 0xac, 0xaa, 0x31, 0x78, 0x9a, 0xc6, 0xa9, 0x94, 0x43, 0x1b, 0xc8,
0x76, 0x60, 0x5d, 0x01, 0x92, 0x94, 0x07, 0x13, 0x7f, 0xcc, 0xa5, 0xe0, 0x57, 0xe0, 0x6c, 0xaf,
0xa0, 0x98, 0xc6, 0xd3, 0x5c, 0x58, 0x93, 0xf6, 0x5e, 0x47, 0x6e, 0x8c, 0x87, 0x30, 0xcf, 0x46,
0x71, 0xbf, 0xe3, 0x00, 0x43, 0xb6, 0x1e, 0xc7, 0xa2, 0x5b, 0xce, 0xab, 0xbc, 0xa6, 0xce, 0xb9,
0xd7, 0xb4, 0x31, 0x6f, 0x4d, 0x5f, 0x83, 0x25, 0x1a, 0x12, 0x95, 0x66, 0xa1, 0xc2, 0x96, 0xec,
0x73, 0xbf, 0xef, 0x40, 0x07, 0x55, 0x38, 0xe2, 0xe1, 0x41, 0x1c, 0x44, 0x39, 0xbb, 0x05, 0xec,
0x78, 0x1a, 0x8d, 0x82, 0x68, 0x3c, 0xc8, 0x3f, 0x0c, 0x46, 0x83, 0xa3, 0x19, 0x92, 0x20, 0x7e,
0xf6, 0x2f, 0x78, 0x35, 0x7d, 0xec, 0x75, 0x58, 0xb7, 0xa0, 0x59, 0x9e, 0x0a, 0xae, 0xf6, 0x2f,
0x78, 0x95, 0x1e, 0x54, 0xc4, 0x78, 0x9a, 0x27, 0xd3, 0x7c, 0x10, 0x44, 0x23, 0xfe, 0x21, 0xad,
0xd9, 0xaa, 0x67, 0xc1, 0xee, 0x74, 0xa1, 0x63, 0x7e, 0xe7, 0x7e, 0x1e, 0xd6, 0x1f, 0xa2, 0x86,
0x46, 0x41, 0x34, 0xbe, 0x2d, 0xd4, 0x08, 0xcd, 0x46, 0x32, 0x3d, 0x7a, 0xca, 0x67, 0x72, 0x1f,
0x65, 0x0b, 0x85, 0xfc, 0x24, 0xce, 0x72, 0xb9, 0x2e, 0xf4, 0xdb, 0xfd, 0x27, 0x07, 0xd6, 0x70,
0xd1, 0xdf, 0xf7, 0xa3, 0x99, 0x5a, 0xf1, 0x87, 0xd0, 0x41, 0x52, 0x8f, 0xe3, 0xdb, 0xc2, 0xf8,
0x08, 0xa5, 0xba, 0x21, 0x17, 0xa9, 0x84, 0x7d, 0xd3, 0x44, 0xc5, 0xf3, 0x72, 0xe6, 0x59, 0x5f,
0xa3, 0x1a, 0xe5, 0x7e, 0x3a, 0xe6, 0x39, 0x99, 0x25, 0x69, 0xa6, 0x40, 0x80, 0xee, 0xc6, 0xd1,
0x31, 0xbb, 0x06, 0x9d, 0xcc, 0xcf, 0x07, 0x09, 0x4f, 0x69, 0xd5, 0x48, 0x15, 0x16, 0x3c, 0xc8,
0xfc, 0xfc, 0x80, 0xa7, 0x77, 0x66, 0x39, 0xef, 0x7f, 0x01, 0x36, 0x2a, 0xa3, 0xa0, 0xf6, 0x15,
0x53, 0xc4, 0x9f, 0x6c, 0x0b, 0x16, 0x4f, 0xfd, 0x70, 0xca, 0xa5, 0xb5, 0x14, 0x8d, 0xb7, 0x1b,
0x6f, 0x39, 0xee, 0x27, 0x61, 0xbd, 0x60, 0x5b, 0x0a, 0x3d, 0x83, 0x26, 0xae, 0xa0, 0x24, 0x40,
0xbf, 0xdd, 0xdf, 0x72, 0x04, 0xe2, 0xdd, 0x38, 0xd0, 0x96, 0x07, 0x11, 0xd1, 0x40, 0x29, 0x44,
0xfc, 0x3d, 0xd7, 0x32, 0xff, 0xf4, 0x93, 0x75, 0xaf, 0xc3, 0x86, 0xc1, 0xc2, 0x73, 0x98, 0xfd,
0x8e, 0x03, 0x1b, 0x8f, 0xf8, 0x99, 0xdc, 0x75, 0xc5, 0xed, 0x5b, 0xd0, 0xcc, 0x67, 0x89, 0xf0,
0x76, 0xba, 0x7b, 0xaf, 0xc9, 0x4d, 0xab, 0xe0, 0xdd, 0x94, 0xcd, 0xc7, 0xb3, 0x84, 0x7b, 0xf4,
0x85, 0xfb, 0x79, 0x68, 0x1b, 0x40, 0x76, 0x09, 0x36, 0x9f, 0xbc, 0xf7, 0xf8, 0xd1, 0xfd, 0xc3,
0xc3, 0xc1, 0xc1, 0x07, 0x77, 0xbe, 0x74, 0xff, 0x57, 0x06, 0xfb, 0xb7, 0x0f, 0xf7, 0xd7, 0x2f,
0xb0, 0x6d, 0x60, 0x8f, 0xee, 0x1f, 0x3e, 0xbe, 0x7f, 0xcf, 0x82, 0x3b, 0x6e, 0x1f, 0x7a, 0x8f,
0xf8, 0xd9, 0x93, 0x20, 0x8f, 0x78, 0x96, 0xd9, 0xa3, 0xb9, 0x37, 0x81, 0x99, 0x2c, 0xc8, 0x59,
0xf5, 0x60, 0x59, 0x9a, 0x7e, 0x75, 0xf2, 0xc9, 0xa6, 0xfb, 0x49, 0x60, 0x87, 0xc1, 0x38, 0x7a,
0x9f, 0x67, 0x99, 0x3f, 0xd6, 0xa6, 0x60, 0x1d, 0x16, 0x26, 0xd9, 0x58, 0x5a, 0x00, 0xfc, 0xe9,
0x7e, 0x1a, 0x36, 0x2d, 0x3c, 0x49, 0xf8, 0x0a, 0xb4, 0xb2, 0x60, 0x1c, 0xf9, 0xf9, 0x34, 0xe5,
0x92, 0x74, 0x01, 0x70, 0xdf, 0x85, 0xad, 0xaf, 0xf2, 0x34, 0x38, 0x9e, 0xbd, 0x88, 0xbc, 0x4d,
0xa7, 0x51, 0xa6, 0x73, 0x1f, 0x2e, 0x96, 0xe8, 0xc8, 0xe1, 0x85, 0x20, 0xca, 0xed, 0x5a, 0xf1,
0x44, 0xc3, 0x50, 0xcb, 0x86, 0xa9, 0x96, 0xee, 0x07, 0xc0, 0xee, 0xc6, 0x51, 0xc4, 0x87, 0xf9,
0x01, 0xe7, 0x69, 0xe1, 0xc2, 0x16, 0x52, 0xd7, 0xde, 0xbb, 0x24, 0xf7, 0xb1, 0xac, 0xeb, 0x52,
0x1c, 0x19, 0x34, 0x13, 0x9e, 0x4e, 0x88, 0xf0, 0x8a, 0x47, 0xbf, 0xdd, 0x8b, 0xb0, 0x69, 0x91,
0x95, 0xde, 0xc7, 0x1b, 0x70, 0xf1, 0x5e, 0x90, 0x0d, 0xab, 0x03, 0xf6, 0x60, 0x39, 0x99, 0x1e,
0x0d, 0x0a, 0x9d, 0x52, 0x4d, 0x3c, 0x94, 0xcb, 0x9f, 0x48, 0x62, 0xbf, 0xe7, 0x40, 0x73, 0xff,
0xf1, 0xc3, 0xbb, 0xac, 0x0f, 0x2b, 0x41, 0x34, 0x8c, 0x27, 0x68, 0x76, 0xc5, 0xa4, 0x75, 0x7b,
0xae, 0xae, 0x5c, 0x81, 0x16, 0x59, 0x6b, 0xf4, 0x33, 0xa4, 0xb7, 0x59, 0x00, 0xd0, 0xc7, 0xe1,
0x1f, 0x26, 0x41, 0x4a, 0x4e, 0x8c, 0x72, 0x4d, 0x9a, 0x64, 0x11, 0xab, 0x1d, 0xee, 0x7f, 0x37,
0x61, 0x59, 0xda, 0x6a, 0x1a, 0x6f, 0x98, 0x07, 0xa7, 0x5c, 0x72, 0x22, 0x5b, 0x78, 0xca, 0xa5,
0x7c, 0x12, 0xe7, 0x7c, 0x60, 0x6d, 0x83, 0x0d, 0x44, 0xac, 0xa1, 0x20, 0x34, 0x48, 0xd0, 0xea,
0x13, 0x67, 0x2d, 0xcf, 0x06, 0xe2, 0x62, 0x21, 0x60, 0x10, 0x8c, 0x88, 0xa7, 0xa6, 0xa7, 0x9a,
0xb8, 0x12, 0x43, 0x3f, 0xf1, 0x87, 0x41, 0x3e, 0x93, 0xca, 0xad, 0xdb, 0x48, 0x3b, 0x8c, 0x87,
0x7e, 0x38, 0x38, 0xf2, 0x43, 0x3f, 0x1a, 0x72, 0xe9, 0x48, 0xd9, 0x40, 0xf4, 0x95, 0x24, 0x4b,
0x0a, 0x4d, 0xf8, 0x53, 0x25, 0x28, 0xfa, 0x5c, 0xc3, 0x78, 0x32, 0x09, 0x72, 0x74, 0xb1, 0x7a,
0x2b, 0xc2, 0x90, 0x14, 0x10, 0x9a, 0x89, 0x68, 0x9d, 0x89, 0xd5, 0x6b, 0x89, 0xd1, 0x2c, 0x20,
0x52, 0x39, 0xe6, 0x9c, 0x0c, 0xd2, 0xd3, 0xb3, 0x1e, 0x08, 0x2a, 0x05, 0x04, 0xf7, 0x61, 0x1a,
0x65, 0x3c, 0xcf, 0x43, 0x3e, 0xd2, 0x0c, 0xb5, 0x09, 0xad, 0xda, 0xc1, 0x6e, 0xc1, 0xa6, 0xf0,
0xfa, 0x32, 0x3f, 0x8f, 0xb3, 0x93, 0x20, 0x1b, 0x64, 0x3c, 0xca, 0x7b, 0x1d, 0xc2, 0xaf, 0xeb,
0x62, 0x6f, 0xc1, 0xa5, 0x12, 0x38, 0xe5, 0x43, 0x1e, 0x9c, 0xf2, 0x51, 0x6f, 0x95, 0xbe, 0x9a,
0xd7, 0xcd, 0xae, 0x41, 0x1b, 0x9d, 0xdd, 0x69, 0x32, 0xf2, 0xf1, 0x1c, 0xee, 0xd2, 0x3e, 0x98,
0x20, 0xf6, 0x06, 0xac, 0x26, 0x5c, 0x1c, 0x96, 0x27, 0x79, 0x38, 0xcc, 0x7a, 0x6b, 0x74, 0x92,
0xb5, 0xa5, 0x32, 0xa1, 0xe4, 0x7a, 0x36, 0x06, 0x0a, 0xe5, 0x30, 0x23, 0xf7, 0xc9, 0x9f, 0xf5,
0xd6, 0x49, 0xdc, 0x0a, 0x00, 0xe9, 0x48, 0x1a, 0x9c, 0xfa, 0x39, 0xef, 0x6d, 0x90, 0x6c, 0xa9,
0xa6, 0xfb, 0xa7, 0x0e, 0x6c, 0x3e, 0x0c, 0xb2, 0x5c, 0x0a, 0xa1, 0x36, 0xc7, 0xaf, 0x40, 0x5b,
0x88, 0xdf, 0x20, 0x8e, 0xc2, 0x99, 0x94, 0x48, 0x10, 0xa0, 0x2f, 0x47, 0xe1, 0x8c, 0x7d, 0x02,
0x56, 0x83, 0xc8, 0x44, 0x11, 0x3a, 0xdc, 0x51, 0x40, 0x42, 0x7a, 0x05, 0xda, 0xc9, 0xf4, 0x28,
0x0c, 0x86, 0x02, 0x65, 0x41, 0x50, 0x11, 0x20, 0x42, 0x40, 0x27, 0x49, 0x70, 0x22, 0x30, 0x9a,
0x84, 0xd1, 0x96, 0x30, 0x44, 0x71, 0xef, 0xc0, 0x96, 0xcd, 0xa0, 0x34, 0x56, 0x3b, 0xb0, 0x22,
0x65, 0x3b, 0xeb, 0xb5, 0x69, 0x7d, 0xba, 0x72, 0x7d, 0x24, 0xaa, 0xa7, 0xfb, 0xdd, 0x7f, 0x73,
0xa0, 0x89, 0x06, 0x60, 0xbe, 0xb1, 0x30, 0x6d, 0xfa, 0x82, 0x65, 0xd3, 0x29, 0x0e, 0x41, 0xaf,
0x48, 0x88, 0x84, 0x50, 0x1b, 0x03, 0x52, 0xf4, 0xa7, 0x7c, 0x78, 0x4a, 0xba, 0xa3, 0xfb, 0x11,
0x82, 0x9a, 0x85, 0x47, 0x27, 0x7d, 0x2d, 0x14, 0x47, 0xb7, 0x55, 0x1f, 0x7d, 0xb9, 0x5c, 0xf4,
0xd1, 0x77, 0x3d, 0x58, 0x0e, 0xa2, 0xa3, 0x78, 0x1a, 0x8d, 0x48, 0x49, 0x56, 0x3c, 0xd5, 0xc4,
0xcd, 0x4e, 0xc8, 0x93, 0x0a, 0x26, 0x5c, 0x6a, 0x47, 0x01, 0x70, 0x19, 0xba, 0x56, 0x19, 0x19,
0x3c, 0x7d, 0x8e, 0xbd, 0x09, 0x1b, 0x06, 0x4c, 0xae, 0xe0, 0xab, 0xb0, 0x98, 0x20, 0x40, 0x3a,
0x4a, 0x4a, 0xbc, 0xc8, 0x52, 0x8a, 0x1e, 0x77, 0x1d, 0xba, 0x0f, 0x78, 0xfe, 0x5e, 0x74, 0x1c,
0x2b, 0x4a, 0x3f, 0x5c, 0x80, 0x35, 0x0d, 0x92, 0x84, 0x6e, 0xc0, 0x5a, 0x30, 0xe2, 0x51, 0x1e,
0xe4, 0xb3, 0x81, 0xe5, 0xc1, 0x95, 0xc1, 0x78, 0xc2, 0xf8, 0x61, 0xe0, 0x67, 0xd2, 0x86, 0x89,
0x06, 0xdb, 0x83, 0x2d, 0x14, 0x7f, 0x25, 0xd1, 0x7a, 0x5b, 0x85, 0x23, 0x59, 0xdb, 0x87, 0x1a,
0x8b, 0x70, 0x29, 0x81, 0xfa, 0x13, 0x61, 0x69, 0xeb, 0xba, 0x70, 0xd5, 0x04, 0x25, 0x9c, 0xf2,
0xa2, 0x50, 0x11, 0x0d, 0xa8, 0x44, 0x93, 0x4b, 0xc2, 0x89, 0x2d, 0x47, 0x93, 0x46, 0x44, 0xba,
0x52, 0x89, 0x48, 0x6f, 0xc0, 0x5a, 0x36, 0x8b, 0x86, 0x7c, 0x34, 0xc8, 0x63, 0x1c, 0x37, 0x88,
0x68, 0x77, 0x56, 0xbc, 0x32, 0x98, 0x62, 0x67, 0x9e, 0xe5, 0x11, 0xcf, 0xc9, 0x74, 0xad, 0x78,
0xaa, 0x89, 0xa7, 0x00, 0xa1, 0x08, 0xa1, 0x6e, 0x79, 0xb2, 0x85, 0x47, 0xe5, 0x34, 0x0d, 0xb2,
0x5e, 0x87, 0xa0, 0xf4, 0x9b, 0x7d, 0x06, 0x2e, 0x1e, 0x61, 0xa4, 0x77, 0xc2, 0xfd, 0x11, 0x4f,
0x69, 0xf7, 0x45, 0xa0, 0x2b, 0x2c, 0x50, 0x7d, 0x27, 0x8e, 0x7d, 0xca, 0xd3, 0x2c, 0x88, 0x23,
0xb2, 0x3d, 0x2d, 0x4f, 0x35, 0xdd, 0x6f, 0xd3, 0x89, 0xae, 0x43, 0xf0, 0x0f, 0xc8, 0x1c, 0xb1,
0x97, 0xa0, 0x25, 0xe6, 0x98, 0x9d, 0xf8, 0xd2, 0xc9, 0x58, 0x21, 0xc0, 0xe1, 0x89, 0x8f, 0x0a,
0x6c, 0x2d, 0x9b, 0xc8, 0x69, 0xb4, 0x09, 0xb6, 0x2f, 0x56, 0xed, 0x35, 0xe8, 0xaa, 0xe0, 0x3e,
0x1b, 0x84, 0xfc, 0x38, 0x57, 0x01, 0x42, 0x34, 0x9d, 0xe0, 0x70, 0xd9, 0x43, 0x7e, 0x9c, 0xbb,
0x8f, 0x60, 0x43, 0xea, 0xed, 0x97, 0x13, 0xae, 0x86, 0xfe, 0x5c, 0xf9, 0x50, 0x13, 0x5e, 0xc5,
0xa6, 0xad, 0xe8, 0x14, 0xe5, 0x94, 0x4e, 0x3a, 0xd7, 0x03, 0x26, 0xbb, 0xef, 0x86, 0x71, 0xc6,
0x25, 0x41, 0x17, 0x3a, 0xc3, 0x30, 0xce, 0x54, 0x18, 0x22, 0xa7, 0x63, 0xc1, 0x70, 0x7d, 0xb2,
0xe9, 0x70, 0x88, 0x96, 0x40, 0xd8, 0x34, 0xd5, 0x74, 0xff, 0xdc, 0x81, 0x4d, 0xa2, 0xa6, 0x2c,
0x8c, 0xf6, 0x5d, 0xcf, 0xcf, 0x66, 0x67, 0x68, 0x86, 0x66, 0x5b, 0xb0, 0x78, 0x1c, 0xa7, 0x43,
0x2e, 0x47, 0x12, 0x8d, 0x1f, 0xdf, 0x1b, 0x6f, 0x56, 0xbc, 0xf1, 0x1f, 0x3a, 0xb0, 0x41, 0xac,
0x1e, 0xe6, 0x7e, 0x3e, 0xcd, 0xe4, 0xf4, 0x7f, 0x01, 0x56, 0x71, 0xaa, 0x5c, 0xa9, 0x93, 0x64,
0x74, 0x4b, 0x6b, 0x3e, 0x41, 0x05, 0xf2, 0xfe, 0x05, 0xcf, 0x46, 0x66, 0x5f, 0x80, 0x8e, 0x99,
0xa1, 0x21, 0x9e, 0xdb, 0x7b, 0x97, 0xd5, 0x2c, 0x2b, 0x92, 0xb3, 0x7f, 0xc1, 0xb3, 0x3e, 0x60,
0xef, 0x00, 0x90, 0xbb, 0x41, 0x64, 0x65, 0x68, 0x7d, 0xd9, 0x5e, 0x24, 0x63, 0xb3, 0xf6, 0x2f,
0x78, 0x06, 0xfa, 0x9d, 0x15, 0x58, 0x12, 0xe7, 0xa3, 0xfb, 0x00, 0x56, 0x2d, 0x4e, 0xad, 0x28,
0xa3, 0x23, 0xa2, 0x8c, 0x4a, 0x50, 0xda, 0xa8, 0x06, 0xa5, 0xee, 0xbf, 0x34, 0x80, 0xa1, 0xb4,
0x95, 0xb6, 0x13, 0x0f, 0xe8, 0x78, 0x64, 0xb9, 0x5b, 0x1d, 0xcf, 0x04, 0xb1, 0x9b, 0xc0, 0x8c,
0xa6, 0x8a, 0xdb, 0xc5, 0xb9, 0x51, 0xd3, 0x83, 0x06, 0x4e, 0xf8, 0x4a, 0x2a, 0x06, 0x96, 0x8e,
0xa5, 0xd8, 0xb7, 0xda, 0x3e, 0x3c, 0x1a, 0x92, 0x69, 0x76, 0x82, 0x0e, 0x84, 0x72, 0xc8, 0x54,
0xbb, 0x2c, 0x20, 0x4b, 0x2f, 0x14, 0x90, 0xe5, 0xb2, 0x80, 0x98, 0x2e, 0xc1, 0x8a, 0xe5, 0x12,
0xa0, 0xff, 0x35, 0x09, 0x22, 0xf2, 0x2b, 0x06, 0x13, 0x1c, 0x5d, 0xfa, 0x5f, 0x16, 0x90, 0xed,
0xc0, 0xba, 0xf4, 0xeb, 0x0a, 0xbf, 0x03, 0x68, 0x8d, 0x2b, 0x70, 0xf7, 0x63, 0x07, 0xd6, 0x71,
0x9d, 0x2d, 0x59, 0x7c, 0x1b, 0x48, 0x15, 0xce, 0x29, 0x8a, 0x16, 0xee, 0x4f, 0x2f, 0x89, 0x6f,
0x41, 0x8b, 0x08, 0xc6, 0x09, 0x8f, 0xa4, 0x20, 0xf6, 0x6c, 0x41, 0x2c, 0xac, 0xd0, 0xfe, 0x05,
0xaf, 0x40, 0x36, 0xc4, 0xf0, 0x1f, 0x1c, 0x68, 0x4b, 0x36, 0x7f, 0xe2, 0x58, 0xa2, 0x0f, 0x2b,
0x28, 0x91, 0x86, 0xc3, 0xae, 0xdb, 0x78, 0x9a, 0x4c, 0x30, 0x60, 0xc3, 0xe3, 0xd3, 0x8a, 0x23,
0xca, 0x60, 0x3c, 0x0b, 0xc9, 0xe0, 0x66, 0x83, 0x3c, 0x08, 0x07, 0xaa, 0x57, 0x26, 0x44, 0xeb,
0xba, 0xd0, 0xee, 0x64, 0xb9, 0x3f, 0xe6, 0xf2, 0x98, 0x13, 0x0d, 0x0c, 0x98, 0xe4, 0x84, 0x4a,
0xee, 0xa0, 0xfb, 0x37, 0x1d, 0xb8, 0x54, 0xe9, 0xd2, 0x15, 0x05, 0xe9, 0x20, 0x87, 0xc1, 0xe4,
0x28, 0xd6, 0xbe, 0xb6, 0x63, 0xfa, 0xce, 0x56, 0x17, 0x1b, 0xc3, 0x45, 0x75, 0x9e, 0xe3, 0x9a,
0x16, 0xa7, 0x77, 0x83, 0x1c, 0x91, 0x37, 0x6c, 0x19, 0x28, 0x0f, 0xa8, 0xe0, 0xa6, 0xe6, 0xd6,
0xd3, 0x63, 0x27, 0xd0, 0xd3, 0x8e, 0x83, 0x34, 0xf1, 0x86, 0x73, 0x81, 0x63, 0xbd, 0xfe, 0x82,
0xb1, 0xc8, 0x1e, 0x8d, 0xd4, 0x30, 0x73, 0xa9, 0xb1, 0x19, 0x5c, 0x55, 0x7d, 0x64, 0xc3, 0xab,
0xe3, 0x35, 0xcf, 0x35, 0xb7, 0x77, 0xf1, 0x63, 0x7b, 0xd0, 0x17, 0x10, 0x66, 0xdf, 0x84, 0xed,
0x33, 0x3f, 0xc8, 0x15, 0x5b, 0x86, 0x33, 0xb4, 0x48, 0x43, 0xee, 0xbd, 0x60, 0xc8, 0x27, 0xe2,
0x63, 0xeb, 0x60, 0x9b, 0x43, 0xb1, 0xff, 0x77, 0x0e, 0x74, 0x6d, 0x3a, 0x28, 0xa6, 0x52, 0xe1,
0x95, 0xe1, 0x53, 0xce, 0x5f, 0x09, 0x5c, 0x0d, 0x51, 0x1b, 0x75, 0x21, 0xaa, 0x19, 0x88, 0x2e,
0xbc, 0x28, 0x10, 0x6d, 0x9e, 0x2f, 0x10, 0x5d, 0xac, 0x0b, 0x44, 0xfb, 0xff, 0xe9, 0x00, 0xab,
0xca, 0x12, 0x7b, 0x20, 0x62, 0xe4, 0x88, 0x87, 0xd2, 0x26, 0xfd, 0xdc, 0xf9, 0xe4, 0x51, 0xad,
0x9d, 0xfa, 0x1a, 0x15, 0xc3, 0x34, 0x3a, 0xa6, 0x8b, 0xb4, 0xea, 0xd5, 0x75, 0x95, 0x42, 0xe3,
0xe6, 0x8b, 0x43, 0xe3, 0xc5, 0x17, 0x87, 0xc6, 0x4b, 0xe5, 0xd0, 0xb8, 0xff, 0xbb, 0x0e, 0x6c,
0xd6, 0x6c, 0xfa, 0xcf, 0x6e, 0xe2, 0xb8, 0x4d, 0x96, 0x2d, 0x68, 0xc8, 0x6d, 0x32, 0x81, 0xfd,
0xdf, 0x80, 0x55, 0x4b, 0xd0, 0x7f, 0x76, 0xe3, 0x97, 0xbd, 0x3c, 0x21, 0x67, 0x16, 0xac, 0xff,
0xa3, 0x06, 0xb0, 0xaa, 0xb2, 0xfd, 0x9f, 0xf2, 0x50, 0x5d, 0xa7, 0x85, 0x9a, 0x75, 0xfa, 0x5f,
0x3d, 0x07, 0x5e, 0x87, 0x0d, 0x59, 0x7e, 0x34, 0xb2, 0x24, 0x42, 0x62, 0xaa, 0x1d, 0xe8, 0xe7,
0xda, 0x79, 0x89, 0x15, 0xab, 0x6c, 0x65, 0x1c, 0x86, 0xa5, 0xf4, 0x84, 0xbb, 0x0d, 0x5b, 0xa2,
0x9c, 0x79, 0x47, 0x90, 0x52, 0xe7, 0xca, 0x9f, 0x38, 0x70, 0xb1, 0xd4, 0x51, 0xd4, 0x76, 0xc4,
0xd1, 0x61, 0x9f, 0x27, 0x36, 0x10, 0xf9, 0x97, 0x7a, 0x64, 0xf0, 0x2f, 0xa4, 0xad, 0xda, 0x81,
0xeb, 0x33, 0x8d, 0xaa, 0xf8, 0x62, 0xd5, 0xeb, 0xba, 0xdc, 0x4b, 0xa2, 0xe8, 0x1a, 0xf1, 0xb0,
0xc4, 0xf8, 0xb1, 0x28, 0x93, 0x9a, 0x1d, 0x45, 0x72, 0xd8, 0x66, 0x59, 0x35, 0xd1, 0x0b, 0xb4,
0x8e, 0x29, 0x9b, 0xdf, 0xda, 0x3e, 0xf7, 0xd7, 0x81, 0x7d, 0x65, 0xca, 0xd3, 0x19, 0x95, 0x78,
0x74, 0x76, 0xe6, 0x52, 0x39, 0x8d, 0xb1, 0x94, 0x4c, 0x8f, 0xbe, 0xc4, 0x67, 0xaa, 0xb4, 0xd7,
0x28, 0x4a, 0x7b, 0x2f, 0x03, 0x60, 0xf4, 0xa5, 0xeb, 0x46, 0x28, 0x0a, 0x18, 0xf6, 0x0a, 0x82,
0xee, 0x3b, 0xb0, 0x69, 0xd1, 0xd7, 0xab, 0xaf, 0x2a, 0x4d, 0xce, 0x73, 0x2a, 0x4d, 0xff, 0xee,
0xc0, 0xc2, 0x7e, 0x9c, 0x98, 0x59, 0x45, 0xc7, 0xce, 0x2a, 0x4a, 0x93, 0x3f, 0xd0, 0x16, 0x5d,
0x5a, 0x02, 0x0b, 0xc8, 0x76, 0xa0, 0xeb, 0x4f, 0x72, 0x8c, 0x8e, 0x8f, 0xe3, 0xf4, 0xcc, 0x4f,
0x47, 0x62, 0x4b, 0xee, 0x34, 0x7a, 0x8e, 0x57, 0xea, 0x61, 0x5b, 0xb0, 0xa0, 0x6d, 0x23, 0x21,
0x60, 0x13, 0xfd, 0x2b, 0x4a, 0xae, 0xce, 0x64, 0x60, 0x2f, 0x5b, 0xb8, 0xe3, 0xf6, 0xf7, 0xc2,
0xa3, 0x15, 0x12, 0x5e, 0xd7, 0x85, 0xc7, 0x0f, 0x9a, 0x4a, 0x42, 0x93, 0x19, 0x19, 0xd5, 0x76,
0xff, 0xd5, 0x81, 0x45, 0x5a, 0x01, 0xd4, 0x49, 0x21, 0x88, 0x54, 0x4b, 0xa6, 0x4c, 0xb0, 0x23,
0x74, 0xb2, 0x04, 0x66, 0xae, 0x55, 0x61, 0x6e, 0x68, 0xb6, 0xcd, 0x2a, 0xf3, 0x35, 0x68, 0x89,
0x96, 0x2e, 0xcb, 0x12, 0x4a, 0x01, 0x64, 0x57, 0xa1, 0x79, 0x12, 0x27, 0xca, 0x89, 0x00, 0x95,
0x08, 0x8c, 0x13, 0x8f, 0xe0, 0x05, 0x3f, 0x48, 0x4f, 0x30, 0x2f, 0x8e, 0x86, 0x32, 0x18, 0x0f,
0x47, 0x4d, 0xd6, 0x5c, 0x8c, 0x12, 0xd4, 0xdd, 0x81, 0xb5, 0x47, 0xf1, 0x88, 0x1b, 0xa9, 0x9f,
0xb9, 0x52, 0xe7, 0xfe, 0xa6, 0x03, 0x2b, 0x0a, 0x99, 0xdd, 0x80, 0x26, 0x9e, 0xf8, 0x25, 0x7f,
0x5e, 0x17, 0x00, 0x10, 0xcf, 0x23, 0x0c, 0x34, 0x91, 0x94, 0x18, 0x28, 0xbc, 0x3f, 0x95, 0x16,
0x28, 0x9c, 0x1b, 0xcd, 0x6e, 0xc9, 0x27, 0x28, 0x41, 0xdd, 0xbf, 0x70, 0x60, 0xd5, 0x1a, 0x03,
0xa3, 0xb8, 0xd0, 0xcf, 0x72, 0x99, 0x54, 0x95, 0xdb, 0x63, 0x82, 0xcc, 0x64, 0x60, 0xc3, 0x4e,
0x06, 0xea, 0x34, 0xd5, 0x82, 0x99, 0xa6, 0xba, 0x05, 0xad, 0xe2, 0x1e, 0x40, 0xd3, 0x32, 0x7d,
0x38, 0xa2, 0x2a, 0x6d, 0x14, 0x48, 0x48, 0x67, 0x18, 0x87, 0x71, 0x2a, 0xcb, 0xe4, 0xa2, 0xe1,
0xbe, 0x03, 0x6d, 0x03, 0x1f, 0xd9, 0x88, 0x78, 0x7e, 0x16, 0xa7, 0x4f, 0x55, 0x4e, 0x52, 0x36,
0x75, 0x05, 0xaf, 0x51, 0x54, 0xf0, 0xdc, 0xbf, 0x74, 0x60, 0x15, 0x65, 0x30, 0x88, 0xc6, 0x07,
0x71, 0x18, 0x0c, 0x67, 0xb4, 0xf7, 0x4a, 0xdc, 0x64, 0xfd, 0x5c, 0xc9, 0xa2, 0x0d, 0x46, 0xd9,
0x56, 0x41, 0x9c, 0x54, 0x44, 0xdd, 0x46, 0x4d, 0x45, 0x39, 0x3f, 0xf2, 0x33, 0x29, 0xfc, 0xf2,
0x2c, 0xb2, 0x80, 0xa8, 0x4f, 0x08, 0x48, 0xfd, 0x9c, 0x0f, 0x26, 0x41, 0x18, 0x06, 0x02, 0x57,
0x78, 0x2a, 0x75, 0x5d, 0xee, 0x0f, 0x1a, 0xd0, 0x96, 0x96, 0xf2, 0xfe, 0x68, 0x2c, 0xb2, 0xff,
0xd2, 0xdf, 0xd3, 0xe6, 0xc2, 0x80, 0xa8, 0x7e, 0xcb, 0x43, 0x34, 0x20, 0xe5, 0x6d, 0x5d, 0xa8,
0x6e, 0xeb, 0x15, 0x68, 0xa1, 0x78, 0xbd, 0x41, 0xae, 0xa8, 0xb8, 0x36, 0x52, 0x00, 0x54, 0xef,
0x1e, 0xf5, 0x2e, 0x16, 0xbd, 0x04, 0xb0, 0x9c, 0xcf, 0xa5, 0x92, 0xf3, 0xf9, 0x16, 0x74, 0x24,
0x19, 0x5a, 0x77, 0xb2, 0x0e, 0x85, 0x80, 0x5b, 0x7b, 0xe2, 0x59, 0x98, 0xea, 0xcb, 0x3d, 0xf5,
0xe5, 0xca, 0x8b, 0xbe, 0x54, 0x98, 0x54, 0x0c, 0x13, 0x6b, 0xf3, 0x20, 0xf5, 0x93, 0x13, 0x75,
0xfa, 0x8c, 0x74, 0x85, 0x9f, 0xc0, 0x6c, 0x07, 0x16, 0xf1, 0x33, 0x65, 0xad, 0xeb, 0x95, 0x4e,
0xa0, 0xb0, 0x1b, 0xb0, 0xc8, 0x47, 0x63, 0xae, 0x82, 0x2d, 0x66, 0x87, 0xbd, 0xb8, 0x47, 0x9e,
0x40, 0x40, 0x13, 0x80, 0xd0, 0x92, 0x09, 0xb0, 0x2d, 0xfd, 0x12, 0x36, 0xdf, 0x1b, 0xb9, 0x5b,
0xc0, 0x1e, 0x09, 0xa9, 0x35, 0x93, 0xc5, 0xbf, 0xb3, 0x00, 0x6d, 0x03, 0x8c, 0xda, 0x3c, 0x46,
0x86, 0x07, 0xa3, 0xc0, 0x9f, 0xf0, 0x9c, 0xa7, 0x52, 0x52, 0x4b, 0x50, 0xc4, 0xf3, 0x4f, 0xc7,
0x83, 0x78, 0x9a, 0x0f, 0x46, 0x7c, 0x9c, 0x72, 0x71, 0x46, 0xe2, 0x61, 0x60, 0x41, 0x11, 0x6f,
0xe2, 0x7f, 0x68, 0xe2, 0x09, 0x79, 0x28, 0x41, 0x55, 0xea, 0x57, 0xac, 0x51, 0xb3, 0x48, 0xfd,
0x8a, 0x15, 0x29, 0xdb, 0xa1, 0xc5, 0x1a, 0x3b, 0xf4, 0x26, 0x6c, 0x0b, 0x8b, 0x23, 0x75, 0x73,
0x50, 0x12, 0x93, 0x39, 0xbd, 0x6c, 0x07, 0xd6, 0x91, 0x67, 0x25, 0xe0, 0x59, 0xf0, 0x6d, 0x91,
0x8c, 0x71, 0xbc, 0x0a, 0x1c, 0x71, 0x51, 0x1d, 0x2d, 0x5c, 0x51, 0x1e, 0xab, 0xc0, 0x09, 0xd7,
0xff, 0xd0, 0xc6, 0x6d, 0x49, 0xdc, 0x12, 0xdc, 0x5d, 0x85, 0xf6, 0x61, 0x1e, 0x27, 0x6a, 0x53,
0xba, 0xd0, 0x11, 0x4d, 0x59, 0x0c, 0x7d, 0x09, 0x2e, 0x93, 0x14, 0x3d, 0x8e, 0x93, 0x38, 0x8c,
0xc7, 0xb3, 0xc3, 0xe9, 0x51, 0x36, 0x4c, 0x83, 0x04, 0x03, 0x13, 0xf7, 0xef, 0x1d, 0xd8, 0xb4,
0x7a, 0x65, 0xf6, 0xe6, 0x33, 0x42, 0xa4, 0x75, 0x15, 0x4b, 0x08, 0xde, 0x86, 0x61, 0x0e, 0x05,
0xa2, 0xc8, 0x9b, 0x7d, 0x20, 0x0b, 0x5b, 0xb7, 0x61, 0x4d, 0x71, 0xa6, 0x3e, 0x14, 0x52, 0xd8,
0xab, 0x4a, 0xa1, 0xfc, 0xbe, 0x2b, 0x3f, 0x50, 0x24, 0x7e, 0x51, 0xf8, 0xd5, 0x7c, 0x44, 0x73,
0x54, 0x61, 0x7c, 0x5f, 0x7d, 0x6f, 0x3a, 0xf3, 0x8a, 0x83, 0xa1, 0x06, 0x66, 0xee, 0xef, 0x3b,
0x00, 0x05, 0x77, 0x28, 0x18, 0x85, 0x49, 0x17, 0x57, 0x20, 0x0d, 0xf3, 0xfd, 0x2a, 0x74, 0x74,
0x01, 0xa3, 0x38, 0x25, 0xda, 0x0a, 0x86, 0x0e, 0xd7, 0x75, 0x58, 0x1b, 0x87, 0xf1, 0x11, 0x1d,
0xb1, 0x54, 0x5d, 0xcf, 0x64, 0x49, 0xb8, 0x2b, 0xc0, 0xef, 0x4a, 0x68, 0x71, 0xa4, 0x34, 0x8d,
0x23, 0xc5, 0xfd, 0x4e, 0x43, 0xa7, 0xbd, 0x8b, 0x39, 0xcf, 0xd5, 0x32, 0xb6, 0x57, 0x31, 0x8e,
0x73, 0xb2, 0xcc, 0x94, 0xb0, 0x3a, 0x78, 0x61, 0x3c, 0xfd, 0x0e, 0x74, 0x53, 0x61, 0x7d, 0x94,
0x69, 0x6a, 0x3e, 0xc7, 0x34, 0xad, 0xa6, 0xd6, 0xb9, 0xf3, 0x29, 0x58, 0xf7, 0x47, 0xa7, 0x3c,
0xcd, 0x03, 0x8a, 0x68, 0xe8, 0xd0, 0x17, 0x06, 0x75, 0xcd, 0x80, 0xd3, 0x59, 0x7c, 0x1d, 0xd6,
0x64, 0x19, 0x5e, 0x63, 0xca, 0xcb, 0x60, 0x05, 0x18, 0x11, 0xdd, 0x3f, 0x53, 0x19, 0x76, 0x7b,
0x0f, 0xe7, 0xaf, 0x88, 0x39, 0xbb, 0x46, 0x69, 0x76, 0x9f, 0x90, 0xd9, 0xee, 0x91, 0x0a, 0x9b,
0x64, 0xdd, 0x41, 0x00, 0x65, 0x75, 0xc2, 0x5e, 0xd2, 0xe6, 0x79, 0x96, 0xd4, 0xfd, 0xd8, 0x81,
0xe5, 0xfd, 0x38, 0xd9, 0x97, 0x15, 0x75, 0x52, 0x04, 0x7d, 0xc9, 0x45, 0x35, 0x4d, 0xaf, 0xb8,
0x51, 0xf1, 0x8a, 0xab, 0x67, 0xed, 0x6a, 0xf9, 0xac, 0xfd, 0x25, 0x78, 0x89, 0x82, 0xf6, 0x34,
0x4e, 0xe2, 0x14, 0x95, 0xd1, 0x0f, 0xc5, 0xc1, 0x1a, 0x47, 0xf9, 0x89, 0x32, 0x63, 0xcf, 0x43,
0xa1, 0xe8, 0x28, 0xcc, 0x4f, 0x07, 0xc2, 0x19, 0x96, 0xbe, 0x81, 0xb0, 0x6e, 0xd5, 0x0e, 0xf7,
0x73, 0xd0, 0x22, 0xe7, 0x96, 0xa6, 0xf5, 0x3a, 0xb4, 0x4e, 0xe2, 0x64, 0x70, 0x12, 0x44, 0xb9,
0x52, 0xee, 0x6e, 0xe1, 0x75, 0xee, 0xd3, 0x82, 0x68, 0x04, 0xf7, 0x47, 0x0b, 0xb0, 0xfc, 0x5e,
0x74, 0x1a, 0x07, 0x43, 0x4a, 0xc6, 0x4f, 0xf8, 0x24, 0x56, 0x57, 0x7e, 0xf0, 0x37, 0x2e, 0x05,
0x95, 0xbf, 0x93, 0x5c, 0x66, 0xd3, 0x55, 0x13, 0x8f, 0xfb, 0xb4, 0xb8, 0x96, 0x27, 0x54, 0xc7,
0x80, 0xa0, 0x63, 0x9f, 0x9a, 0x77, 0x12, 0x65, 0xab, 0xb8, 0x33, 0xb5, 0x68, 0xdc, 0x99, 0xa2,
0xd2, 0x8d, 0xa8, 0xec, 0x93, 0x7c, 0xad, 0x78, 0xaa, 0x49, 0x81, 0x48, 0xca, 0x45, 0xb2, 0x85,
0x1c, 0x87, 0x65, 0x19, 0x88, 0x98, 0x40, 0x74, 0x2e, 0xc4, 0x07, 0x02, 0x47, 0x18, 0x5f, 0x13,
0x84, 0xce, 0x56, 0xf9, 0x5a, 0x63, 0x4b, 0xc8, 0x7c, 0x09, 0x8c, 0x16, 0x7a, 0xc4, 0xb5, 0x21,
0x15, 0x73, 0x00, 0x71, 0xed, 0xb0, 0x0c, 0x37, 0xc2, 0x17, 0x71, 0x43, 0x41, 0x85, 0x2f, 0x28,
0x28, 0x7e, 0x18, 0x1e, 0xf9, 0xc3, 0xa7, 0x74, 0xd9, 0x94, 0x2e, 0x24, 0xb4, 0x3c, 0x1b, 0x88,
0x5c, 0x1b, 0xbb, 0x49, 0xc5, 0xbf, 0xa6, 0x67, 0x82, 0xd8, 0x1e, 0xb4, 0x29, 0x64, 0x93, 0xfb,
0xd9, 0xa5, 0xfd, 0x5c, 0x37, 0x63, 0x3a, 0xda, 0x51, 0x13, 0xc9, 0x2c, 0x10, 0xac, 0xd9, 0x77,
0x06, 0xbe, 0x0a, 0xec, 0xf6, 0x68, 0x24, 0xf7, 0x5b, 0x87, 0x8c, 0xc5, 0x4e, 0x39, 0xd6, 0x4e,
0xd5, 0xac, 0x58, 0xa3, 0x76, 0xc5, 0xdc, 0xfb, 0xd0, 0x3e, 0x30, 0x6e, 0x47, 0x92, 0x68, 0xa8,
0x7b, 0x91, 0x52, 0x9c, 0x0c, 0x88, 0x31, 0x60, 0xc3, 0x1c, 0xd0, 0xfd, 0x79, 0x60, 0x0f, 0x83,
0x2c, 0xd7, 0xfc, 0x15, 0xd7, 0x31, 0x55, 0x80, 0x5d, 0xdc, 0x68, 0x68, 0x4b, 0x18, 0xdd, 0x34,
0xb8, 0x2d, 0xae, 0x42, 0x94, 0x27, 0xb6, 0x03, 0x2b, 0x81, 0x00, 0x95, 0x35, 0x41, 0x61, 0xea,
0x7e, 0xf4, 0xd7, 0x24, 0xd0, 0x3a, 0x45, 0x7f, 0xe0, 0xc0, 0xb2, 0x9c, 0x1a, 0x7a, 0x1b, 0x95,
0x7b, 0xa1, 0x2d, 0xcf, 0x82, 0xd5, 0xdf, 0x08, 0xac, 0xca, 0xf0, 0x42, 0x9d, 0x0c, 0x33, 0x68,
0x26, 0x7e, 0x7e, 0x42, 0x01, 0x4a, 0xcb, 0xa3, 0xdf, 0x6c, 0x5d, 0x04, 0xcd, 0x42, 0x57, 0x28,
0x60, 0xae, 0xbb, 0x14, 0x2b, 0x4c, 0x72, 0x05, 0x8e, 0x93, 0xa2, 0xcb, 0x03, 0x02, 0xae, 0x6b,
0x02, 0xf2, 0x62, 0x46, 0x01, 0x2e, 0xd6, 0x4b, 0x92, 0x28, 0xaf, 0x97, 0x44, 0xf5, 0x74, 0xbf,
0xdb, 0x87, 0xde, 0x3d, 0x1e, 0xf2, 0x9c, 0xdf, 0x0e, 0xc3, 0x32, 0xfd, 0x97, 0xe0, 0x72, 0x4d,
0x9f, 0x74, 0x5a, 0xde, 0x85, 0x8d, 0x7b, 0xfc, 0x68, 0x3a, 0x7e, 0xc8, 0x4f, 0x8b, 0xc2, 0x1d,
0x83, 0x66, 0x76, 0x12, 0x9f, 0xc9, 0xbd, 0xa5, 0xdf, 0xec, 0x65, 0x80, 0x10, 0x71, 0x06, 0x59,
0xc2, 0x87, 0xea, 0x2e, 0x1c, 0x41, 0x0e, 0x13, 0x3e, 0x74, 0xdf, 0x04, 0x66, 0xd2, 0x91, 0x53,
0x40, 0x3b, 0x30, 0x3d, 0x1a, 0x64, 0xb3, 0x2c, 0xe7, 0x13, 0x75, 0xc9, 0xcf, 0x04, 0xb9, 0xd7,
0xa1, 0x73, 0xe0, 0xcf, 0x3c, 0xfe, 0x2d, 0x79, 0x35, 0x17, 0x63, 0x63, 0x7f, 0x86, 0xa2, 0xac,
0x63, 0x63, 0xea, 0x76, 0xff, 0xa3, 0x01, 0x4b, 0x02, 0x13, 0xa9, 0x8e, 0x78, 0x96, 0x07, 0x91,
0x28, 0x5a, 0x49, 0xaa, 0x06, 0xa8, 0x22, 0x1b, 0x8d, 0x1a, 0xd9, 0x90, 0xde, 0xaa, 0xba, 0x57,
0x24, 0x85, 0xc0, 0x82, 0xa1, 0x5b, 0x53, 0x5c, 0x06, 0x10, 0xc1, 0x59, 0x01, 0x28, 0x25, 0x4b,
0x0a, 0x6b, 0x23, 0xf8, 0x53, 0x42, 0x2b, 0xc5, 0xc1, 0x04, 0xd5, 0xda, 0xb4, 0x65, 0x21, 0x35,
0x15, 0x9b, 0x56, 0xb1, 0x5d, 0x2b, 0xe7, 0xb0, 0x5d, 0xc2, 0x85, 0x7d, 0x9e, 0xed, 0x82, 0x73,
0xd8, 0x2e, 0x97, 0xc1, 0xfa, 0xbb, 0x9c, 0x7b, 0x1c, 0x4f, 0x45, 0x25, 0x4e, 0xdf, 0x75, 0x60,
0x5d, 0x1e, 0xe8, 0xba, 0x8f, 0xbd, 0x6a, 0x9d, 0xfe, 0x4e, 0x5d, 0x3d, 0xe2, 0x35, 0x58, 0xa5,
0x33, 0x59, 0x67, 0x85, 0x64, 0x0a, 0xcb, 0x02, 0xe2, 0x3c, 0x54, 0x86, 0x7d, 0x12, 0x84, 0x72,
0x53, 0x4c, 0x90, 0x4a, 0x2c, 0x61, 0x7c, 0x4c, 0x5b, 0xe2, 0x78, 0xba, 0xed, 0xfe, 0xb5, 0x03,
0x1b, 0x06, 0xc3, 0x52, 0x0a, 0xdf, 0x01, 0x75, 0x59, 0x40, 0x24, 0x8f, 0x84, 0x32, 0x5d, 0xb2,
0x9d, 0x93, 0xe2, 0x33, 0x0b, 0x99, 0x36, 0xd3, 0x9f, 0x11, 0x83, 0xd9, 0x74, 0x22, 0x3d, 0x10,
0x13, 0x84, 0x82, 0x74, 0xc6, 0xf9, 0x53, 0x8d, 0xb2, 0x40, 0x28, 0x16, 0x8c, 0x6a, 0xc1, 0xe8,
0x4b, 0x68, 0x24, 0x71, 0xfd, 0xc9, 0x06, 0xba, 0xff, 0xe8, 0xc0, 0xa6, 0x70, 0x0a, 0xa5, 0xcb,
0xad, 0xaf, 0x66, 0x2e, 0x09, 0x2f, 0x58, 0x68, 0xe4, 0xfe, 0x05, 0x4f, 0xb6, 0xd9, 0x67, 0xcf,
0xe9, 0xc8, 0xea, 0x3b, 0x00, 0x73, 0xf6, 0x62, 0xa1, 0x6e, 0x2f, 0x9e, 0xb3, 0xd2, 0x75, 0xc9,
0x92, 0xc5, 0xda, 0x64, 0xc9, 0x9d, 0x65, 0x58, 0xcc, 0x86, 0x71, 0xc2, 0xdd, 0x6d, 0xd8, 0xb2,
0x27, 0x27, 0x4d, 0xd0, 0xf7, 0x1d, 0xe8, 0xbd, 0x2b, 0x52, 0x87, 0x41, 0x34, 0xde, 0x0f, 0xb2,
0x3c, 0x4e, 0xf5, 0x5d, 0xf4, 0xab, 0x00, 0x59, 0xee, 0xa7, 0xb9, 0xb8, 0xa3, 0x25, 0xd3, 0x1c,
0x05, 0x04, 0x79, 0xe4, 0xd1, 0x48, 0xf4, 0x8a, 0xbd, 0xd1, 0x6d, 0xdc, 0x18, 0xba, 0x9f, 0x30,
0x88, 0x8f, 0x8f, 0x33, 0xae, 0xdd, 0x56, 0x13, 0x86, 0x91, 0x2f, 0x6a, 0x3c, 0xc6, 0x7a, 0xfc,
0x94, 0x4c, 0xad, 0xf0, 0x07, 0x4b, 0x50, 0xf7, 0xaf, 0x1c, 0x58, 0x2b, 0x98, 0xbc, 0x8f, 0x40,
0xdb, 0x3a, 0x08, 0xd6, 0x0c, 0xeb, 0xa0, 0x12, 0x30, 0xc1, 0x68, 0x10, 0x44, 0x92, 0x37, 0x03,
0x42, 0x1a, 0x2b, 0x5b, 0xf1, 0x54, 0xdd, 0x87, 0x33, 0x41, 0xa2, 0xd8, 0x9d, 0xe3, 0xd7, 0xe2,
0x32, 0x9c, 0x6c, 0xd1, 0x15, 0xbb, 0x49, 0x4e, 0x5f, 0x2d, 0x09, 0x87, 0x58, 0x36, 0xd5, 0xf9,
0xb4, 0x4c, 0x50, 0xfc, 0xe9, 0xfe, 0x81, 0x03, 0x97, 0x6b, 0x16, 0x57, 0x6a, 0xc6, 0x3d, 0xd8,
0x38, 0xd6, 0x9d, 0x6a, 0x01, 0x84, 0x7a, 0x6c, 0x4b, 0x29, 0x2a, 0x4d, 0xda, 0xab, 0x7e, 0x80,
0xee, 0x31, 0xe5, 0x8d, 0xc4, 0x92, 0x5a, 0xf7, 0x44, 0xaa, 0x1d, 0x7b, 0x7f, 0xb8, 0x00, 0x5d,
0x51, 0xaa, 0x10, 0xcf, 0xb3, 0x78, 0xca, 0xde, 0x87, 0x65, 0xf9, 0xbc, 0x8e, 0x5d, 0x94, 0xc3,
0xda, 0x0f, 0xfa, 0xfa, 0xdb, 0x65, 0xb0, 0x94, 0x9d, 0xcd, 0xdf, 0xfe, 0xf8, 0x9f, 0xff, 0xa8,
0xb1, 0xca, 0xda, 0xbb, 0xa7, 0x6f, 0xec, 0x8e, 0x79, 0x94, 0x21, 0x8d, 0x5f, 0x05, 0x28, 0x1e,
0x9e, 0xb1, 0x9e, 0x76, 0x32, 0x4a, 0x2f, 0xea, 0xfa, 0x97, 0x6b, 0x7a, 0x24, 0xdd, 0xcb, 0x44,
0x77, 0xd3, 0xed, 0x22, 0xdd, 0x20, 0x0a, 0x72, 0xf1, 0x0a, 0xed, 0x6d, 0x67, 0x87, 0x8d, 0xa0,
0x63, 0xbe, 0x2b, 0x63, 0x2a, 0x64, 0xae, 0x79, 0xd5, 0xd6, 0x7f, 0xa9, 0xb6, 0x4f, 0xe5, 0x0b,
0x68, 0x8c, 0x8b, 0xee, 0x3a, 0x8e, 0x31, 0x25, 0x8c, 0x62, 0x94, 0x10, 0xba, 0xf6, 0xf3, 0x31,
0x76, 0xc5, 0x50, 0xeb, 0xca, 0xe3, 0xb5, 0xfe, 0xcb, 0x73, 0x7a, 0xe5, 0x58, 0x2f, 0xd3, 0x58,
0x97, 0x5c, 0x86, 0x63, 0x0d, 0x09, 0x47, 0x3d, 0x5e, 0x7b, 0xdb, 0xd9, 0xd9, 0xfb, 0xde, 0xcb,
0xd0, 0xd2, 0x49, 0x2e, 0xf6, 0x4d, 0x58, 0xb5, 0x6a, 0x49, 0x4c, 0x4d, 0xa3, 0xae, 0xf4, 0xd4,
0xbf, 0x52, 0xdf, 0x29, 0x07, 0xbe, 0x4a, 0x03, 0xf7, 0xd8, 0x36, 0x0e, 0x2c, 0x8b, 0x31, 0xbb,
0x54, 0x41, 0x13, 0x17, 0xf8, 0x9e, 0x8a, 0x79, 0x16, 0xf5, 0x1f, 0x6b, 0x9e, 0x95, 0x7a, 0x91,
0x35, 0xcf, 0x6a, 0xd1, 0xc8, 0xbd, 0x42, 0xc3, 0x6d, 0xb3, 0x2d, 0x73, 0x38, 0x9d, 0x7c, 0xe2,
0x74, 0xe5, 0xd2, 0x7c, 0x5d, 0xc6, 0x5e, 0xd6, 0x82, 0x55, 0xf7, 0xea, 0x4c, 0x8b, 0x48, 0xf5,
0xe9, 0x99, 0xdb, 0xa3, 0xa1, 0x18, 0xa3, 0xed, 0x33, 0x1f, 0x97, 0xb1, 0xaf, 0x43, 0x4b, 0xbf,
0xe0, 0x60, 0x97, 0x8c, 0x67, 0x33, 0xe6, 0xb3, 0x92, 0x7e, 0xaf, 0xda, 0x51, 0x27, 0x18, 0x26,
0x65, 0x14, 0x8c, 0x87, 0x70, 0x51, 0xba, 0xc4, 0x47, 0xfc, 0xc7, 0x99, 0x49, 0xcd, 0x9b, 0xb8,
0x5b, 0x0e, 0x7b, 0x07, 0x56, 0xd4, 0xc3, 0x18, 0xb6, 0x5d, 0xff, 0xc0, 0xa7, 0x7f, 0xa9, 0x02,
0x97, 0xd6, 0xe3, 0x36, 0x40, 0xf1, 0xa8, 0x43, 0xeb, 0x59, 0xe5, 0xa9, 0x89, 0x5e, 0xc4, 0x9a,
0x17, 0x20, 0x63, 0x7a, 0xc2, 0x62, 0xbf, 0x19, 0x61, 0xaf, 0x14, 0xf8, 0xb5, 0xaf, 0x49, 0x9e,
0x43, 0xd0, 0xdd, 0xa6, 0xb5, 0x5b, 0x67, 0xa4, 0xb8, 0x11, 0x3f, 0x53, 0x97, 0x8f, 0xef, 0x41,
0xdb, 0x78, 0x28, 0xc2, 0x14, 0x85, 0xea, 0x23, 0x93, 0x7e, 0xbf, 0xae, 0x4b, 0xb2, 0xfb, 0x45,
0x58, 0xb5, 0x5e, 0x7c, 0x68, 0xcd, 0xa8, 0x7b, 0x4f, 0xa2, 0x35, 0xa3, 0xfe, 0x91, 0xc8, 0xd7,
0xa0, 0x6d, 0xbc, 0xcf, 0x60, 0xc6, 0xa5, 0xab, 0xd2, 0xcb, 0x0c, 0xcd, 0x51, 0xdd, 0x73, 0x8e,
0x2d, 0x9a, 0x6f, 0xd7, 0x6d, 0xe1, 0x7c, 0xe9, 0x06, 0x2e, 0x0a, 0xc9, 0x37, 0xa1, 0x6b, 0xbf,
0xd8, 0xd0, 0x5a, 0x55, 0xfb, 0xf6, 0x43, 0x6b, 0xd5, 0x9c, 0x67, 0x1e, 0x52, 0x20, 0x77, 0x36,
0xf5, 0x20, 0xbb, 0x1f, 0xc9, 0x12, 0xcf, 0x33, 0xf6, 0x15, 0x34, 0x1d, 0xf2, 0x4a, 0x34, 0x2b,
0xde, 0xa9, 0xd8, 0x17, 0xa7, 0xb5, 0xb4, 0x57, 0x6e, 0x4f, 0xbb, 0x1b, 0x44, 0xbc, 0xcd, 0x8a,
0x19, 0x88, 0xf3, 0x80, 0xae, 0x46, 0x1b, 0xe7, 0x81, 0x79, 0x7b, 0xda, 0x38, 0x0f, 0xac, 0x1b,
0xd4, 0xe5, 0xf3, 0x20, 0x0f, 0x90, 0x46, 0x04, 0x6b, 0xa5, 0x5b, 0x07, 0x5a, 0x59, 0xea, 0xaf,
0x69, 0xf5, 0xaf, 0x3e, 0xff, 0xb2, 0x82, 0x6d, 0x66, 0x94, 0x79, 0xd9, 0x55, 0xb7, 0xea, 0x7e,
0x0d, 0x3a, 0xe6, 0x4d, 0x7b, 0x7d, 0x42, 0xd4, 0xbc, 0x0f, 0xd0, 0x27, 0x44, 0xdd, 0xd5, 0x7c,
0xb5, 0xb9, 0xac, 0x63, 0x0e, 0xc3, 0xbe, 0x06, 0x6b, 0xc6, 0x35, 0x9b, 0xc3, 0x59, 0x34, 0xd4,
0xc2, 0x53, 0xbd, 0x84, 0xd9, 0xaf, 0xf3, 0x06, 0xdd, 0x4b, 0x44, 0x78, 0xc3, 0xb5, 0x08, 0xa3,
0xe0, 0xdc, 0x85, 0xb6, 0x79, 0x85, 0xe7, 0x39, 0x74, 0x2f, 0x19, 0x5d, 0xe6, 0x7d, 0xc4, 0x5b,
0x0e, 0xfb, 0x9e, 0x03, 0x1d, 0xeb, 0x42, 0x8c, 0x95, 0x55, 0x2e, 0xd1, 0xe9, 0x99, 0x7d, 0x26,
0x21, 0xd7, 0x23, 0x26, 0x1f, 0xee, 0x7c, 0xd1, 0x5a, 0xe4, 0x8f, 0xac, 0xa8, 0xe2, 0x66, 0xf9,
0x11, 0xe5, 0xb3, 0x32, 0x82, 0x79, 0x51, 0xf5, 0xd9, 0x2d, 0x87, 0xbd, 0x2d, 0x1e, 0xfe, 0xaa,
0x2c, 0x02, 0x33, 0x8c, 0x5b, 0x79, 0xc9, 0xcc, 0x37, 0xb2, 0x37, 0x9c, 0x5b, 0x0e, 0xfb, 0x86,
0x78, 0x2b, 0x29, 0xbf, 0xa5, 0x95, 0x3f, 0xef, 0xf7, 0xee, 0x6b, 0x34, 0x9b, 0xab, 0xee, 0x65,
0x6b, 0x36, 0x65, 0xeb, 0x7e, 0x5b, 0x70, 0x27, 0x9f, 0xc0, 0x16, 0x66, 0xaa, 0xf2, 0x2c, 0x76,
0x3e, 0x93, 0x99, 0x60, 0x52, 0xa2, 0x5b, 0xe2, 0x71, 0x4e, 0x32, 0xee, 0x2d, 0xe2, 0x75, 0xc7,
0xfd, 0x7f, 0x73, 0x79, 0xdd, 0xcd, 0x78, 0x34, 0xca, 0x63, 0x8a, 0x15, 0x91, 0xef, 0x03, 0x80,
0x22, 0x95, 0xc5, 0x4a, 0x79, 0x1d, 0x6d, 0xaf, 0xab, 0xd9, 0x2e, 0x5b, 0x12, 0x55, 0xfa, 0x07,
0x29, 0x7e, 0x5d, 0x28, 0x91, 0xc4, 0xcf, 0xf4, 0x1c, 0xaa, 0x29, 0xa9, 0x7e, 0xbf, 0xae, 0xab,
0x4e, 0x85, 0x14, 0x7d, 0xf6, 0x01, 0xac, 0x3e, 0x8c, 0xe3, 0xa7, 0xd3, 0x44, 0x27, 0x5b, 0xed,
0xcc, 0xca, 0xbe, 0x9f, 0x9d, 0xf4, 0x4b, 0xb3, 0x70, 0xaf, 0x11, 0xa9, 0x3e, 0xeb, 0x19, 0xa4,
0x76, 0x3f, 0x2a, 0x12, 0x69, 0xcf, 0x98, 0x0f, 0x1b, 0xfa, 0x6c, 0xd6, 0x8c, 0xf7, 0x6d, 0x32,
0x66, 0x3e, 0xab, 0x32, 0x84, 0xe5, 0x2d, 0x29, 0x6e, 0x77, 0x33, 0x45, 0xf3, 0x96, 0xc3, 0x0e,
0xa0, 0x73, 0x8f, 0x0f, 0xe3, 0x11, 0x97, 0xb9, 0x90, 0xcd, 0x82, 0x71, 0x9d, 0x44, 0xe9, 0xaf,
0x5a, 0x40, 0xdb, 0x5a, 0x25, 0xfe, 0x2c, 0xe5, 0xdf, 0xda, 0xfd, 0x48, 0x66, 0x59, 0x9e, 0x29,
0x6b, 0xa5, 0x32, 0x43, 0x96, 0xb5, 0x2a, 0xa5, 0x92, 0x2c, 0x6b, 0x55, 0x49, 0x25, 0x59, 0x4b,
0xad, 0x32, 0x53, 0x2c, 0x84, 0x8d, 0x4a, 0xf6, 0x49, 0x9f, 0xf0, 0xf3, 0x72, 0x56, 0xfd, 0x6b,
0xf3, 0x11, 0xec, 0xd1, 0x76, 0xec, 0xd1, 0x0e, 0x61, 0xf5, 0x1e, 0x17, 0x8b, 0x25, 0x2a, 0xba,
0x7d, 0xdb, 0xfc, 0x99, 0xd5, 0xdf, 0xb2, 0x69, 0xa4, 0x3e, 0xfb, 0x38, 0xa2, 0x72, 0x2a, 0xfb,
0x3a, 0xb4, 0x1f, 0xf0, 0x5c, 0x95, 0x70, 0xb5, 0x9f, 0x54, 0xaa, 0xe9, 0xf6, 0x6b, 0x2a, 0xc0,
0xb6, 0xcc, 0x10, 0xb5, 0x5d, 0x3e, 0x1a, 0x73, 0x61, 0xa4, 0x06, 0xc1, 0xe8, 0x19, 0xfb, 0x65,
0x22, 0xae, 0x6f, 0x7d, 0x6c, 0x1b, 0x95, 0x3f, 0x93, 0xf8, 0x5a, 0x09, 0x5e, 0x47, 0x39, 0x8a,
0x47, 0xdc, 0x38, 0x98, 0x23, 0x68, 0x1b, 0x57, 0x92, 0xb4, 0x02, 0x55, 0xaf, 0x41, 0x69, 0x05,
0xaa, 0xb9, 0xc1, 0xe4, 0xde, 0xa0, 0x71, 0x5c, 0x76, 0xad, 0x18, 0x47, 0xdc, 0x5a, 0x2a, 0x46,
0xda, 0xfd, 0xc8, 0x9f, 0xe4, 0xcf, 0xd8, 0x13, 0x7a, 0xe3, 0x64, 0x96, 0xa9, 0x0b, 0x3f, 0xad,
0x5c, 0xd1, 0xd6, 0x8b, 0x65, 0x74, 0xd9, 0xbe, 0x9b, 0x18, 0x8a, 0xce, 0xef, 0xcf, 0x02, 0x1c,
0xe6, 0x71, 0x72, 0xcf, 0xe7, 0x93, 0x38, 0x2a, 0x2c, 0x6e, 0x51, 0x8a, 0x2d, 0xac, 0x98, 0x51,
0x8f, 0x65, 0x4f, 0x0c, 0x4f, 0xd9, 0xaa, 0xf2, 0x2b, 0xe1, 0x9a, 0x5b, 0xad, 0xd5, 0x0b, 0x52,
0x53, 0xb1, 0xbd, 0xe5, 0xa0, 0xdf, 0x5b, 0xe4, 0x3a, 0xb5, 0xdf, 0x5b, 0x49, 0xa3, 0x6a, 0xb3,
0x57, 0x93, 0x18, 0x3d, 0x80, 0x56, 0x91, 0x3c, 0x53, 0x47, 0x69, 0x39, 0xd5, 0xa6, 0xcf, 0xc6,
0x4a, 0x4a, 0xcb, 0x5d, 0xa7, 0xa5, 0x02, 0xb6, 0x82, 0x4b, 0x45, 0x79, 0xaa, 0x00, 0x36, 0x05,
0x83, 0xfa, 0xa0, 0xa7, 0xe2, 0xa2, 0x9a, 0x49, 0x4d, 0x5a, 0x49, 0x6b, 0x73, 0x6d, 0x56, 0xc6,
0x8a, 0x80, 0x51, 0x5a, 0x45, 0x61, 0x13, 0x4d, 0xf3, 0x04, 0x36, 0x2a, 0x29, 0x05, 0xad, 0xd2,
0xf3, 0x32, 0x39, 0x5a, 0xa5, 0xe7, 0x66, 0x23, 0xdc, 0x8b, 0x34, 0xe4, 0x9a, 0x0b, 0x38, 0x64,
0x76, 0x16, 0xe4, 0xc3, 0x93, 0xb7, 0x9d, 0x9d, 0xa3, 0x25, 0xfa, 0x97, 0x9f, 0x4f, 0xff, 0x4f,
0x00, 0x00, 0x00, 0xff, 0xff, 0xef, 0x55, 0xa3, 0x4b, 0x17, 0x48, 0x00, 0x00,
}

@ -297,6 +297,19 @@ func request_Lightning_SendPaymentSync_0(ctx context.Context, marshaler runtime.
}
func request_Lightning_SendToRouteSync_0(ctx context.Context, marshaler runtime.Marshaler, client LightningClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq SendToRouteRequest
var metadata runtime.ServerMetadata
if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.SendToRouteSync(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func request_Lightning_AddInvoice_0(ctx context.Context, marshaler runtime.Marshaler, client LightningClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq Invoice
var metadata runtime.ServerMetadata
@ -1182,6 +1195,35 @@ func RegisterLightningHandler(ctx context.Context, mux *runtime.ServeMux, conn *
})
mux.Handle("POST", pattern_Lightning_SendToRouteSync_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(ctx)
defer cancel()
if cn, ok := w.(http.CloseNotifier); ok {
go func(done <-chan struct{}, closed <-chan bool) {
select {
case <-done:
case <-closed:
cancel()
}
}(ctx.Done(), cn.CloseNotify())
}
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_Lightning_SendToRouteSync_0(rctx, inboundMarshaler, client, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_Lightning_SendToRouteSync_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("POST", pattern_Lightning_AddInvoice_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(ctx)
defer cancel()
@ -1649,6 +1691,8 @@ var (
pattern_Lightning_SendPaymentSync_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "channels", "transactions"}, ""))
pattern_Lightning_SendToRouteSync_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "channels", "transactions", "sendtoroute"}, ""))
pattern_Lightning_AddInvoice_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "invoices"}, ""))
pattern_Lightning_ListInvoices_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "invoices"}, ""))
@ -1709,6 +1753,8 @@ var (
forward_Lightning_SendPaymentSync_0 = runtime.ForwardResponseMessage
forward_Lightning_SendToRouteSync_0 = runtime.ForwardResponseMessage
forward_Lightning_AddInvoice_0 = runtime.ForwardResponseMessage
forward_Lightning_ListInvoices_0 = runtime.ForwardResponseMessage

@ -399,6 +399,28 @@ service Lightning {
};
}
/** lncli: `sendtoroute`
SendToRoute dispatches a bi-directional streaming RPC for sending payments
through the Lightning Network via predefined routes passed in. A single RPC
invocation creates a persistent bi-directional stream allowing clients to
rapidly send payments through the Lightning Network with a single
persistent connection.
*/
rpc SendToRoute(stream SendToRouteRequest) returns (stream SendResponse);
/**
SendToRouteSync is the synchronous non-streaming version of SendToRoute.
This RPC is intended to be consumed by clients of the REST proxy.
Additionally, this RPC expects the payment hash to be encoded
as hex strings.
*/
rpc SendToRouteSync (SendToRouteRequest) returns (SendResponse) {
option (google.api.http) = {
post: "/v1/channels/transactions/sendtoroute"
body: "*"
};
}
/** lncli: `addinvoice`
AddInvoice attempts to add a new invoice to the invoice database. Any
duplicated invoices are rejected, therefore all invoices *must* have a
@ -659,6 +681,17 @@ message SendResponse {
Route payment_route = 3 [json_name = "payment_route"];
}
message SendToRouteRequest {
/// The hash to use within the payment's HTLC
bytes payment_hash = 1;
/// The hex-encoded hash to use within the payment's HTLC
string payment_hash_string = 2;
/// The routes that should be tried in sending the payment.
repeated Route routes = 3 [json_name = "routes"];
}
message ChannelPoint {
oneof funding_txid {
/// Txid of the funding transaction

@ -192,6 +192,33 @@
]
}
},
"/v1/channels/transactions/sendtoroute": {
"post": {
"summary": "*\nSendToRouteSync is the synchronous non-streaming version of SendToRoute.\nThis RPC is intended to be consumed by clients of the REST proxy.\nAdditionally, this RPC expects the payment hash to be encoded\nas hex strings.",
"operationId": "SendToRouteSync",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/lnrpcSendResponse"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/lnrpcSendToRouteRequest"
}
}
],
"tags": [
"Lightning"
]
}
},
"/v1/channels/{channel_point.funding_txid_str}/{channel_point.output_index}": {
"delete": {
"summary": "* lncli: `closechannel`\nCloseChannel attempts to close an active channel identified by its channel\noutpoint (ChannelPoint). The actions of this method can additionally be\naugmented to attempt a force close after a timeout period in the case of an\ninactive peer. If a non-force close (cooperative closure) is requested,\nthen the user can specify either a target number of blocks until the\nclosure transaction is confirmed, or a manual fee rate. If neither are\nspecified, then a default lax, block confirmation target is used.",
@ -2364,6 +2391,27 @@
}
}
},
"lnrpcSendToRouteRequest": {
"type": "object",
"properties": {
"payment_hash": {
"type": "string",
"format": "byte",
"title": "/ The hash to use within the payment's HTLC"
},
"payment_hash_string": {
"type": "string",
"title": "/ The hex-encoded hash to use within the payment's HTLC"
},
"routes": {
"type": "array",
"items": {
"$ref": "#/definitions/lnrpcRoute"
},
"description": "/ The routes that should be tried in sending the payment."
}
}
},
"lnrpcSignMessageResponse": {
"type": "object",
"properties": {