Support Phoenix 4.8.0 and Calcite/Avatica 1.8.0.

Project: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/commit/a87e02f2
Tree: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/tree/a87e02f2
Diff: http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/diff/a87e02f2

Branch: refs/heads/master
Commit: a87e02f2a8e040c2c22f80245fa68611fe2d952a
Parents: f5d6dfb
Author: Francis Chuang <francis.chu...@boostport.com>
Authored: Mon Aug 22 16:35:22 2016 +1000
Committer: Julian Hyde <jh...@apache.org>
Committed: Thu Aug 10 18:47:08 2017 -0700

----------------------------------------------------------------------
 README.md               |  20 +++-
 connection.go           |  30 +++--
 driver_test.go          |   5 +-
 dsn.go                  |  34 +++---
 dsn_test.go             |  32 ++---
 gen-protobuf.bat        |   2 +-
 gen-protobuf.sh         |   2 +-
 message/common.pb.go    | 278 ++++++++++++++++++++++---------------------
 message/requests.pb.go  | 167 ++++++++++++++++++--------
 message/responses.pb.go | 122 +++++++++++--------
 moby.yml                |   4 +-
 rows.go                 |  10 +-
 statement.go            |  10 +-
 transaction.go          |   2 +-
 vendor/vendor.json      |  22 ++--
 wercker.yml             |   2 +-
 16 files changed, 419 insertions(+), 323 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/README.md
----------------------------------------------------------------------
diff --git a/README.md b/README.md
index 90c00f5..69293e7 100644
--- a/README.md
+++ b/README.md
@@ -47,11 +47,18 @@ The following parameters are supported:
 The `location` will be set as the location of unserialized `time.Time` values. 
It must be a valid timezone.
 If you want to use the local timezone, use `Local`. By default, this is set to 
`UTC`.
 
-#### maxRowCount
+#### maxRowsTotal
 
-The `maxRowCount` sets the number of rows to fetch from the avatica server. 
Setting a high number causes avatica
-to return a large number of rows and setting a low number will cause avatica 
to return a small amount of rows
-and fetch more from the server if required. By default, this is set to `100`.
+The `maxRowsTotal` parameter sets the maximum number of rows to return for a 
given query. By default, this is set to
+`-1`, so that there is no limit on the number of rows returned.
+
+#### frameMaxSize
+
+The `frameMaxSize` parameter sets the maximum number of rows to return in a 
frame. Depending on the number of rows
+returned and subject to the limits of `maxRowsTotal`, a query result set can 
contain rows in multiple frames. These
+additional frames are then fetched on a as-needed basis. `frameMaxSize` allows 
you to control the number of rows
+in each frame to suit your application's performance profile. By default this 
is set to `-1`, so that there is no limit
+on the number of rows in a frame.
 
 ### time.Time support
 
@@ -64,6 +71,11 @@ in your DSN is set to the same value as the location of the 
`time.Time` values y
 
 We recommend using `UTC`, which is the default value of `location`.
 
+## Version compatibility
+| Driver Version  | Phoenix Version | Calcite/Avatica Version |
+| --------------- | -------------   | ----------------------- |
+| 1.0.0           | 4.8.0           | 1.8.0                   |
+
 ## Development
 
 To run tests, but skip tests in the vendor directory, run:

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/connection.go
----------------------------------------------------------------------
diff --git a/connection.go b/connection.go
index 3c80d06..24cad3b 100644
--- a/connection.go
+++ b/connection.go
@@ -22,7 +22,7 @@ func (c *conn) Prepare(query string) (driver.Stmt, error) {
        response, err := c.httpClient.post(context.Background(), 
&message.PrepareRequest{
                ConnectionId: c.connectionId,
                Sql:          query,
-               MaxRowCount:  c.config.maxRowCount,
+               MaxRowsTotal: c.config.maxRowsTotal,
        })
 
        if err != nil {
@@ -74,7 +74,7 @@ func (c *conn) Begin() (driver.Tx, error) {
                ConnProps: &message.ConnectionProperties{
                        AutoCommit:           false,
                        HasAutoCommit:        true,
-                       TransactionIsolation: 8,
+                       TransactionIsolation: 4,
                },
        })
 
@@ -107,10 +107,11 @@ func (c *conn) Exec(query string, args []driver.Value) 
(driver.Result, error) {
        }
 
        res, err := c.httpClient.post(context.Background(), 
&message.PrepareAndExecuteRequest{
-               ConnectionId: c.connectionId,
-               StatementId:  st.(*message.CreateStatementResponse).StatementId,
-               Sql:          query,
-               MaxRowCount:  c.config.maxRowCount,
+               ConnectionId:      c.connectionId,
+               StatementId:       
st.(*message.CreateStatementResponse).StatementId,
+               Sql:               query,
+               MaxRowsTotal:      c.config.maxRowsTotal,
+               FirstFrameMaxSize: c.config.frameMaxSize,
        })
 
        if err != nil {
@@ -134,11 +135,7 @@ func (c *conn) Query(query string, args []driver.Value) 
(driver.Rows, error) {
                return nil, driver.ErrBadConn
        }
 
-       return nil, driver.ErrSkip
-
-       // Disabled due to CALCITE-1181
-
-       /*if len(args) != 0 {
+       if len(args) != 0 {
                return nil, driver.ErrSkip
        }
 
@@ -151,10 +148,11 @@ func (c *conn) Query(query string, args []driver.Value) 
(driver.Rows, error) {
        }
 
        res, err := c.httpClient.post(context.Background(), 
&message.PrepareAndExecuteRequest{
-               ConnectionId: c.connectionId,
-               StatementId:  st.(*message.CreateStatementResponse).StatementId,
-               Sql:          query,
-               MaxRowCount:  maxRowCount,
+               ConnectionId:      c.connectionId,
+               StatementId:       
st.(*message.CreateStatementResponse).StatementId,
+               Sql:               query,
+               MaxRowsTotal:      c.config.maxRowsTotal,
+               FirstFrameMaxSize: c.config.frameMaxSize,
        })
 
        if err != nil {
@@ -164,5 +162,5 @@ func (c *conn) Query(query string, args []driver.Value) 
(driver.Rows, error) {
        // Currently there is only 1 ResultSet per response
        resultSet := res.(*message.ExecuteResponse).Results[0]
 
-       return NewRows(c, st.(*message.CreateStatementResponse).StatementId, 
resultSet), nil*/
+       return newRows(c, st.(*message.CreateStatementResponse).StatementId, 
resultSet), nil
 }

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/driver_test.go
----------------------------------------------------------------------
diff --git a/driver_test.go b/driver_test.go
index a91f137..babc1c5 100644
--- a/driver_test.go
+++ b/driver_test.go
@@ -633,7 +633,7 @@ func TestRollingBackTransactions(t *testing.T) {
 
 func TestFetchingMoreRows(t *testing.T) {
 
-       query := "?maxRowCount=1"
+       query := "?maxRowsTotal=-1&frameMaxSize=1"
 
        runTests(t, dsn+query, func(dbt *DBTest) {
 
@@ -700,10 +700,9 @@ func TestExecuteShortcut(t *testing.T) {
        })
 }
 
-// This test needs to wait for CALCITE-1181 to be fixed
 func TestQueryShortcut(t *testing.T) {
 
-       query := "?maxRowCount=1"
+       query := "?maxRowsTotal=-1&frameMaxSize=1"
 
        runTests(t, dsn+query, func(dbt *DBTest) {
 

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/dsn.go
----------------------------------------------------------------------
diff --git a/dsn.go b/dsn.go
index 3fc8e1c..0467a2c 100644
--- a/dsn.go
+++ b/dsn.go
@@ -9,19 +9,19 @@ import (
 
 // Config is a configuration parsed from a DSN string
 type Config struct {
-       endpoint         string
-       maxRowCount      uint64
-       fetchMaxRowCount uint32
-       location         *time.Location
+       endpoint     string
+       maxRowsTotal int64
+       frameMaxSize int32
+       location     *time.Location
 }
 
 // ParseDSN parses a DSN string to a Config
 func ParseDSN(dsn string) (*Config, error) {
 
        conf := &Config{
-               maxRowCount:      100,
-               fetchMaxRowCount: 100,
-               location:         time.UTC,
+               maxRowsTotal: -1,
+               frameMaxSize: -1,
+               location:     time.UTC,
        }
 
        parsed, err := url.ParseRequestURI(dsn)
@@ -32,20 +32,26 @@ func ParseDSN(dsn string) (*Config, error) {
 
        queries := parsed.Query()
 
-       if v := queries.Get("maxRowCount"); v != "" {
+       if v := queries.Get("maxRowsTotal"); v != "" {
 
-               maxRowCount, err := strconv.Atoi(v)
+               maxRowTotal, err := strconv.Atoi(v)
 
                if err != nil {
-                       return nil, fmt.Errorf("Invalid value for maxRowCount: 
%s", err)
+                       return nil, fmt.Errorf("Invalid value for maxRowsTotal: 
%s", err)
                }
 
-               if maxRowCount <= 0 {
-                       return nil, fmt.Errorf("maxRowCount must be greater 
than 0")
+               conf.maxRowsTotal = int64(maxRowTotal)
+       }
+
+       if v := queries.Get("frameMaxSize"); v != "" {
+
+               maxRowTotal, err := strconv.Atoi(v)
+
+               if err != nil {
+                       return nil, fmt.Errorf("Invalid value for frameMaxSize: 
%s", err)
                }
 
-               conf.fetchMaxRowCount = uint32(maxRowCount)
-               conf.maxRowCount = uint64(maxRowCount)
+               conf.frameMaxSize = int32(maxRowTotal)
        }
 
        if v := queries.Get("location"); v != "" {

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/dsn_test.go
----------------------------------------------------------------------
diff --git a/dsn_test.go b/dsn_test.go
index bd22f55..2cf9f6f 100644
--- a/dsn_test.go
+++ b/dsn_test.go
@@ -7,7 +7,7 @@ import (
 
 func TestParseDSN(t *testing.T) {
 
-       config, err := 
ParseDSN("http://localhost:8765?maxRowCount=1&location=Australia/Melbourne";)
+       config, err := 
ParseDSN("http://localhost:8765?maxRowsTotal=1&frameMaxSize=1&location=Australia/Melbourne";)
 
        if err != nil {
                t.Fatalf("Unexpected error: %s", err)
@@ -17,12 +17,12 @@ func TestParseDSN(t *testing.T) {
                t.Errorf("Expected endpoint to be %s, got %s", 
"http://localhost:8765";, config.endpoint)
        }
 
-       if config.fetchMaxRowCount != 1 {
-               t.Errorf("Expected fetchMaxRowCount to be %d, got %d", 1, 
config.fetchMaxRowCount)
+       if config.frameMaxSize != 1 {
+               t.Errorf("Expected frameMaxSize to be %d, got %d", 1, 
config.frameMaxSize)
        }
 
-       if config.maxRowCount != 1 {
-               t.Errorf("Expected maxRowCount to be %d, got %d", 1, 
config.maxRowCount)
+       if config.maxRowsTotal != 1 {
+               t.Errorf("Expected maxRowsTotal to be %d, got %d", 1, 
config.maxRowsTotal)
        }
 
        if config.location.String() != "Australia/Melbourne" {
@@ -51,12 +51,12 @@ func TestDSNDefaults(t *testing.T) {
                t.Error("There was no timezone set.")
        }
 
-       if config.maxRowCount == 0 {
-               t.Error("There was no maxRowCount set.")
+       if config.maxRowsTotal == 0 {
+               t.Error("There was no maxRowsTotal set.")
        }
 
-       if config.fetchMaxRowCount == 0 {
-               t.Error("There was no fetchMaxRowCount set.")
+       if config.frameMaxSize == 0 {
+               t.Error("There was no fetchMaxSize set.")
        }
 }
 
@@ -81,21 +81,15 @@ func TestBadInput(t *testing.T) {
                t.Fatal("Expected error due to invalid location, but did not 
receive any.")
        }
 
-       _, err = ParseDSN("http://localhost:8765?maxRowCount=abc";)
+       _, err = ParseDSN("http://localhost:8765?maxRowsTotal=abc";)
 
        if err == nil {
-               t.Fatal("Expected error due to invalid maxRowCount, but did not 
receive any.")
+               t.Fatal("Expected error due to invalid maxRowsTotal, but did 
not receive any.")
        }
 
-       _, err = ParseDSN("http://localhost:8765?maxRowCount=0";)
+       _, err = ParseDSN("http://localhost:8765?frameMaxSize=abc";)
 
        if err == nil {
-               t.Fatal("Expected error due to invalid maxRowCount, but did not 
receive any.")
-       }
-
-       _, err = ParseDSN("http://localhost:8765?maxRowCount=-1";)
-
-       if err == nil {
-               t.Fatal("Expected error due to invalid maxRowCount, but did not 
receive any.")
+               t.Fatal("Expected error due to invalid frameMaxSize, but did 
not receive any.")
        }
 }

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/gen-protobuf.bat
----------------------------------------------------------------------
diff --git a/gen-protobuf.bat b/gen-protobuf.bat
index c19b275..7fd1993 100644
--- a/gen-protobuf.bat
+++ b/gen-protobuf.bat
@@ -1,4 +1,4 @@
-SET CALCITE_VER=calcite-1.7.0
+SET CALCITE_VER=calcite-1.8.0
 
 rmdir /Q /S message
 rmdir /Q /S calcite-tmp

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/gen-protobuf.sh
----------------------------------------------------------------------
diff --git a/gen-protobuf.sh b/gen-protobuf.sh
index 7dfebd4..fa7b459 100644
--- a/gen-protobuf.sh
+++ b/gen-protobuf.sh
@@ -1,6 +1,6 @@
 #!/usr/bin/env bash
 
-export CALCITE_VER=calcite-1.7.0
+export CALCITE_VER=calcite-1.8.0
 
 rm -rf message
 rm -rf calcite-tmp

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/message/common.pb.go
----------------------------------------------------------------------
diff --git a/message/common.pb.go b/message/common.pb.go
index 510faf5..ec754d4 100644
--- a/message/common.pb.go
+++ b/message/common.pb.go
@@ -45,6 +45,9 @@ It has these top-level messages:
        SyncResultsRequest
        CommitRequest
        RollbackRequest
+       PrepareAndExecuteBatchRequest
+       UpdateBatch
+       ExecuteBatchRequest
        ResultSetResponse
        ExecuteResponse
        PrepareResponse
@@ -61,6 +64,7 @@ It has these top-level messages:
        RpcMetadata
        CommitResponse
        RollbackResponse
+       ExecuteBatchResponse
 */
 package message
 
@@ -707,7 +711,7 @@ type TypedValue struct {
        StringValue string 
`protobuf:"bytes,3,opt,name=string_value,json=stringValue" 
json:"string_value,omitempty"`
        NumberValue int64  
`protobuf:"zigzag64,4,opt,name=number_value,json=numberValue" 
json:"number_value,omitempty"`
        // includes numeric types and date/time types.
-       BytesValues []byte  
`protobuf:"bytes,5,opt,name=bytes_values,json=bytesValues,proto3" 
json:"bytes_values,omitempty"`
+       BytesValue  []byte  
`protobuf:"bytes,5,opt,name=bytes_value,json=bytesValue,proto3" 
json:"bytes_value,omitempty"`
        DoubleValue float64 
`protobuf:"fixed64,6,opt,name=double_value,json=doubleValue" 
json:"double_value,omitempty"`
        Null        bool    `protobuf:"varint,7,opt,name=null" 
json:"null,omitempty"`
 }
@@ -780,140 +784,140 @@ func init() {
 }
 
 var fileDescriptor0 = []byte{
-       // 2157 bytes of a gzipped FileDescriptorProto
-       0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x84, 0x58, 
0xcd, 0x6e, 0xdb, 0xd8,
-       0x15, 0xae, 0x2c, 0xc9, 0x96, 0x8e, 0x7e, 0x4c, 0xd1, 0x4e, 0xa2, 0x24, 
0x33, 0xd3, 0x54, 0x45,
-       0x3b, 0x33, 0x46, 0xa1, 0xa2, 0x99, 0x76, 0xd5, 0x15, 0x2d, 0xd1, 0x36, 
0x33, 0x92, 0xa8, 0xb9,
-       0xa4, 0xe2, 0xf1, 0x66, 0x08, 0x5a, 0xa2, 0x1d, 0x02, 0x32, 0xa9, 0x92, 
0x54, 0x02, 0xf5, 0x2d,
-       0xfa, 0x04, 0x2d, 0xfa, 0x10, 0x7d, 0x8f, 0x2e, 0x8a, 0xae, 0xba, 0x29, 
0x50, 0xa0, 0xdb, 0xbe,
-       0x41, 0xcf, 0x39, 0x97, 0x7f, 0xca, 0x0f, 0x66, 0x65, 0xde, 0xef, 0x7c, 
0xf7, 0xdc, 0xf3, 0x7f,
-       0xaf, 0x0c, 0xed, 0x65, 0xf8, 0xf0, 0x10, 0x06, 0xc3, 0x4d, 0x14, 0x26, 
0xe1, 0xe0, 0xaf, 0x07,
-       0x70, 0x3a, 0x0a, 0x83, 0xc0, 0x5b, 0x26, 0x7e, 0x18, 0xcc, 0xa3, 0x70, 
0xe3, 0x45, 0x89, 0xef,
-       0xc5, 0xea, 0x53, 0x68, 0xf8, 0xb1, 0xb3, 0xf2, 0xa3, 0x64, 0xd7, 0xaf, 
0xbc, 0xa8, 0x7c, 0xd5,
-       0x10, 0x47, 0x7e, 0x3c, 0xa6, 0xa5, 0xfa, 0x53, 0x68, 0xb9, 0xdb, 0x24, 
0x74, 0x48, 0x91, 0x9f,
-       0xf4, 0x0f, 0x58, 0x0a, 0x04, 0x8d, 0x18, 0x51, 0x7f, 0x09, 0xc7, 0x6f, 
0xdc, 0xd8, 0x29, 0x93,
-       0x8e, 0x98, 0xd4, 0x41, 0x58, 0x2b, 0x78, 0xcf, 0xa1, 0x19, 0x79, 0xee, 
0xca, 0x09, 0x83, 0xf5,
-       0xae, 0x5f, 0x65, 0x46, 0x83, 0x00, 0x13, 0xd7, 0xea, 0x00, 0x88, 0xed, 
0x14, 0x84, 0x06, 0x13,
-       0x5a, 0x08, 0x8a, 0x8c, 0xf3, 0x0d, 0x3c, 0x4a, 0x22, 0x37, 0x88, 0x5d, 
0xb6, 0xde, 0xf1, 0xe3,
-       0x70, 0xed, 0xd2, 0x57, 0xbf, 0x86, 0xdc, 0x8e, 0x38, 0x2d, 0x09, 0x8d, 
0x4c, 0xa6, 0xf6, 0xe1,
-       0x68, 0xe9, 0x26, 0xee, 0x3a, 0xbc, 0xef, 0xd7, 0x91, 0xd6, 0x14, 0xd9, 
0x52, 0x7d, 0x0c, 0x87,
-       0xf1, 0xf2, 0x8d, 0xf7, 0xe0, 0xf6, 0x0f, 0x59, 0x90, 0xae, 0x06, 0x1b, 
0x38, 0xb6, 0x12, 0x37,
-       0xf1, 0x1e, 0xbc, 0x20, 0xb9, 0x72, 0x83, 0xd5, 0xda, 0x53, 0x7f, 0x0e, 
0x9d, 0x65, 0x1e, 0x36,
-       0xc7, 0x5f, 0x71, 0x8c, 0x9a, 0xa2, 0x5d, 0x80, 0xc6, 0x4a, 0xed, 0xc2, 
0x01, 0x4a, 0x0e, 0xd8,
-       0x16, 0xfc, 0x52, 0xbf, 0x82, 0x66, 0xec, 0xdf, 0x07, 0x6e, 0xb2, 0x8d, 
0x3c, 0xf6, 0xb7, 0xf5,
-       0x12, 0x86, 0x56, 0x86, 0x88, 0x42, 0x38, 0xf8, 0x6f, 0x05, 0x9a, 0xb9, 
0x40, 0xfd, 0x1a, 0x2d,
-       0x0e, 0xd7, 0xdb, 0x87, 0x20, 0xc6, 0x63, 0xaa, 0xb8, 0xeb, 0x78, 0x38, 
0xe2, 0xf5, 0xd4, 0x4b,
-       0xdc, 0x31, 0x1a, 0x2f, 0x32, 0xb9, 0xaa, 0x40, 0x35, 0xfe, 0xc3, 0x9a, 
0xcf, 0x6c, 0x0a, 0xfa,
-       0x54, 0x7f, 0x03, 0xb0, 0x71, 0x23, 0xf7, 0xc1, 0x4b, 0xbc, 0x28, 0xc6, 
0x53, 0x69, 0x7f, 0x6f,
-       0xa8, 0xbd, 0xc5, 0x60, 0x2c, 0xdd, 0x79, 0x26, 0x11, 0x25, 0x92, 0xfa, 
0x3b, 0xe8, 0x2e, 0xb7,
-       0x51, 0x1c, 0x46, 0xce, 0x1d, 0x06, 0x2f, 0x8c, 0x76, 0x1c, 0xcf, 0xd6, 
0xcb, 0xee, 0x70, 0xc4,
-       0xf0, 0x85, 0x44, 0x45, 0x67, 0x59, 0x5e, 0xaa, 0xbf, 0x85, 0x4e, 0x9c, 
0x85, 0xc9, 0xde, 0x6d,
-       0x3c, 0x0e, 0x6f, 0x17, 0x77, 0x59, 0x65, 0x54, 0xec, 0x93, 0x06, 0x7f, 
0xaa, 0x43, 0x77, 0xdf,
-       0x1b, 0xca, 0x50, 0x18, 0xad, 0xfc, 0xc0, 0x5d, 0x73, 0x58, 0x3b, 0x22, 
0x5b, 0xaa, 0xbf, 0x80,
-       0x2e, 0x57, 0x95, 0x1f, 0x2c, 0x23, 0x56, 0x91, 0x56, 0x5f, 0x87, 0x50, 
0x23, 0x03, 0x89, 0xb6,
-       0x74, 0x63, 0xcf, 0x89, 0xbd, 0x20, 0xf6, 0x13, 0xff, 0xad, 0x97, 0x56, 
0x57, 0x87, 0x50, 0x2b,
-       0x03, 0xd5, 0x2f, 0x00, 0x62, 0xcf, 0x8d, 0x96, 0x6f, 0xdc, 0xdb, 0xb5, 
0xc7, 0x3e, 0x62, 0x1d,
-       0x17, 0x88, 0xfa, 0x0c, 0x1a, 0xe8, 0x61, 0xe4, 0x05, 0xcb, 0x1d, 0xfb, 
0x82, 0xe5, 0x99, 0xad,
-       0x49, 0x16, 0x6c, 0xd7, 0x6b, 0xde, 0x79, 0xc8, 0x46, 0xe6, 0x6b, 0xae, 
0x23, 0x4c, 0x9e, 0xb7,
-       0x4a, 0xcb, 0x3e, 0x5d, 0xa9, 0x3f, 0x83, 0xf6, 0xca, 0x8f, 0x37, 0x6b, 
0x77, 0xe7, 0xc4, 0xfe,
-       0x1f, 0x3d, 0xae, 0xe8, 0x8e, 0x68, 0xa5, 0x98, 0x85, 0x90, 0x7a, 0x0a, 
0x75, 0xd4, 0xe1, 0xad,
-       0xfb, 0x4d, 0xce, 0xa0, 0x5c, 0x50, 0xc7, 0xc9, 0x04, 0x3b, 0x01, 0xe6, 
0xa8, 0x0f, 0x2c, 0x03,
-       0x09, 0xcd, 0x10, 0x21, 0x82, 0xac, 0x55, 0x49, 0x68, 0x49, 0x82, 0x84, 
0x98, 0xf0, 0x19, 0x34,
-       0x37, 0x91, 0xb7, 0xf4, 0x63, 0xea, 0x8e, 0x36, 0x9f, 0x5b, 0x00, 0x74, 
0x6a, 0xbc, 0x74, 0xd1,
-       0x93, 0x0e, 0x4b, 0xe4, 0x42, 0xfd, 0x1c, 0x20, 0x21, 0x7f, 0xa4, 0xce, 
0x2e, 0xeb, 0x6c, 0x32,
-       0xc2, 0x2a, 0xd1, 0x9b, 0xb4, 0x71, 0x24, 0xe1, 0x98, 0x09, 0xad, 0x14, 
0x63, 0xca, 0x5e, 0x83,
-       0x2b, 0xef, 0x35, 0x38, 0x46, 0xf0, 0x5d, 0xe4, 0xb3, 0xbe, 0x7e, 0x4f, 
0xca, 0xb2, 0xb5, 0xfa,
-       0x6b, 0x38, 0x59, 0x79, 0x77, 0x7e, 0xe0, 0x27, 0xde, 0x7a, 0xe7, 0xe4, 
0x34, 0x95, 0x69, 0x6a,
-       0x21, 0xba, 0xce, 0x36, 0x9c, 0x41, 0x2f, 0x8d, 0xd0, 0x72, 0xed, 0xc6, 
0xb1, 0xb4, 0xe8, 0x84,
-       0x2d, 0x3a, 0x96, 0x82, 0x11, 0xe1, 0x6c, 0xd5, 0x0b, 0xa8, 0x25, 0x54, 
0x9e, 0xa7, 0x5c, 0xd4,
-       0xed, 0xac, 0x17, 0xb8, 0x38, 0x59, 0x32, 0xf8, 0x4b, 0x05, 0x5a, 0x25, 
0x34, 0x6d, 0xe4, 0x4a,
-       0xde, 0xc8, 0x2a, 0xd4, 0xf8, 0x00, 0xd9, 0x66, 0xfc, 0x8d, 0x49, 0xaf, 
0x46, 0xde, 0x86, 0x0b,
-       0xad, 0xfb, 0xb2, 0x36, 0x14, 0xde, 0x46, 0x10, 0x50, 0x6e, 0xde, 0xda, 
0x8f, 0x34, 0xef, 0x19,
-       0x34, 0x71, 0x5c, 0x6e, 0xc2, 0x80, 0x0a, 0xbb, 0xfe, 0x11, 0xeb, 0x0a, 
0xf1, 0xe0, 0x1f, 0x15,
-       0x50, 0xde, 0x6f, 0xe2, 0x52, 0xe1, 0x55, 0xf6, 0x0a, 0x6f, 0x2f, 0xfb, 
0x07, 0x9f, 0xcc, 0x7e,
-       0xb5, 0x9c, 0x7d, 0xec, 0xa1, 0x7c, 0x24, 0x38, 0x1c, 0x2f, 0x39, 0x54, 
0x3b, 0x39, 0xca, 0xa1,
-       0xc1, 0x14, 0x93, 0x50, 0x06, 0x5c, 0xce, 0xd3, 0x06, 0x01, 0x1c, 0x69, 
0xac, 0xa0, 0x52, 0x3a,
-       0xe4, 0x50, 0x6d, 0x2e, 0xf3, 0x44, 0x64, 0x61, 0x3c, 0x2a, 0xc2, 0x38, 
0xf8, 0x7b, 0x05, 0x3a,
-       0x7b, 0x53, 0x06, 0xa3, 0x52, 0x8f, 0x93, 0x1d, 0x9a, 0x57, 0xe1, 0xd0, 
0x9e, 0xee, 0x0f, 0x21,
-       0x1c, 0x2e, 0x28, 0x13, 0x92, 0xf2, 0xde, 0x81, 0x07, 0xef, 0x1f, 0x88, 
0x6d, 0x72, 0xe7, 0x7b,
-       0xeb, 0x15, 0x8b, 0xe5, 0x30, 0xc4, 0x36, 0x61, 0x88, 0xe4, 0xf1, 0xc0, 
0x86, 0x3a, 0xeb, 0x53,
-       0x01, 0x0e, 0xcd, 0xf3, 0x57, 0xfa, 0xc8, 0x56, 0x7e, 0x42, 0xdf, 0x42, 
0x1f, 0x99, 0x62, 0xac,
-       0x54, 0xd4, 0x47, 0xd0, 0x93, 0xdf, 0xce, 0x5c, 0x98, 0x24, 0x37, 0xcc, 
0x99, 0x72, 0xa0, 0x36,
-       0xa1, 0xae, 0x09, 0xa1, 0xdd, 0x28, 0x55, 0xb5, 0x01, 0xb5, 0x89, 0x61, 
0xd9, 0x4a, 0x4d, 0x3d,
-       0x82, 0xea, 0x54, 0x9b, 0x2b, 0xf5, 0xc1, 0x14, 0xea, 0x17, 0x91, 0xac, 
0x91, 0xc3, 0xf0, 0xee,
-       0x2e, 0xf6, 0x12, 0xf6, 0xa5, 0x26, 0xd2, 0x15, 0x05, 0x62, 0x85, 0x69, 
0x4d, 0x87, 0x19, 0x7f,
-       0xe3, 0x10, 0xac, 0x45, 0xe1, 0xbb, 0x6c, 0x62, 0x63, 0x41, 0x85, 0xef, 
0x04, 0x23, 0x83, 0xaf,
-       0xa1, 0x8a, 0x0b, 0xbc, 0x20, 0xeb, 0x6f, 0xdd, 0xf5, 0xd6, 0x4b, 0xef, 
0x84, 0x76, 0x5a, 0x56,
-       0xaf, 0x09, 0x13, 0x52, 0x34, 0x18, 0x83, 0x42, 0x25, 0x76, 0x8b, 0x63, 
0x2f, 0xbd, 0xdb, 0x77,
-       0x79, 0xd4, 0x2b, 0xa5, 0xe2, 0xc5, 0x02, 0xb9, 0xdb, 0x06, 0x7c, 0x6f, 
0xc5, 0x68, 0x05, 0x85,
-       0xa5, 0x00, 0x06, 0xaf, 0xa0, 0x75, 0xed, 0x47, 0xde, 0xd4, 0x8b, 0x63, 
0xf7, 0xde, 0xfb, 0xa8,
-       0x82, 0x2f, 0xe1, 0xf8, 0x5d, 0xe4, 0x6e, 0x36, 0xde, 0xca, 0x79, 0x90, 
0x34, 0x76, 0xa6, 0x2d,
-       0xba, 0x29, 0x9c, 0x6e, 0x1e, 0xfc, 0x0d, 0x5b, 0xab, 0x64, 0x28, 0x4e, 
0x91, 0x3d, 0x2f, 0x5a,
-       0x43, 0xaa, 0xaa, 0x55, 0xd9, 0x09, 0xf5, 0x57, 0xf8, 0xde, 0x88, 0x22, 
0x1c, 0x9a, 0x92, 0x78,
-       0xf0, 0x21, 0x11, 0x58, 0x2e, 0x15, 0x66, 0x8f, 0x8f, 0xd2, 0x8e, 0x6a, 
0xf1, 0xf8, 0x28, 0x78,
-       0x43, 0x68, 0x53, 0xa1, 0xbb, 0x51, 0x4a, 0x92, 0x57, 0xdc, 0x9e, 0xda, 
0x96, 0x24, 0xf0, 0x62,
-       0xf0, 0x9f, 0x0a, 0x40, 0x21, 0xa3, 0xf4, 0x70, 0x53, 0x54, 0x4a, 0xfd, 
0xce, 0x08, 0xd5, 0xe0,
-       0x6d, 0x18, 0xae, 0x73, 0x6b, 0xe9, 0xec, 0x26, 0x21, 0x99, 0xc3, 0xed, 
0x38, 0x89, 0xfc, 0xe0,
-       0xbe, 0x64, 0x1c, 0x8e, 0x4d, 0x89, 0xe5, 0x94, 0x60, 0xfb, 0x70, 0xeb, 
0x95, 0x4d, 0x53, 0x45,
-       0x4b, 0x62, 0x39, 0xe5, 0x76, 0x97, 0x78, 0xb1, 0x64, 0xc4, 0xdc, 0x79, 
0x6d, 0xd1, 0x62, 0x8c,
-       0x19, 0x31, 0xdf, 0x36, 0xe1, 0x96, 0xe6, 0xb7, 0xd4, 0x42, 0xed, 0x57, 
0xc1, 0xdb, 0x86, 0x31,
-       0xa9, 0x85, 0x32, 0x89, 0x97, 0x56, 0x7a, 0x4d, 0xf1, 0xf7, 0xe0, 0x7f, 
0x07, 0xf0, 0x34, 0x1b,
-       0x4d, 0x26, 0x56, 0x0c, 0x3f, 0x9a, 0xb4, 0xe8, 0x7e, 0xcb, 0x37, 0xeb, 
0xfb, 0xd6, 0x57, 0x3e,
-       0xb4, 0xfe, 0x47, 0xfc, 0xc7, 0x81, 0xe1, 0x07, 0x49, 0xc9, 0xf9, 0x9e, 
0x68, 0x20, 0x90, 0x25,
-       0xe5, 0x24, 0x55, 0x5f, 0xca, 0x9f, 0x1c, 0x9c, 0x4d, 0xd1, 0x93, 0xa2, 
0x22, 0x87, 0x31, 0xbe,
-       0xa8, 0x14, 0x52, 0xb6, 0x47, 0xae, 0x23, 0xb9, 0x27, 0xba, 0x88, 0x97, 
0x99, 0xbf, 0x4f, 0xf3,
-       0x75, 0xc8, 0xf9, 0xfa, 0x72, 0xf8, 0x49, 0x17, 0x87, 0xd9, 0x47, 0xe9, 
0x3e, 0xf8, 0x01, 0xda,
-       0x65, 0x94, 0x26, 0x82, 0x65, 0x0b, 0x63, 0x76, 0x89, 0xd3, 0x01, 0xfb, 
0xfd, 0xdc, 0x34, 0x27,
-       0x38, 0x1b, 0xb0, 0xdf, 0x8d, 0x99, 0x8d, 0xd3, 0xe0, 0x04, 0x8e, 0x85, 
0x3e, 0xd7, 0x35, 0x5b,
-       0x1f, 0x3b, 0x29, 0xaf, 0x8a, 0x2f, 0xb3, 0x76, 0x0e, 0x12, 0xad, 0x46, 
0x3b, 0x67, 0x8b, 0xc9,
-       0x04, 0x07, 0xc4, 0xbf, 0xb0, 0xb6, 0xbe, 0xdb, 0x7a, 0xd1, 0x8e, 0x5f, 
0x4a, 0xf8, 0x2e, 0x29,
-       0xd7, 0x16, 0xc8, 0xf7, 0x53, 0x61, 0xce, 0x47, 0x1e, 0x79, 0x03, 0x38, 
0x08, 0xb3, 0xbb, 0x47,
-       0xfd, 0xd0, 0x37, 0x81, 0x52, 0x8c, 0x6d, 0xcd, 0x8d, 0xee, 0xb3, 0x5b, 
0xe8, 0xd9, 0xa7, 0x23,
-       0x20, 0x98, 0x47, 0xbf, 0x00, 0x64, 0x23, 0xdd, 0xc7, 0xe9, 0xeb, 0xe7, 
0x88, 0x3b, 0x08, 0x45,
-       0x4f, 0x80, 0x3e, 0x1d, 0x32, 0xe2, 0x50, 0x5e, 0x34, 0xb8, 0xb4, 0xd0, 
0x8e, 0x47, 0x40, 0x5f,
-       0x0e, 0xda, 0x22, 0x4b, 0xaa, 0x8e, 0x2b, 0x73, 0x73, 0xf6, 0x67, 0x1c, 
0xea, 0x7b, 0x8f, 0x40,
-       0x8e, 0xa0, 0x3e, 0xc9, 0xe7, 0xab, 0x31, 0xb3, 0x74, 0x61, 0x63, 0x0c, 
0xf1, 0x7b, 0x31, 0x1f,
-       0x63, 0x90, 0x30, 0x8c, 0xf8, 0x3d, 0x46, 0x0e, 0x7e, 0x57, 0x25, 0xce, 
0x9c, 0x1a, 0x0d, 0xdb,
-       0xa9, 0x2e, 0x2e, 0x75, 0xa5, 0xae, 0x76, 0xa0, 0x69, 0xda, 0x57, 0xba, 
0x70, 0xc6, 0xd3, 0x89,
-       0x72, 0x48, 0xac, 0x91, 0xa0, 0x10, 0x2b, 0x47, 0x14, 0xdd, 0xb1, 0x30, 
0xe7, 0x4a, 0x83, 0x87,
-       0xf3, 0xc4, 0xd6, 0x85, 0xd2, 0x2c, 0xf1, 0xc7, 0x13, 0x05, 0x88, 0x33, 
0xd2, 0x30, 0x03, 0xad,
-       0xb3, 0x7f, 0x57, 0x71, 0xa8, 0xe2, 0x6d, 0x8d, 0xf3, 0x7d, 0x2e, 0x8c, 
0xa9, 0x61, 0x1b, 0xaf,
-       0x75, 0x87, 0xf2, 0xaa, 0x6b, 0x33, 0x34, 0x51, 0x85, 0x6e, 0x09, 0xbe, 
0xc1, 0x03, 0x2a, 0xfb,
-       0xd8, 0xe8, 0x4a, 0x13, 0x32, 0xf3, 0x05, 0x66, 0x5d, 0x99, 0x68, 0x6f, 
0x55, 0xed, 0x41, 0xa7,
-       0x00, 0x65, 0xea, 0xf7, 0xf6, 0x4e, 0x4c, 0x2c, 0x90, 0xfa, 0xfe, 0xde, 
0x8b, 0x89, 0xa9, 0xd9,
-       0xe8, 0xd1, 0x29, 0x28, 0x05, 0x38, 0x36, 0x17, 0xe7, 0x13, 0xf2, 0xad, 
0x05, 0x47, 0x99, 0x6d,
-       0x0d, 0x2e, 0x40, 0xb2, 0x88, 0xbd, 0x23, 0x3b, 0xb4, 0x11, 0x39, 0x0b, 
0xe4, 0xb7, 0x34, 0xa1,
-       0x45, 0x1b, 0xf0, 0x60, 0xfd, 0x12, 0xf1, 0x36, 0xdf, 0x50, 0x74, 0x64, 
0x87, 0x18, 0xf2, 0xa0,
-       0x2e, 0x07, 0x5b, 0xaa, 0x3f, 0x56, 0x8f, 0xa1, 0x75, 0x6e, 0x5c, 0x3a, 
0xd9, 0x8e, 0xa7, 0x19,
-       0x30, 0xd6, 0x47, 0xc6, 0x54, 0x9b, 0x28, 0xcf, 0xc8, 0xa5, 0x57, 0xda, 
0x6b, 0xcd, 0xb1, 0xbe,
-       0x9b, 0x38, 0xb6, 0x31, 0xd5, 0x15, 0x05, 0xef, 0x36, 0x75, 0x0f, 0xb2, 
0x6c, 0x6d, 0x3a, 0x57,
-       0x7a, 0x7b, 0x54, 0x4e, 0xac, 0x4a, 0xde, 0x33, 0xb4, 0xb0, 0x8d, 0x14, 
0x3b, 0xe1, 0x23, 0xd0,
-       0x8b, 0xac, 0x5f, 0x4e, 0x4b, 0x3d, 0xf6, 0x88, 0xbe, 0x67, 0x8b, 0xe9, 
0x39, 0xda, 0xf2, 0xb8,
-       0x74, 0x33, 0x3f, 0xc9, 0x3b, 0xa8, 0x5f, 0x5c, 0xc0, 0xcf, 0xd3, 0x8d, 
0x0b, 0x24, 0x7c, 0xa6,
-       0xb6, 0xa1, 0x31, 0x5d, 0x4c, 0x6c, 0xc3, 0xd2, 0x6d, 0xe5, 0xf3, 0xb3, 
0x1f, 0xa0, 0x61, 0x79,
-       0x6f, 0x3d, 0x7c, 0x33, 0xee, 0x28, 0xb0, 0x8b, 0xd9, 0xb7, 0x33, 0xf3, 
0x7a, 0xe6, 0x58, 0xfa,
-       0x6b, 0x5d, 0x18, 0xf6, 0x8d, 0xcc, 0xf3, 0x85, 0x66, 0x6b, 0x93, 0x02, 
0xe3, 0x3c, 0xeb, 0x42,
-       0x98, 0xa2, 0xc0, 0x0e, 0x68, 0xf7, 0xb5, 0x26, 0x66, 0x68, 0x5d, 0x81, 
0x56, 0xcf, 0xfe, 0x59,
-       0x83, 0xde, 0x07, 0x5d, 0x45, 0xfb, 0x2f, 0x75, 0xdb, 0xd1, 0x6c, 0xf4, 
0xe6, 0x7c, 0x61, 0xeb,
-       0x16, 0x9e, 0xf3, 0x1c, 0x9e, 0x10, 0x76, 0x8e, 0x51, 0x72, 0x84, 0x79, 
0xed, 0x18, 0x63, 0x7d,
-       0x66, 0x1b, 0x17, 0x06, 0x7a, 0x58, 0xa1, 0x49, 0x41, 0xc2, 0x11, 0x19, 
0x62, 0x5e, 0x5a, 0x78,
-       0xdc, 0x17, 0xf0, 0x8c, 0x91, 0x89, 0x81, 0x34, 0xcc, 0xcb, 0x85, 0x49, 
0xcf, 0x8f, 0x39, 0xb6,
-       0x83, 0x81, 0xea, 0xaa, 0xd8, 0xaa, 0x8f, 0x58, 0x6e, 0x4e, 0x16, 0xd3, 
0x19, 0x8a, 0x8c, 0xd7,
-       0xc6, 0x04, 0x53, 0x67, 0x61, 0xa5, 0x61, 0x5c, 0x0b, 0x91, 0x85, 0x65, 
0xf6, 0x04, 0x4e, 0x18,
-       0x10, 0xa6, 0x65, 0x39, 0x42, 0xbf, 0xd0, 0x85, 0x3e, 0x1b, 0xe9, 0x58, 
0x6a, 0x58, 0xfa, 0x24,
-       0xd0, 0xbf, 0x9f, 0x63, 0xcd, 0xe0, 0x90, 0xfa, 0x56, 0xbf, 0xb1, 0xb0, 
0xd6, 0xfa, 0x70, 0x4a,
-       0xf0, 0xc5, 0x62, 0xc6, 0x8f, 0x9d, 0x5c, 0x53, 0x83, 0x32, 0x5b, 0x96, 
0x58, 0x58, 0x81, 0xa9,
-       0x0e, 0x63, 0x5a, 0xd6, 0x01, 0x59, 0x08, 0x8c, 0xd9, 0x58, 0xff, 0x9e, 
0xcd, 0xc7, 0x92, 0xc4,
-       0x10, 0x12, 0x46, 0xd5, 0xad, 0x89, 0x1b, 0xc9, 0x6c, 0x67, 0x9e, 0xa0, 
0x77, 0x23, 0x7d, 0xbc,
-       0x10, 0x7a, 0x7e, 0x5c, 0x27, 0x53, 0x92, 0x8b, 0x2c, 0xac, 0x5a, 0x2c, 
0x3a, 0xc6, 0x2c, 0x7d,
-       0x31, 0x36, 0x73, 0xee, 0x71, 0xe6, 0xb5, 0x35, 0xba, 0xd2, 0xa7, 0x9a, 
0x85, 0xd5, 0x99, 0xea,
-       0x4d, 0x01, 0xe7, 0xda, 0xb0, 0xaf, 0x1c, 0x4d, 0x60, 0x70, 0x7b, 0x99, 
0x21, 0xd6, 0x02, 0xe3,
-       0xe9, 0xd8, 0x1a, 0xb6, 0x80, 0x85, 0x35, 0x8a, 0xdd, 0x58, 0x42, 0x6f, 
0xe6, 0x08, 0x9e, 0x64,
-       0xb1, 0x60, 0x52, 0x39, 0xcc, 0xa7, 0xf8, 0x0b, 0x01, 0x72, 0x89, 0x85, 
0x15, 0x9b, 0x6e, 0x97,
-       0x4c, 0xb9, 0xfd, 0x71, 0x16, 0x30, 0x5a, 0xca, 0x28, 0x3c, 0xa1, 0x02, 
0x25, 0x68, 0x31, 0xb6,
-       0x2d, 0xac, 0xe2, 0x34, 0x37, 0x58, 0x50, 0x56, 0x39, 0xd4, 0x4f, 0xcf, 
0x06, 0xd0, 0xcc, 0x2f,
-       0x01, 0xba, 0x67, 0xb0, 0x99, 0xb0, 0x8a, 0xa8, 0xba, 0x75, 0x5b, 0xc3, 
0x0e, 0xd2, 0x94, 0xca,
-       0xf9, 0x00, 0x5e, 0x84, 0xd1, 0xfd, 0xd0, 0xdd, 0xb8, 0xf8, 0xb3, 0x6f, 
0x88, 0x2f, 0x97, 0x25,
-       0xfe, 0x44, 0x1a, 0xba, 0xf2, 0x37, 0x82, 0xfc, 0x77, 0xcf, 0xed, 0x21, 
0xff, 0xf9, 0xe6, 0xff,
-       0x01, 0x00, 0x00, 0xff, 0xff, 0x14, 0x77, 0xc8, 0xb4, 0x05, 0x12, 0x00, 
0x00,
+       // 2156 bytes of a gzipped FileDescriptorProto
+       0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x84, 0x58, 
0xcd, 0x72, 0xdb, 0xc8,
+       0x11, 0x0e, 0x45, 0x52, 0x22, 0x9b, 0x3f, 0x02, 0x21, 0xd9, 0xa6, 0xed, 
0xdd, 0x8d, 0xc3, 0x54,
+       0xb2, 0xbb, 0xaa, 0x14, 0x53, 0xf1, 0x26, 0xa7, 0x9c, 0x20, 0x12, 0x92, 
0xe0, 0x25, 0x09, 0xee,
+       0x00, 0xb4, 0x56, 0x97, 0x45, 0x41, 0x24, 0x24, 0xa3, 0x8a, 0x02, 0x18, 
0x00, 0xb4, 0x8b, 0x79,
+       0x8b, 0x3c, 0x41, 0x52, 0x79, 0x88, 0xbc, 0x47, 0x0e, 0xa9, 0x9c, 0x72, 
0x49, 0x2e, 0xb9, 0xe6,
+       0x0d, 0xd2, 0xdd, 0x83, 0x3f, 0xfa, 0xa7, 0xf6, 0x24, 0xcc, 0xd7, 0xdf, 
0xcc, 0xf4, 0x74, 0x7f,
+       0xdd, 0x33, 0x14, 0xb4, 0x97, 0xe1, 0xc3, 0x43, 0x18, 0x0c, 0x37, 0x51, 
0x98, 0x84, 0x83, 0xbf,
+       0x1e, 0xc0, 0xe9, 0x28, 0x0c, 0x02, 0x6f, 0x99, 0xf8, 0x61, 0x30, 0x8f, 
0xc2, 0x8d, 0x17, 0x25,
+       0xbe, 0x17, 0xab, 0x4f, 0xa1, 0xe1, 0xc7, 0xce, 0xca, 0x8f, 0x92, 0x5d, 
0xbf, 0xf2, 0xa2, 0xf2,
+       0x55, 0x43, 0x1c, 0xf9, 0xf1, 0x98, 0x86, 0xea, 0x4f, 0xa1, 0xe5, 0x6e, 
0x93, 0xd0, 0xa1, 0x85,
+       0xfc, 0xa4, 0x7f, 0xc0, 0x56, 0x20, 0x68, 0xc4, 0x88, 0xfa, 0x4b, 0x38, 
0x7e, 0xe3, 0xc6, 0x4e,
+       0x99, 0x74, 0xc4, 0xa4, 0x0e, 0xc2, 0x5a, 0xc1, 0x7b, 0x0e, 0xcd, 0xc8, 
0x73, 0x57, 0x4e, 0x18,
+       0xac, 0x77, 0xfd, 0x2a, 0x33, 0x1a, 0x04, 0x98, 0x38, 0x56, 0x07, 0x40, 
0x6c, 0xa7, 0x20, 0x34,
+       0x98, 0xd0, 0x42, 0x50, 0x64, 0x9c, 0x6f, 0xe0, 0x51, 0x12, 0xb9, 0x41, 
0xec, 0xb2, 0xf7, 0x8e,
+       0x1f, 0x87, 0x6b, 0x97, 0xbe, 0xfa, 0x35, 0xe4, 0x76, 0xc4, 0x69, 0xc9, 
0x68, 0x64, 0x36, 0xb5,
+       0x0f, 0x47, 0x4b, 0x37, 0x71, 0xd7, 0xe1, 0x7d, 0xbf, 0x8e, 0xb4, 0xa6, 
0xc8, 0x86, 0xea, 0x63,
+       0x38, 0x8c, 0x97, 0x6f, 0xbc, 0x07, 0xb7, 0x7f, 0xc8, 0x86, 0x74, 0x34, 
0xd8, 0xc0, 0xb1, 0x95,
+       0xb8, 0x89, 0xf7, 0xe0, 0x05, 0xc9, 0x95, 0x1b, 0xac, 0xd6, 0x9e, 0xfa, 
0x73, 0xe8, 0x2c, 0xf3,
+       0xb0, 0x39, 0xfe, 0x8a, 0x63, 0xd4, 0x14, 0xed, 0x02, 0x34, 0x56, 0x6a, 
0x17, 0x0e, 0xd0, 0x72,
+       0xc0, 0xbe, 0xe0, 0x97, 0xfa, 0x15, 0x34, 0x63, 0xff, 0x3e, 0x70, 0x93, 
0x6d, 0xe4, 0xf1, 0x79,
+       0x5b, 0x2f, 0x61, 0x68, 0x65, 0x88, 0x28, 0x8c, 0x83, 0xff, 0x56, 0xa0, 
0x99, 0x1b, 0xd4, 0xaf,
+       0xd1, 0xe3, 0x70, 0xbd, 0x7d, 0x08, 0x62, 0xdc, 0xa6, 0x8a, 0xb3, 0x8e, 
0x87, 0x23, 0x1e, 0x4f,
+       0xbd, 0xc4, 0x1d, 0xa3, 0xf3, 0x22, 0xb3, 0xab, 0x0a, 0x54, 0xe3, 0x3f, 
0xac, 0x79, 0xcf, 0xa6,
+       0xa0, 0x4f, 0xf5, 0x37, 0x00, 0x1b, 0x37, 0x72, 0x1f, 0xbc, 0xc4, 0x8b, 
0x62, 0xdc, 0x95, 0xe6,
+       0xf7, 0x86, 0xda, 0x5b, 0x0c, 0xc6, 0xd2, 0x9d, 0x67, 0x16, 0x51, 0x22, 
0xa9, 0xbf, 0x83, 0xee,
+       0x72, 0x1b, 0xc5, 0x61, 0xe4, 0xdc, 0x61, 0xf0, 0xc2, 0x68, 0xc7, 0xf1, 
0x6c, 0xbd, 0xec, 0x0e,
+       0x47, 0x0c, 0x5f, 0x48, 0x54, 0x74, 0x96, 0xe5, 0xa1, 0xfa, 0x5b, 0xe8, 
0xc4, 0x59, 0x98, 0xec,
+       0xdd, 0xc6, 0xe3, 0xf0, 0x76, 0x71, 0x96, 0x55, 0x46, 0xc5, 0x3e, 0x69, 
0xf0, 0xa7, 0x3a, 0x74,
+       0xf7, 0x4f, 0x43, 0x19, 0x0a, 0xa3, 0x95, 0x1f, 0xb8, 0x6b, 0x0e, 0x6b, 
0x47, 0x64, 0x43, 0xf5,
+       0x17, 0xd0, 0x65, 0x55, 0xf9, 0xc1, 0x32, 0xe2, 0x25, 0x52, 0xf5, 0x75, 
0x08, 0x35, 0x32, 0x90,
+       0x68, 0x4b, 0x37, 0xf6, 0x9c, 0xd8, 0x0b, 0x62, 0x3f, 0xf1, 0xdf, 0x7a, 
0xa9, 0xba, 0x3a, 0x84,
+       0x5a, 0x19, 0xa8, 0x7e, 0x01, 0x10, 0x7b, 0x6e, 0xb4, 0x7c, 0xe3, 0xde, 
0xae, 0x3d, 0x3e, 0x23,
+       0xea, 0xb8, 0x40, 0xd4, 0x67, 0xd0, 0xc0, 0x13, 0x46, 0x5e, 0xb0, 0xdc, 
0xf1, 0x59, 0x50, 0x9e,
+       0xd9, 0x98, 0x6c, 0xc1, 0x76, 0xbd, 0xe6, 0x99, 0x87, 0xec, 0x64, 0x3e, 
0x66, 0x1d, 0x61, 0xf2,
+       0xbc, 0x55, 0x2a, 0xfb, 0x74, 0xa4, 0xfe, 0x0c, 0xda, 0x2b, 0x3f, 0xde, 
0xac, 0xdd, 0x9d, 0x13,
+       0xfb, 0x7f, 0xf4, 0x58, 0xd1, 0x1d, 0xd1, 0x4a, 0x31, 0x0b, 0x21, 0xf5, 
0x14, 0xea, 0xb8, 0x86,
+       0xb7, 0xee, 0x37, 0x39, 0x83, 0x72, 0x40, 0x15, 0x27, 0x13, 0xec, 0x04, 
0x98, 0xa3, 0x3e, 0xb0,
+       0x0d, 0x24, 0x34, 0x43, 0x84, 0x08, 0x52, 0xab, 0x92, 0xd0, 0x92, 0x04, 
0x09, 0x31, 0xe1, 0x33,
+       0x68, 0x6e, 0x22, 0x6f, 0xe9, 0xc7, 0x54, 0x1d, 0x6d, 0xde, 0xb7, 0x00, 
0x68, 0xd7, 0x78, 0xe9,
+       0xe2, 0x49, 0x3a, 0x6c, 0x91, 0x03, 0xf5, 0x73, 0x80, 0x84, 0xce, 0x23, 
0xd7, 0xec, 0xf2, 0x9a,
+       0x4d, 0x46, 0x78, 0x49, 0x3c, 0x4d, 0x5a, 0x38, 0x92, 0x70, 0xcc, 0x84, 
0x56, 0x8a, 0x31, 0x65,
+       0xaf, 0xc0, 0x95, 0xf7, 0x0a, 0x1c, 0x23, 0xf8, 0x2e, 0xf2, 0x79, 0xbd, 
0x7e, 0x4f, 0xda, 0xb2,
+       0xb1, 0xfa, 0x6b, 0x38, 0x59, 0x79, 0x77, 0x7e, 0xe0, 0x27, 0xde, 0x7a, 
0xe7, 0xe4, 0x34, 0x95,
+       0x69, 0x6a, 0x61, 0xba, 0xce, 0x26, 0x9c, 0x41, 0x2f, 0x8d, 0xd0, 0x72, 
0xed, 0xc6, 0xb1, 0xf4,
+       0xe8, 0x84, 0x3d, 0x3a, 0x96, 0x86, 0x11, 0xe1, 0xec, 0xd5, 0x0b, 0xa8, 
0x25, 0x24, 0xcf, 0x53,
+       0x16, 0x75, 0x3b, 0xab, 0x05, 0x16, 0x27, 0x5b, 0x06, 0x7f, 0xa9, 0x40, 
0xab, 0x84, 0xa6, 0x85,
+       0x5c, 0xc9, 0x0b, 0x59, 0x85, 0x1a, 0x6f, 0x20, 0xcb, 0x8c, 0xbf, 0x31, 
0xe9, 0xd5, 0xc8, 0xdb,
+       0xb0, 0xd0, 0xba, 0x2f, 0x6b, 0x43, 0xe1, 0x6d, 0x04, 0x01, 0xe5, 0xe2, 
0xad, 0xfd, 0x48, 0xf1,
+       0x9e, 0x41, 0x13, 0xdb, 0xe5, 0x26, 0x0c, 0x48, 0xd8, 0xf5, 0x8f, 0x78, 
0x57, 0x98, 0x07, 0xff,
+       0xa8, 0x80, 0xf2, 0x7e, 0x11, 0x97, 0x84, 0x57, 0xd9, 0x13, 0xde, 0x5e, 
0xf6, 0x0f, 0x3e, 0x99,
+       0xfd, 0x6a, 0x39, 0xfb, 0x58, 0x43, 0x79, 0x4b, 0x70, 0x38, 0x5e, 0xb2, 
0xa9, 0x76, 0x72, 0x94,
+       0x43, 0x83, 0x29, 0x26, 0xa3, 0x0c, 0xb8, 0xec, 0xa7, 0x0d, 0x02, 0x38, 
0xd2, 0xa8, 0xa0, 0x52,
+       0x3a, 0x64, 0x53, 0x6d, 0x2e, 0xf3, 0x44, 0x64, 0x61, 0x3c, 0x2a, 0xc2, 
0x38, 0xf8, 0x7b, 0x05,
+       0x3a, 0x7b, 0x5d, 0x06, 0xa3, 0x52, 0x8f, 0x93, 0x1d, 0xba, 0x57, 0xe1, 
0xd0, 0x9e, 0xee, 0x37,
+       0x21, 0x6c, 0x2e, 0x68, 0x13, 0x92, 0xf2, 0xde, 0x86, 0x07, 0xef, 0x6f, 
0x88, 0x65, 0x72, 0xe7,
+       0x7b, 0xeb, 0x15, 0x9b, 0x65, 0x33, 0xc4, 0x32, 0x61, 0x88, 0xec, 0xf1, 
0xc0, 0x86, 0x3a, 0xaf,
+       0xa7, 0x02, 0x1c, 0x9a, 0xe7, 0xaf, 0xf4, 0x91, 0xad, 0xfc, 0x84, 0xbe, 
0x85, 0x3e, 0x32, 0xc5,
+       0x58, 0xa9, 0xa8, 0x8f, 0xa0, 0x27, 0xbf, 0x9d, 0xb9, 0x30, 0xc9, 0x6e, 
0x98, 0x33, 0xe5, 0x40,
+       0x6d, 0x42, 0x5d, 0x13, 0x42, 0xbb, 0x51, 0xaa, 0x6a, 0x03, 0x6a, 0x13, 
0xc3, 0xb2, 0x95, 0x9a,
+       0x7a, 0x04, 0xd5, 0xa9, 0x36, 0x57, 0xea, 0x83, 0x29, 0xd4, 0x2f, 0x22, 
0xa9, 0x91, 0xc3, 0xf0,
+       0xee, 0x2e, 0xf6, 0x12, 0x3e, 0x4b, 0x4d, 0xa4, 0x23, 0x0a, 0xc4, 0x0a, 
0xd3, 0x9a, 0x36, 0x33,
+       0xfe, 0xc6, 0x26, 0x58, 0x8b, 0xc2, 0x77, 0x59, 0xc7, 0x46, 0x41, 0x85, 
0xef, 0x04, 0x23, 0x83,
+       0xaf, 0xa1, 0x8a, 0x03, 0xbc, 0x20, 0xeb, 0x6f, 0xdd, 0xf5, 0xd6, 0x4b, 
0xef, 0x84, 0x76, 0x2a,
+       0xab, 0xd7, 0x84, 0x09, 0x69, 0x1a, 0x8c, 0x41, 0x21, 0x89, 0xdd, 0x62, 
0xdb, 0x4b, 0xef, 0xf6,
+       0x5d, 0x1e, 0xf5, 0x4a, 0x49, 0xbc, 0x28, 0x90, 0xbb, 0x6d, 0xc0, 0xf7, 
0x56, 0x8c, 0x5e, 0x50,
+       0x58, 0x0a, 0x60, 0xf0, 0x0a, 0x5a, 0xd7, 0x7e, 0xe4, 0x4d, 0xbd, 0x38, 
0x76, 0xef, 0xbd, 0x8f,
+       0x2e, 0xf0, 0x25, 0x1c, 0xbf, 0x8b, 0xdc, 0xcd, 0xc6, 0x5b, 0x39, 0x0f, 
0x92, 0xc6, 0x87, 0x69,
+       0x8b, 0x6e, 0x0a, 0xa7, 0x93, 0x07, 0x7f, 0xc3, 0xd2, 0x2a, 0x39, 0x8a, 
0x5d, 0x64, 0xef, 0x14,
+       0xad, 0x21, 0xa9, 0x6a, 0x55, 0x3e, 0x84, 0xfa, 0x2b, 0x7c, 0x6f, 0x44, 
0x11, 0x36, 0x4d, 0x49,
+       0x3c, 0xf8, 0x90, 0x08, 0x6c, 0x97, 0x0b, 0x66, 0x8f, 0x8f, 0xd2, 0x8c, 
0x6a, 0xf1, 0xf8, 0x28,
+       0x78, 0x43, 0x68, 0x93, 0xd0, 0xdd, 0x28, 0x25, 0xc9, 0x2b, 0x6e, 0x6f, 
0xd9, 0x96, 0x24, 0xf0,
+       0x60, 0xf0, 0x9f, 0x0a, 0x40, 0x61, 0xa3, 0xf4, 0x70, 0x51, 0x54, 0x4a, 
0xf5, 0xce, 0x08, 0x69,
+       0xf0, 0x36, 0x0c, 0xd7, 0xb9, 0xb7, 0xb4, 0x77, 0x93, 0x90, 0xec, 0xc0, 
0xed, 0x38, 0x89, 0xfc,
+       0xe0, 0xbe, 0xe4, 0x1c, 0xb6, 0x4d, 0x89, 0xe5, 0x94, 0x60, 0xfb, 0x70, 
0xeb, 0x95, 0x5d, 0x53,
+       0x45, 0x4b, 0x62, 0x92, 0x82, 0x4a, 0xbe, 0xdd, 0x25, 0x5e, 0x9c, 0x32, 
0xea, 0x1c, 0x6b, 0x60,
+       0x28, 0x5f, 0x63, 0x15, 0x6e, 0xa9, 0x7b, 0x4b, 0x06, 0x15, 0x5f, 0x05, 
0xef, 0x1a, 0xc6, 0x24,
+       0x85, 0xf2, 0x88, 0x57, 0x56, 0x7a, 0x49, 0xf1, 0xf7, 0xe0, 0x7f, 0x07, 
0xf0, 0x34, 0x6b, 0x4c,
+       0x26, 0xea, 0x85, 0x9f, 0x4c, 0x5a, 0x74, 0xbf, 0xe5, 0x7b, 0xf5, 0x7d, 
0xdf, 0x2b, 0x1f, 0xfa,
+       0xfe, 0x23, 0xa7, 0xc7, 0x76, 0xe1, 0x07, 0x49, 0xe9, 0xe8, 0x3d, 0xd1, 
0x40, 0x20, 0x4b, 0xc9,
+       0x49, 0xba, 0x7c, 0x29, 0x7b, 0xb2, 0x6d, 0x36, 0x45, 0x4f, 0x9a, 0x8a, 
0x0c, 0xc6, 0xf8, 0x9e,
+       0x52, 0x68, 0xb1, 0x3d, 0x72, 0x1d, 0xc9, 0x3d, 0xd1, 0x45, 0xbc, 0xcc, 
0xfc, 0x7d, 0x9a, 0xad,
+       0x43, 0xce, 0xd6, 0x97, 0xc3, 0x4f, 0x1e, 0x71, 0x98, 0x7d, 0x94, 0x6e, 
0x83, 0x1f, 0xa0, 0x5d,
+       0x46, 0xa9, 0x1f, 0x58, 0xb6, 0x30, 0x66, 0x97, 0xd8, 0x1b, 0xb0, 0xda, 
0xcf, 0x4d, 0x73, 0x82,
+       0x9d, 0x01, 0xab, 0xdd, 0x98, 0xd9, 0xd8, 0x0b, 0x4e, 0xe0, 0x58, 0xe8, 
0x73, 0x5d, 0xb3, 0xf5,
+       0xb1, 0x93, 0xf2, 0xaa, 0xf8, 0x2e, 0x6b, 0xe7, 0x20, 0xd1, 0x6a, 0x34, 
0x73, 0xb6, 0x98, 0x4c,
+       0xb0, 0x3d, 0xfc, 0x0b, 0x95, 0xf5, 0xdd, 0xd6, 0x8b, 0x76, 0xfc, 0x4e, 
0xc2, 0x57, 0x49, 0x59,
+       0x59, 0x20, 0x5f, 0x4f, 0x85, 0x3b, 0x1f, 0x79, 0xe2, 0x0d, 0xe0, 0x20, 
0xcc, 0x6e, 0x1e, 0xf5,
+       0xc3, 0xb3, 0x09, 0xb4, 0x62, 0x6c, 0x6b, 0x6e, 0x74, 0x9f, 0xdd, 0x41, 
0xcf, 0x3e, 0x1d, 0x01,
+       0xc1, 0x3c, 0x7a, 0xff, 0xcb, 0x32, 0xba, 0x8f, 0xd3, 0xb7, 0xcf, 0x11, 
0xd7, 0x0f, 0x9a, 0x9e,
+       0x00, 0x7d, 0x3a, 0xe4, 0xc4, 0xa1, 0xbc, 0x66, 0x70, 0x68, 0xa1, 0x1f, 
0x8f, 0x80, 0xbe, 0x1c,
+       0xf4, 0x45, 0x4a, 0xaa, 0x8e, 0x23, 0x73, 0x73, 0xf6, 0x67, 0x6c, 0xe9, 
0x7b, 0x4f, 0x40, 0x8e,
+       0xa0, 0x3e, 0xc9, 0xbb, 0xab, 0x31, 0xb3, 0x74, 0x61, 0x63, 0x0c, 0xf1, 
0x7b, 0x31, 0x1f, 0x63,
+       0x90, 0x30, 0x8c, 0xf8, 0x3d, 0x46, 0x0e, 0x7e, 0x57, 0x25, 0xce, 0x9c, 
0x1a, 0xb5, 0xda, 0xa9,
+       0x2e, 0x2e, 0x75, 0xa5, 0xae, 0x76, 0xa0, 0x69, 0xda, 0x57, 0xba, 0x70, 
0xc6, 0xd3, 0x89, 0x72,
+       0x48, 0xac, 0x91, 0xa0, 0x10, 0x2b, 0x47, 0x14, 0xdd, 0xb1, 0x30, 0xe7, 
0x4a, 0x83, 0x5b, 0xf3,
+       0xc4, 0xd6, 0x85, 0xd2, 0x2c, 0xf1, 0xc7, 0x13, 0x05, 0x88, 0x33, 0xd2, 
0x30, 0x03, 0xad, 0xb3,
+       0x7f, 0x57, 0xb1, 0xa5, 0xe2, 0x5d, 0x8d, 0xdd, 0x7d, 0x2e, 0x8c, 0xa9, 
0x61, 0x1b, 0xaf, 0x75,
+       0x87, 0xf2, 0xaa, 0x6b, 0x33, 0x74, 0x51, 0x85, 0x6e, 0x09, 0xbe, 0xc1, 
0x0d, 0x2a, 0xfb, 0xd8,
+       0xe8, 0x4a, 0x13, 0x32, 0xf3, 0x05, 0x66, 0x5d, 0x99, 0xe8, 0x6f, 0x55, 
0xed, 0x41, 0xa7, 0x00,
+       0x65, 0xea, 0xf7, 0xe6, 0x4e, 0x4c, 0x14, 0x48, 0x7d, 0x7f, 0xee, 0xc5, 
0xc4, 0xd4, 0x6c, 0x3c,
+       0xd1, 0x29, 0x28, 0x05, 0x38, 0x36, 0x17, 0xe7, 0x13, 0x3a, 0x5b, 0x0b, 
0x8e, 0x32, 0xdf, 0x1a,
+       0x2c, 0x40, 0xf2, 0x88, 0x4f, 0x47, 0x7e, 0x68, 0x23, 0x3a, 0x2c, 0xd0, 
0xb9, 0xa5, 0x0b, 0x2d,
+       0x9a, 0x80, 0x1b, 0xeb, 0x97, 0x88, 0xb7, 0xf9, 0x7e, 0xa2, 0x2d, 0x3b, 
0xc4, 0x90, 0x1b, 0x75,
+       0x39, 0xd8, 0x72, 0xf9, 0x63, 0xf5, 0x18, 0x5a, 0xe7, 0xc6, 0xa5, 0x93, 
0xcd, 0x78, 0x9a, 0x01,
+       0x63, 0x7d, 0x64, 0x4c, 0xb5, 0x89, 0xf2, 0x8c, 0x8e, 0xf4, 0x4a, 0x7b, 
0xad, 0x39, 0xd6, 0x77,
+       0x13, 0xc7, 0x36, 0xa6, 0xba, 0xa2, 0xe0, 0xcd, 0xa6, 0xee, 0x41, 0x96, 
0xad, 0x4d, 0xe7, 0x4a,
+       0x6f, 0x8f, 0xca, 0x89, 0x55, 0xe9, 0xf4, 0x0c, 0x2d, 0x6c, 0x23, 0xc5, 
0x4e, 0x78, 0x0b, 0x3c,
+       0x45, 0x56, 0x2f, 0xa7, 0xa5, 0x1a, 0x7b, 0x44, 0xdf, 0xb3, 0xc5, 0xf4, 
0x1c, 0x7d, 0x79, 0x5c,
+       0xba, 0x97, 0x9f, 0xe4, 0x15, 0xd4, 0x2f, 0xae, 0xdf, 0xe7, 0xe9, 0xc4, 
0x05, 0x12, 0x3e, 0x53,
+       0xdb, 0xd0, 0x98, 0x2e, 0x26, 0xb6, 0x61, 0xe9, 0xb6, 0xf2, 0xf9, 0xd9, 
0x0f, 0xd0, 0xb0, 0xbc,
+       0xb7, 0x1e, 0xbe, 0x18, 0x77, 0x14, 0xd8, 0xc5, 0xec, 0xdb, 0x99, 0x79, 
0x3d, 0x73, 0x2c, 0xfd,
+       0xb5, 0x2e, 0x0c, 0xfb, 0x46, 0xe6, 0xf9, 0x42, 0xb3, 0xb5, 0x49, 0x81, 
0x71, 0x9e, 0x75, 0x21,
+       0x4c, 0x51, 0x60, 0x07, 0x34, 0xfb, 0x5a, 0x13, 0x33, 0xf4, 0xae, 0x40, 
0xab, 0x67, 0xff, 0xac,
+       0x41, 0xef, 0x83, 0xaa, 0xa2, 0xf9, 0x97, 0xba, 0xed, 0x68, 0x36, 0x9e, 
0xe6, 0x7c, 0x61, 0xeb,
+       0x16, 0xee, 0xf3, 0x1c, 0x9e, 0x10, 0x76, 0x8e, 0x51, 0x72, 0x84, 0x79, 
0xed, 0x18, 0x63, 0x7d,
+       0x66, 0x1b, 0x17, 0x06, 0x9e, 0xb0, 0x42, 0x9d, 0x82, 0x8c, 0x23, 0x72, 
0xc4, 0xbc, 0xb4, 0x70,
+       0xbb, 0x2f, 0xe0, 0x19, 0x23, 0x13, 0x03, 0x69, 0x98, 0x97, 0x0b, 0x93, 
0x1e, 0x1f, 0x73, 0x2c,
+       0x07, 0x03, 0x97, 0xab, 0x62, 0xa9, 0x3e, 0x62, 0xbb, 0x39, 0x59, 0x4c, 
0x67, 0x68, 0x32, 0x5e,
+       0x1b, 0x13, 0x4c, 0x9d, 0x85, 0x4a, 0xc3, 0xb8, 0x16, 0x26, 0x0b, 0x65, 
0xf6, 0x04, 0x4e, 0x18,
+       0x10, 0xa6, 0x65, 0x39, 0x42, 0xbf, 0xd0, 0x85, 0x3e, 0x1b, 0xe9, 0x28, 
0x35, 0x94, 0x3e, 0x19,
+       0xf4, 0xef, 0xe7, 0xa8, 0x19, 0x6c, 0x52, 0xdf, 0xea, 0x37, 0x16, 0x6a, 
0xad, 0x0f, 0xa7, 0x04,
+       0x5f, 0x2c, 0x66, 0xfc, 0xd4, 0xc9, 0x57, 0x6a, 0x50, 0x66, 0xcb, 0x16, 
0x0b, 0x15, 0x98, 0xae,
+       0x61, 0x4c, 0xcb, 0x6b, 0x40, 0x16, 0x02, 0x63, 0x36, 0xd6, 0xbf, 0x67, 
0xf7, 0x51, 0x92, 0x18,
+       0x42, 0xc2, 0x48, 0xdd, 0x9a, 0xb8, 0x91, 0xcc, 0x76, 0x76, 0x12, 0x3c, 
0xdd, 0x48, 0x1f, 0x2f,
+       0x84, 0x9e, 0x6f, 0xd7, 0xc9, 0x16, 0xc9, 0x4d, 0x16, 0xaa, 0x16, 0x45, 
0xc7, 0x98, 0xa5, 0x2f,
+       0xc6, 0x66, 0xce, 0x3d, 0xce, 0x4e, 0x6d, 0x8d, 0xae, 0xf4, 0xa9, 0x66, 
0xa1, 0x3a, 0xd3, 0x75,
+       0x53, 0xc0, 0xb9, 0x36, 0xec, 0x2b, 0x47, 0x13, 0x18, 0xdc, 0x5e, 0xe6, 
0x88, 0xb5, 0xc0, 0x78,
+       0x3a, 0xb6, 0x86, 0x25, 0x60, 0xa1, 0x46, 0xb1, 0x1a, 0x4b, 0xe8, 0xcd, 
0x1c, 0xc1, 0x93, 0x2c,
+       0x16, 0x4c, 0x2a, 0x87, 0xf9, 0x14, 0x7f, 0x1f, 0x40, 0x6e, 0xb1, 0x50, 
0xb1, 0xe9, 0x74, 0xc9,
+       0x94, 0xd3, 0x1f, 0x67, 0x01, 0xa3, 0xa1, 0x8c, 0xc2, 0x13, 0x12, 0x28, 
0x41, 0x8b, 0xb1, 0x6d,
+       0xa1, 0x8a, 0xd3, 0xdc, 0xa0, 0xa0, 0xac, 0x72, 0xa8, 0x9f, 0x9e, 0x0d, 
0xa0, 0x99, 0x5f, 0x02,
+       0x74, 0xcf, 0x60, 0x31, 0xa1, 0x8a, 0x48, 0xdd, 0xba, 0xad, 0x61, 0x05, 
0x69, 0x4a, 0xe5, 0x7c,
+       0x00, 0x2f, 0xc2, 0xe8, 0x7e, 0xe8, 0x6e, 0x5c, 0xfc, 0xd1, 0x37, 0xc4, 
0x77, 0xcb, 0x12, 0x7f,
+       0x20, 0x0d, 0x5d, 0xf9, 0x0b, 0x41, 0xfe, 0xb3, 0xe7, 0xf6, 0x90, 0xff, 
0x7c, 0xf3, 0xff, 0x00,
+       0x00, 0x00, 0xff, 0xff, 0x30, 0x15, 0x1a, 0xdd, 0x03, 0x12, 0x00, 0x00,
 }

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/message/requests.pb.go
----------------------------------------------------------------------
diff --git a/message/requests.pb.go b/message/requests.pb.go
index c0ca693..8a1415b 100644
--- a/message/requests.pb.go
+++ b/message/requests.pb.go
@@ -98,10 +98,12 @@ func (*TypeInfoRequest) Descriptor() ([]byte, []int) { 
return fileDescriptor1, [
 
 // Request for Meta#prepareAndExecute(Meta.StatementHandle, String, long, 
Meta.PrepareCallback)
 type PrepareAndExecuteRequest struct {
-       ConnectionId string 
`protobuf:"bytes,1,opt,name=connection_id,json=connectionId" 
json:"connection_id,omitempty"`
-       Sql          string `protobuf:"bytes,2,opt,name=sql" 
json:"sql,omitempty"`
-       MaxRowCount  uint64 
`protobuf:"varint,3,opt,name=max_row_count,json=maxRowCount" 
json:"max_row_count,omitempty"`
-       StatementId  uint32 
`protobuf:"varint,4,opt,name=statement_id,json=statementId" 
json:"statement_id,omitempty"`
+       ConnectionId      string 
`protobuf:"bytes,1,opt,name=connection_id,json=connectionId" 
json:"connection_id,omitempty"`
+       Sql               string `protobuf:"bytes,2,opt,name=sql" 
json:"sql,omitempty"`
+       MaxRowCount       uint64 
`protobuf:"varint,3,opt,name=max_row_count,json=maxRowCount" 
json:"max_row_count,omitempty"`
+       StatementId       uint32 
`protobuf:"varint,4,opt,name=statement_id,json=statementId" 
json:"statement_id,omitempty"`
+       MaxRowsTotal      int64  
`protobuf:"varint,5,opt,name=max_rows_total,json=maxRowsTotal" 
json:"max_rows_total,omitempty"`
+       FirstFrameMaxSize int32  
`protobuf:"varint,6,opt,name=first_frame_max_size,json=firstFrameMaxSize" 
json:"first_frame_max_size,omitempty"`
 }
 
 func (m *PrepareAndExecuteRequest) Reset()                    { *m = 
PrepareAndExecuteRequest{} }
@@ -114,6 +116,7 @@ type PrepareRequest struct {
        ConnectionId string 
`protobuf:"bytes,1,opt,name=connection_id,json=connectionId" 
json:"connection_id,omitempty"`
        Sql          string `protobuf:"bytes,2,opt,name=sql" 
json:"sql,omitempty"`
        MaxRowCount  uint64 
`protobuf:"varint,3,opt,name=max_row_count,json=maxRowCount" 
json:"max_row_count,omitempty"`
+       MaxRowsTotal int64  
`protobuf:"varint,4,opt,name=max_rows_total,json=maxRowsTotal" 
json:"max_rows_total,omitempty"`
 }
 
 func (m *PrepareRequest) Reset()                    { *m = PrepareRequest{} }
@@ -127,6 +130,7 @@ type FetchRequest struct {
        StatementId      uint32 
`protobuf:"varint,2,opt,name=statement_id,json=statementId" 
json:"statement_id,omitempty"`
        Offset           uint64 `protobuf:"varint,3,opt,name=offset" 
json:"offset,omitempty"`
        FetchMaxRowCount uint32 
`protobuf:"varint,4,opt,name=fetch_max_row_count,json=fetchMaxRowCount" 
json:"fetch_max_row_count,omitempty"`
+       FrameMaxSize     int32  
`protobuf:"varint,5,opt,name=frame_max_size,json=frameMaxSize" 
json:"frame_max_size,omitempty"`
 }
 
 func (m *FetchRequest) Reset()                    { *m = FetchRequest{} }
@@ -204,7 +208,7 @@ func (m *ConnectionSyncRequest) GetConnProps() 
*ConnectionProperties {
 type ExecuteRequest struct {
        StatementHandle    *StatementHandle 
`protobuf:"bytes,1,opt,name=statementHandle" json:"statementHandle,omitempty"`
        ParameterValues    []*TypedValue    
`protobuf:"bytes,2,rep,name=parameter_values,json=parameterValues" 
json:"parameter_values,omitempty"`
-       MaxRowCount        uint64           
`protobuf:"varint,3,opt,name=max_row_count,json=maxRowCount" 
json:"max_row_count,omitempty"`
+       FirstFrameMaxSize  uint64           
`protobuf:"varint,3,opt,name=first_frame_max_size,json=firstFrameMaxSize" 
json:"first_frame_max_size,omitempty"`
        HasParameterValues bool             
`protobuf:"varint,4,opt,name=has_parameter_values,json=hasParameterValues" 
json:"has_parameter_values,omitempty"`
 }
 
@@ -266,6 +270,53 @@ func (m *RollbackRequest) String() string            { 
return proto.CompactTextS
 func (*RollbackRequest) ProtoMessage()               {}
 func (*RollbackRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, 
[]int{18} }
 
+// Request to prepare and execute a collection of sql statements.
+type PrepareAndExecuteBatchRequest struct {
+       ConnectionId string   
`protobuf:"bytes,1,opt,name=connection_id,json=connectionId" 
json:"connection_id,omitempty"`
+       StatementId  uint32   
`protobuf:"varint,2,opt,name=statement_id,json=statementId" 
json:"statement_id,omitempty"`
+       SqlCommands  []string 
`protobuf:"bytes,3,rep,name=sql_commands,json=sqlCommands" 
json:"sql_commands,omitempty"`
+}
+
+func (m *PrepareAndExecuteBatchRequest) Reset()                    { *m = 
PrepareAndExecuteBatchRequest{} }
+func (m *PrepareAndExecuteBatchRequest) String() string            { return 
proto.CompactTextString(m) }
+func (*PrepareAndExecuteBatchRequest) ProtoMessage()               {}
+func (*PrepareAndExecuteBatchRequest) Descriptor() ([]byte, []int) { return 
fileDescriptor1, []int{19} }
+
+// Each command is a list of TypedValues
+type UpdateBatch struct {
+       ParameterValues []*TypedValue 
`protobuf:"bytes,1,rep,name=parameter_values,json=parameterValues" 
json:"parameter_values,omitempty"`
+}
+
+func (m *UpdateBatch) Reset()                    { *m = UpdateBatch{} }
+func (m *UpdateBatch) String() string            { return 
proto.CompactTextString(m) }
+func (*UpdateBatch) ProtoMessage()               {}
+func (*UpdateBatch) Descriptor() ([]byte, []int) { return fileDescriptor1, 
[]int{20} }
+
+func (m *UpdateBatch) GetParameterValues() []*TypedValue {
+       if m != nil {
+               return m.ParameterValues
+       }
+       return nil
+}
+
+type ExecuteBatchRequest struct {
+       ConnectionId string         
`protobuf:"bytes,1,opt,name=connection_id,json=connectionId" 
json:"connection_id,omitempty"`
+       StatementId  uint32         
`protobuf:"varint,2,opt,name=statement_id,json=statementId" 
json:"statement_id,omitempty"`
+       Updates      []*UpdateBatch `protobuf:"bytes,3,rep,name=updates" 
json:"updates,omitempty"`
+}
+
+func (m *ExecuteBatchRequest) Reset()                    { *m = 
ExecuteBatchRequest{} }
+func (m *ExecuteBatchRequest) String() string            { return 
proto.CompactTextString(m) }
+func (*ExecuteBatchRequest) ProtoMessage()               {}
+func (*ExecuteBatchRequest) Descriptor() ([]byte, []int) { return 
fileDescriptor1, []int{21} }
+
+func (m *ExecuteBatchRequest) GetUpdates() []*UpdateBatch {
+       if m != nil {
+               return m.Updates
+       }
+       return nil
+}
+
 func init() {
        proto.RegisterType((*CatalogsRequest)(nil), "CatalogsRequest")
        proto.RegisterType((*DatabasePropertyRequest)(nil), 
"DatabasePropertyRequest")
@@ -286,54 +337,66 @@ func init() {
        proto.RegisterType((*SyncResultsRequest)(nil), "SyncResultsRequest")
        proto.RegisterType((*CommitRequest)(nil), "CommitRequest")
        proto.RegisterType((*RollbackRequest)(nil), "RollbackRequest")
+       proto.RegisterType((*PrepareAndExecuteBatchRequest)(nil), 
"PrepareAndExecuteBatchRequest")
+       proto.RegisterType((*UpdateBatch)(nil), "UpdateBatch")
+       proto.RegisterType((*ExecuteBatchRequest)(nil), "ExecuteBatchRequest")
 }
 
 var fileDescriptor1 = []byte{
-       // 730 bytes of a gzipped FileDescriptorProto
-       0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xc4, 0x56, 
0x4b, 0x6f, 0xd3, 0x40,
-       0x10, 0x96, 0x9b, 0xf4, 0x91, 0xc9, 0xa3, 0xa9, 0xfb, 0x20, 0x2a, 0x97, 
0xd4, 0x08, 0xa9, 0x07,
-       0xb0, 0x50, 0xa9, 0x4a, 0x55, 0x09, 0x24, 0x30, 0x45, 0x54, 0xe2, 0x11, 
0x9c, 0x8a, 0xab, 0xb5,
-       0xd9, 0x6c, 0x5a, 0xab, 0xf6, 0xae, 0xeb, 0x5d, 0xb7, 0xcd, 0x2f, 0x81, 
0x0b, 0xbf, 0x80, 0xbf,
-       0xc3, 0x89, 0x33, 0x3f, 0x84, 0xdd, 0xb5, 0xe3, 0x26, 0x4d, 0x0e, 0x75, 
0x55, 0xc4, 0x29, 0x99,
-       0x99, 0x6f, 0x5e, 0xdf, 0xee, 0xcc, 0x1a, 0x1a, 0x31, 0x39, 0x4f, 0x08, 
0x17, 0xdc, 0x8e, 0x62,
-       0x26, 0xd8, 0x66, 0x0d, 0xb3, 0x30, 0x64, 0x34, 0x95, 0xac, 0x3d, 0x58, 
0x76, 0x90, 0x40, 0x01,
-       0x3b, 0xe1, 0x6e, 0x8a, 0x33, 0x1f, 0x41, 0x1d, 0x33, 0x4a, 0x09, 0x16, 
0x3e, 0xa3, 0x9e, 0xdf,
-       0x6f, 0x19, 0x6d, 0x63, 0xbb, 0xe2, 0xd6, 0xae, 0x95, 0x47, 0x7d, 0xeb, 
0x15, 0x3c, 0x78, 0x2b,
-       0xfd, 0x7a, 0x88, 0x93, 0x4e, 0xcc, 0x22, 0x12, 0x8b, 0x61, 0x21, 0xff, 
0x0b, 0x68, 0x74, 0xf1,
-       0x29, 0x09, 0x51, 0x9e, 0xb6, 0x05, 0x8b, 0x38, 0xad, 0x24, 0x73, 0x18, 
0x89, 0xe6, 0x63, 0x68,
-       0x70, 0x8d, 0xf5, 0x22, 0x24, 0x04, 0x89, 0x69, 0x6b, 0x4e, 0x03, 0xea, 
0xa9, 0xb6, 0x93, 0x2a,
-       0xa7, 0xf3, 0x96, 0x66, 0xe4, 0xfd, 0x63, 0x40, 0xfd, 0x18, 0xf5, 0x02, 
0x72, 0x7f, 0x79, 0x9f,
-       0x80, 0x29, 0x54, 0x44, 0x8f, 0xa2, 0x90, 0xe4, 0xd0, 0x34, 0x79, 0x53, 
0x5b, 0x3e, 0x49, 0xc3,
-       0x08, 0xfd, 0x10, 0x2a, 0x62, 0x18, 0x11, 0x2f, 0xf0, 0xb9, 0x68, 0x95, 
0xdb, 0x25, 0x09, 0x5a,
-       0x52, 0x8a, 0x0f, 0x52, 0x36, 0x2d, 0xa8, 0x9f, 0x22, 0xee, 0x5d, 0x03, 
0x16, 0x64, 0x94, 0x25,
-       0xb7, 0x2a, 0x95, 0xc7, 0x23, 0xcc, 0x54, 0x9b, 0x8b, 0x33, 0xda, 0xdc, 
0x87, 0x15, 0xdd, 0xa5,
-       0xf2, 0x2a, 0x76, 0xb0, 0xbf, 0x0c, 0x68, 0x38, 0x2c, 0x48, 0x42, 0xfa, 
0xbf, 0x18, 0xb2, 0x61,
-       0x15, 0xeb, 0x02, 0x26, 0xe1, 0x65, 0x0d, 0x5f, 0x49, 0x4d, 0xe3, 0xf8, 
0xa9, 0xb6, 0xe6, 0x67,
-       0xb4, 0x25, 0xef, 0xb9, 0xe2, 0xe2, 0x88, 0x0e, 0x58, 0x21, 0x3a, 0xbe, 
0x1b, 0xd0, 0xea, 0xc4,
-       0x24, 0x42, 0x31, 0x79, 0x4d, 0xfb, 0x87, 0x57, 0x04, 0x27, 0x82, 0x14, 
0x89, 0x60, 0x36, 0xa1,
-       0xc4, 0xcf, 0x83, 0x8c, 0x18, 0xf5, 0x57, 0x9d, 0x72, 0x88, 0xae, 0xbc, 
0x98, 0x5d, 0x7a, 0x98,
-       0x25, 0x54, 0x68, 0x26, 0xca, 0x6e, 0x55, 0x2a, 0x5d, 0x76, 0xe9, 0x28, 
0x95, 0xb9, 0x05, 0x35,
-       0x2e, 0x90, 0x20, 0x21, 0xa1, 0x42, 0x45, 0x56, 0xdd, 0xd7, 0xdd, 0x6a, 
0xae, 0x93, 0xa5, 0x9d,
-       0x41, 0x23, 0xab, 0xec, 0xdf, 0xd7, 0x63, 0xfd, 0x30, 0xa0, 0xf6, 0x8e, 
0x08, 0x7c, 0x5a, 0x28,
-       0xd7, 0xcd, 0x2e, 0xe6, 0xa6, 0xba, 0x30, 0x37, 0x60, 0x81, 0x0d, 0x06, 
0x9c, 0x8c, 0xb2, 0x66,
-       0x92, 0xf9, 0x14, 0x56, 0x07, 0x2a, 0x9f, 0x37, 0x59, 0x5a, 0xca, 0x43, 
0x53, 0x9b, 0x3e, 0x8e,
-       0xd5, 0xf7, 0x12, 0x36, 0x9c, 0x98, 0xc8, 0xb0, 0xdd, 0x51, 0xec, 0x42, 
0xc7, 0xec, 0xc1, 0xba,
-       0x13, 0x30, 0x7e, 0x37, 0xef, 0x5b, 0xb4, 0x69, 0xfd, 0x34, 0x60, 0xfd, 
0x73, 0x44, 0xa8, 0x93,
-       0xfb, 0x15, 0xca, 0xb0, 0x0b, 0x65, 0x5f, 0x5e, 0x5d, 0x19, 0xb9, 0xb4, 
0x5d, 0xdd, 0x69, 0xdb,
-       0x33, 0x43, 0xd9, 0xea, 0x76, 0x1f, 0x52, 0x11, 0x0f, 0x5d, 0x8d, 0xde, 
0x7c, 0x01, 0x95, 0x5c,
-       0xa5, 0xce, 0xfd, 0x8c, 0x0c, 0xb3, 0xe8, 0xea, 0xaf, 0xb9, 0x06, 0xf3, 
0x17, 0x28, 0x48, 0x48,
-       0x76, 0x17, 0x52, 0xe1, 0x60, 0x6e, 0xdf, 0xd0, 0x6c, 0x2a, 0x3a, 0xee, 
0x56, 0xad, 0x15, 0x4b,
-       0x36, 0x73, 0xb9, 0x3b, 0xa4, 0xb8, 0x60, 0xaf, 0xa0, 0x64, 0x4f, 0x3e, 
0x50, 0x11, 0xd7, 0xb5,
-       0x55, 0x77, 0xd6, 0xed, 0xeb, 0x80, 0xd9, 0x7b, 0xe3, 0xcb, 0xc5, 0x56, 
0x51, 0x40, 0x25, 0x73,
-       0xeb, 0xb7, 0xdc, 0x5b, 0x37, 0xc6, 0xf3, 0x00, 0x96, 0xf3, 0x23, 0x78, 
0x8f, 0x68, 0x3f, 0x20,
-       0x3a, 0x5f, 0x75, 0xa7, 0x69, 0x77, 0x27, 0xf5, 0xee, 0x4d, 0xa0, 0xb9, 
0x07, 0x4d, 0x39, 0x59,
-       0x72, 0xcb, 0xc8, 0x15, 0xe3, 0x69, 0x62, 0x78, 0x46, 0x7e, 0xd5, 0x56, 
0x8b, 0xa4, 0xff, 0x55,
-       0xe9, 0xdc, 0xe5, 0x1c, 0xa4, 0x65, 0x7e, 0xab, 0xd9, 0x7e, 0x06, 0x6b, 
0x6a, 0xcb, 0x4f, 0xc5,
-       0x2f, 0xeb, 0x65, 0x6f, 0x4a, 0x5b, 0x67, 0x32, 0xaa, 0xf5, 0xcd, 0x00, 
0x33, 0xe5, 0x91, 0x27,
-       0x81, 0xe0, 0xf7, 0x3d, 0x83, 0x5b, 0x30, 0xaf, 0x45, 0x5d, 0xac, 0xea, 
0xf0, 0x4b, 0x42, 0xe2,
-       0xa1, 0xe6, 0xc8, 0x4d, 0x2d, 0x63, 0x63, 0x5a, 0x1e, 0x1f, 0x53, 0x6b, 
0x17, 0xea, 0x8e, 0xfc,
-       0x9e, 0xf0, 0x8b, 0x8d, 0x9b, 0xdc, 0xc6, 0x2e, 0x0b, 0x82, 0x1e, 0xc2, 
0x67, 0x45, 0xfc, 0xde,
-       0x58, 0xd0, 0x66, 0xf1, 0x89, 0x8d, 0x22, 0x24, 0xdf, 0x17, 0x1b, 0xa3, 
0x00, 0xfb, 0x82, 0xd8,
-       0xe8, 0x02, 0x09, 0x1f, 0xa3, 0xf4, 0x8b, 0xa6, 0xb7, 0xa0, 0x7f, 0x9e, 
0xff, 0x0d, 0x00, 0x00,
-       0xff, 0xff, 0x79, 0x42, 0x3a, 0x25, 0xf8, 0x08, 0x00, 0x00,
+       // 879 bytes of a gzipped FileDescriptorProto
+       0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xc4, 0x56, 
0xdd, 0x4e, 0xdb, 0x48,
+       0x14, 0x96, 0x49, 0x02, 0xe4, 0x38, 0x09, 0xc1, 0xfc, 0x6c, 0xc4, 0x6a, 
0xa5, 0xe0, 0xfd, 0x11,
+       0x17, 0xbb, 0xde, 0x55, 0x16, 0xb1, 0x08, 0x69, 0x57, 0x5a, 0xbc, 0xa0, 
0x45, 0x2a, 0x6d, 0xea,
+       0xd0, 0xde, 0x5a, 0x13, 0x67, 0x02, 0x16, 0x8e, 0xc7, 0x78, 0xc6, 0x40, 
0x7a, 0xdf, 0x9b, 0xde,
+       0xf5, 0xaa, 0x0f, 0xd1, 0xc7, 0xe8, 0x2b, 0xf4, 0x11, 0x2a, 0xf5, 0xb2, 
0xaf, 0xd0, 0x99, 0xb1,
+       0x63, 0x92, 0x38, 0x55, 0x6b, 0x04, 0xed, 0x55, 0x72, 0xfe, 0xcf, 0xf7, 
0xf9, 0x9c, 0x99, 0x81,
+       0x5a, 0x88, 0x2f, 0x22, 0x4c, 0x19, 0x35, 0x82, 0x90, 0x30, 0xb2, 0x51, 
0x71, 0xc8, 0x60, 0x40,
+       0xfc, 0x58, 0xd2, 0x77, 0x60, 0xc9, 0x44, 0x0c, 0x79, 0xe4, 0x94, 0x5a, 
0xb1, 0x9f, 0xf6, 0x23,
+       0x54, 0x1d, 0xe2, 0xfb, 0xd8, 0x61, 0x2e, 0xf1, 0x6d, 0xb7, 0xd7, 0x50, 
0x9a, 0xca, 0x56, 0xd9,
+       0xaa, 0xdc, 0x28, 0x8f, 0x7a, 0xfa, 0x3f, 0xf0, 0xdd, 0x7f, 0x3c, 0xae, 
0x8b, 0x28, 0x6e, 0x87,
+       0x24, 0xc0, 0x21, 0x1b, 0xe6, 0x8a, 0xbf, 0x84, 0x5a, 0xc7, 0x39, 0xc3, 
0x03, 0x94, 0x96, 0x6d,
+       0xc0, 0x82, 0x13, 0x77, 0x92, 0x04, 0x8c, 0x44, 0xed, 0x67, 0xa8, 0x51, 
0xe9, 0x6b, 0x07, 0x88,
+       0x31, 0x1c, 0xfa, 0x8d, 0x39, 0xe9, 0x50, 0x8d, 0xb5, 0xed, 0x58, 0x99, 
0xad, 0x5b, 0x98, 0x51,
+       0xf7, 0x9d, 0x02, 0xd5, 0x13, 0xd4, 0xf5, 0xf0, 0xdd, 0xd5, 0xfd, 0x15, 
0x34, 0x26, 0x32, 0xda,
+       0x3e, 0x1a, 0xe0, 0xd4, 0x35, 0x2e, 0x5e, 0x97, 0x96, 0x87, 0xdc, 0x30, 
0xf2, 0xfe, 0x1e, 0xca,
+       0x6c, 0x18, 0x60, 0xdb, 0x73, 0x29, 0x6b, 0x14, 0x9b, 0x05, 0xee, 0xb4, 
0x28, 0x14, 0x0f, 0xb8,
+       0xac, 0xe9, 0x50, 0x3d, 0x43, 0xd4, 0xbe, 0x71, 0x98, 0xe7, 0x59, 0x16, 
0x2d, 0x95, 0x2b, 0x4f,
+       0x46, 0x3e, 0x19, 0x98, 0x0b, 0x33, 0x60, 0xee, 0xc2, 0xb2, 0x44, 0x29, 
0xa2, 0xf2, 0x7d, 0xd8,
+       0xb7, 0x0a, 0xd4, 0x4c, 0xe2, 0x45, 0x03, 0xff, 0x5b, 0x31, 0x64, 0xc0, 
0x8a, 0x23, 0x1b, 0x98,
+       0x74, 0x2f, 0x4a, 0xf7, 0xe5, 0xd8, 0x34, 0xee, 0x9f, 0x81, 0x55, 0x9a, 
0x01, 0x8b, 0xcf, 0xb9,
+       0xe0, 0xe2, 0xc8, 0xef, 0x93, 0x5c, 0x74, 0x7c, 0x50, 0xa0, 0xd1, 0x0e, 
0x71, 0x80, 0x42, 0xfc,
+       0xaf, 0xdf, 0x3b, 0xb8, 0xc6, 0x4e, 0xc4, 0x70, 0x9e, 0x0c, 0x5a, 0x1d, 
0x0a, 0xf4, 0xc2, 0x4b,
+       0x88, 0x11, 0x7f, 0xc5, 0x57, 0x1e, 0xa0, 0x6b, 0x3b, 0x24, 0x57, 0xb6, 
0x43, 0x22, 0x9f, 0x49,
+       0x26, 0x8a, 0x96, 0xca, 0x95, 0x16, 0xb9, 0x32, 0x85, 0x4a, 0xdb, 0x84, 
0x0a, 0x65, 0x88, 0xe1,
+       0x01, 0xf6, 0x99, 0xc8, 0x2c, 0xd0, 0x57, 0x2d, 0x35, 0xd5, 0xf1, 0xc4, 
0x3f, 0x41, 0x2d, 0x49,
+       0xc3, 0x27, 0x86, 0xf0, 0x0f, 0x22, 0x81, 0x17, 0xac, 0x4a, 0x9c, 0x87, 
0x9e, 0x08, 0x9d, 0xf6,
+       0x3b, 0xac, 0xf6, 0xdd, 0x90, 0x32, 0xbb, 0x1f, 0x0a, 0x36, 0x45, 0x04, 
0x75, 0x9f, 0x61, 0x39,
+       0x59, 0x25, 0x6b, 0x59, 0xda, 0x0e, 0x85, 0xe9, 0x18, 0x5d, 0x77, 0xb8, 
0x41, 0x7f, 0xc9, 0x07,
+       0x20, 0x41, 0xfc, 0x15, 0x70, 0x66, 0x41, 0x14, 0xb3, 0x20, 0xf4, 0x37, 
0x0a, 0x54, 0x0e, 0x31,
+       0x73, 0xce, 0x72, 0x75, 0x34, 0xcd, 0xe1, 0x5c, 0x96, 0xc3, 0x75, 0x98, 
0x27, 0xfd, 0x3e, 0xc5,
+       0xa3, 0xde, 0x12, 0x49, 0xfb, 0x0d, 0x56, 0xfa, 0xa2, 0x9e, 0x3d, 0x09, 
0x20, 0xfe, 0x0a, 0x75,
+       0x69, 0x3a, 0x9e, 0x44, 0x31, 0x45, 0x6f, 0x49, 0xd2, 0x5b, 0xe9, 0x8f, 
0x33, 0xfb, 0x37, 0xac,
+       0x9b, 0x21, 0xe6, 0xc5, 0x3b, 0xa3, 0x0e, 0x72, 0x8d, 0xa2, 0x0d, 0x6b, 
0xa6, 0x47, 0xe8, 0xed,
+       0xa2, 0xbf, 0x80, 0x0c, 0xfd, 0xb5, 0x02, 0x6b, 0x8f, 0x02, 0xec, 0x9b, 
0x69, 0x5c, 0xae, 0x0a,
+       0xdb, 0x50, 0x74, 0xf9, 0x7a, 0xf1, 0xcc, 0x85, 0x2d, 0xb5, 0xd5, 0x34, 
0x66, 0xa6, 0x32, 0xc4,
+       0x06, 0x1e, 0xf8, 0x2c, 0x1c, 0x5a, 0xd2, 0x7b, 0xe3, 0x2f, 0x28, 0xa7, 
0x2a, 0x31, 0x43, 0xe7,
+       0x78, 0x98, 0x64, 0x17, 0x7f, 0xb5, 0x55, 0x28, 0x5d, 0x22, 0x2f, 0xc2, 
0xc9, 0x5c, 0xc5, 0xc2,
+       0xde, 0xdc, 0xae, 0x22, 0xd9, 0x14, 0x74, 0xdc, 0xae, 0x5b, 0x3d, 0xe4, 
0x6c, 0xa6, 0x72, 0x67,
+       0xe8, 0x3b, 0x39, 0xb1, 0x82, 0x90, 0x6d, 0x7e, 0x89, 0x06, 0x54, 0xf6, 
0xa6, 0xb6, 0xd6, 0x8c,
+       0x9b, 0x84, 0xc9, 0x9d, 0xe8, 0xf2, 0xc3, 0xb7, 0x2c, 0x1c, 0x85, 0x4c, 
0xf5, 0xf7, 0x7c, 0xb5,
+       0xa6, 0x8e, 0x90, 0x3d, 0x58, 0x4a, 0x3f, 0xc1, 0xff, 0xc8, 0xef, 0x79, 
0x58, 0xd6, 0x53, 0x5b,
+       0x75, 0xa3, 0x33, 0xa9, 0xb7, 0xa6, 0x1d, 0xb5, 0x1d, 0xa8, 0xf3, 0x2d, 
0xe5, 0x03, 0xc6, 0x8f,
+       0x41, 0x5b, 0x12, 0x43, 0x13, 0xf2, 0x55, 0x43, 0x1c, 0x76, 0xbd, 0xa7, 
0x42, 0x67, 0x2d, 0xa5,
+       0x4e, 0x52, 0xa6, 0x9f, 0x3c, 0x12, 0xe2, 0x15, 0xc8, 0x1e, 0x09, 0xda, 
0x1f, 0xb0, 0x2a, 0xae,
+       0xa5, 0x4c, 0xb1, 0xa2, 0xbc, 0x9d, 0x34, 0x6e, 0x6b, 0x4f, 0x96, 0xd0, 
0x5f, 0x29, 0xa0, 0xc5,
+       0xa4, 0xd2, 0xc8, 0x63, 0xf4, 0xae, 0xd7, 0x76, 0x13, 0x4a, 0x52, 0x94, 
0x2d, 0x0b, 0xb8, 0x8f,
+       0x23, 0x1c, 0x0e, 0x25, 0x61, 0x56, 0x6c, 0x19, 0xdb, 0xec, 0xe2, 0xf8, 
0x66, 0xeb, 0xdb, 0x50,
+       0x35, 0xf9, 0x03, 0xc8, 0xcd, 0xb7, 0x7b, 0xfc, 0xfa, 0xb0, 0x88, 0xe7, 
0x75, 0x91, 0x73, 0x9e,
+       0x2b, 0xee, 0x85, 0x02, 0x3f, 0x64, 0xae, 0x8f, 0x7d, 0x74, 0x0f, 0x27, 
0x99, 0x70, 0xb9, 0xf0,
+       0x6c, 0xf1, 0xb8, 0xe3, 0xd3, 0x41, 0x39, 0x33, 0xe2, 0x69, 0xa1, 0x72, 
0x9d, 0x99, 0xa8, 0xf4,
+       0x03, 0x50, 0x9f, 0x04, 0x3d, 0x94, 0x34, 0x30, 0x73, 0x7c, 0x94, 0xcf, 
0x8f, 0x8f, 0xfe, 0x5c,
+       0x81, 0x95, 0xfb, 0x44, 0xf2, 0x0b, 0x2c, 0x44, 0xb2, 0xcd, 0x18, 0x84, 
0xda, 0xaa, 0x18, 0x63,
+       0x6d, 0x5b, 0x23, 0xe3, 0xbe, 0x0e, 0x4d, 0x12, 0x9e, 0x1a, 0x28, 0x40, 
0xfc, 0xb1, 0x61, 0x38,
+       0xc8, 0x73, 0x5c, 0x86, 0x0d, 0x74, 0x89, 0x98, 0xeb, 0xa0, 0xf8, 0x79, 
0xdb, 0x9d, 0x97, 0x3f,
+       0x7f, 0x7e, 0x0c, 0x00, 0x00, 0xff, 0xff, 0x4f, 0x49, 0xad, 0x3d, 0x05, 
0x0b, 0x00, 0x00,
 }

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/message/responses.pb.go
----------------------------------------------------------------------
diff --git a/message/responses.pb.go b/message/responses.pb.go
index 5a3f244..6bebac8 100644
--- a/message/responses.pb.go
+++ b/message/responses.pb.go
@@ -350,6 +350,27 @@ func (m *RollbackResponse) String() string            { 
return proto.CompactText
 func (*RollbackResponse) ProtoMessage()               {}
 func (*RollbackResponse) Descriptor() ([]byte, []int) { return 
fileDescriptor2, []int{15} }
 
+// Response to a batch update request
+type ExecuteBatchResponse struct {
+       ConnectionId     string       
`protobuf:"bytes,1,opt,name=connection_id,json=connectionId" 
json:"connection_id,omitempty"`
+       StatementId      uint32       
`protobuf:"varint,2,opt,name=statement_id,json=statementId" 
json:"statement_id,omitempty"`
+       UpdateCounts     []uint64     
`protobuf:"varint,3,rep,name=update_counts,json=updateCounts" 
json:"update_counts,omitempty"`
+       MissingStatement bool         
`protobuf:"varint,4,opt,name=missing_statement,json=missingStatement" 
json:"missing_statement,omitempty"`
+       Metadata         *RpcMetadata `protobuf:"bytes,5,opt,name=metadata" 
json:"metadata,omitempty"`
+}
+
+func (m *ExecuteBatchResponse) Reset()                    { *m = 
ExecuteBatchResponse{} }
+func (m *ExecuteBatchResponse) String() string            { return 
proto.CompactTextString(m) }
+func (*ExecuteBatchResponse) ProtoMessage()               {}
+func (*ExecuteBatchResponse) Descriptor() ([]byte, []int) { return 
fileDescriptor2, []int{16} }
+
+func (m *ExecuteBatchResponse) GetMetadata() *RpcMetadata {
+       if m != nil {
+               return m.Metadata
+       }
+       return nil
+}
+
 func init() {
        proto.RegisterType((*ResultSetResponse)(nil), "ResultSetResponse")
        proto.RegisterType((*ExecuteResponse)(nil), "ExecuteResponse")
@@ -367,56 +388,59 @@ func init() {
        proto.RegisterType((*RpcMetadata)(nil), "RpcMetadata")
        proto.RegisterType((*CommitResponse)(nil), "CommitResponse")
        proto.RegisterType((*RollbackResponse)(nil), "RollbackResponse")
+       proto.RegisterType((*ExecuteBatchResponse)(nil), "ExecuteBatchResponse")
 }
 
 var fileDescriptor2 = []byte{
-       // 755 bytes of a gzipped FileDescriptorProto
-       0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x55, 
0xcb, 0x6e, 0xdb, 0x38,
-       0x14, 0x85, 0xec, 0xd8, 0x89, 0xaf, 0x9f, 0xd1, 0x60, 0x66, 0x8c, 0x79, 
0x21, 0xe3, 0x60, 0x90,
-       0x00, 0x33, 0xd0, 0x22, 0x93, 0x1f, 0x68, 0x5c, 0x07, 0xed, 0x22, 0x68, 
0x40, 0x17, 0xdd, 0x0a,
-       0x8c, 0x74, 0xe3, 0x08, 0xd1, 0x2b, 0x24, 0x9d, 0xc6, 0x7f, 0x50, 0xa0, 
0x8b, 0xee, 0xba, 0xee,
-       0x0f, 0xf4, 0x1f, 0x7b, 0x29, 0xca, 0xb4, 0xd3, 0x38, 0x6e, 0xdd, 0x76, 
0x65, 0xeb, 0xdc, 0xc3,
-       0x7b, 0xae, 0x0e, 0xc9, 0x23, 0xe8, 0x0a, 0x94, 0x79, 0x96, 0x4a, 0x94, 
0x5e, 0x2e, 0x32, 0x95,
-       0xfd, 0xd6, 0x0a, 0xb2, 0x24, 0xc9, 0x52, 0xf3, 0x34, 0xf8, 0x50, 0x81, 
0x5d, 0x86, 0x72, 0x1a,
-       0xab, 0x31, 0x2a, 0x56, 0x52, 0xdd, 0x7d, 0x68, 0x07, 0x59, 0x9a, 0x62, 
0xa0, 0xa2, 0x2c, 0xf5,
-       0xa3, 0xb0, 0xef, 0xec, 0x39, 0x87, 0x0d, 0xd6, 0x5a, 0x80, 0xcf, 0x43, 
0xf7, 0x6f, 0x68, 0x49,
-       0xc5, 0x15, 0x26, 0x98, 0x2a, 0xcd, 0xa9, 0x10, 0xa7, 0xcd, 0x9a, 0x16, 
0x23, 0x0a, 0xf5, 0xc9,
-       0x5e, 0xa7, 0xbe, 0x85, 0xfa, 0x55, 0xe2, 0xec, 0xb0, 0x16, 0x81, 0xe3, 
0x39, 0xe6, 0x1e, 0x42,
-       0x43, 0x46, 0x93, 0x94, 0xab, 0xa9, 0xc0, 0xfe, 0x16, 0x11, 0x9a, 0x47, 
0xe0, 0x8d, 0xe7, 0x08,
-       0x5b, 0x14, 0xdd, 0x03, 0x68, 0x5e, 0x46, 0x42, 0x2a, 0xff, 0x52, 0xf0, 
0x04, 0xfb, 0xb5, 0x82,
-       0x5b, 0xf7, 0x4e, 0xf5, 0x13, 0x83, 0xa2, 0x54, 0xfc, 0xd7, 0xa3, 0x4d, 
0xf3, 0x90, 0x04, 0xfc,
-       0x20, 0x9b, 0x92, 0x6c, 0x9d, 0x98, 0x5b, 0xac, 0x69, 0xb0, 0xa1, 0x86, 
0x48, 0x75, 0x27, 0x41,
-       0xc5, 0x09, 0xe0, 0xfd, 0xed, 0xa2, 0x51, 0xcb, 0x63, 0x79, 0x70, 0x56, 
0x62, 0xcc, 0x56, 0x07,
-       0xef, 0x1d, 0xe8, 0x8e, 0xee, 0x30, 0x98, 0x2a, 0xb4, 0x06, 0xfd, 0x07, 
0xdb, 0xa2, 0x70, 0x4d,
-       0x92, 0x35, 0x55, 0x5a, 0xec, 0x7a, 0x0f, 0x5c, 0x64, 0x73, 0x8a, 0xfb, 
0x2f, 0xec, 0x26, 0x91,
-       0x94, 0x51, 0x3a, 0x59, 0xb2, 0xa2, 0x52, 0x58, 0xd1, 0x2b, 0x0b, 0xcb, 
0x76, 0x2c, 0x06, 0xab,
-       0xae, 0x1d, 0xec, 0x1a, 0xba, 0xe7, 0x02, 0x73, 0x2e, 0x16, 0x73, 0x79, 
0xe4, 0xa5, 0x55, 0x70,
-       0x8a, 0xd5, 0x3d, 0xcf, 0xf6, 0x7e, 0xc6, 0xd3, 0x30, 0xd6, 0x8e, 0xae, 
0x14, 0xab, 0xac, 0x15,
-       0xfb, 0xe8, 0x40, 0xfb, 0x14, 0x55, 0x70, 0x65, 0xb5, 0xfe, 0x80, 0x9a, 
0xd9, 0x07, 0xe7, 0xde,
-       0x3e, 0x18, 0x70, 0xb3, 0x77, 0x3e, 0x80, 0xee, 0x9c, 0x3c, 0xb7, 0xd5, 
0x9c, 0x94, 0x4e, 0x09,
-       0xb3, 0xd2, 0xc9, 0xe5, 0x79, 0xb7, 0xd6, 0xce, 0xfb, 0xd6, 0x81, 0x5f, 
0x87, 0x02, 0x49, 0xc1,
-       0xca, 0xfc, 0xf0, 0xe3, 0xfd, 0xf5, 0x5b, 0x75, 0x02, 0xbf, 0x0c, 0xe3, 
0x4c, 0xae, 0x98, 0x65,
-       0xb9, 0x87, 0xf3, 0xa5, 0x1e, 0x2f, 0x72, 0x4c, 0x87, 0x76, 0xc8, 0x6f, 
0xe8, 0x31, 0x24, 0x53,
-       0xf4, 0x1c, 0xdf, 0xd5, 0xe4, 0x8e, 0x5e, 0xc6, 0xae, 0x1f, 0xcf, 0xd2, 
0xc0, 0xf6, 0x38, 0x06,
-       0xd0, 0x1e, 0xfa, 0x94, 0x2d, 0xb9, 0x2c, 0xbb, 0xfc, 0xec, 0x2d, 0xc8, 
0xe7, 0x84, 0xa3, 0x50,
-       0x11, 0x4a, 0xd6, 0xd0, 0x44, 0xfd, 0x2c, 0x37, 0x38, 0x84, 0x7a, 0x53, 
0x9f, 0xd2, 0x9f, 0x0b,
-       0x2e, 0xb1, 0xec, 0x35, 0x1b, 0xc5, 0xe6, 0x0c, 0xed, 0x43, 0xf5, 0x1a, 
0x67, 0xa5, 0xe8, 0xae,
-       0xf7, 0x39, 0x8d, 0xe9, 0x2a, 0x6d, 0x6a, 0xed, 0x96, 0xc7, 0x53, 0x2c, 
0x75, 0x9a, 0xde, 0xcb,
-       0x59, 0x8e, 0xe1, 0x2b, 0x0d, 0x31, 0x53, 0xd9, 0x60, 0x53, 0x15, 0xf4, 
0x1f, 0xa8, 0x2c, 0x2e,
-       0x62, 0x6d, 0x6e, 0x82, 0x8e, 0x87, 0xbe, 0xf7, 0xc8, 0xd8, 0xcc, 0xd0, 
0x36, 0xf0, 0xe0, 0x4d,
-       0x05, 0xda, 0x23, 0x21, 0x32, 0x61, 0xb5, 0xfe, 0x02, 0xc0, 0xbb, 0x00, 
0x73, 0xed, 0xb0, 0x11,
-       0x6c, 0xb0, 0x25, 0xc4, 0xfd, 0x07, 0x3a, 0x57, 0x5c, 0xfa, 0x4b, 0x9c, 
0xed, 0xe2, 0x72, 0xb5,
-       0x09, 0x1d, 0x2d, 0x68, 0x74, 0x2b, 0x50, 0xf7, 0xf5, 0x13, 0x94, 0x92, 
0x4f, 0x8c, 0x47, 0x74,
-       0x2b, 0x0a, 0xf0, 0xcc, 0x60, 0xd4, 0x6b, 0x47, 0xe2, 0x2d, 0x8a, 0x48, 
0xcd, 0x0a, 0x77, 0x3a,
-       0x47, 0x0d, 0x6f, 0x5c, 0x02, 0xcc, 0x96, 0xdc, 0x3f, 0x69, 0xa4, 0xa2, 
0x57, 0x90, 0x85, 0x26,
-       0xd4, 0xdb, 0xac, 0x51, 0x20, 0x43, 0x02, 0xdc, 0xdf, 0x29, 0xa6, 0x6e, 
0x62, 0x13, 0x0c, 0x45,
-       0x8c, 0x37, 0x68, 0xed, 0x4d, 0x5c, 0xdc, 0x8e, 0x7b, 0x56, 0xd4, 0xd7, 
0x5a, 0xf1, 0xce, 0x81,
-       0x9f, 0xca, 0xf3, 0xa7, 0xd3, 0xc1, 0x1a, 0xb2, 0x32, 0x7b, 0x9c, 0x47, 
0xb2, 0x87, 0xee, 0x79,
-       0x92, 0x09, 0xb4, 0xc1, 0x63, 0x32, 0xaa, 0xa9, 0xb1, 0x55, 0xa9, 0xb3, 
0xfe, 0x48, 0x1c, 0x43,
-       0x73, 0xa9, 0xa0, 0x9d, 0x97, 0x28, 0xc8, 0x13, 0x9f, 0x87, 0x21, 0x09, 
0xc8, 0x32, 0x69, 0xda,
-       0x06, 0x7d, 0x62, 0xc0, 0x41, 0x0f, 0x3a, 0x43, 0xfa, 0x28, 0x47, 0x36, 
0x15, 0x06, 0x2e, 0xf4,
-       0x58, 0x16, 0xc7, 0x17, 0x3c, 0xb8, 0x9e, 0x63, 0x27, 0x03, 0xd8, 0xcb, 
0xc4, 0xc4, 0xe3, 0x39,
-       0x0f, 0xae, 0xd0, 0x0b, 0x78, 0x1c, 0x44, 0x0a, 0x3d, 0x7e, 0xcb, 0x55, 
0x14, 0x70, 0xf3, 0x39,
-       0xbf, 0xa8, 0x17, 0x3f, 0xff, 0x7f, 0x0a, 0x00, 0x00, 0xff, 0xff, 0xe3, 
0xd0, 0x5a, 0x8c, 0xf6,
-       0x07, 0x00, 0x00,
+       // 791 bytes of a gzipped FileDescriptorProto
+       0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xac, 0x56, 
0xcb, 0x6e, 0xd3, 0x4c,
+       0x14, 0x96, 0x73, 0x6b, 0x33, 0xb9, 0xd6, 0xff, 0x0f, 0x44, 0xdc, 0x54, 
0x52, 0xa1, 0x56, 0x02,
+       0x79, 0x51, 0xfa, 0x02, 0x34, 0xa4, 0x82, 0x45, 0x45, 0x35, 0x41, 0x6c, 
0xad, 0xa9, 0x7d, 0x9a,
+       0x5a, 0xf5, 0xad, 0x33, 0x93, 0xd2, 0xbc, 0x01, 0x12, 0x0b, 0x76, 0xac, 
0x79, 0x01, 0x5e, 0x88,
+       0xa7, 0xe1, 0x8c, 0xc7, 0x99, 0xb8, 0x34, 0x0d, 0x0d, 0x74, 0x15, 0xfb, 
0x3b, 0xdf, 0x9c, 0x73,
+       0xfc, 0xcd, 0xcc, 0x77, 0x42, 0x3a, 0x1c, 0x44, 0x9a, 0xc4, 0x02, 0x84, 
0x93, 0xf2, 0x44, 0x26,
+       0x0f, 0x9b, 0x5e, 0x12, 0x45, 0x49, 0xac, 0xdf, 0xfa, 0xdf, 0x4b, 0x64, 
0x83, 0x82, 0x98, 0x84,
+       0x72, 0x04, 0x92, 0xe6, 0x54, 0x7b, 0x8b, 0xb4, 0xbc, 0x24, 0x8e, 0xc1, 
0x93, 0x41, 0x12, 0xbb,
+       0x81, 0xdf, 0xb3, 0x36, 0xad, 0x9d, 0x3a, 0x6d, 0xce, 0xc1, 0x77, 0xbe, 
0xfd, 0x8c, 0x34, 0x85,
+       0x64, 0x12, 0x22, 0x88, 0xa5, 0xe2, 0x94, 0x90, 0xd3, 0xa2, 0x0d, 0x83, 
0x21, 0x05, 0xf3, 0x24,
+       0x9f, 0x62, 0xd7, 0x40, 0xbd, 0x32, 0x72, 0xd6, 0x69, 0x13, 0xc1, 0xd1, 
0x0c, 0xb3, 0x77, 0x48,
+       0x5d, 0x04, 0xe3, 0x98, 0xc9, 0x09, 0x87, 0x5e, 0x05, 0x09, 0x8d, 0x5d, 
0xe2, 0x8c, 0x66, 0x08,
+       0x9d, 0x07, 0xed, 0x6d, 0xd2, 0x38, 0x09, 0xb8, 0x90, 0xee, 0x09, 0x67, 
0x11, 0xf4, 0xaa, 0x19,
+       0xb7, 0xe6, 0x1c, 0xa8, 0x37, 0x4a, 0xb2, 0x50, 0xf6, 0xac, 0x5a, 0x9b, 
0xa4, 0x3e, 0x16, 0x70,
+       0xbd, 0x64, 0x82, 0x65, 0x6b, 0xc8, 0xac, 0xd0, 0x86, 0xc6, 0x06, 0x0a, 
0xc2, 0xaa, 0xeb, 0x11,
+       0x48, 0x86, 0x00, 0xeb, 0xad, 0x65, 0x89, 0x9a, 0x0e, 0x4d, 0xbd, 0xc3, 
0x1c, 0xa3, 0x26, 0xda,
+       0xff, 0x66, 0x91, 0xce, 0xf0, 0x12, 0xbc, 0x89, 0x04, 0x23, 0xd0, 0x4b, 
0xb2, 0xc6, 0x33, 0xd5,
+       0x04, 0x4a, 0x53, 0xc6, 0xc5, 0xb6, 0x73, 0x4d, 0x45, 0x3a, 0xa3, 0xd8, 
0x2f, 0xc8, 0x46, 0x14,
+       0x08, 0x11, 0xc4, 0xe3, 0x82, 0x14, 0xa5, 0x4c, 0x8a, 0x6e, 0x1e, 0x28, 
0xca, 0x31, 0x6f, 0xac,
+       0xbc, 0xb4, 0xb1, 0x33, 0xd2, 0x39, 0xe2, 0x90, 0x32, 0x3e, 0xef, 0xcb, 
0x41, 0x2d, 0x4d, 0x05,
+       0x2b, 0x5b, 0xdd, 0x75, 0x4c, 0xee, 0xb7, 0x2c, 0xf6, 0x43, 0xa5, 0xe8, 
0xc2, 0x62, 0xa5, 0xa5,
+       0xc5, 0x7e, 0x58, 0xa4, 0x75, 0x00, 0xd2, 0x3b, 0x35, 0xb5, 0x1e, 0x93, 
0xaa, 0xde, 0x07, 0xeb,
+       0xca, 0x3e, 0x68, 0x70, 0xb5, 0x6f, 0xde, 0x26, 0x9d, 0x19, 0x79, 0x26, 
0xab, 0x3e, 0x29, 0xed,
+       0x1c, 0xa6, 0xb9, 0x92, 0xc5, 0x7e, 0x2b, 0x4b, 0xfb, 0xfd, 0x62, 0x91, 
0x07, 0x03, 0x0e, 0x58,
+       0xc1, 0x94, 0xb9, 0xf3, 0xe3, 0x7d, 0xfb, 0xad, 0xda, 0x27, 0xf7, 0x07, 
0x61, 0x22, 0x16, 0xf4,
+       0x52, 0xcc, 0x61, 0xfd, 0x29, 0xc7, 0xfb, 0x14, 0xe2, 0x81, 0x69, 0xf2, 
0x2f, 0x72, 0x0c, 0x50,
+       0x14, 0xd5, 0xc7, 0x3f, 0x25, 0xb9, 0xc4, 0x8f, 0x31, 0xeb, 0x47, 0xd3, 
0xd8, 0x33, 0x39, 0xf6,
+       0x08, 0x51, 0x1a, 0xba, 0xe8, 0x2d, 0xa9, 0xc8, 0xb3, 0xdc, 0x73, 0xe6, 
0xe4, 0x23, 0xc4, 0x81,
+       0xcb, 0x00, 0x04, 0xad, 0x2b, 0xa2, 0x7a, 0x17, 0x2b, 0x1c, 0x42, 0xb5, 
0xa9, 0x6f, 0xf0, 0xe1,
+       0x98, 0x09, 0xc8, 0x73, 0x4d, 0x87, 0xa1, 0x3e, 0x43, 0x5b, 0xa4, 0x7c, 
0x06, 0xd3, 0xbc, 0xe8,
+       0x86, 0xf3, 0x3b, 0x8d, 0xaa, 0x28, 0x6e, 0x6a, 0xf5, 0x82, 0x85, 0x13, 
0xc8, 0xeb, 0x34, 0x9c,
+       0x0f, 0xd3, 0x14, 0xfc, 0x8f, 0x0a, 0xa2, 0x3a, 0xb2, 0xc2, 0xa6, 0x4a, 
0xd2, 0xbb, 0x56, 0x65,
+       0x7e, 0x11, 0xab, 0x33, 0x11, 0x94, 0x3d, 0xf4, 0x9c, 0x1b, 0xda, 0xa6, 
0x9a, 0xb6, 0x82, 0x06,
+       0x9f, 0x4b, 0xa4, 0x35, 0xe4, 0x3c, 0xe1, 0xa6, 0xd6, 0x53, 0x42, 0xe0, 
0xd2, 0x83, 0x54, 0x29,
+       0xac, 0x0b, 0xd6, 0x69, 0x01, 0xb1, 0x9f, 0x93, 0xf6, 0x29, 0x13, 0x6e, 
0x81, 0xb3, 0x96, 0x5d,
+       0xae, 0x16, 0xa2, 0xc3, 0x39, 0x0d, 0x6f, 0x05, 0xa8, 0xbc, 0x6e, 0x04, 
0x42, 0xb0, 0xb1, 0xd6,
+       0x08, 0x6f, 0x45, 0x06, 0x1e, 0x6a, 0x0c, 0x73, 0xad, 0x0b, 0xb8, 0x00, 
0x1e, 0xc8, 0x69, 0xa6,
+       0x4e, 0x7b, 0xb7, 0xee, 0x8c, 0x72, 0x80, 0x9a, 0x90, 0xfd, 0x04, 0x5b, 
0xca, 0x72, 0x79, 0x89,
+       0xaf, 0x4d, 0xbd, 0x45, 0xeb, 0x19, 0x32, 0x40, 0xc0, 0x7e, 0x84, 0x36, 
0x75, 0x1e, 0x6a, 0x63,
+       0xc8, 0x6c, 0xbc, 0x8e, 0x6b, 0xcf, 0xc3, 0xec, 0x76, 0x5c, 0x91, 0xa2, 
0xb6, 0x54, 0x8a, 0xaf,
+       0x16, 0xf9, 0x2f, 0x3f, 0x7f, 0xca, 0x1d, 0x8c, 0x20, 0x0b, 0xbd, 0xc7, 
0xba, 0xc1, 0x7b, 0xf0,
+       0x9e, 0x47, 0x09, 0x07, 0x63, 0x3c, 0xda, 0xa3, 0x1a, 0x0a, 0x5b, 0xe4, 
0x3a, 0xcb, 0x8f, 0xc4,
+       0x1e, 0x69, 0x14, 0x02, 0x4a, 0x79, 0x01, 0x1c, 0x35, 0x71, 0x99, 0xef, 
0x63, 0x01, 0x91, 0x3b,
+       0x4d, 0x4b, 0xa3, 0xaf, 0x35, 0xd8, 0xef, 0x92, 0xf6, 0x00, 0x87, 0x72, 
0x60, 0x5c, 0xa1, 0x6f,
+       0x93, 0x2e, 0x4d, 0xc2, 0xf0, 0x98, 0x79, 0x67, 0x06, 0xfb, 0x69, 0x91, 
0xff, 0xf3, 0x39, 0xb4,
+       0xcf, 0x8a, 0x46, 0x7c, 0x87, 0xd3, 0xba, 0x38, 0x35, 0x95, 0x07, 0x97, 
0x71, 0x6c, 0x36, 0x0b,
+       0x63, 0xf3, 0x86, 0x59, 0x56, 0xb9, 0xc5, 0x2c, 0xab, 0x2e, 0x13, 0x6e, 
0xbf, 0x4f, 0x36, 0x13,
+       0x3e, 0x76, 0x58, 0xca, 0xbc, 0x53, 0x70, 0x3c, 0x16, 0x7a, 0x81, 0x04, 
0x87, 0x5d, 0x30, 0x19,
+       0x78, 0x4c, 0xff, 0x57, 0x39, 0xae, 0x65, 0x3f, 0xaf, 0x7e, 0x05, 0x00, 
0x00, 0xff, 0xff, 0x70,
+       0x76, 0x9a, 0x2c, 0xd3, 0x08, 0x00, 0x00,
 }

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/moby.yml
----------------------------------------------------------------------
diff --git a/moby.yml b/moby.yml
index e502371..e4776b9 100644
--- a/moby.yml
+++ b/moby.yml
@@ -1,6 +1,6 @@
 services:
   - id: phoenix
-    image: boostport/hbase-phoenix-all-in-one:1.1.5-4.7.0
+    image: boostport/hbase-phoenix-all-in-one:1.2.2-4.8.0
     ports:
       - "8765"
 
@@ -19,4 +19,4 @@ dev:
       name: Run tests
       cwd: $GOPATH/src/github.com/Boostport/avatica
       options:
-        command: go test -cover -v $(go list ./... | grep -v /vendor/)
\ No newline at end of file
+        command: go test -v $(go list ./... | grep -v /vendor/)
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/rows.go
----------------------------------------------------------------------
diff --git a/rows.go b/rows.go
index 2e87a04..82b67ff 100644
--- a/rows.go
+++ b/rows.go
@@ -54,10 +54,10 @@ func (r *rows) Next(dest []driver.Value) error {
 
                // Fetch more results from the server
                res, err := r.conn.httpClient.post(context.Background(), 
&message.FetchRequest{
-                       ConnectionId:     r.conn.connectionId,
-                       StatementId:      r.statementID,
-                       Offset:           r.offset,
-                       FetchMaxRowCount: r.conn.config.fetchMaxRowCount,
+                       ConnectionId: r.conn.connectionId,
+                       StatementId:  r.statementID,
+                       Offset:       r.offset,
+                       FrameMaxSize: r.conn.config.frameMaxSize,
                })
 
                if err != nil {
@@ -176,7 +176,7 @@ func typedValueToNative(rep message.Rep, v 
*message.TypedValue, config *Config)
                return v.NumberValue
 
        case message.Rep_BYTE_STRING:
-               return v.BytesValues
+               return v.BytesValue
 
        case message.Rep_DOUBLE, message.Rep_PRIMITIVE_DOUBLE:
                return v.DoubleValue

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/statement.go
----------------------------------------------------------------------
diff --git a/statement.go b/statement.go
index c8f181e..47d487f 100644
--- a/statement.go
+++ b/statement.go
@@ -2,7 +2,6 @@ package avatica
 
 import (
        "database/sql/driver"
-       "encoding/base64"
        "github.com/Boostport/avatica/message"
        "golang.org/x/net/context"
        "time"
@@ -54,7 +53,7 @@ func (s *stmt) Exec(args []driver.Value) (driver.Result, 
error) {
        res, err := s.conn.httpClient.post(context.Background(), 
&message.ExecuteRequest{
                StatementHandle:    &s.handle,
                ParameterValues:    s.parametersToTypedValues(args),
-               MaxRowCount:        s.conn.config.maxRowCount,
+               FirstFrameMaxSize:  uint64(s.conn.config.frameMaxSize), //TODO: 
Due to CALCITE-1353, if frameMaxSize == -1, it overflows to 
18446744073709551615 due to the conversion to uint64, which is basically all 
rows.
                HasParameterValues: true,
        })
 
@@ -81,7 +80,7 @@ func (s *stmt) Query(args []driver.Value) (driver.Rows, 
error) {
        res, err := s.conn.httpClient.post(context.Background(), 
&message.ExecuteRequest{
                StatementHandle:    &s.handle,
                ParameterValues:    s.parametersToTypedValues(args),
-               MaxRowCount:        s.conn.config.maxRowCount,
+               FirstFrameMaxSize:  uint64(s.conn.config.frameMaxSize), //TODO: 
Due to CALCITE-1353, if frameMaxSize == -1, it overflows to 
18446744073709551615 due to the conversion to uint64, which is basically all 
rows.
                HasParameterValues: true,
        })
 
@@ -118,10 +117,7 @@ func (s *stmt) parametersToTypedValues(vals 
[]driver.Value) []*message.TypedValu
                                typed.BoolValue = v
                        case []byte:
                                typed.Type = message.Rep_BYTE_STRING
-
-                               // This is a work around for CALCITE-1209
-                               str := base64.StdEncoding.EncodeToString(v)
-                               typed.StringValue = str
+                               typed.BytesValue = v
                        case string:
                                typed.Type = message.Rep_STRING
                                typed.StringValue = v

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/transaction.go
----------------------------------------------------------------------
diff --git a/transaction.go b/transaction.go
index ac5a462..ca968ec 100644
--- a/transaction.go
+++ b/transaction.go
@@ -41,7 +41,7 @@ func (t *tx) enableAutoCommit() error {
                ConnProps: &message.ConnectionProperties{
                        AutoCommit:           true,
                        HasAutoCommit:        true,
-                       TransactionIsolation: 8,
+                       TransactionIsolation: 4,
                },
        })
 

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/vendor/vendor.json
----------------------------------------------------------------------
diff --git a/vendor/vendor.json b/vendor/vendor.json
index b72c7c5..e9452bf 100644
--- a/vendor/vendor.json
+++ b/vendor/vendor.json
@@ -7,10 +7,10 @@
                        "revision": ""
                },
                {
-                       "checksumSHA1": "FczzogSoZcKU3h21tCUyHzMsnBY=",
+                       "checksumSHA1": "XnbEHQRzINRKXKmu9GcaqGkK4Lg=",
                        "path": "github.com/golang/protobuf/proto",
-                       "revision": "7cc19b78d562895b13596ddce7aafb59dd789318",
-                       "revisionTime": "2016-04-25T21:53:00Z"
+                       "revision": "f592bd283e9ef86337a432eb50e592278c3d534d",
+                       "revisionTime": "2016-08-17T17:41:13Z"
                },
                {
                        "checksumSHA1": "Uzyon2091lmwacNsl1hCytjhHtg=",
@@ -19,22 +19,22 @@
                        "revisionTime": "2016-04-07T17:41:26Z"
                },
                {
-                       "checksumSHA1": "cKNzpMpci3WUAzXpe+tVnBv2cjE=",
+                       "checksumSHA1": "zmC8/3V4ls53DJlNTKDZwPSC/dA=",
                        "path": "github.com/satori/go.uuid",
-                       "revision": "f9ab0dce87d815821e221626b772e3475a0d2749",
-                       "revisionTime": "2016-03-24T11:22:44Z"
+                       "revision": "0aa62d5ddceb50dbcb909d790b5345affd3669b6",
+                       "revisionTime": "2016-07-13T18:03:06Z"
                },
                {
                        "checksumSHA1": "9jjO5GjLa0XF/nfWihF02RoH4qc=",
                        "path": "golang.org/x/net/context",
-                       "revision": "58b2fb074ec0cc06e95f2409a11ff51dd11798e2",
-                       "revisionTime": "2016-05-14T19:45:11Z"
+                       "revision": "07b51741c1d6423d4a6abab1c49940ec09cb1aaf",
+                       "revisionTime": "2016-08-11T10:50:59Z"
                },
                {
-                       "checksumSHA1": "Do+l129/Bafh54VFaquooqtCcfk=",
+                       "checksumSHA1": "WHc3uByvGaMcnSoI21fhzYgbOgg=",
                        "path": "golang.org/x/net/context/ctxhttp",
-                       "revision": "58b2fb074ec0cc06e95f2409a11ff51dd11798e2",
-                       "revisionTime": "2016-05-14T19:45:11Z"
+                       "revision": "07b51741c1d6423d4a6abab1c49940ec09cb1aaf",
+                       "revisionTime": "2016-08-11T10:50:59Z"
                }
        ],
        "rootPath": "github.com/Boostport/avatica"

http://git-wip-us.apache.org/repos/asf/calcite-avatica-go/blob/a87e02f2/wercker.yml
----------------------------------------------------------------------
diff --git a/wercker.yml b/wercker.yml
index 134bc0f..1524699 100644
--- a/wercker.yml
+++ b/wercker.yml
@@ -5,7 +5,7 @@ box:
 no-response-timeout: 20
 
 services:
-  - boostport/hbase-phoenix-all-in-one:1.1.5-4.7.0
+  - boostport/hbase-phoenix-all-in-one:1.2.2-4.8.0
 
 build:
   steps:

Reply via email to