open-nomad/plugins/base/proto/base.pb.go
2018-10-16 22:47:22 -04:00

548 lines
22 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Code generated by protoc-gen-go. DO NOT EDIT.
// source: base.proto
package proto
import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import hclspec "github.com/hashicorp/nomad/plugins/shared/hclspec"
import (
context "golang.org/x/net/context"
grpc "google.golang.org/grpc"
)
// 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.ProtoPackageIsVersion2 // please upgrade the proto package
// PluginType enumerates the type of plugins Nomad supports
type PluginType int32
const (
PluginType_UNKNOWN PluginType = 0
PluginType_DRIVER PluginType = 2
PluginType_DEVICE PluginType = 3
)
var PluginType_name = map[int32]string{
0: "UNKNOWN",
2: "DRIVER",
3: "DEVICE",
}
var PluginType_value = map[string]int32{
"UNKNOWN": 0,
"DRIVER": 2,
"DEVICE": 3,
}
func (x PluginType) String() string {
return proto.EnumName(PluginType_name, int32(x))
}
func (PluginType) EnumDescriptor() ([]byte, []int) {
return fileDescriptor_base_2cf49a455019f531, []int{0}
}
// PluginInfoRequest is used to request the plugins basic information.
type PluginInfoRequest struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PluginInfoRequest) Reset() { *m = PluginInfoRequest{} }
func (m *PluginInfoRequest) String() string { return proto.CompactTextString(m) }
func (*PluginInfoRequest) ProtoMessage() {}
func (*PluginInfoRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_base_2cf49a455019f531, []int{0}
}
func (m *PluginInfoRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PluginInfoRequest.Unmarshal(m, b)
}
func (m *PluginInfoRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PluginInfoRequest.Marshal(b, m, deterministic)
}
func (dst *PluginInfoRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_PluginInfoRequest.Merge(dst, src)
}
func (m *PluginInfoRequest) XXX_Size() int {
return xxx_messageInfo_PluginInfoRequest.Size(m)
}
func (m *PluginInfoRequest) XXX_DiscardUnknown() {
xxx_messageInfo_PluginInfoRequest.DiscardUnknown(m)
}
var xxx_messageInfo_PluginInfoRequest proto.InternalMessageInfo
// PluginInfoResponse returns basic information about the plugin such
// that Nomad can decide whether to load the plugin or not.
type PluginInfoResponse struct {
// type indicates what type of plugin this is.
Type PluginType `protobuf:"varint,1,opt,name=type,proto3,enum=hashicorp.nomad.plugins.base.proto.PluginType" json:"type,omitempty"`
// plugin_api_version indicates the version of the Nomad Plugin API
// this plugin is built against.
PluginApiVersion string `protobuf:"bytes,2,opt,name=plugin_api_version,json=pluginApiVersion,proto3" json:"plugin_api_version,omitempty"`
// plugin_version is the semver version of this individual plugin.
// This is divorce from Nomads development and versioning.
PluginVersion string `protobuf:"bytes,3,opt,name=plugin_version,json=pluginVersion,proto3" json:"plugin_version,omitempty"`
// name is the name of the plugin
Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *PluginInfoResponse) Reset() { *m = PluginInfoResponse{} }
func (m *PluginInfoResponse) String() string { return proto.CompactTextString(m) }
func (*PluginInfoResponse) ProtoMessage() {}
func (*PluginInfoResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_base_2cf49a455019f531, []int{1}
}
func (m *PluginInfoResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_PluginInfoResponse.Unmarshal(m, b)
}
func (m *PluginInfoResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_PluginInfoResponse.Marshal(b, m, deterministic)
}
func (dst *PluginInfoResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_PluginInfoResponse.Merge(dst, src)
}
func (m *PluginInfoResponse) XXX_Size() int {
return xxx_messageInfo_PluginInfoResponse.Size(m)
}
func (m *PluginInfoResponse) XXX_DiscardUnknown() {
xxx_messageInfo_PluginInfoResponse.DiscardUnknown(m)
}
var xxx_messageInfo_PluginInfoResponse proto.InternalMessageInfo
func (m *PluginInfoResponse) GetType() PluginType {
if m != nil {
return m.Type
}
return PluginType_UNKNOWN
}
func (m *PluginInfoResponse) GetPluginApiVersion() string {
if m != nil {
return m.PluginApiVersion
}
return ""
}
func (m *PluginInfoResponse) GetPluginVersion() string {
if m != nil {
return m.PluginVersion
}
return ""
}
func (m *PluginInfoResponse) GetName() string {
if m != nil {
return m.Name
}
return ""
}
// ConfigSchemaRequest is used to request the configurations schema.
type ConfigSchemaRequest struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ConfigSchemaRequest) Reset() { *m = ConfigSchemaRequest{} }
func (m *ConfigSchemaRequest) String() string { return proto.CompactTextString(m) }
func (*ConfigSchemaRequest) ProtoMessage() {}
func (*ConfigSchemaRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_base_2cf49a455019f531, []int{2}
}
func (m *ConfigSchemaRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConfigSchemaRequest.Unmarshal(m, b)
}
func (m *ConfigSchemaRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ConfigSchemaRequest.Marshal(b, m, deterministic)
}
func (dst *ConfigSchemaRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_ConfigSchemaRequest.Merge(dst, src)
}
func (m *ConfigSchemaRequest) XXX_Size() int {
return xxx_messageInfo_ConfigSchemaRequest.Size(m)
}
func (m *ConfigSchemaRequest) XXX_DiscardUnknown() {
xxx_messageInfo_ConfigSchemaRequest.DiscardUnknown(m)
}
var xxx_messageInfo_ConfigSchemaRequest proto.InternalMessageInfo
// ConfigSchemaResponse returns the plugins configuration schema.
type ConfigSchemaResponse struct {
// spec is the plugins configuration schema
Spec *hclspec.Spec `protobuf:"bytes,1,opt,name=spec,proto3" json:"spec,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *ConfigSchemaResponse) Reset() { *m = ConfigSchemaResponse{} }
func (m *ConfigSchemaResponse) String() string { return proto.CompactTextString(m) }
func (*ConfigSchemaResponse) ProtoMessage() {}
func (*ConfigSchemaResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_base_2cf49a455019f531, []int{3}
}
func (m *ConfigSchemaResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_ConfigSchemaResponse.Unmarshal(m, b)
}
func (m *ConfigSchemaResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_ConfigSchemaResponse.Marshal(b, m, deterministic)
}
func (dst *ConfigSchemaResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_ConfigSchemaResponse.Merge(dst, src)
}
func (m *ConfigSchemaResponse) XXX_Size() int {
return xxx_messageInfo_ConfigSchemaResponse.Size(m)
}
func (m *ConfigSchemaResponse) XXX_DiscardUnknown() {
xxx_messageInfo_ConfigSchemaResponse.DiscardUnknown(m)
}
var xxx_messageInfo_ConfigSchemaResponse proto.InternalMessageInfo
func (m *ConfigSchemaResponse) GetSpec() *hclspec.Spec {
if m != nil {
return m.Spec
}
return nil
}
// SetConfigRequest is used to set the configuration
type SetConfigRequest struct {
// msgpack_config is the configuration encoded as MessagePack.
MsgpackConfig []byte `protobuf:"bytes,1,opt,name=msgpack_config,json=msgpackConfig,proto3" json:"msgpack_config,omitempty"`
// nomad_config is the nomad client configuration sent to all plugins.
NomadConfig *NomadConfig `protobuf:"bytes,2,opt,name=nomad_config,json=nomadConfig,proto3" json:"nomad_config,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SetConfigRequest) Reset() { *m = SetConfigRequest{} }
func (m *SetConfigRequest) String() string { return proto.CompactTextString(m) }
func (*SetConfigRequest) ProtoMessage() {}
func (*SetConfigRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_base_2cf49a455019f531, []int{4}
}
func (m *SetConfigRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetConfigRequest.Unmarshal(m, b)
}
func (m *SetConfigRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SetConfigRequest.Marshal(b, m, deterministic)
}
func (dst *SetConfigRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_SetConfigRequest.Merge(dst, src)
}
func (m *SetConfigRequest) XXX_Size() int {
return xxx_messageInfo_SetConfigRequest.Size(m)
}
func (m *SetConfigRequest) XXX_DiscardUnknown() {
xxx_messageInfo_SetConfigRequest.DiscardUnknown(m)
}
var xxx_messageInfo_SetConfigRequest proto.InternalMessageInfo
func (m *SetConfigRequest) GetMsgpackConfig() []byte {
if m != nil {
return m.MsgpackConfig
}
return nil
}
func (m *SetConfigRequest) GetNomadConfig() *NomadConfig {
if m != nil {
return m.NomadConfig
}
return nil
}
// NomadConfig is the client configuration sent to all plugins
type NomadConfig struct {
// ClientMaxPort is the upper range of the ports that the client uses for
// communicating with plugin subsystems over loopback
ClientMaxPort uint32 `protobuf:"varint,1,opt,name=ClientMaxPort,proto3" json:"ClientMaxPort,omitempty"`
// ClientMinPort is the lower range of the ports that the client uses for
// communicating with plugin subsystems over loopback
ClientMinPort uint32 `protobuf:"varint,2,opt,name=ClientMinPort,proto3" json:"ClientMinPort,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *NomadConfig) Reset() { *m = NomadConfig{} }
func (m *NomadConfig) String() string { return proto.CompactTextString(m) }
func (*NomadConfig) ProtoMessage() {}
func (*NomadConfig) Descriptor() ([]byte, []int) {
return fileDescriptor_base_2cf49a455019f531, []int{5}
}
func (m *NomadConfig) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_NomadConfig.Unmarshal(m, b)
}
func (m *NomadConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_NomadConfig.Marshal(b, m, deterministic)
}
func (dst *NomadConfig) XXX_Merge(src proto.Message) {
xxx_messageInfo_NomadConfig.Merge(dst, src)
}
func (m *NomadConfig) XXX_Size() int {
return xxx_messageInfo_NomadConfig.Size(m)
}
func (m *NomadConfig) XXX_DiscardUnknown() {
xxx_messageInfo_NomadConfig.DiscardUnknown(m)
}
var xxx_messageInfo_NomadConfig proto.InternalMessageInfo
func (m *NomadConfig) GetClientMaxPort() uint32 {
if m != nil {
return m.ClientMaxPort
}
return 0
}
func (m *NomadConfig) GetClientMinPort() uint32 {
if m != nil {
return m.ClientMinPort
}
return 0
}
// SetConfigResponse is used to respond to setting the configuration
type SetConfigResponse struct {
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SetConfigResponse) Reset() { *m = SetConfigResponse{} }
func (m *SetConfigResponse) String() string { return proto.CompactTextString(m) }
func (*SetConfigResponse) ProtoMessage() {}
func (*SetConfigResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_base_2cf49a455019f531, []int{6}
}
func (m *SetConfigResponse) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_SetConfigResponse.Unmarshal(m, b)
}
func (m *SetConfigResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_SetConfigResponse.Marshal(b, m, deterministic)
}
func (dst *SetConfigResponse) XXX_Merge(src proto.Message) {
xxx_messageInfo_SetConfigResponse.Merge(dst, src)
}
func (m *SetConfigResponse) XXX_Size() int {
return xxx_messageInfo_SetConfigResponse.Size(m)
}
func (m *SetConfigResponse) XXX_DiscardUnknown() {
xxx_messageInfo_SetConfigResponse.DiscardUnknown(m)
}
var xxx_messageInfo_SetConfigResponse proto.InternalMessageInfo
func init() {
proto.RegisterType((*PluginInfoRequest)(nil), "hashicorp.nomad.plugins.base.proto.PluginInfoRequest")
proto.RegisterType((*PluginInfoResponse)(nil), "hashicorp.nomad.plugins.base.proto.PluginInfoResponse")
proto.RegisterType((*ConfigSchemaRequest)(nil), "hashicorp.nomad.plugins.base.proto.ConfigSchemaRequest")
proto.RegisterType((*ConfigSchemaResponse)(nil), "hashicorp.nomad.plugins.base.proto.ConfigSchemaResponse")
proto.RegisterType((*SetConfigRequest)(nil), "hashicorp.nomad.plugins.base.proto.SetConfigRequest")
proto.RegisterType((*NomadConfig)(nil), "hashicorp.nomad.plugins.base.proto.NomadConfig")
proto.RegisterType((*SetConfigResponse)(nil), "hashicorp.nomad.plugins.base.proto.SetConfigResponse")
proto.RegisterEnum("hashicorp.nomad.plugins.base.proto.PluginType", PluginType_name, PluginType_value)
}
// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn
// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4
// BasePluginClient is the client API for BasePlugin service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type BasePluginClient interface {
// PluginInfo describes the type and version of a plugin.
PluginInfo(ctx context.Context, in *PluginInfoRequest, opts ...grpc.CallOption) (*PluginInfoResponse, error)
// ConfigSchema returns the schema for parsing the plugins configuration.
ConfigSchema(ctx context.Context, in *ConfigSchemaRequest, opts ...grpc.CallOption) (*ConfigSchemaResponse, error)
// SetConfig is used to set the configuration.
SetConfig(ctx context.Context, in *SetConfigRequest, opts ...grpc.CallOption) (*SetConfigResponse, error)
}
type basePluginClient struct {
cc *grpc.ClientConn
}
func NewBasePluginClient(cc *grpc.ClientConn) BasePluginClient {
return &basePluginClient{cc}
}
func (c *basePluginClient) PluginInfo(ctx context.Context, in *PluginInfoRequest, opts ...grpc.CallOption) (*PluginInfoResponse, error) {
out := new(PluginInfoResponse)
err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.base.proto.BasePlugin/PluginInfo", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *basePluginClient) ConfigSchema(ctx context.Context, in *ConfigSchemaRequest, opts ...grpc.CallOption) (*ConfigSchemaResponse, error) {
out := new(ConfigSchemaResponse)
err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.base.proto.BasePlugin/ConfigSchema", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *basePluginClient) SetConfig(ctx context.Context, in *SetConfigRequest, opts ...grpc.CallOption) (*SetConfigResponse, error) {
out := new(SetConfigResponse)
err := c.cc.Invoke(ctx, "/hashicorp.nomad.plugins.base.proto.BasePlugin/SetConfig", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
// BasePluginServer is the server API for BasePlugin service.
type BasePluginServer interface {
// PluginInfo describes the type and version of a plugin.
PluginInfo(context.Context, *PluginInfoRequest) (*PluginInfoResponse, error)
// ConfigSchema returns the schema for parsing the plugins configuration.
ConfigSchema(context.Context, *ConfigSchemaRequest) (*ConfigSchemaResponse, error)
// SetConfig is used to set the configuration.
SetConfig(context.Context, *SetConfigRequest) (*SetConfigResponse, error)
}
func RegisterBasePluginServer(s *grpc.Server, srv BasePluginServer) {
s.RegisterService(&_BasePlugin_serviceDesc, srv)
}
func _BasePlugin_PluginInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(PluginInfoRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(BasePluginServer).PluginInfo(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/hashicorp.nomad.plugins.base.proto.BasePlugin/PluginInfo",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(BasePluginServer).PluginInfo(ctx, req.(*PluginInfoRequest))
}
return interceptor(ctx, in, info, handler)
}
func _BasePlugin_ConfigSchema_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(ConfigSchemaRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(BasePluginServer).ConfigSchema(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/hashicorp.nomad.plugins.base.proto.BasePlugin/ConfigSchema",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(BasePluginServer).ConfigSchema(ctx, req.(*ConfigSchemaRequest))
}
return interceptor(ctx, in, info, handler)
}
func _BasePlugin_SetConfig_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(SetConfigRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(BasePluginServer).SetConfig(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/hashicorp.nomad.plugins.base.proto.BasePlugin/SetConfig",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(BasePluginServer).SetConfig(ctx, req.(*SetConfigRequest))
}
return interceptor(ctx, in, info, handler)
}
var _BasePlugin_serviceDesc = grpc.ServiceDesc{
ServiceName: "hashicorp.nomad.plugins.base.proto.BasePlugin",
HandlerType: (*BasePluginServer)(nil),
Methods: []grpc.MethodDesc{
{
MethodName: "PluginInfo",
Handler: _BasePlugin_PluginInfo_Handler,
},
{
MethodName: "ConfigSchema",
Handler: _BasePlugin_ConfigSchema_Handler,
},
{
MethodName: "SetConfig",
Handler: _BasePlugin_SetConfig_Handler,
},
},
Streams: []grpc.StreamDesc{},
Metadata: "base.proto",
}
func init() { proto.RegisterFile("base.proto", fileDescriptor_base_2cf49a455019f531) }
var fileDescriptor_base_2cf49a455019f531 = []byte{
// 484 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x92, 0xcf, 0x6f, 0x12, 0x41,
0x14, 0xc7, 0xbb, 0x80, 0x6d, 0xfa, 0x80, 0x66, 0x9d, 0x6a, 0x42, 0x38, 0x35, 0x1b, 0x4d, 0x1a,
0xd3, 0xcc, 0x46, 0xb4, 0xea, 0xb1, 0x82, 0x1c, 0x88, 0x11, 0x9b, 0x45, 0xf1, 0xc7, 0x85, 0x0c,
0xdb, 0x29, 0x3b, 0x91, 0x9d, 0x19, 0x77, 0x16, 0x63, 0x4d, 0x3c, 0x79, 0xe6, 0x8f, 0xf2, 0x3f,
0x33, 0xfb, 0x66, 0x17, 0x16, 0xa3, 0x29, 0x9c, 0x76, 0xf8, 0xbe, 0xcf, 0xfb, 0xc9, 0x17, 0x60,
0xca, 0x0c, 0xa7, 0x3a, 0x51, 0xa9, 0x22, 0x5e, 0xc4, 0x4c, 0x24, 0x42, 0x95, 0x68, 0x2a, 0x55,
0xcc, 0xae, 0xa8, 0x9e, 0x2f, 0x66, 0x42, 0x1a, 0xba, 0x66, 0xda, 0x17, 0x33, 0x91, 0x46, 0x8b,
0x29, 0x0d, 0x55, 0xec, 0xaf, 0x70, 0x1f, 0x71, 0x3f, 0xc7, 0x7d, 0x13, 0xb1, 0x84, 0x5f, 0xf9,
0x51, 0x38, 0x37, 0x9a, 0x87, 0xd9, 0x77, 0x92, 0x3d, 0x6c, 0x05, 0xef, 0x18, 0xee, 0x5e, 0x22,
0x38, 0x90, 0xd7, 0x2a, 0xe0, 0x5f, 0x17, 0xdc, 0xa4, 0xde, 0x6f, 0x07, 0x48, 0x59, 0x35, 0x5a,
0x49, 0xc3, 0x49, 0x17, 0x6a, 0xe9, 0x8d, 0xe6, 0x2d, 0xe7, 0xc4, 0x39, 0x3d, 0xea, 0x50, 0x7a,
0xfb, 0x80, 0xd4, 0x56, 0x79, 0x77, 0xa3, 0x79, 0x80, 0xb9, 0xe4, 0x0c, 0x88, 0xc5, 0x26, 0x4c,
0x8b, 0xc9, 0x37, 0x9e, 0x18, 0xa1, 0x64, 0xab, 0x72, 0xe2, 0x9c, 0x1e, 0x06, 0xae, 0x8d, 0xbc,
0xd4, 0x62, 0x6c, 0x75, 0xf2, 0x10, 0x8e, 0x72, 0xba, 0x20, 0xab, 0x48, 0x36, 0xad, 0x5a, 0x60,
0x04, 0x6a, 0x92, 0xc5, 0xbc, 0x55, 0xc3, 0x20, 0xbe, 0xbd, 0xfb, 0x70, 0xdc, 0x53, 0xf2, 0x5a,
0xcc, 0x46, 0x61, 0xc4, 0x63, 0x56, 0xac, 0xf6, 0x11, 0xee, 0x6d, 0xca, 0xf9, 0x6e, 0x17, 0x50,
0xcb, 0xae, 0x82, 0xbb, 0xd5, 0x3b, 0x67, 0xff, 0xdd, 0xcd, 0x5e, 0x93, 0xe6, 0xd7, 0xa4, 0x23,
0xcd, 0xc3, 0x00, 0x33, 0xbd, 0xa5, 0x03, 0xee, 0x88, 0xa7, 0xb6, 0x7a, 0xde, 0x2e, 0x5b, 0x20,
0x36, 0x33, 0xcd, 0xc2, 0x2f, 0x93, 0x10, 0x03, 0xd8, 0xa0, 0x11, 0x34, 0x73, 0xd5, 0xd2, 0x24,
0x80, 0x06, 0xb6, 0x29, 0xa0, 0x0a, 0x4e, 0xe1, 0x6f, 0x73, 0xe1, 0x61, 0x16, 0xc8, 0x9b, 0xd6,
0xe5, 0xfa, 0x87, 0xf7, 0x09, 0xea, 0xa5, 0x18, 0x79, 0x00, 0xcd, 0xde, 0x5c, 0x70, 0x99, 0xbe,
0x61, 0xdf, 0x2f, 0x55, 0x92, 0xe2, 0x20, 0xcd, 0x60, 0x53, 0x2c, 0x51, 0x42, 0x22, 0x55, 0xd9,
0xa0, 0xac, 0x98, 0x99, 0xa6, 0xb4, 0xa9, 0xbd, 0xe0, 0xa3, 0xc7, 0x00, 0xeb, 0x7f, 0x9b, 0xd4,
0xe1, 0xe0, 0xfd, 0xf0, 0xf5, 0xf0, 0xed, 0x87, 0xa1, 0xbb, 0x47, 0x00, 0xf6, 0x5f, 0x05, 0x83,
0x71, 0x3f, 0x70, 0x2b, 0xf8, 0xee, 0x8f, 0x07, 0xbd, 0xbe, 0x5b, 0xed, 0x2c, 0xab, 0x00, 0x5d,
0x66, 0xb8, 0xcd, 0x23, 0x3f, 0x8b, 0x0a, 0x99, 0xeb, 0xc8, 0xf9, 0xf6, 0xfe, 0x2a, 0x79, 0xb7,
0xfd, 0x6c, 0xd7, 0x34, 0x3b, 0xbe, 0xb7, 0x47, 0x7e, 0x39, 0xd0, 0x28, 0x7b, 0x83, 0x3c, 0xdf,
0xa6, 0xd4, 0x3f, 0x4c, 0xd6, 0x7e, 0xb1, 0x7b, 0xe2, 0x6a, 0x8a, 0x1f, 0x70, 0xb8, 0xba, 0x2d,
0x79, 0xba, 0x4d, 0xa1, 0xbf, 0x4d, 0xd7, 0x3e, 0xdf, 0x31, 0xab, 0xe8, 0xdd, 0x3d, 0xf8, 0x7c,
0x07, 0x83, 0xd3, 0x7d, 0xfc, 0x3c, 0xf9, 0x13, 0x00, 0x00, 0xff, 0xff, 0xfb, 0x28, 0x74, 0x29,
0x90, 0x04, 0x00, 0x00,
}