Query: Height -> LastHeight

This commit is contained in:
Ethan Buchman 2017-02-06 19:20:33 -05:00
parent b025c13f67
commit b6afa8d85b
4 changed files with 147 additions and 146 deletions

View File

@ -76,16 +76,16 @@ ABCI requests/responses are simple Protobuf messages. Check out the [schema fil
* `Path (string)`: Path of request, like an HTTP GET path. Can be used with or in liue of Data. * `Path (string)`: Path of request, like an HTTP GET path. Can be used with or in liue of Data.
* Apps MUST interpret '/store' as a query by key on the underlying store. The key SHOULD be specified in the Data field. * Apps MUST interpret '/store' as a query by key on the underlying store. The key SHOULD be specified in the Data field.
* Apps SHOULD allow queries over specific types like '/accounts/...' or '/votes/...' * Apps SHOULD allow queries over specific types like '/accounts/...' or '/votes/...'
* `Height (uint64)`: The block height for which you want the query (default=0 returns data for the latest committed block) * `LastHeight (uint64)`: The block height for which you want the query (default=0 returns data for the latest committed block). Note that the corresponding Merkle root hash will only be included in the header of the next block (ie. `LastHeight + 1`)
* `Prove (bool)`: Return Merkle proof with response if possible * `Prove (bool)`: Return Merkle proof with response if possible
* __Returns__: * __Returns__:
* `Code (uint32)`: Response code * `Code (uint32)`: Response code
* `Key ([]byte)`: The key of the matching data * `Key ([]byte)`: The key of the matching data
* `Value ([]byte)`: The value of the matching data * `Value ([]byte)`: The value of the matching data
* `Proof ([]byte)`: Proof for the data, if requested * `Proof ([]byte)`: Proof for the data, if requested
* `Height (uint64)`: The block height from which data was derived * `LastHeight (uint64)`: The block height from which data was derived. The Merkle root for the proof is included in block `LastHeight + 1`
* `Log (string)`: Debug or error message * `Log (string)`: Debug or error message
*Please note* The current implementation of go-merkle doesn't support querying proofs from past blocks, so for the present moment, any height other than 0 will return an error. Hopefully this will be improved soon(ish) *Please note* The current implementation of go-merkle doesn't support querying proofs from past blocks, so for the present moment, any height other than 0 will return an error (recall height=0 defaults to latest block). Hopefully this will be improved soon(ish)
#### Info #### Info
* __Returns__: * __Returns__:

View File

@ -17,13 +17,13 @@ import (
// Structure for data passed to print response. // Structure for data passed to print response.
type response struct { type response struct {
Data []byte Data []byte
Code types.CodeType Code types.CodeType
Key []byte Key []byte
Value []byte Value []byte
Log string Log string
Height string LastHeight string
Proof []byte Proof []byte
} }
// client is a global variable so it can be reused by the console // client is a global variable so it can be reused by the console
@ -299,20 +299,20 @@ func cmdQuery(c *cli.Context) error {
return err return err
} }
resQuery, err := client.QuerySync(types.RequestQuery{ resQuery, err := client.QuerySync(types.RequestQuery{
Data: queryBytes, Data: queryBytes,
Path: "/store", // TOOD expose Path: "/store", // TOOD expose
Height: 0, // TODO expose LastHeight: 0, // TODO expose
//Prove: true, // TODO expose //Prove: true, // TODO expose
}) })
if err != nil { if err != nil {
return err return err
} }
printResponse(c, response{ printResponse(c, response{
Code: resQuery.Code, Code: resQuery.Code,
Key: resQuery.Key, Key: resQuery.Key,
Value: resQuery.Value, Value: resQuery.Value,
Log: resQuery.Log, Log: resQuery.Log,
Height: fmt.Sprintf("%v", resQuery.Height), LastHeight: fmt.Sprintf("%v", resQuery.LastHeight),
//Proof: resQuery.Proof, //Proof: resQuery.Proof,
}) })
return nil return nil
@ -346,8 +346,8 @@ func printResponse(c *cli.Context, rsp response) {
if rsp.Log != "" { if rsp.Log != "" {
fmt.Printf("-> log: %s\n", rsp.Log) fmt.Printf("-> log: %s\n", rsp.Log)
} }
if rsp.Height != "" { if rsp.LastHeight != "" {
fmt.Printf("-> height: %s\n", rsp.Height) fmt.Printf("-> height: %s\n", rsp.LastHeight)
} }
if rsp.Proof != nil { if rsp.Proof != nil {
fmt.Printf("-> proof: %X\n", rsp.Proof) fmt.Printf("-> proof: %X\n", rsp.Proof)

View File

@ -716,10 +716,10 @@ func (m *RequestCheckTx) GetTx() []byte {
} }
type RequestQuery struct { type RequestQuery struct {
Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` Data []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"` Path string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
Height uint64 `protobuf:"varint,3,opt,name=height" json:"height,omitempty"` LastHeight uint64 `protobuf:"varint,3,opt,name=last_height,json=lastHeight" json:"last_height,omitempty"`
Prove bool `protobuf:"varint,4,opt,name=prove" json:"prove,omitempty"` Prove bool `protobuf:"varint,4,opt,name=prove" json:"prove,omitempty"`
} }
func (m *RequestQuery) Reset() { *m = RequestQuery{} } func (m *RequestQuery) Reset() { *m = RequestQuery{} }
@ -741,9 +741,9 @@ func (m *RequestQuery) GetPath() string {
return "" return ""
} }
func (m *RequestQuery) GetHeight() uint64 { func (m *RequestQuery) GetLastHeight() uint64 {
if m != nil { if m != nil {
return m.Height return m.LastHeight
} }
return 0 return 0
} }
@ -1411,13 +1411,13 @@ func (m *ResponseCheckTx) GetLog() string {
} }
type ResponseQuery struct { type ResponseQuery struct {
Code CodeType `protobuf:"varint,1,opt,name=code,enum=types.CodeType" json:"code,omitempty"` Code CodeType `protobuf:"varint,1,opt,name=code,enum=types.CodeType" json:"code,omitempty"`
Index int64 `protobuf:"varint,2,opt,name=index" json:"index,omitempty"` Index int64 `protobuf:"varint,2,opt,name=index" json:"index,omitempty"`
Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
Value []byte `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"` Value []byte `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
Proof []byte `protobuf:"bytes,5,opt,name=proof,proto3" json:"proof,omitempty"` Proof []byte `protobuf:"bytes,5,opt,name=proof,proto3" json:"proof,omitempty"`
Height uint64 `protobuf:"varint,6,opt,name=height" json:"height,omitempty"` LastHeight uint64 `protobuf:"varint,6,opt,name=last_height,json=lastHeight" json:"last_height,omitempty"`
Log string `protobuf:"bytes,7,opt,name=log" json:"log,omitempty"` Log string `protobuf:"bytes,7,opt,name=log" json:"log,omitempty"`
} }
func (m *ResponseQuery) Reset() { *m = ResponseQuery{} } func (m *ResponseQuery) Reset() { *m = ResponseQuery{} }
@ -1460,9 +1460,9 @@ func (m *ResponseQuery) GetProof() []byte {
return nil return nil
} }
func (m *ResponseQuery) GetHeight() uint64 { func (m *ResponseQuery) GetLastHeight() uint64 {
if m != nil { if m != nil {
return m.Height return m.LastHeight
} }
return 0 return 0
} }
@ -2129,112 +2129,113 @@ var _ABCIApplication_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("types/types.proto", fileDescriptor0) } func init() { proto.RegisterFile("types/types.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{ var fileDescriptor0 = []byte{
// 1711 bytes of a gzipped FileDescriptorProto // 1723 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x58, 0x4b, 0x6f, 0xe4, 0xc6, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x58, 0x5b, 0x6f, 0xe3, 0xc6,
0x11, 0x16, 0xe7, 0x3d, 0x35, 0xd2, 0xa8, 0x55, 0x1a, 0x49, 0xd4, 0x24, 0x87, 0x05, 0x03, 0xc7, 0x15, 0x36, 0x75, 0xd7, 0x91, 0x2d, 0x8f, 0x8f, 0x65, 0x5b, 0x56, 0x0b, 0x74, 0xc1, 0x22, 0x8d,
0xda, 0x8d, 0xb3, 0x1b, 0xc8, 0x70, 0xb0, 0x8a, 0x83, 0x00, 0xd2, 0xae, 0xbc, 0x1a, 0x18, 0xde, 0x77, 0x9b, 0xee, 0x16, 0x0e, 0x52, 0xac, 0x9b, 0xa2, 0x80, 0xbd, 0xeb, 0xac, 0x85, 0x20, 0xbb,
0x55, 0xe8, 0xb5, 0x2f, 0x09, 0x32, 0xa0, 0x86, 0x3d, 0x33, 0x8c, 0xa8, 0x26, 0x97, 0x6c, 0xca, 0x2e, 0xb3, 0xc9, 0x4b, 0x8b, 0x0a, 0xb4, 0x38, 0x92, 0x58, 0x4b, 0x24, 0x97, 0x1c, 0x3a, 0x72,
0x52, 0x7e, 0x83, 0xef, 0xf9, 0x09, 0xb9, 0x07, 0xc8, 0x29, 0xf7, 0x00, 0x79, 0x3f, 0x7e, 0x51, 0x7f, 0x43, 0xde, 0xfb, 0x13, 0xfa, 0x0b, 0xfa, 0x94, 0xf7, 0x02, 0xbd, 0x5f, 0x7e, 0x51, 0x71,
0xd0, 0x0f, 0x3e, 0x45, 0x1a, 0x3e, 0xf8, 0x32, 0x60, 0x3d, 0xbb, 0xab, 0xba, 0xea, 0xeb, 0xea, 0x66, 0x86, 0x57, 0x53, 0x41, 0x1f, 0xf2, 0x22, 0xf0, 0x5c, 0x67, 0xce, 0xcc, 0x39, 0xdf, 0x39,
0x81, 0x1d, 0x7e, 0x1f, 0xd2, 0xf8, 0x99, 0xfc, 0x7d, 0x1a, 0x46, 0x01, 0x0f, 0xb0, 0x2b, 0x09, 0x23, 0xd8, 0x13, 0xf7, 0x01, 0x8f, 0x9e, 0xc9, 0xdf, 0xa7, 0x41, 0xe8, 0x0b, 0x1f, 0x9b, 0x92,
0xeb, 0x2f, 0x1d, 0xe8, 0xdb, 0xf4, 0x5d, 0x42, 0x63, 0x8e, 0x47, 0xd0, 0xa1, 0x8b, 0x75, 0x60, 0x30, 0xff, 0xdc, 0x80, 0xb6, 0xc5, 0xdf, 0xc5, 0x3c, 0x12, 0x78, 0x02, 0x0d, 0x3e, 0x5d, 0xf8,
0x1a, 0x8f, 0x8c, 0xa3, 0xd1, 0x31, 0x3e, 0x55, 0xea, 0x5a, 0x7a, 0xbe, 0x58, 0x07, 0x17, 0x1b, 0x43, 0xe3, 0x91, 0x71, 0xd2, 0x3b, 0xc5, 0xa7, 0x4a, 0x5d, 0x4b, 0x2f, 0xa7, 0x0b, 0xff, 0x6a,
0xb6, 0xd4, 0xc0, 0x1f, 0x41, 0x77, 0xe9, 0x27, 0xf1, 0xda, 0x6c, 0x49, 0xd5, 0xdd, 0xb2, 0xea, 0xcb, 0x92, 0x1a, 0xf8, 0x63, 0x68, 0xce, 0x96, 0x71, 0xb4, 0x18, 0xd6, 0xa4, 0xea, 0x7e, 0x51,
0x27, 0x42, 0x74, 0xb1, 0x61, 0x2b, 0x1d, 0xe1, 0xd6, 0x63, 0xcb, 0xc0, 0x6c, 0xd7, 0xb9, 0x9d, 0xf5, 0x13, 0x12, 0x5d, 0x6d, 0x59, 0x4a, 0x87, 0xdc, 0xba, 0xde, 0xcc, 0x1f, 0xd6, 0xab, 0xdc,
0xb1, 0xa5, 0x74, 0x2b, 0x34, 0xf0, 0x39, 0x40, 0x4c, 0xf9, 0x3c, 0x08, 0xb9, 0x17, 0x30, 0xb3, 0x8e, 0xbd, 0x99, 0x74, 0x4b, 0x1a, 0xf8, 0x1c, 0x20, 0xe2, 0x62, 0xe2, 0x07, 0xc2, 0xf5, 0xbd,
0x23, 0xf5, 0x0f, 0xca, 0xfa, 0x9f, 0x53, 0xfe, 0x46, 0x8a, 0x2f, 0x36, 0xec, 0x61, 0x9c, 0x12, 0x61, 0x43, 0xea, 0x1f, 0x15, 0xf5, 0x3f, 0xe7, 0xe2, 0x8d, 0x14, 0x5f, 0x6d, 0x59, 0xdd, 0x28,
0xc2, 0xd2, 0xa5, 0xbe, 0x77, 0x4b, 0xa3, 0x39, 0xbf, 0x33, 0xbb, 0x75, 0x96, 0x2f, 0x95, 0xfc, 0x21, 0xc8, 0xd2, 0xe1, 0x4b, 0xf7, 0x8e, 0x87, 0x13, 0xb1, 0x1e, 0x36, 0xab, 0x2c, 0x5f, 0x2a,
0xed, 0x9d, 0xb0, 0x74, 0x53, 0x02, 0x8f, 0x61, 0xb0, 0x58, 0xd3, 0xc5, 0xb5, 0xb0, 0xeb, 0x49, 0xf9, 0xdb, 0x35, 0x59, 0x3a, 0x09, 0x81, 0xa7, 0xd0, 0x99, 0x2e, 0xf8, 0xf4, 0x96, 0xec, 0x5a,
0xbb, 0xbd, 0xb2, 0xdd, 0x0b, 0x21, 0x95, 0x56, 0xfd, 0x85, 0xfa, 0xc4, 0xa7, 0xd0, 0x5b, 0x04, 0xd2, 0xee, 0xa0, 0x68, 0xf7, 0x82, 0xa4, 0xd2, 0xaa, 0x3d, 0x55, 0x9f, 0xf8, 0x14, 0x5a, 0x53,
0x37, 0x37, 0x1e, 0x37, 0xfb, 0xd2, 0x62, 0x52, 0xb1, 0x90, 0xb2, 0x8b, 0x0d, 0x5b, 0x6b, 0x89, 0x7f, 0xb5, 0x72, 0xc5, 0xb0, 0x2d, 0x2d, 0x06, 0x25, 0x0b, 0x29, 0xbb, 0xda, 0xb2, 0xb4, 0x16,
0x74, 0xbd, 0x4b, 0x68, 0x74, 0x6f, 0x0e, 0xea, 0xd2, 0xf5, 0x4b, 0x21, 0x12, 0xe9, 0x92, 0x3a, 0x1d, 0xd7, 0xbb, 0x98, 0x87, 0xf7, 0xc3, 0x4e, 0xd5, 0x71, 0xfd, 0x8a, 0x44, 0x74, 0x5c, 0x52,
0x22, 0x14, 0x8f, 0x79, 0x7c, 0xbe, 0x58, 0x3b, 0x1e, 0x33, 0x87, 0x75, 0xa1, 0xcc, 0x98, 0xc7, 0x87, 0x42, 0x71, 0x3d, 0x57, 0x4c, 0xa6, 0x0b, 0xdb, 0xf5, 0x86, 0xdd, 0xaa, 0x50, 0xc6, 0x9e,
0x5f, 0x08, 0xb1, 0x08, 0xc5, 0x4b, 0x09, 0xfc, 0x18, 0x46, 0x57, 0x74, 0xe5, 0xb1, 0xf9, 0x95, 0x2b, 0x5e, 0x90, 0x98, 0x42, 0x71, 0x13, 0x02, 0x3f, 0x86, 0xde, 0x0d, 0x9f, 0xbb, 0xde, 0xe4,
0x1f, 0x2c, 0xae, 0x4d, 0x90, 0xa6, 0x66, 0xd9, 0xf4, 0x4c, 0x28, 0x9c, 0x09, 0xf9, 0xc5, 0x86, 0x66, 0xe9, 0x4f, 0x6f, 0x87, 0x20, 0x4d, 0x87, 0x45, 0xd3, 0x0b, 0x52, 0xb8, 0x20, 0xf9, 0xd5,
0x0d, 0x57, 0x19, 0x85, 0x1f, 0xc1, 0x90, 0x32, 0x57, 0x9b, 0x8e, 0xa4, 0xe9, 0x7e, 0xa5, 0x02, 0x96, 0x05, 0x37, 0x29, 0x85, 0x1f, 0x41, 0x97, 0x7b, 0x8e, 0x36, 0xed, 0x49, 0xd3, 0xc3, 0x52,
0x98, 0x9b, 0x1a, 0x0e, 0xa8, 0xfe, 0x3e, 0xeb, 0x43, 0xf7, 0xd6, 0xf1, 0x13, 0x6a, 0xbd, 0x0f, 0x06, 0x78, 0x4e, 0x62, 0xd8, 0xe1, 0xfa, 0xfb, 0xa2, 0x0d, 0xcd, 0x3b, 0x7b, 0x19, 0x73, 0xf3,
0xa3, 0x42, 0xa5, 0xa0, 0x09, 0xfd, 0x1b, 0x1a, 0xc7, 0xce, 0x8a, 0xca, 0x72, 0x1a, 0xda, 0x29, 0x7d, 0xe8, 0xe5, 0x32, 0x05, 0x87, 0xd0, 0x5e, 0xf1, 0x28, 0xb2, 0xe7, 0x5c, 0xa6, 0x53, 0xd7,
0x69, 0x8d, 0x61, 0xb3, 0x58, 0x27, 0xd6, 0x56, 0x66, 0x28, 0x6a, 0xc1, 0xfa, 0x19, 0x90, 0xea, 0x4a, 0x48, 0xb3, 0x0f, 0xdb, 0xf9, 0x3c, 0x31, 0x77, 0x52, 0x43, 0xca, 0x05, 0xf3, 0xe7, 0xc0,
0x51, 0x23, 0x81, 0xf6, 0x35, 0xbd, 0xd7, 0x8e, 0xc4, 0x27, 0x4e, 0xf4, 0xb2, 0xb2, 0x00, 0x87, 0xca, 0x57, 0x8d, 0x0c, 0xea, 0xb7, 0xfc, 0x5e, 0x3b, 0xa2, 0x4f, 0x1c, 0xe8, 0x65, 0x65, 0x02,
0xb6, 0xde, 0x83, 0x95, 0xd9, 0x66, 0x87, 0x8d, 0x63, 0x68, 0xf1, 0x3b, 0x69, 0xba, 0x69, 0xb7, 0x76, 0x2d, 0xbd, 0x07, 0x33, 0xb5, 0x4d, 0x2f, 0x1b, 0xfb, 0x50, 0x13, 0x6b, 0x69, 0xba, 0x6d,
0xf8, 0x9d, 0xf5, 0x08, 0xc6, 0xe5, 0x83, 0x7d, 0xa0, 0xe1, 0x66, 0x1b, 0x94, 0x27, 0x83, 0x08, 0xd5, 0xc4, 0xda, 0x7c, 0x04, 0xfd, 0xe2, 0xc5, 0x3e, 0xd0, 0x58, 0xa5, 0x1b, 0x94, 0x37, 0x83,
0x1d, 0xd7, 0xe1, 0x8e, 0xd6, 0x90, 0xdf, 0x82, 0x17, 0x3a, 0x7c, 0xad, 0x97, 0x97, 0xdf, 0xb8, 0x08, 0x0d, 0xc7, 0x16, 0xb6, 0xd6, 0x90, 0xdf, 0xc4, 0x0b, 0x6c, 0xb1, 0xd0, 0xcb, 0xcb, 0x6f,
0x0f, 0xbd, 0x35, 0xf5, 0x56, 0x6b, 0x2e, 0x2b, 0xbd, 0x63, 0x6b, 0x4a, 0xec, 0x35, 0x8c, 0x82, 0xfc, 0x01, 0xf4, 0x96, 0x76, 0x24, 0x26, 0x0b, 0xee, 0xce, 0x17, 0x42, 0xa6, 0x7b, 0xc3, 0x02,
0x5b, 0x2a, 0x0b, 0x7a, 0x60, 0x2b, 0xc2, 0xda, 0x86, 0xad, 0x52, 0xb9, 0x58, 0x2f, 0xb3, 0xcd, 0x62, 0x5d, 0x49, 0x0e, 0x6d, 0x3a, 0x08, 0xfd, 0x3b, 0x2e, 0x33, 0xbb, 0x63, 0x29, 0xc2, 0xdc,
0x67, 0xc7, 0x8b, 0x3f, 0x01, 0xb8, 0x75, 0x7c, 0xcf, 0x75, 0x78, 0x10, 0xc5, 0xa6, 0xf1, 0xa8, 0x85, 0x9d, 0x42, 0xde, 0x98, 0x2f, 0xd3, 0x28, 0xd2, 0x7b, 0xc6, 0x9f, 0x02, 0xdc, 0xd9, 0x4b,
0x7d, 0x34, 0x3a, 0x26, 0xfa, 0x54, 0xbe, 0x4c, 0x05, 0x76, 0x41, 0xc7, 0x7a, 0x0d, 0x3b, 0x0f, 0xd7, 0xb1, 0x85, 0x1f, 0x46, 0x43, 0xe3, 0x51, 0xfd, 0xa4, 0x77, 0xca, 0xf4, 0xf5, 0x7c, 0x99,
0x4e, 0x5a, 0xec, 0x76, 0xed, 0xc4, 0xeb, 0x34, 0x02, 0xf1, 0x8d, 0xef, 0x89, 0xdd, 0x3a, 0x2e, 0x08, 0xac, 0x9c, 0x8e, 0xf9, 0x1a, 0xf6, 0x1e, 0x5c, 0x39, 0x6d, 0x7b, 0x61, 0x47, 0x8b, 0x24,
0x8d, 0x74, 0x0f, 0x6f, 0x69, 0xb7, 0x17, 0x92, 0x69, 0x6b, 0xa1, 0xf5, 0x18, 0xb6, 0x2b, 0xc7, 0x14, 0xfa, 0xc6, 0xf7, 0xa0, 0xb5, 0xe0, 0xb6, 0xc3, 0x43, 0x5d, 0xcc, 0x3b, 0xda, 0xed, 0x95,
0x5f, 0x88, 0xd3, 0x28, 0xc6, 0x69, 0x7d, 0xdd, 0x85, 0x81, 0x4d, 0xe3, 0x30, 0x60, 0x31, 0xc5, 0x64, 0x5a, 0x5a, 0x68, 0x3e, 0x86, 0xdd, 0x52, 0x1e, 0xe0, 0x21, 0x59, 0xca, 0x58, 0x0d, 0x19,
0xe7, 0x30, 0xa4, 0x77, 0x0b, 0xaa, 0x3a, 0xd9, 0xa8, 0x54, 0xa2, 0xd2, 0x39, 0x4f, 0xe5, 0xa2, 0xab, 0xa6, 0xcc, 0xaf, 0x9b, 0xd0, 0xb1, 0x78, 0x14, 0xf8, 0x5e, 0xc4, 0xf1, 0x39, 0x74, 0xf9,
0x8a, 0x33, 0x65, 0x7c, 0xac, 0x51, 0xa8, 0x0a, 0x2d, 0xda, 0xa8, 0x08, 0x43, 0x1f, 0xa4, 0x30, 0x7a, 0xca, 0x55, 0x49, 0x1b, 0xa5, 0x94, 0x54, 0x3a, 0x97, 0x89, 0x9c, 0xd2, 0x39, 0x55, 0xc6,
0xd4, 0xae, 0xb4, 0xa1, 0xd2, 0xad, 0xe0, 0xd0, 0x63, 0x8d, 0x43, 0x9d, 0x5a, 0xc7, 0x25, 0x20, 0xc7, 0x1a, 0x8e, 0xca, 0x18, 0xa3, 0x8d, 0xf2, 0x78, 0xf4, 0x41, 0x82, 0x47, 0xf5, 0x52, 0x3d,
0x3a, 0x29, 0x01, 0x51, 0xb7, 0x76, 0xfb, 0x0d, 0x48, 0x74, 0x52, 0x42, 0xa2, 0x5e, 0xad, 0x69, 0x2a, 0xdd, 0x12, 0x20, 0x3d, 0xd6, 0x80, 0xd4, 0xa8, 0x74, 0x5c, 0x40, 0xa4, 0xb3, 0x02, 0x22,
0x03, 0x14, 0x7d, 0x58, 0x80, 0xa2, 0x7e, 0xa5, 0x03, 0x95, 0x61, 0x0d, 0x16, 0x3d, 0xcb, 0xb0, 0x35, 0x2b, 0xb7, 0xbf, 0x01, 0x92, 0xce, 0x0a, 0x90, 0xd4, 0xaa, 0x34, 0xdd, 0x80, 0x49, 0x1f,
0x68, 0x50, 0x41, 0x2f, 0x6d, 0x52, 0x05, 0xa3, 0x0f, 0x52, 0x30, 0x1a, 0xd6, 0x26, 0xad, 0x82, 0xe6, 0x30, 0xa9, 0x5d, 0x2a, 0x45, 0x65, 0x58, 0x01, 0x4a, 0xcf, 0x52, 0x50, 0xea, 0x94, 0x60,
0x46, 0x27, 0x25, 0x34, 0x82, 0xda, 0x70, 0x1a, 0xe0, 0xe8, 0xe7, 0x65, 0x38, 0x52, 0x98, 0x72, 0x4c, 0x9b, 0x94, 0x51, 0xe9, 0x83, 0x04, 0x95, 0xba, 0x95, 0x87, 0x56, 0x82, 0xa5, 0xb3, 0x02,
0x58, 0xb1, 0x6d, 0xc4, 0xa3, 0x9f, 0x16, 0xf1, 0x68, 0xb3, 0x82, 0x82, 0xba, 0x16, 0xbe, 0x11, 0x2c, 0x41, 0x65, 0x38, 0x1b, 0x70, 0xe9, 0x17, 0x45, 0x5c, 0x52, 0xe0, 0x72, 0x5c, 0xb2, 0xdd,
0x90, 0x1e, 0x8b, 0x4e, 0xa8, 0x54, 0x9a, 0xe8, 0x45, 0x1a, 0x45, 0x41, 0xa4, 0xb1, 0x44, 0x11, 0x08, 0x4c, 0x3f, 0xcb, 0x03, 0xd3, 0x76, 0x09, 0x0e, 0x75, 0x2e, 0x7c, 0x2b, 0x32, 0x3d, 0xa6,
0xd6, 0x91, 0xe8, 0xf8, 0xbc, 0xbe, 0xbe, 0x01, 0xbc, 0x64, 0xd7, 0x16, 0xaa, 0xcb, 0xfa, 0xbd, 0x4a, 0x28, 0x65, 0x1a, 0xd5, 0x22, 0x0f, 0x43, 0x3f, 0xd4, 0xa0, 0xa2, 0x08, 0xf3, 0x84, 0x4a,
0x91, 0xdb, 0x8a, 0x12, 0x2a, 0xa1, 0xc5, 0x50, 0xa3, 0x85, 0x09, 0xfd, 0x5b, 0x1a, 0xc5, 0xa2, 0x3f, 0xcb, 0xaf, 0x6f, 0x41, 0x31, 0x59, 0xb5, 0xb9, 0xec, 0x32, 0xff, 0x60, 0x64, 0xb6, 0x94,
0x96, 0x14, 0x60, 0xa4, 0x24, 0x3e, 0x81, 0x1d, 0xdf, 0x89, 0xb9, 0x0a, 0x73, 0x5e, 0x82, 0x8f, 0x42, 0x05, 0xd8, 0xe8, 0x6a, 0xd8, 0x18, 0x42, 0xfb, 0x8e, 0x87, 0x11, 0xe5, 0x92, 0x42, 0x8e,
0x6d, 0x21, 0x50, 0xf1, 0x29, 0x1c, 0xf9, 0x31, 0xec, 0x16, 0x74, 0x9d, 0x30, 0x9c, 0xcb, 0xa6, 0x84, 0xc4, 0x27, 0xb0, 0x27, 0xc1, 0x43, 0x86, 0x59, 0x84, 0x90, 0x5d, 0x12, 0xa8, 0xf8, 0x14,
0xee, 0xc8, 0xa6, 0x26, 0x99, 0xf6, 0x69, 0x18, 0x5e, 0x38, 0xf1, 0xda, 0x7a, 0x2f, 0x8f, 0xbf, 0x8e, 0xfc, 0x04, 0xf6, 0x73, 0xba, 0x76, 0x10, 0x4c, 0x64, 0x51, 0x37, 0x64, 0x51, 0xb3, 0x54,
0x84, 0xa4, 0x7e, 0xb0, 0x4a, 0x91, 0xd4, 0x0f, 0x56, 0xd6, 0x6f, 0x72, 0xb5, 0x1c, 0x34, 0x7f, 0xfb, 0x3c, 0x08, 0xae, 0xec, 0x68, 0x61, 0xbe, 0x97, 0xc5, 0x5f, 0x80, 0xd4, 0xa5, 0x3f, 0x4f,
0x00, 0x9d, 0x45, 0xe0, 0xaa, 0xe8, 0xc7, 0xc7, 0xdb, 0x3a, 0xef, 0x2f, 0x02, 0x97, 0xbe, 0xbd, 0x20, 0x75, 0xe9, 0xcf, 0xcd, 0xdf, 0x66, 0x6a, 0x19, 0x7a, 0xfe, 0x10, 0x1a, 0x53, 0xdf, 0x51,
0x0f, 0xa9, 0x2d, 0x85, 0x59, 0xa4, 0xad, 0x02, 0x2e, 0x6a, 0xff, 0xed, 0xdc, 0xff, 0xaf, 0x05, 0xd1, 0xf7, 0x4f, 0x77, 0xf5, 0xb9, 0xbf, 0xf0, 0x1d, 0xfe, 0xf6, 0x3e, 0xe0, 0x96, 0x14, 0xa6,
0x80, 0x94, 0xaa, 0xf7, 0xbb, 0xf4, 0xfe, 0x47, 0x23, 0x3f, 0x10, 0x85, 0xd6, 0xdf, 0xca, 0xf9, 0x91, 0xd6, 0x72, 0x00, 0xa9, 0xfd, 0xd7, 0x33, 0xff, 0xbf, 0x21, 0x00, 0x29, 0x64, 0xef, 0x77,
0x04, 0xba, 0x1e, 0x73, 0xe9, 0x9d, 0xf4, 0xde, 0xb6, 0x15, 0x91, 0x5e, 0x33, 0x6d, 0xb9, 0x62, 0xe9, 0xfd, 0x1b, 0x23, 0xbb, 0x10, 0x05, 0xdb, 0xff, 0x97, 0xf3, 0x01, 0x34, 0x5d, 0xcf, 0xe1,
0xf9, 0x9a, 0x51, 0x49, 0x56, 0x84, 0x06, 0xf4, 0x60, 0x29, 0x81, 0x61, 0xd3, 0x56, 0x44, 0x01, 0x6b, 0xe9, 0xbd, 0x6e, 0x29, 0x22, 0xe9, 0x37, 0x75, 0xb9, 0x62, 0xb1, 0xdf, 0xa8, 0x43, 0x56,
0x16, 0x7b, 0x25, 0xf8, 0xd7, 0x9b, 0xee, 0xe7, 0x9b, 0xfe, 0x95, 0xb8, 0x82, 0x8a, 0xdd, 0xf9, 0x84, 0x06, 0x74, 0x7f, 0x26, 0x81, 0x61, 0xdb, 0x52, 0x44, 0xb9, 0x0f, 0xb4, 0x1e, 0xf4, 0x01,
0x5d, 0x66, 0x64, 0x37, 0x3f, 0xcf, 0xac, 0x2f, 0xad, 0x09, 0xe0, 0xc3, 0x86, 0x53, 0x57, 0x6d, 0xbd, 0xfb, 0x76, 0xb6, 0xfb, 0x5f, 0x53, 0x53, 0xca, 0x97, 0xe9, 0x77, 0x79, 0x34, 0xfb, 0xd9,
0xb9, 0x95, 0xf0, 0x87, 0xd0, 0x75, 0xbd, 0xe5, 0x32, 0x36, 0x3b, 0x0d, 0x97, 0x8d, 0x12, 0x5b, 0xc5, 0xa6, 0x05, 0x6a, 0x0e, 0x00, 0x1f, 0x56, 0x9e, 0x6a, 0xbe, 0xc5, 0x9a, 0xc2, 0x1f, 0x41,
0x7f, 0x68, 0x41, 0x4f, 0x5d, 0x15, 0x78, 0x28, 0x60, 0xcb, 0xf1, 0xd8, 0xdc, 0x73, 0xd3, 0x76, 0xd3, 0x71, 0x67, 0xb3, 0x68, 0xd8, 0xd8, 0xd0, 0x75, 0x94, 0xd8, 0xfc, 0x63, 0x0d, 0x5a, 0xaa,
0x91, 0xf4, 0xcc, 0x2d, 0xe4, 0xa4, 0x55, 0xca, 0x09, 0x42, 0x87, 0x7b, 0x37, 0x54, 0x57, 0xba, 0x67, 0xe0, 0x31, 0xe1, 0x97, 0xed, 0x7a, 0x13, 0xd7, 0x49, 0xea, 0x46, 0xd2, 0x63, 0x27, 0xd7,
0xfc, 0xc6, 0x03, 0xe8, 0xb3, 0xe4, 0x66, 0xce, 0xef, 0x62, 0x99, 0xed, 0x8e, 0xdd, 0x63, 0xc9, 0x33, 0x6a, 0xf9, 0x9e, 0x41, 0xa1, 0x08, 0x77, 0xc5, 0x75, 0xca, 0xcb, 0x6f, 0x3c, 0x82, 0xb6,
0xcd, 0xdb, 0xbb, 0x18, 0x8f, 0x61, 0xab, 0x50, 0xf7, 0x9e, 0xab, 0xf1, 0x78, 0xac, 0xb7, 0x26, 0x17, 0xaf, 0x26, 0x62, 0x1d, 0xc9, 0x63, 0x6f, 0x58, 0x2d, 0x2f, 0x5e, 0xbd, 0x5d, 0x47, 0x78,
0xf7, 0x3d, 0x7b, 0x69, 0x8f, 0xb2, 0x0e, 0x98, 0xb9, 0x78, 0x04, 0xb2, 0x21, 0xe6, 0x0a, 0xf3, 0x0a, 0x3b, 0xb9, 0x02, 0x70, 0x1d, 0x0d, 0xcc, 0x7d, 0xbd, 0x35, 0xb9, 0xef, 0xf1, 0x4b, 0xab,
0x54, 0xa3, 0xf4, 0x64, 0xde, 0xc6, 0x82, 0xaf, 0x41, 0x51, 0xdc, 0x83, 0xdf, 0x83, 0xa1, 0xc8, 0x97, 0x96, 0xc2, 0xd8, 0xc1, 0x13, 0x90, 0x95, 0x31, 0x51, 0xe0, 0xa7, 0x2a, 0xa6, 0x25, 0xcf,
0xa4, 0x52, 0xe9, 0x4b, 0x95, 0x81, 0x60, 0x48, 0xe1, 0xfb, 0xb0, 0x9d, 0xdf, 0xad, 0x4a, 0x65, 0xad, 0x4f, 0x7c, 0x8d, 0x8e, 0xd4, 0x10, 0xbf, 0x07, 0x5d, 0x3a, 0x49, 0xa5, 0xd2, 0x96, 0x2a,
0xa0, 0xbc, 0xe4, 0x6c, 0xa9, 0x78, 0x08, 0x83, 0xac, 0x21, 0x87, 0x52, 0xa3, 0xef, 0xe8, 0x3e, 0x1d, 0x62, 0x48, 0xe1, 0xfb, 0xb0, 0x9b, 0x35, 0x59, 0xa5, 0xd2, 0x51, 0x5e, 0x32, 0xb6, 0x54,
0x9c, 0x41, 0x5f, 0x6f, 0xb1, 0xf6, 0x1e, 0x7e, 0x02, 0xdd, 0xd0, 0x89, 0x78, 0xac, 0xef, 0xbb, 0x3c, 0x86, 0x4e, 0x5a, 0x99, 0x5d, 0xa9, 0xd1, 0xb6, 0x75, 0x41, 0x8e, 0xa1, 0xad, 0xb7, 0x58,
0x14, 0x8e, 0x2f, 0x9d, 0x48, 0x0c, 0x40, 0xfa, 0x36, 0x56, 0x2a, 0xd6, 0x09, 0x6c, 0x95, 0xf8, 0xd9, 0x90, 0x9f, 0x40, 0x33, 0xb0, 0x43, 0x11, 0xe9, 0xc6, 0x97, 0xe0, 0xf2, 0xb5, 0x1d, 0xd2,
0xa2, 0x12, 0x79, 0xc0, 0x1d, 0x5f, 0xdf, 0xc4, 0x8a, 0xc8, 0x96, 0x69, 0xe5, 0xcb, 0x58, 0x27, 0x48, 0xa4, 0xdb, 0xb2, 0x52, 0x31, 0xcf, 0x60, 0xa7, 0xc0, 0xa7, 0x94, 0x14, 0xbe, 0xb0, 0x97,
0x30, 0xcc, 0xce, 0x50, 0x1c, 0x4b, 0x98, 0x5c, 0x7d, 0xaa, 0x47, 0xaa, 0x4d, 0x5b, 0x53, 0xb2, 0xba, 0x25, 0x2b, 0x22, 0x5d, 0xa6, 0x96, 0x2d, 0x63, 0x9e, 0x41, 0x37, 0xbd, 0x43, 0xba, 0x96,
0xb0, 0x83, 0xaf, 0xf4, 0x48, 0xd0, 0xb1, 0x15, 0xf1, 0xe4, 0xcf, 0x06, 0x8c, 0x3e, 0x53, 0xf8, 0x20, 0xbe, 0xf9, 0x54, 0x0f, 0x59, 0xdb, 0x96, 0xa6, 0x64, 0x86, 0xfb, 0x5f, 0xe9, 0xd9, 0xa0,
0x27, 0xaa, 0x11, 0xb7, 0x61, 0xf4, 0x3a, 0xf1, 0x7d, 0xcd, 0x22, 0x1b, 0x38, 0x80, 0x8e, 0x80, 0x61, 0x29, 0xe2, 0xc9, 0x37, 0x06, 0xf4, 0x3e, 0x53, 0x40, 0x48, 0xd9, 0x88, 0xbb, 0xd0, 0x7b,
0x4d, 0x62, 0xe0, 0x10, 0xba, 0x12, 0x16, 0x49, 0x4b, 0x30, 0x05, 0x1e, 0x92, 0x36, 0x6e, 0xc1, 0x1d, 0x2f, 0x97, 0x9a, 0xc5, 0xb6, 0xb0, 0x03, 0x0d, 0xc2, 0x4f, 0x66, 0x60, 0x17, 0x9a, 0x12,
0x30, 0x03, 0x20, 0xd2, 0x11, 0x64, 0x86, 0xc7, 0xa4, 0x2b, 0xc8, 0x0c, 0x77, 0xc8, 0x0e, 0x8e, 0x1f, 0x59, 0x8d, 0x98, 0x04, 0x8c, 0xac, 0x8e, 0x3b, 0xd0, 0x4d, 0x91, 0x88, 0x35, 0x88, 0x4c,
0xa0, 0xaf, 0x61, 0x82, 0x20, 0x02, 0xf4, 0xd4, 0x49, 0x91, 0x5d, 0xe1, 0x5a, 0x36, 0x38, 0x99, 0x81, 0x99, 0x35, 0x89, 0x4c, 0x01, 0x88, 0xed, 0x61, 0x0f, 0xda, 0x1a, 0x2f, 0x18, 0x22, 0x40,
0x08, 0x93, 0xac, 0xb4, 0xc9, 0x1e, 0x8e, 0x01, 0xf2, 0xa2, 0x26, 0xfb, 0xb8, 0x09, 0x83, 0xb4, 0x4b, 0xdd, 0x14, 0xdb, 0x27, 0xd7, 0xb2, 0xd2, 0xd9, 0x80, 0x4c, 0xd2, 0xd4, 0x66, 0x07, 0xd8,
0x9c, 0xc9, 0xc1, 0x93, 0x3f, 0x75, 0x61, 0x90, 0x36, 0x12, 0xf6, 0xa0, 0xf5, 0xe6, 0x53, 0xb2, 0x07, 0xc8, 0x92, 0x9a, 0x1d, 0xe2, 0x36, 0x74, 0x92, 0x74, 0x66, 0x47, 0x4f, 0xfe, 0xd4, 0x84,
0x81, 0x3b, 0xb0, 0x35, 0x63, 0x9c, 0x46, 0xcc, 0xf1, 0xcf, 0xc5, 0x0d, 0x40, 0x0c, 0xc1, 0x3a, 0x4e, 0x52, 0x48, 0xd8, 0x82, 0xda, 0x9b, 0x4f, 0xd9, 0x16, 0xee, 0xc1, 0xce, 0xd8, 0x13, 0x3c,
0x67, 0x8b, 0xc0, 0xf5, 0xd8, 0x4a, 0xb1, 0x5a, 0xc2, 0xd1, 0x99, 0xe3, 0xbe, 0x0e, 0xd8, 0x82, 0xf4, 0xec, 0xe5, 0x25, 0xb5, 0x02, 0x66, 0x10, 0xeb, 0xd2, 0x9b, 0xfa, 0x8e, 0xeb, 0xcd, 0x15,
0x92, 0x36, 0x12, 0xd8, 0xfc, 0x82, 0x39, 0x09, 0x5f, 0x07, 0x91, 0xf7, 0x3b, 0xea, 0x92, 0x0e, 0xab, 0x46, 0x8e, 0x2e, 0x6c, 0xe7, 0xb5, 0xef, 0x4d, 0x39, 0xab, 0x23, 0x83, 0xed, 0x2f, 0x3c,
0xee, 0xc1, 0xce, 0x8c, 0xc5, 0xc9, 0x72, 0xe9, 0x2d, 0x3c, 0xca, 0xf8, 0x27, 0x09, 0x73, 0x63, 0x3b, 0x16, 0x0b, 0x3f, 0x74, 0x7f, 0xcf, 0x1d, 0xd6, 0xc0, 0x03, 0xd8, 0x1b, 0x7b, 0x51, 0x3c,
0xd2, 0x45, 0x84, 0xf1, 0x17, 0xec, 0x9a, 0x05, 0x5f, 0x31, 0x3d, 0x39, 0x91, 0x1e, 0x9a, 0x30, 0x9b, 0xb9, 0x53, 0x97, 0x7b, 0xe2, 0x93, 0xd8, 0x73, 0x22, 0xd6, 0x44, 0x84, 0xfe, 0x17, 0xde,
0x39, 0x73, 0x62, 0xfa, 0x32, 0x09, 0x7d, 0x6f, 0xe1, 0x70, 0x7a, 0xea, 0xba, 0x11, 0x8d, 0x63, 0xad, 0xe7, 0x7f, 0xe5, 0xe9, 0x11, 0x8a, 0xb5, 0x70, 0x08, 0x83, 0x0b, 0x3b, 0xe2, 0x2f, 0xe3,
0x42, 0x85, 0x13, 0x21, 0x29, 0xaf, 0xbd, 0x4c, 0x0d, 0x4a, 0xfe, 0x29, 0x8d, 0xc9, 0x0a, 0x0f, 0x60, 0xe9, 0x4e, 0x6d, 0xc1, 0xcf, 0x1d, 0x27, 0xe4, 0x51, 0xc4, 0x38, 0x39, 0x21, 0x49, 0x71,
0x61, 0xef, 0x81, 0x44, 0xae, 0xbc, 0xc6, 0xef, 0x83, 0x59, 0x15, 0xbd, 0x72, 0xe2, 0xcb, 0xc8, 0xed, 0x59, 0x62, 0x50, 0xf0, 0xcf, 0x79, 0xc4, 0xe6, 0x78, 0x0c, 0x07, 0x0f, 0x24, 0x72, 0xe5,
0x5b, 0x50, 0xe2, 0xe1, 0x04, 0x88, 0x92, 0xca, 0xda, 0x9d, 0xb1, 0x30, 0xe1, 0xe4, 0xb7, 0xe9, 0x05, 0x7e, 0x1f, 0x86, 0x65, 0xd1, 0x2b, 0x3b, 0xba, 0x0e, 0xdd, 0x29, 0x67, 0x2e, 0x0e, 0x80,
0xfa, 0x9a, 0xfb, 0x26, 0xe1, 0x82, 0x7d, 0x5d, 0x61, 0x5f, 0xca, 0xfa, 0x20, 0x3e, 0x1e, 0xc0, 0x29, 0xa9, 0xcc, 0xdd, 0xb1, 0x17, 0xc4, 0x82, 0xfd, 0x2e, 0x59, 0x5f, 0x73, 0xdf, 0xc4, 0x82,
0x6e, 0x81, 0xfd, 0xb9, 0x88, 0x4f, 0x64, 0xe7, 0x26, 0xdf, 0xaf, 0x12, 0x78, 0x2b, 0xe6, 0xf0, 0xd8, 0xb7, 0x25, 0xf6, 0xb5, 0xcc, 0x0f, 0xb6, 0xc4, 0x23, 0xd8, 0xcf, 0xb1, 0x3f, 0xa7, 0xf8,
0x24, 0xa2, 0x84, 0xe1, 0x3e, 0xa0, 0x90, 0xe8, 0x94, 0xa4, 0x81, 0x07, 0xe9, 0x0a, 0x9a, 0xaf, 0xe8, 0x74, 0x56, 0xd9, 0x7e, 0x95, 0xc0, 0x9d, 0x7b, 0xb6, 0x88, 0x43, 0xce, 0x3c, 0x3c, 0x04,
0x57, 0x08, 0xab, 0x6c, 0x3f, 0x59, 0x79, 0x8c, 0xbc, 0xc3, 0x3d, 0x20, 0xaf, 0x82, 0x5b, 0xcd, 0x24, 0x89, 0x3e, 0x92, 0x24, 0x70, 0x3f, 0x59, 0x41, 0xf3, 0xf5, 0x0a, 0x41, 0x99, 0xbd, 0x8c,
0x3d, 0x67, 0xdc, 0xe3, 0xf7, 0xe4, 0xaf, 0x06, 0x4e, 0x60, 0x3b, 0x67, 0xbf, 0x8a, 0x82, 0x24, 0xe7, 0xae, 0xc7, 0xde, 0xe1, 0x01, 0xb0, 0x57, 0xfe, 0x9d, 0xe6, 0x5e, 0x7a, 0xc2, 0x15, 0xf7,
0x24, 0x7f, 0x33, 0xf0, 0x00, 0x30, 0xe7, 0x5e, 0x46, 0x41, 0x18, 0xc4, 0x8e, 0x4f, 0xfe, 0x6e, 0xec, 0x2f, 0x06, 0x0e, 0x60, 0x37, 0x63, 0xbf, 0x0a, 0xfd, 0x38, 0x60, 0x7f, 0x35, 0xf0, 0x08,
0xe0, 0x3e, 0xec, 0xbc, 0x0a, 0x6e, 0xb3, 0x53, 0x50, 0x06, 0xff, 0x48, 0x0d, 0x32, 0xfe, 0x67, 0x30, 0xe3, 0x5e, 0x87, 0x7e, 0xe0, 0x47, 0xf6, 0x92, 0xfd, 0xcd, 0xc0, 0x43, 0xd8, 0x7b, 0xe5,
0xf4, 0xe6, 0x8a, 0x46, 0xe4, 0x9f, 0x06, 0x1e, 0xc2, 0xa4, 0x28, 0xc8, 0x7c, 0xfd, 0xcb, 0xd0, 0xdf, 0xa5, 0xb7, 0xa0, 0x0c, 0xfe, 0x9e, 0x18, 0xa4, 0xfc, 0xcf, 0xf8, 0xea, 0x86, 0x87, 0xec,
0x3b, 0xca, 0x44, 0x5f, 0x06, 0x9c, 0x92, 0x7f, 0xa7, 0x6c, 0x9d, 0x07, 0xed, 0xe8, 0x3f, 0x06, 0x1f, 0x06, 0x1e, 0xc3, 0x20, 0x2f, 0x48, 0x7d, 0xfd, 0xd3, 0xd0, 0x3b, 0x4a, 0x45, 0x5f, 0xfa,
0xee, 0xc2, 0x38, 0x67, 0x4b, 0xdd, 0xff, 0x1a, 0x38, 0x85, 0xbd, 0x12, 0xd3, 0x63, 0xab, 0x4b, 0x82, 0xb3, 0x7f, 0x25, 0x6c, 0x7d, 0x0e, 0xda, 0xd1, 0xbf, 0x0d, 0xdc, 0x87, 0x7e, 0xc6, 0x96,
0xd1, 0x72, 0xe4, 0x7f, 0xc6, 0xf1, 0xd7, 0x5d, 0xd8, 0x3e, 0x3d, 0x7b, 0x31, 0x3b, 0x0d, 0xd5, 0xba, 0xff, 0x31, 0x70, 0x04, 0x07, 0x05, 0xa6, 0xeb, 0xcd, 0xaf, 0xa9, 0xe4, 0xd8, 0x7f, 0x8d,
0x02, 0xe2, 0xf6, 0x7e, 0xa6, 0x1a, 0x0d, 0x6b, 0x9e, 0xe6, 0xd3, 0xba, 0x41, 0x19, 0x8f, 0x75, 0xd3, 0xaf, 0x9b, 0xb0, 0x7b, 0x7e, 0xf1, 0x62, 0x7c, 0x1e, 0xa8, 0x05, 0xa8, 0x8d, 0x3f, 0x53,
0x3f, 0x62, 0xdd, 0x0b, 0x7d, 0x5a, 0x3b, 0x2f, 0x8b, 0x45, 0xd4, 0x20, 0xf3, 0xf0, 0xa1, 0x3e, 0x85, 0x86, 0x15, 0x8f, 0xf5, 0x51, 0xd5, 0xc4, 0x8c, 0xa7, 0xba, 0x1e, 0xb1, 0xea, 0xcd, 0x3e,
0xad, 0x1b, 0x9a, 0xf1, 0x17, 0x85, 0xfe, 0xc6, 0xa6, 0xe7, 0xfa, 0xb4, 0x71, 0x7c, 0x16, 0xf6, 0xaa, 0x1c, 0x9c, 0x69, 0x11, 0x35, 0xd1, 0x3c, 0x7c, 0xba, 0x8f, 0xaa, 0xa6, 0x67, 0xfc, 0x65,
0xf9, 0xe4, 0xd1, 0xf4, 0x68, 0x9f, 0x36, 0xce, 0xd0, 0xf8, 0x3c, 0x83, 0x0c, 0xac, 0x7f, 0xba, 0xae, 0xbe, 0x71, 0xd3, 0x03, 0x7e, 0xb4, 0x71, 0x8e, 0x26, 0xfb, 0x6c, 0x04, 0xd9, 0xf4, 0x8c,
0x4f, 0x1b, 0xc6, 0x68, 0x91, 0x1e, 0x35, 0x34, 0xd4, 0xbd, 0xc8, 0xa7, 0xb5, 0x93, 0x31, 0x7e, 0x1f, 0x6d, 0x1c, 0xa6, 0xf1, 0x79, 0x0a, 0x19, 0x58, 0xfd, 0x98, 0x1f, 0x6d, 0x98, 0xa7, 0xe9,
0x94, 0x62, 0x12, 0xd6, 0xbe, 0xfa, 0xa7, 0xf5, 0xf3, 0xb7, 0x08, 0x32, 0x7f, 0xd6, 0x35, 0x3d, 0x78, 0xd4, 0xf4, 0x50, 0xf5, 0x46, 0x1f, 0x55, 0x8e, 0xc8, 0xf8, 0x51, 0x82, 0x49, 0x58, 0xf9,
0xe7, 0xa7, 0x8d, 0x93, 0x35, 0x9e, 0x16, 0x41, 0x0e, 0x1b, 0x1f, 0xf5, 0xd3, 0xe6, 0xf9, 0x1a, 0x3f, 0xc0, 0xa8, 0x7a, 0x10, 0xa7, 0x20, 0xb3, 0xf7, 0xdd, 0xa6, 0x07, 0xfe, 0x68, 0xe3, 0x88,
0x3f, 0xce, 0x71, 0x11, 0x1b, 0x9e, 0xf6, 0xd3, 0xa6, 0x11, 0xfb, 0xaa, 0x27, 0xff, 0x35, 0xfa, 0x8d, 0xe7, 0x79, 0x90, 0xc3, 0x8d, 0xcf, 0xfc, 0xd1, 0xe6, 0x41, 0x1b, 0x3f, 0xce, 0x70, 0x11,
0xf0, 0xff, 0x01, 0x00, 0x00, 0xff, 0xff, 0x73, 0x34, 0x90, 0x2d, 0x4a, 0x12, 0x00, 0x00, 0x37, 0x3c, 0xf6, 0x47, 0x9b, 0x66, 0xed, 0x9b, 0x96, 0xfc, 0x1f, 0xe9, 0xc3, 0xff, 0x05, 0x00,
0x00, 0xff, 0xff, 0x3a, 0x61, 0xc1, 0xbf, 0x5c, 0x12, 0x00, 0x00,
} }

View File

@ -115,7 +115,7 @@ message RequestCheckTx{
message RequestQuery{ message RequestQuery{
bytes data = 1; bytes data = 1;
string path = 2; string path = 2;
uint64 height = 3; uint64 last_height = 3;
bool prove = 4; bool prove = 4;
} }
@ -192,11 +192,11 @@ message ResponseCheckTx{
message ResponseQuery{ message ResponseQuery{
CodeType code = 1; CodeType code = 1;
int64 index = 2; int64 index = 2;
bytes key = 3; bytes key = 3;
bytes value = 4; bytes value = 4;
bytes proof = 5; bytes proof = 5;
uint64 height = 6; uint64 last_height = 6;
string log = 7; string log = 7;
} }