From eea26d47ba50ad27bd015246cc2e5ab80963bf9d Mon Sep 17 00:00:00 2001 From: Andrew Werner Date: Wed, 29 Jan 2020 15:30:37 -0500 Subject: [PATCH 1/2] roachpb: add TargetFileSize parameter to ExportRequest The TargetFileSize parameter dictates the target size for individual SST files to be exported. If a range contains more data than the target size, multiple files are produced. Release note: None --- c-deps/libroach/protos/roachpb/api.pb.cc | 43 +- c-deps/libroach/protos/roachpb/api.pb.h | 21 + pkg/roachpb/api.pb.go | 1196 +++++++++++----------- pkg/roachpb/api.proto | 9 + 4 files changed, 684 insertions(+), 585 deletions(-) diff --git a/c-deps/libroach/protos/roachpb/api.pb.cc b/c-deps/libroach/protos/roachpb/api.pb.cc index d28de3543b38..1a1feaa465d3 100644 --- a/c-deps/libroach/protos/roachpb/api.pb.cc +++ b/c-deps/libroach/protos/roachpb/api.pb.cc @@ -24029,6 +24029,7 @@ const int ExportRequest::kOmitChecksumFieldNumber; const int ExportRequest::kEnableTimeBoundIteratorOptimizationFieldNumber; const int ExportRequest::kStorageByLocalityKvFieldNumber; const int ExportRequest::kEncryptionFieldNumber; +const int ExportRequest::kTargetFileSizeFieldNumber; #endif // !defined(_MSC_VER) || _MSC_VER >= 1900 ExportRequest::ExportRequest() @@ -24064,15 +24065,15 @@ ExportRequest::ExportRequest(const ExportRequest& from) encryption_ = NULL; } ::memcpy(&mvcc_filter_, &from.mvcc_filter_, - static_cast(reinterpret_cast(&enable_time_bound_iterator_optimization_) - - reinterpret_cast(&mvcc_filter_)) + sizeof(enable_time_bound_iterator_optimization_)); + static_cast(reinterpret_cast(&target_file_size_) - + reinterpret_cast(&mvcc_filter_)) + sizeof(target_file_size_)); // @@protoc_insertion_point(copy_constructor:cockroach.roachpb.ExportRequest) } void ExportRequest::SharedCtor() { ::memset(&header_, 0, static_cast( - reinterpret_cast(&enable_time_bound_iterator_optimization_) - - reinterpret_cast(&header_)) + sizeof(enable_time_bound_iterator_optimization_)); + reinterpret_cast(&target_file_size_) - + reinterpret_cast(&header_)) + sizeof(target_file_size_)); } ExportRequest::~ExportRequest() { @@ -24120,8 +24121,8 @@ void ExportRequest::Clear() { } encryption_ = NULL; ::memset(&mvcc_filter_, 0, static_cast( - reinterpret_cast(&enable_time_bound_iterator_optimization_) - - reinterpret_cast(&mvcc_filter_)) + sizeof(enable_time_bound_iterator_optimization_)); + reinterpret_cast(&target_file_size_) - + reinterpret_cast(&mvcc_filter_)) + sizeof(target_file_size_)); _internal_metadata_.Clear(); } @@ -24263,6 +24264,20 @@ bool ExportRequest::MergePartialFromCodedStream( break; } + // int64 target_file_size = 10; + case 10: { + if (static_cast< ::google::protobuf::uint8>(tag) == + static_cast< ::google::protobuf::uint8>(80u /* 80 & 0xFF */)) { + + DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive< + ::google::protobuf::int64, ::google::protobuf::internal::WireFormatLite::TYPE_INT64>( + input, &target_file_size_))); + } else { + goto handle_unusual; + } + break; + } + default: { handle_unusual: if (tag == 0) { @@ -24377,6 +24392,11 @@ void ExportRequest::SerializeWithCachedSizes( 9, this->_internal_encryption(), output); } + // int64 target_file_size = 10; + if (this->target_file_size() != 0) { + ::google::protobuf::internal::WireFormatLite::WriteInt64(10, this->target_file_size(), output); + } + output->WriteRaw((::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()).data(), static_cast((::google::protobuf::internal::GetProto3PreserveUnknownsDefault() ? _internal_metadata_.unknown_fields() : _internal_metadata_.default_instance()).size())); // @@protoc_insertion_point(serialize_end:cockroach.roachpb.ExportRequest) @@ -24445,6 +24465,13 @@ size_t ExportRequest::ByteSizeLong() const { total_size += 1 + 1; } + // int64 target_file_size = 10; + if (this->target_file_size() != 0) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::Int64Size( + this->target_file_size()); + } + int cached_size = ::google::protobuf::internal::ToCachedSize(total_size); SetCachedSize(cached_size); return total_size; @@ -24487,6 +24514,9 @@ void ExportRequest::MergeFrom(const ExportRequest& from) { if (from.enable_time_bound_iterator_optimization() != 0) { set_enable_time_bound_iterator_optimization(from.enable_time_bound_iterator_optimization()); } + if (from.target_file_size() != 0) { + set_target_file_size(from.target_file_size()); + } } void ExportRequest::CopyFrom(const ExportRequest& from) { @@ -24515,6 +24545,7 @@ void ExportRequest::InternalSwap(ExportRequest* other) { swap(return_sst_, other->return_sst_); swap(omit_checksum_, other->omit_checksum_); swap(enable_time_bound_iterator_optimization_, other->enable_time_bound_iterator_optimization_); + swap(target_file_size_, other->target_file_size_); _internal_metadata_.Swap(&other->_internal_metadata_); } diff --git a/c-deps/libroach/protos/roachpb/api.pb.h b/c-deps/libroach/protos/roachpb/api.pb.h index 5688bedaee2c..77c8c2260d8e 100644 --- a/c-deps/libroach/protos/roachpb/api.pb.h +++ b/c-deps/libroach/protos/roachpb/api.pb.h @@ -11221,6 +11221,12 @@ class ExportRequest : public ::google::protobuf::MessageLite /* @@protoc_inserti bool enable_time_bound_iterator_optimization() const; void set_enable_time_bound_iterator_optimization(bool value); + // int64 target_file_size = 10; + void clear_target_file_size(); + static const int kTargetFileSizeFieldNumber = 10; + ::google::protobuf::int64 target_file_size() const; + void set_target_file_size(::google::protobuf::int64 value); + // @@protoc_insertion_point(class_scope:cockroach.roachpb.ExportRequest) private: @@ -11239,6 +11245,7 @@ class ExportRequest : public ::google::protobuf::MessageLite /* @@protoc_inserti bool return_sst_; bool omit_checksum_; bool enable_time_bound_iterator_optimization_; + ::google::protobuf::int64 target_file_size_; mutable ::google::protobuf::internal::CachedSize _cached_size_; friend struct ::protobuf_roachpb_2fapi_2eproto::TableStruct; }; @@ -26531,6 +26538,20 @@ inline void ExportRequest::set_allocated_encryption(::cockroach::roachpb::FileEn // @@protoc_insertion_point(field_set_allocated:cockroach.roachpb.ExportRequest.encryption) } +// int64 target_file_size = 10; +inline void ExportRequest::clear_target_file_size() { + target_file_size_ = GOOGLE_LONGLONG(0); +} +inline ::google::protobuf::int64 ExportRequest::target_file_size() const { + // @@protoc_insertion_point(field_get:cockroach.roachpb.ExportRequest.target_file_size) + return target_file_size_; +} +inline void ExportRequest::set_target_file_size(::google::protobuf::int64 value) { + + target_file_size_ = value; + // @@protoc_insertion_point(field_set:cockroach.roachpb.ExportRequest.target_file_size) +} + // ------------------------------------------------------------------- // BulkOpSummary diff --git a/pkg/roachpb/api.pb.go b/pkg/roachpb/api.pb.go index 952d8a05884e..0ce820027747 100644 --- a/pkg/roachpb/api.pb.go +++ b/pkg/roachpb/api.pb.go @@ -71,7 +71,7 @@ func (x ReadConsistencyType) String() string { return proto.EnumName(ReadConsistencyType_name, int32(x)) } func (ReadConsistencyType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{0} + return fileDescriptor_api_58bfa95f1a7467a6, []int{0} } // ScanFormat is an enumeration of the available response formats for MVCCScan @@ -99,7 +99,7 @@ func (x ScanFormat) String() string { return proto.EnumName(ScanFormat_name, int32(x)) } func (ScanFormat) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{1} + return fileDescriptor_api_58bfa95f1a7467a6, []int{1} } type ChecksumMode int32 @@ -146,7 +146,7 @@ func (x ChecksumMode) String() string { return proto.EnumName(ChecksumMode_name, int32(x)) } func (ChecksumMode) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{2} + return fileDescriptor_api_58bfa95f1a7467a6, []int{2} } // PushTxnType determines what action to take when pushing a transaction. @@ -177,7 +177,7 @@ func (x PushTxnType) String() string { return proto.EnumName(PushTxnType_name, int32(x)) } func (PushTxnType) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{3} + return fileDescriptor_api_58bfa95f1a7467a6, []int{3} } type ExternalStorageProvider int32 @@ -215,7 +215,7 @@ func (x ExternalStorageProvider) String() string { return proto.EnumName(ExternalStorageProvider_name, int32(x)) } func (ExternalStorageProvider) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{4} + return fileDescriptor_api_58bfa95f1a7467a6, []int{4} } type MVCCFilter int32 @@ -238,7 +238,7 @@ func (x MVCCFilter) String() string { return proto.EnumName(MVCCFilter_name, int32(x)) } func (MVCCFilter) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{5} + return fileDescriptor_api_58bfa95f1a7467a6, []int{5} } type ResponseHeader_ResumeReason int32 @@ -264,7 +264,7 @@ func (x ResponseHeader_ResumeReason) String() string { return proto.EnumName(ResponseHeader_ResumeReason_name, int32(x)) } func (ResponseHeader_ResumeReason) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{2, 0} + return fileDescriptor_api_58bfa95f1a7467a6, []int{2, 0} } type CheckConsistencyResponse_Status int32 @@ -306,7 +306,7 @@ func (x CheckConsistencyResponse_Status) String() string { return proto.EnumName(CheckConsistencyResponse_Status_name, int32(x)) } func (CheckConsistencyResponse_Status) EnumDescriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{26, 0} + return fileDescriptor_api_58bfa95f1a7467a6, []int{26, 0} } // RangeInfo describes a range which executed a request. It contains @@ -320,7 +320,7 @@ func (m *RangeInfo) Reset() { *m = RangeInfo{} } func (m *RangeInfo) String() string { return proto.CompactTextString(m) } func (*RangeInfo) ProtoMessage() {} func (*RangeInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{0} + return fileDescriptor_api_58bfa95f1a7467a6, []int{0} } func (m *RangeInfo) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -363,7 +363,7 @@ func (m *RequestHeader) Reset() { *m = RequestHeader{} } func (m *RequestHeader) String() string { return proto.CompactTextString(m) } func (*RequestHeader) ProtoMessage() {} func (*RequestHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{1} + return fileDescriptor_api_58bfa95f1a7467a6, []int{1} } func (m *RequestHeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -425,7 +425,7 @@ func (m *ResponseHeader) Reset() { *m = ResponseHeader{} } func (m *ResponseHeader) String() string { return proto.CompactTextString(m) } func (*ResponseHeader) ProtoMessage() {} func (*ResponseHeader) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{2} + return fileDescriptor_api_58bfa95f1a7467a6, []int{2} } func (m *ResponseHeader) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -459,7 +459,7 @@ func (m *GetRequest) Reset() { *m = GetRequest{} } func (m *GetRequest) String() string { return proto.CompactTextString(m) } func (*GetRequest) ProtoMessage() {} func (*GetRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{3} + return fileDescriptor_api_58bfa95f1a7467a6, []int{3} } func (m *GetRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -497,7 +497,7 @@ func (m *GetResponse) Reset() { *m = GetResponse{} } func (m *GetResponse) String() string { return proto.CompactTextString(m) } func (*GetResponse) ProtoMessage() {} func (*GetResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{4} + return fileDescriptor_api_58bfa95f1a7467a6, []int{4} } func (m *GetResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -540,7 +540,7 @@ func (m *PutRequest) Reset() { *m = PutRequest{} } func (m *PutRequest) String() string { return proto.CompactTextString(m) } func (*PutRequest) ProtoMessage() {} func (*PutRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{5} + return fileDescriptor_api_58bfa95f1a7467a6, []int{5} } func (m *PutRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -574,7 +574,7 @@ func (m *PutResponse) Reset() { *m = PutResponse{} } func (m *PutResponse) String() string { return proto.CompactTextString(m) } func (*PutResponse) ProtoMessage() {} func (*PutResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{6} + return fileDescriptor_api_58bfa95f1a7467a6, []int{6} } func (m *PutResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -628,7 +628,7 @@ func (m *ConditionalPutRequest) Reset() { *m = ConditionalPutRequest{} } func (m *ConditionalPutRequest) String() string { return proto.CompactTextString(m) } func (*ConditionalPutRequest) ProtoMessage() {} func (*ConditionalPutRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{7} + return fileDescriptor_api_58bfa95f1a7467a6, []int{7} } func (m *ConditionalPutRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -663,7 +663,7 @@ func (m *ConditionalPutResponse) Reset() { *m = ConditionalPutResponse{} func (m *ConditionalPutResponse) String() string { return proto.CompactTextString(m) } func (*ConditionalPutResponse) ProtoMessage() {} func (*ConditionalPutResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{8} + return fileDescriptor_api_58bfa95f1a7467a6, []int{8} } func (m *ConditionalPutResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -709,7 +709,7 @@ func (m *InitPutRequest) Reset() { *m = InitPutRequest{} } func (m *InitPutRequest) String() string { return proto.CompactTextString(m) } func (*InitPutRequest) ProtoMessage() {} func (*InitPutRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{9} + return fileDescriptor_api_58bfa95f1a7467a6, []int{9} } func (m *InitPutRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -743,7 +743,7 @@ func (m *InitPutResponse) Reset() { *m = InitPutResponse{} } func (m *InitPutResponse) String() string { return proto.CompactTextString(m) } func (*InitPutResponse) ProtoMessage() {} func (*InitPutResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{10} + return fileDescriptor_api_58bfa95f1a7467a6, []int{10} } func (m *InitPutResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -783,7 +783,7 @@ func (m *IncrementRequest) Reset() { *m = IncrementRequest{} } func (m *IncrementRequest) String() string { return proto.CompactTextString(m) } func (*IncrementRequest) ProtoMessage() {} func (*IncrementRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{11} + return fileDescriptor_api_58bfa95f1a7467a6, []int{11} } func (m *IncrementRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -820,7 +820,7 @@ func (m *IncrementResponse) Reset() { *m = IncrementResponse{} } func (m *IncrementResponse) String() string { return proto.CompactTextString(m) } func (*IncrementResponse) ProtoMessage() {} func (*IncrementResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{12} + return fileDescriptor_api_58bfa95f1a7467a6, []int{12} } func (m *IncrementResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -854,7 +854,7 @@ func (m *DeleteRequest) Reset() { *m = DeleteRequest{} } func (m *DeleteRequest) String() string { return proto.CompactTextString(m) } func (*DeleteRequest) ProtoMessage() {} func (*DeleteRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{13} + return fileDescriptor_api_58bfa95f1a7467a6, []int{13} } func (m *DeleteRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -888,7 +888,7 @@ func (m *DeleteResponse) Reset() { *m = DeleteResponse{} } func (m *DeleteResponse) String() string { return proto.CompactTextString(m) } func (*DeleteResponse) ProtoMessage() {} func (*DeleteResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{14} + return fileDescriptor_api_58bfa95f1a7467a6, []int{14} } func (m *DeleteResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -940,7 +940,7 @@ func (m *DeleteRangeRequest) Reset() { *m = DeleteRangeRequest{} } func (m *DeleteRangeRequest) String() string { return proto.CompactTextString(m) } func (*DeleteRangeRequest) ProtoMessage() {} func (*DeleteRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{15} + return fileDescriptor_api_58bfa95f1a7467a6, []int{15} } func (m *DeleteRangeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -977,7 +977,7 @@ func (m *DeleteRangeResponse) Reset() { *m = DeleteRangeResponse{} } func (m *DeleteRangeResponse) String() string { return proto.CompactTextString(m) } func (*DeleteRangeResponse) ProtoMessage() {} func (*DeleteRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{16} + return fileDescriptor_api_58bfa95f1a7467a6, []int{16} } func (m *DeleteRangeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1024,7 +1024,7 @@ func (m *ClearRangeRequest) Reset() { *m = ClearRangeRequest{} } func (m *ClearRangeRequest) String() string { return proto.CompactTextString(m) } func (*ClearRangeRequest) ProtoMessage() {} func (*ClearRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{17} + return fileDescriptor_api_58bfa95f1a7467a6, []int{17} } func (m *ClearRangeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1058,7 +1058,7 @@ func (m *ClearRangeResponse) Reset() { *m = ClearRangeResponse{} } func (m *ClearRangeResponse) String() string { return proto.CompactTextString(m) } func (*ClearRangeResponse) ProtoMessage() {} func (*ClearRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{18} + return fileDescriptor_api_58bfa95f1a7467a6, []int{18} } func (m *ClearRangeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1099,7 +1099,7 @@ func (m *RevertRangeRequest) Reset() { *m = RevertRangeRequest{} } func (m *RevertRangeRequest) String() string { return proto.CompactTextString(m) } func (*RevertRangeRequest) ProtoMessage() {} func (*RevertRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{19} + return fileDescriptor_api_58bfa95f1a7467a6, []int{19} } func (m *RevertRangeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1133,7 +1133,7 @@ func (m *RevertRangeResponse) Reset() { *m = RevertRangeResponse{} } func (m *RevertRangeResponse) String() string { return proto.CompactTextString(m) } func (*RevertRangeResponse) ProtoMessage() {} func (*RevertRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{20} + return fileDescriptor_api_58bfa95f1a7467a6, []int{20} } func (m *RevertRangeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1173,7 +1173,7 @@ func (m *ScanRequest) Reset() { *m = ScanRequest{} } func (m *ScanRequest) String() string { return proto.CompactTextString(m) } func (*ScanRequest) ProtoMessage() {} func (*ScanRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{21} + return fileDescriptor_api_58bfa95f1a7467a6, []int{21} } func (m *ScanRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1220,7 +1220,7 @@ func (m *ScanResponse) Reset() { *m = ScanResponse{} } func (m *ScanResponse) String() string { return proto.CompactTextString(m) } func (*ScanResponse) ProtoMessage() {} func (*ScanResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{22} + return fileDescriptor_api_58bfa95f1a7467a6, []int{22} } func (m *ScanResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1260,7 +1260,7 @@ func (m *ReverseScanRequest) Reset() { *m = ReverseScanRequest{} } func (m *ReverseScanRequest) String() string { return proto.CompactTextString(m) } func (*ReverseScanRequest) ProtoMessage() {} func (*ReverseScanRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{23} + return fileDescriptor_api_58bfa95f1a7467a6, []int{23} } func (m *ReverseScanRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1307,7 +1307,7 @@ func (m *ReverseScanResponse) Reset() { *m = ReverseScanResponse{} } func (m *ReverseScanResponse) String() string { return proto.CompactTextString(m) } func (*ReverseScanResponse) ProtoMessage() {} func (*ReverseScanResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{24} + return fileDescriptor_api_58bfa95f1a7467a6, []int{24} } func (m *ReverseScanResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1360,7 +1360,7 @@ func (m *CheckConsistencyRequest) Reset() { *m = CheckConsistencyRequest func (m *CheckConsistencyRequest) String() string { return proto.CompactTextString(m) } func (*CheckConsistencyRequest) ProtoMessage() {} func (*CheckConsistencyRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{25} + return fileDescriptor_api_58bfa95f1a7467a6, []int{25} } func (m *CheckConsistencyRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1397,7 +1397,7 @@ func (m *CheckConsistencyResponse) Reset() { *m = CheckConsistencyRespon func (m *CheckConsistencyResponse) String() string { return proto.CompactTextString(m) } func (*CheckConsistencyResponse) ProtoMessage() {} func (*CheckConsistencyResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{26} + return fileDescriptor_api_58bfa95f1a7467a6, []int{26} } func (m *CheckConsistencyResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1441,7 +1441,7 @@ func (m *CheckConsistencyResponse_Result) Reset() { *m = CheckConsistenc func (m *CheckConsistencyResponse_Result) String() string { return proto.CompactTextString(m) } func (*CheckConsistencyResponse_Result) ProtoMessage() {} func (*CheckConsistencyResponse_Result) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{26, 0} + return fileDescriptor_api_58bfa95f1a7467a6, []int{26, 0} } func (m *CheckConsistencyResponse_Result) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1489,7 +1489,7 @@ func (m *RecomputeStatsRequest) Reset() { *m = RecomputeStatsRequest{} } func (m *RecomputeStatsRequest) String() string { return proto.CompactTextString(m) } func (*RecomputeStatsRequest) ProtoMessage() {} func (*RecomputeStatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{27} + return fileDescriptor_api_58bfa95f1a7467a6, []int{27} } func (m *RecomputeStatsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1525,7 +1525,7 @@ func (m *RecomputeStatsResponse) Reset() { *m = RecomputeStatsResponse{} func (m *RecomputeStatsResponse) String() string { return proto.CompactTextString(m) } func (*RecomputeStatsResponse) ProtoMessage() {} func (*RecomputeStatsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{28} + return fileDescriptor_api_58bfa95f1a7467a6, []int{28} } func (m *RecomputeStatsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1613,7 +1613,7 @@ func (m *EndTxnRequest) Reset() { *m = EndTxnRequest{} } func (m *EndTxnRequest) String() string { return proto.CompactTextString(m) } func (*EndTxnRequest) ProtoMessage() {} func (*EndTxnRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{29} + return fileDescriptor_api_58bfa95f1a7467a6, []int{29} } func (m *EndTxnRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1659,7 +1659,7 @@ func (m *EndTxnResponse) Reset() { *m = EndTxnResponse{} } func (m *EndTxnResponse) String() string { return proto.CompactTextString(m) } func (*EndTxnResponse) ProtoMessage() {} func (*EndTxnResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{30} + return fileDescriptor_api_58bfa95f1a7467a6, []int{30} } func (m *EndTxnResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1720,7 +1720,7 @@ func (m *AdminSplitRequest) Reset() { *m = AdminSplitRequest{} } func (m *AdminSplitRequest) String() string { return proto.CompactTextString(m) } func (*AdminSplitRequest) ProtoMessage() {} func (*AdminSplitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{31} + return fileDescriptor_api_58bfa95f1a7467a6, []int{31} } func (m *AdminSplitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1755,7 +1755,7 @@ func (m *AdminSplitResponse) Reset() { *m = AdminSplitResponse{} } func (m *AdminSplitResponse) String() string { return proto.CompactTextString(m) } func (*AdminSplitResponse) ProtoMessage() {} func (*AdminSplitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{32} + return fileDescriptor_api_58bfa95f1a7467a6, []int{32} } func (m *AdminSplitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1794,7 +1794,7 @@ func (m *AdminUnsplitRequest) Reset() { *m = AdminUnsplitRequest{} } func (m *AdminUnsplitRequest) String() string { return proto.CompactTextString(m) } func (*AdminUnsplitRequest) ProtoMessage() {} func (*AdminUnsplitRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{33} + return fileDescriptor_api_58bfa95f1a7467a6, []int{33} } func (m *AdminUnsplitRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1829,7 +1829,7 @@ func (m *AdminUnsplitResponse) Reset() { *m = AdminUnsplitResponse{} } func (m *AdminUnsplitResponse) String() string { return proto.CompactTextString(m) } func (*AdminUnsplitResponse) ProtoMessage() {} func (*AdminUnsplitResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{34} + return fileDescriptor_api_58bfa95f1a7467a6, []int{34} } func (m *AdminUnsplitResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1872,7 +1872,7 @@ func (m *AdminMergeRequest) Reset() { *m = AdminMergeRequest{} } func (m *AdminMergeRequest) String() string { return proto.CompactTextString(m) } func (*AdminMergeRequest) ProtoMessage() {} func (*AdminMergeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{35} + return fileDescriptor_api_58bfa95f1a7467a6, []int{35} } func (m *AdminMergeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1907,7 +1907,7 @@ func (m *AdminMergeResponse) Reset() { *m = AdminMergeResponse{} } func (m *AdminMergeResponse) String() string { return proto.CompactTextString(m) } func (*AdminMergeResponse) ProtoMessage() {} func (*AdminMergeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{36} + return fileDescriptor_api_58bfa95f1a7467a6, []int{36} } func (m *AdminMergeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1945,7 +1945,7 @@ func (m *AdminTransferLeaseRequest) Reset() { *m = AdminTransferLeaseReq func (m *AdminTransferLeaseRequest) String() string { return proto.CompactTextString(m) } func (*AdminTransferLeaseRequest) ProtoMessage() {} func (*AdminTransferLeaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{37} + return fileDescriptor_api_58bfa95f1a7467a6, []int{37} } func (m *AdminTransferLeaseRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -1978,7 +1978,7 @@ func (m *AdminTransferLeaseResponse) Reset() { *m = AdminTransferLeaseRe func (m *AdminTransferLeaseResponse) String() string { return proto.CompactTextString(m) } func (*AdminTransferLeaseResponse) ProtoMessage() {} func (*AdminTransferLeaseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{38} + return fileDescriptor_api_58bfa95f1a7467a6, []int{38} } func (m *AdminTransferLeaseResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2013,7 +2013,7 @@ func (m *ReplicationChange) Reset() { *m = ReplicationChange{} } func (m *ReplicationChange) String() string { return proto.CompactTextString(m) } func (*ReplicationChange) ProtoMessage() {} func (*ReplicationChange) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{39} + return fileDescriptor_api_58bfa95f1a7467a6, []int{39} } func (m *ReplicationChange) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2071,7 +2071,7 @@ func (m *AdminChangeReplicasRequest) Reset() { *m = AdminChangeReplicasR func (m *AdminChangeReplicasRequest) String() string { return proto.CompactTextString(m) } func (*AdminChangeReplicasRequest) ProtoMessage() {} func (*AdminChangeReplicasRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{40} + return fileDescriptor_api_58bfa95f1a7467a6, []int{40} } func (m *AdminChangeReplicasRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2106,7 +2106,7 @@ func (m *AdminChangeReplicasResponse) Reset() { *m = AdminChangeReplicas func (m *AdminChangeReplicasResponse) String() string { return proto.CompactTextString(m) } func (*AdminChangeReplicasResponse) ProtoMessage() {} func (*AdminChangeReplicasResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{41} + return fileDescriptor_api_58bfa95f1a7467a6, []int{41} } func (m *AdminChangeReplicasResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2143,7 +2143,7 @@ func (m *AdminRelocateRangeRequest) Reset() { *m = AdminRelocateRangeReq func (m *AdminRelocateRangeRequest) String() string { return proto.CompactTextString(m) } func (*AdminRelocateRangeRequest) ProtoMessage() {} func (*AdminRelocateRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{42} + return fileDescriptor_api_58bfa95f1a7467a6, []int{42} } func (m *AdminRelocateRangeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2176,7 +2176,7 @@ func (m *AdminRelocateRangeResponse) Reset() { *m = AdminRelocateRangeRe func (m *AdminRelocateRangeResponse) String() string { return proto.CompactTextString(m) } func (*AdminRelocateRangeResponse) ProtoMessage() {} func (*AdminRelocateRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{43} + return fileDescriptor_api_58bfa95f1a7467a6, []int{43} } func (m *AdminRelocateRangeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2215,7 +2215,7 @@ func (m *HeartbeatTxnRequest) Reset() { *m = HeartbeatTxnRequest{} } func (m *HeartbeatTxnRequest) String() string { return proto.CompactTextString(m) } func (*HeartbeatTxnRequest) ProtoMessage() {} func (*HeartbeatTxnRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{44} + return fileDescriptor_api_58bfa95f1a7467a6, []int{44} } func (m *HeartbeatTxnRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2252,7 +2252,7 @@ func (m *HeartbeatTxnResponse) Reset() { *m = HeartbeatTxnResponse{} } func (m *HeartbeatTxnResponse) String() string { return proto.CompactTextString(m) } func (*HeartbeatTxnResponse) ProtoMessage() {} func (*HeartbeatTxnResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{45} + return fileDescriptor_api_58bfa95f1a7467a6, []int{45} } func (m *HeartbeatTxnResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2290,7 +2290,7 @@ func (m *GCRequest) Reset() { *m = GCRequest{} } func (m *GCRequest) String() string { return proto.CompactTextString(m) } func (*GCRequest) ProtoMessage() {} func (*GCRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{46} + return fileDescriptor_api_58bfa95f1a7467a6, []int{46} } func (m *GCRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2324,7 +2324,7 @@ func (m *GCRequest_GCKey) Reset() { *m = GCRequest_GCKey{} } func (m *GCRequest_GCKey) String() string { return proto.CompactTextString(m) } func (*GCRequest_GCKey) ProtoMessage() {} func (*GCRequest_GCKey) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{46, 0} + return fileDescriptor_api_58bfa95f1a7467a6, []int{46, 0} } func (m *GCRequest_GCKey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2358,7 +2358,7 @@ func (m *GCResponse) Reset() { *m = GCResponse{} } func (m *GCResponse) String() string { return proto.CompactTextString(m) } func (*GCResponse) ProtoMessage() {} func (*GCResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{47} + return fileDescriptor_api_58bfa95f1a7467a6, []int{47} } func (m *GCResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2427,7 +2427,7 @@ func (m *PushTxnRequest) Reset() { *m = PushTxnRequest{} } func (m *PushTxnRequest) String() string { return proto.CompactTextString(m) } func (*PushTxnRequest) ProtoMessage() {} func (*PushTxnRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{48} + return fileDescriptor_api_58bfa95f1a7467a6, []int{48} } func (m *PushTxnRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2470,7 +2470,7 @@ func (m *PushTxnResponse) Reset() { *m = PushTxnResponse{} } func (m *PushTxnResponse) String() string { return proto.CompactTextString(m) } func (*PushTxnResponse) ProtoMessage() {} func (*PushTxnResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{49} + return fileDescriptor_api_58bfa95f1a7467a6, []int{49} } func (m *PushTxnResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2517,7 +2517,7 @@ func (m *RecoverTxnRequest) Reset() { *m = RecoverTxnRequest{} } func (m *RecoverTxnRequest) String() string { return proto.CompactTextString(m) } func (*RecoverTxnRequest) ProtoMessage() {} func (*RecoverTxnRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{50} + return fileDescriptor_api_58bfa95f1a7467a6, []int{50} } func (m *RecoverTxnRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2553,7 +2553,7 @@ func (m *RecoverTxnResponse) Reset() { *m = RecoverTxnResponse{} } func (m *RecoverTxnResponse) String() string { return proto.CompactTextString(m) } func (*RecoverTxnResponse) ProtoMessage() {} func (*RecoverTxnResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{51} + return fileDescriptor_api_58bfa95f1a7467a6, []int{51} } func (m *RecoverTxnResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2597,7 +2597,7 @@ func (m *QueryTxnRequest) Reset() { *m = QueryTxnRequest{} } func (m *QueryTxnRequest) String() string { return proto.CompactTextString(m) } func (*QueryTxnRequest) ProtoMessage() {} func (*QueryTxnRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{52} + return fileDescriptor_api_58bfa95f1a7467a6, []int{52} } func (m *QueryTxnRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2636,7 +2636,7 @@ func (m *QueryTxnResponse) Reset() { *m = QueryTxnResponse{} } func (m *QueryTxnResponse) String() string { return proto.CompactTextString(m) } func (*QueryTxnResponse) ProtoMessage() {} func (*QueryTxnResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{53} + return fileDescriptor_api_58bfa95f1a7467a6, []int{53} } func (m *QueryTxnResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2696,7 +2696,7 @@ func (m *QueryIntentRequest) Reset() { *m = QueryIntentRequest{} } func (m *QueryIntentRequest) String() string { return proto.CompactTextString(m) } func (*QueryIntentRequest) ProtoMessage() {} func (*QueryIntentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{54} + return fileDescriptor_api_58bfa95f1a7467a6, []int{54} } func (m *QueryIntentRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2732,7 +2732,7 @@ func (m *QueryIntentResponse) Reset() { *m = QueryIntentResponse{} } func (m *QueryIntentResponse) String() string { return proto.CompactTextString(m) } func (*QueryIntentResponse) ProtoMessage() {} func (*QueryIntentResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{55} + return fileDescriptor_api_58bfa95f1a7467a6, []int{55} } func (m *QueryIntentResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2778,7 +2778,7 @@ func (m *ResolveIntentRequest) Reset() { *m = ResolveIntentRequest{} } func (m *ResolveIntentRequest) String() string { return proto.CompactTextString(m) } func (*ResolveIntentRequest) ProtoMessage() {} func (*ResolveIntentRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{56} + return fileDescriptor_api_58bfa95f1a7467a6, []int{56} } func (m *ResolveIntentRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2813,7 +2813,7 @@ func (m *ResolveIntentResponse) Reset() { *m = ResolveIntentResponse{} } func (m *ResolveIntentResponse) String() string { return proto.CompactTextString(m) } func (*ResolveIntentResponse) ProtoMessage() {} func (*ResolveIntentResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{57} + return fileDescriptor_api_58bfa95f1a7467a6, []int{57} } func (m *ResolveIntentResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2863,7 +2863,7 @@ func (m *ResolveIntentRangeRequest) Reset() { *m = ResolveIntentRangeReq func (m *ResolveIntentRangeRequest) String() string { return proto.CompactTextString(m) } func (*ResolveIntentRangeRequest) ProtoMessage() {} func (*ResolveIntentRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{58} + return fileDescriptor_api_58bfa95f1a7467a6, []int{58} } func (m *ResolveIntentRangeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2898,7 +2898,7 @@ func (m *ResolveIntentRangeResponse) Reset() { *m = ResolveIntentRangeRe func (m *ResolveIntentRangeResponse) String() string { return proto.CompactTextString(m) } func (*ResolveIntentRangeResponse) ProtoMessage() {} func (*ResolveIntentRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{59} + return fileDescriptor_api_58bfa95f1a7467a6, []int{59} } func (m *ResolveIntentRangeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2935,7 +2935,7 @@ func (m *MergeRequest) Reset() { *m = MergeRequest{} } func (m *MergeRequest) String() string { return proto.CompactTextString(m) } func (*MergeRequest) ProtoMessage() {} func (*MergeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{60} + return fileDescriptor_api_58bfa95f1a7467a6, []int{60} } func (m *MergeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -2969,7 +2969,7 @@ func (m *MergeResponse) Reset() { *m = MergeResponse{} } func (m *MergeResponse) String() string { return proto.CompactTextString(m) } func (*MergeResponse) ProtoMessage() {} func (*MergeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{61} + return fileDescriptor_api_58bfa95f1a7467a6, []int{61} } func (m *MergeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3014,7 +3014,7 @@ func (m *TruncateLogRequest) Reset() { *m = TruncateLogRequest{} } func (m *TruncateLogRequest) String() string { return proto.CompactTextString(m) } func (*TruncateLogRequest) ProtoMessage() {} func (*TruncateLogRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{62} + return fileDescriptor_api_58bfa95f1a7467a6, []int{62} } func (m *TruncateLogRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3048,7 +3048,7 @@ func (m *TruncateLogResponse) Reset() { *m = TruncateLogResponse{} } func (m *TruncateLogResponse) String() string { return proto.CompactTextString(m) } func (*TruncateLogResponse) ProtoMessage() {} func (*TruncateLogResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{63} + return fileDescriptor_api_58bfa95f1a7467a6, []int{63} } func (m *TruncateLogResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3092,7 +3092,7 @@ func (m *RequestLeaseRequest) Reset() { *m = RequestLeaseRequest{} } func (m *RequestLeaseRequest) String() string { return proto.CompactTextString(m) } func (*RequestLeaseRequest) ProtoMessage() {} func (*RequestLeaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{64} + return fileDescriptor_api_58bfa95f1a7467a6, []int{64} } func (m *RequestLeaseRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3141,7 +3141,7 @@ func (m *TransferLeaseRequest) Reset() { *m = TransferLeaseRequest{} } func (m *TransferLeaseRequest) String() string { return proto.CompactTextString(m) } func (*TransferLeaseRequest) ProtoMessage() {} func (*TransferLeaseRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{65} + return fileDescriptor_api_58bfa95f1a7467a6, []int{65} } func (m *TransferLeaseRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3178,7 +3178,7 @@ func (m *LeaseInfoRequest) Reset() { *m = LeaseInfoRequest{} } func (m *LeaseInfoRequest) String() string { return proto.CompactTextString(m) } func (*LeaseInfoRequest) ProtoMessage() {} func (*LeaseInfoRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{66} + return fileDescriptor_api_58bfa95f1a7467a6, []int{66} } func (m *LeaseInfoRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3215,7 +3215,7 @@ func (m *LeaseInfoResponse) Reset() { *m = LeaseInfoResponse{} } func (m *LeaseInfoResponse) String() string { return proto.CompactTextString(m) } func (*LeaseInfoResponse) ProtoMessage() {} func (*LeaseInfoResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{67} + return fileDescriptor_api_58bfa95f1a7467a6, []int{67} } func (m *LeaseInfoResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3250,7 +3250,7 @@ func (m *RequestLeaseResponse) Reset() { *m = RequestLeaseResponse{} } func (m *RequestLeaseResponse) String() string { return proto.CompactTextString(m) } func (*RequestLeaseResponse) ProtoMessage() {} func (*RequestLeaseResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{68} + return fileDescriptor_api_58bfa95f1a7467a6, []int{68} } func (m *RequestLeaseResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3305,7 +3305,7 @@ func (m *ComputeChecksumRequest) Reset() { *m = ComputeChecksumRequest{} func (m *ComputeChecksumRequest) String() string { return proto.CompactTextString(m) } func (*ComputeChecksumRequest) ProtoMessage() {} func (*ComputeChecksumRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{69} + return fileDescriptor_api_58bfa95f1a7467a6, []int{69} } func (m *ComputeChecksumRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3342,7 +3342,7 @@ func (m *ComputeChecksumResponse) Reset() { *m = ComputeChecksumResponse func (m *ComputeChecksumResponse) String() string { return proto.CompactTextString(m) } func (*ComputeChecksumResponse) ProtoMessage() {} func (*ComputeChecksumResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{70} + return fileDescriptor_api_58bfa95f1a7467a6, []int{70} } func (m *ComputeChecksumResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3381,7 +3381,7 @@ func (m *ExternalStorage) Reset() { *m = ExternalStorage{} } func (m *ExternalStorage) String() string { return proto.CompactTextString(m) } func (*ExternalStorage) ProtoMessage() {} func (*ExternalStorage) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{71} + return fileDescriptor_api_58bfa95f1a7467a6, []int{71} } func (m *ExternalStorage) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3415,7 +3415,7 @@ func (m *ExternalStorage_LocalFilePath) Reset() { *m = ExternalStorage_L func (m *ExternalStorage_LocalFilePath) String() string { return proto.CompactTextString(m) } func (*ExternalStorage_LocalFilePath) ProtoMessage() {} func (*ExternalStorage_LocalFilePath) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{71, 0} + return fileDescriptor_api_58bfa95f1a7467a6, []int{71, 0} } func (m *ExternalStorage_LocalFilePath) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3448,7 +3448,7 @@ func (m *ExternalStorage_Http) Reset() { *m = ExternalStorage_Http{} } func (m *ExternalStorage_Http) String() string { return proto.CompactTextString(m) } func (*ExternalStorage_Http) ProtoMessage() {} func (*ExternalStorage_Http) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{71, 1} + return fileDescriptor_api_58bfa95f1a7467a6, []int{71, 1} } func (m *ExternalStorage_Http) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3488,7 +3488,7 @@ func (m *ExternalStorage_S3) Reset() { *m = ExternalStorage_S3{} } func (m *ExternalStorage_S3) String() string { return proto.CompactTextString(m) } func (*ExternalStorage_S3) ProtoMessage() {} func (*ExternalStorage_S3) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{71, 2} + return fileDescriptor_api_58bfa95f1a7467a6, []int{71, 2} } func (m *ExternalStorage_S3) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3527,7 +3527,7 @@ func (m *ExternalStorage_GCS) Reset() { *m = ExternalStorage_GCS{} } func (m *ExternalStorage_GCS) String() string { return proto.CompactTextString(m) } func (*ExternalStorage_GCS) ProtoMessage() {} func (*ExternalStorage_GCS) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{71, 3} + return fileDescriptor_api_58bfa95f1a7467a6, []int{71, 3} } func (m *ExternalStorage_GCS) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3563,7 +3563,7 @@ func (m *ExternalStorage_Azure) Reset() { *m = ExternalStorage_Azure{} } func (m *ExternalStorage_Azure) String() string { return proto.CompactTextString(m) } func (*ExternalStorage_Azure) ProtoMessage() {} func (*ExternalStorage_Azure) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{71, 4} + return fileDescriptor_api_58bfa95f1a7467a6, []int{71, 4} } func (m *ExternalStorage_Azure) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3602,7 +3602,7 @@ func (m *ExternalStorage_Workload) Reset() { *m = ExternalStorage_Worklo func (m *ExternalStorage_Workload) String() string { return proto.CompactTextString(m) } func (*ExternalStorage_Workload) ProtoMessage() {} func (*ExternalStorage_Workload) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{71, 5} + return fileDescriptor_api_58bfa95f1a7467a6, []int{71, 5} } func (m *ExternalStorage_Workload) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3642,7 +3642,7 @@ func (m *WriteBatchRequest) Reset() { *m = WriteBatchRequest{} } func (m *WriteBatchRequest) String() string { return proto.CompactTextString(m) } func (*WriteBatchRequest) ProtoMessage() {} func (*WriteBatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{72} + return fileDescriptor_api_58bfa95f1a7467a6, []int{72} } func (m *WriteBatchRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3676,7 +3676,7 @@ func (m *WriteBatchResponse) Reset() { *m = WriteBatchResponse{} } func (m *WriteBatchResponse) String() string { return proto.CompactTextString(m) } func (*WriteBatchResponse) ProtoMessage() {} func (*WriteBatchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{73} + return fileDescriptor_api_58bfa95f1a7467a6, []int{73} } func (m *WriteBatchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3710,7 +3710,7 @@ func (m *FileEncryptionOptions) Reset() { *m = FileEncryptionOptions{} } func (m *FileEncryptionOptions) String() string { return proto.CompactTextString(m) } func (*FileEncryptionOptions) ProtoMessage() {} func (*FileEncryptionOptions) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{74} + return fileDescriptor_api_58bfa95f1a7467a6, []int{74} } func (m *FileEncryptionOptions) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3767,13 +3767,20 @@ type ExportRequest struct { // locality KV in the map. StorageByLocalityKV map[string]*ExternalStorage `protobuf:"bytes,8,rep,name=storage_by_locality_kv,json=storageByLocalityKv,proto3" json:"storage_by_locality_kv,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` Encryption *FileEncryptionOptions `protobuf:"bytes,9,opt,name=encryption,proto3" json:"encryption,omitempty"` + // TargetFileSize is the byte size target for individual files in the + // response. If the MVCCFilter is Latest, the returned files will only be + // larger than this value if an individual KV pair is larger than this value. + // If the MVCCFilter is All then the file may exceed this value by at most the + // size of all versions of a single key. If TargetFileSize is non-positive + // then there is no limit. + TargetFileSize int64 `protobuf:"varint,10,opt,name=target_file_size,json=targetFileSize,proto3" json:"target_file_size,omitempty"` } func (m *ExportRequest) Reset() { *m = ExportRequest{} } func (m *ExportRequest) String() string { return proto.CompactTextString(m) } func (*ExportRequest) ProtoMessage() {} func (*ExportRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{75} + return fileDescriptor_api_58bfa95f1a7467a6, []int{75} } func (m *ExportRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3809,7 +3816,7 @@ func (m *BulkOpSummary) Reset() { *m = BulkOpSummary{} } func (m *BulkOpSummary) String() string { return proto.CompactTextString(m) } func (*BulkOpSummary) ProtoMessage() {} func (*BulkOpSummary) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{76} + return fileDescriptor_api_58bfa95f1a7467a6, []int{76} } func (m *BulkOpSummary) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3845,7 +3852,7 @@ func (m *ExportResponse) Reset() { *m = ExportResponse{} } func (m *ExportResponse) String() string { return proto.CompactTextString(m) } func (*ExportResponse) ProtoMessage() {} func (*ExportResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{77} + return fileDescriptor_api_58bfa95f1a7467a6, []int{77} } func (m *ExportResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3885,7 +3892,7 @@ func (m *ExportResponse_File) Reset() { *m = ExportResponse_File{} } func (m *ExportResponse_File) String() string { return proto.CompactTextString(m) } func (*ExportResponse_File) ProtoMessage() {} func (*ExportResponse_File) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{77, 0} + return fileDescriptor_api_58bfa95f1a7467a6, []int{77, 0} } func (m *ExportResponse_File) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3936,7 +3943,7 @@ func (m *ImportRequest) Reset() { *m = ImportRequest{} } func (m *ImportRequest) String() string { return proto.CompactTextString(m) } func (*ImportRequest) ProtoMessage() {} func (*ImportRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{78} + return fileDescriptor_api_58bfa95f1a7467a6, []int{78} } func (m *ImportRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -3971,7 +3978,7 @@ func (m *ImportRequest_File) Reset() { *m = ImportRequest_File{} } func (m *ImportRequest_File) String() string { return proto.CompactTextString(m) } func (*ImportRequest_File) ProtoMessage() {} func (*ImportRequest_File) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{78, 0} + return fileDescriptor_api_58bfa95f1a7467a6, []int{78, 0} } func (m *ImportRequest_File) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4007,7 +4014,7 @@ func (m *ImportRequest_TableRekey) Reset() { *m = ImportRequest_TableRek func (m *ImportRequest_TableRekey) String() string { return proto.CompactTextString(m) } func (*ImportRequest_TableRekey) ProtoMessage() {} func (*ImportRequest_TableRekey) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{78, 1} + return fileDescriptor_api_58bfa95f1a7467a6, []int{78, 1} } func (m *ImportRequest_TableRekey) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4042,7 +4049,7 @@ func (m *ImportResponse) Reset() { *m = ImportResponse{} } func (m *ImportResponse) String() string { return proto.CompactTextString(m) } func (*ImportResponse) ProtoMessage() {} func (*ImportResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{79} + return fileDescriptor_api_58bfa95f1a7467a6, []int{79} } func (m *ImportResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4080,7 +4087,7 @@ func (m *AdminScatterRequest) Reset() { *m = AdminScatterRequest{} } func (m *AdminScatterRequest) String() string { return proto.CompactTextString(m) } func (*AdminScatterRequest) ProtoMessage() {} func (*AdminScatterRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{80} + return fileDescriptor_api_58bfa95f1a7467a6, []int{80} } func (m *AdminScatterRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4115,7 +4122,7 @@ func (m *AdminScatterResponse) Reset() { *m = AdminScatterResponse{} } func (m *AdminScatterResponse) String() string { return proto.CompactTextString(m) } func (*AdminScatterResponse) ProtoMessage() {} func (*AdminScatterResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{81} + return fileDescriptor_api_58bfa95f1a7467a6, []int{81} } func (m *AdminScatterResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4148,7 +4155,7 @@ func (m *AdminScatterResponse_Range) Reset() { *m = AdminScatterResponse func (m *AdminScatterResponse_Range) String() string { return proto.CompactTextString(m) } func (*AdminScatterResponse_Range) ProtoMessage() {} func (*AdminScatterResponse_Range) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{81, 0} + return fileDescriptor_api_58bfa95f1a7467a6, []int{81, 0} } func (m *AdminScatterResponse_Range) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4193,7 +4200,7 @@ func (m *AdminVerifyProtectedTimestampRequest) Reset() { *m = AdminVerif func (m *AdminVerifyProtectedTimestampRequest) String() string { return proto.CompactTextString(m) } func (*AdminVerifyProtectedTimestampRequest) ProtoMessage() {} func (*AdminVerifyProtectedTimestampRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{82} + return fileDescriptor_api_58bfa95f1a7467a6, []int{82} } func (m *AdminVerifyProtectedTimestampRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4231,7 +4238,7 @@ func (m *AdminVerifyProtectedTimestampResponse) Reset() { *m = AdminVeri func (m *AdminVerifyProtectedTimestampResponse) String() string { return proto.CompactTextString(m) } func (*AdminVerifyProtectedTimestampResponse) ProtoMessage() {} func (*AdminVerifyProtectedTimestampResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{83} + return fileDescriptor_api_58bfa95f1a7467a6, []int{83} } func (m *AdminVerifyProtectedTimestampResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4284,7 +4291,7 @@ func (m *AddSSTableRequest) Reset() { *m = AddSSTableRequest{} } func (m *AddSSTableRequest) String() string { return proto.CompactTextString(m) } func (*AddSSTableRequest) ProtoMessage() {} func (*AddSSTableRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{84} + return fileDescriptor_api_58bfa95f1a7467a6, []int{84} } func (m *AddSSTableRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4318,7 +4325,7 @@ func (m *AddSSTableResponse) Reset() { *m = AddSSTableResponse{} } func (m *AddSSTableResponse) String() string { return proto.CompactTextString(m) } func (*AddSSTableResponse) ProtoMessage() {} func (*AddSSTableResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{85} + return fileDescriptor_api_58bfa95f1a7467a6, []int{85} } func (m *AddSSTableResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4362,7 +4369,7 @@ func (m *RefreshRequest) Reset() { *m = RefreshRequest{} } func (m *RefreshRequest) String() string { return proto.CompactTextString(m) } func (*RefreshRequest) ProtoMessage() {} func (*RefreshRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{86} + return fileDescriptor_api_58bfa95f1a7467a6, []int{86} } func (m *RefreshRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4396,7 +4403,7 @@ func (m *RefreshResponse) Reset() { *m = RefreshResponse{} } func (m *RefreshResponse) String() string { return proto.CompactTextString(m) } func (*RefreshResponse) ProtoMessage() {} func (*RefreshResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{87} + return fileDescriptor_api_58bfa95f1a7467a6, []int{87} } func (m *RefreshResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4435,7 +4442,7 @@ func (m *RefreshRangeRequest) Reset() { *m = RefreshRangeRequest{} } func (m *RefreshRangeRequest) String() string { return proto.CompactTextString(m) } func (*RefreshRangeRequest) ProtoMessage() {} func (*RefreshRangeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{88} + return fileDescriptor_api_58bfa95f1a7467a6, []int{88} } func (m *RefreshRangeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4469,7 +4476,7 @@ func (m *RefreshRangeResponse) Reset() { *m = RefreshRangeResponse{} } func (m *RefreshRangeResponse) String() string { return proto.CompactTextString(m) } func (*RefreshRangeResponse) ProtoMessage() {} func (*RefreshRangeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{89} + return fileDescriptor_api_58bfa95f1a7467a6, []int{89} } func (m *RefreshRangeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4518,7 +4525,7 @@ func (m *SubsumeRequest) Reset() { *m = SubsumeRequest{} } func (m *SubsumeRequest) String() string { return proto.CompactTextString(m) } func (*SubsumeRequest) ProtoMessage() {} func (*SubsumeRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{90} + return fileDescriptor_api_58bfa95f1a7467a6, []int{90} } func (m *SubsumeRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4567,7 +4574,7 @@ func (m *SubsumeResponse) Reset() { *m = SubsumeResponse{} } func (m *SubsumeResponse) String() string { return proto.CompactTextString(m) } func (*SubsumeResponse) ProtoMessage() {} func (*SubsumeResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{91} + return fileDescriptor_api_58bfa95f1a7467a6, []int{91} } func (m *SubsumeResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4602,7 +4609,7 @@ func (m *RangeStatsRequest) Reset() { *m = RangeStatsRequest{} } func (m *RangeStatsRequest) String() string { return proto.CompactTextString(m) } func (*RangeStatsRequest) ProtoMessage() {} func (*RangeStatsRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{92} + return fileDescriptor_api_58bfa95f1a7467a6, []int{92} } func (m *RangeStatsRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4641,7 +4648,7 @@ func (m *RangeStatsResponse) Reset() { *m = RangeStatsResponse{} } func (m *RangeStatsResponse) String() string { return proto.CompactTextString(m) } func (*RangeStatsResponse) ProtoMessage() {} func (*RangeStatsResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{93} + return fileDescriptor_api_58bfa95f1a7467a6, []int{93} } func (m *RangeStatsResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -4724,7 +4731,7 @@ func (m *RequestUnion) Reset() { *m = RequestUnion{} } func (m *RequestUnion) String() string { return proto.CompactTextString(m) } func (*RequestUnion) ProtoMessage() {} func (*RequestUnion) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{94} + return fileDescriptor_api_58bfa95f1a7467a6, []int{94} } func (m *RequestUnion) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -6174,7 +6181,7 @@ func (m *ResponseUnion) Reset() { *m = ResponseUnion{} } func (m *ResponseUnion) String() string { return proto.CompactTextString(m) } func (*ResponseUnion) ProtoMessage() {} func (*ResponseUnion) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{95} + return fileDescriptor_api_58bfa95f1a7467a6, []int{95} } func (m *ResponseUnion) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7621,7 +7628,7 @@ func (m *Header) Reset() { *m = Header{} } func (m *Header) String() string { return proto.CompactTextString(m) } func (*Header) ProtoMessage() {} func (*Header) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{96} + return fileDescriptor_api_58bfa95f1a7467a6, []int{96} } func (m *Header) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7657,7 +7664,7 @@ type BatchRequest struct { func (m *BatchRequest) Reset() { *m = BatchRequest{} } func (*BatchRequest) ProtoMessage() {} func (*BatchRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{97} + return fileDescriptor_api_58bfa95f1a7467a6, []int{97} } func (m *BatchRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7694,7 +7701,7 @@ type BatchResponse struct { func (m *BatchResponse) Reset() { *m = BatchResponse{} } func (*BatchResponse) ProtoMessage() {} func (*BatchResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{98} + return fileDescriptor_api_58bfa95f1a7467a6, []int{98} } func (m *BatchResponse) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7752,7 +7759,7 @@ func (m *BatchResponse_Header) Reset() { *m = BatchResponse_Header{} } func (m *BatchResponse_Header) String() string { return proto.CompactTextString(m) } func (*BatchResponse_Header) ProtoMessage() {} func (*BatchResponse_Header) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{98, 0} + return fileDescriptor_api_58bfa95f1a7467a6, []int{98, 0} } func (m *BatchResponse_Header) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7791,7 +7798,7 @@ func (m *RangeFeedRequest) Reset() { *m = RangeFeedRequest{} } func (m *RangeFeedRequest) String() string { return proto.CompactTextString(m) } func (*RangeFeedRequest) ProtoMessage() {} func (*RangeFeedRequest) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{99} + return fileDescriptor_api_58bfa95f1a7467a6, []int{99} } func (m *RangeFeedRequest) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7832,7 +7839,7 @@ func (m *RangeFeedValue) Reset() { *m = RangeFeedValue{} } func (m *RangeFeedValue) String() string { return proto.CompactTextString(m) } func (*RangeFeedValue) ProtoMessage() {} func (*RangeFeedValue) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{100} + return fileDescriptor_api_58bfa95f1a7467a6, []int{100} } func (m *RangeFeedValue) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7873,7 +7880,7 @@ func (m *RangeFeedCheckpoint) Reset() { *m = RangeFeedCheckpoint{} } func (m *RangeFeedCheckpoint) String() string { return proto.CompactTextString(m) } func (*RangeFeedCheckpoint) ProtoMessage() {} func (*RangeFeedCheckpoint) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{101} + return fileDescriptor_api_58bfa95f1a7467a6, []int{101} } func (m *RangeFeedCheckpoint) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7910,7 +7917,7 @@ func (m *RangeFeedError) Reset() { *m = RangeFeedError{} } func (m *RangeFeedError) String() string { return proto.CompactTextString(m) } func (*RangeFeedError) ProtoMessage() {} func (*RangeFeedError) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{102} + return fileDescriptor_api_58bfa95f1a7467a6, []int{102} } func (m *RangeFeedError) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -7947,7 +7954,7 @@ func (m *RangeFeedEvent) Reset() { *m = RangeFeedEvent{} } func (m *RangeFeedEvent) String() string { return proto.CompactTextString(m) } func (*RangeFeedEvent) ProtoMessage() {} func (*RangeFeedEvent) Descriptor() ([]byte, []int) { - return fileDescriptor_api_8f474790db0c3923, []int{103} + return fileDescriptor_api_58bfa95f1a7467a6, []int{103} } func (m *RangeFeedEvent) XXX_Unmarshal(b []byte) error { return m.Unmarshal(b) @@ -9636,6 +9643,9 @@ func (this *ExportRequest) Equal(that interface{}) bool { if !this.Encryption.Equal(that1.Encryption) { return false } + if this.TargetFileSize != that1.TargetFileSize { + return false + } return true } func (this *ImportRequest) Equal(that interface{}) bool { @@ -13474,6 +13484,11 @@ func (m *ExportRequest) MarshalTo(dAtA []byte) (int, error) { } i += n123 } + if m.TargetFileSize != 0 { + dAtA[i] = 0x50 + i++ + i = encodeVarintApi(dAtA, i, uint64(m.TargetFileSize)) + } return i, nil } @@ -17651,6 +17666,9 @@ func (m *ExportRequest) Size() (n int) { l = m.Encryption.Size() n += 1 + l + sovApi(uint64(l)) } + if m.TargetFileSize != 0 { + n += 1 + sovApi(uint64(m.TargetFileSize)) + } return n } @@ -29940,6 +29958,25 @@ func (m *ExportRequest) Unmarshal(dAtA []byte) error { return err } iNdEx = postIndex + case 10: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field TargetFileSize", wireType) + } + m.TargetFileSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowApi + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.TargetFileSize |= (int64(b) & 0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipApi(dAtA[iNdEx:]) @@ -37117,458 +37154,459 @@ var ( ErrIntOverflowApi = fmt.Errorf("proto: integer overflow") ) -func init() { proto.RegisterFile("roachpb/api.proto", fileDescriptor_api_8f474790db0c3923) } - -var fileDescriptor_api_8f474790db0c3923 = []byte{ - // 7191 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x7d, 0x6b, 0x6c, 0x24, 0xc7, - 0x75, 0x2e, 0x7b, 0x66, 0x38, 0x9c, 0x39, 0xf3, 0xe0, 0xb0, 0xb8, 0x8f, 0x59, 0x4a, 0x5a, 0x72, - 0x67, 0x9f, 0x5a, 0x4b, 0x5c, 0xed, 0xae, 0x75, 0x25, 0x4b, 0xb2, 0x6c, 0x72, 0x38, 0xbb, 0x33, - 0xcb, 0xe5, 0x43, 0x3d, 0xc3, 0x95, 0x25, 0x5f, 0xdd, 0x76, 0xb3, 0xbb, 0x38, 0x6c, 0xef, 0x4c, - 0xf7, 0x6c, 0x77, 0x0f, 0x1f, 0x0b, 0x5c, 0xdc, 0xd7, 0x0f, 0x5f, 0xf8, 0x5e, 0x08, 0x17, 0xb8, - 0x41, 0x10, 0xd8, 0x0e, 0x2c, 0xc0, 0x41, 0x12, 0x24, 0xb0, 0x81, 0x00, 0x01, 0x82, 0x18, 0x09, - 0xfc, 0x23, 0x7f, 0x14, 0xc3, 0x08, 0x8c, 0x20, 0x81, 0x8d, 0x00, 0x21, 0x62, 0x1a, 0x48, 0x0c, - 0xff, 0x08, 0x90, 0x5f, 0x01, 0xf4, 0x23, 0x09, 0xea, 0xd1, 0xaf, 0x99, 0x9e, 0x07, 0xa9, 0x56, - 0xa2, 0x20, 0x7f, 0x76, 0xd9, 0xa7, 0xeb, 0x9c, 0xae, 0x3a, 0x75, 0xea, 0xd4, 0xf9, 0xaa, 0x4e, - 0xd5, 0xc0, 0x8c, 0x69, 0xc8, 0xca, 0x6e, 0x67, 0xfb, 0x96, 0xdc, 0xd1, 0x16, 0x3b, 0xa6, 0x61, - 0x1b, 0x68, 0x46, 0x31, 0x94, 0xc7, 0x94, 0xbc, 0xc8, 0x5f, 0xce, 0x21, 0xa7, 0x94, 0x2a, 0xdb, - 0x32, 0x2b, 0x36, 0x77, 0xc6, 0xa1, 0x61, 0xd3, 0x34, 0x4c, 0x8b, 0x53, 0xcf, 0x39, 0xd4, 0x36, - 0xb6, 0x65, 0x5f, 0xe9, 0x92, 0x65, 0x1b, 0xa6, 0xdc, 0xc4, 0xb7, 0xb0, 0xde, 0xd4, 0x74, 0xe7, - 0x3f, 0x52, 0x6e, 0x4f, 0x51, 0x78, 0x99, 0xcb, 0xc3, 0xca, 0xdc, 0xe5, 0x85, 0x8a, 0x5d, 0x5b, - 0x6b, 0xdd, 0xda, 0x6d, 0x29, 0xb7, 0x6c, 0xad, 0x8d, 0x2d, 0x5b, 0x6e, 0x77, 0xf8, 0x9b, 0x05, - 0xfa, 0xc6, 0x36, 0x65, 0x45, 0xd3, 0x9b, 0xb7, 0x4c, 0xac, 0x18, 0xa6, 0x8a, 0x55, 0xc9, 0xea, - 0xc8, 0xba, 0x53, 0xe5, 0xa6, 0xd1, 0x34, 0xe8, 0x9f, 0xb7, 0xc8, 0x5f, 0x8c, 0x5a, 0xfa, 0x6f, - 0x90, 0x16, 0x65, 0xbd, 0x89, 0x6b, 0xfa, 0x8e, 0x81, 0xde, 0x80, 0x84, 0x8a, 0x2d, 0xa5, 0x28, - 0x2c, 0x08, 0x37, 0x32, 0x77, 0x4a, 0x8b, 0x7d, 0xba, 0x58, 0xa4, 0x65, 0x57, 0xb0, 0xa5, 0x98, - 0x5a, 0xc7, 0x36, 0xcc, 0xe5, 0xc4, 0x87, 0x47, 0xf3, 0x13, 0x22, 0xe5, 0x42, 0x9f, 0x85, 0xc9, - 0x16, 0x96, 0x2d, 0x5c, 0x8c, 0x51, 0xf6, 0x62, 0x08, 0xfb, 0x43, 0xf2, 0x9e, 0x33, 0xb1, 0xc2, - 0xa5, 0x3f, 0x11, 0x20, 0x27, 0xe2, 0x27, 0x5d, 0x6c, 0xd9, 0x55, 0x2c, 0xab, 0xd8, 0x44, 0x17, - 0x20, 0xfe, 0x18, 0x1f, 0x16, 0xe3, 0x0b, 0xc2, 0x8d, 0xec, 0xf2, 0xd4, 0x47, 0x47, 0xf3, 0xf1, - 0x55, 0x7c, 0x28, 0x12, 0x1a, 0x5a, 0x80, 0x29, 0xac, 0xab, 0x12, 0x79, 0x9d, 0x08, 0xbe, 0x4e, - 0x62, 0x5d, 0x5d, 0xc5, 0x87, 0x48, 0x81, 0x94, 0x45, 0xa4, 0xe9, 0x0a, 0x2e, 0x4e, 0x2e, 0x08, - 0x37, 0x26, 0x97, 0xef, 0x7f, 0x74, 0x34, 0x5f, 0x6e, 0x6a, 0xf6, 0x6e, 0x77, 0x7b, 0x51, 0x31, - 0xda, 0xb7, 0xdc, 0x5a, 0xa9, 0xdb, 0xde, 0xdf, 0xb7, 0x3a, 0x8f, 0x9b, 0xb7, 0x06, 0xf4, 0xc0, - 0x62, 0xe3, 0x40, 0xaf, 0xe3, 0x27, 0xa2, 0x2b, 0xf8, 0xb5, 0xc4, 0x2f, 0x3e, 0x98, 0x17, 0x1e, - 0x24, 0x52, 0x42, 0x21, 0xf6, 0x20, 0x91, 0x8a, 0x15, 0xe2, 0xa5, 0x7f, 0x88, 0x41, 0x5e, 0xc4, - 0x56, 0xc7, 0xd0, 0x2d, 0xcc, 0x9b, 0xf1, 0x12, 0xc4, 0xed, 0x03, 0x9d, 0x36, 0x23, 0x73, 0xe7, - 0x62, 0x88, 0x32, 0x1a, 0xa6, 0xac, 0x5b, 0xb2, 0x62, 0x6b, 0x86, 0x2e, 0x92, 0xa2, 0xe8, 0x55, - 0xc8, 0x98, 0xd8, 0xea, 0xb6, 0x31, 0xed, 0x36, 0xda, 0xc2, 0xcc, 0x9d, 0xf3, 0x21, 0x9c, 0xf5, - 0x8e, 0xac, 0x8b, 0xc0, 0xca, 0x92, 0xbf, 0xd1, 0x05, 0x48, 0xe9, 0xdd, 0x36, 0xd1, 0x8b, 0x45, - 0x5b, 0x1d, 0x17, 0xa7, 0xf4, 0x6e, 0x7b, 0x15, 0x1f, 0x5a, 0xa8, 0x0c, 0x19, 0x93, 0x74, 0x9a, - 0xa4, 0xe9, 0x3b, 0x86, 0x55, 0x4c, 0x2e, 0xc4, 0x6f, 0x64, 0xee, 0x3c, 0x3b, 0xa8, 0x6b, 0x89, - 0x19, 0xf0, 0xfe, 0x01, 0xd3, 0x21, 0x58, 0xa8, 0x0e, 0x39, 0x5e, 0x33, 0x13, 0xcb, 0x96, 0xa1, - 0x17, 0xa7, 0x16, 0x84, 0x1b, 0xf9, 0x3b, 0x8b, 0x61, 0x62, 0x02, 0x5a, 0x20, 0x8f, 0xdd, 0x36, - 0x16, 0x29, 0x97, 0x98, 0x35, 0x7d, 0x4f, 0xa5, 0x37, 0x21, 0xeb, 0x7f, 0x8b, 0x10, 0xe4, 0xc5, - 0x4a, 0x7d, 0x6b, 0xad, 0x22, 0x6d, 0xad, 0xaf, 0xae, 0x6f, 0xbc, 0xbd, 0x5e, 0x98, 0x40, 0x67, - 0xa0, 0xc0, 0x69, 0xab, 0x95, 0x77, 0xa4, 0x87, 0xb5, 0xb5, 0x5a, 0xa3, 0x20, 0xcc, 0x25, 0xfe, - 0xf7, 0x77, 0x2e, 0x4e, 0x94, 0x1e, 0x01, 0xdc, 0xc7, 0x36, 0xb7, 0x1d, 0xb4, 0x0c, 0xc9, 0x5d, - 0xfa, 0x49, 0x6e, 0xbd, 0x0b, 0xa1, 0x75, 0xf3, 0xd9, 0xd9, 0x72, 0x8a, 0x34, 0xf3, 0xc7, 0x47, - 0xf3, 0x82, 0xc8, 0x39, 0x59, 0xbf, 0x96, 0x7e, 0x20, 0x40, 0x86, 0x0a, 0x66, 0x0d, 0x41, 0xe5, - 0x1e, 0xc9, 0x97, 0x46, 0xb6, 0xba, 0x5f, 0x34, 0x5a, 0x84, 0xc9, 0x3d, 0xb9, 0xd5, 0x1d, 0x36, - 0x38, 0x1e, 0x91, 0xf7, 0x22, 0x2b, 0x86, 0x5e, 0x87, 0xac, 0xa6, 0xdb, 0x58, 0xb7, 0x25, 0xc6, - 0x16, 0x1f, 0xc1, 0x96, 0x61, 0xa5, 0xe9, 0x43, 0xe9, 0xfb, 0x02, 0xc0, 0x66, 0x37, 0x4a, 0xd5, - 0x90, 0xc1, 0x3d, 0x56, 0xfd, 0x9d, 0xc1, 0xcd, 0x5a, 0x71, 0x0e, 0x92, 0x9a, 0xde, 0xd2, 0x74, - 0x56, 0xff, 0x94, 0xc8, 0x9f, 0xd0, 0x19, 0x98, 0xdc, 0x6e, 0x69, 0xba, 0x4a, 0x6d, 0x3c, 0x25, - 0xb2, 0x07, 0xae, 0x7e, 0x11, 0x32, 0xb4, 0xee, 0x11, 0x6a, 0xbf, 0xf4, 0x8d, 0x18, 0x9c, 0x2d, - 0x1b, 0xba, 0xaa, 0x91, 0xc1, 0x26, 0xb7, 0x3e, 0x15, 0xba, 0x79, 0x19, 0xd2, 0xf8, 0xa0, 0x33, - 0x66, 0xf7, 0xa6, 0xf0, 0x41, 0x87, 0xfe, 0x15, 0xae, 0x3a, 0xf4, 0x59, 0x38, 0x2f, 0xb7, 0x5a, - 0xc6, 0xbe, 0xa4, 0xed, 0x48, 0xaa, 0x81, 0x2d, 0x49, 0x37, 0x6c, 0x09, 0x1f, 0x68, 0x96, 0x4d, - 0xfd, 0x41, 0x4a, 0x9c, 0xa5, 0xaf, 0x6b, 0x3b, 0x2b, 0x06, 0xb6, 0xd6, 0x0d, 0xbb, 0x42, 0x5e, - 0x71, 0x85, 0xbf, 0x07, 0xe7, 0x7a, 0x75, 0x13, 0xa5, 0xee, 0xff, 0x5c, 0x80, 0x7c, 0x4d, 0xd7, - 0xec, 0x4f, 0x85, 0xd2, 0x5d, 0xed, 0xc5, 0xfd, 0xda, 0xbb, 0x09, 0x85, 0x1d, 0x59, 0x6b, 0x6d, - 0xe8, 0x0d, 0xa3, 0xbd, 0x6d, 0xd9, 0x86, 0x8e, 0x2d, 0xae, 0xde, 0x3e, 0x3a, 0xd7, 0xd9, 0x23, - 0x98, 0x76, 0xdb, 0x14, 0xa5, 0xb2, 0x9e, 0x42, 0xa1, 0xa6, 0x2b, 0x26, 0x6e, 0x63, 0x3d, 0x52, - 0x6d, 0x3d, 0x0b, 0x69, 0xcd, 0x91, 0x4b, 0x35, 0x16, 0x17, 0x3d, 0x02, 0x6f, 0x53, 0x17, 0x66, - 0x7c, 0xdf, 0x8e, 0xd2, 0xf9, 0x3d, 0x03, 0x69, 0x1d, 0xef, 0x4b, 0x5e, 0x7f, 0xc5, 0xc5, 0x94, - 0x8e, 0xf7, 0x99, 0xb3, 0x7a, 0x07, 0x72, 0x2b, 0xb8, 0x85, 0x6d, 0x1c, 0xbd, 0x27, 0xdf, 0x82, - 0xbc, 0x23, 0x3a, 0xca, 0x4e, 0xfa, 0x75, 0x01, 0x10, 0x97, 0x4b, 0xa6, 0xc8, 0x28, 0xfb, 0x69, - 0x9e, 0x84, 0x00, 0x76, 0xd7, 0xd4, 0xd9, 0x5c, 0xce, 0xac, 0x14, 0x18, 0x89, 0x4e, 0xe7, 0x9e, - 0x47, 0x4d, 0xf8, 0x3d, 0xaa, 0x1b, 0x92, 0x90, 0x60, 0x64, 0x1f, 0x66, 0x03, 0xd5, 0x8b, 0xb6, - 0x2b, 0x13, 0xb4, 0x66, 0xb1, 0x85, 0xb8, 0x3f, 0xfc, 0xa2, 0xc4, 0xd2, 0x7b, 0x30, 0x53, 0x6e, - 0x61, 0xd9, 0x8c, 0x5a, 0x2d, 0xbc, 0x3b, 0xdf, 0x01, 0xe4, 0x17, 0x1f, 0x65, 0x97, 0xfe, 0x86, - 0x00, 0x48, 0xc4, 0x7b, 0xd8, 0xb4, 0x23, 0xef, 0xd2, 0x15, 0xc8, 0xd8, 0xb2, 0xd9, 0xc4, 0xb6, - 0x44, 0x62, 0x76, 0xee, 0xae, 0x9e, 0xf3, 0x09, 0x22, 0x91, 0xfb, 0xe2, 0x6e, 0x4b, 0x59, 0x6c, - 0x38, 0x31, 0xbd, 0x13, 0x81, 0x31, 0x3e, 0x42, 0xe6, 0x1a, 0x78, 0x17, 0x66, 0x03, 0xb5, 0x8c, - 0x52, 0x05, 0xdf, 0x11, 0x20, 0x53, 0x57, 0x64, 0x3d, 0xca, 0xb6, 0xbf, 0x09, 0x19, 0x4b, 0x91, - 0x75, 0x69, 0xc7, 0x30, 0xdb, 0xb2, 0x4d, 0x4d, 0x36, 0x1f, 0x68, 0xbb, 0x1b, 0xd1, 0x2a, 0xb2, - 0x7e, 0x8f, 0x16, 0x12, 0xc1, 0x72, 0xff, 0xf6, 0x5b, 0xf5, 0x83, 0x44, 0x2a, 0x5e, 0x48, 0x94, - 0xfe, 0x51, 0x80, 0x2c, 0xab, 0x65, 0x94, 0x56, 0xfd, 0x32, 0x24, 0x4c, 0x63, 0x9f, 0x59, 0x75, - 0xe6, 0xce, 0x33, 0x21, 0x22, 0x56, 0xf1, 0xa1, 0x7f, 0x3a, 0xa1, 0xc5, 0xd1, 0x32, 0xf0, 0xb0, - 0x4b, 0xa2, 0xdc, 0xf1, 0x71, 0xb9, 0x81, 0x71, 0x89, 0x44, 0xc6, 0x75, 0x98, 0xde, 0x96, 0x6d, - 0x65, 0x57, 0x32, 0x79, 0x25, 0xc9, 0xd4, 0x13, 0xbf, 0x91, 0x15, 0xf3, 0x94, 0xec, 0x54, 0xdd, - 0x2a, 0xfd, 0x8e, 0x63, 0xa2, 0x16, 0xfe, 0xf4, 0x77, 0xd3, 0x3f, 0x09, 0xdc, 0x52, 0x9d, 0xca, - 0xfe, 0x47, 0xeb, 0xad, 0x6f, 0xc7, 0xe0, 0x7c, 0x79, 0x17, 0x2b, 0x8f, 0xcb, 0x86, 0x6e, 0x69, - 0x96, 0x8d, 0x75, 0xe5, 0x30, 0xca, 0x2e, 0x7b, 0x06, 0xd2, 0xfb, 0x9a, 0xbd, 0x2b, 0xa9, 0xda, - 0xce, 0x0e, 0xf5, 0x29, 0x29, 0x31, 0x45, 0x08, 0x2b, 0xda, 0xce, 0x0e, 0xba, 0x0b, 0x89, 0xb6, - 0xa1, 0xb2, 0xa8, 0x32, 0x7f, 0x67, 0x3e, 0x44, 0x3c, 0xad, 0x9a, 0xd5, 0x6d, 0xaf, 0x19, 0x2a, - 0x16, 0x69, 0x61, 0x74, 0x11, 0x40, 0x21, 0xd4, 0x8e, 0xa1, 0xe9, 0x36, 0x9f, 0x5d, 0x7c, 0x14, - 0x54, 0x85, 0xb4, 0x8d, 0xcd, 0xb6, 0xa6, 0xcb, 0x36, 0x81, 0xd6, 0x44, 0x79, 0x57, 0x42, 0x2b, - 0xde, 0x69, 0x69, 0x8a, 0xdc, 0xb7, 0x46, 0xe0, 0x31, 0x73, 0x5f, 0xf6, 0x7e, 0x02, 0x8a, 0xfd, - 0x1a, 0x8a, 0xd2, 0x4e, 0x36, 0x21, 0x49, 0x00, 0x67, 0xcb, 0xe6, 0x96, 0x72, 0x67, 0x90, 0x22, - 0x42, 0x6a, 0x40, 0x81, 0x6b, 0xcb, 0xe6, 0x95, 0xe7, 0x72, 0xe6, 0xfe, 0x48, 0x80, 0x24, 0x7b, - 0x81, 0x6e, 0x43, 0x8a, 0xe3, 0x6a, 0x95, 0xd6, 0x31, 0xbe, 0x7c, 0xee, 0xf8, 0x68, 0x7e, 0x8a, - 0xa1, 0xe8, 0x95, 0x8f, 0xbc, 0x3f, 0xc5, 0x29, 0x06, 0xa4, 0x55, 0xd2, 0x67, 0x96, 0x2d, 0x9b, - 0x36, 0x5d, 0xbf, 0x20, 0x7d, 0x96, 0x15, 0x53, 0x94, 0xb0, 0x8a, 0x0f, 0xd1, 0x03, 0x48, 0x5a, - 0xb6, 0x6c, 0x77, 0x2d, 0xde, 0x6b, 0x27, 0xaa, 0x6c, 0x9d, 0x72, 0x8a, 0x5c, 0x02, 0x09, 0x12, - 0x54, 0x6c, 0xcb, 0x5a, 0x8b, 0x76, 0x63, 0x5a, 0xe4, 0x4f, 0xa5, 0x6f, 0x0a, 0x90, 0x64, 0x45, - 0xd1, 0x79, 0x98, 0x15, 0x97, 0xd6, 0xef, 0x57, 0xa4, 0xda, 0xfa, 0x4a, 0xa5, 0x51, 0x11, 0xd7, - 0x6a, 0xeb, 0x4b, 0x8d, 0x4a, 0x61, 0x02, 0x9d, 0x03, 0xe4, 0xbc, 0x28, 0x6f, 0xac, 0xd7, 0x6b, - 0xf5, 0x46, 0x65, 0xbd, 0x51, 0x10, 0x28, 0x12, 0xa7, 0x74, 0x1f, 0x35, 0x86, 0xae, 0xc0, 0x42, - 0x2f, 0x55, 0xaa, 0x37, 0x96, 0x1a, 0x75, 0xa9, 0x52, 0x6f, 0xd4, 0xd6, 0x96, 0x1a, 0x95, 0x95, - 0x42, 0x7c, 0x48, 0x29, 0xf2, 0x11, 0x51, 0xac, 0x94, 0x1b, 0x85, 0x44, 0xe9, 0x29, 0x9c, 0x15, - 0xb1, 0x62, 0xb4, 0x3b, 0x5d, 0x1b, 0x93, 0x5a, 0x5a, 0x51, 0x8e, 0x97, 0xf3, 0x30, 0xa5, 0x9a, - 0x87, 0x92, 0xd9, 0xd5, 0xf9, 0x68, 0x49, 0xaa, 0xe6, 0xa1, 0xd8, 0xd5, 0xb9, 0x31, 0xfe, 0x81, - 0x00, 0xe7, 0x7a, 0x3f, 0x1e, 0xa5, 0x29, 0x7e, 0x09, 0x32, 0xb2, 0xaa, 0x62, 0x55, 0x52, 0x71, - 0xcb, 0x96, 0x79, 0x10, 0x70, 0xdb, 0x27, 0x89, 0xaf, 0x3d, 0x2d, 0xb2, 0x45, 0xa7, 0x45, 0x77, - 0xed, 0x69, 0xed, 0x51, 0xb9, 0x4c, 0xeb, 0xb3, 0x42, 0x18, 0x1d, 0x8f, 0x44, 0x65, 0x51, 0x4a, - 0xe9, 0x5b, 0x09, 0xc8, 0x55, 0x74, 0xb5, 0x71, 0x10, 0xe9, 0x8c, 0x70, 0x0e, 0x92, 0x8a, 0xd1, - 0x6e, 0x6b, 0xb6, 0xa3, 0x2d, 0xf6, 0x84, 0x3e, 0x07, 0x29, 0x15, 0xcb, 0xaa, 0x0b, 0xe9, 0x47, - 0x45, 0x32, 0xa2, 0x5b, 0x1c, 0x7d, 0x05, 0xce, 0x13, 0x47, 0x6a, 0xea, 0x72, 0x4b, 0x62, 0xd2, - 0x24, 0xdb, 0xd4, 0x9a, 0x4d, 0x6c, 0xf2, 0x95, 0xae, 0x1b, 0x21, 0xf5, 0xac, 0x71, 0x8e, 0x32, - 0x65, 0x68, 0xb0, 0xf2, 0xe2, 0x59, 0x2d, 0x8c, 0x8c, 0xbe, 0xe8, 0xae, 0x99, 0x58, 0x1d, 0x59, - 0xb7, 0xb8, 0x93, 0x1a, 0xb4, 0x80, 0xc6, 0x75, 0xc9, 0xe7, 0x04, 0x42, 0xb1, 0xd0, 0x2d, 0x12, - 0x7e, 0x3f, 0xe9, 0x6a, 0x26, 0x96, 0x6e, 0x77, 0x94, 0x62, 0x92, 0xb4, 0x7d, 0x39, 0x7f, 0x7c, - 0x34, 0x0f, 0x22, 0x23, 0xdf, 0xde, 0x2c, 0x93, 0x70, 0x9c, 0xfd, 0xdd, 0x51, 0xd0, 0x0d, 0x28, - 0xe8, 0x86, 0x64, 0xe2, 0x1d, 0x13, 0x5b, 0xbb, 0xfc, 0xb3, 0x29, 0xaa, 0xb1, 0xbc, 0x6e, 0x88, - 0x8c, 0xcc, 0x44, 0x9f, 0x83, 0x64, 0xc7, 0xd0, 0x2c, 0x43, 0x2f, 0xa6, 0x99, 0x46, 0xd9, 0x13, - 0x7a, 0x0b, 0x0a, 0x9a, 0x2e, 0xed, 0xb4, 0xb4, 0xe6, 0xae, 0x2d, 0xed, 0x9b, 0x9a, 0x8d, 0xad, - 0xe2, 0x0c, 0xad, 0x78, 0x98, 0xa1, 0xd5, 0xf9, 0x12, 0xa4, 0xfa, 0x36, 0x29, 0xc9, 0x9b, 0x90, - 0xd7, 0xf4, 0x7b, 0x94, 0x9f, 0x12, 0x2d, 0x77, 0x3a, 0x9e, 0x2a, 0xa4, 0x4a, 0x7f, 0x2d, 0x40, - 0xde, 0x31, 0x8f, 0x28, 0x0d, 0xfa, 0x06, 0x14, 0x0c, 0x1d, 0x4b, 0x9d, 0x5d, 0xd9, 0xc2, 0xbc, - 0x3b, 0xf9, 0x9c, 0x91, 0x37, 0x74, 0xbc, 0x49, 0xc8, 0xac, 0x73, 0xd0, 0x26, 0xcc, 0x58, 0xb6, - 0xdc, 0xd4, 0xf4, 0xa6, 0xe4, 0x2e, 0x5a, 0xd3, 0x45, 0x89, 0x31, 0xa3, 0xe0, 0x02, 0xe7, 0x76, - 0xe9, 0x81, 0x40, 0xe3, 0x27, 0x02, 0xcc, 0x2c, 0xa9, 0x6d, 0x4d, 0xaf, 0x77, 0x5a, 0x5a, 0xa4, - 0x90, 0xf9, 0x0a, 0xa4, 0x2d, 0x22, 0xd3, 0xf3, 0xd6, 0x1e, 0xdc, 0x49, 0xd1, 0x37, 0xc4, 0x6d, - 0x3f, 0x84, 0x69, 0x7c, 0xd0, 0xd1, 0x4c, 0xd9, 0xd6, 0x0c, 0x9d, 0x45, 0xf8, 0x89, 0xf1, 0xdb, - 0x96, 0xf7, 0x78, 0xbd, 0x28, 0x9f, 0xb7, 0xec, 0x1d, 0x40, 0xfe, 0x86, 0x45, 0x19, 0xea, 0x4b, - 0x30, 0x4b, 0x45, 0x6f, 0xe9, 0x56, 0xc4, 0x5a, 0xe3, 0xee, 0xf4, 0xcb, 0x70, 0x26, 0xf8, 0x81, - 0x28, 0x6b, 0xff, 0x1e, 0xef, 0xf1, 0x35, 0x6c, 0x7e, 0x42, 0x28, 0xd3, 0x2f, 0x3e, 0xca, 0x9a, - 0x7f, 0x5d, 0x80, 0x0b, 0x54, 0x36, 0x5d, 0xfa, 0xdf, 0xc1, 0x26, 0xdd, 0x0f, 0x89, 0xd2, 0x68, - 0x2f, 0x43, 0x92, 0x81, 0x46, 0x6a, 0xb1, 0x93, 0xcb, 0x19, 0x12, 0x88, 0xd4, 0x6d, 0xc3, 0x24, - 0x81, 0x08, 0x7f, 0xc5, 0xdb, 0x29, 0xc3, 0x5c, 0x58, 0x5d, 0x22, 0x46, 0xd5, 0x33, 0x3c, 0x1e, - 0x24, 0x26, 0x5e, 0xde, 0x25, 0x81, 0x10, 0xaa, 0x40, 0x46, 0xa1, 0x7f, 0x49, 0xf6, 0x61, 0x07, - 0x53, 0xf9, 0xf9, 0x61, 0xa1, 0x24, 0x63, 0x6b, 0x1c, 0x76, 0x30, 0x89, 0x47, 0x9d, 0xbf, 0x89, - 0xba, 0x7c, 0x4d, 0x1d, 0x1a, 0x8c, 0xd2, 0xf1, 0x45, 0xcb, 0x3a, 0xf1, 0x5c, 0x40, 0x13, 0x7f, - 0x18, 0xe7, 0xaa, 0x60, 0x5f, 0xe2, 0x4c, 0x91, 0x86, 0x1f, 0xef, 0xc2, 0x39, 0x15, 0x77, 0x4c, - 0xac, 0xc8, 0x36, 0x56, 0x25, 0x7f, 0xf3, 0x63, 0x27, 0x68, 0xfe, 0x19, 0x4f, 0x86, 0x47, 0x45, - 0xef, 0x00, 0xf2, 0xc9, 0x66, 0x2d, 0x73, 0xe0, 0xcd, 0x49, 0x94, 0x32, 0xe3, 0x49, 0x61, 0x74, - 0x0b, 0x95, 0x21, 0x85, 0x0f, 0x3a, 0x12, 0xdd, 0x14, 0x4c, 0x9c, 0x70, 0x53, 0x70, 0x0a, 0x1f, - 0x74, 0x08, 0x11, 0x6d, 0x91, 0x19, 0xce, 0x99, 0xf8, 0x69, 0xb5, 0xad, 0xd1, 0xf8, 0xc1, 0xb3, - 0x17, 0x2e, 0x6e, 0xda, 0x9d, 0xf3, 0x99, 0x08, 0xde, 0x77, 0x1f, 0x08, 0xf0, 0x4c, 0x68, 0xdf, - 0x45, 0x39, 0xd9, 0x39, 0xfb, 0xa2, 0xb1, 0xd3, 0xec, 0x8b, 0x96, 0x7e, 0xd7, 0x19, 0xf5, 0x22, - 0x6e, 0x19, 0x44, 0xbd, 0x9f, 0xc0, 0x12, 0xd3, 0x94, 0xd3, 0xed, 0xb1, 0x13, 0x77, 0xbb, 0xc3, - 0xda, 0xe3, 0x16, 0x7a, 0x2a, 0x1b, 0xa5, 0x5b, 0xf8, 0x55, 0x01, 0x66, 0xab, 0x58, 0x36, 0xed, - 0x6d, 0x2c, 0xdb, 0x11, 0x07, 0xae, 0x2f, 0x43, 0x5c, 0x37, 0xf6, 0x4f, 0xb2, 0xca, 0x46, 0xca, - 0x7b, 0xd3, 0x56, 0xb0, 0x5e, 0x51, 0xb6, 0xfa, 0x4f, 0x63, 0x90, 0xbe, 0x5f, 0x8e, 0xb2, 0xad, - 0x6f, 0xf0, 0xb5, 0x58, 0x36, 0xd4, 0xc3, 0xcc, 0xd2, 0xfd, 0xde, 0xe2, 0xfd, 0xf2, 0x2a, 0x3e, - 0x74, 0xcc, 0x92, 0x70, 0xa1, 0x25, 0x48, 0xdb, 0xbb, 0x24, 0x3e, 0x35, 0x5a, 0xea, 0x49, 0x62, - 0x16, 0x8f, 0x6b, 0xee, 0x31, 0x4c, 0x52, 0xb9, 0xce, 0x96, 0xbd, 0x10, 0xb2, 0x65, 0x4f, 0x3e, - 0xe3, 0x86, 0x7d, 0xb1, 0x93, 0x7c, 0xc6, 0x21, 0xb0, 0xce, 0x71, 0x63, 0xa3, 0xc9, 0x42, 0xb2, - 0xf4, 0x16, 0x00, 0x69, 0x5a, 0x94, 0xdd, 0xf3, 0xff, 0xe3, 0x90, 0xdf, 0xec, 0x5a, 0xbb, 0x11, - 0xdb, 0x63, 0x19, 0xa0, 0xd3, 0xb5, 0x76, 0xb1, 0x29, 0xd9, 0x07, 0x3a, 0x6f, 0xff, 0x88, 0x64, - 0x00, 0x47, 0x01, 0x8c, 0xaf, 0x71, 0xa0, 0xa3, 0x0d, 0x2e, 0x04, 0x4b, 0x5e, 0x46, 0xc1, 0xcd, - 0x31, 0xc0, 0x63, 0xe3, 0x40, 0x5f, 0xc3, 0x2e, 0x6a, 0x64, 0x02, 0x31, 0x11, 0xf8, 0x06, 0x4c, - 0x91, 0x07, 0xc9, 0x36, 0x4e, 0xd2, 0xf3, 0x49, 0xc2, 0xd3, 0x30, 0xd0, 0xeb, 0x90, 0x66, 0xdc, - 0x64, 0xfe, 0x4a, 0xd2, 0xf9, 0x2b, 0xac, 0x49, 0x5c, 0x9b, 0x74, 0xe6, 0x4a, 0x51, 0x56, 0x32, - 0x5b, 0x9d, 0x81, 0xc9, 0x1d, 0xc3, 0x54, 0x30, 0x4d, 0x21, 0x48, 0x89, 0xec, 0xc1, 0xdf, 0xb9, - 0x0f, 0x12, 0xa9, 0x54, 0x21, 0xfd, 0x20, 0x91, 0x4a, 0x17, 0xa0, 0xf4, 0x4d, 0x01, 0xa6, 0xdd, - 0x5e, 0x89, 0xd2, 0xa5, 0x97, 0x03, 0x2a, 0x3d, 0x79, 0xbf, 0x10, 0x35, 0x96, 0xfe, 0x82, 0xc6, - 0x37, 0x8a, 0xb1, 0x47, 0xbb, 0x29, 0x4a, 0xb3, 0x59, 0x66, 0xc9, 0x23, 0xb1, 0x53, 0x76, 0x35, - 0x4d, 0x27, 0xb9, 0x0d, 0x67, 0xb4, 0x36, 0xf1, 0xf9, 0x9a, 0xdd, 0x3a, 0xe4, 0x18, 0xcd, 0xc6, - 0xce, 0xd6, 0xe7, 0xac, 0xf7, 0xae, 0xec, 0xbc, 0xe2, 0x6e, 0x90, 0x6d, 0x86, 0x78, 0xcd, 0x8a, - 0x52, 0xef, 0x35, 0xc8, 0x99, 0x4c, 0x34, 0x89, 0x55, 0x4e, 0xa8, 0xfa, 0xac, 0xcb, 0x4a, 0xb4, - 0xff, 0xbd, 0x18, 0x4c, 0xbf, 0xd5, 0xc5, 0xe6, 0xe1, 0xa7, 0x50, 0xf7, 0xd7, 0x60, 0x7a, 0x5f, - 0xd6, 0x6c, 0x69, 0xc7, 0x30, 0xa5, 0x6e, 0x47, 0x95, 0x6d, 0x27, 0x03, 0x22, 0x47, 0xc8, 0xf7, - 0x0c, 0x73, 0x8b, 0x12, 0x11, 0x06, 0xf4, 0x58, 0x37, 0xf6, 0x75, 0x89, 0x90, 0x29, 0x44, 0x3e, - 0xd0, 0xf9, 0x92, 0xf2, 0xf2, 0x2b, 0x7f, 0x75, 0x34, 0x7f, 0x77, 0xac, 0xc4, 0x25, 0x9a, 0xfb, - 0xd5, 0xed, 0x6a, 0xea, 0xe2, 0xd6, 0x56, 0x6d, 0x45, 0x2c, 0x50, 0x91, 0x6f, 0x33, 0x89, 0x8d, - 0x03, 0xdd, 0x99, 0xda, 0x3f, 0x12, 0xa0, 0xe0, 0x29, 0x2c, 0xca, 0x5e, 0xad, 0x40, 0xe6, 0x49, - 0x17, 0x9b, 0xda, 0x29, 0xfa, 0x14, 0x38, 0x23, 0x71, 0x4b, 0xef, 0x42, 0x36, 0xa0, 0x87, 0xf8, - 0xc7, 0xd3, 0x43, 0x66, 0xdf, 0x53, 0x41, 0xe9, 0x47, 0x02, 0x20, 0xda, 0xf8, 0x1a, 0x5b, 0xcd, - 0xff, 0x94, 0x19, 0xcc, 0x0d, 0x28, 0xd0, 0x54, 0x42, 0x49, 0xdb, 0x91, 0xda, 0x9a, 0x65, 0x69, - 0x7a, 0x93, 0x5b, 0x4c, 0x9e, 0xd2, 0x6b, 0x3b, 0x6b, 0x8c, 0xca, 0xfb, 0xf2, 0xbf, 0xc2, 0x6c, - 0xa0, 0x35, 0x51, 0xf6, 0xe6, 0x25, 0xc8, 0xee, 0x18, 0x5d, 0x5d, 0x95, 0xd8, 0xd2, 0x18, 0x5f, - 0x02, 0xcc, 0x50, 0x1a, 0xfb, 0x5e, 0xe9, 0x9f, 0x63, 0x70, 0x46, 0xc4, 0x96, 0xd1, 0xda, 0xc3, - 0xd1, 0xeb, 0x73, 0x03, 0xf8, 0x96, 0x8b, 0xf4, 0x71, 0xd4, 0x9a, 0x66, 0x32, 0xd8, 0x74, 0x17, - 0x5c, 0x5b, 0xbf, 0x32, 0xdc, 0x32, 0xfb, 0x57, 0xd3, 0xf9, 0xca, 0x5d, 0x22, 0xb0, 0x72, 0xb7, - 0x07, 0xd3, 0x5a, 0x53, 0x37, 0x88, 0x23, 0xb3, 0xf0, 0x13, 0xbd, 0xdb, 0x76, 0x60, 0xcd, 0xcb, - 0x63, 0xd4, 0xb5, 0xc6, 0x38, 0xeb, 0xf8, 0xc9, 0x7a, 0xb7, 0x4d, 0x63, 0xec, 0xe5, 0x73, 0xa4, - 0xda, 0xc7, 0x47, 0xf3, 0xf9, 0xc0, 0x3b, 0x4b, 0xcc, 0x6b, 0xee, 0x33, 0xf9, 0x08, 0x37, 0x80, - 0xff, 0x0c, 0x67, 0x7b, 0x3a, 0x20, 0xca, 0x68, 0xe8, 0xcf, 0xe2, 0x70, 0x21, 0x28, 0x3e, 0x6a, - 0xcc, 0xf2, 0xef, 0xa4, 0x93, 0xab, 0x90, 0x6b, 0x6b, 0xfa, 0xe9, 0x56, 0x2e, 0xb3, 0x6d, 0x4d, - 0x77, 0x69, 0x61, 0xe6, 0x92, 0xfc, 0xd7, 0x33, 0x17, 0x19, 0xe6, 0xc2, 0xfa, 0x33, 0x4a, 0x9b, - 0x79, 0x5f, 0x80, 0x6c, 0xd4, 0x6b, 0x72, 0xa7, 0x4b, 0xf3, 0xe2, 0x6d, 0x6e, 0x40, 0xee, 0x13, - 0x58, 0xc4, 0xfb, 0x2d, 0x01, 0x50, 0xc3, 0xec, 0xea, 0x04, 0x1c, 0x3f, 0x34, 0x9a, 0x51, 0x36, - 0xf6, 0x0c, 0x4c, 0x6a, 0xba, 0x8a, 0x0f, 0x68, 0x63, 0x13, 0x22, 0x7b, 0x08, 0xec, 0x34, 0xc6, - 0xc7, 0xda, 0x69, 0xf4, 0xb2, 0x45, 0x02, 0x15, 0x8d, 0x52, 0x0b, 0xdf, 0x8b, 0xc1, 0x2c, 0x6f, - 0x4e, 0xe4, 0x8b, 0x98, 0xa7, 0x4a, 0x24, 0x47, 0x9f, 0x07, 0xe8, 0x98, 0x78, 0x4f, 0x62, 0xac, - 0xf1, 0xb1, 0x58, 0xd3, 0x84, 0x83, 0x12, 0xd0, 0x97, 0x60, 0x9a, 0x0c, 0xf4, 0x8e, 0x69, 0x74, - 0x0c, 0x8b, 0xc4, 0x31, 0xd6, 0x78, 0xd0, 0x68, 0xe6, 0xf8, 0x68, 0x3e, 0xb7, 0xa6, 0xe9, 0x9b, - 0x9c, 0xb1, 0x51, 0x17, 0x89, 0xc7, 0x70, 0x1f, 0x9d, 0x01, 0xf8, 0x97, 0x02, 0x9c, 0xf9, 0xc4, - 0x96, 0x7d, 0xff, 0x2d, 0x34, 0xe6, 0xce, 0x43, 0x05, 0xfa, 0x58, 0xd3, 0x77, 0x8c, 0xe8, 0x17, - 0xe3, 0xdf, 0x17, 0x60, 0xc6, 0x27, 0x3e, 0xca, 0x28, 0xe7, 0x74, 0xc7, 0x15, 0xbe, 0x4c, 0xe2, - 0x1e, 0xbf, 0xd9, 0x47, 0x39, 0xa8, 0xfe, 0x38, 0x06, 0xe7, 0xca, 0x6c, 0x0f, 0xda, 0x49, 0xd0, - 0x88, 0xd2, 0x4a, 0x8a, 0x30, 0xb5, 0x87, 0x4d, 0x4b, 0x33, 0xd8, 0x7c, 0x9b, 0x13, 0x9d, 0x47, - 0x34, 0x07, 0x29, 0x4b, 0x97, 0x3b, 0xd6, 0xae, 0xe1, 0xec, 0xe2, 0xb9, 0xcf, 0x6e, 0x32, 0xc9, - 0xe4, 0xe9, 0x93, 0x49, 0x92, 0xc3, 0x93, 0x49, 0xa6, 0x3e, 0x76, 0x32, 0x09, 0xdf, 0x32, 0xfb, - 0xa1, 0x00, 0xe7, 0xfb, 0xf4, 0x17, 0xa5, 0xcd, 0x7c, 0x15, 0x32, 0x0a, 0x17, 0x4c, 0xbc, 0x31, - 0xdb, 0x15, 0xac, 0x91, 0x62, 0xa7, 0xc4, 0x28, 0xc7, 0x47, 0xf3, 0xe0, 0x54, 0xb5, 0xb6, 0xc2, - 0x55, 0x44, 0xfe, 0x56, 0x4b, 0xff, 0x27, 0x03, 0xd3, 0x95, 0x03, 0xb6, 0xe6, 0x5d, 0x67, 0x61, - 0x01, 0xba, 0x07, 0xa9, 0x8e, 0x69, 0xec, 0x69, 0x4e, 0x33, 0xf2, 0x81, 0x90, 0xc9, 0x69, 0x46, - 0x0f, 0xd7, 0x26, 0xe7, 0x10, 0x5d, 0x5e, 0xd4, 0x80, 0xf4, 0x43, 0x43, 0x91, 0x5b, 0xf7, 0xb4, - 0x96, 0x63, 0xff, 0x2f, 0x8d, 0x16, 0xb4, 0xe8, 0xf2, 0x6c, 0xca, 0xf6, 0xae, 0xd3, 0x15, 0x2e, - 0x11, 0xd5, 0x20, 0x55, 0xb5, 0xed, 0x0e, 0x79, 0xc9, 0xbd, 0xc9, 0xf5, 0x31, 0x84, 0x12, 0x16, - 0x2e, 0xcb, 0x65, 0x47, 0x0d, 0x98, 0xb9, 0x6f, 0x18, 0xcd, 0x16, 0x2e, 0xb7, 0x8c, 0xae, 0x5a, - 0x36, 0xf4, 0x1d, 0xad, 0xc9, 0xfd, 0xf1, 0xb5, 0x31, 0x64, 0xde, 0x2f, 0xd7, 0xc5, 0x7e, 0x01, - 0x68, 0x09, 0x52, 0xf5, 0xbb, 0x5c, 0x18, 0x8b, 0xe3, 0xae, 0x8e, 0x21, 0xac, 0x7e, 0x57, 0x74, - 0xd9, 0xd0, 0x03, 0xc8, 0x2c, 0x3d, 0xed, 0x9a, 0x98, 0x4b, 0x49, 0x0e, 0xcc, 0x5c, 0xe8, 0x95, - 0x42, 0xb9, 0x44, 0x3f, 0x33, 0xaa, 0x43, 0xfe, 0x6d, 0xc3, 0x7c, 0xdc, 0x32, 0x64, 0xa7, 0x85, - 0x53, 0x54, 0xdc, 0x67, 0xc6, 0x10, 0xe7, 0x30, 0x8a, 0x3d, 0x22, 0xe6, 0xbe, 0x04, 0xb9, 0x40, - 0x37, 0x21, 0x04, 0x89, 0x0e, 0xe9, 0x11, 0x81, 0xa6, 0x02, 0xd1, 0xbf, 0xd1, 0x8b, 0x30, 0xa5, - 0x1b, 0x2a, 0x76, 0x6c, 0x38, 0xb7, 0x7c, 0xe6, 0xf8, 0x68, 0x3e, 0xb9, 0x6e, 0xa8, 0x2c, 0xa0, - 0xe0, 0x7f, 0x89, 0x49, 0x52, 0xc8, 0x09, 0x27, 0xe6, 0xae, 0x41, 0x82, 0xf4, 0x0f, 0x71, 0x23, - 0xdb, 0xb2, 0x85, 0xb7, 0x4c, 0x8d, 0xcb, 0x74, 0x1e, 0x79, 0xb9, 0x9f, 0x0a, 0x10, 0xab, 0xdf, - 0x25, 0x11, 0xf5, 0x76, 0x57, 0x79, 0x8c, 0x6d, 0x5e, 0x8a, 0x3f, 0xd1, 0x48, 0xdb, 0xc4, 0x3b, - 0x1a, 0x8b, 0x72, 0xd2, 0x22, 0x7f, 0x42, 0xcf, 0x01, 0xc8, 0x8a, 0x82, 0x2d, 0x4b, 0x72, 0x4e, - 0x7f, 0xa5, 0xc5, 0x34, 0xa3, 0xac, 0xe2, 0x43, 0xc2, 0x66, 0x61, 0xc5, 0xc4, 0xb6, 0x93, 0xd3, - 0xc4, 0x9e, 0x08, 0x9b, 0x8d, 0xdb, 0x1d, 0xc9, 0x36, 0x1e, 0x63, 0x9d, 0xf6, 0x6a, 0x9a, 0xb8, - 0x87, 0x76, 0xa7, 0x41, 0x08, 0xc4, 0xb3, 0x61, 0x5d, 0xf5, 0xdc, 0x50, 0x5a, 0x74, 0x9f, 0x89, - 0x48, 0x13, 0x37, 0x35, 0x7e, 0x9c, 0x29, 0x2d, 0xf2, 0x27, 0xa2, 0x31, 0xb9, 0x6b, 0xef, 0xd2, - 0x44, 0x8e, 0xb4, 0x48, 0xff, 0xe6, 0x4d, 0xfb, 0x86, 0x00, 0xf1, 0xfb, 0xe5, 0xfa, 0x89, 0xdb, - 0xe6, 0x48, 0x8c, 0x7b, 0x12, 0x69, 0x2a, 0xa1, 0xd6, 0x6a, 0x69, 0x7a, 0x93, 0x04, 0x1d, 0x5f, - 0xc5, 0x8a, 0xd3, 0xb2, 0x3c, 0x27, 0x6f, 0x32, 0x2a, 0x5a, 0x80, 0x8c, 0x62, 0x62, 0x15, 0xeb, - 0xb6, 0x26, 0xb7, 0x2c, 0xde, 0x44, 0x3f, 0x89, 0x57, 0xee, 0x6b, 0x02, 0x4c, 0x52, 0xf3, 0x42, - 0xcf, 0x42, 0x5a, 0x31, 0x74, 0x5b, 0xd6, 0x74, 0xee, 0x27, 0xd2, 0xa2, 0x47, 0x18, 0x58, 0xc9, - 0x4b, 0x90, 0x95, 0x15, 0xc5, 0xe8, 0xea, 0xb6, 0xa4, 0xcb, 0x6d, 0xcc, 0x2b, 0x9b, 0xe1, 0xb4, - 0x75, 0xb9, 0x8d, 0xd1, 0x3c, 0x38, 0x8f, 0xee, 0x19, 0xbc, 0xb4, 0x08, 0x9c, 0xb4, 0x8a, 0x0f, - 0x79, 0x4d, 0x7e, 0x28, 0x40, 0xca, 0x31, 0x4b, 0x52, 0x99, 0x26, 0xd6, 0xb1, 0x29, 0xdb, 0x86, - 0x5b, 0x19, 0x97, 0xd0, 0x3b, 0x27, 0xa5, 0xbd, 0x39, 0xe9, 0x0c, 0x4c, 0xda, 0xf2, 0x76, 0xcb, - 0xa9, 0x07, 0x7b, 0xa0, 0xcb, 0xc7, 0x2d, 0xb9, 0xc9, 0xd6, 0xc8, 0xd2, 0x22, 0x7b, 0x20, 0x4d, - 0xe2, 0xb9, 0xab, 0x4c, 0x3b, 0xfc, 0x89, 0xd4, 0x97, 0xa5, 0x6b, 0x6e, 0xe3, 0xa6, 0xa6, 0x53, - 0x03, 0x88, 0x8b, 0x40, 0x49, 0xcb, 0x84, 0x82, 0x9e, 0x81, 0x34, 0x2b, 0x80, 0x75, 0x95, 0x5a, - 0x41, 0x5c, 0x4c, 0x51, 0x42, 0xc5, 0x39, 0x8f, 0xc4, 0x03, 0x91, 0xef, 0x0a, 0x30, 0xc3, 0x72, - 0x6e, 0x58, 0x9e, 0x67, 0x74, 0xb3, 0xf2, 0x6b, 0x90, 0x56, 0x65, 0x5b, 0x66, 0x67, 0xfe, 0x62, - 0x43, 0xcf, 0xfc, 0x39, 0x6e, 0x92, 0x94, 0xa7, 0xe7, 0xfe, 0x10, 0x24, 0xc8, 0xdf, 0xec, 0xac, - 0xa4, 0x48, 0xff, 0xf6, 0xb2, 0x18, 0xfc, 0xd5, 0x8d, 0x32, 0x4a, 0xb9, 0x05, 0x67, 0x89, 0x73, - 0xa9, 0xe8, 0x8a, 0x79, 0xd8, 0x21, 0x50, 0x7a, 0x83, 0xfe, 0x6b, 0xa1, 0x82, 0x6f, 0x17, 0x88, - 0x6e, 0xfe, 0xf0, 0xba, 0x7c, 0x23, 0x09, 0xb9, 0xca, 0x41, 0xc7, 0x30, 0x23, 0x5e, 0x75, 0x9b, - 0xe2, 0x68, 0x79, 0xc8, 0xbe, 0x6c, 0x8f, 0xdb, 0x74, 0xb6, 0x3c, 0x39, 0x23, 0x5a, 0x06, 0x60, - 0x19, 0x99, 0x34, 0x71, 0x27, 0x7e, 0x82, 0xdd, 0x29, 0xca, 0x46, 0xa8, 0x68, 0x1d, 0x32, 0xed, - 0x3d, 0x45, 0x91, 0x76, 0xb4, 0x96, 0xcd, 0x73, 0xd9, 0xc2, 0x93, 0xa7, 0xd7, 0x1e, 0x95, 0xcb, - 0xf7, 0x68, 0x21, 0x96, 0x52, 0xe6, 0x3d, 0x8b, 0x40, 0x24, 0xb0, 0xbf, 0xd1, 0x0b, 0xc0, 0xcf, - 0x7b, 0x48, 0x96, 0x73, 0x7a, 0x6b, 0x39, 0x77, 0x7c, 0x34, 0x9f, 0x16, 0x29, 0xb5, 0x5e, 0x6f, - 0x88, 0x69, 0x56, 0xa0, 0x6e, 0xd9, 0xe8, 0x32, 0xe4, 0x8c, 0xb6, 0x66, 0x4b, 0x4e, 0xe0, 0xc0, - 0x63, 0xad, 0x2c, 0x21, 0x3a, 0x81, 0x05, 0x6a, 0xc0, 0x75, 0xac, 0x93, 0xe1, 0x43, 0xdb, 0x29, - 0x6d, 0xb3, 0xc5, 0x3d, 0x9b, 0x0d, 0x41, 0xc9, 0xe8, 0xd8, 0x5a, 0x5b, 0x7b, 0x4a, 0x77, 0x86, - 0xf9, 0xae, 0xcc, 0x65, 0x56, 0x9c, 0xb4, 0x6f, 0x99, 0xae, 0xfa, 0xf1, 0xb2, 0x1b, 0xbe, 0xa2, - 0xe8, 0x6b, 0x02, 0x9c, 0xe3, 0x8a, 0x94, 0xb6, 0x0f, 0xa5, 0x16, 0x99, 0x75, 0x34, 0xfb, 0x50, - 0x7a, 0xbc, 0x57, 0x4c, 0xd1, 0x88, 0xee, 0x73, 0xa1, 0x1d, 0xe2, 0xb3, 0x83, 0x45, 0xa7, 0x5b, - 0x0e, 0x1f, 0x72, 0xe6, 0xd5, 0xbd, 0x8a, 0x6e, 0x9b, 0x87, 0xcb, 0xe7, 0x8f, 0x8f, 0xe6, 0x67, - 0xfb, 0xdf, 0x3e, 0x12, 0x67, 0xad, 0x7e, 0x16, 0x54, 0x05, 0xc0, 0xae, 0x35, 0xd2, 0xfc, 0xba, - 0xf0, 0x39, 0x39, 0xd4, 0x6c, 0x45, 0x1f, 0xef, 0xdc, 0x57, 0xa1, 0x38, 0xa8, 0x4e, 0x7e, 0xf3, - 0x4e, 0xb3, 0xbd, 0xcd, 0x57, 0x83, 0x8b, 0x13, 0x63, 0x18, 0xa0, 0xb3, 0x40, 0x11, 0x7b, 0xd5, - 0x71, 0x2c, 0xff, 0x57, 0x80, 0xdc, 0x72, 0xb7, 0xf5, 0x78, 0xa3, 0x53, 0xef, 0xb6, 0xdb, 0xb2, - 0x79, 0x48, 0x7c, 0x12, 0x73, 0x08, 0xda, 0x53, 0x96, 0x1d, 0x13, 0xe7, 0x23, 0x5e, 0x7b, 0x8a, - 0xc9, 0x88, 0xe7, 0xb9, 0xef, 0x84, 0xce, 0x12, 0xdb, 0x2f, 0x43, 0x8e, 0xae, 0x14, 0x48, 0x58, - 0xb7, 0x4d, 0x0d, 0xb3, 0x05, 0xb0, 0xb8, 0x98, 0xa5, 0xc4, 0x0a, 0xa3, 0xa1, 0xab, 0x90, 0xb7, - 0x0e, 0x2d, 0x1b, 0xb7, 0x25, 0x76, 0x38, 0x9c, 0xc1, 0xdb, 0xb8, 0x98, 0x63, 0x54, 0x91, 0x11, - 0x4b, 0x3f, 0x8b, 0x43, 0xde, 0xe9, 0xa3, 0x28, 0x23, 0xe7, 0x65, 0x98, 0xdc, 0xd1, 0x5a, 0xd8, - 0x49, 0x50, 0xb8, 0x36, 0xc4, 0x34, 0x78, 0x4e, 0x33, 0xe9, 0x2c, 0x07, 0x7b, 0x51, 0xd6, 0x28, - 0x46, 0xeb, 0xdc, 0xff, 0x88, 0x41, 0x82, 0x06, 0xab, 0xb7, 0x21, 0x41, 0x3d, 0xae, 0x30, 0x8e, - 0xc7, 0xa5, 0x45, 0xdd, 0x48, 0x2a, 0xe6, 0x8b, 0xa4, 0x48, 0x58, 0xb2, 0x2b, 0xbf, 0x7c, 0xfb, - 0x0e, 0x1d, 0xa9, 0x59, 0x91, 0x3f, 0xa1, 0x65, 0x9a, 0x39, 0x63, 0x98, 0x36, 0x56, 0x79, 0x90, - 0x18, 0xe6, 0xe3, 0x02, 0x1d, 0xef, 0x78, 0x77, 0x87, 0x0f, 0x5d, 0x80, 0x38, 0x71, 0x01, 0x53, - 0x6c, 0x57, 0xfd, 0xf8, 0x68, 0x3e, 0x4e, 0x06, 0x3f, 0xa1, 0xa1, 0x5b, 0x90, 0x09, 0x8e, 0x37, - 0xe1, 0x46, 0x9a, 0x79, 0x15, 0xdf, 0x58, 0x81, 0x96, 0x6b, 0xc1, 0x0c, 0x20, 0x3d, 0x48, 0xa4, - 0x12, 0x85, 0xc9, 0xd2, 0x7f, 0x9f, 0x84, 0x5c, 0xad, 0x1d, 0xb5, 0x3f, 0x5e, 0x0a, 0xf6, 0x70, - 0x58, 0x64, 0x1d, 0xf8, 0x68, 0x48, 0x07, 0x07, 0xa6, 0xc2, 0xf8, 0xc9, 0xa6, 0xc2, 0x1a, 0x09, - 0xe6, 0xf8, 0x01, 0xf8, 0xf8, 0x80, 0x20, 0x3a, 0xf8, 0xfd, 0x06, 0x71, 0x71, 0x22, 0xe1, 0xf1, - 0xb2, 0xfc, 0x69, 0x66, 0xc4, 0x9b, 0x34, 0x66, 0x64, 0x56, 0x96, 0x1c, 0xdf, 0xca, 0xa6, 0xb0, - 0xae, 0xd2, 0x19, 0x21, 0xe8, 0x8e, 0xa6, 0x3e, 0x86, 0x3b, 0x7a, 0xca, 0x8d, 0xf5, 0x35, 0x88, - 0xab, 0x9a, 0x39, 0xe4, 0x5e, 0x86, 0xf0, 0x79, 0x8e, 0x30, 0x8d, 0xb0, 0xda, 0x84, 0xdf, 0x6a, - 0xfd, 0x60, 0x7a, 0x6e, 0x03, 0xc0, 0xd3, 0x10, 0x5a, 0x80, 0xa4, 0xd1, 0x52, 0x9d, 0xc3, 0x0e, - 0xb9, 0xe5, 0xf4, 0xf1, 0xd1, 0xfc, 0xe4, 0x46, 0x4b, 0xad, 0xad, 0x88, 0x93, 0x46, 0x4b, 0xad, - 0xa9, 0xf4, 0x0e, 0x02, 0xbc, 0x2f, 0xb9, 0x89, 0x52, 0x59, 0x71, 0x4a, 0xc7, 0xfb, 0x04, 0xba, - 0xf7, 0x24, 0x70, 0x10, 0x13, 0xfc, 0xb6, 0x00, 0x79, 0xa7, 0x37, 0xa2, 0x75, 0x33, 0x29, 0xad, - 0xcd, 0x87, 0x5d, 0xfc, 0x64, 0xc3, 0xce, 0xe1, 0xe3, 0x87, 0x28, 0xbf, 0x2e, 0xf0, 0x24, 0xd9, - 0xba, 0x22, 0xdb, 0x64, 0x8e, 0x8e, 0x70, 0xa8, 0x3c, 0x0f, 0x05, 0x53, 0xd6, 0x55, 0xa3, 0xad, - 0x3d, 0xc5, 0x6c, 0xf5, 0xcd, 0xe2, 0x9b, 0x6c, 0xd3, 0x2e, 0x9d, 0x2e, 0x2f, 0x39, 0x8b, 0x87, - 0xbf, 0x14, 0x78, 0x42, 0xad, 0x5b, 0x99, 0x28, 0x95, 0xb6, 0x0a, 0x49, 0x93, 0xa5, 0xe5, 0xb1, - 0xa1, 0xfb, 0x62, 0x88, 0x90, 0xb0, 0xaf, 0xb3, 0xac, 0x37, 0x77, 0xf0, 0x50, 0x11, 0x73, 0x5f, - 0x84, 0x49, 0x4a, 0x3e, 0x85, 0x83, 0xe5, 0x9a, 0xff, 0xdb, 0x18, 0x5c, 0xa1, 0x9f, 0x7b, 0x84, - 0x4d, 0x6d, 0xe7, 0x70, 0xd3, 0x34, 0x6c, 0xac, 0xd8, 0x58, 0xf5, 0x0e, 0x15, 0x44, 0xea, 0xb5, - 0xd2, 0x1d, 0xe7, 0x03, 0x27, 0x4a, 0x4f, 0x72, 0xb9, 0xd0, 0x2a, 0x4c, 0xb3, 0x29, 0x55, 0x92, - 0x5b, 0xda, 0x1e, 0x96, 0x64, 0xfb, 0x24, 0x73, 0x53, 0x8e, 0xf1, 0x2e, 0x11, 0xd6, 0x25, 0x1b, - 0xa9, 0x90, 0xe6, 0xc2, 0x34, 0x95, 0xdf, 0x71, 0x72, 0xff, 0xe3, 0xad, 0x2f, 0xa5, 0xd8, 0xd4, - 0x5e, 0x5b, 0x11, 0x53, 0x4c, 0xb2, 0xbb, 0x3f, 0xf0, 0x13, 0x01, 0xae, 0x8e, 0x50, 0x74, 0x94, - 0x66, 0x36, 0x07, 0xa9, 0x3d, 0xf2, 0x21, 0x8d, 0x6b, 0x3a, 0x25, 0xba, 0xcf, 0x68, 0x0d, 0x72, - 0x3b, 0xb2, 0xd6, 0xc2, 0xaa, 0xc4, 0x2d, 0x71, 0x70, 0x4e, 0x5b, 0x78, 0xaa, 0x65, 0x96, 0xb1, - 0xd3, 0x97, 0x56, 0xe9, 0x37, 0x63, 0x30, 0xb3, 0xa4, 0xaa, 0xf5, 0x3a, 0xf7, 0x60, 0xd1, 0xd9, - 0x8b, 0x83, 0xb8, 0x62, 0x1e, 0xe2, 0x42, 0x2f, 0x02, 0x52, 0x35, 0x8b, 0xdd, 0xbf, 0x60, 0xed, - 0xca, 0xaa, 0xb1, 0xef, 0xed, 0xde, 0xcf, 0x38, 0x6f, 0xea, 0xce, 0x0b, 0xf4, 0x2e, 0xd0, 0x70, - 0x5f, 0xb2, 0x6c, 0xd9, 0xdd, 0x64, 0x78, 0xe1, 0x24, 0x47, 0x81, 0x18, 0x1c, 0x70, 0x1f, 0xc5, - 0x34, 0x11, 0x47, 0xff, 0x44, 0x37, 0xa0, 0xa0, 0x11, 0x0d, 0xd8, 0x92, 0x6c, 0x39, 0xa7, 0x49, - 0xd8, 0x05, 0x10, 0x79, 0x46, 0x5f, 0xb2, 0xfc, 0x87, 0x44, 0x58, 0xb2, 0xbb, 0xa7, 0xa7, 0x28, - 0x61, 0xe2, 0x6f, 0x0b, 0x90, 0xe7, 0x27, 0x60, 0xa2, 0xec, 0x80, 0x7b, 0x90, 0x75, 0x8e, 0xdb, - 0xec, 0x98, 0x46, 0xfb, 0x24, 0x43, 0x2d, 0xc3, 0x19, 0xef, 0x99, 0x46, 0x3b, 0x70, 0x60, 0xfe, - 0x11, 0x4c, 0xbb, 0x35, 0x8d, 0x52, 0x05, 0xdf, 0xa5, 0xa7, 0x60, 0x99, 0xe0, 0xa8, 0xf7, 0xcf, - 0x3f, 0x09, 0x3d, 0xd0, 0xcd, 0x0d, 0x7f, 0x75, 0xa3, 0x54, 0xc6, 0x2f, 0x05, 0xc8, 0xd7, 0xbb, - 0xdb, 0xec, 0xc2, 0x9f, 0xe8, 0xf4, 0x50, 0x81, 0x74, 0x0b, 0xef, 0xd8, 0xd2, 0xa9, 0x12, 0xb4, - 0x53, 0x84, 0x95, 0x26, 0xa9, 0xdf, 0x07, 0x30, 0xe9, 0x11, 0x2c, 0x2a, 0x27, 0x7e, 0x42, 0x39, - 0x69, 0xca, 0xeb, 0xc5, 0x3a, 0xa5, 0xdf, 0x8f, 0xc1, 0xb4, 0xdb, 0xd8, 0x28, 0x9d, 0xe8, 0x7f, - 0x09, 0x38, 0x8f, 0xf8, 0x29, 0x9c, 0xc7, 0x0c, 0xcf, 0x1b, 0x08, 0x77, 0x20, 0x8b, 0x30, 0x4b, - 0x03, 0x12, 0x49, 0xee, 0x74, 0x5a, 0x1a, 0x56, 0x25, 0xb6, 0x21, 0x9d, 0xa0, 0x1b, 0xd2, 0x33, - 0xf4, 0xd5, 0x12, 0x7b, 0x53, 0xa3, 0x9b, 0xd3, 0xf7, 0x20, 0xbb, 0x63, 0x62, 0xfc, 0x14, 0x4b, - 0x14, 0x63, 0x9d, 0x24, 0x3d, 0x22, 0xc3, 0x18, 0xeb, 0x84, 0x8f, 0x1b, 0xe0, 0x7b, 0x30, 0x43, - 0x15, 0x1c, 0xf5, 0xf1, 0x4f, 0xde, 0x2b, 0x7f, 0x27, 0x00, 0xf2, 0xcb, 0xff, 0xe4, 0x3a, 0x26, - 0x16, 0x79, 0xc7, 0xbc, 0x00, 0x88, 0x65, 0xca, 0x59, 0x52, 0x07, 0x9b, 0x92, 0x85, 0x15, 0x83, - 0x5f, 0x63, 0x23, 0x88, 0x05, 0xfe, 0x66, 0x13, 0x9b, 0x75, 0x4a, 0x2f, 0xbd, 0x3f, 0x07, 0x59, - 0xae, 0x93, 0x2d, 0x5d, 0x33, 0x74, 0x74, 0x1b, 0xe2, 0x4d, 0xbe, 0x5c, 0x9d, 0x09, 0x5d, 0x9d, - 0xf2, 0xae, 0xd2, 0xaa, 0x4e, 0x88, 0xa4, 0x2c, 0x61, 0xe9, 0x74, 0xed, 0x90, 0xa0, 0xc8, 0x4b, - 0xf0, 0xf5, 0xb3, 0x74, 0xba, 0x36, 0xaa, 0xc3, 0xb4, 0xe2, 0x5d, 0x25, 0x24, 0x11, 0xf6, 0xf8, - 0x40, 0xf8, 0x13, 0x7a, 0x21, 0x53, 0x75, 0x42, 0xcc, 0x2b, 0x81, 0x17, 0xa8, 0xec, 0xbf, 0xbb, - 0x86, 0x4d, 0x97, 0x97, 0x43, 0x8f, 0x8a, 0x06, 0xef, 0xcd, 0xa9, 0x4e, 0xf8, 0xae, 0xb8, 0x41, - 0xaf, 0x41, 0x52, 0xa5, 0x77, 0xa2, 0x70, 0x0b, 0x0d, 0x33, 0xa2, 0xc0, 0x35, 0x34, 0xd5, 0x09, - 0x91, 0x73, 0xa0, 0x07, 0x90, 0x65, 0x7f, 0xb1, 0xe0, 0x84, 0x63, 0xc2, 0xab, 0x83, 0x25, 0xf8, - 0x7c, 0x7d, 0x75, 0x42, 0xcc, 0xa8, 0x1e, 0x15, 0x7d, 0x16, 0x12, 0x96, 0x22, 0x3b, 0xa8, 0xf0, - 0xe2, 0x80, 0x3b, 0x16, 0x3c, 0x66, 0x5a, 0x1a, 0xbd, 0xce, 0xee, 0xbd, 0xb3, 0x0f, 0x9c, 0xd5, - 0xad, 0xb0, 0xea, 0x07, 0x4e, 0x01, 0x93, 0xea, 0x63, 0x4a, 0x40, 0xf7, 0x21, 0x23, 0x93, 0x28, - 0x4f, 0xa2, 0x67, 0xf1, 0x8a, 0x30, 0xf0, 0xb4, 0x54, 0xdf, 0x39, 0xca, 0x2a, 0x3d, 0x6a, 0xec, - 0x10, 0x3d, 0x41, 0x6d, 0x6c, 0x36, 0x71, 0x31, 0x33, 0x5c, 0x90, 0x3f, 0x15, 0xc8, 0x15, 0x44, - 0x89, 0x24, 0xda, 0xdb, 0x75, 0xce, 0x59, 0xd0, 0x46, 0x65, 0x07, 0xee, 0xec, 0x85, 0x9c, 0x13, - 0xa9, 0x4e, 0x88, 0xd9, 0x5d, 0x1f, 0x19, 0x2d, 0x42, 0xac, 0xa9, 0x14, 0x73, 0x54, 0xc6, 0xb3, - 0xc3, 0x4e, 0x41, 0x54, 0x27, 0xc4, 0x58, 0x53, 0x21, 0xf8, 0x9e, 0xe5, 0xaf, 0x1f, 0xe8, 0xc5, - 0xfc, 0xc0, 0x11, 0x1f, 0x3c, 0x0c, 0x50, 0x9d, 0x10, 0x69, 0xca, 0x3c, 0xf9, 0xde, 0x26, 0xe4, - 0x4d, 0x96, 0x4b, 0xe5, 0x64, 0x48, 0x16, 0x06, 0xee, 0x76, 0x86, 0x25, 0x49, 0x56, 0x69, 0xd4, - 0xef, 0xa3, 0xa3, 0xaf, 0xc0, 0x99, 0xa0, 0x44, 0x6e, 0x69, 0x33, 0x7d, 0x6e, 0x24, 0x5c, 0x6e, - 0xd0, 0xe0, 0x90, 0xd9, 0xf7, 0x12, 0xbd, 0x02, 0x93, 0xac, 0xd7, 0x10, 0x15, 0x19, 0xb6, 0x8d, - 0xdf, 0xd3, 0x61, 0xac, 0x3c, 0x31, 0x7e, 0x9b, 0x27, 0x11, 0x49, 0x2d, 0xa3, 0x59, 0x9c, 0x1d, - 0x68, 0xfc, 0xfd, 0x49, 0x51, 0xc4, 0xf8, 0x6d, 0x8f, 0x4a, 0xfa, 0xdd, 0x64, 0x6f, 0x78, 0xce, - 0xc9, 0x99, 0x81, 0xfd, 0x1e, 0x92, 0x5b, 0x54, 0xa5, 0x09, 0xe0, 0x1e, 0x99, 0x54, 0xcd, 0x64, - 0x77, 0x8c, 0x48, 0x74, 0x4c, 0x9d, 0x1d, 0x58, 0xb5, 0xfe, 0x7b, 0x53, 0xaa, 0x34, 0x0c, 0x72, - 0xa9, 0xe8, 0x11, 0x14, 0xf8, 0xe9, 0x7f, 0x6f, 0x29, 0xfd, 0x1c, 0x95, 0xf7, 0x7c, 0xa8, 0xeb, - 0x0a, 0x4b, 0xd2, 0xa8, 0x4e, 0x88, 0xd3, 0x4a, 0xf0, 0x0d, 0x7a, 0x07, 0x66, 0xa8, 0x3c, 0x49, - 0xf1, 0xae, 0x6d, 0x28, 0x16, 0xfb, 0xb2, 0x1d, 0x07, 0xdf, 0xf0, 0xe0, 0x48, 0x2e, 0x28, 0x3d, - 0xaf, 0x88, 0x19, 0x6b, 0xba, 0x66, 0x53, 0x2f, 0x3b, 0x37, 0xd0, 0x8c, 0x83, 0x57, 0xaf, 0x11, - 0x33, 0xd6, 0x18, 0x85, 0x98, 0xb1, 0xcd, 0x13, 0x92, 0x78, 0x77, 0x3c, 0x3b, 0xd0, 0x8c, 0xc3, - 0x32, 0x97, 0x88, 0x19, 0xdb, 0x7e, 0x3a, 0x31, 0x63, 0xe6, 0x20, 0x7a, 0xe4, 0x3e, 0x37, 0xd0, - 0x8c, 0x07, 0x9e, 0x86, 0x25, 0x66, 0x2c, 0xf7, 0xbd, 0x44, 0x2b, 0x00, 0x2c, 0x3c, 0xd1, 0xf4, - 0x1d, 0xa3, 0x78, 0x71, 0xe0, 0x64, 0xd0, 0x9b, 0x92, 0x44, 0x26, 0x83, 0x96, 0x43, 0x23, 0x8e, - 0x8c, 0x62, 0x23, 0x89, 0x6e, 0xf5, 0x15, 0xe7, 0x07, 0x3a, 0xb2, 0xbe, 0x1d, 0x3f, 0xe2, 0xc8, - 0xf6, 0x5d, 0x22, 0x99, 0x55, 0xd8, 0x6a, 0x6d, 0x71, 0x61, 0xb0, 0x5b, 0xf6, 0xef, 0x78, 0x50, - 0xb7, 0x4c, 0x09, 0x68, 0x09, 0xd2, 0x64, 0xda, 0x3e, 0xa4, 0x6e, 0xe8, 0xd2, 0xc0, 0x80, 0xb3, - 0xe7, 0x84, 0x43, 0x75, 0x42, 0x4c, 0x3d, 0xe1, 0x24, 0xf2, 0x79, 0xb6, 0x6a, 0x55, 0x2c, 0x0d, - 0xfc, 0x7c, 0x60, 0xcd, 0x93, 0x7c, 0x9e, 0x71, 0x20, 0x05, 0xce, 0xb2, 0xbe, 0xe2, 0x87, 0x51, - 0x4d, 0x7e, 0x72, 0xb2, 0x78, 0x99, 0x8a, 0x1a, 0xb8, 0x06, 0x14, 0x7a, 0x46, 0xb6, 0x3a, 0x21, - 0xce, 0xca, 0xfd, 0x6f, 0xc9, 0x80, 0xe7, 0x53, 0x0f, 0x5b, 0x39, 0x2a, 0x5e, 0x19, 0x38, 0xe0, - 0x43, 0xd6, 0xda, 0xc8, 0x80, 0x97, 0x7d, 0x64, 0x36, 0x01, 0xa9, 0x92, 0x65, 0xb1, 0x8d, 0xe1, - 0xab, 0x43, 0x26, 0xa0, 0x1e, 0xec, 0xcf, 0x26, 0x20, 0xb5, 0xce, 0x38, 0x89, 0x20, 0xa5, 0x85, - 0x65, 0x93, 0xbb, 0xd9, 0x6b, 0x03, 0x05, 0xf5, 0x5d, 0x67, 0x46, 0x04, 0x29, 0x2e, 0x91, 0x04, - 0x3c, 0xa6, 0x73, 0x6d, 0x08, 0x0f, 0xfd, 0xae, 0x0f, 0x0c, 0x78, 0x42, 0x6f, 0x37, 0x21, 0x01, - 0x8f, 0x19, 0x78, 0x81, 0x3e, 0x0f, 0x53, 0x1c, 0xa1, 0x15, 0x6f, 0x0c, 0x09, 0x48, 0xfd, 0xd0, - 0x9a, 0x8c, 0x6b, 0xce, 0xc3, 0xbc, 0x2c, 0x43, 0x86, 0xac, 0x79, 0xcf, 0x0f, 0xf1, 0xb2, 0x7d, - 0xe0, 0x94, 0x79, 0x59, 0x8f, 0x4c, 0xbc, 0x2c, 0xb3, 0x53, 0x3e, 0xd7, 0xdd, 0x1c, 0xe8, 0x65, - 0xfb, 0x8f, 0x57, 0x10, 0x2f, 0xfb, 0xc4, 0xa3, 0x92, 0x96, 0x59, 0x0c, 0x15, 0x15, 0x3f, 0x33, - 0xb0, 0x65, 0x41, 0x90, 0x48, 0x5a, 0xc6, 0x79, 0x48, 0xb7, 0xb1, 0x4c, 0x58, 0xa6, 0xe9, 0x17, - 0x06, 0x9f, 0xfb, 0xee, 0x05, 0x11, 0x55, 0xe7, 0x3e, 0x5b, 0xa6, 0x61, 0xd7, 0x51, 0x99, 0xfc, - 0x94, 0x2b, 0xd7, 0xd4, 0x8b, 0xc3, 0x1d, 0x55, 0xd8, 0x01, 0x5e, 0xd7, 0x51, 0x05, 0x5e, 0xd2, - 0xaa, 0xb2, 0xc3, 0x4a, 0x74, 0x7c, 0x2f, 0x0e, 0x39, 0xa2, 0xde, 0x73, 0x7e, 0x8c, 0x56, 0xd5, - 0x25, 0x7a, 0x43, 0xa8, 0xcb, 0xee, 0x52, 0x28, 0xde, 0x1a, 0x3e, 0x84, 0x82, 0x77, 0x3a, 0xb8, - 0x43, 0x88, 0x93, 0xdd, 0x39, 0xd3, 0x89, 0x30, 0x5e, 0x1a, 0x3e, 0x67, 0xf6, 0x86, 0x16, 0x6c, - 0xce, 0xe4, 0x31, 0xc5, 0xff, 0x14, 0x60, 0x81, 0xd5, 0x8d, 0xae, 0xe3, 0x1d, 0x4a, 0xee, 0x9a, - 0xa8, 0x2f, 0x5f, 0xfe, 0x36, 0xfd, 0xc0, 0x2b, 0x83, 0xaa, 0x3b, 0x62, 0x8d, 0xb7, 0x3a, 0x21, - 0x3e, 0x27, 0x0f, 0x2b, 0xb7, 0x3c, 0xc5, 0xf7, 0x60, 0xdd, 0x63, 0x83, 0xd3, 0x85, 0xc2, 0x83, - 0x44, 0xea, 0x7c, 0xa1, 0xf8, 0x20, 0x91, 0xba, 0x50, 0x98, 0x7b, 0x90, 0x48, 0x3d, 0x53, 0x78, - 0xb6, 0xf4, 0xf7, 0x17, 0x20, 0xe7, 0x60, 0x38, 0x86, 0x88, 0xee, 0xf8, 0x11, 0xd1, 0xc5, 0x41, - 0x88, 0x88, 0xa3, 0x3e, 0x0e, 0x89, 0xee, 0xf8, 0x21, 0xd1, 0xc5, 0x41, 0x90, 0xc8, 0xe3, 0x21, - 0x98, 0xa8, 0x31, 0x08, 0x13, 0x3d, 0x3f, 0x06, 0x26, 0x72, 0x45, 0xf5, 0x82, 0xa2, 0x95, 0x7e, - 0x50, 0x74, 0x65, 0x38, 0x28, 0x72, 0x45, 0xf9, 0x50, 0xd1, 0xeb, 0x3d, 0xa8, 0xe8, 0xd2, 0x10, - 0x54, 0xe4, 0xf2, 0x3b, 0xb0, 0x68, 0x35, 0x14, 0x16, 0x5d, 0x1b, 0x05, 0x8b, 0x5c, 0x39, 0x01, - 0x5c, 0xf4, 0x72, 0x00, 0x17, 0xcd, 0x0f, 0xc4, 0x45, 0x2e, 0x37, 0x03, 0x46, 0x6f, 0xf4, 0x02, - 0xa3, 0x4b, 0x43, 0x80, 0x91, 0xd7, 0x02, 0x8e, 0x8c, 0xaa, 0x61, 0xc8, 0xe8, 0xea, 0x08, 0x64, - 0xe4, 0x4a, 0xf1, 0x43, 0xa3, 0x6a, 0x18, 0x34, 0xba, 0x3a, 0x02, 0x1a, 0xf5, 0x48, 0x62, 0xd8, - 0x68, 0x3d, 0x1c, 0x1b, 0x5d, 0x1f, 0x89, 0x8d, 0x5c, 0x69, 0x41, 0x70, 0x74, 0xcb, 0x07, 0x8e, - 0x9e, 0x1b, 0x00, 0x8e, 0x5c, 0x56, 0x82, 0x8e, 0xbe, 0xd0, 0x87, 0x8e, 0x4a, 0xc3, 0xd0, 0x91, - 0xcb, 0xeb, 0xc2, 0xa3, 0xb7, 0x06, 0xc0, 0xa3, 0x1b, 0xa3, 0xe1, 0x91, 0x2b, 0xac, 0x07, 0x1f, - 0xc9, 0x43, 0xf1, 0xd1, 0x8b, 0x63, 0xe2, 0x23, 0x57, 0x7a, 0x18, 0x40, 0x7a, 0x35, 0x08, 0x90, - 0x16, 0x06, 0x03, 0x24, 0x57, 0x0c, 0x47, 0x48, 0xab, 0xa1, 0x08, 0xe9, 0xda, 0x28, 0x84, 0xe4, - 0x8d, 0x03, 0x3f, 0x44, 0x5a, 0x0f, 0x87, 0x48, 0xd7, 0x47, 0x42, 0x24, 0xaf, 0xfb, 0x03, 0x18, - 0x69, 0x35, 0x14, 0x23, 0x5d, 0x1b, 0x85, 0x91, 0xbc, 0xca, 0xf9, 0x41, 0xd2, 0xdb, 0x03, 0x41, - 0xd2, 0xcd, 0x71, 0x40, 0x92, 0x2b, 0xb4, 0x0f, 0x25, 0xbd, 0x3b, 0x18, 0x25, 0x7d, 0xe6, 0x04, - 0xf7, 0xe0, 0x85, 0xc2, 0xa4, 0x2f, 0xf4, 0xc1, 0xa4, 0xd2, 0x30, 0x98, 0xe4, 0xd9, 0xb3, 0x83, - 0x93, 0xe4, 0xa1, 0xa8, 0xe6, 0xc5, 0x31, 0x51, 0x8d, 0x67, 0x7c, 0x21, 0xb0, 0xa6, 0x12, 0x02, - 0x6b, 0xae, 0x0c, 0x87, 0x35, 0x9e, 0x3b, 0xf7, 0x70, 0x4d, 0x35, 0x0c, 0xd7, 0x5c, 0x1d, 0x81, - 0x6b, 0x3c, 0x2f, 0xe4, 0x03, 0x36, 0xaf, 0xf7, 0x00, 0x9b, 0x4b, 0x23, 0xf3, 0x75, 0x7c, 0xc8, - 0x66, 0xb9, 0x1f, 0xd9, 0x5c, 0x1e, 0x8a, 0x6c, 0x5c, 0x09, 0x1e, 0xb4, 0x79, 0xbd, 0x07, 0xda, - 0x5c, 0x1a, 0x02, 0x6d, 0xbc, 0x0a, 0x70, 0x6c, 0xa3, 0x0e, 0xc7, 0x36, 0x8b, 0xe3, 0x62, 0x1b, - 0x57, 0x70, 0x28, 0xb8, 0x59, 0x0f, 0x07, 0x37, 0xd7, 0xc7, 0xdc, 0x3d, 0xef, 0x43, 0x37, 0xd5, - 0x30, 0x74, 0x73, 0x75, 0x04, 0xba, 0xf1, 0xcf, 0x21, 0x2e, 0xbc, 0xa9, 0x86, 0xc1, 0x9b, 0xab, - 0x23, 0xe0, 0x8d, 0x27, 0xc9, 0x87, 0x6f, 0x1a, 0x83, 0xf0, 0xcd, 0xf3, 0x63, 0xe0, 0x1b, 0x2f, - 0x78, 0xe9, 0x01, 0x38, 0x6f, 0xf6, 0x02, 0x9c, 0xd2, 0x30, 0x80, 0xe3, 0x8d, 0x48, 0x07, 0xe1, - 0xac, 0x87, 0x23, 0x9c, 0xeb, 0x23, 0x11, 0x8e, 0xdf, 0x49, 0xfa, 0x20, 0xce, 0x6a, 0x28, 0xc4, - 0xb9, 0x36, 0x0a, 0xe2, 0x78, 0x4e, 0xd2, 0x8f, 0x71, 0xde, 0xec, 0xc5, 0x38, 0xa5, 0x61, 0x18, - 0xc7, 0x6b, 0x9c, 0x03, 0x72, 0xaa, 0x61, 0x20, 0xe7, 0xea, 0x08, 0x90, 0xe3, 0x75, 0x9e, 0x0f, - 0xe5, 0xc8, 0x43, 0x51, 0xce, 0x8b, 0x63, 0xa2, 0x9c, 0x1e, 0xc7, 0x15, 0x84, 0x39, 0xd5, 0x30, - 0x98, 0x73, 0x75, 0x04, 0xcc, 0xf1, 0x55, 0xd6, 0xc3, 0x39, 0xeb, 0xe1, 0x38, 0xe7, 0xfa, 0x48, - 0x9c, 0xd3, 0x33, 0x9a, 0x1c, 0xa0, 0xb3, 0x1a, 0x0a, 0x74, 0xae, 0x8d, 0x02, 0x3a, 0x3d, 0x13, - 0x1f, 0x0f, 0x0e, 0xfe, 0xd7, 0xf8, 0x48, 0xe7, 0xd5, 0x93, 0x23, 0x1d, 0xf7, 0x9b, 0x91, 0x40, - 0x9d, 0x07, 0x89, 0xd4, 0xb3, 0x85, 0xe7, 0x4a, 0xdf, 0x9f, 0x84, 0x64, 0xd5, 0xcd, 0x71, 0xf1, - 0x6a, 0x29, 0x9c, 0xe6, 0x0a, 0x1e, 0xb4, 0x42, 0x46, 0x2c, 0xf5, 0x7b, 0xa3, 0x6f, 0x5b, 0xeb, - 0xbf, 0x09, 0x8c, 0xb3, 0x9e, 0xe2, 0x24, 0x2b, 0x7a, 0x19, 0x72, 0x5d, 0x0b, 0x9b, 0x52, 0xc7, - 0xd4, 0x0c, 0x53, 0xb3, 0xd9, 0x99, 0x03, 0x61, 0xb9, 0xf0, 0xd1, 0xd1, 0x7c, 0x76, 0xcb, 0xc2, - 0xe6, 0x26, 0xa7, 0x8b, 0xd9, 0xae, 0xef, 0xc9, 0xf9, 0xf1, 0x9d, 0xc9, 0xf1, 0x7f, 0x7c, 0xe7, - 0x2d, 0x28, 0x98, 0x58, 0x56, 0x03, 0x11, 0x08, 0xbb, 0xdb, 0x26, 0xdc, 0x66, 0xe8, 0x81, 0x1b, - 0xa7, 0x24, 0xbd, 0xe3, 0x66, 0xda, 0x0c, 0x12, 0xd1, 0x6d, 0x38, 0xdb, 0x96, 0x0f, 0x68, 0x36, - 0xa3, 0xe4, 0x04, 0x75, 0x34, 0x43, 0x31, 0x45, 0x33, 0x6f, 0x51, 0x5b, 0x3e, 0xa0, 0xbf, 0xe4, - 0xc3, 0x5e, 0xd1, 0xeb, 0xfd, 0xaf, 0x42, 0x5e, 0xd5, 0x2c, 0x5b, 0xd3, 0x15, 0xe7, 0x12, 0x53, - 0x76, 0x5b, 0x68, 0xce, 0xa1, 0xb2, 0xcb, 0x44, 0x6f, 0xc2, 0x0c, 0xcf, 0x11, 0xf7, 0x7e, 0xdb, - 0x87, 0xc2, 0x97, 0x14, 0xa9, 0x05, 0x79, 0xe1, 0xfd, 0xa8, 0x53, 0x19, 0xa6, 0x9b, 0xb2, 0x8d, - 0xf7, 0xe5, 0x43, 0xc9, 0x39, 0xf3, 0x93, 0xa1, 0x77, 0x03, 0x3e, 0x73, 0x7c, 0x34, 0x9f, 0xbb, - 0xcf, 0x5e, 0xf5, 0x1d, 0xfd, 0xc9, 0x35, 0x7d, 0x2f, 0x54, 0x74, 0x1d, 0xa6, 0x65, 0xeb, 0x50, - 0x57, 0xa8, 0x7a, 0xb0, 0x6e, 0x75, 0x2d, 0x0a, 0x29, 0x52, 0x62, 0x9e, 0x92, 0xcb, 0x0e, 0x15, - 0xbd, 0x0a, 0x17, 0x54, 0x4c, 0x62, 0x24, 0x16, 0x88, 0xd8, 0x86, 0x21, 0x19, 0x2d, 0x55, 0xa2, - 0x77, 0x58, 0x50, 0x38, 0x91, 0x12, 0xcf, 0xd2, 0x02, 0x34, 0x04, 0x69, 0x18, 0xc6, 0x46, 0x4b, - 0xad, 0x90, 0x97, 0xec, 0xbe, 0xd2, 0x07, 0x89, 0x54, 0xb6, 0x90, 0x2b, 0xfd, 0x8a, 0x00, 0xd9, - 0xc0, 0x41, 0x8b, 0xd7, 0x7b, 0xb6, 0x68, 0x2f, 0x84, 0xc3, 0xa1, 0x41, 0x39, 0x5e, 0x29, 0xae, - 0x7e, 0x27, 0xc3, 0x6d, 0x7e, 0x70, 0x38, 0x4d, 0x17, 0x07, 0x9c, 0xf4, 0x00, 0x87, 0xed, 0xb5, - 0xc4, 0xaf, 0x7d, 0x30, 0x3f, 0x51, 0xfa, 0x45, 0x1c, 0x72, 0xc1, 0x03, 0x15, 0xb5, 0x9e, 0x7a, - 0x85, 0xb9, 0xab, 0x00, 0xc7, 0xe2, 0x90, 0x4b, 0xdc, 0xd2, 0xde, 0xa5, 0xe2, 0xac, 0x9a, 0x0b, - 0x43, 0x36, 0xa2, 0xfd, 0xf5, 0xf4, 0x18, 0xe7, 0x7e, 0x10, 0x73, 0x87, 0xfd, 0x22, 0x4c, 0x32, - 0xb5, 0x0b, 0x03, 0x0f, 0xb8, 0x52, 0xcd, 0x8b, 0xac, 0x18, 0x71, 0x13, 0x8d, 0x53, 0xdd, 0xd4, - 0xe5, 0xdd, 0x71, 0x70, 0xf2, 0xdf, 0xbc, 0xe2, 0xf7, 0xb5, 0x4d, 0x9e, 0xec, 0xbe, 0x36, 0xb6, - 0xd1, 0xdc, 0x6a, 0x31, 0x17, 0xcc, 0x06, 0x4a, 0xb2, 0xef, 0x14, 0x29, 0x15, 0xc1, 0x7f, 0x12, - 0x6d, 0x51, 0xe4, 0x3f, 0x89, 0xe6, 0x4b, 0x3a, 0xcc, 0xbb, 0x22, 0xe8, 0xa8, 0x62, 0xa9, 0xa9, - 0xbc, 0xab, 0xbf, 0x2d, 0x40, 0x81, 0x8e, 0xa1, 0x7b, 0x18, 0xab, 0x91, 0x58, 0xa1, 0x93, 0x0f, - 0x19, 0x1b, 0x3f, 0xe1, 0x3c, 0x70, 0xc9, 0x7b, 0x3c, 0x78, 0xc9, 0x7b, 0xe9, 0x03, 0x01, 0xf2, - 0x6e, 0x0d, 0xd9, 0x6f, 0x03, 0x0d, 0xb9, 0x86, 0xed, 0x74, 0x3f, 0x97, 0xe3, 0x9c, 0x10, 0x1f, - 0xeb, 0x47, 0x8a, 0xfc, 0x27, 0xc4, 0xd9, 0x4f, 0xbb, 0x7c, 0x4b, 0x80, 0x59, 0xb7, 0x8a, 0x65, - 0xef, 0xf4, 0xef, 0x29, 0x72, 0xef, 0x45, 0xfa, 0xdb, 0x68, 0x04, 0xb4, 0xd3, 0xa3, 0xf9, 0x63, - 0x99, 0x27, 0xe2, 0x09, 0x15, 0xc0, 0x17, 0x03, 0xd4, 0x46, 0x9d, 0xfe, 0x6a, 0x1a, 0xfb, 0xdb, - 0x2a, 0xdd, 0xf3, 0x29, 0x90, 0x8e, 0x04, 0xa2, 0xa5, 0xb1, 0x86, 0x8c, 0xa3, 0x25, 0x5a, 0xb8, - 0xf4, 0x23, 0x7f, 0x4f, 0x54, 0xf6, 0x48, 0x10, 0x78, 0x17, 0xe2, 0x7b, 0x72, 0x6b, 0x58, 0x3e, - 0x49, 0xa0, 0xe7, 0x44, 0x52, 0x1a, 0xdd, 0x0b, 0x1c, 0x9a, 0x8e, 0x0d, 0x0e, 0x58, 0xfa, 0x55, - 0x1a, 0x38, 0x5c, 0xfd, 0x8a, 0xd3, 0x8a, 0xf8, 0xe8, 0xcf, 0xfb, 0x3d, 0xc0, 0x6b, 0x89, 0x0f, - 0x3f, 0x98, 0x17, 0x6e, 0xd6, 0x61, 0x36, 0x64, 0x7a, 0x43, 0x79, 0x00, 0xdf, 0xd5, 0xef, 0xfc, - 0xa7, 0xd9, 0x96, 0x56, 0xa4, 0xad, 0xf5, 0xf2, 0xc6, 0xda, 0x5a, 0xad, 0xd1, 0xa8, 0xac, 0x14, - 0x04, 0x54, 0x80, 0x6c, 0xe0, 0xe2, 0xf8, 0x18, 0xfb, 0xb1, 0xb6, 0x9b, 0xff, 0x09, 0xc0, 0xfb, - 0xf1, 0x08, 0x22, 0x6b, 0xb5, 0xf2, 0x8e, 0xf4, 0x68, 0xe9, 0xe1, 0x56, 0xa5, 0x5e, 0x98, 0x40, - 0x08, 0xf2, 0xcb, 0x4b, 0x8d, 0x72, 0x55, 0x12, 0x2b, 0xf5, 0xcd, 0x8d, 0xf5, 0x7a, 0xc5, 0xf9, - 0x91, 0xb7, 0x9b, 0x2b, 0x90, 0xf5, 0x1f, 0x2f, 0x47, 0xb3, 0x30, 0x5d, 0xae, 0x56, 0xca, 0xab, - 0xd2, 0xa3, 0xda, 0x92, 0xf4, 0xd6, 0x56, 0x65, 0xab, 0x52, 0x98, 0xa0, 0x55, 0xa3, 0xc4, 0x7b, - 0x5b, 0x0f, 0x1f, 0x16, 0x04, 0x34, 0x0d, 0x19, 0xf6, 0x4c, 0x2f, 0x99, 0x2f, 0xc4, 0x6e, 0xae, - 0x41, 0xc6, 0x77, 0x1b, 0x1d, 0xf9, 0xdc, 0xe6, 0x56, 0xbd, 0x2a, 0x35, 0x6a, 0x6b, 0x95, 0x7a, - 0x63, 0x69, 0x6d, 0x93, 0xc9, 0xa0, 0xb4, 0xa5, 0xe5, 0x0d, 0xb1, 0x51, 0x10, 0xdc, 0xe7, 0xc6, - 0xc6, 0x56, 0xb9, 0xea, 0x34, 0xa3, 0x94, 0x48, 0xc5, 0x0b, 0xf1, 0x9b, 0x4f, 0xe0, 0xfc, 0x80, - 0x33, 0xd6, 0x28, 0x03, 0x53, 0x5b, 0x3a, 0xbd, 0x7f, 0xab, 0x30, 0x81, 0x72, 0xbe, 0x63, 0xd6, - 0x05, 0x01, 0xa5, 0xd8, 0x01, 0xda, 0x42, 0x0c, 0x25, 0x21, 0x56, 0xbf, 0x5b, 0x88, 0x93, 0x8a, - 0xfa, 0x4e, 0x29, 0x17, 0x12, 0x28, 0xcd, 0x8f, 0x70, 0x16, 0x26, 0x51, 0xd6, 0x3b, 0x43, 0x59, - 0x48, 0xde, 0xbc, 0x04, 0xbe, 0xf3, 0x62, 0x08, 0x20, 0xf9, 0x50, 0xb6, 0xb1, 0x65, 0x17, 0x26, - 0xd0, 0x14, 0xc4, 0x97, 0x5a, 0xad, 0x82, 0x70, 0xe7, 0xf7, 0x04, 0x48, 0x39, 0xf7, 0xa5, 0xa3, - 0x87, 0x30, 0xc9, 0x90, 0xfc, 0xfc, 0xe0, 0x19, 0x89, 0x3a, 0xb5, 0xb9, 0x85, 0x51, 0x53, 0x56, - 0x69, 0x02, 0xbd, 0xcd, 0x7f, 0x25, 0x92, 0x58, 0x0c, 0xba, 0x3c, 0xcc, 0x9e, 0x1c, 0xa9, 0xc3, - 0x8d, 0x8e, 0x8c, 0x91, 0xd2, 0xc4, 0x4b, 0xc2, 0xf2, 0xf3, 0x1f, 0xfe, 0xec, 0xe2, 0xc4, 0x87, - 0xc7, 0x17, 0x85, 0x1f, 0x1f, 0x5f, 0x14, 0x7e, 0x7a, 0x7c, 0x51, 0xf8, 0x9b, 0xe3, 0x8b, 0xc2, - 0xff, 0xfb, 0xf9, 0xc5, 0x89, 0x1f, 0xff, 0xfc, 0xe2, 0xc4, 0x4f, 0x7f, 0x7e, 0x71, 0xe2, 0xdd, - 0x29, 0xce, 0xbd, 0x9d, 0xa4, 0x3f, 0x58, 0x79, 0xf7, 0x5f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x88, - 0x05, 0xb1, 0xf8, 0xb5, 0x73, 0x00, 0x00, +func init() { proto.RegisterFile("roachpb/api.proto", fileDescriptor_api_58bfa95f1a7467a6) } + +var fileDescriptor_api_58bfa95f1a7467a6 = []byte{ + // 7212 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x5d, 0x6b, 0x6c, 0x23, 0xd7, + 0x75, 0xd6, 0x90, 0x14, 0x45, 0x1e, 0x3e, 0x44, 0x5d, 0xed, 0x83, 0x2b, 0xdb, 0x2b, 0x2d, 0xf7, + 0xe9, 0x8d, 0xad, 0xf5, 0xee, 0xc6, 0xb5, 0x63, 0x3b, 0x4e, 0x24, 0x8a, 0xbb, 0xe4, 0x6a, 0xa5, + 0x95, 0x87, 0xd4, 0x3a, 0x76, 0xea, 0x4e, 0x46, 0x33, 0x57, 0xd4, 0x64, 0xc9, 0x19, 0xee, 0xcc, + 0x50, 0x8f, 0x05, 0x8a, 0xbe, 0x7e, 0xa4, 0x48, 0x0b, 0xa3, 0x40, 0x8b, 0xa2, 0x48, 0x52, 0xc4, + 0x40, 0x8a, 0xb6, 0x68, 0x91, 0x00, 0x05, 0x0a, 0x14, 0x0d, 0x5a, 0xe4, 0x47, 0xfb, 0xc3, 0x0d, + 0x82, 0x22, 0x28, 0x5a, 0x24, 0x28, 0x50, 0xa1, 0x51, 0x80, 0x36, 0xc8, 0x8f, 0x02, 0xfd, 0x55, + 0xc0, 0x3f, 0xda, 0xe2, 0x3e, 0xe6, 0x45, 0x0e, 0x1f, 0x92, 0xc7, 0xad, 0x8b, 0xfe, 0xd9, 0xd5, + 0x9c, 0xb9, 0xe7, 0xcc, 0xbd, 0xe7, 0x9e, 0x7b, 0xee, 0xf9, 0xee, 0x3d, 0xf7, 0x12, 0x66, 0x4c, + 0x43, 0x56, 0x76, 0x3a, 0x5b, 0x37, 0xe4, 0x8e, 0xb6, 0xd8, 0x31, 0x0d, 0xdb, 0x40, 0x33, 0x8a, + 0xa1, 0x3c, 0xa2, 0xe4, 0x45, 0xfe, 0x72, 0x0e, 0x39, 0xa5, 0x54, 0xd9, 0x96, 0x59, 0xb1, 0xb9, + 0x53, 0x0e, 0x0d, 0x9b, 0xa6, 0x61, 0x5a, 0x9c, 0x7a, 0xc6, 0xa1, 0xb6, 0xb1, 0x2d, 0xfb, 0x4a, + 0x97, 0x2c, 0xdb, 0x30, 0xe5, 0x26, 0xbe, 0x81, 0xf5, 0xa6, 0xa6, 0x3b, 0xff, 0x91, 0x72, 0xbb, + 0x8a, 0xc2, 0xcb, 0x5c, 0x1c, 0x56, 0xe6, 0x36, 0x2f, 0x54, 0xec, 0xda, 0x5a, 0xeb, 0xc6, 0x4e, + 0x4b, 0xb9, 0x61, 0x6b, 0x6d, 0x6c, 0xd9, 0x72, 0xbb, 0xc3, 0xdf, 0x2c, 0xd0, 0x37, 0xb6, 0x29, + 0x2b, 0x9a, 0xde, 0xbc, 0x61, 0x62, 0xc5, 0x30, 0x55, 0xac, 0x4a, 0x56, 0x47, 0xd6, 0x9d, 0x2a, + 0x37, 0x8d, 0xa6, 0x41, 0xff, 0xbc, 0x41, 0xfe, 0x62, 0xd4, 0xd2, 0x2f, 0x40, 0x5a, 0x94, 0xf5, + 0x26, 0xae, 0xe9, 0xdb, 0x06, 0x7a, 0x0d, 0x12, 0x2a, 0xb6, 0x94, 0xa2, 0xb0, 0x20, 0x5c, 0xcb, + 0xdc, 0x2a, 0x2d, 0xf6, 0xe9, 0x62, 0x91, 0x96, 0x5d, 0xc1, 0x96, 0x62, 0x6a, 0x1d, 0xdb, 0x30, + 0x97, 0x13, 0xef, 0x1f, 0xce, 0x4f, 0x88, 0x94, 0x0b, 0x7d, 0x12, 0x26, 0x5b, 0x58, 0xb6, 0x70, + 0x31, 0x46, 0xd9, 0x8b, 0x21, 0xec, 0xf7, 0xc9, 0x7b, 0xce, 0xc4, 0x0a, 0x97, 0xfe, 0x4a, 0x80, + 0x9c, 0x88, 0x1f, 0x77, 0xb1, 0x65, 0x57, 0xb1, 0xac, 0x62, 0x13, 0x9d, 0x83, 0xf8, 0x23, 0x7c, + 0x50, 0x8c, 0x2f, 0x08, 0xd7, 0xb2, 0xcb, 0x53, 0x1f, 0x1c, 0xce, 0xc7, 0x57, 0xf1, 0x81, 0x48, + 0x68, 0x68, 0x01, 0xa6, 0xb0, 0xae, 0x4a, 0xe4, 0x75, 0x22, 0xf8, 0x3a, 0x89, 0x75, 0x75, 0x15, + 0x1f, 0x20, 0x05, 0x52, 0x16, 0x91, 0xa6, 0x2b, 0xb8, 0x38, 0xb9, 0x20, 0x5c, 0x9b, 0x5c, 0xbe, + 0xfb, 0xc1, 0xe1, 0x7c, 0xb9, 0xa9, 0xd9, 0x3b, 0xdd, 0xad, 0x45, 0xc5, 0x68, 0xdf, 0x70, 0x6b, + 0xa5, 0x6e, 0x79, 0x7f, 0xdf, 0xe8, 0x3c, 0x6a, 0xde, 0x18, 0xd0, 0x03, 0x8b, 0x8d, 0x7d, 0xbd, + 0x8e, 0x1f, 0x8b, 0xae, 0xe0, 0x57, 0x12, 0x3f, 0x79, 0x6f, 0x5e, 0xb8, 0x97, 0x48, 0x09, 0x85, + 0xd8, 0xbd, 0x44, 0x2a, 0x56, 0x88, 0x97, 0xfe, 0x3d, 0x06, 0x79, 0x11, 0x5b, 0x1d, 0x43, 0xb7, + 0x30, 0x6f, 0xc6, 0x0b, 0x10, 0xb7, 0xf7, 0x75, 0xda, 0x8c, 0xcc, 0xad, 0xf3, 0x21, 0xca, 0x68, + 0x98, 0xb2, 0x6e, 0xc9, 0x8a, 0xad, 0x19, 0xba, 0x48, 0x8a, 0xa2, 0x97, 0x21, 0x63, 0x62, 0xab, + 0xdb, 0xc6, 0xb4, 0xdb, 0x68, 0x0b, 0x33, 0xb7, 0xce, 0x86, 0x70, 0xd6, 0x3b, 0xb2, 0x2e, 0x02, + 0x2b, 0x4b, 0xfe, 0x46, 0xe7, 0x20, 0xa5, 0x77, 0xdb, 0x44, 0x2f, 0x16, 0x6d, 0x75, 0x5c, 0x9c, + 0xd2, 0xbb, 0xed, 0x55, 0x7c, 0x60, 0xa1, 0x32, 0x64, 0x4c, 0xd2, 0x69, 0x92, 0xa6, 0x6f, 0x1b, + 0x56, 0x31, 0xb9, 0x10, 0xbf, 0x96, 0xb9, 0xf5, 0xf4, 0xa0, 0xae, 0x25, 0x66, 0xc0, 0xfb, 0x07, + 0x4c, 0x87, 0x60, 0xa1, 0x3a, 0xe4, 0x78, 0xcd, 0x4c, 0x2c, 0x5b, 0x86, 0x5e, 0x9c, 0x5a, 0x10, + 0xae, 0xe5, 0x6f, 0x2d, 0x86, 0x89, 0x09, 0x68, 0x81, 0x3c, 0x76, 0xdb, 0x58, 0xa4, 0x5c, 0x62, + 0xd6, 0xf4, 0x3d, 0x95, 0x5e, 0x87, 0xac, 0xff, 0x2d, 0x42, 0x90, 0x17, 0x2b, 0xf5, 0xcd, 0xb5, + 0x8a, 0xb4, 0xb9, 0xbe, 0xba, 0xfe, 0xe0, 0xcd, 0xf5, 0xc2, 0x04, 0x3a, 0x05, 0x05, 0x4e, 0x5b, + 0xad, 0xbc, 0x25, 0xdd, 0xaf, 0xad, 0xd5, 0x1a, 0x05, 0x61, 0x2e, 0xf1, 0xab, 0xdf, 0x38, 0x3f, + 0x51, 0x7a, 0x08, 0x70, 0x17, 0xdb, 0xdc, 0x76, 0xd0, 0x32, 0x24, 0x77, 0xe8, 0x27, 0xb9, 0xf5, + 0x2e, 0x84, 0xd6, 0xcd, 0x67, 0x67, 0xcb, 0x29, 0xd2, 0xcc, 0xef, 0x1f, 0xce, 0x0b, 0x22, 0xe7, + 0x64, 0xfd, 0x5a, 0xfa, 0x8e, 0x00, 0x19, 0x2a, 0x98, 0x35, 0x04, 0x95, 0x7b, 0x24, 0x5f, 0x18, + 0xd9, 0xea, 0x7e, 0xd1, 0x68, 0x11, 0x26, 0x77, 0xe5, 0x56, 0x77, 0xd8, 0xe0, 0x78, 0x48, 0xde, + 0x8b, 0xac, 0x18, 0x7a, 0x15, 0xb2, 0x9a, 0x6e, 0x63, 0xdd, 0x96, 0x18, 0x5b, 0x7c, 0x04, 0x5b, + 0x86, 0x95, 0xa6, 0x0f, 0xa5, 0x6f, 0x0b, 0x00, 0x1b, 0xdd, 0x28, 0x55, 0x43, 0x06, 0xf7, 0x58, + 0xf5, 0x77, 0x06, 0x37, 0x6b, 0xc5, 0x19, 0x48, 0x6a, 0x7a, 0x4b, 0xd3, 0x59, 0xfd, 0x53, 0x22, + 0x7f, 0x42, 0xa7, 0x60, 0x72, 0xab, 0xa5, 0xe9, 0x2a, 0xb5, 0xf1, 0x94, 0xc8, 0x1e, 0xb8, 0xfa, + 0x45, 0xc8, 0xd0, 0xba, 0x47, 0xa8, 0xfd, 0xd2, 0x57, 0x62, 0x70, 0xba, 0x6c, 0xe8, 0xaa, 0x46, + 0x06, 0x9b, 0xdc, 0xfa, 0x58, 0xe8, 0xe6, 0x45, 0x48, 0xe3, 0xfd, 0xce, 0x98, 0xdd, 0x9b, 0xc2, + 0xfb, 0x1d, 0xfa, 0x57, 0xb8, 0xea, 0xd0, 0x27, 0xe1, 0xac, 0xdc, 0x6a, 0x19, 0x7b, 0x92, 0xb6, + 0x2d, 0xa9, 0x06, 0xb6, 0x24, 0xdd, 0xb0, 0x25, 0xbc, 0xaf, 0x59, 0x36, 0xf5, 0x07, 0x29, 0x71, + 0x96, 0xbe, 0xae, 0x6d, 0xaf, 0x18, 0xd8, 0x5a, 0x37, 0xec, 0x0a, 0x79, 0xc5, 0x15, 0xfe, 0x0e, + 0x9c, 0xe9, 0xd5, 0x4d, 0x94, 0xba, 0xff, 0x3b, 0x01, 0xf2, 0x35, 0x5d, 0xb3, 0x3f, 0x16, 0x4a, + 0x77, 0xb5, 0x17, 0xf7, 0x6b, 0xef, 0x3a, 0x14, 0xb6, 0x65, 0xad, 0xf5, 0x40, 0x6f, 0x18, 0xed, + 0x2d, 0xcb, 0x36, 0x74, 0x6c, 0x71, 0xf5, 0xf6, 0xd1, 0xb9, 0xce, 0x1e, 0xc2, 0xb4, 0xdb, 0xa6, + 0x28, 0x95, 0xf5, 0x04, 0x0a, 0x35, 0x5d, 0x31, 0x71, 0x1b, 0xeb, 0x91, 0x6a, 0xeb, 0x69, 0x48, + 0x6b, 0x8e, 0x5c, 0xaa, 0xb1, 0xb8, 0xe8, 0x11, 0x78, 0x9b, 0xba, 0x30, 0xe3, 0xfb, 0x76, 0x94, + 0xce, 0xef, 0x29, 0x48, 0xeb, 0x78, 0x4f, 0xf2, 0xfa, 0x2b, 0x2e, 0xa6, 0x74, 0xbc, 0xc7, 0x9c, + 0xd5, 0x5b, 0x90, 0x5b, 0xc1, 0x2d, 0x6c, 0xe3, 0xe8, 0x3d, 0xf9, 0x26, 0xe4, 0x1d, 0xd1, 0x51, + 0x76, 0xd2, 0xef, 0x0a, 0x80, 0xb8, 0x5c, 0x32, 0x45, 0x46, 0xd9, 0x4f, 0xf3, 0x24, 0x04, 0xb0, + 0xbb, 0xa6, 0xce, 0xe6, 0x72, 0x66, 0xa5, 0xc0, 0x48, 0x74, 0x3a, 0xf7, 0x3c, 0x6a, 0xc2, 0xef, + 0x51, 0xdd, 0x90, 0x84, 0x04, 0x23, 0x7b, 0x30, 0x1b, 0xa8, 0x5e, 0xb4, 0x5d, 0x99, 0xa0, 0x35, + 0x8b, 0x2d, 0xc4, 0xfd, 0xe1, 0x17, 0x25, 0x96, 0xde, 0x81, 0x99, 0x72, 0x0b, 0xcb, 0x66, 0xd4, + 0x6a, 0xe1, 0xdd, 0xf9, 0x16, 0x20, 0xbf, 0xf8, 0x28, 0xbb, 0xf4, 0xf7, 0x04, 0x40, 0x22, 0xde, + 0xc5, 0xa6, 0x1d, 0x79, 0x97, 0xae, 0x40, 0xc6, 0x96, 0xcd, 0x26, 0xb6, 0x25, 0x12, 0xb3, 0x73, + 0x77, 0xf5, 0x8c, 0x4f, 0x10, 0x89, 0xdc, 0x17, 0x77, 0x5a, 0xca, 0x62, 0xc3, 0x89, 0xe9, 0x9d, + 0x08, 0x8c, 0xf1, 0x11, 0x32, 0xd7, 0xc0, 0xdb, 0x30, 0x1b, 0xa8, 0x65, 0x94, 0x2a, 0xf8, 0x86, + 0x00, 0x99, 0xba, 0x22, 0xeb, 0x51, 0xb6, 0xfd, 0x75, 0xc8, 0x58, 0x8a, 0xac, 0x4b, 0xdb, 0x86, + 0xd9, 0x96, 0x6d, 0x6a, 0xb2, 0xf9, 0x40, 0xdb, 0xdd, 0x88, 0x56, 0x91, 0xf5, 0x3b, 0xb4, 0x90, + 0x08, 0x96, 0xfb, 0xb7, 0xdf, 0xaa, 0xef, 0x25, 0x52, 0xf1, 0x42, 0xa2, 0xf4, 0x1f, 0x02, 0x64, + 0x59, 0x2d, 0xa3, 0xb4, 0xea, 0x17, 0x21, 0x61, 0x1a, 0x7b, 0xcc, 0xaa, 0x33, 0xb7, 0x9e, 0x0a, + 0x11, 0xb1, 0x8a, 0x0f, 0xfc, 0xd3, 0x09, 0x2d, 0x8e, 0x96, 0x81, 0x87, 0x5d, 0x12, 0xe5, 0x8e, + 0x8f, 0xcb, 0x0d, 0x8c, 0x4b, 0x24, 0x32, 0xae, 0xc2, 0xf4, 0x96, 0x6c, 0x2b, 0x3b, 0x92, 0xc9, + 0x2b, 0x49, 0xa6, 0x9e, 0xf8, 0xb5, 0xac, 0x98, 0xa7, 0x64, 0xa7, 0xea, 0x56, 0xe9, 0x8f, 0x1c, + 0x13, 0xb5, 0xf0, 0xc7, 0xbf, 0x9b, 0xfe, 0x53, 0xe0, 0x96, 0xea, 0x54, 0xf6, 0xff, 0x5b, 0x6f, + 0x7d, 0x3d, 0x06, 0x67, 0xcb, 0x3b, 0x58, 0x79, 0x54, 0x36, 0x74, 0x4b, 0xb3, 0x6c, 0xac, 0x2b, + 0x07, 0x51, 0x76, 0xd9, 0x53, 0x90, 0xde, 0xd3, 0xec, 0x1d, 0x49, 0xd5, 0xb6, 0xb7, 0xa9, 0x4f, + 0x49, 0x89, 0x29, 0x42, 0x58, 0xd1, 0xb6, 0xb7, 0xd1, 0x6d, 0x48, 0xb4, 0x0d, 0x95, 0x45, 0x95, + 0xf9, 0x5b, 0xf3, 0x21, 0xe2, 0x69, 0xd5, 0xac, 0x6e, 0x7b, 0xcd, 0x50, 0xb1, 0x48, 0x0b, 0xa3, + 0xf3, 0x00, 0x0a, 0xa1, 0x76, 0x0c, 0x4d, 0xb7, 0xf9, 0xec, 0xe2, 0xa3, 0xa0, 0x2a, 0xa4, 0x6d, + 0x6c, 0xb6, 0x35, 0x5d, 0xb6, 0x09, 0xb4, 0x26, 0xca, 0xbb, 0x14, 0x5a, 0xf1, 0x4e, 0x4b, 0x53, + 0xe4, 0xbe, 0x35, 0x02, 0x8f, 0x99, 0xfb, 0xb2, 0x77, 0x13, 0x50, 0xec, 0xd7, 0x50, 0x94, 0x76, + 0xb2, 0x01, 0x49, 0x02, 0x38, 0x5b, 0x36, 0xb7, 0x94, 0x5b, 0x83, 0x14, 0x11, 0x52, 0x03, 0x0a, + 0x5c, 0x5b, 0x36, 0xaf, 0x3c, 0x97, 0x33, 0xf7, 0x17, 0x02, 0x24, 0xd9, 0x0b, 0x74, 0x13, 0x52, + 0x1c, 0x57, 0xab, 0xb4, 0x8e, 0xf1, 0xe5, 0x33, 0x47, 0x87, 0xf3, 0x53, 0x0c, 0x45, 0xaf, 0x7c, + 0xe0, 0xfd, 0x29, 0x4e, 0x31, 0x20, 0xad, 0x92, 0x3e, 0xb3, 0x6c, 0xd9, 0xb4, 0xe9, 0xfa, 0x05, + 0xe9, 0xb3, 0xac, 0x98, 0xa2, 0x84, 0x55, 0x7c, 0x80, 0xee, 0x41, 0xd2, 0xb2, 0x65, 0xbb, 0x6b, + 0xf1, 0x5e, 0x3b, 0x56, 0x65, 0xeb, 0x94, 0x53, 0xe4, 0x12, 0x48, 0x90, 0xa0, 0x62, 0x5b, 0xd6, + 0x5a, 0xb4, 0x1b, 0xd3, 0x22, 0x7f, 0x2a, 0x7d, 0x55, 0x80, 0x24, 0x2b, 0x8a, 0xce, 0xc2, 0xac, + 0xb8, 0xb4, 0x7e, 0xb7, 0x22, 0xd5, 0xd6, 0x57, 0x2a, 0x8d, 0x8a, 0xb8, 0x56, 0x5b, 0x5f, 0x6a, + 0x54, 0x0a, 0x13, 0xe8, 0x0c, 0x20, 0xe7, 0x45, 0xf9, 0xc1, 0x7a, 0xbd, 0x56, 0x6f, 0x54, 0xd6, + 0x1b, 0x05, 0x81, 0x22, 0x71, 0x4a, 0xf7, 0x51, 0x63, 0xe8, 0x12, 0x2c, 0xf4, 0x52, 0xa5, 0x7a, + 0x63, 0xa9, 0x51, 0x97, 0x2a, 0xf5, 0x46, 0x6d, 0x6d, 0xa9, 0x51, 0x59, 0x29, 0xc4, 0x87, 0x94, + 0x22, 0x1f, 0x11, 0xc5, 0x4a, 0xb9, 0x51, 0x48, 0x94, 0x9e, 0xc0, 0x69, 0x11, 0x2b, 0x46, 0xbb, + 0xd3, 0xb5, 0x31, 0xa9, 0xa5, 0x15, 0xe5, 0x78, 0x39, 0x0b, 0x53, 0xaa, 0x79, 0x20, 0x99, 0x5d, + 0x9d, 0x8f, 0x96, 0xa4, 0x6a, 0x1e, 0x88, 0x5d, 0x9d, 0x1b, 0xe3, 0x9f, 0x09, 0x70, 0xa6, 0xf7, + 0xe3, 0x51, 0x9a, 0xe2, 0xe7, 0x20, 0x23, 0xab, 0x2a, 0x56, 0x25, 0x15, 0xb7, 0x6c, 0x99, 0x07, + 0x01, 0x37, 0x7d, 0x92, 0xf8, 0xda, 0xd3, 0x22, 0x5b, 0x74, 0x5a, 0x74, 0xd7, 0x9e, 0xd6, 0x1e, + 0x96, 0xcb, 0xb4, 0x3e, 0x2b, 0x84, 0xd1, 0xf1, 0x48, 0x54, 0x16, 0xa5, 0x94, 0xbe, 0x96, 0x80, + 0x5c, 0x45, 0x57, 0x1b, 0xfb, 0x91, 0xce, 0x08, 0x67, 0x20, 0xa9, 0x18, 0xed, 0xb6, 0x66, 0x3b, + 0xda, 0x62, 0x4f, 0xe8, 0x53, 0x90, 0x52, 0xb1, 0xac, 0xba, 0x90, 0x7e, 0x54, 0x24, 0x23, 0xba, + 0xc5, 0xd1, 0x17, 0xe0, 0x2c, 0x71, 0xa4, 0xa6, 0x2e, 0xb7, 0x24, 0x26, 0x4d, 0xb2, 0x4d, 0xad, + 0xd9, 0xc4, 0x26, 0x5f, 0xe9, 0xba, 0x16, 0x52, 0xcf, 0x1a, 0xe7, 0x28, 0x53, 0x86, 0x06, 0x2b, + 0x2f, 0x9e, 0xd6, 0xc2, 0xc8, 0xe8, 0xb3, 0xee, 0x9a, 0x89, 0xd5, 0x91, 0x75, 0x8b, 0x3b, 0xa9, + 0x41, 0x0b, 0x68, 0x5c, 0x97, 0x7c, 0x4e, 0x20, 0x14, 0x0b, 0xdd, 0x20, 0xe1, 0xf7, 0xe3, 0xae, + 0x66, 0x62, 0xe9, 0x66, 0x47, 0x29, 0x26, 0x49, 0xdb, 0x97, 0xf3, 0x47, 0x87, 0xf3, 0x20, 0x32, + 0xf2, 0xcd, 0x8d, 0x32, 0x09, 0xc7, 0xd9, 0xdf, 0x1d, 0x05, 0x5d, 0x83, 0x82, 0x6e, 0x48, 0x26, + 0xde, 0x36, 0xb1, 0xb5, 0xc3, 0x3f, 0x9b, 0xa2, 0x1a, 0xcb, 0xeb, 0x86, 0xc8, 0xc8, 0x4c, 0xf4, + 0x19, 0x48, 0x76, 0x0c, 0xcd, 0x32, 0xf4, 0x62, 0x9a, 0x69, 0x94, 0x3d, 0xa1, 0x37, 0xa0, 0xa0, + 0xe9, 0xd2, 0x76, 0x4b, 0x6b, 0xee, 0xd8, 0xd2, 0x9e, 0xa9, 0xd9, 0xd8, 0x2a, 0xce, 0xd0, 0x8a, + 0x87, 0x19, 0x5a, 0x9d, 0x2f, 0x41, 0xaa, 0x6f, 0x92, 0x92, 0xbc, 0x09, 0x79, 0x4d, 0xbf, 0x43, + 0xf9, 0x29, 0xd1, 0x72, 0xa7, 0xe3, 0xa9, 0x42, 0xaa, 0xf4, 0x4f, 0x02, 0xe4, 0x1d, 0xf3, 0x88, + 0xd2, 0xa0, 0xaf, 0x41, 0xc1, 0xd0, 0xb1, 0xd4, 0xd9, 0x91, 0x2d, 0xcc, 0xbb, 0x93, 0xcf, 0x19, + 0x79, 0x43, 0xc7, 0x1b, 0x84, 0xcc, 0x3a, 0x07, 0x6d, 0xc0, 0x8c, 0x65, 0xcb, 0x4d, 0x4d, 0x6f, + 0x4a, 0xee, 0xa2, 0x35, 0x5d, 0x94, 0x18, 0x33, 0x0a, 0x2e, 0x70, 0x6e, 0x97, 0x1e, 0x08, 0x34, + 0x7e, 0x20, 0xc0, 0xcc, 0x92, 0xda, 0xd6, 0xf4, 0x7a, 0xa7, 0xa5, 0x45, 0x0a, 0x99, 0x2f, 0x41, + 0xda, 0x22, 0x32, 0x3d, 0x6f, 0xed, 0xc1, 0x9d, 0x14, 0x7d, 0x43, 0xdc, 0xf6, 0x7d, 0x98, 0xc6, + 0xfb, 0x1d, 0xcd, 0x94, 0x6d, 0xcd, 0xd0, 0x59, 0x84, 0x9f, 0x18, 0xbf, 0x6d, 0x79, 0x8f, 0xd7, + 0x8b, 0xf2, 0x79, 0xcb, 0xde, 0x02, 0xe4, 0x6f, 0x58, 0x94, 0xa1, 0xbe, 0x04, 0xb3, 0x54, 0xf4, + 0xa6, 0x6e, 0x45, 0xac, 0x35, 0xee, 0x4e, 0x3f, 0x0f, 0xa7, 0x82, 0x1f, 0x88, 0xb2, 0xf6, 0xef, + 0xf0, 0x1e, 0x5f, 0xc3, 0xe6, 0x47, 0x84, 0x32, 0xfd, 0xe2, 0xa3, 0xac, 0xf9, 0x97, 0x05, 0x38, + 0x47, 0x65, 0xd3, 0xa5, 0xff, 0x6d, 0x6c, 0xd2, 0xfd, 0x90, 0x28, 0x8d, 0xf6, 0x22, 0x24, 0x19, + 0x68, 0xa4, 0x16, 0x3b, 0xb9, 0x9c, 0x21, 0x81, 0x48, 0xdd, 0x36, 0x4c, 0x12, 0x88, 0xf0, 0x57, + 0xbc, 0x9d, 0x32, 0xcc, 0x85, 0xd5, 0x25, 0x62, 0x54, 0x3d, 0xc3, 0xe3, 0x41, 0x62, 0xe2, 0xe5, + 0x1d, 0x12, 0x08, 0xa1, 0x0a, 0x64, 0x14, 0xfa, 0x97, 0x64, 0x1f, 0x74, 0x30, 0x95, 0x9f, 0x1f, + 0x16, 0x4a, 0x32, 0xb6, 0xc6, 0x41, 0x07, 0x93, 0x78, 0xd4, 0xf9, 0x9b, 0xa8, 0xcb, 0xd7, 0xd4, + 0xa1, 0xc1, 0x28, 0x1d, 0x5f, 0xb4, 0xac, 0x13, 0xcf, 0x05, 0x34, 0xf1, 0xe7, 0x71, 0xae, 0x0a, + 0xf6, 0x25, 0xce, 0x14, 0x69, 0xf8, 0xf1, 0x36, 0x9c, 0x51, 0x71, 0xc7, 0xc4, 0x8a, 0x6c, 0x63, + 0x55, 0xf2, 0x37, 0x3f, 0x76, 0x8c, 0xe6, 0x9f, 0xf2, 0x64, 0x78, 0x54, 0xf4, 0x16, 0x20, 0x9f, + 0x6c, 0xd6, 0x32, 0x07, 0xde, 0x1c, 0x47, 0x29, 0x33, 0x9e, 0x14, 0x46, 0xb7, 0x50, 0x19, 0x52, + 0x78, 0xbf, 0x23, 0xd1, 0x4d, 0xc1, 0xc4, 0x31, 0x37, 0x05, 0xa7, 0xf0, 0x7e, 0x87, 0x10, 0xd1, + 0x26, 0x99, 0xe1, 0x9c, 0x89, 0x9f, 0x56, 0xdb, 0x1a, 0x8d, 0x1f, 0x3c, 0x7b, 0xe1, 0xe2, 0xa6, + 0xdd, 0x39, 0x9f, 0x89, 0xe0, 0x7d, 0xf7, 0x9e, 0x00, 0x4f, 0x85, 0xf6, 0x5d, 0x94, 0x93, 0x9d, + 0xb3, 0x2f, 0x1a, 0x3b, 0xc9, 0xbe, 0x68, 0xe9, 0x8f, 0x9d, 0x51, 0x2f, 0xe2, 0x96, 0x41, 0xd4, + 0xfb, 0x11, 0x2c, 0x31, 0x4d, 0x39, 0xdd, 0x1e, 0x3b, 0x76, 0xb7, 0x3b, 0xac, 0x3d, 0x6e, 0xa1, + 0xa7, 0xb2, 0x51, 0xba, 0x85, 0xdf, 0x16, 0x60, 0xb6, 0x8a, 0x65, 0xd3, 0xde, 0xc2, 0xb2, 0x1d, + 0x71, 0xe0, 0xfa, 0x22, 0xc4, 0x75, 0x63, 0xef, 0x38, 0xab, 0x6c, 0xa4, 0xbc, 0x37, 0x6d, 0x05, + 0xeb, 0x15, 0x65, 0xab, 0xff, 0x26, 0x06, 0xe9, 0xbb, 0xe5, 0x28, 0xdb, 0xfa, 0x1a, 0x5f, 0x8b, + 0x65, 0x43, 0x3d, 0xcc, 0x2c, 0xdd, 0xef, 0x2d, 0xde, 0x2d, 0xaf, 0xe2, 0x03, 0xc7, 0x2c, 0x09, + 0x17, 0x5a, 0x82, 0xb4, 0xbd, 0x43, 0xe2, 0x53, 0xa3, 0xa5, 0x1e, 0x27, 0x66, 0xf1, 0xb8, 0xe6, + 0x1e, 0xc1, 0x24, 0x95, 0xeb, 0x6c, 0xd9, 0x0b, 0x21, 0x5b, 0xf6, 0xe4, 0x33, 0x6e, 0xd8, 0x17, + 0x3b, 0xce, 0x67, 0x1c, 0x02, 0xeb, 0x1c, 0x37, 0x36, 0x9a, 0x2c, 0x24, 0x4b, 0x6f, 0x00, 0x90, + 0xa6, 0x45, 0xd9, 0x3d, 0xbf, 0x19, 0x87, 0xfc, 0x46, 0xd7, 0xda, 0x89, 0xd8, 0x1e, 0xcb, 0x00, + 0x9d, 0xae, 0xb5, 0x83, 0x4d, 0xc9, 0xde, 0xd7, 0x79, 0xfb, 0x47, 0x24, 0x03, 0x38, 0x0a, 0x60, + 0x7c, 0x8d, 0x7d, 0x1d, 0x3d, 0xe0, 0x42, 0xb0, 0xe4, 0x65, 0x14, 0x5c, 0x1f, 0x03, 0x3c, 0x36, + 0xf6, 0xf5, 0x35, 0xec, 0xa2, 0x46, 0x26, 0x10, 0x13, 0x81, 0xaf, 0xc1, 0x14, 0x79, 0x90, 0x6c, + 0xe3, 0x38, 0x3d, 0x9f, 0x24, 0x3c, 0x0d, 0x03, 0xbd, 0x0a, 0x69, 0xc6, 0x4d, 0xe6, 0xaf, 0x24, + 0x9d, 0xbf, 0xc2, 0x9a, 0xc4, 0xb5, 0x49, 0x67, 0xae, 0x14, 0x65, 0x25, 0xb3, 0xd5, 0x29, 0x98, + 0xdc, 0x36, 0x4c, 0x05, 0xd3, 0x14, 0x82, 0x94, 0xc8, 0x1e, 0xfc, 0x9d, 0x7b, 0x2f, 0x91, 0x4a, + 0x15, 0xd2, 0xf7, 0x12, 0xa9, 0x74, 0x01, 0x4a, 0x5f, 0x15, 0x60, 0xda, 0xed, 0x95, 0x28, 0x5d, + 0x7a, 0x39, 0xa0, 0xd2, 0xe3, 0xf7, 0x0b, 0x51, 0x63, 0xe9, 0xef, 0x69, 0x7c, 0xa3, 0x18, 0xbb, + 0xb4, 0x9b, 0xa2, 0x34, 0x9b, 0x65, 0x96, 0x3c, 0x12, 0x3b, 0x61, 0x57, 0xd3, 0x74, 0x92, 0x9b, + 0x70, 0x4a, 0x6b, 0x13, 0x9f, 0xaf, 0xd9, 0xad, 0x03, 0x8e, 0xd1, 0x6c, 0xec, 0x6c, 0x7d, 0xce, + 0x7a, 0xef, 0xca, 0xce, 0x2b, 0xee, 0x06, 0xd9, 0x66, 0x88, 0xd7, 0xac, 0x28, 0xf5, 0x5e, 0x83, + 0x9c, 0xc9, 0x44, 0x93, 0x58, 0xe5, 0x98, 0xaa, 0xcf, 0xba, 0xac, 0x44, 0xfb, 0xdf, 0x8a, 0xc1, + 0xf4, 0x1b, 0x5d, 0x6c, 0x1e, 0x7c, 0x0c, 0x75, 0x7f, 0x05, 0xa6, 0xf7, 0x64, 0xcd, 0x96, 0xb6, + 0x0d, 0x53, 0xea, 0x76, 0x54, 0xd9, 0x76, 0x32, 0x20, 0x72, 0x84, 0x7c, 0xc7, 0x30, 0x37, 0x29, + 0x11, 0x61, 0x40, 0x8f, 0x74, 0x63, 0x4f, 0x97, 0x08, 0x99, 0x42, 0xe4, 0x7d, 0x9d, 0x2f, 0x29, + 0x2f, 0xbf, 0xf4, 0x8f, 0x87, 0xf3, 0xb7, 0xc7, 0x4a, 0x5c, 0xa2, 0xb9, 0x5f, 0xdd, 0xae, 0xa6, + 0x2e, 0x6e, 0x6e, 0xd6, 0x56, 0xc4, 0x02, 0x15, 0xf9, 0x26, 0x93, 0xd8, 0xd8, 0xd7, 0x9d, 0xa9, + 0xfd, 0x03, 0x01, 0x0a, 0x9e, 0xc2, 0xa2, 0xec, 0xd5, 0x0a, 0x64, 0x1e, 0x77, 0xb1, 0xa9, 0x9d, + 0xa0, 0x4f, 0x81, 0x33, 0x12, 0xb7, 0xf4, 0x36, 0x64, 0x03, 0x7a, 0x88, 0x7f, 0x38, 0x3d, 0x64, + 0xf6, 0x3c, 0x15, 0x94, 0xbe, 0x27, 0x00, 0xa2, 0x8d, 0xaf, 0xb1, 0xd5, 0xfc, 0x8f, 0x99, 0xc1, + 0x5c, 0x83, 0x02, 0x4d, 0x25, 0x94, 0xb4, 0x6d, 0xa9, 0xad, 0x59, 0x96, 0xa6, 0x37, 0xb9, 0xc5, + 0xe4, 0x29, 0xbd, 0xb6, 0xbd, 0xc6, 0xa8, 0xbc, 0x2f, 0x7f, 0x1e, 0x66, 0x03, 0xad, 0x89, 0xb2, + 0x37, 0x2f, 0x40, 0x76, 0xdb, 0xe8, 0xea, 0xaa, 0xc4, 0x96, 0xc6, 0xf8, 0x12, 0x60, 0x86, 0xd2, + 0xd8, 0xf7, 0x4a, 0xff, 0x15, 0x83, 0x53, 0x22, 0xb6, 0x8c, 0xd6, 0x2e, 0x8e, 0x5e, 0x9f, 0x0f, + 0x80, 0x6f, 0xb9, 0x48, 0x1f, 0x46, 0xad, 0x69, 0x26, 0x83, 0x4d, 0x77, 0xc1, 0xb5, 0xf5, 0x4b, + 0xc3, 0x2d, 0xb3, 0x7f, 0x35, 0x9d, 0xaf, 0xdc, 0x25, 0x02, 0x2b, 0x77, 0xbb, 0x30, 0xad, 0x35, + 0x75, 0x83, 0x38, 0x32, 0x0b, 0x3f, 0xd6, 0xbb, 0x6d, 0x07, 0xd6, 0xbc, 0x38, 0x46, 0x5d, 0x6b, + 0x8c, 0xb3, 0x8e, 0x1f, 0xaf, 0x77, 0xdb, 0x34, 0xc6, 0x5e, 0x3e, 0x43, 0xaa, 0x7d, 0x74, 0x38, + 0x9f, 0x0f, 0xbc, 0xb3, 0xc4, 0xbc, 0xe6, 0x3e, 0x93, 0x8f, 0x70, 0x03, 0xf8, 0x59, 0x38, 0xdd, + 0xd3, 0x01, 0x51, 0x46, 0x43, 0x7f, 0x1b, 0x87, 0x73, 0x41, 0xf1, 0x51, 0x63, 0x96, 0xff, 0x23, + 0x9d, 0x5c, 0x85, 0x5c, 0x5b, 0xd3, 0x4f, 0xb6, 0x72, 0x99, 0x6d, 0x6b, 0xba, 0x4b, 0x0b, 0x33, + 0x97, 0xe4, 0xff, 0x9c, 0xb9, 0xc8, 0x30, 0x17, 0xd6, 0x9f, 0x51, 0xda, 0xcc, 0xbb, 0x02, 0x64, + 0xa3, 0x5e, 0x93, 0x3b, 0x59, 0x9a, 0x17, 0x6f, 0x73, 0x03, 0x72, 0x1f, 0xc1, 0x22, 0xde, 0x1f, + 0x08, 0x80, 0x1a, 0x66, 0x57, 0x27, 0xe0, 0xf8, 0xbe, 0xd1, 0x8c, 0xb2, 0xb1, 0xa7, 0x60, 0x52, + 0xd3, 0x55, 0xbc, 0x4f, 0x1b, 0x9b, 0x10, 0xd9, 0x43, 0x60, 0xa7, 0x31, 0x3e, 0xd6, 0x4e, 0xa3, + 0x97, 0x2d, 0x12, 0xa8, 0x68, 0x94, 0x5a, 0xf8, 0x56, 0x0c, 0x66, 0x79, 0x73, 0x22, 0x5f, 0xc4, + 0x3c, 0x51, 0x22, 0x39, 0xfa, 0x34, 0x40, 0xc7, 0xc4, 0xbb, 0x12, 0x63, 0x8d, 0x8f, 0xc5, 0x9a, + 0x26, 0x1c, 0x94, 0x80, 0x3e, 0x07, 0xd3, 0x64, 0xa0, 0x77, 0x4c, 0xa3, 0x63, 0x58, 0x24, 0x8e, + 0xb1, 0xc6, 0x83, 0x46, 0x33, 0x47, 0x87, 0xf3, 0xb9, 0x35, 0x4d, 0xdf, 0xe0, 0x8c, 0x8d, 0xba, + 0x48, 0x3c, 0x86, 0xfb, 0xe8, 0x0c, 0xc0, 0x7f, 0x10, 0xe0, 0xd4, 0x47, 0xb6, 0xec, 0xfb, 0xbf, + 0xa1, 0x31, 0x77, 0x1e, 0x2a, 0xd0, 0xc7, 0x9a, 0xbe, 0x6d, 0x44, 0xbf, 0x18, 0xff, 0xae, 0x00, + 0x33, 0x3e, 0xf1, 0x51, 0x46, 0x39, 0x27, 0x3b, 0xae, 0xf0, 0x79, 0x12, 0xf7, 0xf8, 0xcd, 0x3e, + 0xca, 0x41, 0xf5, 0x97, 0x31, 0x38, 0x53, 0x66, 0x7b, 0xd0, 0x4e, 0x82, 0x46, 0x94, 0x56, 0x52, + 0x84, 0xa9, 0x5d, 0x6c, 0x5a, 0x9a, 0xc1, 0xe6, 0xdb, 0x9c, 0xe8, 0x3c, 0xa2, 0x39, 0x48, 0x59, + 0xba, 0xdc, 0xb1, 0x76, 0x0c, 0x67, 0x17, 0xcf, 0x7d, 0x76, 0x93, 0x49, 0x26, 0x4f, 0x9e, 0x4c, + 0x92, 0x1c, 0x9e, 0x4c, 0x32, 0xf5, 0xa1, 0x93, 0x49, 0xf8, 0x96, 0xd9, 0x77, 0x05, 0x38, 0xdb, + 0xa7, 0xbf, 0x28, 0x6d, 0xe6, 0x8b, 0x90, 0x51, 0xb8, 0x60, 0xe2, 0x8d, 0xd9, 0xae, 0x60, 0x8d, + 0x14, 0x3b, 0x21, 0x46, 0x39, 0x3a, 0x9c, 0x07, 0xa7, 0xaa, 0xb5, 0x15, 0xae, 0x22, 0xf2, 0xb7, + 0x5a, 0xfa, 0xb5, 0x0c, 0x4c, 0x57, 0xf6, 0xd9, 0x9a, 0x77, 0x9d, 0x85, 0x05, 0xe8, 0x0e, 0xa4, + 0x3a, 0xa6, 0xb1, 0xab, 0x39, 0xcd, 0xc8, 0x07, 0x42, 0x26, 0xa7, 0x19, 0x3d, 0x5c, 0x1b, 0x9c, + 0x43, 0x74, 0x79, 0x51, 0x03, 0xd2, 0xf7, 0x0d, 0x45, 0x6e, 0xdd, 0xd1, 0x5a, 0x8e, 0xfd, 0xbf, + 0x30, 0x5a, 0xd0, 0xa2, 0xcb, 0xb3, 0x21, 0xdb, 0x3b, 0x4e, 0x57, 0xb8, 0x44, 0x54, 0x83, 0x54, + 0xd5, 0xb6, 0x3b, 0xe4, 0x25, 0xf7, 0x26, 0x57, 0xc7, 0x10, 0x4a, 0x58, 0xb8, 0x2c, 0x97, 0x1d, + 0x35, 0x60, 0xe6, 0xae, 0x61, 0x34, 0x5b, 0xb8, 0xdc, 0x32, 0xba, 0x6a, 0xd9, 0xd0, 0xb7, 0xb5, + 0x26, 0xf7, 0xc7, 0x57, 0xc6, 0x90, 0x79, 0xb7, 0x5c, 0x17, 0xfb, 0x05, 0xa0, 0x25, 0x48, 0xd5, + 0x6f, 0x73, 0x61, 0x2c, 0x8e, 0xbb, 0x3c, 0x86, 0xb0, 0xfa, 0x6d, 0xd1, 0x65, 0x43, 0xf7, 0x20, + 0xb3, 0xf4, 0xa4, 0x6b, 0x62, 0x2e, 0x25, 0x39, 0x30, 0x73, 0xa1, 0x57, 0x0a, 0xe5, 0x12, 0xfd, + 0xcc, 0xa8, 0x0e, 0xf9, 0x37, 0x0d, 0xf3, 0x51, 0xcb, 0x90, 0x9d, 0x16, 0x4e, 0x51, 0x71, 0x9f, + 0x18, 0x43, 0x9c, 0xc3, 0x28, 0xf6, 0x88, 0x98, 0xfb, 0x1c, 0xe4, 0x02, 0xdd, 0x84, 0x10, 0x24, + 0x3a, 0xa4, 0x47, 0x04, 0x9a, 0x0a, 0x44, 0xff, 0x46, 0xcf, 0xc3, 0x94, 0x6e, 0xa8, 0xd8, 0xb1, + 0xe1, 0xdc, 0xf2, 0xa9, 0xa3, 0xc3, 0xf9, 0xe4, 0xba, 0xa1, 0xb2, 0x80, 0x82, 0xff, 0x25, 0x26, + 0x49, 0x21, 0x27, 0x9c, 0x98, 0xbb, 0x02, 0x09, 0xd2, 0x3f, 0xc4, 0x8d, 0x6c, 0xc9, 0x16, 0xde, + 0x34, 0x35, 0x2e, 0xd3, 0x79, 0xe4, 0xe5, 0x7e, 0x28, 0x40, 0xac, 0x7e, 0x9b, 0x44, 0xd4, 0x5b, + 0x5d, 0xe5, 0x11, 0xb6, 0x79, 0x29, 0xfe, 0x44, 0x23, 0x6d, 0x13, 0x6f, 0x6b, 0x2c, 0xca, 0x49, + 0x8b, 0xfc, 0x09, 0x3d, 0x03, 0x20, 0x2b, 0x0a, 0xb6, 0x2c, 0xc9, 0x39, 0xfd, 0x95, 0x16, 0xd3, + 0x8c, 0xb2, 0x8a, 0x0f, 0x08, 0x9b, 0x85, 0x15, 0x13, 0xdb, 0x4e, 0x4e, 0x13, 0x7b, 0x22, 0x6c, + 0x36, 0x6e, 0x77, 0x24, 0xdb, 0x78, 0x84, 0x75, 0xda, 0xab, 0x69, 0xe2, 0x1e, 0xda, 0x9d, 0x06, + 0x21, 0x10, 0xcf, 0x86, 0x75, 0xd5, 0x73, 0x43, 0x69, 0xd1, 0x7d, 0x26, 0x22, 0x4d, 0xdc, 0xd4, + 0xf8, 0x71, 0xa6, 0xb4, 0xc8, 0x9f, 0x88, 0xc6, 0xe4, 0xae, 0xbd, 0x43, 0x13, 0x39, 0xd2, 0x22, + 0xfd, 0x9b, 0x37, 0xed, 0x2b, 0x02, 0xc4, 0xef, 0x96, 0xeb, 0xc7, 0x6e, 0x9b, 0x23, 0x31, 0xee, + 0x49, 0xa4, 0xa9, 0x84, 0x5a, 0xab, 0xa5, 0xe9, 0x4d, 0x12, 0x74, 0x7c, 0x11, 0x2b, 0x4e, 0xcb, + 0xf2, 0x9c, 0xbc, 0xc1, 0xa8, 0x68, 0x01, 0x32, 0x8a, 0x89, 0x55, 0xac, 0xdb, 0x9a, 0xdc, 0xb2, + 0x78, 0x13, 0xfd, 0x24, 0x5e, 0xb9, 0x2f, 0x09, 0x30, 0x49, 0xcd, 0x0b, 0x3d, 0x0d, 0x69, 0xc5, + 0xd0, 0x6d, 0x59, 0xd3, 0xb9, 0x9f, 0x48, 0x8b, 0x1e, 0x61, 0x60, 0x25, 0x2f, 0x40, 0x56, 0x56, + 0x14, 0xa3, 0xab, 0xdb, 0x92, 0x2e, 0xb7, 0x31, 0xaf, 0x6c, 0x86, 0xd3, 0xd6, 0xe5, 0x36, 0x46, + 0xf3, 0xe0, 0x3c, 0xba, 0x67, 0xf0, 0xd2, 0x22, 0x70, 0xd2, 0x2a, 0x3e, 0xe0, 0x35, 0xf9, 0xae, + 0x00, 0x29, 0xc7, 0x2c, 0x49, 0x65, 0x9a, 0x58, 0xc7, 0xa6, 0x6c, 0x1b, 0x6e, 0x65, 0x5c, 0x42, + 0xef, 0x9c, 0x94, 0xf6, 0xe6, 0xa4, 0x53, 0x30, 0x69, 0xcb, 0x5b, 0x2d, 0xa7, 0x1e, 0xec, 0x81, + 0x2e, 0x1f, 0xb7, 0xe4, 0x26, 0x5b, 0x23, 0x4b, 0x8b, 0xec, 0x81, 0x34, 0x89, 0xe7, 0xae, 0x32, + 0xed, 0xf0, 0x27, 0x52, 0x5f, 0x96, 0xae, 0xb9, 0x85, 0x9b, 0x9a, 0x4e, 0x0d, 0x20, 0x2e, 0x02, + 0x25, 0x2d, 0x13, 0x0a, 0x7a, 0x0a, 0xd2, 0xac, 0x00, 0xd6, 0x55, 0x6a, 0x05, 0x71, 0x31, 0x45, + 0x09, 0x15, 0xe7, 0x3c, 0x12, 0x0f, 0x44, 0xbe, 0x29, 0xc0, 0x0c, 0xcb, 0xb9, 0x61, 0x79, 0x9e, + 0xd1, 0xcd, 0xca, 0xaf, 0x40, 0x5a, 0x95, 0x6d, 0x99, 0x9d, 0xf9, 0x8b, 0x0d, 0x3d, 0xf3, 0xe7, + 0xb8, 0x49, 0x52, 0x9e, 0x9e, 0xfb, 0x43, 0x90, 0x20, 0x7f, 0xb3, 0xb3, 0x92, 0x22, 0xfd, 0xdb, + 0xcb, 0x62, 0xf0, 0x57, 0x37, 0xca, 0x28, 0xe5, 0x06, 0x9c, 0x26, 0xce, 0xa5, 0xa2, 0x2b, 0xe6, + 0x41, 0x87, 0x40, 0xe9, 0x07, 0xf4, 0x5f, 0x0b, 0x15, 0x7c, 0xbb, 0x40, 0x74, 0xf3, 0x87, 0xd7, + 0xe5, 0xaf, 0x93, 0x90, 0xab, 0xec, 0x77, 0x0c, 0x33, 0xe2, 0x55, 0xb7, 0x29, 0x8e, 0x96, 0x87, + 0xec, 0xcb, 0xf6, 0xb8, 0x4d, 0x67, 0xcb, 0x93, 0x33, 0xa2, 0x65, 0x00, 0x96, 0x91, 0x49, 0x13, + 0x77, 0xe2, 0xc7, 0xd8, 0x9d, 0xa2, 0x6c, 0x84, 0x8a, 0xd6, 0x21, 0xd3, 0xde, 0x55, 0x14, 0x69, + 0x5b, 0x6b, 0xd9, 0x3c, 0x97, 0x2d, 0x3c, 0x79, 0x7a, 0xed, 0x61, 0xb9, 0x7c, 0x87, 0x16, 0x62, + 0x29, 0x65, 0xde, 0xb3, 0x08, 0x44, 0x02, 0xfb, 0x1b, 0x3d, 0x07, 0xfc, 0xbc, 0x87, 0x64, 0x39, + 0xa7, 0xb7, 0x96, 0x73, 0x47, 0x87, 0xf3, 0x69, 0x91, 0x52, 0xeb, 0xf5, 0x86, 0x98, 0x66, 0x05, + 0xea, 0x96, 0x8d, 0x2e, 0x42, 0xce, 0x68, 0x6b, 0xb6, 0xe4, 0x04, 0x0e, 0x3c, 0xd6, 0xca, 0x12, + 0xa2, 0x13, 0x58, 0xa0, 0x06, 0x5c, 0xc5, 0x3a, 0x19, 0x3e, 0xb4, 0x9d, 0xd2, 0x16, 0x5b, 0xdc, + 0xb3, 0xd9, 0x10, 0x94, 0x8c, 0x8e, 0xad, 0xb5, 0xb5, 0x27, 0x74, 0x67, 0x98, 0xef, 0xca, 0x5c, + 0x64, 0xc5, 0x49, 0xfb, 0x96, 0xe9, 0xaa, 0x1f, 0x2f, 0xfb, 0xc0, 0x57, 0x14, 0x7d, 0x49, 0x80, + 0x33, 0x5c, 0x91, 0xd2, 0xd6, 0x81, 0xd4, 0x22, 0xb3, 0x8e, 0x66, 0x1f, 0x48, 0x8f, 0x76, 0x8b, + 0x29, 0x1a, 0xd1, 0x7d, 0x2a, 0xb4, 0x43, 0x7c, 0x76, 0xb0, 0xe8, 0x74, 0xcb, 0xc1, 0x7d, 0xce, + 0xbc, 0xba, 0x5b, 0xd1, 0x6d, 0xf3, 0x60, 0xf9, 0xec, 0xd1, 0xe1, 0xfc, 0x6c, 0xff, 0xdb, 0x87, + 0xe2, 0xac, 0xd5, 0xcf, 0x82, 0xaa, 0x00, 0xd8, 0xb5, 0x46, 0x9a, 0x5f, 0x17, 0x3e, 0x27, 0x87, + 0x9a, 0xad, 0xe8, 0xe3, 0x45, 0xd7, 0xa0, 0xc0, 0x0f, 0x6b, 0x6c, 0x6b, 0x2d, 0x2c, 0x59, 0xda, + 0x13, 0x5c, 0x04, 0xea, 0x16, 0xf2, 0x8c, 0x4e, 0x44, 0xd4, 0xb5, 0x27, 0x78, 0xee, 0x8b, 0x50, + 0x1c, 0x54, 0x7b, 0xff, 0x40, 0x48, 0xb3, 0x5d, 0xd0, 0x97, 0x83, 0xcb, 0x18, 0x63, 0x98, 0xaa, + 0xb3, 0x94, 0x11, 0x7b, 0xd9, 0x71, 0x41, 0xbf, 0x2e, 0x40, 0x6e, 0xb9, 0xdb, 0x7a, 0xf4, 0xa0, + 0x53, 0xef, 0xb6, 0xdb, 0xb2, 0x79, 0x40, 0xbc, 0x17, 0x73, 0x1d, 0xa4, 0x9a, 0x02, 0xf3, 0x5e, + 0xd4, 0x37, 0x68, 0x4f, 0x30, 0xf1, 0x0d, 0x3c, 0x4b, 0x9e, 0xd0, 0x59, 0x0a, 0xfc, 0x45, 0xc8, + 0xd1, 0x35, 0x05, 0x09, 0xeb, 0xb6, 0xa9, 0x61, 0xb6, 0x54, 0x16, 0x17, 0xb3, 0x94, 0x58, 0x61, + 0x34, 0x74, 0x19, 0xf2, 0xd6, 0x81, 0x65, 0xe3, 0xb6, 0xc4, 0x8e, 0x91, 0x33, 0x20, 0x1c, 0x17, + 0x73, 0x8c, 0x2a, 0x32, 0x62, 0xe9, 0x47, 0x71, 0xc8, 0x3b, 0xbd, 0x19, 0x65, 0x8c, 0xbd, 0x0c, + 0x93, 0x44, 0xf7, 0x4e, 0x2a, 0xc3, 0x95, 0x21, 0x46, 0xc4, 0xb3, 0x9f, 0x49, 0x9f, 0x38, 0x28, + 0x8d, 0xb2, 0x46, 0x31, 0xae, 0xe7, 0x7e, 0x29, 0x06, 0x09, 0x1a, 0xd6, 0xde, 0x84, 0x04, 0xf5, + 0xcd, 0xc2, 0x38, 0xbe, 0x99, 0x16, 0x75, 0x63, 0xae, 0x98, 0x2f, 0xe6, 0x22, 0x01, 0xcc, 0x8e, + 0xfc, 0xe2, 0xcd, 0x5b, 0x74, 0x4c, 0x67, 0x45, 0xfe, 0x84, 0x96, 0x69, 0x8e, 0x8d, 0x61, 0xda, + 0x58, 0xe5, 0xe1, 0x64, 0x98, 0x37, 0x0c, 0x74, 0xbc, 0x33, 0x0f, 0x38, 0x7c, 0xe8, 0x1c, 0xc4, + 0x89, 0xb3, 0x98, 0x62, 0xfb, 0xef, 0x47, 0x87, 0xf3, 0x71, 0xe2, 0x26, 0x08, 0x0d, 0xdd, 0x80, + 0x4c, 0x70, 0x64, 0x0a, 0xd7, 0xd2, 0xcc, 0xff, 0xf8, 0x46, 0x15, 0xb4, 0x5c, 0x0b, 0x66, 0x50, + 0xea, 0x5e, 0x22, 0x95, 0x28, 0x4c, 0x96, 0x7e, 0x71, 0x12, 0x72, 0xb5, 0x76, 0xd4, 0x9e, 0x7b, + 0x29, 0xd8, 0xc3, 0x61, 0x31, 0x78, 0xe0, 0xa3, 0x21, 0x1d, 0x1c, 0x98, 0x34, 0xe3, 0xc7, 0x9b, + 0x34, 0x6b, 0x24, 0xec, 0xe3, 0x47, 0xe5, 0xe3, 0x03, 0xc2, 0xed, 0xe0, 0xf7, 0x1b, 0xc4, 0x19, + 0x8a, 0x84, 0xc7, 0x3b, 0x0f, 0x40, 0x73, 0x28, 0x5e, 0xa7, 0xd1, 0x25, 0xb3, 0xb2, 0xe4, 0xf8, + 0x56, 0x36, 0x85, 0x75, 0x95, 0xce, 0x1d, 0x41, 0xc7, 0x35, 0x75, 0x72, 0xc7, 0x35, 0xf7, 0x84, + 0x1b, 0xeb, 0x2b, 0x10, 0x57, 0x35, 0x73, 0xc8, 0x0d, 0x0e, 0xe1, 0x33, 0x22, 0x61, 0x1a, 0x61, + 0xb5, 0x09, 0xbf, 0xd5, 0xfa, 0x61, 0xf7, 0xdc, 0x03, 0x00, 0x4f, 0x43, 0x68, 0x01, 0x92, 0x46, + 0x4b, 0x75, 0x8e, 0x45, 0xe4, 0x96, 0xd3, 0x47, 0x87, 0xf3, 0x93, 0x0f, 0x5a, 0x6a, 0x6d, 0x45, + 0x9c, 0x34, 0x5a, 0x6a, 0x4d, 0xa5, 0xb7, 0x15, 0xe0, 0x3d, 0xc9, 0x4d, 0xa9, 0xca, 0x8a, 0x53, + 0x3a, 0xde, 0x23, 0x20, 0xbf, 0x27, 0xd5, 0x83, 0x98, 0xe0, 0xd7, 0x05, 0xc8, 0x3b, 0xbd, 0x11, + 0xad, 0x9b, 0x49, 0x69, 0x6d, 0x3e, 0xec, 0xe2, 0xc7, 0x1b, 0x76, 0x0e, 0x1f, 0x3f, 0x6e, 0xf9, + 0x65, 0x81, 0xa7, 0xd3, 0xd6, 0x15, 0xd9, 0x26, 0xb3, 0x79, 0x84, 0x43, 0xe5, 0x59, 0x28, 0x98, + 0xb2, 0xae, 0x1a, 0x6d, 0xed, 0x09, 0x66, 0xeb, 0x74, 0x16, 0xdf, 0x8e, 0x9b, 0x76, 0xe9, 0x74, + 0x21, 0xca, 0x59, 0x66, 0xfc, 0xa9, 0xc0, 0x53, 0x6f, 0xdd, 0xca, 0x44, 0xa9, 0xb4, 0x55, 0x48, + 0x9a, 0x2c, 0x81, 0x8f, 0x0d, 0xdd, 0xe7, 0x43, 0x84, 0x84, 0x7d, 0x9d, 0xe5, 0xc7, 0xb9, 0x83, + 0x87, 0x8a, 0x98, 0xfb, 0x2c, 0x4c, 0x52, 0xf2, 0x09, 0x1c, 0x2c, 0xd7, 0xfc, 0xbf, 0xc4, 0xe0, + 0x12, 0xfd, 0xdc, 0x43, 0x6c, 0x6a, 0xdb, 0x07, 0x1b, 0xa6, 0x61, 0x63, 0xc5, 0xc6, 0xaa, 0x77, + 0xfc, 0x20, 0x52, 0xaf, 0x95, 0xee, 0x38, 0x1f, 0x38, 0x56, 0x22, 0x93, 0xcb, 0x85, 0x56, 0x61, + 0x9a, 0x4d, 0xa9, 0x92, 0xdc, 0xd2, 0x76, 0xb1, 0x24, 0xdb, 0xc7, 0x99, 0x9b, 0x72, 0x8c, 0x77, + 0x89, 0xb0, 0x2e, 0xd9, 0x48, 0x85, 0x34, 0x17, 0xa6, 0xa9, 0xfc, 0x36, 0x94, 0xbb, 0x1f, 0x6e, + 0x25, 0x2a, 0xc5, 0xa6, 0xf6, 0xda, 0x8a, 0x98, 0x62, 0x92, 0xdd, 0x9d, 0x84, 0x1f, 0x08, 0x70, + 0x79, 0x84, 0xa2, 0xa3, 0x34, 0xb3, 0x39, 0x48, 0xed, 0x92, 0x0f, 0x69, 0x5c, 0xd3, 0x29, 0xd1, + 0x7d, 0x46, 0x6b, 0x90, 0xdb, 0x96, 0xb5, 0x16, 0x56, 0x25, 0x6e, 0x89, 0x83, 0xb3, 0xdf, 0xc2, + 0x93, 0x32, 0xb3, 0x8c, 0x9d, 0xbe, 0xb4, 0x4a, 0xbf, 0x1f, 0x83, 0x99, 0x25, 0x55, 0xad, 0xd7, + 0xb9, 0x07, 0x8b, 0xce, 0x5e, 0x1c, 0x6c, 0x16, 0xf3, 0xb0, 0x19, 0x7a, 0x1e, 0x90, 0xaa, 0x59, + 0xec, 0xa6, 0x06, 0x6b, 0x47, 0x56, 0x8d, 0x3d, 0x6f, 0x9f, 0x7f, 0xc6, 0x79, 0x53, 0x77, 0x5e, + 0xa0, 0xb7, 0x81, 0x02, 0x03, 0xc9, 0xb2, 0x65, 0x77, 0x3b, 0xe2, 0xb9, 0xe3, 0x1c, 0x1a, 0x62, + 0xc0, 0xc1, 0x7d, 0x14, 0xd3, 0x44, 0x1c, 0xfd, 0x93, 0x44, 0xba, 0x1a, 0xd1, 0x80, 0x2d, 0xc9, + 0x96, 0x73, 0xee, 0x84, 0x5d, 0x15, 0x91, 0x67, 0xf4, 0x25, 0xcb, 0x7f, 0x9c, 0x84, 0xa5, 0xc5, + 0x7b, 0x7a, 0x8a, 0x12, 0x50, 0xfe, 0xa1, 0x00, 0x79, 0x7e, 0x56, 0x26, 0xca, 0x0e, 0xb8, 0x03, + 0x59, 0xe7, 0x60, 0xce, 0xb6, 0x69, 0xb4, 0x8f, 0x33, 0xd4, 0x32, 0x9c, 0xf1, 0x8e, 0x69, 0xb4, + 0x03, 0x47, 0xeb, 0x1f, 0xc2, 0xb4, 0x5b, 0xd3, 0x28, 0x55, 0xf0, 0x4d, 0x7a, 0x5e, 0x96, 0x09, + 0x8e, 0x7a, 0xa7, 0xfd, 0xa3, 0xd0, 0x03, 0xdd, 0x06, 0xf1, 0x57, 0x37, 0x4a, 0x65, 0xfc, 0x54, + 0x80, 0x7c, 0xbd, 0xbb, 0xc5, 0xae, 0x06, 0x8a, 0x4e, 0x0f, 0x15, 0x48, 0xb7, 0xf0, 0xb6, 0x2d, + 0x9d, 0x28, 0x95, 0x3b, 0x45, 0x58, 0x69, 0x3a, 0xfb, 0x5d, 0x00, 0x93, 0x1e, 0xd6, 0xa2, 0x72, + 0xe2, 0xc7, 0x94, 0x93, 0xa6, 0xbc, 0x5e, 0xac, 0x53, 0xfa, 0xd3, 0x18, 0x4c, 0xbb, 0x8d, 0x8d, + 0xd2, 0x89, 0xfe, 0x5c, 0xc0, 0x79, 0xc4, 0x4f, 0xe0, 0x3c, 0x66, 0x78, 0x86, 0x41, 0xb8, 0x03, + 0x59, 0x84, 0x59, 0x1a, 0x90, 0x48, 0x72, 0xa7, 0xd3, 0xd2, 0xb0, 0x2a, 0xb1, 0xad, 0xeb, 0x04, + 0xdd, 0xba, 0x9e, 0xa1, 0xaf, 0x96, 0xd8, 0x9b, 0x1a, 0xdd, 0xc6, 0xbe, 0x03, 0xd9, 0x6d, 0x13, + 0xe3, 0x27, 0x58, 0xa2, 0x18, 0xeb, 0x38, 0x89, 0x14, 0x19, 0xc6, 0x58, 0x27, 0x7c, 0xdc, 0x00, + 0xdf, 0x81, 0x19, 0xaa, 0xe0, 0xa8, 0x0f, 0x8a, 0xf2, 0x5e, 0xf9, 0x57, 0x01, 0x90, 0x5f, 0xfe, + 0x47, 0xd7, 0x31, 0xb1, 0xc8, 0x3b, 0xe6, 0x39, 0x40, 0x2c, 0xa7, 0xce, 0x92, 0x3a, 0xd8, 0x94, + 0x2c, 0xac, 0x18, 0xfc, 0xc2, 0x1b, 0x41, 0x2c, 0xf0, 0x37, 0x1b, 0xd8, 0xac, 0x53, 0x7a, 0xe9, + 0xdd, 0x39, 0xc8, 0x72, 0x9d, 0x6c, 0xea, 0x9a, 0xa1, 0xa3, 0x9b, 0x10, 0x6f, 0xf2, 0x85, 0xed, + 0x4c, 0xe8, 0x3a, 0x96, 0x77, 0xe9, 0x56, 0x75, 0x42, 0x24, 0x65, 0x09, 0x4b, 0xa7, 0x6b, 0x87, + 0x04, 0x45, 0x5e, 0x2a, 0xb0, 0x9f, 0xa5, 0xd3, 0xb5, 0x51, 0x1d, 0xa6, 0x15, 0xef, 0xd2, 0x21, + 0x89, 0xb0, 0xc7, 0x07, 0xc2, 0x9f, 0xd0, 0xab, 0x9b, 0xaa, 0x13, 0x62, 0x5e, 0x09, 0xbc, 0x40, + 0x65, 0xff, 0x2d, 0x37, 0x6c, 0xba, 0xbc, 0x18, 0x7a, 0xa8, 0x34, 0x78, 0xc3, 0x4e, 0x75, 0xc2, + 0x77, 0x19, 0x0e, 0x7a, 0x05, 0x92, 0x2a, 0xbd, 0x3d, 0x85, 0x5b, 0x68, 0x98, 0x11, 0x05, 0x2e, + 0xac, 0xa9, 0x4e, 0x88, 0x9c, 0x03, 0xdd, 0x83, 0x2c, 0xfb, 0x8b, 0x05, 0x27, 0x1c, 0x13, 0x5e, + 0x1e, 0x2c, 0xc1, 0xe7, 0xeb, 0xab, 0x13, 0x62, 0x46, 0xf5, 0xa8, 0xe8, 0x93, 0x90, 0xb0, 0x14, + 0xd9, 0x41, 0x85, 0xe7, 0x07, 0xdc, 0xc6, 0xe0, 0x31, 0xd3, 0xd2, 0xe8, 0x55, 0x76, 0x43, 0x9e, + 0xbd, 0xef, 0xac, 0x83, 0x85, 0x55, 0x3f, 0x70, 0x5e, 0x98, 0x54, 0x1f, 0x53, 0x02, 0xba, 0x0b, + 0x19, 0x99, 0x44, 0x79, 0x12, 0x3d, 0xb5, 0x47, 0x17, 0xbe, 0xc2, 0xf7, 0x65, 0xfb, 0x4e, 0x5c, + 0x56, 0xe9, 0xa1, 0x64, 0x87, 0xe8, 0x09, 0x6a, 0x63, 0xb3, 0x89, 0x8b, 0x99, 0xe1, 0x82, 0xfc, + 0x49, 0x43, 0xae, 0x20, 0x4a, 0x24, 0xd1, 0xde, 0x8e, 0x73, 0x22, 0x83, 0x36, 0x2a, 0x3b, 0x70, + 0x0f, 0x30, 0xe4, 0x44, 0x49, 0x75, 0x42, 0xcc, 0xee, 0xf8, 0xc8, 0x68, 0x11, 0x62, 0x4d, 0xa5, + 0x98, 0xa3, 0x32, 0x9e, 0x1e, 0x76, 0x5e, 0xa2, 0x3a, 0x21, 0xc6, 0x9a, 0x0a, 0xc1, 0xf7, 0x2c, + 0xd3, 0x7d, 0x5f, 0x2f, 0xe6, 0x07, 0x8e, 0xf8, 0xe0, 0xb1, 0x81, 0xea, 0x84, 0x48, 0x93, 0xeb, + 0xc9, 0xf7, 0x36, 0x20, 0x6f, 0xb2, 0xac, 0x2b, 0x27, 0x97, 0xb2, 0x30, 0x70, 0x5f, 0x34, 0x2c, + 0x9d, 0xb2, 0x4a, 0xa3, 0x7e, 0x1f, 0x1d, 0x7d, 0x01, 0x4e, 0x05, 0x25, 0x72, 0x4b, 0x9b, 0xe9, + 0x73, 0x23, 0xe1, 0x72, 0x83, 0x06, 0x87, 0xcc, 0xbe, 0x97, 0xe8, 0x25, 0x98, 0x64, 0xbd, 0x86, + 0xa8, 0xc8, 0xb0, 0x0d, 0xff, 0x9e, 0x0e, 0x63, 0xe5, 0x89, 0xf1, 0xdb, 0x3c, 0xdd, 0x48, 0x6a, + 0x19, 0xcd, 0xe2, 0xec, 0x40, 0xe3, 0xef, 0x4f, 0x9f, 0x22, 0xc6, 0x6f, 0x7b, 0x54, 0xd2, 0xef, + 0x26, 0x7b, 0xc3, 0xb3, 0x53, 0x4e, 0x0d, 0xec, 0xf7, 0x90, 0x2c, 0xa4, 0x2a, 0x4d, 0x15, 0xf7, + 0xc8, 0xa4, 0x6a, 0x26, 0xbb, 0x8d, 0x44, 0xa2, 0x63, 0xea, 0xf4, 0xc0, 0xaa, 0xf5, 0xdf, 0xb0, + 0x52, 0xa5, 0x61, 0x90, 0x4b, 0x45, 0x0f, 0xa1, 0xc0, 0xef, 0x09, 0xf0, 0x16, 0xdd, 0xcf, 0x50, + 0x79, 0xcf, 0x86, 0xba, 0xae, 0xb0, 0x74, 0x8e, 0xea, 0x84, 0x38, 0xad, 0x04, 0xdf, 0xa0, 0xb7, + 0x60, 0x86, 0xca, 0x93, 0x14, 0xef, 0x82, 0x87, 0x62, 0xb1, 0x2f, 0x2f, 0x72, 0xf0, 0x5d, 0x10, + 0x8e, 0xe4, 0x82, 0xd2, 0xf3, 0x8a, 0x98, 0xb1, 0xa6, 0x6b, 0x36, 0xf5, 0xb2, 0x73, 0x03, 0xcd, + 0x38, 0x78, 0x49, 0x1b, 0x31, 0x63, 0x8d, 0x51, 0x88, 0x19, 0xdb, 0x3c, 0x75, 0x89, 0x77, 0xc7, + 0xd3, 0x03, 0xcd, 0x38, 0x2c, 0xc7, 0x89, 0x98, 0xb1, 0xed, 0xa7, 0x13, 0x33, 0x66, 0x0e, 0xa2, + 0x47, 0xee, 0x33, 0x03, 0xcd, 0x78, 0xe0, 0xb9, 0x59, 0x62, 0xc6, 0x72, 0xdf, 0x4b, 0xb4, 0x02, + 0xc0, 0xc2, 0x13, 0x4d, 0xdf, 0x36, 0x8a, 0xe7, 0x07, 0x4e, 0x06, 0xbd, 0xc9, 0x4b, 0x64, 0x32, + 0x68, 0x39, 0x34, 0xe2, 0xc8, 0x28, 0x36, 0x92, 0xe8, 0xa6, 0x60, 0x71, 0x7e, 0xa0, 0x23, 0xeb, + 0xdb, 0x1b, 0x24, 0x8e, 0x6c, 0xcf, 0x25, 0x92, 0x59, 0x85, 0xad, 0xd6, 0x16, 0x17, 0x06, 0xbb, + 0x65, 0xff, 0xde, 0x08, 0x75, 0xcb, 0x94, 0x80, 0x96, 0x20, 0x4d, 0xa6, 0xed, 0x03, 0xea, 0x86, + 0x2e, 0x0c, 0x0c, 0x38, 0x7b, 0xce, 0x42, 0x54, 0x27, 0xc4, 0xd4, 0x63, 0x4e, 0x22, 0x9f, 0x67, + 0xab, 0x56, 0xc5, 0xd2, 0xc0, 0xcf, 0x07, 0xd6, 0x3c, 0xc9, 0xe7, 0x19, 0x07, 0x52, 0xe0, 0x34, + 0xeb, 0x2b, 0x7e, 0x6c, 0xd5, 0xe4, 0x67, 0x2c, 0x8b, 0x17, 0xa9, 0xa8, 0x81, 0x6b, 0x40, 0xa1, + 0xa7, 0x69, 0xab, 0x13, 0xe2, 0xac, 0xdc, 0xff, 0x96, 0x0c, 0x78, 0x3e, 0xf5, 0xb0, 0x95, 0xa3, + 0xe2, 0xa5, 0x81, 0x03, 0x3e, 0x64, 0xad, 0x8d, 0x0c, 0x78, 0xd9, 0x47, 0x66, 0x13, 0x90, 0x2a, + 0x59, 0x16, 0xdb, 0x42, 0xbe, 0x3c, 0x64, 0x02, 0xea, 0xc1, 0xfe, 0x6c, 0x02, 0x52, 0xeb, 0x8c, + 0x93, 0x08, 0x52, 0x5a, 0x58, 0x36, 0xb9, 0x9b, 0xbd, 0x32, 0x50, 0x50, 0xdf, 0xc5, 0x67, 0x44, + 0x90, 0xe2, 0x12, 0x49, 0xc0, 0x63, 0x3a, 0x17, 0x8c, 0xf0, 0xd0, 0xef, 0xea, 0xc0, 0x80, 0x27, + 0xf4, 0x1e, 0x14, 0x12, 0xf0, 0x98, 0x81, 0x17, 0xe8, 0xd3, 0x30, 0xc5, 0x11, 0x5a, 0xf1, 0xda, + 0x90, 0x80, 0xd4, 0x0f, 0xad, 0xc9, 0xb8, 0xe6, 0x3c, 0xcc, 0xcb, 0x32, 0x64, 0xc8, 0x9a, 0xf7, + 0xec, 0x10, 0x2f, 0xdb, 0x07, 0x4e, 0x99, 0x97, 0xf5, 0xc8, 0xc4, 0xcb, 0x32, 0x3b, 0xe5, 0x73, + 0xdd, 0xf5, 0x81, 0x5e, 0xb6, 0xff, 0x20, 0x06, 0xf1, 0xb2, 0x8f, 0x3d, 0x2a, 0x69, 0x99, 0xc5, + 0x50, 0x51, 0xf1, 0x13, 0x03, 0x5b, 0x16, 0x04, 0x89, 0xa4, 0x65, 0x9c, 0x87, 0x74, 0x1b, 0xcb, + 0x99, 0x65, 0x9a, 0x7e, 0x6e, 0xf0, 0x09, 0xf1, 0x5e, 0x10, 0x51, 0x75, 0x6e, 0xbe, 0x65, 0x1a, + 0x76, 0x1d, 0x95, 0xc9, 0xcf, 0xc3, 0x72, 0x4d, 0x3d, 0x3f, 0xdc, 0x51, 0x85, 0x1d, 0xf5, 0x75, + 0x1d, 0x55, 0xe0, 0x25, 0xad, 0x2a, 0x3b, 0xd6, 0x44, 0xc7, 0xf7, 0xe2, 0x90, 0xc3, 0xec, 0x3d, + 0x27, 0xcd, 0x68, 0x55, 0x5d, 0xa2, 0x37, 0x84, 0xba, 0xec, 0xd6, 0x85, 0xe2, 0x8d, 0xe1, 0x43, + 0x28, 0x78, 0xfb, 0x83, 0x3b, 0x84, 0x38, 0xd9, 0x9d, 0x33, 0x9d, 0x08, 0xe3, 0x85, 0xe1, 0x73, + 0x66, 0x6f, 0x68, 0xc1, 0xe6, 0x4c, 0x1e, 0x53, 0xfc, 0xb2, 0x00, 0x0b, 0xac, 0x6e, 0x74, 0x1d, + 0xef, 0x40, 0x72, 0xd7, 0x44, 0x7d, 0x99, 0xf5, 0x37, 0xe9, 0x07, 0x5e, 0x1a, 0x54, 0xdd, 0x11, + 0x6b, 0xbc, 0xd5, 0x09, 0xf1, 0x19, 0x79, 0x58, 0xb9, 0xe5, 0x29, 0xbe, 0x07, 0xeb, 0x1e, 0x30, + 0x9c, 0x2e, 0x14, 0xee, 0x25, 0x52, 0x67, 0x0b, 0xc5, 0x7b, 0x89, 0xd4, 0xb9, 0xc2, 0xdc, 0xbd, + 0x44, 0xea, 0xa9, 0xc2, 0xd3, 0xa5, 0x7f, 0x3b, 0x07, 0x39, 0x07, 0xc3, 0x31, 0x44, 0x74, 0xcb, + 0x8f, 0x88, 0xce, 0x0f, 0x42, 0x44, 0x1c, 0xf5, 0x71, 0x48, 0x74, 0xcb, 0x0f, 0x89, 0xce, 0x0f, + 0x82, 0x44, 0x1e, 0x0f, 0xc1, 0x44, 0x8d, 0x41, 0x98, 0xe8, 0xd9, 0x31, 0x30, 0x91, 0x2b, 0xaa, + 0x17, 0x14, 0xad, 0xf4, 0x83, 0xa2, 0x4b, 0xc3, 0x41, 0x91, 0x2b, 0xca, 0x87, 0x8a, 0x5e, 0xed, + 0x41, 0x45, 0x17, 0x86, 0xa0, 0x22, 0x97, 0xdf, 0x81, 0x45, 0xab, 0xa1, 0xb0, 0xe8, 0xca, 0x28, + 0x58, 0xe4, 0xca, 0x09, 0xe0, 0xa2, 0x17, 0x03, 0xb8, 0x68, 0x7e, 0x20, 0x2e, 0x72, 0xb9, 0x19, + 0x30, 0x7a, 0xad, 0x17, 0x18, 0x5d, 0x18, 0x02, 0x8c, 0xbc, 0x16, 0x70, 0x64, 0x54, 0x0d, 0x43, + 0x46, 0x97, 0x47, 0x20, 0x23, 0x57, 0x8a, 0x1f, 0x1a, 0x55, 0xc3, 0xa0, 0xd1, 0xe5, 0x11, 0xd0, + 0xa8, 0x47, 0x12, 0xc3, 0x46, 0xeb, 0xe1, 0xd8, 0xe8, 0xea, 0x48, 0x6c, 0xe4, 0x4a, 0x0b, 0x82, + 0xa3, 0x1b, 0x3e, 0x70, 0xf4, 0xcc, 0x00, 0x70, 0xe4, 0xb2, 0x12, 0x74, 0xf4, 0x99, 0x3e, 0x74, + 0x54, 0x1a, 0x86, 0x8e, 0x5c, 0x5e, 0x17, 0x1e, 0xbd, 0x31, 0x00, 0x1e, 0x5d, 0x1b, 0x0d, 0x8f, + 0x5c, 0x61, 0x3d, 0xf8, 0x48, 0x1e, 0x8a, 0x8f, 0x9e, 0x1f, 0x13, 0x1f, 0xb9, 0xd2, 0xc3, 0x00, + 0xd2, 0xcb, 0x41, 0x80, 0xb4, 0x30, 0x18, 0x20, 0xb9, 0x62, 0x38, 0x42, 0x5a, 0x0d, 0x45, 0x48, + 0x57, 0x46, 0x21, 0x24, 0x6f, 0x1c, 0xf8, 0x21, 0xd2, 0x7a, 0x38, 0x44, 0xba, 0x3a, 0x12, 0x22, + 0x79, 0xdd, 0x1f, 0xc0, 0x48, 0xab, 0xa1, 0x18, 0xe9, 0xca, 0x28, 0x8c, 0xe4, 0x55, 0xce, 0x0f, + 0x92, 0xde, 0x1c, 0x08, 0x92, 0xae, 0x8f, 0x03, 0x92, 0x5c, 0xa1, 0x7d, 0x28, 0xe9, 0xed, 0xc1, + 0x28, 0xe9, 0x13, 0xc7, 0xb8, 0x31, 0x2f, 0x14, 0x26, 0x7d, 0xa6, 0x0f, 0x26, 0x95, 0x86, 0xc1, + 0x24, 0xcf, 0x9e, 0x1d, 0x9c, 0x24, 0x0f, 0x45, 0x35, 0xcf, 0x8f, 0x89, 0x6a, 0x3c, 0xe3, 0x0b, + 0x81, 0x35, 0x95, 0x10, 0x58, 0x73, 0x69, 0x38, 0xac, 0xf1, 0xdc, 0xb9, 0x87, 0x6b, 0xaa, 0x61, + 0xb8, 0xe6, 0xf2, 0x08, 0x5c, 0xe3, 0x79, 0x21, 0x1f, 0xb0, 0x79, 0xb5, 0x07, 0xd8, 0x5c, 0x18, + 0x99, 0xaf, 0xe3, 0x43, 0x36, 0xcb, 0xfd, 0xc8, 0xe6, 0xe2, 0x50, 0x64, 0xe3, 0x4a, 0xf0, 0xa0, + 0xcd, 0xab, 0x3d, 0xd0, 0xe6, 0xc2, 0x10, 0x68, 0xe3, 0x55, 0x80, 0x63, 0x1b, 0x75, 0x38, 0xb6, + 0x59, 0x1c, 0x17, 0xdb, 0xb8, 0x82, 0x43, 0xc1, 0xcd, 0x7a, 0x38, 0xb8, 0xb9, 0x3a, 0xe6, 0xee, + 0x79, 0x1f, 0xba, 0xa9, 0x86, 0xa1, 0x9b, 0xcb, 0x23, 0xd0, 0x8d, 0x7f, 0x0e, 0x71, 0xe1, 0x4d, + 0x35, 0x0c, 0xde, 0x5c, 0x1e, 0x01, 0x6f, 0x3c, 0x49, 0x3e, 0x7c, 0xd3, 0x18, 0x84, 0x6f, 0x9e, + 0x1d, 0x03, 0xdf, 0x78, 0xc1, 0x4b, 0x0f, 0xc0, 0x79, 0xbd, 0x17, 0xe0, 0x94, 0x86, 0x01, 0x1c, + 0x6f, 0x44, 0x3a, 0x08, 0x67, 0x3d, 0x1c, 0xe1, 0x5c, 0x1d, 0x89, 0x70, 0xfc, 0x4e, 0xd2, 0x07, + 0x71, 0x56, 0x43, 0x21, 0xce, 0x95, 0x51, 0x10, 0xc7, 0x73, 0x92, 0x7e, 0x8c, 0xf3, 0x7a, 0x2f, + 0xc6, 0x29, 0x0d, 0xc3, 0x38, 0x5e, 0xe3, 0x1c, 0x90, 0x53, 0x0d, 0x03, 0x39, 0x97, 0x47, 0x80, + 0x1c, 0xaf, 0xf3, 0x7c, 0x28, 0x47, 0x1e, 0x8a, 0x72, 0x9e, 0x1f, 0x13, 0xe5, 0xf4, 0x38, 0xae, + 0x20, 0xcc, 0xa9, 0x86, 0xc1, 0x9c, 0xcb, 0x23, 0x60, 0x8e, 0xaf, 0xb2, 0x1e, 0xce, 0x59, 0x0f, + 0xc7, 0x39, 0x57, 0x47, 0xe2, 0x9c, 0x9e, 0xd1, 0xe4, 0x00, 0x9d, 0xd5, 0x50, 0xa0, 0x73, 0x65, + 0x14, 0xd0, 0xe9, 0x99, 0xf8, 0x78, 0x70, 0xf0, 0x2b, 0xe3, 0x23, 0x9d, 0x97, 0x8f, 0x8f, 0x74, + 0xdc, 0x6f, 0x46, 0x02, 0x75, 0xee, 0x25, 0x52, 0x4f, 0x17, 0x9e, 0x29, 0x7d, 0x7b, 0x12, 0x92, + 0x55, 0x37, 0xc7, 0xc5, 0xab, 0xa5, 0x70, 0x92, 0xcb, 0x7a, 0xd0, 0x0a, 0x19, 0xb1, 0xd4, 0xef, + 0x8d, 0xbe, 0x97, 0xad, 0xff, 0xce, 0x30, 0xce, 0x7a, 0x82, 0x33, 0xaf, 0xe8, 0x45, 0xc8, 0x75, + 0x2d, 0x6c, 0x4a, 0x1d, 0x53, 0x33, 0x4c, 0xcd, 0x66, 0xa7, 0x13, 0x84, 0xe5, 0xc2, 0x07, 0x87, + 0xf3, 0xd9, 0x4d, 0x0b, 0x9b, 0x1b, 0x9c, 0x2e, 0x66, 0xbb, 0xbe, 0x27, 0xe7, 0x67, 0x7a, 0x26, + 0xc7, 0xff, 0x99, 0x9e, 0x37, 0xa0, 0x60, 0x62, 0x59, 0x0d, 0x44, 0x20, 0xec, 0x16, 0x9c, 0x70, + 0x9b, 0xa1, 0x47, 0x73, 0x9c, 0x92, 0xf4, 0x36, 0x9c, 0x69, 0x33, 0x48, 0x44, 0x37, 0xe1, 0x74, + 0x5b, 0xde, 0xa7, 0xd9, 0x8c, 0x92, 0x13, 0xd4, 0xd1, 0x0c, 0xc5, 0x14, 0xcd, 0xbc, 0x45, 0x6d, + 0x79, 0x9f, 0xfe, 0xe6, 0x0f, 0x7b, 0x45, 0x7f, 0x08, 0xe0, 0x32, 0xe4, 0x55, 0xcd, 0xb2, 0x35, + 0x5d, 0x71, 0xae, 0x3b, 0x65, 0xf7, 0x8a, 0xe6, 0x1c, 0x2a, 0xbb, 0x76, 0xf4, 0x3a, 0xcc, 0xf0, + 0x6c, 0x72, 0xef, 0x57, 0x80, 0x28, 0x7c, 0x49, 0x91, 0x5a, 0x90, 0x17, 0xde, 0xcf, 0x3f, 0x95, + 0x61, 0xba, 0x29, 0xdb, 0x78, 0x4f, 0x3e, 0x90, 0x9c, 0xd3, 0x41, 0x19, 0x7a, 0x8b, 0xe0, 0x53, + 0x47, 0x87, 0xf3, 0xb9, 0xbb, 0xec, 0x55, 0xdf, 0x21, 0xa1, 0x5c, 0xd3, 0xf7, 0x42, 0x45, 0x57, + 0x61, 0x5a, 0xb6, 0x0e, 0x74, 0x85, 0xaa, 0x07, 0xeb, 0x56, 0xd7, 0xa2, 0x90, 0x22, 0x25, 0xe6, + 0x29, 0xb9, 0xec, 0x50, 0xd1, 0xcb, 0x70, 0x4e, 0xc5, 0x24, 0x46, 0x62, 0x81, 0x88, 0x6d, 0x18, + 0x92, 0xd1, 0x52, 0x25, 0x7a, 0xdb, 0x05, 0x85, 0x13, 0x29, 0xf1, 0x34, 0x2d, 0x40, 0x43, 0x90, + 0x86, 0x61, 0x3c, 0x68, 0xa9, 0x15, 0xf2, 0x92, 0xdd, 0x6c, 0x7a, 0x2f, 0x91, 0xca, 0x16, 0x72, + 0xa5, 0xdf, 0x12, 0x20, 0x1b, 0x38, 0x92, 0xf1, 0x6a, 0xcf, 0x16, 0xed, 0xb9, 0x70, 0x38, 0x34, + 0x28, 0xc7, 0x2b, 0xc5, 0xd5, 0xef, 0x64, 0xb8, 0xcd, 0x0f, 0x0e, 0xa7, 0xe9, 0xe2, 0x80, 0x93, + 0x1e, 0xe0, 0xb0, 0xbd, 0x92, 0xf8, 0x9d, 0xf7, 0xe6, 0x27, 0x4a, 0x3f, 0x89, 0x43, 0x2e, 0x78, + 0xf4, 0xa2, 0xd6, 0x53, 0xaf, 0x30, 0x77, 0x15, 0xe0, 0x58, 0x1c, 0x72, 0xdd, 0x5b, 0xda, 0xbb, + 0x7e, 0x9c, 0x55, 0x73, 0x61, 0xc8, 0x46, 0xb4, 0xbf, 0x9e, 0x1e, 0xe3, 0xdc, 0x77, 0x62, 0xee, + 0xb0, 0x5f, 0x84, 0x49, 0xa6, 0x76, 0x61, 0xe0, 0x51, 0x58, 0xaa, 0x79, 0x91, 0x15, 0x23, 0x6e, + 0xa2, 0x71, 0xa2, 0x3b, 0xbd, 0xbc, 0xdb, 0x10, 0x8e, 0xff, 0xeb, 0x58, 0xfc, 0x66, 0xb7, 0xc9, + 0xe3, 0xdd, 0xec, 0xc6, 0x36, 0x9a, 0x5b, 0x2d, 0xe6, 0x82, 0xd9, 0x40, 0x49, 0xf6, 0x9d, 0x37, + 0xa5, 0x22, 0xf8, 0x8f, 0xa7, 0x2d, 0x8a, 0xfc, 0xc7, 0xd3, 0x7c, 0x49, 0x87, 0x79, 0x57, 0x04, + 0x1d, 0x55, 0x2c, 0x35, 0x95, 0x77, 0xf5, 0xd7, 0x05, 0x28, 0xd0, 0x31, 0x74, 0x07, 0x63, 0x35, + 0x12, 0x2b, 0x74, 0xf2, 0x21, 0x63, 0xe3, 0x27, 0x9c, 0x07, 0xae, 0x83, 0x8f, 0x07, 0xaf, 0x83, + 0x2f, 0xbd, 0x27, 0x40, 0xde, 0xad, 0x21, 0xfb, 0x15, 0xa1, 0x21, 0x17, 0xb6, 0x9d, 0xec, 0x87, + 0x75, 0x9c, 0xb3, 0xe4, 0x63, 0xfd, 0x9c, 0x91, 0xff, 0x2c, 0x39, 0xfb, 0x11, 0x98, 0xaf, 0x09, + 0x30, 0xeb, 0x56, 0xb1, 0xec, 0x9d, 0x13, 0x3e, 0x41, 0xee, 0xbd, 0x48, 0x7f, 0x45, 0x8d, 0x80, + 0x76, 0x7a, 0x88, 0x7f, 0x2c, 0xf3, 0x44, 0x3c, 0xa1, 0x02, 0xf8, 0x62, 0x80, 0xda, 0xa8, 0xd3, + 0xdf, 0x57, 0x63, 0x7f, 0x5b, 0xa5, 0x3b, 0x3e, 0x05, 0xd2, 0x91, 0x40, 0xb4, 0x34, 0xd6, 0x90, + 0x71, 0xb4, 0x44, 0x0b, 0x97, 0xbe, 0xe7, 0xef, 0x89, 0xca, 0x2e, 0x09, 0x02, 0x6f, 0x43, 0x7c, + 0x57, 0x6e, 0x0d, 0xcb, 0x27, 0x09, 0xf4, 0x9c, 0x48, 0x4a, 0xa3, 0x3b, 0x81, 0xe3, 0xd5, 0xb1, + 0xc1, 0x01, 0x4b, 0xbf, 0x4a, 0x03, 0xc7, 0xb0, 0x5f, 0x72, 0x5a, 0x11, 0x1f, 0xfd, 0x79, 0xbf, + 0x07, 0x78, 0x25, 0xf1, 0xfe, 0x7b, 0xf3, 0xc2, 0xf5, 0x3a, 0xcc, 0x86, 0x4c, 0x6f, 0x28, 0x0f, + 0xe0, 0xbb, 0x24, 0x9e, 0xff, 0x88, 0xdb, 0xd2, 0x8a, 0xb4, 0xb9, 0x5e, 0x7e, 0xb0, 0xb6, 0x56, + 0x6b, 0x34, 0x2a, 0x2b, 0x05, 0x01, 0x15, 0x20, 0x1b, 0xb8, 0x62, 0x3e, 0xc6, 0x7e, 0xd6, 0xed, + 0xfa, 0xcf, 0x00, 0x78, 0x3f, 0x33, 0x41, 0x64, 0xad, 0x56, 0xde, 0x92, 0x1e, 0x2e, 0xdd, 0xdf, + 0xac, 0xd4, 0x0b, 0x13, 0x08, 0x41, 0x7e, 0x79, 0xa9, 0x51, 0xae, 0x4a, 0x62, 0xa5, 0xbe, 0xf1, + 0x60, 0xbd, 0x5e, 0x71, 0x7e, 0x0e, 0xee, 0xfa, 0x0a, 0x64, 0xfd, 0x07, 0xd1, 0xd1, 0x2c, 0x4c, + 0x97, 0xab, 0x95, 0xf2, 0xaa, 0xf4, 0xb0, 0xb6, 0x24, 0xbd, 0xb1, 0x59, 0xd9, 0xac, 0x14, 0x26, + 0x68, 0xd5, 0x28, 0xf1, 0xce, 0xe6, 0xfd, 0xfb, 0x05, 0x01, 0x4d, 0x43, 0x86, 0x3d, 0xd3, 0xeb, + 0xe8, 0x0b, 0xb1, 0xeb, 0x6b, 0x90, 0xf1, 0xdd, 0x5b, 0x47, 0x3e, 0xb7, 0xb1, 0x59, 0xaf, 0x4a, + 0x8d, 0xda, 0x5a, 0xa5, 0xde, 0x58, 0x5a, 0xdb, 0x60, 0x32, 0x28, 0x6d, 0x69, 0xf9, 0x81, 0xd8, + 0x28, 0x08, 0xee, 0x73, 0xe3, 0xc1, 0x66, 0xb9, 0xea, 0x34, 0xa3, 0x94, 0x48, 0xc5, 0x0b, 0xf1, + 0xeb, 0x8f, 0xe1, 0xec, 0x80, 0xd3, 0xd8, 0x28, 0x03, 0x53, 0x9b, 0x3a, 0xbd, 0xa9, 0xab, 0x30, + 0x81, 0x72, 0xbe, 0x03, 0xd9, 0x05, 0x01, 0xa5, 0xd8, 0x51, 0xdb, 0x42, 0x0c, 0x25, 0x21, 0x56, + 0xbf, 0x5d, 0x88, 0x93, 0x8a, 0xfa, 0xce, 0x33, 0x17, 0x12, 0x28, 0xcd, 0x0f, 0x7b, 0x16, 0x26, + 0x51, 0xd6, 0x3b, 0x6d, 0x59, 0x48, 0x5e, 0xbf, 0x00, 0xbe, 0x93, 0x65, 0x08, 0x20, 0x79, 0x5f, + 0xb6, 0xb1, 0x65, 0x17, 0x26, 0xd0, 0x14, 0xc4, 0x97, 0x5a, 0xad, 0x82, 0x70, 0xeb, 0x4f, 0x04, + 0x48, 0x39, 0x37, 0xab, 0xa3, 0xfb, 0x30, 0xc9, 0x90, 0xfc, 0xfc, 0xe0, 0x19, 0x89, 0x3a, 0xb5, + 0xb9, 0x85, 0x51, 0x53, 0x56, 0x69, 0x02, 0xbd, 0xc9, 0x7f, 0x4f, 0x92, 0x58, 0x0c, 0xba, 0x38, + 0xcc, 0x9e, 0x1c, 0xa9, 0xc3, 0x8d, 0x8e, 0x8c, 0x91, 0xd2, 0xc4, 0x0b, 0xc2, 0xf2, 0xb3, 0xef, + 0xff, 0xe8, 0xfc, 0xc4, 0xfb, 0x47, 0xe7, 0x85, 0xef, 0x1f, 0x9d, 0x17, 0x7e, 0x78, 0x74, 0x5e, + 0xf8, 0xe7, 0xa3, 0xf3, 0xc2, 0x6f, 0xfc, 0xf8, 0xfc, 0xc4, 0xf7, 0x7f, 0x7c, 0x7e, 0xe2, 0x87, + 0x3f, 0x3e, 0x3f, 0xf1, 0xf6, 0x14, 0xe7, 0xde, 0x4a, 0xd2, 0x9f, 0xb6, 0xbc, 0xfd, 0xdf, 0x01, + 0x00, 0x00, 0xff, 0xff, 0xc5, 0xcf, 0x9c, 0xb5, 0xdf, 0x73, 0x00, 0x00, } diff --git a/pkg/roachpb/api.proto b/pkg/roachpb/api.proto index b2f50d7b07c8..be68debec106 100644 --- a/pkg/roachpb/api.proto +++ b/pkg/roachpb/api.proto @@ -1324,7 +1324,16 @@ message ExportRequest { // set, files will be written to the store that matches the most specific // locality KV in the map. map storage_by_locality_kv = 8 [(gogoproto.customname) = "StorageByLocalityKV"]; + FileEncryptionOptions encryption = 9; + + // TargetFileSize is the byte size target for individual files in the + // response. If the MVCCFilter is Latest, the returned files will only be + // larger than this value if an individual KV pair is larger than this value. + // If the MVCCFilter is All then the file may exceed this value by at most the + // size of all versions of a single key. If TargetFileSize is non-positive + // then there is no limit. + int64 target_file_size = 10; } message BulkOpSummary { From 08edafa8946087fe42a56d05d12b314779f6656d Mon Sep 17 00:00:00 2001 From: Andrew Werner Date: Wed, 29 Jan 2020 09:44:00 -0500 Subject: [PATCH 2/2] storageccl: add setting to control export file size and paginate export This commit adopts the API change in #44440 and the previous commit. It adds a hidden cluster setting to control the target size. There's not a ton of testing but there's some. I'm omitting a release note because the setting is hidden. Release note: None. --- pkg/ccl/backupccl/backup.go | 2 + pkg/ccl/storageccl/export.go | 116 ++++++++++++++++++------------ pkg/ccl/storageccl/export_test.go | 91 +++++++++++++++++++++-- 3 files changed, 160 insertions(+), 49 deletions(-) diff --git a/pkg/ccl/backupccl/backup.go b/pkg/ccl/backupccl/backup.go index b7ade4f9341f..c7bfdd3193ad 100644 --- a/pkg/ccl/backupccl/backup.go +++ b/pkg/ccl/backupccl/backup.go @@ -882,6 +882,7 @@ func backup( // // TODO(dan): See if there's some better solution than rate-limiting #14798. maxConcurrentExports := clusterNodeCount(gossip) * int(storage.ExportRequestsLimit.Get(&settings.SV)) * 10 + targetFileSize := storageccl.ExportRequestTargetFileSize.Get(&settings.SV) exportsSem := make(chan struct{}, maxConcurrentExports) g := ctxgroup.WithContext(ctx) @@ -922,6 +923,7 @@ func backup( EnableTimeBoundIteratorOptimization: useTBI.Get(&settings.SV), MVCCFilter: roachpb.MVCCFilter(backupDesc.MVCCFilter), Encryption: encryption, + TargetFileSize: targetFileSize, } rawRes, pErr := client.SendWrappedWith(ctx, db.NonTransactionalSender(), header, req) if pErr != nil { diff --git a/pkg/ccl/storageccl/export.go b/pkg/ccl/storageccl/export.go index fdd406b888c3..1a3bda7b926b 100644 --- a/pkg/ccl/storageccl/export.go +++ b/pkg/ccl/storageccl/export.go @@ -16,6 +16,7 @@ import ( "github.com/cockroachdb/cockroach/pkg/keys" "github.com/cockroachdb/cockroach/pkg/roachpb" + "github.com/cockroachdb/cockroach/pkg/settings" "github.com/cockroachdb/cockroach/pkg/sql/sem/builtins" "github.com/cockroachdb/cockroach/pkg/storage/batcheval" "github.com/cockroachdb/cockroach/pkg/storage/batcheval/result" @@ -24,12 +25,31 @@ import ( "github.com/cockroachdb/cockroach/pkg/storage/spanset" "github.com/cockroachdb/cockroach/pkg/util/log" "github.com/cockroachdb/cockroach/pkg/util/tracing" - crdberrors "github.com/cockroachdb/errors" "github.com/pkg/errors" ) +// ExportRequestTargetFileSize controls the target file size for SSTs created +// during backups. +var ExportRequestTargetFileSize = settings.RegisterByteSizeSetting( + "kv.bulk_sst.target_size", + "target size for SSTs emitted from export requests", + 64<<20, /* 64 MiB */ +) + +// ExportRequestMaxAllowedFileSizeOverage controls the maximum size in excess of +// the target file size which an exported SST may be. If this value is positive +// and an SST would exceed this size (due to large rows or large numbers of +// versions), then the export will fail. +var ExportRequestMaxAllowedFileSizeOverage = settings.RegisterByteSizeSetting( + "kv.bulk_sst.max_allowed_overage", + "if positive, allowed size in excess of target size for SSTs from export requests", + 64<<20, /* 64 MiB */ +) + func init() { batcheval.RegisterReadOnlyCommand(roachpb.Export, declareKeysExport, evalExport) + ExportRequestTargetFileSize.SetVisibility(settings.Reserved) + ExportRequestMaxAllowedFileSizeOverage.SetVisibility(settings.Reserved) } func declareKeysExport( @@ -131,60 +151,68 @@ func evalExport( } e := spanset.GetDBEngine(batch, roachpb.Span{Key: args.Key, EndKey: args.EndKey}) - // TODO(ajwerner): Add a constant or internal cluster setting to control the - // target size for files and then paginate the actual export. The external - // API may need to be modified to deal with the case where ReturnSST is true. - const targetSize = 0 // unlimited - const maxSize = 0 // unlimited - data, summary, resume, err := e.ExportToSst(args.Key, args.EndKey, - args.StartTime, h.Timestamp, exportAllRevisions, targetSize, maxSize, io) - if resume != nil { - return result.Result{}, crdberrors.AssertionFailedf("expected nil resume key with unlimited target size") - } - if err != nil { - return result.Result{}, err - } - - if summary.DataSize == 0 { - reply.Files = []roachpb.ExportResponse_File{} - return result.Result{}, nil - } - - var checksum []byte - if !args.OmitChecksum { - // Compute the checksum before we upload and remove the local file. - checksum, err = SHA512ChecksumData(data) + targetSize := uint64(args.TargetFileSize) + var maxSize uint64 + allowedOverage := ExportRequestMaxAllowedFileSizeOverage.Get(&cArgs.EvalCtx.ClusterSettings().SV) + if targetSize > 0 && allowedOverage > 0 { + maxSize = targetSize + uint64(allowedOverage) + } + for start := args.Key; start != nil; { + data, summary, resume, err := e.ExportToSst(start, args.EndKey, args.StartTime, + h.Timestamp, exportAllRevisions, targetSize, maxSize, io) if err != nil { return result.Result{}, err } - } - if args.Encryption != nil { - data, err = EncryptFile(data, args.Encryption.Key) - if err != nil { - return result.Result{}, err + // NB: This should only happen on the first page of results. If there were + // more data to be read that lead to pagination then we'd see it in this + // page. Break out of the loop because there must be no data to export. + if summary.DataSize == 0 { + break } - } - exported := roachpb.ExportResponse_File{ - Span: args.Span(), - Exported: summary, - Sha512: checksum, - LocalityKV: localityKV, - } + var checksum []byte + if !args.OmitChecksum { + // Compute the checksum before we upload and remove the local file. + checksum, err = SHA512ChecksumData(data) + if err != nil { + return result.Result{}, err + } + } - if exportStore != nil { - exported.Path = fmt.Sprintf("%d.sst", builtins.GenerateUniqueInt(cArgs.EvalCtx.NodeID())) - if err := exportStore.WriteFile(ctx, exported.Path, bytes.NewReader(data)); err != nil { - return result.Result{}, err + if args.Encryption != nil { + data, err = EncryptFile(data, args.Encryption.Key) + if err != nil { + return result.Result{}, err + } } - } - if args.ReturnSST { - exported.SST = data + span := roachpb.Span{Key: start} + if resume != nil { + span.EndKey = resume + } else { + span.EndKey = args.EndKey + } + exported := roachpb.ExportResponse_File{ + Span: span, + Exported: summary, + Sha512: checksum, + LocalityKV: localityKV, + } + + if exportStore != nil { + exported.Path = fmt.Sprintf("%d.sst", builtins.GenerateUniqueInt(cArgs.EvalCtx.NodeID())) + if err := exportStore.WriteFile(ctx, exported.Path, bytes.NewReader(data)); err != nil { + return result.Result{}, err + } + } + if args.ReturnSST { + exported.SST = data + } + reply.Files = append(reply.Files, exported) + start = resume } - reply.Files = []roachpb.ExportResponse_File{exported} return result.Result{}, nil } diff --git a/pkg/ccl/storageccl/export_test.go b/pkg/ccl/storageccl/export_test.go index 4dcb92076cad..0965aeedc179 100644 --- a/pkg/ccl/storageccl/export_test.go +++ b/pkg/ccl/storageccl/export_test.go @@ -44,9 +44,9 @@ func TestExportCmd(t *testing.T) { defer tc.Stopper().Stop(ctx) kvDB := tc.Server(0).DB() - exportAndSlurpOne := func( + export := func( t *testing.T, start hlc.Timestamp, mvccFilter roachpb.MVCCFilter, - ) ([]string, []engine.MVCCKeyValue) { + ) (roachpb.Response, *roachpb.Error) { req := &roachpb.ExportRequest{ RequestHeader: roachpb.RequestHeader{Key: keys.UserTableDataMin, EndKey: keys.MaxKey}, StartTime: start, @@ -54,10 +54,17 @@ func TestExportCmd(t *testing.T) { Provider: roachpb.ExternalStorageProvider_LocalFile, LocalFile: roachpb.ExternalStorage_LocalFilePath{Path: "/foo"}, }, - MVCCFilter: mvccFilter, - ReturnSST: true, + MVCCFilter: mvccFilter, + ReturnSST: true, + TargetFileSize: ExportRequestTargetFileSize.Get(&tc.Server(0).ClusterSettings().SV), } - res, pErr := client.SendWrapped(ctx, kvDB.NonTransactionalSender(), req) + return client.SendWrapped(ctx, kvDB.NonTransactionalSender(), req) + } + + exportAndSlurpOne := func( + t *testing.T, start hlc.Timestamp, mvccFilter roachpb.MVCCFilter, + ) ([]string, []engine.MVCCKeyValue) { + res, pErr := export(t, start, mvccFilter) if pErr != nil { t.Fatalf("%+v", pErr) } @@ -127,6 +134,30 @@ func TestExportCmd(t *testing.T) { sqlDB := sqlutils.MakeSQLRunner(tc.Conns[0]) sqlDB.Exec(t, `CREATE DATABASE mvcclatest`) sqlDB.Exec(t, `CREATE TABLE mvcclatest.export (id INT PRIMARY KEY, value INT)`) + const ( + targetSizeSetting = "kv.bulk_sst.target_size" + maxOverageSetting = "kv.bulk_sst.max_allowed_overage" + ) + var ( + setSetting = func(t *testing.T, variable, val string) { + sqlDB.Exec(t, "SET CLUSTER SETTING "+variable+" = "+val) + } + resetSetting = func(t *testing.T, variable string) { + setSetting(t, variable, "DEFAULT") + } + setExportTargetSize = func(t *testing.T, val string) { + setSetting(t, targetSizeSetting, val) + } + resetExportTargetSize = func(t *testing.T) { + resetSetting(t, targetSizeSetting) + } + setMaxOverage = func(t *testing.T, val string) { + setSetting(t, maxOverageSetting, val) + } + resetMaxOverage = func(t *testing.T) { + resetSetting(t, maxOverageSetting) + } + ) var res1 ExportAndSlurpResult t.Run("ts1", func(t *testing.T) { @@ -137,6 +168,10 @@ func TestExportCmd(t *testing.T) { sqlDB.Exec(t, `DELETE from mvcclatest.export WHERE id = 4`) res1 = exportAndSlurp(t, hlc.Timestamp{}) expect(t, res1, 1, 2, 1, 4) + defer resetExportTargetSize(t) + setExportTargetSize(t, "'1b'") + res1 = exportAndSlurp(t, hlc.Timestamp{}) + expect(t, res1, 2, 2, 3, 4) }) var res2 ExportAndSlurpResult @@ -175,6 +210,52 @@ func TestExportCmd(t *testing.T) { sqlDB.Exec(t, `ALTER TABLE mvcclatest.export SPLIT AT VALUES (2)`) res5 = exportAndSlurp(t, hlc.Timestamp{}) expect(t, res5, 2, 2, 2, 7) + + // Re-run the test with a 1b target size which will lead to more files. + defer resetExportTargetSize(t) + setExportTargetSize(t, "'1b'") + res5 = exportAndSlurp(t, hlc.Timestamp{}) + expect(t, res5, 2, 2, 4, 7) + }) + + var res6 ExportAndSlurpResult + t.Run("ts6", func(t *testing.T) { + // Add 100 rows to the table. + sqlDB.Exec(t, `WITH RECURSIVE + t (id, value) + AS (VALUES (1, 1) UNION ALL SELECT id + 1, value FROM t WHERE id < 100) +UPSERT +INTO + mvcclatest.export +(SELECT id, value FROM t);`) + + // Run the test with the default target size which will lead to 2 files due + // to the above split. + res6 = exportAndSlurp(t, res5.end) + expect(t, res6, 2, 100, 2, 100) + + // Re-run the test with a 1b target size which will lead to 100 files. + defer resetExportTargetSize(t) + setExportTargetSize(t, "'1b'") + res6 = exportAndSlurp(t, res5.end) + expect(t, res6, 100, 100, 100, 100) + + // Set the MaxOverage to 1b and ensure that we get errors due to + // the max overage being exceeded. + defer resetMaxOverage(t) + setMaxOverage(t, "'1b'") + const expectedError = `export size \(11 bytes\) exceeds max size \(2 bytes\)` + _, pErr := export(t, res5.end, roachpb.MVCCFilter_Latest) + require.Regexp(t, expectedError, pErr) + _, pErr = export(t, res5.end, roachpb.MVCCFilter_All) + require.Regexp(t, expectedError, pErr) + + // Disable the TargetSize and ensure that we don't get any errors + // to the max overage being exceeded. + setExportTargetSize(t, "'0b'") + res6 = exportAndSlurp(t, res5.end) + expect(t, res6, 2, 100, 2, 100) + }) }