blob: f7f96fa5e630f19365f616ccd40f63f1c03a3721 [file] [log] [blame]
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: opencensus/proto/stats/v1/stats.proto
package v1
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 Measure_Type int32
const (
// Unknown type.
Measure_TYPE_UNSPECIFIED Measure_Type = 0
// Indicates an int64 Measure.
Measure_INT64 Measure_Type = 1
// Indicates a double Measure.
Measure_DOUBLE Measure_Type = 2
)
var Measure_Type_name = map[int32]string{
0: "TYPE_UNSPECIFIED",
1: "INT64",
2: "DOUBLE",
}
var Measure_Type_value = map[string]int32{
"TYPE_UNSPECIFIED": 0,
"INT64": 1,
"DOUBLE": 2,
}
func (x Measure_Type) String() string {
return proto.EnumName(Measure_Type_name, int32(x))
}
func (Measure_Type) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_5cb731b1ef81fd07, []int{1, 0}
}
// TODO(bdrutu): Consider if this should be moved to a "tags" directory to match the API structure.
type Tag struct {
Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Tag) Reset() { *m = Tag{} }
func (m *Tag) String() string { return proto.CompactTextString(m) }
func (*Tag) ProtoMessage() {}
func (*Tag) Descriptor() ([]byte, []int) {
return fileDescriptor_5cb731b1ef81fd07, []int{0}
}
func (m *Tag) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Tag.Unmarshal(m, b)
}
func (m *Tag) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Tag.Marshal(b, m, deterministic)
}
func (m *Tag) XXX_Merge(src proto.Message) {
xxx_messageInfo_Tag.Merge(m, src)
}
func (m *Tag) XXX_Size() int {
return xxx_messageInfo_Tag.Size(m)
}
func (m *Tag) XXX_DiscardUnknown() {
xxx_messageInfo_Tag.DiscardUnknown(m)
}
var xxx_messageInfo_Tag proto.InternalMessageInfo
func (m *Tag) GetKey() string {
if m != nil {
return m.Key
}
return ""
}
func (m *Tag) GetValue() string {
if m != nil {
return m.Value
}
return ""
}
// Measure .
type Measure struct {
// A string by which the measure will be referred to, e.g. "rpc_server_latency". Names MUST be
// unique within the library.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Describes the measure, e.g. "RPC latency in seconds".
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
// Describes the unit used for the Measure. Follows the format described by
// http://unitsofmeasure.org/ucum.html.
Unit string `protobuf:"bytes,3,opt,name=unit,proto3" json:"unit,omitempty"`
// The type used for this Measure.
Type Measure_Type `protobuf:"varint,4,opt,name=type,proto3,enum=opencensus.proto.stats.v1.Measure_Type" json:"type,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Measure) Reset() { *m = Measure{} }
func (m *Measure) String() string { return proto.CompactTextString(m) }
func (*Measure) ProtoMessage() {}
func (*Measure) Descriptor() ([]byte, []int) {
return fileDescriptor_5cb731b1ef81fd07, []int{1}
}
func (m *Measure) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Measure.Unmarshal(m, b)
}
func (m *Measure) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Measure.Marshal(b, m, deterministic)
}
func (m *Measure) XXX_Merge(src proto.Message) {
xxx_messageInfo_Measure.Merge(m, src)
}
func (m *Measure) XXX_Size() int {
return xxx_messageInfo_Measure.Size(m)
}
func (m *Measure) XXX_DiscardUnknown() {
xxx_messageInfo_Measure.DiscardUnknown(m)
}
var xxx_messageInfo_Measure proto.InternalMessageInfo
func (m *Measure) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *Measure) GetDescription() string {
if m != nil {
return m.Description
}
return ""
}
func (m *Measure) GetUnit() string {
if m != nil {
return m.Unit
}
return ""
}
func (m *Measure) GetType() Measure_Type {
if m != nil {
return m.Type
}
return Measure_TYPE_UNSPECIFIED
}
type View struct {
// A string by which the View will be referred to, e.g. "rpc_latency". Names MUST be unique
// within the library.
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
// Describes the view, e.g. "RPC latency distribution"
Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
// The Measure to which this view is applied.
Measure *Measure `protobuf:"bytes,3,opt,name=measure,proto3" json:"measure,omitempty"`
// An array of tag keys. These values associated with tags of this name form the basis by which
// individual stats will be aggregated (one aggregation per unique tag value). If none are
// provided, then all data is recorded in a single aggregation.
Columns []string `protobuf:"bytes,4,rep,name=columns,proto3" json:"columns,omitempty"`
// The description of the aggregation used for this view which describes how data collected are
// aggregated.
//
// Types that are valid to be assigned to Aggregation:
// *View_CountAggregation
// *View_SumAggregation
// *View_LastValueAggregation
// *View_DistributionAggregation
Aggregation isView_Aggregation `protobuf_oneof:"aggregation"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *View) Reset() { *m = View{} }
func (m *View) String() string { return proto.CompactTextString(m) }
func (*View) ProtoMessage() {}
func (*View) Descriptor() ([]byte, []int) {
return fileDescriptor_5cb731b1ef81fd07, []int{2}
}
func (m *View) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_View.Unmarshal(m, b)
}
func (m *View) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_View.Marshal(b, m, deterministic)
}
func (m *View) XXX_Merge(src proto.Message) {
xxx_messageInfo_View.Merge(m, src)
}
func (m *View) XXX_Size() int {
return xxx_messageInfo_View.Size(m)
}
func (m *View) XXX_DiscardUnknown() {
xxx_messageInfo_View.DiscardUnknown(m)
}
var xxx_messageInfo_View proto.InternalMessageInfo
func (m *View) GetName() string {
if m != nil {
return m.Name
}
return ""
}
func (m *View) GetDescription() string {
if m != nil {
return m.Description
}
return ""
}
func (m *View) GetMeasure() *Measure {
if m != nil {
return m.Measure
}
return nil
}
func (m *View) GetColumns() []string {
if m != nil {
return m.Columns
}
return nil
}
type isView_Aggregation interface {
isView_Aggregation()
}
type View_CountAggregation struct {
CountAggregation *CountAggregation `protobuf:"bytes,5,opt,name=count_aggregation,json=countAggregation,proto3,oneof"`
}
type View_SumAggregation struct {
SumAggregation *SumAggregation `protobuf:"bytes,6,opt,name=sum_aggregation,json=sumAggregation,proto3,oneof"`
}
type View_LastValueAggregation struct {
LastValueAggregation *LastValueAggregation `protobuf:"bytes,7,opt,name=last_value_aggregation,json=lastValueAggregation,proto3,oneof"`
}
type View_DistributionAggregation struct {
DistributionAggregation *DistributionAggregation `protobuf:"bytes,8,opt,name=distribution_aggregation,json=distributionAggregation,proto3,oneof"`
}
func (*View_CountAggregation) isView_Aggregation() {}
func (*View_SumAggregation) isView_Aggregation() {}
func (*View_LastValueAggregation) isView_Aggregation() {}
func (*View_DistributionAggregation) isView_Aggregation() {}
func (m *View) GetAggregation() isView_Aggregation {
if m != nil {
return m.Aggregation
}
return nil
}
func (m *View) GetCountAggregation() *CountAggregation {
if x, ok := m.GetAggregation().(*View_CountAggregation); ok {
return x.CountAggregation
}
return nil
}
func (m *View) GetSumAggregation() *SumAggregation {
if x, ok := m.GetAggregation().(*View_SumAggregation); ok {
return x.SumAggregation
}
return nil
}
func (m *View) GetLastValueAggregation() *LastValueAggregation {
if x, ok := m.GetAggregation().(*View_LastValueAggregation); ok {
return x.LastValueAggregation
}
return nil
}
func (m *View) GetDistributionAggregation() *DistributionAggregation {
if x, ok := m.GetAggregation().(*View_DistributionAggregation); ok {
return x.DistributionAggregation
}
return nil
}
// XXX_OneofWrappers is for the internal use of the proto package.
func (*View) XXX_OneofWrappers() []interface{} {
return []interface{}{
(*View_CountAggregation)(nil),
(*View_SumAggregation)(nil),
(*View_LastValueAggregation)(nil),
(*View_DistributionAggregation)(nil),
}
}
type CountAggregation struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CountAggregation) Reset() { *m = CountAggregation{} }
func (m *CountAggregation) String() string { return proto.CompactTextString(m) }
func (*CountAggregation) ProtoMessage() {}
func (*CountAggregation) Descriptor() ([]byte, []int) {
return fileDescriptor_5cb731b1ef81fd07, []int{3}
}
func (m *CountAggregation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_CountAggregation.Unmarshal(m, b)
}
func (m *CountAggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_CountAggregation.Marshal(b, m, deterministic)
}
func (m *CountAggregation) XXX_Merge(src proto.Message) {
xxx_messageInfo_CountAggregation.Merge(m, src)
}
func (m *CountAggregation) XXX_Size() int {
return xxx_messageInfo_CountAggregation.Size(m)
}
func (m *CountAggregation) XXX_DiscardUnknown() {
xxx_messageInfo_CountAggregation.DiscardUnknown(m)
}
var xxx_messageInfo_CountAggregation proto.InternalMessageInfo
type SumAggregation struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SumAggregation) Reset() { *m = SumAggregation{} }
func (m *SumAggregation) String() string { return proto.CompactTextString(m) }
func (*SumAggregation) ProtoMessage() {}
func (*SumAggregation) Descriptor() ([]byte, []int) {
return fileDescriptor_5cb731b1ef81fd07, []int{4}
}
func (m *SumAggregation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SumAggregation.Unmarshal(m, b)
}
func (m *SumAggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SumAggregation.Marshal(b, m, deterministic)
}
func (m *SumAggregation) XXX_Merge(src proto.Message) {
xxx_messageInfo_SumAggregation.Merge(m, src)
}
func (m *SumAggregation) XXX_Size() int {
return xxx_messageInfo_SumAggregation.Size(m)
}
func (m *SumAggregation) XXX_DiscardUnknown() {
xxx_messageInfo_SumAggregation.DiscardUnknown(m)
}
var xxx_messageInfo_SumAggregation proto.InternalMessageInfo
type LastValueAggregation struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *LastValueAggregation) Reset() { *m = LastValueAggregation{} }
func (m *LastValueAggregation) String() string { return proto.CompactTextString(m) }
func (*LastValueAggregation) ProtoMessage() {}
func (*LastValueAggregation) Descriptor() ([]byte, []int) {
return fileDescriptor_5cb731b1ef81fd07, []int{5}
}
func (m *LastValueAggregation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_LastValueAggregation.Unmarshal(m, b)
}
func (m *LastValueAggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_LastValueAggregation.Marshal(b, m, deterministic)
}
func (m *LastValueAggregation) XXX_Merge(src proto.Message) {
xxx_messageInfo_LastValueAggregation.Merge(m, src)
}
func (m *LastValueAggregation) XXX_Size() int {
return xxx_messageInfo_LastValueAggregation.Size(m)
}
func (m *LastValueAggregation) XXX_DiscardUnknown() {
xxx_messageInfo_LastValueAggregation.DiscardUnknown(m)
}
var xxx_messageInfo_LastValueAggregation proto.InternalMessageInfo
type DistributionAggregation struct {
// A Distribution may optionally contain a histogram of the values in the
// population. The bucket boundaries for that histogram are described by
// `bucket_bounds`. This defines `size(bucket_bounds) + 1` (= N)
// buckets. The boundaries for bucket index i are:
//
// (-infinity, bucket_bounds[i]) for i == 0
// [bucket_bounds[i-1], bucket_bounds[i]) for 0 < i < N-2
// [bucket_bounds[i-1], +infinity) for i == N-1
//
// i.e. an underflow bucket (number 0), zero or more finite buckets (1
// through N - 2, and an overflow bucket (N - 1), with inclusive lower
// bounds and exclusive upper bounds.
//
// If `bucket_bounds` has no elements (zero size), then there is no
// histogram associated with the Distribution. If `bucket_bounds` has only
// one element, there are no finite buckets, and that single element is the
// common boundary of the overflow and underflow buckets. The values must
// be monotonically increasing.
BucketBounds []float64 `protobuf:"fixed64,1,rep,packed,name=bucket_bounds,json=bucketBounds,proto3" json:"bucket_bounds,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *DistributionAggregation) Reset() { *m = DistributionAggregation{} }
func (m *DistributionAggregation) String() string { return proto.CompactTextString(m) }
func (*DistributionAggregation) ProtoMessage() {}
func (*DistributionAggregation) Descriptor() ([]byte, []int) {
return fileDescriptor_5cb731b1ef81fd07, []int{6}
}
func (m *DistributionAggregation) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_DistributionAggregation.Unmarshal(m, b)
}
func (m *DistributionAggregation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_DistributionAggregation.Marshal(b, m, deterministic)
}
func (m *DistributionAggregation) XXX_Merge(src proto.Message) {
xxx_messageInfo_DistributionAggregation.Merge(m, src)
}
func (m *DistributionAggregation) XXX_Size() int {
return xxx_messageInfo_DistributionAggregation.Size(m)
}
func (m *DistributionAggregation) XXX_DiscardUnknown() {
xxx_messageInfo_DistributionAggregation.DiscardUnknown(m)
}
var xxx_messageInfo_DistributionAggregation proto.InternalMessageInfo
func (m *DistributionAggregation) GetBucketBounds() []float64 {
if m != nil {
return m.BucketBounds
}
return nil
}
// Describes a data point to be collected for a Measure.
type Measurement struct {
Tags []*Tag `protobuf:"bytes,1,rep,name=tags,proto3" json:"tags,omitempty"`
// The name of the measure to which the value is applied.
MeasureName string `protobuf:"bytes,2,opt,name=measure_name,json=measureName,proto3" json:"measure_name,omitempty"`
// The recorded value, MUST have the appropriate type to match the Measure.
//
// Types that are valid to be assigned to Value:
// *Measurement_DoubleValue
// *Measurement_IntValue
Value isMeasurement_Value `protobuf_oneof:"value"`
// The time when this measurement was recorded. If the implementation uses a async buffer to
// record measurements this may be the time when the measurement was read from the buffer.
Time *timestamp.Timestamp `protobuf:"bytes,5,opt,name=time,proto3" json:"time,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *Measurement) Reset() { *m = Measurement{} }
func (m *Measurement) String() string { return proto.CompactTextString(m) }
func (*Measurement) ProtoMessage() {}
func (*Measurement) Descriptor() ([]byte, []int) {
return fileDescriptor_5cb731b1ef81fd07, []int{7}
}
func (m *Measurement) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_Measurement.Unmarshal(m, b)
}
func (m *Measurement) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_Measurement.Marshal(b, m, deterministic)
}
func (m *Measurement) XXX_Merge(src proto.Message) {
xxx_messageInfo_Measurement.Merge(m, src)
}
func (m *Measurement) XXX_Size() int {
return xxx_messageInfo_Measurement.Size(m)
}
func (m *Measurement) XXX_DiscardUnknown() {
xxx_messageInfo_Measurement.DiscardUnknown(m)
}
var xxx_messageInfo_Measurement proto.InternalMessageInfo
func (m *Measurement) GetTags() []*Tag {
if m != nil {
return m.Tags
}
return nil
}
func (m *Measurement) GetMeasureName() string {
if m != nil {
return m.MeasureName
}
return ""
}
type isMeasurement_Value interface {
isMeasurement_Value()
}
type Measurement_DoubleValue struct {
DoubleValue float64 `protobuf:"fixed64,3,opt,name=double_value,json=doubleValue,proto3,oneof"`
}
type Measurement_IntValue struct {
IntValue int64 `protobuf:"varint,4,opt,name=int_value,json=intValue,proto3,oneof"`
}
func (*Measurement_DoubleValue) isMeasurement_Value() {}
func (*Measurement_IntValue) isMeasurement_Value() {}
func (m *Measurement) GetValue() isMeasurement_Value {
if m != nil {
return m.Value
}
return nil
}
func (m *Measurement) GetDoubleValue() float64 {
if x, ok := m.GetValue().(*Measurement_DoubleValue); ok {
return x.DoubleValue
}
return 0
}
func (m *Measurement) GetIntValue() int64 {
if x, ok := m.GetValue().(*Measurement_IntValue); ok {
return x.IntValue
}
return 0
}
func (m *Measurement) GetTime() *timestamp.Timestamp {
if m != nil {
return m.Time
}
return nil
}
// XXX_OneofWrappers is for the internal use of the proto package.
func (*Measurement) XXX_OneofWrappers() []interface{} {
return []interface{}{
(*Measurement_DoubleValue)(nil),
(*Measurement_IntValue)(nil),
}
}
func init() {
proto.RegisterEnum("opencensus.proto.stats.v1.Measure_Type", Measure_Type_name, Measure_Type_value)
proto.RegisterType((*Tag)(nil), "opencensus.proto.stats.v1.Tag")
proto.RegisterType((*Measure)(nil), "opencensus.proto.stats.v1.Measure")
proto.RegisterType((*View)(nil), "opencensus.proto.stats.v1.View")
proto.RegisterType((*CountAggregation)(nil), "opencensus.proto.stats.v1.CountAggregation")
proto.RegisterType((*SumAggregation)(nil), "opencensus.proto.stats.v1.SumAggregation")
proto.RegisterType((*LastValueAggregation)(nil), "opencensus.proto.stats.v1.LastValueAggregation")
proto.RegisterType((*DistributionAggregation)(nil), "opencensus.proto.stats.v1.DistributionAggregation")
proto.RegisterType((*Measurement)(nil), "opencensus.proto.stats.v1.Measurement")
}
func init() {
proto.RegisterFile("opencensus/proto/stats/v1/stats.proto", fileDescriptor_5cb731b1ef81fd07)
}
var fileDescriptor_5cb731b1ef81fd07 = []byte{
// 654 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x54, 0xdd, 0x4e, 0xdb, 0x4c,
0x10, 0x8d, 0x89, 0x21, 0x64, 0x02, 0x7c, 0xfe, 0x56, 0x11, 0x18, 0xd4, 0x9f, 0xd4, 0xa8, 0x6a,
0xaa, 0x2a, 0xb6, 0x08, 0x55, 0x6f, 0x5a, 0x55, 0xaa, 0x21, 0x15, 0x48, 0x14, 0x22, 0x63, 0x90,
0xca, 0x4d, 0x64, 0x3b, 0x5b, 0xd7, 0x22, 0xde, 0xb5, 0xbc, 0xbb, 0x54, 0xbc, 0x43, 0xdf, 0xa5,
0x4f, 0xd1, 0x07, 0xe9, 0x6d, 0x9f, 0xa2, 0xf2, 0xae, 0xa3, 0x60, 0x44, 0x52, 0xa9, 0x77, 0xb3,
0xc7, 0x73, 0xce, 0xd9, 0x99, 0x1d, 0x0f, 0x3c, 0xa7, 0x19, 0x26, 0x11, 0x26, 0x4c, 0x30, 0x27,
0xcb, 0x29, 0xa7, 0x0e, 0xe3, 0x01, 0x67, 0xce, 0xcd, 0x9e, 0x0a, 0x6c, 0x09, 0xa2, 0xed, 0x59,
0x9a, 0x42, 0x6c, 0xf5, 0xf5, 0x66, 0x6f, 0xe7, 0x69, 0x4c, 0x69, 0x3c, 0xc1, 0x8a, 0x1d, 0x8a,
0x2f, 0x0e, 0x4f, 0x52, 0xcc, 0x78, 0x90, 0x66, 0x2a, 0xd3, 0xea, 0x41, 0xdd, 0x0f, 0x62, 0x64,
0x40, 0xfd, 0x1a, 0xdf, 0x9a, 0x5a, 0x47, 0xeb, 0x36, 0xbd, 0x22, 0x44, 0x6d, 0x58, 0xbe, 0x09,
0x26, 0x02, 0x9b, 0x4b, 0x12, 0x53, 0x07, 0xeb, 0xa7, 0x06, 0x8d, 0x4f, 0x38, 0x60, 0x22, 0xc7,
0x08, 0x81, 0x4e, 0x82, 0x14, 0x97, 0x24, 0x19, 0xa3, 0x0e, 0xb4, 0xc6, 0x98, 0x45, 0x79, 0x92,
0xf1, 0x84, 0x92, 0x92, 0x7b, 0x17, 0x2a, 0x58, 0x82, 0x24, 0xdc, 0xac, 0x2b, 0x56, 0x11, 0xa3,
0xb7, 0xa0, 0xf3, 0xdb, 0x0c, 0x9b, 0x7a, 0x47, 0xeb, 0x6e, 0xf4, 0x5f, 0xd8, 0x73, 0xeb, 0xb1,
0x4b, 0x6f, 0xdb, 0xbf, 0xcd, 0xb0, 0x27, 0x49, 0xd6, 0x3e, 0xe8, 0xc5, 0x09, 0xb5, 0xc1, 0xf0,
0x3f, 0x0f, 0x07, 0xa3, 0x8b, 0xd3, 0xf3, 0xe1, 0xe0, 0xe0, 0xf8, 0xe3, 0xf1, 0xe0, 0xd0, 0xa8,
0xa1, 0x26, 0x2c, 0x1f, 0x9f, 0xfa, 0x6f, 0x5e, 0x1b, 0x1a, 0x02, 0x58, 0x39, 0x3c, 0xbb, 0x70,
0x4f, 0x06, 0xc6, 0x92, 0xf5, 0x43, 0x07, 0xfd, 0x32, 0xc1, 0xdf, 0xfe, 0xb1, 0x88, 0x77, 0xd0,
0x48, 0xd5, 0x4d, 0x64, 0x1d, 0xad, 0xbe, 0xf5, 0xf7, 0x3b, 0x7b, 0x53, 0x0a, 0x32, 0xa1, 0x11,
0xd1, 0x89, 0x48, 0x09, 0x33, 0xf5, 0x4e, 0xbd, 0xdb, 0xf4, 0xa6, 0x47, 0x74, 0x05, 0xff, 0x47,
0x54, 0x10, 0x3e, 0x0a, 0xe2, 0x38, 0xc7, 0x71, 0x20, 0xfd, 0x97, 0xa5, 0xc3, 0xab, 0x05, 0x0e,
0x07, 0x05, 0xe7, 0xc3, 0x8c, 0x72, 0x54, 0xf3, 0x8c, 0xe8, 0x1e, 0x86, 0x7c, 0xf8, 0x8f, 0x89,
0xb4, 0xa2, 0xbc, 0x22, 0x95, 0x5f, 0x2e, 0x50, 0x3e, 0x17, 0x69, 0x55, 0x77, 0x83, 0x55, 0x10,
0x14, 0xc3, 0xe6, 0x24, 0x60, 0x7c, 0x24, 0xc7, 0xa3, 0x22, 0xde, 0x90, 0xe2, 0xce, 0x02, 0xf1,
0x93, 0x80, 0xf1, 0xcb, 0x82, 0x57, 0xb5, 0x68, 0x4f, 0x1e, 0xc0, 0x11, 0x05, 0x73, 0x9c, 0x30,
0x9e, 0x27, 0xa1, 0x28, 0xce, 0x15, 0xab, 0x55, 0x69, 0xd5, 0x5f, 0x60, 0x75, 0x78, 0x87, 0x5a,
0x75, 0xdb, 0x1a, 0x3f, 0xfc, 0xc9, 0x5d, 0x87, 0xd6, 0x1d, 0x0f, 0x0b, 0x81, 0x71, 0xbf, 0xcd,
0x96, 0x01, 0x1b, 0xd5, 0x06, 0x59, 0x9b, 0xd0, 0x7e, 0xa8, 0x2a, 0xeb, 0x3d, 0x6c, 0xcd, 0xb9,
0x02, 0xda, 0x85, 0xf5, 0x50, 0x44, 0xd7, 0x98, 0x8f, 0x42, 0x2a, 0xc8, 0x98, 0x99, 0x5a, 0xa7,
0xde, 0xd5, 0xbc, 0x35, 0x05, 0xba, 0x12, 0xb3, 0x7e, 0x69, 0xd0, 0x2a, 0xe7, 0x28, 0xc5, 0x84,
0xa3, 0x3e, 0xe8, 0x3c, 0x88, 0x55, 0x6e, 0xab, 0xff, 0x64, 0x41, 0xe5, 0x7e, 0x10, 0x7b, 0x32,
0x17, 0x3d, 0x83, 0xb5, 0x72, 0x02, 0x47, 0x72, 0xe4, 0xcb, 0xb9, 0x2e, 0xb1, 0xd3, 0x62, 0xf2,
0x77, 0x61, 0x6d, 0x4c, 0x45, 0x38, 0xc1, 0xea, 0x3d, 0xe5, 0x70, 0x6b, 0x47, 0x35, 0xaf, 0xa5,
0x50, 0x59, 0x16, 0x7a, 0x0c, 0xcd, 0x84, 0x94, 0x2f, 0x2e, 0x7f, 0xd9, 0xfa, 0x51, 0xcd, 0x5b,
0x4d, 0x88, 0xaa, 0x1a, 0xd9, 0xa0, 0x17, 0x4b, 0xa6, 0x1c, 0xdb, 0x1d, 0x5b, 0x6d, 0x20, 0x7b,
0xba, 0x81, 0x6c, 0x7f, 0xba, 0x81, 0x3c, 0x99, 0xe7, 0x36, 0xca, 0x45, 0xe3, 0x7e, 0xd7, 0xe0,
0x51, 0x42, 0xe7, 0x97, 0xe2, 0xc2, 0x79, 0x11, 0x0d, 0x0b, 0x70, 0xa8, 0x5d, 0xb9, 0x71, 0xc2,
0xbf, 0x8a, 0xd0, 0x8e, 0x68, 0xea, 0xa8, 0xfc, 0x5e, 0x42, 0x18, 0xcf, 0x45, 0xd1, 0x20, 0xd9,
0x5a, 0x67, 0x26, 0xd5, 0x53, 0xeb, 0x33, 0xc6, 0xa4, 0x17, 0xcf, 0xb6, 0xe8, 0xef, 0xa5, 0xed,
0xb3, 0x0c, 0x93, 0x03, 0xe5, 0x26, 0x85, 0x6d, 0xe9, 0x61, 0x5f, 0xee, 0x85, 0x2b, 0x92, 0xb2,
0xff, 0x27, 0x00, 0x00, 0xff, 0xff, 0x25, 0x26, 0x34, 0x5a, 0x85, 0x05, 0x00, 0x00,
}