mirror of
https://github.com/LBRYFoundation/lbcwallet.git
synced 2025-08-31 17:31:31 +00:00
Cleanup TransactionDetails RPC messages.
Remove the addresses field from TransactionDetails.Output. It is assumed that the caller is able to deserialize the transaction and encode the output scripts to addresses, so this is unnecessary server overhead and conflicts with the current API philosophy of not duplicating data already included in another field. Since there is no additional data included for outputs not controlled by the wallet, remove the `mine` specifier from the Output message and replace it with an output index. Only include messages for controlled outputs, rather than creating messages for both controlled and uncontrolled outputs. Rename the repeated field from `outputs` to `credits` to be consistent with the `debits` field. Bump major API version as this is a breaking change. Closes #408.
This commit is contained in:
parent
5e3613775d
commit
fb06a6bd04
5 changed files with 178 additions and 220 deletions
|
@ -56,19 +56,14 @@ message TransactionDetails {
|
||||||
int64 previous_amount = 3;
|
int64 previous_amount = 3;
|
||||||
}
|
}
|
||||||
message Output {
|
message Output {
|
||||||
bool mine = 3;
|
uint32 index = 1;
|
||||||
|
uint32 account = 2;
|
||||||
// These fields only relevant if mine==true.
|
bool internal = 3;
|
||||||
uint32 account = 4;
|
|
||||||
bool internal = 5;
|
|
||||||
|
|
||||||
// These fields only relevant if mine==false.
|
|
||||||
repeated string addresses = 6; // None if non-standard.
|
|
||||||
}
|
}
|
||||||
bytes hash = 1;
|
bytes hash = 1;
|
||||||
bytes transaction = 2;
|
bytes transaction = 2;
|
||||||
repeated Input debits = 3;
|
repeated Input debits = 3;
|
||||||
repeated Output outputs = 4;
|
repeated Output credits = 4;
|
||||||
int64 fee = 5;
|
int64 fee = 5;
|
||||||
int64 timestamp = 6; // May be earlier than a block timestamp, but never later.
|
int64 timestamp = 6; // May be earlier than a block timestamp, but never later.
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# RPC API Specification
|
# RPC API Specification
|
||||||
|
|
||||||
Version: 1.0.0
|
Version: 2.0.0
|
||||||
|
|
||||||
**Note:** This document assumes the reader is familiar with gRPC concepts.
|
**Note:** This document assumes the reader is familiar with gRPC concepts.
|
||||||
Refer to the [gRPC Concepts documentation](http://www.grpc.io/docs/guides/concepts.html)
|
Refer to the [gRPC Concepts documentation](http://www.grpc.io/docs/guides/concepts.html)
|
||||||
|
@ -958,23 +958,17 @@ transaction was seen.
|
||||||
|
|
||||||
- `int64 previous_amount`: The previous output value.
|
- `int64 previous_amount`: The previous output value.
|
||||||
|
|
||||||
- `repeated Output outputs`: Properties for every transaction output. Every
|
- `repeated Output credits`: Properties for every output controlled by the wallet.
|
||||||
transaction output has a corresponding properties message in this repeated
|
|
||||||
field.
|
|
||||||
|
|
||||||
**Nested message:** `Output`
|
**Nested message:** `Output`
|
||||||
|
|
||||||
- `bool mine`: Whether the output is controlled by the wallet.
|
- `uint32 index`: The transaction output index of the output being reported.
|
||||||
|
|
||||||
- `uint32 account`: The account number of the controlled output. This field
|
- `uint32 account`: The account number of the controlled output.
|
||||||
is only relevant if `mine` is true.
|
|
||||||
|
|
||||||
- `bool internal`: Whether the output pays to an address derived from the
|
- `bool internal`: Whether the output pays to an address derived from the
|
||||||
account's internal key series. This often means the output is a change
|
account's internal key series. This often means the output is a change
|
||||||
output. This field is only relevant if `mine` is true.
|
output.
|
||||||
|
|
||||||
- `repeated string addresses`: The payment address string(s) this output pays
|
|
||||||
to. This is only relevant if `mine` is false.
|
|
||||||
|
|
||||||
- `int64 fee`: The transaction fee, if calculable. The fee is only calculable
|
- `int64 fee`: The transaction fee, if calculable. The fee is only calculable
|
||||||
when every previous output spent by this transaction is also recorded by
|
when every previous output spent by this transaction is also recorded by
|
||||||
|
@ -984,5 +978,5 @@ transaction was seen.
|
||||||
seen.
|
seen.
|
||||||
|
|
||||||
**Stability**: Unstable: Since the caller is expected to decode the serialized
|
**Stability**: Unstable: Since the caller is expected to decode the serialized
|
||||||
transaction, and would have access to every output script, The output
|
transaction, and would have access to every output script, the output
|
||||||
properties could be changed to only include outputs controlled by the wallet.
|
properties could be changed to only include outputs controlled by the wallet.
|
||||||
|
|
|
@ -43,8 +43,8 @@ import (
|
||||||
|
|
||||||
// Public API version constants
|
// Public API version constants
|
||||||
const (
|
const (
|
||||||
semverString = "1.0.0"
|
semverString = "2.0.0"
|
||||||
semverMajor = 1
|
semverMajor = 2
|
||||||
semverMinor = 0
|
semverMinor = 0
|
||||||
semverPatch = 0
|
semverPatch = 0
|
||||||
)
|
)
|
||||||
|
@ -568,20 +568,10 @@ func marshalTransactionOutputs(v []wallet.TransactionSummaryOutput) []*pb.Transa
|
||||||
outputs := make([]*pb.TransactionDetails_Output, len(v))
|
outputs := make([]*pb.TransactionDetails_Output, len(v))
|
||||||
for i := range v {
|
for i := range v {
|
||||||
output := &v[i]
|
output := &v[i]
|
||||||
|
|
||||||
var addresses []string
|
|
||||||
if len(output.Addresses) != 0 {
|
|
||||||
addresses = make([]string, 0, len(output.Addresses))
|
|
||||||
for _, a := range output.Addresses {
|
|
||||||
addresses = append(addresses, a.EncodeAddress())
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
outputs[i] = &pb.TransactionDetails_Output{
|
outputs[i] = &pb.TransactionDetails_Output{
|
||||||
Mine: output.Mine,
|
Index: output.Index,
|
||||||
Account: output.Account,
|
Account: output.Account,
|
||||||
Internal: output.Internal,
|
Internal: output.Internal,
|
||||||
Addresses: addresses,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return outputs
|
return outputs
|
||||||
|
@ -595,7 +585,7 @@ func marshalTransactionDetails(v []wallet.TransactionSummary) []*pb.TransactionD
|
||||||
Hash: tx.Hash[:],
|
Hash: tx.Hash[:],
|
||||||
Transaction: tx.Transaction,
|
Transaction: tx.Transaction,
|
||||||
Debits: marshalTransactionInputs(tx.MyInputs),
|
Debits: marshalTransactionInputs(tx.MyInputs),
|
||||||
Outputs: marshalTransactionOutputs(tx.Outputs),
|
Credits: marshalTransactionOutputs(tx.MyOutputs),
|
||||||
Fee: int64(tx.Fee),
|
Fee: int64(tx.Fee),
|
||||||
Timestamp: tx.Timestamp,
|
Timestamp: tx.Timestamp,
|
||||||
}
|
}
|
||||||
|
|
|
@ -149,7 +149,7 @@ type TransactionDetails struct {
|
||||||
Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
|
Hash []byte `protobuf:"bytes,1,opt,name=hash,proto3" json:"hash,omitempty"`
|
||||||
Transaction []byte `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
|
Transaction []byte `protobuf:"bytes,2,opt,name=transaction,proto3" json:"transaction,omitempty"`
|
||||||
Debits []*TransactionDetails_Input `protobuf:"bytes,3,rep,name=debits" json:"debits,omitempty"`
|
Debits []*TransactionDetails_Input `protobuf:"bytes,3,rep,name=debits" json:"debits,omitempty"`
|
||||||
Outputs []*TransactionDetails_Output `protobuf:"bytes,4,rep,name=outputs" json:"outputs,omitempty"`
|
Credits []*TransactionDetails_Output `protobuf:"bytes,4,rep,name=credits" json:"credits,omitempty"`
|
||||||
Fee int64 `protobuf:"varint,5,opt,name=fee" json:"fee,omitempty"`
|
Fee int64 `protobuf:"varint,5,opt,name=fee" json:"fee,omitempty"`
|
||||||
Timestamp int64 `protobuf:"varint,6,opt,name=timestamp" json:"timestamp,omitempty"`
|
Timestamp int64 `protobuf:"varint,6,opt,name=timestamp" json:"timestamp,omitempty"`
|
||||||
}
|
}
|
||||||
|
@ -166,9 +166,9 @@ func (m *TransactionDetails) GetDebits() []*TransactionDetails_Input {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *TransactionDetails) GetOutputs() []*TransactionDetails_Output {
|
func (m *TransactionDetails) GetCredits() []*TransactionDetails_Output {
|
||||||
if m != nil {
|
if m != nil {
|
||||||
return m.Outputs
|
return m.Credits
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -185,12 +185,9 @@ func (*TransactionDetails_Input) ProtoMessage() {}
|
||||||
func (*TransactionDetails_Input) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} }
|
func (*TransactionDetails_Input) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} }
|
||||||
|
|
||||||
type TransactionDetails_Output struct {
|
type TransactionDetails_Output struct {
|
||||||
Mine bool `protobuf:"varint,3,opt,name=mine" json:"mine,omitempty"`
|
Index uint32 `protobuf:"varint,1,opt,name=index" json:"index,omitempty"`
|
||||||
// These fields only relevant if mine==true.
|
Account uint32 `protobuf:"varint,2,opt,name=account" json:"account,omitempty"`
|
||||||
Account uint32 `protobuf:"varint,4,opt,name=account" json:"account,omitempty"`
|
Internal bool `protobuf:"varint,3,opt,name=internal" json:"internal,omitempty"`
|
||||||
Internal bool `protobuf:"varint,5,opt,name=internal" json:"internal,omitempty"`
|
|
||||||
// These fields only relevant if mine==false.
|
|
||||||
Addresses []string `protobuf:"bytes,6,rep,name=addresses" json:"addresses,omitempty"`
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (m *TransactionDetails_Output) Reset() { *m = TransactionDetails_Output{} }
|
func (m *TransactionDetails_Output) Reset() { *m = TransactionDetails_Output{} }
|
||||||
|
@ -1786,156 +1783,155 @@ var _WalletLoaderService_serviceDesc = grpc.ServiceDesc{
|
||||||
}
|
}
|
||||||
|
|
||||||
var fileDescriptor0 = []byte{
|
var fileDescriptor0 = []byte{
|
||||||
// 2413 bytes of a gzipped FileDescriptorProto
|
// 2391 bytes of a gzipped FileDescriptorProto
|
||||||
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x59, 0x5b, 0x73, 0xdc, 0x48,
|
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x59, 0x5b, 0x73, 0xdc, 0x48,
|
||||||
0x15, 0x66, 0x2c, 0xdf, 0x72, 0xe6, 0xde, 0xbe, 0x4d, 0x94, 0x38, 0xc9, 0x2a, 0xbb, 0xd9, 0xec,
|
0x15, 0x66, 0x2c, 0xdf, 0x72, 0xe6, 0xde, 0xbe, 0x4d, 0x94, 0x38, 0xc9, 0x2a, 0xbb, 0xd9, 0xec,
|
||||||
0x2e, 0x98, 0x60, 0x02, 0x2c, 0xc5, 0x56, 0xd8, 0xc4, 0x64, 0xd9, 0x21, 0xc1, 0x99, 0x92, 0x93,
|
0x2e, 0x98, 0x60, 0x02, 0x2c, 0xc5, 0x56, 0xd8, 0xc4, 0x64, 0xd9, 0x21, 0xc1, 0x99, 0x92, 0x93,
|
||||||
0x4d, 0xaa, 0xa0, 0x98, 0x92, 0x35, 0xed, 0x58, 0x78, 0x46, 0x9a, 0x48, 0x9a, 0x38, 0xe1, 0x89,
|
0x4d, 0xaa, 0xa0, 0x98, 0x92, 0x35, 0xed, 0x58, 0x78, 0x46, 0x9a, 0x48, 0x9a, 0x38, 0xe1, 0x89,
|
||||||
0xa2, 0x8a, 0x47, 0x5e, 0x80, 0x07, 0x0a, 0x6a, 0x5f, 0xf8, 0x05, 0x54, 0xf1, 0xc2, 0x2b, 0xbf,
|
0xa2, 0x8a, 0x47, 0x5e, 0x80, 0x07, 0x0a, 0x6a, 0x5f, 0xf8, 0x05, 0x54, 0xf1, 0xc2, 0x23, 0xfc,
|
||||||
0x81, 0x47, 0xf8, 0x15, 0xfc, 0x02, 0xfa, 0x72, 0x7a, 0xd4, 0x2d, 0x69, 0xc6, 0xf6, 0x16, 0x6f,
|
0x06, 0x1e, 0xf9, 0x17, 0xfc, 0x02, 0xfa, 0x72, 0x7a, 0xd4, 0x2d, 0x69, 0xc6, 0xf6, 0x16, 0x6f,
|
||||||
0xa3, 0xaf, 0x4f, 0x9f, 0x3e, 0xe7, 0xf4, 0xb9, 0xf6, 0xc0, 0x25, 0x6f, 0x1c, 0xec, 0x8c, 0xe3,
|
0xa3, 0xaf, 0xcf, 0x39, 0x7d, 0xfa, 0xf4, 0xb9, 0xf6, 0xc0, 0x25, 0x6f, 0x1c, 0xec, 0x8c, 0xe3,
|
||||||
0x28, 0x8d, 0xc8, 0xa5, 0x53, 0x6f, 0x38, 0xa4, 0x69, 0x3c, 0xf6, 0x9d, 0x16, 0x34, 0xbe, 0xa0,
|
0x28, 0x8d, 0xc8, 0xa5, 0x53, 0x6f, 0x38, 0xa4, 0x69, 0x3c, 0xf6, 0x9d, 0x16, 0x34, 0xbe, 0xa0,
|
||||||
0x71, 0x12, 0x44, 0xa1, 0x4b, 0x5f, 0x4d, 0x68, 0x92, 0x3a, 0xff, 0xac, 0x40, 0x73, 0x0a, 0x25,
|
0x71, 0x12, 0x44, 0xa1, 0x4b, 0x5f, 0x4d, 0x68, 0x92, 0x3a, 0xff, 0xaa, 0x40, 0x73, 0x0a, 0x25,
|
||||||
0xe3, 0x28, 0x4c, 0x28, 0x79, 0x0f, 0x1a, 0xaf, 0x25, 0xd4, 0x4f, 0xd2, 0x38, 0x08, 0x5f, 0x76,
|
0xe3, 0x28, 0x4c, 0x28, 0x79, 0x0f, 0x1a, 0xaf, 0x25, 0xd4, 0x4f, 0xd2, 0x38, 0x08, 0x5f, 0x76,
|
||||||
0x2a, 0x37, 0x2a, 0xb7, 0x2f, 0xb9, 0x75, 0x44, 0x0f, 0x04, 0x48, 0xd6, 0x61, 0x69, 0xe4, 0xfd,
|
0x2a, 0x37, 0x2a, 0xb7, 0x2f, 0xb9, 0x75, 0x44, 0x0f, 0x04, 0x48, 0xd6, 0x61, 0x69, 0xe4, 0xfd,
|
||||||
0x32, 0x8a, 0x3b, 0x0b, 0x6c, 0xb5, 0xee, 0xca, 0x0f, 0x81, 0x06, 0x21, 0x43, 0x2d, 0x44, 0xf9,
|
0x32, 0x8a, 0x3b, 0x0b, 0x6c, 0xb5, 0xee, 0xca, 0x0f, 0x81, 0x06, 0x21, 0x43, 0x2d, 0x44, 0xf9,
|
||||||
0x07, 0x47, 0xc7, 0x5e, 0xea, 0x1f, 0x77, 0x16, 0x25, 0x2a, 0x3e, 0xc8, 0x35, 0x80, 0x71, 0x4c,
|
0x07, 0x47, 0xc7, 0x5e, 0xea, 0x1f, 0x77, 0x16, 0x25, 0x2a, 0x3e, 0xc8, 0x35, 0x80, 0x71, 0x4c,
|
||||||
0x63, 0x3a, 0xa4, 0x5e, 0x42, 0x3b, 0x4b, 0xe2, 0x10, 0x0d, 0xe1, 0x82, 0x1c, 0x4e, 0x82, 0xe1,
|
0x63, 0x3a, 0xa4, 0x5e, 0x42, 0x3b, 0x4b, 0x62, 0x13, 0x0d, 0xe1, 0x8a, 0x1c, 0x4e, 0x82, 0xe1,
|
||||||
0xa0, 0x3f, 0xa2, 0xa9, 0x37, 0xf0, 0x52, 0xaf, 0xb3, 0x2c, 0x05, 0x11, 0xe8, 0x4f, 0x11, 0x74,
|
0xa0, 0x3f, 0xa2, 0xa9, 0x37, 0xf0, 0x52, 0xaf, 0xb3, 0x2c, 0x15, 0x11, 0xe8, 0x4f, 0x11, 0x74,
|
||||||
0xfe, 0x63, 0x01, 0x79, 0x1a, 0x7b, 0x61, 0xe2, 0xf9, 0x29, 0x13, 0xef, 0x47, 0x0c, 0x0f, 0x86,
|
0xfe, 0x69, 0x01, 0x79, 0x1a, 0x7b, 0x61, 0xe2, 0xf9, 0x29, 0x53, 0xef, 0x47, 0x0c, 0x0f, 0x86,
|
||||||
0x09, 0x21, 0xb0, 0x78, 0xec, 0x25, 0xc7, 0x42, 0xf8, 0x9a, 0x2b, 0x7e, 0x93, 0x1b, 0x50, 0x4d,
|
0x09, 0x21, 0xb0, 0x78, 0xec, 0x25, 0xc7, 0x42, 0xf9, 0x9a, 0x2b, 0x7e, 0x93, 0x1b, 0x50, 0x4d,
|
||||||
0x33, 0x4a, 0x21, 0x79, 0xcd, 0xd5, 0x21, 0xf2, 0x03, 0x58, 0x1e, 0xd0, 0xc3, 0x20, 0x4d, 0x98,
|
0x33, 0x4a, 0xa1, 0x79, 0xcd, 0xd5, 0x21, 0xf2, 0x03, 0x58, 0x1e, 0xd0, 0xc3, 0x20, 0x4d, 0xd8,
|
||||||
0x02, 0xd6, 0xed, 0xea, 0xee, 0xcd, 0x9d, 0xa9, 0xf9, 0x76, 0x8a, 0x87, 0xec, 0x74, 0xc3, 0xf1,
|
0x01, 0xac, 0xdb, 0xd5, 0xdd, 0x9b, 0x3b, 0x53, 0xf3, 0xed, 0x14, 0x37, 0xd9, 0xe9, 0x86, 0xe3,
|
||||||
0x24, 0x75, 0x71, 0x0b, 0xb9, 0x07, 0x2b, 0xd1, 0x24, 0x65, 0x48, 0xc2, 0x14, 0xe5, 0xbb, 0xdf,
|
0x49, 0xea, 0x22, 0x0b, 0xb9, 0x07, 0x2b, 0x7e, 0x4c, 0x07, 0x9c, 0x7b, 0x51, 0x70, 0xbf, 0x3b,
|
||||||
0x9d, 0xbf, 0xfb, 0x89, 0x20, 0x76, 0xd5, 0x26, 0xd2, 0x02, 0xeb, 0x88, 0x4a, 0x4b, 0x58, 0x2e,
|
0x9f, 0xfb, 0xc9, 0x24, 0xe5, 0xec, 0x8a, 0x89, 0xb4, 0xc0, 0x3a, 0xa2, 0xd2, 0x12, 0x96, 0xcb,
|
||||||
0xff, 0x49, 0xae, 0xc2, 0xa5, 0x34, 0x18, 0xb1, 0x9b, 0xf2, 0x46, 0x63, 0xa1, 0xbd, 0xe5, 0x66,
|
0x7f, 0x92, 0xab, 0x70, 0x29, 0x0d, 0x46, 0xec, 0xa6, 0xbc, 0xd1, 0x58, 0x9c, 0xde, 0x72, 0x33,
|
||||||
0x80, 0xfd, 0x0a, 0x96, 0x84, 0x00, 0xdc, 0xbe, 0x41, 0x38, 0xa0, 0x6f, 0x84, 0xb2, 0xcc, 0xbe,
|
0xc0, 0x7e, 0x05, 0x4b, 0x42, 0x01, 0x6e, 0xdf, 0x20, 0x1c, 0xd0, 0x37, 0xe2, 0xb0, 0xcc, 0xbe,
|
||||||
0xe2, 0x83, 0x7c, 0x00, 0x2d, 0x66, 0xcd, 0xd7, 0x41, 0x34, 0x49, 0xfa, 0x9e, 0xef, 0x47, 0x93,
|
0xe2, 0x83, 0x7c, 0x00, 0x2d, 0x66, 0xcd, 0xd7, 0x41, 0x34, 0x49, 0xfa, 0x9e, 0xef, 0x47, 0x93,
|
||||||
0x30, 0xc5, 0xcb, 0x6a, 0x2a, 0xfc, 0xbe, 0x84, 0xc9, 0xfb, 0xd0, 0xcc, 0x48, 0x47, 0x82, 0xd2,
|
0x30, 0xc5, 0xcb, 0x6a, 0x2a, 0xfc, 0xbe, 0x84, 0xc9, 0xfb, 0xd0, 0xcc, 0x48, 0x47, 0x82, 0xd2,
|
||||||
0x12, 0xa7, 0x35, 0xa6, 0x94, 0x02, 0xb5, 0xc7, 0xb0, 0x2c, 0xa5, 0xe6, 0xf6, 0x65, 0x97, 0x4b,
|
0x12, 0xbb, 0x35, 0xa6, 0x94, 0x02, 0xb5, 0x9f, 0xc2, 0xb2, 0xd4, 0x7a, 0xc6, 0x9e, 0x1d, 0x58,
|
||||||
0x05, 0xdd, 0xaa, 0x2b, 0x7e, 0x93, 0x0e, 0xac, 0xa8, 0x83, 0xe4, 0x4d, 0xab, 0x4f, 0x62, 0xc3,
|
0x31, 0xb7, 0x52, 0x9f, 0xc4, 0x86, 0xd5, 0x20, 0x4c, 0x69, 0x1c, 0x7a, 0x43, 0x21, 0x7b, 0xd5,
|
||||||
0x6a, 0x10, 0xa6, 0x34, 0x0e, 0xbd, 0xa1, 0xd0, 0x6f, 0xd5, 0x9d, 0x7e, 0x73, 0x25, 0xbd, 0xc1,
|
0x9d, 0x7e, 0x3b, 0x7f, 0xa9, 0x40, 0xed, 0xc1, 0x30, 0xf2, 0x4f, 0xe6, 0x5d, 0xde, 0x26, 0x2c,
|
||||||
0x20, 0xa6, 0x49, 0x42, 0x13, 0xa6, 0xa4, 0xc5, 0xae, 0x38, 0x03, 0x9c, 0xbf, 0x54, 0xa0, 0xf6,
|
0x1f, 0xd3, 0xe0, 0xe5, 0xb1, 0x94, 0xbc, 0xe4, 0xe2, 0x97, 0x69, 0x23, 0x2b, 0x67, 0x23, 0x72,
|
||||||
0x60, 0x18, 0xf9, 0x27, 0xf3, 0x2e, 0x76, 0x13, 0x96, 0x8f, 0x69, 0xf0, 0xf2, 0x58, 0x2a, 0xb8,
|
0x1f, 0x6a, 0xda, 0xfd, 0xaa, 0x8b, 0xd9, 0x9e, 0x7b, 0x31, 0xae, 0xc1, 0xe2, 0x3c, 0x81, 0x06,
|
||||||
0xe4, 0xe2, 0x97, 0x69, 0x3f, 0x2b, 0x67, 0x3f, 0x72, 0x1f, 0x6a, 0xda, 0xdd, 0xab, 0x4b, 0xdb,
|
0xda, 0xe9, 0x81, 0x37, 0xf4, 0x42, 0x9f, 0xea, 0xa7, 0xac, 0x98, 0xa7, 0xbc, 0x09, 0xf5, 0x34,
|
||||||
0x9e, 0x7b, 0x69, 0xae, 0xb1, 0xc5, 0x79, 0x02, 0x0d, 0xb4, 0xe1, 0x03, 0x6f, 0xe8, 0x85, 0xbe,
|
0x4a, 0xbd, 0x61, 0xff, 0x50, 0x92, 0x0a, 0x5d, 0x2d, 0x26, 0x90, 0x83, 0xc8, 0xee, 0xd4, 0xa1,
|
||||||
0x61, 0x83, 0x8a, 0x69, 0x83, 0x9b, 0x50, 0x4f, 0xa3, 0xd4, 0x1b, 0xf6, 0x0f, 0x25, 0xa9, 0x90,
|
0xda, 0x63, 0x21, 0xa4, 0x82, 0xb0, 0x01, 0x35, 0xf9, 0x29, 0x03, 0x90, 0x87, 0xe9, 0x3e, 0x4d,
|
||||||
0xd5, 0x62, 0x0c, 0x39, 0x88, 0xdb, 0x9d, 0x3a, 0x54, 0x7b, 0x2c, 0xbc, 0x54, 0x80, 0x36, 0xa0,
|
0x4f, 0xa3, 0xf8, 0x44, 0x51, 0x7c, 0x0c, 0xcd, 0x29, 0x92, 0x45, 0x29, 0xd7, 0xef, 0x35, 0xed,
|
||||||
0x26, 0x3f, 0x65, 0x70, 0xf2, 0x10, 0xde, 0xa7, 0xe9, 0x69, 0x14, 0x9f, 0x28, 0x8a, 0x8f, 0xa1,
|
0x87, 0x72, 0x05, 0x35, 0xa9, 0x4b, 0x14, 0xc9, 0x9d, 0xef, 0xc3, 0x3a, 0xea, 0xbe, 0x3f, 0x19,
|
||||||
0x39, 0x45, 0xb2, 0x08, 0xe6, 0xf2, 0xbd, 0xa6, 0xfd, 0x50, 0xae, 0xa0, 0x24, 0x75, 0x89, 0x22,
|
0x1d, 0xd2, 0x18, 0x25, 0x92, 0x77, 0xa0, 0x86, 0x2a, 0xf7, 0x43, 0x6f, 0x44, 0x31, 0xc4, 0xab,
|
||||||
0xb9, 0xf3, 0x7d, 0x58, 0x47, 0xd9, 0xf7, 0x27, 0xa3, 0x43, 0x1a, 0x23, 0x47, 0xf2, 0x0e, 0xd4,
|
0x88, 0xed, 0x33, 0xc8, 0xb9, 0x07, 0x1b, 0x39, 0x56, 0x7d, 0x6b, 0xe4, 0x15, 0x2b, 0xd9, 0xd6,
|
||||||
0x50, 0xe4, 0x7e, 0xe8, 0x8d, 0x28, 0x86, 0x7f, 0x15, 0xb1, 0x7d, 0x06, 0x39, 0xf7, 0x60, 0x23,
|
0x1a, 0xb9, 0xd3, 0x86, 0x26, 0xf2, 0x27, 0xea, 0x1c, 0xff, 0xb0, 0xa0, 0x95, 0x61, 0x28, 0xee,
|
||||||
0xb7, 0x55, 0x3f, 0x1a, 0xf7, 0x8a, 0x95, 0xec, 0x68, 0x8d, 0xdc, 0x69, 0x43, 0x13, 0xf7, 0x27,
|
0x87, 0xb0, 0x8a, 0x8c, 0x09, 0x13, 0x94, 0x0f, 0xba, 0x3c, 0xb9, 0x02, 0xdc, 0x29, 0x13, 0xf9,
|
||||||
0x4a, 0x8f, 0x7f, 0x58, 0xd0, 0xca, 0x30, 0x64, 0xf7, 0x43, 0x58, 0xc5, 0x8d, 0x09, 0x63, 0x94,
|
0x3a, 0x10, 0x7f, 0x12, 0xc7, 0x94, 0xe9, 0x73, 0xc8, 0x9d, 0xa8, 0x2f, 0x5c, 0x47, 0x06, 0x77,
|
||||||
0x0f, 0xc8, 0x3c, 0xb9, 0x02, 0xdc, 0xe9, 0x26, 0xf2, 0x75, 0x20, 0xfe, 0x24, 0x8e, 0x29, 0x93,
|
0x0b, 0x57, 0x84, 0x77, 0x7d, 0xce, 0xdd, 0xe8, 0x0e, 0xac, 0xe7, 0xa8, 0xa5, 0x53, 0x59, 0xc2,
|
||||||
0xe7, 0x90, 0x3b, 0x51, 0x5f, 0xb8, 0x8e, 0x0c, 0xfc, 0x16, 0xae, 0x08, 0xef, 0xfa, 0x9c, 0xbb,
|
0xa9, 0x88, 0x41, 0x2f, 0x56, 0xec, 0xdf, 0x2c, 0xc0, 0x8a, 0x0a, 0x94, 0xf3, 0x9d, 0xbd, 0x60,
|
||||||
0xd1, 0x1d, 0x58, 0xcf, 0x51, 0x4b, 0xa7, 0xb2, 0x84, 0x53, 0x11, 0x83, 0x5e, 0xac, 0xd8, 0xbf,
|
0xde, 0x85, 0x82, 0x79, 0x8b, 0x9e, 0x62, 0x15, 0x3d, 0x85, 0x1f, 0x8d, 0xbe, 0x91, 0x41, 0xd2,
|
||||||
0x59, 0x80, 0x15, 0x15, 0x44, 0xe7, 0xd3, 0xbd, 0x60, 0xde, 0x85, 0x82, 0x79, 0x8b, 0x9e, 0x62,
|
0x3f, 0xa1, 0x6f, 0xfb, 0xd2, 0xe7, 0x64, 0x16, 0x6d, 0xa9, 0x95, 0x47, 0xf4, 0xed, 0x9e, 0x50,
|
||||||
0x15, 0x3d, 0x85, 0xab, 0x46, 0xdf, 0xc8, 0x10, 0xea, 0x9f, 0xd0, 0xb7, 0x7d, 0x3d, 0xee, 0x5a,
|
0x8e, 0x51, 0xab, 0x90, 0xd2, 0xa8, 0x97, 0x24, 0xb5, 0x5a, 0x31, 0xa8, 0x47, 0xe3, 0x28, 0x4e,
|
||||||
0x6a, 0xe5, 0x11, 0x7d, 0xbb, 0x27, 0x84, 0x63, 0xd4, 0x2a, 0xe0, 0x34, 0xea, 0x25, 0x49, 0xad,
|
0xe9, 0x40, 0xa3, 0x5e, 0x46, 0x6a, 0x5c, 0x51, 0xd4, 0xce, 0x0b, 0x58, 0x77, 0x29, 0x3f, 0x8b,
|
||||||
0x56, 0x0c, 0xea, 0xd1, 0x38, 0x8a, 0x53, 0x3a, 0xd0, 0xa8, 0x97, 0x91, 0x1a, 0x57, 0x14, 0xb5,
|
0xb2, 0x3f, 0x3a, 0xd2, 0x39, 0x0d, 0x72, 0x19, 0x56, 0x43, 0x7a, 0xaa, 0x1b, 0x63, 0x85, 0x7d,
|
||||||
0xf3, 0x02, 0xd6, 0x5d, 0xca, 0x75, 0x51, 0xf6, 0x47, 0x47, 0x3a, 0xa7, 0x41, 0x2e, 0xc3, 0x6a,
|
0x0b, 0x3f, 0xdb, 0x82, 0x8d, 0x9c, 0x64, 0x8c, 0x83, 0xe7, 0x40, 0xf6, 0xd9, 0x19, 0x73, 0x1b,
|
||||||
0x48, 0x4f, 0x75, 0x63, 0xac, 0xb0, 0x6f, 0xe1, 0x67, 0x5b, 0xb0, 0x91, 0xe3, 0x8c, 0x71, 0xf0,
|
0xf2, 0xaa, 0xe1, 0x25, 0xc9, 0xf8, 0x38, 0xe6, 0x55, 0x43, 0x26, 0x08, 0x0d, 0x39, 0x87, 0xe9,
|
||||||
0x1c, 0xc8, 0x3e, 0xd3, 0x31, 0x77, 0x20, 0xaf, 0x28, 0x5e, 0x92, 0x8c, 0x8f, 0x63, 0x5e, 0x51,
|
0x9d, 0x4f, 0x60, 0xcd, 0x10, 0x7c, 0x31, 0xbf, 0xfe, 0x73, 0x05, 0xf5, 0x1a, 0x0c, 0x62, 0x9a,
|
||||||
0x64, 0x82, 0xd0, 0x90, 0x73, 0x98, 0xde, 0xf9, 0x04, 0xd6, 0x0c, 0xc6, 0x17, 0xf3, 0xeb, 0x3f,
|
0x28, 0xdf, 0x9e, 0x93, 0x13, 0xbe, 0x0b, 0x8b, 0x27, 0x2c, 0x3b, 0x0a, 0x4d, 0x1a, 0xbb, 0x8e,
|
||||||
0x57, 0x50, 0x2e, 0x99, 0xbe, 0x94, 0x5c, 0xb3, 0x73, 0xc2, 0x77, 0x61, 0xf1, 0x84, 0x65, 0x6b,
|
0xe6, 0xdc, 0x45, 0x31, 0x3b, 0x8f, 0x18, 0xa5, 0x2b, 0xe8, 0x9d, 0x5d, 0x58, 0xe4, 0x5f, 0x2c,
|
||||||
0x21, 0x49, 0x63, 0xd7, 0xd1, 0x9c, 0xbb, 0xc8, 0x66, 0xe7, 0x11, 0xa3, 0x74, 0x05, 0xbd, 0xb3,
|
0xd3, 0xb6, 0x1e, 0x74, 0x7b, 0x77, 0xee, 0xdc, 0xbd, 0xdb, 0x7f, 0xf8, 0xe2, 0xe9, 0x43, 0x77,
|
||||||
0x0b, 0x8b, 0xfc, 0x8b, 0x65, 0xfe, 0xd6, 0x83, 0x6e, 0xef, 0xce, 0x9d, 0xbb, 0x77, 0xfb, 0x0f,
|
0xff, 0xfe, 0xe3, 0xd6, 0xd7, 0x74, 0xb4, 0xbb, 0x8f, 0x68, 0xc5, 0xf9, 0x26, 0x1e, 0x4d, 0x09,
|
||||||
0x5f, 0x3c, 0x7d, 0xe8, 0xee, 0xdf, 0x7f, 0xdc, 0xfa, 0x9a, 0x8e, 0x76, 0xf7, 0x11, 0xad, 0x38,
|
0xc5, 0xa3, 0x71, 0xe5, 0x24, 0x84, 0x91, 0xae, 0x3e, 0x9d, 0x3f, 0x54, 0x60, 0xab, 0x2b, 0x2e,
|
||||||
0xdf, 0x44, 0xd5, 0x14, 0x53, 0x54, 0x8d, 0x0b, 0x27, 0x21, 0x8c, 0x74, 0xf5, 0xe9, 0xfc, 0xa1,
|
0xbb, 0x17, 0x07, 0xaf, 0xbd, 0x94, 0xb2, 0x1b, 0x3f, 0xaf, 0xa9, 0x67, 0x27, 0xfb, 0x5b, 0xbc,
|
||||||
0x02, 0x5b, 0x5d, 0x71, 0xd9, 0xbd, 0x38, 0x78, 0xed, 0xa5, 0x94, 0xdd, 0xf8, 0x79, 0x4d, 0xad,
|
0x9e, 0x08, 0x71, 0xc2, 0xb5, 0x4e, 0x83, 0x23, 0xe1, 0xde, 0xac, 0x76, 0x8f, 0xa7, 0xbb, 0x3c,
|
||||||
0xa9, 0xbc, 0x60, 0xaa, 0x7c, 0x8b, 0xd7, 0x1a, 0xc1, 0x4e, 0xb8, 0xd6, 0x69, 0x70, 0x24, 0xdc,
|
0x0f, 0x8e, 0x78, 0x4e, 0x67, 0x5a, 0xf8, 0x5e, 0x28, 0x7c, 0x7a, 0xd5, 0xc5, 0x2f, 0xc7, 0x86,
|
||||||
0x9b, 0xd5, 0xf5, 0xf1, 0xf4, 0x94, 0xe7, 0xc1, 0x11, 0xcf, 0xe9, 0x4c, 0x0a, 0xdf, 0x0b, 0x85,
|
0x4e, 0x51, 0x29, 0x74, 0x8b, 0x10, 0x1a, 0x18, 0x1e, 0x17, 0xf4, 0xc1, 0xef, 0xc0, 0x66, 0xcc,
|
||||||
0x4f, 0xaf, 0xba, 0xf8, 0xe5, 0xd8, 0xd0, 0x29, 0x0a, 0x85, 0x6e, 0x11, 0x42, 0x03, 0xc3, 0xe3,
|
0x38, 0x02, 0x56, 0x6d, 0x99, 0xb3, 0x87, 0x47, 0x41, 0x3c, 0xf2, 0x64, 0x51, 0x90, 0x05, 0x65,
|
||||||
0x82, 0x3e, 0xf8, 0x1d, 0xd8, 0x8c, 0xd9, 0x8e, 0x20, 0x66, 0x0e, 0xef, 0x47, 0xe1, 0x51, 0x10,
|
0x43, 0xad, 0xee, 0xe9, 0x8b, 0x6c, 0xbf, 0xe6, 0x74, 0x3f, 0x34, 0x27, 0xab, 0x7d, 0x22, 0x4c,
|
||||||
0x8f, 0x3c, 0x59, 0x14, 0x64, 0x41, 0xd9, 0x50, 0xab, 0x7b, 0xfa, 0x22, 0x3b, 0xaf, 0x39, 0x3d,
|
0xc5, 0x3e, 0x96, 0x2b, 0x3f, 0x78, 0x21, 0x4a, 0xc6, 0x34, 0x1c, 0x78, 0x87, 0x43, 0x95, 0xf7,
|
||||||
0x0f, 0xcd, 0xc9, 0x6a, 0xb1, 0x08, 0x53, 0x71, 0x8e, 0xe5, 0xca, 0x0f, 0x5e, 0x88, 0x92, 0x31,
|
0x33, 0x80, 0x97, 0xd8, 0x60, 0xc4, 0x64, 0x4e, 0x62, 0xda, 0x8f, 0xe9, 0xa9, 0x17, 0x0f, 0x54,
|
||||||
0x0d, 0x07, 0xde, 0xe1, 0x50, 0xe5, 0xfd, 0x0c, 0xe0, 0xe5, 0x37, 0x18, 0x31, 0x9e, 0x93, 0x98,
|
0x89, 0x55, 0xb0, 0x2b, 0x50, 0xe7, 0x4f, 0x0b, 0xb0, 0xf9, 0x63, 0x9a, 0x6a, 0x65, 0x69, 0xea,
|
||||||
0xf6, 0x63, 0x7a, 0xea, 0xc5, 0x03, 0x55, 0x7e, 0x15, 0xec, 0x0a, 0xd4, 0xf9, 0xd3, 0x02, 0x6c,
|
0x63, 0x3b, 0xb0, 0xc6, 0xaa, 0x5a, 0x9c, 0xb2, 0x6a, 0xa1, 0xa7, 0x3a, 0x79, 0x33, 0x6d, 0xb5,
|
||||||
0xfe, 0x98, 0xa6, 0x5a, 0x59, 0x9a, 0xfa, 0xd8, 0x0e, 0xac, 0xb1, 0xaa, 0x16, 0xa7, 0xac, 0x5a,
|
0x94, 0xe5, 0xba, 0x5d, 0xd8, 0xc8, 0xd3, 0x67, 0x15, 0xb4, 0xed, 0xae, 0x99, 0x1c, 0xb2, 0x9c,
|
||||||
0xe8, 0xa9, 0x4e, 0xde, 0x4c, 0x5b, 0x2d, 0x65, 0xb9, 0x6e, 0x17, 0x36, 0xf2, 0xf4, 0x59, 0x05,
|
0x7e, 0x08, 0x6d, 0xa6, 0x72, 0x6e, 0x07, 0x4b, 0xec, 0xd0, 0x94, 0x0b, 0x99, 0x7c, 0xa6, 0x8f,
|
||||||
0x6d, 0xbb, 0x6b, 0xe6, 0x0e, 0x59, 0x4e, 0x3f, 0x84, 0x36, 0x13, 0x39, 0x77, 0x82, 0x25, 0x4e,
|
0x49, 0x2b, 0xa5, 0x2f, 0x0a, 0x73, 0xb6, 0x75, 0x6a, 0x29, 0xfb, 0x1e, 0x5c, 0x61, 0x0d, 0x61,
|
||||||
0x68, 0xca, 0x85, 0x8c, 0x3f, 0x93, 0xc7, 0xa4, 0x95, 0xdc, 0x17, 0x85, 0x39, 0xdb, 0x3a, 0xb5,
|
0x30, 0x9a, 0x8c, 0x98, 0x09, 0x7c, 0x9e, 0x82, 0x8d, 0xda, 0xbc, 0x24, 0xf8, 0x2e, 0x23, 0x89,
|
||||||
0xe4, 0x7d, 0x0f, 0xae, 0xb0, 0x1e, 0x22, 0x18, 0x4d, 0x46, 0xcc, 0x04, 0x3e, 0x4f, 0xc1, 0x46,
|
0x2b, 0x28, 0x74, 0x33, 0x38, 0x7f, 0x67, 0xce, 0x5a, 0x30, 0x0d, 0xde, 0xc9, 0x67, 0x40, 0x18,
|
||||||
0x6d, 0x5e, 0x12, 0xfb, 0x2e, 0x23, 0x89, 0x2b, 0x28, 0x74, 0x33, 0x38, 0x7f, 0x67, 0xce, 0x5a,
|
0x23, 0xbb, 0x5a, 0x43, 0xa4, 0x2c, 0x28, 0x5b, 0x5a, 0xcc, 0xe9, 0x7d, 0x86, 0xdb, 0x16, 0x2c,
|
||||||
0x30, 0x0d, 0xde, 0xc9, 0x67, 0x40, 0x78, 0x7f, 0x32, 0x30, 0x59, 0xca, 0x82, 0xb2, 0xa5, 0xc5,
|
0xba, 0x3c, 0xd2, 0x83, 0xf5, 0x49, 0x58, 0x22, 0x69, 0xe1, 0x3c, 0x8d, 0xc3, 0x1a, 0xb2, 0x1a,
|
||||||
0x9c, 0xde, 0x67, 0xb8, 0x6d, 0xb1, 0x45, 0xe7, 0x47, 0x7a, 0xb0, 0x3e, 0x09, 0x4b, 0x38, 0x2d,
|
0x5a, 0xb3, 0x26, 0x7b, 0x6b, 0xef, 0xd8, 0x0b, 0x5f, 0xd2, 0xde, 0x34, 0x76, 0xd4, 0x8d, 0x7e,
|
||||||
0x9c, 0xa7, 0x71, 0x58, 0xc3, 0xad, 0x86, 0xd4, 0xac, 0x01, 0xdf, 0xda, 0x3b, 0xf6, 0xc2, 0x97,
|
0x0c, 0x16, 0x0b, 0x10, 0x71, 0x83, 0x8d, 0xdd, 0x5b, 0x9a, 0xf0, 0x19, 0x0c, 0x3b, 0x3c, 0x12,
|
||||||
0xb4, 0x37, 0x8d, 0x1d, 0x75, 0xa3, 0x1f, 0x83, 0xc5, 0x02, 0x44, 0xdc, 0x60, 0x63, 0xf7, 0x96,
|
0x38, 0x0b, 0x77, 0xfa, 0x88, 0xf5, 0xc6, 0x5a, 0x80, 0xca, 0x8a, 0x57, 0x67, 0x68, 0xc6, 0xc6,
|
||||||
0xc6, 0x7c, 0xc6, 0x86, 0x1d, 0x1e, 0x09, 0x7c, 0x0b, 0x77, 0xfa, 0x88, 0xf5, 0xcd, 0x5a, 0x80,
|
0xc9, 0x78, 0xe2, 0xd5, 0xc8, 0xe4, 0x5d, 0xd6, 0x19, 0x9a, 0x91, 0x39, 0xd7, 0xc0, 0x62, 0x92,
|
||||||
0xca, 0x8a, 0x57, 0x67, 0x68, 0xb6, 0x8d, 0x93, 0xf1, 0xc4, 0xab, 0x91, 0xc9, 0xbb, 0xac, 0x33,
|
0x49, 0x15, 0x56, 0x7a, 0x6e, 0xf7, 0x8b, 0xfb, 0x4f, 0x1f, 0xb2, 0x0c, 0x03, 0xb0, 0xdc, 0x7b,
|
||||||
0x34, 0x23, 0x73, 0xae, 0x81, 0xc5, 0x38, 0x93, 0x2a, 0xac, 0xf4, 0xdc, 0xee, 0x17, 0xf7, 0x9f,
|
0xf6, 0xe0, 0x71, 0x77, 0x8f, 0xe5, 0x15, 0x16, 0x90, 0x45, 0x8d, 0x30, 0x20, 0x7f, 0xcd, 0x1c,
|
||||||
0x3e, 0x64, 0x19, 0x06, 0x60, 0xb9, 0xf7, 0xec, 0xc1, 0xe3, 0xee, 0x1e, 0xcb, 0x2b, 0x2c, 0x20,
|
0xf6, 0xb3, 0x49, 0xa8, 0x1f, 0xfa, 0xec, 0xa4, 0xc8, 0xcb, 0x9f, 0x17, 0xbf, 0xa4, 0xa9, 0xea,
|
||||||
0x8b, 0x12, 0x61, 0x40, 0xfe, 0x9a, 0x39, 0xec, 0x67, 0x93, 0x50, 0x57, 0xfa, 0xec, 0xa4, 0xc8,
|
0x37, 0x55, 0xa3, 0x24, 0x40, 0xd9, 0x6d, 0xce, 0x89, 0x58, 0x6b, 0x4e, 0xc4, 0x92, 0x4f, 0xc0,
|
||||||
0xcb, 0x9f, 0x17, 0xbf, 0xa4, 0xa9, 0xea, 0x45, 0x55, 0xa3, 0x24, 0x40, 0xd9, 0x89, 0xce, 0x89,
|
0x0e, 0x42, 0x7f, 0x38, 0x19, 0xd0, 0xfe, 0x34, 0xe4, 0xfc, 0x28, 0x08, 0x0f, 0x99, 0xd6, 0x09,
|
||||||
0x58, 0x6b, 0x4e, 0xc4, 0x92, 0x4f, 0xc0, 0x0e, 0x42, 0x7f, 0x38, 0x19, 0xd0, 0xfe, 0x34, 0xe4,
|
0x66, 0x9a, 0x0e, 0x52, 0x74, 0x91, 0x60, 0x4f, 0xad, 0xf3, 0xa0, 0x51, 0xdc, 0xbe, 0x38, 0x72,
|
||||||
0xfc, 0x28, 0x08, 0x0f, 0x3d, 0xde, 0x7d, 0xca, 0x4c, 0xd3, 0x41, 0x8a, 0x2e, 0x12, 0xec, 0xa9,
|
0x3f, 0xf1, 0xe3, 0x60, 0x2c, 0x0b, 0xe9, 0xaa, 0xbb, 0x86, 0x8b, 0xd2, 0x1c, 0x07, 0x62, 0xc9,
|
||||||
0x75, 0x1e, 0x34, 0x6a, 0xb7, 0x2f, 0x54, 0xee, 0x27, 0x7e, 0x1c, 0x8c, 0x53, 0xec, 0x69, 0xd7,
|
0xf9, 0xab, 0x05, 0x5b, 0x05, 0x13, 0xa0, 0x63, 0xfe, 0x1c, 0x5a, 0x09, 0x9b, 0x68, 0x7c, 0x5e,
|
||||||
0x70, 0x51, 0x9a, 0xe3, 0x40, 0x2c, 0x39, 0x7f, 0xb5, 0x60, 0xab, 0x60, 0x02, 0x74, 0xcc, 0x9f,
|
0x67, 0x23, 0xd1, 0x3b, 0x2b, 0xb7, 0xfc, 0x96, 0x76, 0xdf, 0x33, 0xb8, 0x77, 0x7a, 0xd8, 0x7f,
|
||||||
0x43, 0x2b, 0x61, 0xd3, 0x8e, 0xcf, 0xeb, 0xac, 0x1a, 0x1d, 0xa4, 0x5b, 0x7e, 0x4b, 0xbb, 0xef,
|
0xe3, 0xac, 0xd0, 0x54, 0xa2, 0xe4, 0x77, 0xc2, 0xcb, 0x9d, 0x6c, 0x23, 0x0c, 0x33, 0x56, 0x05,
|
||||||
0x19, 0xbb, 0x77, 0x7a, 0xd8, 0x9b, 0xe3, 0x1c, 0xd1, 0x54, 0xac, 0x9e, 0xe0, 0x3c, 0xc1, 0xca,
|
0x86, 0x56, 0xbc, 0x0d, 0x2d, 0x3c, 0xc8, 0xf8, 0x44, 0x9d, 0x45, 0x3a, 0x41, 0x43, 0xe2, 0xbd,
|
||||||
0x9d, 0x6c, 0x23, 0x0c, 0x33, 0x56, 0x05, 0x86, 0x56, 0xbc, 0x0d, 0x2d, 0x54, 0x64, 0x7c, 0xa2,
|
0x13, 0x79, 0x0c, 0xfb, 0x3f, 0x15, 0x68, 0x98, 0x1b, 0xf2, 0x21, 0x42, 0x0b, 0x03, 0x3d, 0xdf,
|
||||||
0x74, 0x91, 0x4e, 0xd0, 0x90, 0x78, 0xef, 0x44, 0xaa, 0x61, 0xff, 0xbb, 0x02, 0x0d, 0xf3, 0x40,
|
0x34, 0x35, 0x5c, 0x64, 0x03, 0xa6, 0x8a, 0x3c, 0x5f, 0x5f, 0x0e, 0x06, 0xb2, 0x26, 0x54, 0x25,
|
||||||
0x3e, 0x60, 0x68, 0x61, 0xa0, 0xe7, 0x9b, 0xa6, 0x86, 0x8b, 0x6c, 0xc0, 0x44, 0x91, 0xfa, 0xf5,
|
0xd6, 0x15, 0xe3, 0x01, 0xcb, 0xf7, 0xc6, 0x78, 0x81, 0x5f, 0xe4, 0x0a, 0x5c, 0xca, 0x74, 0x5b,
|
||||||
0xe5, 0xa0, 0x22, 0x6b, 0x42, 0x55, 0x62, 0x5d, 0x31, 0xae, 0xb0, 0x7c, 0x6f, 0x8c, 0x1e, 0xf8,
|
0x14, 0xe2, 0x57, 0xc7, 0xa8, 0x15, 0x97, 0xcb, 0xb3, 0x05, 0xef, 0x75, 0x79, 0x5f, 0x8f, 0xf3,
|
||||||
0x45, 0xae, 0xc0, 0xa5, 0x4c, 0xb6, 0x45, 0xc1, 0x7e, 0x75, 0x8c, 0x52, 0x71, 0xbe, 0x3c, 0x5b,
|
0x51, 0x15, 0xb1, 0xa7, 0x81, 0x6c, 0xa6, 0x8e, 0xe2, 0x68, 0x34, 0xbd, 0x65, 0xd1, 0xc6, 0xac,
|
||||||
0xf0, 0x5e, 0x97, 0xf7, 0xf5, 0x38, 0x3b, 0x55, 0x11, 0x7b, 0x1a, 0xc8, 0x66, 0xea, 0x28, 0x8e,
|
0xba, 0x35, 0x0e, 0xaa, 0x9b, 0x75, 0xfe, 0x58, 0x81, 0xcd, 0x83, 0xe0, 0x65, 0x58, 0xe2, 0xa7,
|
||||||
0x46, 0xd3, 0x5b, 0x16, 0x6d, 0xcc, 0xaa, 0x5b, 0xe3, 0xa0, 0xba, 0x59, 0xe7, 0x8f, 0x15, 0xd8,
|
0x67, 0x55, 0x3a, 0xe6, 0x88, 0x09, 0x8d, 0x03, 0x6f, 0x18, 0xfc, 0xca, 0xcc, 0x0b, 0x18, 0x74,
|
||||||
0x3c, 0x08, 0x5e, 0x86, 0x25, 0x7e, 0x7a, 0x56, 0xa5, 0x63, 0x8e, 0x98, 0xd0, 0x38, 0xf0, 0x86,
|
0x1b, 0xd9, 0xaa, 0x26, 0x9d, 0xab, 0x15, 0x84, 0x53, 0x83, 0x50, 0x39, 0x54, 0xd6, 0xdd, 0x9a,
|
||||||
0xc1, 0xaf, 0xcc, 0xbc, 0x80, 0x41, 0xb7, 0x91, 0xad, 0x6a, 0xdc, 0xb9, 0x58, 0x41, 0x38, 0x35,
|
0x00, 0xbb, 0x12, 0x73, 0x5e, 0xc1, 0x56, 0x41, 0x2b, 0x74, 0x9d, 0xdc, 0xbc, 0x5a, 0x29, 0xce,
|
||||||
0x08, 0x95, 0x03, 0x67, 0xdd, 0xad, 0x09, 0xb0, 0x2b, 0x31, 0xe7, 0x15, 0x6c, 0x15, 0xa4, 0x42,
|
0xab, 0x77, 0x61, 0x73, 0x12, 0x26, 0x8c, 0x9d, 0xa9, 0x65, 0x6e, 0xb5, 0x20, 0xb6, 0x5a, 0x57,
|
||||||
0xd7, 0xc9, 0xcd, 0xb2, 0x95, 0xe2, 0x2c, 0x7b, 0x17, 0x36, 0x27, 0x61, 0xc2, 0xb6, 0x33, 0xb1,
|
0xab, 0x5d, 0x7d, 0xcb, 0x9f, 0xc0, 0xe5, 0xde, 0xe4, 0x70, 0x18, 0x24, 0xc7, 0x25, 0xb6, 0xf8,
|
||||||
0xcc, 0xa3, 0x16, 0xc4, 0x51, 0xeb, 0x6a, 0xb5, 0xab, 0x1f, 0xf9, 0x13, 0xb8, 0xdc, 0x9b, 0x1c,
|
0x06, 0x10, 0x14, 0x58, 0xdc, 0xbb, 0x2d, 0x57, 0x34, 0x2e, 0xe7, 0x2a, 0xd8, 0x65, 0xb2, 0x30,
|
||||||
0x0e, 0x83, 0xe4, 0xb8, 0xc4, 0x16, 0xdf, 0x00, 0x82, 0x0c, 0x8b, 0x67, 0xb7, 0xe5, 0x8a, 0xb6,
|
0x37, 0xbc, 0x03, 0xd7, 0x35, 0x78, 0x3f, 0x4a, 0x83, 0xa3, 0xc0, 0xf7, 0xf4, 0xa2, 0xe6, 0x7c,
|
||||||
0xcb, 0xb9, 0x0a, 0x76, 0x19, 0x2f, 0xcc, 0x0d, 0xef, 0xc0, 0x75, 0x0d, 0xde, 0x8f, 0xd2, 0xe0,
|
0xb9, 0x00, 0x37, 0x66, 0xd3, 0xa0, 0x25, 0x3e, 0x85, 0xa6, 0x97, 0xa6, 0x9e, 0x7f, 0xcc, 0xd4,
|
||||||
0x28, 0xf0, 0x3d, 0xbd, 0xa8, 0x39, 0x5f, 0x2e, 0xc0, 0x8d, 0xd9, 0x34, 0x68, 0x89, 0x4f, 0xa1,
|
0x12, 0xb5, 0xe6, 0xcc, 0xd4, 0xde, 0x50, 0xf4, 0x02, 0x4d, 0x78, 0xfd, 0x1d, 0x50, 0x53, 0x02,
|
||||||
0xe9, 0xa5, 0xa9, 0xe7, 0x1f, 0x33, 0xb1, 0x44, 0xad, 0x39, 0x33, 0xb5, 0x37, 0x14, 0xbd, 0x40,
|
0x37, 0x11, 0x0b, 0x02, 0x05, 0x23, 0xe1, 0xac, 0x02, 0x60, 0x7d, 0xd5, 0x02, 0xc0, 0xf3, 0x51,
|
||||||
0x13, 0x5e, 0x7f, 0x07, 0xd4, 0xe4, 0xc0, 0x4d, 0xc4, 0x82, 0x40, 0xc1, 0x48, 0x38, 0xab, 0x00,
|
0x89, 0x44, 0x11, 0x4b, 0x54, 0x4e, 0xa4, 0x35, 0xb7, 0x53, 0x64, 0xfc, 0x5c, 0xac, 0x3b, 0xbf,
|
||||||
0x58, 0x5f, 0xb5, 0x00, 0xf0, 0x7c, 0x54, 0xc2, 0x51, 0xc4, 0x12, 0x95, 0x13, 0x69, 0xcd, 0xed,
|
0xab, 0xc0, 0xf6, 0x01, 0x6b, 0x23, 0xd2, 0x90, 0xf5, 0x6b, 0x65, 0x16, 0x9c, 0x93, 0x65, 0x59,
|
||||||
0x14, 0x37, 0x7e, 0x2e, 0xd6, 0x9d, 0xdf, 0x55, 0x60, 0xfb, 0x80, 0xb5, 0x11, 0x69, 0xc8, 0xfa,
|
0x31, 0x0f, 0xa3, 0x7e, 0xc8, 0x99, 0xde, 0xf6, 0x99, 0x2b, 0x70, 0x31, 0xc2, 0x65, 0x57, 0xdd,
|
||||||
0xb5, 0x32, 0x0b, 0xce, 0xc9, 0xb2, 0xac, 0x98, 0x87, 0x51, 0x3f, 0xe4, 0x9b, 0xde, 0xf6, 0x99,
|
0x66, 0x18, 0x09, 0x61, 0x6f, 0x9f, 0x49, 0x98, 0xf7, 0x6c, 0x19, 0xad, 0xa4, 0x94, 0x73, 0x7a,
|
||||||
0x2b, 0x70, 0x36, 0xc2, 0x65, 0x57, 0xdd, 0x66, 0x18, 0x09, 0x66, 0x6f, 0x9f, 0x49, 0x98, 0xf7,
|
0x5d, 0x51, 0x0a, 0x2d, 0x9c, 0xdf, 0x2f, 0xc0, 0xb5, 0x59, 0xfa, 0xe0, 0x6d, 0xfd, 0x7f, 0x93,
|
||||||
0x6c, 0x19, 0xad, 0xa4, 0x94, 0x73, 0x7f, 0x5d, 0x51, 0x0a, 0x29, 0x9c, 0xdf, 0x2f, 0xc0, 0xb5,
|
0xc6, 0x23, 0x58, 0x11, 0x6d, 0x14, 0x95, 0xaf, 0x4a, 0x66, 0xde, 0x9c, 0xaf, 0x89, 0x58, 0x66,
|
||||||
0x59, 0xf2, 0xe0, 0x6d, 0xfd, 0x7f, 0x93, 0xc6, 0x23, 0x58, 0x11, 0x6d, 0x14, 0x95, 0x2f, 0x4e,
|
0x8c, 0xae, 0x92, 0x60, 0x3f, 0x83, 0x15, 0xc4, 0x2e, 0xa2, 0xe5, 0x75, 0xa8, 0x6a, 0xd1, 0x85,
|
||||||
0x66, 0xde, 0x9c, 0x2f, 0x89, 0x58, 0x66, 0x1b, 0x5d, 0xc5, 0xc1, 0x7e, 0x06, 0x2b, 0x88, 0x5d,
|
0x4a, 0x42, 0x16, 0xc6, 0xce, 0x36, 0x5c, 0x51, 0xc3, 0x72, 0x99, 0x8f, 0xff, 0xb7, 0x02, 0x57,
|
||||||
0x44, 0xca, 0xeb, 0x50, 0xd5, 0xa2, 0x0b, 0x85, 0x84, 0x2c, 0x8c, 0x9d, 0x6d, 0xb8, 0xa2, 0x86,
|
0xcb, 0xd7, 0x2f, 0x34, 0x7b, 0x9c, 0x67, 0xae, 0x2c, 0x1f, 0x19, 0xad, 0x0b, 0x8d, 0x8c, 0x8b,
|
||||||
0xe5, 0x32, 0x1f, 0xff, 0x6f, 0x05, 0xae, 0x96, 0xaf, 0x5f, 0x68, 0xf6, 0x38, 0xcf, 0x5c, 0x59,
|
0x17, 0x1a, 0x19, 0x97, 0x66, 0x8c, 0x8c, 0xbf, 0xad, 0xc0, 0xda, 0x5e, 0x4c, 0x59, 0xfb, 0xfe,
|
||||||
0x3e, 0x32, 0x5a, 0x17, 0x1a, 0x19, 0x17, 0x2f, 0x34, 0x32, 0x2e, 0xcd, 0x18, 0x19, 0x7f, 0x5b,
|
0x5c, 0x5c, 0x97, 0x72, 0xd7, 0x8f, 0xa0, 0x3d, 0xe6, 0x19, 0xc3, 0xef, 0x17, 0x72, 0x6e, 0x4b,
|
||||||
0x81, 0xb5, 0xbd, 0x98, 0xb2, 0xf6, 0xfd, 0xb9, 0xb8, 0x2e, 0xe5, 0xae, 0x1f, 0x41, 0x7b, 0xcc,
|
0x2e, 0x68, 0xfd, 0x0b, 0xcb, 0x46, 0x6a, 0x92, 0x28, 0xb4, 0x3a, 0x6d, 0x5c, 0xd1, 0xc8, 0x09,
|
||||||
0x33, 0x86, 0xdf, 0x2f, 0xe4, 0xdc, 0x96, 0x5c, 0xd0, 0xfa, 0x17, 0x96, 0x8d, 0xd4, 0x24, 0x51,
|
0x2c, 0x26, 0x94, 0x0e, 0xb0, 0xbe, 0x89, 0xdf, 0xce, 0x26, 0xac, 0x9b, 0x6a, 0x60, 0x6e, 0xfa,
|
||||||
0x68, 0x75, 0xda, 0xb8, 0xa2, 0x91, 0x13, 0x58, 0x4c, 0x28, 0x1d, 0x60, 0x7d, 0x13, 0xbf, 0x9d,
|
0x14, 0xda, 0x4f, 0x98, 0x2b, 0x7c, 0x75, 0xe5, 0x9c, 0x75, 0x20, 0xba, 0x04, 0x94, 0xcb, 0xd0,
|
||||||
0x4d, 0x58, 0x37, 0xc5, 0xc0, 0xdc, 0xf4, 0x29, 0xb4, 0x9f, 0x30, 0x57, 0xf8, 0xea, 0xc2, 0x39,
|
0xbd, 0x61, 0x94, 0x98, 0xa7, 0x76, 0x36, 0x98, 0x31, 0x74, 0x14, 0x89, 0x19, 0x2c, 0x91, 0x87,
|
||||||
0xeb, 0x40, 0x74, 0x0e, 0xc8, 0x97, 0xa1, 0x7b, 0xc3, 0x28, 0x31, 0xb5, 0x76, 0x36, 0x98, 0x31,
|
0x6f, 0x82, 0x24, 0x7b, 0x29, 0xd9, 0x81, 0x75, 0x13, 0x46, 0x3f, 0x61, 0x05, 0x94, 0x0a, 0x44,
|
||||||
0x74, 0x14, 0x89, 0x19, 0x2c, 0x91, 0x87, 0x6f, 0x82, 0x24, 0x7b, 0x29, 0xd9, 0x81, 0x75, 0x13,
|
0xe8, 0xc4, 0x06, 0x26, 0xf9, 0xe5, 0x7c, 0x59, 0x81, 0xce, 0x01, 0xef, 0xe6, 0xf7, 0x38, 0x59,
|
||||||
0x46, 0x3f, 0x61, 0x05, 0x94, 0x0a, 0x44, 0xc8, 0xc4, 0x06, 0x26, 0xf9, 0xe5, 0x7c, 0x59, 0x81,
|
0x98, 0x4c, 0x12, 0x77, 0xec, 0xab, 0x33, 0xb1, 0xd4, 0x87, 0x8f, 0x44, 0x7d, 0x73, 0x0a, 0x6c,
|
||||||
0xce, 0x01, 0xef, 0xe6, 0xf7, 0x38, 0x59, 0x98, 0x4c, 0x12, 0x77, 0xec, 0x2b, 0x9d, 0x58, 0xea,
|
0x20, 0x8c, 0xe3, 0x22, 0x7f, 0xa3, 0x9b, 0x24, 0xfc, 0xca, 0xa7, 0xae, 0x35, 0xfd, 0xe6, 0x6b,
|
||||||
0xc3, 0x47, 0xa2, 0xbe, 0x39, 0x05, 0x36, 0x10, 0xc6, 0x71, 0x91, 0xbf, 0xe0, 0x4d, 0x12, 0x7e,
|
0xdc, 0x22, 0x8c, 0x5c, 0x59, 0x77, 0xfa, 0xcd, 0xeb, 0x94, 0x4f, 0x63, 0xf4, 0x6b, 0x8a, 0x05,
|
||||||
0xe5, 0x53, 0xd7, 0x9a, 0x7e, 0xf3, 0x35, 0x6e, 0x11, 0x46, 0xae, 0xac, 0x3b, 0xfd, 0xe6, 0x75,
|
0x5c, 0x87, 0x9c, 0x2b, 0x70, 0xb9, 0x44, 0x3d, 0x79, 0xa8, 0x5d, 0x77, 0xfa, 0x2e, 0x7d, 0x40,
|
||||||
0xca, 0xa7, 0x31, 0xfa, 0x35, 0xc5, 0x02, 0xae, 0x43, 0xce, 0x15, 0xb8, 0x5c, 0x22, 0x9e, 0x54,
|
0xe3, 0xd7, 0x81, 0xcf, 0xd3, 0xfd, 0x0a, 0x22, 0xe4, 0xb2, 0x16, 0xec, 0xe6, 0xeb, 0xb5, 0x6d,
|
||||||
0x6a, 0xd7, 0x9d, 0xbe, 0x59, 0x1f, 0xd0, 0xf8, 0x75, 0xe0, 0xf3, 0x74, 0xbf, 0x82, 0x08, 0xb9,
|
0x97, 0x2d, 0xa1, 0xcc, 0x7f, 0x57, 0xa1, 0x2e, 0x2d, 0xa8, 0x64, 0x7e, 0x0f, 0x16, 0xf9, 0x33,
|
||||||
0xac, 0x05, 0xbb, 0xf9, 0xb2, 0x6d, 0xdb, 0x65, 0x4b, 0xc8, 0xf3, 0x5f, 0x55, 0xa8, 0x4b, 0x0b,
|
0x1b, 0xd9, 0xd4, 0xb8, 0xb4, 0x67, 0x38, 0x7b, 0xab, 0x80, 0x4f, 0x6b, 0xcf, 0x0a, 0x3e, 0xa7,
|
||||||
0x2a, 0x9e, 0xdf, 0x83, 0x45, 0xfe, 0xcc, 0x46, 0x36, 0xb5, 0x5d, 0xda, 0x33, 0x9c, 0xbd, 0x55,
|
0x19, 0xca, 0x98, 0x6f, 0x74, 0x86, 0x32, 0xf9, 0xc7, 0x3a, 0x17, 0xea, 0xc6, 0x53, 0x1a, 0xb9,
|
||||||
0xc0, 0xa7, 0xb5, 0x67, 0x05, 0x9f, 0xd3, 0x0c, 0x61, 0xcc, 0x37, 0x3a, 0x43, 0x98, 0xfc, 0x63,
|
0x5e, 0x7c, 0xe1, 0x32, 0xde, 0xe7, 0xec, 0x1b, 0xb3, 0x09, 0x50, 0xe6, 0x1e, 0xac, 0xaa, 0xb7,
|
||||||
0x9d, 0x0b, 0x75, 0xe3, 0x29, 0x8d, 0x5c, 0x2f, 0xbe, 0x70, 0x19, 0xef, 0x73, 0xf6, 0x8d, 0xd9,
|
0x31, 0x62, 0x97, 0x3e, 0x98, 0x49, 0x49, 0x57, 0xe6, 0x3c, 0xa6, 0xf1, 0xa3, 0xa9, 0xa7, 0x26,
|
||||||
0x04, 0xc8, 0x73, 0x0f, 0x56, 0xd5, 0xdb, 0x18, 0xb1, 0x4b, 0x1f, 0xcc, 0x24, 0xa7, 0x2b, 0x73,
|
0xfd, 0x68, 0xe6, 0x7c, 0x6d, 0x1c, 0x2d, 0x3f, 0x0a, 0xbf, 0x80, 0x66, 0x6e, 0x22, 0x23, 0xef,
|
||||||
0x1e, 0xd3, 0xb8, 0x6a, 0xea, 0xa9, 0x49, 0x57, 0xcd, 0x9c, 0xaf, 0x0d, 0xd5, 0xf2, 0xa3, 0xf0,
|
0x68, 0xe4, 0xe5, 0x83, 0xac, 0xed, 0xcc, 0x23, 0x41, 0xc9, 0x13, 0xe8, 0xcc, 0x6a, 0x0b, 0xc8,
|
||||||
0x0b, 0x68, 0xe6, 0x26, 0x32, 0xf2, 0x8e, 0x46, 0x5e, 0x3e, 0xc8, 0xda, 0xce, 0x3c, 0x12, 0xe4,
|
0x87, 0xe5, 0x55, 0xb8, 0x2c, 0xf7, 0xda, 0x1f, 0x9d, 0x8b, 0x56, 0x6e, 0x7a, 0xa7, 0x42, 0x22,
|
||||||
0x3c, 0x81, 0xce, 0xac, 0xb6, 0x80, 0x7c, 0x58, 0x5e, 0x85, 0xcb, 0x72, 0xaf, 0xfd, 0xd1, 0xb9,
|
0xd6, 0x24, 0x96, 0xd6, 0x14, 0x72, 0xfb, 0x1c, 0x65, 0x47, 0x6e, 0xf9, 0xc1, 0xb9, 0x0b, 0x14,
|
||||||
0x68, 0xe5, 0xa1, 0x77, 0x2a, 0x24, 0x62, 0x4d, 0x62, 0x69, 0x4d, 0x21, 0xb7, 0xcf, 0x51, 0x76,
|
0xdb, 0x30, 0xc8, 0x9e, 0x68, 0x8d, 0xed, 0x6e, 0x95, 0xb8, 0x40, 0xd9, 0x66, 0xef, 0x9f, 0x49,
|
||||||
0xe4, 0x91, 0x1f, 0x9c, 0xbb, 0x40, 0xb1, 0x03, 0x83, 0xec, 0x89, 0xd6, 0x38, 0xee, 0x56, 0x89,
|
0x37, 0xdd, 0xea, 0x67, 0xd0, 0xca, 0x4f, 0x71, 0xc4, 0x39, 0x7b, 0xe8, 0xb4, 0x6f, 0xce, 0xa5,
|
||||||
0x0b, 0x94, 0x1d, 0xf6, 0xfe, 0x99, 0x74, 0xd3, 0xa3, 0x7e, 0x06, 0xad, 0xfc, 0x14, 0x47, 0x9c,
|
0xc9, 0x9c, 0xdc, 0x78, 0xc7, 0x33, 0x9c, 0xbc, 0xec, 0xed, 0xd0, 0x70, 0xf2, 0xd2, 0x27, 0x40,
|
||||||
0xb3, 0x87, 0x4e, 0xfb, 0xe6, 0x5c, 0x9a, 0xcc, 0xc9, 0x8d, 0x77, 0x3c, 0xc3, 0xc9, 0xcb, 0xde,
|
0xf2, 0x18, 0xaa, 0xda, 0x4b, 0x1d, 0xd9, 0xce, 0xbf, 0x9d, 0x99, 0xf2, 0xae, 0xcd, 0x5a, 0xce,
|
||||||
0x0e, 0x0d, 0x27, 0x2f, 0x7d, 0x02, 0x24, 0x8f, 0xa1, 0xaa, 0xbd, 0xd4, 0x91, 0xed, 0xfc, 0xdb,
|
0x49, 0xc3, 0x6c, 0xb7, 0x3d, 0xf7, 0x25, 0xae, 0x28, 0x2d, 0xf7, 0xa6, 0xc6, 0x8c, 0x99, 0x7f,
|
||||||
0x99, 0xc9, 0xef, 0xda, 0xac, 0xe5, 0x1c, 0x37, 0xcc, 0x76, 0xdb, 0x73, 0x5f, 0xe2, 0x8a, 0xdc,
|
0xa3, 0x32, 0x8c, 0x39, 0xe3, 0x55, 0xcd, 0x30, 0xe6, 0xac, 0x47, 0x2e, 0x1e, 0x56, 0xb9, 0x89,
|
||||||
0x72, 0x6f, 0x6a, 0xcc, 0x98, 0xf9, 0x37, 0x2a, 0xc3, 0x98, 0x33, 0x5e, 0xd5, 0x0c, 0x63, 0xce,
|
0xd0, 0x08, 0xab, 0xf2, 0x71, 0xdb, 0x08, 0xab, 0x59, 0xe3, 0x28, 0x93, 0x9c, 0x1b, 0x37, 0x0c,
|
||||||
0x7a, 0xe4, 0xe2, 0x61, 0x95, 0x9b, 0x08, 0x8d, 0xb0, 0x2a, 0x1f, 0xb7, 0x8d, 0xb0, 0x9a, 0x35,
|
0xc9, 0xe5, 0x03, 0x92, 0x21, 0x79, 0xd6, 0xb4, 0xe2, 0x01, 0x29, 0x4e, 0x02, 0x44, 0xff, 0x0f,
|
||||||
0x8e, 0x32, 0xce, 0xb9, 0x71, 0xc3, 0xe0, 0x5c, 0x3e, 0x20, 0x19, 0x9c, 0x67, 0x4d, 0x2b, 0x1e,
|
0x6c, 0xe6, 0xd0, 0x61, 0xbf, 0x77, 0x06, 0x15, 0x66, 0xf5, 0xbf, 0x59, 0xaa, 0x5c, 0x3e, 0x8e,
|
||||||
0x90, 0xe2, 0x24, 0x40, 0xf4, 0xff, 0xc7, 0x66, 0x0e, 0x1d, 0xf6, 0x7b, 0x67, 0x50, 0x61, 0x56,
|
0x3c, 0xd6, 0xc3, 0xa9, 0xdc, 0xfe, 0x04, 0x6a, 0x7a, 0xb9, 0x24, 0xfa, 0xdd, 0x95, 0x94, 0x57,
|
||||||
0xff, 0x9b, 0xa5, 0xca, 0xe5, 0xe3, 0xc8, 0x63, 0x3d, 0x9c, 0xca, 0xed, 0x4f, 0xa0, 0xa6, 0x97,
|
0xfb, 0xfa, 0xcc, 0x75, 0x3c, 0x0b, 0x13, 0xa8, 0xf7, 0x0c, 0x86, 0xc0, 0x92, 0x9e, 0xc6, 0x10,
|
||||||
0x4b, 0xa2, 0xdf, 0x5d, 0x49, 0x79, 0xb5, 0xaf, 0xcf, 0x5c, 0x47, 0x5d, 0x18, 0x43, 0xbd, 0x67,
|
0x58, 0xd6, 0x6c, 0x90, 0x2e, 0x40, 0xd6, 0x2a, 0x90, 0xab, 0x1a, 0x79, 0xa1, 0x07, 0xb1, 0xb7,
|
||||||
0x30, 0x18, 0x96, 0xf4, 0x34, 0x06, 0xc3, 0xb2, 0x66, 0x83, 0x74, 0x01, 0xb2, 0x56, 0x81, 0x5c,
|
0x67, 0xac, 0x66, 0x6e, 0xac, 0x75, 0x12, 0x86, 0x1b, 0x17, 0xfb, 0x0e, 0xc3, 0x8d, 0x4b, 0x1a,
|
||||||
0xd5, 0xc8, 0x0b, 0x3d, 0x88, 0xbd, 0x3d, 0x63, 0x35, 0x73, 0x63, 0xad, 0x93, 0x30, 0xdc, 0xb8,
|
0x10, 0xf2, 0x0b, 0x68, 0x17, 0x2a, 0x33, 0xd1, 0x7d, 0x74, 0x56, 0x5b, 0x61, 0xbf, 0x3b, 0x9f,
|
||||||
0xd8, 0x77, 0x18, 0x6e, 0x5c, 0xd2, 0x80, 0x90, 0x5f, 0x40, 0xbb, 0x50, 0x99, 0x89, 0xee, 0xa3,
|
0x48, 0xca, 0x3f, 0x5c, 0x16, 0x7f, 0x43, 0x7f, 0xfb, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x22,
|
||||||
0xb3, 0xda, 0x0a, 0xfb, 0xdd, 0xf9, 0x44, 0x92, 0xff, 0xe1, 0xb2, 0xf8, 0x8b, 0xfa, 0xdb, 0xff,
|
0xfc, 0x70, 0xb3, 0x93, 0x1e, 0x00, 0x00,
|
||||||
0x0b, 0x00, 0x00, 0xff, 0xff, 0xb2, 0x2a, 0xb8, 0xd3, 0xaf, 0x1e, 0x00, 0x00,
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// Copyright (c) 2015 The btcsuite developers
|
// Copyright (c) 2015-2016 The btcsuite developers
|
||||||
// Use of this source code is governed by an ISC
|
// Use of this source code is governed by an ISC
|
||||||
// license that can be found in the LICENSE file.
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
@ -119,23 +119,16 @@ func makeTxSummary(w *Wallet, details *wtxmgr.TxDetails) TransactionSummary {
|
||||||
}
|
}
|
||||||
outputs := make([]TransactionSummaryOutput, 0, len(details.MsgTx.TxOut))
|
outputs := make([]TransactionSummaryOutput, 0, len(details.MsgTx.TxOut))
|
||||||
var credIndex int
|
var credIndex int
|
||||||
for i, txOut := range details.MsgTx.TxOut {
|
for i := range details.MsgTx.TxOut {
|
||||||
mine := len(details.Credits) > credIndex && details.Credits[credIndex].Index == uint32(i)
|
mine := len(details.Credits) > credIndex && details.Credits[credIndex].Index == uint32(i)
|
||||||
|
if !mine {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
acct, internal := lookupOutputChain(w, details, details.Credits[credIndex])
|
||||||
output := TransactionSummaryOutput{
|
output := TransactionSummaryOutput{
|
||||||
Index: uint32(i),
|
Index: uint32(i),
|
||||||
Amount: btcutil.Amount(txOut.Value),
|
Account: acct,
|
||||||
Mine: mine,
|
Internal: internal,
|
||||||
}
|
|
||||||
if mine {
|
|
||||||
acct, internal := lookupOutputChain(w, details, details.Credits[credIndex])
|
|
||||||
output.Account = acct
|
|
||||||
output.Internal = internal
|
|
||||||
credIndex++
|
|
||||||
} else {
|
|
||||||
_, addresses, _, err := txscript.ExtractPkScriptAddrs(txOut.PkScript, w.chainParams)
|
|
||||||
if err == nil {
|
|
||||||
output.Addresses = addresses
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
outputs = append(outputs, output)
|
outputs = append(outputs, output)
|
||||||
}
|
}
|
||||||
|
@ -143,7 +136,7 @@ func makeTxSummary(w *Wallet, details *wtxmgr.TxDetails) TransactionSummary {
|
||||||
Hash: &details.Hash,
|
Hash: &details.Hash,
|
||||||
Transaction: serializedTx,
|
Transaction: serializedTx,
|
||||||
MyInputs: inputs,
|
MyInputs: inputs,
|
||||||
Outputs: outputs,
|
MyOutputs: outputs,
|
||||||
Fee: fee,
|
Fee: fee,
|
||||||
Timestamp: details.Received.Unix(),
|
Timestamp: details.Received.Unix(),
|
||||||
}
|
}
|
||||||
|
@ -185,7 +178,7 @@ func relevantAccounts(w *Wallet, m map[uint32]btcutil.Amount, txs []TransactionS
|
||||||
for _, d := range tx.MyInputs {
|
for _, d := range tx.MyInputs {
|
||||||
m[d.PreviousAccount] = 0
|
m[d.PreviousAccount] = 0
|
||||||
}
|
}
|
||||||
for _, c := range tx.Outputs {
|
for _, c := range tx.MyOutputs {
|
||||||
m[c.Account] = 0
|
m[c.Account] = 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -356,7 +349,7 @@ type TransactionSummary struct {
|
||||||
Hash *wire.ShaHash
|
Hash *wire.ShaHash
|
||||||
Transaction []byte
|
Transaction []byte
|
||||||
MyInputs []TransactionSummaryInput
|
MyInputs []TransactionSummaryInput
|
||||||
Outputs []TransactionSummaryOutput
|
MyOutputs []TransactionSummaryOutput
|
||||||
Fee btcutil.Amount
|
Fee btcutil.Amount
|
||||||
Timestamp int64
|
Timestamp int64
|
||||||
}
|
}
|
||||||
|
@ -371,23 +364,13 @@ type TransactionSummaryInput struct {
|
||||||
PreviousAmount btcutil.Amount
|
PreviousAmount btcutil.Amount
|
||||||
}
|
}
|
||||||
|
|
||||||
// TransactionSummaryOutput describes a transaction output of a relevant
|
// TransactionSummaryOutput describes wallet properties of a transaction output
|
||||||
// transaction. When the transaction is authored by this wallet, all
|
// controlled by the wallet. The Index field marks the transaction output index
|
||||||
// transaction outputs are considered relevant. The Mine field describes
|
// of the transaction (not included here).
|
||||||
// whether outputs to these authored transactions pay back to the wallet
|
|
||||||
// (e.g. change) or create an uncontrolled output. For convenience, the
|
|
||||||
// addresses (if any) of an uncontrolled output are included.
|
|
||||||
type TransactionSummaryOutput struct {
|
type TransactionSummaryOutput struct {
|
||||||
Index uint32
|
Index uint32
|
||||||
Amount btcutil.Amount
|
|
||||||
Mine bool
|
|
||||||
|
|
||||||
// Only relevant if mine==true.
|
|
||||||
Account uint32
|
Account uint32
|
||||||
Internal bool
|
Internal bool
|
||||||
|
|
||||||
// Only relevant if mine==false.
|
|
||||||
Addresses []btcutil.Address
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// AccountBalance associates a total (zero confirmation) balance with an
|
// AccountBalance associates a total (zero confirmation) balance with an
|
||||||
|
|
Loading…
Add table
Reference in a new issue