summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/Rhymen/go-whatsapp/binary
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/Rhymen/go-whatsapp/binary')
-rw-r--r--vendor/github.com/Rhymen/go-whatsapp/binary/decoder.go388
-rw-r--r--vendor/github.com/Rhymen/go-whatsapp/binary/encoder.go351
-rw-r--r--vendor/github.com/Rhymen/go-whatsapp/binary/node.go106
-rw-r--r--vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.pb.go12807
-rw-r--r--vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto1050
-rw-r--r--vendor/github.com/Rhymen/go-whatsapp/binary/token/token.go81
6 files changed, 14783 insertions, 0 deletions
diff --git a/vendor/github.com/Rhymen/go-whatsapp/binary/decoder.go b/vendor/github.com/Rhymen/go-whatsapp/binary/decoder.go
new file mode 100644
index 00000000..95da606c
--- /dev/null
+++ b/vendor/github.com/Rhymen/go-whatsapp/binary/decoder.go
@@ -0,0 +1,388 @@
+package binary
+
+import (
+ "fmt"
+ "github.com/Rhymen/go-whatsapp/binary/token"
+ "io"
+ "strconv"
+)
+
+type binaryDecoder struct {
+ data []byte
+ index int
+}
+
+func NewDecoder(data []byte) *binaryDecoder {
+ return &binaryDecoder{data, 0}
+}
+
+func (r *binaryDecoder) checkEOS(length int) error {
+ if r.index+length > len(r.data) {
+ return io.EOF
+ }
+
+ return nil
+}
+
+func (r *binaryDecoder) readByte() (byte, error) {
+ if err := r.checkEOS(1); err != nil {
+ return 0, err
+ }
+
+ b := r.data[r.index]
+ r.index++
+
+ return b, nil
+}
+
+func (r *binaryDecoder) readIntN(n int, littleEndian bool) (int, error) {
+ if err := r.checkEOS(n); err != nil {
+ return 0, err
+ }
+
+ var ret int
+
+ for i := 0; i < n; i++ {
+ var curShift int
+ if littleEndian {
+ curShift = i
+ } else {
+ curShift = n - i - 1
+ }
+ ret |= int(r.data[r.index+i]) << uint(curShift*8)
+ }
+
+ r.index += n
+ return ret, nil
+}
+
+func (r *binaryDecoder) readInt8(littleEndian bool) (int, error) {
+ return r.readIntN(1, littleEndian)
+}
+
+func (r *binaryDecoder) readInt16(littleEndian bool) (int, error) {
+ return r.readIntN(2, littleEndian)
+}
+
+func (r *binaryDecoder) readInt20() (int, error) {
+ if err := r.checkEOS(3); err != nil {
+ return 0, err
+ }
+
+ ret := ((int(r.data[r.index]) & 15) << 16) + (int(r.data[r.index+1]) << 8) + int(r.data[r.index+2])
+ r.index += 3
+ return ret, nil
+}
+
+func (r *binaryDecoder) readInt32(littleEndian bool) (int, error) {
+ return r.readIntN(4, littleEndian)
+}
+
+func (r *binaryDecoder) readInt64(littleEndian bool) (int, error) {
+ return r.readIntN(8, littleEndian)
+}
+
+func (r *binaryDecoder) readPacked8(tag int) (string, error) {
+ startByte, err := r.readByte()
+ if err != nil {
+ return "", err
+ }
+
+ ret := ""
+
+ for i := 0; i < int(startByte&127); i++ {
+ currByte, err := r.readByte()
+ if err != nil {
+ return "", err
+ }
+
+ lower, err := unpackByte(tag, currByte&0xF0>>4)
+ if err != nil {
+ return "", err
+ }
+
+ upper, err := unpackByte(tag, currByte&0x0F)
+ if err != nil {
+ return "", err
+ }
+
+ ret += lower + upper
+ }
+
+ if startByte>>7 != 0 {
+ ret = ret[:len(ret)-1]
+ }
+ return ret, nil
+}
+
+func unpackByte(tag int, value byte) (string, error) {
+ switch tag {
+ case token.NIBBLE_8:
+ return unpackNibble(value)
+ case token.HEX_8:
+ return unpackHex(value)
+ default:
+ return "", fmt.Errorf("unpackByte with unknown tag %d", tag)
+ }
+}
+
+func unpackNibble(value byte) (string, error) {
+ switch {
+ case value < 0 || value > 15:
+ return "", fmt.Errorf("unpackNibble with value %d", value)
+ case value == 10:
+ return "-", nil
+ case value == 11:
+ return ".", nil
+ case value == 15:
+ return "\x00", nil
+ default:
+ return strconv.Itoa(int(value)), nil
+ }
+}
+
+func unpackHex(value byte) (string, error) {
+ switch {
+ case value < 0 || value > 15:
+ return "", fmt.Errorf("unpackHex with value %d", value)
+ case value < 10:
+ return strconv.Itoa(int(value)), nil
+ default:
+ return string('A' + value - 10), nil
+ }
+}
+
+func (r *binaryDecoder) readListSize(tag int) (int, error) {
+ switch tag {
+ case token.LIST_EMPTY:
+ return 0, nil
+ case token.LIST_8:
+ return r.readInt8(false)
+ case token.LIST_16:
+ return r.readInt16(false)
+ default:
+ return 0, fmt.Errorf("readListSize with unknown tag %d at position %d", tag, r.index)
+ }
+}
+
+func (r *binaryDecoder) readString(tag int) (string, error) {
+ switch {
+ case tag >= 3 && tag <= len(token.SingleByteTokens):
+ tok, err := token.GetSingleToken(tag)
+ if err != nil {
+ return "", err
+ }
+
+ if tok == "s.whatsapp.net" {
+ tok = "c.us"
+ }
+
+ return tok, nil
+ case tag == token.DICTIONARY_0 || tag == token.DICTIONARY_1 || tag == token.DICTIONARY_2 || tag == token.DICTIONARY_3:
+ i, err := r.readInt8(false)
+ if err != nil {
+ return "", err
+ }
+
+ return token.GetDoubleToken(tag-token.DICTIONARY_0, i)
+ case tag == token.LIST_EMPTY:
+ return "", nil
+ case tag == token.BINARY_8:
+ length, err := r.readInt8(false)
+ if err != nil {
+ return "", err
+ }
+
+ return r.readStringFromChars(length)
+ case tag == token.BINARY_20:
+ length, err := r.readInt20()
+ if err != nil {
+ return "", err
+ }
+
+ return r.readStringFromChars(length)
+ case tag == token.BINARY_32:
+ length, err := r.readInt32(false)
+ if err != nil {
+ return "", err
+ }
+
+ return r.readStringFromChars(length)
+ case tag == token.JID_PAIR:
+ b, err := r.readByte()
+ if err != nil {
+ return "", err
+ }
+ i, err := r.readString(int(b))
+ if err != nil {
+ return "", err
+ }
+
+ b, err = r.readByte()
+ if err != nil {
+ return "", err
+ }
+ j, err := r.readString(int(b))
+ if err != nil {
+ return "", err
+ }
+
+ if i == "" || j == "" {
+ return "", fmt.Errorf("invalid jid pair: %s - %s", i, j)
+ }
+
+ return i + "@" + j, nil
+ case tag == token.NIBBLE_8 || tag == token.HEX_8:
+ return r.readPacked8(tag)
+ default:
+ return "", fmt.Errorf("invalid string with tag %d", tag)
+ }
+}
+
+func (r *binaryDecoder) readStringFromChars(length int) (string, error) {
+ if err := r.checkEOS(length); err != nil {
+ return "", err
+ }
+
+ ret := r.data[r.index : r.index+length]
+ r.index += length
+
+ return string(ret), nil
+}
+
+func (r *binaryDecoder) readAttributes(n int) (map[string]string, error) {
+ if n == 0 {
+ return nil, nil
+ }
+
+ ret := make(map[string]string)
+ for i := 0; i < n; i++ {
+ idx, err := r.readInt8(false)
+ if err != nil {
+ return nil, err
+ }
+
+ index, err := r.readString(idx)
+ if err != nil {
+ return nil, err
+ }
+
+ idx, err = r.readInt8(false)
+ if err != nil {
+ return nil, err
+ }
+
+ ret[index], err = r.readString(idx)
+ if err != nil {
+ return nil, err
+ }
+ }
+
+ return ret, nil
+}
+
+func (r *binaryDecoder) readList(tag int) ([]Node, error) {
+ size, err := r.readListSize(tag)
+ if err != nil {
+ return nil, err
+ }
+
+ ret := make([]Node, size)
+ for i := 0; i < size; i++ {
+ n, err := r.ReadNode()
+
+ if err != nil {
+ return nil, err
+ }
+
+ ret[i] = *n
+ }
+
+ return ret, nil
+}
+
+func (r *binaryDecoder) ReadNode() (*Node, error) {
+ ret := &Node{}
+
+ size, err := r.readInt8(false)
+ if err != nil {
+ return nil, err
+ }
+ listSize, err := r.readListSize(size)
+ if err != nil {
+ return nil, err
+ }
+
+ descrTag, err := r.readInt8(false)
+ if descrTag == token.STREAM_END {
+ return nil, fmt.Errorf("unexpected stream end")
+ }
+ ret.Description, err = r.readString(descrTag)
+ if err != nil {
+ return nil, err
+ }
+ if listSize == 0 || ret.Description == "" {
+ return nil, fmt.Errorf("invalid Node")
+ }
+
+ ret.Attributes, err = r.readAttributes((listSize - 1) >> 1)
+ if err != nil {
+ return nil, err
+ }
+
+ if listSize%2 == 1 {
+ return ret, nil
+ }
+
+ tag, err := r.readInt8(false)
+ if err != nil {
+ return nil, err
+ }
+
+ switch tag {
+ case token.LIST_EMPTY, token.LIST_8, token.LIST_16:
+ ret.Content, err = r.readList(tag)
+ case token.BINARY_8:
+ size, err = r.readInt8(false)
+ if err != nil {
+ return nil, err
+ }
+
+ ret.Content, err = r.readBytes(size)
+ case token.BINARY_20:
+ size, err = r.readInt20()
+ if err != nil {
+ return nil, err
+ }
+
+ ret.Content, err = r.readBytes(size)
+ case token.BINARY_32:
+ size, err = r.readInt32(false)
+ if err != nil {
+ return nil, err
+ }
+
+ ret.Content, err = r.readBytes(size)
+ default:
+ ret.Content, err = r.readString(tag)
+ }
+
+ if err != nil {
+ return nil, err
+ }
+ return ret, nil
+}
+
+func (r *binaryDecoder) readBytes(n int) ([]byte, error) {
+ ret := make([]byte, n)
+ var err error
+
+ for i := range ret {
+ ret[i], err = r.readByte()
+ if err != nil {
+ return nil, err
+ }
+ }
+
+ return ret, nil
+}
diff --git a/vendor/github.com/Rhymen/go-whatsapp/binary/encoder.go b/vendor/github.com/Rhymen/go-whatsapp/binary/encoder.go
new file mode 100644
index 00000000..59003e7a
--- /dev/null
+++ b/vendor/github.com/Rhymen/go-whatsapp/binary/encoder.go
@@ -0,0 +1,351 @@
+package binary
+
+import (
+ "fmt"
+ "github.com/Rhymen/go-whatsapp/binary/token"
+ "math"
+ "strconv"
+ "strings"
+)
+
+type binaryEncoder struct {
+ data []byte
+}
+
+func NewEncoder() *binaryEncoder {
+ return &binaryEncoder{make([]byte, 0)}
+}
+
+func (w *binaryEncoder) GetData() []byte {
+ return w.data
+}
+
+func (w *binaryEncoder) pushByte(b byte) {
+ w.data = append(w.data, b)
+}
+
+func (w *binaryEncoder) pushBytes(bytes []byte) {
+ w.data = append(w.data, bytes...)
+}
+
+func (w *binaryEncoder) pushIntN(value, n int, littleEndian bool) {
+ for i := 0; i < n; i++ {
+ var curShift int
+ if littleEndian {
+ curShift = i
+ } else {
+ curShift = n - i - 1
+ }
+ w.pushByte(byte((value >> uint(curShift*8)) & 0xFF))
+ }
+}
+
+func (w *binaryEncoder) pushInt20(value int) {
+ w.pushBytes([]byte{byte((value >> 16) & 0x0F), byte((value >> 8) & 0xFF), byte(value & 0xFF)})
+}
+
+func (w *binaryEncoder) pushInt8(value int) {
+ w.pushIntN(value, 1, false)
+}
+
+func (w *binaryEncoder) pushInt16(value int) {
+ w.pushIntN(value, 2, false)
+}
+
+func (w *binaryEncoder) pushInt32(value int) {
+ w.pushIntN(value, 4, false)
+}
+
+func (w *binaryEncoder) pushInt64(value int) {
+ w.pushIntN(value, 8, false)
+}
+
+func (w *binaryEncoder) pushString(value string) {
+ w.pushBytes([]byte(value))
+}
+
+func (w *binaryEncoder) writeByteLength(length int) error {
+ if length > math.MaxInt32 {
+ return fmt.Errorf("length is too large: %d", length)
+ } else if length >= (1 << 20) {
+ w.pushByte(token.BINARY_32)
+ w.pushInt32(length)
+ } else if length >= 256 {
+ w.pushByte(token.BINARY_20)
+ w.pushInt20(length)
+ } else {
+ w.pushByte(token.BINARY_8)
+ w.pushInt8(length)
+ }
+
+ return nil
+}
+
+func (w *binaryEncoder) WriteNode(n Node) error {
+ numAttributes := 0
+ if n.Attributes != nil {
+ numAttributes = len(n.Attributes)
+ }
+
+ hasContent := 0
+ if n.Content != nil {
+ hasContent = 1
+ }
+
+ w.writeListStart(2*numAttributes + 1 + hasContent)
+ if err := w.writeString(n.Description, false); err != nil {
+ return err
+ }
+
+ if err := w.writeAttributes(n.Attributes); err != nil {
+ return err
+ }
+
+ if err := w.writeChildren(n.Content); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (w *binaryEncoder) writeString(tok string, i bool) error {
+ if !i && tok == "c.us" {
+ if err := w.writeToken(token.IndexOfSingleToken("s.whatsapp.net")); err != nil {
+ return err
+ }
+ return nil
+ }
+
+ tokenIndex := token.IndexOfSingleToken(tok)
+ if tokenIndex == -1 {
+ jidSepIndex := strings.Index(tok, "@")
+ if jidSepIndex < 1 {
+ w.writeStringRaw(tok)
+ } else {
+ w.writeJid(tok[:jidSepIndex], tok[jidSepIndex+1:])
+ }
+ } else {
+ if tokenIndex < token.SINGLE_BYTE_MAX {
+ if err := w.writeToken(tokenIndex); err != nil {
+ return err
+ }
+ } else {
+ singleByteOverflow := tokenIndex - token.SINGLE_BYTE_MAX
+ dictionaryIndex := singleByteOverflow >> 8
+ if dictionaryIndex < 0 || dictionaryIndex > 3 {
+ return fmt.Errorf("double byte dictionary token out of range: %v", tok)
+ }
+ if err := w.writeToken(token.DICTIONARY_0 + dictionaryIndex); err != nil {
+ return err
+ }
+ if err := w.writeToken(singleByteOverflow % 256); err != nil {
+ return err
+ }
+ }
+ }
+
+ return nil
+}
+
+func (w *binaryEncoder) writeStringRaw(value string) error {
+ if err := w.writeByteLength(len(value)); err != nil {
+ return err
+ }
+
+ w.pushString(value)
+
+ return nil
+}
+
+func (w *binaryEncoder) writeJid(jidLeft, jidRight string) error {
+ w.pushByte(token.JID_PAIR)
+
+ if jidLeft != "" {
+ if err := w.writePackedBytes(jidLeft); err != nil {
+ return err
+ }
+ } else {
+ if err := w.writeToken(token.LIST_EMPTY); err != nil {
+ return err
+ }
+ }
+
+ if err := w.writeString(jidRight, false); err != nil {
+ return err
+ }
+
+ return nil
+}
+
+func (w *binaryEncoder) writeToken(tok int) error {
+ if tok < len(token.SingleByteTokens) {
+ w.pushByte(byte(tok))
+ } else if tok <= 500 {
+ return fmt.Errorf("invalid token: %d", tok)
+ }
+
+ return nil
+}
+
+func (w *binaryEncoder) writeAttributes(attributes map[string]string) error {
+ if attributes == nil {
+ return nil
+ }
+
+ for key, val := range attributes {
+ if val == "" {
+ continue
+ }
+
+ if err := w.writeString(key, false); err != nil {
+ return err
+ }
+
+ if err := w.writeString(val, false); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func (w *binaryEncoder) writeChildren(children interface{}) error {
+ if children == nil {
+ return nil
+ }
+
+ switch childs := children.(type) {
+ case string:
+ if err := w.writeString(childs, true); err != nil {
+ return err
+ }
+ case []byte:
+ if err := w.writeByteLength(len(childs)); err != nil {
+ return err
+ }
+
+ w.pushBytes(childs)
+ case []Node:
+ w.writeListStart(len(childs))
+ for _, n := range childs {
+ if err := w.WriteNode(n); err != nil {
+ return err
+ }
+ }
+ default:
+ return fmt.Errorf("cannot write child of type: %T", children)
+ }
+
+ return nil
+}
+
+func (w *binaryEncoder) writeListStart(listSize int) {
+ if listSize == 0 {
+ w.pushByte(byte(token.LIST_EMPTY))
+ } else if listSize < 256 {
+ w.pushByte(byte(token.LIST_8))
+ w.pushInt8(listSize)
+ } else {
+ w.pushByte(byte(token.LIST_16))
+ w.pushInt16(listSize)
+ }
+}
+
+func (w *binaryEncoder) writePackedBytes(value string) error {
+ if err := w.writePackedBytesImpl(value, token.NIBBLE_8); err != nil {
+ if err := w.writePackedBytesImpl(value, token.HEX_8); err != nil {
+ return err
+ }
+ }
+
+ return nil
+}
+
+func (w *binaryEncoder) writePackedBytesImpl(value string, dataType int) error {
+ numBytes := len(value)
+ if numBytes > token.PACKED_MAX {
+ return fmt.Errorf("too many bytes to pack: %d", numBytes)
+ }
+
+ w.pushByte(byte(dataType))
+
+ x := 0
+ if numBytes%2 != 0 {
+ x = 128
+ }
+ w.pushByte(byte(x | int(math.Ceil(float64(numBytes)/2.0))))
+ for i, l := 0, numBytes/2; i < l; i++ {
+ b, err := w.packBytePair(dataType, value[2*i:2*i+1], value[2*i+1:2*i+2])
+ if err != nil {
+ return err
+ }
+
+ w.pushByte(byte(b))
+ }
+
+ if (numBytes % 2) != 0 {
+ b, err := w.packBytePair(dataType, value[numBytes-1:], "\x00")
+ if err != nil {
+ return err
+ }
+
+ w.pushByte(byte(b))
+ }
+
+ return nil
+}
+
+func (w *binaryEncoder) packBytePair(packType int, part1, part2 string) (int, error) {
+ if packType == token.NIBBLE_8 {
+ n1, err := packNibble(part1)
+ if err != nil {
+ return 0, err
+ }
+
+ n2, err := packNibble(part2)
+ if err != nil {
+ return 0, err
+ }
+
+ return (n1 << 4) | n2, nil
+ } else if packType == token.HEX_8 {
+ n1, err := packHex(part1)
+ if err != nil {
+ return 0, err
+ }
+
+ n2, err := packHex(part2)
+ if err != nil {
+ return 0, err
+ }
+
+ return (n1 << 4) | n2, nil
+ } else {
+ return 0, fmt.Errorf("invalid pack type (%d) for byte pair: %s / %s", packType, part1, part2)
+ }
+}
+
+func packNibble(value string) (int, error) {
+ if value >= "0" && value <= "9" {
+ return strconv.Atoi(value)
+ } else if value == "-" {
+ return 10, nil
+ } else if value == "." {
+ return 11, nil
+ } else if value == "\x00" {
+ return 15, nil
+ }
+
+ return 0, fmt.Errorf("invalid string to pack as nibble: %v", value)
+}
+
+func packHex(value string) (int, error) {
+ if (value >= "0" && value <= "9") || (value >= "A" && value <= "F") || (value >= "a" && value <= "f") {
+ d, err := strconv.ParseInt(value, 16, 0)
+ return int(d), err
+ } else if value == "\x00" {
+ return 15, nil
+ }
+
+ return 0, fmt.Errorf("invalid string to pack as hex: %v", value)
+}
diff --git a/vendor/github.com/Rhymen/go-whatsapp/binary/node.go b/vendor/github.com/Rhymen/go-whatsapp/binary/node.go
new file mode 100644
index 00000000..66b28d88
--- /dev/null
+++ b/vendor/github.com/Rhymen/go-whatsapp/binary/node.go
@@ -0,0 +1,106 @@
+package binary
+
+import (
+ "fmt"
+ pb "github.com/Rhymen/go-whatsapp/binary/proto"
+ "github.com/golang/protobuf/proto"
+)
+
+type Node struct {
+ Description string
+ Attributes map[string]string
+ Content interface{}
+}
+
+func Marshal(n Node) ([]byte, error) {
+ if n.Attributes != nil && n.Content != nil {
+ a, err := marshalMessageArray(n.Content.([]interface{}))
+ if err != nil {
+ return nil, err
+ }
+ n.Content = a
+ }
+
+ w := NewEncoder()
+ if err := w.WriteNode(n); err != nil {
+ return nil, err
+ }
+
+ return w.GetData(), nil
+}
+
+func marshalMessageArray(messages []interface{}) ([]Node, error) {
+ ret := make([]Node, len(messages))
+
+ for i, m := range messages {
+ if wmi, ok := m.(*pb.WebMessageInfo); ok {
+ b, err := marshalWebMessageInfo(wmi)
+ if err != nil {
+ return nil, nil
+ }
+ ret[i] = Node{"message", nil, b}
+ } else {
+ ret[i], ok = m.(Node)
+ if !ok {
+ return nil, fmt.Errorf("invalid Node")
+ }
+ }
+ }
+
+ return ret, nil
+}
+
+func marshalWebMessageInfo(p *pb.WebMessageInfo) ([]byte, error) {
+ b, err := proto.Marshal(p)
+ if err != nil {
+ return nil, err
+ }
+ return b, nil
+}
+
+func Unmarshal(data []byte) (*Node, error) {
+ r := NewDecoder(data)
+ n, err := r.ReadNode()
+ if err != nil {
+ return nil, err
+ }
+
+ if n != nil && n.Attributes != nil && n.Content != nil {
+ nContent, ok := n.Content.([]Node)
+ if ok {
+ n.Content, err = unmarshalMessageArray(nContent)
+ if err != nil {
+ return nil, err
+ }
+ }
+ }
+
+ return n, nil
+}
+
+func unmarshalMessageArray(messages []Node) ([]interface{}, error) {
+ ret := make([]interface{}, len(messages))
+
+ for i, msg := range messages {
+ if msg.Description == "message" {
+ info, err := unmarshalWebMessageInfo(msg.Content.([]byte))
+ if err != nil {
+ return nil, err
+ }
+ ret[i] = info
+ } else {
+ ret[i] = msg
+ }
+ }
+
+ return ret, nil
+}
+
+func unmarshalWebMessageInfo(msg []byte) (*pb.WebMessageInfo, error) {
+ message := &pb.WebMessageInfo{}
+ err := proto.Unmarshal(msg, message)
+ if err != nil {
+ return nil, err
+ }
+ return message, nil
+}
diff --git a/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.pb.go b/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.pb.go
new file mode 100644
index 00000000..2e473b73
--- /dev/null
+++ b/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.pb.go
@@ -0,0 +1,12807 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.25.0-devel
+// protoc v3.12.3
+// source: def.proto
+
+package proto
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type AdReplyInfo_AdReplyInfoMediaType int32
+
+const (
+ AdReplyInfo_NONE AdReplyInfo_AdReplyInfoMediaType = 0
+ AdReplyInfo_IMAGE AdReplyInfo_AdReplyInfoMediaType = 1
+ AdReplyInfo_VIDEO AdReplyInfo_AdReplyInfoMediaType = 2
+)
+
+// Enum value maps for AdReplyInfo_AdReplyInfoMediaType.
+var (
+ AdReplyInfo_AdReplyInfoMediaType_name = map[int32]string{
+ 0: "NONE",
+ 1: "IMAGE",
+ 2: "VIDEO",
+ }
+ AdReplyInfo_AdReplyInfoMediaType_value = map[string]int32{
+ "NONE": 0,
+ "IMAGE": 1,
+ "VIDEO": 2,
+ }
+)
+
+func (x AdReplyInfo_AdReplyInfoMediaType) Enum() *AdReplyInfo_AdReplyInfoMediaType {
+ p := new(AdReplyInfo_AdReplyInfoMediaType)
+ *p = x
+ return p
+}
+
+func (x AdReplyInfo_AdReplyInfoMediaType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (AdReplyInfo_AdReplyInfoMediaType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[0].Descriptor()
+}
+
+func (AdReplyInfo_AdReplyInfoMediaType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[0]
+}
+
+func (x AdReplyInfo_AdReplyInfoMediaType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *AdReplyInfo_AdReplyInfoMediaType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = AdReplyInfo_AdReplyInfoMediaType(num)
+ return nil
+}
+
+// Deprecated: Use AdReplyInfo_AdReplyInfoMediaType.Descriptor instead.
+func (AdReplyInfo_AdReplyInfoMediaType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{14, 0}
+}
+
+type ExternalAdReplyInfo_ExternalAdReplyInfoMediaType int32
+
+const (
+ ExternalAdReplyInfo_NONE ExternalAdReplyInfo_ExternalAdReplyInfoMediaType = 0
+ ExternalAdReplyInfo_IMAGE ExternalAdReplyInfo_ExternalAdReplyInfoMediaType = 1
+ ExternalAdReplyInfo_VIDEO ExternalAdReplyInfo_ExternalAdReplyInfoMediaType = 2
+)
+
+// Enum value maps for ExternalAdReplyInfo_ExternalAdReplyInfoMediaType.
+var (
+ ExternalAdReplyInfo_ExternalAdReplyInfoMediaType_name = map[int32]string{
+ 0: "NONE",
+ 1: "IMAGE",
+ 2: "VIDEO",
+ }
+ ExternalAdReplyInfo_ExternalAdReplyInfoMediaType_value = map[string]int32{
+ "NONE": 0,
+ "IMAGE": 1,
+ "VIDEO": 2,
+ }
+)
+
+func (x ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) Enum() *ExternalAdReplyInfo_ExternalAdReplyInfoMediaType {
+ p := new(ExternalAdReplyInfo_ExternalAdReplyInfoMediaType)
+ *p = x
+ return p
+}
+
+func (x ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[1].Descriptor()
+}
+
+func (ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[1]
+}
+
+func (x ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = ExternalAdReplyInfo_ExternalAdReplyInfoMediaType(num)
+ return nil
+}
+
+// Deprecated: Use ExternalAdReplyInfo_ExternalAdReplyInfoMediaType.Descriptor instead.
+func (ExternalAdReplyInfo_ExternalAdReplyInfoMediaType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{15, 0}
+}
+
+type InvoiceMessage_InvoiceMessageAttachmentType int32
+
+const (
+ InvoiceMessage_IMAGE InvoiceMessage_InvoiceMessageAttachmentType = 0
+ InvoiceMessage_PDF InvoiceMessage_InvoiceMessageAttachmentType = 1
+)
+
+// Enum value maps for InvoiceMessage_InvoiceMessageAttachmentType.
+var (
+ InvoiceMessage_InvoiceMessageAttachmentType_name = map[int32]string{
+ 0: "IMAGE",
+ 1: "PDF",
+ }
+ InvoiceMessage_InvoiceMessageAttachmentType_value = map[string]int32{
+ "IMAGE": 0,
+ "PDF": 1,
+ }
+)
+
+func (x InvoiceMessage_InvoiceMessageAttachmentType) Enum() *InvoiceMessage_InvoiceMessageAttachmentType {
+ p := new(InvoiceMessage_InvoiceMessageAttachmentType)
+ *p = x
+ return p
+}
+
+func (x InvoiceMessage_InvoiceMessageAttachmentType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (InvoiceMessage_InvoiceMessageAttachmentType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[2].Descriptor()
+}
+
+func (InvoiceMessage_InvoiceMessageAttachmentType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[2]
+}
+
+func (x InvoiceMessage_InvoiceMessageAttachmentType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *InvoiceMessage_InvoiceMessageAttachmentType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = InvoiceMessage_InvoiceMessageAttachmentType(num)
+ return nil
+}
+
+// Deprecated: Use InvoiceMessage_InvoiceMessageAttachmentType.Descriptor instead.
+func (InvoiceMessage_InvoiceMessageAttachmentType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{19, 0}
+}
+
+type ExtendedTextMessage_ExtendedTextMessageFontType int32
+
+const (
+ ExtendedTextMessage_SANS_SERIF ExtendedTextMessage_ExtendedTextMessageFontType = 0
+ ExtendedTextMessage_SERIF ExtendedTextMessage_ExtendedTextMessageFontType = 1
+ ExtendedTextMessage_NORICAN_REGULAR ExtendedTextMessage_ExtendedTextMessageFontType = 2
+ ExtendedTextMessage_BRYNDAN_WRITE ExtendedTextMessage_ExtendedTextMessageFontType = 3
+ ExtendedTextMessage_BEBASNEUE_REGULAR ExtendedTextMessage_ExtendedTextMessageFontType = 4
+ ExtendedTextMessage_OSWALD_HEAVY ExtendedTextMessage_ExtendedTextMessageFontType = 5
+)
+
+// Enum value maps for ExtendedTextMessage_ExtendedTextMessageFontType.
+var (
+ ExtendedTextMessage_ExtendedTextMessageFontType_name = map[int32]string{
+ 0: "SANS_SERIF",
+ 1: "SERIF",
+ 2: "NORICAN_REGULAR",
+ 3: "BRYNDAN_WRITE",
+ 4: "BEBASNEUE_REGULAR",
+ 5: "OSWALD_HEAVY",
+ }
+ ExtendedTextMessage_ExtendedTextMessageFontType_value = map[string]int32{
+ "SANS_SERIF": 0,
+ "SERIF": 1,
+ "NORICAN_REGULAR": 2,
+ "BRYNDAN_WRITE": 3,
+ "BEBASNEUE_REGULAR": 4,
+ "OSWALD_HEAVY": 5,
+ }
+)
+
+func (x ExtendedTextMessage_ExtendedTextMessageFontType) Enum() *ExtendedTextMessage_ExtendedTextMessageFontType {
+ p := new(ExtendedTextMessage_ExtendedTextMessageFontType)
+ *p = x
+ return p
+}
+
+func (x ExtendedTextMessage_ExtendedTextMessageFontType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ExtendedTextMessage_ExtendedTextMessageFontType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[3].Descriptor()
+}
+
+func (ExtendedTextMessage_ExtendedTextMessageFontType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[3]
+}
+
+func (x ExtendedTextMessage_ExtendedTextMessageFontType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *ExtendedTextMessage_ExtendedTextMessageFontType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = ExtendedTextMessage_ExtendedTextMessageFontType(num)
+ return nil
+}
+
+// Deprecated: Use ExtendedTextMessage_ExtendedTextMessageFontType.Descriptor instead.
+func (ExtendedTextMessage_ExtendedTextMessageFontType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{22, 0}
+}
+
+type ExtendedTextMessage_ExtendedTextMessagePreviewType int32
+
+const (
+ ExtendedTextMessage_NONE ExtendedTextMessage_ExtendedTextMessagePreviewType = 0
+ ExtendedTextMessage_VIDEO ExtendedTextMessage_ExtendedTextMessagePreviewType = 1
+)
+
+// Enum value maps for ExtendedTextMessage_ExtendedTextMessagePreviewType.
+var (
+ ExtendedTextMessage_ExtendedTextMessagePreviewType_name = map[int32]string{
+ 0: "NONE",
+ 1: "VIDEO",
+ }
+ ExtendedTextMessage_ExtendedTextMessagePreviewType_value = map[string]int32{
+ "NONE": 0,
+ "VIDEO": 1,
+ }
+)
+
+func (x ExtendedTextMessage_ExtendedTextMessagePreviewType) Enum() *ExtendedTextMessage_ExtendedTextMessagePreviewType {
+ p := new(ExtendedTextMessage_ExtendedTextMessagePreviewType)
+ *p = x
+ return p
+}
+
+func (x ExtendedTextMessage_ExtendedTextMessagePreviewType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ExtendedTextMessage_ExtendedTextMessagePreviewType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[4].Descriptor()
+}
+
+func (ExtendedTextMessage_ExtendedTextMessagePreviewType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[4]
+}
+
+func (x ExtendedTextMessage_ExtendedTextMessagePreviewType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *ExtendedTextMessage_ExtendedTextMessagePreviewType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = ExtendedTextMessage_ExtendedTextMessagePreviewType(num)
+ return nil
+}
+
+// Deprecated: Use ExtendedTextMessage_ExtendedTextMessagePreviewType.Descriptor instead.
+func (ExtendedTextMessage_ExtendedTextMessagePreviewType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{22, 1}
+}
+
+type VideoMessage_VideoMessageAttribution int32
+
+const (
+ VideoMessage_NONE VideoMessage_VideoMessageAttribution = 0
+ VideoMessage_GIPHY VideoMessage_VideoMessageAttribution = 1
+ VideoMessage_TENOR VideoMessage_VideoMessageAttribution = 2
+)
+
+// Enum value maps for VideoMessage_VideoMessageAttribution.
+var (
+ VideoMessage_VideoMessageAttribution_name = map[int32]string{
+ 0: "NONE",
+ 1: "GIPHY",
+ 2: "TENOR",
+ }
+ VideoMessage_VideoMessageAttribution_value = map[string]int32{
+ "NONE": 0,
+ "GIPHY": 1,
+ "TENOR": 2,
+ }
+)
+
+func (x VideoMessage_VideoMessageAttribution) Enum() *VideoMessage_VideoMessageAttribution {
+ p := new(VideoMessage_VideoMessageAttribution)
+ *p = x
+ return p
+}
+
+func (x VideoMessage_VideoMessageAttribution) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (VideoMessage_VideoMessageAttribution) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[5].Descriptor()
+}
+
+func (VideoMessage_VideoMessageAttribution) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[5]
+}
+
+func (x VideoMessage_VideoMessageAttribution) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *VideoMessage_VideoMessageAttribution) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = VideoMessage_VideoMessageAttribution(num)
+ return nil
+}
+
+// Deprecated: Use VideoMessage_VideoMessageAttribution.Descriptor instead.
+func (VideoMessage_VideoMessageAttribution) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{25, 0}
+}
+
+type ProtocolMessage_ProtocolMessageType int32
+
+const (
+ ProtocolMessage_REVOKE ProtocolMessage_ProtocolMessageType = 0
+ ProtocolMessage_EPHEMERAL_SETTING ProtocolMessage_ProtocolMessageType = 3
+ ProtocolMessage_EPHEMERAL_SYNC_RESPONSE ProtocolMessage_ProtocolMessageType = 4
+ ProtocolMessage_HISTORY_SYNC_NOTIFICATION ProtocolMessage_ProtocolMessageType = 5
+ ProtocolMessage_APP_STATE_SYNC_KEY_SHARE ProtocolMessage_ProtocolMessageType = 6
+ ProtocolMessage_APP_STATE_SYNC_KEY_REQUEST ProtocolMessage_ProtocolMessageType = 7
+ ProtocolMessage_MSG_FANOUT_BACKFILL_REQUEST ProtocolMessage_ProtocolMessageType = 8
+ ProtocolMessage_INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC ProtocolMessage_ProtocolMessageType = 9
+ ProtocolMessage_APP_STATE_FATAL_EXCEPTION_NOTIFICATION ProtocolMessage_ProtocolMessageType = 10
+)
+
+// Enum value maps for ProtocolMessage_ProtocolMessageType.
+var (
+ ProtocolMessage_ProtocolMessageType_name = map[int32]string{
+ 0: "REVOKE",
+ 3: "EPHEMERAL_SETTING",
+ 4: "EPHEMERAL_SYNC_RESPONSE",
+ 5: "HISTORY_SYNC_NOTIFICATION",
+ 6: "APP_STATE_SYNC_KEY_SHARE",
+ 7: "APP_STATE_SYNC_KEY_REQUEST",
+ 8: "MSG_FANOUT_BACKFILL_REQUEST",
+ 9: "INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC",
+ 10: "APP_STATE_FATAL_EXCEPTION_NOTIFICATION",
+ }
+ ProtocolMessage_ProtocolMessageType_value = map[string]int32{
+ "REVOKE": 0,
+ "EPHEMERAL_SETTING": 3,
+ "EPHEMERAL_SYNC_RESPONSE": 4,
+ "HISTORY_SYNC_NOTIFICATION": 5,
+ "APP_STATE_SYNC_KEY_SHARE": 6,
+ "APP_STATE_SYNC_KEY_REQUEST": 7,
+ "MSG_FANOUT_BACKFILL_REQUEST": 8,
+ "INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC": 9,
+ "APP_STATE_FATAL_EXCEPTION_NOTIFICATION": 10,
+ }
+)
+
+func (x ProtocolMessage_ProtocolMessageType) Enum() *ProtocolMessage_ProtocolMessageType {
+ p := new(ProtocolMessage_ProtocolMessageType)
+ *p = x
+ return p
+}
+
+func (x ProtocolMessage_ProtocolMessageType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ProtocolMessage_ProtocolMessageType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[6].Descriptor()
+}
+
+func (ProtocolMessage_ProtocolMessageType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[6]
+}
+
+func (x ProtocolMessage_ProtocolMessageType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *ProtocolMessage_ProtocolMessageType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = ProtocolMessage_ProtocolMessageType(num)
+ return nil
+}
+
+// Deprecated: Use ProtocolMessage_ProtocolMessageType.Descriptor instead.
+func (ProtocolMessage_ProtocolMessageType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{28, 0}
+}
+
+type HistorySyncNotification_HistorySyncNotificationHistorySyncType int32
+
+const (
+ HistorySyncNotification_INITIAL_BOOTSTRAP HistorySyncNotification_HistorySyncNotificationHistorySyncType = 0
+ HistorySyncNotification_INITIAL_STATUS_V3 HistorySyncNotification_HistorySyncNotificationHistorySyncType = 1
+ HistorySyncNotification_FULL HistorySyncNotification_HistorySyncNotificationHistorySyncType = 2
+ HistorySyncNotification_RECENT HistorySyncNotification_HistorySyncNotificationHistorySyncType = 3
+ HistorySyncNotification_PUSH_NAME HistorySyncNotification_HistorySyncNotificationHistorySyncType = 4
+)
+
+// Enum value maps for HistorySyncNotification_HistorySyncNotificationHistorySyncType.
+var (
+ HistorySyncNotification_HistorySyncNotificationHistorySyncType_name = map[int32]string{
+ 0: "INITIAL_BOOTSTRAP",
+ 1: "INITIAL_STATUS_V3",
+ 2: "FULL",
+ 3: "RECENT",
+ 4: "PUSH_NAME",
+ }
+ HistorySyncNotification_HistorySyncNotificationHistorySyncType_value = map[string]int32{
+ "INITIAL_BOOTSTRAP": 0,
+ "INITIAL_STATUS_V3": 1,
+ "FULL": 2,
+ "RECENT": 3,
+ "PUSH_NAME": 4,
+ }
+)
+
+func (x HistorySyncNotification_HistorySyncNotificationHistorySyncType) Enum() *HistorySyncNotification_HistorySyncNotificationHistorySyncType {
+ p := new(HistorySyncNotification_HistorySyncNotificationHistorySyncType)
+ *p = x
+ return p
+}
+
+func (x HistorySyncNotification_HistorySyncNotificationHistorySyncType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (HistorySyncNotification_HistorySyncNotificationHistorySyncType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[7].Descriptor()
+}
+
+func (HistorySyncNotification_HistorySyncNotificationHistorySyncType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[7]
+}
+
+func (x HistorySyncNotification_HistorySyncNotificationHistorySyncType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *HistorySyncNotification_HistorySyncNotificationHistorySyncType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = HistorySyncNotification_HistorySyncNotificationHistorySyncType(num)
+ return nil
+}
+
+// Deprecated: Use HistorySyncNotification_HistorySyncNotificationHistorySyncType.Descriptor instead.
+func (HistorySyncNotification_HistorySyncNotificationHistorySyncType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{29, 0}
+}
+
+type HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType int32
+
+const (
+ HSMDateTimeComponent_MONDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 1
+ HSMDateTimeComponent_TUESDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 2
+ HSMDateTimeComponent_WEDNESDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 3
+ HSMDateTimeComponent_THURSDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 4
+ HSMDateTimeComponent_FRIDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 5
+ HSMDateTimeComponent_SATURDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 6
+ HSMDateTimeComponent_SUNDAY HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType = 7
+)
+
+// Enum value maps for HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType.
+var (
+ HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType_name = map[int32]string{
+ 1: "MONDAY",
+ 2: "TUESDAY",
+ 3: "WEDNESDAY",
+ 4: "THURSDAY",
+ 5: "FRIDAY",
+ 6: "SATURDAY",
+ 7: "SUNDAY",
+ }
+ HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType_value = map[string]int32{
+ "MONDAY": 1,
+ "TUESDAY": 2,
+ "WEDNESDAY": 3,
+ "THURSDAY": 4,
+ "FRIDAY": 5,
+ "SATURDAY": 6,
+ "SUNDAY": 7,
+ }
+)
+
+func (x HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) Enum() *HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType {
+ p := new(HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType)
+ *p = x
+ return p
+}
+
+func (x HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[8].Descriptor()
+}
+
+func (HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[8]
+}
+
+func (x HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType(num)
+ return nil
+}
+
+// Deprecated: Use HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType.Descriptor instead.
+func (HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{40, 0}
+}
+
+type HSMDateTimeComponent_HSMDateTimeComponentCalendarType int32
+
+const (
+ HSMDateTimeComponent_GREGORIAN HSMDateTimeComponent_HSMDateTimeComponentCalendarType = 1
+ HSMDateTimeComponent_SOLAR_HIJRI HSMDateTimeComponent_HSMDateTimeComponentCalendarType = 2
+)
+
+// Enum value maps for HSMDateTimeComponent_HSMDateTimeComponentCalendarType.
+var (
+ HSMDateTimeComponent_HSMDateTimeComponentCalendarType_name = map[int32]string{
+ 1: "GREGORIAN",
+ 2: "SOLAR_HIJRI",
+ }
+ HSMDateTimeComponent_HSMDateTimeComponentCalendarType_value = map[string]int32{
+ "GREGORIAN": 1,
+ "SOLAR_HIJRI": 2,
+ }
+)
+
+func (x HSMDateTimeComponent_HSMDateTimeComponentCalendarType) Enum() *HSMDateTimeComponent_HSMDateTimeComponentCalendarType {
+ p := new(HSMDateTimeComponent_HSMDateTimeComponentCalendarType)
+ *p = x
+ return p
+}
+
+func (x HSMDateTimeComponent_HSMDateTimeComponentCalendarType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (HSMDateTimeComponent_HSMDateTimeComponentCalendarType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[9].Descriptor()
+}
+
+func (HSMDateTimeComponent_HSMDateTimeComponentCalendarType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[9]
+}
+
+func (x HSMDateTimeComponent_HSMDateTimeComponentCalendarType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *HSMDateTimeComponent_HSMDateTimeComponentCalendarType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = HSMDateTimeComponent_HSMDateTimeComponentCalendarType(num)
+ return nil
+}
+
+// Deprecated: Use HSMDateTimeComponent_HSMDateTimeComponentCalendarType.Descriptor instead.
+func (HSMDateTimeComponent_HSMDateTimeComponentCalendarType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{40, 1}
+}
+
+type OrderMessage_OrderMessageOrderStatus int32
+
+const (
+ OrderMessage_INQUIRY OrderMessage_OrderMessageOrderStatus = 1
+)
+
+// Enum value maps for OrderMessage_OrderMessageOrderStatus.
+var (
+ OrderMessage_OrderMessageOrderStatus_name = map[int32]string{
+ 1: "INQUIRY",
+ }
+ OrderMessage_OrderMessageOrderStatus_value = map[string]int32{
+ "INQUIRY": 1,
+ }
+)
+
+func (x OrderMessage_OrderMessageOrderStatus) Enum() *OrderMessage_OrderMessageOrderStatus {
+ p := new(OrderMessage_OrderMessageOrderStatus)
+ *p = x
+ return p
+}
+
+func (x OrderMessage_OrderMessageOrderStatus) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (OrderMessage_OrderMessageOrderStatus) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[10].Descriptor()
+}
+
+func (OrderMessage_OrderMessageOrderStatus) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[10]
+}
+
+func (x OrderMessage_OrderMessageOrderStatus) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *OrderMessage_OrderMessageOrderStatus) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = OrderMessage_OrderMessageOrderStatus(num)
+ return nil
+}
+
+// Deprecated: Use OrderMessage_OrderMessageOrderStatus.Descriptor instead.
+func (OrderMessage_OrderMessageOrderStatus) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{58, 0}
+}
+
+type OrderMessage_OrderMessageOrderSurface int32
+
+const (
+ OrderMessage_CATALOG OrderMessage_OrderMessageOrderSurface = 1
+)
+
+// Enum value maps for OrderMessage_OrderMessageOrderSurface.
+var (
+ OrderMessage_OrderMessageOrderSurface_name = map[int32]string{
+ 1: "CATALOG",
+ }
+ OrderMessage_OrderMessageOrderSurface_value = map[string]int32{
+ "CATALOG": 1,
+ }
+)
+
+func (x OrderMessage_OrderMessageOrderSurface) Enum() *OrderMessage_OrderMessageOrderSurface {
+ p := new(OrderMessage_OrderMessageOrderSurface)
+ *p = x
+ return p
+}
+
+func (x OrderMessage_OrderMessageOrderSurface) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (OrderMessage_OrderMessageOrderSurface) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[11].Descriptor()
+}
+
+func (OrderMessage_OrderMessageOrderSurface) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[11]
+}
+
+func (x OrderMessage_OrderMessageOrderSurface) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *OrderMessage_OrderMessageOrderSurface) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = OrderMessage_OrderMessageOrderSurface(num)
+ return nil
+}
+
+// Deprecated: Use OrderMessage_OrderMessageOrderSurface.Descriptor instead.
+func (OrderMessage_OrderMessageOrderSurface) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{58, 1}
+}
+
+type ListMessage_ListMessageListType int32
+
+const (
+ ListMessage_UNKNOWN ListMessage_ListMessageListType = 0
+ ListMessage_SINGLE_SELECT ListMessage_ListMessageListType = 1
+)
+
+// Enum value maps for ListMessage_ListMessageListType.
+var (
+ ListMessage_ListMessageListType_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "SINGLE_SELECT",
+ }
+ ListMessage_ListMessageListType_value = map[string]int32{
+ "UNKNOWN": 0,
+ "SINGLE_SELECT": 1,
+ }
+)
+
+func (x ListMessage_ListMessageListType) Enum() *ListMessage_ListMessageListType {
+ p := new(ListMessage_ListMessageListType)
+ *p = x
+ return p
+}
+
+func (x ListMessage_ListMessageListType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ListMessage_ListMessageListType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[12].Descriptor()
+}
+
+func (ListMessage_ListMessageListType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[12]
+}
+
+func (x ListMessage_ListMessageListType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *ListMessage_ListMessageListType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = ListMessage_ListMessageListType(num)
+ return nil
+}
+
+// Deprecated: Use ListMessage_ListMessageListType.Descriptor instead.
+func (ListMessage_ListMessageListType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{61, 0}
+}
+
+type ListResponseMessage_ListResponseMessageListType int32
+
+const (
+ ListResponseMessage_UNKNOWN ListResponseMessage_ListResponseMessageListType = 0
+ ListResponseMessage_SINGLE_SELECT ListResponseMessage_ListResponseMessageListType = 1
+)
+
+// Enum value maps for ListResponseMessage_ListResponseMessageListType.
+var (
+ ListResponseMessage_ListResponseMessageListType_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "SINGLE_SELECT",
+ }
+ ListResponseMessage_ListResponseMessageListType_value = map[string]int32{
+ "UNKNOWN": 0,
+ "SINGLE_SELECT": 1,
+ }
+)
+
+func (x ListResponseMessage_ListResponseMessageListType) Enum() *ListResponseMessage_ListResponseMessageListType {
+ p := new(ListResponseMessage_ListResponseMessageListType)
+ *p = x
+ return p
+}
+
+func (x ListResponseMessage_ListResponseMessageListType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ListResponseMessage_ListResponseMessageListType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[13].Descriptor()
+}
+
+func (ListResponseMessage_ListResponseMessageListType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[13]
+}
+
+func (x ListResponseMessage_ListResponseMessageListType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *ListResponseMessage_ListResponseMessageListType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = ListResponseMessage_ListResponseMessageListType(num)
+ return nil
+}
+
+// Deprecated: Use ListResponseMessage_ListResponseMessageListType.Descriptor instead.
+func (ListResponseMessage_ListResponseMessageListType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{63, 0}
+}
+
+type Button_ButtonType int32
+
+const (
+ Button_UNKNOWN Button_ButtonType = 0
+ Button_RESPONSE Button_ButtonType = 1
+)
+
+// Enum value maps for Button_ButtonType.
+var (
+ Button_ButtonType_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "RESPONSE",
+ }
+ Button_ButtonType_value = map[string]int32{
+ "UNKNOWN": 0,
+ "RESPONSE": 1,
+ }
+)
+
+func (x Button_ButtonType) Enum() *Button_ButtonType {
+ p := new(Button_ButtonType)
+ *p = x
+ return p
+}
+
+func (x Button_ButtonType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (Button_ButtonType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[14].Descriptor()
+}
+
+func (Button_ButtonType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[14]
+}
+
+func (x Button_ButtonType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *Button_ButtonType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = Button_ButtonType(num)
+ return nil
+}
+
+// Deprecated: Use Button_ButtonType.Descriptor instead.
+func (Button_ButtonType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{69, 0}
+}
+
+type ButtonsMessage_ButtonsMessageHeaderType int32
+
+const (
+ ButtonsMessage_UNKNOWN ButtonsMessage_ButtonsMessageHeaderType = 0
+ ButtonsMessage_EMPTY ButtonsMessage_ButtonsMessageHeaderType = 1
+ ButtonsMessage_TEXT ButtonsMessage_ButtonsMessageHeaderType = 2
+ ButtonsMessage_DOCUMENT ButtonsMessage_ButtonsMessageHeaderType = 3
+ ButtonsMessage_IMAGE ButtonsMessage_ButtonsMessageHeaderType = 4
+ ButtonsMessage_VIDEO ButtonsMessage_ButtonsMessageHeaderType = 5
+ ButtonsMessage_LOCATION ButtonsMessage_ButtonsMessageHeaderType = 6
+)
+
+// Enum value maps for ButtonsMessage_ButtonsMessageHeaderType.
+var (
+ ButtonsMessage_ButtonsMessageHeaderType_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "EMPTY",
+ 2: "TEXT",
+ 3: "DOCUMENT",
+ 4: "IMAGE",
+ 5: "VIDEO",
+ 6: "LOCATION",
+ }
+ ButtonsMessage_ButtonsMessageHeaderType_value = map[string]int32{
+ "UNKNOWN": 0,
+ "EMPTY": 1,
+ "TEXT": 2,
+ "DOCUMENT": 3,
+ "IMAGE": 4,
+ "VIDEO": 5,
+ "LOCATION": 6,
+ }
+)
+
+func (x ButtonsMessage_ButtonsMessageHeaderType) Enum() *ButtonsMessage_ButtonsMessageHeaderType {
+ p := new(ButtonsMessage_ButtonsMessageHeaderType)
+ *p = x
+ return p
+}
+
+func (x ButtonsMessage_ButtonsMessageHeaderType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ButtonsMessage_ButtonsMessageHeaderType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[15].Descriptor()
+}
+
+func (ButtonsMessage_ButtonsMessageHeaderType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[15]
+}
+
+func (x ButtonsMessage_ButtonsMessageHeaderType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *ButtonsMessage_ButtonsMessageHeaderType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = ButtonsMessage_ButtonsMessageHeaderType(num)
+ return nil
+}
+
+// Deprecated: Use ButtonsMessage_ButtonsMessageHeaderType.Descriptor instead.
+func (ButtonsMessage_ButtonsMessageHeaderType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{70, 0}
+}
+
+type ButtonsResponseMessage_ButtonsResponseMessageType int32
+
+const (
+ ButtonsResponseMessage_UNKNOWN ButtonsResponseMessage_ButtonsResponseMessageType = 0
+ ButtonsResponseMessage_DISPLAY_TEXT ButtonsResponseMessage_ButtonsResponseMessageType = 1
+)
+
+// Enum value maps for ButtonsResponseMessage_ButtonsResponseMessageType.
+var (
+ ButtonsResponseMessage_ButtonsResponseMessageType_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "DISPLAY_TEXT",
+ }
+ ButtonsResponseMessage_ButtonsResponseMessageType_value = map[string]int32{
+ "UNKNOWN": 0,
+ "DISPLAY_TEXT": 1,
+ }
+)
+
+func (x ButtonsResponseMessage_ButtonsResponseMessageType) Enum() *ButtonsResponseMessage_ButtonsResponseMessageType {
+ p := new(ButtonsResponseMessage_ButtonsResponseMessageType)
+ *p = x
+ return p
+}
+
+func (x ButtonsResponseMessage_ButtonsResponseMessageType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (ButtonsResponseMessage_ButtonsResponseMessageType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[16].Descriptor()
+}
+
+func (ButtonsResponseMessage_ButtonsResponseMessageType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[16]
+}
+
+func (x ButtonsResponseMessage_ButtonsResponseMessageType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *ButtonsResponseMessage_ButtonsResponseMessageType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = ButtonsResponseMessage_ButtonsResponseMessageType(num)
+ return nil
+}
+
+// Deprecated: Use ButtonsResponseMessage_ButtonsResponseMessageType.Descriptor instead.
+func (ButtonsResponseMessage_ButtonsResponseMessageType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{71, 0}
+}
+
+type WebFeatures_WebFeaturesFlag int32
+
+const (
+ WebFeatures_NOT_STARTED WebFeatures_WebFeaturesFlag = 0
+ WebFeatures_FORCE_UPGRADE WebFeatures_WebFeaturesFlag = 1
+ WebFeatures_DEVELOPMENT WebFeatures_WebFeaturesFlag = 2
+ WebFeatures_PRODUCTION WebFeatures_WebFeaturesFlag = 3
+)
+
+// Enum value maps for WebFeatures_WebFeaturesFlag.
+var (
+ WebFeatures_WebFeaturesFlag_name = map[int32]string{
+ 0: "NOT_STARTED",
+ 1: "FORCE_UPGRADE",
+ 2: "DEVELOPMENT",
+ 3: "PRODUCTION",
+ }
+ WebFeatures_WebFeaturesFlag_value = map[string]int32{
+ "NOT_STARTED": 0,
+ "FORCE_UPGRADE": 1,
+ "DEVELOPMENT": 2,
+ "PRODUCTION": 3,
+ }
+)
+
+func (x WebFeatures_WebFeaturesFlag) Enum() *WebFeatures_WebFeaturesFlag {
+ p := new(WebFeatures_WebFeaturesFlag)
+ *p = x
+ return p
+}
+
+func (x WebFeatures_WebFeaturesFlag) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (WebFeatures_WebFeaturesFlag) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[17].Descriptor()
+}
+
+func (WebFeatures_WebFeaturesFlag) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[17]
+}
+
+func (x WebFeatures_WebFeaturesFlag) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *WebFeatures_WebFeaturesFlag) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = WebFeatures_WebFeaturesFlag(num)
+ return nil
+}
+
+// Deprecated: Use WebFeatures_WebFeaturesFlag.Descriptor instead.
+func (WebFeatures_WebFeaturesFlag) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{74, 0}
+}
+
+type PaymentInfo_PaymentInfoCurrency int32
+
+const (
+ PaymentInfo_UNKNOWN_CURRENCY PaymentInfo_PaymentInfoCurrency = 0
+ PaymentInfo_INR PaymentInfo_PaymentInfoCurrency = 1
+)
+
+// Enum value maps for PaymentInfo_PaymentInfoCurrency.
+var (
+ PaymentInfo_PaymentInfoCurrency_name = map[int32]string{
+ 0: "UNKNOWN_CURRENCY",
+ 1: "INR",
+ }
+ PaymentInfo_PaymentInfoCurrency_value = map[string]int32{
+ "UNKNOWN_CURRENCY": 0,
+ "INR": 1,
+ }
+)
+
+func (x PaymentInfo_PaymentInfoCurrency) Enum() *PaymentInfo_PaymentInfoCurrency {
+ p := new(PaymentInfo_PaymentInfoCurrency)
+ *p = x
+ return p
+}
+
+func (x PaymentInfo_PaymentInfoCurrency) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (PaymentInfo_PaymentInfoCurrency) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[18].Descriptor()
+}
+
+func (PaymentInfo_PaymentInfoCurrency) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[18]
+}
+
+func (x PaymentInfo_PaymentInfoCurrency) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *PaymentInfo_PaymentInfoCurrency) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = PaymentInfo_PaymentInfoCurrency(num)
+ return nil
+}
+
+// Deprecated: Use PaymentInfo_PaymentInfoCurrency.Descriptor instead.
+func (PaymentInfo_PaymentInfoCurrency) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{77, 0}
+}
+
+type PaymentInfo_PaymentInfoStatus int32
+
+const (
+ PaymentInfo_UNKNOWN_STATUS PaymentInfo_PaymentInfoStatus = 0
+ PaymentInfo_PROCESSING PaymentInfo_PaymentInfoStatus = 1
+ PaymentInfo_SENT PaymentInfo_PaymentInfoStatus = 2
+ PaymentInfo_NEED_TO_ACCEPT PaymentInfo_PaymentInfoStatus = 3
+ PaymentInfo_COMPLETE PaymentInfo_PaymentInfoStatus = 4
+ PaymentInfo_COULD_NOT_COMPLETE PaymentInfo_PaymentInfoStatus = 5
+ PaymentInfo_REFUNDED PaymentInfo_PaymentInfoStatus = 6
+ PaymentInfo_EXPIRED PaymentInfo_PaymentInfoStatus = 7
+ PaymentInfo_REJECTED PaymentInfo_PaymentInfoStatus = 8
+ PaymentInfo_CANCELLED PaymentInfo_PaymentInfoStatus = 9
+ PaymentInfo_WAITING_FOR_PAYER PaymentInfo_PaymentInfoStatus = 10
+ PaymentInfo_WAITING PaymentInfo_PaymentInfoStatus = 11
+)
+
+// Enum value maps for PaymentInfo_PaymentInfoStatus.
+var (
+ PaymentInfo_PaymentInfoStatus_name = map[int32]string{
+ 0: "UNKNOWN_STATUS",
+ 1: "PROCESSING",
+ 2: "SENT",
+ 3: "NEED_TO_ACCEPT",
+ 4: "COMPLETE",
+ 5: "COULD_NOT_COMPLETE",
+ 6: "REFUNDED",
+ 7: "EXPIRED",
+ 8: "REJECTED",
+ 9: "CANCELLED",
+ 10: "WAITING_FOR_PAYER",
+ 11: "WAITING",
+ }
+ PaymentInfo_PaymentInfoStatus_value = map[string]int32{
+ "UNKNOWN_STATUS": 0,
+ "PROCESSING": 1,
+ "SENT": 2,
+ "NEED_TO_ACCEPT": 3,
+ "COMPLETE": 4,
+ "COULD_NOT_COMPLETE": 5,
+ "REFUNDED": 6,
+ "EXPIRED": 7,
+ "REJECTED": 8,
+ "CANCELLED": 9,
+ "WAITING_FOR_PAYER": 10,
+ "WAITING": 11,
+ }
+)
+
+func (x PaymentInfo_PaymentInfoStatus) Enum() *PaymentInfo_PaymentInfoStatus {
+ p := new(PaymentInfo_PaymentInfoStatus)
+ *p = x
+ return p
+}
+
+func (x PaymentInfo_PaymentInfoStatus) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (PaymentInfo_PaymentInfoStatus) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[19].Descriptor()
+}
+
+func (PaymentInfo_PaymentInfoStatus) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[19]
+}
+
+func (x PaymentInfo_PaymentInfoStatus) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *PaymentInfo_PaymentInfoStatus) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = PaymentInfo_PaymentInfoStatus(num)
+ return nil
+}
+
+// Deprecated: Use PaymentInfo_PaymentInfoStatus.Descriptor instead.
+func (PaymentInfo_PaymentInfoStatus) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{77, 1}
+}
+
+type PaymentInfo_PaymentInfoTxnStatus int32
+
+const (
+ PaymentInfo_UNKNOWN PaymentInfo_PaymentInfoTxnStatus = 0
+ PaymentInfo_PENDING_SETUP PaymentInfo_PaymentInfoTxnStatus = 1
+ PaymentInfo_PENDING_RECEIVER_SETUP PaymentInfo_PaymentInfoTxnStatus = 2
+ PaymentInfo_INIT PaymentInfo_PaymentInfoTxnStatus = 3
+ PaymentInfo_SUCCESS PaymentInfo_PaymentInfoTxnStatus = 4
+ PaymentInfo_COMPLETED PaymentInfo_PaymentInfoTxnStatus = 5
+ PaymentInfo_FAILED PaymentInfo_PaymentInfoTxnStatus = 6
+ PaymentInfo_FAILED_RISK PaymentInfo_PaymentInfoTxnStatus = 7
+ PaymentInfo_FAILED_PROCESSING PaymentInfo_PaymentInfoTxnStatus = 8
+ PaymentInfo_FAILED_RECEIVER_PROCESSING PaymentInfo_PaymentInfoTxnStatus = 9
+ PaymentInfo_FAILED_DA PaymentInfo_PaymentInfoTxnStatus = 10
+ PaymentInfo_FAILED_DA_FINAL PaymentInfo_PaymentInfoTxnStatus = 11
+ PaymentInfo_REFUNDED_TXN PaymentInfo_PaymentInfoTxnStatus = 12
+ PaymentInfo_REFUND_FAILED PaymentInfo_PaymentInfoTxnStatus = 13
+ PaymentInfo_REFUND_FAILED_PROCESSING PaymentInfo_PaymentInfoTxnStatus = 14
+ PaymentInfo_REFUND_FAILED_DA PaymentInfo_PaymentInfoTxnStatus = 15
+ PaymentInfo_EXPIRED_TXN PaymentInfo_PaymentInfoTxnStatus = 16
+ PaymentInfo_AUTH_CANCELED PaymentInfo_PaymentInfoTxnStatus = 17
+ PaymentInfo_AUTH_CANCEL_FAILED_PROCESSING PaymentInfo_PaymentInfoTxnStatus = 18
+ PaymentInfo_AUTH_CANCEL_FAILED PaymentInfo_PaymentInfoTxnStatus = 19
+ PaymentInfo_COLLECT_INIT PaymentInfo_PaymentInfoTxnStatus = 20
+ PaymentInfo_COLLECT_SUCCESS PaymentInfo_PaymentInfoTxnStatus = 21
+ PaymentInfo_COLLECT_FAILED PaymentInfo_PaymentInfoTxnStatus = 22
+ PaymentInfo_COLLECT_FAILED_RISK PaymentInfo_PaymentInfoTxnStatus = 23
+ PaymentInfo_COLLECT_REJECTED PaymentInfo_PaymentInfoTxnStatus = 24
+ PaymentInfo_COLLECT_EXPIRED PaymentInfo_PaymentInfoTxnStatus = 25
+ PaymentInfo_COLLECT_CANCELED PaymentInfo_PaymentInfoTxnStatus = 26
+ PaymentInfo_COLLECT_CANCELLING PaymentInfo_PaymentInfoTxnStatus = 27
+)
+
+// Enum value maps for PaymentInfo_PaymentInfoTxnStatus.
+var (
+ PaymentInfo_PaymentInfoTxnStatus_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "PENDING_SETUP",
+ 2: "PENDING_RECEIVER_SETUP",
+ 3: "INIT",
+ 4: "SUCCESS",
+ 5: "COMPLETED",
+ 6: "FAILED",
+ 7: "FAILED_RISK",
+ 8: "FAILED_PROCESSING",
+ 9: "FAILED_RECEIVER_PROCESSING",
+ 10: "FAILED_DA",
+ 11: "FAILED_DA_FINAL",
+ 12: "REFUNDED_TXN",
+ 13: "REFUND_FAILED",
+ 14: "REFUND_FAILED_PROCESSING",
+ 15: "REFUND_FAILED_DA",
+ 16: "EXPIRED_TXN",
+ 17: "AUTH_CANCELED",
+ 18: "AUTH_CANCEL_FAILED_PROCESSING",
+ 19: "AUTH_CANCEL_FAILED",
+ 20: "COLLECT_INIT",
+ 21: "COLLECT_SUCCESS",
+ 22: "COLLECT_FAILED",
+ 23: "COLLECT_FAILED_RISK",
+ 24: "COLLECT_REJECTED",
+ 25: "COLLECT_EXPIRED",
+ 26: "COLLECT_CANCELED",
+ 27: "COLLECT_CANCELLING",
+ }
+ PaymentInfo_PaymentInfoTxnStatus_value = map[string]int32{
+ "UNKNOWN": 0,
+ "PENDING_SETUP": 1,
+ "PENDING_RECEIVER_SETUP": 2,
+ "INIT": 3,
+ "SUCCESS": 4,
+ "COMPLETED": 5,
+ "FAILED": 6,
+ "FAILED_RISK": 7,
+ "FAILED_PROCESSING": 8,
+ "FAILED_RECEIVER_PROCESSING": 9,
+ "FAILED_DA": 10,
+ "FAILED_DA_FINAL": 11,
+ "REFUNDED_TXN": 12,
+ "REFUND_FAILED": 13,
+ "REFUND_FAILED_PROCESSING": 14,
+ "REFUND_FAILED_DA": 15,
+ "EXPIRED_TXN": 16,
+ "AUTH_CANCELED": 17,
+ "AUTH_CANCEL_FAILED_PROCESSING": 18,
+ "AUTH_CANCEL_FAILED": 19,
+ "COLLECT_INIT": 20,
+ "COLLECT_SUCCESS": 21,
+ "COLLECT_FAILED": 22,
+ "COLLECT_FAILED_RISK": 23,
+ "COLLECT_REJECTED": 24,
+ "COLLECT_EXPIRED": 25,
+ "COLLECT_CANCELED": 26,
+ "COLLECT_CANCELLING": 27,
+ }
+)
+
+func (x PaymentInfo_PaymentInfoTxnStatus) Enum() *PaymentInfo_PaymentInfoTxnStatus {
+ p := new(PaymentInfo_PaymentInfoTxnStatus)
+ *p = x
+ return p
+}
+
+func (x PaymentInfo_PaymentInfoTxnStatus) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (PaymentInfo_PaymentInfoTxnStatus) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[20].Descriptor()
+}
+
+func (PaymentInfo_PaymentInfoTxnStatus) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[20]
+}
+
+func (x PaymentInfo_PaymentInfoTxnStatus) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *PaymentInfo_PaymentInfoTxnStatus) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = PaymentInfo_PaymentInfoTxnStatus(num)
+ return nil
+}
+
+// Deprecated: Use PaymentInfo_PaymentInfoTxnStatus.Descriptor instead.
+func (PaymentInfo_PaymentInfoTxnStatus) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{77, 2}
+}
+
+type WebMessageInfo_WebMessageInfoStatus int32
+
+const (
+ WebMessageInfo_ERROR WebMessageInfo_WebMessageInfoStatus = 0
+ WebMessageInfo_PENDING WebMessageInfo_WebMessageInfoStatus = 1
+ WebMessageInfo_SERVER_ACK WebMessageInfo_WebMessageInfoStatus = 2
+ WebMessageInfo_DELIVERY_ACK WebMessageInfo_WebMessageInfoStatus = 3
+ WebMessageInfo_READ WebMessageInfo_WebMessageInfoStatus = 4
+ WebMessageInfo_PLAYED WebMessageInfo_WebMessageInfoStatus = 5
+)
+
+// Enum value maps for WebMessageInfo_WebMessageInfoStatus.
+var (
+ WebMessageInfo_WebMessageInfoStatus_name = map[int32]string{
+ 0: "ERROR",
+ 1: "PENDING",
+ 2: "SERVER_ACK",
+ 3: "DELIVERY_ACK",
+ 4: "READ",
+ 5: "PLAYED",
+ }
+ WebMessageInfo_WebMessageInfoStatus_value = map[string]int32{
+ "ERROR": 0,
+ "PENDING": 1,
+ "SERVER_ACK": 2,
+ "DELIVERY_ACK": 3,
+ "READ": 4,
+ "PLAYED": 5,
+ }
+)
+
+func (x WebMessageInfo_WebMessageInfoStatus) Enum() *WebMessageInfo_WebMessageInfoStatus {
+ p := new(WebMessageInfo_WebMessageInfoStatus)
+ *p = x
+ return p
+}
+
+func (x WebMessageInfo_WebMessageInfoStatus) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (WebMessageInfo_WebMessageInfoStatus) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[21].Descriptor()
+}
+
+func (WebMessageInfo_WebMessageInfoStatus) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[21]
+}
+
+func (x WebMessageInfo_WebMessageInfoStatus) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *WebMessageInfo_WebMessageInfoStatus) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = WebMessageInfo_WebMessageInfoStatus(num)
+ return nil
+}
+
+// Deprecated: Use WebMessageInfo_WebMessageInfoStatus.Descriptor instead.
+func (WebMessageInfo_WebMessageInfoStatus) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{78, 0}
+}
+
+type WebMessageInfo_WebMessageInfoStubType int32
+
+const (
+ WebMessageInfo_UNKNOWN WebMessageInfo_WebMessageInfoStubType = 0
+ WebMessageInfo_REVOKE WebMessageInfo_WebMessageInfoStubType = 1
+ WebMessageInfo_CIPHERTEXT WebMessageInfo_WebMessageInfoStubType = 2
+ WebMessageInfo_FUTUREPROOF WebMessageInfo_WebMessageInfoStubType = 3
+ WebMessageInfo_NON_VERIFIED_TRANSITION WebMessageInfo_WebMessageInfoStubType = 4
+ WebMessageInfo_UNVERIFIED_TRANSITION WebMessageInfo_WebMessageInfoStubType = 5
+ WebMessageInfo_VERIFIED_TRANSITION WebMessageInfo_WebMessageInfoStubType = 6
+ WebMessageInfo_VERIFIED_LOW_UNKNOWN WebMessageInfo_WebMessageInfoStubType = 7
+ WebMessageInfo_VERIFIED_HIGH WebMessageInfo_WebMessageInfoStubType = 8
+ WebMessageInfo_VERIFIED_INITIAL_UNKNOWN WebMessageInfo_WebMessageInfoStubType = 9
+ WebMessageInfo_VERIFIED_INITIAL_LOW WebMessageInfo_WebMessageInfoStubType = 10
+ WebMessageInfo_VERIFIED_INITIAL_HIGH WebMessageInfo_WebMessageInfoStubType = 11
+ WebMessageInfo_VERIFIED_TRANSITION_ANY_TO_NONE WebMessageInfo_WebMessageInfoStubType = 12
+ WebMessageInfo_VERIFIED_TRANSITION_ANY_TO_HIGH WebMessageInfo_WebMessageInfoStubType = 13
+ WebMessageInfo_VERIFIED_TRANSITION_HIGH_TO_LOW WebMessageInfo_WebMessageInfoStubType = 14
+ WebMessageInfo_VERIFIED_TRANSITION_HIGH_TO_UNKNOWN WebMessageInfo_WebMessageInfoStubType = 15
+ WebMessageInfo_VERIFIED_TRANSITION_UNKNOWN_TO_LOW WebMessageInfo_WebMessageInfoStubType = 16
+ WebMessageInfo_VERIFIED_TRANSITION_LOW_TO_UNKNOWN WebMessageInfo_WebMessageInfoStubType = 17
+ WebMessageInfo_VERIFIED_TRANSITION_NONE_TO_LOW WebMessageInfo_WebMessageInfoStubType = 18
+ WebMessageInfo_VERIFIED_TRANSITION_NONE_TO_UNKNOWN WebMessageInfo_WebMessageInfoStubType = 19
+ WebMessageInfo_GROUP_CREATE WebMessageInfo_WebMessageInfoStubType = 20
+ WebMessageInfo_GROUP_CHANGE_SUBJECT WebMessageInfo_WebMessageInfoStubType = 21
+ WebMessageInfo_GROUP_CHANGE_ICON WebMessageInfo_WebMessageInfoStubType = 22
+ WebMessageInfo_GROUP_CHANGE_INVITE_LINK WebMessageInfo_WebMessageInfoStubType = 23
+ WebMessageInfo_GROUP_CHANGE_DESCRIPTION WebMessageInfo_WebMessageInfoStubType = 24
+ WebMessageInfo_GROUP_CHANGE_RESTRICT WebMessageInfo_WebMessageInfoStubType = 25
+ WebMessageInfo_GROUP_CHANGE_ANNOUNCE WebMessageInfo_WebMessageInfoStubType = 26
+ WebMessageInfo_GROUP_PARTICIPANT_ADD WebMessageInfo_WebMessageInfoStubType = 27
+ WebMessageInfo_GROUP_PARTICIPANT_REMOVE WebMessageInfo_WebMessageInfoStubType = 28
+ WebMessageInfo_GROUP_PARTICIPANT_PROMOTE WebMessageInfo_WebMessageInfoStubType = 29
+ WebMessageInfo_GROUP_PARTICIPANT_DEMOTE WebMessageInfo_WebMessageInfoStubType = 30
+ WebMessageInfo_GROUP_PARTICIPANT_INVITE WebMessageInfo_WebMessageInfoStubType = 31
+ WebMessageInfo_GROUP_PARTICIPANT_LEAVE WebMessageInfo_WebMessageInfoStubType = 32
+ WebMessageInfo_GROUP_PARTICIPANT_CHANGE_NUMBER WebMessageInfo_WebMessageInfoStubType = 33
+ WebMessageInfo_BROADCAST_CREATE WebMessageInfo_WebMessageInfoStubType = 34
+ WebMessageInfo_BROADCAST_ADD WebMessageInfo_WebMessageInfoStubType = 35
+ WebMessageInfo_BROADCAST_REMOVE WebMessageInfo_WebMessageInfoStubType = 36
+ WebMessageInfo_GENERIC_NOTIFICATION WebMessageInfo_WebMessageInfoStubType = 37
+ WebMessageInfo_E2E_IDENTITY_CHANGED WebMessageInfo_WebMessageInfoStubType = 38
+ WebMessageInfo_E2E_ENCRYPTED WebMessageInfo_WebMessageInfoStubType = 39
+ WebMessageInfo_CALL_MISSED_VOICE WebMessageInfo_WebMessageInfoStubType = 40
+ WebMessageInfo_CALL_MISSED_VIDEO WebMessageInfo_WebMessageInfoStubType = 41
+ WebMessageInfo_INDIVIDUAL_CHANGE_NUMBER WebMessageInfo_WebMessageInfoStubType = 42
+ WebMessageInfo_GROUP_DELETE WebMessageInfo_WebMessageInfoStubType = 43
+ WebMessageInfo_GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE WebMessageInfo_WebMessageInfoStubType = 44
+ WebMessageInfo_CALL_MISSED_GROUP_VOICE WebMessageInfo_WebMessageInfoStubType = 45
+ WebMessageInfo_CALL_MISSED_GROUP_VIDEO WebMessageInfo_WebMessageInfoStubType = 46
+ WebMessageInfo_PAYMENT_CIPHERTEXT WebMessageInfo_WebMessageInfoStubType = 47
+ WebMessageInfo_PAYMENT_FUTUREPROOF WebMessageInfo_WebMessageInfoStubType = 48
+ WebMessageInfo_PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED WebMessageInfo_WebMessageInfoStubType = 49
+ WebMessageInfo_PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED WebMessageInfo_WebMessageInfoStubType = 50
+ WebMessageInfo_PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED WebMessageInfo_WebMessageInfoStubType = 51
+ WebMessageInfo_PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP WebMessageInfo_WebMessageInfoStubType = 52
+ WebMessageInfo_PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP WebMessageInfo_WebMessageInfoStubType = 53
+ WebMessageInfo_PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER WebMessageInfo_WebMessageInfoStubType = 54
+ WebMessageInfo_PAYMENT_ACTION_SEND_PAYMENT_REMINDER WebMessageInfo_WebMessageInfoStubType = 55
+ WebMessageInfo_PAYMENT_ACTION_SEND_PAYMENT_INVITATION WebMessageInfo_WebMessageInfoStubType = 56
+ WebMessageInfo_PAYMENT_ACTION_REQUEST_DECLINED WebMessageInfo_WebMessageInfoStubType = 57
+ WebMessageInfo_PAYMENT_ACTION_REQUEST_EXPIRED WebMessageInfo_WebMessageInfoStubType = 58
+ WebMessageInfo_PAYMENT_ACTION_REQUEST_CANCELLED WebMessageInfo_WebMessageInfoStubType = 59
+ WebMessageInfo_BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM WebMessageInfo_WebMessageInfoStubType = 60
+ WebMessageInfo_BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP WebMessageInfo_WebMessageInfoStubType = 61
+ WebMessageInfo_BIZ_INTRO_TOP WebMessageInfo_WebMessageInfoStubType = 62
+ WebMessageInfo_BIZ_INTRO_BOTTOM WebMessageInfo_WebMessageInfoStubType = 63
+ WebMessageInfo_BIZ_NAME_CHANGE WebMessageInfo_WebMessageInfoStubType = 64
+ WebMessageInfo_BIZ_MOVE_TO_CONSUMER_APP WebMessageInfo_WebMessageInfoStubType = 65
+ WebMessageInfo_BIZ_TWO_TIER_MIGRATION_TOP WebMessageInfo_WebMessageInfoStubType = 66
+ WebMessageInfo_BIZ_TWO_TIER_MIGRATION_BOTTOM WebMessageInfo_WebMessageInfoStubType = 67
+ WebMessageInfo_OVERSIZED WebMessageInfo_WebMessageInfoStubType = 68
+ WebMessageInfo_GROUP_CHANGE_NO_FREQUENTLY_FORWARDED WebMessageInfo_WebMessageInfoStubType = 69
+ WebMessageInfo_GROUP_V4_ADD_INVITE_SENT WebMessageInfo_WebMessageInfoStubType = 70
+ WebMessageInfo_GROUP_PARTICIPANT_ADD_REQUEST_JOIN WebMessageInfo_WebMessageInfoStubType = 71
+ WebMessageInfo_CHANGE_EPHEMERAL_SETTING WebMessageInfo_WebMessageInfoStubType = 72
+ WebMessageInfo_E2E_DEVICE_CHANGED WebMessageInfo_WebMessageInfoStubType = 73
+ WebMessageInfo_VIEWED_ONCE WebMessageInfo_WebMessageInfoStubType = 74
+ WebMessageInfo_E2E_ENCRYPTED_NOW WebMessageInfo_WebMessageInfoStubType = 75
+ WebMessageInfo_BLUE_MSG_BSP_FB_TO_BSP_PREMISE WebMessageInfo_WebMessageInfoStubType = 76
+ WebMessageInfo_BLUE_MSG_BSP_FB_TO_SELF_FB WebMessageInfo_WebMessageInfoStubType = 77
+ WebMessageInfo_BLUE_MSG_BSP_FB_TO_SELF_PREMISE WebMessageInfo_WebMessageInfoStubType = 78
+ WebMessageInfo_BLUE_MSG_BSP_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 79
+ WebMessageInfo_BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 80
+ WebMessageInfo_BLUE_MSG_BSP_FB_VERIFIED WebMessageInfo_WebMessageInfoStubType = 81
+ WebMessageInfo_BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 82
+ WebMessageInfo_BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE WebMessageInfo_WebMessageInfoStubType = 83
+ WebMessageInfo_BLUE_MSG_BSP_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 84
+ WebMessageInfo_BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 85
+ WebMessageInfo_BLUE_MSG_BSP_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 86
+ WebMessageInfo_BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 87
+ WebMessageInfo_BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 88
+ WebMessageInfo_BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 89
+ WebMessageInfo_BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 90
+ WebMessageInfo_BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 91
+ WebMessageInfo_BLUE_MSG_SELF_FB_TO_BSP_PREMISE WebMessageInfo_WebMessageInfoStubType = 92
+ WebMessageInfo_BLUE_MSG_SELF_FB_TO_SELF_PREMISE WebMessageInfo_WebMessageInfoStubType = 93
+ WebMessageInfo_BLUE_MSG_SELF_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 94
+ WebMessageInfo_BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 95
+ WebMessageInfo_BLUE_MSG_SELF_FB_VERIFIED WebMessageInfo_WebMessageInfoStubType = 96
+ WebMessageInfo_BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 97
+ WebMessageInfo_BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE WebMessageInfo_WebMessageInfoStubType = 98
+ WebMessageInfo_BLUE_MSG_SELF_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 99
+ WebMessageInfo_BLUE_MSG_SELF_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 100
+ WebMessageInfo_BLUE_MSG_TO_BSP_FB WebMessageInfo_WebMessageInfoStubType = 101
+ WebMessageInfo_BLUE_MSG_TO_CONSUMER WebMessageInfo_WebMessageInfoStubType = 102
+ WebMessageInfo_BLUE_MSG_TO_SELF_FB WebMessageInfo_WebMessageInfoStubType = 103
+ WebMessageInfo_BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED WebMessageInfo_WebMessageInfoStubType = 104
+ WebMessageInfo_BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 105
+ WebMessageInfo_BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED WebMessageInfo_WebMessageInfoStubType = 106
+ WebMessageInfo_BLUE_MSG_UNVERIFIED_TO_VERIFIED WebMessageInfo_WebMessageInfoStubType = 107
+ WebMessageInfo_BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 108
+ WebMessageInfo_BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 109
+ WebMessageInfo_BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 110
+ WebMessageInfo_BLUE_MSG_VERIFIED_TO_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 111
+ WebMessageInfo_BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 112
+ WebMessageInfo_BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED WebMessageInfo_WebMessageInfoStubType = 113
+ WebMessageInfo_BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 114
+ WebMessageInfo_BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 115
+ WebMessageInfo_BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED WebMessageInfo_WebMessageInfoStubType = 116
+ WebMessageInfo_BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED WebMessageInfo_WebMessageInfoStubType = 117
+ WebMessageInfo_E2E_IDENTITY_UNAVAILABLE WebMessageInfo_WebMessageInfoStubType = 118
+)
+
+// Enum value maps for WebMessageInfo_WebMessageInfoStubType.
+var (
+ WebMessageInfo_WebMessageInfoStubType_name = map[int32]string{
+ 0: "UNKNOWN",
+ 1: "REVOKE",
+ 2: "CIPHERTEXT",
+ 3: "FUTUREPROOF",
+ 4: "NON_VERIFIED_TRANSITION",
+ 5: "UNVERIFIED_TRANSITION",
+ 6: "VERIFIED_TRANSITION",
+ 7: "VERIFIED_LOW_UNKNOWN",
+ 8: "VERIFIED_HIGH",
+ 9: "VERIFIED_INITIAL_UNKNOWN",
+ 10: "VERIFIED_INITIAL_LOW",
+ 11: "VERIFIED_INITIAL_HIGH",
+ 12: "VERIFIED_TRANSITION_ANY_TO_NONE",
+ 13: "VERIFIED_TRANSITION_ANY_TO_HIGH",
+ 14: "VERIFIED_TRANSITION_HIGH_TO_LOW",
+ 15: "VERIFIED_TRANSITION_HIGH_TO_UNKNOWN",
+ 16: "VERIFIED_TRANSITION_UNKNOWN_TO_LOW",
+ 17: "VERIFIED_TRANSITION_LOW_TO_UNKNOWN",
+ 18: "VERIFIED_TRANSITION_NONE_TO_LOW",
+ 19: "VERIFIED_TRANSITION_NONE_TO_UNKNOWN",
+ 20: "GROUP_CREATE",
+ 21: "GROUP_CHANGE_SUBJECT",
+ 22: "GROUP_CHANGE_ICON",
+ 23: "GROUP_CHANGE_INVITE_LINK",
+ 24: "GROUP_CHANGE_DESCRIPTION",
+ 25: "GROUP_CHANGE_RESTRICT",
+ 26: "GROUP_CHANGE_ANNOUNCE",
+ 27: "GROUP_PARTICIPANT_ADD",
+ 28: "GROUP_PARTICIPANT_REMOVE",
+ 29: "GROUP_PARTICIPANT_PROMOTE",
+ 30: "GROUP_PARTICIPANT_DEMOTE",
+ 31: "GROUP_PARTICIPANT_INVITE",
+ 32: "GROUP_PARTICIPANT_LEAVE",
+ 33: "GROUP_PARTICIPANT_CHANGE_NUMBER",
+ 34: "BROADCAST_CREATE",
+ 35: "BROADCAST_ADD",
+ 36: "BROADCAST_REMOVE",
+ 37: "GENERIC_NOTIFICATION",
+ 38: "E2E_IDENTITY_CHANGED",
+ 39: "E2E_ENCRYPTED",
+ 40: "CALL_MISSED_VOICE",
+ 41: "CALL_MISSED_VIDEO",
+ 42: "INDIVIDUAL_CHANGE_NUMBER",
+ 43: "GROUP_DELETE",
+ 44: "GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE",
+ 45: "CALL_MISSED_GROUP_VOICE",
+ 46: "CALL_MISSED_GROUP_VIDEO",
+ 47: "PAYMENT_CIPHERTEXT",
+ 48: "PAYMENT_FUTUREPROOF",
+ 49: "PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED",
+ 50: "PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED",
+ 51: "PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED",
+ 52: "PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP",
+ 53: "PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP",
+ 54: "PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER",
+ 55: "PAYMENT_ACTION_SEND_PAYMENT_REMINDER",
+ 56: "PAYMENT_ACTION_SEND_PAYMENT_INVITATION",
+ 57: "PAYMENT_ACTION_REQUEST_DECLINED",
+ 58: "PAYMENT_ACTION_REQUEST_EXPIRED",
+ 59: "PAYMENT_ACTION_REQUEST_CANCELLED",
+ 60: "BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM",
+ 61: "BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP",
+ 62: "BIZ_INTRO_TOP",
+ 63: "BIZ_INTRO_BOTTOM",
+ 64: "BIZ_NAME_CHANGE",
+ 65: "BIZ_MOVE_TO_CONSUMER_APP",
+ 66: "BIZ_TWO_TIER_MIGRATION_TOP",
+ 67: "BIZ_TWO_TIER_MIGRATION_BOTTOM",
+ 68: "OVERSIZED",
+ 69: "GROUP_CHANGE_NO_FREQUENTLY_FORWARDED",
+ 70: "GROUP_V4_ADD_INVITE_SENT",
+ 71: "GROUP_PARTICIPANT_ADD_REQUEST_JOIN",
+ 72: "CHANGE_EPHEMERAL_SETTING",
+ 73: "E2E_DEVICE_CHANGED",
+ 74: "VIEWED_ONCE",
+ 75: "E2E_ENCRYPTED_NOW",
+ 76: "BLUE_MSG_BSP_FB_TO_BSP_PREMISE",
+ 77: "BLUE_MSG_BSP_FB_TO_SELF_FB",
+ 78: "BLUE_MSG_BSP_FB_TO_SELF_PREMISE",
+ 79: "BLUE_MSG_BSP_FB_UNVERIFIED",
+ 80: "BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED",
+ 81: "BLUE_MSG_BSP_FB_VERIFIED",
+ 82: "BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED",
+ 83: "BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE",
+ 84: "BLUE_MSG_BSP_PREMISE_UNVERIFIED",
+ 85: "BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED",
+ 86: "BLUE_MSG_BSP_PREMISE_VERIFIED",
+ 87: "BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED",
+ 88: "BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED",
+ 89: "BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED",
+ 90: "BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED",
+ 91: "BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED",
+ 92: "BLUE_MSG_SELF_FB_TO_BSP_PREMISE",
+ 93: "BLUE_MSG_SELF_FB_TO_SELF_PREMISE",
+ 94: "BLUE_MSG_SELF_FB_UNVERIFIED",
+ 95: "BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED",
+ 96: "BLUE_MSG_SELF_FB_VERIFIED",
+ 97: "BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED",
+ 98: "BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE",
+ 99: "BLUE_MSG_SELF_PREMISE_UNVERIFIED",
+ 100: "BLUE_MSG_SELF_PREMISE_VERIFIED",
+ 101: "BLUE_MSG_TO_BSP_FB",
+ 102: "BLUE_MSG_TO_CONSUMER",
+ 103: "BLUE_MSG_TO_SELF_FB",
+ 104: "BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED",
+ 105: "BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED",
+ 106: "BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED",
+ 107: "BLUE_MSG_UNVERIFIED_TO_VERIFIED",
+ 108: "BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED",
+ 109: "BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED",
+ 110: "BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED",
+ 111: "BLUE_MSG_VERIFIED_TO_UNVERIFIED",
+ 112: "BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED",
+ 113: "BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED",
+ 114: "BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED",
+ 115: "BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED",
+ 116: "BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED",
+ 117: "BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED",
+ 118: "E2E_IDENTITY_UNAVAILABLE",
+ }
+ WebMessageInfo_WebMessageInfoStubType_value = map[string]int32{
+ "UNKNOWN": 0,
+ "REVOKE": 1,
+ "CIPHERTEXT": 2,
+ "FUTUREPROOF": 3,
+ "NON_VERIFIED_TRANSITION": 4,
+ "UNVERIFIED_TRANSITION": 5,
+ "VERIFIED_TRANSITION": 6,
+ "VERIFIED_LOW_UNKNOWN": 7,
+ "VERIFIED_HIGH": 8,
+ "VERIFIED_INITIAL_UNKNOWN": 9,
+ "VERIFIED_INITIAL_LOW": 10,
+ "VERIFIED_INITIAL_HIGH": 11,
+ "VERIFIED_TRANSITION_ANY_TO_NONE": 12,
+ "VERIFIED_TRANSITION_ANY_TO_HIGH": 13,
+ "VERIFIED_TRANSITION_HIGH_TO_LOW": 14,
+ "VERIFIED_TRANSITION_HIGH_TO_UNKNOWN": 15,
+ "VERIFIED_TRANSITION_UNKNOWN_TO_LOW": 16,
+ "VERIFIED_TRANSITION_LOW_TO_UNKNOWN": 17,
+ "VERIFIED_TRANSITION_NONE_TO_LOW": 18,
+ "VERIFIED_TRANSITION_NONE_TO_UNKNOWN": 19,
+ "GROUP_CREATE": 20,
+ "GROUP_CHANGE_SUBJECT": 21,
+ "GROUP_CHANGE_ICON": 22,
+ "GROUP_CHANGE_INVITE_LINK": 23,
+ "GROUP_CHANGE_DESCRIPTION": 24,
+ "GROUP_CHANGE_RESTRICT": 25,
+ "GROUP_CHANGE_ANNOUNCE": 26,
+ "GROUP_PARTICIPANT_ADD": 27,
+ "GROUP_PARTICIPANT_REMOVE": 28,
+ "GROUP_PARTICIPANT_PROMOTE": 29,
+ "GROUP_PARTICIPANT_DEMOTE": 30,
+ "GROUP_PARTICIPANT_INVITE": 31,
+ "GROUP_PARTICIPANT_LEAVE": 32,
+ "GROUP_PARTICIPANT_CHANGE_NUMBER": 33,
+ "BROADCAST_CREATE": 34,
+ "BROADCAST_ADD": 35,
+ "BROADCAST_REMOVE": 36,
+ "GENERIC_NOTIFICATION": 37,
+ "E2E_IDENTITY_CHANGED": 38,
+ "E2E_ENCRYPTED": 39,
+ "CALL_MISSED_VOICE": 40,
+ "CALL_MISSED_VIDEO": 41,
+ "INDIVIDUAL_CHANGE_NUMBER": 42,
+ "GROUP_DELETE": 43,
+ "GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE": 44,
+ "CALL_MISSED_GROUP_VOICE": 45,
+ "CALL_MISSED_GROUP_VIDEO": 46,
+ "PAYMENT_CIPHERTEXT": 47,
+ "PAYMENT_FUTUREPROOF": 48,
+ "PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED": 49,
+ "PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED": 50,
+ "PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED": 51,
+ "PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP": 52,
+ "PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP": 53,
+ "PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER": 54,
+ "PAYMENT_ACTION_SEND_PAYMENT_REMINDER": 55,
+ "PAYMENT_ACTION_SEND_PAYMENT_INVITATION": 56,
+ "PAYMENT_ACTION_REQUEST_DECLINED": 57,
+ "PAYMENT_ACTION_REQUEST_EXPIRED": 58,
+ "PAYMENT_ACTION_REQUEST_CANCELLED": 59,
+ "BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM": 60,
+ "BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP": 61,
+ "BIZ_INTRO_TOP": 62,
+ "BIZ_INTRO_BOTTOM": 63,
+ "BIZ_NAME_CHANGE": 64,
+ "BIZ_MOVE_TO_CONSUMER_APP": 65,
+ "BIZ_TWO_TIER_MIGRATION_TOP": 66,
+ "BIZ_TWO_TIER_MIGRATION_BOTTOM": 67,
+ "OVERSIZED": 68,
+ "GROUP_CHANGE_NO_FREQUENTLY_FORWARDED": 69,
+ "GROUP_V4_ADD_INVITE_SENT": 70,
+ "GROUP_PARTICIPANT_ADD_REQUEST_JOIN": 71,
+ "CHANGE_EPHEMERAL_SETTING": 72,
+ "E2E_DEVICE_CHANGED": 73,
+ "VIEWED_ONCE": 74,
+ "E2E_ENCRYPTED_NOW": 75,
+ "BLUE_MSG_BSP_FB_TO_BSP_PREMISE": 76,
+ "BLUE_MSG_BSP_FB_TO_SELF_FB": 77,
+ "BLUE_MSG_BSP_FB_TO_SELF_PREMISE": 78,
+ "BLUE_MSG_BSP_FB_UNVERIFIED": 79,
+ "BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED": 80,
+ "BLUE_MSG_BSP_FB_VERIFIED": 81,
+ "BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED": 82,
+ "BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE": 83,
+ "BLUE_MSG_BSP_PREMISE_UNVERIFIED": 84,
+ "BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED": 85,
+ "BLUE_MSG_BSP_PREMISE_VERIFIED": 86,
+ "BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED": 87,
+ "BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED": 88,
+ "BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED": 89,
+ "BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED": 90,
+ "BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED": 91,
+ "BLUE_MSG_SELF_FB_TO_BSP_PREMISE": 92,
+ "BLUE_MSG_SELF_FB_TO_SELF_PREMISE": 93,
+ "BLUE_MSG_SELF_FB_UNVERIFIED": 94,
+ "BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED": 95,
+ "BLUE_MSG_SELF_FB_VERIFIED": 96,
+ "BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED": 97,
+ "BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE": 98,
+ "BLUE_MSG_SELF_PREMISE_UNVERIFIED": 99,
+ "BLUE_MSG_SELF_PREMISE_VERIFIED": 100,
+ "BLUE_MSG_TO_BSP_FB": 101,
+ "BLUE_MSG_TO_CONSUMER": 102,
+ "BLUE_MSG_TO_SELF_FB": 103,
+ "BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED": 104,
+ "BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED": 105,
+ "BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED": 106,
+ "BLUE_MSG_UNVERIFIED_TO_VERIFIED": 107,
+ "BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED": 108,
+ "BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED": 109,
+ "BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED": 110,
+ "BLUE_MSG_VERIFIED_TO_UNVERIFIED": 111,
+ "BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED": 112,
+ "BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED": 113,
+ "BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED": 114,
+ "BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED": 115,
+ "BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED": 116,
+ "BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED": 117,
+ "E2E_IDENTITY_UNAVAILABLE": 118,
+ }
+)
+
+func (x WebMessageInfo_WebMessageInfoStubType) Enum() *WebMessageInfo_WebMessageInfoStubType {
+ p := new(WebMessageInfo_WebMessageInfoStubType)
+ *p = x
+ return p
+}
+
+func (x WebMessageInfo_WebMessageInfoStubType) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (WebMessageInfo_WebMessageInfoStubType) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[22].Descriptor()
+}
+
+func (WebMessageInfo_WebMessageInfoStubType) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[22]
+}
+
+func (x WebMessageInfo_WebMessageInfoStubType) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *WebMessageInfo_WebMessageInfoStubType) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = WebMessageInfo_WebMessageInfoStubType(num)
+ return nil
+}
+
+// Deprecated: Use WebMessageInfo_WebMessageInfoStubType.Descriptor instead.
+func (WebMessageInfo_WebMessageInfoStubType) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{78, 1}
+}
+
+type WebMessageInfo_WebMessageInfoBizPrivacyStatus int32
+
+const (
+ WebMessageInfo_E2EE WebMessageInfo_WebMessageInfoBizPrivacyStatus = 0
+ WebMessageInfo_FB WebMessageInfo_WebMessageInfoBizPrivacyStatus = 2
+ WebMessageInfo_BSP WebMessageInfo_WebMessageInfoBizPrivacyStatus = 1
+ WebMessageInfo_BSP_AND_FB WebMessageInfo_WebMessageInfoBizPrivacyStatus = 3
+)
+
+// Enum value maps for WebMessageInfo_WebMessageInfoBizPrivacyStatus.
+var (
+ WebMessageInfo_WebMessageInfoBizPrivacyStatus_name = map[int32]string{
+ 0: "E2EE",
+ 2: "FB",
+ 1: "BSP",
+ 3: "BSP_AND_FB",
+ }
+ WebMessageInfo_WebMessageInfoBizPrivacyStatus_value = map[string]int32{
+ "E2EE": 0,
+ "FB": 2,
+ "BSP": 1,
+ "BSP_AND_FB": 3,
+ }
+)
+
+func (x WebMessageInfo_WebMessageInfoBizPrivacyStatus) Enum() *WebMessageInfo_WebMessageInfoBizPrivacyStatus {
+ p := new(WebMessageInfo_WebMessageInfoBizPrivacyStatus)
+ *p = x
+ return p
+}
+
+func (x WebMessageInfo_WebMessageInfoBizPrivacyStatus) String() string {
+ return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
+}
+
+func (WebMessageInfo_WebMessageInfoBizPrivacyStatus) Descriptor() protoreflect.EnumDescriptor {
+ return file_def_proto_enumTypes[23].Descriptor()
+}
+
+func (WebMessageInfo_WebMessageInfoBizPrivacyStatus) Type() protoreflect.EnumType {
+ return &file_def_proto_enumTypes[23]
+}
+
+func (x WebMessageInfo_WebMessageInfoBizPrivacyStatus) Number() protoreflect.EnumNumber {
+ return protoreflect.EnumNumber(x)
+}
+
+// Deprecated: Do not use.
+func (x *WebMessageInfo_WebMessageInfoBizPrivacyStatus) UnmarshalJSON(b []byte) error {
+ num, err := protoimpl.X.UnmarshalJSONEnum(x.Descriptor(), b)
+ if err != nil {
+ return err
+ }
+ *x = WebMessageInfo_WebMessageInfoBizPrivacyStatus(num)
+ return nil
+}
+
+// Deprecated: Use WebMessageInfo_WebMessageInfoBizPrivacyStatus.Descriptor instead.
+func (WebMessageInfo_WebMessageInfoBizPrivacyStatus) EnumDescriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{78, 2}
+}
+
+type PaymentMoney struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Value *int64 `protobuf:"varint,1,opt,name=value" json:"value,omitempty"`
+ Offset *uint32 `protobuf:"varint,2,opt,name=offset" json:"offset,omitempty"`
+ CurrencyCode *string `protobuf:"bytes,3,opt,name=currencyCode" json:"currencyCode,omitempty"`
+}
+
+func (x *PaymentMoney) Reset() {
+ *x = PaymentMoney{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PaymentMoney) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PaymentMoney) ProtoMessage() {}
+
+func (x *PaymentMoney) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[0]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PaymentMoney.ProtoReflect.Descriptor instead.
+func (*PaymentMoney) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *PaymentMoney) GetValue() int64 {
+ if x != nil && x.Value != nil {
+ return *x.Value
+ }
+ return 0
+}
+
+func (x *PaymentMoney) GetOffset() uint32 {
+ if x != nil && x.Offset != nil {
+ return *x.Offset
+ }
+ return 0
+}
+
+func (x *PaymentMoney) GetCurrencyCode() string {
+ if x != nil && x.CurrencyCode != nil {
+ return *x.CurrencyCode
+ }
+ return ""
+}
+
+type HydratedQuickReplyButton struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DisplayText *string `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"`
+ Id *string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+}
+
+func (x *HydratedQuickReplyButton) Reset() {
+ *x = HydratedQuickReplyButton{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HydratedQuickReplyButton) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HydratedQuickReplyButton) ProtoMessage() {}
+
+func (x *HydratedQuickReplyButton) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[1]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HydratedQuickReplyButton.ProtoReflect.Descriptor instead.
+func (*HydratedQuickReplyButton) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{1}
+}
+
+func (x *HydratedQuickReplyButton) GetDisplayText() string {
+ if x != nil && x.DisplayText != nil {
+ return *x.DisplayText
+ }
+ return ""
+}
+
+func (x *HydratedQuickReplyButton) GetId() string {
+ if x != nil && x.Id != nil {
+ return *x.Id
+ }
+ return ""
+}
+
+type HydratedURLButton struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DisplayText *string `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"`
+ Url *string `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"`
+}
+
+func (x *HydratedURLButton) Reset() {
+ *x = HydratedURLButton{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HydratedURLButton) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HydratedURLButton) ProtoMessage() {}
+
+func (x *HydratedURLButton) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[2]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HydratedURLButton.ProtoReflect.Descriptor instead.
+func (*HydratedURLButton) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *HydratedURLButton) GetDisplayText() string {
+ if x != nil && x.DisplayText != nil {
+ return *x.DisplayText
+ }
+ return ""
+}
+
+func (x *HydratedURLButton) GetUrl() string {
+ if x != nil && x.Url != nil {
+ return *x.Url
+ }
+ return ""
+}
+
+type HydratedCallButton struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DisplayText *string `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"`
+ PhoneNumber *string `protobuf:"bytes,2,opt,name=phoneNumber" json:"phoneNumber,omitempty"`
+}
+
+func (x *HydratedCallButton) Reset() {
+ *x = HydratedCallButton{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HydratedCallButton) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HydratedCallButton) ProtoMessage() {}
+
+func (x *HydratedCallButton) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[3]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HydratedCallButton.ProtoReflect.Descriptor instead.
+func (*HydratedCallButton) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{3}
+}
+
+func (x *HydratedCallButton) GetDisplayText() string {
+ if x != nil && x.DisplayText != nil {
+ return *x.DisplayText
+ }
+ return ""
+}
+
+func (x *HydratedCallButton) GetPhoneNumber() string {
+ if x != nil && x.PhoneNumber != nil {
+ return *x.PhoneNumber
+ }
+ return ""
+}
+
+type HydratedTemplateButton struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Index *uint32 `protobuf:"varint,4,opt,name=index" json:"index,omitempty"`
+ // Types that are assignable to HydratedButton:
+ // *HydratedTemplateButton_QuickReplyButton
+ // *HydratedTemplateButton_UrlButton
+ // *HydratedTemplateButton_CallButton
+ HydratedButton isHydratedTemplateButton_HydratedButton `protobuf_oneof:"hydratedButton"`
+}
+
+func (x *HydratedTemplateButton) Reset() {
+ *x = HydratedTemplateButton{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HydratedTemplateButton) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HydratedTemplateButton) ProtoMessage() {}
+
+func (x *HydratedTemplateButton) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[4]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HydratedTemplateButton.ProtoReflect.Descriptor instead.
+func (*HydratedTemplateButton) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *HydratedTemplateButton) GetIndex() uint32 {
+ if x != nil && x.Index != nil {
+ return *x.Index
+ }
+ return 0
+}
+
+func (m *HydratedTemplateButton) GetHydratedButton() isHydratedTemplateButton_HydratedButton {
+ if m != nil {
+ return m.HydratedButton
+ }
+ return nil
+}
+
+func (x *HydratedTemplateButton) GetQuickReplyButton() *HydratedQuickReplyButton {
+ if x, ok := x.GetHydratedButton().(*HydratedTemplateButton_QuickReplyButton); ok {
+ return x.QuickReplyButton
+ }
+ return nil
+}
+
+func (x *HydratedTemplateButton) GetUrlButton() *HydratedURLButton {
+ if x, ok := x.GetHydratedButton().(*HydratedTemplateButton_UrlButton); ok {
+ return x.UrlButton
+ }
+ return nil
+}
+
+func (x *HydratedTemplateButton) GetCallButton() *HydratedCallButton {
+ if x, ok := x.GetHydratedButton().(*HydratedTemplateButton_CallButton); ok {
+ return x.CallButton
+ }
+ return nil
+}
+
+type isHydratedTemplateButton_HydratedButton interface {
+ isHydratedTemplateButton_HydratedButton()
+}
+
+type HydratedTemplateButton_QuickReplyButton struct {
+ QuickReplyButton *HydratedQuickReplyButton `protobuf:"bytes,1,opt,name=quickReplyButton,oneof"`
+}
+
+type HydratedTemplateButton_UrlButton struct {
+ UrlButton *HydratedURLButton `protobuf:"bytes,2,opt,name=urlButton,oneof"`
+}
+
+type HydratedTemplateButton_CallButton struct {
+ CallButton *HydratedCallButton `protobuf:"bytes,3,opt,name=callButton,oneof"`
+}
+
+func (*HydratedTemplateButton_QuickReplyButton) isHydratedTemplateButton_HydratedButton() {}
+
+func (*HydratedTemplateButton_UrlButton) isHydratedTemplateButton_HydratedButton() {}
+
+func (*HydratedTemplateButton_CallButton) isHydratedTemplateButton_HydratedButton() {}
+
+type QuickReplyButton struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DisplayText *HighlyStructuredMessage `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"`
+ Id *string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+}
+
+func (x *QuickReplyButton) Reset() {
+ *x = QuickReplyButton{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[5]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *QuickReplyButton) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*QuickReplyButton) ProtoMessage() {}
+
+func (x *QuickReplyButton) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[5]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use QuickReplyButton.ProtoReflect.Descriptor instead.
+func (*QuickReplyButton) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{5}
+}
+
+func (x *QuickReplyButton) GetDisplayText() *HighlyStructuredMessage {
+ if x != nil {
+ return x.DisplayText
+ }
+ return nil
+}
+
+func (x *QuickReplyButton) GetId() string {
+ if x != nil && x.Id != nil {
+ return *x.Id
+ }
+ return ""
+}
+
+type URLButton struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DisplayText *HighlyStructuredMessage `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"`
+ Url *HighlyStructuredMessage `protobuf:"bytes,2,opt,name=url" json:"url,omitempty"`
+}
+
+func (x *URLButton) Reset() {
+ *x = URLButton{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[6]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *URLButton) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*URLButton) ProtoMessage() {}
+
+func (x *URLButton) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[6]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use URLButton.ProtoReflect.Descriptor instead.
+func (*URLButton) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{6}
+}
+
+func (x *URLButton) GetDisplayText() *HighlyStructuredMessage {
+ if x != nil {
+ return x.DisplayText
+ }
+ return nil
+}
+
+func (x *URLButton) GetUrl() *HighlyStructuredMessage {
+ if x != nil {
+ return x.Url
+ }
+ return nil
+}
+
+type CallButton struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DisplayText *HighlyStructuredMessage `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"`
+ PhoneNumber *HighlyStructuredMessage `protobuf:"bytes,2,opt,name=phoneNumber" json:"phoneNumber,omitempty"`
+}
+
+func (x *CallButton) Reset() {
+ *x = CallButton{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[7]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CallButton) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CallButton) ProtoMessage() {}
+
+func (x *CallButton) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[7]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CallButton.ProtoReflect.Descriptor instead.
+func (*CallButton) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{7}
+}
+
+func (x *CallButton) GetDisplayText() *HighlyStructuredMessage {
+ if x != nil {
+ return x.DisplayText
+ }
+ return nil
+}
+
+func (x *CallButton) GetPhoneNumber() *HighlyStructuredMessage {
+ if x != nil {
+ return x.PhoneNumber
+ }
+ return nil
+}
+
+type TemplateButton struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Index *uint32 `protobuf:"varint,4,opt,name=index" json:"index,omitempty"`
+ // Types that are assignable to Button:
+ // *TemplateButton_QuickReplyButton
+ // *TemplateButton_UrlButton
+ // *TemplateButton_CallButton
+ Button isTemplateButton_Button `protobuf_oneof:"button"`
+}
+
+func (x *TemplateButton) Reset() {
+ *x = TemplateButton{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[8]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TemplateButton) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TemplateButton) ProtoMessage() {}
+
+func (x *TemplateButton) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[8]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TemplateButton.ProtoReflect.Descriptor instead.
+func (*TemplateButton) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{8}
+}
+
+func (x *TemplateButton) GetIndex() uint32 {
+ if x != nil && x.Index != nil {
+ return *x.Index
+ }
+ return 0
+}
+
+func (m *TemplateButton) GetButton() isTemplateButton_Button {
+ if m != nil {
+ return m.Button
+ }
+ return nil
+}
+
+func (x *TemplateButton) GetQuickReplyButton() *QuickReplyButton {
+ if x, ok := x.GetButton().(*TemplateButton_QuickReplyButton); ok {
+ return x.QuickReplyButton
+ }
+ return nil
+}
+
+func (x *TemplateButton) GetUrlButton() *URLButton {
+ if x, ok := x.GetButton().(*TemplateButton_UrlButton); ok {
+ return x.UrlButton
+ }
+ return nil
+}
+
+func (x *TemplateButton) GetCallButton() *CallButton {
+ if x, ok := x.GetButton().(*TemplateButton_CallButton); ok {
+ return x.CallButton
+ }
+ return nil
+}
+
+type isTemplateButton_Button interface {
+ isTemplateButton_Button()
+}
+
+type TemplateButton_QuickReplyButton struct {
+ QuickReplyButton *QuickReplyButton `protobuf:"bytes,1,opt,name=quickReplyButton,oneof"`
+}
+
+type TemplateButton_UrlButton struct {
+ UrlButton *URLButton `protobuf:"bytes,2,opt,name=urlButton,oneof"`
+}
+
+type TemplateButton_CallButton struct {
+ CallButton *CallButton `protobuf:"bytes,3,opt,name=callButton,oneof"`
+}
+
+func (*TemplateButton_QuickReplyButton) isTemplateButton_Button() {}
+
+func (*TemplateButton_UrlButton) isTemplateButton_Button() {}
+
+func (*TemplateButton_CallButton) isTemplateButton_Button() {}
+
+type Location struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DegreesLatitude *float64 `protobuf:"fixed64,1,opt,name=degreesLatitude" json:"degreesLatitude,omitempty"`
+ DegreesLongitude *float64 `protobuf:"fixed64,2,opt,name=degreesLongitude" json:"degreesLongitude,omitempty"`
+ Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+}
+
+func (x *Location) Reset() {
+ *x = Location{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[9]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Location) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Location) ProtoMessage() {}
+
+func (x *Location) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[9]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Location.ProtoReflect.Descriptor instead.
+func (*Location) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{9}
+}
+
+func (x *Location) GetDegreesLatitude() float64 {
+ if x != nil && x.DegreesLatitude != nil {
+ return *x.DegreesLatitude
+ }
+ return 0
+}
+
+func (x *Location) GetDegreesLongitude() float64 {
+ if x != nil && x.DegreesLongitude != nil {
+ return *x.DegreesLongitude
+ }
+ return 0
+}
+
+func (x *Location) GetName() string {
+ if x != nil && x.Name != nil {
+ return *x.Name
+ }
+ return ""
+}
+
+type Point struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ XDeprecated *int32 `protobuf:"varint,1,opt,name=xDeprecated" json:"xDeprecated,omitempty"`
+ YDeprecated *int32 `protobuf:"varint,2,opt,name=yDeprecated" json:"yDeprecated,omitempty"`
+ X *float64 `protobuf:"fixed64,3,opt,name=x" json:"x,omitempty"`
+ Y *float64 `protobuf:"fixed64,4,opt,name=y" json:"y,omitempty"`
+}
+
+func (x *Point) Reset() {
+ *x = Point{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[10]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Point) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Point) ProtoMessage() {}
+
+func (x *Point) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[10]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Point.ProtoReflect.Descriptor instead.
+func (*Point) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{10}
+}
+
+func (x *Point) GetXDeprecated() int32 {
+ if x != nil && x.XDeprecated != nil {
+ return *x.XDeprecated
+ }
+ return 0
+}
+
+func (x *Point) GetYDeprecated() int32 {
+ if x != nil && x.YDeprecated != nil {
+ return *x.YDeprecated
+ }
+ return 0
+}
+
+func (x *Point) GetX() float64 {
+ if x != nil && x.X != nil {
+ return *x.X
+ }
+ return 0
+}
+
+func (x *Point) GetY() float64 {
+ if x != nil && x.Y != nil {
+ return *x.Y
+ }
+ return 0
+}
+
+type InteractiveAnnotation struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ PolygonVertices []*Point `protobuf:"bytes,1,rep,name=polygonVertices" json:"polygonVertices,omitempty"`
+ // Types that are assignable to Action:
+ // *InteractiveAnnotation_Location
+ Action isInteractiveAnnotation_Action `protobuf_oneof:"action"`
+}
+
+func (x *InteractiveAnnotation) Reset() {
+ *x = InteractiveAnnotation{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[11]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *InteractiveAnnotation) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*InteractiveAnnotation) ProtoMessage() {}
+
+func (x *InteractiveAnnotation) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[11]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use InteractiveAnnotation.ProtoReflect.Descriptor instead.
+func (*InteractiveAnnotation) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{11}
+}
+
+func (x *InteractiveAnnotation) GetPolygonVertices() []*Point {
+ if x != nil {
+ return x.PolygonVertices
+ }
+ return nil
+}
+
+func (m *InteractiveAnnotation) GetAction() isInteractiveAnnotation_Action {
+ if m != nil {
+ return m.Action
+ }
+ return nil
+}
+
+func (x *InteractiveAnnotation) GetLocation() *Location {
+ if x, ok := x.GetAction().(*InteractiveAnnotation_Location); ok {
+ return x.Location
+ }
+ return nil
+}
+
+type isInteractiveAnnotation_Action interface {
+ isInteractiveAnnotation_Action()
+}
+
+type InteractiveAnnotation_Location struct {
+ Location *Location `protobuf:"bytes,2,opt,name=location,oneof"`
+}
+
+func (*InteractiveAnnotation_Location) isInteractiveAnnotation_Action() {}
+
+type DeviceListMetadata struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SenderKeyHash []byte `protobuf:"bytes,1,opt,name=senderKeyHash" json:"senderKeyHash,omitempty"`
+ SenderTimestamp *uint64 `protobuf:"varint,2,opt,name=senderTimestamp" json:"senderTimestamp,omitempty"`
+ RecipientKeyHash []byte `protobuf:"bytes,8,opt,name=recipientKeyHash" json:"recipientKeyHash,omitempty"`
+ RecipientTimestamp *uint64 `protobuf:"varint,9,opt,name=recipientTimestamp" json:"recipientTimestamp,omitempty"`
+}
+
+func (x *DeviceListMetadata) Reset() {
+ *x = DeviceListMetadata{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[12]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeviceListMetadata) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceListMetadata) ProtoMessage() {}
+
+func (x *DeviceListMetadata) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[12]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceListMetadata.ProtoReflect.Descriptor instead.
+func (*DeviceListMetadata) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{12}
+}
+
+func (x *DeviceListMetadata) GetSenderKeyHash() []byte {
+ if x != nil {
+ return x.SenderKeyHash
+ }
+ return nil
+}
+
+func (x *DeviceListMetadata) GetSenderTimestamp() uint64 {
+ if x != nil && x.SenderTimestamp != nil {
+ return *x.SenderTimestamp
+ }
+ return 0
+}
+
+func (x *DeviceListMetadata) GetRecipientKeyHash() []byte {
+ if x != nil {
+ return x.RecipientKeyHash
+ }
+ return nil
+}
+
+func (x *DeviceListMetadata) GetRecipientTimestamp() uint64 {
+ if x != nil && x.RecipientTimestamp != nil {
+ return *x.RecipientTimestamp
+ }
+ return 0
+}
+
+type MessageContextInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DeviceListMetadata *DeviceListMetadata `protobuf:"bytes,1,opt,name=deviceListMetadata" json:"deviceListMetadata,omitempty"`
+}
+
+func (x *MessageContextInfo) Reset() {
+ *x = MessageContextInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MessageContextInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MessageContextInfo) ProtoMessage() {}
+
+func (x *MessageContextInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[13]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use MessageContextInfo.ProtoReflect.Descriptor instead.
+func (*MessageContextInfo) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *MessageContextInfo) GetDeviceListMetadata() *DeviceListMetadata {
+ if x != nil {
+ return x.DeviceListMetadata
+ }
+ return nil
+}
+
+type AdReplyInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ AdvertiserName *string `protobuf:"bytes,1,opt,name=advertiserName" json:"advertiserName,omitempty"`
+ MediaType *AdReplyInfo_AdReplyInfoMediaType `protobuf:"varint,2,opt,name=mediaType,enum=proto.AdReplyInfo_AdReplyInfoMediaType" json:"mediaType,omitempty"`
+ JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"`
+ Caption *string `protobuf:"bytes,17,opt,name=caption" json:"caption,omitempty"`
+}
+
+func (x *AdReplyInfo) Reset() {
+ *x = AdReplyInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AdReplyInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AdReplyInfo) ProtoMessage() {}
+
+func (x *AdReplyInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[14]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AdReplyInfo.ProtoReflect.Descriptor instead.
+func (*AdReplyInfo) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{14}
+}
+
+func (x *AdReplyInfo) GetAdvertiserName() string {
+ if x != nil && x.AdvertiserName != nil {
+ return *x.AdvertiserName
+ }
+ return ""
+}
+
+func (x *AdReplyInfo) GetMediaType() AdReplyInfo_AdReplyInfoMediaType {
+ if x != nil && x.MediaType != nil {
+ return *x.MediaType
+ }
+ return AdReplyInfo_NONE
+}
+
+func (x *AdReplyInfo) GetJpegThumbnail() []byte {
+ if x != nil {
+ return x.JpegThumbnail
+ }
+ return nil
+}
+
+func (x *AdReplyInfo) GetCaption() string {
+ if x != nil && x.Caption != nil {
+ return *x.Caption
+ }
+ return ""
+}
+
+type ExternalAdReplyInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Title *string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+ Body *string `protobuf:"bytes,2,opt,name=body" json:"body,omitempty"`
+ MediaType *ExternalAdReplyInfo_ExternalAdReplyInfoMediaType `protobuf:"varint,3,opt,name=mediaType,enum=proto.ExternalAdReplyInfo_ExternalAdReplyInfoMediaType" json:"mediaType,omitempty"`
+ ThumbnailUrl *string `protobuf:"bytes,4,opt,name=thumbnailUrl" json:"thumbnailUrl,omitempty"`
+ MediaUrl *string `protobuf:"bytes,5,opt,name=mediaUrl" json:"mediaUrl,omitempty"`
+ Thumbnail []byte `protobuf:"bytes,6,opt,name=thumbnail" json:"thumbnail,omitempty"`
+ SourceType *string `protobuf:"bytes,7,opt,name=sourceType" json:"sourceType,omitempty"`
+ SourceId *string `protobuf:"bytes,8,opt,name=sourceId" json:"sourceId,omitempty"`
+ SourceUrl *string `protobuf:"bytes,9,opt,name=sourceUrl" json:"sourceUrl,omitempty"`
+}
+
+func (x *ExternalAdReplyInfo) Reset() {
+ *x = ExternalAdReplyInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExternalAdReplyInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExternalAdReplyInfo) ProtoMessage() {}
+
+func (x *ExternalAdReplyInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[15]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExternalAdReplyInfo.ProtoReflect.Descriptor instead.
+func (*ExternalAdReplyInfo) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{15}
+}
+
+func (x *ExternalAdReplyInfo) GetTitle() string {
+ if x != nil && x.Title != nil {
+ return *x.Title
+ }
+ return ""
+}
+
+func (x *ExternalAdReplyInfo) GetBody() string {
+ if x != nil && x.Body != nil {
+ return *x.Body
+ }
+ return ""
+}
+
+func (x *ExternalAdReplyInfo) GetMediaType() ExternalAdReplyInfo_ExternalAdReplyInfoMediaType {
+ if x != nil && x.MediaType != nil {
+ return *x.MediaType
+ }
+ return ExternalAdReplyInfo_NONE
+}
+
+func (x *ExternalAdReplyInfo) GetThumbnailUrl() string {
+ if x != nil && x.ThumbnailUrl != nil {
+ return *x.ThumbnailUrl
+ }
+ return ""
+}
+
+func (x *ExternalAdReplyInfo) GetMediaUrl() string {
+ if x != nil && x.MediaUrl != nil {
+ return *x.MediaUrl
+ }
+ return ""
+}
+
+func (x *ExternalAdReplyInfo) GetThumbnail() []byte {
+ if x != nil {
+ return x.Thumbnail
+ }
+ return nil
+}
+
+func (x *ExternalAdReplyInfo) GetSourceType() string {
+ if x != nil && x.SourceType != nil {
+ return *x.SourceType
+ }
+ return ""
+}
+
+func (x *ExternalAdReplyInfo) GetSourceId() string {
+ if x != nil && x.SourceId != nil {
+ return *x.SourceId
+ }
+ return ""
+}
+
+func (x *ExternalAdReplyInfo) GetSourceUrl() string {
+ if x != nil && x.SourceUrl != nil {
+ return *x.SourceUrl
+ }
+ return ""
+}
+
+type ContextInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ StanzaId *string `protobuf:"bytes,1,opt,name=stanzaId" json:"stanzaId,omitempty"`
+ Participant *string `protobuf:"bytes,2,opt,name=participant" json:"participant,omitempty"`
+ QuotedMessage *Message `protobuf:"bytes,3,opt,name=quotedMessage" json:"quotedMessage,omitempty"`
+ RemoteJid *string `protobuf:"bytes,4,opt,name=remoteJid" json:"remoteJid,omitempty"`
+ MentionedJid []string `protobuf:"bytes,15,rep,name=mentionedJid" json:"mentionedJid,omitempty"`
+ ConversionSource *string `protobuf:"bytes,18,opt,name=conversionSource" json:"conversionSource,omitempty"`
+ ConversionData []byte `protobuf:"bytes,19,opt,name=conversionData" json:"conversionData,omitempty"`
+ ConversionDelaySeconds *uint32 `protobuf:"varint,20,opt,name=conversionDelaySeconds" json:"conversionDelaySeconds,omitempty"`
+ ForwardingScore *uint32 `protobuf:"varint,21,opt,name=forwardingScore" json:"forwardingScore,omitempty"`
+ IsForwarded *bool `protobuf:"varint,22,opt,name=isForwarded" json:"isForwarded,omitempty"`
+ QuotedAd *AdReplyInfo `protobuf:"bytes,23,opt,name=quotedAd" json:"quotedAd,omitempty"`
+ PlaceholderKey *MessageKey `protobuf:"bytes,24,opt,name=placeholderKey" json:"placeholderKey,omitempty"`
+ Expiration *uint32 `protobuf:"varint,25,opt,name=expiration" json:"expiration,omitempty"`
+ EphemeralSettingTimestamp *int64 `protobuf:"varint,26,opt,name=ephemeralSettingTimestamp" json:"ephemeralSettingTimestamp,omitempty"`
+ EphemeralSharedSecret []byte `protobuf:"bytes,27,opt,name=ephemeralSharedSecret" json:"ephemeralSharedSecret,omitempty"`
+ ExternalAdReply *ExternalAdReplyInfo `protobuf:"bytes,28,opt,name=externalAdReply" json:"externalAdReply,omitempty"`
+}
+
+func (x *ContextInfo) Reset() {
+ *x = ContextInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ContextInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContextInfo) ProtoMessage() {}
+
+func (x *ContextInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[16]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContextInfo.ProtoReflect.Descriptor instead.
+func (*ContextInfo) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{16}
+}
+
+func (x *ContextInfo) GetStanzaId() string {
+ if x != nil && x.StanzaId != nil {
+ return *x.StanzaId
+ }
+ return ""
+}
+
+func (x *ContextInfo) GetParticipant() string {
+ if x != nil && x.Participant != nil {
+ return *x.Participant
+ }
+ return ""
+}
+
+func (x *ContextInfo) GetQuotedMessage() *Message {
+ if x != nil {
+ return x.QuotedMessage
+ }
+ return nil
+}
+
+func (x *ContextInfo) GetRemoteJid() string {
+ if x != nil && x.RemoteJid != nil {
+ return *x.RemoteJid
+ }
+ return ""
+}
+
+func (x *ContextInfo) GetMentionedJid() []string {
+ if x != nil {
+ return x.MentionedJid
+ }
+ return nil
+}
+
+func (x *ContextInfo) GetConversionSource() string {
+ if x != nil && x.ConversionSource != nil {
+ return *x.ConversionSource
+ }
+ return ""
+}
+
+func (x *ContextInfo) GetConversionData() []byte {
+ if x != nil {
+ return x.ConversionData
+ }
+ return nil
+}
+
+func (x *ContextInfo) GetConversionDelaySeconds() uint32 {
+ if x != nil && x.ConversionDelaySeconds != nil {
+ return *x.ConversionDelaySeconds
+ }
+ return 0
+}
+
+func (x *ContextInfo) GetForwardingScore() uint32 {
+ if x != nil && x.ForwardingScore != nil {
+ return *x.ForwardingScore
+ }
+ return 0
+}
+
+func (x *ContextInfo) GetIsForwarded() bool {
+ if x != nil && x.IsForwarded != nil {
+ return *x.IsForwarded
+ }
+ return false
+}
+
+func (x *ContextInfo) GetQuotedAd() *AdReplyInfo {
+ if x != nil {
+ return x.QuotedAd
+ }
+ return nil
+}
+
+func (x *ContextInfo) GetPlaceholderKey() *MessageKey {
+ if x != nil {
+ return x.PlaceholderKey
+ }
+ return nil
+}
+
+func (x *ContextInfo) GetExpiration() uint32 {
+ if x != nil && x.Expiration != nil {
+ return *x.Expiration
+ }
+ return 0
+}
+
+func (x *ContextInfo) GetEphemeralSettingTimestamp() int64 {
+ if x != nil && x.EphemeralSettingTimestamp != nil {
+ return *x.EphemeralSettingTimestamp
+ }
+ return 0
+}
+
+func (x *ContextInfo) GetEphemeralSharedSecret() []byte {
+ if x != nil {
+ return x.EphemeralSharedSecret
+ }
+ return nil
+}
+
+func (x *ContextInfo) GetExternalAdReply() *ExternalAdReplyInfo {
+ if x != nil {
+ return x.ExternalAdReply
+ }
+ return nil
+}
+
+type SenderKeyDistributionMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ GroupId *string `protobuf:"bytes,1,opt,name=groupId" json:"groupId,omitempty"`
+ AxolotlSenderKeyDistributionMessage []byte `protobuf:"bytes,2,opt,name=axolotlSenderKeyDistributionMessage" json:"axolotlSenderKeyDistributionMessage,omitempty"`
+}
+
+func (x *SenderKeyDistributionMessage) Reset() {
+ *x = SenderKeyDistributionMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[17]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SenderKeyDistributionMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SenderKeyDistributionMessage) ProtoMessage() {}
+
+func (x *SenderKeyDistributionMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[17]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SenderKeyDistributionMessage.ProtoReflect.Descriptor instead.
+func (*SenderKeyDistributionMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{17}
+}
+
+func (x *SenderKeyDistributionMessage) GetGroupId() string {
+ if x != nil && x.GroupId != nil {
+ return *x.GroupId
+ }
+ return ""
+}
+
+func (x *SenderKeyDistributionMessage) GetAxolotlSenderKeyDistributionMessage() []byte {
+ if x != nil {
+ return x.AxolotlSenderKeyDistributionMessage
+ }
+ return nil
+}
+
+type ImageMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+ Mimetype *string `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"`
+ Caption *string `protobuf:"bytes,3,opt,name=caption" json:"caption,omitempty"`
+ FileSha256 []byte `protobuf:"bytes,4,opt,name=fileSha256" json:"fileSha256,omitempty"`
+ FileLength *uint64 `protobuf:"varint,5,opt,name=fileLength" json:"fileLength,omitempty"`
+ Height *uint32 `protobuf:"varint,6,opt,name=height" json:"height,omitempty"`
+ Width *uint32 `protobuf:"varint,7,opt,name=width" json:"width,omitempty"`
+ MediaKey []byte `protobuf:"bytes,8,opt,name=mediaKey" json:"mediaKey,omitempty"`
+ FileEncSha256 []byte `protobuf:"bytes,9,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"`
+ InteractiveAnnotations []*InteractiveAnnotation `protobuf:"bytes,10,rep,name=interactiveAnnotations" json:"interactiveAnnotations,omitempty"`
+ DirectPath *string `protobuf:"bytes,11,opt,name=directPath" json:"directPath,omitempty"`
+ MediaKeyTimestamp *int64 `protobuf:"varint,12,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"`
+ JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+ FirstScanSidecar []byte `protobuf:"bytes,18,opt,name=firstScanSidecar" json:"firstScanSidecar,omitempty"`
+ FirstScanLength *uint32 `protobuf:"varint,19,opt,name=firstScanLength" json:"firstScanLength,omitempty"`
+ ExperimentGroupId *uint32 `protobuf:"varint,20,opt,name=experimentGroupId" json:"experimentGroupId,omitempty"`
+ ScansSidecar []byte `protobuf:"bytes,21,opt,name=scansSidecar" json:"scansSidecar,omitempty"`
+ ScanLengths []uint32 `protobuf:"varint,22,rep,name=scanLengths" json:"scanLengths,omitempty"`
+ MidQualityFileSha256 []byte `protobuf:"bytes,23,opt,name=midQualityFileSha256" json:"midQualityFileSha256,omitempty"`
+ MidQualityFileEncSha256 []byte `protobuf:"bytes,24,opt,name=midQualityFileEncSha256" json:"midQualityFileEncSha256,omitempty"`
+ ViewOnce *bool `protobuf:"varint,25,opt,name=viewOnce" json:"viewOnce,omitempty"`
+ ThumbnailDirectPath *string `protobuf:"bytes,26,opt,name=thumbnailDirectPath" json:"thumbnailDirectPath,omitempty"`
+ ThumbnailSha256 []byte `protobuf:"bytes,27,opt,name=thumbnailSha256" json:"thumbnailSha256,omitempty"`
+ ThumbnailEncSha256 []byte `protobuf:"bytes,28,opt,name=thumbnailEncSha256" json:"thumbnailEncSha256,omitempty"`
+}
+
+func (x *ImageMessage) Reset() {
+ *x = ImageMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[18]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ImageMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ImageMessage) ProtoMessage() {}
+
+func (x *ImageMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[18]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ImageMessage.ProtoReflect.Descriptor instead.
+func (*ImageMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{18}
+}
+
+func (x *ImageMessage) GetUrl() string {
+ if x != nil && x.Url != nil {
+ return *x.Url
+ }
+ return ""
+}
+
+func (x *ImageMessage) GetMimetype() string {
+ if x != nil && x.Mimetype != nil {
+ return *x.Mimetype
+ }
+ return ""
+}
+
+func (x *ImageMessage) GetCaption() string {
+ if x != nil && x.Caption != nil {
+ return *x.Caption
+ }
+ return ""
+}
+
+func (x *ImageMessage) GetFileSha256() []byte {
+ if x != nil {
+ return x.FileSha256
+ }
+ return nil
+}
+
+func (x *ImageMessage) GetFileLength() uint64 {
+ if x != nil && x.FileLength != nil {
+ return *x.FileLength
+ }
+ return 0
+}
+
+func (x *ImageMessage) GetHeight() uint32 {
+ if x != nil && x.Height != nil {
+ return *x.Height
+ }
+ return 0
+}
+
+func (x *ImageMessage) GetWidth() uint32 {
+ if x != nil && x.Width != nil {
+ return *x.Width
+ }
+ return 0
+}
+
+func (x *ImageMessage) GetMediaKey() []byte {
+ if x != nil {
+ return x.MediaKey
+ }
+ return nil
+}
+
+func (x *ImageMessage) GetFileEncSha256() []byte {
+ if x != nil {
+ return x.FileEncSha256
+ }
+ return nil
+}
+
+func (x *ImageMessage) GetInteractiveAnnotations() []*InteractiveAnnotation {
+ if x != nil {
+ return x.InteractiveAnnotations
+ }
+ return nil
+}
+
+func (x *ImageMessage) GetDirectPath() string {
+ if x != nil && x.DirectPath != nil {
+ return *x.DirectPath
+ }
+ return ""
+}
+
+func (x *ImageMessage) GetMediaKeyTimestamp() int64 {
+ if x != nil && x.MediaKeyTimestamp != nil {
+ return *x.MediaKeyTimestamp
+ }
+ return 0
+}
+
+func (x *ImageMessage) GetJpegThumbnail() []byte {
+ if x != nil {
+ return x.JpegThumbnail
+ }
+ return nil
+}
+
+func (x *ImageMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+func (x *ImageMessage) GetFirstScanSidecar() []byte {
+ if x != nil {
+ return x.FirstScanSidecar
+ }
+ return nil
+}
+
+func (x *ImageMessage) GetFirstScanLength() uint32 {
+ if x != nil && x.FirstScanLength != nil {
+ return *x.FirstScanLength
+ }
+ return 0
+}
+
+func (x *ImageMessage) GetExperimentGroupId() uint32 {
+ if x != nil && x.ExperimentGroupId != nil {
+ return *x.ExperimentGroupId
+ }
+ return 0
+}
+
+func (x *ImageMessage) GetScansSidecar() []byte {
+ if x != nil {
+ return x.ScansSidecar
+ }
+ return nil
+}
+
+func (x *ImageMessage) GetScanLengths() []uint32 {
+ if x != nil {
+ return x.ScanLengths
+ }
+ return nil
+}
+
+func (x *ImageMessage) GetMidQualityFileSha256() []byte {
+ if x != nil {
+ return x.MidQualityFileSha256
+ }
+ return nil
+}
+
+func (x *ImageMessage) GetMidQualityFileEncSha256() []byte {
+ if x != nil {
+ return x.MidQualityFileEncSha256
+ }
+ return nil
+}
+
+func (x *ImageMessage) GetViewOnce() bool {
+ if x != nil && x.ViewOnce != nil {
+ return *x.ViewOnce
+ }
+ return false
+}
+
+func (x *ImageMessage) GetThumbnailDirectPath() string {
+ if x != nil && x.ThumbnailDirectPath != nil {
+ return *x.ThumbnailDirectPath
+ }
+ return ""
+}
+
+func (x *ImageMessage) GetThumbnailSha256() []byte {
+ if x != nil {
+ return x.ThumbnailSha256
+ }
+ return nil
+}
+
+func (x *ImageMessage) GetThumbnailEncSha256() []byte {
+ if x != nil {
+ return x.ThumbnailEncSha256
+ }
+ return nil
+}
+
+type InvoiceMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Note *string `protobuf:"bytes,1,opt,name=note" json:"note,omitempty"`
+ Token *string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"`
+ AttachmentType *InvoiceMessage_InvoiceMessageAttachmentType `protobuf:"varint,3,opt,name=attachmentType,enum=proto.InvoiceMessage_InvoiceMessageAttachmentType" json:"attachmentType,omitempty"`
+ AttachmentMimetype *string `protobuf:"bytes,4,opt,name=attachmentMimetype" json:"attachmentMimetype,omitempty"`
+ AttachmentMediaKey []byte `protobuf:"bytes,5,opt,name=attachmentMediaKey" json:"attachmentMediaKey,omitempty"`
+ AttachmentMediaKeyTimestamp *int64 `protobuf:"varint,6,opt,name=attachmentMediaKeyTimestamp" json:"attachmentMediaKeyTimestamp,omitempty"`
+ AttachmentFileSha256 []byte `protobuf:"bytes,7,opt,name=attachmentFileSha256" json:"attachmentFileSha256,omitempty"`
+ AttachmentFileEncSha256 []byte `protobuf:"bytes,8,opt,name=attachmentFileEncSha256" json:"attachmentFileEncSha256,omitempty"`
+ AttachmentDirectPath *string `protobuf:"bytes,9,opt,name=attachmentDirectPath" json:"attachmentDirectPath,omitempty"`
+ AttachmentJpegThumbnail []byte `protobuf:"bytes,10,opt,name=attachmentJpegThumbnail" json:"attachmentJpegThumbnail,omitempty"`
+}
+
+func (x *InvoiceMessage) Reset() {
+ *x = InvoiceMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[19]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *InvoiceMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*InvoiceMessage) ProtoMessage() {}
+
+func (x *InvoiceMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[19]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use InvoiceMessage.ProtoReflect.Descriptor instead.
+func (*InvoiceMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{19}
+}
+
+func (x *InvoiceMessage) GetNote() string {
+ if x != nil && x.Note != nil {
+ return *x.Note
+ }
+ return ""
+}
+
+func (x *InvoiceMessage) GetToken() string {
+ if x != nil && x.Token != nil {
+ return *x.Token
+ }
+ return ""
+}
+
+func (x *InvoiceMessage) GetAttachmentType() InvoiceMessage_InvoiceMessageAttachmentType {
+ if x != nil && x.AttachmentType != nil {
+ return *x.AttachmentType
+ }
+ return InvoiceMessage_IMAGE
+}
+
+func (x *InvoiceMessage) GetAttachmentMimetype() string {
+ if x != nil && x.AttachmentMimetype != nil {
+ return *x.AttachmentMimetype
+ }
+ return ""
+}
+
+func (x *InvoiceMessage) GetAttachmentMediaKey() []byte {
+ if x != nil {
+ return x.AttachmentMediaKey
+ }
+ return nil
+}
+
+func (x *InvoiceMessage) GetAttachmentMediaKeyTimestamp() int64 {
+ if x != nil && x.AttachmentMediaKeyTimestamp != nil {
+ return *x.AttachmentMediaKeyTimestamp
+ }
+ return 0
+}
+
+func (x *InvoiceMessage) GetAttachmentFileSha256() []byte {
+ if x != nil {
+ return x.AttachmentFileSha256
+ }
+ return nil
+}
+
+func (x *InvoiceMessage) GetAttachmentFileEncSha256() []byte {
+ if x != nil {
+ return x.AttachmentFileEncSha256
+ }
+ return nil
+}
+
+func (x *InvoiceMessage) GetAttachmentDirectPath() string {
+ if x != nil && x.AttachmentDirectPath != nil {
+ return *x.AttachmentDirectPath
+ }
+ return ""
+}
+
+func (x *InvoiceMessage) GetAttachmentJpegThumbnail() []byte {
+ if x != nil {
+ return x.AttachmentJpegThumbnail
+ }
+ return nil
+}
+
+type ContactMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DisplayName *string `protobuf:"bytes,1,opt,name=displayName" json:"displayName,omitempty"`
+ Vcard *string `protobuf:"bytes,16,opt,name=vcard" json:"vcard,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+}
+
+func (x *ContactMessage) Reset() {
+ *x = ContactMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[20]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ContactMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContactMessage) ProtoMessage() {}
+
+func (x *ContactMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[20]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContactMessage.ProtoReflect.Descriptor instead.
+func (*ContactMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{20}
+}
+
+func (x *ContactMessage) GetDisplayName() string {
+ if x != nil && x.DisplayName != nil {
+ return *x.DisplayName
+ }
+ return ""
+}
+
+func (x *ContactMessage) GetVcard() string {
+ if x != nil && x.Vcard != nil {
+ return *x.Vcard
+ }
+ return ""
+}
+
+func (x *ContactMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+type LocationMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DegreesLatitude *float64 `protobuf:"fixed64,1,opt,name=degreesLatitude" json:"degreesLatitude,omitempty"`
+ DegreesLongitude *float64 `protobuf:"fixed64,2,opt,name=degreesLongitude" json:"degreesLongitude,omitempty"`
+ Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
+ Address *string `protobuf:"bytes,4,opt,name=address" json:"address,omitempty"`
+ Url *string `protobuf:"bytes,5,opt,name=url" json:"url,omitempty"`
+ IsLive *bool `protobuf:"varint,6,opt,name=isLive" json:"isLive,omitempty"`
+ AccuracyInMeters *uint32 `protobuf:"varint,7,opt,name=accuracyInMeters" json:"accuracyInMeters,omitempty"`
+ SpeedInMps *float32 `protobuf:"fixed32,8,opt,name=speedInMps" json:"speedInMps,omitempty"`
+ DegreesClockwiseFromMagneticNorth *uint32 `protobuf:"varint,9,opt,name=degreesClockwiseFromMagneticNorth" json:"degreesClockwiseFromMagneticNorth,omitempty"`
+ Comment *string `protobuf:"bytes,11,opt,name=comment" json:"comment,omitempty"`
+ JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+}
+
+func (x *LocationMessage) Reset() {
+ *x = LocationMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[21]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *LocationMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LocationMessage) ProtoMessage() {}
+
+func (x *LocationMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[21]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use LocationMessage.ProtoReflect.Descriptor instead.
+func (*LocationMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{21}
+}
+
+func (x *LocationMessage) GetDegreesLatitude() float64 {
+ if x != nil && x.DegreesLatitude != nil {
+ return *x.DegreesLatitude
+ }
+ return 0
+}
+
+func (x *LocationMessage) GetDegreesLongitude() float64 {
+ if x != nil && x.DegreesLongitude != nil {
+ return *x.DegreesLongitude
+ }
+ return 0
+}
+
+func (x *LocationMessage) GetName() string {
+ if x != nil && x.Name != nil {
+ return *x.Name
+ }
+ return ""
+}
+
+func (x *LocationMessage) GetAddress() string {
+ if x != nil && x.Address != nil {
+ return *x.Address
+ }
+ return ""
+}
+
+func (x *LocationMessage) GetUrl() string {
+ if x != nil && x.Url != nil {
+ return *x.Url
+ }
+ return ""
+}
+
+func (x *LocationMessage) GetIsLive() bool {
+ if x != nil && x.IsLive != nil {
+ return *x.IsLive
+ }
+ return false
+}
+
+func (x *LocationMessage) GetAccuracyInMeters() uint32 {
+ if x != nil && x.AccuracyInMeters != nil {
+ return *x.AccuracyInMeters
+ }
+ return 0
+}
+
+func (x *LocationMessage) GetSpeedInMps() float32 {
+ if x != nil && x.SpeedInMps != nil {
+ return *x.SpeedInMps
+ }
+ return 0
+}
+
+func (x *LocationMessage) GetDegreesClockwiseFromMagneticNorth() uint32 {
+ if x != nil && x.DegreesClockwiseFromMagneticNorth != nil {
+ return *x.DegreesClockwiseFromMagneticNorth
+ }
+ return 0
+}
+
+func (x *LocationMessage) GetComment() string {
+ if x != nil && x.Comment != nil {
+ return *x.Comment
+ }
+ return ""
+}
+
+func (x *LocationMessage) GetJpegThumbnail() []byte {
+ if x != nil {
+ return x.JpegThumbnail
+ }
+ return nil
+}
+
+func (x *LocationMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+type ExtendedTextMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Text *string `protobuf:"bytes,1,opt,name=text" json:"text,omitempty"`
+ MatchedText *string `protobuf:"bytes,2,opt,name=matchedText" json:"matchedText,omitempty"`
+ CanonicalUrl *string `protobuf:"bytes,4,opt,name=canonicalUrl" json:"canonicalUrl,omitempty"`
+ Description *string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"`
+ Title *string `protobuf:"bytes,6,opt,name=title" json:"title,omitempty"`
+ TextArgb *uint32 `protobuf:"fixed32,7,opt,name=textArgb" json:"textArgb,omitempty"`
+ BackgroundArgb *uint32 `protobuf:"fixed32,8,opt,name=backgroundArgb" json:"backgroundArgb,omitempty"`
+ Font *ExtendedTextMessage_ExtendedTextMessageFontType `protobuf:"varint,9,opt,name=font,enum=proto.ExtendedTextMessage_ExtendedTextMessageFontType" json:"font,omitempty"`
+ PreviewType *ExtendedTextMessage_ExtendedTextMessagePreviewType `protobuf:"varint,10,opt,name=previewType,enum=proto.ExtendedTextMessage_ExtendedTextMessagePreviewType" json:"previewType,omitempty"`
+ JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+ DoNotPlayInline *bool `protobuf:"varint,18,opt,name=doNotPlayInline" json:"doNotPlayInline,omitempty"`
+}
+
+func (x *ExtendedTextMessage) Reset() {
+ *x = ExtendedTextMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[22]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ExtendedTextMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ExtendedTextMessage) ProtoMessage() {}
+
+func (x *ExtendedTextMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[22]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ExtendedTextMessage.ProtoReflect.Descriptor instead.
+func (*ExtendedTextMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{22}
+}
+
+func (x *ExtendedTextMessage) GetText() string {
+ if x != nil && x.Text != nil {
+ return *x.Text
+ }
+ return ""
+}
+
+func (x *ExtendedTextMessage) GetMatchedText() string {
+ if x != nil && x.MatchedText != nil {
+ return *x.MatchedText
+ }
+ return ""
+}
+
+func (x *ExtendedTextMessage) GetCanonicalUrl() string {
+ if x != nil && x.CanonicalUrl != nil {
+ return *x.CanonicalUrl
+ }
+ return ""
+}
+
+func (x *ExtendedTextMessage) GetDescription() string {
+ if x != nil && x.Description != nil {
+ return *x.Description
+ }
+ return ""
+}
+
+func (x *ExtendedTextMessage) GetTitle() string {
+ if x != nil && x.Title != nil {
+ return *x.Title
+ }
+ return ""
+}
+
+func (x *ExtendedTextMessage) GetTextArgb() uint32 {
+ if x != nil && x.TextArgb != nil {
+ return *x.TextArgb
+ }
+ return 0
+}
+
+func (x *ExtendedTextMessage) GetBackgroundArgb() uint32 {
+ if x != nil && x.BackgroundArgb != nil {
+ return *x.BackgroundArgb
+ }
+ return 0
+}
+
+func (x *ExtendedTextMessage) GetFont() ExtendedTextMessage_ExtendedTextMessageFontType {
+ if x != nil && x.Font != nil {
+ return *x.Font
+ }
+ return ExtendedTextMessage_SANS_SERIF
+}
+
+func (x *ExtendedTextMessage) GetPreviewType() ExtendedTextMessage_ExtendedTextMessagePreviewType {
+ if x != nil && x.PreviewType != nil {
+ return *x.PreviewType
+ }
+ return ExtendedTextMessage_NONE
+}
+
+func (x *ExtendedTextMessage) GetJpegThumbnail() []byte {
+ if x != nil {
+ return x.JpegThumbnail
+ }
+ return nil
+}
+
+func (x *ExtendedTextMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+func (x *ExtendedTextMessage) GetDoNotPlayInline() bool {
+ if x != nil && x.DoNotPlayInline != nil {
+ return *x.DoNotPlayInline
+ }
+ return false
+}
+
+type DocumentMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+ Mimetype *string `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"`
+ Title *string `protobuf:"bytes,3,opt,name=title" json:"title,omitempty"`
+ FileSha256 []byte `protobuf:"bytes,4,opt,name=fileSha256" json:"fileSha256,omitempty"`
+ FileLength *uint64 `protobuf:"varint,5,opt,name=fileLength" json:"fileLength,omitempty"`
+ PageCount *uint32 `protobuf:"varint,6,opt,name=pageCount" json:"pageCount,omitempty"`
+ MediaKey []byte `protobuf:"bytes,7,opt,name=mediaKey" json:"mediaKey,omitempty"`
+ FileName *string `protobuf:"bytes,8,opt,name=fileName" json:"fileName,omitempty"`
+ FileEncSha256 []byte `protobuf:"bytes,9,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"`
+ DirectPath *string `protobuf:"bytes,10,opt,name=directPath" json:"directPath,omitempty"`
+ MediaKeyTimestamp *int64 `protobuf:"varint,11,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"`
+ ContactVcard *bool `protobuf:"varint,12,opt,name=contactVcard" json:"contactVcard,omitempty"`
+ ThumbnailDirectPath *string `protobuf:"bytes,13,opt,name=thumbnailDirectPath" json:"thumbnailDirectPath,omitempty"`
+ ThumbnailSha256 []byte `protobuf:"bytes,14,opt,name=thumbnailSha256" json:"thumbnailSha256,omitempty"`
+ ThumbnailEncSha256 []byte `protobuf:"bytes,15,opt,name=thumbnailEncSha256" json:"thumbnailEncSha256,omitempty"`
+ JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+ ThumbnailHeight *uint32 `protobuf:"varint,18,opt,name=thumbnailHeight" json:"thumbnailHeight,omitempty"`
+ ThumbnailWidth *uint32 `protobuf:"varint,19,opt,name=thumbnailWidth" json:"thumbnailWidth,omitempty"`
+}
+
+func (x *DocumentMessage) Reset() {
+ *x = DocumentMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[23]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DocumentMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DocumentMessage) ProtoMessage() {}
+
+func (x *DocumentMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[23]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DocumentMessage.ProtoReflect.Descriptor instead.
+func (*DocumentMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{23}
+}
+
+func (x *DocumentMessage) GetUrl() string {
+ if x != nil && x.Url != nil {
+ return *x.Url
+ }
+ return ""
+}
+
+func (x *DocumentMessage) GetMimetype() string {
+ if x != nil && x.Mimetype != nil {
+ return *x.Mimetype
+ }
+ return ""
+}
+
+func (x *DocumentMessage) GetTitle() string {
+ if x != nil && x.Title != nil {
+ return *x.Title
+ }
+ return ""
+}
+
+func (x *DocumentMessage) GetFileSha256() []byte {
+ if x != nil {
+ return x.FileSha256
+ }
+ return nil
+}
+
+func (x *DocumentMessage) GetFileLength() uint64 {
+ if x != nil && x.FileLength != nil {
+ return *x.FileLength
+ }
+ return 0
+}
+
+func (x *DocumentMessage) GetPageCount() uint32 {
+ if x != nil && x.PageCount != nil {
+ return *x.PageCount
+ }
+ return 0
+}
+
+func (x *DocumentMessage) GetMediaKey() []byte {
+ if x != nil {
+ return x.MediaKey
+ }
+ return nil
+}
+
+func (x *DocumentMessage) GetFileName() string {
+ if x != nil && x.FileName != nil {
+ return *x.FileName
+ }
+ return ""
+}
+
+func (x *DocumentMessage) GetFileEncSha256() []byte {
+ if x != nil {
+ return x.FileEncSha256
+ }
+ return nil
+}
+
+func (x *DocumentMessage) GetDirectPath() string {
+ if x != nil && x.DirectPath != nil {
+ return *x.DirectPath
+ }
+ return ""
+}
+
+func (x *DocumentMessage) GetMediaKeyTimestamp() int64 {
+ if x != nil && x.MediaKeyTimestamp != nil {
+ return *x.MediaKeyTimestamp
+ }
+ return 0
+}
+
+func (x *DocumentMessage) GetContactVcard() bool {
+ if x != nil && x.ContactVcard != nil {
+ return *x.ContactVcard
+ }
+ return false
+}
+
+func (x *DocumentMessage) GetThumbnailDirectPath() string {
+ if x != nil && x.ThumbnailDirectPath != nil {
+ return *x.ThumbnailDirectPath
+ }
+ return ""
+}
+
+func (x *DocumentMessage) GetThumbnailSha256() []byte {
+ if x != nil {
+ return x.ThumbnailSha256
+ }
+ return nil
+}
+
+func (x *DocumentMessage) GetThumbnailEncSha256() []byte {
+ if x != nil {
+ return x.ThumbnailEncSha256
+ }
+ return nil
+}
+
+func (x *DocumentMessage) GetJpegThumbnail() []byte {
+ if x != nil {
+ return x.JpegThumbnail
+ }
+ return nil
+}
+
+func (x *DocumentMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+func (x *DocumentMessage) GetThumbnailHeight() uint32 {
+ if x != nil && x.ThumbnailHeight != nil {
+ return *x.ThumbnailHeight
+ }
+ return 0
+}
+
+func (x *DocumentMessage) GetThumbnailWidth() uint32 {
+ if x != nil && x.ThumbnailWidth != nil {
+ return *x.ThumbnailWidth
+ }
+ return 0
+}
+
+type AudioMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+ Mimetype *string `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"`
+ FileSha256 []byte `protobuf:"bytes,3,opt,name=fileSha256" json:"fileSha256,omitempty"`
+ FileLength *uint64 `protobuf:"varint,4,opt,name=fileLength" json:"fileLength,omitempty"`
+ Seconds *uint32 `protobuf:"varint,5,opt,name=seconds" json:"seconds,omitempty"`
+ Ptt *bool `protobuf:"varint,6,opt,name=ptt" json:"ptt,omitempty"`
+ MediaKey []byte `protobuf:"bytes,7,opt,name=mediaKey" json:"mediaKey,omitempty"`
+ FileEncSha256 []byte `protobuf:"bytes,8,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"`
+ DirectPath *string `protobuf:"bytes,9,opt,name=directPath" json:"directPath,omitempty"`
+ MediaKeyTimestamp *int64 `protobuf:"varint,10,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+ StreamingSidecar []byte `protobuf:"bytes,18,opt,name=streamingSidecar" json:"streamingSidecar,omitempty"`
+}
+
+func (x *AudioMessage) Reset() {
+ *x = AudioMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[24]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AudioMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AudioMessage) ProtoMessage() {}
+
+func (x *AudioMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[24]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AudioMessage.ProtoReflect.Descriptor instead.
+func (*AudioMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{24}
+}
+
+func (x *AudioMessage) GetUrl() string {
+ if x != nil && x.Url != nil {
+ return *x.Url
+ }
+ return ""
+}
+
+func (x *AudioMessage) GetMimetype() string {
+ if x != nil && x.Mimetype != nil {
+ return *x.Mimetype
+ }
+ return ""
+}
+
+func (x *AudioMessage) GetFileSha256() []byte {
+ if x != nil {
+ return x.FileSha256
+ }
+ return nil
+}
+
+func (x *AudioMessage) GetFileLength() uint64 {
+ if x != nil && x.FileLength != nil {
+ return *x.FileLength
+ }
+ return 0
+}
+
+func (x *AudioMessage) GetSeconds() uint32 {
+ if x != nil && x.Seconds != nil {
+ return *x.Seconds
+ }
+ return 0
+}
+
+func (x *AudioMessage) GetPtt() bool {
+ if x != nil && x.Ptt != nil {
+ return *x.Ptt
+ }
+ return false
+}
+
+func (x *AudioMessage) GetMediaKey() []byte {
+ if x != nil {
+ return x.MediaKey
+ }
+ return nil
+}
+
+func (x *AudioMessage) GetFileEncSha256() []byte {
+ if x != nil {
+ return x.FileEncSha256
+ }
+ return nil
+}
+
+func (x *AudioMessage) GetDirectPath() string {
+ if x != nil && x.DirectPath != nil {
+ return *x.DirectPath
+ }
+ return ""
+}
+
+func (x *AudioMessage) GetMediaKeyTimestamp() int64 {
+ if x != nil && x.MediaKeyTimestamp != nil {
+ return *x.MediaKeyTimestamp
+ }
+ return 0
+}
+
+func (x *AudioMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+func (x *AudioMessage) GetStreamingSidecar() []byte {
+ if x != nil {
+ return x.StreamingSidecar
+ }
+ return nil
+}
+
+type VideoMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+ Mimetype *string `protobuf:"bytes,2,opt,name=mimetype" json:"mimetype,omitempty"`
+ FileSha256 []byte `protobuf:"bytes,3,opt,name=fileSha256" json:"fileSha256,omitempty"`
+ FileLength *uint64 `protobuf:"varint,4,opt,name=fileLength" json:"fileLength,omitempty"`
+ Seconds *uint32 `protobuf:"varint,5,opt,name=seconds" json:"seconds,omitempty"`
+ MediaKey []byte `protobuf:"bytes,6,opt,name=mediaKey" json:"mediaKey,omitempty"`
+ Caption *string `protobuf:"bytes,7,opt,name=caption" json:"caption,omitempty"`
+ GifPlayback *bool `protobuf:"varint,8,opt,name=gifPlayback" json:"gifPlayback,omitempty"`
+ Height *uint32 `protobuf:"varint,9,opt,name=height" json:"height,omitempty"`
+ Width *uint32 `protobuf:"varint,10,opt,name=width" json:"width,omitempty"`
+ FileEncSha256 []byte `protobuf:"bytes,11,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"`
+ InteractiveAnnotations []*InteractiveAnnotation `protobuf:"bytes,12,rep,name=interactiveAnnotations" json:"interactiveAnnotations,omitempty"`
+ DirectPath *string `protobuf:"bytes,13,opt,name=directPath" json:"directPath,omitempty"`
+ MediaKeyTimestamp *int64 `protobuf:"varint,14,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"`
+ JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+ StreamingSidecar []byte `protobuf:"bytes,18,opt,name=streamingSidecar" json:"streamingSidecar,omitempty"`
+ GifAttribution *VideoMessage_VideoMessageAttribution `protobuf:"varint,19,opt,name=gifAttribution,enum=proto.VideoMessage_VideoMessageAttribution" json:"gifAttribution,omitempty"`
+ ViewOnce *bool `protobuf:"varint,20,opt,name=viewOnce" json:"viewOnce,omitempty"`
+ ThumbnailDirectPath *string `protobuf:"bytes,21,opt,name=thumbnailDirectPath" json:"thumbnailDirectPath,omitempty"`
+ ThumbnailSha256 []byte `protobuf:"bytes,22,opt,name=thumbnailSha256" json:"thumbnailSha256,omitempty"`
+ ThumbnailEncSha256 []byte `protobuf:"bytes,23,opt,name=thumbnailEncSha256" json:"thumbnailEncSha256,omitempty"`
+}
+
+func (x *VideoMessage) Reset() {
+ *x = VideoMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[25]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *VideoMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*VideoMessage) ProtoMessage() {}
+
+func (x *VideoMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[25]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use VideoMessage.ProtoReflect.Descriptor instead.
+func (*VideoMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{25}
+}
+
+func (x *VideoMessage) GetUrl() string {
+ if x != nil && x.Url != nil {
+ return *x.Url
+ }
+ return ""
+}
+
+func (x *VideoMessage) GetMimetype() string {
+ if x != nil && x.Mimetype != nil {
+ return *x.Mimetype
+ }
+ return ""
+}
+
+func (x *VideoMessage) GetFileSha256() []byte {
+ if x != nil {
+ return x.FileSha256
+ }
+ return nil
+}
+
+func (x *VideoMessage) GetFileLength() uint64 {
+ if x != nil && x.FileLength != nil {
+ return *x.FileLength
+ }
+ return 0
+}
+
+func (x *VideoMessage) GetSeconds() uint32 {
+ if x != nil && x.Seconds != nil {
+ return *x.Seconds
+ }
+ return 0
+}
+
+func (x *VideoMessage) GetMediaKey() []byte {
+ if x != nil {
+ return x.MediaKey
+ }
+ return nil
+}
+
+func (x *VideoMessage) GetCaption() string {
+ if x != nil && x.Caption != nil {
+ return *x.Caption
+ }
+ return ""
+}
+
+func (x *VideoMessage) GetGifPlayback() bool {
+ if x != nil && x.GifPlayback != nil {
+ return *x.GifPlayback
+ }
+ return false
+}
+
+func (x *VideoMessage) GetHeight() uint32 {
+ if x != nil && x.Height != nil {
+ return *x.Height
+ }
+ return 0
+}
+
+func (x *VideoMessage) GetWidth() uint32 {
+ if x != nil && x.Width != nil {
+ return *x.Width
+ }
+ return 0
+}
+
+func (x *VideoMessage) GetFileEncSha256() []byte {
+ if x != nil {
+ return x.FileEncSha256
+ }
+ return nil
+}
+
+func (x *VideoMessage) GetInteractiveAnnotations() []*InteractiveAnnotation {
+ if x != nil {
+ return x.InteractiveAnnotations
+ }
+ return nil
+}
+
+func (x *VideoMessage) GetDirectPath() string {
+ if x != nil && x.DirectPath != nil {
+ return *x.DirectPath
+ }
+ return ""
+}
+
+func (x *VideoMessage) GetMediaKeyTimestamp() int64 {
+ if x != nil && x.MediaKeyTimestamp != nil {
+ return *x.MediaKeyTimestamp
+ }
+ return 0
+}
+
+func (x *VideoMessage) GetJpegThumbnail() []byte {
+ if x != nil {
+ return x.JpegThumbnail
+ }
+ return nil
+}
+
+func (x *VideoMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+func (x *VideoMessage) GetStreamingSidecar() []byte {
+ if x != nil {
+ return x.StreamingSidecar
+ }
+ return nil
+}
+
+func (x *VideoMessage) GetGifAttribution() VideoMessage_VideoMessageAttribution {
+ if x != nil && x.GifAttribution != nil {
+ return *x.GifAttribution
+ }
+ return VideoMessage_NONE
+}
+
+func (x *VideoMessage) GetViewOnce() bool {
+ if x != nil && x.ViewOnce != nil {
+ return *x.ViewOnce
+ }
+ return false
+}
+
+func (x *VideoMessage) GetThumbnailDirectPath() string {
+ if x != nil && x.ThumbnailDirectPath != nil {
+ return *x.ThumbnailDirectPath
+ }
+ return ""
+}
+
+func (x *VideoMessage) GetThumbnailSha256() []byte {
+ if x != nil {
+ return x.ThumbnailSha256
+ }
+ return nil
+}
+
+func (x *VideoMessage) GetThumbnailEncSha256() []byte {
+ if x != nil {
+ return x.ThumbnailEncSha256
+ }
+ return nil
+}
+
+type Call struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ CallKey []byte `protobuf:"bytes,1,opt,name=callKey" json:"callKey,omitempty"`
+}
+
+func (x *Call) Reset() {
+ *x = Call{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[26]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Call) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Call) ProtoMessage() {}
+
+func (x *Call) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[26]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Call.ProtoReflect.Descriptor instead.
+func (*Call) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{26}
+}
+
+func (x *Call) GetCallKey() []byte {
+ if x != nil {
+ return x.CallKey
+ }
+ return nil
+}
+
+type Chat struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DisplayName *string `protobuf:"bytes,1,opt,name=displayName" json:"displayName,omitempty"`
+ Id *string `protobuf:"bytes,2,opt,name=id" json:"id,omitempty"`
+}
+
+func (x *Chat) Reset() {
+ *x = Chat{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[27]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Chat) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Chat) ProtoMessage() {}
+
+func (x *Chat) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[27]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Chat.ProtoReflect.Descriptor instead.
+func (*Chat) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{27}
+}
+
+func (x *Chat) GetDisplayName() string {
+ if x != nil && x.DisplayName != nil {
+ return *x.DisplayName
+ }
+ return ""
+}
+
+func (x *Chat) GetId() string {
+ if x != nil && x.Id != nil {
+ return *x.Id
+ }
+ return ""
+}
+
+type ProtocolMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Key *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+ Type *ProtocolMessage_ProtocolMessageType `protobuf:"varint,2,opt,name=type,enum=proto.ProtocolMessage_ProtocolMessageType" json:"type,omitempty"`
+ EphemeralExpiration *uint32 `protobuf:"varint,4,opt,name=ephemeralExpiration" json:"ephemeralExpiration,omitempty"`
+ EphemeralSettingTimestamp *int64 `protobuf:"varint,5,opt,name=ephemeralSettingTimestamp" json:"ephemeralSettingTimestamp,omitempty"`
+ HistorySyncNotification *HistorySyncNotification `protobuf:"bytes,6,opt,name=historySyncNotification" json:"historySyncNotification,omitempty"`
+ AppStateSyncKeyShare *AppStateSyncKeyShare `protobuf:"bytes,7,opt,name=appStateSyncKeyShare" json:"appStateSyncKeyShare,omitempty"`
+ AppStateSyncKeyRequest *AppStateSyncKeyRequest `protobuf:"bytes,8,opt,name=appStateSyncKeyRequest" json:"appStateSyncKeyRequest,omitempty"`
+ InitialSecurityNotificationSettingSync *InitialSecurityNotificationSettingSync `protobuf:"bytes,9,opt,name=initialSecurityNotificationSettingSync" json:"initialSecurityNotificationSettingSync,omitempty"`
+ AppStateFatalExceptionNotification *AppStateFatalExceptionNotification `protobuf:"bytes,10,opt,name=appStateFatalExceptionNotification" json:"appStateFatalExceptionNotification,omitempty"`
+}
+
+func (x *ProtocolMessage) Reset() {
+ *x = ProtocolMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[28]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProtocolMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProtocolMessage) ProtoMessage() {}
+
+func (x *ProtocolMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[28]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProtocolMessage.ProtoReflect.Descriptor instead.
+func (*ProtocolMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{28}
+}
+
+func (x *ProtocolMessage) GetKey() *MessageKey {
+ if x != nil {
+ return x.Key
+ }
+ return nil
+}
+
+func (x *ProtocolMessage) GetType() ProtocolMessage_ProtocolMessageType {
+ if x != nil && x.Type != nil {
+ return *x.Type
+ }
+ return ProtocolMessage_REVOKE
+}
+
+func (x *ProtocolMessage) GetEphemeralExpiration() uint32 {
+ if x != nil && x.EphemeralExpiration != nil {
+ return *x.EphemeralExpiration
+ }
+ return 0
+}
+
+func (x *ProtocolMessage) GetEphemeralSettingTimestamp() int64 {
+ if x != nil && x.EphemeralSettingTimestamp != nil {
+ return *x.EphemeralSettingTimestamp
+ }
+ return 0
+}
+
+func (x *ProtocolMessage) GetHistorySyncNotification() *HistorySyncNotification {
+ if x != nil {
+ return x.HistorySyncNotification
+ }
+ return nil
+}
+
+func (x *ProtocolMessage) GetAppStateSyncKeyShare() *AppStateSyncKeyShare {
+ if x != nil {
+ return x.AppStateSyncKeyShare
+ }
+ return nil
+}
+
+func (x *ProtocolMessage) GetAppStateSyncKeyRequest() *AppStateSyncKeyRequest {
+ if x != nil {
+ return x.AppStateSyncKeyRequest
+ }
+ return nil
+}
+
+func (x *ProtocolMessage) GetInitialSecurityNotificationSettingSync() *InitialSecurityNotificationSettingSync {
+ if x != nil {
+ return x.InitialSecurityNotificationSettingSync
+ }
+ return nil
+}
+
+func (x *ProtocolMessage) GetAppStateFatalExceptionNotification() *AppStateFatalExceptionNotification {
+ if x != nil {
+ return x.AppStateFatalExceptionNotification
+ }
+ return nil
+}
+
+type HistorySyncNotification struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ FileSha256 []byte `protobuf:"bytes,1,opt,name=fileSha256" json:"fileSha256,omitempty"`
+ FileLength *uint64 `protobuf:"varint,2,opt,name=fileLength" json:"fileLength,omitempty"`
+ MediaKey []byte `protobuf:"bytes,3,opt,name=mediaKey" json:"mediaKey,omitempty"`
+ FileEncSha256 []byte `protobuf:"bytes,4,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"`
+ DirectPath *string `protobuf:"bytes,5,opt,name=directPath" json:"directPath,omitempty"`
+ SyncType *HistorySyncNotification_HistorySyncNotificationHistorySyncType `protobuf:"varint,6,opt,name=syncType,enum=proto.HistorySyncNotification_HistorySyncNotificationHistorySyncType" json:"syncType,omitempty"`
+ ChunkOrder *uint32 `protobuf:"varint,7,opt,name=chunkOrder" json:"chunkOrder,omitempty"`
+ OriginalMessageId *string `protobuf:"bytes,8,opt,name=originalMessageId" json:"originalMessageId,omitempty"`
+}
+
+func (x *HistorySyncNotification) Reset() {
+ *x = HistorySyncNotification{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[29]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HistorySyncNotification) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HistorySyncNotification) ProtoMessage() {}
+
+func (x *HistorySyncNotification) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[29]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HistorySyncNotification.ProtoReflect.Descriptor instead.
+func (*HistorySyncNotification) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{29}
+}
+
+func (x *HistorySyncNotification) GetFileSha256() []byte {
+ if x != nil {
+ return x.FileSha256
+ }
+ return nil
+}
+
+func (x *HistorySyncNotification) GetFileLength() uint64 {
+ if x != nil && x.FileLength != nil {
+ return *x.FileLength
+ }
+ return 0
+}
+
+func (x *HistorySyncNotification) GetMediaKey() []byte {
+ if x != nil {
+ return x.MediaKey
+ }
+ return nil
+}
+
+func (x *HistorySyncNotification) GetFileEncSha256() []byte {
+ if x != nil {
+ return x.FileEncSha256
+ }
+ return nil
+}
+
+func (x *HistorySyncNotification) GetDirectPath() string {
+ if x != nil && x.DirectPath != nil {
+ return *x.DirectPath
+ }
+ return ""
+}
+
+func (x *HistorySyncNotification) GetSyncType() HistorySyncNotification_HistorySyncNotificationHistorySyncType {
+ if x != nil && x.SyncType != nil {
+ return *x.SyncType
+ }
+ return HistorySyncNotification_INITIAL_BOOTSTRAP
+}
+
+func (x *HistorySyncNotification) GetChunkOrder() uint32 {
+ if x != nil && x.ChunkOrder != nil {
+ return *x.ChunkOrder
+ }
+ return 0
+}
+
+func (x *HistorySyncNotification) GetOriginalMessageId() string {
+ if x != nil && x.OriginalMessageId != nil {
+ return *x.OriginalMessageId
+ }
+ return ""
+}
+
+type AppStateSyncKey struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ KeyId *AppStateSyncKeyId `protobuf:"bytes,1,opt,name=keyId" json:"keyId,omitempty"`
+ KeyData *AppStateSyncKeyData `protobuf:"bytes,2,opt,name=keyData" json:"keyData,omitempty"`
+}
+
+func (x *AppStateSyncKey) Reset() {
+ *x = AppStateSyncKey{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[30]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AppStateSyncKey) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AppStateSyncKey) ProtoMessage() {}
+
+func (x *AppStateSyncKey) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[30]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AppStateSyncKey.ProtoReflect.Descriptor instead.
+func (*AppStateSyncKey) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{30}
+}
+
+func (x *AppStateSyncKey) GetKeyId() *AppStateSyncKeyId {
+ if x != nil {
+ return x.KeyId
+ }
+ return nil
+}
+
+func (x *AppStateSyncKey) GetKeyData() *AppStateSyncKeyData {
+ if x != nil {
+ return x.KeyData
+ }
+ return nil
+}
+
+type AppStateSyncKeyId struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ KeyId []byte `protobuf:"bytes,1,opt,name=keyId" json:"keyId,omitempty"`
+}
+
+func (x *AppStateSyncKeyId) Reset() {
+ *x = AppStateSyncKeyId{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[31]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AppStateSyncKeyId) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AppStateSyncKeyId) ProtoMessage() {}
+
+func (x *AppStateSyncKeyId) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[31]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AppStateSyncKeyId.ProtoReflect.Descriptor instead.
+func (*AppStateSyncKeyId) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{31}
+}
+
+func (x *AppStateSyncKeyId) GetKeyId() []byte {
+ if x != nil {
+ return x.KeyId
+ }
+ return nil
+}
+
+type AppStateSyncKeyFingerprint struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ RawId *uint32 `protobuf:"varint,1,opt,name=rawId" json:"rawId,omitempty"`
+ CurrentIndex *uint32 `protobuf:"varint,2,opt,name=currentIndex" json:"currentIndex,omitempty"`
+ DeviceIndexes []uint32 `protobuf:"varint,3,rep,packed,name=deviceIndexes" json:"deviceIndexes,omitempty"`
+}
+
+func (x *AppStateSyncKeyFingerprint) Reset() {
+ *x = AppStateSyncKeyFingerprint{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[32]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AppStateSyncKeyFingerprint) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AppStateSyncKeyFingerprint) ProtoMessage() {}
+
+func (x *AppStateSyncKeyFingerprint) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[32]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AppStateSyncKeyFingerprint.ProtoReflect.Descriptor instead.
+func (*AppStateSyncKeyFingerprint) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{32}
+}
+
+func (x *AppStateSyncKeyFingerprint) GetRawId() uint32 {
+ if x != nil && x.RawId != nil {
+ return *x.RawId
+ }
+ return 0
+}
+
+func (x *AppStateSyncKeyFingerprint) GetCurrentIndex() uint32 {
+ if x != nil && x.CurrentIndex != nil {
+ return *x.CurrentIndex
+ }
+ return 0
+}
+
+func (x *AppStateSyncKeyFingerprint) GetDeviceIndexes() []uint32 {
+ if x != nil {
+ return x.DeviceIndexes
+ }
+ return nil
+}
+
+type AppStateSyncKeyData struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ KeyData []byte `protobuf:"bytes,1,opt,name=keyData" json:"keyData,omitempty"`
+ Fingerprint *AppStateSyncKeyFingerprint `protobuf:"bytes,2,opt,name=fingerprint" json:"fingerprint,omitempty"`
+ Timestamp *int64 `protobuf:"varint,3,opt,name=timestamp" json:"timestamp,omitempty"`
+}
+
+func (x *AppStateSyncKeyData) Reset() {
+ *x = AppStateSyncKeyData{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[33]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AppStateSyncKeyData) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AppStateSyncKeyData) ProtoMessage() {}
+
+func (x *AppStateSyncKeyData) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[33]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AppStateSyncKeyData.ProtoReflect.Descriptor instead.
+func (*AppStateSyncKeyData) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{33}
+}
+
+func (x *AppStateSyncKeyData) GetKeyData() []byte {
+ if x != nil {
+ return x.KeyData
+ }
+ return nil
+}
+
+func (x *AppStateSyncKeyData) GetFingerprint() *AppStateSyncKeyFingerprint {
+ if x != nil {
+ return x.Fingerprint
+ }
+ return nil
+}
+
+func (x *AppStateSyncKeyData) GetTimestamp() int64 {
+ if x != nil && x.Timestamp != nil {
+ return *x.Timestamp
+ }
+ return 0
+}
+
+type AppStateSyncKeyShare struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Keys []*AppStateSyncKey `protobuf:"bytes,1,rep,name=keys" json:"keys,omitempty"`
+}
+
+func (x *AppStateSyncKeyShare) Reset() {
+ *x = AppStateSyncKeyShare{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[34]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AppStateSyncKeyShare) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AppStateSyncKeyShare) ProtoMessage() {}
+
+func (x *AppStateSyncKeyShare) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[34]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AppStateSyncKeyShare.ProtoReflect.Descriptor instead.
+func (*AppStateSyncKeyShare) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{34}
+}
+
+func (x *AppStateSyncKeyShare) GetKeys() []*AppStateSyncKey {
+ if x != nil {
+ return x.Keys
+ }
+ return nil
+}
+
+type AppStateSyncKeyRequest struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ KeyIds []*AppStateSyncKeyId `protobuf:"bytes,1,rep,name=keyIds" json:"keyIds,omitempty"`
+}
+
+func (x *AppStateSyncKeyRequest) Reset() {
+ *x = AppStateSyncKeyRequest{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[35]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AppStateSyncKeyRequest) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AppStateSyncKeyRequest) ProtoMessage() {}
+
+func (x *AppStateSyncKeyRequest) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[35]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AppStateSyncKeyRequest.ProtoReflect.Descriptor instead.
+func (*AppStateSyncKeyRequest) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{35}
+}
+
+func (x *AppStateSyncKeyRequest) GetKeyIds() []*AppStateSyncKeyId {
+ if x != nil {
+ return x.KeyIds
+ }
+ return nil
+}
+
+type AppStateFatalExceptionNotification struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ CollectionNames []string `protobuf:"bytes,1,rep,name=collectionNames" json:"collectionNames,omitempty"`
+ Timestamp *int64 `protobuf:"varint,2,opt,name=timestamp" json:"timestamp,omitempty"`
+}
+
+func (x *AppStateFatalExceptionNotification) Reset() {
+ *x = AppStateFatalExceptionNotification{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[36]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *AppStateFatalExceptionNotification) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*AppStateFatalExceptionNotification) ProtoMessage() {}
+
+func (x *AppStateFatalExceptionNotification) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[36]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use AppStateFatalExceptionNotification.ProtoReflect.Descriptor instead.
+func (*AppStateFatalExceptionNotification) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{36}
+}
+
+func (x *AppStateFatalExceptionNotification) GetCollectionNames() []string {
+ if x != nil {
+ return x.CollectionNames
+ }
+ return nil
+}
+
+func (x *AppStateFatalExceptionNotification) GetTimestamp() int64 {
+ if x != nil && x.Timestamp != nil {
+ return *x.Timestamp
+ }
+ return 0
+}
+
+type InitialSecurityNotificationSettingSync struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SecurityNotificationEnabled *bool `protobuf:"varint,1,opt,name=securityNotificationEnabled" json:"securityNotificationEnabled,omitempty"`
+}
+
+func (x *InitialSecurityNotificationSettingSync) Reset() {
+ *x = InitialSecurityNotificationSettingSync{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[37]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *InitialSecurityNotificationSettingSync) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*InitialSecurityNotificationSettingSync) ProtoMessage() {}
+
+func (x *InitialSecurityNotificationSettingSync) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[37]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use InitialSecurityNotificationSettingSync.ProtoReflect.Descriptor instead.
+func (*InitialSecurityNotificationSettingSync) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{37}
+}
+
+func (x *InitialSecurityNotificationSettingSync) GetSecurityNotificationEnabled() bool {
+ if x != nil && x.SecurityNotificationEnabled != nil {
+ return *x.SecurityNotificationEnabled
+ }
+ return false
+}
+
+type ContactsArrayMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DisplayName *string `protobuf:"bytes,1,opt,name=displayName" json:"displayName,omitempty"`
+ Contacts []*ContactMessage `protobuf:"bytes,2,rep,name=contacts" json:"contacts,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+}
+
+func (x *ContactsArrayMessage) Reset() {
+ *x = ContactsArrayMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[38]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ContactsArrayMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ContactsArrayMessage) ProtoMessage() {}
+
+func (x *ContactsArrayMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[38]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ContactsArrayMessage.ProtoReflect.Descriptor instead.
+func (*ContactsArrayMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{38}
+}
+
+func (x *ContactsArrayMessage) GetDisplayName() string {
+ if x != nil && x.DisplayName != nil {
+ return *x.DisplayName
+ }
+ return ""
+}
+
+func (x *ContactsArrayMessage) GetContacts() []*ContactMessage {
+ if x != nil {
+ return x.Contacts
+ }
+ return nil
+}
+
+func (x *ContactsArrayMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+type HSMCurrency struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ CurrencyCode *string `protobuf:"bytes,1,opt,name=currencyCode" json:"currencyCode,omitempty"`
+ Amount1000 *int64 `protobuf:"varint,2,opt,name=amount1000" json:"amount1000,omitempty"`
+}
+
+func (x *HSMCurrency) Reset() {
+ *x = HSMCurrency{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[39]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HSMCurrency) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HSMCurrency) ProtoMessage() {}
+
+func (x *HSMCurrency) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[39]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HSMCurrency.ProtoReflect.Descriptor instead.
+func (*HSMCurrency) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{39}
+}
+
+func (x *HSMCurrency) GetCurrencyCode() string {
+ if x != nil && x.CurrencyCode != nil {
+ return *x.CurrencyCode
+ }
+ return ""
+}
+
+func (x *HSMCurrency) GetAmount1000() int64 {
+ if x != nil && x.Amount1000 != nil {
+ return *x.Amount1000
+ }
+ return 0
+}
+
+type HSMDateTimeComponent struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DayOfWeek *HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType `protobuf:"varint,1,opt,name=dayOfWeek,enum=proto.HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType" json:"dayOfWeek,omitempty"`
+ Year *uint32 `protobuf:"varint,2,opt,name=year" json:"year,omitempty"`
+ Month *uint32 `protobuf:"varint,3,opt,name=month" json:"month,omitempty"`
+ DayOfMonth *uint32 `protobuf:"varint,4,opt,name=dayOfMonth" json:"dayOfMonth,omitempty"`
+ Hour *uint32 `protobuf:"varint,5,opt,name=hour" json:"hour,omitempty"`
+ Minute *uint32 `protobuf:"varint,6,opt,name=minute" json:"minute,omitempty"`
+ Calendar *HSMDateTimeComponent_HSMDateTimeComponentCalendarType `protobuf:"varint,7,opt,name=calendar,enum=proto.HSMDateTimeComponent_HSMDateTimeComponentCalendarType" json:"calendar,omitempty"`
+}
+
+func (x *HSMDateTimeComponent) Reset() {
+ *x = HSMDateTimeComponent{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[40]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HSMDateTimeComponent) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HSMDateTimeComponent) ProtoMessage() {}
+
+func (x *HSMDateTimeComponent) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[40]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HSMDateTimeComponent.ProtoReflect.Descriptor instead.
+func (*HSMDateTimeComponent) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{40}
+}
+
+func (x *HSMDateTimeComponent) GetDayOfWeek() HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType {
+ if x != nil && x.DayOfWeek != nil {
+ return *x.DayOfWeek
+ }
+ return HSMDateTimeComponent_MONDAY
+}
+
+func (x *HSMDateTimeComponent) GetYear() uint32 {
+ if x != nil && x.Year != nil {
+ return *x.Year
+ }
+ return 0
+}
+
+func (x *HSMDateTimeComponent) GetMonth() uint32 {
+ if x != nil && x.Month != nil {
+ return *x.Month
+ }
+ return 0
+}
+
+func (x *HSMDateTimeComponent) GetDayOfMonth() uint32 {
+ if x != nil && x.DayOfMonth != nil {
+ return *x.DayOfMonth
+ }
+ return 0
+}
+
+func (x *HSMDateTimeComponent) GetHour() uint32 {
+ if x != nil && x.Hour != nil {
+ return *x.Hour
+ }
+ return 0
+}
+
+func (x *HSMDateTimeComponent) GetMinute() uint32 {
+ if x != nil && x.Minute != nil {
+ return *x.Minute
+ }
+ return 0
+}
+
+func (x *HSMDateTimeComponent) GetCalendar() HSMDateTimeComponent_HSMDateTimeComponentCalendarType {
+ if x != nil && x.Calendar != nil {
+ return *x.Calendar
+ }
+ return HSMDateTimeComponent_GREGORIAN
+}
+
+type HSMDateTimeUnixEpoch struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Timestamp *int64 `protobuf:"varint,1,opt,name=timestamp" json:"timestamp,omitempty"`
+}
+
+func (x *HSMDateTimeUnixEpoch) Reset() {
+ *x = HSMDateTimeUnixEpoch{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[41]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HSMDateTimeUnixEpoch) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HSMDateTimeUnixEpoch) ProtoMessage() {}
+
+func (x *HSMDateTimeUnixEpoch) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[41]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HSMDateTimeUnixEpoch.ProtoReflect.Descriptor instead.
+func (*HSMDateTimeUnixEpoch) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{41}
+}
+
+func (x *HSMDateTimeUnixEpoch) GetTimestamp() int64 {
+ if x != nil && x.Timestamp != nil {
+ return *x.Timestamp
+ }
+ return 0
+}
+
+type HSMDateTime struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ // Types that are assignable to DatetimeOneof:
+ // *HSMDateTime_Component
+ // *HSMDateTime_UnixEpoch
+ DatetimeOneof isHSMDateTime_DatetimeOneof `protobuf_oneof:"datetimeOneof"`
+}
+
+func (x *HSMDateTime) Reset() {
+ *x = HSMDateTime{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[42]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HSMDateTime) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HSMDateTime) ProtoMessage() {}
+
+func (x *HSMDateTime) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[42]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HSMDateTime.ProtoReflect.Descriptor instead.
+func (*HSMDateTime) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{42}
+}
+
+func (m *HSMDateTime) GetDatetimeOneof() isHSMDateTime_DatetimeOneof {
+ if m != nil {
+ return m.DatetimeOneof
+ }
+ return nil
+}
+
+func (x *HSMDateTime) GetComponent() *HSMDateTimeComponent {
+ if x, ok := x.GetDatetimeOneof().(*HSMDateTime_Component); ok {
+ return x.Component
+ }
+ return nil
+}
+
+func (x *HSMDateTime) GetUnixEpoch() *HSMDateTimeUnixEpoch {
+ if x, ok := x.GetDatetimeOneof().(*HSMDateTime_UnixEpoch); ok {
+ return x.UnixEpoch
+ }
+ return nil
+}
+
+type isHSMDateTime_DatetimeOneof interface {
+ isHSMDateTime_DatetimeOneof()
+}
+
+type HSMDateTime_Component struct {
+ Component *HSMDateTimeComponent `protobuf:"bytes,1,opt,name=component,oneof"`
+}
+
+type HSMDateTime_UnixEpoch struct {
+ UnixEpoch *HSMDateTimeUnixEpoch `protobuf:"bytes,2,opt,name=unixEpoch,oneof"`
+}
+
+func (*HSMDateTime_Component) isHSMDateTime_DatetimeOneof() {}
+
+func (*HSMDateTime_UnixEpoch) isHSMDateTime_DatetimeOneof() {}
+
+type HSMLocalizableParameter struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Default *string `protobuf:"bytes,1,opt,name=default" json:"default,omitempty"`
+ // Types that are assignable to ParamOneof:
+ // *HSMLocalizableParameter_Currency
+ // *HSMLocalizableParameter_DateTime
+ ParamOneof isHSMLocalizableParameter_ParamOneof `protobuf_oneof:"paramOneof"`
+}
+
+func (x *HSMLocalizableParameter) Reset() {
+ *x = HSMLocalizableParameter{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[43]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HSMLocalizableParameter) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HSMLocalizableParameter) ProtoMessage() {}
+
+func (x *HSMLocalizableParameter) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[43]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HSMLocalizableParameter.ProtoReflect.Descriptor instead.
+func (*HSMLocalizableParameter) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{43}
+}
+
+func (x *HSMLocalizableParameter) GetDefault() string {
+ if x != nil && x.Default != nil {
+ return *x.Default
+ }
+ return ""
+}
+
+func (m *HSMLocalizableParameter) GetParamOneof() isHSMLocalizableParameter_ParamOneof {
+ if m != nil {
+ return m.ParamOneof
+ }
+ return nil
+}
+
+func (x *HSMLocalizableParameter) GetCurrency() *HSMCurrency {
+ if x, ok := x.GetParamOneof().(*HSMLocalizableParameter_Currency); ok {
+ return x.Currency
+ }
+ return nil
+}
+
+func (x *HSMLocalizableParameter) GetDateTime() *HSMDateTime {
+ if x, ok := x.GetParamOneof().(*HSMLocalizableParameter_DateTime); ok {
+ return x.DateTime
+ }
+ return nil
+}
+
+type isHSMLocalizableParameter_ParamOneof interface {
+ isHSMLocalizableParameter_ParamOneof()
+}
+
+type HSMLocalizableParameter_Currency struct {
+ Currency *HSMCurrency `protobuf:"bytes,2,opt,name=currency,oneof"`
+}
+
+type HSMLocalizableParameter_DateTime struct {
+ DateTime *HSMDateTime `protobuf:"bytes,3,opt,name=dateTime,oneof"`
+}
+
+func (*HSMLocalizableParameter_Currency) isHSMLocalizableParameter_ParamOneof() {}
+
+func (*HSMLocalizableParameter_DateTime) isHSMLocalizableParameter_ParamOneof() {}
+
+type HighlyStructuredMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Namespace *string `protobuf:"bytes,1,opt,name=namespace" json:"namespace,omitempty"`
+ ElementName *string `protobuf:"bytes,2,opt,name=elementName" json:"elementName,omitempty"`
+ Params []string `protobuf:"bytes,3,rep,name=params" json:"params,omitempty"`
+ FallbackLg *string `protobuf:"bytes,4,opt,name=fallbackLg" json:"fallbackLg,omitempty"`
+ FallbackLc *string `protobuf:"bytes,5,opt,name=fallbackLc" json:"fallbackLc,omitempty"`
+ LocalizableParams []*HSMLocalizableParameter `protobuf:"bytes,6,rep,name=localizableParams" json:"localizableParams,omitempty"`
+ DeterministicLg *string `protobuf:"bytes,7,opt,name=deterministicLg" json:"deterministicLg,omitempty"`
+ DeterministicLc *string `protobuf:"bytes,8,opt,name=deterministicLc" json:"deterministicLc,omitempty"`
+ HydratedHsm *TemplateMessage `protobuf:"bytes,9,opt,name=hydratedHsm" json:"hydratedHsm,omitempty"`
+}
+
+func (x *HighlyStructuredMessage) Reset() {
+ *x = HighlyStructuredMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[44]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HighlyStructuredMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HighlyStructuredMessage) ProtoMessage() {}
+
+func (x *HighlyStructuredMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[44]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HighlyStructuredMessage.ProtoReflect.Descriptor instead.
+func (*HighlyStructuredMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{44}
+}
+
+func (x *HighlyStructuredMessage) GetNamespace() string {
+ if x != nil && x.Namespace != nil {
+ return *x.Namespace
+ }
+ return ""
+}
+
+func (x *HighlyStructuredMessage) GetElementName() string {
+ if x != nil && x.ElementName != nil {
+ return *x.ElementName
+ }
+ return ""
+}
+
+func (x *HighlyStructuredMessage) GetParams() []string {
+ if x != nil {
+ return x.Params
+ }
+ return nil
+}
+
+func (x *HighlyStructuredMessage) GetFallbackLg() string {
+ if x != nil && x.FallbackLg != nil {
+ return *x.FallbackLg
+ }
+ return ""
+}
+
+func (x *HighlyStructuredMessage) GetFallbackLc() string {
+ if x != nil && x.FallbackLc != nil {
+ return *x.FallbackLc
+ }
+ return ""
+}
+
+func (x *HighlyStructuredMessage) GetLocalizableParams() []*HSMLocalizableParameter {
+ if x != nil {
+ return x.LocalizableParams
+ }
+ return nil
+}
+
+func (x *HighlyStructuredMessage) GetDeterministicLg() string {
+ if x != nil && x.DeterministicLg != nil {
+ return *x.DeterministicLg
+ }
+ return ""
+}
+
+func (x *HighlyStructuredMessage) GetDeterministicLc() string {
+ if x != nil && x.DeterministicLc != nil {
+ return *x.DeterministicLc
+ }
+ return ""
+}
+
+func (x *HighlyStructuredMessage) GetHydratedHsm() *TemplateMessage {
+ if x != nil {
+ return x.HydratedHsm
+ }
+ return nil
+}
+
+type SendPaymentMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ NoteMessage *Message `protobuf:"bytes,2,opt,name=noteMessage" json:"noteMessage,omitempty"`
+ RequestMessageKey *MessageKey `protobuf:"bytes,3,opt,name=requestMessageKey" json:"requestMessageKey,omitempty"`
+}
+
+func (x *SendPaymentMessage) Reset() {
+ *x = SendPaymentMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[45]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SendPaymentMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SendPaymentMessage) ProtoMessage() {}
+
+func (x *SendPaymentMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[45]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SendPaymentMessage.ProtoReflect.Descriptor instead.
+func (*SendPaymentMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{45}
+}
+
+func (x *SendPaymentMessage) GetNoteMessage() *Message {
+ if x != nil {
+ return x.NoteMessage
+ }
+ return nil
+}
+
+func (x *SendPaymentMessage) GetRequestMessageKey() *MessageKey {
+ if x != nil {
+ return x.RequestMessageKey
+ }
+ return nil
+}
+
+type RequestPaymentMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ NoteMessage *Message `protobuf:"bytes,4,opt,name=noteMessage" json:"noteMessage,omitempty"`
+ CurrencyCodeIso4217 *string `protobuf:"bytes,1,opt,name=currencyCodeIso4217" json:"currencyCodeIso4217,omitempty"`
+ Amount1000 *uint64 `protobuf:"varint,2,opt,name=amount1000" json:"amount1000,omitempty"`
+ RequestFrom *string `protobuf:"bytes,3,opt,name=requestFrom" json:"requestFrom,omitempty"`
+ ExpiryTimestamp *int64 `protobuf:"varint,5,opt,name=expiryTimestamp" json:"expiryTimestamp,omitempty"`
+ Amount *PaymentMoney `protobuf:"bytes,6,opt,name=amount" json:"amount,omitempty"`
+}
+
+func (x *RequestPaymentMessage) Reset() {
+ *x = RequestPaymentMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[46]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RequestPaymentMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RequestPaymentMessage) ProtoMessage() {}
+
+func (x *RequestPaymentMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[46]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use RequestPaymentMessage.ProtoReflect.Descriptor instead.
+func (*RequestPaymentMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{46}
+}
+
+func (x *RequestPaymentMessage) GetNoteMessage() *Message {
+ if x != nil {
+ return x.NoteMessage
+ }
+ return nil
+}
+
+func (x *RequestPaymentMessage) GetCurrencyCodeIso4217() string {
+ if x != nil && x.CurrencyCodeIso4217 != nil {
+ return *x.CurrencyCodeIso4217
+ }
+ return ""
+}
+
+func (x *RequestPaymentMessage) GetAmount1000() uint64 {
+ if x != nil && x.Amount1000 != nil {
+ return *x.Amount1000
+ }
+ return 0
+}
+
+func (x *RequestPaymentMessage) GetRequestFrom() string {
+ if x != nil && x.RequestFrom != nil {
+ return *x.RequestFrom
+ }
+ return ""
+}
+
+func (x *RequestPaymentMessage) GetExpiryTimestamp() int64 {
+ if x != nil && x.ExpiryTimestamp != nil {
+ return *x.ExpiryTimestamp
+ }
+ return 0
+}
+
+func (x *RequestPaymentMessage) GetAmount() *PaymentMoney {
+ if x != nil {
+ return x.Amount
+ }
+ return nil
+}
+
+type DeclinePaymentRequestMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Key *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+}
+
+func (x *DeclinePaymentRequestMessage) Reset() {
+ *x = DeclinePaymentRequestMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[47]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeclinePaymentRequestMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeclinePaymentRequestMessage) ProtoMessage() {}
+
+func (x *DeclinePaymentRequestMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[47]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeclinePaymentRequestMessage.ProtoReflect.Descriptor instead.
+func (*DeclinePaymentRequestMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{47}
+}
+
+func (x *DeclinePaymentRequestMessage) GetKey() *MessageKey {
+ if x != nil {
+ return x.Key
+ }
+ return nil
+}
+
+type CancelPaymentRequestMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Key *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+}
+
+func (x *CancelPaymentRequestMessage) Reset() {
+ *x = CancelPaymentRequestMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[48]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CancelPaymentRequestMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CancelPaymentRequestMessage) ProtoMessage() {}
+
+func (x *CancelPaymentRequestMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[48]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CancelPaymentRequestMessage.ProtoReflect.Descriptor instead.
+func (*CancelPaymentRequestMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{48}
+}
+
+func (x *CancelPaymentRequestMessage) GetKey() *MessageKey {
+ if x != nil {
+ return x.Key
+ }
+ return nil
+}
+
+type LiveLocationMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DegreesLatitude *float64 `protobuf:"fixed64,1,opt,name=degreesLatitude" json:"degreesLatitude,omitempty"`
+ DegreesLongitude *float64 `protobuf:"fixed64,2,opt,name=degreesLongitude" json:"degreesLongitude,omitempty"`
+ AccuracyInMeters *uint32 `protobuf:"varint,3,opt,name=accuracyInMeters" json:"accuracyInMeters,omitempty"`
+ SpeedInMps *float32 `protobuf:"fixed32,4,opt,name=speedInMps" json:"speedInMps,omitempty"`
+ DegreesClockwiseFromMagneticNorth *uint32 `protobuf:"varint,5,opt,name=degreesClockwiseFromMagneticNorth" json:"degreesClockwiseFromMagneticNorth,omitempty"`
+ Caption *string `protobuf:"bytes,6,opt,name=caption" json:"caption,omitempty"`
+ SequenceNumber *int64 `protobuf:"varint,7,opt,name=sequenceNumber" json:"sequenceNumber,omitempty"`
+ TimeOffset *uint32 `protobuf:"varint,8,opt,name=timeOffset" json:"timeOffset,omitempty"`
+ JpegThumbnail []byte `protobuf:"bytes,16,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+}
+
+func (x *LiveLocationMessage) Reset() {
+ *x = LiveLocationMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[49]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *LiveLocationMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*LiveLocationMessage) ProtoMessage() {}
+
+func (x *LiveLocationMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[49]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use LiveLocationMessage.ProtoReflect.Descriptor instead.
+func (*LiveLocationMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{49}
+}
+
+func (x *LiveLocationMessage) GetDegreesLatitude() float64 {
+ if x != nil && x.DegreesLatitude != nil {
+ return *x.DegreesLatitude
+ }
+ return 0
+}
+
+func (x *LiveLocationMessage) GetDegreesLongitude() float64 {
+ if x != nil && x.DegreesLongitude != nil {
+ return *x.DegreesLongitude
+ }
+ return 0
+}
+
+func (x *LiveLocationMessage) GetAccuracyInMeters() uint32 {
+ if x != nil && x.AccuracyInMeters != nil {
+ return *x.AccuracyInMeters
+ }
+ return 0
+}
+
+func (x *LiveLocationMessage) GetSpeedInMps() float32 {
+ if x != nil && x.SpeedInMps != nil {
+ return *x.SpeedInMps
+ }
+ return 0
+}
+
+func (x *LiveLocationMessage) GetDegreesClockwiseFromMagneticNorth() uint32 {
+ if x != nil && x.DegreesClockwiseFromMagneticNorth != nil {
+ return *x.DegreesClockwiseFromMagneticNorth
+ }
+ return 0
+}
+
+func (x *LiveLocationMessage) GetCaption() string {
+ if x != nil && x.Caption != nil {
+ return *x.Caption
+ }
+ return ""
+}
+
+func (x *LiveLocationMessage) GetSequenceNumber() int64 {
+ if x != nil && x.SequenceNumber != nil {
+ return *x.SequenceNumber
+ }
+ return 0
+}
+
+func (x *LiveLocationMessage) GetTimeOffset() uint32 {
+ if x != nil && x.TimeOffset != nil {
+ return *x.TimeOffset
+ }
+ return 0
+}
+
+func (x *LiveLocationMessage) GetJpegThumbnail() []byte {
+ if x != nil {
+ return x.JpegThumbnail
+ }
+ return nil
+}
+
+func (x *LiveLocationMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+type StickerMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Url *string `protobuf:"bytes,1,opt,name=url" json:"url,omitempty"`
+ FileSha256 []byte `protobuf:"bytes,2,opt,name=fileSha256" json:"fileSha256,omitempty"`
+ FileEncSha256 []byte `protobuf:"bytes,3,opt,name=fileEncSha256" json:"fileEncSha256,omitempty"`
+ MediaKey []byte `protobuf:"bytes,4,opt,name=mediaKey" json:"mediaKey,omitempty"`
+ Mimetype *string `protobuf:"bytes,5,opt,name=mimetype" json:"mimetype,omitempty"`
+ Height *uint32 `protobuf:"varint,6,opt,name=height" json:"height,omitempty"`
+ Width *uint32 `protobuf:"varint,7,opt,name=width" json:"width,omitempty"`
+ DirectPath *string `protobuf:"bytes,8,opt,name=directPath" json:"directPath,omitempty"`
+ FileLength *uint64 `protobuf:"varint,9,opt,name=fileLength" json:"fileLength,omitempty"`
+ MediaKeyTimestamp *int64 `protobuf:"varint,10,opt,name=mediaKeyTimestamp" json:"mediaKeyTimestamp,omitempty"`
+ FirstFrameLength *uint32 `protobuf:"varint,11,opt,name=firstFrameLength" json:"firstFrameLength,omitempty"`
+ FirstFrameSidecar []byte `protobuf:"bytes,12,opt,name=firstFrameSidecar" json:"firstFrameSidecar,omitempty"`
+ IsAnimated *bool `protobuf:"varint,13,opt,name=isAnimated" json:"isAnimated,omitempty"`
+ PngThumbnail []byte `protobuf:"bytes,16,opt,name=pngThumbnail" json:"pngThumbnail,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+}
+
+func (x *StickerMessage) Reset() {
+ *x = StickerMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[50]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *StickerMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*StickerMessage) ProtoMessage() {}
+
+func (x *StickerMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[50]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use StickerMessage.ProtoReflect.Descriptor instead.
+func (*StickerMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{50}
+}
+
+func (x *StickerMessage) GetUrl() string {
+ if x != nil && x.Url != nil {
+ return *x.Url
+ }
+ return ""
+}
+
+func (x *StickerMessage) GetFileSha256() []byte {
+ if x != nil {
+ return x.FileSha256
+ }
+ return nil
+}
+
+func (x *StickerMessage) GetFileEncSha256() []byte {
+ if x != nil {
+ return x.FileEncSha256
+ }
+ return nil
+}
+
+func (x *StickerMessage) GetMediaKey() []byte {
+ if x != nil {
+ return x.MediaKey
+ }
+ return nil
+}
+
+func (x *StickerMessage) GetMimetype() string {
+ if x != nil && x.Mimetype != nil {
+ return *x.Mimetype
+ }
+ return ""
+}
+
+func (x *StickerMessage) GetHeight() uint32 {
+ if x != nil && x.Height != nil {
+ return *x.Height
+ }
+ return 0
+}
+
+func (x *StickerMessage) GetWidth() uint32 {
+ if x != nil && x.Width != nil {
+ return *x.Width
+ }
+ return 0
+}
+
+func (x *StickerMessage) GetDirectPath() string {
+ if x != nil && x.DirectPath != nil {
+ return *x.DirectPath
+ }
+ return ""
+}
+
+func (x *StickerMessage) GetFileLength() uint64 {
+ if x != nil && x.FileLength != nil {
+ return *x.FileLength
+ }
+ return 0
+}
+
+func (x *StickerMessage) GetMediaKeyTimestamp() int64 {
+ if x != nil && x.MediaKeyTimestamp != nil {
+ return *x.MediaKeyTimestamp
+ }
+ return 0
+}
+
+func (x *StickerMessage) GetFirstFrameLength() uint32 {
+ if x != nil && x.FirstFrameLength != nil {
+ return *x.FirstFrameLength
+ }
+ return 0
+}
+
+func (x *StickerMessage) GetFirstFrameSidecar() []byte {
+ if x != nil {
+ return x.FirstFrameSidecar
+ }
+ return nil
+}
+
+func (x *StickerMessage) GetIsAnimated() bool {
+ if x != nil && x.IsAnimated != nil {
+ return *x.IsAnimated
+ }
+ return false
+}
+
+func (x *StickerMessage) GetPngThumbnail() []byte {
+ if x != nil {
+ return x.PngThumbnail
+ }
+ return nil
+}
+
+func (x *StickerMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+type FourRowTemplate struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Content *HighlyStructuredMessage `protobuf:"bytes,6,opt,name=content" json:"content,omitempty"`
+ Footer *HighlyStructuredMessage `protobuf:"bytes,7,opt,name=footer" json:"footer,omitempty"`
+ Buttons []*TemplateButton `protobuf:"bytes,8,rep,name=buttons" json:"buttons,omitempty"`
+ // Types that are assignable to Title:
+ // *FourRowTemplate_DocumentMessage
+ // *FourRowTemplate_HighlyStructuredMessage
+ // *FourRowTemplate_ImageMessage
+ // *FourRowTemplate_VideoMessage
+ // *FourRowTemplate_LocationMessage
+ Title isFourRowTemplate_Title `protobuf_oneof:"title"`
+}
+
+func (x *FourRowTemplate) Reset() {
+ *x = FourRowTemplate{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[51]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *FourRowTemplate) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FourRowTemplate) ProtoMessage() {}
+
+func (x *FourRowTemplate) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[51]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use FourRowTemplate.ProtoReflect.Descriptor instead.
+func (*FourRowTemplate) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{51}
+}
+
+func (x *FourRowTemplate) GetContent() *HighlyStructuredMessage {
+ if x != nil {
+ return x.Content
+ }
+ return nil
+}
+
+func (x *FourRowTemplate) GetFooter() *HighlyStructuredMessage {
+ if x != nil {
+ return x.Footer
+ }
+ return nil
+}
+
+func (x *FourRowTemplate) GetButtons() []*TemplateButton {
+ if x != nil {
+ return x.Buttons
+ }
+ return nil
+}
+
+func (m *FourRowTemplate) GetTitle() isFourRowTemplate_Title {
+ if m != nil {
+ return m.Title
+ }
+ return nil
+}
+
+func (x *FourRowTemplate) GetDocumentMessage() *DocumentMessage {
+ if x, ok := x.GetTitle().(*FourRowTemplate_DocumentMessage); ok {
+ return x.DocumentMessage
+ }
+ return nil
+}
+
+func (x *FourRowTemplate) GetHighlyStructuredMessage() *HighlyStructuredMessage {
+ if x, ok := x.GetTitle().(*FourRowTemplate_HighlyStructuredMessage); ok {
+ return x.HighlyStructuredMessage
+ }
+ return nil
+}
+
+func (x *FourRowTemplate) GetImageMessage() *ImageMessage {
+ if x, ok := x.GetTitle().(*FourRowTemplate_ImageMessage); ok {
+ return x.ImageMessage
+ }
+ return nil
+}
+
+func (x *FourRowTemplate) GetVideoMessage() *VideoMessage {
+ if x, ok := x.GetTitle().(*FourRowTemplate_VideoMessage); ok {
+ return x.VideoMessage
+ }
+ return nil
+}
+
+func (x *FourRowTemplate) GetLocationMessage() *LocationMessage {
+ if x, ok := x.GetTitle().(*FourRowTemplate_LocationMessage); ok {
+ return x.LocationMessage
+ }
+ return nil
+}
+
+type isFourRowTemplate_Title interface {
+ isFourRowTemplate_Title()
+}
+
+type FourRowTemplate_DocumentMessage struct {
+ DocumentMessage *DocumentMessage `protobuf:"bytes,1,opt,name=documentMessage,oneof"`
+}
+
+type FourRowTemplate_HighlyStructuredMessage struct {
+ HighlyStructuredMessage *HighlyStructuredMessage `protobuf:"bytes,2,opt,name=highlyStructuredMessage,oneof"`
+}
+
+type FourRowTemplate_ImageMessage struct {
+ ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"`
+}
+
+type FourRowTemplate_VideoMessage struct {
+ VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"`
+}
+
+type FourRowTemplate_LocationMessage struct {
+ LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"`
+}
+
+func (*FourRowTemplate_DocumentMessage) isFourRowTemplate_Title() {}
+
+func (*FourRowTemplate_HighlyStructuredMessage) isFourRowTemplate_Title() {}
+
+func (*FourRowTemplate_ImageMessage) isFourRowTemplate_Title() {}
+
+func (*FourRowTemplate_VideoMessage) isFourRowTemplate_Title() {}
+
+func (*FourRowTemplate_LocationMessage) isFourRowTemplate_Title() {}
+
+type HydratedFourRowTemplate struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ HydratedContentText *string `protobuf:"bytes,6,opt,name=hydratedContentText" json:"hydratedContentText,omitempty"`
+ HydratedFooterText *string `protobuf:"bytes,7,opt,name=hydratedFooterText" json:"hydratedFooterText,omitempty"`
+ HydratedButtons []*HydratedTemplateButton `protobuf:"bytes,8,rep,name=hydratedButtons" json:"hydratedButtons,omitempty"`
+ TemplateId *string `protobuf:"bytes,9,opt,name=templateId" json:"templateId,omitempty"`
+ // Types that are assignable to Title:
+ // *HydratedFourRowTemplate_DocumentMessage
+ // *HydratedFourRowTemplate_HydratedTitleText
+ // *HydratedFourRowTemplate_ImageMessage
+ // *HydratedFourRowTemplate_VideoMessage
+ // *HydratedFourRowTemplate_LocationMessage
+ Title isHydratedFourRowTemplate_Title `protobuf_oneof:"title"`
+}
+
+func (x *HydratedFourRowTemplate) Reset() {
+ *x = HydratedFourRowTemplate{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[52]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *HydratedFourRowTemplate) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*HydratedFourRowTemplate) ProtoMessage() {}
+
+func (x *HydratedFourRowTemplate) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[52]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use HydratedFourRowTemplate.ProtoReflect.Descriptor instead.
+func (*HydratedFourRowTemplate) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{52}
+}
+
+func (x *HydratedFourRowTemplate) GetHydratedContentText() string {
+ if x != nil && x.HydratedContentText != nil {
+ return *x.HydratedContentText
+ }
+ return ""
+}
+
+func (x *HydratedFourRowTemplate) GetHydratedFooterText() string {
+ if x != nil && x.HydratedFooterText != nil {
+ return *x.HydratedFooterText
+ }
+ return ""
+}
+
+func (x *HydratedFourRowTemplate) GetHydratedButtons() []*HydratedTemplateButton {
+ if x != nil {
+ return x.HydratedButtons
+ }
+ return nil
+}
+
+func (x *HydratedFourRowTemplate) GetTemplateId() string {
+ if x != nil && x.TemplateId != nil {
+ return *x.TemplateId
+ }
+ return ""
+}
+
+func (m *HydratedFourRowTemplate) GetTitle() isHydratedFourRowTemplate_Title {
+ if m != nil {
+ return m.Title
+ }
+ return nil
+}
+
+func (x *HydratedFourRowTemplate) GetDocumentMessage() *DocumentMessage {
+ if x, ok := x.GetTitle().(*HydratedFourRowTemplate_DocumentMessage); ok {
+ return x.DocumentMessage
+ }
+ return nil
+}
+
+func (x *HydratedFourRowTemplate) GetHydratedTitleText() string {
+ if x, ok := x.GetTitle().(*HydratedFourRowTemplate_HydratedTitleText); ok {
+ return x.HydratedTitleText
+ }
+ return ""
+}
+
+func (x *HydratedFourRowTemplate) GetImageMessage() *ImageMessage {
+ if x, ok := x.GetTitle().(*HydratedFourRowTemplate_ImageMessage); ok {
+ return x.ImageMessage
+ }
+ return nil
+}
+
+func (x *HydratedFourRowTemplate) GetVideoMessage() *VideoMessage {
+ if x, ok := x.GetTitle().(*HydratedFourRowTemplate_VideoMessage); ok {
+ return x.VideoMessage
+ }
+ return nil
+}
+
+func (x *HydratedFourRowTemplate) GetLocationMessage() *LocationMessage {
+ if x, ok := x.GetTitle().(*HydratedFourRowTemplate_LocationMessage); ok {
+ return x.LocationMessage
+ }
+ return nil
+}
+
+type isHydratedFourRowTemplate_Title interface {
+ isHydratedFourRowTemplate_Title()
+}
+
+type HydratedFourRowTemplate_DocumentMessage struct {
+ DocumentMessage *DocumentMessage `protobuf:"bytes,1,opt,name=documentMessage,oneof"`
+}
+
+type HydratedFourRowTemplate_HydratedTitleText struct {
+ HydratedTitleText string `protobuf:"bytes,2,opt,name=hydratedTitleText,oneof"`
+}
+
+type HydratedFourRowTemplate_ImageMessage struct {
+ ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"`
+}
+
+type HydratedFourRowTemplate_VideoMessage struct {
+ VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"`
+}
+
+type HydratedFourRowTemplate_LocationMessage struct {
+ LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"`
+}
+
+func (*HydratedFourRowTemplate_DocumentMessage) isHydratedFourRowTemplate_Title() {}
+
+func (*HydratedFourRowTemplate_HydratedTitleText) isHydratedFourRowTemplate_Title() {}
+
+func (*HydratedFourRowTemplate_ImageMessage) isHydratedFourRowTemplate_Title() {}
+
+func (*HydratedFourRowTemplate_VideoMessage) isHydratedFourRowTemplate_Title() {}
+
+func (*HydratedFourRowTemplate_LocationMessage) isHydratedFourRowTemplate_Title() {}
+
+type TemplateMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ContextInfo *ContextInfo `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"`
+ HydratedTemplate *HydratedFourRowTemplate `protobuf:"bytes,4,opt,name=hydratedTemplate" json:"hydratedTemplate,omitempty"`
+ // Types that are assignable to Format:
+ // *TemplateMessage_FourRowTemplate
+ // *TemplateMessage_HydratedFourRowTemplate
+ Format isTemplateMessage_Format `protobuf_oneof:"format"`
+}
+
+func (x *TemplateMessage) Reset() {
+ *x = TemplateMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[53]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TemplateMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TemplateMessage) ProtoMessage() {}
+
+func (x *TemplateMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[53]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TemplateMessage.ProtoReflect.Descriptor instead.
+func (*TemplateMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{53}
+}
+
+func (x *TemplateMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+func (x *TemplateMessage) GetHydratedTemplate() *HydratedFourRowTemplate {
+ if x != nil {
+ return x.HydratedTemplate
+ }
+ return nil
+}
+
+func (m *TemplateMessage) GetFormat() isTemplateMessage_Format {
+ if m != nil {
+ return m.Format
+ }
+ return nil
+}
+
+func (x *TemplateMessage) GetFourRowTemplate() *FourRowTemplate {
+ if x, ok := x.GetFormat().(*TemplateMessage_FourRowTemplate); ok {
+ return x.FourRowTemplate
+ }
+ return nil
+}
+
+func (x *TemplateMessage) GetHydratedFourRowTemplate() *HydratedFourRowTemplate {
+ if x, ok := x.GetFormat().(*TemplateMessage_HydratedFourRowTemplate); ok {
+ return x.HydratedFourRowTemplate
+ }
+ return nil
+}
+
+type isTemplateMessage_Format interface {
+ isTemplateMessage_Format()
+}
+
+type TemplateMessage_FourRowTemplate struct {
+ FourRowTemplate *FourRowTemplate `protobuf:"bytes,1,opt,name=fourRowTemplate,oneof"`
+}
+
+type TemplateMessage_HydratedFourRowTemplate struct {
+ HydratedFourRowTemplate *HydratedFourRowTemplate `protobuf:"bytes,2,opt,name=hydratedFourRowTemplate,oneof"`
+}
+
+func (*TemplateMessage_FourRowTemplate) isTemplateMessage_Format() {}
+
+func (*TemplateMessage_HydratedFourRowTemplate) isTemplateMessage_Format() {}
+
+type TemplateButtonReplyMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SelectedId *string `protobuf:"bytes,1,opt,name=selectedId" json:"selectedId,omitempty"`
+ SelectedDisplayText *string `protobuf:"bytes,2,opt,name=selectedDisplayText" json:"selectedDisplayText,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"`
+ SelectedIndex *uint32 `protobuf:"varint,4,opt,name=selectedIndex" json:"selectedIndex,omitempty"`
+}
+
+func (x *TemplateButtonReplyMessage) Reset() {
+ *x = TemplateButtonReplyMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[54]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *TemplateButtonReplyMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*TemplateButtonReplyMessage) ProtoMessage() {}
+
+func (x *TemplateButtonReplyMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[54]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use TemplateButtonReplyMessage.ProtoReflect.Descriptor instead.
+func (*TemplateButtonReplyMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{54}
+}
+
+func (x *TemplateButtonReplyMessage) GetSelectedId() string {
+ if x != nil && x.SelectedId != nil {
+ return *x.SelectedId
+ }
+ return ""
+}
+
+func (x *TemplateButtonReplyMessage) GetSelectedDisplayText() string {
+ if x != nil && x.SelectedDisplayText != nil {
+ return *x.SelectedDisplayText
+ }
+ return ""
+}
+
+func (x *TemplateButtonReplyMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+func (x *TemplateButtonReplyMessage) GetSelectedIndex() uint32 {
+ if x != nil && x.SelectedIndex != nil {
+ return *x.SelectedIndex
+ }
+ return 0
+}
+
+type CatalogSnapshot struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ CatalogImage *ImageMessage `protobuf:"bytes,1,opt,name=catalogImage" json:"catalogImage,omitempty"`
+ Title *string `protobuf:"bytes,2,opt,name=title" json:"title,omitempty"`
+ Description *string `protobuf:"bytes,3,opt,name=description" json:"description,omitempty"`
+}
+
+func (x *CatalogSnapshot) Reset() {
+ *x = CatalogSnapshot{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[55]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *CatalogSnapshot) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*CatalogSnapshot) ProtoMessage() {}
+
+func (x *CatalogSnapshot) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[55]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use CatalogSnapshot.ProtoReflect.Descriptor instead.
+func (*CatalogSnapshot) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{55}
+}
+
+func (x *CatalogSnapshot) GetCatalogImage() *ImageMessage {
+ if x != nil {
+ return x.CatalogImage
+ }
+ return nil
+}
+
+func (x *CatalogSnapshot) GetTitle() string {
+ if x != nil && x.Title != nil {
+ return *x.Title
+ }
+ return ""
+}
+
+func (x *CatalogSnapshot) GetDescription() string {
+ if x != nil && x.Description != nil {
+ return *x.Description
+ }
+ return ""
+}
+
+type ProductSnapshot struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ProductImage *ImageMessage `protobuf:"bytes,1,opt,name=productImage" json:"productImage,omitempty"`
+ ProductId *string `protobuf:"bytes,2,opt,name=productId" json:"productId,omitempty"`
+ Title *string `protobuf:"bytes,3,opt,name=title" json:"title,omitempty"`
+ Description *string `protobuf:"bytes,4,opt,name=description" json:"description,omitempty"`
+ CurrencyCode *string `protobuf:"bytes,5,opt,name=currencyCode" json:"currencyCode,omitempty"`
+ PriceAmount1000 *int64 `protobuf:"varint,6,opt,name=priceAmount1000" json:"priceAmount1000,omitempty"`
+ RetailerId *string `protobuf:"bytes,7,opt,name=retailerId" json:"retailerId,omitempty"`
+ Url *string `protobuf:"bytes,8,opt,name=url" json:"url,omitempty"`
+ ProductImageCount *uint32 `protobuf:"varint,9,opt,name=productImageCount" json:"productImageCount,omitempty"`
+ FirstImageId *string `protobuf:"bytes,11,opt,name=firstImageId" json:"firstImageId,omitempty"`
+}
+
+func (x *ProductSnapshot) Reset() {
+ *x = ProductSnapshot{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[56]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductSnapshot) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductSnapshot) ProtoMessage() {}
+
+func (x *ProductSnapshot) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[56]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductSnapshot.ProtoReflect.Descriptor instead.
+func (*ProductSnapshot) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{56}
+}
+
+func (x *ProductSnapshot) GetProductImage() *ImageMessage {
+ if x != nil {
+ return x.ProductImage
+ }
+ return nil
+}
+
+func (x *ProductSnapshot) GetProductId() string {
+ if x != nil && x.ProductId != nil {
+ return *x.ProductId
+ }
+ return ""
+}
+
+func (x *ProductSnapshot) GetTitle() string {
+ if x != nil && x.Title != nil {
+ return *x.Title
+ }
+ return ""
+}
+
+func (x *ProductSnapshot) GetDescription() string {
+ if x != nil && x.Description != nil {
+ return *x.Description
+ }
+ return ""
+}
+
+func (x *ProductSnapshot) GetCurrencyCode() string {
+ if x != nil && x.CurrencyCode != nil {
+ return *x.CurrencyCode
+ }
+ return ""
+}
+
+func (x *ProductSnapshot) GetPriceAmount1000() int64 {
+ if x != nil && x.PriceAmount1000 != nil {
+ return *x.PriceAmount1000
+ }
+ return 0
+}
+
+func (x *ProductSnapshot) GetRetailerId() string {
+ if x != nil && x.RetailerId != nil {
+ return *x.RetailerId
+ }
+ return ""
+}
+
+func (x *ProductSnapshot) GetUrl() string {
+ if x != nil && x.Url != nil {
+ return *x.Url
+ }
+ return ""
+}
+
+func (x *ProductSnapshot) GetProductImageCount() uint32 {
+ if x != nil && x.ProductImageCount != nil {
+ return *x.ProductImageCount
+ }
+ return 0
+}
+
+func (x *ProductSnapshot) GetFirstImageId() string {
+ if x != nil && x.FirstImageId != nil {
+ return *x.FirstImageId
+ }
+ return ""
+}
+
+type ProductMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Product *ProductSnapshot `protobuf:"bytes,1,opt,name=product" json:"product,omitempty"`
+ BusinessOwnerJid *string `protobuf:"bytes,2,opt,name=businessOwnerJid" json:"businessOwnerJid,omitempty"`
+ Catalog *CatalogSnapshot `protobuf:"bytes,4,opt,name=catalog" json:"catalog,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+}
+
+func (x *ProductMessage) Reset() {
+ *x = ProductMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[57]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ProductMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ProductMessage) ProtoMessage() {}
+
+func (x *ProductMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[57]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ProductMessage.ProtoReflect.Descriptor instead.
+func (*ProductMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{57}
+}
+
+func (x *ProductMessage) GetProduct() *ProductSnapshot {
+ if x != nil {
+ return x.Product
+ }
+ return nil
+}
+
+func (x *ProductMessage) GetBusinessOwnerJid() string {
+ if x != nil && x.BusinessOwnerJid != nil {
+ return *x.BusinessOwnerJid
+ }
+ return ""
+}
+
+func (x *ProductMessage) GetCatalog() *CatalogSnapshot {
+ if x != nil {
+ return x.Catalog
+ }
+ return nil
+}
+
+func (x *ProductMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+type OrderMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ OrderId *string `protobuf:"bytes,1,opt,name=orderId" json:"orderId,omitempty"`
+ Thumbnail []byte `protobuf:"bytes,2,opt,name=thumbnail" json:"thumbnail,omitempty"`
+ ItemCount *int32 `protobuf:"varint,3,opt,name=itemCount" json:"itemCount,omitempty"`
+ Status *OrderMessage_OrderMessageOrderStatus `protobuf:"varint,4,opt,name=status,enum=proto.OrderMessage_OrderMessageOrderStatus" json:"status,omitempty"`
+ Surface *OrderMessage_OrderMessageOrderSurface `protobuf:"varint,5,opt,name=surface,enum=proto.OrderMessage_OrderMessageOrderSurface" json:"surface,omitempty"`
+ Message *string `protobuf:"bytes,6,opt,name=message" json:"message,omitempty"`
+ OrderTitle *string `protobuf:"bytes,7,opt,name=orderTitle" json:"orderTitle,omitempty"`
+ SellerJid *string `protobuf:"bytes,8,opt,name=sellerJid" json:"sellerJid,omitempty"`
+ Token *string `protobuf:"bytes,9,opt,name=token" json:"token,omitempty"`
+ TotalAmount1000 *int64 `protobuf:"varint,10,opt,name=totalAmount1000" json:"totalAmount1000,omitempty"`
+ TotalCurrencyCode *string `protobuf:"bytes,11,opt,name=totalCurrencyCode" json:"totalCurrencyCode,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,17,opt,name=contextInfo" json:"contextInfo,omitempty"`
+}
+
+func (x *OrderMessage) Reset() {
+ *x = OrderMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[58]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *OrderMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*OrderMessage) ProtoMessage() {}
+
+func (x *OrderMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[58]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use OrderMessage.ProtoReflect.Descriptor instead.
+func (*OrderMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{58}
+}
+
+func (x *OrderMessage) GetOrderId() string {
+ if x != nil && x.OrderId != nil {
+ return *x.OrderId
+ }
+ return ""
+}
+
+func (x *OrderMessage) GetThumbnail() []byte {
+ if x != nil {
+ return x.Thumbnail
+ }
+ return nil
+}
+
+func (x *OrderMessage) GetItemCount() int32 {
+ if x != nil && x.ItemCount != nil {
+ return *x.ItemCount
+ }
+ return 0
+}
+
+func (x *OrderMessage) GetStatus() OrderMessage_OrderMessageOrderStatus {
+ if x != nil && x.Status != nil {
+ return *x.Status
+ }
+ return OrderMessage_INQUIRY
+}
+
+func (x *OrderMessage) GetSurface() OrderMessage_OrderMessageOrderSurface {
+ if x != nil && x.Surface != nil {
+ return *x.Surface
+ }
+ return OrderMessage_CATALOG
+}
+
+func (x *OrderMessage) GetMessage() string {
+ if x != nil && x.Message != nil {
+ return *x.Message
+ }
+ return ""
+}
+
+func (x *OrderMessage) GetOrderTitle() string {
+ if x != nil && x.OrderTitle != nil {
+ return *x.OrderTitle
+ }
+ return ""
+}
+
+func (x *OrderMessage) GetSellerJid() string {
+ if x != nil && x.SellerJid != nil {
+ return *x.SellerJid
+ }
+ return ""
+}
+
+func (x *OrderMessage) GetToken() string {
+ if x != nil && x.Token != nil {
+ return *x.Token
+ }
+ return ""
+}
+
+func (x *OrderMessage) GetTotalAmount1000() int64 {
+ if x != nil && x.TotalAmount1000 != nil {
+ return *x.TotalAmount1000
+ }
+ return 0
+}
+
+func (x *OrderMessage) GetTotalCurrencyCode() string {
+ if x != nil && x.TotalCurrencyCode != nil {
+ return *x.TotalCurrencyCode
+ }
+ return ""
+}
+
+func (x *OrderMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+type Row struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Title *string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+ Description *string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+ RowId *string `protobuf:"bytes,3,opt,name=rowId" json:"rowId,omitempty"`
+}
+
+func (x *Row) Reset() {
+ *x = Row{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[59]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Row) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Row) ProtoMessage() {}
+
+func (x *Row) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[59]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Row.ProtoReflect.Descriptor instead.
+func (*Row) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{59}
+}
+
+func (x *Row) GetTitle() string {
+ if x != nil && x.Title != nil {
+ return *x.Title
+ }
+ return ""
+}
+
+func (x *Row) GetDescription() string {
+ if x != nil && x.Description != nil {
+ return *x.Description
+ }
+ return ""
+}
+
+func (x *Row) GetRowId() string {
+ if x != nil && x.RowId != nil {
+ return *x.RowId
+ }
+ return ""
+}
+
+type Section struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Title *string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+ Rows []*Row `protobuf:"bytes,2,rep,name=rows" json:"rows,omitempty"`
+}
+
+func (x *Section) Reset() {
+ *x = Section{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[60]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Section) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Section) ProtoMessage() {}
+
+func (x *Section) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[60]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Section.ProtoReflect.Descriptor instead.
+func (*Section) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{60}
+}
+
+func (x *Section) GetTitle() string {
+ if x != nil && x.Title != nil {
+ return *x.Title
+ }
+ return ""
+}
+
+func (x *Section) GetRows() []*Row {
+ if x != nil {
+ return x.Rows
+ }
+ return nil
+}
+
+type ListMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Title *string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+ Description *string `protobuf:"bytes,2,opt,name=description" json:"description,omitempty"`
+ ButtonText *string `protobuf:"bytes,3,opt,name=buttonText" json:"buttonText,omitempty"`
+ ListType *ListMessage_ListMessageListType `protobuf:"varint,4,opt,name=listType,enum=proto.ListMessage_ListMessageListType" json:"listType,omitempty"`
+ Sections []*Section `protobuf:"bytes,5,rep,name=sections" json:"sections,omitempty"`
+}
+
+func (x *ListMessage) Reset() {
+ *x = ListMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[61]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListMessage) ProtoMessage() {}
+
+func (x *ListMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[61]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListMessage.ProtoReflect.Descriptor instead.
+func (*ListMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{61}
+}
+
+func (x *ListMessage) GetTitle() string {
+ if x != nil && x.Title != nil {
+ return *x.Title
+ }
+ return ""
+}
+
+func (x *ListMessage) GetDescription() string {
+ if x != nil && x.Description != nil {
+ return *x.Description
+ }
+ return ""
+}
+
+func (x *ListMessage) GetButtonText() string {
+ if x != nil && x.ButtonText != nil {
+ return *x.ButtonText
+ }
+ return ""
+}
+
+func (x *ListMessage) GetListType() ListMessage_ListMessageListType {
+ if x != nil && x.ListType != nil {
+ return *x.ListType
+ }
+ return ListMessage_UNKNOWN
+}
+
+func (x *ListMessage) GetSections() []*Section {
+ if x != nil {
+ return x.Sections
+ }
+ return nil
+}
+
+type SingleSelectReply struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SelectedRowId *string `protobuf:"bytes,1,opt,name=selectedRowId" json:"selectedRowId,omitempty"`
+}
+
+func (x *SingleSelectReply) Reset() {
+ *x = SingleSelectReply{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[62]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *SingleSelectReply) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*SingleSelectReply) ProtoMessage() {}
+
+func (x *SingleSelectReply) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[62]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use SingleSelectReply.ProtoReflect.Descriptor instead.
+func (*SingleSelectReply) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{62}
+}
+
+func (x *SingleSelectReply) GetSelectedRowId() string {
+ if x != nil && x.SelectedRowId != nil {
+ return *x.SelectedRowId
+ }
+ return ""
+}
+
+type ListResponseMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Title *string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"`
+ ListType *ListResponseMessage_ListResponseMessageListType `protobuf:"varint,2,opt,name=listType,enum=proto.ListResponseMessage_ListResponseMessageListType" json:"listType,omitempty"`
+ SingleSelectReply *SingleSelectReply `protobuf:"bytes,3,opt,name=singleSelectReply" json:"singleSelectReply,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,4,opt,name=contextInfo" json:"contextInfo,omitempty"`
+ Description *string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"`
+}
+
+func (x *ListResponseMessage) Reset() {
+ *x = ListResponseMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[63]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ListResponseMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ListResponseMessage) ProtoMessage() {}
+
+func (x *ListResponseMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[63]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ListResponseMessage.ProtoReflect.Descriptor instead.
+func (*ListResponseMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{63}
+}
+
+func (x *ListResponseMessage) GetTitle() string {
+ if x != nil && x.Title != nil {
+ return *x.Title
+ }
+ return ""
+}
+
+func (x *ListResponseMessage) GetListType() ListResponseMessage_ListResponseMessageListType {
+ if x != nil && x.ListType != nil {
+ return *x.ListType
+ }
+ return ListResponseMessage_UNKNOWN
+}
+
+func (x *ListResponseMessage) GetSingleSelectReply() *SingleSelectReply {
+ if x != nil {
+ return x.SingleSelectReply
+ }
+ return nil
+}
+
+func (x *ListResponseMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+func (x *ListResponseMessage) GetDescription() string {
+ if x != nil && x.Description != nil {
+ return *x.Description
+ }
+ return ""
+}
+
+type GroupInviteMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ GroupJid *string `protobuf:"bytes,1,opt,name=groupJid" json:"groupJid,omitempty"`
+ InviteCode *string `protobuf:"bytes,2,opt,name=inviteCode" json:"inviteCode,omitempty"`
+ InviteExpiration *int64 `protobuf:"varint,3,opt,name=inviteExpiration" json:"inviteExpiration,omitempty"`
+ GroupName *string `protobuf:"bytes,4,opt,name=groupName" json:"groupName,omitempty"`
+ JpegThumbnail []byte `protobuf:"bytes,5,opt,name=jpegThumbnail" json:"jpegThumbnail,omitempty"`
+ Caption *string `protobuf:"bytes,6,opt,name=caption" json:"caption,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,7,opt,name=contextInfo" json:"contextInfo,omitempty"`
+}
+
+func (x *GroupInviteMessage) Reset() {
+ *x = GroupInviteMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[64]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *GroupInviteMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*GroupInviteMessage) ProtoMessage() {}
+
+func (x *GroupInviteMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[64]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use GroupInviteMessage.ProtoReflect.Descriptor instead.
+func (*GroupInviteMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{64}
+}
+
+func (x *GroupInviteMessage) GetGroupJid() string {
+ if x != nil && x.GroupJid != nil {
+ return *x.GroupJid
+ }
+ return ""
+}
+
+func (x *GroupInviteMessage) GetInviteCode() string {
+ if x != nil && x.InviteCode != nil {
+ return *x.InviteCode
+ }
+ return ""
+}
+
+func (x *GroupInviteMessage) GetInviteExpiration() int64 {
+ if x != nil && x.InviteExpiration != nil {
+ return *x.InviteExpiration
+ }
+ return 0
+}
+
+func (x *GroupInviteMessage) GetGroupName() string {
+ if x != nil && x.GroupName != nil {
+ return *x.GroupName
+ }
+ return ""
+}
+
+func (x *GroupInviteMessage) GetJpegThumbnail() []byte {
+ if x != nil {
+ return x.JpegThumbnail
+ }
+ return nil
+}
+
+func (x *GroupInviteMessage) GetCaption() string {
+ if x != nil && x.Caption != nil {
+ return *x.Caption
+ }
+ return ""
+}
+
+func (x *GroupInviteMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+type EphemeralSetting struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ChatJid *string `protobuf:"bytes,1,opt,name=chatJid" json:"chatJid,omitempty"`
+ EphemeralExpiration *uint32 `protobuf:"varint,2,opt,name=ephemeralExpiration" json:"ephemeralExpiration,omitempty"`
+ EphemeralSettingTimestamp *int64 `protobuf:"varint,3,opt,name=ephemeralSettingTimestamp" json:"ephemeralSettingTimestamp,omitempty"`
+}
+
+func (x *EphemeralSetting) Reset() {
+ *x = EphemeralSetting{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[65]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *EphemeralSetting) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EphemeralSetting) ProtoMessage() {}
+
+func (x *EphemeralSetting) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[65]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EphemeralSetting.ProtoReflect.Descriptor instead.
+func (*EphemeralSetting) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{65}
+}
+
+func (x *EphemeralSetting) GetChatJid() string {
+ if x != nil && x.ChatJid != nil {
+ return *x.ChatJid
+ }
+ return ""
+}
+
+func (x *EphemeralSetting) GetEphemeralExpiration() uint32 {
+ if x != nil && x.EphemeralExpiration != nil {
+ return *x.EphemeralExpiration
+ }
+ return 0
+}
+
+func (x *EphemeralSetting) GetEphemeralSettingTimestamp() int64 {
+ if x != nil && x.EphemeralSettingTimestamp != nil {
+ return *x.EphemeralSettingTimestamp
+ }
+ return 0
+}
+
+type DeviceSentMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DestinationJid *string `protobuf:"bytes,1,opt,name=destinationJid" json:"destinationJid,omitempty"`
+ Message *Message `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
+ Phash *string `protobuf:"bytes,3,opt,name=phash" json:"phash,omitempty"`
+ BroadcastEphemeralSettings []*EphemeralSetting `protobuf:"bytes,4,rep,name=broadcastEphemeralSettings" json:"broadcastEphemeralSettings,omitempty"`
+}
+
+func (x *DeviceSentMessage) Reset() {
+ *x = DeviceSentMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[66]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DeviceSentMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DeviceSentMessage) ProtoMessage() {}
+
+func (x *DeviceSentMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[66]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use DeviceSentMessage.ProtoReflect.Descriptor instead.
+func (*DeviceSentMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{66}
+}
+
+func (x *DeviceSentMessage) GetDestinationJid() string {
+ if x != nil && x.DestinationJid != nil {
+ return *x.DestinationJid
+ }
+ return ""
+}
+
+func (x *DeviceSentMessage) GetMessage() *Message {
+ if x != nil {
+ return x.Message
+ }
+ return nil
+}
+
+func (x *DeviceSentMessage) GetPhash() string {
+ if x != nil && x.Phash != nil {
+ return *x.Phash
+ }
+ return ""
+}
+
+func (x *DeviceSentMessage) GetBroadcastEphemeralSettings() []*EphemeralSetting {
+ if x != nil {
+ return x.BroadcastEphemeralSettings
+ }
+ return nil
+}
+
+type FutureProofMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Message *Message `protobuf:"bytes,1,opt,name=message" json:"message,omitempty"`
+}
+
+func (x *FutureProofMessage) Reset() {
+ *x = FutureProofMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[67]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *FutureProofMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FutureProofMessage) ProtoMessage() {}
+
+func (x *FutureProofMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[67]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use FutureProofMessage.ProtoReflect.Descriptor instead.
+func (*FutureProofMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{67}
+}
+
+func (x *FutureProofMessage) GetMessage() *Message {
+ if x != nil {
+ return x.Message
+ }
+ return nil
+}
+
+type ButtonText struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ DisplayText *string `protobuf:"bytes,1,opt,name=displayText" json:"displayText,omitempty"`
+}
+
+func (x *ButtonText) Reset() {
+ *x = ButtonText{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[68]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ButtonText) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ButtonText) ProtoMessage() {}
+
+func (x *ButtonText) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[68]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ButtonText.ProtoReflect.Descriptor instead.
+func (*ButtonText) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{68}
+}
+
+func (x *ButtonText) GetDisplayText() string {
+ if x != nil && x.DisplayText != nil {
+ return *x.DisplayText
+ }
+ return ""
+}
+
+type Button struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ButtonId *string `protobuf:"bytes,1,opt,name=buttonId" json:"buttonId,omitempty"`
+ ButtonText *ButtonText `protobuf:"bytes,2,opt,name=buttonText" json:"buttonText,omitempty"`
+ Type *Button_ButtonType `protobuf:"varint,3,opt,name=type,enum=proto.Button_ButtonType" json:"type,omitempty"`
+}
+
+func (x *Button) Reset() {
+ *x = Button{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[69]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Button) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Button) ProtoMessage() {}
+
+func (x *Button) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[69]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Button.ProtoReflect.Descriptor instead.
+func (*Button) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{69}
+}
+
+func (x *Button) GetButtonId() string {
+ if x != nil && x.ButtonId != nil {
+ return *x.ButtonId
+ }
+ return ""
+}
+
+func (x *Button) GetButtonText() *ButtonText {
+ if x != nil {
+ return x.ButtonText
+ }
+ return nil
+}
+
+func (x *Button) GetType() Button_ButtonType {
+ if x != nil && x.Type != nil {
+ return *x.Type
+ }
+ return Button_UNKNOWN
+}
+
+type ButtonsMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ ContentText *string `protobuf:"bytes,6,opt,name=contentText" json:"contentText,omitempty"`
+ FooterText *string `protobuf:"bytes,7,opt,name=footerText" json:"footerText,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,8,opt,name=contextInfo" json:"contextInfo,omitempty"`
+ Buttons []*Button `protobuf:"bytes,9,rep,name=buttons" json:"buttons,omitempty"`
+ HeaderType *ButtonsMessage_ButtonsMessageHeaderType `protobuf:"varint,10,opt,name=headerType,enum=proto.ButtonsMessage_ButtonsMessageHeaderType" json:"headerType,omitempty"`
+ // Types that are assignable to Header:
+ // *ButtonsMessage_Text
+ // *ButtonsMessage_DocumentMessage
+ // *ButtonsMessage_ImageMessage
+ // *ButtonsMessage_VideoMessage
+ // *ButtonsMessage_LocationMessage
+ Header isButtonsMessage_Header `protobuf_oneof:"header"`
+}
+
+func (x *ButtonsMessage) Reset() {
+ *x = ButtonsMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[70]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ButtonsMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ButtonsMessage) ProtoMessage() {}
+
+func (x *ButtonsMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[70]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ButtonsMessage.ProtoReflect.Descriptor instead.
+func (*ButtonsMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{70}
+}
+
+func (x *ButtonsMessage) GetContentText() string {
+ if x != nil && x.ContentText != nil {
+ return *x.ContentText
+ }
+ return ""
+}
+
+func (x *ButtonsMessage) GetFooterText() string {
+ if x != nil && x.FooterText != nil {
+ return *x.FooterText
+ }
+ return ""
+}
+
+func (x *ButtonsMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+func (x *ButtonsMessage) GetButtons() []*Button {
+ if x != nil {
+ return x.Buttons
+ }
+ return nil
+}
+
+func (x *ButtonsMessage) GetHeaderType() ButtonsMessage_ButtonsMessageHeaderType {
+ if x != nil && x.HeaderType != nil {
+ return *x.HeaderType
+ }
+ return ButtonsMessage_UNKNOWN
+}
+
+func (m *ButtonsMessage) GetHeader() isButtonsMessage_Header {
+ if m != nil {
+ return m.Header
+ }
+ return nil
+}
+
+func (x *ButtonsMessage) GetText() string {
+ if x, ok := x.GetHeader().(*ButtonsMessage_Text); ok {
+ return x.Text
+ }
+ return ""
+}
+
+func (x *ButtonsMessage) GetDocumentMessage() *DocumentMessage {
+ if x, ok := x.GetHeader().(*ButtonsMessage_DocumentMessage); ok {
+ return x.DocumentMessage
+ }
+ return nil
+}
+
+func (x *ButtonsMessage) GetImageMessage() *ImageMessage {
+ if x, ok := x.GetHeader().(*ButtonsMessage_ImageMessage); ok {
+ return x.ImageMessage
+ }
+ return nil
+}
+
+func (x *ButtonsMessage) GetVideoMessage() *VideoMessage {
+ if x, ok := x.GetHeader().(*ButtonsMessage_VideoMessage); ok {
+ return x.VideoMessage
+ }
+ return nil
+}
+
+func (x *ButtonsMessage) GetLocationMessage() *LocationMessage {
+ if x, ok := x.GetHeader().(*ButtonsMessage_LocationMessage); ok {
+ return x.LocationMessage
+ }
+ return nil
+}
+
+type isButtonsMessage_Header interface {
+ isButtonsMessage_Header()
+}
+
+type ButtonsMessage_Text struct {
+ Text string `protobuf:"bytes,1,opt,name=text,oneof"`
+}
+
+type ButtonsMessage_DocumentMessage struct {
+ DocumentMessage *DocumentMessage `protobuf:"bytes,2,opt,name=documentMessage,oneof"`
+}
+
+type ButtonsMessage_ImageMessage struct {
+ ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage,oneof"`
+}
+
+type ButtonsMessage_VideoMessage struct {
+ VideoMessage *VideoMessage `protobuf:"bytes,4,opt,name=videoMessage,oneof"`
+}
+
+type ButtonsMessage_LocationMessage struct {
+ LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage,oneof"`
+}
+
+func (*ButtonsMessage_Text) isButtonsMessage_Header() {}
+
+func (*ButtonsMessage_DocumentMessage) isButtonsMessage_Header() {}
+
+func (*ButtonsMessage_ImageMessage) isButtonsMessage_Header() {}
+
+func (*ButtonsMessage_VideoMessage) isButtonsMessage_Header() {}
+
+func (*ButtonsMessage_LocationMessage) isButtonsMessage_Header() {}
+
+type ButtonsResponseMessage struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ SelectedButtonId *string `protobuf:"bytes,1,opt,name=selectedButtonId" json:"selectedButtonId,omitempty"`
+ ContextInfo *ContextInfo `protobuf:"bytes,3,opt,name=contextInfo" json:"contextInfo,omitempty"`
+ Type *ButtonsResponseMessage_ButtonsResponseMessageType `protobuf:"varint,4,opt,name=type,enum=proto.ButtonsResponseMessage_ButtonsResponseMessageType" json:"type,omitempty"`
+ // Types that are assignable to Response:
+ // *ButtonsResponseMessage_SelectedDisplayText
+ Response isButtonsResponseMessage_Response `protobuf_oneof:"response"`
+}
+
+func (x *ButtonsResponseMessage) Reset() {
+ *x = ButtonsResponseMessage{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[71]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *ButtonsResponseMessage) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*ButtonsResponseMessage) ProtoMessage() {}
+
+func (x *ButtonsResponseMessage) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[71]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use ButtonsResponseMessage.ProtoReflect.Descriptor instead.
+func (*ButtonsResponseMessage) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{71}
+}
+
+func (x *ButtonsResponseMessage) GetSelectedButtonId() string {
+ if x != nil && x.SelectedButtonId != nil {
+ return *x.SelectedButtonId
+ }
+ return ""
+}
+
+func (x *ButtonsResponseMessage) GetContextInfo() *ContextInfo {
+ if x != nil {
+ return x.ContextInfo
+ }
+ return nil
+}
+
+func (x *ButtonsResponseMessage) GetType() ButtonsResponseMessage_ButtonsResponseMessageType {
+ if x != nil && x.Type != nil {
+ return *x.Type
+ }
+ return ButtonsResponseMessage_UNKNOWN
+}
+
+func (m *ButtonsResponseMessage) GetResponse() isButtonsResponseMessage_Response {
+ if m != nil {
+ return m.Response
+ }
+ return nil
+}
+
+func (x *ButtonsResponseMessage) GetSelectedDisplayText() string {
+ if x, ok := x.GetResponse().(*ButtonsResponseMessage_SelectedDisplayText); ok {
+ return x.SelectedDisplayText
+ }
+ return ""
+}
+
+type isButtonsResponseMessage_Response interface {
+ isButtonsResponseMessage_Response()
+}
+
+type ButtonsResponseMessage_SelectedDisplayText struct {
+ SelectedDisplayText string `protobuf:"bytes,2,opt,name=selectedDisplayText,oneof"`
+}
+
+func (*ButtonsResponseMessage_SelectedDisplayText) isButtonsResponseMessage_Response() {}
+
+type Message struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Conversation *string `protobuf:"bytes,1,opt,name=conversation" json:"conversation,omitempty"`
+ SenderKeyDistributionMessage *SenderKeyDistributionMessage `protobuf:"bytes,2,opt,name=senderKeyDistributionMessage" json:"senderKeyDistributionMessage,omitempty"`
+ ImageMessage *ImageMessage `protobuf:"bytes,3,opt,name=imageMessage" json:"imageMessage,omitempty"`
+ ContactMessage *ContactMessage `protobuf:"bytes,4,opt,name=contactMessage" json:"contactMessage,omitempty"`
+ LocationMessage *LocationMessage `protobuf:"bytes,5,opt,name=locationMessage" json:"locationMessage,omitempty"`
+ ExtendedTextMessage *ExtendedTextMessage `protobuf:"bytes,6,opt,name=extendedTextMessage" json:"extendedTextMessage,omitempty"`
+ DocumentMessage *DocumentMessage `protobuf:"bytes,7,opt,name=documentMessage" json:"documentMessage,omitempty"`
+ AudioMessage *AudioMessage `protobuf:"bytes,8,opt,name=audioMessage" json:"audioMessage,omitempty"`
+ VideoMessage *VideoMessage `protobuf:"bytes,9,opt,name=videoMessage" json:"videoMessage,omitempty"`
+ Call *Call `protobuf:"bytes,10,opt,name=call" json:"call,omitempty"`
+ Chat *Chat `protobuf:"bytes,11,opt,name=chat" json:"chat,omitempty"`
+ ProtocolMessage *ProtocolMessage `protobuf:"bytes,12,opt,name=protocolMessage" json:"protocolMessage,omitempty"`
+ ContactsArrayMessage *ContactsArrayMessage `protobuf:"bytes,13,opt,name=contactsArrayMessage" json:"contactsArrayMessage,omitempty"`
+ HighlyStructuredMessage *HighlyStructuredMessage `protobuf:"bytes,14,opt,name=highlyStructuredMessage" json:"highlyStructuredMessage,omitempty"`
+ FastRatchetKeySenderKeyDistributionMessage *SenderKeyDistributionMessage `protobuf:"bytes,15,opt,name=fastRatchetKeySenderKeyDistributionMessage" json:"fastRatchetKeySenderKeyDistributionMessage,omitempty"`
+ SendPaymentMessage *SendPaymentMessage `protobuf:"bytes,16,opt,name=sendPaymentMessage" json:"sendPaymentMessage,omitempty"`
+ LiveLocationMessage *LiveLocationMessage `protobuf:"bytes,18,opt,name=liveLocationMessage" json:"liveLocationMessage,omitempty"`
+ RequestPaymentMessage *RequestPaymentMessage `protobuf:"bytes,22,opt,name=requestPaymentMessage" json:"requestPaymentMessage,omitempty"`
+ DeclinePaymentRequestMessage *DeclinePaymentRequestMessage `protobuf:"bytes,23,opt,name=declinePaymentRequestMessage" json:"declinePaymentRequestMessage,omitempty"`
+ CancelPaymentRequestMessage *CancelPaymentRequestMessage `protobuf:"bytes,24,opt,name=cancelPaymentRequestMessage" json:"cancelPaymentRequestMessage,omitempty"`
+ TemplateMessage *TemplateMessage `protobuf:"bytes,25,opt,name=templateMessage" json:"templateMessage,omitempty"`
+ StickerMessage *StickerMessage `protobuf:"bytes,26,opt,name=stickerMessage" json:"stickerMessage,omitempty"`
+ GroupInviteMessage *GroupInviteMessage `protobuf:"bytes,28,opt,name=groupInviteMessage" json:"groupInviteMessage,omitempty"`
+ TemplateButtonReplyMessage *TemplateButtonReplyMessage `protobuf:"bytes,29,opt,name=templateButtonReplyMessage" json:"templateButtonReplyMessage,omitempty"`
+ ProductMessage *ProductMessage `protobuf:"bytes,30,opt,name=productMessage" json:"productMessage,omitempty"`
+ DeviceSentMessage *DeviceSentMessage `protobuf:"bytes,31,opt,name=deviceSentMessage" json:"deviceSentMessage,omitempty"`
+ MessageContextInfo *MessageContextInfo `protobuf:"bytes,35,opt,name=messageContextInfo" json:"messageContextInfo,omitempty"`
+ ListMessage *ListMessage `protobuf:"bytes,36,opt,name=listMessage" json:"listMessage,omitempty"`
+ ViewOnceMessage *FutureProofMessage `protobuf:"bytes,37,opt,name=viewOnceMessage" json:"viewOnceMessage,omitempty"`
+ OrderMessage *OrderMessage `protobuf:"bytes,38,opt,name=orderMessage" json:"orderMessage,omitempty"`
+ ListResponseMessage *ListResponseMessage `protobuf:"bytes,39,opt,name=listResponseMessage" json:"listResponseMessage,omitempty"`
+ EphemeralMessage *FutureProofMessage `protobuf:"bytes,40,opt,name=ephemeralMessage" json:"ephemeralMessage,omitempty"`
+ InvoiceMessage *InvoiceMessage `protobuf:"bytes,41,opt,name=invoiceMessage" json:"invoiceMessage,omitempty"`
+ ButtonsMessage *ButtonsMessage `protobuf:"bytes,42,opt,name=buttonsMessage" json:"buttonsMessage,omitempty"`
+ ButtonsResponseMessage *ButtonsResponseMessage `protobuf:"bytes,43,opt,name=buttonsResponseMessage" json:"buttonsResponseMessage,omitempty"`
+}
+
+func (x *Message) Reset() {
+ *x = Message{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[72]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *Message) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*Message) ProtoMessage() {}
+
+func (x *Message) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[72]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use Message.ProtoReflect.Descriptor instead.
+func (*Message) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{72}
+}
+
+func (x *Message) GetConversation() string {
+ if x != nil && x.Conversation != nil {
+ return *x.Conversation
+ }
+ return ""
+}
+
+func (x *Message) GetSenderKeyDistributionMessage() *SenderKeyDistributionMessage {
+ if x != nil {
+ return x.SenderKeyDistributionMessage
+ }
+ return nil
+}
+
+func (x *Message) GetImageMessage() *ImageMessage {
+ if x != nil {
+ return x.ImageMessage
+ }
+ return nil
+}
+
+func (x *Message) GetContactMessage() *ContactMessage {
+ if x != nil {
+ return x.ContactMessage
+ }
+ return nil
+}
+
+func (x *Message) GetLocationMessage() *LocationMessage {
+ if x != nil {
+ return x.LocationMessage
+ }
+ return nil
+}
+
+func (x *Message) GetExtendedTextMessage() *ExtendedTextMessage {
+ if x != nil {
+ return x.ExtendedTextMessage
+ }
+ return nil
+}
+
+func (x *Message) GetDocumentMessage() *DocumentMessage {
+ if x != nil {
+ return x.DocumentMessage
+ }
+ return nil
+}
+
+func (x *Message) GetAudioMessage() *AudioMessage {
+ if x != nil {
+ return x.AudioMessage
+ }
+ return nil
+}
+
+func (x *Message) GetVideoMessage() *VideoMessage {
+ if x != nil {
+ return x.VideoMessage
+ }
+ return nil
+}
+
+func (x *Message) GetCall() *Call {
+ if x != nil {
+ return x.Call
+ }
+ return nil
+}
+
+func (x *Message) GetChat() *Chat {
+ if x != nil {
+ return x.Chat
+ }
+ return nil
+}
+
+func (x *Message) GetProtocolMessage() *ProtocolMessage {
+ if x != nil {
+ return x.ProtocolMessage
+ }
+ return nil
+}
+
+func (x *Message) GetContactsArrayMessage() *ContactsArrayMessage {
+ if x != nil {
+ return x.ContactsArrayMessage
+ }
+ return nil
+}
+
+func (x *Message) GetHighlyStructuredMessage() *HighlyStructuredMessage {
+ if x != nil {
+ return x.HighlyStructuredMessage
+ }
+ return nil
+}
+
+func (x *Message) GetFastRatchetKeySenderKeyDistributionMessage() *SenderKeyDistributionMessage {
+ if x != nil {
+ return x.FastRatchetKeySenderKeyDistributionMessage
+ }
+ return nil
+}
+
+func (x *Message) GetSendPaymentMessage() *SendPaymentMessage {
+ if x != nil {
+ return x.SendPaymentMessage
+ }
+ return nil
+}
+
+func (x *Message) GetLiveLocationMessage() *LiveLocationMessage {
+ if x != nil {
+ return x.LiveLocationMessage
+ }
+ return nil
+}
+
+func (x *Message) GetRequestPaymentMessage() *RequestPaymentMessage {
+ if x != nil {
+ return x.RequestPaymentMessage
+ }
+ return nil
+}
+
+func (x *Message) GetDeclinePaymentRequestMessage() *DeclinePaymentRequestMessage {
+ if x != nil {
+ return x.DeclinePaymentRequestMessage
+ }
+ return nil
+}
+
+func (x *Message) GetCancelPaymentRequestMessage() *CancelPaymentRequestMessage {
+ if x != nil {
+ return x.CancelPaymentRequestMessage
+ }
+ return nil
+}
+
+func (x *Message) GetTemplateMessage() *TemplateMessage {
+ if x != nil {
+ return x.TemplateMessage
+ }
+ return nil
+}
+
+func (x *Message) GetStickerMessage() *StickerMessage {
+ if x != nil {
+ return x.StickerMessage
+ }
+ return nil
+}
+
+func (x *Message) GetGroupInviteMessage() *GroupInviteMessage {
+ if x != nil {
+ return x.GroupInviteMessage
+ }
+ return nil
+}
+
+func (x *Message) GetTemplateButtonReplyMessage() *TemplateButtonReplyMessage {
+ if x != nil {
+ return x.TemplateButtonReplyMessage
+ }
+ return nil
+}
+
+func (x *Message) GetProductMessage() *ProductMessage {
+ if x != nil {
+ return x.ProductMessage
+ }
+ return nil
+}
+
+func (x *Message) GetDeviceSentMessage() *DeviceSentMessage {
+ if x != nil {
+ return x.DeviceSentMessage
+ }
+ return nil
+}
+
+func (x *Message) GetMessageContextInfo() *MessageContextInfo {
+ if x != nil {
+ return x.MessageContextInfo
+ }
+ return nil
+}
+
+func (x *Message) GetListMessage() *ListMessage {
+ if x != nil {
+ return x.ListMessage
+ }
+ return nil
+}
+
+func (x *Message) GetViewOnceMessage() *FutureProofMessage {
+ if x != nil {
+ return x.ViewOnceMessage
+ }
+ return nil
+}
+
+func (x *Message) GetOrderMessage() *OrderMessage {
+ if x != nil {
+ return x.OrderMessage
+ }
+ return nil
+}
+
+func (x *Message) GetListResponseMessage() *ListResponseMessage {
+ if x != nil {
+ return x.ListResponseMessage
+ }
+ return nil
+}
+
+func (x *Message) GetEphemeralMessage() *FutureProofMessage {
+ if x != nil {
+ return x.EphemeralMessage
+ }
+ return nil
+}
+
+func (x *Message) GetInvoiceMessage() *InvoiceMessage {
+ if x != nil {
+ return x.InvoiceMessage
+ }
+ return nil
+}
+
+func (x *Message) GetButtonsMessage() *ButtonsMessage {
+ if x != nil {
+ return x.ButtonsMessage
+ }
+ return nil
+}
+
+func (x *Message) GetButtonsResponseMessage() *ButtonsResponseMessage {
+ if x != nil {
+ return x.ButtonsResponseMessage
+ }
+ return nil
+}
+
+type MessageKey struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ RemoteJid *string `protobuf:"bytes,1,opt,name=remoteJid" json:"remoteJid,omitempty"`
+ FromMe *bool `protobuf:"varint,2,opt,name=fromMe" json:"fromMe,omitempty"`
+ Id *string `protobuf:"bytes,3,opt,name=id" json:"id,omitempty"`
+ Participant *string `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"`
+}
+
+func (x *MessageKey) Reset() {
+ *x = MessageKey{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[73]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *MessageKey) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*MessageKey) ProtoMessage() {}
+
+func (x *MessageKey) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[73]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use MessageKey.ProtoReflect.Descriptor instead.
+func (*MessageKey) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{73}
+}
+
+func (x *MessageKey) GetRemoteJid() string {
+ if x != nil && x.RemoteJid != nil {
+ return *x.RemoteJid
+ }
+ return ""
+}
+
+func (x *MessageKey) GetFromMe() bool {
+ if x != nil && x.FromMe != nil {
+ return *x.FromMe
+ }
+ return false
+}
+
+func (x *MessageKey) GetId() string {
+ if x != nil && x.Id != nil {
+ return *x.Id
+ }
+ return ""
+}
+
+func (x *MessageKey) GetParticipant() string {
+ if x != nil && x.Participant != nil {
+ return *x.Participant
+ }
+ return ""
+}
+
+type WebFeatures struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ LabelsDisplay *WebFeatures_WebFeaturesFlag `protobuf:"varint,1,opt,name=labelsDisplay,enum=proto.WebFeatures_WebFeaturesFlag" json:"labelsDisplay,omitempty"`
+ VoipIndividualOutgoing *WebFeatures_WebFeaturesFlag `protobuf:"varint,2,opt,name=voipIndividualOutgoing,enum=proto.WebFeatures_WebFeaturesFlag" json:"voipIndividualOutgoing,omitempty"`
+ GroupsV3 *WebFeatures_WebFeaturesFlag `protobuf:"varint,3,opt,name=groupsV3,enum=proto.WebFeatures_WebFeaturesFlag" json:"groupsV3,omitempty"`
+ GroupsV3Create *WebFeatures_WebFeaturesFlag `protobuf:"varint,4,opt,name=groupsV3Create,enum=proto.WebFeatures_WebFeaturesFlag" json:"groupsV3Create,omitempty"`
+ ChangeNumberV2 *WebFeatures_WebFeaturesFlag `protobuf:"varint,5,opt,name=changeNumberV2,enum=proto.WebFeatures_WebFeaturesFlag" json:"changeNumberV2,omitempty"`
+ QueryStatusV3Thumbnail *WebFeatures_WebFeaturesFlag `protobuf:"varint,6,opt,name=queryStatusV3Thumbnail,enum=proto.WebFeatures_WebFeaturesFlag" json:"queryStatusV3Thumbnail,omitempty"`
+ LiveLocations *WebFeatures_WebFeaturesFlag `protobuf:"varint,7,opt,name=liveLocations,enum=proto.WebFeatures_WebFeaturesFlag" json:"liveLocations,omitempty"`
+ QueryVname *WebFeatures_WebFeaturesFlag `protobuf:"varint,8,opt,name=queryVname,enum=proto.WebFeatures_WebFeaturesFlag" json:"queryVname,omitempty"`
+ VoipIndividualIncoming *WebFeatures_WebFeaturesFlag `protobuf:"varint,9,opt,name=voipIndividualIncoming,enum=proto.WebFeatures_WebFeaturesFlag" json:"voipIndividualIncoming,omitempty"`
+ QuickRepliesQuery *WebFeatures_WebFeaturesFlag `protobuf:"varint,10,opt,name=quickRepliesQuery,enum=proto.WebFeatures_WebFeaturesFlag" json:"quickRepliesQuery,omitempty"`
+ Payments *WebFeatures_WebFeaturesFlag `protobuf:"varint,11,opt,name=payments,enum=proto.WebFeatures_WebFeaturesFlag" json:"payments,omitempty"`
+ StickerPackQuery *WebFeatures_WebFeaturesFlag `protobuf:"varint,12,opt,name=stickerPackQuery,enum=proto.WebFeatures_WebFeaturesFlag" json:"stickerPackQuery,omitempty"`
+ LiveLocationsFinal *WebFeatures_WebFeaturesFlag `protobuf:"varint,13,opt,name=liveLocationsFinal,enum=proto.WebFeatures_WebFeaturesFlag" json:"liveLocationsFinal,omitempty"`
+ LabelsEdit *WebFeatures_WebFeaturesFlag `protobuf:"varint,14,opt,name=labelsEdit,enum=proto.WebFeatures_WebFeaturesFlag" json:"labelsEdit,omitempty"`
+ MediaUpload *WebFeatures_WebFeaturesFlag `protobuf:"varint,15,opt,name=mediaUpload,enum=proto.WebFeatures_WebFeaturesFlag" json:"mediaUpload,omitempty"`
+ MediaUploadRichQuickReplies *WebFeatures_WebFeaturesFlag `protobuf:"varint,18,opt,name=mediaUploadRichQuickReplies,enum=proto.WebFeatures_WebFeaturesFlag" json:"mediaUploadRichQuickReplies,omitempty"`
+ VnameV2 *WebFeatures_WebFeaturesFlag `protobuf:"varint,19,opt,name=vnameV2,enum=proto.WebFeatures_WebFeaturesFlag" json:"vnameV2,omitempty"`
+ VideoPlaybackUrl *WebFeatures_WebFeaturesFlag `protobuf:"varint,20,opt,name=videoPlaybackUrl,enum=proto.WebFeatures_WebFeaturesFlag" json:"videoPlaybackUrl,omitempty"`
+ StatusRanking *WebFeatures_WebFeaturesFlag `protobuf:"varint,21,opt,name=statusRanking,enum=proto.WebFeatures_WebFeaturesFlag" json:"statusRanking,omitempty"`
+ VoipIndividualVideo *WebFeatures_WebFeaturesFlag `protobuf:"varint,22,opt,name=voipIndividualVideo,enum=proto.WebFeatures_WebFeaturesFlag" json:"voipIndividualVideo,omitempty"`
+ ThirdPartyStickers *WebFeatures_WebFeaturesFlag `protobuf:"varint,23,opt,name=thirdPartyStickers,enum=proto.WebFeatures_WebFeaturesFlag" json:"thirdPartyStickers,omitempty"`
+ FrequentlyForwardedSetting *WebFeatures_WebFeaturesFlag `protobuf:"varint,24,opt,name=frequentlyForwardedSetting,enum=proto.WebFeatures_WebFeaturesFlag" json:"frequentlyForwardedSetting,omitempty"`
+ GroupsV4JoinPermission *WebFeatures_WebFeaturesFlag `protobuf:"varint,25,opt,name=groupsV4JoinPermission,enum=proto.WebFeatures_WebFeaturesFlag" json:"groupsV4JoinPermission,omitempty"`
+ RecentStickers *WebFeatures_WebFeaturesFlag `protobuf:"varint,26,opt,name=recentStickers,enum=proto.WebFeatures_WebFeaturesFlag" json:"recentStickers,omitempty"`
+ Catalog *WebFeatures_WebFeaturesFlag `protobuf:"varint,27,opt,name=catalog,enum=proto.WebFeatures_WebFeaturesFlag" json:"catalog,omitempty"`
+ StarredStickers *WebFeatures_WebFeaturesFlag `protobuf:"varint,28,opt,name=starredStickers,enum=proto.WebFeatures_WebFeaturesFlag" json:"starredStickers,omitempty"`
+ VoipGroupCall *WebFeatures_WebFeaturesFlag `protobuf:"varint,29,opt,name=voipGroupCall,enum=proto.WebFeatures_WebFeaturesFlag" json:"voipGroupCall,omitempty"`
+ TemplateMessage *WebFeatures_WebFeaturesFlag `protobuf:"varint,30,opt,name=templateMessage,enum=proto.WebFeatures_WebFeaturesFlag" json:"templateMessage,omitempty"`
+ TemplateMessageInteractivity *WebFeatures_WebFeaturesFlag `protobuf:"varint,31,opt,name=templateMessageInteractivity,enum=proto.WebFeatures_WebFeaturesFlag" json:"templateMessageInteractivity,omitempty"`
+ EphemeralMessages *WebFeatures_WebFeaturesFlag `protobuf:"varint,32,opt,name=ephemeralMessages,enum=proto.WebFeatures_WebFeaturesFlag" json:"ephemeralMessages,omitempty"`
+ E2ENotificationSync *WebFeatures_WebFeaturesFlag `protobuf:"varint,33,opt,name=e2ENotificationSync,enum=proto.WebFeatures_WebFeaturesFlag" json:"e2ENotificationSync,omitempty"`
+ RecentStickersV2 *WebFeatures_WebFeaturesFlag `protobuf:"varint,34,opt,name=recentStickersV2,enum=proto.WebFeatures_WebFeaturesFlag" json:"recentStickersV2,omitempty"`
+ SyncdRelease1 *WebFeatures_WebFeaturesFlag `protobuf:"varint,35,opt,name=syncdRelease1,enum=proto.WebFeatures_WebFeaturesFlag" json:"syncdRelease1,omitempty"`
+ RecentStickersV3 *WebFeatures_WebFeaturesFlag `protobuf:"varint,36,opt,name=recentStickersV3,enum=proto.WebFeatures_WebFeaturesFlag" json:"recentStickersV3,omitempty"`
+ UserNotice *WebFeatures_WebFeaturesFlag `protobuf:"varint,37,opt,name=userNotice,enum=proto.WebFeatures_WebFeaturesFlag" json:"userNotice,omitempty"`
+ SyncdRelease11 *WebFeatures_WebFeaturesFlag `protobuf:"varint,38,opt,name=syncdRelease11,enum=proto.WebFeatures_WebFeaturesFlag" json:"syncdRelease11,omitempty"`
+ Support *WebFeatures_WebFeaturesFlag `protobuf:"varint,39,opt,name=support,enum=proto.WebFeatures_WebFeaturesFlag" json:"support,omitempty"`
+ GroupUiiCleanup *WebFeatures_WebFeaturesFlag `protobuf:"varint,40,opt,name=groupUiiCleanup,enum=proto.WebFeatures_WebFeaturesFlag" json:"groupUiiCleanup,omitempty"`
+ GroupDogfoodingInternalOnly *WebFeatures_WebFeaturesFlag `protobuf:"varint,41,opt,name=groupDogfoodingInternalOnly,enum=proto.WebFeatures_WebFeaturesFlag" json:"groupDogfoodingInternalOnly,omitempty"`
+ SettingsSync *WebFeatures_WebFeaturesFlag `protobuf:"varint,42,opt,name=settingsSync,enum=proto.WebFeatures_WebFeaturesFlag" json:"settingsSync,omitempty"`
+}
+
+func (x *WebFeatures) Reset() {
+ *x = WebFeatures{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[74]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *WebFeatures) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*WebFeatures) ProtoMessage() {}
+
+func (x *WebFeatures) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[74]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use WebFeatures.ProtoReflect.Descriptor instead.
+func (*WebFeatures) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{74}
+}
+
+func (x *WebFeatures) GetLabelsDisplay() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.LabelsDisplay != nil {
+ return *x.LabelsDisplay
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetVoipIndividualOutgoing() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.VoipIndividualOutgoing != nil {
+ return *x.VoipIndividualOutgoing
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetGroupsV3() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.GroupsV3 != nil {
+ return *x.GroupsV3
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetGroupsV3Create() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.GroupsV3Create != nil {
+ return *x.GroupsV3Create
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetChangeNumberV2() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.ChangeNumberV2 != nil {
+ return *x.ChangeNumberV2
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetQueryStatusV3Thumbnail() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.QueryStatusV3Thumbnail != nil {
+ return *x.QueryStatusV3Thumbnail
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetLiveLocations() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.LiveLocations != nil {
+ return *x.LiveLocations
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetQueryVname() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.QueryVname != nil {
+ return *x.QueryVname
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetVoipIndividualIncoming() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.VoipIndividualIncoming != nil {
+ return *x.VoipIndividualIncoming
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetQuickRepliesQuery() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.QuickRepliesQuery != nil {
+ return *x.QuickRepliesQuery
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetPayments() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.Payments != nil {
+ return *x.Payments
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetStickerPackQuery() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.StickerPackQuery != nil {
+ return *x.StickerPackQuery
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetLiveLocationsFinal() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.LiveLocationsFinal != nil {
+ return *x.LiveLocationsFinal
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetLabelsEdit() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.LabelsEdit != nil {
+ return *x.LabelsEdit
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetMediaUpload() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.MediaUpload != nil {
+ return *x.MediaUpload
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetMediaUploadRichQuickReplies() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.MediaUploadRichQuickReplies != nil {
+ return *x.MediaUploadRichQuickReplies
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetVnameV2() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.VnameV2 != nil {
+ return *x.VnameV2
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetVideoPlaybackUrl() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.VideoPlaybackUrl != nil {
+ return *x.VideoPlaybackUrl
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetStatusRanking() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.StatusRanking != nil {
+ return *x.StatusRanking
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetVoipIndividualVideo() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.VoipIndividualVideo != nil {
+ return *x.VoipIndividualVideo
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetThirdPartyStickers() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.ThirdPartyStickers != nil {
+ return *x.ThirdPartyStickers
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetFrequentlyForwardedSetting() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.FrequentlyForwardedSetting != nil {
+ return *x.FrequentlyForwardedSetting
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetGroupsV4JoinPermission() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.GroupsV4JoinPermission != nil {
+ return *x.GroupsV4JoinPermission
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetRecentStickers() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.RecentStickers != nil {
+ return *x.RecentStickers
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetCatalog() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.Catalog != nil {
+ return *x.Catalog
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetStarredStickers() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.StarredStickers != nil {
+ return *x.StarredStickers
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetVoipGroupCall() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.VoipGroupCall != nil {
+ return *x.VoipGroupCall
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetTemplateMessage() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.TemplateMessage != nil {
+ return *x.TemplateMessage
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetTemplateMessageInteractivity() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.TemplateMessageInteractivity != nil {
+ return *x.TemplateMessageInteractivity
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetEphemeralMessages() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.EphemeralMessages != nil {
+ return *x.EphemeralMessages
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetE2ENotificationSync() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.E2ENotificationSync != nil {
+ return *x.E2ENotificationSync
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetRecentStickersV2() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.RecentStickersV2 != nil {
+ return *x.RecentStickersV2
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetSyncdRelease1() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.SyncdRelease1 != nil {
+ return *x.SyncdRelease1
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetRecentStickersV3() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.RecentStickersV3 != nil {
+ return *x.RecentStickersV3
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetUserNotice() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.UserNotice != nil {
+ return *x.UserNotice
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetSyncdRelease11() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.SyncdRelease11 != nil {
+ return *x.SyncdRelease11
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetSupport() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.Support != nil {
+ return *x.Support
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetGroupUiiCleanup() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.GroupUiiCleanup != nil {
+ return *x.GroupUiiCleanup
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetGroupDogfoodingInternalOnly() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.GroupDogfoodingInternalOnly != nil {
+ return *x.GroupDogfoodingInternalOnly
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+func (x *WebFeatures) GetSettingsSync() WebFeatures_WebFeaturesFlag {
+ if x != nil && x.SettingsSync != nil {
+ return *x.SettingsSync
+ }
+ return WebFeatures_NOT_STARTED
+}
+
+type NotificationMessageInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Key *MessageKey `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
+ Message *Message `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
+ MessageTimestamp *uint64 `protobuf:"varint,3,opt,name=messageTimestamp" json:"messageTimestamp,omitempty"`
+ Participant *string `protobuf:"bytes,4,opt,name=participant" json:"participant,omitempty"`
+}
+
+func (x *NotificationMessageInfo) Reset() {
+ *x = NotificationMessageInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[75]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *NotificationMessageInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*NotificationMessageInfo) ProtoMessage() {}
+
+func (x *NotificationMessageInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[75]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use NotificationMessageInfo.ProtoReflect.Descriptor instead.
+func (*NotificationMessageInfo) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{75}
+}
+
+func (x *NotificationMessageInfo) GetKey() *MessageKey {
+ if x != nil {
+ return x.Key
+ }
+ return nil
+}
+
+func (x *NotificationMessageInfo) GetMessage() *Message {
+ if x != nil {
+ return x.Message
+ }
+ return nil
+}
+
+func (x *NotificationMessageInfo) GetMessageTimestamp() uint64 {
+ if x != nil && x.MessageTimestamp != nil {
+ return *x.MessageTimestamp
+ }
+ return 0
+}
+
+func (x *NotificationMessageInfo) GetParticipant() string {
+ if x != nil && x.Participant != nil {
+ return *x.Participant
+ }
+ return ""
+}
+
+type WebNotificationsInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Timestamp *uint64 `protobuf:"varint,2,opt,name=timestamp" json:"timestamp,omitempty"`
+ UnreadChats *uint32 `protobuf:"varint,3,opt,name=unreadChats" json:"unreadChats,omitempty"`
+ NotifyMessageCount *uint32 `protobuf:"varint,4,opt,name=notifyMessageCount" json:"notifyMessageCount,omitempty"`
+ NotifyMessages []*WebMessageInfo `protobuf:"bytes,5,rep,name=notifyMessages" json:"notifyMessages,omitempty"`
+}
+
+func (x *WebNotificationsInfo) Reset() {
+ *x = WebNotificationsInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[76]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *WebNotificationsInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*WebNotificationsInfo) ProtoMessage() {}
+
+func (x *WebNotificationsInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[76]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use WebNotificationsInfo.ProtoReflect.Descriptor instead.
+func (*WebNotificationsInfo) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{76}
+}
+
+func (x *WebNotificationsInfo) GetTimestamp() uint64 {
+ if x != nil && x.Timestamp != nil {
+ return *x.Timestamp
+ }
+ return 0
+}
+
+func (x *WebNotificationsInfo) GetUnreadChats() uint32 {
+ if x != nil && x.UnreadChats != nil {
+ return *x.UnreadChats
+ }
+ return 0
+}
+
+func (x *WebNotificationsInfo) GetNotifyMessageCount() uint32 {
+ if x != nil && x.NotifyMessageCount != nil {
+ return *x.NotifyMessageCount
+ }
+ return 0
+}
+
+func (x *WebNotificationsInfo) GetNotifyMessages() []*WebMessageInfo {
+ if x != nil {
+ return x.NotifyMessages
+ }
+ return nil
+}
+
+type PaymentInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ CurrencyDeprecated *PaymentInfo_PaymentInfoCurrency `protobuf:"varint,1,opt,name=currencyDeprecated,enum=proto.PaymentInfo_PaymentInfoCurrency" json:"currencyDeprecated,omitempty"`
+ Amount1000 *uint64 `protobuf:"varint,2,opt,name=amount1000" json:"amount1000,omitempty"`
+ ReceiverJid *string `protobuf:"bytes,3,opt,name=receiverJid" json:"receiverJid,omitempty"`
+ Status *PaymentInfo_PaymentInfoStatus `protobuf:"varint,4,opt,name=status,enum=proto.PaymentInfo_PaymentInfoStatus" json:"status,omitempty"`
+ TransactionTimestamp *uint64 `protobuf:"varint,5,opt,name=transactionTimestamp" json:"transactionTimestamp,omitempty"`
+ RequestMessageKey *MessageKey `protobuf:"bytes,6,opt,name=requestMessageKey" json:"requestMessageKey,omitempty"`
+ ExpiryTimestamp *uint64 `protobuf:"varint,7,opt,name=expiryTimestamp" json:"expiryTimestamp,omitempty"`
+ Futureproofed *bool `protobuf:"varint,8,opt,name=futureproofed" json:"futureproofed,omitempty"`
+ Currency *string `protobuf:"bytes,9,opt,name=currency" json:"currency,omitempty"`
+ TxnStatus *PaymentInfo_PaymentInfoTxnStatus `protobuf:"varint,10,opt,name=txnStatus,enum=proto.PaymentInfo_PaymentInfoTxnStatus" json:"txnStatus,omitempty"`
+ UseNoviFiatFormat *bool `protobuf:"varint,11,opt,name=useNoviFiatFormat" json:"useNoviFiatFormat,omitempty"`
+ PrimaryAmount *PaymentMoney `protobuf:"bytes,12,opt,name=primaryAmount" json:"primaryAmount,omitempty"`
+ ExchangeAmount *PaymentMoney `protobuf:"bytes,13,opt,name=exchangeAmount" json:"exchangeAmount,omitempty"`
+}
+
+func (x *PaymentInfo) Reset() {
+ *x = PaymentInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[77]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *PaymentInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*PaymentInfo) ProtoMessage() {}
+
+func (x *PaymentInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[77]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use PaymentInfo.ProtoReflect.Descriptor instead.
+func (*PaymentInfo) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{77}
+}
+
+func (x *PaymentInfo) GetCurrencyDeprecated() PaymentInfo_PaymentInfoCurrency {
+ if x != nil && x.CurrencyDeprecated != nil {
+ return *x.CurrencyDeprecated
+ }
+ return PaymentInfo_UNKNOWN_CURRENCY
+}
+
+func (x *PaymentInfo) GetAmount1000() uint64 {
+ if x != nil && x.Amount1000 != nil {
+ return *x.Amount1000
+ }
+ return 0
+}
+
+func (x *PaymentInfo) GetReceiverJid() string {
+ if x != nil && x.ReceiverJid != nil {
+ return *x.ReceiverJid
+ }
+ return ""
+}
+
+func (x *PaymentInfo) GetStatus() PaymentInfo_PaymentInfoStatus {
+ if x != nil && x.Status != nil {
+ return *x.Status
+ }
+ return PaymentInfo_UNKNOWN_STATUS
+}
+
+func (x *PaymentInfo) GetTransactionTimestamp() uint64 {
+ if x != nil && x.TransactionTimestamp != nil {
+ return *x.TransactionTimestamp
+ }
+ return 0
+}
+
+func (x *PaymentInfo) GetRequestMessageKey() *MessageKey {
+ if x != nil {
+ return x.RequestMessageKey
+ }
+ return nil
+}
+
+func (x *PaymentInfo) GetExpiryTimestamp() uint64 {
+ if x != nil && x.ExpiryTimestamp != nil {
+ return *x.ExpiryTimestamp
+ }
+ return 0
+}
+
+func (x *PaymentInfo) GetFutureproofed() bool {
+ if x != nil && x.Futureproofed != nil {
+ return *x.Futureproofed
+ }
+ return false
+}
+
+func (x *PaymentInfo) GetCurrency() string {
+ if x != nil && x.Currency != nil {
+ return *x.Currency
+ }
+ return ""
+}
+
+func (x *PaymentInfo) GetTxnStatus() PaymentInfo_PaymentInfoTxnStatus {
+ if x != nil && x.TxnStatus != nil {
+ return *x.TxnStatus
+ }
+ return PaymentInfo_UNKNOWN
+}
+
+func (x *PaymentInfo) GetUseNoviFiatFormat() bool {
+ if x != nil && x.UseNoviFiatFormat != nil {
+ return *x.UseNoviFiatFormat
+ }
+ return false
+}
+
+func (x *PaymentInfo) GetPrimaryAmount() *PaymentMoney {
+ if x != nil {
+ return x.PrimaryAmount
+ }
+ return nil
+}
+
+func (x *PaymentInfo) GetExchangeAmount() *PaymentMoney {
+ if x != nil {
+ return x.ExchangeAmount
+ }
+ return nil
+}
+
+type WebMessageInfo struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Key *MessageKey `protobuf:"bytes,1,req,name=key" json:"key,omitempty"`
+ Message *Message `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"`
+ MessageTimestamp *uint64 `protobuf:"varint,3,opt,name=messageTimestamp" json:"messageTimestamp,omitempty"`
+ Status *WebMessageInfo_WebMessageInfoStatus `protobuf:"varint,4,opt,name=status,enum=proto.WebMessageInfo_WebMessageInfoStatus" json:"status,omitempty"`
+ Participant *string `protobuf:"bytes,5,opt,name=participant" json:"participant,omitempty"`
+ Ignore *bool `protobuf:"varint,16,opt,name=ignore" json:"ignore,omitempty"`
+ Starred *bool `protobuf:"varint,17,opt,name=starred" json:"starred,omitempty"`
+ Broadcast *bool `protobuf:"varint,18,opt,name=broadcast" json:"broadcast,omitempty"`
+ PushName *string `protobuf:"bytes,19,opt,name=pushName" json:"pushName,omitempty"`
+ MediaCiphertextSha256 []byte `protobuf:"bytes,20,opt,name=mediaCiphertextSha256" json:"mediaCiphertextSha256,omitempty"`
+ Multicast *bool `protobuf:"varint,21,opt,name=multicast" json:"multicast,omitempty"`
+ UrlText *bool `protobuf:"varint,22,opt,name=urlText" json:"urlText,omitempty"`
+ UrlNumber *bool `protobuf:"varint,23,opt,name=urlNumber" json:"urlNumber,omitempty"`
+ MessageStubType *WebMessageInfo_WebMessageInfoStubType `protobuf:"varint,24,opt,name=messageStubType,enum=proto.WebMessageInfo_WebMessageInfoStubType" json:"messageStubType,omitempty"`
+ ClearMedia *bool `protobuf:"varint,25,opt,name=clearMedia" json:"clearMedia,omitempty"`
+ MessageStubParameters []string `protobuf:"bytes,26,rep,name=messageStubParameters" json:"messageStubParameters,omitempty"`
+ Duration *uint32 `protobuf:"varint,27,opt,name=duration" json:"duration,omitempty"`
+ Labels []string `protobuf:"bytes,28,rep,name=labels" json:"labels,omitempty"`
+ PaymentInfo *PaymentInfo `protobuf:"bytes,29,opt,name=paymentInfo" json:"paymentInfo,omitempty"`
+ FinalLiveLocation *LiveLocationMessage `protobuf:"bytes,30,opt,name=finalLiveLocation" json:"finalLiveLocation,omitempty"`
+ QuotedPaymentInfo *PaymentInfo `protobuf:"bytes,31,opt,name=quotedPaymentInfo" json:"quotedPaymentInfo,omitempty"`
+ EphemeralStartTimestamp *uint64 `protobuf:"varint,32,opt,name=ephemeralStartTimestamp" json:"ephemeralStartTimestamp,omitempty"`
+ EphemeralDuration *uint32 `protobuf:"varint,33,opt,name=ephemeralDuration" json:"ephemeralDuration,omitempty"`
+ EphemeralOffToOn *bool `protobuf:"varint,34,opt,name=ephemeralOffToOn" json:"ephemeralOffToOn,omitempty"`
+ EphemeralOutOfSync *bool `protobuf:"varint,35,opt,name=ephemeralOutOfSync" json:"ephemeralOutOfSync,omitempty"`
+ BizPrivacyStatus *WebMessageInfo_WebMessageInfoBizPrivacyStatus `protobuf:"varint,36,opt,name=bizPrivacyStatus,enum=proto.WebMessageInfo_WebMessageInfoBizPrivacyStatus" json:"bizPrivacyStatus,omitempty"`
+ VerifiedBizName *string `protobuf:"bytes,37,opt,name=verifiedBizName" json:"verifiedBizName,omitempty"`
+}
+
+func (x *WebMessageInfo) Reset() {
+ *x = WebMessageInfo{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_def_proto_msgTypes[78]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *WebMessageInfo) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*WebMessageInfo) ProtoMessage() {}
+
+func (x *WebMessageInfo) ProtoReflect() protoreflect.Message {
+ mi := &file_def_proto_msgTypes[78]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use WebMessageInfo.ProtoReflect.Descriptor instead.
+func (*WebMessageInfo) Descriptor() ([]byte, []int) {
+ return file_def_proto_rawDescGZIP(), []int{78}
+}
+
+func (x *WebMessageInfo) GetKey() *MessageKey {
+ if x != nil {
+ return x.Key
+ }
+ return nil
+}
+
+func (x *WebMessageInfo) GetMessage() *Message {
+ if x != nil {
+ return x.Message
+ }
+ return nil
+}
+
+func (x *WebMessageInfo) GetMessageTimestamp() uint64 {
+ if x != nil && x.MessageTimestamp != nil {
+ return *x.MessageTimestamp
+ }
+ return 0
+}
+
+func (x *WebMessageInfo) GetStatus() WebMessageInfo_WebMessageInfoStatus {
+ if x != nil && x.Status != nil {
+ return *x.Status
+ }
+ return WebMessageInfo_ERROR
+}
+
+func (x *WebMessageInfo) GetParticipant() string {
+ if x != nil && x.Participant != nil {
+ return *x.Participant
+ }
+ return ""
+}
+
+func (x *WebMessageInfo) GetIgnore() bool {
+ if x != nil && x.Ignore != nil {
+ return *x.Ignore
+ }
+ return false
+}
+
+func (x *WebMessageInfo) GetStarred() bool {
+ if x != nil && x.Starred != nil {
+ return *x.Starred
+ }
+ return false
+}
+
+func (x *WebMessageInfo) GetBroadcast() bool {
+ if x != nil && x.Broadcast != nil {
+ return *x.Broadcast
+ }
+ return false
+}
+
+func (x *WebMessageInfo) GetPushName() string {
+ if x != nil && x.PushName != nil {
+ return *x.PushName
+ }
+ return ""
+}
+
+func (x *WebMessageInfo) GetMediaCiphertextSha256() []byte {
+ if x != nil {
+ return x.MediaCiphertextSha256
+ }
+ return nil
+}
+
+func (x *WebMessageInfo) GetMulticast() bool {
+ if x != nil && x.Multicast != nil {
+ return *x.Multicast
+ }
+ return false
+}
+
+func (x *WebMessageInfo) GetUrlText() bool {
+ if x != nil && x.UrlText != nil {
+ return *x.UrlText
+ }
+ return false
+}
+
+func (x *WebMessageInfo) GetUrlNumber() bool {
+ if x != nil && x.UrlNumber != nil {
+ return *x.UrlNumber
+ }
+ return false
+}
+
+func (x *WebMessageInfo) GetMessageStubType() WebMessageInfo_WebMessageInfoStubType {
+ if x != nil && x.MessageStubType != nil {
+ return *x.MessageStubType
+ }
+ return WebMessageInfo_UNKNOWN
+}
+
+func (x *WebMessageInfo) GetClearMedia() bool {
+ if x != nil && x.ClearMedia != nil {
+ return *x.ClearMedia
+ }
+ return false
+}
+
+func (x *WebMessageInfo) GetMessageStubParameters() []string {
+ if x != nil {
+ return x.MessageStubParameters
+ }
+ return nil
+}
+
+func (x *WebMessageInfo) GetDuration() uint32 {
+ if x != nil && x.Duration != nil {
+ return *x.Duration
+ }
+ return 0
+}
+
+func (x *WebMessageInfo) GetLabels() []string {
+ if x != nil {
+ return x.Labels
+ }
+ return nil
+}
+
+func (x *WebMessageInfo) GetPaymentInfo() *PaymentInfo {
+ if x != nil {
+ return x.PaymentInfo
+ }
+ return nil
+}
+
+func (x *WebMessageInfo) GetFinalLiveLocation() *LiveLocationMessage {
+ if x != nil {
+ return x.FinalLiveLocation
+ }
+ return nil
+}
+
+func (x *WebMessageInfo) GetQuotedPaymentInfo() *PaymentInfo {
+ if x != nil {
+ return x.QuotedPaymentInfo
+ }
+ return nil
+}
+
+func (x *WebMessageInfo) GetEphemeralStartTimestamp() uint64 {
+ if x != nil && x.EphemeralStartTimestamp != nil {
+ return *x.EphemeralStartTimestamp
+ }
+ return 0
+}
+
+func (x *WebMessageInfo) GetEphemeralDuration() uint32 {
+ if x != nil && x.EphemeralDuration != nil {
+ return *x.EphemeralDuration
+ }
+ return 0
+}
+
+func (x *WebMessageInfo) GetEphemeralOffToOn() bool {
+ if x != nil && x.EphemeralOffToOn != nil {
+ return *x.EphemeralOffToOn
+ }
+ return false
+}
+
+func (x *WebMessageInfo) GetEphemeralOutOfSync() bool {
+ if x != nil && x.EphemeralOutOfSync != nil {
+ return *x.EphemeralOutOfSync
+ }
+ return false
+}
+
+func (x *WebMessageInfo) GetBizPrivacyStatus() WebMessageInfo_WebMessageInfoBizPrivacyStatus {
+ if x != nil && x.BizPrivacyStatus != nil {
+ return *x.BizPrivacyStatus
+ }
+ return WebMessageInfo_E2EE
+}
+
+func (x *WebMessageInfo) GetVerifiedBizName() string {
+ if x != nil && x.VerifiedBizName != nil {
+ return *x.VerifiedBizName
+ }
+ return ""
+}
+
+var File_def_proto protoreflect.FileDescriptor
+
+var file_def_proto_rawDesc = []byte{
+ 0x0a, 0x09, 0x64, 0x65, 0x66, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x22, 0x60, 0x0a, 0x0c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e,
+ 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73,
+ 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74,
+ 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79,
+ 0x43, 0x6f, 0x64, 0x65, 0x22, 0x4c, 0x0a, 0x18, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64,
+ 0x51, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65,
+ 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
+ 0x69, 0x64, 0x22, 0x47, 0x0a, 0x11, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x55, 0x52,
+ 0x4c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c,
+ 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69,
+ 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x58, 0x0a, 0x12, 0x48,
+ 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54,
+ 0x65, 0x78, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62,
+ 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e,
+ 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x86, 0x02, 0x0a, 0x16, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74,
+ 0x65, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x4d, 0x0a, 0x10, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x52,
+ 0x65, 0x70, 0x6c, 0x79, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1f, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65,
+ 0x64, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x48, 0x00, 0x52, 0x10, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x38, 0x0a, 0x09, 0x75, 0x72, 0x6c, 0x42, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x55, 0x52, 0x4c, 0x42, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x09, 0x75, 0x72, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12,
+ 0x3b, 0x0a, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x64, 0x72,
+ 0x61, 0x74, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x48, 0x00,
+ 0x52, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e,
+ 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x64,
+ 0x0a, 0x10, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78,
+ 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x48, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
+ 0x54, 0x65, 0x78, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x02, 0x69, 0x64, 0x22, 0x7f, 0x0a, 0x09, 0x55, 0x52, 0x4c, 0x42, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48,
+ 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54,
+ 0x65, 0x78, 0x74, 0x12, 0x30, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53,
+ 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x90, 0x01, 0x0a, 0x0a, 0x43, 0x61, 0x6c, 0x6c, 0x42, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54,
+ 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72,
+ 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c,
+ 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x12, 0x40, 0x0a, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e,
+ 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74,
+ 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x70, 0x68, 0x6f,
+ 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xde, 0x01, 0x0a, 0x0e, 0x54, 0x65, 0x6d,
+ 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69,
+ 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65,
+ 0x78, 0x12, 0x45, 0x0a, 0x10, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x42, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x10, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70,
+ 0x6c, 0x79, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x09, 0x75, 0x72, 0x6c, 0x42,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x55, 0x52, 0x4c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x48, 0x00, 0x52,
+ 0x09, 0x75, 0x72, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x61,
+ 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x42,
+ 0x08, 0x0a, 0x06, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x22, 0x74, 0x0a, 0x08, 0x4c, 0x6f, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73,
+ 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f,
+ 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12,
+ 0x2a, 0x0a, 0x10, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74,
+ 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x64, 0x65, 0x67, 0x72, 0x65,
+ 0x65, 0x73, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,
+ 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22,
+ 0x67, 0x0a, 0x05, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x78, 0x44, 0x65, 0x70,
+ 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x78,
+ 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x79, 0x44,
+ 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
+ 0x0b, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x12, 0x0c, 0x0a, 0x01,
+ 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x78, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x01, 0x79, 0x22, 0x88, 0x01, 0x0a, 0x15, 0x49, 0x6e, 0x74,
+ 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0f, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x56, 0x65, 0x72,
+ 0x74, 0x69, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x0f, 0x70, 0x6f, 0x6c, 0x79, 0x67,
+ 0x6f, 0x6e, 0x56, 0x65, 0x72, 0x74, 0x69, 0x63, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x08, 0x6c, 0x6f,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52,
+ 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x61, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x22, 0xc0, 0x01, 0x0a, 0x12, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69,
+ 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65,
+ 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x48, 0x61, 0x73, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0c, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x48, 0x61, 0x73, 0x68,
+ 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
+ 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x73, 0x65, 0x6e, 0x64, 0x65,
+ 0x72, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65,
+ 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4b, 0x65, 0x79, 0x48, 0x61, 0x73, 0x68, 0x18, 0x08,
+ 0x20, 0x01, 0x28, 0x0c, 0x52, 0x10, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x4b,
+ 0x65, 0x79, 0x48, 0x61, 0x73, 0x68, 0x12, 0x2e, 0x0a, 0x12, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69,
+ 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01,
+ 0x28, 0x04, 0x52, 0x12, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d,
+ 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x5f, 0x0a, 0x12, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x49, 0x0a, 0x12,
+ 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61,
+ 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64,
+ 0x61, 0x74, 0x61, 0x52, 0x12, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x4d,
+ 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf4, 0x01, 0x0a, 0x0b, 0x41, 0x64, 0x52, 0x65,
+ 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x64, 0x76, 0x65, 0x72,
+ 0x74, 0x69, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0e, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12,
+ 0x45, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64, 0x52, 0x65, 0x70,
+ 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x6e,
+ 0x66, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65, 0x64,
+ 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68,
+ 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6a,
+ 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07,
+ 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63,
+ 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x36, 0x0a, 0x14, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c,
+ 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08,
+ 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47,
+ 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x02, 0x22, 0x8e,
+ 0x03, 0x0a, 0x13, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70,
+ 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04,
+ 0x62, 0x6f, 0x64, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x62, 0x6f, 0x64, 0x79,
+ 0x12, 0x55, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65,
+ 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x2e,
+ 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x49,
+ 0x6e, 0x66, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x6d, 0x65,
+ 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62,
+ 0x6e, 0x61, 0x69, 0x6c, 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74,
+ 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6d,
+ 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d,
+ 0x65, 0x64, 0x69, 0x61, 0x55, 0x72, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x75, 0x6d, 0x62,
+ 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74, 0x68, 0x75, 0x6d,
+ 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54,
+ 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49,
+ 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49,
+ 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x09,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x22,
+ 0x3e, 0x0a, 0x1c, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70,
+ 0x6c, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41,
+ 0x47, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x02, 0x22,
+ 0xe0, 0x05, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12,
+ 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x6e, 0x7a, 0x61, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x6e, 0x7a, 0x61, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x70,
+ 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x34, 0x0a,
+ 0x0d, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x52, 0x0d, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x69, 0x64,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4a, 0x69,
+ 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x65, 0x64, 0x4a, 0x69,
+ 0x64, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e,
+ 0x65, 0x64, 0x4a, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73,
+ 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x10, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63,
+ 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44,
+ 0x61, 0x74, 0x61, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65,
+ 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x36, 0x0a, 0x16, 0x63, 0x6f, 0x6e,
+ 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f,
+ 0x6e, 0x64, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x63, 0x6f, 0x6e, 0x76, 0x65,
+ 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64,
+ 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x53,
+ 0x63, 0x6f, 0x72, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x66, 0x6f, 0x72, 0x77,
+ 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x69,
+ 0x73, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x0b, 0x69, 0x73, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x12, 0x2e, 0x0a,
+ 0x08, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x41, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x49,
+ 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x41, 0x64, 0x12, 0x39, 0x0a,
+ 0x0e, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68, 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x18,
+ 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x68,
+ 0x6f, 0x6c, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78,
+ 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x19, 0x65, 0x70, 0x68, 0x65,
+ 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65,
+ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x65, 0x70, 0x68,
+ 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d,
+ 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x15, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65,
+ 0x72, 0x61, 0x6c, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18,
+ 0x1b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c,
+ 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x44, 0x0a, 0x0f,
+ 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18,
+ 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78,
+ 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x49, 0x6e, 0x66,
+ 0x6f, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x41, 0x64, 0x52, 0x65, 0x70,
+ 0x6c, 0x79, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79,
+ 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x50, 0x0a,
+ 0x23, 0x61, 0x78, 0x6f, 0x6c, 0x6f, 0x74, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65,
+ 0x79, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x23, 0x61, 0x78, 0x6f, 0x6c,
+ 0x6f, 0x74, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x74,
+ 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22,
+ 0xe6, 0x07, 0x0a, 0x0c, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75,
+ 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18,
+ 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65,
+ 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69,
+ 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65,
+ 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69,
+ 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67,
+ 0x68, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74,
+ 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b,
+ 0x65, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b,
+ 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61,
+ 0x32, 0x35, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45,
+ 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x54, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65,
+ 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f,
+ 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74,
+ 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e,
+ 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c,
+ 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
+ 0x61, 0x6d, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61,
+ 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x24, 0x0a, 0x0d,
+ 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61,
+ 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66,
+ 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e,
+ 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x10, 0x66, 0x69, 0x72, 0x73,
+ 0x74, 0x53, 0x63, 0x61, 0x6e, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x12, 0x20, 0x01,
+ 0x28, 0x0c, 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x53, 0x69, 0x64,
+ 0x65, 0x63, 0x61, 0x72, 0x12, 0x28, 0x0a, 0x0f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x53, 0x63, 0x61,
+ 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x66,
+ 0x69, 0x72, 0x73, 0x74, 0x53, 0x63, 0x61, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2c,
+ 0x0a, 0x11, 0x65, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75,
+ 0x70, 0x49, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x65, 0x78, 0x70, 0x65, 0x72,
+ 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c,
+ 0x73, 0x63, 0x61, 0x6e, 0x73, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x15, 0x20, 0x01,
+ 0x28, 0x0c, 0x52, 0x0c, 0x73, 0x63, 0x61, 0x6e, 0x73, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72,
+ 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x73, 0x18,
+ 0x16, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0b, 0x73, 0x63, 0x61, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74,
+ 0x68, 0x73, 0x12, 0x32, 0x0a, 0x14, 0x6d, 0x69, 0x64, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79,
+ 0x46, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c,
+ 0x52, 0x14, 0x6d, 0x69, 0x64, 0x51, 0x75, 0x61, 0x6c, 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x65,
+ 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x38, 0x0a, 0x17, 0x6d, 0x69, 0x64, 0x51, 0x75, 0x61,
+ 0x6c, 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35,
+ 0x36, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x6d, 0x69, 0x64, 0x51, 0x75, 0x61, 0x6c,
+ 0x69, 0x74, 0x79, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36,
+ 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x65, 0x77, 0x4f, 0x6e, 0x63, 0x65, 0x18, 0x19, 0x20, 0x01,
+ 0x28, 0x08, 0x52, 0x08, 0x76, 0x69, 0x65, 0x77, 0x4f, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13,
+ 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50,
+ 0x61, 0x74, 0x68, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x74, 0x68, 0x75, 0x6d, 0x62,
+ 0x6e, 0x61, 0x69, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28,
+ 0x0a, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x53, 0x68, 0x61, 0x32, 0x35,
+ 0x36, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61,
+ 0x69, 0x6c, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x68, 0x75, 0x6d,
+ 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x1c,
+ 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x45,
+ 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x22, 0xc8, 0x04, 0x0a, 0x0e, 0x49, 0x6e, 0x76,
+ 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e,
+ 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x6f, 0x74, 0x65, 0x12,
+ 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x5a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d,
+ 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
+ 0x65, 0x52, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70,
+ 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4d,
+ 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61,
+ 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70,
+ 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4d,
+ 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x61,
+ 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65,
+ 0x79, 0x12, 0x40, 0x0a, 0x1b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x4d,
+ 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x1b, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65,
+ 0x6e, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
+ 0x61, 0x6d, 0x70, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e,
+ 0x74, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28,
+ 0x0c, 0x52, 0x14, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c,
+ 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x38, 0x0a, 0x17, 0x61, 0x74, 0x74, 0x61, 0x63,
+ 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32,
+ 0x35, 0x36, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68,
+ 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35,
+ 0x36, 0x12, 0x32, 0x0a, 0x14, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x44,
+ 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x14, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x72, 0x65, 0x63,
+ 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x38, 0x0a, 0x17, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d,
+ 0x65, 0x6e, 0x74, 0x4a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c,
+ 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x17, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65,
+ 0x6e, 0x74, 0x4a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x22,
+ 0x32, 0x0a, 0x1c, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x41, 0x74, 0x74, 0x61, 0x63, 0x68, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x50, 0x44,
+ 0x46, 0x10, 0x01, 0x22, 0x7e, 0x0a, 0x0e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
+ 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70,
+ 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x63, 0x61, 0x72, 0x64,
+ 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x63, 0x61, 0x72, 0x64, 0x12, 0x34, 0x0a,
+ 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65,
+ 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49,
+ 0x6e, 0x66, 0x6f, 0x22, 0xcf, 0x03, 0x0a, 0x0f, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x67, 0x72, 0x65,
+ 0x65, 0x73, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01,
+ 0x52, 0x0f, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64,
+ 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x6f, 0x6e, 0x67,
+ 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x64, 0x65, 0x67,
+ 0x72, 0x65, 0x65, 0x73, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x12, 0x0a,
+ 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d,
+ 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x75,
+ 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x16, 0x0a,
+ 0x06, 0x69, 0x73, 0x4c, 0x69, 0x76, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69,
+ 0x73, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63,
+ 0x79, 0x49, 0x6e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x10, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x49, 0x6e, 0x4d, 0x65, 0x74, 0x65, 0x72,
+ 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x49, 0x6e, 0x4d, 0x70, 0x73, 0x18,
+ 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x73, 0x70, 0x65, 0x65, 0x64, 0x49, 0x6e, 0x4d, 0x70,
+ 0x73, 0x12, 0x4c, 0x0a, 0x21, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x43, 0x6c, 0x6f, 0x63,
+ 0x6b, 0x77, 0x69, 0x73, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x69,
+ 0x63, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x21, 0x64, 0x65,
+ 0x67, 0x72, 0x65, 0x65, 0x73, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x73, 0x65, 0x46, 0x72,
+ 0x6f, 0x6d, 0x4d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x69, 0x63, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x12,
+ 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6a, 0x70, 0x65,
+ 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c,
+ 0x52, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12,
+ 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e,
+ 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78,
+ 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xdd, 0x05, 0x0a, 0x13, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64,
+ 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x12, 0x0a,
+ 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78,
+ 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x54,
+ 0x65, 0x78, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x6f, 0x6e, 0x69, 0x63, 0x61, 0x6c,
+ 0x55, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x6f, 0x6e,
+ 0x69, 0x63, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
+ 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,
+ 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74,
+ 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12,
+ 0x1a, 0x0a, 0x08, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x67, 0x62, 0x18, 0x07, 0x20, 0x01, 0x28,
+ 0x07, 0x52, 0x08, 0x74, 0x65, 0x78, 0x74, 0x41, 0x72, 0x67, 0x62, 0x12, 0x26, 0x0a, 0x0e, 0x62,
+ 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x41, 0x72, 0x67, 0x62, 0x18, 0x08, 0x20,
+ 0x01, 0x28, 0x07, 0x52, 0x0e, 0x62, 0x61, 0x63, 0x6b, 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x41,
+ 0x72, 0x67, 0x62, 0x12, 0x4a, 0x0a, 0x04, 0x66, 0x6f, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28,
+ 0x0e, 0x32, 0x36, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64,
+ 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x45, 0x78,
+ 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x46, 0x6f, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x66, 0x6f, 0x6e, 0x74, 0x12,
+ 0x5b, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x39, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78, 0x74,
+ 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x2e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x79, 0x70, 0x65, 0x52,
+ 0x0b, 0x70, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d,
+ 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61,
+ 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66,
+ 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e,
+ 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x6f, 0x4e, 0x6f,
+ 0x74, 0x50, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0f, 0x64, 0x6f, 0x4e, 0x6f, 0x74, 0x50, 0x6c, 0x61, 0x79, 0x49, 0x6e, 0x6c, 0x69,
+ 0x6e, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54,
+ 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x46, 0x6f, 0x6e, 0x74, 0x54, 0x79,
+ 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x41, 0x4e, 0x53, 0x5f, 0x53, 0x45, 0x52, 0x49, 0x46,
+ 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x45, 0x52, 0x49, 0x46, 0x10, 0x01, 0x12, 0x13, 0x0a,
+ 0x0f, 0x4e, 0x4f, 0x52, 0x49, 0x43, 0x41, 0x4e, 0x5f, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x52,
+ 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x52, 0x59, 0x4e, 0x44, 0x41, 0x4e, 0x5f, 0x57, 0x52,
+ 0x49, 0x54, 0x45, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x42, 0x45, 0x42, 0x41, 0x53, 0x4e, 0x45,
+ 0x55, 0x45, 0x5f, 0x52, 0x45, 0x47, 0x55, 0x4c, 0x41, 0x52, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c,
+ 0x4f, 0x53, 0x57, 0x41, 0x4c, 0x44, 0x5f, 0x48, 0x45, 0x41, 0x56, 0x59, 0x10, 0x05, 0x22, 0x35,
+ 0x0a, 0x1e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x79, 0x70, 0x65,
+ 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49,
+ 0x44, 0x45, 0x4f, 0x10, 0x01, 0x22, 0xbd, 0x05, 0x0a, 0x0f, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+ 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6d,
+ 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d,
+ 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a,
+ 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a,
+ 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28,
+ 0x04, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1c, 0x0a,
+ 0x09, 0x70, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d,
+ 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d,
+ 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e,
+ 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x4e,
+ 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68,
+ 0x61, 0x32, 0x35, 0x36, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65,
+ 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x72,
+ 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64,
+ 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64,
+ 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0b,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x63, 0x74, 0x56, 0x63, 0x61, 0x72, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63,
+ 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x56, 0x63, 0x61, 0x72, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x74,
+ 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61,
+ 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e,
+ 0x61, 0x69, 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a,
+ 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36,
+ 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69,
+ 0x6c, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x68, 0x75, 0x6d, 0x62,
+ 0x6e, 0x61, 0x69, 0x6c, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x0f, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x12, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x45, 0x6e,
+ 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x24, 0x0a, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54,
+ 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d,
+ 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a,
+ 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65,
+ 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49,
+ 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c,
+ 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x68,
+ 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x26, 0x0a,
+ 0x0e, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x18,
+ 0x13, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c,
+ 0x57, 0x69, 0x64, 0x74, 0x68, 0x22, 0x9a, 0x03, 0x0a, 0x0c, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6d, 0x65,
+ 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65,
+ 0x74, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32,
+ 0x35, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68,
+ 0x61, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x67,
+ 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65,
+ 0x6e, 0x67, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x10,
+ 0x0a, 0x03, 0x70, 0x74, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x70, 0x74, 0x74,
+ 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01,
+ 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x24, 0x0a, 0x0d,
+ 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x08, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32,
+ 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68,
+ 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61,
+ 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d,
+ 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18,
+ 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f,
+ 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65,
+ 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d,
+ 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0c,
+ 0x52, 0x10, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x65, 0x63,
+ 0x61, 0x72, 0x22, 0xa6, 0x07, 0x0a, 0x0c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70,
+ 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70,
+ 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35,
+ 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74,
+ 0x68, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6d,
+ 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d,
+ 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x69, 0x66, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b,
+ 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x67, 0x69, 0x66, 0x50, 0x6c, 0x61, 0x79, 0x62,
+ 0x61, 0x63, 0x6b, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x09, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x77,
+ 0x69, 0x64, 0x74, 0x68, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74,
+ 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32,
+ 0x35, 0x36, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e,
+ 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x54, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72,
+ 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69,
+ 0x76, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a,
+ 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a,
+ 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b,
+ 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x6a,
+ 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, 0x20, 0x01,
+ 0x28, 0x0c, 0x52, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69,
+ 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f,
+ 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43,
+ 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74,
+ 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x65, 0x61,
+ 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x18, 0x12, 0x20, 0x01, 0x28,
+ 0x0c, 0x52, 0x10, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x64, 0x65,
+ 0x63, 0x61, 0x72, 0x12, 0x53, 0x0a, 0x0e, 0x67, 0x69, 0x66, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62,
+ 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x74, 0x74,
+ 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x67, 0x69, 0x66, 0x41, 0x74, 0x74,
+ 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x76, 0x69, 0x65, 0x77,
+ 0x4f, 0x6e, 0x63, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x76, 0x69, 0x65, 0x77,
+ 0x4f, 0x6e, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69,
+ 0x6c, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x13, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x44, 0x69, 0x72, 0x65,
+ 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e,
+ 0x61, 0x69, 0x6c, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0c, 0x52,
+ 0x0f, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36,
+ 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x45, 0x6e, 0x63,
+ 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x12, 0x74, 0x68,
+ 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36,
+ 0x22, 0x39, 0x0a, 0x17, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x08, 0x0a, 0x04, 0x4e,
+ 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x47, 0x49, 0x50, 0x48, 0x59, 0x10, 0x01,
+ 0x12, 0x09, 0x0a, 0x05, 0x54, 0x45, 0x4e, 0x4f, 0x52, 0x10, 0x02, 0x22, 0x20, 0x0a, 0x04, 0x43,
+ 0x61, 0x6c, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x4b, 0x65, 0x79, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x4b, 0x65, 0x79, 0x22, 0x38, 0x0a,
+ 0x04, 0x43, 0x68, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
+ 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70,
+ 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x9d, 0x08, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74,
+ 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x03, 0x6b,
+ 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79,
+ 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
+ 0x12, 0x30, 0x0a, 0x13, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x78, 0x70,
+ 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x65,
+ 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x19, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53,
+ 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c,
+ 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x12, 0x58, 0x0a, 0x17, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x79, 0x6e, 0x63, 0x4e,
+ 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
+ 0x79, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x52, 0x17, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f,
+ 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4f, 0x0a, 0x14, 0x61, 0x70,
+ 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x53, 0x68, 0x61,
+ 0x72, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79,
+ 0x53, 0x68, 0x61, 0x72, 0x65, 0x52, 0x14, 0x61, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53,
+ 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x55, 0x0a, 0x16, 0x61,
+ 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63,
+ 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x16, 0x61, 0x70, 0x70, 0x53,
+ 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x12, 0x85, 0x01, 0x0a, 0x26, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x65,
+ 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x09, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x69, 0x74,
+ 0x69, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x79,
+ 0x6e, 0x63, 0x52, 0x26, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x75, 0x72,
+ 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53,
+ 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x79, 0x0a, 0x22, 0x61, 0x70,
+ 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x61, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x63, 0x65, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41,
+ 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x61, 0x74, 0x61, 0x6c, 0x45, 0x78, 0x63, 0x65,
+ 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x52, 0x22, 0x61, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x61, 0x74, 0x61, 0x6c,
+ 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xaf, 0x02, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63,
+ 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a,
+ 0x06, 0x52, 0x45, 0x56, 0x4f, 0x4b, 0x45, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x45, 0x50, 0x48,
+ 0x45, 0x4d, 0x45, 0x52, 0x41, 0x4c, 0x5f, 0x53, 0x45, 0x54, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x03,
+ 0x12, 0x1b, 0x0a, 0x17, 0x45, 0x50, 0x48, 0x45, 0x4d, 0x45, 0x52, 0x41, 0x4c, 0x5f, 0x53, 0x59,
+ 0x4e, 0x43, 0x5f, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x04, 0x12, 0x1d, 0x0a,
+ 0x19, 0x48, 0x49, 0x53, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x4e, 0x4f,
+ 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18,
+ 0x41, 0x50, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x4b,
+ 0x45, 0x59, 0x5f, 0x53, 0x48, 0x41, 0x52, 0x45, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x50,
+ 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x5f, 0x4b, 0x45, 0x59,
+ 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x07, 0x12, 0x1f, 0x0a, 0x1b, 0x4d, 0x53,
+ 0x47, 0x5f, 0x46, 0x41, 0x4e, 0x4f, 0x55, 0x54, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x46, 0x49, 0x4c,
+ 0x4c, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x10, 0x08, 0x12, 0x2e, 0x0a, 0x2a, 0x49,
+ 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x53, 0x45, 0x43, 0x55, 0x52, 0x49, 0x54, 0x59, 0x5f,
+ 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x54,
+ 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x53, 0x59, 0x4e, 0x43, 0x10, 0x09, 0x12, 0x2a, 0x0a, 0x26, 0x41,
+ 0x50, 0x50, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x54, 0x41, 0x4c, 0x5f, 0x45,
+ 0x58, 0x43, 0x45, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43,
+ 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x0a, 0x22, 0xe9, 0x03, 0x0a, 0x17, 0x48, 0x69, 0x73, 0x74,
+ 0x6f, 0x72, 0x79, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35,
+ 0x36, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61,
+ 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74,
+ 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e,
+ 0x67, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x12,
+ 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53,
+ 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50,
+ 0x61, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63,
+ 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x61, 0x0a, 0x08, 0x73, 0x79, 0x6e, 0x63, 0x54, 0x79, 0x70,
+ 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x45, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x74, 0x69, 0x66,
+ 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53,
+ 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48,
+ 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08,
+ 0x73, 0x79, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x68, 0x75, 0x6e,
+ 0x6b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68,
+ 0x75, 0x6e, 0x6b, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x2c, 0x0a, 0x11, 0x6f, 0x72, 0x69, 0x67,
+ 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x08, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0x7b, 0x0a, 0x26, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72,
+ 0x79, 0x53, 0x79, 0x6e, 0x63, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x53, 0x79, 0x6e, 0x63, 0x54, 0x79, 0x70, 0x65,
+ 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x42, 0x4f, 0x4f, 0x54,
+ 0x53, 0x54, 0x52, 0x41, 0x50, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x4e, 0x49, 0x54, 0x49,
+ 0x41, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x56, 0x33, 0x10, 0x01, 0x12, 0x08,
+ 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x43, 0x45,
+ 0x4e, 0x54, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x55, 0x53, 0x48, 0x5f, 0x4e, 0x41, 0x4d,
+ 0x45, 0x10, 0x04, 0x22, 0x77, 0x0a, 0x0f, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53,
+ 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70,
+ 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x52,
+ 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x44, 0x61, 0x74,
+ 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x44,
+ 0x61, 0x74, 0x61, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x22, 0x29, 0x0a, 0x11,
+ 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x49,
+ 0x64, 0x12, 0x14, 0x0a, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c,
+ 0x52, 0x05, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x22, 0x80, 0x01, 0x0a, 0x1a, 0x41, 0x70, 0x70, 0x53,
+ 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6e, 0x67, 0x65,
+ 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x72, 0x61, 0x77, 0x49, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x72, 0x61, 0x77, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0c,
+ 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0d, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x64, 0x65, 0x78,
+ 0x12, 0x28, 0x0a, 0x0d, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65,
+ 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x42, 0x02, 0x10, 0x01, 0x52, 0x0d, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x22, 0x92, 0x01, 0x0a, 0x13, 0x41,
+ 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x44, 0x61,
+ 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x6b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x07, 0x6b, 0x65, 0x79, 0x44, 0x61, 0x74, 0x61, 0x12, 0x43, 0x0a, 0x0b,
+ 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61,
+ 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x46, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70,
+ 0x72, 0x69, 0x6e, 0x74, 0x52, 0x0b, 0x66, 0x69, 0x6e, 0x67, 0x65, 0x72, 0x70, 0x72, 0x69, 0x6e,
+ 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22,
+ 0x42, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b,
+ 0x65, 0x79, 0x53, 0x68, 0x61, 0x72, 0x65, 0x12, 0x2a, 0x0a, 0x04, 0x6b, 0x65, 0x79, 0x73, 0x18,
+ 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70,
+ 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x04, 0x6b,
+ 0x65, 0x79, 0x73, 0x22, 0x4a, 0x0a, 0x16, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53,
+ 0x79, 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a,
+ 0x06, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x79,
+ 0x6e, 0x63, 0x4b, 0x65, 0x79, 0x49, 0x64, 0x52, 0x06, 0x6b, 0x65, 0x79, 0x49, 0x64, 0x73, 0x22,
+ 0x6c, 0x0a, 0x22, 0x41, 0x70, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x61, 0x74, 0x61, 0x6c,
+ 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74,
+ 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f,
+ 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12,
+ 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0x6a, 0x0a,
+ 0x26, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79,
+ 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x74, 0x74,
+ 0x69, 0x6e, 0x67, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x40, 0x0a, 0x1b, 0x73, 0x65, 0x63, 0x75, 0x72,
+ 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45,
+ 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x73, 0x65,
+ 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0xa1, 0x01, 0x0a, 0x14, 0x43, 0x6f,
+ 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79,
+ 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73,
+ 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43,
+ 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x08, 0x63,
+ 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65,
+ 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f,
+ 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x51, 0x0a,
+ 0x0b, 0x48, 0x53, 0x4d, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x22, 0x0a, 0x0c,
+ 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65,
+ 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, 0x30, 0x30, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, 0x30, 0x30,
+ 0x22, 0x88, 0x04, 0x0a, 0x14, 0x48, 0x53, 0x4d, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
+ 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x5b, 0x0a, 0x09, 0x64, 0x61, 0x79,
+ 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3d, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x53, 0x4d, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
+ 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x53, 0x4d, 0x44, 0x61, 0x74,
+ 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x44, 0x61,
+ 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x64, 0x61, 0x79,
+ 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x65, 0x61, 0x72, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x79, 0x65, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f,
+ 0x6e, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68,
+ 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x4d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x4d, 0x6f, 0x6e, 0x74, 0x68,
+ 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04,
+ 0x68, 0x6f, 0x75, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x12, 0x58, 0x0a, 0x08,
+ 0x63, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3c,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x53, 0x4d, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69,
+ 0x6d, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x2e, 0x48, 0x53, 0x4d, 0x44,
+ 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74,
+ 0x43, 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x63, 0x61,
+ 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x22, 0x7f, 0x0a, 0x21, 0x48, 0x53, 0x4d, 0x44, 0x61, 0x74,
+ 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x44, 0x61,
+ 0x79, 0x4f, 0x66, 0x57, 0x65, 0x65, 0x6b, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4d,
+ 0x4f, 0x4e, 0x44, 0x41, 0x59, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x55, 0x45, 0x53, 0x44,
+ 0x41, 0x59, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x57, 0x45, 0x44, 0x4e, 0x45, 0x53, 0x44, 0x41,
+ 0x59, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x48, 0x55, 0x52, 0x53, 0x44, 0x41, 0x59, 0x10,
+ 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x52, 0x49, 0x44, 0x41, 0x59, 0x10, 0x05, 0x12, 0x0c, 0x0a,
+ 0x08, 0x53, 0x41, 0x54, 0x55, 0x52, 0x44, 0x41, 0x59, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x53,
+ 0x55, 0x4e, 0x44, 0x41, 0x59, 0x10, 0x07, 0x22, 0x42, 0x0a, 0x20, 0x48, 0x53, 0x4d, 0x44, 0x61,
+ 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x43,
+ 0x61, 0x6c, 0x65, 0x6e, 0x64, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x47,
+ 0x52, 0x45, 0x47, 0x4f, 0x52, 0x49, 0x41, 0x4e, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x4f,
+ 0x4c, 0x41, 0x52, 0x5f, 0x48, 0x49, 0x4a, 0x52, 0x49, 0x10, 0x02, 0x22, 0x34, 0x0a, 0x14, 0x48,
+ 0x53, 0x4d, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x45, 0x70,
+ 0x6f, 0x63, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
+ 0x70, 0x22, 0x98, 0x01, 0x0a, 0x0b, 0x48, 0x53, 0x4d, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d,
+ 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x53, 0x4d,
+ 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e,
+ 0x74, 0x48, 0x00, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x12, 0x3b,
+ 0x0a, 0x09, 0x75, 0x6e, 0x69, 0x78, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x53, 0x4d, 0x44, 0x61, 0x74,
+ 0x65, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x6e, 0x69, 0x78, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x48, 0x00,
+ 0x52, 0x09, 0x75, 0x6e, 0x69, 0x78, 0x45, 0x70, 0x6f, 0x63, 0x68, 0x42, 0x0f, 0x0a, 0x0d, 0x64,
+ 0x61, 0x74, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x4f, 0x6e, 0x65, 0x6f, 0x66, 0x22, 0xa5, 0x01, 0x0a,
+ 0x17, 0x48, 0x53, 0x4d, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x50,
+ 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61,
+ 0x75, 0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75,
+ 0x6c, 0x74, 0x12, 0x30, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x53, 0x4d,
+ 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x00, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72,
+ 0x65, 0x6e, 0x63, 0x79, 0x12, 0x30, 0x0a, 0x08, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48,
+ 0x53, 0x4d, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, 0x08, 0x64, 0x61,
+ 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x4f,
+ 0x6e, 0x65, 0x6f, 0x66, 0x22, 0x8d, 0x03, 0x0a, 0x17, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53,
+ 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x20,
+ 0x0a, 0x0b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65,
+ 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09,
+ 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x61, 0x6c, 0x6c,
+ 0x62, 0x61, 0x63, 0x6b, 0x4c, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61,
+ 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x4c, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x61, 0x6c, 0x6c,
+ 0x62, 0x61, 0x63, 0x6b, 0x4c, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61,
+ 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x4c, 0x63, 0x12, 0x4c, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61,
+ 0x6c, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x06, 0x20,
+ 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x53, 0x4d, 0x4c,
+ 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
+ 0x74, 0x65, 0x72, 0x52, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x62, 0x6c, 0x65,
+ 0x50, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d,
+ 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x4c, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x0f, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x4c, 0x67,
+ 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x74, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69,
+ 0x63, 0x4c, 0x63, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x64, 0x65, 0x74, 0x65, 0x72,
+ 0x6d, 0x69, 0x6e, 0x69, 0x73, 0x74, 0x69, 0x63, 0x4c, 0x63, 0x12, 0x38, 0x0a, 0x0b, 0x68, 0x79,
+ 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x48, 0x73, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65,
+ 0x64, 0x48, 0x73, 0x6d, 0x22, 0x87, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79,
+ 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x0b, 0x6e,
+ 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x52, 0x0b, 0x6e, 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3f, 0x0a,
+ 0x11, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b,
+ 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x11, 0x72, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x94,
+ 0x02, 0x0a, 0x15, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e,
+ 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x0b, 0x6e, 0x6f, 0x74, 0x65,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x6e,
+ 0x6f, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x75,
+ 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x73, 0x6f, 0x34, 0x32, 0x31,
+ 0x37, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63,
+ 0x79, 0x43, 0x6f, 0x64, 0x65, 0x49, 0x73, 0x6f, 0x34, 0x32, 0x31, 0x37, 0x12, 0x1e, 0x0a, 0x0a,
+ 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, 0x30, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04,
+ 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, 0x30, 0x30, 0x12, 0x20, 0x0a, 0x0b,
+ 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x28,
+ 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
+ 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x54,
+ 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x2b, 0x0a, 0x06, 0x61, 0x6d, 0x6f, 0x75,
+ 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52, 0x06, 0x61,
+ 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x43, 0x0a, 0x1c, 0x44, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65,
+ 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x42, 0x0a, 0x1b, 0x43, 0x61,
+ 0x6e, 0x63, 0x65, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
+ 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x03, 0x6b, 0x65, 0x79,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0xc3,
+ 0x03, 0x0a, 0x13, 0x4c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65,
+ 0x73, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52,
+ 0x0f, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65,
+ 0x12, 0x2a, 0x0a, 0x10, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x4c, 0x6f, 0x6e, 0x67, 0x69,
+ 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x64, 0x65, 0x67, 0x72,
+ 0x65, 0x65, 0x73, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x10,
+ 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x49, 0x6e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79,
+ 0x49, 0x6e, 0x4d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x70, 0x65, 0x65,
+ 0x64, 0x49, 0x6e, 0x4d, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x73, 0x70,
+ 0x65, 0x65, 0x64, 0x49, 0x6e, 0x4d, 0x70, 0x73, 0x12, 0x4c, 0x0a, 0x21, 0x64, 0x65, 0x67, 0x72,
+ 0x65, 0x65, 0x73, 0x43, 0x6c, 0x6f, 0x63, 0x6b, 0x77, 0x69, 0x73, 0x65, 0x46, 0x72, 0x6f, 0x6d,
+ 0x4d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x69, 0x63, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x18, 0x05, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x21, 0x64, 0x65, 0x67, 0x72, 0x65, 0x65, 0x73, 0x43, 0x6c, 0x6f, 0x63,
+ 0x6b, 0x77, 0x69, 0x73, 0x65, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x61, 0x67, 0x6e, 0x65, 0x74, 0x69,
+ 0x63, 0x4e, 0x6f, 0x72, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62,
+ 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e,
+ 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65,
+ 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x69,
+ 0x6d, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6a, 0x70, 0x65, 0x67,
+ 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0c, 0x52,
+ 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x34,
+ 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74,
+ 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
+ 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x90, 0x04, 0x0a, 0x0e, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c,
+ 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x66,
+ 0x69, 0x6c, 0x65, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x69, 0x6c,
+ 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c,
+ 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x65, 0x45, 0x6e, 0x63, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12,
+ 0x1a, 0x0a, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28,
+ 0x0c, 0x52, 0x08, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6d,
+ 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d,
+ 0x69, 0x6d, 0x65, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68,
+ 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12,
+ 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05,
+ 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x50,
+ 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63,
+ 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c, 0x65, 0x6e,
+ 0x67, 0x74, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x4c,
+ 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65,
+ 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03,
+ 0x52, 0x11, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x4b, 0x65, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
+ 0x61, 0x6d, 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d,
+ 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x66,
+ 0x69, 0x72, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12,
+ 0x2c, 0x0a, 0x11, 0x66, 0x69, 0x72, 0x73, 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x64,
+ 0x65, 0x63, 0x61, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x66, 0x69, 0x72, 0x73,
+ 0x74, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x53, 0x69, 0x64, 0x65, 0x63, 0x61, 0x72, 0x12, 0x1e, 0x0a,
+ 0x0a, 0x69, 0x73, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28,
+ 0x08, 0x52, 0x0a, 0x69, 0x73, 0x41, 0x6e, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x12, 0x22, 0x0a,
+ 0x0c, 0x70, 0x6e, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x10, 0x20,
+ 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x70, 0x6e, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69,
+ 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f,
+ 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43,
+ 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74,
+ 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x97, 0x04, 0x0a, 0x0f, 0x46, 0x6f, 0x75, 0x72,
+ 0x52, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x07, 0x63,
+ 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63,
+ 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x63, 0x6f,
+ 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x36, 0x0a, 0x06, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x18,
+ 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x69,
+ 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x06, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x12, 0x2f, 0x0a,
+ 0x07, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x07, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x12, 0x42,
+ 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48,
+ 0x00, 0x52, 0x0f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x5a, 0x0a, 0x17, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75,
+ 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x69, 0x67, 0x68,
+ 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x17, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72,
+ 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39,
+ 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61,
+ 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6d, 0x61,
+ 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x76, 0x69, 0x64,
+ 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c,
+ 0x65, 0x22, 0x9b, 0x04, 0x0a, 0x17, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f,
+ 0x75, 0x72, 0x52, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x30, 0x0a,
+ 0x13, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74,
+ 0x54, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x68, 0x79, 0x64, 0x72,
+ 0x61, 0x74, 0x65, 0x64, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x78, 0x74, 0x12,
+ 0x2e, 0x0a, 0x12, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x6f, 0x74, 0x65,
+ 0x72, 0x54, 0x65, 0x78, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x68, 0x79, 0x64,
+ 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x54, 0x65, 0x78, 0x74, 0x12,
+ 0x47, 0x0a, 0x0f, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
+ 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x0f, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65,
+ 0x64, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x65, 0x6d, 0x70,
+ 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x65,
+ 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x49, 0x64, 0x12, 0x42, 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x75,
+ 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+ 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x6f, 0x63,
+ 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2e, 0x0a, 0x11,
+ 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x54, 0x65, 0x78,
+ 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x68, 0x79, 0x64, 0x72, 0x61,
+ 0x74, 0x65, 0x64, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x54, 0x65, 0x78, 0x74, 0x12, 0x39, 0x0a, 0x0c,
+ 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22,
+ 0xbd, 0x02, 0x0a, 0x0f, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e,
+ 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f,
+ 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4a, 0x0a, 0x10, 0x68, 0x79, 0x64,
+ 0x72, 0x61, 0x74, 0x65, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x64, 0x72,
+ 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x75, 0x72, 0x52, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c,
+ 0x61, 0x74, 0x65, 0x52, 0x10, 0x68, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x54, 0x65, 0x6d,
+ 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x0f, 0x66, 0x6f, 0x75, 0x72, 0x52, 0x6f, 0x77,
+ 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x6f, 0x75, 0x72, 0x52, 0x6f, 0x77, 0x54, 0x65,
+ 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x66, 0x6f, 0x75, 0x72, 0x52, 0x6f,
+ 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x17, 0x68, 0x79, 0x64,
+ 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x75, 0x72, 0x52, 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70,
+ 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x48, 0x79, 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x75, 0x72, 0x52,
+ 0x6f, 0x77, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x17, 0x68, 0x79,
+ 0x64, 0x72, 0x61, 0x74, 0x65, 0x64, 0x46, 0x6f, 0x75, 0x72, 0x52, 0x6f, 0x77, 0x54, 0x65, 0x6d,
+ 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x22,
+ 0xca, 0x01, 0x0a, 0x1a, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e,
+ 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x64, 0x12, 0x30,
+ 0x0a, 0x13, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61,
+ 0x79, 0x54, 0x65, 0x78, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x73, 0x65, 0x6c,
+ 0x65, 0x63, 0x74, 0x65, 0x64, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74,
+ 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18,
+ 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f,
+ 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65,
+ 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74,
+ 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x22, 0x82, 0x01, 0x0a,
+ 0x0f, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
+ 0x12, 0x37, 0x0a, 0x0c, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x74,
+ 0x61, 0x6c, 0x6f, 0x67, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74,
+ 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12,
+ 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x22, 0xf2, 0x02, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x6e, 0x61,
+ 0x70, 0x73, 0x68, 0x6f, 0x74, 0x12, 0x37, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74,
+ 0x49, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x1c,
+ 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05,
+ 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74,
+ 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
+ 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79,
+ 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x72, 0x72,
+ 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x69, 0x63,
+ 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, 0x30, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28,
+ 0x03, 0x52, 0x0f, 0x70, 0x72, 0x69, 0x63, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30,
+ 0x30, 0x30, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x49, 0x64,
+ 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x72,
+ 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x03, 0x75, 0x72, 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52,
+ 0x11, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75,
+ 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65,
+ 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x49,
+ 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x22, 0xd6, 0x01, 0x0a, 0x0e, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x30, 0x0a, 0x07, 0x70, 0x72, 0x6f,
+ 0x64, 0x75, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68,
+ 0x6f, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x62,
+ 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x4a, 0x69, 0x64, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, 0x75, 0x73, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x4f,
+ 0x77, 0x6e, 0x65, 0x72, 0x4a, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c,
+ 0x6f, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x43, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x53, 0x6e, 0x61, 0x70, 0x73, 0x68, 0x6f, 0x74,
+ 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e,
+ 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e,
+ 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22,
+ 0xbe, 0x04, 0x0a, 0x0c, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x07, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68,
+ 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x74,
+ 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x74, 0x65, 0x6d,
+ 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x69, 0x74, 0x65,
+ 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f,
+ 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65,
+ 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61,
+ 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x46, 0x0a, 0x07, 0x73,
+ 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x72,
+ 0x64, 0x65, 0x72, 0x53, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x52, 0x07, 0x73, 0x75, 0x72, 0x66,
+ 0x61, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x06,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a,
+ 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0a, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1c, 0x0a,
+ 0x09, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x4a, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x09, 0x73, 0x65, 0x6c, 0x6c, 0x65, 0x72, 0x4a, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74,
+ 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65,
+ 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74,
+ 0x31, 0x30, 0x30, 0x30, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x74, 0x6f, 0x74, 0x61,
+ 0x6c, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, 0x30, 0x30, 0x12, 0x2c, 0x0a, 0x11, 0x74,
+ 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65,
+ 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x75, 0x72,
+ 0x72, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e,
+ 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e,
+ 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22,
+ 0x26, 0x0a, 0x17, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f,
+ 0x72, 0x64, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x49, 0x4e,
+ 0x51, 0x55, 0x49, 0x52, 0x59, 0x10, 0x01, 0x22, 0x27, 0x0a, 0x18, 0x4f, 0x72, 0x64, 0x65, 0x72,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x53, 0x75, 0x72, 0x66,
+ 0x61, 0x63, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x41, 0x54, 0x41, 0x4c, 0x4f, 0x47, 0x10, 0x01,
+ 0x22, 0x53, 0x0a, 0x03, 0x52, 0x6f, 0x77, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a,
+ 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x14, 0x0a, 0x05, 0x72, 0x6f, 0x77, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
+ 0x72, 0x6f, 0x77, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x18, 0x02,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x52, 0x6f, 0x77,
+ 0x52, 0x04, 0x72, 0x6f, 0x77, 0x73, 0x22, 0x8c, 0x02, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b,
+ 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e,
+ 0x0a, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x12, 0x42,
+ 0x0a, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x4c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79,
+ 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x05,
+ 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x63,
+ 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x08, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x35,
+ 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73,
+ 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
+ 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x45, 0x4c,
+ 0x45, 0x43, 0x54, 0x10, 0x01, 0x22, 0x39, 0x0a, 0x11, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65,
+ 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x6f, 0x77, 0x49, 0x64,
+ 0x22, 0xde, 0x02, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c,
+ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x52,
+ 0x0a, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x36, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4c, 0x69, 0x73,
+ 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x4c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x6c, 0x69, 0x73, 0x74, 0x54, 0x79,
+ 0x70, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x11, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x53,
+ 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f,
+ 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49,
+ 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f,
+ 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
+ 0x6f, 0x6e, 0x22, 0x3d, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x54, 0x79, 0x70,
+ 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11,
+ 0x0a, 0x0d, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x45, 0x4c, 0x45, 0x43, 0x54, 0x10,
+ 0x01, 0x22, 0x90, 0x02, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74,
+ 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75,
+ 0x70, 0x4a, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x72, 0x6f, 0x75,
+ 0x70, 0x4a, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x43, 0x6f,
+ 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65,
+ 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x45, 0x78,
+ 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10,
+ 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24,
+ 0x0a, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18,
+ 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x6a, 0x70, 0x65, 0x67, 0x54, 0x68, 0x75, 0x6d, 0x62,
+ 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34,
+ 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x07, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74,
+ 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74,
+ 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x9c, 0x01, 0x0a, 0x10, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72,
+ 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x68, 0x61,
+ 0x74, 0x4a, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x68, 0x61, 0x74,
+ 0x4a, 0x69, 0x64, 0x12, 0x30, 0x0a, 0x13, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c,
+ 0x45, 0x78, 0x70, 0x69, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
+ 0x52, 0x13, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x45, 0x78, 0x70, 0x69, 0x72,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x19, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72,
+ 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x19, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65,
+ 0x72, 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
+ 0x61, 0x6d, 0x70, 0x22, 0xd4, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65,
+ 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x65, 0x73,
+ 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x0e, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4a, 0x69,
+ 0x64, 0x12, 0x28, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x70,
+ 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x61, 0x73,
+ 0x68, 0x12, 0x57, 0x0a, 0x1a, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x45, 0x70,
+ 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18,
+ 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x70,
+ 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x1a,
+ 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x45, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72,
+ 0x61, 0x6c, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x3e, 0x0a, 0x12, 0x46, 0x75,
+ 0x74, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x12, 0x28, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x2e, 0x0a, 0x0a, 0x42, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x70,
+ 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
+ 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x22, 0xae, 0x01, 0x0a, 0x06, 0x42,
+ 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x49,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x49,
+ 0x64, 0x12, 0x31, 0x0a, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x75,
+ 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x65, 0x78, 0x74, 0x52, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x54, 0x65, 0x78, 0x74, 0x12, 0x2c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79,
+ 0x70, 0x65, 0x22, 0x27, 0x0a, 0x0a, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65,
+ 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0c, 0x0a,
+ 0x08, 0x52, 0x45, 0x53, 0x50, 0x4f, 0x4e, 0x53, 0x45, 0x10, 0x01, 0x22, 0x8f, 0x05, 0x0a, 0x0e,
+ 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20,
+ 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x65, 0x78, 0x74,
+ 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x54, 0x65, 0x78, 0x74, 0x18, 0x07,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x54, 0x65, 0x78, 0x74,
+ 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18,
+ 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f,
+ 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65,
+ 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x07, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e,
+ 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x07, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x12,
+ 0x4e, 0x0a, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f,
+ 0x6e, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54,
+ 0x79, 0x70, 0x65, 0x52, 0x0a, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x14, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
+ 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x42, 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+ 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+ 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x69, 0x6d, 0x61,
+ 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48,
+ 0x00, 0x52, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
+ 0x42, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x48, 0x00, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x22, 0x6e, 0x0a, 0x18, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12,
+ 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05,
+ 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x45, 0x58, 0x54, 0x10,
+ 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x4f, 0x43, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x03, 0x12,
+ 0x09, 0x0a, 0x05, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x56, 0x49,
+ 0x44, 0x45, 0x4f, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x4c, 0x4f, 0x43, 0x41, 0x54, 0x49, 0x4f,
+ 0x4e, 0x10, 0x06, 0x42, 0x08, 0x0a, 0x06, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xc5, 0x02,
+ 0x0a, 0x16, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
+ 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x65, 0x64, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65, 0x64, 0x42, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49,
+ 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x63,
+ 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x4c, 0x0a, 0x04, 0x74, 0x79,
+ 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79,
+ 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x13, 0x73, 0x65, 0x6c, 0x65,
+ 0x63, 0x74, 0x65, 0x64, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x13, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x65,
+ 0x64, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x54, 0x65, 0x78, 0x74, 0x22, 0x3b, 0x0a, 0x1a,
+ 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e,
+ 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x49, 0x53, 0x50, 0x4c,
+ 0x41, 0x59, 0x5f, 0x54, 0x45, 0x58, 0x54, 0x10, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73,
+ 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe2, 0x13, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x67, 0x0a, 0x1c, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b,
+ 0x65, 0x79, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73,
+ 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x52, 0x1c, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x74, 0x72,
+ 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37,
+ 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6d, 0x61,
+ 0x67, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
+ 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x13, 0x65, 0x78, 0x74, 0x65,
+ 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
+ 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x45, 0x78,
+ 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x54, 0x65, 0x78, 0x74, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65,
+ 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
+ 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e, 0x74,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x64, 0x6f, 0x63, 0x75, 0x6d, 0x65, 0x6e,
+ 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x61, 0x75, 0x64, 0x69,
+ 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x52, 0x0c, 0x61, 0x75, 0x64, 0x69, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0c, 0x76, 0x69,
+ 0x64, 0x65, 0x6f, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x0a, 0x04, 0x63, 0x61,
+ 0x6c, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x43, 0x61, 0x6c, 0x6c, 0x52, 0x04, 0x63, 0x61, 0x6c, 0x6c, 0x12, 0x1f, 0x0a, 0x04, 0x63,
+ 0x68, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x52, 0x04, 0x63, 0x68, 0x61, 0x74, 0x12, 0x40, 0x0a, 0x0f,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
+ 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72,
+ 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4f,
+ 0x0a, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x41, 0x72, 0x72,
+ 0x61, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x14, 0x63, 0x6f, 0x6e, 0x74, 0x61,
+ 0x63, 0x74, 0x73, 0x41, 0x72, 0x72, 0x61, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
+ 0x58, 0x0a, 0x17, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75,
+ 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x1e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x48, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53,
+ 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x52, 0x17, 0x68, 0x69, 0x67, 0x68, 0x6c, 0x79, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x75, 0x72,
+ 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x2a, 0x66, 0x61,
+ 0x73, 0x74, 0x52, 0x61, 0x74, 0x63, 0x68, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6e, 0x64,
+ 0x65, 0x72, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f,
+ 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79,
+ 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x52, 0x2a, 0x66, 0x61, 0x73, 0x74, 0x52, 0x61, 0x74, 0x63, 0x68, 0x65, 0x74,
+ 0x4b, 0x65, 0x79, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x44, 0x69, 0x73, 0x74,
+ 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12,
+ 0x49, 0x0a, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x50, 0x61, 0x79, 0x6d,
+ 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4c, 0x0a, 0x13, 0x6c, 0x69,
+ 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x4c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x52, 0x13, 0x6c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x52, 0x0a, 0x15, 0x72, 0x65, 0x71, 0x75,
+ 0x65, 0x73, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x15, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61,
+ 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x67, 0x0a, 0x1c,
+ 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65,
+ 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x17, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x63, 0x6c, 0x69,
+ 0x6e, 0x65, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x1c, 0x64, 0x65, 0x63, 0x6c, 0x69, 0x6e, 0x65,
+ 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x64, 0x0a, 0x1b, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x50,
+ 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74,
+ 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x1b,
+ 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71,
+ 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x74,
+ 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x19,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6d,
+ 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x74, 0x65,
+ 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a,
+ 0x0e, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18,
+ 0x1a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x53, 0x74,
+ 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x73, 0x74,
+ 0x69, 0x63, 0x6b, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x49, 0x0a, 0x12,
+ 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x52, 0x12, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x61, 0x0a, 0x1a, 0x74, 0x65, 0x6d, 0x70, 0x6c,
+ 0x61, 0x74, 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x1a,
+ 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x65,
+ 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x70, 0x72,
+ 0x6f, 0x64, 0x75, 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1e, 0x20, 0x01,
+ 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x75,
+ 0x63, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x46, 0x0a, 0x11, 0x64, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x1f,
+ 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x44, 0x65, 0x76,
+ 0x69, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x11,
+ 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x12, 0x49, 0x0a, 0x12, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x74,
+ 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e,
+ 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x12, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x34, 0x0a, 0x0b,
+ 0x6c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0b, 0x6c, 0x69, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x12, 0x43, 0x0a, 0x0f, 0x76, 0x69, 0x65, 0x77, 0x4f, 0x6e, 0x63, 0x65, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x0f, 0x76, 0x69, 0x65, 0x77, 0x4f, 0x6e, 0x63, 0x65,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x37, 0x0a, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x52, 0x0c, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x12, 0x4c, 0x0a, 0x13, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
+ 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x13, 0x6c, 0x69, 0x73, 0x74, 0x52,
+ 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x45,
+ 0x0a, 0x10, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x46, 0x75, 0x74, 0x75, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x52, 0x10, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x0e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x52, 0x0e, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x12, 0x55, 0x0a, 0x16, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x52, 0x65,
+ 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x2b, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x42, 0x75, 0x74, 0x74,
+ 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x52, 0x16, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f,
+ 0x6e, 0x73, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x74, 0x0a, 0x0a, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x6f,
+ 0x74, 0x65, 0x4a, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x6d,
+ 0x6f, 0x74, 0x65, 0x4a, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x4d, 0x65,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x66, 0x72, 0x6f, 0x6d, 0x4d, 0x65, 0x12, 0x0e,
+ 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x20,
+ 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
+ 0x22, 0xc5, 0x19, 0x0a, 0x0b, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
+ 0x12, 0x48, 0x0a, 0x0d, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61,
+ 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46,
+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0d, 0x6c, 0x61, 0x62,
+ 0x65, 0x6c, 0x73, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x5a, 0x0a, 0x16, 0x76, 0x6f,
+ 0x69, 0x70, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x67,
+ 0x6f, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57,
+ 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x16,
+ 0x76, 0x6f, 0x69, 0x70, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x4f, 0x75,
+ 0x74, 0x67, 0x6f, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
+ 0x56, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62,
+ 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x08, 0x67, 0x72,
+ 0x6f, 0x75, 0x70, 0x73, 0x56, 0x33, 0x12, 0x4a, 0x0a, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73,
+ 0x56, 0x33, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
+ 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c,
+ 0x61, 0x67, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x56, 0x33, 0x43, 0x72, 0x65, 0x61,
+ 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62,
+ 0x65, 0x72, 0x56, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57,
+ 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0e,
+ 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x56, 0x32, 0x12, 0x5a,
+ 0x0a, 0x16, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x33, 0x54,
+ 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
+ 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c,
+ 0x61, 0x67, 0x52, 0x16, 0x71, 0x75, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56,
+ 0x33, 0x54, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x12, 0x48, 0x0a, 0x0d, 0x6c, 0x69,
+ 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28,
+ 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61,
+ 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
+ 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0d, 0x6c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74,
+ 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x42, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x56, 0x6e, 0x61,
+ 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62,
+ 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0a, 0x71, 0x75,
+ 0x65, 0x72, 0x79, 0x56, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x5a, 0x0a, 0x16, 0x76, 0x6f, 0x69, 0x70,
+ 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69,
+ 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62,
+ 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x16, 0x76, 0x6f,
+ 0x69, 0x70, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64, 0x75, 0x61, 0x6c, 0x49, 0x6e, 0x63, 0x6f,
+ 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x50, 0x0a, 0x11, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70,
+ 0x6c, 0x69, 0x65, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75,
+ 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46,
+ 0x6c, 0x61, 0x67, 0x52, 0x11, 0x71, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x65,
+ 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e,
+ 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
+ 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62,
+ 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x08, 0x70, 0x61,
+ 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4e, 0x0a, 0x10, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65,
+ 0x72, 0x50, 0x61, 0x63, 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74,
+ 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
+ 0x46, 0x6c, 0x61, 0x67, 0x52, 0x10, 0x73, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x50, 0x61, 0x63,
+ 0x6b, 0x51, 0x75, 0x65, 0x72, 0x79, 0x12, 0x52, 0x0a, 0x12, 0x6c, 0x69, 0x76, 0x65, 0x4c, 0x6f,
+ 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x0d, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65,
+ 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
+ 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x12, 0x6c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61,
+ 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x42, 0x0a, 0x0a, 0x6c, 0x61,
+ 0x62, 0x65, 0x6c, 0x73, 0x45, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
+ 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c,
+ 0x61, 0x67, 0x52, 0x0a, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x64, 0x69, 0x74, 0x12, 0x44,
+ 0x0a, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x0f, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46,
+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75,
+ 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x70,
+ 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x64, 0x0a, 0x1b, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x55, 0x70, 0x6c,
+ 0x6f, 0x61, 0x64, 0x52, 0x69, 0x63, 0x68, 0x51, 0x75, 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c,
+ 0x69, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65,
+ 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x1b, 0x6d,
+ 0x65, 0x64, 0x69, 0x61, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x52, 0x69, 0x63, 0x68, 0x51, 0x75,
+ 0x69, 0x63, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x65, 0x73, 0x12, 0x3c, 0x0a, 0x07, 0x76, 0x6e,
+ 0x61, 0x6d, 0x65, 0x56, 0x32, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e,
+ 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52,
+ 0x07, 0x76, 0x6e, 0x61, 0x6d, 0x65, 0x56, 0x32, 0x12, 0x4e, 0x0a, 0x10, 0x76, 0x69, 0x64, 0x65,
+ 0x6f, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x72, 0x6c, 0x18, 0x14, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65,
+ 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
+ 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x10, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x50, 0x6c, 0x61,
+ 0x79, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x48, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74,
+ 0x75, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x69, 0x6e, 0x67, 0x18, 0x15, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75,
+ 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46,
+ 0x6c, 0x61, 0x67, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x61, 0x6e, 0x6b, 0x69,
+ 0x6e, 0x67, 0x12, 0x54, 0x0a, 0x13, 0x76, 0x6f, 0x69, 0x70, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69,
+ 0x64, 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x16, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75,
+ 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46,
+ 0x6c, 0x61, 0x67, 0x52, 0x13, 0x76, 0x6f, 0x69, 0x70, 0x49, 0x6e, 0x64, 0x69, 0x76, 0x69, 0x64,
+ 0x75, 0x61, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x52, 0x0a, 0x12, 0x74, 0x68, 0x69, 0x72,
+ 0x64, 0x50, 0x61, 0x72, 0x74, 0x79, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x17,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62,
+ 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74,
+ 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x12, 0x74, 0x68, 0x69, 0x72, 0x64, 0x50,
+ 0x61, 0x72, 0x74, 0x79, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x62, 0x0a, 0x1a,
+ 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72,
+ 0x64, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74,
+ 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
+ 0x46, 0x6c, 0x61, 0x67, 0x52, 0x1a, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x74, 0x6c, 0x79,
+ 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x65, 0x64, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67,
+ 0x12, 0x5a, 0x0a, 0x16, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x56, 0x34, 0x4a, 0x6f, 0x69, 0x6e,
+ 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74,
+ 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
+ 0x46, 0x6c, 0x61, 0x67, 0x52, 0x16, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x56, 0x34, 0x4a, 0x6f,
+ 0x69, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x4a, 0x0a, 0x0e,
+ 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x1a,
+ 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62,
+ 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74,
+ 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74,
+ 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x07, 0x63, 0x61, 0x74, 0x61,
+ 0x6c, 0x6f, 0x67, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74,
+ 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65,
+ 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x07, 0x63,
+ 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12, 0x4c, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x72, 0x65,
+ 0x64, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75,
+ 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46,
+ 0x6c, 0x61, 0x67, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x72, 0x65, 0x64, 0x53, 0x74, 0x69, 0x63,
+ 0x6b, 0x65, 0x72, 0x73, 0x12, 0x48, 0x0a, 0x0d, 0x76, 0x6f, 0x69, 0x70, 0x47, 0x72, 0x6f, 0x75,
+ 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72,
+ 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e,
+ 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52,
+ 0x0d, 0x76, 0x6f, 0x69, 0x70, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x12, 0x4c,
+ 0x0a, 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46,
+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0f, 0x74, 0x65, 0x6d,
+ 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x66, 0x0a, 0x1c,
+ 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49,
+ 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x1f, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65,
+ 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
+ 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x1c, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x61, 0x63, 0x74, 0x69,
+ 0x76, 0x69, 0x74, 0x79, 0x12, 0x50, 0x0a, 0x11, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61,
+ 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0e, 0x32,
+ 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75,
+ 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46,
+ 0x6c, 0x61, 0x67, 0x52, 0x11, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x13, 0x65, 0x32, 0x45, 0x4e, 0x6f, 0x74,
+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x21, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46,
+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75,
+ 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x13, 0x65, 0x32, 0x45, 0x4e, 0x6f, 0x74, 0x69,
+ 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x4e, 0x0a, 0x10,
+ 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x56, 0x32,
+ 0x18, 0x22, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57,
+ 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65,
+ 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x10, 0x72, 0x65, 0x63, 0x65,
+ 0x6e, 0x74, 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x56, 0x32, 0x12, 0x48, 0x0a, 0x0d,
+ 0x73, 0x79, 0x6e, 0x63, 0x64, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x31, 0x18, 0x23, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46,
+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75,
+ 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0d, 0x73, 0x79, 0x6e, 0x63, 0x64, 0x52, 0x65,
+ 0x6c, 0x65, 0x61, 0x73, 0x65, 0x31, 0x12, 0x4e, 0x0a, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74,
+ 0x53, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x72, 0x73, 0x56, 0x33, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0e,
+ 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74,
+ 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73,
+ 0x46, 0x6c, 0x61, 0x67, 0x52, 0x10, 0x72, 0x65, 0x63, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x69, 0x63,
+ 0x6b, 0x65, 0x72, 0x73, 0x56, 0x33, 0x12, 0x42, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f,
+ 0x74, 0x69, 0x63, 0x65, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57,
+ 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0a,
+ 0x75, 0x73, 0x65, 0x72, 0x4e, 0x6f, 0x74, 0x69, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x73, 0x79,
+ 0x6e, 0x63, 0x64, 0x52, 0x65, 0x6c, 0x65, 0x61, 0x73, 0x65, 0x31, 0x31, 0x18, 0x26, 0x20, 0x01,
+ 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65,
+ 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
+ 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x0e, 0x73, 0x79, 0x6e, 0x63, 0x64, 0x52, 0x65, 0x6c,
+ 0x65, 0x61, 0x73, 0x65, 0x31, 0x31, 0x12, 0x3c, 0x0a, 0x07, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72,
+ 0x74, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46,
+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x07, 0x73, 0x75, 0x70,
+ 0x70, 0x6f, 0x72, 0x74, 0x12, 0x4c, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x69,
+ 0x43, 0x6c, 0x65, 0x61, 0x6e, 0x75, 0x70, 0x18, 0x28, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e,
+ 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65,
+ 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61,
+ 0x67, 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x69, 0x69, 0x43, 0x6c, 0x65, 0x61, 0x6e,
+ 0x75, 0x70, 0x12, 0x64, 0x0a, 0x1b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x6f, 0x67, 0x66, 0x6f,
+ 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4f, 0x6e, 0x6c,
+ 0x79, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46,
+ 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x52, 0x1b, 0x67, 0x72, 0x6f,
+ 0x75, 0x70, 0x44, 0x6f, 0x67, 0x66, 0x6f, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x74, 0x65,
+ 0x72, 0x6e, 0x61, 0x6c, 0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x46, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x74,
+ 0x69, 0x6e, 0x67, 0x73, 0x53, 0x79, 0x6e, 0x63, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
+ 0x65, 0x73, 0x2e, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46, 0x6c,
+ 0x61, 0x67, 0x52, 0x0c, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x53, 0x79, 0x6e, 0x63,
+ 0x22, 0x56, 0x0a, 0x0f, 0x57, 0x65, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x46,
+ 0x6c, 0x61, 0x67, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54,
+ 0x45, 0x44, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x4f, 0x52, 0x43, 0x45, 0x5f, 0x55, 0x50,
+ 0x47, 0x52, 0x41, 0x44, 0x45, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x56, 0x45, 0x4c,
+ 0x4f, 0x50, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x52, 0x4f, 0x44,
+ 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x22, 0xb6, 0x01, 0x0a, 0x17, 0x4e, 0x6f, 0x74,
+ 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67,
+ 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x07, 0x6d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x10, 0x6d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12,
+ 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x04,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
+ 0x74, 0x22, 0xc5, 0x01, 0x0a, 0x14, 0x57, 0x65, 0x62, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69,
+ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x09, 0x74,
+ 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x75, 0x6e, 0x72, 0x65,
+ 0x61, 0x64, 0x43, 0x68, 0x61, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x75,
+ 0x6e, 0x72, 0x65, 0x61, 0x64, 0x43, 0x68, 0x61, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x12, 0x6e, 0x6f,
+ 0x74, 0x69, 0x66, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0e, 0x6e, 0x6f,
+ 0x74, 0x69, 0x66, 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6e, 0x6f, 0x74, 0x69, 0x66,
+ 0x79, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x73, 0x22, 0x9b, 0x0c, 0x0a, 0x0b, 0x50, 0x61,
+ 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x56, 0x0a, 0x12, 0x63, 0x75, 0x72,
+ 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61,
+ 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e,
+ 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x52, 0x12, 0x63,
+ 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65,
+ 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, 0x30, 0x30, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x31, 0x30, 0x30,
+ 0x30, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72, 0x4a, 0x69, 0x64,
+ 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x72,
+ 0x4a, 0x69, 0x64, 0x12, 0x3c, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20,
+ 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6d,
+ 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49,
+ 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x12, 0x32, 0x0a, 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
+ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52,
+ 0x14, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65,
+ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x3f, 0x0a, 0x11, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x4b, 0x65, 0x79, 0x52, 0x11, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79,
+ 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x07, 0x20, 0x01, 0x28, 0x04, 0x52,
+ 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70,
+ 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x65,
+ 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x70,
+ 0x72, 0x6f, 0x6f, 0x66, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
+ 0x63, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e,
+ 0x63, 0x79, 0x12, 0x45, 0x0a, 0x09, 0x74, 0x78, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
+ 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61,
+ 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e,
+ 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54, 0x78, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x09,
+ 0x74, 0x78, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x75, 0x73, 0x65,
+ 0x4e, 0x6f, 0x76, 0x69, 0x46, 0x69, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x0b,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x73, 0x65, 0x4e, 0x6f, 0x76, 0x69, 0x46, 0x69, 0x61,
+ 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x39, 0x0a, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61,
+ 0x72, 0x79, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f,
+ 0x6e, 0x65, 0x79, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x41, 0x6d, 0x6f, 0x75,
+ 0x6e, 0x74, 0x12, 0x3b, 0x0a, 0x0e, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6d,
+ 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x6e, 0x65, 0x79, 0x52,
+ 0x0e, 0x65, 0x78, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x22,
+ 0x34, 0x0a, 0x13, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x75,
+ 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57,
+ 0x4e, 0x5f, 0x43, 0x55, 0x52, 0x52, 0x45, 0x4e, 0x43, 0x59, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03,
+ 0x49, 0x4e, 0x52, 0x10, 0x01, 0x22, 0xd7, 0x01, 0x0a, 0x11, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e,
+ 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x12, 0x0a, 0x0e, 0x55,
+ 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x10, 0x00, 0x12,
+ 0x0e, 0x0a, 0x0a, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12,
+ 0x08, 0x0a, 0x04, 0x53, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x4e, 0x45, 0x45,
+ 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x10, 0x03, 0x12, 0x0c, 0x0a,
+ 0x08, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x43,
+ 0x4f, 0x55, 0x4c, 0x44, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54,
+ 0x45, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x46, 0x55, 0x4e, 0x44, 0x45, 0x44, 0x10,
+ 0x06, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0c,
+ 0x0a, 0x08, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09,
+ 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x09, 0x12, 0x15, 0x0a, 0x11, 0x57,
+ 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x5f, 0x46, 0x4f, 0x52, 0x5f, 0x50, 0x41, 0x59, 0x45, 0x52,
+ 0x10, 0x0a, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x41, 0x49, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x0b, 0x22,
+ 0xd5, 0x04, 0x0a, 0x14, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x54,
+ 0x78, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e,
+ 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47,
+ 0x5f, 0x53, 0x45, 0x54, 0x55, 0x50, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x45, 0x4e, 0x44,
+ 0x49, 0x4e, 0x47, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x45, 0x54,
+ 0x55, 0x50, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x03, 0x12, 0x0b,
+ 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x43,
+ 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41,
+ 0x49, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44,
+ 0x5f, 0x52, 0x49, 0x53, 0x4b, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x46, 0x41, 0x49, 0x4c, 0x45,
+ 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x1e,
+ 0x0a, 0x1a, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45,
+ 0x52, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47, 0x10, 0x09, 0x12, 0x0d,
+ 0x0a, 0x09, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x10, 0x0a, 0x12, 0x13, 0x0a,
+ 0x0f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x5f, 0x46, 0x49, 0x4e, 0x41, 0x4c,
+ 0x10, 0x0b, 0x12, 0x10, 0x0a, 0x0c, 0x52, 0x45, 0x46, 0x55, 0x4e, 0x44, 0x45, 0x44, 0x5f, 0x54,
+ 0x58, 0x4e, 0x10, 0x0c, 0x12, 0x11, 0x0a, 0x0d, 0x52, 0x45, 0x46, 0x55, 0x4e, 0x44, 0x5f, 0x46,
+ 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x0d, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x46, 0x55, 0x4e,
+ 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53,
+ 0x49, 0x4e, 0x47, 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x45, 0x46, 0x55, 0x4e, 0x44, 0x5f,
+ 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x44, 0x41, 0x10, 0x0f, 0x12, 0x0f, 0x0a, 0x0b, 0x45,
+ 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x5f, 0x54, 0x58, 0x4e, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d,
+ 0x41, 0x55, 0x54, 0x48, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x11, 0x12,
+ 0x21, 0x0a, 0x1d, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x5f, 0x46,
+ 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53, 0x49, 0x4e, 0x47,
+ 0x10, 0x12, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x55, 0x54, 0x48, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45,
+ 0x4c, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x13, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x4f,
+ 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x10, 0x14, 0x12, 0x13, 0x0a, 0x0f,
+ 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10,
+ 0x15, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x46, 0x41, 0x49,
+ 0x4c, 0x45, 0x44, 0x10, 0x16, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54,
+ 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x52, 0x49, 0x53, 0x4b, 0x10, 0x17, 0x12, 0x14,
+ 0x0a, 0x10, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54,
+ 0x45, 0x44, 0x10, 0x18, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f,
+ 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x19, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4f, 0x4c,
+ 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x45, 0x44, 0x10, 0x1a, 0x12,
+ 0x16, 0x0a, 0x12, 0x43, 0x4f, 0x4c, 0x4c, 0x45, 0x43, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45,
+ 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x10, 0x1b, 0x22, 0x81, 0x2c, 0x0a, 0x0e, 0x57, 0x65, 0x62, 0x4d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x03, 0x6b, 0x65,
+ 0x79, 0x18, 0x01, 0x20, 0x02, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12,
+ 0x28, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x0e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65,
+ 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6d, 0x65, 0x73,
+ 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20,
+ 0x01, 0x28, 0x04, 0x52, 0x10, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x69, 0x6d, 0x65,
+ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x42, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
+ 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65,
+ 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x65, 0x62,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75,
+ 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x61, 0x72,
+ 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b,
+ 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x69,
+ 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x67, 0x6e,
+ 0x6f, 0x72, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x72, 0x65, 0x64, 0x18, 0x11,
+ 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x74, 0x61, 0x72, 0x72, 0x65, 0x64, 0x12, 0x1c, 0x0a,
+ 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x09, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70,
+ 0x75, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70,
+ 0x75, 0x73, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x6d, 0x65, 0x64, 0x69, 0x61,
+ 0x43, 0x69, 0x70, 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36,
+ 0x18, 0x14, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x15, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x43, 0x69, 0x70,
+ 0x68, 0x65, 0x72, 0x74, 0x65, 0x78, 0x74, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1c, 0x0a,
+ 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08,
+ 0x52, 0x09, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x63, 0x61, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x75,
+ 0x72, 0x6c, 0x54, 0x65, 0x78, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x75, 0x72,
+ 0x6c, 0x54, 0x65, 0x78, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x72, 0x6c, 0x4e, 0x75, 0x6d, 0x62,
+ 0x65, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x72, 0x6c, 0x4e, 0x75, 0x6d,
+ 0x62, 0x65, 0x72, 0x12, 0x56, 0x0a, 0x0f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74,
+ 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x70,
+ 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49,
+ 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x65, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e,
+ 0x66, 0x6f, 0x53, 0x74, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0f, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x53, 0x74, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63,
+ 0x6c, 0x65, 0x61, 0x72, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x0a, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x4d, 0x65, 0x64, 0x69, 0x61, 0x12, 0x34, 0x0a, 0x15, 0x6d,
+ 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x75, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65,
+ 0x74, 0x65, 0x72, 0x73, 0x18, 0x1a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x6d, 0x65, 0x73, 0x73,
+ 0x61, 0x67, 0x65, 0x53, 0x74, 0x75, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72,
+ 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x1b, 0x20,
+ 0x01, 0x28, 0x0d, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a,
+ 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x1c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x6c,
+ 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x0b, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74,
+ 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b,
+ 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x48, 0x0a, 0x11, 0x66,
+ 0x69, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e,
+ 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x4c,
+ 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61,
+ 0x67, 0x65, 0x52, 0x11, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x4c, 0x69, 0x76, 0x65, 0x4c, 0x6f, 0x63,
+ 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x11, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x50,
+ 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b,
+ 0x32, 0x12, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74,
+ 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x11, 0x71, 0x75, 0x6f, 0x74, 0x65, 0x64, 0x50, 0x61, 0x79, 0x6d,
+ 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x38, 0x0a, 0x17, 0x65, 0x70, 0x68, 0x65, 0x6d,
+ 0x65, 0x72, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
+ 0x6d, 0x70, 0x18, 0x20, 0x20, 0x01, 0x28, 0x04, 0x52, 0x17, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65,
+ 0x72, 0x61, 0x6c, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
+ 0x70, 0x12, 0x2c, 0x0a, 0x11, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x44, 0x75,
+ 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x65, 0x70,
+ 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
+ 0x2a, 0x0a, 0x10, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x4f, 0x66, 0x66, 0x54,
+ 0x6f, 0x4f, 0x6e, 0x18, 0x22, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x65, 0x70, 0x68, 0x65, 0x6d,
+ 0x65, 0x72, 0x61, 0x6c, 0x4f, 0x66, 0x66, 0x54, 0x6f, 0x4f, 0x6e, 0x12, 0x2e, 0x0a, 0x12, 0x65,
+ 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72, 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x4f, 0x66, 0x53, 0x79, 0x6e,
+ 0x63, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x65, 0x70, 0x68, 0x65, 0x6d, 0x65, 0x72,
+ 0x61, 0x6c, 0x4f, 0x75, 0x74, 0x4f, 0x66, 0x53, 0x79, 0x6e, 0x63, 0x12, 0x60, 0x0a, 0x10, 0x62,
+ 0x69, 0x7a, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
+ 0x24, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2e, 0x57, 0x65,
+ 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x57, 0x65, 0x62,
+ 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x69, 0x7a, 0x50, 0x72,
+ 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x62, 0x69, 0x7a,
+ 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x28, 0x0a,
+ 0x0f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64, 0x42, 0x69, 0x7a, 0x4e, 0x61, 0x6d, 0x65,
+ 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x65, 0x64,
+ 0x42, 0x69, 0x7a, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x66, 0x0a, 0x14, 0x57, 0x65, 0x62, 0x4d, 0x65,
+ 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
+ 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45,
+ 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x45, 0x52, 0x56, 0x45,
+ 0x52, 0x5f, 0x41, 0x43, 0x4b, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x45, 0x4c, 0x49, 0x56,
+ 0x45, 0x52, 0x59, 0x5f, 0x41, 0x43, 0x4b, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x45, 0x41,
+ 0x44, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x4c, 0x41, 0x59, 0x45, 0x44, 0x10, 0x05, 0x22,
+ 0xec, 0x20, 0x0a, 0x16, 0x57, 0x65, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e,
+ 0x66, 0x6f, 0x53, 0x74, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e,
+ 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x56, 0x4f, 0x4b,
+ 0x45, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x54, 0x45, 0x58,
+ 0x54, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x55, 0x54, 0x55, 0x52, 0x45, 0x50, 0x52, 0x4f,
+ 0x4f, 0x46, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x4e, 0x4f, 0x4e, 0x5f, 0x56, 0x45, 0x52, 0x49,
+ 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10,
+ 0x04, 0x12, 0x19, 0x0a, 0x15, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f,
+ 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13,
+ 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54,
+ 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45,
+ 0x44, 0x5f, 0x4c, 0x4f, 0x57, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x07, 0x12,
+ 0x11, 0x0a, 0x0d, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x48, 0x49, 0x47, 0x48,
+ 0x10, 0x08, 0x12, 0x1c, 0x0a, 0x18, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x49,
+ 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x09,
+ 0x12, 0x18, 0x0a, 0x14, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x49,
+ 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x0a, 0x12, 0x19, 0x0a, 0x15, 0x56, 0x45,
+ 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x49, 0x4e, 0x49, 0x54, 0x49, 0x41, 0x4c, 0x5f, 0x48,
+ 0x49, 0x47, 0x48, 0x10, 0x0b, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45,
+ 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4e, 0x59,
+ 0x5f, 0x54, 0x4f, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x0c, 0x12, 0x23, 0x0a, 0x1f, 0x56, 0x45,
+ 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f,
+ 0x4e, 0x5f, 0x41, 0x4e, 0x59, 0x5f, 0x54, 0x4f, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x10, 0x0d, 0x12,
+ 0x23, 0x0a, 0x1f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e,
+ 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x49, 0x47, 0x48, 0x5f, 0x54, 0x4f, 0x5f, 0x4c,
+ 0x4f, 0x57, 0x10, 0x0e, 0x12, 0x27, 0x0a, 0x23, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44,
+ 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x48, 0x49, 0x47, 0x48,
+ 0x5f, 0x54, 0x4f, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x0f, 0x12, 0x26, 0x0a,
+ 0x22, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49,
+ 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x54, 0x4f, 0x5f,
+ 0x4c, 0x4f, 0x57, 0x10, 0x10, 0x12, 0x26, 0x0a, 0x22, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45,
+ 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x4f, 0x57,
+ 0x5f, 0x54, 0x4f, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x11, 0x12, 0x23, 0x0a,
+ 0x1f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49,
+ 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x4c, 0x4f, 0x57,
+ 0x10, 0x12, 0x12, 0x27, 0x0a, 0x23, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54,
+ 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x5f, 0x54,
+ 0x4f, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x13, 0x12, 0x10, 0x0a, 0x0c, 0x47,
+ 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x14, 0x12, 0x18, 0x0a,
+ 0x14, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x53, 0x55,
+ 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x15, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x52, 0x4f, 0x55, 0x50,
+ 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x49, 0x43, 0x4f, 0x4e, 0x10, 0x16, 0x12, 0x1c,
+ 0x0a, 0x18, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x49,
+ 0x4e, 0x56, 0x49, 0x54, 0x45, 0x5f, 0x4c, 0x49, 0x4e, 0x4b, 0x10, 0x17, 0x12, 0x1c, 0x0a, 0x18,
+ 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x44, 0x45, 0x53,
+ 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x18, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x52,
+ 0x4f, 0x55, 0x50, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x52, 0x45, 0x53, 0x54, 0x52,
+ 0x49, 0x43, 0x54, 0x10, 0x19, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x43,
+ 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x55, 0x4e, 0x43, 0x45, 0x10, 0x1a,
+ 0x12, 0x19, 0x0a, 0x15, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43,
+ 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x41, 0x44, 0x44, 0x10, 0x1b, 0x12, 0x1c, 0x0a, 0x18, 0x47,
+ 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54,
+ 0x5f, 0x52, 0x45, 0x4d, 0x4f, 0x56, 0x45, 0x10, 0x1c, 0x12, 0x1d, 0x0a, 0x19, 0x47, 0x52, 0x4f,
+ 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x50,
+ 0x52, 0x4f, 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x1d, 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x52, 0x4f, 0x55,
+ 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x44, 0x45,
+ 0x4d, 0x4f, 0x54, 0x45, 0x10, 0x1e, 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f,
+ 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x49,
+ 0x54, 0x45, 0x10, 0x1f, 0x12, 0x1b, 0x0a, 0x17, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41,
+ 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4c, 0x45, 0x41, 0x56, 0x45, 0x10,
+ 0x20, 0x12, 0x23, 0x0a, 0x1f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49,
+ 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x4e, 0x55,
+ 0x4d, 0x42, 0x45, 0x52, 0x10, 0x21, 0x12, 0x14, 0x0a, 0x10, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43,
+ 0x41, 0x53, 0x54, 0x5f, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x10, 0x22, 0x12, 0x11, 0x0a, 0x0d,
+ 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x41, 0x44, 0x44, 0x10, 0x23, 0x12,
+ 0x14, 0x0a, 0x10, 0x42, 0x52, 0x4f, 0x41, 0x44, 0x43, 0x41, 0x53, 0x54, 0x5f, 0x52, 0x45, 0x4d,
+ 0x4f, 0x56, 0x45, 0x10, 0x24, 0x12, 0x18, 0x0a, 0x14, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x49, 0x43,
+ 0x5f, 0x4e, 0x4f, 0x54, 0x49, 0x46, 0x49, 0x43, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x25, 0x12,
+ 0x18, 0x0a, 0x14, 0x45, 0x32, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59, 0x5f,
+ 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x44, 0x10, 0x26, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x32, 0x45,
+ 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45, 0x44, 0x10, 0x27, 0x12, 0x15, 0x0a, 0x11,
+ 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x45, 0x44, 0x5f, 0x56, 0x4f, 0x49, 0x43,
+ 0x45, 0x10, 0x28, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x4d, 0x49, 0x53, 0x53,
+ 0x45, 0x44, 0x5f, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x29, 0x12, 0x1c, 0x0a, 0x18, 0x49, 0x4e,
+ 0x44, 0x49, 0x56, 0x49, 0x44, 0x55, 0x41, 0x4c, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f,
+ 0x4e, 0x55, 0x4d, 0x42, 0x45, 0x52, 0x10, 0x2a, 0x12, 0x10, 0x0a, 0x0c, 0x47, 0x52, 0x4f, 0x55,
+ 0x50, 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x2b, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x52,
+ 0x4f, 0x55, 0x50, 0x5f, 0x41, 0x4e, 0x4e, 0x4f, 0x55, 0x4e, 0x43, 0x45, 0x5f, 0x4d, 0x4f, 0x44,
+ 0x45, 0x5f, 0x4d, 0x45, 0x53, 0x53, 0x41, 0x47, 0x45, 0x5f, 0x42, 0x4f, 0x55, 0x4e, 0x43, 0x45,
+ 0x10, 0x2c, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x45,
+ 0x44, 0x5f, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x10, 0x2d, 0x12,
+ 0x1b, 0x0a, 0x17, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x4d, 0x49, 0x53, 0x53, 0x45, 0x44, 0x5f, 0x47,
+ 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x10, 0x2e, 0x12, 0x16, 0x0a, 0x12,
+ 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x43, 0x49, 0x50, 0x48, 0x45, 0x52, 0x54, 0x45,
+ 0x58, 0x54, 0x10, 0x2f, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f,
+ 0x46, 0x55, 0x54, 0x55, 0x52, 0x45, 0x50, 0x52, 0x4f, 0x4f, 0x46, 0x10, 0x30, 0x12, 0x2c, 0x0a,
+ 0x28, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43,
+ 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41,
+ 0x54, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x31, 0x12, 0x2e, 0x0a, 0x2a, 0x50,
+ 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49,
+ 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45,
+ 0x5f, 0x52, 0x45, 0x46, 0x55, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x32, 0x12, 0x33, 0x0a, 0x2f, 0x50,
+ 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49,
+ 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45,
+ 0x5f, 0x52, 0x45, 0x46, 0x55, 0x4e, 0x44, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x33,
+ 0x12, 0x35, 0x0a, 0x31, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x4e,
+ 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52,
+ 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f,
+ 0x53, 0x45, 0x54, 0x55, 0x50, 0x10, 0x34, 0x12, 0x3c, 0x0a, 0x38, 0x50, 0x41, 0x59, 0x4d, 0x45,
+ 0x4e, 0x54, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53,
+ 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x43, 0x45, 0x49, 0x56, 0x45, 0x52, 0x5f, 0x53,
+ 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x46, 0x54, 0x45, 0x52, 0x5f, 0x48, 0x49, 0x43,
+ 0x43, 0x55, 0x50, 0x10, 0x35, 0x12, 0x29, 0x0a, 0x25, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54,
+ 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x43, 0x43, 0x4f, 0x55, 0x4e, 0x54, 0x5f,
+ 0x53, 0x45, 0x54, 0x55, 0x50, 0x5f, 0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x36,
+ 0x12, 0x28, 0x0a, 0x24, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49,
+ 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x4e, 0x44, 0x5f, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f,
+ 0x52, 0x45, 0x4d, 0x49, 0x4e, 0x44, 0x45, 0x52, 0x10, 0x37, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x41,
+ 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x45, 0x4e,
+ 0x44, 0x5f, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x41,
+ 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x38, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e,
+ 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54,
+ 0x5f, 0x44, 0x45, 0x43, 0x4c, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x39, 0x12, 0x22, 0x0a, 0x1e, 0x50,
+ 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45,
+ 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45, 0x44, 0x10, 0x3a, 0x12,
+ 0x24, 0x0a, 0x20, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x4f,
+ 0x4e, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c,
+ 0x4c, 0x45, 0x44, 0x10, 0x3b, 0x12, 0x29, 0x0a, 0x25, 0x42, 0x49, 0x5a, 0x5f, 0x56, 0x45, 0x52,
+ 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e,
+ 0x5f, 0x54, 0x4f, 0x50, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, 0x3c,
+ 0x12, 0x29, 0x0a, 0x25, 0x42, 0x49, 0x5a, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44,
+ 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x42, 0x4f, 0x54, 0x54,
+ 0x4f, 0x4d, 0x5f, 0x54, 0x4f, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x3d, 0x12, 0x11, 0x0a, 0x0d, 0x42,
+ 0x49, 0x5a, 0x5f, 0x49, 0x4e, 0x54, 0x52, 0x4f, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x3e, 0x12, 0x14,
+ 0x0a, 0x10, 0x42, 0x49, 0x5a, 0x5f, 0x49, 0x4e, 0x54, 0x52, 0x4f, 0x5f, 0x42, 0x4f, 0x54, 0x54,
+ 0x4f, 0x4d, 0x10, 0x3f, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x49, 0x5a, 0x5f, 0x4e, 0x41, 0x4d, 0x45,
+ 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x10, 0x40, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x49, 0x5a,
+ 0x5f, 0x4d, 0x4f, 0x56, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45,
+ 0x52, 0x5f, 0x41, 0x50, 0x50, 0x10, 0x41, 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x49, 0x5a, 0x5f, 0x54,
+ 0x57, 0x4f, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f,
+ 0x4e, 0x5f, 0x54, 0x4f, 0x50, 0x10, 0x42, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x49, 0x5a, 0x5f, 0x54,
+ 0x57, 0x4f, 0x5f, 0x54, 0x49, 0x45, 0x52, 0x5f, 0x4d, 0x49, 0x47, 0x52, 0x41, 0x54, 0x49, 0x4f,
+ 0x4e, 0x5f, 0x42, 0x4f, 0x54, 0x54, 0x4f, 0x4d, 0x10, 0x43, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x56,
+ 0x45, 0x52, 0x53, 0x49, 0x5a, 0x45, 0x44, 0x10, 0x44, 0x12, 0x28, 0x0a, 0x24, 0x47, 0x52, 0x4f,
+ 0x55, 0x50, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x46, 0x52, 0x45,
+ 0x51, 0x55, 0x45, 0x4e, 0x54, 0x4c, 0x59, 0x5f, 0x46, 0x4f, 0x52, 0x57, 0x41, 0x52, 0x44, 0x45,
+ 0x44, 0x10, 0x45, 0x12, 0x1c, 0x0a, 0x18, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x56, 0x34, 0x5f,
+ 0x41, 0x44, 0x44, 0x5f, 0x49, 0x4e, 0x56, 0x49, 0x54, 0x45, 0x5f, 0x53, 0x45, 0x4e, 0x54, 0x10,
+ 0x46, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x52, 0x4f, 0x55, 0x50, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49,
+ 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x41, 0x44, 0x44, 0x5f, 0x52, 0x45, 0x51, 0x55, 0x45,
+ 0x53, 0x54, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x10, 0x47, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x48, 0x41,
+ 0x4e, 0x47, 0x45, 0x5f, 0x45, 0x50, 0x48, 0x45, 0x4d, 0x45, 0x52, 0x41, 0x4c, 0x5f, 0x53, 0x45,
+ 0x54, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x48, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x32, 0x45, 0x5f, 0x44,
+ 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x43, 0x48, 0x41, 0x4e, 0x47, 0x45, 0x44, 0x10, 0x49, 0x12,
+ 0x0f, 0x0a, 0x0b, 0x56, 0x49, 0x45, 0x57, 0x45, 0x44, 0x5f, 0x4f, 0x4e, 0x43, 0x45, 0x10, 0x4a,
+ 0x12, 0x15, 0x0a, 0x11, 0x45, 0x32, 0x45, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x45,
+ 0x44, 0x5f, 0x4e, 0x4f, 0x57, 0x10, 0x4b, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x4c, 0x55, 0x45, 0x5f,
+ 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53,
+ 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x10, 0x4c, 0x12, 0x1e, 0x0a, 0x1a, 0x42,
+ 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x54,
+ 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x10, 0x4d, 0x12, 0x23, 0x0a, 0x1f, 0x42,
+ 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x54,
+ 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x10, 0x4e,
+ 0x12, 0x1e, 0x0a, 0x1a, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50,
+ 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x4f,
+ 0x12, 0x37, 0x0a, 0x33, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50,
+ 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54,
+ 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x56,
+ 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x50, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x4c, 0x55,
+ 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52,
+ 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x51, 0x12, 0x37, 0x0a, 0x33, 0x42, 0x4c, 0x55, 0x45, 0x5f,
+ 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46,
+ 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d,
+ 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x52,
+ 0x12, 0x28, 0x0a, 0x24, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50,
+ 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46,
+ 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x10, 0x53, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x4c,
+ 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49,
+ 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x54, 0x12,
+ 0x3c, 0x0a, 0x38, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f,
+ 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49,
+ 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49,
+ 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x55, 0x12, 0x21, 0x0a,
+ 0x1d, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52,
+ 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x56,
+ 0x12, 0x3c, 0x0a, 0x38, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50,
+ 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45,
+ 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53,
+ 0x45, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x57, 0x12, 0x2a,
+ 0x0a, 0x26, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55,
+ 0x4d, 0x45, 0x52, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e,
+ 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x58, 0x12, 0x2f, 0x0a, 0x2b, 0x42, 0x4c,
+ 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, 0x5f,
+ 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55,
+ 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x59, 0x12, 0x2b, 0x0a, 0x27, 0x42,
+ 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52,
+ 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45,
+ 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x5a, 0x12, 0x30, 0x0a, 0x2c, 0x42, 0x4c, 0x55, 0x45,
+ 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, 0x5f, 0x54, 0x4f,
+ 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e,
+ 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x5b, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x4c,
+ 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x54,
+ 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x10, 0x5c, 0x12,
+ 0x24, 0x0a, 0x20, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46,
+ 0x5f, 0x46, 0x42, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d,
+ 0x49, 0x53, 0x45, 0x10, 0x5d, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53,
+ 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49,
+ 0x46, 0x49, 0x45, 0x44, 0x10, 0x5e, 0x12, 0x38, 0x0a, 0x34, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d,
+ 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52,
+ 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52,
+ 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x5f,
+ 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c,
+ 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x60, 0x12,
+ 0x38, 0x0a, 0x34, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46,
+ 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f,
+ 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56,
+ 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x61, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x4c, 0x55,
+ 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49,
+ 0x53, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53,
+ 0x45, 0x10, 0x62, 0x12, 0x24, 0x0a, 0x20, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f,
+ 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56,
+ 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x63, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x4c, 0x55,
+ 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49,
+ 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x64, 0x12, 0x16, 0x0a,
+ 0x12, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50,
+ 0x5f, 0x46, 0x42, 0x10, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53,
+ 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x43, 0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, 0x10, 0x66, 0x12,
+ 0x17, 0x0a, 0x13, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x54, 0x4f, 0x5f, 0x53,
+ 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x10, 0x67, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x4c, 0x55, 0x45,
+ 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f,
+ 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49,
+ 0x45, 0x44, 0x10, 0x68, 0x12, 0x2f, 0x0a, 0x2b, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47,
+ 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x42,
+ 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46,
+ 0x49, 0x45, 0x44, 0x10, 0x69, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53,
+ 0x47, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f,
+ 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44,
+ 0x10, 0x6a, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x55,
+ 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x56, 0x45, 0x52,
+ 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x6b, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x4c, 0x55, 0x45, 0x5f,
+ 0x4d, 0x53, 0x47, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f,
+ 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45,
+ 0x44, 0x10, 0x6c, 0x12, 0x2f, 0x0a, 0x2b, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f,
+ 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f,
+ 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49,
+ 0x45, 0x44, 0x10, 0x6d, 0x12, 0x2b, 0x0a, 0x27, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47,
+ 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c,
+ 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
+ 0x6e, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x56, 0x45,
+ 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49,
+ 0x46, 0x49, 0x45, 0x44, 0x10, 0x6f, 0x12, 0x36, 0x0a, 0x32, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d,
+ 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49,
+ 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d,
+ 0x49, 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x70, 0x12, 0x32,
+ 0x0a, 0x2e, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46,
+ 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f,
+ 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44,
+ 0x10, 0x71, 0x12, 0x36, 0x0a, 0x32, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42,
+ 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54,
+ 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e,
+ 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x72, 0x12, 0x32, 0x0a, 0x2e, 0x42, 0x4c,
+ 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45,
+ 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46,
+ 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x73, 0x12, 0x37,
+ 0x0a, 0x33, 0x42, 0x4c, 0x55, 0x45, 0x5f, 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f,
+ 0x46, 0x42, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f,
+ 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d, 0x49, 0x53, 0x45, 0x5f, 0x56, 0x45, 0x52,
+ 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x74, 0x12, 0x37, 0x0a, 0x33, 0x42, 0x4c, 0x55, 0x45, 0x5f,
+ 0x4d, 0x53, 0x47, 0x5f, 0x53, 0x45, 0x4c, 0x46, 0x5f, 0x46, 0x42, 0x5f, 0x56, 0x45, 0x52, 0x49,
+ 0x46, 0x49, 0x45, 0x44, 0x5f, 0x54, 0x4f, 0x5f, 0x42, 0x53, 0x50, 0x5f, 0x50, 0x52, 0x45, 0x4d,
+ 0x49, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x56, 0x45, 0x52, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x75,
+ 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x32, 0x45, 0x5f, 0x49, 0x44, 0x45, 0x4e, 0x54, 0x49, 0x54, 0x59,
+ 0x5f, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x76, 0x22, 0x4b,
+ 0x0a, 0x1e, 0x57, 0x65, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x66, 0x6f,
+ 0x42, 0x69, 0x7a, 0x50, 0x72, 0x69, 0x76, 0x61, 0x63, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
+ 0x12, 0x08, 0x0a, 0x04, 0x45, 0x32, 0x45, 0x45, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x46, 0x42,
+ 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x53, 0x50, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x42,
+ 0x53, 0x50, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x46, 0x42, 0x10, 0x03,
+}
+
+var (
+ file_def_proto_rawDescOnce sync.Once
+ file_def_proto_rawDescData = file_def_proto_rawDesc
+)
+
+func file_def_proto_rawDescGZIP() []byte {
+ file_def_proto_rawDescOnce.Do(func() {
+ file_def_proto_rawDescData = protoimpl.X.CompressGZIP(file_def_proto_rawDescData)
+ })
+ return file_def_proto_rawDescData
+}
+
+var file_def_proto_enumTypes = make([]protoimpl.EnumInfo, 24)
+var file_def_proto_msgTypes = make([]protoimpl.MessageInfo, 79)
+var file_def_proto_goTypes = []interface{}{
+ (AdReplyInfo_AdReplyInfoMediaType)(0), // 0: proto.AdReplyInfo.AdReplyInfoMediaType
+ (ExternalAdReplyInfo_ExternalAdReplyInfoMediaType)(0), // 1: proto.ExternalAdReplyInfo.ExternalAdReplyInfoMediaType
+ (InvoiceMessage_InvoiceMessageAttachmentType)(0), // 2: proto.InvoiceMessage.InvoiceMessageAttachmentType
+ (ExtendedTextMessage_ExtendedTextMessageFontType)(0), // 3: proto.ExtendedTextMessage.ExtendedTextMessageFontType
+ (ExtendedTextMessage_ExtendedTextMessagePreviewType)(0), // 4: proto.ExtendedTextMessage.ExtendedTextMessagePreviewType
+ (VideoMessage_VideoMessageAttribution)(0), // 5: proto.VideoMessage.VideoMessageAttribution
+ (ProtocolMessage_ProtocolMessageType)(0), // 6: proto.ProtocolMessage.ProtocolMessageType
+ (HistorySyncNotification_HistorySyncNotificationHistorySyncType)(0), // 7: proto.HistorySyncNotification.HistorySyncNotificationHistorySyncType
+ (HSMDateTimeComponent_HSMDateTimeComponentDayOfWeekType)(0), // 8: proto.HSMDateTimeComponent.HSMDateTimeComponentDayOfWeekType
+ (HSMDateTimeComponent_HSMDateTimeComponentCalendarType)(0), // 9: proto.HSMDateTimeComponent.HSMDateTimeComponentCalendarType
+ (OrderMessage_OrderMessageOrderStatus)(0), // 10: proto.OrderMessage.OrderMessageOrderStatus
+ (OrderMessage_OrderMessageOrderSurface)(0), // 11: proto.OrderMessage.OrderMessageOrderSurface
+ (ListMessage_ListMessageListType)(0), // 12: proto.ListMessage.ListMessageListType
+ (ListResponseMessage_ListResponseMessageListType)(0), // 13: proto.ListResponseMessage.ListResponseMessageListType
+ (Button_ButtonType)(0), // 14: proto.Button.ButtonType
+ (ButtonsMessage_ButtonsMessageHeaderType)(0), // 15: proto.ButtonsMessage.ButtonsMessageHeaderType
+ (ButtonsResponseMessage_ButtonsResponseMessageType)(0), // 16: proto.ButtonsResponseMessage.ButtonsResponseMessageType
+ (WebFeatures_WebFeaturesFlag)(0), // 17: proto.WebFeatures.WebFeaturesFlag
+ (PaymentInfo_PaymentInfoCurrency)(0), // 18: proto.PaymentInfo.PaymentInfoCurrency
+ (PaymentInfo_PaymentInfoStatus)(0), // 19: proto.PaymentInfo.PaymentInfoStatus
+ (PaymentInfo_PaymentInfoTxnStatus)(0), // 20: proto.PaymentInfo.PaymentInfoTxnStatus
+ (WebMessageInfo_WebMessageInfoStatus)(0), // 21: proto.WebMessageInfo.WebMessageInfoStatus
+ (WebMessageInfo_WebMessageInfoStubType)(0), // 22: proto.WebMessageInfo.WebMessageInfoStubType
+ (WebMessageInfo_WebMessageInfoBizPrivacyStatus)(0), // 23: proto.WebMessageInfo.WebMessageInfoBizPrivacyStatus
+ (*PaymentMoney)(nil), // 24: proto.PaymentMoney
+ (*HydratedQuickReplyButton)(nil), // 25: proto.HydratedQuickReplyButton
+ (*HydratedURLButton)(nil), // 26: proto.HydratedURLButton
+ (*HydratedCallButton)(nil), // 27: proto.HydratedCallButton
+ (*HydratedTemplateButton)(nil), // 28: proto.HydratedTemplateButton
+ (*QuickReplyButton)(nil), // 29: proto.QuickReplyButton
+ (*URLButton)(nil), // 30: proto.URLButton
+ (*CallButton)(nil), // 31: proto.CallButton
+ (*TemplateButton)(nil), // 32: proto.TemplateButton
+ (*Location)(nil), // 33: proto.Location
+ (*Point)(nil), // 34: proto.Point
+ (*InteractiveAnnotation)(nil), // 35: proto.InteractiveAnnotation
+ (*DeviceListMetadata)(nil), // 36: proto.DeviceListMetadata
+ (*MessageContextInfo)(nil), // 37: proto.MessageContextInfo
+ (*AdReplyInfo)(nil), // 38: proto.AdReplyInfo
+ (*ExternalAdReplyInfo)(nil), // 39: proto.ExternalAdReplyInfo
+ (*ContextInfo)(nil), // 40: proto.ContextInfo
+ (*SenderKeyDistributionMessage)(nil), // 41: proto.SenderKeyDistributionMessage
+ (*ImageMessage)(nil), // 42: proto.ImageMessage
+ (*InvoiceMessage)(nil), // 43: proto.InvoiceMessage
+ (*ContactMessage)(nil), // 44: proto.ContactMessage
+ (*LocationMessage)(nil), // 45: proto.LocationMessage
+ (*ExtendedTextMessage)(nil), // 46: proto.ExtendedTextMessage
+ (*DocumentMessage)(nil), // 47: proto.DocumentMessage
+ (*AudioMessage)(nil), // 48: proto.AudioMessage
+ (*VideoMessage)(nil), // 49: proto.VideoMessage
+ (*Call)(nil), // 50: proto.Call
+ (*Chat)(nil), // 51: proto.Chat
+ (*ProtocolMessage)(nil), // 52: proto.ProtocolMessage
+ (*HistorySyncNotification)(nil), // 53: proto.HistorySyncNotification
+ (*AppStateSyncKey)(nil), // 54: proto.AppStateSyncKey
+ (*AppStateSyncKeyId)(nil), // 55: proto.AppStateSyncKeyId
+ (*AppStateSyncKeyFingerprint)(nil), // 56: proto.AppStateSyncKeyFingerprint
+ (*AppStateSyncKeyData)(nil), // 57: proto.AppStateSyncKeyData
+ (*AppStateSyncKeyShare)(nil), // 58: proto.AppStateSyncKeyShare
+ (*AppStateSyncKeyRequest)(nil), // 59: proto.AppStateSyncKeyRequest
+ (*AppStateFatalExceptionNotification)(nil), // 60: proto.AppStateFatalExceptionNotification
+ (*InitialSecurityNotificationSettingSync)(nil), // 61: proto.InitialSecurityNotificationSettingSync
+ (*ContactsArrayMessage)(nil), // 62: proto.ContactsArrayMessage
+ (*HSMCurrency)(nil), // 63: proto.HSMCurrency
+ (*HSMDateTimeComponent)(nil), // 64: proto.HSMDateTimeComponent
+ (*HSMDateTimeUnixEpoch)(nil), // 65: proto.HSMDateTimeUnixEpoch
+ (*HSMDateTime)(nil), // 66: proto.HSMDateTime
+ (*HSMLocalizableParameter)(nil), // 67: proto.HSMLocalizableParameter
+ (*HighlyStructuredMessage)(nil), // 68: proto.HighlyStructuredMessage
+ (*SendPaymentMessage)(nil), // 69: proto.SendPaymentMessage
+ (*RequestPaymentMessage)(nil), // 70: proto.RequestPaymentMessage
+ (*DeclinePaymentRequestMessage)(nil), // 71: proto.DeclinePaymentRequestMessage
+ (*CancelPaymentRequestMessage)(nil), // 72: proto.CancelPaymentRequestMessage
+ (*LiveLocationMessage)(nil), // 73: proto.LiveLocationMessage
+ (*StickerMessage)(nil), // 74: proto.StickerMessage
+ (*FourRowTemplate)(nil), // 75: proto.FourRowTemplate
+ (*HydratedFourRowTemplate)(nil), // 76: proto.HydratedFourRowTemplate
+ (*TemplateMessage)(nil), // 77: proto.TemplateMessage
+ (*TemplateButtonReplyMessage)(nil), // 78: proto.TemplateButtonReplyMessage
+ (*CatalogSnapshot)(nil), // 79: proto.CatalogSnapshot
+ (*ProductSnapshot)(nil), // 80: proto.ProductSnapshot
+ (*ProductMessage)(nil), // 81: proto.ProductMessage
+ (*OrderMessage)(nil), // 82: proto.OrderMessage
+ (*Row)(nil), // 83: proto.Row
+ (*Section)(nil), // 84: proto.Section
+ (*ListMessage)(nil), // 85: proto.ListMessage
+ (*SingleSelectReply)(nil), // 86: proto.SingleSelectReply
+ (*ListResponseMessage)(nil), // 87: proto.ListResponseMessage
+ (*GroupInviteMessage)(nil), // 88: proto.GroupInviteMessage
+ (*EphemeralSetting)(nil), // 89: proto.EphemeralSetting
+ (*DeviceSentMessage)(nil), // 90: proto.DeviceSentMessage
+ (*FutureProofMessage)(nil), // 91: proto.FutureProofMessage
+ (*ButtonText)(nil), // 92: proto.ButtonText
+ (*Button)(nil), // 93: proto.Button
+ (*ButtonsMessage)(nil), // 94: proto.ButtonsMessage
+ (*ButtonsResponseMessage)(nil), // 95: proto.ButtonsResponseMessage
+ (*Message)(nil), // 96: proto.Message
+ (*MessageKey)(nil), // 97: proto.MessageKey
+ (*WebFeatures)(nil), // 98: proto.WebFeatures
+ (*NotificationMessageInfo)(nil), // 99: proto.NotificationMessageInfo
+ (*WebNotificationsInfo)(nil), // 100: proto.WebNotificationsInfo
+ (*PaymentInfo)(nil), // 101: proto.PaymentInfo
+ (*WebMessageInfo)(nil), // 102: proto.WebMessageInfo
+}
+var file_def_proto_depIdxs = []int32{
+ 25, // 0: proto.HydratedTemplateButton.quickReplyButton:type_name -> proto.HydratedQuickReplyButton
+ 26, // 1: proto.HydratedTemplateButton.urlButton:type_name -> proto.HydratedURLButton
+ 27, // 2: proto.HydratedTemplateButton.callButton:type_name -> proto.HydratedCallButton
+ 68, // 3: proto.QuickReplyButton.displayText:type_name -> proto.HighlyStructuredMessage
+ 68, // 4: proto.URLButton.displayText:type_name -> proto.HighlyStructuredMessage
+ 68, // 5: proto.URLButton.url:type_name -> proto.HighlyStructuredMessage
+ 68, // 6: proto.CallButton.displayText:type_name -> proto.HighlyStructuredMessage
+ 68, // 7: proto.CallButton.phoneNumber:type_name -> proto.HighlyStructuredMessage
+ 29, // 8: proto.TemplateButton.quickReplyButton:type_name -> proto.QuickReplyButton
+ 30, // 9: proto.TemplateButton.urlButton:type_name -> proto.URLButton
+ 31, // 10: proto.TemplateButton.callButton:type_name -> proto.CallButton
+ 34, // 11: proto.InteractiveAnnotation.polygonVertices:type_name -> proto.Point
+ 33, // 12: proto.InteractiveAnnotation.location:type_name -> proto.Location
+ 36, // 13: proto.MessageContextInfo.deviceListMetadata:type_name -> proto.DeviceListMetadata
+ 0, // 14: proto.AdReplyInfo.mediaType:type_name -> proto.AdReplyInfo.AdReplyInfoMediaType
+ 1, // 15: proto.ExternalAdReplyInfo.mediaType:type_name -> proto.ExternalAdReplyInfo.ExternalAdReplyInfoMediaType
+ 96, // 16: proto.ContextInfo.quotedMessage:type_name -> proto.Message
+ 38, // 17: proto.ContextInfo.quotedAd:type_name -> proto.AdReplyInfo
+ 97, // 18: proto.ContextInfo.placeholderKey:type_name -> proto.MessageKey
+ 39, // 19: proto.ContextInfo.externalAdReply:type_name -> proto.ExternalAdReplyInfo
+ 35, // 20: proto.ImageMessage.interactiveAnnotations:type_name -> proto.InteractiveAnnotation
+ 40, // 21: proto.ImageMessage.contextInfo:type_name -> proto.ContextInfo
+ 2, // 22: proto.InvoiceMessage.attachmentType:type_name -> proto.InvoiceMessage.InvoiceMessageAttachmentType
+ 40, // 23: proto.ContactMessage.contextInfo:type_name -> proto.ContextInfo
+ 40, // 24: proto.LocationMessage.contextInfo:type_name -> proto.ContextInfo
+ 3, // 25: proto.ExtendedTextMessage.font:type_name -> proto.ExtendedTextMessage.ExtendedTextMessageFontType
+ 4, // 26: proto.ExtendedTextMessage.previewType:type_name -> proto.ExtendedTextMessage.ExtendedTextMessagePreviewType
+ 40, // 27: proto.ExtendedTextMessage.contextInfo:type_name -> proto.ContextInfo
+ 40, // 28: proto.DocumentMessage.contextInfo:type_name -> proto.ContextInfo
+ 40, // 29: proto.AudioMessage.contextInfo:type_name -> proto.ContextInfo
+ 35, // 30: proto.VideoMessage.interactiveAnnotations:type_name -> proto.InteractiveAnnotation
+ 40, // 31: proto.VideoMessage.contextInfo:type_name -> proto.ContextInfo
+ 5, // 32: proto.VideoMessage.gifAttribution:type_name -> proto.VideoMessage.VideoMessageAttribution
+ 97, // 33: proto.ProtocolMessage.key:type_name -> proto.MessageKey
+ 6, // 34: proto.ProtocolMessage.type:type_name -> proto.ProtocolMessage.ProtocolMessageType
+ 53, // 35: proto.ProtocolMessage.historySyncNotification:type_name -> proto.HistorySyncNotification
+ 58, // 36: proto.ProtocolMessage.appStateSyncKeyShare:type_name -> proto.AppStateSyncKeyShare
+ 59, // 37: proto.ProtocolMessage.appStateSyncKeyRequest:type_name -> proto.AppStateSyncKeyRequest
+ 61, // 38: proto.ProtocolMessage.initialSecurityNotificationSettingSync:type_name -> proto.InitialSecurityNotificationSettingSync
+ 60, // 39: proto.ProtocolMessage.appStateFatalExceptionNotification:type_name -> proto.AppStateFatalExceptionNotification
+ 7, // 40: proto.HistorySyncNotification.syncType:type_name -> proto.HistorySyncNotification.HistorySyncNotificationHistorySyncType
+ 55, // 41: proto.AppStateSyncKey.keyId:type_name -> proto.AppStateSyncKeyId
+ 57, // 42: proto.AppStateSyncKey.keyData:type_name -> proto.AppStateSyncKeyData
+ 56, // 43: proto.AppStateSyncKeyData.fingerprint:type_name -> proto.AppStateSyncKeyFingerprint
+ 54, // 44: proto.AppStateSyncKeyShare.keys:type_name -> proto.AppStateSyncKey
+ 55, // 45: proto.AppStateSyncKeyRequest.keyIds:type_name -> proto.AppStateSyncKeyId
+ 44, // 46: proto.ContactsArrayMessage.contacts:type_name -> proto.ContactMessage
+ 40, // 47: proto.ContactsArrayMessage.contextInfo:type_name -> proto.ContextInfo
+ 8, // 48: proto.HSMDateTimeComponent.dayOfWeek:type_name -> proto.HSMDateTimeComponent.HSMDateTimeComponentDayOfWeekType
+ 9, // 49: proto.HSMDateTimeComponent.calendar:type_name -> proto.HSMDateTimeComponent.HSMDateTimeComponentCalendarType
+ 64, // 50: proto.HSMDateTime.component:type_name -> proto.HSMDateTimeComponent
+ 65, // 51: proto.HSMDateTime.unixEpoch:type_name -> proto.HSMDateTimeUnixEpoch
+ 63, // 52: proto.HSMLocalizableParameter.currency:type_name -> proto.HSMCurrency
+ 66, // 53: proto.HSMLocalizableParameter.dateTime:type_name -> proto.HSMDateTime
+ 67, // 54: proto.HighlyStructuredMessage.localizableParams:type_name -> proto.HSMLocalizableParameter
+ 77, // 55: proto.HighlyStructuredMessage.hydratedHsm:type_name -> proto.TemplateMessage
+ 96, // 56: proto.SendPaymentMessage.noteMessage:type_name -> proto.Message
+ 97, // 57: proto.SendPaymentMessage.requestMessageKey:type_name -> proto.MessageKey
+ 96, // 58: proto.RequestPaymentMessage.noteMessage:type_name -> proto.Message
+ 24, // 59: proto.RequestPaymentMessage.amount:type_name -> proto.PaymentMoney
+ 97, // 60: proto.DeclinePaymentRequestMessage.key:type_name -> proto.MessageKey
+ 97, // 61: proto.CancelPaymentRequestMessage.key:type_name -> proto.MessageKey
+ 40, // 62: proto.LiveLocationMessage.contextInfo:type_name -> proto.ContextInfo
+ 40, // 63: proto.StickerMessage.contextInfo:type_name -> proto.ContextInfo
+ 68, // 64: proto.FourRowTemplate.content:type_name -> proto.HighlyStructuredMessage
+ 68, // 65: proto.FourRowTemplate.footer:type_name -> proto.HighlyStructuredMessage
+ 32, // 66: proto.FourRowTemplate.buttons:type_name -> proto.TemplateButton
+ 47, // 67: proto.FourRowTemplate.documentMessage:type_name -> proto.DocumentMessage
+ 68, // 68: proto.FourRowTemplate.highlyStructuredMessage:type_name -> proto.HighlyStructuredMessage
+ 42, // 69: proto.FourRowTemplate.imageMessage:type_name -> proto.ImageMessage
+ 49, // 70: proto.FourRowTemplate.videoMessage:type_name -> proto.VideoMessage
+ 45, // 71: proto.FourRowTemplate.locationMessage:type_name -> proto.LocationMessage
+ 28, // 72: proto.HydratedFourRowTemplate.hydratedButtons:type_name -> proto.HydratedTemplateButton
+ 47, // 73: proto.HydratedFourRowTemplate.documentMessage:type_name -> proto.DocumentMessage
+ 42, // 74: proto.HydratedFourRowTemplate.imageMessage:type_name -> proto.ImageMessage
+ 49, // 75: proto.HydratedFourRowTemplate.videoMessage:type_name -> proto.VideoMessage
+ 45, // 76: proto.HydratedFourRowTemplate.locationMessage:type_name -> proto.LocationMessage
+ 40, // 77: proto.TemplateMessage.contextInfo:type_name -> proto.ContextInfo
+ 76, // 78: proto.TemplateMessage.hydratedTemplate:type_name -> proto.HydratedFourRowTemplate
+ 75, // 79: proto.TemplateMessage.fourRowTemplate:type_name -> proto.FourRowTemplate
+ 76, // 80: proto.TemplateMessage.hydratedFourRowTemplate:type_name -> proto.HydratedFourRowTemplate
+ 40, // 81: proto.TemplateButtonReplyMessage.contextInfo:type_name -> proto.ContextInfo
+ 42, // 82: proto.CatalogSnapshot.catalogImage:type_name -> proto.ImageMessage
+ 42, // 83: proto.ProductSnapshot.productImage:type_name -> proto.ImageMessage
+ 80, // 84: proto.ProductMessage.product:type_name -> proto.ProductSnapshot
+ 79, // 85: proto.ProductMessage.catalog:type_name -> proto.CatalogSnapshot
+ 40, // 86: proto.ProductMessage.contextInfo:type_name -> proto.ContextInfo
+ 10, // 87: proto.OrderMessage.status:type_name -> proto.OrderMessage.OrderMessageOrderStatus
+ 11, // 88: proto.OrderMessage.surface:type_name -> proto.OrderMessage.OrderMessageOrderSurface
+ 40, // 89: proto.OrderMessage.contextInfo:type_name -> proto.ContextInfo
+ 83, // 90: proto.Section.rows:type_name -> proto.Row
+ 12, // 91: proto.ListMessage.listType:type_name -> proto.ListMessage.ListMessageListType
+ 84, // 92: proto.ListMessage.sections:type_name -> proto.Section
+ 13, // 93: proto.ListResponseMessage.listType:type_name -> proto.ListResponseMessage.ListResponseMessageListType
+ 86, // 94: proto.ListResponseMessage.singleSelectReply:type_name -> proto.SingleSelectReply
+ 40, // 95: proto.ListResponseMessage.contextInfo:type_name -> proto.ContextInfo
+ 40, // 96: proto.GroupInviteMessage.contextInfo:type_name -> proto.ContextInfo
+ 96, // 97: proto.DeviceSentMessage.message:type_name -> proto.Message
+ 89, // 98: proto.DeviceSentMessage.broadcastEphemeralSettings:type_name -> proto.EphemeralSetting
+ 96, // 99: proto.FutureProofMessage.message:type_name -> proto.Message
+ 92, // 100: proto.Button.buttonText:type_name -> proto.ButtonText
+ 14, // 101: proto.Button.type:type_name -> proto.Button.ButtonType
+ 40, // 102: proto.ButtonsMessage.contextInfo:type_name -> proto.ContextInfo
+ 93, // 103: proto.ButtonsMessage.buttons:type_name -> proto.Button
+ 15, // 104: proto.ButtonsMessage.headerType:type_name -> proto.ButtonsMessage.ButtonsMessageHeaderType
+ 47, // 105: proto.ButtonsMessage.documentMessage:type_name -> proto.DocumentMessage
+ 42, // 106: proto.ButtonsMessage.imageMessage:type_name -> proto.ImageMessage
+ 49, // 107: proto.ButtonsMessage.videoMessage:type_name -> proto.VideoMessage
+ 45, // 108: proto.ButtonsMessage.locationMessage:type_name -> proto.LocationMessage
+ 40, // 109: proto.ButtonsResponseMessage.contextInfo:type_name -> proto.ContextInfo
+ 16, // 110: proto.ButtonsResponseMessage.type:type_name -> proto.ButtonsResponseMessage.ButtonsResponseMessageType
+ 41, // 111: proto.Message.senderKeyDistributionMessage:type_name -> proto.SenderKeyDistributionMessage
+ 42, // 112: proto.Message.imageMessage:type_name -> proto.ImageMessage
+ 44, // 113: proto.Message.contactMessage:type_name -> proto.ContactMessage
+ 45, // 114: proto.Message.locationMessage:type_name -> proto.LocationMessage
+ 46, // 115: proto.Message.extendedTextMessage:type_name -> proto.ExtendedTextMessage
+ 47, // 116: proto.Message.documentMessage:type_name -> proto.DocumentMessage
+ 48, // 117: proto.Message.audioMessage:type_name -> proto.AudioMessage
+ 49, // 118: proto.Message.videoMessage:type_name -> proto.VideoMessage
+ 50, // 119: proto.Message.call:type_name -> proto.Call
+ 51, // 120: proto.Message.chat:type_name -> proto.Chat
+ 52, // 121: proto.Message.protocolMessage:type_name -> proto.ProtocolMessage
+ 62, // 122: proto.Message.contactsArrayMessage:type_name -> proto.ContactsArrayMessage
+ 68, // 123: proto.Message.highlyStructuredMessage:type_name -> proto.HighlyStructuredMessage
+ 41, // 124: proto.Message.fastRatchetKeySenderKeyDistributionMessage:type_name -> proto.SenderKeyDistributionMessage
+ 69, // 125: proto.Message.sendPaymentMessage:type_name -> proto.SendPaymentMessage
+ 73, // 126: proto.Message.liveLocationMessage:type_name -> proto.LiveLocationMessage
+ 70, // 127: proto.Message.requestPaymentMessage:type_name -> proto.RequestPaymentMessage
+ 71, // 128: proto.Message.declinePaymentRequestMessage:type_name -> proto.DeclinePaymentRequestMessage
+ 72, // 129: proto.Message.cancelPaymentRequestMessage:type_name -> proto.CancelPaymentRequestMessage
+ 77, // 130: proto.Message.templateMessage:type_name -> proto.TemplateMessage
+ 74, // 131: proto.Message.stickerMessage:type_name -> proto.StickerMessage
+ 88, // 132: proto.Message.groupInviteMessage:type_name -> proto.GroupInviteMessage
+ 78, // 133: proto.Message.templateButtonReplyMessage:type_name -> proto.TemplateButtonReplyMessage
+ 81, // 134: proto.Message.productMessage:type_name -> proto.ProductMessage
+ 90, // 135: proto.Message.deviceSentMessage:type_name -> proto.DeviceSentMessage
+ 37, // 136: proto.Message.messageContextInfo:type_name -> proto.MessageContextInfo
+ 85, // 137: proto.Message.listMessage:type_name -> proto.ListMessage
+ 91, // 138: proto.Message.viewOnceMessage:type_name -> proto.FutureProofMessage
+ 82, // 139: proto.Message.orderMessage:type_name -> proto.OrderMessage
+ 87, // 140: proto.Message.listResponseMessage:type_name -> proto.ListResponseMessage
+ 91, // 141: proto.Message.ephemeralMessage:type_name -> proto.FutureProofMessage
+ 43, // 142: proto.Message.invoiceMessage:type_name -> proto.InvoiceMessage
+ 94, // 143: proto.Message.buttonsMessage:type_name -> proto.ButtonsMessage
+ 95, // 144: proto.Message.buttonsResponseMessage:type_name -> proto.ButtonsResponseMessage
+ 17, // 145: proto.WebFeatures.labelsDisplay:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 146: proto.WebFeatures.voipIndividualOutgoing:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 147: proto.WebFeatures.groupsV3:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 148: proto.WebFeatures.groupsV3Create:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 149: proto.WebFeatures.changeNumberV2:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 150: proto.WebFeatures.queryStatusV3Thumbnail:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 151: proto.WebFeatures.liveLocations:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 152: proto.WebFeatures.queryVname:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 153: proto.WebFeatures.voipIndividualIncoming:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 154: proto.WebFeatures.quickRepliesQuery:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 155: proto.WebFeatures.payments:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 156: proto.WebFeatures.stickerPackQuery:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 157: proto.WebFeatures.liveLocationsFinal:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 158: proto.WebFeatures.labelsEdit:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 159: proto.WebFeatures.mediaUpload:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 160: proto.WebFeatures.mediaUploadRichQuickReplies:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 161: proto.WebFeatures.vnameV2:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 162: proto.WebFeatures.videoPlaybackUrl:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 163: proto.WebFeatures.statusRanking:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 164: proto.WebFeatures.voipIndividualVideo:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 165: proto.WebFeatures.thirdPartyStickers:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 166: proto.WebFeatures.frequentlyForwardedSetting:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 167: proto.WebFeatures.groupsV4JoinPermission:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 168: proto.WebFeatures.recentStickers:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 169: proto.WebFeatures.catalog:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 170: proto.WebFeatures.starredStickers:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 171: proto.WebFeatures.voipGroupCall:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 172: proto.WebFeatures.templateMessage:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 173: proto.WebFeatures.templateMessageInteractivity:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 174: proto.WebFeatures.ephemeralMessages:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 175: proto.WebFeatures.e2ENotificationSync:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 176: proto.WebFeatures.recentStickersV2:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 177: proto.WebFeatures.syncdRelease1:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 178: proto.WebFeatures.recentStickersV3:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 179: proto.WebFeatures.userNotice:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 180: proto.WebFeatures.syncdRelease11:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 181: proto.WebFeatures.support:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 182: proto.WebFeatures.groupUiiCleanup:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 183: proto.WebFeatures.groupDogfoodingInternalOnly:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 17, // 184: proto.WebFeatures.settingsSync:type_name -> proto.WebFeatures.WebFeaturesFlag
+ 97, // 185: proto.NotificationMessageInfo.key:type_name -> proto.MessageKey
+ 96, // 186: proto.NotificationMessageInfo.message:type_name -> proto.Message
+ 102, // 187: proto.WebNotificationsInfo.notifyMessages:type_name -> proto.WebMessageInfo
+ 18, // 188: proto.PaymentInfo.currencyDeprecated:type_name -> proto.PaymentInfo.PaymentInfoCurrency
+ 19, // 189: proto.PaymentInfo.status:type_name -> proto.PaymentInfo.PaymentInfoStatus
+ 97, // 190: proto.PaymentInfo.requestMessageKey:type_name -> proto.MessageKey
+ 20, // 191: proto.PaymentInfo.txnStatus:type_name -> proto.PaymentInfo.PaymentInfoTxnStatus
+ 24, // 192: proto.PaymentInfo.primaryAmount:type_name -> proto.PaymentMoney
+ 24, // 193: proto.PaymentInfo.exchangeAmount:type_name -> proto.PaymentMoney
+ 97, // 194: proto.WebMessageInfo.key:type_name -> proto.MessageKey
+ 96, // 195: proto.WebMessageInfo.message:type_name -> proto.Message
+ 21, // 196: proto.WebMessageInfo.status:type_name -> proto.WebMessageInfo.WebMessageInfoStatus
+ 22, // 197: proto.WebMessageInfo.messageStubType:type_name -> proto.WebMessageInfo.WebMessageInfoStubType
+ 101, // 198: proto.WebMessageInfo.paymentInfo:type_name -> proto.PaymentInfo
+ 73, // 199: proto.WebMessageInfo.finalLiveLocation:type_name -> proto.LiveLocationMessage
+ 101, // 200: proto.WebMessageInfo.quotedPaymentInfo:type_name -> proto.PaymentInfo
+ 23, // 201: proto.WebMessageInfo.bizPrivacyStatus:type_name -> proto.WebMessageInfo.WebMessageInfoBizPrivacyStatus
+ 202, // [202:202] is the sub-list for method output_type
+ 202, // [202:202] is the sub-list for method input_type
+ 202, // [202:202] is the sub-list for extension type_name
+ 202, // [202:202] is the sub-list for extension extendee
+ 0, // [0:202] is the sub-list for field type_name
+}
+
+func init() { file_def_proto_init() }
+func file_def_proto_init() {
+ if File_def_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_def_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PaymentMoney); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HydratedQuickReplyButton); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HydratedURLButton); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HydratedCallButton); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HydratedTemplateButton); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*QuickReplyButton); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*URLButton); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CallButton); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TemplateButton); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Location); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Point); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*InteractiveAnnotation); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeviceListMetadata); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MessageContextInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AdReplyInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExternalAdReplyInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ContextInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SenderKeyDistributionMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ImageMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*InvoiceMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ContactMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*LocationMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ExtendedTextMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DocumentMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AudioMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*VideoMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Call); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Chat); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProtocolMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HistorySyncNotification); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AppStateSyncKey); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AppStateSyncKeyId); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AppStateSyncKeyFingerprint); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AppStateSyncKeyData); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AppStateSyncKeyShare); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AppStateSyncKeyRequest); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*AppStateFatalExceptionNotification); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*InitialSecurityNotificationSettingSync); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ContactsArrayMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HSMCurrency); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HSMDateTimeComponent); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HSMDateTimeUnixEpoch); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HSMDateTime); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HSMLocalizableParameter); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HighlyStructuredMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SendPaymentMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RequestPaymentMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeclinePaymentRequestMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CancelPaymentRequestMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*LiveLocationMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*StickerMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*FourRowTemplate); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*HydratedFourRowTemplate); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TemplateMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*TemplateButtonReplyMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*CatalogSnapshot); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductSnapshot); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ProductMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*OrderMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Row); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Section); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*SingleSelectReply); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ListResponseMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*GroupInviteMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*EphemeralSetting); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DeviceSentMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*FutureProofMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ButtonText); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Button); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ButtonsMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*ButtonsResponseMessage); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*Message); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*MessageKey); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*WebFeatures); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*NotificationMessageInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*WebNotificationsInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*PaymentInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_def_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*WebMessageInfo); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ }
+ file_def_proto_msgTypes[4].OneofWrappers = []interface{}{
+ (*HydratedTemplateButton_QuickReplyButton)(nil),
+ (*HydratedTemplateButton_UrlButton)(nil),
+ (*HydratedTemplateButton_CallButton)(nil),
+ }
+ file_def_proto_msgTypes[8].OneofWrappers = []interface{}{
+ (*TemplateButton_QuickReplyButton)(nil),
+ (*TemplateButton_UrlButton)(nil),
+ (*TemplateButton_CallButton)(nil),
+ }
+ file_def_proto_msgTypes[11].OneofWrappers = []interface{}{
+ (*InteractiveAnnotation_Location)(nil),
+ }
+ file_def_proto_msgTypes[42].OneofWrappers = []interface{}{
+ (*HSMDateTime_Component)(nil),
+ (*HSMDateTime_UnixEpoch)(nil),
+ }
+ file_def_proto_msgTypes[43].OneofWrappers = []interface{}{
+ (*HSMLocalizableParameter_Currency)(nil),
+ (*HSMLocalizableParameter_DateTime)(nil),
+ }
+ file_def_proto_msgTypes[51].OneofWrappers = []interface{}{
+ (*FourRowTemplate_DocumentMessage)(nil),
+ (*FourRowTemplate_HighlyStructuredMessage)(nil),
+ (*FourRowTemplate_ImageMessage)(nil),
+ (*FourRowTemplate_VideoMessage)(nil),
+ (*FourRowTemplate_LocationMessage)(nil),
+ }
+ file_def_proto_msgTypes[52].OneofWrappers = []interface{}{
+ (*HydratedFourRowTemplate_DocumentMessage)(nil),
+ (*HydratedFourRowTemplate_HydratedTitleText)(nil),
+ (*HydratedFourRowTemplate_ImageMessage)(nil),
+ (*HydratedFourRowTemplate_VideoMessage)(nil),
+ (*HydratedFourRowTemplate_LocationMessage)(nil),
+ }
+ file_def_proto_msgTypes[53].OneofWrappers = []interface{}{
+ (*TemplateMessage_FourRowTemplate)(nil),
+ (*TemplateMessage_HydratedFourRowTemplate)(nil),
+ }
+ file_def_proto_msgTypes[70].OneofWrappers = []interface{}{
+ (*ButtonsMessage_Text)(nil),
+ (*ButtonsMessage_DocumentMessage)(nil),
+ (*ButtonsMessage_ImageMessage)(nil),
+ (*ButtonsMessage_VideoMessage)(nil),
+ (*ButtonsMessage_LocationMessage)(nil),
+ }
+ file_def_proto_msgTypes[71].OneofWrappers = []interface{}{
+ (*ButtonsResponseMessage_SelectedDisplayText)(nil),
+ }
+ type x struct{}
+ out := protoimpl.TypeBuilder{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_def_proto_rawDesc,
+ NumEnums: 24,
+ NumMessages: 79,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_def_proto_goTypes,
+ DependencyIndexes: file_def_proto_depIdxs,
+ EnumInfos: file_def_proto_enumTypes,
+ MessageInfos: file_def_proto_msgTypes,
+ }.Build()
+ File_def_proto = out.File
+ file_def_proto_rawDesc = nil
+ file_def_proto_goTypes = nil
+ file_def_proto_depIdxs = nil
+} \ No newline at end of file
diff --git a/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto b/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto
new file mode 100644
index 00000000..58c6f20c
--- /dev/null
+++ b/vendor/github.com/Rhymen/go-whatsapp/binary/proto/def.proto
@@ -0,0 +1,1050 @@
+syntax = "proto2";
+package proto;
+
+message PaymentMoney {
+ optional int64 value = 1;
+ optional uint32 offset = 2;
+ optional string currencyCode = 3;
+}
+
+message HydratedQuickReplyButton {
+ optional string displayText = 1;
+ optional string id = 2;
+}
+
+message HydratedURLButton {
+ optional string displayText = 1;
+ optional string url = 2;
+}
+
+message HydratedCallButton {
+ optional string displayText = 1;
+ optional string phoneNumber = 2;
+}
+
+message HydratedTemplateButton {
+ optional uint32 index = 4;
+ oneof hydratedButton {
+ HydratedQuickReplyButton quickReplyButton = 1;
+ HydratedURLButton urlButton = 2;
+ HydratedCallButton callButton = 3;
+ }
+}
+
+message QuickReplyButton {
+ optional HighlyStructuredMessage displayText = 1;
+ optional string id = 2;
+}
+
+message URLButton {
+ optional HighlyStructuredMessage displayText = 1;
+ optional HighlyStructuredMessage url = 2;
+}
+
+message CallButton {
+ optional HighlyStructuredMessage displayText = 1;
+ optional HighlyStructuredMessage phoneNumber = 2;
+}
+
+message TemplateButton {
+ optional uint32 index = 4;
+ oneof button {
+ QuickReplyButton quickReplyButton = 1;
+ URLButton urlButton = 2;
+ CallButton callButton = 3;
+ }
+}
+
+message Location {
+ optional double degreesLatitude = 1;
+ optional double degreesLongitude = 2;
+ optional string name = 3;
+}
+
+message Point {
+ optional int32 xDeprecated = 1;
+ optional int32 yDeprecated = 2;
+ optional double x = 3;
+ optional double y = 4;
+}
+
+message InteractiveAnnotation {
+ repeated Point polygonVertices = 1;
+ oneof action {
+ Location location = 2;
+ }
+}
+
+message DeviceListMetadata {
+ optional bytes senderKeyHash = 1;
+ optional uint64 senderTimestamp = 2;
+ optional bytes recipientKeyHash = 8;
+ optional uint64 recipientTimestamp = 9;
+}
+
+message MessageContextInfo {
+ optional DeviceListMetadata deviceListMetadata = 1;
+}
+
+message AdReplyInfo {
+ optional string advertiserName = 1;
+ enum AdReplyInfoMediaType {
+ NONE = 0;
+ IMAGE = 1;
+ VIDEO = 2;
+ }
+ optional AdReplyInfoMediaType mediaType = 2;
+ optional bytes jpegThumbnail = 16;
+ optional string caption = 17;
+}
+
+message ExternalAdReplyInfo {
+ optional string title = 1;
+ optional string body = 2;
+ enum ExternalAdReplyInfoMediaType {
+ NONE = 0;
+ IMAGE = 1;
+ VIDEO = 2;
+ }
+ optional ExternalAdReplyInfoMediaType mediaType = 3;
+ optional string thumbnailUrl = 4;
+ optional string mediaUrl = 5;
+ optional bytes thumbnail = 6;
+ optional string sourceType = 7;
+ optional string sourceId = 8;
+ optional string sourceUrl = 9;
+}
+
+message ContextInfo {
+ optional string stanzaId = 1;
+ optional string participant = 2;
+ optional Message quotedMessage = 3;
+ optional string remoteJid = 4;
+ repeated string mentionedJid = 15;
+ optional string conversionSource = 18;
+ optional bytes conversionData = 19;
+ optional uint32 conversionDelaySeconds = 20;
+ optional uint32 forwardingScore = 21;
+ optional bool isForwarded = 22;
+ optional AdReplyInfo quotedAd = 23;
+ optional MessageKey placeholderKey = 24;
+ optional uint32 expiration = 25;
+ optional int64 ephemeralSettingTimestamp = 26;
+ optional bytes ephemeralSharedSecret = 27;
+ optional ExternalAdReplyInfo externalAdReply = 28;
+}
+
+message SenderKeyDistributionMessage {
+ optional string groupId = 1;
+ optional bytes axolotlSenderKeyDistributionMessage = 2;
+}
+
+message ImageMessage {
+ optional string url = 1;
+ optional string mimetype = 2;
+ optional string caption = 3;
+ optional bytes fileSha256 = 4;
+ optional uint64 fileLength = 5;
+ optional uint32 height = 6;
+ optional uint32 width = 7;
+ optional bytes mediaKey = 8;
+ optional bytes fileEncSha256 = 9;
+ repeated InteractiveAnnotation interactiveAnnotations = 10;
+ optional string directPath = 11;
+ optional int64 mediaKeyTimestamp = 12;
+ optional bytes jpegThumbnail = 16;
+ optional ContextInfo contextInfo = 17;
+ optional bytes firstScanSidecar = 18;
+ optional uint32 firstScanLength = 19;
+ optional uint32 experimentGroupId = 20;
+ optional bytes scansSidecar = 21;
+ repeated uint32 scanLengths = 22;
+ optional bytes midQualityFileSha256 = 23;
+ optional bytes midQualityFileEncSha256 = 24;
+ optional bool viewOnce = 25;
+ optional string thumbnailDirectPath = 26;
+ optional bytes thumbnailSha256 = 27;
+ optional bytes thumbnailEncSha256 = 28;
+}
+
+message InvoiceMessage {
+ optional string note = 1;
+ optional string token = 2;
+ enum InvoiceMessageAttachmentType {
+ IMAGE = 0;
+ PDF = 1;
+ }
+ optional InvoiceMessageAttachmentType attachmentType = 3;
+ optional string attachmentMimetype = 4;
+ optional bytes attachmentMediaKey = 5;
+ optional int64 attachmentMediaKeyTimestamp = 6;
+ optional bytes attachmentFileSha256 = 7;
+ optional bytes attachmentFileEncSha256 = 8;
+ optional string attachmentDirectPath = 9;
+ optional bytes attachmentJpegThumbnail = 10;
+}
+
+message ContactMessage {
+ optional string displayName = 1;
+ optional string vcard = 16;
+ optional ContextInfo contextInfo = 17;
+}
+
+message LocationMessage {
+ optional double degreesLatitude = 1;
+ optional double degreesLongitude = 2;
+ optional string name = 3;
+ optional string address = 4;
+ optional string url = 5;
+ optional bool isLive = 6;
+ optional uint32 accuracyInMeters = 7;
+ optional float speedInMps = 8;
+ optional uint32 degreesClockwiseFromMagneticNorth = 9;
+ optional string comment = 11;
+ optional bytes jpegThumbnail = 16;
+ optional ContextInfo contextInfo = 17;
+}
+
+message ExtendedTextMessage {
+ optional string text = 1;
+ optional string matchedText = 2;
+ optional string canonicalUrl = 4;
+ optional string description = 5;
+ optional string title = 6;
+ optional fixed32 textArgb = 7;
+ optional fixed32 backgroundArgb = 8;
+ enum ExtendedTextMessageFontType {
+ SANS_SERIF = 0;
+ SERIF = 1;
+ NORICAN_REGULAR = 2;
+ BRYNDAN_WRITE = 3;
+ BEBASNEUE_REGULAR = 4;
+ OSWALD_HEAVY = 5;
+ }
+ optional ExtendedTextMessageFontType font = 9;
+ enum ExtendedTextMessagePreviewType {
+ NONE = 0;
+ VIDEO = 1;
+ }
+ optional ExtendedTextMessagePreviewType previewType = 10;
+ optional bytes jpegThumbnail = 16;
+ optional ContextInfo contextInfo = 17;
+ optional bool doNotPlayInline = 18;
+}
+
+message DocumentMessage {
+ optional string url = 1;
+ optional string mimetype = 2;
+ optional string title = 3;
+ optional bytes fileSha256 = 4;
+ optional uint64 fileLength = 5;
+ optional uint32 pageCount = 6;
+ optional bytes mediaKey = 7;
+ optional string fileName = 8;
+ optional bytes fileEncSha256 = 9;
+ optional string directPath = 10;
+ optional int64 mediaKeyTimestamp = 11;
+ optional bool contactVcard = 12;
+ optional string thumbnailDirectPath = 13;
+ optional bytes thumbnailSha256 = 14;
+ optional bytes thumbnailEncSha256 = 15;
+ optional bytes jpegThumbnail = 16;
+ optional ContextInfo contextInfo = 17;
+ optional uint32 thumbnailHeight = 18;
+ optional uint32 thumbnailWidth = 19;
+}
+
+message AudioMessage {
+ optional string url = 1;
+ optional string mimetype = 2;
+ optional bytes fileSha256 = 3;
+ optional uint64 fileLength = 4;
+ optional uint32 seconds = 5;
+ optional bool ptt = 6;
+ optional bytes mediaKey = 7;
+ optional bytes fileEncSha256 = 8;
+ optional string directPath = 9;
+ optional int64 mediaKeyTimestamp = 10;
+ optional ContextInfo contextInfo = 17;
+ optional bytes streamingSidecar = 18;
+}
+
+message VideoMessage {
+ optional string url = 1;
+ optional string mimetype = 2;
+ optional bytes fileSha256 = 3;
+ optional uint64 fileLength = 4;
+ optional uint32 seconds = 5;
+ optional bytes mediaKey = 6;
+ optional string caption = 7;
+ optional bool gifPlayback = 8;
+ optional uint32 height = 9;
+ optional uint32 width = 10;
+ optional bytes fileEncSha256 = 11;
+ repeated InteractiveAnnotation interactiveAnnotations = 12;
+ optional string directPath = 13;
+ optional int64 mediaKeyTimestamp = 14;
+ optional bytes jpegThumbnail = 16;
+ optional ContextInfo contextInfo = 17;
+ optional bytes streamingSidecar = 18;
+ enum VideoMessageAttribution {
+ NONE = 0;
+ GIPHY = 1;
+ TENOR = 2;
+ }
+ optional VideoMessageAttribution gifAttribution = 19;
+ optional bool viewOnce = 20;
+ optional string thumbnailDirectPath = 21;
+ optional bytes thumbnailSha256 = 22;
+ optional bytes thumbnailEncSha256 = 23;
+}
+
+message Call {
+ optional bytes callKey = 1;
+}
+
+message Chat {
+ optional string displayName = 1;
+ optional string id = 2;
+}
+
+message ProtocolMessage {
+ optional MessageKey key = 1;
+ enum ProtocolMessageType {
+ REVOKE = 0;
+ EPHEMERAL_SETTING = 3;
+ EPHEMERAL_SYNC_RESPONSE = 4;
+ HISTORY_SYNC_NOTIFICATION = 5;
+ APP_STATE_SYNC_KEY_SHARE = 6;
+ APP_STATE_SYNC_KEY_REQUEST = 7;
+ MSG_FANOUT_BACKFILL_REQUEST = 8;
+ INITIAL_SECURITY_NOTIFICATION_SETTING_SYNC = 9;
+ APP_STATE_FATAL_EXCEPTION_NOTIFICATION = 10;
+ }
+ optional ProtocolMessageType type = 2;
+ optional uint32 ephemeralExpiration = 4;
+ optional int64 ephemeralSettingTimestamp = 5;
+ optional HistorySyncNotification historySyncNotification = 6;
+ optional AppStateSyncKeyShare appStateSyncKeyShare = 7;
+ optional AppStateSyncKeyRequest appStateSyncKeyRequest = 8;
+ optional InitialSecurityNotificationSettingSync initialSecurityNotificationSettingSync = 9;
+ optional AppStateFatalExceptionNotification appStateFatalExceptionNotification = 10;
+}
+
+message HistorySyncNotification {
+ optional bytes fileSha256 = 1;
+ optional uint64 fileLength = 2;
+ optional bytes mediaKey = 3;
+ optional bytes fileEncSha256 = 4;
+ optional string directPath = 5;
+ enum HistorySyncNotificationHistorySyncType {
+ INITIAL_BOOTSTRAP = 0;
+ INITIAL_STATUS_V3 = 1;
+ FULL = 2;
+ RECENT = 3;
+ PUSH_NAME = 4;
+ }
+ optional HistorySyncNotificationHistorySyncType syncType = 6;
+ optional uint32 chunkOrder = 7;
+ optional string originalMessageId = 8;
+}
+
+message AppStateSyncKey {
+ optional AppStateSyncKeyId keyId = 1;
+ optional AppStateSyncKeyData keyData = 2;
+}
+
+message AppStateSyncKeyId {
+ optional bytes keyId = 1;
+}
+
+message AppStateSyncKeyFingerprint {
+ optional uint32 rawId = 1;
+ optional uint32 currentIndex = 2;
+ repeated uint32 deviceIndexes = 3 [packed=true];
+}
+
+message AppStateSyncKeyData {
+ optional bytes keyData = 1;
+ optional AppStateSyncKeyFingerprint fingerprint = 2;
+ optional int64 timestamp = 3;
+}
+
+message AppStateSyncKeyShare {
+ repeated AppStateSyncKey keys = 1;
+}
+
+message AppStateSyncKeyRequest {
+ repeated AppStateSyncKeyId keyIds = 1;
+}
+
+message AppStateFatalExceptionNotification {
+ repeated string collectionNames = 1;
+ optional int64 timestamp = 2;
+}
+
+message InitialSecurityNotificationSettingSync {
+ optional bool securityNotificationEnabled = 1;
+}
+
+message ContactsArrayMessage {
+ optional string displayName = 1;
+ repeated ContactMessage contacts = 2;
+ optional ContextInfo contextInfo = 17;
+}
+
+message HSMCurrency {
+ optional string currencyCode = 1;
+ optional int64 amount1000 = 2;
+}
+
+message HSMDateTimeComponent {
+ enum HSMDateTimeComponentDayOfWeekType {
+ MONDAY = 1;
+ TUESDAY = 2;
+ WEDNESDAY = 3;
+ THURSDAY = 4;
+ FRIDAY = 5;
+ SATURDAY = 6;
+ SUNDAY = 7;
+ }
+ optional HSMDateTimeComponentDayOfWeekType dayOfWeek = 1;
+ optional uint32 year = 2;
+ optional uint32 month = 3;
+ optional uint32 dayOfMonth = 4;
+ optional uint32 hour = 5;
+ optional uint32 minute = 6;
+ enum HSMDateTimeComponentCalendarType {
+ GREGORIAN = 1;
+ SOLAR_HIJRI = 2;
+ }
+ optional HSMDateTimeComponentCalendarType calendar = 7;
+}
+
+message HSMDateTimeUnixEpoch {
+ optional int64 timestamp = 1;
+}
+
+message HSMDateTime {
+ oneof datetimeOneof {
+ HSMDateTimeComponent component = 1;
+ HSMDateTimeUnixEpoch unixEpoch = 2;
+ }
+}
+
+message HSMLocalizableParameter {
+ optional string default = 1;
+ oneof paramOneof {
+ HSMCurrency currency = 2;
+ HSMDateTime dateTime = 3;
+ }
+}
+
+message HighlyStructuredMessage {
+ optional string namespace = 1;
+ optional string elementName = 2;
+ repeated string params = 3;
+ optional string fallbackLg = 4;
+ optional string fallbackLc = 5;
+ repeated HSMLocalizableParameter localizableParams = 6;
+ optional string deterministicLg = 7;
+ optional string deterministicLc = 8;
+ optional TemplateMessage hydratedHsm = 9;
+}
+
+message SendPaymentMessage {
+ optional Message noteMessage = 2;
+ optional MessageKey requestMessageKey = 3;
+}
+
+message RequestPaymentMessage {
+ optional Message noteMessage = 4;
+ optional string currencyCodeIso4217 = 1;
+ optional uint64 amount1000 = 2;
+ optional string requestFrom = 3;
+ optional int64 expiryTimestamp = 5;
+ optional PaymentMoney amount = 6;
+}
+
+message DeclinePaymentRequestMessage {
+ optional MessageKey key = 1;
+}
+
+message CancelPaymentRequestMessage {
+ optional MessageKey key = 1;
+}
+
+message LiveLocationMessage {
+ optional double degreesLatitude = 1;
+ optional double degreesLongitude = 2;
+ optional uint32 accuracyInMeters = 3;
+ optional float speedInMps = 4;
+ optional uint32 degreesClockwiseFromMagneticNorth = 5;
+ optional string caption = 6;
+ optional int64 sequenceNumber = 7;
+ optional uint32 timeOffset = 8;
+ optional bytes jpegThumbnail = 16;
+ optional ContextInfo contextInfo = 17;
+}
+
+message StickerMessage {
+ optional string url = 1;
+ optional bytes fileSha256 = 2;
+ optional bytes fileEncSha256 = 3;
+ optional bytes mediaKey = 4;
+ optional string mimetype = 5;
+ optional uint32 height = 6;
+ optional uint32 width = 7;
+ optional string directPath = 8;
+ optional uint64 fileLength = 9;
+ optional int64 mediaKeyTimestamp = 10;
+ optional uint32 firstFrameLength = 11;
+ optional bytes firstFrameSidecar = 12;
+ optional bool isAnimated = 13;
+ optional bytes pngThumbnail = 16;
+ optional ContextInfo contextInfo = 17;
+}
+
+message FourRowTemplate {
+ optional HighlyStructuredMessage content = 6;
+ optional HighlyStructuredMessage footer = 7;
+ repeated TemplateButton buttons = 8;
+ oneof title {
+ DocumentMessage documentMessage = 1;
+ HighlyStructuredMessage highlyStructuredMessage = 2;
+ ImageMessage imageMessage = 3;
+ VideoMessage videoMessage = 4;
+ LocationMessage locationMessage = 5;
+ }
+}
+
+message HydratedFourRowTemplate {
+ optional string hydratedContentText = 6;
+ optional string hydratedFooterText = 7;
+ repeated HydratedTemplateButton hydratedButtons = 8;
+ optional string templateId = 9;
+ oneof title {
+ DocumentMessage documentMessage = 1;
+ string hydratedTitleText = 2;
+ ImageMessage imageMessage = 3;
+ VideoMessage videoMessage = 4;
+ LocationMessage locationMessage = 5;
+ }
+}
+
+message TemplateMessage {
+ optional ContextInfo contextInfo = 3;
+ optional HydratedFourRowTemplate hydratedTemplate = 4;
+ oneof format {
+ FourRowTemplate fourRowTemplate = 1;
+ HydratedFourRowTemplate hydratedFourRowTemplate = 2;
+ }
+}
+
+message TemplateButtonReplyMessage {
+ optional string selectedId = 1;
+ optional string selectedDisplayText = 2;
+ optional ContextInfo contextInfo = 3;
+ optional uint32 selectedIndex = 4;
+}
+
+message CatalogSnapshot {
+ optional ImageMessage catalogImage = 1;
+ optional string title = 2;
+ optional string description = 3;
+}
+
+message ProductSnapshot {
+ optional ImageMessage productImage = 1;
+ optional string productId = 2;
+ optional string title = 3;
+ optional string description = 4;
+ optional string currencyCode = 5;
+ optional int64 priceAmount1000 = 6;
+ optional string retailerId = 7;
+ optional string url = 8;
+ optional uint32 productImageCount = 9;
+ optional string firstImageId = 11;
+}
+
+message ProductMessage {
+ optional ProductSnapshot product = 1;
+ optional string businessOwnerJid = 2;
+ optional CatalogSnapshot catalog = 4;
+ optional ContextInfo contextInfo = 17;
+}
+
+message OrderMessage {
+ optional string orderId = 1;
+ optional bytes thumbnail = 2;
+ optional int32 itemCount = 3;
+ enum OrderMessageOrderStatus {
+ INQUIRY = 1;
+ }
+ optional OrderMessageOrderStatus status = 4;
+ enum OrderMessageOrderSurface {
+ CATALOG = 1;
+ }
+ optional OrderMessageOrderSurface surface = 5;
+ optional string message = 6;
+ optional string orderTitle = 7;
+ optional string sellerJid = 8;
+ optional string token = 9;
+ optional int64 totalAmount1000 = 10;
+ optional string totalCurrencyCode = 11;
+ optional ContextInfo contextInfo = 17;
+}
+
+message Row {
+ optional string title = 1;
+ optional string description = 2;
+ optional string rowId = 3;
+}
+
+message Section {
+ optional string title = 1;
+ repeated Row rows = 2;
+}
+
+message ListMessage {
+ optional string title = 1;
+ optional string description = 2;
+ optional string buttonText = 3;
+ enum ListMessageListType {
+ UNKNOWN = 0;
+ SINGLE_SELECT = 1;
+ }
+ optional ListMessageListType listType = 4;
+ repeated Section sections = 5;
+}
+
+message SingleSelectReply {
+ optional string selectedRowId = 1;
+}
+
+message ListResponseMessage {
+ optional string title = 1;
+ enum ListResponseMessageListType {
+ UNKNOWN = 0;
+ SINGLE_SELECT = 1;
+ }
+ optional ListResponseMessageListType listType = 2;
+ optional SingleSelectReply singleSelectReply = 3;
+ optional ContextInfo contextInfo = 4;
+ optional string description = 5;
+}
+
+message GroupInviteMessage {
+ optional string groupJid = 1;
+ optional string inviteCode = 2;
+ optional int64 inviteExpiration = 3;
+ optional string groupName = 4;
+ optional bytes jpegThumbnail = 5;
+ optional string caption = 6;
+ optional ContextInfo contextInfo = 7;
+}
+
+message EphemeralSetting {
+ optional string chatJid = 1;
+ optional uint32 ephemeralExpiration = 2;
+ optional int64 ephemeralSettingTimestamp = 3;
+}
+
+message DeviceSentMessage {
+ optional string destinationJid = 1;
+ optional Message message = 2;
+ optional string phash = 3;
+ repeated EphemeralSetting broadcastEphemeralSettings = 4;
+}
+
+message FutureProofMessage {
+ optional Message message = 1;
+}
+
+message ButtonText {
+ optional string displayText = 1;
+}
+
+message Button {
+ optional string buttonId = 1;
+ optional ButtonText buttonText = 2;
+ enum ButtonType {
+ UNKNOWN = 0;
+ RESPONSE = 1;
+ }
+ optional ButtonType type = 3;
+}
+
+message ButtonsMessage {
+ optional string contentText = 6;
+ optional string footerText = 7;
+ optional ContextInfo contextInfo = 8;
+ repeated Button buttons = 9;
+ enum ButtonsMessageHeaderType {
+ UNKNOWN = 0;
+ EMPTY = 1;
+ TEXT = 2;
+ DOCUMENT = 3;
+ IMAGE = 4;
+ VIDEO = 5;
+ LOCATION = 6;
+ }
+ optional ButtonsMessageHeaderType headerType = 10;
+ oneof header {
+ string text = 1;
+ DocumentMessage documentMessage = 2;
+ ImageMessage imageMessage = 3;
+ VideoMessage videoMessage = 4;
+ LocationMessage locationMessage = 5;
+ }
+}
+
+message ButtonsResponseMessage {
+ optional string selectedButtonId = 1;
+ optional ContextInfo contextInfo = 3;
+ enum ButtonsResponseMessageType {
+ UNKNOWN = 0;
+ DISPLAY_TEXT = 1;
+ }
+ optional ButtonsResponseMessageType type = 4;
+ oneof response {
+ string selectedDisplayText = 2;
+ }
+}
+
+message Message {
+ optional string conversation = 1;
+ optional SenderKeyDistributionMessage senderKeyDistributionMessage = 2;
+ optional ImageMessage imageMessage = 3;
+ optional ContactMessage contactMessage = 4;
+ optional LocationMessage locationMessage = 5;
+ optional ExtendedTextMessage extendedTextMessage = 6;
+ optional DocumentMessage documentMessage = 7;
+ optional AudioMessage audioMessage = 8;
+ optional VideoMessage videoMessage = 9;
+ optional Call call = 10;
+ optional Chat chat = 11;
+ optional ProtocolMessage protocolMessage = 12;
+ optional ContactsArrayMessage contactsArrayMessage = 13;
+ optional HighlyStructuredMessage highlyStructuredMessage = 14;
+ optional SenderKeyDistributionMessage fastRatchetKeySenderKeyDistributionMessage = 15;
+ optional SendPaymentMessage sendPaymentMessage = 16;
+ optional LiveLocationMessage liveLocationMessage = 18;
+ optional RequestPaymentMessage requestPaymentMessage = 22;
+ optional DeclinePaymentRequestMessage declinePaymentRequestMessage = 23;
+ optional CancelPaymentRequestMessage cancelPaymentRequestMessage = 24;
+ optional TemplateMessage templateMessage = 25;
+ optional StickerMessage stickerMessage = 26;
+ optional GroupInviteMessage groupInviteMessage = 28;
+ optional TemplateButtonReplyMessage templateButtonReplyMessage = 29;
+ optional ProductMessage productMessage = 30;
+ optional DeviceSentMessage deviceSentMessage = 31;
+ optional MessageContextInfo messageContextInfo = 35;
+ optional ListMessage listMessage = 36;
+ optional FutureProofMessage viewOnceMessage = 37;
+ optional OrderMessage orderMessage = 38;
+ optional ListResponseMessage listResponseMessage = 39;
+ optional FutureProofMessage ephemeralMessage = 40;
+ optional InvoiceMessage invoiceMessage = 41;
+ optional ButtonsMessage buttonsMessage = 42;
+ optional ButtonsResponseMessage buttonsResponseMessage = 43;
+}
+
+message MessageKey {
+ optional string remoteJid = 1;
+ optional bool fromMe = 2;
+ optional string id = 3;
+ optional string participant = 4;
+}
+
+message WebFeatures {
+ enum WebFeaturesFlag {
+ NOT_STARTED = 0;
+ FORCE_UPGRADE = 1;
+ DEVELOPMENT = 2;
+ PRODUCTION = 3;
+ }
+ optional WebFeaturesFlag labelsDisplay = 1;
+ optional WebFeaturesFlag voipIndividualOutgoing = 2;
+ optional WebFeaturesFlag groupsV3 = 3;
+ optional WebFeaturesFlag groupsV3Create = 4;
+ optional WebFeaturesFlag changeNumberV2 = 5;
+ optional WebFeaturesFlag queryStatusV3Thumbnail = 6;
+ optional WebFeaturesFlag liveLocations = 7;
+ optional WebFeaturesFlag queryVname = 8;
+ optional WebFeaturesFlag voipIndividualIncoming = 9;
+ optional WebFeaturesFlag quickRepliesQuery = 10;
+ optional WebFeaturesFlag payments = 11;
+ optional WebFeaturesFlag stickerPackQuery = 12;
+ optional WebFeaturesFlag liveLocationsFinal = 13;
+ optional WebFeaturesFlag labelsEdit = 14;
+ optional WebFeaturesFlag mediaUpload = 15;
+ optional WebFeaturesFlag mediaUploadRichQuickReplies = 18;
+ optional WebFeaturesFlag vnameV2 = 19;
+ optional WebFeaturesFlag videoPlaybackUrl = 20;
+ optional WebFeaturesFlag statusRanking = 21;
+ optional WebFeaturesFlag voipIndividualVideo = 22;
+ optional WebFeaturesFlag thirdPartyStickers = 23;
+ optional WebFeaturesFlag frequentlyForwardedSetting = 24;
+ optional WebFeaturesFlag groupsV4JoinPermission = 25;
+ optional WebFeaturesFlag recentStickers = 26;
+ optional WebFeaturesFlag catalog = 27;
+ optional WebFeaturesFlag starredStickers = 28;
+ optional WebFeaturesFlag voipGroupCall = 29;
+ optional WebFeaturesFlag templateMessage = 30;
+ optional WebFeaturesFlag templateMessageInteractivity = 31;
+ optional WebFeaturesFlag ephemeralMessages = 32;
+ optional WebFeaturesFlag e2ENotificationSync = 33;
+ optional WebFeaturesFlag recentStickersV2 = 34;
+ optional WebFeaturesFlag syncdRelease1 = 35;
+ optional WebFeaturesFlag recentStickersV3 = 36;
+ optional WebFeaturesFlag userNotice = 37;
+ optional WebFeaturesFlag syncdRelease11 = 38;
+ optional WebFeaturesFlag support = 39;
+ optional WebFeaturesFlag groupUiiCleanup = 40;
+ optional WebFeaturesFlag groupDogfoodingInternalOnly = 41;
+ optional WebFeaturesFlag settingsSync = 42;
+}
+
+message NotificationMessageInfo {
+ optional MessageKey key = 1;
+ optional Message message = 2;
+ optional uint64 messageTimestamp = 3;
+ optional string participant = 4;
+}
+
+message WebNotificationsInfo {
+ optional uint64 timestamp = 2;
+ optional uint32 unreadChats = 3;
+ optional uint32 notifyMessageCount = 4;
+ repeated WebMessageInfo notifyMessages = 5;
+}
+
+message PaymentInfo {
+ enum PaymentInfoCurrency {
+ UNKNOWN_CURRENCY = 0;
+ INR = 1;
+ }
+ optional PaymentInfoCurrency currencyDeprecated = 1;
+ optional uint64 amount1000 = 2;
+ optional string receiverJid = 3;
+ enum PaymentInfoStatus {
+ UNKNOWN_STATUS = 0;
+ PROCESSING = 1;
+ SENT = 2;
+ NEED_TO_ACCEPT = 3;
+ COMPLETE = 4;
+ COULD_NOT_COMPLETE = 5;
+ REFUNDED = 6;
+ EXPIRED = 7;
+ REJECTED = 8;
+ CANCELLED = 9;
+ WAITING_FOR_PAYER = 10;
+ WAITING = 11;
+ }
+ optional PaymentInfoStatus status = 4;
+ optional uint64 transactionTimestamp = 5;
+ optional MessageKey requestMessageKey = 6;
+ optional uint64 expiryTimestamp = 7;
+ optional bool futureproofed = 8;
+ optional string currency = 9;
+ enum PaymentInfoTxnStatus {
+ UNKNOWN = 0;
+ PENDING_SETUP = 1;
+ PENDING_RECEIVER_SETUP = 2;
+ INIT = 3;
+ SUCCESS = 4;
+ COMPLETED = 5;
+ FAILED = 6;
+ FAILED_RISK = 7;
+ FAILED_PROCESSING = 8;
+ FAILED_RECEIVER_PROCESSING = 9;
+ FAILED_DA = 10;
+ FAILED_DA_FINAL = 11;
+ REFUNDED_TXN = 12;
+ REFUND_FAILED = 13;
+ REFUND_FAILED_PROCESSING = 14;
+ REFUND_FAILED_DA = 15;
+ EXPIRED_TXN = 16;
+ AUTH_CANCELED = 17;
+ AUTH_CANCEL_FAILED_PROCESSING = 18;
+ AUTH_CANCEL_FAILED = 19;
+ COLLECT_INIT = 20;
+ COLLECT_SUCCESS = 21;
+ COLLECT_FAILED = 22;
+ COLLECT_FAILED_RISK = 23;
+ COLLECT_REJECTED = 24;
+ COLLECT_EXPIRED = 25;
+ COLLECT_CANCELED = 26;
+ COLLECT_CANCELLING = 27;
+ }
+ optional PaymentInfoTxnStatus txnStatus = 10;
+ optional bool useNoviFiatFormat = 11;
+ optional PaymentMoney primaryAmount = 12;
+ optional PaymentMoney exchangeAmount = 13;
+}
+
+message WebMessageInfo {
+ required MessageKey key = 1;
+ optional Message message = 2;
+ optional uint64 messageTimestamp = 3;
+ enum WebMessageInfoStatus {
+ ERROR = 0;
+ PENDING = 1;
+ SERVER_ACK = 2;
+ DELIVERY_ACK = 3;
+ READ = 4;
+ PLAYED = 5;
+ }
+ optional WebMessageInfoStatus status = 4;
+ optional string participant = 5;
+ optional bool ignore = 16;
+ optional bool starred = 17;
+ optional bool broadcast = 18;
+ optional string pushName = 19;
+ optional bytes mediaCiphertextSha256 = 20;
+ optional bool multicast = 21;
+ optional bool urlText = 22;
+ optional bool urlNumber = 23;
+ enum WebMessageInfoStubType {
+ UNKNOWN = 0;
+ REVOKE = 1;
+ CIPHERTEXT = 2;
+ FUTUREPROOF = 3;
+ NON_VERIFIED_TRANSITION = 4;
+ UNVERIFIED_TRANSITION = 5;
+ VERIFIED_TRANSITION = 6;
+ VERIFIED_LOW_UNKNOWN = 7;
+ VERIFIED_HIGH = 8;
+ VERIFIED_INITIAL_UNKNOWN = 9;
+ VERIFIED_INITIAL_LOW = 10;
+ VERIFIED_INITIAL_HIGH = 11;
+ VERIFIED_TRANSITION_ANY_TO_NONE = 12;
+ VERIFIED_TRANSITION_ANY_TO_HIGH = 13;
+ VERIFIED_TRANSITION_HIGH_TO_LOW = 14;
+ VERIFIED_TRANSITION_HIGH_TO_UNKNOWN = 15;
+ VERIFIED_TRANSITION_UNKNOWN_TO_LOW = 16;
+ VERIFIED_TRANSITION_LOW_TO_UNKNOWN = 17;
+ VERIFIED_TRANSITION_NONE_TO_LOW = 18;
+ VERIFIED_TRANSITION_NONE_TO_UNKNOWN = 19;
+ GROUP_CREATE = 20;
+ GROUP_CHANGE_SUBJECT = 21;
+ GROUP_CHANGE_ICON = 22;
+ GROUP_CHANGE_INVITE_LINK = 23;
+ GROUP_CHANGE_DESCRIPTION = 24;
+ GROUP_CHANGE_RESTRICT = 25;
+ GROUP_CHANGE_ANNOUNCE = 26;
+ GROUP_PARTICIPANT_ADD = 27;
+ GROUP_PARTICIPANT_REMOVE = 28;
+ GROUP_PARTICIPANT_PROMOTE = 29;
+ GROUP_PARTICIPANT_DEMOTE = 30;
+ GROUP_PARTICIPANT_INVITE = 31;
+ GROUP_PARTICIPANT_LEAVE = 32;
+ GROUP_PARTICIPANT_CHANGE_NUMBER = 33;
+ BROADCAST_CREATE = 34;
+ BROADCAST_ADD = 35;
+ BROADCAST_REMOVE = 36;
+ GENERIC_NOTIFICATION = 37;
+ E2E_IDENTITY_CHANGED = 38;
+ E2E_ENCRYPTED = 39;
+ CALL_MISSED_VOICE = 40;
+ CALL_MISSED_VIDEO = 41;
+ INDIVIDUAL_CHANGE_NUMBER = 42;
+ GROUP_DELETE = 43;
+ GROUP_ANNOUNCE_MODE_MESSAGE_BOUNCE = 44;
+ CALL_MISSED_GROUP_VOICE = 45;
+ CALL_MISSED_GROUP_VIDEO = 46;
+ PAYMENT_CIPHERTEXT = 47;
+ PAYMENT_FUTUREPROOF = 48;
+ PAYMENT_TRANSACTION_STATUS_UPDATE_FAILED = 49;
+ PAYMENT_TRANSACTION_STATUS_UPDATE_REFUNDED = 50;
+ PAYMENT_TRANSACTION_STATUS_UPDATE_REFUND_FAILED = 51;
+ PAYMENT_TRANSACTION_STATUS_RECEIVER_PENDING_SETUP = 52;
+ PAYMENT_TRANSACTION_STATUS_RECEIVER_SUCCESS_AFTER_HICCUP = 53;
+ PAYMENT_ACTION_ACCOUNT_SETUP_REMINDER = 54;
+ PAYMENT_ACTION_SEND_PAYMENT_REMINDER = 55;
+ PAYMENT_ACTION_SEND_PAYMENT_INVITATION = 56;
+ PAYMENT_ACTION_REQUEST_DECLINED = 57;
+ PAYMENT_ACTION_REQUEST_EXPIRED = 58;
+ PAYMENT_ACTION_REQUEST_CANCELLED = 59;
+ BIZ_VERIFIED_TRANSITION_TOP_TO_BOTTOM = 60;
+ BIZ_VERIFIED_TRANSITION_BOTTOM_TO_TOP = 61;
+ BIZ_INTRO_TOP = 62;
+ BIZ_INTRO_BOTTOM = 63;
+ BIZ_NAME_CHANGE = 64;
+ BIZ_MOVE_TO_CONSUMER_APP = 65;
+ BIZ_TWO_TIER_MIGRATION_TOP = 66;
+ BIZ_TWO_TIER_MIGRATION_BOTTOM = 67;
+ OVERSIZED = 68;
+ GROUP_CHANGE_NO_FREQUENTLY_FORWARDED = 69;
+ GROUP_V4_ADD_INVITE_SENT = 70;
+ GROUP_PARTICIPANT_ADD_REQUEST_JOIN = 71;
+ CHANGE_EPHEMERAL_SETTING = 72;
+ E2E_DEVICE_CHANGED = 73;
+ VIEWED_ONCE = 74;
+ E2E_ENCRYPTED_NOW = 75;
+ BLUE_MSG_BSP_FB_TO_BSP_PREMISE = 76;
+ BLUE_MSG_BSP_FB_TO_SELF_FB = 77;
+ BLUE_MSG_BSP_FB_TO_SELF_PREMISE = 78;
+ BLUE_MSG_BSP_FB_UNVERIFIED = 79;
+ BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED = 80;
+ BLUE_MSG_BSP_FB_VERIFIED = 81;
+ BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED = 82;
+ BLUE_MSG_BSP_PREMISE_TO_SELF_PREMISE = 83;
+ BLUE_MSG_BSP_PREMISE_UNVERIFIED = 84;
+ BLUE_MSG_BSP_PREMISE_UNVERIFIED_TO_SELF_PREMISE_VERIFIED = 85;
+ BLUE_MSG_BSP_PREMISE_VERIFIED = 86;
+ BLUE_MSG_BSP_PREMISE_VERIFIED_TO_SELF_PREMISE_UNVERIFIED = 87;
+ BLUE_MSG_CONSUMER_TO_BSP_FB_UNVERIFIED = 88;
+ BLUE_MSG_CONSUMER_TO_BSP_PREMISE_UNVERIFIED = 89;
+ BLUE_MSG_CONSUMER_TO_SELF_FB_UNVERIFIED = 90;
+ BLUE_MSG_CONSUMER_TO_SELF_PREMISE_UNVERIFIED = 91;
+ BLUE_MSG_SELF_FB_TO_BSP_PREMISE = 92;
+ BLUE_MSG_SELF_FB_TO_SELF_PREMISE = 93;
+ BLUE_MSG_SELF_FB_UNVERIFIED = 94;
+ BLUE_MSG_SELF_FB_UNVERIFIED_TO_SELF_PREMISE_VERIFIED = 95;
+ BLUE_MSG_SELF_FB_VERIFIED = 96;
+ BLUE_MSG_SELF_FB_VERIFIED_TO_SELF_PREMISE_UNVERIFIED = 97;
+ BLUE_MSG_SELF_PREMISE_TO_BSP_PREMISE = 98;
+ BLUE_MSG_SELF_PREMISE_UNVERIFIED = 99;
+ BLUE_MSG_SELF_PREMISE_VERIFIED = 100;
+ BLUE_MSG_TO_BSP_FB = 101;
+ BLUE_MSG_TO_CONSUMER = 102;
+ BLUE_MSG_TO_SELF_FB = 103;
+ BLUE_MSG_UNVERIFIED_TO_BSP_FB_VERIFIED = 104;
+ BLUE_MSG_UNVERIFIED_TO_BSP_PREMISE_VERIFIED = 105;
+ BLUE_MSG_UNVERIFIED_TO_SELF_FB_VERIFIED = 106;
+ BLUE_MSG_UNVERIFIED_TO_VERIFIED = 107;
+ BLUE_MSG_VERIFIED_TO_BSP_FB_UNVERIFIED = 108;
+ BLUE_MSG_VERIFIED_TO_BSP_PREMISE_UNVERIFIED = 109;
+ BLUE_MSG_VERIFIED_TO_SELF_FB_UNVERIFIED = 110;
+ BLUE_MSG_VERIFIED_TO_UNVERIFIED = 111;
+ BLUE_MSG_BSP_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED = 112;
+ BLUE_MSG_BSP_FB_UNVERIFIED_TO_SELF_FB_VERIFIED = 113;
+ BLUE_MSG_BSP_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED = 114;
+ BLUE_MSG_BSP_FB_VERIFIED_TO_SELF_FB_UNVERIFIED = 115;
+ BLUE_MSG_SELF_FB_UNVERIFIED_TO_BSP_PREMISE_VERIFIED = 116;
+ BLUE_MSG_SELF_FB_VERIFIED_TO_BSP_PREMISE_UNVERIFIED = 117;
+ E2E_IDENTITY_UNAVAILABLE = 118;
+ }
+ optional WebMessageInfoStubType messageStubType = 24;
+ optional bool clearMedia = 25;
+ repeated string messageStubParameters = 26;
+ optional uint32 duration = 27;
+ repeated string labels = 28;
+ optional PaymentInfo paymentInfo = 29;
+ optional LiveLocationMessage finalLiveLocation = 30;
+ optional PaymentInfo quotedPaymentInfo = 31;
+ optional uint64 ephemeralStartTimestamp = 32;
+ optional uint32 ephemeralDuration = 33;
+ optional bool ephemeralOffToOn = 34;
+ optional bool ephemeralOutOfSync = 35;
+ enum WebMessageInfoBizPrivacyStatus {
+ E2EE = 0;
+ FB = 2;
+ BSP = 1;
+ BSP_AND_FB = 3;
+ }
+ optional WebMessageInfoBizPrivacyStatus bizPrivacyStatus = 36;
+ optional string verifiedBizName = 37;
+} \ No newline at end of file
diff --git a/vendor/github.com/Rhymen/go-whatsapp/binary/token/token.go b/vendor/github.com/Rhymen/go-whatsapp/binary/token/token.go
new file mode 100644
index 00000000..8fd28f31
--- /dev/null
+++ b/vendor/github.com/Rhymen/go-whatsapp/binary/token/token.go
@@ -0,0 +1,81 @@
+package token
+
+import "fmt"
+
+var SingleByteTokens = [...]string{"", "", "", "200", "400", "404", "500", "501", "502", "action", "add",
+ "after", "archive", "author", "available", "battery", "before", "body",
+ "broadcast", "chat", "clear", "code", "composing", "contacts", "count",
+ "create", "debug", "delete", "demote", "duplicate", "encoding", "error",
+ "false", "filehash", "from", "g.us", "group", "groups_v2", "height", "id",
+ "image", "in", "index", "invis", "item", "jid", "kind", "last", "leave",
+ "live", "log", "media", "message", "mimetype", "missing", "modify", "name",
+ "notification", "notify", "out", "owner", "participant", "paused",
+ "picture", "played", "presence", "preview", "promote", "query", "raw",
+ "read", "receipt", "received", "recipient", "recording", "relay",
+ "remove", "response", "resume", "retry", "s.whatsapp.net", "seconds",
+ "set", "size", "status", "subject", "subscribe", "t", "text", "to", "true",
+ "type", "unarchive", "unavailable", "url", "user", "value", "web", "width",
+ "mute", "read_only", "admin", "creator", "short", "update", "powersave",
+ "checksum", "epoch", "block", "previous", "409", "replaced", "reason",
+ "spam", "modify_tag", "message_info", "delivery", "emoji", "title",
+ "description", "canonical-url", "matched-text", "star", "unstar",
+ "media_key", "filename", "identity", "unread", "page", "page_count",
+ "search", "media_message", "security", "call_log", "profile", "ciphertext",
+ "invite", "gif", "vcard", "frequent", "privacy", "blacklist", "whitelist",
+ "verify", "location", "document", "elapsed", "revoke_invite", "expiration",
+ "unsubscribe", "disable", "vname", "old_jid", "new_jid", "announcement",
+ "locked", "prop", "label", "color", "call", "offer", "call-id",
+ "quick_reply", "sticker", "pay_t", "accept", "reject", "sticker_pack",
+ "invalid", "canceled", "missed", "connected", "result", "audio",
+ "video", "recent"}
+
+var doubleByteTokens = [...]string{}
+
+func GetSingleToken(i int) (string, error) {
+ if i < 3 || i >= len(SingleByteTokens) {
+ return "", fmt.Errorf("index out of single byte token bounds %d", i)
+ }
+
+ return SingleByteTokens[i], nil
+}
+
+func GetDoubleToken(index1 int, index2 int) (string, error) {
+ n := 256*index1 + index2
+ if n < 0 || n >= len(doubleByteTokens) {
+ return "", fmt.Errorf("index out of double byte token bounds %d", n)
+ }
+
+ return doubleByteTokens[n], nil
+}
+
+func IndexOfSingleToken(token string) int {
+ for i, t := range SingleByteTokens {
+ if t == token {
+ return i
+ }
+ }
+
+ return -1
+}
+
+const (
+ LIST_EMPTY = 0
+ STREAM_END = 2
+ DICTIONARY_0 = 236
+ DICTIONARY_1 = 237
+ DICTIONARY_2 = 238
+ DICTIONARY_3 = 239
+ LIST_8 = 248
+ LIST_16 = 249
+ JID_PAIR = 250
+ HEX_8 = 251
+ BINARY_8 = 252
+ BINARY_20 = 253
+ BINARY_32 = 254
+ NIBBLE_8 = 255
+)
+
+const (
+ PACKED_MAX = 254
+ SINGLE_BYTE_MAX = 256
+)