lnrpc: add new ChangePassword RPC to WalletUnlocker

This commit is contained in:
Wilmer Paulino 2018-04-08 17:34:06 -04:00
parent 7cf5ebe265
commit e73b457e1f
No known key found for this signature in database
GPG Key ID: 6DF57B9F9514972F
4 changed files with 662 additions and 483 deletions

View File

@ -14,6 +14,8 @@ It has these top-level messages:
InitWalletResponse
UnlockWalletRequest
UnlockWalletResponse
ChangePasswordRequest
ChangePasswordResponse
Transaction
GetTransactionsRequest
TransactionDetails
@ -151,7 +153,7 @@ func (x NewAddressRequest_AddressType) String() string {
return proto.EnumName(NewAddressRequest_AddressType_name, int32(x))
}
func (NewAddressRequest_AddressType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor0, []int{17, 0}
return fileDescriptor0, []int{19, 0}
}
type GenSeedRequest struct {
@ -324,6 +326,44 @@ func (m *UnlockWalletResponse) String() string { return proto.Compact
func (*UnlockWalletResponse) ProtoMessage() {}
func (*UnlockWalletResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }
type ChangePasswordRequest struct {
// *
// current_password should be the current valid passphrase used to unlock the
// daemon.
CurrentPassword []byte `protobuf:"bytes,1,opt,name=current_password,json=currentPassword,proto3" json:"current_password,omitempty"`
// *
// new_password should be the new passphrase that will be needed to unlock the
// daemon.
NewPassword []byte `protobuf:"bytes,2,opt,name=new_password,json=newPassword,proto3" json:"new_password,omitempty"`
}
func (m *ChangePasswordRequest) Reset() { *m = ChangePasswordRequest{} }
func (m *ChangePasswordRequest) String() string { return proto.CompactTextString(m) }
func (*ChangePasswordRequest) ProtoMessage() {}
func (*ChangePasswordRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
func (m *ChangePasswordRequest) GetCurrentPassword() []byte {
if m != nil {
return m.CurrentPassword
}
return nil
}
func (m *ChangePasswordRequest) GetNewPassword() []byte {
if m != nil {
return m.NewPassword
}
return nil
}
type ChangePasswordResponse struct {
}
func (m *ChangePasswordResponse) Reset() { *m = ChangePasswordResponse{} }
func (m *ChangePasswordResponse) String() string { return proto.CompactTextString(m) }
func (*ChangePasswordResponse) ProtoMessage() {}
func (*ChangePasswordResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
type Transaction struct {
// / The transaction hash
TxHash string `protobuf:"bytes,1,opt,name=tx_hash" json:"tx_hash,omitempty"`
@ -346,7 +386,7 @@ type Transaction struct {
func (m *Transaction) Reset() { *m = Transaction{} }
func (m *Transaction) String() string { return proto.CompactTextString(m) }
func (*Transaction) ProtoMessage() {}
func (*Transaction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }
func (*Transaction) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
func (m *Transaction) GetTxHash() string {
if m != nil {
@ -410,7 +450,7 @@ type GetTransactionsRequest struct {
func (m *GetTransactionsRequest) Reset() { *m = GetTransactionsRequest{} }
func (m *GetTransactionsRequest) String() string { return proto.CompactTextString(m) }
func (*GetTransactionsRequest) ProtoMessage() {}
func (*GetTransactionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }
func (*GetTransactionsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
type TransactionDetails struct {
// / The list of transactions relevant to the wallet.
@ -420,7 +460,7 @@ type TransactionDetails struct {
func (m *TransactionDetails) Reset() { *m = TransactionDetails{} }
func (m *TransactionDetails) String() string { return proto.CompactTextString(m) }
func (*TransactionDetails) ProtoMessage() {}
func (*TransactionDetails) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }
func (*TransactionDetails) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
func (m *TransactionDetails) GetTransactions() []*Transaction {
if m != nil {
@ -452,7 +492,7 @@ type SendRequest struct {
func (m *SendRequest) Reset() { *m = SendRequest{} }
func (m *SendRequest) String() string { return proto.CompactTextString(m) }
func (*SendRequest) ProtoMessage() {}
func (*SendRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{9} }
func (*SendRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{11} }
func (m *SendRequest) GetDest() []byte {
if m != nil {
@ -512,7 +552,7 @@ type SendResponse struct {
func (m *SendResponse) Reset() { *m = SendResponse{} }
func (m *SendResponse) String() string { return proto.CompactTextString(m) }
func (*SendResponse) ProtoMessage() {}
func (*SendResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{10} }
func (*SendResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{12} }
func (m *SendResponse) GetPaymentError() string {
if m != nil {
@ -547,11 +587,9 @@ 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{11} }
func (*ChannelPoint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{13} }
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"`
@ -667,7 +705,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{12} }
func (*LightningAddress) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{14} }
func (m *LightningAddress) GetPubkey() string {
if m != nil {
@ -695,7 +733,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{13} }
func (*SendManyRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{15} }
func (m *SendManyRequest) GetAddrToAmount() map[string]int64 {
if m != nil {
@ -726,7 +764,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{14} }
func (*SendManyResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{16} }
func (m *SendManyResponse) GetTxid() string {
if m != nil {
@ -749,7 +787,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{15} }
func (*SendCoinsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{17} }
func (m *SendCoinsRequest) GetAddr() string {
if m != nil {
@ -787,7 +825,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{16} }
func (*SendCoinsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{18} }
func (m *SendCoinsResponse) GetTxid() string {
if m != nil {
@ -810,7 +848,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{17} }
func (*NewAddressRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{19} }
func (m *NewAddressRequest) GetType() NewAddressRequest_AddressType {
if m != nil {
@ -825,7 +863,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{18} }
func (*NewWitnessAddressRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{20} }
type NewAddressResponse struct {
// / The newly generated wallet address
@ -835,7 +873,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{19} }
func (*NewAddressResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{21} }
func (m *NewAddressResponse) GetAddress() string {
if m != nil {
@ -852,7 +890,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{20} }
func (*SignMessageRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{22} }
func (m *SignMessageRequest) GetMsg() []byte {
if m != nil {
@ -869,7 +907,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{21} }
func (*SignMessageResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{23} }
func (m *SignMessageResponse) GetSignature() string {
if m != nil {
@ -888,7 +926,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{22} }
func (*VerifyMessageRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
func (m *VerifyMessageRequest) GetMsg() []byte {
if m != nil {
@ -914,7 +952,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{23} }
func (*VerifyMessageResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
func (m *VerifyMessageResponse) GetValid() bool {
if m != nil {
@ -941,7 +979,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{24} }
func (*ConnectPeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
func (m *ConnectPeerRequest) GetAddr() *LightningAddress {
if m != nil {
@ -963,7 +1001,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{25} }
func (*ConnectPeerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
type DisconnectPeerRequest struct {
// / The pubkey of the node to disconnect from
@ -973,7 +1011,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{26} }
func (*DisconnectPeerRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
func (m *DisconnectPeerRequest) GetPubKey() string {
if m != nil {
@ -988,7 +1026,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{27} }
func (*DisconnectPeerResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
type HTLC struct {
Incoming bool `protobuf:"varint,1,opt,name=incoming" json:"incoming,omitempty"`
@ -1000,7 +1038,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{28} }
func (*HTLC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }
func (m *HTLC) GetIncoming() bool {
if m != nil {
@ -1090,7 +1128,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{29} }
func (*Channel) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }
func (m *Channel) GetActive() bool {
if m != nil {
@ -1221,7 +1259,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{30} }
func (*ListChannelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }
func (m *ListChannelsRequest) GetActiveOnly() bool {
if m != nil {
@ -1259,7 +1297,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{31} }
func (*ListChannelsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{33} }
func (m *ListChannelsResponse) GetChannels() []*Channel {
if m != nil {
@ -1290,7 +1328,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{32} }
func (*Peer) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{34} }
func (m *Peer) GetPubKey() string {
if m != nil {
@ -1354,7 +1392,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{33} }
func (*ListPeersRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{35} }
type ListPeersResponse struct {
// / The list of currently connected peers
@ -1364,7 +1402,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{34} }
func (*ListPeersResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{36} }
func (m *ListPeersResponse) GetPeers() []*Peer {
if m != nil {
@ -1379,7 +1417,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{35} }
func (*GetInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{37} }
type GetInfoResponse struct {
// / The identity pubkey of the current node.
@ -1413,7 +1451,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{36} }
func (*GetInfoResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{38} }
func (m *GetInfoResponse) GetIdentityPubkey() string {
if m != nil {
@ -1515,7 +1553,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{37} }
func (*ConfirmationUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{39} }
func (m *ConfirmationUpdate) GetBlockSha() []byte {
if m != nil {
@ -1545,7 +1583,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{38} }
func (*ChannelOpenUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{40} }
func (m *ChannelOpenUpdate) GetChannelPoint() *ChannelPoint {
if m != nil {
@ -1562,7 +1600,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{39} }
func (*ChannelCloseUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{41} }
func (m *ChannelCloseUpdate) GetClosingTxid() []byte {
if m != nil {
@ -1595,7 +1633,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{40} }
func (*CloseChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{42} }
func (m *CloseChannelRequest) GetChannelPoint() *ChannelPoint {
if m != nil {
@ -1636,11 +1674,9 @@ 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{41} }
func (*CloseStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{43} }
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"`
@ -1785,7 +1821,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{42} }
func (*PendingUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{44} }
func (m *PendingUpdate) GetTxid() []byte {
if m != nil {
@ -1825,7 +1861,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{43} }
func (*OpenChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{45} }
func (m *OpenChannelRequest) GetNodePubkey() []byte {
if m != nil {
@ -1901,11 +1937,9 @@ 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{44} }
func (*OpenStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{46} }
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"`
@ -2063,7 +2097,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{45} }
func (*PendingHTLC) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{47} }
func (m *PendingHTLC) GetIncoming() bool {
if m != nil {
@ -2113,7 +2147,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{46} }
func (*PendingChannelsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{48} }
type PendingChannelsResponse struct {
// / The balance in satoshis encumbered in pending channels
@ -2131,7 +2165,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{47} }
func (*PendingChannelsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{49} }
func (m *PendingChannelsResponse) GetTotalLimboBalance() int64 {
if m != nil {
@ -2182,7 +2216,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{47, 0}
return fileDescriptor0, []int{49, 0}
}
func (m *PendingChannelsResponse_PendingChannel) GetRemoteNodePub() string {
@ -2249,7 +2283,7 @@ func (m *PendingChannelsResponse_PendingOpenChannel) String() string {
}
func (*PendingChannelsResponse_PendingOpenChannel) ProtoMessage() {}
func (*PendingChannelsResponse_PendingOpenChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{47, 1}
return fileDescriptor0, []int{49, 1}
}
func (m *PendingChannelsResponse_PendingOpenChannel) GetChannel() *PendingChannelsResponse_PendingChannel {
@ -2302,7 +2336,7 @@ func (m *PendingChannelsResponse_WaitingCloseChannel) String() string {
}
func (*PendingChannelsResponse_WaitingCloseChannel) ProtoMessage() {}
func (*PendingChannelsResponse_WaitingCloseChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{47, 2}
return fileDescriptor0, []int{49, 2}
}
func (m *PendingChannelsResponse_WaitingCloseChannel) GetChannel() *PendingChannelsResponse_PendingChannel {
@ -2330,7 +2364,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{47, 3}
return fileDescriptor0, []int{49, 3}
}
func (m *PendingChannelsResponse_ClosedChannel) GetChannel() *PendingChannelsResponse_PendingChannel {
@ -2374,7 +2408,7 @@ func (m *PendingChannelsResponse_ForceClosedChannel) String() string {
}
func (*PendingChannelsResponse_ForceClosedChannel) ProtoMessage() {}
func (*PendingChannelsResponse_ForceClosedChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{47, 4}
return fileDescriptor0, []int{49, 4}
}
func (m *PendingChannelsResponse_ForceClosedChannel) GetChannel() *PendingChannelsResponse_PendingChannel {
@ -2432,7 +2466,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{48} }
func (*WalletBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{50} }
type WalletBalanceResponse struct {
// / The balance of the wallet
@ -2446,7 +2480,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{49} }
func (*WalletBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{51} }
func (m *WalletBalanceResponse) GetTotalBalance() int64 {
if m != nil {
@ -2475,7 +2509,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{50} }
func (*ChannelBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{52} }
type ChannelBalanceResponse struct {
// / Sum of channels balances denominated in satoshis
@ -2487,7 +2521,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{51} }
func (*ChannelBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{53} }
func (m *ChannelBalanceResponse) GetBalance() int64 {
if m != nil {
@ -2515,7 +2549,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{52} }
func (*QueryRoutesRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{54} }
func (m *QueryRoutesRequest) GetPubKey() string {
if m != nil {
@ -2545,7 +2579,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{53} }
func (*QueryRoutesResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{55} }
func (m *QueryRoutesResponse) GetRoutes() []*Route {
if m != nil {
@ -2571,7 +2605,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{54} }
func (*Hop) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{56} }
func (m *Hop) GetChanId() uint64 {
if m != nil {
@ -2661,7 +2695,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{55} }
func (*Route) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{57} }
func (m *Route) GetTotalTimeLock() uint32 {
if m != nil {
@ -2713,7 +2747,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{56} }
func (*NodeInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{58} }
func (m *NodeInfoRequest) GetPubKey() string {
if m != nil {
@ -2736,7 +2770,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{57} }
func (*NodeInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{59} }
func (m *NodeInfo) GetNode() *LightningNode {
if m != nil {
@ -2775,7 +2809,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{58} }
func (*LightningNode) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{60} }
func (m *LightningNode) GetLastUpdate() uint32 {
if m != nil {
@ -2820,7 +2854,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{59} }
func (*NodeAddress) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{61} }
func (m *NodeAddress) GetNetwork() string {
if m != nil {
@ -2846,7 +2880,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{60} }
func (*RoutingPolicy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{62} }
func (m *RoutingPolicy) GetTimeLockDelta() uint32 {
if m != nil {
@ -2900,7 +2934,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{61} }
func (*ChannelEdge) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{63} }
func (m *ChannelEdge) GetChannelId() uint64 {
if m != nil {
@ -2964,7 +2998,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{62} }
func (*ChannelGraphRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{64} }
// / Returns a new instance of the directed channel graph.
type ChannelGraph struct {
@ -2977,7 +3011,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{63} }
func (*ChannelGraph) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{65} }
func (m *ChannelGraph) GetNodes() []*LightningNode {
if m != nil {
@ -3004,7 +3038,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{64} }
func (*ChanInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{66} }
func (m *ChanInfoRequest) GetChanId() uint64 {
if m != nil {
@ -3019,7 +3053,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{65} }
func (*NetworkInfoRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{67} }
type NetworkInfo struct {
GraphDiameter uint32 `protobuf:"varint,1,opt,name=graph_diameter" json:"graph_diameter,omitempty"`
@ -3036,7 +3070,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{66} }
func (*NetworkInfo) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{68} }
func (m *NetworkInfo) GetGraphDiameter() uint32 {
if m != nil {
@ -3107,7 +3141,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{67} }
func (*StopRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{69} }
type StopResponse struct {
}
@ -3115,7 +3149,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{68} }
func (*StopResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{70} }
type GraphTopologySubscription struct {
}
@ -3123,7 +3157,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{69} }
func (*GraphTopologySubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{71} }
type GraphTopologyUpdate struct {
NodeUpdates []*NodeUpdate `protobuf:"bytes,1,rep,name=node_updates,json=nodeUpdates" json:"node_updates,omitempty"`
@ -3134,7 +3168,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{70} }
func (*GraphTopologyUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{72} }
func (m *GraphTopologyUpdate) GetNodeUpdates() []*NodeUpdate {
if m != nil {
@ -3167,7 +3201,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{71} }
func (*NodeUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{73} }
func (m *NodeUpdate) GetAddresses() []string {
if m != nil {
@ -3213,7 +3247,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{72} }
func (*ChannelEdgeUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{74} }
func (m *ChannelEdgeUpdate) GetChanId() uint64 {
if m != nil {
@ -3271,7 +3305,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{73} }
func (*ClosedChannelUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{75} }
func (m *ClosedChannelUpdate) GetChanId() uint64 {
if m != nil {
@ -3319,7 +3353,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{74} }
func (*HopHint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{76} }
func (m *HopHint) GetNodeId() string {
if m != nil {
@ -3366,7 +3400,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{75} }
func (*RouteHint) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{77} }
func (m *RouteHint) GetHopHints() []*HopHint {
if m != nil {
@ -3425,7 +3459,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{76} }
func (*Invoice) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{78} }
func (m *Invoice) GetMemo() string {
if m != nil {
@ -3544,7 +3578,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{77} }
func (*AddInvoiceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{79} }
func (m *AddInvoiceResponse) GetRHash() []byte {
if m != nil {
@ -3572,7 +3606,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{78} }
func (*PaymentHash) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{80} }
func (m *PaymentHash) GetRHashStr() string {
if m != nil {
@ -3596,7 +3630,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{79} }
func (*ListInvoiceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{81} }
func (m *ListInvoiceRequest) GetPendingOnly() bool {
if m != nil {
@ -3612,7 +3646,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{80} }
func (*ListInvoiceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{82} }
func (m *ListInvoiceResponse) GetInvoices() []*Invoice {
if m != nil {
@ -3627,7 +3661,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{81} }
func (*InvoiceSubscription) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{83} }
type Payment struct {
// / The payment hash
@ -3647,7 +3681,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{82} }
func (*Payment) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{84} }
func (m *Payment) GetPaymentHash() string {
if m != nil {
@ -3697,7 +3731,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{83} }
func (*ListPaymentsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{85} }
type ListPaymentsResponse struct {
// / The list of payments
@ -3707,7 +3741,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{84} }
func (*ListPaymentsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{86} }
func (m *ListPaymentsResponse) GetPayments() []*Payment {
if m != nil {
@ -3722,7 +3756,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{85} }
func (*DeleteAllPaymentsRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{87} }
type DeleteAllPaymentsResponse struct {
}
@ -3730,7 +3764,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{86} }
func (*DeleteAllPaymentsResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{88} }
type DebugLevelRequest struct {
Show bool `protobuf:"varint,1,opt,name=show" json:"show,omitempty"`
@ -3740,7 +3774,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{87} }
func (*DebugLevelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{89} }
func (m *DebugLevelRequest) GetShow() bool {
if m != nil {
@ -3763,7 +3797,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{88} }
func (*DebugLevelResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{90} }
func (m *DebugLevelResponse) GetSubSystems() string {
if m != nil {
@ -3780,7 +3814,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{89} }
func (*PayReqString) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{91} }
func (m *PayReqString) GetPayReq() string {
if m != nil {
@ -3805,7 +3839,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{90} }
func (*PayReq) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{92} }
func (m *PayReq) GetDestination() string {
if m != nil {
@ -3883,7 +3917,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{91} }
func (*FeeReportRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{93} }
type ChannelFeeReport struct {
// / The channel that this fee report belongs to.
@ -3899,7 +3933,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{92} }
func (*ChannelFeeReport) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{94} }
func (m *ChannelFeeReport) GetChanPoint() string {
if m != nil {
@ -3943,7 +3977,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{93} }
func (*FeeReportResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{95} }
func (m *FeeReportResponse) GetChannelFees() []*ChannelFeeReport {
if m != nil {
@ -3989,11 +4023,9 @@ 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{94} }
func (*PolicyUpdateRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{96} }
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"`
@ -4126,7 +4158,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{95} }
func (*PolicyUpdateResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{97} }
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.
@ -4142,7 +4174,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{96} }
func (*ForwardingHistoryRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{98} }
func (m *ForwardingHistoryRequest) GetStartTime() uint64 {
if m != nil {
@ -4190,7 +4222,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{97} }
func (*ForwardingEvent) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{99} }
func (m *ForwardingEvent) GetTimestamp() uint64 {
if m != nil {
@ -4244,7 +4276,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{98} }
func (*ForwardingHistoryResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{100} }
func (m *ForwardingHistoryResponse) GetForwardingEvents() []*ForwardingEvent {
if m != nil {
@ -4267,6 +4299,8 @@ func init() {
proto.RegisterType((*InitWalletResponse)(nil), "lnrpc.InitWalletResponse")
proto.RegisterType((*UnlockWalletRequest)(nil), "lnrpc.UnlockWalletRequest")
proto.RegisterType((*UnlockWalletResponse)(nil), "lnrpc.UnlockWalletResponse")
proto.RegisterType((*ChangePasswordRequest)(nil), "lnrpc.ChangePasswordRequest")
proto.RegisterType((*ChangePasswordResponse)(nil), "lnrpc.ChangePasswordResponse")
proto.RegisterType((*Transaction)(nil), "lnrpc.Transaction")
proto.RegisterType((*GetTransactionsRequest)(nil), "lnrpc.GetTransactionsRequest")
proto.RegisterType((*TransactionDetails)(nil), "lnrpc.TransactionDetails")
@ -4407,6 +4441,10 @@ type WalletUnlockerClient interface {
// UnlockWallet is used at startup of lnd to provide a password to unlock
// the wallet database.
UnlockWallet(ctx context.Context, in *UnlockWalletRequest, opts ...grpc.CallOption) (*UnlockWalletResponse, error)
// * lncli: `changepassword`
// ChangePassword changes the password of the encrypted wallet. This will
// automatically unlock the wallet database if successful.
ChangePassword(ctx context.Context, in *ChangePasswordRequest, opts ...grpc.CallOption) (*ChangePasswordResponse, error)
}
type walletUnlockerClient struct {
@ -4444,6 +4482,15 @@ func (c *walletUnlockerClient) UnlockWallet(ctx context.Context, in *UnlockWalle
return out, nil
}
func (c *walletUnlockerClient) ChangePassword(ctx context.Context, in *ChangePasswordRequest, opts ...grpc.CallOption) (*ChangePasswordResponse, error) {
out := new(ChangePasswordResponse)
err := grpc.Invoke(ctx, "/lnrpc.WalletUnlocker/ChangePassword", in, out, c.cc, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// Server API for WalletUnlocker service
type WalletUnlockerServer interface {
@ -4475,6 +4522,10 @@ type WalletUnlockerServer interface {
// UnlockWallet is used at startup of lnd to provide a password to unlock
// the wallet database.
UnlockWallet(context.Context, *UnlockWalletRequest) (*UnlockWalletResponse, error)
// * lncli: `changepassword`
// ChangePassword changes the password of the encrypted wallet. This will
// automatically unlock the wallet database if successful.
ChangePassword(context.Context, *ChangePasswordRequest) (*ChangePasswordResponse, error)
}
func RegisterWalletUnlockerServer(s *grpc.Server, srv WalletUnlockerServer) {
@ -4535,6 +4586,24 @@ func _WalletUnlocker_UnlockWallet_Handler(srv interface{}, ctx context.Context,
return interceptor(ctx, in, info, handler)
}
func _WalletUnlocker_ChangePassword_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ChangePasswordRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(WalletUnlockerServer).ChangePassword(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/lnrpc.WalletUnlocker/ChangePassword",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(WalletUnlockerServer).ChangePassword(ctx, req.(*ChangePasswordRequest))
}
return interceptor(ctx, in, info, handler)
}
var _WalletUnlocker_serviceDesc = grpc.ServiceDesc{
ServiceName: "lnrpc.WalletUnlocker",
HandlerType: (*WalletUnlockerServer)(nil),
@ -4551,6 +4620,10 @@ var _WalletUnlocker_serviceDesc = grpc.ServiceDesc{
MethodName: "UnlockWallet",
Handler: _WalletUnlocker_UnlockWallet_Handler,
},
{
MethodName: "ChangePassword",
Handler: _WalletUnlocker_ChangePassword_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "rpc.proto",
@ -6379,358 +6452,363 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{
// 5640 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x7c, 0x4d, 0x90, 0x1c, 0xc9,
0x55, 0xbf, 0xaa, 0xa7, 0xe7, 0xa3, 0x5f, 0xf7, 0xf4, 0xcc, 0xe4, 0x8c, 0x46, 0xad, 0x96, 0x56,
0xab, 0x2d, 0x6f, 0x58, 0xfa, 0xcf, 0x7f, 0xd1, 0x68, 0xc7, 0xf6, 0xb2, 0x5e, 0x81, 0x8d, 0xbe,
0x67, 0x6d, 0xad, 0x3c, 0xae, 0x91, 0x2c, 0xb0, 0x81, 0x76, 0x4d, 0x77, 0x4e, 0x4f, 0xad, 0xaa,
0xab, 0x6a, 0xab, 0xaa, 0x67, 0xd4, 0xbb, 0x28, 0x82, 0xaf, 0xe0, 0x84, 0x83, 0x03, 0x5c, 0x4c,
0x04, 0x41, 0x84, 0x7d, 0x81, 0x03, 0x47, 0x4e, 0x86, 0x1b, 0x27, 0x22, 0x08, 0x0e, 0x7b, 0x72,
0x70, 0xe3, 0xe3, 0x00, 0x0e, 0x2e, 0x44, 0x70, 0xe1, 0x40, 0x10, 0xef, 0xe5, 0x47, 0x65, 0x56,
0xd5, 0x48, 0xf2, 0x07, 0xdc, 0x3a, 0x7f, 0xf9, 0xea, 0xe5, 0xd7, 0x7b, 0x2f, 0xdf, 0x7b, 0x99,
0xd9, 0xd0, 0x4a, 0x93, 0xe1, 0xb5, 0x24, 0x8d, 0xf3, 0x98, 0xcd, 0x87, 0x51, 0x9a, 0x0c, 0xfb,
0x17, 0xc7, 0x71, 0x3c, 0x0e, 0xf9, 0xb6, 0x9f, 0x04, 0xdb, 0x7e, 0x14, 0xc5, 0xb9, 0x9f, 0x07,
0x71, 0x94, 0x09, 0x22, 0xf7, 0xdb, 0xd0, 0xbd, 0xcf, 0xa3, 0x7d, 0xce, 0x47, 0x1e, 0xff, 0x68,
0xca, 0xb3, 0x9c, 0xfd, 0x7f, 0x58, 0xf3, 0xf9, 0xc7, 0x9c, 0x8f, 0x06, 0x89, 0x9f, 0x65, 0xc9,
0x51, 0xea, 0x67, 0xbc, 0xe7, 0x5c, 0x76, 0xae, 0x76, 0xbc, 0x55, 0x51, 0xb1, 0xa7, 0x71, 0xf6,
0x06, 0x74, 0x32, 0x24, 0xe5, 0x51, 0x9e, 0xc6, 0xc9, 0xac, 0xd7, 0x20, 0xba, 0x36, 0x62, 0x77,
0x05, 0xe4, 0x86, 0xb0, 0xa2, 0x5b, 0xc8, 0x92, 0x38, 0xca, 0x38, 0xbb, 0x0e, 0x1b, 0xc3, 0x20,
0x39, 0xe2, 0xe9, 0x80, 0x3e, 0x9e, 0x44, 0x7c, 0x12, 0x47, 0xc1, 0xb0, 0xe7, 0x5c, 0x9e, 0xbb,
0xda, 0xf2, 0x98, 0xa8, 0xc3, 0x2f, 0x3e, 0x90, 0x35, 0xec, 0x0a, 0xac, 0xf0, 0x48, 0xe0, 0x7c,
0x44, 0x5f, 0xc9, 0xa6, 0xba, 0x05, 0x8c, 0x1f, 0xb8, 0x7f, 0xe3, 0xc0, 0xda, 0xfb, 0x51, 0x90,
0x3f, 0xf1, 0xc3, 0x90, 0xe7, 0x6a, 0x4c, 0x57, 0x60, 0xe5, 0x84, 0x00, 0x1a, 0xd3, 0x49, 0x9c,
0x8e, 0xe4, 0x88, 0xba, 0x02, 0xde, 0x93, 0xe8, 0xa9, 0x3d, 0x6b, 0x9c, 0xda, 0xb3, 0xda, 0xe9,
0x9a, 0x3b, 0x65, 0xba, 0xae, 0xc0, 0x4a, 0xca, 0x87, 0xf1, 0x31, 0x4f, 0x67, 0x83, 0x93, 0x20,
0x1a, 0xc5, 0x27, 0xbd, 0xe6, 0x65, 0xe7, 0xea, 0xbc, 0xd7, 0x55, 0xf0, 0x13, 0x42, 0xdd, 0x0d,
0x60, 0xe6, 0x28, 0xc4, 0xbc, 0xb9, 0x63, 0x58, 0x7f, 0x1c, 0x85, 0xf1, 0xf0, 0xe9, 0x4f, 0x38,
0xba, 0x9a, 0xe6, 0x1b, 0xb5, 0xcd, 0x6f, 0xc2, 0x86, 0xdd, 0x90, 0xec, 0xc0, 0x77, 0x1b, 0xd0,
0x7e, 0x94, 0xfa, 0x51, 0xe6, 0x0f, 0x51, 0x88, 0x58, 0x0f, 0x16, 0xf3, 0x67, 0x83, 0x23, 0x3f,
0x3b, 0xa2, 0x16, 0x5b, 0x9e, 0x2a, 0xb2, 0x4d, 0x58, 0xf0, 0x27, 0xf1, 0x34, 0xca, 0xa9, 0x85,
0x39, 0x4f, 0x96, 0xd8, 0x5b, 0xb0, 0x16, 0x4d, 0x27, 0x83, 0x61, 0x1c, 0x1d, 0x06, 0xe9, 0x44,
0x88, 0x22, 0x4d, 0xd7, 0xbc, 0x57, 0xad, 0x60, 0x97, 0x00, 0x0e, 0xb0, 0x1b, 0xa2, 0x89, 0x26,
0x35, 0x61, 0x20, 0xcc, 0x85, 0x8e, 0x2c, 0xf1, 0x60, 0x7c, 0x94, 0xf7, 0xe6, 0x89, 0x91, 0x85,
0x21, 0x8f, 0x3c, 0x98, 0xf0, 0x41, 0x96, 0xfb, 0x93, 0xa4, 0xb7, 0x40, 0xbd, 0x31, 0x10, 0xaa,
0x8f, 0x73, 0x3f, 0x1c, 0x1c, 0x72, 0x9e, 0xf5, 0x16, 0x65, 0xbd, 0x46, 0xd8, 0x67, 0xa1, 0x3b,
0xe2, 0x59, 0x3e, 0xf0, 0x47, 0xa3, 0x94, 0x67, 0x19, 0xcf, 0x7a, 0x4b, 0x24, 0x0c, 0x25, 0xd4,
0xed, 0xc1, 0xe6, 0x7d, 0x9e, 0x1b, 0xb3, 0x93, 0xc9, 0xf5, 0x71, 0x1f, 0x00, 0x33, 0xe0, 0x3b,
0x3c, 0xf7, 0x83, 0x30, 0x63, 0xef, 0x40, 0x27, 0x37, 0x88, 0x49, 0xf8, 0xdb, 0x3b, 0xec, 0x1a,
0x69, 0xed, 0x35, 0xe3, 0x03, 0xcf, 0xa2, 0x73, 0xff, 0xcb, 0x81, 0xf6, 0x3e, 0x8f, 0xb4, 0xbe,
0x32, 0x68, 0x62, 0x4f, 0xe4, 0x92, 0xd3, 0x6f, 0xf6, 0x3a, 0xb4, 0xa9, 0x77, 0x59, 0x9e, 0x06,
0xd1, 0x98, 0x96, 0xa0, 0xe5, 0x01, 0x42, 0xfb, 0x84, 0xb0, 0x55, 0x98, 0xf3, 0x27, 0x39, 0x4d,
0xfc, 0x9c, 0x87, 0x3f, 0x51, 0x93, 0x13, 0x7f, 0x36, 0xe1, 0x51, 0x5e, 0x4c, 0x76, 0xc7, 0x6b,
0x4b, 0x6c, 0x17, 0x67, 0xfb, 0x1a, 0xac, 0x9b, 0x24, 0x8a, 0xfb, 0x3c, 0x71, 0x5f, 0x33, 0x28,
0x65, 0x23, 0x57, 0x60, 0x45, 0xd1, 0xa7, 0xa2, 0xb3, 0x34, 0xfd, 0x2d, 0xaf, 0x2b, 0x61, 0x35,
0x84, 0xab, 0xb0, 0x7a, 0x18, 0x44, 0x7e, 0x38, 0x18, 0x86, 0xf9, 0xf1, 0x60, 0xc4, 0xc3, 0xdc,
0xa7, 0x85, 0x98, 0xf7, 0xba, 0x84, 0xdf, 0x0e, 0xf3, 0xe3, 0x3b, 0x88, 0xba, 0x7f, 0xe4, 0x40,
0x47, 0x0c, 0x5e, 0x9a, 0x92, 0x37, 0x61, 0x59, 0xb5, 0xc1, 0xd3, 0x34, 0x4e, 0xa5, 0x1c, 0xda,
0x20, 0xdb, 0x82, 0x55, 0x05, 0x24, 0x29, 0x0f, 0x26, 0xfe, 0x98, 0x4b, 0xfb, 0x51, 0xc1, 0xd9,
0x4e, 0xc1, 0x31, 0x8d, 0xa7, 0xb9, 0x50, 0xe6, 0xf6, 0x4e, 0x47, 0x2e, 0x8c, 0x87, 0x98, 0x67,
0x93, 0xb8, 0xdf, 0x73, 0xa0, 0x73, 0xfb, 0xc8, 0x8f, 0x22, 0x1e, 0xee, 0xc5, 0x41, 0x94, 0xb3,
0xeb, 0xc0, 0x0e, 0xa7, 0xd1, 0x28, 0x88, 0xc6, 0x83, 0xfc, 0x59, 0x30, 0x1a, 0x1c, 0xcc, 0x72,
0x9e, 0x89, 0x25, 0xda, 0x3d, 0xe3, 0xd5, 0xd4, 0xb1, 0xb7, 0x60, 0xd5, 0x42, 0xb3, 0x3c, 0x15,
0xeb, 0xb6, 0x7b, 0xc6, 0xab, 0xd4, 0xa0, 0xe0, 0xc7, 0xd3, 0x3c, 0x99, 0xe6, 0x83, 0x20, 0x1a,
0xf1, 0x67, 0xd4, 0xc7, 0x65, 0xcf, 0xc2, 0x6e, 0x75, 0xa1, 0x63, 0x7e, 0xe7, 0x7e, 0x09, 0x56,
0x1f, 0xa0, 0x46, 0x44, 0x41, 0x34, 0xbe, 0x29, 0xc4, 0x16, 0xd5, 0x34, 0x99, 0x1e, 0x3c, 0xe5,
0x33, 0x39, 0x6f, 0xb2, 0x84, 0x42, 0x75, 0x14, 0x67, 0xb9, 0x94, 0x1c, 0xfa, 0xed, 0xfe, 0x93,
0x03, 0x2b, 0x38, 0xf7, 0x1f, 0xf8, 0xd1, 0x4c, 0xad, 0xdc, 0x03, 0xe8, 0x20, 0xab, 0x47, 0xf1,
0x4d, 0xa1, 0xec, 0x42, 0x88, 0xaf, 0xca, 0xb9, 0x2a, 0x51, 0x5f, 0x33, 0x49, 0x71, 0x7b, 0x98,
0x79, 0xd6, 0xd7, 0x28, 0xb6, 0xb9, 0x9f, 0x8e, 0x79, 0x4e, 0x66, 0x40, 0x9a, 0x05, 0x10, 0xd0,
0xed, 0x38, 0x3a, 0x64, 0x97, 0xa1, 0x93, 0xf9, 0xf9, 0x20, 0xe1, 0x29, 0xcd, 0x1a, 0x89, 0xde,
0x9c, 0x07, 0x99, 0x9f, 0xef, 0xf1, 0xf4, 0xd6, 0x2c, 0xe7, 0xfd, 0x2f, 0xc3, 0x5a, 0xa5, 0x15,
0x94, 0xf6, 0x62, 0x88, 0xf8, 0x93, 0x6d, 0xc0, 0xfc, 0xb1, 0x1f, 0x4e, 0xb9, 0xb4, 0x4e, 0xa2,
0xf0, 0x5e, 0xe3, 0x5d, 0xc7, 0xfd, 0x2c, 0xac, 0x16, 0xdd, 0x96, 0x42, 0xc6, 0xa0, 0x89, 0x33,
0x28, 0x19, 0xd0, 0x6f, 0xf7, 0xb7, 0x1c, 0x41, 0x78, 0x3b, 0x0e, 0xb4, 0xa6, 0x23, 0x21, 0x1a,
0x04, 0x45, 0x88, 0xbf, 0x4f, 0xb5, 0x84, 0x3f, 0xfd, 0x60, 0xdd, 0x2b, 0xb0, 0x66, 0x74, 0xe1,
0x05, 0x9d, 0xfd, 0x8e, 0x03, 0x6b, 0x0f, 0xf9, 0x89, 0x5c, 0x75, 0xd5, 0xdb, 0x77, 0xa1, 0x99,
0xcf, 0x12, 0xb1, 0xb9, 0x77, 0x77, 0xde, 0x94, 0x8b, 0x56, 0xa1, 0xbb, 0x26, 0x8b, 0x8f, 0x66,
0x09, 0xf7, 0xe8, 0x0b, 0xf7, 0x4b, 0xd0, 0x36, 0x40, 0x76, 0x0e, 0xd6, 0x9f, 0xbc, 0xff, 0xe8,
0xe1, 0xdd, 0xfd, 0xfd, 0xc1, 0xde, 0xe3, 0x5b, 0x5f, 0xbd, 0xfb, 0x2b, 0x83, 0xdd, 0x9b, 0xfb,
0xbb, 0xab, 0x67, 0xd8, 0x26, 0xb0, 0x87, 0x77, 0xf7, 0x1f, 0xdd, 0xbd, 0x63, 0xe1, 0x8e, 0xdb,
0x87, 0xde, 0x43, 0x7e, 0xf2, 0x24, 0xc8, 0x23, 0x9e, 0x65, 0x76, 0x6b, 0xee, 0x35, 0x60, 0x66,
0x17, 0xe4, 0xa8, 0x7a, 0xb0, 0x28, 0x4d, 0xad, 0xda, 0x69, 0x64, 0xd1, 0xfd, 0x2c, 0xb0, 0xfd,
0x60, 0x1c, 0x7d, 0xc0, 0xb3, 0xcc, 0x1f, 0x73, 0x35, 0xb6, 0x55, 0x98, 0x9b, 0x64, 0x63, 0x69,
0x14, 0xf1, 0xa7, 0xfb, 0x39, 0x58, 0xb7, 0xe8, 0x24, 0xe3, 0x8b, 0xd0, 0xca, 0x82, 0x71, 0xe4,
0xe7, 0xd3, 0x94, 0x4b, 0xd6, 0x05, 0xe0, 0xde, 0x83, 0x8d, 0x6f, 0xf0, 0x34, 0x38, 0x9c, 0xbd,
0x8c, 0xbd, 0xcd, 0xa7, 0x51, 0xe6, 0x73, 0x17, 0xce, 0x96, 0xf8, 0xc8, 0xe6, 0x85, 0x20, 0xca,
0xe5, 0x5a, 0xf2, 0x44, 0xc1, 0x50, 0xcb, 0x86, 0xa9, 0x96, 0xee, 0x63, 0x60, 0xb7, 0xe3, 0x28,
0xe2, 0xc3, 0x7c, 0x8f, 0xf3, 0xb4, 0xf0, 0xd8, 0x0a, 0xa9, 0x6b, 0xef, 0x9c, 0x93, 0xeb, 0x58,
0xd6, 0x75, 0x29, 0x8e, 0x0c, 0x9a, 0x09, 0x4f, 0x27, 0xc4, 0x78, 0xc9, 0xa3, 0xdf, 0xee, 0x59,
0x58, 0xb7, 0xd8, 0xca, 0xdd, 0xfe, 0x6d, 0x38, 0x7b, 0x27, 0xc8, 0x86, 0xd5, 0x06, 0x7b, 0xb0,
0x98, 0x4c, 0x0f, 0x06, 0x85, 0x4e, 0xa9, 0x22, 0x6e, 0x82, 0xe5, 0x4f, 0x24, 0xb3, 0xdf, 0x73,
0xa0, 0xb9, 0xfb, 0xe8, 0xc1, 0x6d, 0xd6, 0x87, 0xa5, 0x20, 0x1a, 0xc6, 0x13, 0xdc, 0x3a, 0xc4,
0xa0, 0x75, 0xf9, 0x54, 0x5d, 0xb9, 0x08, 0x2d, 0xda, 0x71, 0x70, 0x5f, 0x97, 0xce, 0x55, 0x01,
0xa0, 0x4f, 0xc1, 0x9f, 0x25, 0x41, 0x4a, 0x4e, 0x83, 0x72, 0x05, 0x9a, 0x64, 0x11, 0xab, 0x15,
0xee, 0x7f, 0x37, 0x61, 0x51, 0xda, 0x6a, 0x6a, 0x6f, 0x98, 0x07, 0xc7, 0x5c, 0xf6, 0x44, 0x96,
0x70, 0x57, 0x49, 0xf9, 0x24, 0xce, 0xf9, 0xc0, 0x5a, 0x06, 0x1b, 0x44, 0xaa, 0xa1, 0x60, 0x34,
0x48, 0xd0, 0xea, 0x53, 0xcf, 0x5a, 0x9e, 0x0d, 0xe2, 0x64, 0x21, 0x30, 0x08, 0x46, 0xd4, 0xa7,
0xa6, 0xa7, 0x8a, 0x38, 0x13, 0x43, 0x3f, 0xf1, 0x87, 0x41, 0x3e, 0x93, 0xca, 0xad, 0xcb, 0xc8,
0x3b, 0x8c, 0x87, 0x7e, 0x38, 0x38, 0xf0, 0x43, 0x3f, 0x1a, 0x72, 0xe9, 0xb8, 0xd8, 0x20, 0xfa,
0x26, 0xb2, 0x4b, 0x8a, 0x4c, 0xf8, 0x2f, 0x25, 0x14, 0x7d, 0x9c, 0x61, 0x3c, 0x99, 0x04, 0x39,
0xba, 0x34, 0xbd, 0x25, 0x61, 0x48, 0x0a, 0x84, 0x46, 0x22, 0x4a, 0x27, 0x62, 0xf6, 0x5a, 0xa2,
0x35, 0x0b, 0x44, 0x2e, 0x87, 0x9c, 0x93, 0x41, 0x7a, 0x7a, 0xd2, 0x03, 0xc1, 0xa5, 0x40, 0x70,
0x1d, 0xa6, 0x51, 0xc6, 0xf3, 0x3c, 0xe4, 0x23, 0xdd, 0xa1, 0x36, 0x91, 0x55, 0x2b, 0xd8, 0x75,
0x58, 0x17, 0x5e, 0x56, 0xe6, 0xe7, 0x71, 0x76, 0x14, 0x64, 0x83, 0x8c, 0x47, 0x79, 0xaf, 0x43,
0xf4, 0x75, 0x55, 0xec, 0x5d, 0x38, 0x57, 0x82, 0x53, 0x3e, 0xe4, 0xc1, 0x31, 0x1f, 0xf5, 0x96,
0xe9, 0xab, 0xd3, 0xaa, 0xd9, 0x65, 0x68, 0xa3, 0x73, 0x39, 0x4d, 0x46, 0x3e, 0xee, 0xc3, 0x5d,
0x5a, 0x07, 0x13, 0x62, 0x6f, 0xc3, 0x72, 0xc2, 0xc5, 0x66, 0x79, 0x94, 0x87, 0xc3, 0xac, 0xb7,
0x42, 0x3b, 0x59, 0x5b, 0x2a, 0x13, 0x4a, 0xae, 0x67, 0x53, 0xa0, 0x50, 0x0e, 0x33, 0x72, 0x57,
0xfc, 0x59, 0x6f, 0x95, 0xc4, 0xad, 0x00, 0x48, 0x47, 0xd2, 0xe0, 0xd8, 0xcf, 0x79, 0x6f, 0x8d,
0x64, 0x4b, 0x15, 0xdd, 0x3f, 0x75, 0x60, 0xfd, 0x41, 0x90, 0xe5, 0x52, 0x08, 0xb5, 0x39, 0x7e,
0x1d, 0xda, 0x42, 0xfc, 0x06, 0x71, 0x14, 0xce, 0xa4, 0x44, 0x82, 0x80, 0xbe, 0x16, 0x85, 0x33,
0xf6, 0x19, 0x58, 0x0e, 0x22, 0x93, 0x44, 0xe8, 0x70, 0x47, 0x81, 0x44, 0xf4, 0x3a, 0xb4, 0x93,
0xe9, 0x41, 0x18, 0x0c, 0x05, 0xc9, 0x9c, 0xe0, 0x22, 0x20, 0x22, 0x40, 0x47, 0x4f, 0xf4, 0x44,
0x50, 0x34, 0x89, 0xa2, 0x2d, 0x31, 0x24, 0x71, 0x6f, 0xc1, 0x86, 0xdd, 0x41, 0x69, 0xac, 0xb6,
0x60, 0x49, 0xca, 0x76, 0xd6, 0x6b, 0xd3, 0xfc, 0x74, 0xe5, 0xfc, 0x48, 0x52, 0x4f, 0xd7, 0xbb,
0xff, 0xe6, 0x40, 0x13, 0x0d, 0xc0, 0xe9, 0xc6, 0xc2, 0xb4, 0xe9, 0x73, 0x96, 0x4d, 0x27, 0xbf,
0x1f, 0xbd, 0x22, 0x21, 0x12, 0x42, 0x6d, 0x0c, 0xa4, 0xa8, 0x4f, 0xf9, 0xf0, 0x98, 0x74, 0x47,
0xd7, 0x23, 0x82, 0x9a, 0x85, 0x5b, 0x27, 0x7d, 0x2d, 0x14, 0x47, 0x97, 0x55, 0x1d, 0x7d, 0xb9,
0x58, 0xd4, 0xd1, 0x77, 0x3d, 0x58, 0x0c, 0xa2, 0x83, 0x78, 0x1a, 0x8d, 0x48, 0x49, 0x96, 0x3c,
0x55, 0xc4, 0xc5, 0x4e, 0xc8, 0x93, 0x0a, 0x26, 0x5c, 0x6a, 0x47, 0x01, 0xb8, 0x0c, 0x5d, 0xab,
0x8c, 0x0c, 0x9e, 0xde, 0xc7, 0xde, 0x81, 0x35, 0x03, 0x93, 0x33, 0xf8, 0x06, 0xcc, 0x27, 0x08,
0x48, 0x47, 0x49, 0x89, 0x17, 0x59, 0x4a, 0x51, 0xe3, 0xae, 0x62, 0x44, 0x9e, 0xbf, 0x1f, 0x1d,
0xc6, 0x8a, 0xd3, 0x0f, 0xe7, 0x30, 0x84, 0x96, 0x90, 0x64, 0x74, 0x15, 0x56, 0x82, 0x11, 0x8f,
0xf2, 0x20, 0x9f, 0x0d, 0x2c, 0x0f, 0xae, 0x0c, 0xe3, 0x0e, 0xe3, 0x87, 0x81, 0x9f, 0x49, 0x1b,
0x26, 0x0a, 0x6c, 0x07, 0x36, 0x50, 0xfc, 0x95, 0x44, 0xeb, 0x65, 0x15, 0x8e, 0x64, 0x6d, 0x1d,
0x6a, 0x2c, 0xe2, 0x52, 0x02, 0xf5, 0x27, 0xc2, 0xd2, 0xd6, 0x55, 0xe1, 0xac, 0x09, 0x4e, 0x38,
0xe4, 0x79, 0xa1, 0x22, 0x1a, 0xa8, 0x44, 0x6f, 0x0b, 0xc2, 0x89, 0x2d, 0x47, 0x6f, 0x46, 0x04,
0xb8, 0x54, 0x89, 0x00, 0xaf, 0xc2, 0x4a, 0x36, 0x8b, 0x86, 0x7c, 0x34, 0xc8, 0x63, 0x6c, 0x37,
0x88, 0x68, 0x75, 0x96, 0xbc, 0x32, 0x4c, 0xb1, 0x2a, 0xcf, 0xf2, 0x88, 0xe7, 0x64, 0xba, 0x96,
0x3c, 0x55, 0xc4, 0x5d, 0x80, 0x48, 0x84, 0x50, 0xb7, 0x3c, 0x59, 0xc2, 0xad, 0x72, 0x9a, 0x06,
0x59, 0xaf, 0x43, 0x28, 0xfd, 0x66, 0x9f, 0x87, 0xb3, 0x07, 0x18, 0x59, 0x1d, 0x71, 0x7f, 0xc4,
0x53, 0x5a, 0x7d, 0x11, 0x58, 0x0a, 0x0b, 0x54, 0x5f, 0x89, 0x6d, 0x1f, 0xf3, 0x34, 0x0b, 0xe2,
0x88, 0x6c, 0x4f, 0xcb, 0x53, 0x45, 0xf7, 0x63, 0xda, 0xd1, 0x75, 0xc8, 0xfb, 0x98, 0xcc, 0x11,
0xbb, 0x00, 0x2d, 0x31, 0xc6, 0xec, 0xc8, 0x97, 0x4e, 0xc6, 0x12, 0x01, 0xfb, 0x47, 0x3e, 0x2a,
0xb0, 0x35, 0x6d, 0x22, 0x84, 0x6f, 0x13, 0xb6, 0x2b, 0x66, 0xed, 0x4d, 0xe8, 0xaa, 0x60, 0x3a,
0x1b, 0x84, 0xfc, 0x30, 0x57, 0x01, 0x42, 0x34, 0x9d, 0x60, 0x73, 0xd9, 0x03, 0x7e, 0x98, 0xbb,
0x0f, 0x61, 0x4d, 0xea, 0xed, 0xd7, 0x12, 0xae, 0x9a, 0xfe, 0x62, 0x79, 0x53, 0x13, 0x5e, 0xc5,
0xba, 0xad, 0xe8, 0x14, 0xe5, 0x94, 0x76, 0x3a, 0xd7, 0x03, 0x26, 0xab, 0x6f, 0x87, 0x71, 0xc6,
0x25, 0x43, 0x17, 0x3a, 0xc3, 0x30, 0xce, 0x54, 0x18, 0x22, 0x87, 0x63, 0x61, 0x38, 0x3f, 0xd9,
0x74, 0x38, 0x44, 0x4b, 0x20, 0x6c, 0x9a, 0x2a, 0xba, 0x7f, 0xe6, 0xc0, 0x3a, 0x71, 0x53, 0x16,
0x46, 0xfb, 0xae, 0xaf, 0xde, 0xcd, 0xce, 0xd0, 0x0c, 0xcd, 0x36, 0x60, 0xfe, 0x30, 0x4e, 0x87,
0x5c, 0xb6, 0x24, 0x0a, 0x3f, 0xbe, 0x37, 0xde, 0xac, 0x78, 0xe3, 0x3f, 0x74, 0x60, 0x8d, 0xba,
0xba, 0x9f, 0xfb, 0xf9, 0x34, 0x93, 0xc3, 0xff, 0x05, 0x58, 0xc6, 0xa1, 0x72, 0xa5, 0x4e, 0xb2,
0xa3, 0x1b, 0x5a, 0xf3, 0x09, 0x15, 0xc4, 0xbb, 0x67, 0x3c, 0x9b, 0x98, 0x7d, 0x19, 0x3a, 0x66,
0x46, 0x84, 0xfa, 0xdc, 0xde, 0x39, 0xaf, 0x46, 0x59, 0x91, 0x9c, 0xdd, 0x33, 0x9e, 0xf5, 0x01,
0xbb, 0x01, 0x40, 0xee, 0x06, 0xb1, 0x95, 0xa1, 0xec, 0x79, 0x7b, 0x92, 0x8c, 0xc5, 0xda, 0x3d,
0xe3, 0x19, 0xe4, 0xb7, 0x96, 0x60, 0x41, 0xec, 0x8f, 0xee, 0x7d, 0x58, 0xb6, 0x7a, 0x6a, 0x45,
0x19, 0x1d, 0x11, 0x65, 0x54, 0x82, 0xd2, 0x46, 0x35, 0x28, 0x75, 0xff, 0xa5, 0x01, 0x0c, 0xa5,
0xad, 0xb4, 0x9c, 0xb8, 0x41, 0xc7, 0x23, 0xcb, 0xdd, 0xea, 0x78, 0x26, 0xc4, 0xae, 0x01, 0x33,
0x8a, 0x2a, 0xf7, 0x20, 0xf6, 0x8d, 0x9a, 0x1a, 0x34, 0x70, 0xc2, 0x57, 0x52, 0x31, 0xb0, 0x74,
0x2c, 0xc5, 0xba, 0xd5, 0xd6, 0xe1, 0xd6, 0x90, 0x4c, 0xb3, 0x23, 0x74, 0x20, 0x94, 0x43, 0xa6,
0xca, 0x65, 0x01, 0x59, 0x78, 0xa9, 0x80, 0x2c, 0x96, 0x05, 0xc4, 0x74, 0x09, 0x96, 0x2c, 0x97,
0x00, 0xfd, 0xaf, 0x49, 0x10, 0x91, 0x5f, 0x31, 0x98, 0x60, 0xeb, 0xd2, 0xff, 0xb2, 0x40, 0xb6,
0x05, 0xab, 0xd2, 0xaf, 0x2b, 0xfc, 0x0e, 0xa0, 0x39, 0xae, 0xe0, 0xee, 0xa7, 0x0e, 0xac, 0xe2,
0x3c, 0x5b, 0xb2, 0xf8, 0x1e, 0x90, 0x2a, 0xbc, 0xa2, 0x28, 0x5a, 0xb4, 0x3f, 0xbd, 0x24, 0xbe,
0x0b, 0x2d, 0x62, 0x18, 0x27, 0x3c, 0x92, 0x82, 0xd8, 0xb3, 0x05, 0xb1, 0xb0, 0x42, 0xbb, 0x67,
0xbc, 0x82, 0xd8, 0x10, 0xc3, 0xbf, 0x77, 0xa0, 0x2d, 0xbb, 0xf9, 0x13, 0xc7, 0x12, 0x7d, 0x58,
0x42, 0x89, 0x34, 0x1c, 0x76, 0x5d, 0xc6, 0xdd, 0x64, 0x82, 0x01, 0x1b, 0x6e, 0x9f, 0x56, 0x1c,
0x51, 0x86, 0x71, 0x2f, 0x24, 0x83, 0x9b, 0x0d, 0xf2, 0x20, 0x1c, 0xa8, 0x5a, 0x99, 0x80, 0xac,
0xab, 0x42, 0xbb, 0x93, 0xe5, 0xfe, 0x98, 0xcb, 0x6d, 0x4e, 0x14, 0x30, 0x60, 0x92, 0x03, 0x2a,
0xb9, 0x83, 0xee, 0x5f, 0x77, 0xe0, 0x5c, 0xa5, 0x4a, 0x27, 0xd0, 0xa5, 0x83, 0x1c, 0x06, 0x93,
0x83, 0x58, 0xfb, 0xda, 0x8e, 0xe9, 0x3b, 0x5b, 0x55, 0x6c, 0x0c, 0x67, 0xd5, 0x7e, 0x8e, 0x73,
0x5a, 0xec, 0xde, 0x0d, 0x72, 0x44, 0xde, 0xb6, 0x65, 0xa0, 0xdc, 0xa0, 0xc2, 0x4d, 0xcd, 0xad,
0xe7, 0xc7, 0x8e, 0xa0, 0xa7, 0x1d, 0x07, 0x69, 0xe2, 0x0d, 0xe7, 0x02, 0xdb, 0x7a, 0xeb, 0x25,
0x6d, 0x91, 0x3d, 0x1a, 0xa9, 0x66, 0x4e, 0xe5, 0xc6, 0x66, 0x70, 0x49, 0xd5, 0x91, 0x0d, 0xaf,
0xb6, 0xd7, 0x7c, 0xa5, 0xb1, 0xdd, 0xc3, 0x8f, 0xed, 0x46, 0x5f, 0xc2, 0x98, 0x7d, 0x08, 0x9b,
0x27, 0x7e, 0x90, 0xab, 0x6e, 0x19, 0xce, 0xd0, 0x3c, 0x35, 0xb9, 0xf3, 0x92, 0x26, 0x9f, 0x88,
0x8f, 0xad, 0x8d, 0xed, 0x14, 0x8e, 0xfd, 0xbf, 0x75, 0xa0, 0x6b, 0xf3, 0x41, 0x31, 0x95, 0x0a,
0xaf, 0x0c, 0x9f, 0x72, 0xfe, 0x4a, 0x70, 0x35, 0x44, 0x6d, 0xd4, 0x85, 0xa8, 0x66, 0x20, 0x3a,
0xf7, 0xb2, 0x40, 0xb4, 0xf9, 0x6a, 0x81, 0xe8, 0x7c, 0x5d, 0x20, 0xda, 0xff, 0x4f, 0x07, 0x58,
0x55, 0x96, 0xd8, 0x7d, 0x11, 0x23, 0x47, 0x3c, 0x94, 0x36, 0xe9, 0xe7, 0x5e, 0x4d, 0x1e, 0xd5,
0xdc, 0xa9, 0xaf, 0x51, 0x31, 0x4c, 0xa3, 0x63, 0xba, 0x48, 0xcb, 0x5e, 0x5d, 0x55, 0x29, 0x34,
0x6e, 0xbe, 0x3c, 0x34, 0x9e, 0x7f, 0x79, 0x68, 0xbc, 0x50, 0x0e, 0x8d, 0xfb, 0xbf, 0xeb, 0xc0,
0x7a, 0xcd, 0xa2, 0xff, 0xec, 0x06, 0x8e, 0xcb, 0x64, 0xd9, 0x82, 0x86, 0x5c, 0x26, 0x13, 0xec,
0xff, 0x06, 0x2c, 0x5b, 0x82, 0xfe, 0xb3, 0x6b, 0xbf, 0xec, 0xe5, 0x09, 0x39, 0xb3, 0xb0, 0xfe,
0x8f, 0x1a, 0xc0, 0xaa, 0xca, 0xf6, 0x7f, 0xda, 0x87, 0xea, 0x3c, 0xcd, 0xd5, 0xcc, 0xd3, 0xff,
0xea, 0x3e, 0xf0, 0x16, 0xac, 0xc9, 0xd3, 0x36, 0x23, 0x4b, 0x22, 0x24, 0xa6, 0x5a, 0x81, 0x7e,
0xae, 0x9d, 0x97, 0x58, 0xb2, 0x8e, 0x89, 0x8c, 0xcd, 0xb0, 0x94, 0x9e, 0x70, 0x37, 0x61, 0x43,
0x9c, 0xde, 0xdd, 0x12, 0xac, 0xd4, 0xbe, 0xf2, 0x27, 0x0e, 0x9c, 0x2d, 0x55, 0x14, 0x67, 0x29,
0x62, 0xeb, 0xb0, 0xf7, 0x13, 0x1b, 0xc4, 0xfe, 0x4b, 0x3d, 0x32, 0xfa, 0x2f, 0xa4, 0xad, 0x5a,
0x81, 0xf3, 0x33, 0x8d, 0xaa, 0xf4, 0x62, 0xd6, 0xeb, 0xaa, 0xdc, 0x73, 0x70, 0x56, 0xae, 0x6c,
0xa9, 0xe3, 0x87, 0xb0, 0x59, 0xae, 0x28, 0x92, 0xc3, 0x76, 0x97, 0x55, 0x11, 0xbd, 0x40, 0x6b,
0x9b, 0xb2, 0xfb, 0x5b, 0x5b, 0xe7, 0xfe, 0x3a, 0xb0, 0xaf, 0x4f, 0x79, 0x3a, 0xa3, 0x93, 0x1e,
0x9d, 0x9d, 0x39, 0x57, 0x4e, 0x63, 0x2c, 0x24, 0xd3, 0x83, 0xaf, 0xf2, 0x99, 0x3a, 0x4a, 0x6b,
0x14, 0x47, 0x69, 0xaf, 0x01, 0x60, 0xf4, 0x45, 0x47, 0x43, 0xea, 0x70, 0x13, 0xc3, 0x5e, 0xc1,
0xd0, 0xbd, 0x01, 0xeb, 0x16, 0x7f, 0x3d, 0xfb, 0x0b, 0xf2, 0x0b, 0x91, 0x1b, 0xb0, 0x0f, 0x9c,
0x64, 0x9d, 0xfb, 0xef, 0x0e, 0xcc, 0xed, 0xc6, 0x89, 0x99, 0x55, 0x74, 0xec, 0xac, 0xa2, 0x34,
0xf9, 0x03, 0x6d, 0xd1, 0xa5, 0x25, 0xb0, 0x40, 0xb6, 0x05, 0x5d, 0x7f, 0x92, 0x63, 0x74, 0x7c,
0x18, 0xa7, 0x27, 0x7e, 0x3a, 0x12, 0x4b, 0x72, 0xab, 0xd1, 0x73, 0xbc, 0x52, 0x0d, 0xdb, 0x80,
0x39, 0x6d, 0x1b, 0x89, 0x00, 0x8b, 0xe8, 0x5f, 0x51, 0x72, 0x75, 0x26, 0x03, 0x7b, 0x59, 0xc2,
0x15, 0xb7, 0xbf, 0x17, 0x1e, 0xad, 0x90, 0xf0, 0xba, 0x2a, 0xdc, 0x7e, 0xd0, 0x54, 0x12, 0x99,
0xcc, 0xc8, 0xa8, 0xb2, 0xfb, 0xaf, 0x0e, 0xcc, 0xd3, 0x0c, 0xa0, 0x4e, 0x0a, 0x41, 0xa4, 0xb3,
0x5b, 0xca, 0x04, 0x3b, 0x42, 0x27, 0x4b, 0x30, 0x73, 0xad, 0x13, 0xdd, 0x86, 0xee, 0xb6, 0x79,
0xaa, 0x7b, 0x19, 0x5a, 0xa2, 0xa4, 0x8f, 0x41, 0x89, 0xa4, 0x00, 0xd9, 0x25, 0x68, 0x1e, 0xc5,
0x89, 0x72, 0x22, 0x40, 0x25, 0x02, 0xe3, 0xc4, 0x23, 0xbc, 0xe8, 0x0f, 0xf2, 0x13, 0x9d, 0x17,
0x5b, 0x43, 0x19, 0xc6, 0xcd, 0x51, 0xb3, 0x35, 0x27, 0xa3, 0x84, 0xba, 0x5b, 0xb0, 0xf2, 0x30,
0x1e, 0x71, 0x23, 0xf5, 0x73, 0xaa, 0xd4, 0xb9, 0xbf, 0xe9, 0xc0, 0x92, 0x22, 0x66, 0x57, 0xa1,
0x89, 0x3b, 0x7e, 0xc9, 0x9f, 0xd7, 0x07, 0x00, 0x48, 0xe7, 0x11, 0x05, 0x9a, 0x48, 0x4a, 0x0c,
0x14, 0xde, 0x9f, 0x4a, 0x0b, 0x14, 0xce, 0x8d, 0xee, 0x6e, 0xc9, 0x27, 0x28, 0xa1, 0xee, 0x9f,
0x3b, 0xb0, 0x6c, 0xb5, 0x81, 0x51, 0x5c, 0xe8, 0x67, 0xb9, 0x4c, 0xaa, 0xca, 0xe5, 0x31, 0x21,
0x33, 0x19, 0xd8, 0xb0, 0x93, 0x81, 0x3a, 0x4d, 0x35, 0x67, 0xa6, 0xa9, 0xae, 0x43, 0xab, 0x38,
0x77, 0x6f, 0x5a, 0xa6, 0x0f, 0x5b, 0x54, 0x47, 0x1b, 0x05, 0x11, 0xf2, 0x19, 0xc6, 0x61, 0x9c,
0xca, 0x63, 0x69, 0x51, 0x70, 0x6f, 0x40, 0xdb, 0xa0, 0xc7, 0x6e, 0x44, 0x3c, 0x3f, 0x89, 0xd3,
0xa7, 0x2a, 0x27, 0x29, 0x8b, 0xfa, 0x04, 0xaf, 0x51, 0x9c, 0xe0, 0xb9, 0x7f, 0xe1, 0xc0, 0x32,
0xca, 0x60, 0x10, 0x8d, 0xf7, 0xe2, 0x30, 0x18, 0xce, 0x68, 0xed, 0x95, 0xb8, 0xc9, 0xf3, 0x6a,
0x25, 0x8b, 0x36, 0x8c, 0xb2, 0xad, 0x82, 0x38, 0xa9, 0x88, 0xba, 0x8c, 0x9a, 0x8a, 0x72, 0x7e,
0xe0, 0x67, 0x52, 0xf8, 0xe5, 0x5e, 0x64, 0x81, 0xa8, 0x4f, 0x08, 0xa4, 0x7e, 0xce, 0x07, 0x93,
0x20, 0x0c, 0x03, 0x41, 0x2b, 0x3c, 0x95, 0xba, 0x2a, 0xf7, 0x07, 0x0d, 0x68, 0x4b, 0x4b, 0x79,
0x77, 0x34, 0x16, 0xd9, 0x7f, 0xe9, 0xef, 0x69, 0x73, 0x61, 0x20, 0xaa, 0xde, 0xf2, 0x10, 0x0d,
0xa4, 0xbc, 0xac, 0x73, 0xd5, 0x65, 0xbd, 0x08, 0x2d, 0x14, 0xaf, 0xb7, 0xc9, 0x15, 0x15, 0xd7,
0x34, 0x0a, 0x40, 0xd5, 0xee, 0x50, 0xed, 0x7c, 0x51, 0x4b, 0x80, 0xe5, 0x7c, 0x2e, 0x94, 0x9c,
0xcf, 0x77, 0xa1, 0x23, 0xd9, 0xd0, 0xbc, 0x93, 0x75, 0x28, 0x04, 0xdc, 0x5a, 0x13, 0xcf, 0xa2,
0x54, 0x5f, 0xee, 0xa8, 0x2f, 0x97, 0x5e, 0xf6, 0xa5, 0xa2, 0xa4, 0xc3, 0x30, 0x31, 0x37, 0xf7,
0x53, 0x3f, 0x39, 0x52, 0xbb, 0xcf, 0x48, 0x9f, 0xf0, 0x13, 0xcc, 0xb6, 0x60, 0x1e, 0x3f, 0x53,
0xd6, 0xba, 0x5e, 0xe9, 0x04, 0x09, 0xbb, 0x0a, 0xf3, 0x7c, 0x34, 0xe6, 0x2a, 0xd8, 0x62, 0x76,
0xd8, 0x8b, 0x6b, 0xe4, 0x09, 0x02, 0x34, 0x01, 0x88, 0x96, 0x4c, 0x80, 0x6d, 0xe9, 0x17, 0xb0,
0xf8, 0xfe, 0xc8, 0xdd, 0x00, 0xf6, 0x50, 0x48, 0xad, 0x99, 0x2c, 0xfe, 0x9d, 0x39, 0x68, 0x1b,
0x30, 0x6a, 0xf3, 0x18, 0x3b, 0x3c, 0x18, 0x05, 0xfe, 0x84, 0xe7, 0x3c, 0x95, 0x92, 0x5a, 0x42,
0x91, 0xce, 0x3f, 0x1e, 0x0f, 0xe2, 0x69, 0x3e, 0x18, 0xf1, 0x71, 0xca, 0xc5, 0x1e, 0x89, 0x9b,
0x81, 0x85, 0x22, 0xdd, 0xc4, 0x7f, 0x66, 0xd2, 0x09, 0x79, 0x28, 0xa1, 0x2a, 0xf5, 0x2b, 0xe6,
0xa8, 0x59, 0xa4, 0x7e, 0xc5, 0x8c, 0x94, 0xed, 0xd0, 0x7c, 0x8d, 0x1d, 0x7a, 0x07, 0x36, 0x85,
0xc5, 0x91, 0xba, 0x39, 0x28, 0x89, 0xc9, 0x29, 0xb5, 0x6c, 0x0b, 0x56, 0xb1, 0xcf, 0x4a, 0xc0,
0xb3, 0xe0, 0x63, 0x91, 0x8c, 0x71, 0xbc, 0x0a, 0x8e, 0xb4, 0xa8, 0x8e, 0x16, 0xad, 0x38, 0x1e,
0xab, 0xe0, 0x44, 0xeb, 0x3f, 0xb3, 0x69, 0x5b, 0x92, 0xb6, 0x84, 0xbb, 0xcb, 0xd0, 0xde, 0xcf,
0xe3, 0x44, 0x2d, 0x4a, 0x17, 0x3a, 0xa2, 0x28, 0x0f, 0x43, 0x2f, 0xc0, 0x79, 0x92, 0xa2, 0x47,
0x71, 0x12, 0x87, 0xf1, 0x78, 0xb6, 0x3f, 0x3d, 0xc8, 0x86, 0x69, 0x90, 0x60, 0x60, 0xe2, 0xfe,
0x9d, 0x03, 0xeb, 0x56, 0xad, 0xcc, 0xde, 0x7c, 0x5e, 0x88, 0xb4, 0x3e, 0xc5, 0x12, 0x82, 0xb7,
0x66, 0x98, 0x43, 0x41, 0x28, 0xf2, 0x66, 0x8f, 0xe5, 0xc1, 0xd6, 0x4d, 0x58, 0x51, 0x3d, 0x53,
0x1f, 0x0a, 0x29, 0xec, 0x55, 0xa5, 0x50, 0x7e, 0xdf, 0x95, 0x1f, 0x28, 0x16, 0xbf, 0x28, 0xfc,
0x6a, 0x3e, 0xa2, 0x31, 0xaa, 0x30, 0xbe, 0xaf, 0xbe, 0x37, 0x9d, 0x79, 0xd5, 0x83, 0xa1, 0x06,
0x33, 0xf7, 0xf7, 0x1d, 0x80, 0xa2, 0x77, 0x28, 0x18, 0x85, 0x49, 0x17, 0x37, 0xfe, 0x0c, 0xf3,
0xfd, 0x06, 0x74, 0xf4, 0x01, 0x46, 0xb1, 0x4b, 0xb4, 0x15, 0x86, 0x0e, 0xd7, 0x15, 0x58, 0x19,
0x87, 0xf1, 0x01, 0x6d, 0xb1, 0x74, 0xba, 0x9e, 0xc9, 0x23, 0xe1, 0xae, 0x80, 0xef, 0x49, 0xb4,
0xd8, 0x52, 0x9a, 0xc6, 0x96, 0xe2, 0x7e, 0xa7, 0xa1, 0xd3, 0xde, 0xc5, 0x98, 0x4f, 0xd5, 0x32,
0xb6, 0x53, 0x31, 0x8e, 0xa7, 0x64, 0x99, 0x29, 0x61, 0xb5, 0xf7, 0xd2, 0x78, 0xfa, 0x06, 0x74,
0x53, 0x61, 0x7d, 0x94, 0x69, 0x6a, 0xbe, 0xc0, 0x34, 0x2d, 0xa7, 0xd6, 0xbe, 0xf3, 0xff, 0x60,
0xd5, 0x1f, 0x1d, 0xf3, 0x34, 0x0f, 0x28, 0xa2, 0xa1, 0x4d, 0x5f, 0x18, 0xd4, 0x15, 0x03, 0xa7,
0xbd, 0xf8, 0x0a, 0xac, 0xc8, 0x63, 0x78, 0x4d, 0x29, 0x2f, 0x5f, 0x15, 0x30, 0x12, 0xba, 0xdf,
0x57, 0x19, 0x76, 0x7b, 0x0d, 0x4f, 0x9f, 0x11, 0x73, 0x74, 0x8d, 0xd2, 0xe8, 0x3e, 0x23, 0xb3,
0xdd, 0x23, 0x15, 0x36, 0xc9, 0x73, 0x07, 0x01, 0xca, 0xd3, 0x09, 0x7b, 0x4a, 0x9b, 0xaf, 0x32,
0xa5, 0xee, 0xa7, 0x0e, 0x2c, 0xee, 0xc6, 0xc9, 0xae, 0x3c, 0x51, 0x27, 0x45, 0xd0, 0x97, 0x5c,
0x54, 0xd1, 0xf4, 0x8a, 0x1b, 0x15, 0xaf, 0xb8, 0xba, 0xd7, 0x2e, 0x97, 0xf7, 0xda, 0x5f, 0x82,
0x0b, 0x14, 0xb4, 0xa7, 0x71, 0x12, 0xa7, 0xa8, 0x8c, 0x7e, 0x28, 0x36, 0xd6, 0x38, 0xca, 0x8f,
0x94, 0x19, 0x7b, 0x11, 0x09, 0x45, 0x47, 0x61, 0x7e, 0x3c, 0x10, 0xce, 0xb0, 0xf4, 0x0d, 0x84,
0x75, 0xab, 0x56, 0xb8, 0x5f, 0x84, 0x16, 0x39, 0xb7, 0x34, 0xac, 0xb7, 0xa0, 0x75, 0x14, 0x27,
0x83, 0xa3, 0x20, 0xca, 0x95, 0x72, 0x77, 0x0b, 0xaf, 0x73, 0x97, 0x26, 0x44, 0x13, 0xb8, 0x3f,
0x9a, 0x83, 0xc5, 0xf7, 0xa3, 0xe3, 0x38, 0x18, 0x52, 0x32, 0x7e, 0xc2, 0x27, 0xb1, 0xba, 0xf2,
0x83, 0xbf, 0x71, 0x2a, 0xe8, 0xf8, 0x3b, 0xc9, 0x65, 0x36, 0x5d, 0x15, 0x71, 0xbb, 0x4f, 0x8b,
0x6b, 0x70, 0x42, 0x75, 0x0c, 0x04, 0x1d, 0xfb, 0xd4, 0xbc, 0x03, 0x28, 0x4b, 0xc5, 0x9d, 0xa9,
0x79, 0xe3, 0xce, 0x14, 0x1d, 0xdd, 0x88, 0x93, 0x7d, 0x92, 0xaf, 0x25, 0x4f, 0x15, 0x29, 0x10,
0x49, 0xb9, 0x48, 0xb6, 0x90, 0xe3, 0xb0, 0x28, 0x03, 0x11, 0x13, 0x44, 0xe7, 0x42, 0x7c, 0x20,
0x68, 0x84, 0xf1, 0x35, 0x21, 0x74, 0xb6, 0xca, 0xd7, 0x08, 0x5b, 0x42, 0xe6, 0x4b, 0x30, 0x5a,
0xe8, 0x11, 0xd7, 0x86, 0x54, 0x8c, 0x01, 0xc4, 0x35, 0xbf, 0x32, 0x6e, 0x84, 0x2f, 0xe2, 0x86,
0x82, 0x0a, 0x5f, 0x50, 0x50, 0xfc, 0x30, 0x3c, 0xf0, 0x87, 0x4f, 0xe9, 0x72, 0x27, 0x5d, 0x48,
0x68, 0x79, 0x36, 0x88, 0xbd, 0x36, 0x56, 0x93, 0x0e, 0xff, 0x9a, 0x9e, 0x09, 0xb1, 0x1d, 0x68,
0x53, 0xc8, 0x26, 0xd7, 0xb3, 0x4b, 0xeb, 0xb9, 0x6a, 0xc6, 0x74, 0xb4, 0xa2, 0x26, 0x91, 0x79,
0x40, 0xb0, 0x62, 0xdf, 0x19, 0xf8, 0x06, 0xb0, 0x9b, 0xa3, 0x91, 0x5c, 0x6f, 0x1d, 0x32, 0x16,
0x2b, 0xe5, 0x58, 0x2b, 0x55, 0x33, 0x63, 0x8d, 0xda, 0x19, 0x73, 0xef, 0x42, 0x7b, 0xcf, 0xb8,
0xe1, 0x49, 0xa2, 0xa1, 0xee, 0x76, 0x4a, 0x71, 0x32, 0x10, 0xa3, 0xc1, 0x86, 0xd9, 0xa0, 0xfb,
0xf3, 0xc0, 0x1e, 0x04, 0x59, 0xae, 0xfb, 0x27, 0x96, 0xe3, 0x0d, 0xe8, 0xe8, 0x00, 0xbb, 0xb8,
0xd1, 0xd0, 0x96, 0x18, 0xdd, 0x34, 0xb8, 0x29, 0xae, 0x42, 0x94, 0x07, 0xb6, 0x05, 0x4b, 0x81,
0x80, 0xca, 0x9a, 0xa0, 0x28, 0x75, 0x3d, 0xfa, 0x6b, 0x12, 0xb4, 0x76, 0xd1, 0x1f, 0x38, 0xb0,
0x28, 0x87, 0x86, 0xde, 0x86, 0x75, 0xb7, 0x55, 0x0c, 0xcc, 0xc2, 0xea, 0x6f, 0x04, 0x56, 0x65,
0x78, 0xae, 0x4e, 0x86, 0x19, 0x34, 0x13, 0x3f, 0x3f, 0xa2, 0x00, 0xa5, 0xe5, 0xd1, 0x6f, 0xb6,
0x2a, 0x82, 0x66, 0xa1, 0x2b, 0x14, 0x30, 0xd7, 0x5d, 0x42, 0x15, 0x26, 0xb9, 0x82, 0xe3, 0xa0,
0xe8, 0xf2, 0x80, 0xc0, 0xf5, 0x99, 0x80, 0xbc, 0x98, 0x51, 0xc0, 0xc5, 0x7c, 0x49, 0x16, 0xe5,
0xf9, 0x92, 0xa4, 0x9e, 0xae, 0x77, 0xfb, 0xd0, 0xbb, 0xc3, 0x43, 0x9e, 0xf3, 0x9b, 0x61, 0x58,
0xe6, 0x7f, 0x01, 0xce, 0xd7, 0xd4, 0x49, 0xa7, 0xe5, 0x1e, 0xac, 0xdd, 0xe1, 0x07, 0xd3, 0xf1,
0x03, 0x7e, 0x5c, 0x1c, 0xdc, 0x31, 0x68, 0x66, 0x47, 0xf1, 0x89, 0x5c, 0x5b, 0xfa, 0xcd, 0x5e,
0x03, 0x08, 0x91, 0x66, 0x90, 0x25, 0x7c, 0xa8, 0xee, 0xc2, 0x11, 0xb2, 0x9f, 0xf0, 0xa1, 0xfb,
0x0e, 0x30, 0x93, 0x8f, 0x1c, 0x02, 0xda, 0x81, 0xe9, 0xc1, 0x20, 0x9b, 0x65, 0x39, 0x9f, 0xa8,
0x4b, 0x7e, 0x26, 0xe4, 0x5e, 0x81, 0xce, 0x9e, 0x3f, 0xf3, 0xf8, 0x47, 0xf2, 0x7a, 0x31, 0xc6,
0xc6, 0xfe, 0x0c, 0x45, 0x59, 0xc7, 0xc6, 0x54, 0xed, 0xfe, 0x47, 0x03, 0x16, 0x04, 0x25, 0x72,
0x1d, 0xf1, 0x2c, 0x0f, 0x22, 0x71, 0x68, 0x25, 0xb9, 0x1a, 0x50, 0x45, 0x36, 0x1a, 0x35, 0xb2,
0x21, 0xbd, 0x55, 0x75, 0xaf, 0x48, 0x0a, 0x81, 0x85, 0xa1, 0x5b, 0x53, 0x5c, 0x06, 0x10, 0xc1,
0x59, 0x01, 0x94, 0x92, 0x25, 0x85, 0xb5, 0x11, 0xfd, 0x53, 0x42, 0x2b, 0xc5, 0xc1, 0x84, 0x6a,
0x6d, 0xda, 0xa2, 0x90, 0x9a, 0x8a, 0x4d, 0xab, 0xd8, 0xae, 0xa5, 0x57, 0xb0, 0x5d, 0xc2, 0x85,
0x7d, 0x91, 0xed, 0x82, 0x57, 0xb0, 0x5d, 0x2e, 0x83, 0xd5, 0x7b, 0x9c, 0x7b, 0x1c, 0x77, 0x45,
0x25, 0x4e, 0xdf, 0x75, 0x60, 0x55, 0x6e, 0xe8, 0xba, 0x8e, 0xbd, 0x61, 0xed, 0xfe, 0x4e, 0xdd,
0x79, 0xc4, 0x9b, 0xb0, 0x4c, 0x7b, 0xb2, 0xce, 0x0a, 0xc9, 0x14, 0x96, 0x05, 0xe2, 0x38, 0x54,
0x86, 0x7d, 0x12, 0x84, 0x72, 0x51, 0x4c, 0x48, 0x25, 0x96, 0x30, 0x3e, 0xa6, 0x25, 0x71, 0x3c,
0x5d, 0x76, 0xff, 0xca, 0x81, 0x35, 0xa3, 0xc3, 0x52, 0x0a, 0x6f, 0x80, 0xba, 0x2c, 0x20, 0x92,
0x47, 0x42, 0x99, 0xce, 0xd9, 0xce, 0x49, 0xf1, 0x99, 0x45, 0x4c, 0x8b, 0xe9, 0xcf, 0xa8, 0x83,
0xd9, 0x74, 0x22, 0x3d, 0x10, 0x13, 0x42, 0x41, 0x3a, 0xe1, 0xfc, 0xa9, 0x26, 0x99, 0x23, 0x12,
0x0b, 0xa3, 0xb3, 0x60, 0xf4, 0x25, 0x34, 0x91, 0xb8, 0xfe, 0x64, 0x83, 0xee, 0x3f, 0x38, 0xb0,
0x2e, 0x9c, 0x42, 0xe9, 0x72, 0xeb, 0xab, 0x99, 0x0b, 0xc2, 0x0b, 0x16, 0x1a, 0xb9, 0x7b, 0xc6,
0x93, 0x65, 0xf6, 0x85, 0x57, 0x74, 0x64, 0xf5, 0x1d, 0x80, 0x53, 0xd6, 0x62, 0xae, 0x6e, 0x2d,
0x5e, 0x30, 0xd3, 0x75, 0xc9, 0x92, 0xf9, 0xda, 0x64, 0xc9, 0xad, 0x45, 0x98, 0xcf, 0x86, 0x71,
0xc2, 0xdd, 0x4d, 0xd8, 0xb0, 0x07, 0x27, 0x4d, 0xd0, 0xf7, 0x1c, 0xe8, 0xdd, 0x13, 0xa9, 0xc3,
0x20, 0x1a, 0xef, 0x06, 0x59, 0x1e, 0xa7, 0xfa, 0x2e, 0xfa, 0x25, 0x80, 0x2c, 0xf7, 0xd3, 0x5c,
0xdc, 0xd1, 0x92, 0x69, 0x8e, 0x02, 0xc1, 0x3e, 0xf2, 0x68, 0x24, 0x6a, 0xc5, 0xda, 0xe8, 0x32,
0x2e, 0x0c, 0xdd, 0x4f, 0x18, 0xc4, 0x87, 0x87, 0x19, 0xd7, 0x6e, 0xab, 0x89, 0x61, 0xe4, 0x8b,
0x1a, 0x8f, 0xb1, 0x1e, 0x3f, 0x26, 0x53, 0x2b, 0xfc, 0xc1, 0x12, 0xea, 0xfe, 0xa5, 0x03, 0x2b,
0x45, 0x27, 0xef, 0x22, 0x68, 0x5b, 0x07, 0xd1, 0x35, 0xc3, 0x3a, 0xa8, 0x04, 0x4c, 0x30, 0x1a,
0x04, 0x91, 0xec, 0x9b, 0x81, 0x90, 0xc6, 0xca, 0x52, 0x3c, 0x55, 0xf7, 0xe1, 0x4c, 0x48, 0x1c,
0x76, 0xe7, 0xf8, 0xb5, 0xb8, 0x0c, 0x27, 0x4b, 0x74, 0xc5, 0x6e, 0x92, 0xd3, 0x57, 0x0b, 0xc2,
0x21, 0x96, 0x45, 0xb5, 0x3f, 0x2d, 0x12, 0x8a, 0x3f, 0xdd, 0x3f, 0x70, 0xe0, 0x7c, 0xcd, 0xe4,
0x4a, 0xcd, 0xb8, 0x03, 0x6b, 0x87, 0xba, 0x52, 0x4d, 0x80, 0x50, 0x8f, 0x4d, 0x29, 0x45, 0xa5,
0x41, 0x7b, 0xd5, 0x0f, 0xd0, 0x3d, 0xa6, 0xbc, 0x91, 0x98, 0x52, 0xeb, 0x9e, 0x48, 0xb5, 0x62,
0xe7, 0xfb, 0x0d, 0xe8, 0x8a, 0xa3, 0x0a, 0xf1, 0x1a, 0x89, 0xa7, 0xec, 0x03, 0x58, 0x94, 0xaf,
0xc9, 0xd8, 0x59, 0xd9, 0xac, 0xfd, 0x7e, 0xad, 0xbf, 0x59, 0x86, 0xa5, 0xec, 0xac, 0xff, 0xf6,
0xa7, 0xff, 0xfc, 0x87, 0x8d, 0x65, 0xd6, 0xde, 0x3e, 0x7e, 0x7b, 0x7b, 0xcc, 0xa3, 0x0c, 0x79,
0xfc, 0x2a, 0x40, 0xf1, 0xce, 0x8a, 0xf5, 0xb4, 0x93, 0x51, 0x7a, 0x40, 0xd6, 0x3f, 0x5f, 0x53,
0x23, 0xf9, 0x9e, 0x27, 0xbe, 0xeb, 0x6e, 0x17, 0xf9, 0x06, 0x51, 0x90, 0x8b, 0x47, 0x57, 0xef,
0x39, 0x5b, 0x6c, 0x04, 0x1d, 0xf3, 0x19, 0x15, 0x53, 0x21, 0x73, 0xcd, 0x23, 0xae, 0xfe, 0x85,
0xda, 0x3a, 0x95, 0x2f, 0xa0, 0x36, 0xce, 0xba, 0xab, 0xd8, 0xc6, 0x94, 0x28, 0x74, 0x2b, 0x3b,
0xff, 0x78, 0x01, 0x5a, 0x3a, 0xed, 0xc4, 0x3e, 0x84, 0x65, 0xeb, 0x74, 0x87, 0x29, 0xc6, 0x75,
0x87, 0x41, 0xfd, 0x8b, 0xf5, 0x95, 0xb2, 0xd9, 0x4b, 0xd4, 0x6c, 0x8f, 0x6d, 0x62, 0xb3, 0xf2,
0x78, 0x64, 0x9b, 0xce, 0xb4, 0xc4, 0x95, 0xba, 0xa7, 0xd0, 0xb5, 0x4f, 0x64, 0xd8, 0x45, 0xdb,
0xa0, 0x94, 0x5a, 0x7b, 0xed, 0x94, 0x5a, 0xd9, 0xdc, 0x45, 0x6a, 0x6e, 0x93, 0x6d, 0x98, 0xcd,
0xe9, 0x74, 0x10, 0xa7, 0x4b, 0x90, 0xe6, 0xfb, 0x2a, 0xf6, 0x9a, 0x5e, 0xea, 0xba, 0x77, 0x57,
0x7a, 0xd1, 0xaa, 0x8f, 0xaf, 0xdc, 0x1e, 0x35, 0xc5, 0x18, 0x4d, 0xa8, 0xf9, 0xbc, 0x8a, 0x7d,
0x0b, 0x5a, 0xfa, 0x4d, 0x05, 0x3b, 0x67, 0x3c, 0x64, 0x31, 0x1f, 0x7a, 0xf4, 0x7b, 0xd5, 0x8a,
0xba, 0xa5, 0x32, 0x39, 0xa3, 0x40, 0x3c, 0x80, 0xb3, 0xd2, 0x49, 0x3d, 0xe0, 0x3f, 0xce, 0x48,
0x6a, 0x5e, 0x85, 0x5d, 0x77, 0xd8, 0x0d, 0x58, 0x52, 0x4f, 0x55, 0xd8, 0x66, 0xfd, 0x93, 0x9b,
0xfe, 0xb9, 0x0a, 0x2e, 0xf5, 0xf9, 0x26, 0x40, 0xf1, 0xcc, 0x42, 0x4b, 0x7e, 0xe5, 0xf1, 0x87,
0x9e, 0xc4, 0x9a, 0x37, 0x19, 0x63, 0x7a, 0x54, 0x62, 0xbf, 0xe2, 0x60, 0xaf, 0x17, 0xf4, 0xb5,
0xef, 0x3b, 0x5e, 0xc0, 0xd0, 0xdd, 0xa4, 0xb9, 0x5b, 0x65, 0xa4, 0x4a, 0x11, 0x3f, 0x51, 0xd7,
0x81, 0xef, 0x40, 0xdb, 0x78, 0xba, 0xc1, 0x14, 0x87, 0xea, 0xb3, 0x8f, 0x7e, 0xbf, 0xae, 0x4a,
0x76, 0xf7, 0x2b, 0xb0, 0x6c, 0xbd, 0xc1, 0xd0, 0x9a, 0x51, 0xf7, 0xc2, 0x43, 0x6b, 0x46, 0xfd,
0xb3, 0x8d, 0x6f, 0x42, 0xdb, 0x78, 0x31, 0xc1, 0x8c, 0x6b, 0x50, 0xa5, 0xb7, 0x12, 0xba, 0x47,
0x75, 0x0f, 0x2c, 0x36, 0x68, 0xbc, 0x5d, 0xb7, 0x85, 0xe3, 0xa5, 0x3b, 0xb1, 0x28, 0x24, 0x1f,
0x42, 0xd7, 0x7e, 0x43, 0xa1, 0xb5, 0xaa, 0xf6, 0x35, 0x86, 0xd6, 0xaa, 0x53, 0x1e, 0x5e, 0x48,
0x81, 0xdc, 0x5a, 0xd7, 0x8d, 0x6c, 0x7f, 0x22, 0x0f, 0x5d, 0x9e, 0xb3, 0xaf, 0xa3, 0xe9, 0x90,
0x97, 0x94, 0x59, 0xf1, 0x72, 0xc4, 0xbe, 0xca, 0xac, 0xa5, 0xbd, 0x72, 0x9f, 0xd9, 0x5d, 0x23,
0xe6, 0x6d, 0x56, 0x8c, 0x40, 0x58, 0x68, 0xba, 0xac, 0x6c, 0x58, 0x68, 0xf3, 0x3e, 0xb3, 0x61,
0xa1, 0xad, 0x3b, 0xcd, 0x65, 0x0b, 0x9d, 0x07, 0xc8, 0x23, 0x82, 0x95, 0xd2, 0x3d, 0x00, 0xad,
0x2c, 0xf5, 0x17, 0xa7, 0xfa, 0x97, 0x5e, 0x7c, 0x7d, 0xc0, 0x36, 0x33, 0xca, 0xbc, 0x6c, 0xab,
0x7b, 0x6e, 0xbf, 0x06, 0x1d, 0xf3, 0xee, 0xbb, 0xb6, 0xd9, 0x35, 0x37, 0xf6, 0xb5, 0xcd, 0xae,
0xbb, 0x2c, 0xaf, 0x16, 0x97, 0x75, 0xcc, 0x66, 0xd8, 0x37, 0x61, 0xc5, 0xb8, 0xf8, 0xb2, 0x3f,
0x8b, 0x86, 0x5a, 0x78, 0xaa, 0xd7, 0x22, 0xfb, 0x75, 0xfe, 0x99, 0x7b, 0x8e, 0x18, 0xaf, 0xb9,
0x16, 0x63, 0x14, 0x9c, 0xdb, 0xd0, 0x36, 0x2f, 0xd5, 0xbc, 0x80, 0xef, 0x39, 0xa3, 0xca, 0xbc,
0x21, 0x78, 0xdd, 0x61, 0x7f, 0xec, 0x40, 0xc7, 0xba, 0xa2, 0x62, 0xe5, 0x79, 0x4b, 0x7c, 0x7a,
0x66, 0x9d, 0xc9, 0xc8, 0xf5, 0xa8, 0x93, 0x0f, 0xb6, 0xbe, 0x62, 0x4d, 0xf2, 0x27, 0x96, 0x9f,
0x7f, 0xad, 0xfc, 0xac, 0xf1, 0x79, 0x99, 0xc0, 0xbc, 0x3a, 0xfa, 0xfc, 0xba, 0xc3, 0xde, 0x13,
0x4f, 0x5f, 0x55, 0x5c, 0xcf, 0x0c, 0xe3, 0x56, 0x9e, 0x32, 0xf3, 0x95, 0xe8, 0x55, 0xe7, 0xba,
0xc3, 0xbe, 0x2d, 0x5e, 0x2f, 0xca, 0x6f, 0x69, 0xe6, 0x5f, 0xf5, 0x7b, 0xf7, 0x4d, 0x1a, 0xcd,
0x25, 0xf7, 0xbc, 0x35, 0x9a, 0xb2, 0x75, 0xdf, 0x03, 0x28, 0x92, 0x34, 0xac, 0x94, 0xb1, 0xd0,
0x76, 0xaf, 0x9a, 0xc7, 0xb1, 0x57, 0x54, 0x25, 0x36, 0x90, 0xe3, 0xb7, 0x84, 0x30, 0x4a, 0xfa,
0x4c, 0x2f, 0x69, 0x35, 0xd9, 0xd2, 0xef, 0xd7, 0x55, 0xd5, 0x89, 0xa2, 0xe2, 0xcf, 0x1e, 0xc3,
0xf2, 0x83, 0x38, 0x7e, 0x3a, 0x4d, 0x74, 0x1a, 0xd1, 0xce, 0x19, 0xec, 0xfa, 0xd9, 0x51, 0xbf,
0x34, 0x0a, 0xf7, 0x32, 0xb1, 0xea, 0xb3, 0x9e, 0xc1, 0x6a, 0xfb, 0x93, 0x22, 0x45, 0xf4, 0x9c,
0xf9, 0xb0, 0xa6, 0xf7, 0x38, 0xdd, 0xf1, 0xbe, 0xcd, 0xc6, 0xcc, 0xd4, 0x54, 0x9a, 0xb0, 0xbc,
0x0e, 0xd5, 0xdb, 0xed, 0x4c, 0xf1, 0xbc, 0xee, 0xb0, 0x3d, 0xe8, 0xdc, 0xe1, 0xc3, 0x78, 0xc4,
0x65, 0x94, 0xbf, 0x5e, 0x74, 0x5c, 0xa7, 0x07, 0xfa, 0xcb, 0x16, 0x68, 0x6b, 0x7d, 0xe2, 0xcf,
0x52, 0xfe, 0xd1, 0xf6, 0x27, 0x32, 0x7f, 0xf0, 0x5c, 0x69, 0xbd, 0xca, 0x79, 0x58, 0x5a, 0x5f,
0x4a, 0x92, 0x58, 0x5a, 0x5f, 0x49, 0x92, 0x58, 0x53, 0xad, 0x72, 0x2e, 0x2c, 0x84, 0xb5, 0x4a,
0x5e, 0x45, 0xef, 0x94, 0xa7, 0x65, 0x63, 0xfa, 0x97, 0x4f, 0x27, 0xb0, 0x5b, 0xdb, 0xb2, 0x5b,
0xdb, 0x87, 0xe5, 0x3b, 0x5c, 0x4c, 0x96, 0x38, 0xab, 0xec, 0xdb, 0x66, 0xc4, 0x3c, 0xd7, 0x2c,
0x9b, 0x18, 0xaa, 0xb3, 0xcd, 0x3a, 0x1d, 0x14, 0xb2, 0x6f, 0x41, 0xfb, 0x3e, 0xcf, 0xd5, 0xe1,
0xa4, 0xf6, 0x37, 0x4a, 0xa7, 0x95, 0xfd, 0x9a, 0xb3, 0x4d, 0x5b, 0x66, 0x88, 0xdb, 0x36, 0x1f,
0x8d, 0xb9, 0x50, 0xf6, 0x41, 0x30, 0x7a, 0xce, 0x7e, 0x99, 0x98, 0xeb, 0xfb, 0x0c, 0x9b, 0xc6,
0x99, 0x96, 0xc9, 0x7c, 0xa5, 0x84, 0xd7, 0x71, 0x8e, 0xe2, 0x11, 0x37, 0x36, 0xb8, 0x08, 0xda,
0xc6, 0x65, 0x1b, 0xad, 0x40, 0xd5, 0x0b, 0x3e, 0x5a, 0x81, 0x6a, 0xee, 0xe6, 0xb8, 0x57, 0xa9,
0x1d, 0x97, 0x5d, 0x2e, 0xda, 0x11, 0xf7, 0x71, 0x8a, 0x96, 0xb6, 0x3f, 0xf1, 0x27, 0xf9, 0x73,
0xf6, 0x84, 0x5e, 0xef, 0x98, 0x07, 0xb0, 0x85, 0xbf, 0x53, 0x3e, 0xab, 0xd5, 0x93, 0x65, 0x54,
0xd9, 0x3e, 0x90, 0x68, 0x8a, 0xf6, 0xc1, 0x2f, 0x00, 0xec, 0xe7, 0x71, 0x72, 0xc7, 0xe7, 0x93,
0x38, 0x2a, 0x2c, 0x57, 0x71, 0xc8, 0x58, 0x58, 0x2e, 0xe3, 0xa4, 0x91, 0x3d, 0x31, 0x3c, 0x4e,
0xeb, 0xfc, 0x5a, 0x09, 0xd7, 0xa9, 0xe7, 0x90, 0x7a, 0x42, 0x6a, 0xce, 0x22, 0xaf, 0x3b, 0xe8,
0x3f, 0x16, 0x59, 0x3c, 0xed, 0x3f, 0x56, 0x12, 0x84, 0xda, 0xec, 0xd5, 0xa4, 0xfc, 0xf6, 0xa0,
0x55, 0xa4, 0x85, 0xd4, 0x96, 0x54, 0x4e, 0x22, 0xe9, 0x3d, 0xa6, 0x92, 0xac, 0x71, 0x57, 0x69,
0xaa, 0x80, 0x2d, 0xe1, 0x54, 0x51, 0x06, 0x26, 0x80, 0x75, 0xd1, 0x41, 0xbd, 0x61, 0xd2, 0xb1,
0x99, 0x1a, 0x49, 0x4d, 0xc2, 0x44, 0x6b, 0x73, 0x6d, 0xbe, 0xc1, 0x8a, 0xed, 0x50, 0x5a, 0xc5,
0x91, 0x1d, 0x9a, 0xe6, 0x09, 0xac, 0x55, 0x82, 0x65, 0xad, 0xd2, 0xa7, 0xe5, 0x28, 0xb4, 0x4a,
0x9f, 0x1a, 0x67, 0xbb, 0x67, 0xa9, 0xc9, 0x15, 0x17, 0xb0, 0xc9, 0xec, 0x24, 0xc8, 0x87, 0x47,
0xef, 0x39, 0x5b, 0x07, 0x0b, 0xf4, 0x77, 0x2d, 0x9f, 0xfb, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff,
0x5c, 0x78, 0xf8, 0x82, 0xe0, 0x45, 0x00, 0x00,
// 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,
}

View File

@ -71,6 +71,19 @@ func request_WalletUnlocker_UnlockWallet_0(ctx context.Context, marshaler runtim
}
func request_WalletUnlocker_ChangePassword_0(ctx context.Context, marshaler runtime.Marshaler, client WalletUnlockerClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq ChangePasswordRequest
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.ChangePassword(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func request_Lightning_WalletBalance_0(ctx context.Context, marshaler runtime.Marshaler, client LightningClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq WalletBalanceRequest
var metadata runtime.ServerMetadata
@ -592,15 +605,7 @@ func RegisterWalletUnlockerHandlerFromEndpoint(ctx context.Context, mux *runtime
// RegisterWalletUnlockerHandler registers the http handlers for service WalletUnlocker to "mux".
// The handlers forward requests to the grpc endpoint over "conn".
func RegisterWalletUnlockerHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
return RegisterWalletUnlockerHandlerClient(ctx, mux, NewWalletUnlockerClient(conn))
}
// RegisterWalletUnlockerHandler registers the http handlers for service WalletUnlocker to "mux".
// The handlers forward requests to the grpc endpoint over the given implementation of "WalletUnlockerClient".
// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "WalletUnlockerClient"
// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
// "WalletUnlockerClient" to call the correct interceptors.
func RegisterWalletUnlockerHandlerClient(ctx context.Context, mux *runtime.ServeMux, client WalletUnlockerClient) error {
client := NewWalletUnlockerClient(conn)
mux.Handle("GET", pattern_WalletUnlocker_GenSeed_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(ctx)
@ -689,6 +694,35 @@ func RegisterWalletUnlockerHandlerClient(ctx context.Context, mux *runtime.Serve
})
mux.Handle("POST", pattern_WalletUnlocker_ChangePassword_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_WalletUnlocker_ChangePassword_0(rctx, inboundMarshaler, client, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_WalletUnlocker_ChangePassword_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
return nil
}
@ -698,6 +732,8 @@ var (
pattern_WalletUnlocker_InitWallet_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "initwallet"}, ""))
pattern_WalletUnlocker_UnlockWallet_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "unlockwallet"}, ""))
pattern_WalletUnlocker_ChangePassword_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "changepassword"}, ""))
)
var (
@ -706,6 +742,8 @@ var (
forward_WalletUnlocker_InitWallet_0 = runtime.ForwardResponseMessage
forward_WalletUnlocker_UnlockWallet_0 = runtime.ForwardResponseMessage
forward_WalletUnlocker_ChangePassword_0 = runtime.ForwardResponseMessage
)
// RegisterLightningHandlerFromEndpoint is same as RegisterLightningHandler but
@ -736,15 +774,7 @@ func RegisterLightningHandlerFromEndpoint(ctx context.Context, mux *runtime.Serv
// RegisterLightningHandler registers the http handlers for service Lightning to "mux".
// The handlers forward requests to the grpc endpoint over "conn".
func RegisterLightningHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error {
return RegisterLightningHandlerClient(ctx, mux, NewLightningClient(conn))
}
// RegisterLightningHandler registers the http handlers for service Lightning to "mux".
// The handlers forward requests to the grpc endpoint over the given implementation of "LightningClient".
// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "LightningClient"
// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in
// "LightningClient" to call the correct interceptors.
func RegisterLightningHandlerClient(ctx context.Context, mux *runtime.ServeMux, client LightningClient) error {
client := NewLightningClient(conn)
mux.Handle("GET", pattern_Lightning_WalletBalance_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(ctx)

View File

@ -75,6 +75,17 @@ service WalletUnlocker {
body: "*"
};
}
/** lncli: `changepassword`
ChangePassword changes the password of the encrypted wallet. This will
automatically unlock the wallet database if successful.
*/
rpc ChangePassword (ChangePasswordRequest) returns (ChangePasswordResponse) {
option (google.api.http) = {
post: "/v1/changepassword"
body: "*"
};
}
}
message GenSeedRequest {
@ -159,6 +170,21 @@ message UnlockWalletRequest {
}
message UnlockWalletResponse {}
message ChangePasswordRequest {
/**
current_password should be the current valid passphrase used to unlock the
daemon.
*/
bytes current_password = 1;
/**
new_password should be the new passphrase that will be needed to unlock the
daemon.
*/
bytes new_password = 2;
}
message ChangePasswordResponse {}
service Lightning {
/** lncli: `walletbalance`
WalletBalance returns total unspent outputs(confirmed and unconfirmed), all

View File

@ -49,6 +49,33 @@
]
}
},
"/v1/changepassword": {
"post": {
"summary": "* lncli: `changepassword`\nChangePassword changes the password of the encrypted wallet. This will\nautomatically unlock the wallet database if successful.",
"operationId": "ChangePassword",
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/lnrpcChangePasswordResponse"
}
}
},
"parameters": [
{
"name": "body",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/lnrpcChangePasswordRequest"
}
}
],
"tags": [
"WalletUnlocker"
]
}
},
"/v1/channels": {
"get": {
"summary": "* lncli: `listchannels`\nListChannels returns a description of all the open channels that this node\nis a participant in.",
@ -920,6 +947,24 @@
}
}
},
"lnrpcChangePasswordRequest": {
"type": "object",
"properties": {
"current_password": {
"type": "string",
"format": "byte",
"description": "*\ncurrent_password should be the current valid passphrase used to unlock the\ndaemon."
},
"new_password": {
"type": "string",
"format": "byte",
"description": "*\nnew_password should be the new passphrase that will be needed to unlock the\ndaemon."
}
}
},
"lnrpcChangePasswordResponse": {
"type": "object"
},
"lnrpcChannel": {
"type": "object",
"properties": {