// Code generated by protoc-gen-go. DO NOT EDIT.
// source: lcm.proto

/*
Package service is a generated protocol buffer package.

It is generated from these files:
	lcm.proto

It has these top-level messages:
	ResourceRequirements
	User
	JobDeploymentRequest
	ImageLocation
	JobDeploymentResponse
	JobKillRequest
	JobKillResponse
	JobHaltRequest
	JobHaltResponse
*/
package service

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"

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

type StatusMessages int32

const (
	StatusMessages_NORMAL_OPERATION       StatusMessages = 0
	StatusMessages_INTERNAL_ERROR         StatusMessages = 10
	StatusMessages_INSUFFICIENT_RESOURCES StatusMessages = 20
)

var StatusMessages_name = map[int32]string{
	0:  "NORMAL_OPERATION",
	10: "INTERNAL_ERROR",
	20: "INSUFFICIENT_RESOURCES",
}
var StatusMessages_value = map[string]int32{
	"NORMAL_OPERATION":       0,
	"INTERNAL_ERROR":         10,
	"INSUFFICIENT_RESOURCES": 20,
}

func (x StatusMessages) String() string {
	return proto.EnumName(StatusMessages_name, int32(x))
}
func (StatusMessages) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

type ResourceRequirements_MemoryUnit int32

const (
	ResourceRequirements_MB  ResourceRequirements_MemoryUnit = 0
	ResourceRequirements_MiB ResourceRequirements_MemoryUnit = 1
	ResourceRequirements_GB  ResourceRequirements_MemoryUnit = 2
	ResourceRequirements_GiB ResourceRequirements_MemoryUnit = 3
	ResourceRequirements_TB  ResourceRequirements_MemoryUnit = 4
	ResourceRequirements_TiB ResourceRequirements_MemoryUnit = 5
)

var ResourceRequirements_MemoryUnit_name = map[int32]string{
	0: "MB",
	1: "MiB",
	2: "GB",
	3: "GiB",
	4: "TB",
	5: "TiB",
}
var ResourceRequirements_MemoryUnit_value = map[string]int32{
	"MB":  0,
	"MiB": 1,
	"GB":  2,
	"GiB": 3,
	"TB":  4,
	"TiB": 5,
}

func (x ResourceRequirements_MemoryUnit) String() string {
	return proto.EnumName(ResourceRequirements_MemoryUnit_name, int32(x))
}
func (ResourceRequirements_MemoryUnit) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor0, []int{0, 0}
}

type ResourceRequirements struct {
	Cpus         float64                         `protobuf:"fixed64,1,opt,name=cpus" json:"cpus,omitempty"`
	Gpus         float64                         `protobuf:"fixed64,2,opt,name=gpus" json:"gpus,omitempty"`
	Memory       float64                         `protobuf:"fixed64,3,opt,name=memory" json:"memory,omitempty"`
	MemoryUnit   ResourceRequirements_MemoryUnit `protobuf:"varint,4,opt,name=memory_unit,json=memoryUnit,enum=service.ResourceRequirements_MemoryUnit" json:"memory_unit,omitempty"`
	Learners     int32                           `protobuf:"varint,5,opt,name=learners" json:"learners,omitempty"`
	Schedpolicy  string                          `protobuf:"bytes,6,opt,name=schedpolicy" json:"schedpolicy,omitempty"`
	Topology     string                          `protobuf:"bytes,7,opt,name=topology" json:"topology,omitempty"`
	Architecture string                          `protobuf:"bytes,8,opt,name=architecture" json:"architecture,omitempty"`
	Storage      float64                         `protobuf:"fixed64,9,opt,name=storage" json:"storage,omitempty"`
	StorageUnit  ResourceRequirements_MemoryUnit `protobuf:"varint,10,opt,name=storage_unit,json=storageUnit,enum=service.ResourceRequirements_MemoryUnit" json:"storage_unit,omitempty"`
	GpuType      string                          `protobuf:"bytes,11,opt,name=gpu_type,json=gpuType" json:"gpu_type,omitempty"`
}

func (m *ResourceRequirements) Reset()                    { *m = ResourceRequirements{} }
func (m *ResourceRequirements) String() string            { return proto.CompactTextString(m) }
func (*ResourceRequirements) ProtoMessage()               {}
func (*ResourceRequirements) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} }

func (m *ResourceRequirements) GetCpus() float64 {
	if m != nil {
		return m.Cpus
	}
	return 0
}

func (m *ResourceRequirements) GetGpus() float64 {
	if m != nil {
		return m.Gpus
	}
	return 0
}

func (m *ResourceRequirements) GetMemory() float64 {
	if m != nil {
		return m.Memory
	}
	return 0
}

func (m *ResourceRequirements) GetMemoryUnit() ResourceRequirements_MemoryUnit {
	if m != nil {
		return m.MemoryUnit
	}
	return ResourceRequirements_MB
}

func (m *ResourceRequirements) GetLearners() int32 {
	if m != nil {
		return m.Learners
	}
	return 0
}

func (m *ResourceRequirements) GetSchedpolicy() string {
	if m != nil {
		return m.Schedpolicy
	}
	return ""
}

func (m *ResourceRequirements) GetTopology() string {
	if m != nil {
		return m.Topology
	}
	return ""
}

func (m *ResourceRequirements) GetArchitecture() string {
	if m != nil {
		return m.Architecture
	}
	return ""
}

func (m *ResourceRequirements) GetStorage() float64 {
	if m != nil {
		return m.Storage
	}
	return 0
}

func (m *ResourceRequirements) GetStorageUnit() ResourceRequirements_MemoryUnit {
	if m != nil {
		return m.StorageUnit
	}
	return ResourceRequirements_MB
}

func (m *ResourceRequirements) GetGpuType() string {
	if m != nil {
		return m.GpuType
	}
	return ""
}

type User struct {
	Id        string   `protobuf:"bytes,1,opt,name=id" json:"id,omitempty"`
	Roles     []string `protobuf:"bytes,2,rep,name=roles" json:"roles,omitempty"`
	Firstname string   `protobuf:"bytes,3,opt,name=firstname" json:"firstname,omitempty"`
	Lastname  string   `protobuf:"bytes,4,opt,name=lastname" json:"lastname,omitempty"`
	Email     string   `protobuf:"bytes,5,opt,name=email" json:"email,omitempty"`
}

func (m *User) Reset()                    { *m = User{} }
func (m *User) String() string            { return proto.CompactTextString(m) }
func (*User) ProtoMessage()               {}
func (*User) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} }

func (m *User) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *User) GetRoles() []string {
	if m != nil {
		return m.Roles
	}
	return nil
}

func (m *User) GetFirstname() string {
	if m != nil {
		return m.Firstname
	}
	return ""
}

func (m *User) GetLastname() string {
	if m != nil {
		return m.Lastname
	}
	return ""
}

func (m *User) GetEmail() string {
	if m != nil {
		return m.Email
	}
	return ""
}

type JobDeploymentRequest struct {
	Name                  string                `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Resources             *ResourceRequirements `protobuf:"bytes,4,opt,name=resources" json:"resources,omitempty"`
	EnvVars               map[string]string     `protobuf:"bytes,5,rep,name=env_vars,json=envVars" json:"env_vars,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	Labels                map[string]string     `protobuf:"bytes,6,rep,name=labels" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	UserId                string                `protobuf:"bytes,7,opt,name=user_id,json=userId" json:"user_id,omitempty"`
	TrainingId            string                `protobuf:"bytes,8,opt,name=training_id,json=trainingId" json:"training_id,omitempty"`
	Framework             string                `protobuf:"bytes,9,opt,name=framework" json:"framework,omitempty"`
	Version               string                `protobuf:"bytes,10,opt,name=version" json:"version,omitempty"`
	EvaluationMetricsSpec string                `protobuf:"bytes,11,opt,name=evaluation_metrics_spec,json=evaluationMetricsSpec" json:"evaluation_metrics_spec,omitempty"`
	ImageTag              string                `protobuf:"bytes,12,opt,name=image_tag,json=imageTag" json:"image_tag,omitempty"`
	ImageLocation         *ImageLocation        `protobuf:"bytes,13,opt,name=image_location,json=imageLocation" json:"image_location,omitempty"`
}

func (m *JobDeploymentRequest) Reset()                    { *m = JobDeploymentRequest{} }
func (m *JobDeploymentRequest) String() string            { return proto.CompactTextString(m) }
func (*JobDeploymentRequest) ProtoMessage()               {}
func (*JobDeploymentRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} }

func (m *JobDeploymentRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *JobDeploymentRequest) GetResources() *ResourceRequirements {
	if m != nil {
		return m.Resources
	}
	return nil
}

func (m *JobDeploymentRequest) GetEnvVars() map[string]string {
	if m != nil {
		return m.EnvVars
	}
	return nil
}

func (m *JobDeploymentRequest) GetLabels() map[string]string {
	if m != nil {
		return m.Labels
	}
	return nil
}

func (m *JobDeploymentRequest) GetUserId() string {
	if m != nil {
		return m.UserId
	}
	return ""
}

func (m *JobDeploymentRequest) GetTrainingId() string {
	if m != nil {
		return m.TrainingId
	}
	return ""
}

func (m *JobDeploymentRequest) GetFramework() string {
	if m != nil {
		return m.Framework
	}
	return ""
}

func (m *JobDeploymentRequest) GetVersion() string {
	if m != nil {
		return m.Version
	}
	return ""
}

func (m *JobDeploymentRequest) GetEvaluationMetricsSpec() string {
	if m != nil {
		return m.EvaluationMetricsSpec
	}
	return ""
}

func (m *JobDeploymentRequest) GetImageTag() string {
	if m != nil {
		return m.ImageTag
	}
	return ""
}

func (m *JobDeploymentRequest) GetImageLocation() *ImageLocation {
	if m != nil {
		return m.ImageLocation
	}
	return nil
}

type ImageLocation struct {
	Registry    string `protobuf:"bytes,1,opt,name=registry" json:"registry,omitempty"`
	Namespace   string `protobuf:"bytes,2,opt,name=namespace" json:"namespace,omitempty"`
	AccessToken string `protobuf:"bytes,3,opt,name=access_token,json=accessToken" json:"access_token,omitempty"`
	Email       string `protobuf:"bytes,4,opt,name=email" json:"email,omitempty"`
}

func (m *ImageLocation) Reset()                    { *m = ImageLocation{} }
func (m *ImageLocation) String() string            { return proto.CompactTextString(m) }
func (*ImageLocation) ProtoMessage()               {}
func (*ImageLocation) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} }

func (m *ImageLocation) GetRegistry() string {
	if m != nil {
		return m.Registry
	}
	return ""
}

func (m *ImageLocation) GetNamespace() string {
	if m != nil {
		return m.Namespace
	}
	return ""
}

func (m *ImageLocation) GetAccessToken() string {
	if m != nil {
		return m.AccessToken
	}
	return ""
}

func (m *ImageLocation) GetEmail() string {
	if m != nil {
		return m.Email
	}
	return ""
}

type JobDeploymentResponse struct {
	Name   string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	Status string `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"`
}

func (m *JobDeploymentResponse) Reset()                    { *m = JobDeploymentResponse{} }
func (m *JobDeploymentResponse) String() string            { return proto.CompactTextString(m) }
func (*JobDeploymentResponse) ProtoMessage()               {}
func (*JobDeploymentResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} }

func (m *JobDeploymentResponse) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *JobDeploymentResponse) GetStatus() string {
	if m != nil {
		return m.Status
	}
	return ""
}

type JobKillRequest struct {
	Name       string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	TrainingId string `protobuf:"bytes,2,opt,name=training_id,json=trainingId" json:"training_id,omitempty"`
	UserId     string `protobuf:"bytes,3,opt,name=user_id,json=userId" json:"user_id,omitempty"`
}

func (m *JobKillRequest) Reset()                    { *m = JobKillRequest{} }
func (m *JobKillRequest) String() string            { return proto.CompactTextString(m) }
func (*JobKillRequest) ProtoMessage()               {}
func (*JobKillRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} }

func (m *JobKillRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *JobKillRequest) GetTrainingId() string {
	if m != nil {
		return m.TrainingId
	}
	return ""
}

func (m *JobKillRequest) GetUserId() string {
	if m != nil {
		return m.UserId
	}
	return ""
}

type JobKillResponse struct {
}

func (m *JobKillResponse) Reset()                    { *m = JobKillResponse{} }
func (m *JobKillResponse) String() string            { return proto.CompactTextString(m) }
func (*JobKillResponse) ProtoMessage()               {}
func (*JobKillResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} }

type JobHaltRequest struct {
	Name       string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	TrainingId string `protobuf:"bytes,2,opt,name=training_id,json=trainingId" json:"training_id,omitempty"`
	UserId     string `protobuf:"bytes,3,opt,name=user_id,json=userId" json:"user_id,omitempty"`
}

func (m *JobHaltRequest) Reset()                    { *m = JobHaltRequest{} }
func (m *JobHaltRequest) String() string            { return proto.CompactTextString(m) }
func (*JobHaltRequest) ProtoMessage()               {}
func (*JobHaltRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} }

func (m *JobHaltRequest) GetName() string {
	if m != nil {
		return m.Name
	}
	return ""
}

func (m *JobHaltRequest) GetTrainingId() string {
	if m != nil {
		return m.TrainingId
	}
	return ""
}

func (m *JobHaltRequest) GetUserId() string {
	if m != nil {
		return m.UserId
	}
	return ""
}

type JobHaltResponse struct {
}

func (m *JobHaltResponse) Reset()                    { *m = JobHaltResponse{} }
func (m *JobHaltResponse) String() string            { return proto.CompactTextString(m) }
func (*JobHaltResponse) ProtoMessage()               {}
func (*JobHaltResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} }

func init() {
	proto.RegisterType((*ResourceRequirements)(nil), "service.ResourceRequirements")
	proto.RegisterType((*User)(nil), "service.User")
	proto.RegisterType((*JobDeploymentRequest)(nil), "service.JobDeploymentRequest")
	proto.RegisterType((*ImageLocation)(nil), "service.ImageLocation")
	proto.RegisterType((*JobDeploymentResponse)(nil), "service.JobDeploymentResponse")
	proto.RegisterType((*JobKillRequest)(nil), "service.JobKillRequest")
	proto.RegisterType((*JobKillResponse)(nil), "service.JobKillResponse")
	proto.RegisterType((*JobHaltRequest)(nil), "service.JobHaltRequest")
	proto.RegisterType((*JobHaltResponse)(nil), "service.JobHaltResponse")
	proto.RegisterEnum("service.StatusMessages", StatusMessages_name, StatusMessages_value)
	proto.RegisterEnum("service.ResourceRequirements_MemoryUnit", ResourceRequirements_MemoryUnit_name, ResourceRequirements_MemoryUnit_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

// Client API for LifecycleManager service

type LifecycleManagerClient interface {
	DeployTrainingJob(ctx context.Context, in *JobDeploymentRequest, opts ...grpc.CallOption) (*JobDeploymentResponse, error)
	KillTrainingJob(ctx context.Context, in *JobKillRequest, opts ...grpc.CallOption) (*JobKillResponse, error)
	HaltTrainingJob(ctx context.Context, in *JobHaltRequest, opts ...grpc.CallOption) (*JobHaltResponse, error)
}

type lifecycleManagerClient struct {
	cc *grpc.ClientConn
}

func NewLifecycleManagerClient(cc *grpc.ClientConn) LifecycleManagerClient {
	return &lifecycleManagerClient{cc}
}

func (c *lifecycleManagerClient) DeployTrainingJob(ctx context.Context, in *JobDeploymentRequest, opts ...grpc.CallOption) (*JobDeploymentResponse, error) {
	out := new(JobDeploymentResponse)
	err := grpc.Invoke(ctx, "/service.LifecycleManager/DeployTrainingJob", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lifecycleManagerClient) KillTrainingJob(ctx context.Context, in *JobKillRequest, opts ...grpc.CallOption) (*JobKillResponse, error) {
	out := new(JobKillResponse)
	err := grpc.Invoke(ctx, "/service.LifecycleManager/KillTrainingJob", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

func (c *lifecycleManagerClient) HaltTrainingJob(ctx context.Context, in *JobHaltRequest, opts ...grpc.CallOption) (*JobHaltResponse, error) {
	out := new(JobHaltResponse)
	err := grpc.Invoke(ctx, "/service.LifecycleManager/HaltTrainingJob", in, out, c.cc, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// Server API for LifecycleManager service

type LifecycleManagerServer interface {
	DeployTrainingJob(context.Context, *JobDeploymentRequest) (*JobDeploymentResponse, error)
	KillTrainingJob(context.Context, *JobKillRequest) (*JobKillResponse, error)
	HaltTrainingJob(context.Context, *JobHaltRequest) (*JobHaltResponse, error)
}

func RegisterLifecycleManagerServer(s *grpc.Server, srv LifecycleManagerServer) {
	s.RegisterService(&_LifecycleManager_serviceDesc, srv)
}

func _LifecycleManager_DeployTrainingJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(JobDeploymentRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LifecycleManagerServer).DeployTrainingJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/service.LifecycleManager/DeployTrainingJob",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LifecycleManagerServer).DeployTrainingJob(ctx, req.(*JobDeploymentRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LifecycleManager_KillTrainingJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(JobKillRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LifecycleManagerServer).KillTrainingJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/service.LifecycleManager/KillTrainingJob",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LifecycleManagerServer).KillTrainingJob(ctx, req.(*JobKillRequest))
	}
	return interceptor(ctx, in, info, handler)
}

func _LifecycleManager_HaltTrainingJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(JobHaltRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(LifecycleManagerServer).HaltTrainingJob(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/service.LifecycleManager/HaltTrainingJob",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(LifecycleManagerServer).HaltTrainingJob(ctx, req.(*JobHaltRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _LifecycleManager_serviceDesc = grpc.ServiceDesc{
	ServiceName: "service.LifecycleManager",
	HandlerType: (*LifecycleManagerServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "DeployTrainingJob",
			Handler:    _LifecycleManager_DeployTrainingJob_Handler,
		},
		{
			MethodName: "KillTrainingJob",
			Handler:    _LifecycleManager_KillTrainingJob_Handler,
		},
		{
			MethodName: "HaltTrainingJob",
			Handler:    _LifecycleManager_HaltTrainingJob_Handler,
		},
	},
	Streams:  []grpc.StreamDesc{},
	Metadata: "lcm.proto",
}

func init() { proto.RegisterFile("lcm.proto", fileDescriptor0) }

var fileDescriptor0 = []byte{
	// 919 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x55, 0xc1, 0x6f, 0xdb, 0xb6,
	0x17, 0x8e, 0x6c, 0xc7, 0x8e, 0x9e, 0x13, 0x57, 0x25, 0xd2, 0x44, 0x3f, 0xff, 0xd6, 0x2d, 0xf3,
	0xc9, 0xeb, 0x21, 0x87, 0x0c, 0x18, 0xb6, 0x0e, 0xc3, 0x10, 0x67, 0x4e, 0xe7, 0x34, 0x76, 0x06,
	0x5a, 0xe9, 0x71, 0x02, 0x2d, 0xbf, 0xaa, 0x44, 0x24, 0x51, 0x23, 0x69, 0x0f, 0x06, 0x76, 0xda,
	0x9f, 0xba, 0x3f, 0x60, 0xe7, 0x1d, 0x07, 0x52, 0xb2, 0xad, 0xb4, 0x69, 0x80, 0x1e, 0x76, 0xe3,
	0xf7, 0x3d, 0xbf, 0x8f, 0xe4, 0xf7, 0x3e, 0xca, 0xe0, 0x26, 0x51, 0x7a, 0x9a, 0x4b, 0xa1, 0x05,
	0x69, 0x29, 0x94, 0x4b, 0x1e, 0x61, 0xef, 0xaf, 0x3a, 0x1c, 0x52, 0x54, 0x62, 0x21, 0x23, 0xa4,
	0xf8, 0xdb, 0x82, 0x4b, 0x4c, 0x31, 0xd3, 0x8a, 0x10, 0x68, 0x44, 0xf9, 0x42, 0xf9, 0xce, 0x89,
	0xd3, 0x77, 0xa8, 0x5d, 0x1b, 0x2e, 0x36, 0x5c, 0xad, 0xe0, 0xcc, 0x9a, 0x1c, 0x41, 0x33, 0xc5,
	0x54, 0xc8, 0x95, 0x5f, 0xb7, 0x6c, 0x89, 0xc8, 0x08, 0xda, 0xc5, 0x2a, 0x5c, 0x64, 0x5c, 0xfb,
	0x8d, 0x13, 0xa7, 0xdf, 0x39, 0xeb, 0x9f, 0x96, 0xfb, 0x9e, 0x3e, 0xb4, 0xe7, 0xe9, 0xd8, 0x36,
	0xdc, 0x66, 0x5c, 0x53, 0x48, 0x37, 0x6b, 0xd2, 0x85, 0xbd, 0x04, 0x99, 0xcc, 0x50, 0x2a, 0x7f,
	0xf7, 0xc4, 0xe9, 0xef, 0xd2, 0x0d, 0x26, 0x27, 0xd0, 0x56, 0xd1, 0x3b, 0x9c, 0xe7, 0x22, 0xe1,
	0xd1, 0xca, 0x6f, 0x9e, 0x38, 0x7d, 0x97, 0x56, 0x29, 0xd3, 0xad, 0x45, 0x2e, 0x12, 0x11, 0xaf,
	0xfc, 0x96, 0x2d, 0x6f, 0x30, 0xe9, 0xc1, 0x3e, 0x93, 0xd1, 0x3b, 0xae, 0x31, 0xd2, 0x0b, 0x89,
	0xfe, 0x9e, 0xad, 0xdf, 0xe3, 0x88, 0x0f, 0x2d, 0xa5, 0x85, 0x64, 0x31, 0xfa, 0xae, 0xbd, 0xe1,
	0x1a, 0x92, 0xd7, 0xb0, 0x5f, 0x2e, 0x8b, 0x3b, 0xc2, 0x27, 0xde, 0xb1, 0x5d, 0x76, 0xdb, 0x4b,
	0xfe, 0x0f, 0xf6, 0xe2, 0x7c, 0x11, 0xea, 0x55, 0x8e, 0x7e, 0xdb, 0x1e, 0xa3, 0x15, 0xe7, 0x8b,
	0x60, 0x95, 0x63, 0xef, 0x47, 0x80, 0x6d, 0x17, 0x69, 0x42, 0x6d, 0x3c, 0xf0, 0x76, 0x48, 0x0b,
	0xea, 0x63, 0x3e, 0xf0, 0x1c, 0x43, 0xbc, 0x1a, 0x78, 0x35, 0x43, 0xbc, 0xe2, 0x03, 0xaf, 0x6e,
	0x88, 0x60, 0xe0, 0x35, 0x0c, 0x11, 0xf0, 0x81, 0xb7, 0xdb, 0xfb, 0x03, 0x1a, 0xb7, 0x0a, 0x25,
	0xe9, 0x40, 0x8d, 0xcf, 0xed, 0x44, 0x5d, 0x5a, 0xe3, 0x73, 0x72, 0x08, 0xbb, 0x52, 0x24, 0x68,
	0x06, 0x5a, 0xef, 0xbb, 0xb4, 0x00, 0xe4, 0x33, 0x70, 0xdf, 0x72, 0xa9, 0x74, 0xc6, 0x52, 0xb4,
	0x43, 0x75, 0xe9, 0x96, 0xb0, 0xc3, 0x60, 0x65, 0xb1, 0x51, 0xd8, 0xb9, 0xc6, 0x46, 0x0f, 0x53,
	0xc6, 0x13, 0x3b, 0x25, 0x97, 0x16, 0xa0, 0xf7, 0x77, 0x03, 0x0e, 0xaf, 0xc4, 0xec, 0x27, 0xcc,
	0x13, 0xb1, 0x32, 0x26, 0x18, 0x3f, 0x50, 0x69, 0x13, 0x27, 0x2b, 0x53, 0x1c, 0xc8, 0xae, 0xc9,
	0xf7, 0xe0, 0xca, 0xd2, 0x36, 0x65, 0xf5, 0xdb, 0x67, 0xcf, 0x1f, 0x35, 0x94, 0x6e, 0x7f, 0x4f,
	0x86, 0xb0, 0x87, 0xd9, 0x32, 0x5c, 0x32, 0x1b, 0x94, 0x7a, 0xbf, 0x7d, 0xf6, 0x62, 0xd3, 0xfb,
	0xd0, 0x09, 0x4e, 0x87, 0xd9, 0xf2, 0x0d, 0x93, 0x6a, 0x98, 0x69, 0xb9, 0xa2, 0x2d, 0x2c, 0x10,
	0x39, 0x87, 0x66, 0xc2, 0x66, 0x98, 0x28, 0xbf, 0x69, 0x45, 0xbe, 0x7a, 0x5c, 0xe4, 0xda, 0xfe,
	0xb6, 0xd0, 0x28, 0x1b, 0xc9, 0x31, 0xb4, 0x16, 0x0a, 0x65, 0xc8, 0xe7, 0x65, 0xe6, 0x9a, 0x06,
	0x8e, 0xe6, 0xe4, 0x0b, 0x68, 0x6b, 0xc9, 0x78, 0xc6, 0xb3, 0xd8, 0x14, 0x8b, 0xc0, 0xc1, 0x9a,
	0x1a, 0xcd, 0xad, 0xfb, 0x92, 0xa5, 0xf8, 0xbb, 0x90, 0x77, 0x36, 0x70, 0xc6, 0xfd, 0x35, 0x61,
	0xc2, 0xb8, 0x44, 0xa9, 0xb8, 0xc8, 0x6c, 0xda, 0x5c, 0xba, 0x86, 0xe4, 0x1b, 0x38, 0xc6, 0x25,
	0x4b, 0x16, 0x4c, 0x73, 0x91, 0x85, 0x29, 0x6a, 0xc9, 0x23, 0x15, 0xaa, 0x1c, 0xa3, 0x32, 0x4e,
	0xcf, 0xb6, 0xe5, 0x71, 0x51, 0x9d, 0xe6, 0x18, 0x91, 0xff, 0x83, 0xcb, 0x53, 0x13, 0x61, 0xcd,
	0x62, 0x7f, 0xbf, 0x18, 0xa8, 0x25, 0x02, 0x16, 0x93, 0x1f, 0xa0, 0x53, 0x14, 0x13, 0x11, 0xd9,
	0x4e, 0xff, 0xc0, 0x8e, 0xe4, 0x68, 0xe3, 0xc8, 0xc8, 0x94, 0xaf, 0xcb, 0x2a, 0x3d, 0xe0, 0x55,
	0xd8, 0x7d, 0x09, 0xfb, 0x55, 0x87, 0x89, 0x07, 0xf5, 0x3b, 0x5c, 0x95, 0xf3, 0x36, 0x4b, 0x93,
	0x18, 0x73, 0x2a, 0xb4, 0x9f, 0x14, 0x97, 0x16, 0xe0, 0x65, 0xed, 0x5b, 0xa7, 0xfb, 0x1d, 0xb4,
	0x2b, 0xc6, 0x7e, 0x4a, 0x6b, 0xef, 0x4f, 0x07, 0x0e, 0xee, 0x9d, 0xcb, 0x84, 0x56, 0x62, 0xcc,
	0x95, 0x96, 0x6b, 0x89, 0x0d, 0x36, 0x86, 0x9b, 0xe4, 0xa9, 0x9c, 0x45, 0x6b, 0xad, 0x2d, 0x41,
	0xbe, 0x84, 0x7d, 0x16, 0x45, 0xa8, 0x54, 0xa8, 0xc5, 0x1d, 0x66, 0xe5, 0x7b, 0x68, 0x17, 0x5c,
	0x60, 0xa8, 0x6d, 0xea, 0x1b, 0xd5, 0xd4, 0x5f, 0xc0, 0xb3, 0xf7, 0xd2, 0xa2, 0x72, 0x91, 0x29,
	0x7c, 0x30, 0xf5, 0x47, 0xd0, 0x54, 0x9a, 0xe9, 0xf2, 0xd3, 0xea, 0xd2, 0x12, 0xf5, 0x7e, 0x85,
	0xce, 0x95, 0x98, 0xbd, 0xe6, 0x49, 0xf2, 0xd8, 0x9b, 0x79, 0x2f, 0x53, 0xb5, 0x0f, 0x32, 0x55,
	0x49, 0x63, 0xbd, 0x9a, 0xc6, 0xde, 0x53, 0x78, 0xb2, 0xd1, 0x2f, 0x8e, 0x57, 0x6e, 0xf9, 0x33,
	0x4b, 0xf4, 0x7f, 0xb9, 0x65, 0xa1, 0x5f, 0x6c, 0xf9, 0xe2, 0x0d, 0x74, 0xa6, 0xf6, 0xbe, 0x63,
	0x54, 0x8a, 0xc5, 0xa8, 0xc8, 0x21, 0x78, 0x93, 0x1b, 0x3a, 0x3e, 0xbf, 0x0e, 0x6f, 0x7e, 0x19,
	0xd2, 0xf3, 0x60, 0x74, 0x33, 0xf1, 0x76, 0x08, 0x81, 0xce, 0x68, 0x12, 0x0c, 0xe9, 0xe4, 0xfc,
	0x3a, 0x1c, 0x52, 0x7a, 0x43, 0x3d, 0x20, 0x5d, 0x38, 0x1a, 0x4d, 0xa6, 0xb7, 0x97, 0x97, 0xa3,
	0x8b, 0xd1, 0x70, 0x12, 0x84, 0x74, 0x38, 0xbd, 0xb9, 0xa5, 0x17, 0xc3, 0xa9, 0x77, 0x78, 0xf6,
	0x8f, 0x03, 0xde, 0x35, 0x7f, 0x8b, 0xd1, 0x2a, 0x4a, 0x70, 0xcc, 0x32, 0x16, 0xa3, 0x24, 0x01,
	0x3c, 0x2d, 0x86, 0x12, 0x94, 0x87, 0xbd, 0x12, 0x33, 0xf2, 0xfc, 0xd1, 0x17, 0xde, 0xfd, 0xfc,
	0x63, 0xe5, 0xd2, 0xb3, 0x1d, 0x72, 0x09, 0x4f, 0x8c, 0x8b, 0x55, 0xcd, 0xe3, 0x6a, 0x53, 0x65,
	0x84, 0x5d, 0xff, 0xc3, 0x42, 0x55, 0xc7, 0x58, 0xf3, 0x51, 0x9d, 0xca, 0x5c, 0xee, 0xeb, 0x54,
	0x0d, 0xed, 0xed, 0xcc, 0x9a, 0xf6, 0x6f, 0xfe, 0xeb, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x54,
	0x84, 0xb1, 0xe4, 0xf3, 0x07, 0x00, 0x00,
}
