blob: 3d35553bc6181cf0a8674795aef5301021dc32a8 [file] [log] [blame]
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: test/custom_results/graphics/result.proto
package graphics
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
timestamp "github.com/golang/protobuf/ptypes/timestamp"
math "math"
)
// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf
// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
type Result_ExecutionEnvironment int32
const (
Result_UNKNOWN Result_ExecutionEnvironment = 0
Result_HOST Result_ExecutionEnvironment = 1
Result_TERMINA Result_ExecutionEnvironment = 2
Result_CROSTINI Result_ExecutionEnvironment = 3
Result_STEAM Result_ExecutionEnvironment = 4
Result_ARC Result_ExecutionEnvironment = 5
Result_ARCVM Result_ExecutionEnvironment = 6
Result_CROUTON Result_ExecutionEnvironment = 7
Result_CROSVM Result_ExecutionEnvironment = 8
)
var Result_ExecutionEnvironment_name = map[int32]string{
0: "UNKNOWN",
1: "HOST",
2: "TERMINA",
3: "CROSTINI",
4: "STEAM",
5: "ARC",
6: "ARCVM",
7: "CROUTON",
8: "CROSVM",
}
var Result_ExecutionEnvironment_value = map[string]int32{
"UNKNOWN": 0,
"HOST": 1,
"TERMINA": 2,
"CROSTINI": 3,
"STEAM": 4,
"ARC": 5,
"ARCVM": 6,
"CROUTON": 7,
"CROSVM": 8,
}
func (x Result_ExecutionEnvironment) String() string {
return proto.EnumName(Result_ExecutionEnvironment_name, int32(x))
}
func (Result_ExecutionEnvironment) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_c3a06ed77c11a28f, []int{0, 0}
}
// Result of a single test, trace, or benchmark run.
// Next Tag: 19
type Result struct {
// Global unique result identifier.
Id *ResultId `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
// When the result started and finished being collected.
StartTime *timestamp.Timestamp `protobuf:"bytes,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
EndTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
// Machine which generated the result.
Machine *MachineId `protobuf:"bytes,4,opt,name=machine,proto3" json:"machine,omitempty"`
// Installed software at the time the result was collected.
SoftwareConfig *SoftwareConfigId `protobuf:"bytes,5,opt,name=software_config,json=softwareConfig,proto3" json:"software_config,omitempty"`
ExecutionEnvironment Result_ExecutionEnvironment `protobuf:"varint,6,opt,name=execution_environment,json=executionEnvironment,proto3,enum=test.custom_results.graphics.Result_ExecutionEnvironment" json:"execution_environment,omitempty"`
// Lab or user originating this result.
// Format:
// - lab/LABNAME
// - user/USERNAME
InvocationSource string `protobuf:"bytes,7,opt,name=invocation_source,json=invocationSource,proto3" json:"invocation_source,omitempty"`
// Details on the invocation if it was generated as part of a test.
// TODO(davidriley): Flesh these out better.
// TODO(davidriley): Record test status and error messages.
TestId string `protobuf:"bytes,17,opt,name=test_id,json=testId,proto3" json:"test_id,omitempty"`
TestName string `protobuf:"bytes,8,opt,name=test_name,json=testName,proto3" json:"test_name,omitempty"`
TestJobId string `protobuf:"bytes,9,opt,name=test_job_id,json=testJobId,proto3" json:"test_job_id,omitempty"`
// Command line used invoke the test.
CommandLine string `protobuf:"bytes,10,opt,name=command_line,json=commandLine,proto3" json:"command_line,omitempty"`
// Thing being tested.
Benchmark string `protobuf:"bytes,11,opt,name=benchmark,proto3" json:"benchmark,omitempty"`
Trace *TraceId `protobuf:"bytes,12,opt,name=trace,proto3" json:"trace,omitempty"`
// fps, frames, time
// usec for frame N
// cpu/gpu utilization/frequency
Metrics []*Result_Metric `protobuf:"bytes,13,rep,name=metrics,proto3" json:"metrics,omitempty"`
// Identify the most interesting metric to show by default for a given result.
PrimaryMetricName string `protobuf:"bytes,14,opt,name=primary_metric_name,json=primaryMetricName,proto3" json:"primary_metric_name,omitempty"`
Labels []*Result_Label `protobuf:"bytes,15,rep,name=labels,proto3" json:"labels,omitempty"`
// Software that was explicitly overriden from the normal system software
// for a given result.
Overrides *SoftwareOverridesConfig `protobuf:"bytes,18,opt,name=overrides,proto3" json:"overrides,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Result) Reset() { *m = Result{} }
func (m *Result) String() string { return proto.CompactTextString(m) }
func (*Result) ProtoMessage() {}
func (*Result) Descriptor() ([]byte, []int) {
return fileDescriptor_c3a06ed77c11a28f, []int{0}
}
func (m *Result) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Result.Unmarshal(m, b)
}
func (m *Result) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Result.Marshal(b, m, deterministic)
}
func (m *Result) XXX_Merge(src proto.Message) {
xxx_messageInfo_Result.Merge(m, src)
}
func (m *Result) XXX_Size() int {
return xxx_messageInfo_Result.Size(m)
}
func (m *Result) XXX_DiscardUnknown() {
xxx_messageInfo_Result.DiscardUnknown(m)
}
var xxx_messageInfo_Result proto.InternalMessageInfo
func (m *Result) GetId() *ResultId {
if m != nil {
return m.Id
}
return nil
}
func (m *Result) GetStartTime() *timestamp.Timestamp {
if m != nil {
return m.StartTime
}
return nil
}
func (m *Result) GetEndTime() *timestamp.Timestamp {
if m != nil {
return m.EndTime
}
return nil
}
func (m *Result) GetMachine() *MachineId {
if m != nil {
return m.Machine
}
return nil
}
func (m *Result) GetSoftwareConfig() *SoftwareConfigId {
if m != nil {
return m.SoftwareConfig
}
return nil
}
func (m *Result) GetExecutionEnvironment() Result_ExecutionEnvironment {
if m != nil {
return m.ExecutionEnvironment
}
return Result_UNKNOWN
}
func (m *Result) GetInvocationSource() string {
if m != nil {
return m.InvocationSource
}
return ""
}
func (m *Result) GetTestId() string {
if m != nil {
return m.TestId
}
return ""
}
func (m *Result) GetTestName() string {
if m != nil {
return m.TestName
}
return ""
}
func (m *Result) GetTestJobId() string {
if m != nil {
return m.TestJobId
}
return ""
}
func (m *Result) GetCommandLine() string {
if m != nil {
return m.CommandLine
}
return ""
}
func (m *Result) GetBenchmark() string {
if m != nil {
return m.Benchmark
}
return ""
}
func (m *Result) GetTrace() *TraceId {
if m != nil {
return m.Trace
}
return nil
}
func (m *Result) GetMetrics() []*Result_Metric {
if m != nil {
return m.Metrics
}
return nil
}
func (m *Result) GetPrimaryMetricName() string {
if m != nil {
return m.PrimaryMetricName
}
return ""
}
func (m *Result) GetLabels() []*Result_Label {
if m != nil {
return m.Labels
}
return nil
}
func (m *Result) GetOverrides() *SoftwareOverridesConfig {
if m != nil {
return m.Overrides
}
return nil
}
// TODO(davidriley): This unit could be made into a separate Message
// a) This stanza is directly part of TraceResult with TraceResult repeated.
// b) This stanze becomes a separate repeated Message within TraceResult.
// c) This stanza becomes a separate Message with TraceResultId link to them.
// Next Tag: 7
type Result_Metric struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Index uint64 `protobuf:"varint,2,opt,name=index,proto3" json:"index,omitempty"`
Value float64 `protobuf:"fixed64,3,opt,name=value,proto3" json:"value,omitempty"`
Units string `protobuf:"bytes,4,opt,name=units,proto3" json:"units,omitempty"`
LargerIsBetter bool `protobuf:"varint,5,opt,name=larger_is_better,json=largerIsBetter,proto3" json:"larger_is_better,omitempty"`
ExternallyGathered bool `protobuf:"varint,6,opt,name=externally_gathered,json=externallyGathered,proto3" json:"externally_gathered,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Result_Metric) Reset() { *m = Result_Metric{} }
func (m *Result_Metric) String() string { return proto.CompactTextString(m) }
func (*Result_Metric) ProtoMessage() {}
func (*Result_Metric) Descriptor() ([]byte, []int) {
return fileDescriptor_c3a06ed77c11a28f, []int{0, 0}
}
func (m *Result_Metric) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Result_Metric.Unmarshal(m, b)
}
func (m *Result_Metric) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Result_Metric.Marshal(b, m, deterministic)
}
func (m *Result_Metric) XXX_Merge(src proto.Message) {
xxx_messageInfo_Result_Metric.Merge(m, src)
}
func (m *Result_Metric) XXX_Size() int {
return xxx_messageInfo_Result_Metric.Size(m)
}
func (m *Result_Metric) XXX_DiscardUnknown() {
xxx_messageInfo_Result_Metric.DiscardUnknown(m)
}
var xxx_messageInfo_Result_Metric proto.InternalMessageInfo
func (m *Result_Metric) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *Result_Metric) GetIndex() uint64 {
if m != nil {
return m.Index
}
return 0
}
func (m *Result_Metric) GetValue() float64 {
if m != nil {
return m.Value
}
return 0
}
func (m *Result_Metric) GetUnits() string {
if m != nil {
return m.Units
}
return ""
}
func (m *Result_Metric) GetLargerIsBetter() bool {
if m != nil {
return m.LargerIsBetter
}
return false
}
func (m *Result_Metric) GetExternallyGathered() bool {
if m != nil {
return m.ExternallyGathered
}
return false
}
// General non-numeric details collected about the environment or system
// state. eg Interesting environment variables, glxinfo info.
// Next Tag: 4
type Result_Label struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
Grouping string `protobuf:"bytes,3,opt,name=grouping,proto3" json:"grouping,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Result_Label) Reset() { *m = Result_Label{} }
func (m *Result_Label) String() string { return proto.CompactTextString(m) }
func (*Result_Label) ProtoMessage() {}
func (*Result_Label) Descriptor() ([]byte, []int) {
return fileDescriptor_c3a06ed77c11a28f, []int{0, 1}
}
func (m *Result_Label) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Result_Label.Unmarshal(m, b)
}
func (m *Result_Label) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Result_Label.Marshal(b, m, deterministic)
}
func (m *Result_Label) XXX_Merge(src proto.Message) {
xxx_messageInfo_Result_Label.Merge(m, src)
}
func (m *Result_Label) XXX_Size() int {
return xxx_messageInfo_Result_Label.Size(m)
}
func (m *Result_Label) XXX_DiscardUnknown() {
xxx_messageInfo_Result_Label.DiscardUnknown(m)
}
var xxx_messageInfo_Result_Label proto.InternalMessageInfo
func (m *Result_Label) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *Result_Label) GetValue() string {
if m != nil {
return m.Value
}
return ""
}
func (m *Result_Label) GetGrouping() string {
if m != nil {
return m.Grouping
}
return ""
}
type ResultList struct {
Value []*Result `protobuf:"bytes,1,rep,name=value,proto3" json:"value,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ResultList) Reset() { *m = ResultList{} }
func (m *ResultList) String() string { return proto.CompactTextString(m) }
func (*ResultList) ProtoMessage() {}
func (*ResultList) Descriptor() ([]byte, []int) {
return fileDescriptor_c3a06ed77c11a28f, []int{1}
}
func (m *ResultList) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ResultList.Unmarshal(m, b)
}
func (m *ResultList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ResultList.Marshal(b, m, deterministic)
}
func (m *ResultList) XXX_Merge(src proto.Message) {
xxx_messageInfo_ResultList.Merge(m, src)
}
func (m *ResultList) XXX_Size() int {
return xxx_messageInfo_ResultList.Size(m)
}
func (m *ResultList) XXX_DiscardUnknown() {
xxx_messageInfo_ResultList.DiscardUnknown(m)
}
var xxx_messageInfo_ResultList proto.InternalMessageInfo
func (m *ResultList) GetValue() []*Result {
if m != nil {
return m.Value
}
return nil
}
func init() {
proto.RegisterEnum("test.custom_results.graphics.Result_ExecutionEnvironment", Result_ExecutionEnvironment_name, Result_ExecutionEnvironment_value)
proto.RegisterType((*Result)(nil), "test.custom_results.graphics.Result")
proto.RegisterType((*Result_Metric)(nil), "test.custom_results.graphics.Result.Metric")
proto.RegisterType((*Result_Label)(nil), "test.custom_results.graphics.Result.Label")
proto.RegisterType((*ResultList)(nil), "test.custom_results.graphics.ResultList")
}
func init() {
proto.RegisterFile("test/custom_results/graphics/result.proto", fileDescriptor_c3a06ed77c11a28f)
}
var fileDescriptor_c3a06ed77c11a28f = []byte{
// 828 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x6d, 0x6f, 0xe3, 0x44,
0x10, 0xc6, 0x6d, 0x5e, 0x27, 0xa5, 0xe7, 0xee, 0x15, 0x61, 0x85, 0x13, 0x94, 0x8a, 0x97, 0x40,
0xc1, 0x96, 0x8a, 0x8a, 0x74, 0xc0, 0x97, 0x34, 0x0a, 0xd4, 0xd0, 0x24, 0xd2, 0x26, 0x77, 0x27,
0xf1, 0xc5, 0xda, 0xd8, 0x5b, 0x67, 0x21, 0xde, 0x8d, 0x76, 0x37, 0xa5, 0xf7, 0x8d, 0xbf, 0xc5,
0x8f, 0xe1, 0xbf, 0x20, 0xcf, 0x3a, 0x8d, 0x0e, 0x1d, 0x21, 0xdf, 0x3c, 0xcf, 0x3c, 0xcf, 0xec,
0xcc, 0xb3, 0x3b, 0x32, 0x7c, 0x61, 0xb9, 0xb1, 0x51, 0xba, 0x36, 0x56, 0x15, 0x89, 0xe6, 0x66,
0xbd, 0xb4, 0x26, 0xca, 0x35, 0x5b, 0x2d, 0x44, 0x6a, 0x22, 0x07, 0x84, 0x2b, 0xad, 0xac, 0x22,
0xcf, 0x4a, 0x6a, 0xf8, 0x26, 0x35, 0xdc, 0x50, 0xbb, 0x1f, 0xe5, 0x4a, 0xe5, 0x4b, 0x1e, 0x21,
0x77, 0xbe, 0xbe, 0x8b, 0xac, 0x28, 0xb8, 0xb1, 0xac, 0x58, 0x39, 0x79, 0xf7, 0xeb, 0x9d, 0x27,
0x15, 0x2c, 0x5d, 0x08, 0xc9, 0x13, 0x91, 0x55, 0xf4, 0xaf, 0xf6, 0x68, 0x6c, 0xcb, 0xbe, 0xda,
0xc9, 0x36, 0xea, 0xce, 0xfe, 0xc1, 0x34, 0x4f, 0x52, 0x25, 0xef, 0x44, 0xbe, 0x95, 0xfd, 0xb0,
0x9f, 0x4c, 0xdd, 0x73, 0xad, 0x45, 0xc6, 0x4d, 0x55, 0xa0, 0x52, 0x5f, 0xec, 0x54, 0x5b, 0xcd,
0xd2, 0xed, 0x3c, 0xe7, 0x7f, 0x03, 0x34, 0x28, 0x72, 0xc8, 0xb7, 0x70, 0x20, 0xb2, 0xc0, 0x3b,
0xf3, 0x7a, 0x9d, 0xcb, 0xcf, 0xc2, 0x5d, 0xae, 0x86, 0x4e, 0x11, 0x67, 0xf4, 0x40, 0x64, 0xe4,
0x39, 0x80, 0xb1, 0x4c, 0xdb, 0xa4, 0xb4, 0x36, 0x38, 0x40, 0x7d, 0x37, 0x74, 0xbe, 0x87, 0x1b,
0xdf, 0xc3, 0xd9, 0xc6, 0x77, 0xda, 0x46, 0x76, 0x19, 0x93, 0x2b, 0x68, 0x71, 0x99, 0x39, 0xe1,
0xe1, 0xff, 0x0a, 0x9b, 0x5c, 0x66, 0x28, 0xeb, 0x43, 0xb3, 0xba, 0x98, 0xa0, 0x86, 0xaa, 0xcf,
0x77, 0xb7, 0x3b, 0x72, 0xe4, 0x38, 0xa3, 0x1b, 0x1d, 0x79, 0x05, 0x4f, 0xfe, 0x65, 0x7f, 0x50,
0xc7, 0x52, 0xe1, 0xee, 0x52, 0xd3, 0x4a, 0x34, 0x40, 0x4d, 0x9c, 0xd1, 0x63, 0xf3, 0x06, 0x42,
0x24, 0xbc, 0xc7, 0x1f, 0x78, 0xba, 0xb6, 0x42, 0xc9, 0x84, 0xcb, 0x7b, 0xa1, 0x95, 0x2c, 0xb8,
0xb4, 0x41, 0xe3, 0xcc, 0xeb, 0x1d, 0x5f, 0x3e, 0xdf, 0xc7, 0xd8, 0x70, 0xb8, 0xa9, 0x30, 0xdc,
0x16, 0xa0, 0xa7, 0xfc, 0x2d, 0x28, 0xb9, 0x80, 0x13, 0x21, 0xef, 0x55, 0xca, 0xf0, 0x40, 0xa3,
0xd6, 0x3a, 0xe5, 0x41, 0xf3, 0xcc, 0xeb, 0xb5, 0xa9, 0xbf, 0x4d, 0x4c, 0x11, 0x27, 0xef, 0x43,
0xb3, 0x3c, 0x3e, 0x11, 0x59, 0x70, 0x82, 0x94, 0x46, 0x19, 0xc6, 0x19, 0xf9, 0x00, 0xda, 0x98,
0x90, 0xac, 0xe0, 0x41, 0x0b, 0x53, 0xad, 0x12, 0x18, 0xb3, 0x82, 0x93, 0x0f, 0xa1, 0x83, 0xc9,
0xdf, 0xd4, 0xbc, 0x54, 0xb6, 0x31, 0x8d, 0xfc, 0x9f, 0xd5, 0x3c, 0xce, 0xc8, 0xc7, 0x70, 0x94,
0xaa, 0xa2, 0x60, 0x32, 0x4b, 0x96, 0xe5, 0x9d, 0x00, 0x12, 0x3a, 0x15, 0x76, 0x5b, 0xda, 0xfd,
0x0c, 0xda, 0x73, 0x2e, 0xd3, 0x45, 0xc1, 0xf4, 0xef, 0x41, 0xc7, 0x15, 0x78, 0x04, 0xc8, 0xf7,
0x50, 0xc7, 0x67, 0x19, 0x1c, 0xe1, 0x15, 0x7c, 0xba, 0xdb, 0xa3, 0x59, 0x49, 0x8d, 0x33, 0xea,
0x34, 0x64, 0x08, 0xcd, 0x82, 0x5b, 0x2d, 0x52, 0x13, 0xbc, 0x7b, 0x76, 0xd8, 0xeb, 0x5c, 0x5e,
0xec, 0x65, 0xf1, 0x08, 0x35, 0x74, 0xa3, 0x25, 0x21, 0x3c, 0x5d, 0x69, 0x51, 0x30, 0xfd, 0x3a,
0x71, 0x90, 0xf3, 0xe2, 0x18, 0x7b, 0x3d, 0xa9, 0x52, 0x4e, 0x84, 0xa6, 0x5c, 0x43, 0x63, 0xc9,
0xe6, 0x7c, 0x69, 0x82, 0x27, 0x78, 0xea, 0x97, 0x7b, 0x9d, 0x7a, 0x5b, 0x4a, 0x68, 0xa5, 0x24,
0x53, 0x68, 0x3f, 0xee, 0x70, 0x40, 0x70, 0xf6, 0xab, 0xfd, 0x9e, 0xdf, 0x64, 0x23, 0x73, 0xaf,
0x8e, 0x6e, 0xeb, 0x74, 0xff, 0xf2, 0xa0, 0xe1, 0xfa, 0x24, 0x04, 0x6a, 0x38, 0x84, 0x87, 0x43,
0xe0, 0x37, 0x39, 0x85, 0xba, 0x90, 0x19, 0x7f, 0xc0, 0x45, 0xad, 0x51, 0x17, 0x94, 0xe8, 0x3d,
0x5b, 0xae, 0xdd, 0x16, 0x7a, 0xd4, 0x05, 0x25, 0xba, 0x96, 0xc2, 0x1a, 0xdc, 0xb2, 0x36, 0x75,
0x01, 0xe9, 0x81, 0xbf, 0x64, 0x3a, 0xe7, 0x3a, 0x11, 0x26, 0x99, 0x73, 0x6b, 0xb9, 0xc6, 0xdd,
0x69, 0xd1, 0x63, 0x87, 0xc7, 0xe6, 0x1a, 0x51, 0x12, 0xc1, 0x53, 0xfe, 0x60, 0xb9, 0x96, 0x6c,
0xb9, 0x7c, 0x9d, 0xe4, 0xcc, 0x2e, 0xb8, 0xe6, 0x19, 0x6e, 0x42, 0x8b, 0x92, 0x6d, 0xea, 0xa7,
0x2a, 0xd3, 0x1d, 0x41, 0x1d, 0x1d, 0xfa, 0xaf, 0xce, 0x5d, 0x8f, 0x07, 0xae, 0x1b, 0xd7, 0x63,
0x17, 0x5a, 0xb9, 0x56, 0xeb, 0x95, 0x90, 0x39, 0x36, 0xdf, 0xa6, 0x8f, 0xf1, 0xf9, 0x9f, 0x1e,
0x9c, 0xbe, 0x6d, 0x95, 0x48, 0x07, 0x9a, 0x2f, 0xc6, 0xbf, 0x8c, 0x27, 0xaf, 0xc6, 0xfe, 0x3b,
0xa4, 0x05, 0xb5, 0x9b, 0xc9, 0x74, 0xe6, 0x7b, 0x25, 0x3c, 0x1b, 0xd2, 0x51, 0x3c, 0xee, 0xfb,
0x07, 0xe4, 0x08, 0x5a, 0x03, 0x3a, 0x99, 0xce, 0xe2, 0x71, 0xec, 0x1f, 0x92, 0x36, 0xd4, 0xa7,
0xb3, 0x61, 0x7f, 0xe4, 0xd7, 0x48, 0x13, 0x0e, 0xfb, 0x74, 0xe0, 0xd7, 0x4b, 0xac, 0x4f, 0x07,
0x2f, 0x47, 0x7e, 0xa3, 0x54, 0x0e, 0xe8, 0xe4, 0xc5, 0x6c, 0x32, 0xf6, 0x9b, 0x04, 0xa0, 0x51,
0x2a, 0x5f, 0x8e, 0xfc, 0xd6, 0xf9, 0x0d, 0x80, 0xbb, 0xfa, 0x5b, 0x61, 0x2c, 0xf9, 0x6e, 0x33,
0x82, 0x87, 0x6f, 0xe6, 0x93, 0x7d, 0xde, 0x4c, 0x35, 0xe8, 0xf5, 0xcd, 0xaf, 0x3f, 0xe6, 0x2a,
0x4c, 0x17, 0x5a, 0x15, 0x62, 0x5d, 0x84, 0x4a, 0xe7, 0xd1, 0x26, 0x50, 0x26, 0x12, 0xf2, 0x4e,
0x33, 0xf7, 0x97, 0x8b, 0x72, 0x15, 0xed, 0xfa, 0x05, 0xcc, 0x1b, 0x48, 0xfb, 0xe6, 0x9f, 0x00,
0x00, 0x00, 0xff, 0xff, 0xc7, 0xa4, 0x10, 0xf9, 0x65, 0x07, 0x00, 0x00,
}