// Code generated by protoc-gen-go. DO NOT EDIT. // source: plugins/base/proto/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_f2480776612a8fbd, []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_f2480776612a8fbd, []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_versions indicates the versions of the Nomad Plugin API // this plugin supports. PluginApiVersions []string `protobuf:"bytes,2,rep,name=plugin_api_versions,json=pluginApiVersions,proto3" json:"plugin_api_versions,omitempty"` // plugin_version is the semver version of this individual plugin. // This is divorce from Nomad’s 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_f2480776612a8fbd, []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) GetPluginApiVersions() []string { if m != nil { return m.PluginApiVersions } return nil } 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_f2480776612a8fbd, []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_f2480776612a8fbd, []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"` // plugin_api_version is the api version to use. PluginApiVersion string `protobuf:"bytes,3,opt,name=plugin_api_version,json=pluginApiVersion,proto3" json:"plugin_api_version,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_f2480776612a8fbd, []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 } func (m *SetConfigRequest) GetPluginApiVersion() string { if m != nil { return m.PluginApiVersion } return "" } // NomadConfig is the client configuration sent to all plugins type NomadConfig struct { // driver specific configuration sent to all plugins Driver *NomadDriverConfig `protobuf:"bytes,1,opt,name=driver,proto3" json:"driver,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_f2480776612a8fbd, []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) GetDriver() *NomadDriverConfig { if m != nil { return m.Driver } return nil } // NomadDriverConfig is the driver specific client configuration sent to all // driver plugins type NomadDriverConfig 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 *NomadDriverConfig) Reset() { *m = NomadDriverConfig{} } func (m *NomadDriverConfig) String() string { return proto.CompactTextString(m) } func (*NomadDriverConfig) ProtoMessage() {} func (*NomadDriverConfig) Descriptor() ([]byte, []int) { return fileDescriptor_base_f2480776612a8fbd, []int{6} } func (m *NomadDriverConfig) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_NomadDriverConfig.Unmarshal(m, b) } func (m *NomadDriverConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { return xxx_messageInfo_NomadDriverConfig.Marshal(b, m, deterministic) } func (dst *NomadDriverConfig) XXX_Merge(src proto.Message) { xxx_messageInfo_NomadDriverConfig.Merge(dst, src) } func (m *NomadDriverConfig) XXX_Size() int { return xxx_messageInfo_NomadDriverConfig.Size(m) } func (m *NomadDriverConfig) XXX_DiscardUnknown() { xxx_messageInfo_NomadDriverConfig.DiscardUnknown(m) } var xxx_messageInfo_NomadDriverConfig proto.InternalMessageInfo func (m *NomadDriverConfig) GetClientMaxPort() uint32 { if m != nil { return m.ClientMaxPort } return 0 } func (m *NomadDriverConfig) 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_f2480776612a8fbd, []int{7} } 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((*NomadDriverConfig)(nil), "hashicorp.nomad.plugins.base.proto.NomadDriverConfig") 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: "plugins/base/proto/base.proto", } func init() { proto.RegisterFile("plugins/base/proto/base.proto", fileDescriptor_base_f2480776612a8fbd) } var fileDescriptor_base_f2480776612a8fbd = []byte{ // 535 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0x41, 0x8f, 0x12, 0x4d, 0x10, 0xdd, 0x01, 0x3e, 0x36, 0x14, 0xb0, 0x81, 0xe6, 0x33, 0x21, 0x24, 0x26, 0x64, 0xa2, 0x09, 0x31, 0x9b, 0x9e, 0x88, 0xa2, 0x1e, 0x57, 0x58, 0x0e, 0xc4, 0x2c, 0x6e, 0x06, 0x45, 0x63, 0x4c, 0x48, 0x33, 0xf4, 0x32, 0x1d, 0xa1, 0xbb, 0x9d, 0x1e, 0x36, 0xae, 0x89, 0x27, 0xcf, 0xfe, 0x22, 0x8f, 0xfe, 0x31, 0x33, 0xdd, 0x0d, 0x0c, 0xbb, 0x1a, 0xe1, 0x34, 0x45, 0xd5, 0x7b, 0xaf, 0xaa, 0x1e, 0xd5, 0x70, 0x5f, 0x2e, 0x56, 0x73, 0xc6, 0x95, 0x37, 0x25, 0x8a, 0x7a, 0x32, 0x12, 0xb1, 0xd0, 0x21, 0xd6, 0x21, 0x72, 0x43, 0xa2, 0x42, 0x16, 0x88, 0x48, 0x62, 0x2e, 0x96, 0x64, 0x86, 0x2d, 0x1c, 0x6f, 0x31, 0x8d, 0xb3, 0x39, 0x8b, 0xc3, 0xd5, 0x14, 0x07, 0x62, 0xe9, 0x6d, 0xe0, 0x9e, 0x86, 0x7b, 0x6b, 0x75, 0x15, 0x92, 0x88, 0xce, 0xbc, 0x30, 0x58, 0x28, 0x49, 0x83, 0xe4, 0x3b, 0x49, 0x02, 0xa3, 0xe0, 0xd6, 0xa0, 0x7a, 0xa9, 0x81, 0x03, 0x7e, 0x25, 0x7c, 0xfa, 0x79, 0x45, 0x55, 0xec, 0xfe, 0x72, 0x00, 0xa5, 0xb3, 0x4a, 0x0a, 0xae, 0x28, 0xea, 0x42, 0x2e, 0xbe, 0x91, 0xb4, 0xee, 0x34, 0x9d, 0xd6, 0x49, 0x1b, 0xe3, 0x7f, 0x0f, 0x88, 0x8d, 0xca, 0x9b, 0x1b, 0x49, 0x7d, 0xcd, 0x45, 0x18, 0x6a, 0x06, 0x36, 0x21, 0x92, 0x4d, 0xae, 0x69, 0xa4, 0x98, 0xe0, 0xaa, 0x9e, 0x69, 0x66, 0x5b, 0x05, 0xbf, 0x6a, 0x4a, 0x2f, 0x25, 0x1b, 0xdb, 0x02, 0x7a, 0x08, 0x27, 0x16, 0x6f, 0xb1, 0xf5, 0x6c, 0xd3, 0x69, 0x15, 0xfc, 0xb2, 0xc9, 0x5a, 0x1c, 0x42, 0x90, 0xe3, 0x64, 0x49, 0xeb, 0x39, 0x5d, 0xd4, 0xb1, 0x7b, 0x0f, 0x6a, 0x3d, 0xc1, 0xaf, 0xd8, 0x7c, 0x14, 0x84, 0x74, 0x49, 0xd6, 0xcb, 0xbd, 0x87, 0xff, 0x77, 0xd3, 0x76, 0xbb, 0x33, 0xc8, 0x25, 0xbe, 0xe8, 0xed, 0x8a, 0xed, 0xd3, 0xbf, 0x6e, 0x67, 0xfc, 0xc4, 0xd6, 0x4f, 0x3c, 0x92, 0x34, 0xf0, 0x35, 0xd3, 0xfd, 0xe9, 0x40, 0x65, 0x44, 0x63, 0xa3, 0x6e, 0xdb, 0x25, 0x0b, 0x2c, 0xd5, 0x5c, 0x92, 0xe0, 0xd3, 0x24, 0xd0, 0x05, 0xdd, 0xa0, 0xe4, 0x97, 0x6d, 0xd6, 0xa0, 0x91, 0x0f, 0x25, 0xdd, 0x66, 0x0d, 0xca, 0xe8, 0x29, 0xbc, 0x7d, 0x3c, 0x1e, 0x26, 0x05, 0xdb, 0xb4, 0xc8, 0xb7, 0x3f, 0xd0, 0x29, 0xa0, 0xbb, 0x5e, 0x5b, 0xff, 0x2a, 0xb7, 0xad, 0x76, 0x3f, 0x42, 0x31, 0xa5, 0x84, 0x2e, 0x20, 0x3f, 0x8b, 0xd8, 0x35, 0x8d, 0xac, 0x21, 0x9d, 0xbd, 0x47, 0x39, 0xd7, 0x34, 0x3b, 0x90, 0x15, 0x71, 0x27, 0x50, 0xbd, 0x53, 0x44, 0x0f, 0xa0, 0xdc, 0x5b, 0x30, 0xca, 0xe3, 0x0b, 0xf2, 0xe5, 0x52, 0x44, 0xb1, 0x6e, 0x55, 0xf6, 0x77, 0x93, 0x29, 0x14, 0xe3, 0x1a, 0x95, 0xd9, 0x41, 0x99, 0x64, 0x72, 0xc8, 0x29, 0xef, 0xcd, 0x7f, 0xfa, 0xe8, 0x31, 0xc0, 0xf6, 0x02, 0x51, 0x11, 0x8e, 0xdf, 0x0e, 0x5f, 0x0d, 0x5f, 0xbf, 0x1b, 0x56, 0x8e, 0x10, 0x40, 0xfe, 0xdc, 0x1f, 0x8c, 0xfb, 0x7e, 0x25, 0xa3, 0xe3, 0xfe, 0x78, 0xd0, 0xeb, 0x57, 0xb2, 0xed, 0x1f, 0x59, 0x80, 0x2e, 0x51, 0xd4, 0xf0, 0xd0, 0xb7, 0xb5, 0x42, 0xf2, 0x12, 0x50, 0x67, 0xff, 0x9b, 0x4f, 0xbd, 0xa7, 0xc6, 0xb3, 0x43, 0x69, 0x66, 0x7c, 0xf7, 0x08, 0x7d, 0x77, 0xa0, 0x94, 0xbe, 0x56, 0xf4, 0x7c, 0x1f, 0xa9, 0x3f, 0x9c, 0x7d, 0xe3, 0xc5, 0xe1, 0xc4, 0xcd, 0x14, 0x5f, 0xa1, 0xb0, 0xf1, 0x16, 0x3d, 0xdd, 0x47, 0xe8, 0xf6, 0x33, 0x68, 0x74, 0x0e, 0x64, 0xad, 0x7b, 0x77, 0x8f, 0x3f, 0xfc, 0xa7, 0x8b, 0xd3, 0xbc, 0xfe, 0x3c, 0xf9, 0x1d, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x26, 0x80, 0xcf, 0x37, 0x05, 0x00, 0x00, }