|
- // Code generated by protoc-gen-go. DO NOT EDIT.
- // source: google/devtools/remoteworkers/v1test2/bots.proto
-
- package remoteworkers // import "google.golang.org/genproto/googleapis/devtools/remoteworkers/v1test2"
-
- import proto "github.com/golang/protobuf/proto"
- import fmt "fmt"
- import math "math"
- import any "github.com/golang/protobuf/ptypes/any"
- import empty "github.com/golang/protobuf/ptypes/empty"
- import timestamp "github.com/golang/protobuf/ptypes/timestamp"
- import _ "google.golang.org/genproto/googleapis/api/annotations"
- import status "google.golang.org/genproto/googleapis/rpc/status"
- import field_mask "google.golang.org/genproto/protobuf/field_mask"
-
- 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
-
- // A coarse description of the status of the bot that the server uses to
- // determine whether to assign the bot new leases.
- type BotStatus int32
-
- const (
- // Default value; do not use.
- BotStatus_BOT_STATUS_UNSPECIFIED BotStatus = 0
- // The bot is healthy, and will accept leases as normal.
- BotStatus_OK BotStatus = 1
- // The bot is unhealthy and will not accept new leases. For example, the bot
- // may have detected that available disk space is too low. This situation may
- // resolve itself, but will typically require human intervention.
- BotStatus_UNHEALTHY BotStatus = 2
- // The bot has been asked to reboot the host. The bot will not accept new
- // leases; once all leases are complete, this session will no longer be
- // updated but the bot will be expected to establish a new session after the
- // reboot completes.
- BotStatus_HOST_REBOOTING BotStatus = 3
- // The bot has been asked to shut down. As with HOST_REBOOTING, once all
- // leases are completed, the session will no longer be updated and the bot
- // will not be expected to establish a new session.
- //
- // Bots are typically only asked to shut down if its host computer will be
- // modified in some way, such as deleting a VM.
- BotStatus_BOT_TERMINATING BotStatus = 4
- )
-
- var BotStatus_name = map[int32]string{
- 0: "BOT_STATUS_UNSPECIFIED",
- 1: "OK",
- 2: "UNHEALTHY",
- 3: "HOST_REBOOTING",
- 4: "BOT_TERMINATING",
- }
- var BotStatus_value = map[string]int32{
- "BOT_STATUS_UNSPECIFIED": 0,
- "OK": 1,
- "UNHEALTHY": 2,
- "HOST_REBOOTING": 3,
- "BOT_TERMINATING": 4,
- }
-
- func (x BotStatus) String() string {
- return proto.EnumName(BotStatus_name, int32(x))
- }
- func (BotStatus) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_bots_98c3d73c9e0a8e55, []int{0}
- }
-
- // The state of the lease. All leases start in the PENDING state. A bot can
- // change PENDING to ACTIVE or (in the case of an error) COMPLETED, or from
- // ACTIVE to COMPLETED. The server can change PENDING or ACTIVE to CANCELLED if
- // it wants the bot to release its resources - for example, if the bot needs to
- // be quarantined (it's producing bad output) or a cell needs to be drained.
- type LeaseState int32
-
- const (
- // Default value; do not use.
- LeaseState_LEASE_STATE_UNSPECIFIED LeaseState = 0
- // Pending: the server expects the bot to accept this lease. This may only be
- // set by the server.
- LeaseState_PENDING LeaseState = 1
- // Active: the bot has accepted this lease. This may only be set by the bot.
- LeaseState_ACTIVE LeaseState = 2
- // Completed: the bot is no longer leased. This may only be set by the bot,
- // and the status field must be populated iff the state is COMPLETED.
- LeaseState_COMPLETED LeaseState = 4
- // Cancelled: The bot should immediately release all resources associated with
- // the lease. This may only be set by the server.
- LeaseState_CANCELLED LeaseState = 5
- )
-
- var LeaseState_name = map[int32]string{
- 0: "LEASE_STATE_UNSPECIFIED",
- 1: "PENDING",
- 2: "ACTIVE",
- 4: "COMPLETED",
- 5: "CANCELLED",
- }
- var LeaseState_value = map[string]int32{
- "LEASE_STATE_UNSPECIFIED": 0,
- "PENDING": 1,
- "ACTIVE": 2,
- "COMPLETED": 4,
- "CANCELLED": 5,
- }
-
- func (x LeaseState) String() string {
- return proto.EnumName(LeaseState_name, int32(x))
- }
- func (LeaseState) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_bots_98c3d73c9e0a8e55, []int{1}
- }
-
- // Possible administration actions.
- type AdminTemp_Command int32
-
- const (
- // Illegal value.
- AdminTemp_UNSPECIFIED AdminTemp_Command = 0
- // Download and run a new version of the bot. `arg` will be a resource
- // accessible via `ByteStream.Read` to obtain the new bot code.
- AdminTemp_BOT_UPDATE AdminTemp_Command = 1
- // Restart the bot without downloading a new version. `arg` will be a
- // message to log.
- AdminTemp_BOT_RESTART AdminTemp_Command = 2
- // Shut down the bot. `arg` will be a task resource name (similar to those
- // in tasks.proto) that the bot can use to tell the server that it is
- // terminating.
- AdminTemp_BOT_TERMINATE AdminTemp_Command = 3
- // Restart the host computer. `arg` will be a message to log.
- AdminTemp_HOST_RESTART AdminTemp_Command = 4
- )
-
- var AdminTemp_Command_name = map[int32]string{
- 0: "UNSPECIFIED",
- 1: "BOT_UPDATE",
- 2: "BOT_RESTART",
- 3: "BOT_TERMINATE",
- 4: "HOST_RESTART",
- }
- var AdminTemp_Command_value = map[string]int32{
- "UNSPECIFIED": 0,
- "BOT_UPDATE": 1,
- "BOT_RESTART": 2,
- "BOT_TERMINATE": 3,
- "HOST_RESTART": 4,
- }
-
- func (x AdminTemp_Command) String() string {
- return proto.EnumName(AdminTemp_Command_name, int32(x))
- }
- func (AdminTemp_Command) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_bots_98c3d73c9e0a8e55, []int{2, 0}
- }
-
- // Types of bot events.
- type PostBotEventTempRequest_Type int32
-
- const (
- // Illegal value.
- PostBotEventTempRequest_UNSPECIFIED PostBotEventTempRequest_Type = 0
- // Interesting but harmless event.
- PostBotEventTempRequest_INFO PostBotEventTempRequest_Type = 1
- // Error condition.
- PostBotEventTempRequest_ERROR PostBotEventTempRequest_Type = 2
- )
-
- var PostBotEventTempRequest_Type_name = map[int32]string{
- 0: "UNSPECIFIED",
- 1: "INFO",
- 2: "ERROR",
- }
- var PostBotEventTempRequest_Type_value = map[string]int32{
- "UNSPECIFIED": 0,
- "INFO": 1,
- "ERROR": 2,
- }
-
- func (x PostBotEventTempRequest_Type) String() string {
- return proto.EnumName(PostBotEventTempRequest_Type_name, int32(x))
- }
- func (PostBotEventTempRequest_Type) EnumDescriptor() ([]byte, []int) {
- return fileDescriptor_bots_98c3d73c9e0a8e55, []int{5, 0}
- }
-
- // A bot session represents the state of a bot while in continuous contact with
- // the server for a period of time. The session includes information about the
- // worker - that is, the *worker* (the physical or virtual hardware) is
- // considered to be a property of the bot (the software agent running on that
- // hardware), which is the reverse of real life, but more natural from the point
- // of the view of this API, which communicates solely with the bot and not
- // directly with the underlying worker.
- type BotSession struct {
- // The bot session name, as selected by the server. Output only during a call
- // to CreateBotSession.
- Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
- // A unique bot ID within the farm used to persistently identify this bot over
- // time (i.e., over multiple sessions). This ID must be unique within a
- // farm. Typically, the bot ID will be the same as the name of the primary
- // device in the worker (e.g., what you'd get from typing `uname -n` on *nix),
- // but this is not required since a single device may allow multiple bots to
- // run on it, each with access to different resources. What is important is
- // that this ID is meaningful to humans, who might need to hunt a physical
- // machine down to fix it.
- //
- // When CreateBotSession is successfully called with a bot_id, all prior
- // sessions with the same ID are invalidated. If a bot attempts to update an
- // invalid session, the server must reject that request, and may also
- // quarantine the other bot with the same bot IDs (ie, stop sending it new
- // leases and alert an admin).
- BotId string `protobuf:"bytes,2,opt,name=bot_id,json=botId,proto3" json:"bot_id,omitempty"`
- // The status of the bot. This must be populated in every call to
- // UpdateBotSession.
- Status BotStatus `protobuf:"varint,3,opt,name=status,proto3,enum=google.devtools.remoteworkers.v1test2.BotStatus" json:"status,omitempty"`
- // A description of the worker hosting this bot. The Worker message is used
- // here in the Status context (see Worker for more information). If multiple
- // bots are running on the worker, this field should only describe the
- // resources accessible from this bot.
- //
- // During the call to CreateBotSession, the server may make arbitrary changes
- // to the worker's `server_properties` field (see that field for more
- // information). Otherwise, this field is input-only.
- Worker *Worker `protobuf:"bytes,4,opt,name=worker,proto3" json:"worker,omitempty"`
- // A list of all leases that are a part of this session. See the Lease message
- // for details.
- Leases []*Lease `protobuf:"bytes,5,rep,name=leases,proto3" json:"leases,omitempty"`
- // The time at which this bot session will expire, unless the bot calls
- // UpdateBotSession again. Output only.
- ExpireTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
- // The version of the bot code currently running. The server may use this
- // information to issue an admin action to tell the bot to update itself.
- Version string `protobuf:"bytes,7,opt,name=version,proto3" json:"version,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
- }
-
- func (m *BotSession) Reset() { *m = BotSession{} }
- func (m *BotSession) String() string { return proto.CompactTextString(m) }
- func (*BotSession) ProtoMessage() {}
- func (*BotSession) Descriptor() ([]byte, []int) {
- return fileDescriptor_bots_98c3d73c9e0a8e55, []int{0}
- }
- func (m *BotSession) XXX_Unmarshal(b []byte) error {
- return xxx_messageInfo_BotSession.Unmarshal(m, b)
- }
- func (m *BotSession) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- return xxx_messageInfo_BotSession.Marshal(b, m, deterministic)
- }
- func (dst *BotSession) XXX_Merge(src proto.Message) {
- xxx_messageInfo_BotSession.Merge(dst, src)
- }
- func (m *BotSession) XXX_Size() int {
- return xxx_messageInfo_BotSession.Size(m)
- }
- func (m *BotSession) XXX_DiscardUnknown() {
- xxx_messageInfo_BotSession.DiscardUnknown(m)
- }
-
- var xxx_messageInfo_BotSession proto.InternalMessageInfo
-
- func (m *BotSession) GetName() string {
- if m != nil {
- return m.Name
- }
- return ""
- }
-
- func (m *BotSession) GetBotId() string {
- if m != nil {
- return m.BotId
- }
- return ""
- }
-
- func (m *BotSession) GetStatus() BotStatus {
- if m != nil {
- return m.Status
- }
- return BotStatus_BOT_STATUS_UNSPECIFIED
- }
-
- func (m *BotSession) GetWorker() *Worker {
- if m != nil {
- return m.Worker
- }
- return nil
- }
-
- func (m *BotSession) GetLeases() []*Lease {
- if m != nil {
- return m.Leases
- }
- return nil
- }
-
- func (m *BotSession) GetExpireTime() *timestamp.Timestamp {
- if m != nil {
- return m.ExpireTime
- }
- return nil
- }
-
- func (m *BotSession) GetVersion() string {
- if m != nil {
- return m.Version
- }
- return ""
- }
-
- // A Lease is a lease that the scheduler has assigned to this bot. If the bot
- // notices (by UpdateBotSession) that it has any leases in the PENDING state, it
- // should call UpdateBotSession to put the leases into the ACTIVE state and
- // start executing their assignments.
- //
- // All fields in this message are output-only, *except* the `state` and `status`
- // fields. Note that repeated fields can only be updated as a unit, so on every
- // update the bot must provide an update for *all* the leases the server expects
- // it to report on.
- //
- // The scheduler *should* ensure that all leases scheduled to a bot can actually
- // be accepted, but race conditions may occur. In such cases, the bot should
- // attempt to accept the leases in the order they are listed by the server, to
- // allow the server to control priorities.
- //
- // The server will remove COMPLETED leases from time to time, after which the
- // bot shouldn't report on them any more (the server will ignore superfluous
- // COMPLETED records).
- type Lease struct {
- // A short string uniquely identifing the lease within this bot session.
- Id string `protobuf:"bytes,7,opt,name=id,proto3" json:"id,omitempty"`
- // The actual work to be performed, if any. May be omitted by the server if
- // the lease is not in the `PENDING` state. The message must be meaningful to
- // the bot. Output only (must only be set by the server).
- Payload *any.Any `protobuf:"bytes,8,opt,name=payload,proto3" json:"payload,omitempty"`
- // Any result the bot wishes to provide about the lease. Must not be changed
- // after the first call with the lease in the `COMPLETED` or `CANCELLED`
- // state. Input only (must only be set by the bot, will not be echoed by the
- // server).
- Result *any.Any `protobuf:"bytes,9,opt,name=result,proto3" json:"result,omitempty"`
- // The state of the lease. See LeaseState for more information.
- State LeaseState `protobuf:"varint,2,opt,name=state,proto3,enum=google.devtools.remoteworkers.v1test2.LeaseState" json:"state,omitempty"`
- // The final status of the lease (should be populated by the bot if the state
- // is completed). This is the status of the lease, not of any task represented
- // by the lease. For example, if the bot could not accept the lease because it
- // asked for some resource the bot didn't have, this status will be
- // FAILED_PRECONDITION. But if the assignment in the lease didn't execute
- // correctly, this field will be `OK` while the failure of the assignment must
- // communicated via the `result` field.
- Status *status.Status `protobuf:"bytes,3,opt,name=status,proto3" json:"status,omitempty"`
- // The requirements that are being claimed by this lease. This field may be
- // omitted by the server if the lease is not pending.
- Requirements *Worker `protobuf:"bytes,4,opt,name=requirements,proto3" json:"requirements,omitempty"`
- // The time at which this lease expires. The server *may* extend this over
- // time, but due to race conditions, the bot is not *required* to respect any
- // expiry date except the first one.
- ExpireTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
- // DEPRECATED. The assignment should be provided to the bot via the `payload`
- // field. Clients that wish to use a simple name (such as a queue of work
- // provided elsewhere) should define a custom message type and encode it into
- // `payload`.
- Assignment string `protobuf:"bytes,1,opt,name=assignment,proto3" json:"assignment,omitempty"` // Deprecated: Do not use.
- // DEPRECATED. Use `payload` instead.
- InlineAssignment *any.Any `protobuf:"bytes,6,opt,name=inline_assignment,json=inlineAssignment,proto3" json:"inline_assignment,omitempty"` // Deprecated: Do not use.
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
- }
-
- func (m *Lease) Reset() { *m = Lease{} }
- func (m *Lease) String() string { return proto.CompactTextString(m) }
- func (*Lease) ProtoMessage() {}
- func (*Lease) Descriptor() ([]byte, []int) {
- return fileDescriptor_bots_98c3d73c9e0a8e55, []int{1}
- }
- func (m *Lease) XXX_Unmarshal(b []byte) error {
- return xxx_messageInfo_Lease.Unmarshal(m, b)
- }
- func (m *Lease) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- return xxx_messageInfo_Lease.Marshal(b, m, deterministic)
- }
- func (dst *Lease) XXX_Merge(src proto.Message) {
- xxx_messageInfo_Lease.Merge(dst, src)
- }
- func (m *Lease) XXX_Size() int {
- return xxx_messageInfo_Lease.Size(m)
- }
- func (m *Lease) XXX_DiscardUnknown() {
- xxx_messageInfo_Lease.DiscardUnknown(m)
- }
-
- var xxx_messageInfo_Lease proto.InternalMessageInfo
-
- func (m *Lease) GetId() string {
- if m != nil {
- return m.Id
- }
- return ""
- }
-
- func (m *Lease) GetPayload() *any.Any {
- if m != nil {
- return m.Payload
- }
- return nil
- }
-
- func (m *Lease) GetResult() *any.Any {
- if m != nil {
- return m.Result
- }
- return nil
- }
-
- func (m *Lease) GetState() LeaseState {
- if m != nil {
- return m.State
- }
- return LeaseState_LEASE_STATE_UNSPECIFIED
- }
-
- func (m *Lease) GetStatus() *status.Status {
- if m != nil {
- return m.Status
- }
- return nil
- }
-
- func (m *Lease) GetRequirements() *Worker {
- if m != nil {
- return m.Requirements
- }
- return nil
- }
-
- func (m *Lease) GetExpireTime() *timestamp.Timestamp {
- if m != nil {
- return m.ExpireTime
- }
- return nil
- }
-
- // Deprecated: Do not use.
- func (m *Lease) GetAssignment() string {
- if m != nil {
- return m.Assignment
- }
- return ""
- }
-
- // Deprecated: Do not use.
- func (m *Lease) GetInlineAssignment() *any.Any {
- if m != nil {
- return m.InlineAssignment
- }
- return nil
- }
-
- // AdminTemp is a prelimiary set of administration tasks. It's called "Temp"
- // because we do not yet know the best way to represent admin tasks; it's
- // possible that this will be entirely replaced in later versions of this API.
- // If this message proves to be sufficient, it will be renamed in the alpha or
- // beta release of this API.
- //
- // This message (suitably marshalled into a protobuf.Any) can be used as the
- // inline_assignment field in a lease; the lease assignment field should simply
- // be `"admin"` in these cases.
- //
- // This message is heavily based on Swarming administration tasks from the LUCI
- // project (http://github.com/luci/luci-py/appengine/swarming).
- type AdminTemp struct {
- // The admin action; see `Command` for legal values.
- Command AdminTemp_Command `protobuf:"varint,1,opt,name=command,proto3,enum=google.devtools.remoteworkers.v1test2.AdminTemp_Command" json:"command,omitempty"`
- // The argument to the admin action; see `Command` for semantics.
- Arg string `protobuf:"bytes,2,opt,name=arg,proto3" json:"arg,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
- }
-
- func (m *AdminTemp) Reset() { *m = AdminTemp{} }
- func (m *AdminTemp) String() string { return proto.CompactTextString(m) }
- func (*AdminTemp) ProtoMessage() {}
- func (*AdminTemp) Descriptor() ([]byte, []int) {
- return fileDescriptor_bots_98c3d73c9e0a8e55, []int{2}
- }
- func (m *AdminTemp) XXX_Unmarshal(b []byte) error {
- return xxx_messageInfo_AdminTemp.Unmarshal(m, b)
- }
- func (m *AdminTemp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- return xxx_messageInfo_AdminTemp.Marshal(b, m, deterministic)
- }
- func (dst *AdminTemp) XXX_Merge(src proto.Message) {
- xxx_messageInfo_AdminTemp.Merge(dst, src)
- }
- func (m *AdminTemp) XXX_Size() int {
- return xxx_messageInfo_AdminTemp.Size(m)
- }
- func (m *AdminTemp) XXX_DiscardUnknown() {
- xxx_messageInfo_AdminTemp.DiscardUnknown(m)
- }
-
- var xxx_messageInfo_AdminTemp proto.InternalMessageInfo
-
- func (m *AdminTemp) GetCommand() AdminTemp_Command {
- if m != nil {
- return m.Command
- }
- return AdminTemp_UNSPECIFIED
- }
-
- func (m *AdminTemp) GetArg() string {
- if m != nil {
- return m.Arg
- }
- return ""
- }
-
- // Request message for CreateBotSession.
- type CreateBotSessionRequest struct {
- // The farm resource.
- Parent string `protobuf:"bytes,1,opt,name=parent,proto3" json:"parent,omitempty"`
- // The bot session to create. Server-assigned fields like name must be unset.
- BotSession *BotSession `protobuf:"bytes,2,opt,name=bot_session,json=botSession,proto3" json:"bot_session,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
- }
-
- func (m *CreateBotSessionRequest) Reset() { *m = CreateBotSessionRequest{} }
- func (m *CreateBotSessionRequest) String() string { return proto.CompactTextString(m) }
- func (*CreateBotSessionRequest) ProtoMessage() {}
- func (*CreateBotSessionRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_bots_98c3d73c9e0a8e55, []int{3}
- }
- func (m *CreateBotSessionRequest) XXX_Unmarshal(b []byte) error {
- return xxx_messageInfo_CreateBotSessionRequest.Unmarshal(m, b)
- }
- func (m *CreateBotSessionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- return xxx_messageInfo_CreateBotSessionRequest.Marshal(b, m, deterministic)
- }
- func (dst *CreateBotSessionRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_CreateBotSessionRequest.Merge(dst, src)
- }
- func (m *CreateBotSessionRequest) XXX_Size() int {
- return xxx_messageInfo_CreateBotSessionRequest.Size(m)
- }
- func (m *CreateBotSessionRequest) XXX_DiscardUnknown() {
- xxx_messageInfo_CreateBotSessionRequest.DiscardUnknown(m)
- }
-
- var xxx_messageInfo_CreateBotSessionRequest proto.InternalMessageInfo
-
- func (m *CreateBotSessionRequest) GetParent() string {
- if m != nil {
- return m.Parent
- }
- return ""
- }
-
- func (m *CreateBotSessionRequest) GetBotSession() *BotSession {
- if m != nil {
- return m.BotSession
- }
- return nil
- }
-
- // Request message for UpdateBotSession.
- type UpdateBotSessionRequest struct {
- // The bot session name. Must match bot_session.name.
- Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
- // The bot session resource to update.
- BotSession *BotSession `protobuf:"bytes,2,opt,name=bot_session,json=botSession,proto3" json:"bot_session,omitempty"`
- // The fields on the bot that should be updated. See the BotSession resource
- // for which fields are updatable by which caller.
- UpdateMask *field_mask.FieldMask `protobuf:"bytes,3,opt,name=update_mask,json=updateMask,proto3" json:"update_mask,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
- }
-
- func (m *UpdateBotSessionRequest) Reset() { *m = UpdateBotSessionRequest{} }
- func (m *UpdateBotSessionRequest) String() string { return proto.CompactTextString(m) }
- func (*UpdateBotSessionRequest) ProtoMessage() {}
- func (*UpdateBotSessionRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_bots_98c3d73c9e0a8e55, []int{4}
- }
- func (m *UpdateBotSessionRequest) XXX_Unmarshal(b []byte) error {
- return xxx_messageInfo_UpdateBotSessionRequest.Unmarshal(m, b)
- }
- func (m *UpdateBotSessionRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- return xxx_messageInfo_UpdateBotSessionRequest.Marshal(b, m, deterministic)
- }
- func (dst *UpdateBotSessionRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_UpdateBotSessionRequest.Merge(dst, src)
- }
- func (m *UpdateBotSessionRequest) XXX_Size() int {
- return xxx_messageInfo_UpdateBotSessionRequest.Size(m)
- }
- func (m *UpdateBotSessionRequest) XXX_DiscardUnknown() {
- xxx_messageInfo_UpdateBotSessionRequest.DiscardUnknown(m)
- }
-
- var xxx_messageInfo_UpdateBotSessionRequest proto.InternalMessageInfo
-
- func (m *UpdateBotSessionRequest) GetName() string {
- if m != nil {
- return m.Name
- }
- return ""
- }
-
- func (m *UpdateBotSessionRequest) GetBotSession() *BotSession {
- if m != nil {
- return m.BotSession
- }
- return nil
- }
-
- func (m *UpdateBotSessionRequest) GetUpdateMask() *field_mask.FieldMask {
- if m != nil {
- return m.UpdateMask
- }
- return nil
- }
-
- // Request message for PostBotEventTemp
- type PostBotEventTempRequest struct {
- // The bot session name.
- Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
- // The type of bot event.
- Type PostBotEventTempRequest_Type `protobuf:"varint,2,opt,name=type,proto3,enum=google.devtools.remoteworkers.v1test2.PostBotEventTempRequest_Type" json:"type,omitempty"`
- // A human-readable message.
- Msg string `protobuf:"bytes,3,opt,name=msg,proto3" json:"msg,omitempty"`
- XXX_NoUnkeyedLiteral struct{} `json:"-"`
- XXX_unrecognized []byte `json:"-"`
- XXX_sizecache int32 `json:"-"`
- }
-
- func (m *PostBotEventTempRequest) Reset() { *m = PostBotEventTempRequest{} }
- func (m *PostBotEventTempRequest) String() string { return proto.CompactTextString(m) }
- func (*PostBotEventTempRequest) ProtoMessage() {}
- func (*PostBotEventTempRequest) Descriptor() ([]byte, []int) {
- return fileDescriptor_bots_98c3d73c9e0a8e55, []int{5}
- }
- func (m *PostBotEventTempRequest) XXX_Unmarshal(b []byte) error {
- return xxx_messageInfo_PostBotEventTempRequest.Unmarshal(m, b)
- }
- func (m *PostBotEventTempRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
- return xxx_messageInfo_PostBotEventTempRequest.Marshal(b, m, deterministic)
- }
- func (dst *PostBotEventTempRequest) XXX_Merge(src proto.Message) {
- xxx_messageInfo_PostBotEventTempRequest.Merge(dst, src)
- }
- func (m *PostBotEventTempRequest) XXX_Size() int {
- return xxx_messageInfo_PostBotEventTempRequest.Size(m)
- }
- func (m *PostBotEventTempRequest) XXX_DiscardUnknown() {
- xxx_messageInfo_PostBotEventTempRequest.DiscardUnknown(m)
- }
-
- var xxx_messageInfo_PostBotEventTempRequest proto.InternalMessageInfo
-
- func (m *PostBotEventTempRequest) GetName() string {
- if m != nil {
- return m.Name
- }
- return ""
- }
-
- func (m *PostBotEventTempRequest) GetType() PostBotEventTempRequest_Type {
- if m != nil {
- return m.Type
- }
- return PostBotEventTempRequest_UNSPECIFIED
- }
-
- func (m *PostBotEventTempRequest) GetMsg() string {
- if m != nil {
- return m.Msg
- }
- return ""
- }
-
- func init() {
- proto.RegisterType((*BotSession)(nil), "google.devtools.remoteworkers.v1test2.BotSession")
- proto.RegisterType((*Lease)(nil), "google.devtools.remoteworkers.v1test2.Lease")
- proto.RegisterType((*AdminTemp)(nil), "google.devtools.remoteworkers.v1test2.AdminTemp")
- proto.RegisterType((*CreateBotSessionRequest)(nil), "google.devtools.remoteworkers.v1test2.CreateBotSessionRequest")
- proto.RegisterType((*UpdateBotSessionRequest)(nil), "google.devtools.remoteworkers.v1test2.UpdateBotSessionRequest")
- proto.RegisterType((*PostBotEventTempRequest)(nil), "google.devtools.remoteworkers.v1test2.PostBotEventTempRequest")
- proto.RegisterEnum("google.devtools.remoteworkers.v1test2.BotStatus", BotStatus_name, BotStatus_value)
- proto.RegisterEnum("google.devtools.remoteworkers.v1test2.LeaseState", LeaseState_name, LeaseState_value)
- proto.RegisterEnum("google.devtools.remoteworkers.v1test2.AdminTemp_Command", AdminTemp_Command_name, AdminTemp_Command_value)
- proto.RegisterEnum("google.devtools.remoteworkers.v1test2.PostBotEventTempRequest_Type", PostBotEventTempRequest_Type_name, PostBotEventTempRequest_Type_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
-
- // BotsClient is the client API for Bots service.
- //
- // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
- type BotsClient interface {
- // CreateBotSession is called when the bot first joins the farm, and
- // establishes a session ID to ensure that multiple machines do not register
- // using the same name accidentally.
- CreateBotSession(ctx context.Context, in *CreateBotSessionRequest, opts ...grpc.CallOption) (*BotSession, error)
- // UpdateBotSession must be called periodically by the bot (on a schedule
- // determined by the server) to let the server know about its status, and to
- // pick up new lease requests from the server.
- UpdateBotSession(ctx context.Context, in *UpdateBotSessionRequest, opts ...grpc.CallOption) (*BotSession, error)
- // PostBotEventTemp may be called by the bot to indicate that some exceptional
- // event has occurred. This method is subject to change or removal in future
- // revisions of this API; we may simply want to replace it with StackDriver or
- // some other common interface.
- PostBotEventTemp(ctx context.Context, in *PostBotEventTempRequest, opts ...grpc.CallOption) (*empty.Empty, error)
- }
-
- type botsClient struct {
- cc *grpc.ClientConn
- }
-
- func NewBotsClient(cc *grpc.ClientConn) BotsClient {
- return &botsClient{cc}
- }
-
- func (c *botsClient) CreateBotSession(ctx context.Context, in *CreateBotSessionRequest, opts ...grpc.CallOption) (*BotSession, error) {
- out := new(BotSession)
- err := c.cc.Invoke(ctx, "/google.devtools.remoteworkers.v1test2.Bots/CreateBotSession", in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
- }
-
- func (c *botsClient) UpdateBotSession(ctx context.Context, in *UpdateBotSessionRequest, opts ...grpc.CallOption) (*BotSession, error) {
- out := new(BotSession)
- err := c.cc.Invoke(ctx, "/google.devtools.remoteworkers.v1test2.Bots/UpdateBotSession", in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
- }
-
- func (c *botsClient) PostBotEventTemp(ctx context.Context, in *PostBotEventTempRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
- out := new(empty.Empty)
- err := c.cc.Invoke(ctx, "/google.devtools.remoteworkers.v1test2.Bots/PostBotEventTemp", in, out, opts...)
- if err != nil {
- return nil, err
- }
- return out, nil
- }
-
- // BotsServer is the server API for Bots service.
- type BotsServer interface {
- // CreateBotSession is called when the bot first joins the farm, and
- // establishes a session ID to ensure that multiple machines do not register
- // using the same name accidentally.
- CreateBotSession(context.Context, *CreateBotSessionRequest) (*BotSession, error)
- // UpdateBotSession must be called periodically by the bot (on a schedule
- // determined by the server) to let the server know about its status, and to
- // pick up new lease requests from the server.
- UpdateBotSession(context.Context, *UpdateBotSessionRequest) (*BotSession, error)
- // PostBotEventTemp may be called by the bot to indicate that some exceptional
- // event has occurred. This method is subject to change or removal in future
- // revisions of this API; we may simply want to replace it with StackDriver or
- // some other common interface.
- PostBotEventTemp(context.Context, *PostBotEventTempRequest) (*empty.Empty, error)
- }
-
- func RegisterBotsServer(s *grpc.Server, srv BotsServer) {
- s.RegisterService(&_Bots_serviceDesc, srv)
- }
-
- func _Bots_CreateBotSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(CreateBotSessionRequest)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(BotsServer).CreateBotSession(ctx, in)
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: "/google.devtools.remoteworkers.v1test2.Bots/CreateBotSession",
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(BotsServer).CreateBotSession(ctx, req.(*CreateBotSessionRequest))
- }
- return interceptor(ctx, in, info, handler)
- }
-
- func _Bots_UpdateBotSession_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(UpdateBotSessionRequest)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(BotsServer).UpdateBotSession(ctx, in)
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: "/google.devtools.remoteworkers.v1test2.Bots/UpdateBotSession",
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(BotsServer).UpdateBotSession(ctx, req.(*UpdateBotSessionRequest))
- }
- return interceptor(ctx, in, info, handler)
- }
-
- func _Bots_PostBotEventTemp_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
- in := new(PostBotEventTempRequest)
- if err := dec(in); err != nil {
- return nil, err
- }
- if interceptor == nil {
- return srv.(BotsServer).PostBotEventTemp(ctx, in)
- }
- info := &grpc.UnaryServerInfo{
- Server: srv,
- FullMethod: "/google.devtools.remoteworkers.v1test2.Bots/PostBotEventTemp",
- }
- handler := func(ctx context.Context, req interface{}) (interface{}, error) {
- return srv.(BotsServer).PostBotEventTemp(ctx, req.(*PostBotEventTempRequest))
- }
- return interceptor(ctx, in, info, handler)
- }
-
- var _Bots_serviceDesc = grpc.ServiceDesc{
- ServiceName: "google.devtools.remoteworkers.v1test2.Bots",
- HandlerType: (*BotsServer)(nil),
- Methods: []grpc.MethodDesc{
- {
- MethodName: "CreateBotSession",
- Handler: _Bots_CreateBotSession_Handler,
- },
- {
- MethodName: "UpdateBotSession",
- Handler: _Bots_UpdateBotSession_Handler,
- },
- {
- MethodName: "PostBotEventTemp",
- Handler: _Bots_PostBotEventTemp_Handler,
- },
- },
- Streams: []grpc.StreamDesc{},
- Metadata: "google/devtools/remoteworkers/v1test2/bots.proto",
- }
-
- func init() {
- proto.RegisterFile("google/devtools/remoteworkers/v1test2/bots.proto", fileDescriptor_bots_98c3d73c9e0a8e55)
- }
-
- var fileDescriptor_bots_98c3d73c9e0a8e55 = []byte{
- // 1075 bytes of a gzipped FileDescriptorProto
- 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0xdd, 0x8e, 0xdb, 0x44,
- 0x14, 0xc6, 0xce, 0x5f, 0x73, 0xd2, 0xa6, 0xee, 0x00, 0x5d, 0x93, 0x22, 0x11, 0x59, 0xaa, 0xb4,
- 0x44, 0x8b, 0xdd, 0x0d, 0x42, 0x42, 0xad, 0x8a, 0x94, 0x1f, 0xef, 0x6e, 0x44, 0x36, 0x09, 0x13,
- 0x6f, 0x57, 0x70, 0x93, 0x3a, 0x9b, 0x69, 0x64, 0x6d, 0xec, 0x71, 0x3d, 0x93, 0x85, 0x15, 0xea,
- 0x0d, 0x12, 0x4f, 0xc0, 0x13, 0xc0, 0x15, 0xe2, 0x19, 0x10, 0x12, 0x37, 0xbc, 0x40, 0x5f, 0x81,
- 0xbe, 0x07, 0x9a, 0xb1, 0x93, 0x4d, 0xb2, 0xdd, 0xd6, 0x0b, 0xe2, 0x6e, 0x7e, 0xbe, 0xef, 0x9c,
- 0x2f, 0xe7, 0x7c, 0x67, 0x62, 0x78, 0x30, 0xa5, 0x74, 0x3a, 0x23, 0xd6, 0x84, 0x9c, 0x71, 0x4a,
- 0x67, 0xcc, 0x8a, 0x88, 0x4f, 0x39, 0xf9, 0x96, 0x46, 0xa7, 0x24, 0x62, 0xd6, 0xd9, 0x2e, 0x27,
- 0x8c, 0xd7, 0xad, 0x31, 0xe5, 0xcc, 0x0c, 0x23, 0xca, 0x29, 0xba, 0x1f, 0x33, 0xcc, 0x05, 0xc3,
- 0x5c, 0x63, 0x98, 0x09, 0xa3, 0xf2, 0x61, 0x12, 0xd8, 0x0d, 0x3d, 0xcb, 0x0d, 0x02, 0xca, 0x5d,
- 0xee, 0xd1, 0x20, 0x09, 0x52, 0xa9, 0xa7, 0x4b, 0x1b, 0xef, 0x13, 0xce, 0x07, 0x09, 0x47, 0xee,
- 0xc6, 0xf3, 0x67, 0x96, 0x1b, 0x9c, 0x27, 0x57, 0xf7, 0x36, 0xaf, 0x88, 0x1f, 0xf2, 0xc5, 0x65,
- 0x75, 0xf3, 0xf2, 0x99, 0x47, 0x66, 0x93, 0x91, 0xef, 0xb2, 0xd3, 0x04, 0xf1, 0xd1, 0x26, 0x82,
- 0x7b, 0x3e, 0x61, 0xdc, 0xf5, 0xc3, 0x04, 0xb0, 0x95, 0x00, 0xa2, 0xf0, 0xc4, 0x62, 0xdc, 0xe5,
- 0xf3, 0xe4, 0x77, 0x18, 0xaf, 0x54, 0x80, 0x26, 0xe5, 0x43, 0xc2, 0x98, 0x47, 0x03, 0x84, 0x20,
- 0x1b, 0xb8, 0x3e, 0xd1, 0x95, 0xaa, 0xb2, 0x5d, 0xc4, 0x72, 0x8d, 0xde, 0x87, 0xfc, 0x98, 0xf2,
- 0x91, 0x37, 0xd1, 0x55, 0x79, 0x9a, 0x1b, 0x53, 0xde, 0x99, 0xa0, 0x03, 0xc8, 0xc7, 0x91, 0xf4,
- 0x4c, 0x55, 0xd9, 0x2e, 0xd7, 0x1f, 0x98, 0xa9, 0xea, 0x6a, 0x8a, 0x6c, 0x92, 0x87, 0x13, 0x3e,
- 0xb2, 0x21, 0x1f, 0x83, 0xf4, 0x6c, 0x55, 0xd9, 0x2e, 0xd5, 0x3f, 0x49, 0x19, 0xe9, 0x58, 0xee,
- 0x71, 0x42, 0x46, 0x6d, 0xc8, 0xcf, 0x88, 0xcb, 0x08, 0xd3, 0x73, 0xd5, 0xcc, 0x76, 0xa9, 0xbe,
- 0x93, 0x32, 0x4c, 0x57, 0x90, 0x70, 0xc2, 0x45, 0x8f, 0xa0, 0x44, 0xbe, 0x0b, 0xbd, 0x88, 0x8c,
- 0x44, 0x0d, 0xf5, 0xbc, 0x54, 0x54, 0x59, 0x84, 0x5a, 0x14, 0xd8, 0x74, 0x16, 0x05, 0xc6, 0x10,
- 0xc3, 0xc5, 0x01, 0xd2, 0xa1, 0x70, 0x46, 0x22, 0x51, 0x49, 0xbd, 0x20, 0x6b, 0xb5, 0xd8, 0x1a,
- 0xaf, 0x32, 0x90, 0x93, 0x89, 0x50, 0x19, 0x54, 0x6f, 0x92, 0x5c, 0xab, 0xde, 0x04, 0x99, 0x50,
- 0x08, 0xdd, 0xf3, 0x19, 0x75, 0x27, 0xfa, 0x0d, 0x99, 0xec, 0xbd, 0x4b, 0xc9, 0x1a, 0xc1, 0x39,
- 0x5e, 0x80, 0xd0, 0x0e, 0xe4, 0x23, 0xc2, 0xe6, 0x33, 0xae, 0x17, 0xdf, 0x00, 0x4f, 0x30, 0x68,
- 0x1f, 0x72, 0xa2, 0xca, 0x44, 0xf6, 0xae, 0x5c, 0xdf, 0xbd, 0x4e, 0x4d, 0x44, 0x9b, 0x08, 0x8e,
- 0xf9, 0xa8, 0xb6, 0xd6, 0xee, 0x52, 0x1d, 0x2d, 0x22, 0x45, 0xe1, 0x89, 0xb9, 0xd1, 0xd0, 0xaf,
- 0xe0, 0x66, 0x44, 0x9e, 0xcf, 0xbd, 0x88, 0xf8, 0x24, 0xe0, 0xec, 0xdf, 0xb5, 0x75, 0x2d, 0xc4,
- 0x66, 0x5b, 0x72, 0xd7, 0x6a, 0x8b, 0x01, 0xe0, 0x32, 0xe6, 0x4d, 0x03, 0x11, 0x2b, 0xf6, 0x76,
- 0x53, 0xd5, 0x15, 0xbc, 0x72, 0x8a, 0x6c, 0xb8, 0xe3, 0x05, 0x33, 0x2f, 0x20, 0xa3, 0x15, 0x68,
- 0xfe, 0xea, 0x0a, 0xcb, 0x00, 0x5a, 0x4c, 0x69, 0x2c, 0x19, 0xc6, 0x4b, 0x05, 0x8a, 0x8d, 0x89,
- 0xef, 0x05, 0x0e, 0xf1, 0x43, 0x84, 0xa1, 0x70, 0x42, 0x7d, 0xdf, 0x0d, 0x26, 0x32, 0x6b, 0xb9,
- 0xfe, 0x79, 0xca, 0x1a, 0x2c, 0x43, 0x98, 0xad, 0x98, 0x8f, 0x17, 0x81, 0x90, 0x06, 0x19, 0x37,
- 0x9a, 0x26, 0xb3, 0x28, 0x96, 0xc6, 0x53, 0x28, 0x24, 0x28, 0x74, 0x1b, 0x4a, 0x47, 0xbd, 0xe1,
- 0xc0, 0x6e, 0x75, 0xf6, 0x3a, 0x76, 0x5b, 0x7b, 0x07, 0x95, 0x01, 0x9a, 0x7d, 0x67, 0x74, 0x34,
- 0x68, 0x37, 0x1c, 0x5b, 0x53, 0x04, 0x40, 0xec, 0xb1, 0x3d, 0x74, 0x1a, 0xd8, 0xd1, 0x54, 0x74,
- 0x07, 0x6e, 0x89, 0x03, 0xc7, 0xc6, 0x87, 0x9d, 0x9e, 0xc0, 0x64, 0x90, 0x06, 0x37, 0x0f, 0xfa,
- 0xc3, 0x0b, 0x50, 0xd6, 0xf8, 0x51, 0x81, 0xad, 0x56, 0x44, 0x5c, 0x4e, 0x2e, 0xde, 0x0a, 0x4c,
- 0x9e, 0xcf, 0x09, 0xe3, 0xe8, 0x2e, 0xe4, 0x43, 0x37, 0x5a, 0x16, 0x16, 0x27, 0x3b, 0x84, 0xa1,
- 0x24, 0x9e, 0x0d, 0x16, 0xa3, 0xa5, 0xde, 0x52, 0x6a, 0xff, 0xad, 0xa4, 0x81, 0xf1, 0x72, 0x6d,
- 0xfc, 0xa1, 0xc0, 0xd6, 0x51, 0x38, 0x79, 0xad, 0x8e, 0xd7, 0x3d, 0x5d, 0xff, 0x83, 0x06, 0xe1,
- 0xc4, 0xb9, 0x94, 0x20, 0x1f, 0xe0, 0x64, 0x1a, 0x2e, 0x3b, 0x71, 0x4f, 0xbc, 0xd1, 0x87, 0x2e,
- 0x3b, 0xc5, 0x10, 0xc3, 0xc5, 0xda, 0xf8, 0x4b, 0x81, 0xad, 0x01, 0x65, 0xbc, 0x49, 0xb9, 0x7d,
- 0x46, 0x02, 0x2e, 0x5a, 0xfc, 0xa6, 0x1f, 0x70, 0x0c, 0x59, 0x7e, 0x1e, 0x2e, 0xa6, 0xb7, 0x95,
- 0x52, 0xf9, 0x15, 0x19, 0x4c, 0xe7, 0x3c, 0x24, 0x58, 0x06, 0x14, 0x2e, 0xf2, 0xd9, 0x54, 0xaa,
- 0x2f, 0x62, 0xb1, 0x34, 0x76, 0x20, 0x2b, 0xee, 0x2f, 0x5b, 0xe8, 0x06, 0x64, 0x3b, 0xbd, 0xbd,
- 0xbe, 0xa6, 0xa0, 0x22, 0xe4, 0x6c, 0x8c, 0xfb, 0x58, 0x53, 0x6b, 0x53, 0x28, 0x2e, 0x1f, 0x72,
- 0x54, 0x81, 0xbb, 0xc2, 0x43, 0x43, 0xa7, 0xe1, 0x1c, 0x0d, 0x47, 0xeb, 0xec, 0x3c, 0xa8, 0xfd,
- 0x2f, 0x35, 0x05, 0xdd, 0x82, 0xe2, 0x51, 0xef, 0xc0, 0x6e, 0x74, 0x9d, 0x83, 0xaf, 0x35, 0x15,
- 0x21, 0x28, 0x27, 0x1e, 0x6b, 0xf6, 0xfb, 0x4e, 0xa7, 0xb7, 0xaf, 0x65, 0xd0, 0xbb, 0x70, 0x7b,
- 0xd5, 0x8a, 0xe2, 0x30, 0x5b, 0x7b, 0x0a, 0x70, 0xf1, 0x18, 0xa1, 0x7b, 0xb0, 0xd5, 0xb5, 0x1b,
- 0x43, 0x5b, 0xe6, 0xb2, 0x37, 0x52, 0x95, 0xa0, 0x30, 0xb0, 0x7b, 0x6d, 0xc1, 0x53, 0x10, 0x40,
- 0xbe, 0xd1, 0x72, 0x3a, 0x4f, 0x6c, 0x4d, 0x15, 0xb9, 0x5b, 0xfd, 0xc3, 0x41, 0xd7, 0x76, 0xec,
- 0xb6, 0x96, 0x95, 0xdb, 0x46, 0xaf, 0x65, 0x77, 0xbb, 0x76, 0x5b, 0xcb, 0xd5, 0x7f, 0xcd, 0x42,
- 0xb6, 0x49, 0x39, 0x43, 0xbf, 0x2b, 0xa0, 0x6d, 0xba, 0x1c, 0x7d, 0x91, 0xb2, 0xe6, 0x57, 0x8c,
- 0x47, 0xe5, 0xfa, 0x6e, 0x33, 0x3e, 0xfb, 0xe1, 0xe5, 0xdf, 0x3f, 0xa9, 0x96, 0x51, 0x5d, 0x7e,
- 0x46, 0x7c, 0x1f, 0xcf, 0xd4, 0xe3, 0x5a, 0xed, 0x85, 0x75, 0x61, 0x45, 0xf6, 0x70, 0xd5, 0xdd,
- 0x52, 0xfe, 0xe6, 0x70, 0xa4, 0x96, 0x7f, 0xc5, 0x54, 0xfd, 0x07, 0xf9, 0xf5, 0x15, 0xf9, 0xc2,
- 0xcb, 0x8f, 0x6b, 0xb5, 0x55, 0xed, 0x56, 0xed, 0xc5, 0xba, 0xfc, 0x9f, 0x15, 0xd0, 0x36, 0x8d,
- 0x9b, 0x5a, 0xfe, 0x15, 0x8e, 0xaf, 0xdc, 0xbd, 0x34, 0x97, 0xb6, 0xf8, 0xb0, 0x5a, 0x96, 0xb8,
- 0xf6, 0x56, 0x8d, 0x21, 0x65, 0x71, 0xd8, 0x87, 0x4a, 0xad, 0xf9, 0xa7, 0x02, 0x1f, 0x9f, 0x50,
- 0x3f, 0x9d, 0xa8, 0xe6, 0x1d, 0x2c, 0x8f, 0xe3, 0xff, 0x33, 0x26, 0x2c, 0x36, 0x50, 0xbe, 0xc1,
- 0x09, 0x77, 0x4a, 0x67, 0x6e, 0x30, 0x35, 0x69, 0x34, 0xb5, 0xa6, 0x24, 0x90, 0xf2, 0xac, 0xf8,
- 0xca, 0x0d, 0x3d, 0xf6, 0x96, 0xef, 0xca, 0x47, 0x6b, 0xa7, 0xbf, 0xa8, 0x2a, 0x3e, 0xfe, 0x4d,
- 0xbd, 0xbf, 0x1f, 0x47, 0x6e, 0x93, 0x33, 0x47, 0xaa, 0x5a, 0x4b, 0x6f, 0x3e, 0xd9, 0x75, 0x04,
- 0x75, 0x9c, 0x97, 0xb9, 0x3e, 0xfd, 0x27, 0x00, 0x00, 0xff, 0xff, 0x75, 0x00, 0xcd, 0xd5, 0x39,
- 0x0b, 0x00, 0x00,
- }
|