Advertisement
Guest User

pb file

a guest
Mar 18th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 31.31 KB | None | 0 0
  1. // Code generated by protoc-gen-go. DO NOT EDIT.
  2. // source: raft_rpc.proto
  3.  
  4. package raft
  5.  
  6. import (
  7.     fmt "fmt"
  8.     proto "github.com/golang/protobuf/proto"
  9.     math "math"
  10. )
  11.  
  12. // Reference imports to suppress errors if they are not otherwise used.
  13. var _ = proto.Marshal
  14. var _ = fmt.Errorf
  15. var _ = math.Inf
  16.  
  17. // This is a compile-time assertion to ensure that this generated file
  18. // is compatible with the proto package it is being compiled against.
  19. // A compilation error at this line likely means your copy of the
  20. // proto package needs to be updated.
  21. const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
  22.  
  23. // A log entry in Raft can be any of any of these four types.
  24. type CommandType int32
  25.  
  26. const (
  27.     CommandType_CLIENT_REGISTRATION   CommandType = 0
  28.     CommandType_INIT                  CommandType = 1
  29.     CommandType_NOOP                  CommandType = 2
  30.     CommandType_STATE_MACHINE_COMMAND CommandType = 3
  31. )
  32.  
  33. var CommandType_name = map[int32]string{
  34.     0: "CLIENT_REGISTRATION",
  35.     1: "INIT",
  36.     2: "NOOP",
  37.     3: "STATE_MACHINE_COMMAND",
  38. }
  39.  
  40. var CommandType_value = map[string]int32{
  41.     "CLIENT_REGISTRATION":   0,
  42.     "INIT":                  1,
  43.     "NOOP":                  2,
  44.     "STATE_MACHINE_COMMAND": 3,
  45. }
  46.  
  47. func (x CommandType) String() string {
  48.     return proto.EnumName(CommandType_name, int32(x))
  49. }
  50.  
  51. func (CommandType) EnumDescriptor() ([]byte, []int) {
  52.     return fileDescriptor_0bd0c682ba16bf51, []int{0}
  53. }
  54.  
  55. // The possible responses to a client request
  56. type ClientStatus int32
  57.  
  58. const (
  59.     ClientStatus_OK                   ClientStatus = 0
  60.     ClientStatus_NOT_LEADER           ClientStatus = 1
  61.     ClientStatus_ELECTION_IN_PROGRESS ClientStatus = 2
  62.     ClientStatus_CLUSTER_NOT_STARTED  ClientStatus = 3
  63.     ClientStatus_REQ_FAILED           ClientStatus = 4
  64. )
  65.  
  66. var ClientStatus_name = map[int32]string{
  67.     0: "OK",
  68.     1: "NOT_LEADER",
  69.     2: "ELECTION_IN_PROGRESS",
  70.     3: "CLUSTER_NOT_STARTED",
  71.     4: "REQ_FAILED",
  72. }
  73.  
  74. var ClientStatus_value = map[string]int32{
  75.     "OK":                   0,
  76.     "NOT_LEADER":           1,
  77.     "ELECTION_IN_PROGRESS": 2,
  78.     "CLUSTER_NOT_STARTED":  3,
  79.     "REQ_FAILED":           4,
  80. }
  81.  
  82. func (x ClientStatus) String() string {
  83.     return proto.EnumName(ClientStatus_name, int32(x))
  84. }
  85.  
  86. func (ClientStatus) EnumDescriptor() ([]byte, []int) {
  87.     return fileDescriptor_0bd0c682ba16bf51, []int{1}
  88. }
  89.  
  90. // Used to represent result of an RPC call that can either be successful or
  91. // unsuccessful.
  92. type Ok struct {
  93.     Ok                   bool     `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"`
  94.     Reason               string   `protobuf:"bytes,2,opt,name=reason,proto3" json:"reason,omitempty"`
  95.     XXX_NoUnkeyedLiteral struct{} `json:"-"`
  96.     XXX_unrecognized     []byte   `json:"-"`
  97.     XXX_sizecache        int32    `json:"-"`
  98. }
  99.  
  100. func (m *Ok) Reset()         { *m = Ok{} }
  101. func (m *Ok) String() string { return proto.CompactTextString(m) }
  102. func (*Ok) ProtoMessage()    {}
  103. func (*Ok) Descriptor() ([]byte, []int) {
  104.     return fileDescriptor_0bd0c682ba16bf51, []int{0}
  105. }
  106.  
  107. func (m *Ok) XXX_Unmarshal(b []byte) error {
  108.     return xxx_messageInfo_Ok.Unmarshal(m, b)
  109. }
  110. func (m *Ok) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  111.     return xxx_messageInfo_Ok.Marshal(b, m, deterministic)
  112. }
  113. func (m *Ok) XXX_Merge(src proto.Message) {
  114.     xxx_messageInfo_Ok.Merge(m, src)
  115. }
  116. func (m *Ok) XXX_Size() int {
  117.     return xxx_messageInfo_Ok.Size(m)
  118. }
  119. func (m *Ok) XXX_DiscardUnknown() {
  120.     xxx_messageInfo_Ok.DiscardUnknown(m)
  121. }
  122.  
  123. var xxx_messageInfo_Ok proto.InternalMessageInfo
  124.  
  125. func (m *Ok) GetOk() bool {
  126.     if m != nil {
  127.         return m.Ok
  128.     }
  129.     return false
  130. }
  131.  
  132. func (m *Ok) GetReason() string {
  133.     if m != nil {
  134.         return m.Reason
  135.     }
  136.     return ""
  137. }
  138.  
  139. // Represents a node in the Raft cluster
  140. type RemoteNode struct {
  141.     Addr                 string   `protobuf:"bytes,1,opt,name=addr,proto3" json:"addr,omitempty"`
  142.     Id                   string   `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
  143.     XXX_NoUnkeyedLiteral struct{} `json:"-"`
  144.     XXX_unrecognized     []byte   `json:"-"`
  145.     XXX_sizecache        int32    `json:"-"`
  146. }
  147.  
  148. func (m *RemoteNode) Reset()         { *m = RemoteNode{} }
  149. func (m *RemoteNode) String() string { return proto.CompactTextString(m) }
  150. func (*RemoteNode) ProtoMessage()    {}
  151. func (*RemoteNode) Descriptor() ([]byte, []int) {
  152.     return fileDescriptor_0bd0c682ba16bf51, []int{1}
  153. }
  154.  
  155. func (m *RemoteNode) XXX_Unmarshal(b []byte) error {
  156.     return xxx_messageInfo_RemoteNode.Unmarshal(m, b)
  157. }
  158. func (m *RemoteNode) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  159.     return xxx_messageInfo_RemoteNode.Marshal(b, m, deterministic)
  160. }
  161. func (m *RemoteNode) XXX_Merge(src proto.Message) {
  162.     xxx_messageInfo_RemoteNode.Merge(m, src)
  163. }
  164. func (m *RemoteNode) XXX_Size() int {
  165.     return xxx_messageInfo_RemoteNode.Size(m)
  166. }
  167. func (m *RemoteNode) XXX_DiscardUnknown() {
  168.     xxx_messageInfo_RemoteNode.DiscardUnknown(m)
  169. }
  170.  
  171. var xxx_messageInfo_RemoteNode proto.InternalMessageInfo
  172.  
  173. func (m *RemoteNode) GetAddr() string {
  174.     if m != nil {
  175.         return m.Addr
  176.     }
  177.     return ""
  178. }
  179.  
  180. func (m *RemoteNode) GetId() string {
  181.     if m != nil {
  182.         return m.Id
  183.     }
  184.     return ""
  185. }
  186.  
  187. type StartNodeRequest struct {
  188.     // The node sending the request to start another node in the cluster
  189.     FromNode *RemoteNode `protobuf:"bytes,1,opt,name=fromNode,proto3" json:"fromNode,omitempty"`
  190.     // The list of nodes in the cluster that the new node should start up with
  191.     NodeList             []*RemoteNode `protobuf:"bytes,2,rep,name=nodeList,proto3" json:"nodeList,omitempty"`
  192.     XXX_NoUnkeyedLiteral struct{}      `json:"-"`
  193.     XXX_unrecognized     []byte        `json:"-"`
  194.     XXX_sizecache        int32         `json:"-"`
  195. }
  196.  
  197. func (m *StartNodeRequest) Reset()         { *m = StartNodeRequest{} }
  198. func (m *StartNodeRequest) String() string { return proto.CompactTextString(m) }
  199. func (*StartNodeRequest) ProtoMessage()    {}
  200. func (*StartNodeRequest) Descriptor() ([]byte, []int) {
  201.     return fileDescriptor_0bd0c682ba16bf51, []int{2}
  202. }
  203.  
  204. func (m *StartNodeRequest) XXX_Unmarshal(b []byte) error {
  205.     return xxx_messageInfo_StartNodeRequest.Unmarshal(m, b)
  206. }
  207. func (m *StartNodeRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  208.     return xxx_messageInfo_StartNodeRequest.Marshal(b, m, deterministic)
  209. }
  210. func (m *StartNodeRequest) XXX_Merge(src proto.Message) {
  211.     xxx_messageInfo_StartNodeRequest.Merge(m, src)
  212. }
  213. func (m *StartNodeRequest) XXX_Size() int {
  214.     return xxx_messageInfo_StartNodeRequest.Size(m)
  215. }
  216. func (m *StartNodeRequest) XXX_DiscardUnknown() {
  217.     xxx_messageInfo_StartNodeRequest.DiscardUnknown(m)
  218. }
  219.  
  220. var xxx_messageInfo_StartNodeRequest proto.InternalMessageInfo
  221.  
  222. func (m *StartNodeRequest) GetFromNode() *RemoteNode {
  223.     if m != nil {
  224.         return m.FromNode
  225.     }
  226.     return nil
  227. }
  228.  
  229. func (m *StartNodeRequest) GetNodeList() []*RemoteNode {
  230.     if m != nil {
  231.         return m.NodeList
  232.     }
  233.     return nil
  234. }
  235.  
  236. type LogEntry struct {
  237.     // Index of log entry (first index = 1)
  238.     Index uint64 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"`
  239.     // The term that this entry was in when added
  240.     TermId uint64 `protobuf:"varint,2,opt,name=termId,proto3" json:"termId,omitempty"`
  241.     // Type of command associated with this entry
  242.     Type CommandType `protobuf:"varint,3,opt,name=type,proto3,enum=raft.CommandType" json:"type,omitempty"`
  243.     // Command associated with this log entry in the user's finite-state-machine.
  244.     // Note that we only care about this value when type = STATE_MACHINE_COMMAND
  245.     Command uint64 `protobuf:"varint,4,opt,name=command,proto3" json:"command,omitempty"`
  246.     // Data associated with this log entry in the user's finite-state-machine.
  247.     Data []byte `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"`
  248.     // After processing this log entry, what ID to use when caching the
  249.     // response. Use an empty string to not cache at all
  250.     CacheId              string   `protobuf:"bytes,6,opt,name=cacheId,proto3" json:"cacheId,omitempty"`
  251.     XXX_NoUnkeyedLiteral struct{} `json:"-"`
  252.     XXX_unrecognized     []byte   `json:"-"`
  253.     XXX_sizecache        int32    `json:"-"`
  254. }
  255.  
  256. func (m *LogEntry) Reset()         { *m = LogEntry{} }
  257. func (m *LogEntry) String() string { return proto.CompactTextString(m) }
  258. func (*LogEntry) ProtoMessage()    {}
  259. func (*LogEntry) Descriptor() ([]byte, []int) {
  260.     return fileDescriptor_0bd0c682ba16bf51, []int{3}
  261. }
  262.  
  263. func (m *LogEntry) XXX_Unmarshal(b []byte) error {
  264.     return xxx_messageInfo_LogEntry.Unmarshal(m, b)
  265. }
  266. func (m *LogEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  267.     return xxx_messageInfo_LogEntry.Marshal(b, m, deterministic)
  268. }
  269. func (m *LogEntry) XXX_Merge(src proto.Message) {
  270.     xxx_messageInfo_LogEntry.Merge(m, src)
  271. }
  272. func (m *LogEntry) XXX_Size() int {
  273.     return xxx_messageInfo_LogEntry.Size(m)
  274. }
  275. func (m *LogEntry) XXX_DiscardUnknown() {
  276.     xxx_messageInfo_LogEntry.DiscardUnknown(m)
  277. }
  278.  
  279. var xxx_messageInfo_LogEntry proto.InternalMessageInfo
  280.  
  281. func (m *LogEntry) GetIndex() uint64 {
  282.     if m != nil {
  283.         return m.Index
  284.     }
  285.     return 0
  286. }
  287.  
  288. func (m *LogEntry) GetTermId() uint64 {
  289.     if m != nil {
  290.         return m.TermId
  291.     }
  292.     return 0
  293. }
  294.  
  295. func (m *LogEntry) GetType() CommandType {
  296.     if m != nil {
  297.         return m.Type
  298.     }
  299.     return CommandType_CLIENT_REGISTRATION
  300. }
  301.  
  302. func (m *LogEntry) GetCommand() uint64 {
  303.     if m != nil {
  304.         return m.Command
  305.     }
  306.     return 0
  307. }
  308.  
  309. func (m *LogEntry) GetData() []byte {
  310.     if m != nil {
  311.         return m.Data
  312.     }
  313.     return nil
  314. }
  315.  
  316. func (m *LogEntry) GetCacheId() string {
  317.     if m != nil {
  318.         return m.CacheId
  319.     }
  320.     return ""
  321. }
  322.  
  323. type AppendEntriesRequest struct {
  324.     // The leader's term
  325.     Term uint64 `protobuf:"varint,1,opt,name=term,proto3" json:"term,omitempty"`
  326.     // Address of the leader sending this request
  327.     Leader *RemoteNode `protobuf:"bytes,2,opt,name=leader,proto3" json:"leader,omitempty"`
  328.     // The index of the log entry immediately preceding the new ones
  329.     PrevLogIndex uint64 `protobuf:"varint,3,opt,name=prevLogIndex,proto3" json:"prevLogIndex,omitempty"`
  330.     // The term of the log entry at prevLogIndex
  331.     PrevLogTerm uint64 `protobuf:"varint,4,opt,name=prevLogTerm,proto3" json:"prevLogTerm,omitempty"`
  332.     // The log entries the follower needs to store. Empty for heartbeat messages.
  333.     Entries []*LogEntry `protobuf:"bytes,5,rep,name=entries,proto3" json:"entries,omitempty"`
  334.     // The leader's commitIndex
  335.     LeaderCommit         uint64   `protobuf:"varint,6,opt,name=leaderCommit,proto3" json:"leaderCommit,omitempty"`
  336.     XXX_NoUnkeyedLiteral struct{} `json:"-"`
  337.     XXX_unrecognized     []byte   `json:"-"`
  338.     XXX_sizecache        int32    `json:"-"`
  339. }
  340.  
  341. func (m *AppendEntriesRequest) Reset()         { *m = AppendEntriesRequest{} }
  342. func (m *AppendEntriesRequest) String() string { return proto.CompactTextString(m) }
  343. func (*AppendEntriesRequest) ProtoMessage()    {}
  344. func (*AppendEntriesRequest) Descriptor() ([]byte, []int) {
  345.     return fileDescriptor_0bd0c682ba16bf51, []int{4}
  346. }
  347.  
  348. func (m *AppendEntriesRequest) XXX_Unmarshal(b []byte) error {
  349.     return xxx_messageInfo_AppendEntriesRequest.Unmarshal(m, b)
  350. }
  351. func (m *AppendEntriesRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  352.     return xxx_messageInfo_AppendEntriesRequest.Marshal(b, m, deterministic)
  353. }
  354. func (m *AppendEntriesRequest) XXX_Merge(src proto.Message) {
  355.     xxx_messageInfo_AppendEntriesRequest.Merge(m, src)
  356. }
  357. func (m *AppendEntriesRequest) XXX_Size() int {
  358.     return xxx_messageInfo_AppendEntriesRequest.Size(m)
  359. }
  360. func (m *AppendEntriesRequest) XXX_DiscardUnknown() {
  361.     xxx_messageInfo_AppendEntriesRequest.DiscardUnknown(m)
  362. }
  363.  
  364. var xxx_messageInfo_AppendEntriesRequest proto.InternalMessageInfo
  365.  
  366. func (m *AppendEntriesRequest) GetTerm() uint64 {
  367.     if m != nil {
  368.         return m.Term
  369.     }
  370.     return 0
  371. }
  372.  
  373. func (m *AppendEntriesRequest) GetLeader() *RemoteNode {
  374.     if m != nil {
  375.         return m.Leader
  376.     }
  377.     return nil
  378. }
  379.  
  380. func (m *AppendEntriesRequest) GetPrevLogIndex() uint64 {
  381.     if m != nil {
  382.         return m.PrevLogIndex
  383.     }
  384.     return 0
  385. }
  386.  
  387. func (m *AppendEntriesRequest) GetPrevLogTerm() uint64 {
  388.     if m != nil {
  389.         return m.PrevLogTerm
  390.     }
  391.     return 0
  392. }
  393.  
  394. func (m *AppendEntriesRequest) GetEntries() []*LogEntry {
  395.     if m != nil {
  396.         return m.Entries
  397.     }
  398.     return nil
  399. }
  400.  
  401. func (m *AppendEntriesRequest) GetLeaderCommit() uint64 {
  402.     if m != nil {
  403.         return m.LeaderCommit
  404.     }
  405.     return 0
  406. }
  407.  
  408. type AppendEntriesReply struct {
  409.     // The current term, for leader to update itself.
  410.     Term uint64 `protobuf:"varint,1,opt,name=term,proto3" json:"term,omitempty"`
  411.     // True if follower contained entry matching prevLogIndex and prevLogTerm.
  412.     Success              bool     `protobuf:"varint,2,opt,name=success,proto3" json:"success,omitempty"`
  413.     XXX_NoUnkeyedLiteral struct{} `json:"-"`
  414.     XXX_unrecognized     []byte   `json:"-"`
  415.     XXX_sizecache        int32    `json:"-"`
  416. }
  417.  
  418. func (m *AppendEntriesReply) Reset()         { *m = AppendEntriesReply{} }
  419. func (m *AppendEntriesReply) String() string { return proto.CompactTextString(m) }
  420. func (*AppendEntriesReply) ProtoMessage()    {}
  421. func (*AppendEntriesReply) Descriptor() ([]byte, []int) {
  422.     return fileDescriptor_0bd0c682ba16bf51, []int{5}
  423. }
  424.  
  425. func (m *AppendEntriesReply) XXX_Unmarshal(b []byte) error {
  426.     return xxx_messageInfo_AppendEntriesReply.Unmarshal(m, b)
  427. }
  428. func (m *AppendEntriesReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  429.     return xxx_messageInfo_AppendEntriesReply.Marshal(b, m, deterministic)
  430. }
  431. func (m *AppendEntriesReply) XXX_Merge(src proto.Message) {
  432.     xxx_messageInfo_AppendEntriesReply.Merge(m, src)
  433. }
  434. func (m *AppendEntriesReply) XXX_Size() int {
  435.     return xxx_messageInfo_AppendEntriesReply.Size(m)
  436. }
  437. func (m *AppendEntriesReply) XXX_DiscardUnknown() {
  438.     xxx_messageInfo_AppendEntriesReply.DiscardUnknown(m)
  439. }
  440.  
  441. var xxx_messageInfo_AppendEntriesReply proto.InternalMessageInfo
  442.  
  443. func (m *AppendEntriesReply) GetTerm() uint64 {
  444.     if m != nil {
  445.         return m.Term
  446.     }
  447.     return 0
  448. }
  449.  
  450. func (m *AppendEntriesReply) GetSuccess() bool {
  451.     if m != nil {
  452.         return m.Success
  453.     }
  454.     return false
  455. }
  456.  
  457. type RequestVoteRequest struct {
  458.     // The candidate's current term Id
  459.     Term uint64 `protobuf:"varint,1,opt,name=term,proto3" json:"term,omitempty"`
  460.     // The cadidate Id currently requesting a node to vote for it.
  461.     Candidate *RemoteNode `protobuf:"bytes,2,opt,name=candidate,proto3" json:"candidate,omitempty"`
  462.     // The index of the candidate's last log entry
  463.     LastLogIndex uint64 `protobuf:"varint,3,opt,name=lastLogIndex,proto3" json:"lastLogIndex,omitempty"`
  464.     // The term of the candidate's last log entry
  465.     LastLogTerm          uint64   `protobuf:"varint,4,opt,name=lastLogTerm,proto3" json:"lastLogTerm,omitempty"`
  466.     XXX_NoUnkeyedLiteral struct{} `json:"-"`
  467.     XXX_unrecognized     []byte   `json:"-"`
  468.     XXX_sizecache        int32    `json:"-"`
  469. }
  470.  
  471. func (m *RequestVoteRequest) Reset()         { *m = RequestVoteRequest{} }
  472. func (m *RequestVoteRequest) String() string { return proto.CompactTextString(m) }
  473. func (*RequestVoteRequest) ProtoMessage()    {}
  474. func (*RequestVoteRequest) Descriptor() ([]byte, []int) {
  475.     return fileDescriptor_0bd0c682ba16bf51, []int{6}
  476. }
  477.  
  478. func (m *RequestVoteRequest) XXX_Unmarshal(b []byte) error {
  479.     return xxx_messageInfo_RequestVoteRequest.Unmarshal(m, b)
  480. }
  481. func (m *RequestVoteRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  482.     return xxx_messageInfo_RequestVoteRequest.Marshal(b, m, deterministic)
  483. }
  484. func (m *RequestVoteRequest) XXX_Merge(src proto.Message) {
  485.     xxx_messageInfo_RequestVoteRequest.Merge(m, src)
  486. }
  487. func (m *RequestVoteRequest) XXX_Size() int {
  488.     return xxx_messageInfo_RequestVoteRequest.Size(m)
  489. }
  490. func (m *RequestVoteRequest) XXX_DiscardUnknown() {
  491.     xxx_messageInfo_RequestVoteRequest.DiscardUnknown(m)
  492. }
  493.  
  494. var xxx_messageInfo_RequestVoteRequest proto.InternalMessageInfo
  495.  
  496. func (m *RequestVoteRequest) GetTerm() uint64 {
  497.     if m != nil {
  498.         return m.Term
  499.     }
  500.     return 0
  501. }
  502.  
  503. func (m *RequestVoteRequest) GetCandidate() *RemoteNode {
  504.     if m != nil {
  505.         return m.Candidate
  506.     }
  507.     return nil
  508. }
  509.  
  510. func (m *RequestVoteRequest) GetLastLogIndex() uint64 {
  511.     if m != nil {
  512.         return m.LastLogIndex
  513.     }
  514.     return 0
  515. }
  516.  
  517. func (m *RequestVoteRequest) GetLastLogTerm() uint64 {
  518.     if m != nil {
  519.         return m.LastLogTerm
  520.     }
  521.     return 0
  522. }
  523.  
  524. type RequestVoteReply struct {
  525.     // The current term, for candidate to update itsel
  526.     Term uint64 `protobuf:"varint,1,opt,name=term,proto3" json:"term,omitempty"`
  527.     // True means candidate received vote
  528.     VoteGranted          bool     `protobuf:"varint,2,opt,name=voteGranted,proto3" json:"voteGranted,omitempty"`
  529.     XXX_NoUnkeyedLiteral struct{} `json:"-"`
  530.     XXX_unrecognized     []byte   `json:"-"`
  531.     XXX_sizecache        int32    `json:"-"`
  532. }
  533.  
  534. func (m *RequestVoteReply) Reset()         { *m = RequestVoteReply{} }
  535. func (m *RequestVoteReply) String() string { return proto.CompactTextString(m) }
  536. func (*RequestVoteReply) ProtoMessage()    {}
  537. func (*RequestVoteReply) Descriptor() ([]byte, []int) {
  538.     return fileDescriptor_0bd0c682ba16bf51, []int{7}
  539. }
  540.  
  541. func (m *RequestVoteReply) XXX_Unmarshal(b []byte) error {
  542.     return xxx_messageInfo_RequestVoteReply.Unmarshal(m, b)
  543. }
  544. func (m *RequestVoteReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  545.     return xxx_messageInfo_RequestVoteReply.Marshal(b, m, deterministic)
  546. }
  547. func (m *RequestVoteReply) XXX_Merge(src proto.Message) {
  548.     xxx_messageInfo_RequestVoteReply.Merge(m, src)
  549. }
  550. func (m *RequestVoteReply) XXX_Size() int {
  551.     return xxx_messageInfo_RequestVoteReply.Size(m)
  552. }
  553. func (m *RequestVoteReply) XXX_DiscardUnknown() {
  554.     xxx_messageInfo_RequestVoteReply.DiscardUnknown(m)
  555. }
  556.  
  557. var xxx_messageInfo_RequestVoteReply proto.InternalMessageInfo
  558.  
  559. func (m *RequestVoteReply) GetTerm() uint64 {
  560.     if m != nil {
  561.         return m.Term
  562.     }
  563.     return 0
  564. }
  565.  
  566. func (m *RequestVoteReply) GetVoteGranted() bool {
  567.     if m != nil {
  568.         return m.VoteGranted
  569.     }
  570.     return false
  571. }
  572.  
  573. // Empty message represents that a client needs to send no data over to
  574. // register itself.
  575. type RegisterClientRequest struct {
  576.     XXX_NoUnkeyedLiteral struct{} `json:"-"`
  577.     XXX_unrecognized     []byte   `json:"-"`
  578.     XXX_sizecache        int32    `json:"-"`
  579. }
  580.  
  581. func (m *RegisterClientRequest) Reset()         { *m = RegisterClientRequest{} }
  582. func (m *RegisterClientRequest) String() string { return proto.CompactTextString(m) }
  583. func (*RegisterClientRequest) ProtoMessage()    {}
  584. func (*RegisterClientRequest) Descriptor() ([]byte, []int) {
  585.     return fileDescriptor_0bd0c682ba16bf51, []int{8}
  586. }
  587.  
  588. func (m *RegisterClientRequest) XXX_Unmarshal(b []byte) error {
  589.     return xxx_messageInfo_RegisterClientRequest.Unmarshal(m, b)
  590. }
  591. func (m *RegisterClientRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  592.     return xxx_messageInfo_RegisterClientRequest.Marshal(b, m, deterministic)
  593. }
  594. func (m *RegisterClientRequest) XXX_Merge(src proto.Message) {
  595.     xxx_messageInfo_RegisterClientRequest.Merge(m, src)
  596. }
  597. func (m *RegisterClientRequest) XXX_Size() int {
  598.     return xxx_messageInfo_RegisterClientRequest.Size(m)
  599. }
  600. func (m *RegisterClientRequest) XXX_DiscardUnknown() {
  601.     xxx_messageInfo_RegisterClientRequest.DiscardUnknown(m)
  602. }
  603.  
  604. var xxx_messageInfo_RegisterClientRequest proto.InternalMessageInfo
  605.  
  606. type RegisterClientReply struct {
  607.     // OK if state machine registered client
  608.     Status ClientStatus `protobuf:"varint,1,opt,name=status,proto3,enum=raft.ClientStatus" json:"status,omitempty"`
  609.     // Unique ID for client session
  610.     ClientId uint64 `protobuf:"varint,2,opt,name=clientId,proto3" json:"clientId,omitempty"`
  611.     // In cases where the client contacted a non-leader, the node should
  612.     // reply with the correct current leader.
  613.     LeaderHint           *RemoteNode `protobuf:"bytes,3,opt,name=leaderHint,proto3" json:"leaderHint,omitempty"`
  614.     XXX_NoUnkeyedLiteral struct{}    `json:"-"`
  615.     XXX_unrecognized     []byte      `json:"-"`
  616.     XXX_sizecache        int32       `json:"-"`
  617. }
  618.  
  619. func (m *RegisterClientReply) Reset()         { *m = RegisterClientReply{} }
  620. func (m *RegisterClientReply) String() string { return proto.CompactTextString(m) }
  621. func (*RegisterClientReply) ProtoMessage()    {}
  622. func (*RegisterClientReply) Descriptor() ([]byte, []int) {
  623.     return fileDescriptor_0bd0c682ba16bf51, []int{9}
  624. }
  625.  
  626. func (m *RegisterClientReply) XXX_Unmarshal(b []byte) error {
  627.     return xxx_messageInfo_RegisterClientReply.Unmarshal(m, b)
  628. }
  629. func (m *RegisterClientReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  630.     return xxx_messageInfo_RegisterClientReply.Marshal(b, m, deterministic)
  631. }
  632. func (m *RegisterClientReply) XXX_Merge(src proto.Message) {
  633.     xxx_messageInfo_RegisterClientReply.Merge(m, src)
  634. }
  635. func (m *RegisterClientReply) XXX_Size() int {
  636.     return xxx_messageInfo_RegisterClientReply.Size(m)
  637. }
  638. func (m *RegisterClientReply) XXX_DiscardUnknown() {
  639.     xxx_messageInfo_RegisterClientReply.DiscardUnknown(m)
  640. }
  641.  
  642. var xxx_messageInfo_RegisterClientReply proto.InternalMessageInfo
  643.  
  644. func (m *RegisterClientReply) GetStatus() ClientStatus {
  645.     if m != nil {
  646.         return m.Status
  647.     }
  648.     return ClientStatus_OK
  649. }
  650.  
  651. func (m *RegisterClientReply) GetClientId() uint64 {
  652.     if m != nil {
  653.         return m.ClientId
  654.     }
  655.     return 0
  656. }
  657.  
  658. func (m *RegisterClientReply) GetLeaderHint() *RemoteNode {
  659.     if m != nil {
  660.         return m.LeaderHint
  661.     }
  662.     return nil
  663. }
  664.  
  665. type ClientRequest struct {
  666.     // The unique client ID associated with this client session (received
  667.     // via a previous RegisterClient call).
  668.     ClientId uint64 `protobuf:"varint,1,opt,name=clientId,proto3" json:"clientId,omitempty"`
  669.     // A sequence number is associated to request to avoid duplicates
  670.     SequenceNum uint64 `protobuf:"varint,2,opt,name=sequenceNum,proto3" json:"sequenceNum,omitempty"`
  671.     // Command to be executed on the state machine; it may affect state
  672.     StateMachineCmd uint64 `protobuf:"varint,4,opt,name=stateMachineCmd,proto3" json:"stateMachineCmd,omitempty"`
  673.     // Data to accompany the command to the state machine; it may affect state
  674.     Data                 []byte   `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"`
  675.     XXX_NoUnkeyedLiteral struct{} `json:"-"`
  676.     XXX_unrecognized     []byte   `json:"-"`
  677.     XXX_sizecache        int32    `json:"-"`
  678. }
  679.  
  680. func (m *ClientRequest) Reset()         { *m = ClientRequest{} }
  681. func (m *ClientRequest) String() string { return proto.CompactTextString(m) }
  682. func (*ClientRequest) ProtoMessage()    {}
  683. func (*ClientRequest) Descriptor() ([]byte, []int) {
  684.     return fileDescriptor_0bd0c682ba16bf51, []int{10}
  685. }
  686.  
  687. func (m *ClientRequest) XXX_Unmarshal(b []byte) error {
  688.     return xxx_messageInfo_ClientRequest.Unmarshal(m, b)
  689. }
  690. func (m *ClientRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  691.     return xxx_messageInfo_ClientRequest.Marshal(b, m, deterministic)
  692. }
  693. func (m *ClientRequest) XXX_Merge(src proto.Message) {
  694.     xxx_messageInfo_ClientRequest.Merge(m, src)
  695. }
  696. func (m *ClientRequest) XXX_Size() int {
  697.     return xxx_messageInfo_ClientRequest.Size(m)
  698. }
  699. func (m *ClientRequest) XXX_DiscardUnknown() {
  700.     xxx_messageInfo_ClientRequest.DiscardUnknown(m)
  701. }
  702.  
  703. var xxx_messageInfo_ClientRequest proto.InternalMessageInfo
  704.  
  705. func (m *ClientRequest) GetClientId() uint64 {
  706.     if m != nil {
  707.         return m.ClientId
  708.     }
  709.     return 0
  710. }
  711.  
  712. func (m *ClientRequest) GetSequenceNum() uint64 {
  713.     if m != nil {
  714.         return m.SequenceNum
  715.     }
  716.     return 0
  717. }
  718.  
  719. func (m *ClientRequest) GetStateMachineCmd() uint64 {
  720.     if m != nil {
  721.         return m.StateMachineCmd
  722.     }
  723.     return 0
  724. }
  725.  
  726. func (m *ClientRequest) GetData() []byte {
  727.     if m != nil {
  728.         return m.Data
  729.     }
  730.     return nil
  731. }
  732.  
  733. type ClientReply struct {
  734.     // OK if state machine successfully applied command
  735.     Status ClientStatus `protobuf:"varint,1,opt,name=status,proto3,enum=raft.ClientStatus" json:"status,omitempty"`
  736.     // State machine output, if successful
  737.     Response string `protobuf:"bytes,2,opt,name=response,proto3" json:"response,omitempty"`
  738.     // In cases where the client contacted a non-leader, the node should
  739.     // reply with the correct current leader.
  740.     LeaderHint           *RemoteNode `protobuf:"bytes,3,opt,name=leaderHint,proto3" json:"leaderHint,omitempty"`
  741.     XXX_NoUnkeyedLiteral struct{}    `json:"-"`
  742.     XXX_unrecognized     []byte      `json:"-"`
  743.     XXX_sizecache        int32       `json:"-"`
  744. }
  745.  
  746. func (m *ClientReply) Reset()         { *m = ClientReply{} }
  747. func (m *ClientReply) String() string { return proto.CompactTextString(m) }
  748. func (*ClientReply) ProtoMessage()    {}
  749. func (*ClientReply) Descriptor() ([]byte, []int) {
  750.     return fileDescriptor_0bd0c682ba16bf51, []int{11}
  751. }
  752.  
  753. func (m *ClientReply) XXX_Unmarshal(b []byte) error {
  754.     return xxx_messageInfo_ClientReply.Unmarshal(m, b)
  755. }
  756. func (m *ClientReply) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
  757.     return xxx_messageInfo_ClientReply.Marshal(b, m, deterministic)
  758. }
  759. func (m *ClientReply) XXX_Merge(src proto.Message) {
  760.     xxx_messageInfo_ClientReply.Merge(m, src)
  761. }
  762. func (m *ClientReply) XXX_Size() int {
  763.     return xxx_messageInfo_ClientReply.Size(m)
  764. }
  765. func (m *ClientReply) XXX_DiscardUnknown() {
  766.     xxx_messageInfo_ClientReply.DiscardUnknown(m)
  767. }
  768.  
  769. var xxx_messageInfo_ClientReply proto.InternalMessageInfo
  770.  
  771. func (m *ClientReply) GetStatus() ClientStatus {
  772.     if m != nil {
  773.         return m.Status
  774.     }
  775.     return ClientStatus_OK
  776. }
  777.  
  778. func (m *ClientReply) GetResponse() string {
  779.     if m != nil {
  780.         return m.Response
  781.     }
  782.     return ""
  783. }
  784.  
  785. func (m *ClientReply) GetLeaderHint() *RemoteNode {
  786.     if m != nil {
  787.         return m.LeaderHint
  788.     }
  789.     return nil
  790. }
  791.  
  792. func init() {
  793.     proto.RegisterEnum("raft.CommandType", CommandType_name, CommandType_value)
  794.     proto.RegisterEnum("raft.ClientStatus", ClientStatus_name, ClientStatus_value)
  795.     proto.RegisterType((*Ok)(nil), "raft.Ok")
  796.     proto.RegisterType((*RemoteNode)(nil), "raft.RemoteNode")
  797.     proto.RegisterType((*StartNodeRequest)(nil), "raft.StartNodeRequest")
  798.     proto.RegisterType((*LogEntry)(nil), "raft.LogEntry")
  799.     proto.RegisterType((*AppendEntriesRequest)(nil), "raft.AppendEntriesRequest")
  800.     proto.RegisterType((*AppendEntriesReply)(nil), "raft.AppendEntriesReply")
  801.     proto.RegisterType((*RequestVoteRequest)(nil), "raft.RequestVoteRequest")
  802.     proto.RegisterType((*RequestVoteReply)(nil), "raft.RequestVoteReply")
  803.     proto.RegisterType((*RegisterClientRequest)(nil), "raft.RegisterClientRequest")
  804.     proto.RegisterType((*RegisterClientReply)(nil), "raft.RegisterClientReply")
  805.     proto.RegisterType((*ClientRequest)(nil), "raft.ClientRequest")
  806.     proto.RegisterType((*ClientReply)(nil), "raft.ClientReply")
  807. }
  808.  
  809. func init() { proto.RegisterFile("raft_rpc.proto", fileDescriptor_0bd0c682ba16bf51) }
  810.  
  811. var fileDescriptor_0bd0c682ba16bf51 = []byte{
  812.     // 867 bytes of a gzipped FileDescriptorProto
  813.     0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0x41, 0x6f, 0xe3, 0x44,
  814.     0x14, 0xae, 0x1d, 0x37, 0x4d, 0x5f, 0x4a, 0xd6, 0x9d, 0x74, 0xbb, 0xde, 0x70, 0x89, 0x2c, 0x21,
  815.     0x45, 0xd5, 0xaa, 0x5a, 0x15, 0x71, 0x46, 0xc1, 0x35, 0xad, 0x21, 0xb1, 0xcb, 0xc4, 0xcb, 0xd5,
  816.     0x1a, 0xec, 0x69, 0xd7, 0x6a, 0xe2, 0x31, 0xf6, 0x74, 0x45, 0x7e, 0x01, 0x07, 0x0e, 0x1c, 0xb9,
  817.     0x71, 0xe5, 0xaf, 0xf1, 0x33, 0xd0, 0x8c, 0xc7, 0x59, 0x3b, 0xb8, 0x48, 0x68, 0x6f, 0xf3, 0xbe,
  818.     0xf7, 0xde, 0xf7, 0xbe, 0xf7, 0xc5, 0x33, 0x81, 0x51, 0x41, 0xee, 0x79, 0x54, 0xe4, 0xf1, 0x65,
  819.     0x5e, 0x30, 0xce, 0x90, 0x21, 0x62, 0xfb, 0x0d, 0xe8, 0xc1, 0x23, 0x1a, 0x81, 0xce, 0x1e, 0x2d,
  820.     0x6d, 0xaa, 0xcd, 0x06, 0x58, 0x67, 0x8f, 0xe8, 0x1c, 0xfa, 0x05, 0x25, 0x25, 0xcb, 0x2c, 0x7d,
  821.     0xaa, 0xcd, 0x8e, 0xb1, 0x8a, 0xec, 0xb7, 0x00, 0x98, 0x6e, 0x18, 0xa7, 0x3e, 0x4b, 0x28, 0x42,
  822.     0x60, 0x90, 0x24, 0x29, 0x64, 0xdf, 0x31, 0x96, 0x67, 0xc1, 0x94, 0x26, 0xaa, 0x4b, 0x4f, 0x13,
  823.     0x3b, 0x03, 0x73, 0xc5, 0x49, 0xc1, 0x45, 0x03, 0xa6, 0x3f, 0x3f, 0xd1, 0x92, 0xa3, 0x37, 0x30,
  824.     0xb8, 0x2f, 0xd8, 0x46, 0x40, 0xb2, 0x77, 0x78, 0x65, 0x5e, 0x0a, 0x31, 0x97, 0x1f, 0xb9, 0xf1,
  825.     0xae, 0x42, 0x54, 0x67, 0x2c, 0xa1, 0x8b, 0xb4, 0xe4, 0x96, 0x3e, 0xed, 0x75, 0x57, 0xd7, 0x15,
  826.     0xf6, 0x5f, 0x1a, 0x0c, 0x16, 0xec, 0xc1, 0xcd, 0x78, 0xb1, 0x45, 0x67, 0x70, 0x98, 0x66, 0x09,
  827.     0xfd, 0x45, 0x4e, 0x31, 0x70, 0x15, 0x88, 0xe5, 0x38, 0x2d, 0x36, 0x5e, 0x25, 0xd3, 0xc0, 0x2a,
  828.     0x42, 0x5f, 0x80, 0xc1, 0xb7, 0x39, 0xb5, 0x7a, 0x53, 0x6d, 0x36, 0xba, 0x3a, 0xad, 0x86, 0x38,
  829.     0x6c, 0xb3, 0x21, 0x59, 0x12, 0x6e, 0x73, 0x8a, 0x65, 0x1a, 0x59, 0x70, 0x14, 0x57, 0xa0, 0x65,
  830.     0xc8, 0xfe, 0x3a, 0x14, 0x7e, 0x24, 0x84, 0x13, 0xeb, 0x70, 0xaa, 0xcd, 0x4e, 0xb0, 0x3c, 0xcb,
  831.     0x6a, 0x12, 0xbf, 0xa7, 0x5e, 0x62, 0xf5, 0xa5, 0x29, 0x75, 0x68, 0xff, 0xad, 0xc1, 0xd9, 0x3c,
  832.     0xcf, 0x69, 0x96, 0x08, 0xb1, 0x29, 0x2d, 0x6b, 0x7b, 0x10, 0x18, 0x42, 0x91, 0x12, 0x2d, 0xcf,
  833.     0x68, 0x06, 0xfd, 0x35, 0x25, 0x09, 0x2d, 0xa4, 0xe6, 0x2e, 0x0b, 0x54, 0x1e, 0xd9, 0x70, 0x92,
  834.     0x17, 0xf4, 0xc3, 0x82, 0x3d, 0x78, 0x72, 0xf5, 0x9e, 0x64, 0x69, 0x61, 0x68, 0x0a, 0x43, 0x15,
  835.     0x87, 0x62, 0x50, 0xb5, 0x46, 0x13, 0x42, 0x33, 0x38, 0xa2, 0x95, 0x2a, 0xeb, 0x50, 0x7a, 0x3e,
  836.     0xaa, 0x06, 0xd6, 0xd6, 0xe2, 0x3a, 0x2d, 0xe6, 0x55, 0x93, 0x85, 0x53, 0x29, 0x97, 0x5b, 0x1a,
  837.     0xb8, 0x85, 0xd9, 0xdf, 0x00, 0xda, 0xdb, 0x34, 0x5f, 0x6f, 0x3b, 0xf7, 0xb4, 0xe0, 0xa8, 0x7c,
  838.     0x8a, 0x63, 0x5a, 0x96, 0x72, 0xd1, 0x01, 0xae, 0x43, 0xfb, 0x4f, 0x0d, 0x90, 0x72, 0xe8, 0x47,
  839.     0xc6, 0xe9, 0x7f, 0x99, 0x75, 0x09, 0xc7, 0x31, 0xc9, 0x92, 0x34, 0x21, 0x9c, 0x3e, 0xeb, 0xd7,
  840.     0xc7, 0x12, 0xb9, 0x02, 0x29, 0xf9, 0xbe, 0x65, 0x4d, 0x4c, 0x58, 0xa6, 0xe2, 0xa6, 0x65, 0x0d,
  841.     0xc8, 0xbe, 0x05, 0xb3, 0xa5, 0xef, 0xb9, 0x15, 0xa7, 0x30, 0xfc, 0xc0, 0x38, 0xbd, 0x29, 0x48,
  842.     0xc6, 0x69, 0xa2, 0xd6, 0x6c, 0x42, 0xf6, 0x2b, 0x78, 0x89, 0xe9, 0x43, 0x5a, 0x72, 0x5a, 0x38,
  843.     0xeb, 0x94, 0x66, 0x5c, 0xf1, 0xda, 0xbf, 0x6b, 0x30, 0xde, 0xcf, 0x88, 0x31, 0x17, 0xd0, 0x2f,
  844.     0x39, 0xe1, 0x4f, 0xa5, 0x1c, 0x34, 0xba, 0x42, 0xea, 0xdb, 0x95, 0x25, 0x2b, 0x99, 0xc1, 0xaa,
  845.     0x02, 0x4d, 0x60, 0x10, 0x4b, 0x7c, 0xf7, 0xfd, 0xef, 0x62, 0xf4, 0x16, 0xa0, 0xfa, 0xdd, 0x6e,
  846.     0xd3, 0x8c, 0x4b, 0x1b, 0xba, 0x9c, 0x6b, 0xd4, 0xd8, 0xbf, 0x69, 0xf0, 0x59, 0x4b, 0x63, 0x8b,
  847.     0x5f, 0xdb, 0xe3, 0x9f, 0xc2, 0xb0, 0x14, 0x65, 0x59, 0x4c, 0xfd, 0xa7, 0x8d, 0x1a, 0xdf, 0x84,
  848.     0xd0, 0x0c, 0x5e, 0x08, 0x9d, 0x74, 0x49, 0xe2, 0xf7, 0x69, 0x46, 0x9d, 0x4d, 0x7d, 0xc9, 0xf6,
  849.     0xe1, 0xae, 0xcb, 0x66, 0xff, 0xaa, 0xc1, 0xf0, 0x13, 0x7c, 0x29, 0x68, 0x99, 0xb3, 0xac, 0xa4,
  850.     0xea, 0xf9, 0xda, 0xc5, 0xff, 0xdf, 0x97, 0x8b, 0x77, 0x30, 0x6c, 0xbc, 0x1c, 0xe8, 0x15, 0x8c,
  851.     0x9d, 0x85, 0xe7, 0xfa, 0x61, 0x84, 0xdd, 0x1b, 0x6f, 0x15, 0xe2, 0x79, 0xe8, 0x05, 0xbe, 0x79,
  852.     0x80, 0x06, 0x60, 0x78, 0xbe, 0x17, 0x9a, 0x9a, 0x38, 0xf9, 0x41, 0x70, 0x67, 0xea, 0xe8, 0x35,
  853.     0xbc, 0x5c, 0x85, 0xf3, 0xd0, 0x8d, 0x96, 0x73, 0xe7, 0xd6, 0xf3, 0xdd, 0xc8, 0x09, 0x96, 0xcb,
  854.     0xb9, 0x7f, 0x6d, 0xf6, 0x2e, 0x52, 0x38, 0x69, 0x8a, 0x47, 0x7d, 0xd0, 0x83, 0xef, 0xcd, 0x03,
  855.     0x34, 0x02, 0xf0, 0x83, 0x30, 0x5a, 0xb8, 0xf3, 0x6b, 0x17, 0x9b, 0x1a, 0xb2, 0xe0, 0xcc, 0x5d,
  856.     0xb8, 0x8e, 0x18, 0x12, 0x79, 0x7e, 0x74, 0x87, 0x83, 0x1b, 0xec, 0xae, 0x56, 0xa6, 0x5e, 0x29,
  857.     0x79, 0xb7, 0x0a, 0x5d, 0x1c, 0x89, 0x8e, 0x55, 0x38, 0xc7, 0xa1, 0x7b, 0x6d, 0xf6, 0x04, 0x05,
  858.     0x76, 0x7f, 0x88, 0xbe, 0x9d, 0x7b, 0x0b, 0xf7, 0xda, 0x34, 0xae, 0xfe, 0xe8, 0xc1, 0x11, 0x26,
  859.     0xf7, 0x1c, 0xdf, 0x39, 0xe8, 0x02, 0xe0, 0x3b, 0x96, 0x66, 0x0e, 0x59, 0xaf, 0x69, 0x81, 0xfe,
  860.     0xb5, 0xf9, 0x64, 0x50, 0x21, 0xc1, 0xa3, 0x7d, 0x80, 0xbe, 0x82, 0x17, 0xbb, 0x07, 0x5f, 0x35,
  861.     0x9c, 0x57, 0xe9, 0xfd, 0xff, 0x81, 0x56, 0xdb, 0x12, 0xc6, 0xad, 0x27, 0x42, 0xb5, 0x4e, 0xaa,
  862.     0x92, 0xae, 0x77, 0x72, 0x62, 0x75, 0xe6, 0xf2, 0xf5, 0xd6, 0x3e, 0x40, 0x37, 0x70, 0xda, 0xb8,
  863.     0x8c, 0x8a, 0xcc, 0xaa, 0x85, 0xef, 0xbf, 0x22, 0x93, 0xf3, 0x8e, 0x4c, 0x45, 0x74, 0x07, 0x67,
  864.     0xed, 0x1b, 0xa7, 0xb8, 0x3e, 0xaf, 0x3b, 0x3a, 0xee, 0xe9, 0xe4, 0x75, 0x77, 0xb2, 0x62, 0xfc,
  865.     0x1a, 0xc6, 0xad, 0x6a, 0x45, 0x38, 0x6e, 0x7e, 0x9b, 0x35, 0xd1, 0x69, 0x1b, 0x94, 0x04, 0x3f,
  866.     0xf5, 0xe5, 0xff, 0xf7, 0x97, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x43, 0x38, 0xc5, 0x93, 0xd1,
  867.     0x07, 0x00, 0x00,
  868. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement