functional/rpcpb: clean up Checker

Signed-off-by: Gyuho Lee <gyuhox@gmail.com>
This commit is contained in:
Gyuho Lee
2018-04-11 19:08:13 -07:00
parent 448e0fc481
commit 2fc3eb0c56
2 changed files with 336 additions and 276 deletions

View File

@@ -507,18 +507,18 @@ func (x Case) String() string {
}
func (Case) EnumDescriptor() ([]byte, []int) { return fileDescriptorRpc, []int{1} }
type StressType int32
type Stresser int32
const (
StressType_KV StressType = 0
StressType_LEASE StressType = 1
StressType_ELECTION_RUNNER StressType = 2
StressType_WATCH_RUNNER StressType = 3
StressType_LOCK_RACER_RUNNER StressType = 4
StressType_LEASE_RUNNER StressType = 5
Stresser_KV Stresser = 0
Stresser_LEASE Stresser = 1
Stresser_ELECTION_RUNNER Stresser = 2
Stresser_WATCH_RUNNER Stresser = 3
Stresser_LOCK_RACER_RUNNER Stresser = 4
Stresser_LEASE_RUNNER Stresser = 5
)
var StressType_name = map[int32]string{
var Stresser_name = map[int32]string{
0: "KV",
1: "LEASE",
2: "ELECTION_RUNNER",
@@ -526,7 +526,7 @@ var StressType_name = map[int32]string{
4: "LOCK_RACER_RUNNER",
5: "LEASE_RUNNER",
}
var StressType_value = map[string]int32{
var Stresser_value = map[string]int32{
"KV": 0,
"LEASE": 1,
"ELECTION_RUNNER": 2,
@@ -535,10 +535,37 @@ var StressType_value = map[string]int32{
"LEASE_RUNNER": 5,
}
func (x StressType) String() string {
return proto.EnumName(StressType_name, int32(x))
func (x Stresser) String() string {
return proto.EnumName(Stresser_name, int32(x))
}
func (StressType) EnumDescriptor() ([]byte, []int) { return fileDescriptorRpc, []int{2} }
func (Stresser) EnumDescriptor() ([]byte, []int) { return fileDescriptorRpc, []int{2} }
type Checker int32
const (
Checker_KV_HASH Checker = 0
Checker_LEASE_EXPIRE Checker = 1
Checker_RUNNER Checker = 2
Checker_NO_CHECK Checker = 3
)
var Checker_name = map[int32]string{
0: "KV_HASH",
1: "LEASE_EXPIRE",
2: "RUNNER",
3: "NO_CHECK",
}
var Checker_value = map[string]int32{
"KV_HASH": 0,
"LEASE_EXPIRE": 1,
"RUNNER": 2,
"NO_CHECK": 3,
}
func (x Checker) String() string {
return proto.EnumName(Checker_name, int32(x))
}
func (Checker) EnumDescriptor() ([]byte, []int) { return fileDescriptorRpc, []int{3} }
type Request struct {
Operation Operation `protobuf:"varint,1,opt,name=Operation,proto3,enum=rpcpb.Operation" json:"Operation,omitempty"`
@@ -655,10 +682,8 @@ type Tester struct {
RoundLimit int32 `protobuf:"varint,21,opt,name=RoundLimit,proto3" json:"RoundLimit,omitempty" yaml:"round-limit"`
// ExitOnCaseFail is true, then exit tester on first failure.
ExitOnCaseFail bool `protobuf:"varint,22,opt,name=ExitOnCaseFail,proto3" json:"ExitOnCaseFail,omitempty" yaml:"exit-on-failure"`
// ConsistencyCheck is true to check consistency (revision, hash).
ConsistencyCheck bool `protobuf:"varint,23,opt,name=ConsistencyCheck,proto3" json:"ConsistencyCheck,omitempty" yaml:"consistency-check"`
// EnablePprof is true to enable profiler.
EnablePprof bool `protobuf:"varint,24,opt,name=EnablePprof,proto3" json:"EnablePprof,omitempty" yaml:"enable-pprof"`
EnablePprof bool `protobuf:"varint,23,opt,name=EnablePprof,proto3" json:"EnablePprof,omitempty" yaml:"enable-pprof"`
// CaseDelayMs is the delay duration after failure is injected.
// Useful when triggering snapshot or no-op failure cases.
CaseDelayMs uint32 `protobuf:"varint,31,opt,name=CaseDelayMs,proto3" json:"CaseDelayMs,omitempty" yaml:"case-delay-ms"`
@@ -674,26 +699,30 @@ type Tester struct {
RunnerExecPath string `protobuf:"bytes,41,opt,name=RunnerExecPath,proto3" json:"RunnerExecPath,omitempty" yaml:"runner-exec-path"`
// ExternalExecPath is a path of script for enabling/disabling an external fault injector.
ExternalExecPath string `protobuf:"bytes,42,opt,name=ExternalExecPath,proto3" json:"ExternalExecPath,omitempty" yaml:"external-exec-path"`
// StressTypes is the list of stresser names:
// keys, lease, nop, election-runner, watch-runner, lock-racer-runner, lease-runner.
StressTypes []string `protobuf:"bytes,101,rep,name=StressTypes" json:"StressTypes,omitempty" yaml:"stress-types"`
// Stressers is the list of stresser types:
// KV, LEASE, ELECTION_RUNNER, WATCH_RUNNER, LOCK_RACER_RUNNER, LEASE_RUNNER.
Stressers []string `protobuf:"bytes,101,rep,name=Stressers" json:"Stressers,omitempty" yaml:"stressers"`
// Checkers is the list of consistency checker types:
// KV_HASH, LEASE_EXPIRE, NO_CHECK, RUNNER.
// Leave empty to skip consistency checks.
Checkers []string `protobuf:"bytes,102,rep,name=Checkers" json:"Checkers,omitempty" yaml:"checkers"`
// StressKeySize is the size of each small key written into etcd.
StressKeySize int32 `protobuf:"varint,102,opt,name=StressKeySize,proto3" json:"StressKeySize,omitempty" yaml:"stress-key-size"`
StressKeySize int32 `protobuf:"varint,201,opt,name=StressKeySize,proto3" json:"StressKeySize,omitempty" yaml:"stress-key-size"`
// StressKeySizeLarge is the size of each large key written into etcd.
StressKeySizeLarge int32 `protobuf:"varint,103,opt,name=StressKeySizeLarge,proto3" json:"StressKeySizeLarge,omitempty" yaml:"stress-key-size-large"`
StressKeySizeLarge int32 `protobuf:"varint,202,opt,name=StressKeySizeLarge,proto3" json:"StressKeySizeLarge,omitempty" yaml:"stress-key-size-large"`
// StressKeySuffixRange is the count of key range written into etcd.
// Stress keys are created with "fmt.Sprintf("foo%016x", rand.Intn(keySuffixRange)".
StressKeySuffixRange int32 `protobuf:"varint,104,opt,name=StressKeySuffixRange,proto3" json:"StressKeySuffixRange,omitempty" yaml:"stress-key-suffix-range"`
StressKeySuffixRange int32 `protobuf:"varint,203,opt,name=StressKeySuffixRange,proto3" json:"StressKeySuffixRange,omitempty" yaml:"stress-key-suffix-range"`
// StressKeySuffixRangeTxn is the count of key range written into etcd txn (max 100).
// Stress keys are created with "fmt.Sprintf("/k%03d", i)".
StressKeySuffixRangeTxn int32 `protobuf:"varint,105,opt,name=StressKeySuffixRangeTxn,proto3" json:"StressKeySuffixRangeTxn,omitempty" yaml:"stress-key-suffix-range-txn"`
StressKeySuffixRangeTxn int32 `protobuf:"varint,204,opt,name=StressKeySuffixRangeTxn,proto3" json:"StressKeySuffixRangeTxn,omitempty" yaml:"stress-key-suffix-range-txn"`
// StressKeyTxnOps is the number of operations per a transaction (max 64).
StressKeyTxnOps int32 `protobuf:"varint,106,opt,name=StressKeyTxnOps,proto3" json:"StressKeyTxnOps,omitempty" yaml:"stress-key-txn-ops"`
StressKeyTxnOps int32 `protobuf:"varint,205,opt,name=StressKeyTxnOps,proto3" json:"StressKeyTxnOps,omitempty" yaml:"stress-key-txn-ops"`
// StressClients is the number of concurrent stressing clients
// with "one" shared TCP connection.
StressClients int32 `protobuf:"varint,201,opt,name=StressClients,proto3" json:"StressClients,omitempty" yaml:"stress-clients"`
StressClients int32 `protobuf:"varint,301,opt,name=StressClients,proto3" json:"StressClients,omitempty" yaml:"stress-clients"`
// StressQPS is the maximum number of stresser requests per second.
StressQPS int32 `protobuf:"varint,202,opt,name=StressQPS,proto3" json:"StressQPS,omitempty" yaml:"stress-qps"`
StressQPS int32 `protobuf:"varint,302,opt,name=StressQPS,proto3" json:"StressQPS,omitempty" yaml:"stress-qps"`
}
func (m *Tester) Reset() { *m = Tester{} }
@@ -748,7 +777,8 @@ func init() {
proto.RegisterType((*Etcd)(nil), "rpcpb.Etcd")
proto.RegisterEnum("rpcpb.Operation", Operation_name, Operation_value)
proto.RegisterEnum("rpcpb.Case", Case_name, Case_value)
proto.RegisterEnum("rpcpb.StressType", StressType_name, StressType_value)
proto.RegisterEnum("rpcpb.Stresser", Stresser_name, Stresser_value)
proto.RegisterEnum("rpcpb.Checker", Checker_name, Checker_value)
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -1321,20 +1351,8 @@ func (m *Tester) MarshalTo(dAtA []byte) (int, error) {
}
i++
}
if m.ConsistencyCheck {
dAtA[i] = 0xb8
i++
dAtA[i] = 0x1
i++
if m.ConsistencyCheck {
dAtA[i] = 1
} else {
dAtA[i] = 0
}
i++
}
if m.EnablePprof {
dAtA[i] = 0xc0
dAtA[i] = 0xb8
i++
dAtA[i] = 0x1
i++
@@ -1414,8 +1432,8 @@ func (m *Tester) MarshalTo(dAtA []byte) (int, error) {
i = encodeVarintRpc(dAtA, i, uint64(len(m.ExternalExecPath)))
i += copy(dAtA[i:], m.ExternalExecPath)
}
if len(m.StressTypes) > 0 {
for _, s := range m.StressTypes {
if len(m.Stressers) > 0 {
for _, s := range m.Stressers {
dAtA[i] = 0xaa
i++
dAtA[i] = 0x6
@@ -1431,52 +1449,69 @@ func (m *Tester) MarshalTo(dAtA []byte) (int, error) {
i += copy(dAtA[i:], s)
}
}
if len(m.Checkers) > 0 {
for _, s := range m.Checkers {
dAtA[i] = 0xb2
i++
dAtA[i] = 0x6
i++
l = len(s)
for l >= 1<<7 {
dAtA[i] = uint8(uint64(l)&0x7f | 0x80)
l >>= 7
i++
}
dAtA[i] = uint8(l)
i++
i += copy(dAtA[i:], s)
}
}
if m.StressKeySize != 0 {
dAtA[i] = 0xb0
dAtA[i] = 0xc8
i++
dAtA[i] = 0x6
dAtA[i] = 0xc
i++
i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySize))
}
if m.StressKeySizeLarge != 0 {
dAtA[i] = 0xb8
dAtA[i] = 0xd0
i++
dAtA[i] = 0x6
dAtA[i] = 0xc
i++
i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySizeLarge))
}
if m.StressKeySuffixRange != 0 {
dAtA[i] = 0xc0
dAtA[i] = 0xd8
i++
dAtA[i] = 0x6
dAtA[i] = 0xc
i++
i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySuffixRange))
}
if m.StressKeySuffixRangeTxn != 0 {
dAtA[i] = 0xc8
dAtA[i] = 0xe0
i++
dAtA[i] = 0x6
dAtA[i] = 0xc
i++
i = encodeVarintRpc(dAtA, i, uint64(m.StressKeySuffixRangeTxn))
}
if m.StressKeyTxnOps != 0 {
dAtA[i] = 0xd0
dAtA[i] = 0xe8
i++
dAtA[i] = 0x6
dAtA[i] = 0xc
i++
i = encodeVarintRpc(dAtA, i, uint64(m.StressKeyTxnOps))
}
if m.StressClients != 0 {
dAtA[i] = 0xc8
dAtA[i] = 0xe8
i++
dAtA[i] = 0xc
dAtA[i] = 0x12
i++
i = encodeVarintRpc(dAtA, i, uint64(m.StressClients))
}
if m.StressQPS != 0 {
dAtA[i] = 0xd0
dAtA[i] = 0xf0
i++
dAtA[i] = 0xc
dAtA[i] = 0x12
i++
i = encodeVarintRpc(dAtA, i, uint64(m.StressQPS))
}
@@ -1973,9 +2008,6 @@ func (m *Tester) Size() (n int) {
if m.ExitOnCaseFail {
n += 3
}
if m.ConsistencyCheck {
n += 3
}
if m.EnablePprof {
n += 3
}
@@ -2005,8 +2037,14 @@ func (m *Tester) Size() (n int) {
if l > 0 {
n += 2 + l + sovRpc(uint64(l))
}
if len(m.StressTypes) > 0 {
for _, s := range m.StressTypes {
if len(m.Stressers) > 0 {
for _, s := range m.Stressers {
l = len(s)
n += 2 + l + sovRpc(uint64(l))
}
}
if len(m.Checkers) > 0 {
for _, s := range m.Checkers {
l = len(s)
n += 2 + l + sovRpc(uint64(l))
}
@@ -3690,26 +3728,6 @@ func (m *Tester) Unmarshal(dAtA []byte) error {
}
m.ExitOnCaseFail = bool(v != 0)
case 23:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field ConsistencyCheck", wireType)
}
var v int
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowRpc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
v |= (int(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
m.ConsistencyCheck = bool(v != 0)
case 24:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field EnablePprof", wireType)
}
@@ -3886,7 +3904,7 @@ func (m *Tester) Unmarshal(dAtA []byte) error {
iNdEx = postIndex
case 101:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field StressTypes", wireType)
return fmt.Errorf("proto: wrong wireType = %d for field Stressers", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
@@ -3911,9 +3929,38 @@ func (m *Tester) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.StressTypes = append(m.StressTypes, string(dAtA[iNdEx:postIndex]))
m.Stressers = append(m.Stressers, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
case 102:
if wireType != 2 {
return fmt.Errorf("proto: wrong wireType = %d for field Checkers", wireType)
}
var stringLen uint64
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowRpc
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
stringLen |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
intStringLen := int(stringLen)
if intStringLen < 0 {
return ErrInvalidLengthRpc
}
postIndex := iNdEx + intStringLen
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Checkers = append(m.Checkers, string(dAtA[iNdEx:postIndex]))
iNdEx = postIndex
case 201:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field StressKeySize", wireType)
}
@@ -3932,7 +3979,7 @@ func (m *Tester) Unmarshal(dAtA []byte) error {
break
}
}
case 103:
case 202:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field StressKeySizeLarge", wireType)
}
@@ -3951,7 +3998,7 @@ func (m *Tester) Unmarshal(dAtA []byte) error {
break
}
}
case 104:
case 203:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field StressKeySuffixRange", wireType)
}
@@ -3970,7 +4017,7 @@ func (m *Tester) Unmarshal(dAtA []byte) error {
break
}
}
case 105:
case 204:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field StressKeySuffixRangeTxn", wireType)
}
@@ -3989,7 +4036,7 @@ func (m *Tester) Unmarshal(dAtA []byte) error {
break
}
}
case 106:
case 205:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field StressKeyTxnOps", wireType)
}
@@ -4008,7 +4055,7 @@ func (m *Tester) Unmarshal(dAtA []byte) error {
break
}
}
case 201:
case 301:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field StressClients", wireType)
}
@@ -4027,7 +4074,7 @@ func (m *Tester) Unmarshal(dAtA []byte) error {
break
}
}
case 202:
case 302:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field StressQPS", wireType)
}
@@ -4885,178 +4932,181 @@ var (
func init() { proto.RegisterFile("rpcpb/rpc.proto", fileDescriptorRpc) }
var fileDescriptorRpc = []byte{
// 2765 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x59, 0x4b, 0x77, 0xdb, 0xc6,
0x15, 0x36, 0x44, 0xc9, 0xb6, 0x46, 0x2f, 0x6a, 0x64, 0xd9, 0xf0, 0x4b, 0x90, 0xe1, 0x38, 0x95,
0x95, 0xc0, 0x4e, 0xed, 0x9c, 0x3c, 0x9c, 0x26, 0x0e, 0x48, 0x41, 0x16, 0x2b, 0x88, 0xa4, 0x87,
0x90, 0x9d, 0xac, 0x58, 0x88, 0x1c, 0x49, 0xa8, 0x29, 0x80, 0x01, 0x86, 0x8a, 0x94, 0x3f, 0xd0,
0x6d, 0xdf, 0xa7, 0x3d, 0xa7, 0x3f, 0xa1, 0x69, 0x7f, 0x41, 0xf7, 0x4e, 0xfa, 0x4a, 0xdb, 0x55,
0xdb, 0x73, 0x78, 0x5a, 0x77, 0xd3, 0x55, 0x17, 0x3c, 0x7d, 0xa5, 0xab, 0x9e, 0x79, 0x40, 0x1c,
0x00, 0xa4, 0xa4, 0x95, 0x3d, 0xf7, 0x7e, 0xdf, 0x87, 0x3b, 0xf7, 0x0e, 0xe6, 0x5e, 0x50, 0x60,
0x26, 0x6c, 0x37, 0xda, 0x5b, 0x77, 0xc3, 0x76, 0xe3, 0x4e, 0x3b, 0x0c, 0x48, 0x00, 0xc7, 0x98,
0xe1, 0x8a, 0xb1, 0xe3, 0x91, 0xdd, 0xce, 0xd6, 0x9d, 0x46, 0xb0, 0x77, 0x77, 0x27, 0xd8, 0x09,
0xee, 0x32, 0xef, 0x56, 0x67, 0x9b, 0xad, 0xd8, 0x82, 0xfd, 0x8f, 0xb3, 0xf4, 0x6f, 0x29, 0xe0,
0x1c, 0xc2, 0x1f, 0x75, 0x70, 0x44, 0xe0, 0x1d, 0x30, 0x5e, 0x69, 0xe3, 0xd0, 0x25, 0x5e, 0xe0,
0xab, 0xca, 0xa2, 0xb2, 0x34, 0x7d, 0x2f, 0x7f, 0x87, 0xa9, 0xde, 0x39, 0xb2, 0xa3, 0x3e, 0x04,
0xde, 0x02, 0x67, 0x37, 0xf0, 0xde, 0x16, 0x0e, 0xd5, 0x91, 0x45, 0x65, 0x69, 0xe2, 0xde, 0x94,
0x00, 0x73, 0x23, 0x12, 0x4e, 0x0a, 0x73, 0x70, 0x44, 0x70, 0xa8, 0xe6, 0x12, 0x30, 0x6e, 0x44,
0xc2, 0xa9, 0xff, 0x7d, 0x04, 0x4c, 0xd6, 0x7c, 0xb7, 0x1d, 0xed, 0x06, 0xa4, 0xe4, 0x6f, 0x07,
0x70, 0x01, 0x00, 0xae, 0x50, 0x76, 0xf7, 0x30, 0x8b, 0x67, 0x1c, 0x49, 0x16, 0xb8, 0x0c, 0xf2,
0x7c, 0x55, 0x6c, 0x79, 0xd8, 0x27, 0x9b, 0xc8, 0x8e, 0xd4, 0x91, 0xc5, 0xdc, 0xd2, 0x38, 0xca,
0xd8, 0xa1, 0xde, 0xd7, 0xae, 0xba, 0x64, 0x97, 0x45, 0x32, 0x8e, 0x12, 0x36, 0xaa, 0x17, 0xaf,
0x57, 0xbd, 0x16, 0xae, 0x79, 0x9f, 0x60, 0x75, 0x94, 0xe1, 0x32, 0x76, 0xf8, 0x2a, 0x98, 0x8d,
0x6d, 0x4e, 0x40, 0xdc, 0x16, 0x03, 0x8f, 0x31, 0x70, 0xd6, 0x21, 0x2b, 0x33, 0xe3, 0x3a, 0x3e,
0x54, 0xcf, 0x2e, 0x2a, 0x4b, 0x39, 0x94, 0xb1, 0xcb, 0x91, 0xae, 0xb9, 0xd1, 0xae, 0x7a, 0x8e,
0xe1, 0x12, 0x36, 0x59, 0x0f, 0xe1, 0x7d, 0x2f, 0xa2, 0xf5, 0x3a, 0x9f, 0xd4, 0x8b, 0xed, 0x10,
0x82, 0x51, 0x27, 0x08, 0x9e, 0xa9, 0xe3, 0x2c, 0x38, 0xf6, 0x7f, 0xfd, 0x27, 0x0a, 0x38, 0x8f,
0x70, 0xd4, 0x0e, 0xfc, 0x08, 0x43, 0x15, 0x9c, 0xab, 0x75, 0x1a, 0x0d, 0x1c, 0x45, 0x2c, 0xc7,
0xe7, 0x51, 0xbc, 0x84, 0x17, 0xc1, 0xd9, 0x1a, 0x71, 0x49, 0x27, 0x62, 0xf5, 0x1d, 0x47, 0x62,
0x25, 0xd5, 0x3d, 0x77, 0x5c, 0xdd, 0xdf, 0x4c, 0xd6, 0x93, 0xe5, 0x72, 0xe2, 0xde, 0x9c, 0x00,
0xcb, 0x2e, 0x94, 0x00, 0xea, 0x7f, 0x9e, 0x8c, 0x1f, 0x00, 0xdf, 0x05, 0x93, 0x16, 0x69, 0x34,
0xad, 0x03, 0xdc, 0x60, 0x75, 0x63, 0xa7, 0xa0, 0x70, 0xb9, 0xd7, 0xd5, 0xe6, 0x0f, 0xdd, 0xbd,
0xd6, 0x03, 0x1d, 0x93, 0x46, 0xd3, 0xc0, 0x07, 0xb8, 0x61, 0xb4, 0x5d, 0xb2, 0xab, 0xa3, 0x04,
0x1c, 0xde, 0x07, 0xe3, 0xe6, 0x0e, 0xf6, 0x89, 0xd9, 0x6c, 0x86, 0xea, 0x04, 0xe3, 0xce, 0xf7,
0xba, 0xda, 0x2c, 0xe7, 0xba, 0xd4, 0x65, 0xb8, 0xcd, 0x66, 0xa8, 0xa3, 0x3e, 0x0e, 0xda, 0x60,
0x76, 0xd5, 0xf5, 0x5a, 0xed, 0xc0, 0xf3, 0xc9, 0x9a, 0xe3, 0x54, 0x19, 0x79, 0x92, 0x91, 0x17,
0x7a, 0x5d, 0xed, 0x0a, 0x27, 0x6f, 0xc7, 0x10, 0x63, 0x97, 0x90, 0xb6, 0x50, 0xc9, 0x12, 0xa1,
0x01, 0xce, 0x15, 0xdc, 0x08, 0xaf, 0x78, 0xa1, 0x8a, 0x99, 0xc6, 0x5c, 0xaf, 0xab, 0xcd, 0x70,
0x8d, 0x2d, 0x37, 0xc2, 0x46, 0xd3, 0x0b, 0x75, 0x14, 0x63, 0xe0, 0x03, 0x30, 0x41, 0x77, 0x60,
0x07, 0x3b, 0x6c, 0xbf, 0xdb, 0x8c, 0xa2, 0xf6, 0xba, 0xda, 0x05, 0x69, 0xbf, 0xad, 0x60, 0x47,
0x6c, 0x57, 0x06, 0xc3, 0x47, 0x60, 0x86, 0x2e, 0xf9, 0xb1, 0xaf, 0x86, 0xc1, 0xc1, 0xa1, 0xfa,
0x19, 0x2b, 0x69, 0xe1, 0x5a, 0xaf, 0xab, 0xa9, 0x92, 0x40, 0x83, 0x41, 0x8c, 0x36, 0xc5, 0xe8,
0x28, 0xcd, 0x82, 0x26, 0x98, 0xa2, 0xa6, 0x2a, 0xc6, 0x21, 0x97, 0xf9, 0x9c, 0xcb, 0x5c, 0xe9,
0x75, 0xb5, 0x8b, 0x92, 0x4c, 0x1b, 0xe3, 0x30, 0x16, 0x49, 0x32, 0x60, 0x15, 0xc0, 0xbe, 0xaa,
0xe5, 0x37, 0x59, 0x52, 0xd4, 0x4f, 0xd9, 0x41, 0x2a, 0x68, 0xbd, 0xae, 0x76, 0x35, 0x1b, 0x0e,
0x16, 0x30, 0x1d, 0x0d, 0xe0, 0xc2, 0xaf, 0x82, 0x51, 0x6a, 0x55, 0x7f, 0xc6, 0x2f, 0x9b, 0x09,
0x71, 0x8e, 0xa8, 0xad, 0x30, 0xd3, 0xeb, 0x6a, 0x13, 0x7d, 0x41, 0x1d, 0x31, 0x28, 0x2c, 0x80,
0x79, 0xfa, 0x6f, 0xc5, 0xef, 0xbf, 0x15, 0x11, 0x09, 0x42, 0xac, 0xfe, 0x3c, 0xab, 0x81, 0x06,
0x43, 0xe1, 0x0a, 0x98, 0xe6, 0x81, 0x14, 0x71, 0x48, 0x56, 0x5c, 0xe2, 0xaa, 0xdf, 0x61, 0x97,
0x47, 0xe1, 0x6a, 0xaf, 0xab, 0x5d, 0xe2, 0xcf, 0x14, 0xf1, 0x37, 0x70, 0x48, 0x8c, 0xa6, 0x4b,
0x5c, 0x1d, 0xa5, 0x38, 0x49, 0x15, 0x56, 0xd9, 0xef, 0x1e, 0xab, 0xc2, 0xab, 0x9b, 0xe2, 0xd0,
0xba, 0x70, 0xcb, 0x3a, 0x3e, 0x64, 0xa1, 0x7c, 0x8f, 0x8b, 0x48, 0x75, 0x11, 0x22, 0xcf, 0xf0,
0xa1, 0x88, 0x24, 0xc9, 0x48, 0x48, 0xb0, 0x38, 0xbe, 0x7f, 0x9c, 0x04, 0x0f, 0x23, 0xc9, 0x80,
0x0e, 0x98, 0xe3, 0x06, 0x27, 0xec, 0x44, 0x04, 0x37, 0x8b, 0x26, 0x8b, 0xe5, 0x07, 0x5c, 0xe8,
0x46, 0xaf, 0xab, 0x5d, 0x4f, 0x08, 0x11, 0x0e, 0x33, 0x1a, 0xae, 0x08, 0x69, 0x10, 0x7d, 0x80,
0x2a, 0x0b, 0xef, 0x87, 0xa7, 0x50, 0xe5, 0x51, 0x0e, 0xa2, 0xc3, 0xf7, 0xc0, 0x24, 0x3d, 0x93,
0x47, 0xb5, 0xfb, 0x57, 0x2e, 0x7d, 0x81, 0xb0, 0x33, 0x2c, 0x55, 0x2e, 0x81, 0x97, 0xf9, 0x2c,
0x9c, 0x7f, 0x1f, 0xc3, 0x17, 0x17, 0x90, 0x8c, 0x87, 0xef, 0x80, 0x09, 0xba, 0x8e, 0xeb, 0xf5,
0x9f, 0x5c, 0xfa, 0x7d, 0x66, 0xf4, 0x7e, 0xb5, 0x64, 0xb4, 0x44, 0x66, 0xcf, 0xfe, 0xef, 0x70,
0xb2, 0xb8, 0x0c, 0x24, 0x34, 0x2c, 0x83, 0x59, 0xba, 0x4c, 0xd6, 0xe8, 0xcb, 0x5c, 0xfa, 0xfd,
0x63, 0x12, 0x99, 0x0a, 0x65, 0xa9, 0x19, 0x3d, 0x16, 0xd2, 0xff, 0x4e, 0xd4, 0xe3, 0x91, 0x65,
0xa9, 0xf4, 0x66, 0x4f, 0x74, 0xe4, 0x3f, 0x8e, 0xa6, 0x77, 0x17, 0x09, 0x77, 0x9c, 0xd8, 0x44,
0xb3, 0x7e, 0x2b, 0xd5, 0x5c, 0xfe, 0x74, 0xea, 0xee, 0xf2, 0x8b, 0xc9, 0x78, 0x1e, 0xa1, 0x77,
0x33, 0xdd, 0x1b, 0xbd, 0x9b, 0x95, 0xf4, 0xdd, 0x4c, 0x13, 0x21, 0xee, 0x66, 0x81, 0x81, 0xaf,
0x82, 0x73, 0x65, 0x4c, 0x3e, 0x0e, 0xc2, 0x67, 0xbc, 0x21, 0x16, 0x60, 0xaf, 0xab, 0x4d, 0x73,
0xb8, 0xcf, 0x1d, 0x3a, 0x8a, 0x21, 0xf0, 0x26, 0x18, 0x65, 0x9d, 0x83, 0xa7, 0x48, 0xba, 0xa1,
0x78, 0xab, 0x60, 0x4e, 0x58, 0x04, 0xd3, 0x2b, 0xb8, 0xe5, 0x1e, 0xda, 0x2e, 0xc1, 0x7e, 0xe3,
0x70, 0x23, 0x62, 0x5d, 0x6a, 0x4a, 0xbe, 0x16, 0x9a, 0xd4, 0x6f, 0xb4, 0x38, 0xc0, 0xd8, 0x8b,
0x74, 0x94, 0xa2, 0xc0, 0xaf, 0x83, 0x7c, 0xd2, 0x82, 0xf6, 0x59, 0xbf, 0x9a, 0x92, 0xfb, 0x55,
0x5a, 0xc6, 0x08, 0xf7, 0x75, 0x94, 0xe1, 0xc1, 0x0f, 0xc1, 0xfc, 0x66, 0xbb, 0xe9, 0x12, 0xdc,
0x4c, 0xc5, 0x35, 0xc5, 0x04, 0x6f, 0xf6, 0xba, 0x9a, 0xc6, 0x05, 0x3b, 0x1c, 0x66, 0x64, 0xe3,
0x1b, 0xac, 0x00, 0xdf, 0x00, 0x00, 0x05, 0x1d, 0xbf, 0x69, 0x7b, 0x7b, 0x1e, 0x51, 0xe7, 0x17,
0x95, 0xa5, 0xb1, 0xc2, 0xc5, 0x5e, 0x57, 0x83, 0x5c, 0x2f, 0xa4, 0x3e, 0xa3, 0x45, 0x9d, 0x3a,
0x92, 0x90, 0xb0, 0x00, 0xa6, 0xad, 0x03, 0x8f, 0x54, 0xfc, 0xa2, 0x1b, 0x61, 0xda, 0x60, 0xd5,
0x8b, 0x99, 0x6e, 0x74, 0xe0, 0x11, 0x23, 0xf0, 0x0d, 0xda, 0x94, 0x3b, 0x21, 0xd6, 0x51, 0x8a,
0x01, 0xd7, 0x40, 0xbe, 0x18, 0xf8, 0x91, 0x17, 0xb1, 0x60, 0x8a, 0xbb, 0xb8, 0xf1, 0x4c, 0xbd,
0x94, 0x6e, 0x8d, 0x8d, 0x3e, 0xc2, 0x68, 0x50, 0x88, 0x8e, 0x32, 0x2c, 0xf8, 0x36, 0x98, 0xb0,
0x7c, 0x77, 0xab, 0x85, 0xab, 0xed, 0x30, 0xd8, 0x56, 0x55, 0x26, 0x72, 0xa9, 0xd7, 0xd5, 0xe6,
0x44, 0x28, 0xcc, 0x69, 0xb4, 0xa9, 0x97, 0xf6, 0xe7, 0x3e, 0x96, 0xf6, 0x76, 0x1a, 0x10, 0x4b,
0xcb, 0x46, 0xa4, 0x6a, 0x2c, 0xa3, 0xd2, 0x81, 0x6f, 0xb0, 0x71, 0x80, 0xa5, 0x93, 0xa6, 0x51,
0x06, 0xd3, 0xc7, 0xd2, 0x65, 0x6d, 0xb7, 0xb3, 0xbd, 0xdd, 0xc2, 0xea, 0x62, 0xfa, 0xb1, 0x8c,
0x1b, 0x71, 0xaf, 0xa0, 0x0a, 0x2c, 0x7c, 0x19, 0x8c, 0xd1, 0x65, 0xa4, 0xde, 0xa0, 0xc3, 0x71,
0x21, 0xdf, 0xeb, 0x6a, 0x93, 0x7d, 0x52, 0xa4, 0x23, 0xee, 0x86, 0xeb, 0xd2, 0xdc, 0x53, 0x0c,
0xf6, 0xf6, 0x5c, 0xbf, 0x19, 0xa9, 0x3a, 0xe3, 0x5c, 0xef, 0x75, 0xb5, 0xcb, 0xe9, 0xb9, 0xa7,
0x21, 0x30, 0xf2, 0xd8, 0x13, 0xf3, 0xe8, 0xc1, 0x46, 0x1d, 0xdf, 0xc7, 0xe1, 0xd1, 0xe8, 0x76,
0x3b, 0xdd, 0xef, 0x42, 0xe6, 0x97, 0x87, 0xb7, 0x14, 0x05, 0x96, 0x40, 0xde, 0x3a, 0x20, 0x38,
0xf4, 0xdd, 0xd6, 0x91, 0xcc, 0x32, 0x93, 0x91, 0x02, 0xc2, 0x02, 0x21, 0x0b, 0x65, 0x68, 0x34,
0x7f, 0x35, 0x12, 0xe2, 0x28, 0x72, 0x0e, 0xdb, 0x38, 0x52, 0x31, 0xdb, 0x96, 0x94, 0xbf, 0x88,
0x39, 0x0d, 0x42, 0xbd, 0x3a, 0x92, 0xb1, 0xf0, 0x7d, 0x30, 0xc5, 0x97, 0xeb, 0xf8, 0x90, 0xcd,
0xf9, 0xdb, 0xec, 0xe8, 0x4a, 0xc7, 0x4f, 0x90, 0xe9, 0x4d, 0x1c, 0x79, 0x9f, 0x60, 0x1d, 0x25,
0x09, 0x74, 0x18, 0x4a, 0x18, 0x6c, 0x37, 0xdc, 0xc1, 0xea, 0x0e, 0x93, 0x59, 0xec, 0x75, 0xb5,
0x6b, 0x03, 0x65, 0x8c, 0x16, 0x85, 0xe9, 0x68, 0x00, 0x17, 0x3e, 0x01, 0x17, 0xfa, 0xd6, 0xce,
0xf6, 0xb6, 0x77, 0x80, 0x5c, 0x7f, 0x07, 0xab, 0xbb, 0x4c, 0x53, 0xef, 0x75, 0xb5, 0x85, 0xac,
0x26, 0xc3, 0x19, 0x21, 0x05, 0xea, 0x68, 0x20, 0x1f, 0x7e, 0x03, 0x5c, 0x1a, 0x64, 0x77, 0x0e,
0x7c, 0xd5, 0x63, 0xd2, 0x2f, 0xf7, 0xba, 0x9a, 0x7e, 0xac, 0xb4, 0x41, 0x0e, 0x7c, 0x1d, 0x0d,
0x93, 0xa1, 0x43, 0xea, 0x91, 0xcb, 0x39, 0xf0, 0x2b, 0xed, 0x48, 0xfd, 0x26, 0x53, 0x96, 0x4a,
0x2a, 0x29, 0x93, 0x03, 0xdf, 0x08, 0xda, 0x91, 0x8e, 0xd2, 0xac, 0x7e, 0x59, 0x78, 0xdf, 0x8f,
0xf8, 0xac, 0x3b, 0x26, 0xf7, 0x66, 0xa1, 0xc3, 0x27, 0x86, 0xe8, 0xa8, 0x2c, 0x82, 0x00, 0x5f,
0x07, 0xe3, 0xdc, 0xf0, 0xb8, 0x5a, 0xe3, 0x23, 0xee, 0x98, 0xfc, 0x79, 0x20, 0xd8, 0x1f, 0xd1,
0xa7, 0xf7, 0x81, 0xfa, 0x97, 0x53, 0x7c, 0x10, 0xa5, 0x17, 0x7c, 0xff, 0xcb, 0x54, 0xbe, 0xe0,
0x7d, 0x77, 0x0f, 0xeb, 0x88, 0x39, 0xe5, 0x16, 0x33, 0x72, 0x8a, 0x16, 0xb3, 0x0c, 0xce, 0x3e,
0x35, 0x6d, 0x8a, 0xce, 0xa5, 0x3b, 0xcc, 0xc7, 0x6e, 0x8b, 0x83, 0x05, 0x02, 0x56, 0xc0, 0xdc,
0x1a, 0x76, 0x43, 0xb2, 0x85, 0x5d, 0x52, 0xf2, 0x09, 0x0e, 0xf7, 0xdd, 0x96, 0x68, 0x20, 0x39,
0x39, 0x9b, 0xbb, 0x31, 0xc8, 0xf0, 0x04, 0x4a, 0x47, 0x83, 0x98, 0xb0, 0x04, 0x66, 0xad, 0x16,
0x6e, 0xd0, 0x6f, 0x7b, 0xc7, 0xdb, 0xc3, 0x41, 0x87, 0x6c, 0x44, 0xac, 0x91, 0xe4, 0xe4, 0xd7,
0x16, 0x0b, 0x88, 0x41, 0x38, 0x46, 0x47, 0x59, 0x16, 0x7d, 0x73, 0x6d, 0x76, 0x6d, 0x4a, 0xdf,
0xe6, 0xf3, 0xe9, 0xab, 0xa4, 0xc5, 0x10, 0xf1, 0xf4, 0xdf, 0x09, 0x5b, 0x91, 0x8e, 0x32, 0x34,
0x88, 0xc0, 0x9c, 0xd9, 0xdc, 0xc7, 0x21, 0xf1, 0x22, 0x2c, 0xa9, 0x5d, 0x64, 0x6a, 0xd2, 0xdb,
0xe3, 0xc6, 0xa0, 0xa4, 0xe0, 0x20, 0x32, 0x7c, 0x3b, 0x9e, 0x82, 0xcd, 0x0e, 0x09, 0x1c, 0xbb,
0x26, 0x7a, 0x81, 0x54, 0x1b, 0xb7, 0x43, 0x02, 0x83, 0x50, 0x81, 0x24, 0x92, 0x5e, 0x6c, 0xfd,
0xa9, 0xdc, 0xec, 0x90, 0x5d, 0xd1, 0x02, 0x86, 0x0c, 0xf2, 0x6e, 0x27, 0x35, 0xc8, 0x53, 0x0a,
0xfc, 0x9a, 0x2c, 0xb2, 0xea, 0xb5, 0xb0, 0x7a, 0x99, 0x95, 0xfb, 0x42, 0xaf, 0xab, 0xe5, 0x85,
0x08, 0x65, 0x6f, 0x7b, 0xf4, 0x36, 0x4f, 0x61, 0xfb, 0xd1, 0xaf, 0xe3, 0x43, 0x46, 0xbe, 0x92,
0x3e, 0x59, 0xf4, 0xcd, 0xe1, 0xdc, 0x24, 0x12, 0xda, 0x99, 0x29, 0x9b, 0x09, 0x5c, 0x4d, 0x7f,
0x03, 0x48, 0x13, 0x1c, 0xd7, 0x19, 0x44, 0xa3, 0xb9, 0xe0, 0xe5, 0xa2, 0xe3, 0x1d, 0xab, 0x8a,
0xc6, 0xaa, 0x22, 0xe5, 0x42, 0xd4, 0x98, 0x8d, 0x85, 0xbc, 0x20, 0x29, 0x0a, 0x74, 0xc0, 0xec,
0x51, 0x89, 0x8e, 0x74, 0x16, 0x99, 0x8e, 0x74, 0xd9, 0x78, 0xbe, 0x47, 0x3c, 0xb7, 0x65, 0xf4,
0xab, 0x2c, 0x49, 0x66, 0x05, 0x68, 0xaf, 0xa5, 0xff, 0x8f, 0xeb, 0x7b, 0x83, 0xd5, 0x28, 0x3d,
0x3a, 0xf7, 0x8b, 0x2c, 0x83, 0xe9, 0x75, 0xcd, 0x86, 0xf8, 0x64, 0x99, 0x75, 0x26, 0x21, 0x1d,
0x38, 0x3e, 0xf9, 0x67, 0x6a, 0x3d, 0x80, 0x4b, 0x87, 0xdd, 0xf8, 0xb3, 0x80, 0xe5, 0xfb, 0xe6,
0xf0, 0xaf, 0x08, 0x9e, 0xee, 0x04, 0x3c, 0xde, 0x4c, 0x5c, 0xee, 0x97, 0x86, 0x7e, 0x07, 0x70,
0xb2, 0x0c, 0x86, 0x1b, 0xa9, 0xb9, 0x9d, 0x29, 0xdc, 0x3a, 0x69, 0x6c, 0xe7, 0x42, 0x59, 0x26,
0x1d, 0xc6, 0x4a, 0xbc, 0x14, 0xc5, 0x56, 0x87, 0xfd, 0xa8, 0x77, 0x3b, 0x7d, 0x76, 0xe2, 0x52,
0x35, 0x38, 0x40, 0x47, 0x29, 0x06, 0x7d, 0xa3, 0x93, 0x96, 0x1a, 0x71, 0x09, 0x16, 0x9d, 0x5d,
0x4a, 0x70, 0x4a, 0xc8, 0x88, 0x28, 0x4c, 0x47, 0x83, 0xc8, 0x59, 0x4d, 0x27, 0x78, 0x86, 0x7d,
0xf5, 0x95, 0x93, 0x34, 0x09, 0x85, 0x65, 0x34, 0x19, 0x19, 0x3e, 0x04, 0x53, 0xf1, 0x97, 0x43,
0x31, 0xe8, 0xf8, 0x44, 0xbd, 0xcf, 0xee, 0x42, 0xb9, 0xc1, 0xc4, 0x9f, 0x28, 0x0d, 0xea, 0xa7,
0x0d, 0x46, 0xc6, 0x43, 0x1b, 0xcc, 0x3e, 0xee, 0x04, 0xc4, 0x2d, 0xb8, 0x8d, 0x67, 0xd8, 0x6f,
0x16, 0x0e, 0x09, 0x8e, 0xd4, 0xd7, 0x99, 0x88, 0x34, 0x99, 0x7f, 0x44, 0x21, 0xc6, 0x16, 0xc7,
0x18, 0x5b, 0x14, 0xa4, 0xa3, 0x2c, 0x91, 0xb6, 0x92, 0x6a, 0x88, 0x9f, 0x04, 0x04, 0xab, 0x0f,
0xd3, 0xd7, 0x55, 0x3b, 0xc4, 0xc6, 0x7e, 0x40, 0xb3, 0x13, 0x63, 0xe4, 0x8c, 0x04, 0x61, 0xd8,
0x69, 0x13, 0x3e, 0xf5, 0xbe, 0x9f, 0x3e, 0xc6, 0x47, 0x19, 0xe1, 0xa8, 0x78, 0xf2, 0x1d, 0x44,
0x5e, 0xfe, 0x71, 0x4e, 0xfa, 0x89, 0x18, 0xce, 0x80, 0x89, 0x72, 0xc5, 0xa9, 0xd7, 0x1c, 0x13,
0x39, 0xd6, 0x4a, 0xfe, 0x0c, 0xbc, 0x08, 0x60, 0xa9, 0x5c, 0x72, 0x4a, 0xa6, 0xcd, 0x8d, 0x75,
0xcb, 0x29, 0xae, 0xe4, 0x01, 0xcc, 0x83, 0x49, 0x64, 0x49, 0x96, 0x09, 0x6a, 0xa9, 0x95, 0x1e,
0x39, 0x16, 0xda, 0xe0, 0x96, 0x0b, 0x70, 0x11, 0x5c, 0xab, 0x95, 0x1e, 0x3d, 0xde, 0x2c, 0x71,
0x4c, 0xdd, 0x2c, 0xaf, 0xd4, 0x91, 0xb5, 0x51, 0x79, 0x62, 0xd5, 0x57, 0x4c, 0xc7, 0xcc, 0xcf,
0xc3, 0x59, 0x30, 0x55, 0x33, 0x9f, 0x58, 0xf5, 0x5a, 0xd9, 0xac, 0xd6, 0xd6, 0x2a, 0x4e, 0x7e,
0x01, 0xde, 0x00, 0xd7, 0xa9, 0x70, 0x05, 0x59, 0xf5, 0xf8, 0x01, 0xab, 0xa8, 0xb2, 0xd1, 0x87,
0x68, 0xf0, 0x32, 0x98, 0x1f, 0xec, 0x5a, 0xa4, 0xec, 0xcc, 0x23, 0x4d, 0x54, 0x5c, 0x2b, 0xc5,
0xcf, 0x5c, 0x82, 0x77, 0xc1, 0x2b, 0xc7, 0x45, 0xc5, 0xd6, 0x35, 0xa7, 0x52, 0xad, 0x9b, 0x8f,
0xac, 0xb2, 0x93, 0xbf, 0x0d, 0xaf, 0x83, 0xcb, 0x05, 0xdb, 0x2c, 0xae, 0xaf, 0x55, 0x6c, 0xab,
0x5e, 0xb5, 0x2c, 0x54, 0xaf, 0x56, 0x90, 0x53, 0x77, 0x3e, 0xa8, 0xa3, 0x0f, 0xf2, 0x4d, 0xa8,
0x81, 0xab, 0x9b, 0xe5, 0xe1, 0x00, 0x0c, 0xaf, 0x80, 0xf9, 0x15, 0xcb, 0x36, 0x3f, 0xcc, 0xb8,
0x9e, 0x2b, 0xf0, 0x1a, 0xb8, 0xb4, 0x59, 0x1e, 0xec, 0xfd, 0x4c, 0x59, 0xfe, 0x07, 0x00, 0xa3,
0x74, 0x90, 0x87, 0x2a, 0xb8, 0x10, 0xe7, 0xb6, 0x52, 0xb6, 0xea, 0xab, 0x15, 0xdb, 0xae, 0x3c,
0xb5, 0x50, 0xfe, 0x8c, 0xd8, 0x4d, 0xc6, 0x53, 0xdf, 0x2c, 0x3b, 0x25, 0xbb, 0xee, 0xa0, 0xd2,
0xa3, 0x47, 0x16, 0xea, 0x67, 0x48, 0x81, 0x10, 0x4c, 0xc7, 0x04, 0xdb, 0x32, 0x57, 0x2c, 0x94,
0x1f, 0x81, 0xb7, 0xc1, 0xad, 0xa4, 0x6d, 0x18, 0x3d, 0x27, 0xd3, 0x1f, 0x6f, 0x56, 0xd0, 0xe6,
0x46, 0x7e, 0x94, 0x1e, 0x9a, 0xd8, 0x66, 0xda, 0x76, 0x7e, 0x0c, 0xde, 0x04, 0x5a, 0x9c, 0x62,
0x29, 0xbb, 0x89, 0xc8, 0x01, 0x7c, 0x00, 0xde, 0x38, 0x01, 0x34, 0x2c, 0x8a, 0x09, 0x5a, 0x92,
0x01, 0x5c, 0xb1, 0x9f, 0x49, 0xf8, 0x3a, 0x78, 0x6d, 0xa8, 0x7b, 0x98, 0xe8, 0x14, 0x5c, 0x05,
0x85, 0x01, 0x2c, 0xbe, 0x4b, 0x61, 0xe1, 0xe7, 0x52, 0x08, 0xc5, 0x54, 0x71, 0x08, 0x8b, 0xc8,
0x74, 0x8a, 0x6b, 0xf9, 0x69, 0xb8, 0x0c, 0x5e, 0x1e, 0x7a, 0x1c, 0x92, 0x49, 0x68, 0x42, 0x13,
0xbc, 0x7b, 0x3a, 0xec, 0xb0, 0xb0, 0x31, 0x7c, 0x09, 0x2c, 0x0e, 0x97, 0x10, 0x29, 0xd9, 0x86,
0xef, 0x80, 0x37, 0x4f, 0x42, 0x0d, 0x7b, 0xc4, 0xce, 0xf1, 0x8f, 0x10, 0xc7, 0x60, 0x97, 0xbe,
0x7b, 0xc3, 0x51, 0xf4, 0x60, 0x78, 0xf0, 0x2b, 0x40, 0x1f, 0x78, 0xd8, 0x93, 0x69, 0x79, 0xae,
0xc0, 0x3b, 0xe0, 0x36, 0x32, 0xcb, 0x2b, 0x95, 0x8d, 0xfa, 0x29, 0xf0, 0x9f, 0x29, 0xf0, 0x3d,
0xf0, 0xf6, 0xc9, 0xc0, 0x61, 0x1b, 0xfc, 0x5c, 0x81, 0x16, 0x78, 0xff, 0xd4, 0xcf, 0x1b, 0x26,
0xf3, 0x4b, 0x05, 0xde, 0x00, 0xd7, 0x06, 0xf3, 0x45, 0x1d, 0x7e, 0xa5, 0xc0, 0x25, 0x70, 0xf3,
0xd8, 0x27, 0x09, 0xe4, 0xaf, 0x15, 0xf8, 0x16, 0xb8, 0x7f, 0x1c, 0x64, 0x58, 0x18, 0xbf, 0x51,
0xe0, 0x43, 0xf0, 0xe0, 0x14, 0xcf, 0x18, 0x26, 0xf0, 0xdb, 0x63, 0xf6, 0x21, 0x8a, 0xfd, 0xc5,
0xc9, 0xfb, 0x10, 0xc8, 0xdf, 0x29, 0x70, 0x01, 0x5c, 0x1e, 0x0c, 0xa1, 0x67, 0xe2, 0xf7, 0x0a,
0xbc, 0x05, 0x16, 0x8f, 0x55, 0xa2, 0xb0, 0x3f, 0x28, 0x50, 0x05, 0x73, 0xe5, 0x4a, 0x7d, 0xd5,
0x2c, 0xd9, 0xf5, 0xa7, 0x25, 0x67, 0xad, 0x5e, 0x73, 0x90, 0x55, 0xab, 0xe5, 0x7f, 0x3a, 0x42,
0x43, 0x49, 0x78, 0xca, 0x15, 0xe1, 0xac, 0xaf, 0x56, 0x50, 0xdd, 0x2e, 0x3d, 0xb1, 0xca, 0x14,
0xf9, 0xe9, 0x08, 0x9c, 0x01, 0x80, 0xc2, 0xaa, 0x95, 0x52, 0xd9, 0xa9, 0xe5, 0xbf, 0x9d, 0x83,
0x53, 0xe0, 0xbc, 0xf5, 0x81, 0x63, 0xa1, 0xb2, 0x69, 0xe7, 0xff, 0x99, 0x5b, 0x0e, 0x00, 0xe8,
0xff, 0x4c, 0x00, 0xcf, 0x82, 0x91, 0xf5, 0x27, 0xf9, 0x33, 0x70, 0x1c, 0x8c, 0xd9, 0x96, 0x59,
0xb3, 0xf2, 0x0a, 0x9c, 0x03, 0x33, 0x96, 0x6d, 0x15, 0x9d, 0x52, 0xa5, 0x5c, 0x47, 0x9b, 0xe5,
0x32, 0xbb, 0x3e, 0xf3, 0x60, 0xf2, 0x29, 0x7d, 0xf7, 0x63, 0x4b, 0x0e, 0xce, 0x83, 0x59, 0xbb,
0x52, 0x5c, 0xaf, 0x23, 0xb3, 0x68, 0xa1, 0xd8, 0x3c, 0x4a, 0x81, 0x4c, 0x28, 0xb6, 0x8c, 0xdd,
0x7b, 0x08, 0xc6, 0x9d, 0xd0, 0xf5, 0xa3, 0x76, 0x10, 0x12, 0x78, 0x4f, 0x5e, 0x4c, 0x8b, 0x9f,
0x3d, 0xc5, 0x5f, 0x72, 0xaf, 0xcc, 0x1c, 0xad, 0xf9, 0x1f, 0xf9, 0xf4, 0x33, 0x4b, 0xca, 0x6b,
0x4a, 0xe1, 0xc2, 0xf3, 0xbf, 0x2e, 0x9c, 0x79, 0xfe, 0x62, 0x41, 0xf9, 0xe2, 0xc5, 0x82, 0xf2,
0x97, 0x17, 0x0b, 0xca, 0x8f, 0xfe, 0xb6, 0x70, 0x66, 0xeb, 0x2c, 0xfb, 0x4b, 0xf0, 0xfd, 0xff,
0x07, 0x00, 0x00, 0xff, 0xff, 0x46, 0x46, 0x12, 0x77, 0x52, 0x1e, 0x00, 0x00,
// 2808 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x59, 0xdb, 0x73, 0xdb, 0xc6,
0xf5, 0x16, 0x44, 0x5d, 0x57, 0x37, 0x68, 0x65, 0xd9, 0xf0, 0x4d, 0x90, 0xe1, 0x38, 0x3f, 0x59,
0x09, 0xec, 0xfc, 0xec, 0x4c, 0x2e, 0x4e, 0x13, 0x07, 0xa4, 0x20, 0x8b, 0x15, 0x44, 0xd2, 0x4b,
0xc8, 0x76, 0x9e, 0x38, 0x10, 0xb9, 0x92, 0x30, 0xa6, 0x00, 0x06, 0x58, 0x2a, 0x52, 0xfe, 0x81,
0xbe, 0xf6, 0x3e, 0xed, 0x4c, 0x9f, 0xfa, 0xdc, 0xb4, 0xff, 0x86, 0x73, 0x6b, 0xd3, 0xf6, 0xa9,
0xed, 0x0c, 0xa7, 0x4d, 0x5f, 0xfa, 0xd4, 0x07, 0x4e, 0x6f, 0xe9, 0x53, 0x67, 0x77, 0x01, 0x71,
0x01, 0x90, 0x92, 0x9e, 0xa4, 0x3d, 0xe7, 0xfb, 0xbe, 0x3d, 0xbb, 0x67, 0xb1, 0xe7, 0x00, 0x04,
0x73, 0x41, 0xab, 0xde, 0xda, 0xb9, 0x1b, 0xb4, 0xea, 0x77, 0x5a, 0x81, 0x4f, 0x7c, 0x38, 0xca,
0x0c, 0x57, 0xf4, 0x3d, 0x97, 0xec, 0xb7, 0x77, 0xee, 0xd4, 0xfd, 0x83, 0xbb, 0x7b, 0xfe, 0x9e,
0x7f, 0x97, 0x79, 0x77, 0xda, 0xbb, 0x6c, 0xc4, 0x06, 0xec, 0x3f, 0xce, 0xd2, 0xbe, 0x23, 0x81,
0x71, 0x84, 0x3f, 0x6c, 0xe3, 0x90, 0xc0, 0x3b, 0x60, 0xb2, 0xdc, 0xc2, 0x81, 0x43, 0x5c, 0xdf,
0x53, 0xa4, 0x65, 0x69, 0x65, 0xf6, 0x9e, 0x7c, 0x87, 0xa9, 0xde, 0x39, 0xb1, 0xa3, 0x1e, 0x04,
0xde, 0x02, 0x63, 0x5b, 0xf8, 0x60, 0x07, 0x07, 0xca, 0xf0, 0xb2, 0xb4, 0x32, 0x75, 0x6f, 0x26,
0x02, 0x73, 0x23, 0x8a, 0x9c, 0x14, 0x66, 0xe3, 0x90, 0xe0, 0x40, 0xc9, 0x25, 0x60, 0xdc, 0x88,
0x22, 0xa7, 0xf6, 0xb7, 0x61, 0x30, 0x5d, 0xf5, 0x9c, 0x56, 0xb8, 0xef, 0x93, 0xa2, 0xb7, 0xeb,
0xc3, 0x25, 0x00, 0xb8, 0x42, 0xc9, 0x39, 0xc0, 0x2c, 0x9e, 0x49, 0x24, 0x58, 0xe0, 0x2a, 0x90,
0xf9, 0xa8, 0xd0, 0x74, 0xb1, 0x47, 0xb6, 0x91, 0x15, 0x2a, 0xc3, 0xcb, 0xb9, 0x95, 0x49, 0x94,
0xb1, 0x43, 0xad, 0xa7, 0x5d, 0x71, 0xc8, 0x3e, 0x8b, 0x64, 0x12, 0x25, 0x6c, 0x54, 0x2f, 0x1e,
0xaf, 0xbb, 0x4d, 0x5c, 0x75, 0x3f, 0xc6, 0xca, 0x08, 0xc3, 0x65, 0xec, 0xf0, 0x55, 0x30, 0x1f,
0xdb, 0x6c, 0x9f, 0x38, 0x4d, 0x06, 0x1e, 0x65, 0xe0, 0xac, 0x43, 0x54, 0x66, 0xc6, 0x4d, 0x7c,
0xac, 0x8c, 0x2d, 0x4b, 0x2b, 0x39, 0x94, 0xb1, 0x8b, 0x91, 0x6e, 0x38, 0xe1, 0xbe, 0x32, 0xce,
0x70, 0x09, 0x9b, 0xa8, 0x87, 0xf0, 0xa1, 0x1b, 0xd2, 0x7c, 0x4d, 0x24, 0xf5, 0x62, 0x3b, 0x84,
0x60, 0xc4, 0xf6, 0xfd, 0xe7, 0xca, 0x24, 0x0b, 0x8e, 0xfd, 0xaf, 0xfd, 0x4c, 0x02, 0x13, 0x08,
0x87, 0x2d, 0xdf, 0x0b, 0x31, 0x54, 0xc0, 0x78, 0xb5, 0x5d, 0xaf, 0xe3, 0x30, 0x64, 0x7b, 0x3c,
0x81, 0xe2, 0x21, 0xbc, 0x08, 0xc6, 0xaa, 0xc4, 0x21, 0xed, 0x90, 0xe5, 0x77, 0x12, 0x45, 0x23,
0x21, 0xef, 0xb9, 0xd3, 0xf2, 0xfe, 0x66, 0x32, 0x9f, 0x6c, 0x2f, 0xa7, 0xee, 0x2d, 0x44, 0x60,
0xd1, 0x85, 0x12, 0x40, 0xed, 0x4f, 0xd3, 0xf1, 0x04, 0xf0, 0x5d, 0x30, 0x6d, 0x92, 0x7a, 0xc3,
0x3c, 0xc2, 0x75, 0x96, 0x37, 0x76, 0x0a, 0xf2, 0x97, 0xbb, 0x1d, 0x75, 0xf1, 0xd8, 0x39, 0x68,
0x3e, 0xd0, 0x30, 0xa9, 0x37, 0x74, 0x7c, 0x84, 0xeb, 0x7a, 0xcb, 0x21, 0xfb, 0x1a, 0x4a, 0xc0,
0xe1, 0x7d, 0x30, 0x69, 0xec, 0x61, 0x8f, 0x18, 0x8d, 0x46, 0xa0, 0x4c, 0x31, 0xee, 0x62, 0xb7,
0xa3, 0xce, 0x73, 0xae, 0x43, 0x5d, 0xba, 0xd3, 0x68, 0x04, 0x1a, 0xea, 0xe1, 0xa0, 0x05, 0xe6,
0xd7, 0x1d, 0xb7, 0xd9, 0xf2, 0x5d, 0x8f, 0x6c, 0xd8, 0x76, 0x85, 0x91, 0xa7, 0x19, 0x79, 0xa9,
0xdb, 0x51, 0xaf, 0x70, 0xf2, 0x6e, 0x0c, 0xd1, 0xf7, 0x09, 0x69, 0x45, 0x2a, 0x59, 0x22, 0xd4,
0xc1, 0x78, 0xde, 0x09, 0xf1, 0x9a, 0x1b, 0x28, 0x98, 0x69, 0x2c, 0x74, 0x3b, 0xea, 0x1c, 0xd7,
0xd8, 0x71, 0x42, 0xac, 0x37, 0xdc, 0x40, 0x43, 0x31, 0x06, 0x3e, 0x00, 0x53, 0x74, 0x05, 0x96,
0xbf, 0xc7, 0xd6, 0xbb, 0xcb, 0x28, 0x4a, 0xb7, 0xa3, 0x5e, 0x10, 0xd6, 0xdb, 0xf4, 0xf7, 0xa2,
0xe5, 0x8a, 0x60, 0xf8, 0x08, 0xcc, 0xd1, 0x21, 0x3f, 0xf6, 0x95, 0xc0, 0x3f, 0x3a, 0x56, 0x3e,
0x65, 0x29, 0xcd, 0x5f, 0xeb, 0x76, 0x54, 0x45, 0x10, 0xa8, 0x33, 0x88, 0xde, 0xa2, 0x18, 0x0d,
0xa5, 0x59, 0xd0, 0x00, 0x33, 0xd4, 0x54, 0xc1, 0x38, 0xe0, 0x32, 0x9f, 0x71, 0x99, 0x2b, 0xdd,
0x8e, 0x7a, 0x51, 0x90, 0x69, 0x61, 0x1c, 0xc4, 0x22, 0x49, 0x06, 0xac, 0x00, 0xd8, 0x53, 0x35,
0xbd, 0x06, 0xdb, 0x14, 0xe5, 0x13, 0x76, 0x90, 0xf2, 0x6a, 0xb7, 0xa3, 0x5e, 0xcd, 0x86, 0x83,
0x23, 0x98, 0x86, 0xfa, 0x70, 0xe1, 0xff, 0x83, 0x11, 0x6a, 0x55, 0x7e, 0xc9, 0x2f, 0x9b, 0xa9,
0xe8, 0x1c, 0x51, 0x5b, 0x7e, 0xae, 0xdb, 0x51, 0xa7, 0x7a, 0x82, 0x1a, 0x62, 0x50, 0x98, 0x07,
0x8b, 0xf4, 0x6f, 0xd9, 0xeb, 0x3d, 0x15, 0x21, 0xf1, 0x03, 0xac, 0xfc, 0x2a, 0xab, 0x81, 0xfa,
0x43, 0xe1, 0x1a, 0x98, 0xe5, 0x81, 0x14, 0x70, 0x40, 0xd6, 0x1c, 0xe2, 0x28, 0xdf, 0x63, 0x97,
0x47, 0xfe, 0x6a, 0xb7, 0xa3, 0x5e, 0xe2, 0x73, 0x46, 0xf1, 0xd7, 0x71, 0x40, 0xf4, 0x86, 0x43,
0x1c, 0x0d, 0xa5, 0x38, 0x49, 0x15, 0x96, 0xd9, 0xef, 0x9f, 0xaa, 0xc2, 0xb3, 0x9b, 0xe2, 0xd0,
0xbc, 0x70, 0xcb, 0x26, 0x3e, 0x66, 0xa1, 0xfc, 0x80, 0x8b, 0x08, 0x79, 0x89, 0x44, 0x9e, 0xe3,
0xe3, 0x28, 0x92, 0x24, 0x23, 0x21, 0xc1, 0xe2, 0xf8, 0xe1, 0x69, 0x12, 0x3c, 0x8c, 0x24, 0x03,
0xda, 0x60, 0x81, 0x1b, 0xec, 0xa0, 0x1d, 0x12, 0xdc, 0x28, 0x18, 0x2c, 0x96, 0x1f, 0x71, 0xa1,
0x1b, 0xdd, 0x8e, 0x7a, 0x3d, 0x21, 0x44, 0x38, 0x4c, 0xaf, 0x3b, 0x51, 0x48, 0xfd, 0xe8, 0x7d,
0x54, 0x59, 0x78, 0x3f, 0x3e, 0x87, 0x2a, 0x8f, 0xb2, 0x1f, 0x1d, 0xbe, 0x07, 0xa6, 0xe9, 0x99,
0x3c, 0xc9, 0xdd, 0x3f, 0x73, 0xe9, 0x0b, 0x84, 0x9d, 0x61, 0x21, 0x73, 0x09, 0xbc, 0xc8, 0x67,
0xe1, 0xfc, 0xeb, 0x14, 0x7e, 0x74, 0x01, 0x89, 0x78, 0xf8, 0x0e, 0x98, 0xa2, 0xe3, 0x38, 0x5f,
0xff, 0xce, 0xa5, 0x9f, 0x67, 0x46, 0xef, 0x65, 0x4b, 0x44, 0x0b, 0x64, 0x36, 0xf7, 0x7f, 0x06,
0x93, 0xa3, 0xcb, 0x40, 0x40, 0xc3, 0x12, 0x98, 0xa7, 0xc3, 0x64, 0x8e, 0xbe, 0xc9, 0xa5, 0x9f,
0x3f, 0x26, 0x91, 0xc9, 0x50, 0x96, 0x9a, 0xd1, 0x63, 0x21, 0xfd, 0xf7, 0x4c, 0x3d, 0x1e, 0x59,
0x96, 0x4a, 0x6f, 0xf6, 0x44, 0x45, 0xfe, 0xc3, 0x48, 0x7a, 0x75, 0x61, 0xe4, 0x8e, 0x37, 0x36,
0x51, 0xac, 0xdf, 0x4a, 0x15, 0x97, 0x3f, 0x9e, 0xbb, 0xba, 0xfc, 0x7c, 0x3a, 0xee, 0x47, 0xe8,
0xdd, 0x4c, 0xd7, 0x46, 0xef, 0x66, 0x29, 0x7d, 0x37, 0xd3, 0x8d, 0x88, 0xee, 0xe6, 0x08, 0x03,
0x5f, 0x05, 0xe3, 0x25, 0x4c, 0x3e, 0xf2, 0x83, 0xe7, 0xbc, 0x20, 0xe6, 0x61, 0xb7, 0xa3, 0xce,
0x72, 0xb8, 0xc7, 0x1d, 0x1a, 0x8a, 0x21, 0xf0, 0x26, 0x18, 0x61, 0x95, 0x83, 0x6f, 0x91, 0x70,
0x43, 0xf1, 0x52, 0xc1, 0x9c, 0xb0, 0x00, 0x66, 0xd7, 0x70, 0xd3, 0x39, 0xb6, 0x1c, 0x82, 0xbd,
0xfa, 0xf1, 0x56, 0xc8, 0xaa, 0xd4, 0x8c, 0x78, 0x2d, 0x34, 0xa8, 0x5f, 0x6f, 0x72, 0x80, 0x7e,
0x10, 0x6a, 0x28, 0x45, 0x81, 0xdf, 0x06, 0x72, 0xd2, 0x82, 0x0e, 0x59, 0xbd, 0x9a, 0x11, 0xeb,
0x55, 0x5a, 0x46, 0x0f, 0x0e, 0x35, 0x94, 0xe1, 0xc1, 0x0f, 0xc0, 0xe2, 0x76, 0xab, 0xe1, 0x10,
0xdc, 0x48, 0xc5, 0x35, 0xc3, 0x04, 0x6f, 0x76, 0x3b, 0xaa, 0xca, 0x05, 0xdb, 0x1c, 0xa6, 0x67,
0xe3, 0xeb, 0xaf, 0x00, 0xdf, 0x00, 0x00, 0xf9, 0x6d, 0xaf, 0x61, 0xb9, 0x07, 0x2e, 0x51, 0x16,
0x97, 0xa5, 0x95, 0xd1, 0xfc, 0xc5, 0x6e, 0x47, 0x85, 0x5c, 0x2f, 0xa0, 0x3e, 0xbd, 0x49, 0x9d,
0x1a, 0x12, 0x90, 0x30, 0x0f, 0x66, 0xcd, 0x23, 0x97, 0x94, 0xbd, 0x82, 0x13, 0x62, 0x5a, 0x60,
0x95, 0x8b, 0x99, 0x6a, 0x74, 0xe4, 0x12, 0xdd, 0xf7, 0x74, 0x5a, 0x94, 0xdb, 0x01, 0xd6, 0x50,
0x8a, 0x01, 0xdf, 0x06, 0x53, 0xa6, 0xe7, 0xec, 0x34, 0x71, 0xa5, 0x15, 0xf8, 0xbb, 0xca, 0x25,
0x26, 0x70, 0xa9, 0xdb, 0x51, 0x17, 0x22, 0x01, 0xe6, 0xd4, 0x5b, 0xd4, 0x4b, 0xab, 0x6a, 0x0f,
0x4b, 0x2b, 0x32, 0x95, 0x61, 0x8b, 0xd9, 0x0a, 0x15, 0x95, 0xed, 0x83, 0x70, 0x4c, 0xeb, 0xac,
0x88, 0xb3, 0x4d, 0xa0, 0x8b, 0x17, 0xc1, 0x74, 0x5a, 0x3a, 0xac, 0xee, 0xb7, 0x77, 0x77, 0x9b,
0x58, 0x59, 0x4e, 0x4f, 0xcb, 0xb8, 0x21, 0xf7, 0x46, 0xd4, 0x08, 0x0b, 0x5f, 0x06, 0xa3, 0x74,
0x18, 0x2a, 0x37, 0x68, 0x4b, 0x9b, 0x97, 0xbb, 0x1d, 0x75, 0xba, 0x47, 0x0a, 0x35, 0xc4, 0xdd,
0x70, 0x53, 0xe8, 0x56, 0x0a, 0xfe, 0xc1, 0x81, 0xe3, 0x35, 0x42, 0x45, 0x63, 0x9c, 0xeb, 0xdd,
0x8e, 0x7a, 0x39, 0xdd, 0xad, 0xd4, 0x23, 0x8c, 0xd8, 0xac, 0xc4, 0x3c, 0x7a, 0x1c, 0x51, 0xdb,
0xf3, 0x70, 0x70, 0xd2, 0x70, 0xdd, 0x4e, 0x57, 0xa9, 0x80, 0xf9, 0xc5, 0x96, 0x2b, 0x45, 0x81,
0x45, 0x20, 0x9b, 0x47, 0x04, 0x07, 0x9e, 0xd3, 0x3c, 0x91, 0x59, 0x65, 0x32, 0x42, 0x40, 0x38,
0x42, 0x88, 0x42, 0x19, 0x1a, 0xbc, 0x07, 0x26, 0xab, 0x24, 0xc0, 0x61, 0x88, 0x83, 0x50, 0xc1,
0x6c, 0x51, 0x17, 0xba, 0x1d, 0x55, 0x8e, 0x2e, 0x88, 0xd8, 0xa5, 0xa1, 0x1e, 0x0c, 0xde, 0x05,
0x13, 0x85, 0x7d, 0x5c, 0x7f, 0x4e, 0x29, 0xbb, 0x8c, 0x22, 0x3c, 0xd5, 0xf5, 0xc8, 0xa3, 0xa1,
0x13, 0x10, 0x2d, 0x89, 0x9c, 0xbd, 0x89, 0x8f, 0x59, 0x1f, 0xcf, 0x9a, 0xa6, 0x51, 0xf1, 0x7c,
0xf1, 0x99, 0xd8, 0x55, 0x1b, 0xba, 0x1f, 0x63, 0x0d, 0x25, 0x19, 0xf0, 0x31, 0x80, 0x09, 0x83,
0xe5, 0x04, 0x7b, 0x98, 0x77, 0x4d, 0xa3, 0xf9, 0xe5, 0x6e, 0x47, 0xbd, 0xd6, 0x57, 0x47, 0x6f,
0x52, 0x9c, 0x86, 0xfa, 0x90, 0xe1, 0x53, 0x70, 0xa1, 0x67, 0x6d, 0xef, 0xee, 0xba, 0x47, 0xc8,
0xf1, 0xf6, 0xb0, 0xf2, 0x39, 0x17, 0xd5, 0xba, 0x1d, 0x75, 0x29, 0x2b, 0xca, 0x80, 0x7a, 0x40,
0x91, 0x1a, 0xea, 0x2b, 0x00, 0x1d, 0x70, 0xa9, 0x9f, 0xdd, 0x3e, 0xf2, 0x94, 0x2f, 0xb8, 0xf6,
0xcb, 0xdd, 0x8e, 0xaa, 0x9d, 0xaa, 0xad, 0x93, 0x23, 0x4f, 0x43, 0x83, 0x74, 0xe0, 0x06, 0x98,
0x3b, 0x71, 0xd9, 0x47, 0x5e, 0xb9, 0x15, 0x2a, 0x5f, 0x72, 0x69, 0xe1, 0x04, 0x08, 0xd2, 0xe4,
0xc8, 0xd3, 0xfd, 0x56, 0xa8, 0xa1, 0x34, 0x0d, 0xbe, 0x1f, 0xe7, 0x86, 0x17, 0xf7, 0x90, 0x77,
0x90, 0xa3, 0x62, 0x01, 0x8e, 0x74, 0x78, 0x5b, 0x10, 0x9e, 0xa4, 0x26, 0x22, 0xc0, 0xd7, 0xe3,
0x23, 0xf4, 0xb8, 0x52, 0xe5, 0xbd, 0xe3, 0xa8, 0xf8, 0x0e, 0x10, 0xb1, 0x3f, 0x6c, 0xf5, 0x0e,
0xd1, 0xe3, 0x4a, 0x55, 0xfb, 0x66, 0x86, 0x77, 0x9b, 0xf4, 0x16, 0xef, 0xbd, 0x7e, 0x8a, 0xb7,
0xb8, 0xe7, 0x1c, 0x60, 0x0d, 0x31, 0xa7, 0x58, 0x47, 0x86, 0xcf, 0x51, 0x47, 0x56, 0xc1, 0xd8,
0x53, 0xc3, 0xa2, 0xe8, 0x5c, 0xba, 0x8c, 0x7c, 0xe4, 0x34, 0x39, 0x38, 0x42, 0xc0, 0x32, 0x58,
0xd8, 0xc0, 0x4e, 0x40, 0x76, 0xb0, 0x43, 0x8a, 0x1e, 0xc1, 0xc1, 0xa1, 0xd3, 0x8c, 0xaa, 0x44,
0x4e, 0xdc, 0xcd, 0xfd, 0x18, 0xa4, 0xbb, 0x11, 0x4a, 0x43, 0xfd, 0x98, 0xb0, 0x08, 0xe6, 0xcd,
0x26, 0xae, 0xd3, 0x17, 0x78, 0xdb, 0x3d, 0xc0, 0x7e, 0x9b, 0x6c, 0x85, 0xac, 0x5a, 0xe4, 0xc4,
0xa7, 0x1c, 0x47, 0x10, 0x9d, 0x70, 0x8c, 0x86, 0xb2, 0x2c, 0xfa, 0xa0, 0x5b, 0x6e, 0x48, 0xb0,
0x27, 0xbc, 0x80, 0x2f, 0xa6, 0x6f, 0x9e, 0x26, 0x43, 0xc4, 0x2d, 0x7e, 0x3b, 0x68, 0x86, 0x1a,
0xca, 0xd0, 0x20, 0x02, 0x0b, 0x46, 0xe3, 0x10, 0x07, 0xc4, 0x0d, 0xb1, 0xa0, 0x76, 0x91, 0xa9,
0x09, 0x0f, 0x90, 0x13, 0x83, 0x92, 0x82, 0xfd, 0xc8, 0xf0, 0xed, 0xb8, 0xd5, 0x35, 0xda, 0xc4,
0xb7, 0xad, 0x6a, 0x74, 0xeb, 0x0b, 0xb9, 0x71, 0xda, 0xc4, 0xd7, 0x09, 0x15, 0x48, 0x22, 0xe9,
0x3d, 0xd8, 0x6b, 0xbd, 0x8d, 0x36, 0xd9, 0x57, 0x14, 0xc6, 0x1d, 0xd0, 0xad, 0x3b, 0xed, 0x54,
0xb7, 0x4e, 0x29, 0xf0, 0x5b, 0xa2, 0xc8, 0xba, 0xdb, 0xc4, 0xca, 0x65, 0x96, 0x6e, 0xe1, 0x06,
0x63, 0xec, 0x5d, 0x97, 0x5e, 0xfe, 0x29, 0x6c, 0x2f, 0xfa, 0x4d, 0x7c, 0xcc, 0xc8, 0x57, 0xd2,
0x27, 0x8b, 0x3e, 0x39, 0x9c, 0x9b, 0x44, 0x42, 0x2b, 0xd3, 0x4a, 0x33, 0x81, 0xab, 0xe9, 0x46,
0x5f, 0x68, 0xd3, 0xb8, 0x4e, 0x3f, 0x1a, 0xdd, 0x0b, 0x9e, 0x2e, 0xda, 0xc3, 0xb1, 0xac, 0xa8,
0x2c, 0x2b, 0xc2, 0x5e, 0x44, 0x39, 0x66, 0xbd, 0x1f, 0x4f, 0x48, 0x8a, 0x02, 0x6d, 0x30, 0x7f,
0x92, 0xa2, 0x13, 0x9d, 0x65, 0xa6, 0x23, 0xdc, 0x36, 0xae, 0xe7, 0x12, 0xd7, 0x69, 0xea, 0xbd,
0x2c, 0x0b, 0x92, 0x59, 0x01, 0x5a, 0x9a, 0xe9, 0xff, 0x71, 0x7e, 0x6f, 0xb0, 0x1c, 0xa5, 0xfb,
0xe3, 0x5e, 0x92, 0x45, 0x30, 0x7d, 0x41, 0x65, 0x9d, 0x7a, 0x32, 0xcd, 0x1a, 0x93, 0x10, 0x0e,
0x1c, 0x6f, 0xef, 0x33, 0xb9, 0xee, 0xc3, 0xa5, 0x1d, 0x6d, 0xdc, 0xfb, 0xb3, 0xfd, 0xbe, 0x39,
0xf8, 0x55, 0x81, 0x6f, 0x77, 0x02, 0x1e, 0x2f, 0x26, 0x4e, 0xf7, 0x4b, 0x03, 0x9b, 0x7d, 0x4e,
0x16, 0xc1, 0x70, 0x2b, 0xd5, 0x9c, 0x33, 0x85, 0x5b, 0x67, 0xf5, 0xe6, 0x5c, 0x28, 0xcb, 0xa4,
0x1d, 0x57, 0x91, 0xa7, 0xa2, 0xd0, 0x6c, 0xb3, 0x2f, 0x77, 0xb7, 0xd3, 0x67, 0x27, 0x4e, 0x55,
0x9d, 0x03, 0x34, 0x94, 0x62, 0xd0, 0x27, 0x3a, 0x69, 0xa9, 0x12, 0x87, 0xe0, 0xa8, 0x11, 0x10,
0x36, 0x38, 0x25, 0xa4, 0x87, 0x14, 0xa6, 0xa1, 0x7e, 0xe4, 0xac, 0xa6, 0xed, 0x3f, 0xc7, 0x9e,
0xf2, 0xca, 0x59, 0x9a, 0x84, 0xc2, 0x32, 0x9a, 0x8c, 0x0c, 0x1f, 0x82, 0x99, 0xf8, 0xf5, 0xa0,
0xe0, 0xb7, 0x3d, 0xa2, 0xdc, 0x67, 0x77, 0xa1, 0x58, 0x60, 0xe2, 0xf7, 0x90, 0x3a, 0xf5, 0xd3,
0x02, 0x23, 0xe2, 0xa1, 0x05, 0xe6, 0x1f, 0xb7, 0x7d, 0xe2, 0xe4, 0x9d, 0xfa, 0x73, 0xec, 0x35,
0xf2, 0xc7, 0x04, 0x87, 0xca, 0xeb, 0x4c, 0x44, 0x68, 0xbf, 0x3f, 0xa4, 0x10, 0x7d, 0x87, 0x63,
0xf4, 0x1d, 0x0a, 0xd2, 0x50, 0x96, 0x48, 0x4b, 0x49, 0x25, 0xc0, 0x4f, 0x7c, 0x82, 0x95, 0x87,
0xe9, 0xeb, 0xaa, 0x15, 0x60, 0xfd, 0xd0, 0xa7, 0xbb, 0x13, 0x63, 0xc4, 0x1d, 0xf1, 0x83, 0xa0,
0xdd, 0x22, 0xac, 0xab, 0x51, 0xde, 0x4f, 0x1f, 0xe3, 0x93, 0x1d, 0xe1, 0x28, 0x9d, 0xf5, 0x41,
0xc2, 0x8e, 0x08, 0xe4, 0xd5, 0x9f, 0xe6, 0x84, 0xef, 0xc0, 0x70, 0x0e, 0x4c, 0x95, 0xca, 0x76,
0xad, 0x6a, 0x1b, 0xc8, 0x36, 0xd7, 0xe4, 0x21, 0x78, 0x11, 0xc0, 0x62, 0xa9, 0x68, 0x17, 0x0d,
0x8b, 0x1b, 0x6b, 0xa6, 0x5d, 0x58, 0x93, 0x01, 0x94, 0xc1, 0x34, 0x32, 0x05, 0xcb, 0x14, 0xb5,
0x54, 0x8b, 0x8f, 0x6c, 0x13, 0x6d, 0x71, 0xcb, 0x05, 0xb8, 0x0c, 0xae, 0x55, 0x8b, 0x8f, 0x1e,
0x6f, 0x17, 0x39, 0xa6, 0x66, 0x94, 0xd6, 0x6a, 0xc8, 0xdc, 0x2a, 0x3f, 0x31, 0x6b, 0x6b, 0x86,
0x6d, 0xc8, 0x8b, 0x70, 0x1e, 0xcc, 0x54, 0x8d, 0x27, 0x66, 0xad, 0x5a, 0x32, 0x2a, 0xd5, 0x8d,
0xb2, 0x2d, 0x2f, 0xc1, 0x1b, 0xe0, 0x3a, 0x15, 0x2e, 0x23, 0xb3, 0x16, 0x4f, 0xb0, 0x8e, 0xca,
0x5b, 0x3d, 0x88, 0x0a, 0x2f, 0x83, 0xc5, 0xfe, 0xae, 0x65, 0xca, 0xce, 0x4c, 0x69, 0xa0, 0xc2,
0x46, 0x31, 0x9e, 0x73, 0x05, 0xde, 0x05, 0xaf, 0x9c, 0x16, 0x15, 0x1b, 0x57, 0xed, 0x72, 0xa5,
0x66, 0x3c, 0x32, 0x4b, 0xb6, 0x7c, 0x1b, 0x5e, 0x07, 0x97, 0xf3, 0x96, 0x51, 0xd8, 0xdc, 0x28,
0x5b, 0x66, 0xad, 0x62, 0x9a, 0xa8, 0x56, 0x29, 0x23, 0xbb, 0x66, 0x3f, 0xab, 0xa1, 0x67, 0x72,
0x03, 0xaa, 0xe0, 0xea, 0x76, 0x69, 0x30, 0x00, 0xc3, 0x2b, 0x60, 0x71, 0xcd, 0xb4, 0x8c, 0x0f,
0x32, 0xae, 0x17, 0x12, 0xbc, 0x06, 0x2e, 0x6d, 0x97, 0xfa, 0x7b, 0x3f, 0x95, 0x56, 0xff, 0x0e,
0xc0, 0x08, 0xed, 0xfb, 0xa1, 0x02, 0x2e, 0xc4, 0x7b, 0x5b, 0x2e, 0x99, 0xb5, 0xf5, 0xb2, 0x65,
0x95, 0x9f, 0x9a, 0x48, 0x1e, 0x8a, 0x56, 0x93, 0xf1, 0xd4, 0xb6, 0x4b, 0x76, 0xd1, 0xaa, 0xd9,
0xa8, 0xf8, 0xe8, 0x91, 0x89, 0x7a, 0x3b, 0x24, 0x41, 0x08, 0x66, 0x63, 0x82, 0x65, 0x1a, 0x6b,
0x26, 0x92, 0x87, 0xe1, 0x6d, 0x70, 0x2b, 0x69, 0x1b, 0x44, 0xcf, 0x89, 0xf4, 0xc7, 0xdb, 0x65,
0xb4, 0xbd, 0x25, 0x8f, 0xd0, 0x43, 0x13, 0xdb, 0x0c, 0xcb, 0x92, 0x47, 0xe1, 0x4d, 0xa0, 0xc6,
0x5b, 0x2c, 0xec, 0x6e, 0x22, 0x72, 0x00, 0x1f, 0x80, 0x37, 0xce, 0x00, 0x0d, 0x8a, 0x62, 0x8a,
0xa6, 0xa4, 0x0f, 0x37, 0x5a, 0xcf, 0x34, 0x7c, 0x1d, 0xbc, 0x36, 0xd0, 0x3d, 0x48, 0x74, 0x06,
0xae, 0x83, 0x7c, 0x1f, 0x16, 0x5f, 0x65, 0x64, 0xe1, 0xe7, 0x32, 0x12, 0x8a, 0xa9, 0xd1, 0x21,
0x2c, 0x20, 0xc3, 0x2e, 0x6c, 0xc8, 0xb3, 0x70, 0x15, 0xbc, 0x3c, 0xf0, 0x38, 0x24, 0x37, 0xa1,
0x01, 0x0d, 0xf0, 0xee, 0xf9, 0xb0, 0x83, 0xc2, 0xc6, 0xf0, 0x25, 0xb0, 0x3c, 0x58, 0x22, 0xda,
0x92, 0x5d, 0xf8, 0x0e, 0x78, 0xf3, 0x2c, 0xd4, 0xa0, 0x29, 0xf6, 0x4e, 0x9f, 0x22, 0x3a, 0x06,
0xfb, 0xf4, 0xd9, 0x1b, 0x8c, 0xa2, 0x07, 0xc3, 0x85, 0xff, 0x07, 0xb4, 0xbe, 0x87, 0x3d, 0xb9,
0x2d, 0x2f, 0x24, 0x78, 0x07, 0xdc, 0x46, 0x46, 0x69, 0xad, 0xbc, 0x55, 0x3b, 0x07, 0xfe, 0x53,
0x09, 0xbe, 0x07, 0xde, 0x3e, 0x1b, 0x38, 0x68, 0x81, 0x9f, 0x49, 0xd0, 0x04, 0xef, 0x9f, 0x7b,
0xbe, 0x41, 0x32, 0x9f, 0x4b, 0xf0, 0x06, 0xb8, 0xd6, 0x9f, 0x1f, 0xe5, 0xe1, 0x0b, 0x09, 0xae,
0x80, 0x9b, 0xa7, 0xce, 0x14, 0x21, 0xbf, 0x94, 0xe0, 0x5b, 0xe0, 0xfe, 0x69, 0x90, 0x41, 0x61,
0xfc, 0x5a, 0x82, 0x0f, 0xc1, 0x83, 0x73, 0xcc, 0x31, 0x48, 0xe0, 0x37, 0xa7, 0xac, 0x23, 0x4a,
0xf6, 0x57, 0x67, 0xaf, 0x23, 0x42, 0xfe, 0x56, 0x82, 0x4b, 0xe0, 0x72, 0x7f, 0x08, 0x3d, 0x13,
0xbf, 0x93, 0xe0, 0x2d, 0xb0, 0x7c, 0xaa, 0x12, 0x85, 0xfd, 0x5e, 0x82, 0x0a, 0x58, 0x28, 0x95,
0x6b, 0xeb, 0x46, 0xd1, 0xaa, 0x3d, 0x2d, 0xda, 0x1b, 0xb5, 0xaa, 0x8d, 0xcc, 0x6a, 0x55, 0xfe,
0xc5, 0x30, 0x0d, 0x25, 0xe1, 0x29, 0x95, 0x23, 0x67, 0x6d, 0xbd, 0x8c, 0x6a, 0x56, 0xf1, 0x89,
0x59, 0xa2, 0xc8, 0x4f, 0x86, 0xe1, 0x1c, 0x00, 0x14, 0x56, 0x29, 0x17, 0x4b, 0x76, 0x55, 0xfe,
0x6e, 0x0e, 0xce, 0x80, 0x09, 0xf3, 0x99, 0x6d, 0xa2, 0x92, 0x61, 0xc9, 0xff, 0xc8, 0xad, 0x1e,
0x80, 0x89, 0xf8, 0xd3, 0x02, 0x1c, 0x03, 0xc3, 0x9b, 0x4f, 0xe4, 0x21, 0x38, 0x09, 0x46, 0x2d,
0xd3, 0xa8, 0x9a, 0xb2, 0x04, 0x17, 0xc0, 0x9c, 0x69, 0x99, 0x05, 0xbb, 0x58, 0x2e, 0xd5, 0xd0,
0x76, 0xa9, 0xc4, 0x2e, 0x4f, 0x19, 0x4c, 0x3f, 0xa5, 0x4f, 0x7e, 0x6c, 0xc9, 0xc1, 0x45, 0x30,
0x6f, 0x95, 0x0b, 0x9b, 0x35, 0x64, 0x14, 0x4c, 0x14, 0x9b, 0x47, 0x28, 0x90, 0x09, 0xc5, 0x96,
0xd1, 0xd5, 0x3c, 0x18, 0x8f, 0xbe, 0x4b, 0xc0, 0x29, 0x30, 0xbe, 0xf9, 0xa4, 0xb6, 0x61, 0x54,
0x37, 0xe4, 0xa1, 0x1e, 0xd2, 0x7c, 0x56, 0x29, 0x22, 0x3a, 0x33, 0x00, 0x63, 0x27, 0x13, 0x4e,
0x83, 0x89, 0x52, 0xb9, 0x56, 0xd8, 0x30, 0x0b, 0x9b, 0x72, 0xee, 0xde, 0x43, 0x30, 0x69, 0x07,
0x8e, 0x17, 0xb6, 0xfc, 0x80, 0xc0, 0x7b, 0xe2, 0x60, 0x36, 0xfa, 0x3a, 0x1a, 0xfd, 0xe0, 0x7b,
0x65, 0xee, 0x64, 0xcc, 0x7f, 0x0b, 0xd4, 0x86, 0x56, 0xa4, 0xd7, 0xa4, 0xfc, 0x85, 0x17, 0x7f,
0x59, 0x1a, 0x7a, 0xf1, 0xf5, 0x92, 0xf4, 0xd5, 0xd7, 0x4b, 0xd2, 0x9f, 0xbf, 0x5e, 0x92, 0x7e,
0xf2, 0xd7, 0xa5, 0xa1, 0x9d, 0x31, 0xf6, 0x83, 0xf1, 0xfd, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff,
0x5c, 0x9f, 0x8c, 0x37, 0x79, 0x1e, 0x00, 0x00,
}

View File

@@ -119,10 +119,8 @@ message Tester {
int32 RoundLimit = 21 [(gogoproto.moretags) = "yaml:\"round-limit\""];
// ExitOnCaseFail is true, then exit tester on first failure.
bool ExitOnCaseFail = 22 [(gogoproto.moretags) = "yaml:\"exit-on-failure\""];
// ConsistencyCheck is true to check consistency (revision, hash).
bool ConsistencyCheck = 23 [(gogoproto.moretags) = "yaml:\"consistency-check\""];
// EnablePprof is true to enable profiler.
bool EnablePprof = 24 [(gogoproto.moretags) = "yaml:\"enable-pprof\""];
bool EnablePprof = 23 [(gogoproto.moretags) = "yaml:\"enable-pprof\""];
// CaseDelayMs is the delay duration after failure is injected.
// Useful when triggering snapshot or no-op failure cases.
@@ -141,27 +139,32 @@ message Tester {
// ExternalExecPath is a path of script for enabling/disabling an external fault injector.
string ExternalExecPath = 42 [(gogoproto.moretags) = "yaml:\"external-exec-path\""];
// StressTypes is the list of stresser names:
// keys, lease, nop, election-runner, watch-runner, lock-racer-runner, lease-runner.
repeated string StressTypes = 101 [(gogoproto.moretags) = "yaml:\"stress-types\""];
// Stressers is the list of stresser types:
// KV, LEASE, ELECTION_RUNNER, WATCH_RUNNER, LOCK_RACER_RUNNER, LEASE_RUNNER.
repeated string Stressers = 101 [(gogoproto.moretags) = "yaml:\"stressers\""];
// Checkers is the list of consistency checker types:
// KV_HASH, LEASE_EXPIRE, NO_CHECK, RUNNER.
// Leave empty to skip consistency checks.
repeated string Checkers = 102 [(gogoproto.moretags) = "yaml:\"checkers\""];
// StressKeySize is the size of each small key written into etcd.
int32 StressKeySize = 102 [(gogoproto.moretags) = "yaml:\"stress-key-size\""];
int32 StressKeySize = 201 [(gogoproto.moretags) = "yaml:\"stress-key-size\""];
// StressKeySizeLarge is the size of each large key written into etcd.
int32 StressKeySizeLarge = 103 [(gogoproto.moretags) = "yaml:\"stress-key-size-large\""];
int32 StressKeySizeLarge = 202 [(gogoproto.moretags) = "yaml:\"stress-key-size-large\""];
// StressKeySuffixRange is the count of key range written into etcd.
// Stress keys are created with "fmt.Sprintf("foo%016x", rand.Intn(keySuffixRange)".
int32 StressKeySuffixRange = 104 [(gogoproto.moretags) = "yaml:\"stress-key-suffix-range\""];
int32 StressKeySuffixRange = 203 [(gogoproto.moretags) = "yaml:\"stress-key-suffix-range\""];
// StressKeySuffixRangeTxn is the count of key range written into etcd txn (max 100).
// Stress keys are created with "fmt.Sprintf("/k%03d", i)".
int32 StressKeySuffixRangeTxn = 105 [(gogoproto.moretags) = "yaml:\"stress-key-suffix-range-txn\""];
int32 StressKeySuffixRangeTxn = 204 [(gogoproto.moretags) = "yaml:\"stress-key-suffix-range-txn\""];
// StressKeyTxnOps is the number of operations per a transaction (max 64).
int32 StressKeyTxnOps = 106 [(gogoproto.moretags) = "yaml:\"stress-key-txn-ops\""];
int32 StressKeyTxnOps = 205 [(gogoproto.moretags) = "yaml:\"stress-key-txn-ops\""];
// StressClients is the number of concurrent stressing clients
// with "one" shared TCP connection.
int32 StressClients = 201 [(gogoproto.moretags) = "yaml:\"stress-clients\""];
int32 StressClients = 301 [(gogoproto.moretags) = "yaml:\"stress-clients\""];
// StressQPS is the maximum number of stresser requests per second.
int32 StressQPS = 202 [(gogoproto.moretags) = "yaml:\"stress-qps\""];
int32 StressQPS = 302 [(gogoproto.moretags) = "yaml:\"stress-qps\""];
}
message Etcd {
@@ -592,7 +595,7 @@ enum Case {
EXTERNAL = 500;
}
enum StressType {
enum Stresser {
KV = 0;
LEASE = 1;
ELECTION_RUNNER = 2;
@@ -600,3 +603,10 @@ enum StressType {
LOCK_RACER_RUNNER = 4;
LEASE_RUNNER = 5;
}
enum Checker {
KV_HASH = 0;
LEASE_EXPIRE = 1;
RUNNER = 2;
NO_CHECK = 3;
}