blob: 4f95d342ef9ed83372d01c676820b855e40f930a [file] [log] [blame]
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: test_platform/steps/execution.proto
package steps
import (
fmt "fmt"
proto "github.com/golang/protobuf/proto"
test_platform "go.chromium.org/chromiumos/infra/proto/go/test_platform"
common "go.chromium.org/chromiumos/infra/proto/go/test_platform/common"
config "go.chromium.org/chromiumos/infra/proto/go/test_platform/config"
execute "go.chromium.org/chromiumos/infra/proto/go/test_platform/steps/execute"
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 ExecuteRequests struct {
// Each ExecuteRequest is handled independently.
Requests []*ExecuteRequest `protobuf:"bytes,1,rep,name=requests,proto3" json:"requests,omitempty"`
TaggedRequests map[string]*ExecuteRequest `protobuf:"bytes,2,rep,name=tagged_requests,json=taggedRequests,proto3" json:"tagged_requests,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
// Build contains relevant information about the current test platform
// buildbucket build.
Build *execute.Build `protobuf:"bytes,3,opt,name=build,proto3" json:"build,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ExecuteRequests) Reset() { *m = ExecuteRequests{} }
func (m *ExecuteRequests) String() string { return proto.CompactTextString(m) }
func (*ExecuteRequests) ProtoMessage() {}
func (*ExecuteRequests) Descriptor() ([]byte, []int) {
return fileDescriptor_54d6d12c45be2188, []int{0}
}
func (m *ExecuteRequests) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExecuteRequests.Unmarshal(m, b)
}
func (m *ExecuteRequests) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ExecuteRequests.Marshal(b, m, deterministic)
}
func (m *ExecuteRequests) XXX_Merge(src proto.Message) {
xxx_messageInfo_ExecuteRequests.Merge(m, src)
}
func (m *ExecuteRequests) XXX_Size() int {
return xxx_messageInfo_ExecuteRequests.Size(m)
}
func (m *ExecuteRequests) XXX_DiscardUnknown() {
xxx_messageInfo_ExecuteRequests.DiscardUnknown(m)
}
var xxx_messageInfo_ExecuteRequests proto.InternalMessageInfo
func (m *ExecuteRequests) GetRequests() []*ExecuteRequest {
if m != nil {
return m.Requests
}
return nil
}
func (m *ExecuteRequests) GetTaggedRequests() map[string]*ExecuteRequest {
if m != nil {
return m.TaggedRequests
}
return nil
}
func (m *ExecuteRequests) GetBuild() *execute.Build {
if m != nil {
return m.Build
}
return nil
}
type ExecuteResponses struct {
// Each ExecuteResponse corresponds to a single ExecuteRequest handled
// independently.
Responses []*ExecuteResponse `protobuf:"bytes,1,rep,name=responses,proto3" json:"responses,omitempty"`
TaggedResponses map[string]*ExecuteResponse `protobuf:"bytes,2,rep,name=tagged_responses,json=taggedResponses,proto3" json:"tagged_responses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ExecuteResponses) Reset() { *m = ExecuteResponses{} }
func (m *ExecuteResponses) String() string { return proto.CompactTextString(m) }
func (*ExecuteResponses) ProtoMessage() {}
func (*ExecuteResponses) Descriptor() ([]byte, []int) {
return fileDescriptor_54d6d12c45be2188, []int{1}
}
func (m *ExecuteResponses) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExecuteResponses.Unmarshal(m, b)
}
func (m *ExecuteResponses) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ExecuteResponses.Marshal(b, m, deterministic)
}
func (m *ExecuteResponses) XXX_Merge(src proto.Message) {
xxx_messageInfo_ExecuteResponses.Merge(m, src)
}
func (m *ExecuteResponses) XXX_Size() int {
return xxx_messageInfo_ExecuteResponses.Size(m)
}
func (m *ExecuteResponses) XXX_DiscardUnknown() {
xxx_messageInfo_ExecuteResponses.DiscardUnknown(m)
}
var xxx_messageInfo_ExecuteResponses proto.InternalMessageInfo
func (m *ExecuteResponses) GetResponses() []*ExecuteResponse {
if m != nil {
return m.Responses
}
return nil
}
func (m *ExecuteResponses) GetTaggedResponses() map[string]*ExecuteResponse {
if m != nil {
return m.TaggedResponses
}
return nil
}
// ExecuteRequest defines the input of the Execute step.
type ExecuteRequest struct {
// RequestParams are the request-wide parameters for the
// cros_test_platform request. This includes all the request-wide information
// needed in order to execute tests (e.g. labels, retry parameters,
// scheduling parameters).
RequestParams *test_platform.Request_Params `protobuf:"bytes,1,opt,name=request_params,json=requestParams,proto3" json:"request_params,omitempty"`
Enumeration *EnumerationResponse `protobuf:"bytes,2,opt,name=enumeration,proto3" json:"enumeration,omitempty"`
Config *config.Config `protobuf:"bytes,3,opt,name=config,proto3" json:"config,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ExecuteRequest) Reset() { *m = ExecuteRequest{} }
func (m *ExecuteRequest) String() string { return proto.CompactTextString(m) }
func (*ExecuteRequest) ProtoMessage() {}
func (*ExecuteRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_54d6d12c45be2188, []int{2}
}
func (m *ExecuteRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExecuteRequest.Unmarshal(m, b)
}
func (m *ExecuteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ExecuteRequest.Marshal(b, m, deterministic)
}
func (m *ExecuteRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_ExecuteRequest.Merge(m, src)
}
func (m *ExecuteRequest) XXX_Size() int {
return xxx_messageInfo_ExecuteRequest.Size(m)
}
func (m *ExecuteRequest) XXX_DiscardUnknown() {
xxx_messageInfo_ExecuteRequest.DiscardUnknown(m)
}
var xxx_messageInfo_ExecuteRequest proto.InternalMessageInfo
func (m *ExecuteRequest) GetRequestParams() *test_platform.Request_Params {
if m != nil {
return m.RequestParams
}
return nil
}
func (m *ExecuteRequest) GetEnumeration() *EnumerationResponse {
if m != nil {
return m.Enumeration
}
return nil
}
func (m *ExecuteRequest) GetConfig() *config.Config {
if m != nil {
return m.Config
}
return nil
}
// ExecuteResponse defines the output of the Execute step.
type ExecuteResponse struct {
// Use consolidated_results instead.
TaskResults []*ExecuteResponse_TaskResult `protobuf:"bytes,1,rep,name=task_results,json=taskResults,proto3" json:"task_results,omitempty"` // Deprecated: Do not use.
ConsolidatedResults []*ExecuteResponse_ConsolidatedResult `protobuf:"bytes,3,rep,name=consolidated_results,json=consolidatedResults,proto3" json:"consolidated_results,omitempty"`
// State encodes the state of the overall execution, including the ultimate
// verdict (taking into account any sub-task verdicts).
State *test_platform.TaskState `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ExecuteResponse) Reset() { *m = ExecuteResponse{} }
func (m *ExecuteResponse) String() string { return proto.CompactTextString(m) }
func (*ExecuteResponse) ProtoMessage() {}
func (*ExecuteResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_54d6d12c45be2188, []int{3}
}
func (m *ExecuteResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExecuteResponse.Unmarshal(m, b)
}
func (m *ExecuteResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ExecuteResponse.Marshal(b, m, deterministic)
}
func (m *ExecuteResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_ExecuteResponse.Merge(m, src)
}
func (m *ExecuteResponse) XXX_Size() int {
return xxx_messageInfo_ExecuteResponse.Size(m)
}
func (m *ExecuteResponse) XXX_DiscardUnknown() {
xxx_messageInfo_ExecuteResponse.DiscardUnknown(m)
}
var xxx_messageInfo_ExecuteResponse proto.InternalMessageInfo
// Deprecated: Do not use.
func (m *ExecuteResponse) GetTaskResults() []*ExecuteResponse_TaskResult {
if m != nil {
return m.TaskResults
}
return nil
}
func (m *ExecuteResponse) GetConsolidatedResults() []*ExecuteResponse_ConsolidatedResult {
if m != nil {
return m.ConsolidatedResults
}
return nil
}
func (m *ExecuteResponse) GetState() *test_platform.TaskState {
if m != nil {
return m.State
}
return nil
}
type ExecuteResponse_TaskResult struct {
// URL at which a human can view the task's run state (e.g. link to
// swarming or cautotest job view).
TaskUrl string `protobuf:"bytes,2,opt,name=task_url,json=taskUrl,proto3" json:"task_url,omitempty"`
State *test_platform.TaskState `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"`
Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
// URL at which a human can view the task's logs (e.g. a link to
// stainless gs viewer for this task).
LogUrl string `protobuf:"bytes,5,opt,name=log_url,json=logUrl,proto3" json:"log_url,omitempty"`
// The attempt number, starting at 0.
// Within an execution, the tuple (name, attempt) will be unique.
Attempt int32 `protobuf:"varint,6,opt,name=attempt,proto3" json:"attempt,omitempty"`
// The results of individual test cases that were executed as part of
// the task.
TestCases []*ExecuteResponse_TaskResult_TestCaseResult `protobuf:"bytes,7,rep,name=test_cases,json=testCases,proto3" json:"test_cases,omitempty"`
// The results of steps run prior to running the actual tests
// (e.g. provision).
PrejobSteps []*ExecuteResponse_TaskResult_TestCaseResult `protobuf:"bytes,8,rep,name=prejob_steps,json=prejobSteps,proto3" json:"prejob_steps,omitempty"`
// Logdata is the location at which the task's full output will
// eventually be available. Not intended for human's to view; use
// log_url instead.
LogData *common.TaskLogData `protobuf:"bytes,9,opt,name=log_data,json=logData,proto3" json:"log_data,omitempty"`
// Location, as URL, at which to place low-latency, high-importance
// log data which fails the task if not offloaded properly.
SynchronousLogDataUrl string `protobuf:"bytes,10,opt,name=synchronous_log_data_url,json=synchronousLogDataUrl,proto3" json:"synchronous_log_data_url,omitempty"`
// Any rejected task dimensions from the task execution request,
// stored as key-value pairs. This field is only populated if the
// task was rejected by Swarming due to a lack of matching bot.
RejectedTaskDimensions map[string]string `protobuf:"bytes,11,rep,name=rejected_task_dimensions,json=rejectedTaskDimensions,proto3" json:"rejected_task_dimensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ExecuteResponse_TaskResult) Reset() { *m = ExecuteResponse_TaskResult{} }
func (m *ExecuteResponse_TaskResult) String() string { return proto.CompactTextString(m) }
func (*ExecuteResponse_TaskResult) ProtoMessage() {}
func (*ExecuteResponse_TaskResult) Descriptor() ([]byte, []int) {
return fileDescriptor_54d6d12c45be2188, []int{3, 0}
}
func (m *ExecuteResponse_TaskResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExecuteResponse_TaskResult.Unmarshal(m, b)
}
func (m *ExecuteResponse_TaskResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ExecuteResponse_TaskResult.Marshal(b, m, deterministic)
}
func (m *ExecuteResponse_TaskResult) XXX_Merge(src proto.Message) {
xxx_messageInfo_ExecuteResponse_TaskResult.Merge(m, src)
}
func (m *ExecuteResponse_TaskResult) XXX_Size() int {
return xxx_messageInfo_ExecuteResponse_TaskResult.Size(m)
}
func (m *ExecuteResponse_TaskResult) XXX_DiscardUnknown() {
xxx_messageInfo_ExecuteResponse_TaskResult.DiscardUnknown(m)
}
var xxx_messageInfo_ExecuteResponse_TaskResult proto.InternalMessageInfo
func (m *ExecuteResponse_TaskResult) GetTaskUrl() string {
if m != nil {
return m.TaskUrl
}
return ""
}
func (m *ExecuteResponse_TaskResult) GetState() *test_platform.TaskState {
if m != nil {
return m.State
}
return nil
}
func (m *ExecuteResponse_TaskResult) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *ExecuteResponse_TaskResult) GetLogUrl() string {
if m != nil {
return m.LogUrl
}
return ""
}
func (m *ExecuteResponse_TaskResult) GetAttempt() int32 {
if m != nil {
return m.Attempt
}
return 0
}
func (m *ExecuteResponse_TaskResult) GetTestCases() []*ExecuteResponse_TaskResult_TestCaseResult {
if m != nil {
return m.TestCases
}
return nil
}
func (m *ExecuteResponse_TaskResult) GetPrejobSteps() []*ExecuteResponse_TaskResult_TestCaseResult {
if m != nil {
return m.PrejobSteps
}
return nil
}
func (m *ExecuteResponse_TaskResult) GetLogData() *common.TaskLogData {
if m != nil {
return m.LogData
}
return nil
}
func (m *ExecuteResponse_TaskResult) GetSynchronousLogDataUrl() string {
if m != nil {
return m.SynchronousLogDataUrl
}
return ""
}
func (m *ExecuteResponse_TaskResult) GetRejectedTaskDimensions() map[string]string {
if m != nil {
return m.RejectedTaskDimensions
}
return nil
}
type ExecuteResponse_TaskResult_TestCaseResult struct {
// Test case name which is generally independent from task name.
// E.g. a task named "tast.critical-system" may have a test case
// named "tast.audio.DevicePlay".
// For tasks with a single test case it will generally be the same
// as the task name, e.g. "logging_UserCrash".
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Verdict describes whether the test case passed, failed, or had
// some other indefinite verdict.
Verdict test_platform.TaskState_Verdict `protobuf:"varint,2,opt,name=verdict,proto3,enum=test_platform.TaskState_Verdict" json:"verdict,omitempty"`
// A one line human readable description of what happened during
// test case execution (e.g. error/warning message). Not intended
// to be machine parseable. There's no guarantee that a given root
// cause will always resolve to the same summary.
HumanReadableSummary string `protobuf:"bytes,3,opt,name=human_readable_summary,json=humanReadableSummary,proto3" json:"human_readable_summary,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ExecuteResponse_TaskResult_TestCaseResult) Reset() {
*m = ExecuteResponse_TaskResult_TestCaseResult{}
}
func (m *ExecuteResponse_TaskResult_TestCaseResult) String() string { return proto.CompactTextString(m) }
func (*ExecuteResponse_TaskResult_TestCaseResult) ProtoMessage() {}
func (*ExecuteResponse_TaskResult_TestCaseResult) Descriptor() ([]byte, []int) {
return fileDescriptor_54d6d12c45be2188, []int{3, 0, 0}
}
func (m *ExecuteResponse_TaskResult_TestCaseResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExecuteResponse_TaskResult_TestCaseResult.Unmarshal(m, b)
}
func (m *ExecuteResponse_TaskResult_TestCaseResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ExecuteResponse_TaskResult_TestCaseResult.Marshal(b, m, deterministic)
}
func (m *ExecuteResponse_TaskResult_TestCaseResult) XXX_Merge(src proto.Message) {
xxx_messageInfo_ExecuteResponse_TaskResult_TestCaseResult.Merge(m, src)
}
func (m *ExecuteResponse_TaskResult_TestCaseResult) XXX_Size() int {
return xxx_messageInfo_ExecuteResponse_TaskResult_TestCaseResult.Size(m)
}
func (m *ExecuteResponse_TaskResult_TestCaseResult) XXX_DiscardUnknown() {
xxx_messageInfo_ExecuteResponse_TaskResult_TestCaseResult.DiscardUnknown(m)
}
var xxx_messageInfo_ExecuteResponse_TaskResult_TestCaseResult proto.InternalMessageInfo
func (m *ExecuteResponse_TaskResult_TestCaseResult) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *ExecuteResponse_TaskResult_TestCaseResult) GetVerdict() test_platform.TaskState_Verdict {
if m != nil {
return m.Verdict
}
return test_platform.TaskState_VERDICT_UNSPECIFIED
}
func (m *ExecuteResponse_TaskResult_TestCaseResult) GetHumanReadableSummary() string {
if m != nil {
return m.HumanReadableSummary
}
return ""
}
type ExecuteResponse_ConsolidatedResult struct {
// result for each attempt of the corresponding enumeration.
Attempts []*ExecuteResponse_TaskResult `protobuf:"bytes,1,rep,name=attempts,proto3" json:"attempts,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ExecuteResponse_ConsolidatedResult) Reset() { *m = ExecuteResponse_ConsolidatedResult{} }
func (m *ExecuteResponse_ConsolidatedResult) String() string { return proto.CompactTextString(m) }
func (*ExecuteResponse_ConsolidatedResult) ProtoMessage() {}
func (*ExecuteResponse_ConsolidatedResult) Descriptor() ([]byte, []int) {
return fileDescriptor_54d6d12c45be2188, []int{3, 1}
}
func (m *ExecuteResponse_ConsolidatedResult) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ExecuteResponse_ConsolidatedResult.Unmarshal(m, b)
}
func (m *ExecuteResponse_ConsolidatedResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ExecuteResponse_ConsolidatedResult.Marshal(b, m, deterministic)
}
func (m *ExecuteResponse_ConsolidatedResult) XXX_Merge(src proto.Message) {
xxx_messageInfo_ExecuteResponse_ConsolidatedResult.Merge(m, src)
}
func (m *ExecuteResponse_ConsolidatedResult) XXX_Size() int {
return xxx_messageInfo_ExecuteResponse_ConsolidatedResult.Size(m)
}
func (m *ExecuteResponse_ConsolidatedResult) XXX_DiscardUnknown() {
xxx_messageInfo_ExecuteResponse_ConsolidatedResult.DiscardUnknown(m)
}
var xxx_messageInfo_ExecuteResponse_ConsolidatedResult proto.InternalMessageInfo
func (m *ExecuteResponse_ConsolidatedResult) GetAttempts() []*ExecuteResponse_TaskResult {
if m != nil {
return m.Attempts
}
return nil
}
func init() {
proto.RegisterType((*ExecuteRequests)(nil), "test_platform.steps.ExecuteRequests")
proto.RegisterMapType((map[string]*ExecuteRequest)(nil), "test_platform.steps.ExecuteRequests.TaggedRequestsEntry")
proto.RegisterType((*ExecuteResponses)(nil), "test_platform.steps.ExecuteResponses")
proto.RegisterMapType((map[string]*ExecuteResponse)(nil), "test_platform.steps.ExecuteResponses.TaggedResponsesEntry")
proto.RegisterType((*ExecuteRequest)(nil), "test_platform.steps.ExecuteRequest")
proto.RegisterType((*ExecuteResponse)(nil), "test_platform.steps.ExecuteResponse")
proto.RegisterType((*ExecuteResponse_TaskResult)(nil), "test_platform.steps.ExecuteResponse.TaskResult")
proto.RegisterMapType((map[string]string)(nil), "test_platform.steps.ExecuteResponse.TaskResult.RejectedTaskDimensionsEntry")
proto.RegisterType((*ExecuteResponse_TaskResult_TestCaseResult)(nil), "test_platform.steps.ExecuteResponse.TaskResult.TestCaseResult")
proto.RegisterType((*ExecuteResponse_ConsolidatedResult)(nil), "test_platform.steps.ExecuteResponse.ConsolidatedResult")
}
func init() {
proto.RegisterFile("test_platform/steps/execution.proto", fileDescriptor_54d6d12c45be2188)
}
var fileDescriptor_54d6d12c45be2188 = []byte{
// 863 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0xdd, 0x6e, 0xdc, 0x44,
0x14, 0x96, 0x77, 0xbb, 0x7f, 0x67, 0xcb, 0x26, 0x9a, 0x84, 0x62, 0x5c, 0x2a, 0xb6, 0x29, 0x88,
0xbd, 0xb2, 0xa5, 0x50, 0xa9, 0x21, 0x02, 0x2a, 0x25, 0xe9, 0x05, 0x94, 0x0b, 0x34, 0x09, 0xbd,
0x40, 0x42, 0xab, 0x89, 0x77, 0xe2, 0x38, 0xb1, 0x3d, 0xcb, 0xcc, 0xb8, 0x22, 0x0f, 0xc0, 0x2b,
0xf0, 0x0a, 0xdc, 0xf1, 0x12, 0x3c, 0x04, 0x3c, 0x0e, 0x9a, 0x33, 0xb3, 0x5e, 0x3b, 0x71, 0xab,
0x2d, 0xea, 0xd5, 0xfa, 0xcc, 0xf9, 0xbe, 0x6f, 0xce, 0x7c, 0x3e, 0x67, 0xd6, 0xf0, 0x44, 0x73,
0xa5, 0xe7, 0xcb, 0x8c, 0xe9, 0x0b, 0x21, 0xf3, 0x48, 0x69, 0xbe, 0x54, 0x11, 0xff, 0x8d, 0xc7,
0xa5, 0x4e, 0x45, 0x11, 0x2e, 0xa5, 0xd0, 0x82, 0xec, 0x34, 0x40, 0x21, 0x82, 0x82, 0x4f, 0x9b,
0xcc, 0x58, 0xe4, 0xb9, 0x28, 0x22, 0xcd, 0xd4, 0xb5, 0x65, 0x05, 0x8f, 0x6f, 0x03, 0x8a, 0x8b,
0x34, 0x71, 0x3f, 0x0e, 0xf2, 0xb0, 0x09, 0x91, 0xfc, 0xd7, 0x92, 0x2b, 0xed, 0x92, 0x9f, 0xb7,
0x96, 0x56, 0x94, 0x39, 0x97, 0x6c, 0x5d, 0x5c, 0xf0, 0xc5, 0x9b, 0x4f, 0xc0, 0xa3, 0xf3, 0x32,
0xcd, 0x16, 0x0e, 0xf8, 0xa8, 0x09, 0x34, 0x95, 0x2a, 0xcd, 0x34, 0xb7, 0xe9, 0xbd, 0x7f, 0x3a,
0xb0, 0xf5, 0xc2, 0xd2, 0xa8, 0xad, 0x43, 0x91, 0xe7, 0x30, 0x74, 0x35, 0x29, 0xdf, 0x9b, 0x76,
0x67, 0xe3, 0xfd, 0x27, 0x61, 0x8b, 0x17, 0x61, 0x93, 0x47, 0x2b, 0x12, 0x61, 0xb0, 0xa5, 0x59,
0x92, 0xf0, 0xc5, 0xbc, 0xd2, 0xe9, 0xa0, 0xce, 0xc1, 0x06, 0x3a, 0x2a, 0x3c, 0x43, 0xee, 0x2a,
0x7c, 0x51, 0x68, 0x79, 0x43, 0x27, 0xba, 0xb1, 0x48, 0x0e, 0xa0, 0x87, 0xa7, 0xf4, 0xbb, 0x53,
0x6f, 0x36, 0xde, 0xdf, 0x6b, 0x15, 0x76, 0x7e, 0x84, 0x47, 0x06, 0x49, 0x2d, 0x21, 0xb8, 0x80,
0x9d, 0x96, 0x0d, 0xc8, 0x36, 0x74, 0xaf, 0xf9, 0x8d, 0xef, 0x4d, 0xbd, 0xd9, 0x88, 0x9a, 0x47,
0xf2, 0x15, 0xf4, 0x5e, 0xb3, 0xac, 0xe4, 0x7e, 0x07, 0xb7, 0xd8, 0xc8, 0x03, 0xcb, 0x38, 0xec,
0x1c, 0x78, 0x7b, 0x7f, 0x76, 0x60, 0xbb, 0xca, 0xaa, 0xa5, 0x28, 0x14, 0x57, 0xe4, 0x08, 0x46,
0x72, 0x15, 0x38, 0x6f, 0x3f, 0x7b, 0xbb, 0xae, 0x05, 0xd3, 0x35, 0x8d, 0x70, 0xd8, 0xae, 0xdc,
0x5d, 0x49, 0x59, 0x7b, 0x0f, 0x37, 0x91, 0x5a, 0xfb, 0xeb, 0x62, 0x6b, 0xf0, 0x96, 0x6e, 0xae,
0x06, 0x97, 0xb0, 0xdb, 0x06, 0x6c, 0x31, 0xea, 0xb0, 0x69, 0xd4, 0x66, 0x07, 0xaa, 0x39, 0xf5,
0xaf, 0x07, 0x93, 0xa6, 0x8f, 0xe4, 0x04, 0x26, 0xae, 0x75, 0xe6, 0x4b, 0x26, 0x59, 0xae, 0x70,
0xbf, 0xf1, 0xfe, 0xa3, 0x5b, 0xda, 0x0e, 0x1f, 0xfe, 0x88, 0x20, 0xfa, 0x81, 0x23, 0xd9, 0x90,
0x7c, 0x0f, 0xe3, 0xda, 0xe4, 0xb8, 0xf2, 0x66, 0xed, 0xe5, 0xad, 0x71, 0x55, 0x89, 0x75, 0x32,
0x79, 0x0a, 0x7d, 0x3b, 0xc4, 0xae, 0xe3, 0x3e, 0xb9, 0x25, 0xe3, 0x26, 0xfc, 0x18, 0x7f, 0xa8,
0xc3, 0xee, 0xfd, 0x35, 0xaa, 0x8d, 0x97, 0x95, 0x25, 0xaf, 0xe0, 0xbe, 0x99, 0x42, 0xf3, 0xf6,
0xca, 0xac, 0x1a, 0xb1, 0x68, 0x13, 0xd7, 0xc2, 0x33, 0xa6, 0xae, 0x29, 0xf2, 0x8e, 0x3a, 0xbe,
0x47, 0xc7, 0xba, 0x8a, 0x15, 0xb9, 0x82, 0xdd, 0x58, 0x14, 0x4a, 0x64, 0xe9, 0x82, 0x69, 0xdb,
0x1d, 0xa8, 0xdf, 0x45, 0xfd, 0x67, 0x1b, 0xe9, 0x1f, 0xd7, 0x04, 0xac, 0x2e, 0xdd, 0x89, 0xef,
0xac, 0x29, 0x12, 0x42, 0x0f, 0x6f, 0x11, 0xe7, 0xa9, 0x7f, 0x4b, 0xdc, 0x94, 0x79, 0x6a, 0xf2,
0xd4, 0xc2, 0x82, 0xbf, 0xfb, 0x00, 0xeb, 0xda, 0xc9, 0xc7, 0x30, 0x44, 0x0b, 0x4a, 0x99, 0xa1,
0xc2, 0x88, 0x0e, 0x4c, 0xfc, 0x93, 0xcc, 0xd6, 0xca, 0xdd, 0x8d, 0x94, 0x09, 0x81, 0x7b, 0x05,
0xcb, 0xb9, 0x7f, 0x0f, 0x65, 0xf0, 0x99, 0x7c, 0x04, 0x83, 0x4c, 0x24, 0xa8, 0xde, 0xc3, 0xe5,
0x7e, 0x26, 0x12, 0x23, 0xee, 0xc3, 0x80, 0x69, 0xcd, 0xf3, 0xa5, 0xf6, 0xfb, 0x53, 0x6f, 0xd6,
0xa3, 0xab, 0x90, 0xfc, 0x02, 0x80, 0x1b, 0xc5, 0xcc, 0x8c, 0xd3, 0x00, 0x2d, 0xfb, 0xf6, 0x1d,
0x5f, 0x49, 0x78, 0xc6, 0x95, 0x3e, 0x66, 0x8a, 0x3b, 0xe7, 0x46, 0xda, 0xc5, 0xe6, 0x46, 0xbc,
0xbf, 0x94, 0xfc, 0x4a, 0x9c, 0xcf, 0x51, 0xc4, 0x1f, 0xbe, 0x97, 0x0d, 0xc6, 0x56, 0xf3, 0xd4,
0xd0, 0xc8, 0xd7, 0x30, 0x34, 0x87, 0x5e, 0x30, 0xcd, 0xfc, 0x11, 0x7a, 0xf7, 0xf8, 0x4e, 0x8b,
0x9a, 0x3f, 0x2b, 0xd4, 0xfb, 0x41, 0x24, 0x27, 0x4c, 0x33, 0x6a, 0x7c, 0x32, 0x0f, 0xe4, 0x19,
0xf8, 0xea, 0xa6, 0x88, 0x2f, 0xa5, 0x28, 0x44, 0xa9, 0xe6, 0x2b, 0x25, 0xf4, 0x10, 0xd0, 0xc3,
0x0f, 0x6b, 0x79, 0x47, 0x37, 0x96, 0xfe, 0xee, 0x81, 0x2f, 0xf9, 0x15, 0x8f, 0x4d, 0xcb, 0xe1,
0x4b, 0x5d, 0xa4, 0x39, 0x2f, 0x54, 0x2a, 0x0a, 0xe5, 0x8f, 0xf1, 0x98, 0x2f, 0xdf, 0xf5, 0x98,
0xd4, 0xe9, 0x99, 0xa5, 0x93, 0x4a, 0xcd, 0xde, 0x53, 0x0f, 0x64, 0x6b, 0x32, 0xf8, 0xc3, 0x83,
0x49, 0xd3, 0x9e, 0xaa, 0x35, 0xbc, 0x5a, 0x6b, 0x1c, 0xc2, 0xe0, 0x35, 0x97, 0x8b, 0x34, 0xd6,
0xd8, 0x78, 0x93, 0xfd, 0xe9, 0x9b, 0x1a, 0x2c, 0x7c, 0x65, 0x71, 0x74, 0x45, 0x20, 0x4f, 0xe1,
0xc1, 0x65, 0x99, 0xb3, 0x62, 0x2e, 0x39, 0x5b, 0xb0, 0xf3, 0x8c, 0xcf, 0x55, 0x99, 0xe7, 0x4c,
0xde, 0x60, 0xaf, 0x8e, 0xe8, 0x2e, 0x66, 0xa9, 0x4b, 0x9e, 0xda, 0x5c, 0xf0, 0x1d, 0x3c, 0x7c,
0xcb, 0x79, 0x5a, 0xae, 0xd3, 0xdd, 0xfa, 0x75, 0x3a, 0xaa, 0x5d, 0x94, 0x01, 0x03, 0x72, 0x77,
0x40, 0xc9, 0x4b, 0x18, 0xba, 0x2e, 0xfe, 0xbf, 0x77, 0x09, 0xad, 0x04, 0x8e, 0x9e, 0xff, 0xfc,
0x4d, 0x22, 0x42, 0xf3, 0x9e, 0xf3, 0xb4, 0xcc, 0x43, 0x21, 0x93, 0x68, 0x15, 0x08, 0x15, 0xa5,
0xc5, 0x85, 0x64, 0x11, 0x7e, 0x39, 0x44, 0x89, 0x88, 0x5a, 0xbe, 0x41, 0xce, 0xfb, 0x98, 0xfd,
0xf2, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x23, 0x2a, 0x90, 0x42, 0x63, 0x09, 0x00, 0x00,
}