New upstream version 0.0~git20170808.0.1909bc2
aviau
6 years ago
0 | sudo: false | |
1 | language: go | |
2 | go: | |
3 | - 1.6.x | |
4 | - 1.7.x | |
5 | - 1.8.x | |
6 | ||
7 | install: | |
8 | - go get -v -d -t github.com/golang/protobuf/... | |
9 | - curl -L https://github.com/google/protobuf/releases/download/v3.3.0/protoc-3.3.0-linux-x86_64.zip -o /tmp/protoc.zip | |
10 | - unzip /tmp/protoc.zip -d $HOME/protoc | |
11 | ||
12 | env: | |
13 | - PATH=$HOME/protoc/bin:$PATH | |
14 | ||
15 | script: | |
16 | - make all test |
51 | 51 | make -C protoc-gen-go/testdata regenerate |
52 | 52 | make -C proto/testdata regenerate |
53 | 53 | make -C jsonpb/jsonpb_test_proto regenerate |
54 | make -C _conformance regenerate |
0 | 0 | # Go support for Protocol Buffers |
1 | ||
2 | [![Build Status](https://travis-ci.org/golang/protobuf.svg?branch=master)](https://travis-ci.org/golang/protobuf) | |
1 | 3 | |
2 | 4 | Google's data interchange format. |
3 | 5 | Copyright 2010 The Go Authors. |
21 | 23 | for details or, if you are using gccgo, follow the instructions at |
22 | 24 | https://golang.org/doc/install/gccgo |
23 | 25 | - Grab the code from the repository and install the proto package. |
24 | The simplest way is to run `go get -u github.com/golang/protobuf/{proto,protoc-gen-go}`. | |
26 | The simplest way is to run `go get -u github.com/golang/protobuf/protoc-gen-go`. | |
25 | 27 | The compiler plugin, protoc-gen-go, will be installed in $GOBIN, |
26 | 28 | defaulting to $GOPATH/bin. It must be in your $PATH for the protocol |
27 | 29 | compiler, protoc, to find it. |
103 | 105 | When the .proto file specifies `syntax="proto3"`, there are some differences: |
104 | 106 | |
105 | 107 | - Non-repeated fields of non-message type are values instead of pointers. |
106 | - Getters are only generated for message and oneof fields. | |
107 | 108 | - Enum types do not get an Enum method. |
108 | 109 | |
109 | 110 | Consider file test.proto, containing |
0 | # Go support for Protocol Buffers - Google's data interchange format | |
1 | # | |
2 | # Copyright 2016 The Go Authors. All rights reserved. | |
3 | # https://github.com/golang/protobuf | |
4 | # | |
5 | # Redistribution and use in source and binary forms, with or without | |
6 | # modification, are permitted provided that the following conditions are | |
7 | # met: | |
8 | # | |
9 | # * Redistributions of source code must retain the above copyright | |
10 | # notice, this list of conditions and the following disclaimer. | |
11 | # * Redistributions in binary form must reproduce the above | |
12 | # copyright notice, this list of conditions and the following disclaimer | |
13 | # in the documentation and/or other materials provided with the | |
14 | # distribution. | |
15 | # * Neither the name of Google Inc. nor the names of its | |
16 | # contributors may be used to endorse or promote products derived from | |
17 | # this software without specific prior written permission. | |
18 | # | |
19 | # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
20 | # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
21 | # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
22 | # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
23 | # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
24 | # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
25 | # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
26 | # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
27 | # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
28 | # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
29 | # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
30 | ||
31 | regenerate: | |
32 | protoc --go_out=Mgoogle/protobuf/any.proto=github.com/golang/protobuf/ptypes/any,Mgoogle/protobuf/duration.proto=github.com/golang/protobuf/ptypes/duration,Mgoogle/protobuf/struct.proto=github.com/golang/protobuf/ptypes/struct,Mgoogle/protobuf/timestamp.proto=github.com/golang/protobuf/ptypes/timestamp,Mgoogle/protobuf/wrappers.proto=github.com/golang/protobuf/ptypes/wrappers,Mgoogle/protobuf/field_mask.proto=google.golang.org/genproto/protobuf:. conformance_proto/conformance.proto |
0 | // Go support for Protocol Buffers - Google's data interchange format | |
1 | // | |
2 | // Copyright 2016 The Go Authors. All rights reserved. | |
3 | // https://github.com/golang/protobuf | |
4 | // | |
5 | // Redistribution and use in source and binary forms, with or without | |
6 | // modification, are permitted provided that the following conditions are | |
7 | // met: | |
8 | // | |
9 | // * Redistributions of source code must retain the above copyright | |
10 | // notice, this list of conditions and the following disclaimer. | |
11 | // * Redistributions in binary form must reproduce the above | |
12 | // copyright notice, this list of conditions and the following disclaimer | |
13 | // in the documentation and/or other materials provided with the | |
14 | // distribution. | |
15 | // * Neither the name of Google Inc. nor the names of its | |
16 | // contributors may be used to endorse or promote products derived from | |
17 | // this software without specific prior written permission. | |
18 | // | |
19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
20 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
21 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
22 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
23 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
24 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
25 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
26 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
27 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
28 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
29 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
30 | ||
31 | // conformance implements the conformance test subprocess protocol as | |
32 | // documented in conformance.proto. | |
33 | package main | |
34 | ||
35 | import ( | |
36 | "encoding/binary" | |
37 | "fmt" | |
38 | "io" | |
39 | "os" | |
40 | ||
41 | pb "github.com/golang/protobuf/_conformance/conformance_proto" | |
42 | "github.com/golang/protobuf/jsonpb" | |
43 | "github.com/golang/protobuf/proto" | |
44 | ) | |
45 | ||
46 | func main() { | |
47 | var sizeBuf [4]byte | |
48 | inbuf := make([]byte, 0, 4096) | |
49 | outbuf := proto.NewBuffer(nil) | |
50 | for { | |
51 | if _, err := io.ReadFull(os.Stdin, sizeBuf[:]); err == io.EOF { | |
52 | break | |
53 | } else if err != nil { | |
54 | fmt.Fprintln(os.Stderr, "go conformance: read request:", err) | |
55 | os.Exit(1) | |
56 | } | |
57 | size := binary.LittleEndian.Uint32(sizeBuf[:]) | |
58 | if int(size) > cap(inbuf) { | |
59 | inbuf = make([]byte, size) | |
60 | } | |
61 | inbuf = inbuf[:size] | |
62 | if _, err := io.ReadFull(os.Stdin, inbuf); err != nil { | |
63 | fmt.Fprintln(os.Stderr, "go conformance: read request:", err) | |
64 | os.Exit(1) | |
65 | } | |
66 | ||
67 | req := new(pb.ConformanceRequest) | |
68 | if err := proto.Unmarshal(inbuf, req); err != nil { | |
69 | fmt.Fprintln(os.Stderr, "go conformance: parse request:", err) | |
70 | os.Exit(1) | |
71 | } | |
72 | res := handle(req) | |
73 | ||
74 | if err := outbuf.Marshal(res); err != nil { | |
75 | fmt.Fprintln(os.Stderr, "go conformance: marshal response:", err) | |
76 | os.Exit(1) | |
77 | } | |
78 | binary.LittleEndian.PutUint32(sizeBuf[:], uint32(len(outbuf.Bytes()))) | |
79 | if _, err := os.Stdout.Write(sizeBuf[:]); err != nil { | |
80 | fmt.Fprintln(os.Stderr, "go conformance: write response:", err) | |
81 | os.Exit(1) | |
82 | } | |
83 | if _, err := os.Stdout.Write(outbuf.Bytes()); err != nil { | |
84 | fmt.Fprintln(os.Stderr, "go conformance: write response:", err) | |
85 | os.Exit(1) | |
86 | } | |
87 | outbuf.Reset() | |
88 | } | |
89 | } | |
90 | ||
91 | var jsonMarshaler = jsonpb.Marshaler{ | |
92 | OrigName: true, | |
93 | } | |
94 | ||
95 | func handle(req *pb.ConformanceRequest) *pb.ConformanceResponse { | |
96 | var err error | |
97 | var msg pb.TestAllTypes | |
98 | switch p := req.Payload.(type) { | |
99 | case *pb.ConformanceRequest_ProtobufPayload: | |
100 | err = proto.Unmarshal(p.ProtobufPayload, &msg) | |
101 | case *pb.ConformanceRequest_JsonPayload: | |
102 | err = jsonpb.UnmarshalString(p.JsonPayload, &msg) | |
103 | if err != nil && err.Error() == "unmarshaling Any not supported yet" { | |
104 | return &pb.ConformanceResponse{ | |
105 | Result: &pb.ConformanceResponse_Skipped{ | |
106 | Skipped: err.Error(), | |
107 | }, | |
108 | } | |
109 | } | |
110 | default: | |
111 | return &pb.ConformanceResponse{ | |
112 | Result: &pb.ConformanceResponse_RuntimeError{ | |
113 | RuntimeError: "unknown request payload type", | |
114 | }, | |
115 | } | |
116 | } | |
117 | if err != nil { | |
118 | return &pb.ConformanceResponse{ | |
119 | Result: &pb.ConformanceResponse_ParseError{ | |
120 | ParseError: err.Error(), | |
121 | }, | |
122 | } | |
123 | } | |
124 | switch req.RequestedOutputFormat { | |
125 | case pb.WireFormat_PROTOBUF: | |
126 | p, err := proto.Marshal(&msg) | |
127 | if err != nil { | |
128 | return &pb.ConformanceResponse{ | |
129 | Result: &pb.ConformanceResponse_SerializeError{ | |
130 | SerializeError: err.Error(), | |
131 | }, | |
132 | } | |
133 | } | |
134 | return &pb.ConformanceResponse{ | |
135 | Result: &pb.ConformanceResponse_ProtobufPayload{ | |
136 | ProtobufPayload: p, | |
137 | }, | |
138 | } | |
139 | case pb.WireFormat_JSON: | |
140 | p, err := jsonMarshaler.MarshalToString(&msg) | |
141 | if err != nil { | |
142 | return &pb.ConformanceResponse{ | |
143 | Result: &pb.ConformanceResponse_SerializeError{ | |
144 | SerializeError: err.Error(), | |
145 | }, | |
146 | } | |
147 | } | |
148 | return &pb.ConformanceResponse{ | |
149 | Result: &pb.ConformanceResponse_JsonPayload{ | |
150 | JsonPayload: p, | |
151 | }, | |
152 | } | |
153 | default: | |
154 | return &pb.ConformanceResponse{ | |
155 | Result: &pb.ConformanceResponse_RuntimeError{ | |
156 | RuntimeError: "unknown output format", | |
157 | }, | |
158 | } | |
159 | } | |
160 | } |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | // source: conformance_proto/conformance.proto | |
2 | ||
3 | /* | |
4 | Package conformance is a generated protocol buffer package. | |
5 | ||
6 | It is generated from these files: | |
7 | conformance_proto/conformance.proto | |
8 | ||
9 | It has these top-level messages: | |
10 | ConformanceRequest | |
11 | ConformanceResponse | |
12 | TestAllTypes | |
13 | ForeignMessage | |
14 | */ | |
15 | package conformance | |
16 | ||
17 | import proto "github.com/golang/protobuf/proto" | |
18 | import fmt "fmt" | |
19 | import math "math" | |
20 | import google_protobuf "github.com/golang/protobuf/ptypes/any" | |
21 | import google_protobuf1 "github.com/golang/protobuf/ptypes/duration" | |
22 | import google_protobuf2 "google.golang.org/genproto/protobuf" | |
23 | import google_protobuf3 "github.com/golang/protobuf/ptypes/struct" | |
24 | import google_protobuf4 "github.com/golang/protobuf/ptypes/timestamp" | |
25 | import google_protobuf5 "github.com/golang/protobuf/ptypes/wrappers" | |
26 | ||
27 | // Reference imports to suppress errors if they are not otherwise used. | |
28 | var _ = proto.Marshal | |
29 | var _ = fmt.Errorf | |
30 | var _ = math.Inf | |
31 | ||
32 | // This is a compile-time assertion to ensure that this generated file | |
33 | // is compatible with the proto package it is being compiled against. | |
34 | // A compilation error at this line likely means your copy of the | |
35 | // proto package needs to be updated. | |
36 | const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package | |
37 | ||
38 | type WireFormat int32 | |
39 | ||
40 | const ( | |
41 | WireFormat_UNSPECIFIED WireFormat = 0 | |
42 | WireFormat_PROTOBUF WireFormat = 1 | |
43 | WireFormat_JSON WireFormat = 2 | |
44 | ) | |
45 | ||
46 | var WireFormat_name = map[int32]string{ | |
47 | 0: "UNSPECIFIED", | |
48 | 1: "PROTOBUF", | |
49 | 2: "JSON", | |
50 | } | |
51 | var WireFormat_value = map[string]int32{ | |
52 | "UNSPECIFIED": 0, | |
53 | "PROTOBUF": 1, | |
54 | "JSON": 2, | |
55 | } | |
56 | ||
57 | func (x WireFormat) String() string { | |
58 | return proto.EnumName(WireFormat_name, int32(x)) | |
59 | } | |
60 | func (WireFormat) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } | |
61 | ||
62 | type ForeignEnum int32 | |
63 | ||
64 | const ( | |
65 | ForeignEnum_FOREIGN_FOO ForeignEnum = 0 | |
66 | ForeignEnum_FOREIGN_BAR ForeignEnum = 1 | |
67 | ForeignEnum_FOREIGN_BAZ ForeignEnum = 2 | |
68 | ) | |
69 | ||
70 | var ForeignEnum_name = map[int32]string{ | |
71 | 0: "FOREIGN_FOO", | |
72 | 1: "FOREIGN_BAR", | |
73 | 2: "FOREIGN_BAZ", | |
74 | } | |
75 | var ForeignEnum_value = map[string]int32{ | |
76 | "FOREIGN_FOO": 0, | |
77 | "FOREIGN_BAR": 1, | |
78 | "FOREIGN_BAZ": 2, | |
79 | } | |
80 | ||
81 | func (x ForeignEnum) String() string { | |
82 | return proto.EnumName(ForeignEnum_name, int32(x)) | |
83 | } | |
84 | func (ForeignEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } | |
85 | ||
86 | type TestAllTypes_NestedEnum int32 | |
87 | ||
88 | const ( | |
89 | TestAllTypes_FOO TestAllTypes_NestedEnum = 0 | |
90 | TestAllTypes_BAR TestAllTypes_NestedEnum = 1 | |
91 | TestAllTypes_BAZ TestAllTypes_NestedEnum = 2 | |
92 | TestAllTypes_NEG TestAllTypes_NestedEnum = -1 | |
93 | ) | |
94 | ||
95 | var TestAllTypes_NestedEnum_name = map[int32]string{ | |
96 | 0: "FOO", | |
97 | 1: "BAR", | |
98 | 2: "BAZ", | |
99 | -1: "NEG", | |
100 | } | |
101 | var TestAllTypes_NestedEnum_value = map[string]int32{ | |
102 | "FOO": 0, | |
103 | "BAR": 1, | |
104 | "BAZ": 2, | |
105 | "NEG": -1, | |
106 | } | |
107 | ||
108 | func (x TestAllTypes_NestedEnum) String() string { | |
109 | return proto.EnumName(TestAllTypes_NestedEnum_name, int32(x)) | |
110 | } | |
111 | func (TestAllTypes_NestedEnum) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} } | |
112 | ||
113 | // Represents a single test case's input. The testee should: | |
114 | // | |
115 | // 1. parse this proto (which should always succeed) | |
116 | // 2. parse the protobuf or JSON payload in "payload" (which may fail) | |
117 | // 3. if the parse succeeded, serialize the message in the requested format. | |
118 | type ConformanceRequest struct { | |
119 | // The payload (whether protobuf of JSON) is always for a TestAllTypes proto | |
120 | // (see below). | |
121 | // | |
122 | // Types that are valid to be assigned to Payload: | |
123 | // *ConformanceRequest_ProtobufPayload | |
124 | // *ConformanceRequest_JsonPayload | |
125 | Payload isConformanceRequest_Payload `protobuf_oneof:"payload"` | |
126 | // Which format should the testee serialize its message to? | |
127 | RequestedOutputFormat WireFormat `protobuf:"varint,3,opt,name=requested_output_format,json=requestedOutputFormat,enum=conformance.WireFormat" json:"requested_output_format,omitempty"` | |
128 | } | |
129 | ||
130 | func (m *ConformanceRequest) Reset() { *m = ConformanceRequest{} } | |
131 | func (m *ConformanceRequest) String() string { return proto.CompactTextString(m) } | |
132 | func (*ConformanceRequest) ProtoMessage() {} | |
133 | func (*ConformanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } | |
134 | ||
135 | type isConformanceRequest_Payload interface { | |
136 | isConformanceRequest_Payload() | |
137 | } | |
138 | ||
139 | type ConformanceRequest_ProtobufPayload struct { | |
140 | ProtobufPayload []byte `protobuf:"bytes,1,opt,name=protobuf_payload,json=protobufPayload,proto3,oneof"` | |
141 | } | |
142 | type ConformanceRequest_JsonPayload struct { | |
143 | JsonPayload string `protobuf:"bytes,2,opt,name=json_payload,json=jsonPayload,oneof"` | |
144 | } | |
145 | ||
146 | func (*ConformanceRequest_ProtobufPayload) isConformanceRequest_Payload() {} | |
147 | func (*ConformanceRequest_JsonPayload) isConformanceRequest_Payload() {} | |
148 | ||
149 | func (m *ConformanceRequest) GetPayload() isConformanceRequest_Payload { | |
150 | if m != nil { | |
151 | return m.Payload | |
152 | } | |
153 | return nil | |
154 | } | |
155 | ||
156 | func (m *ConformanceRequest) GetProtobufPayload() []byte { | |
157 | if x, ok := m.GetPayload().(*ConformanceRequest_ProtobufPayload); ok { | |
158 | return x.ProtobufPayload | |
159 | } | |
160 | return nil | |
161 | } | |
162 | ||
163 | func (m *ConformanceRequest) GetJsonPayload() string { | |
164 | if x, ok := m.GetPayload().(*ConformanceRequest_JsonPayload); ok { | |
165 | return x.JsonPayload | |
166 | } | |
167 | return "" | |
168 | } | |
169 | ||
170 | func (m *ConformanceRequest) GetRequestedOutputFormat() WireFormat { | |
171 | if m != nil { | |
172 | return m.RequestedOutputFormat | |
173 | } | |
174 | return WireFormat_UNSPECIFIED | |
175 | } | |
176 | ||
177 | // XXX_OneofFuncs is for the internal use of the proto package. | |
178 | func (*ConformanceRequest) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { | |
179 | return _ConformanceRequest_OneofMarshaler, _ConformanceRequest_OneofUnmarshaler, _ConformanceRequest_OneofSizer, []interface{}{ | |
180 | (*ConformanceRequest_ProtobufPayload)(nil), | |
181 | (*ConformanceRequest_JsonPayload)(nil), | |
182 | } | |
183 | } | |
184 | ||
185 | func _ConformanceRequest_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { | |
186 | m := msg.(*ConformanceRequest) | |
187 | // payload | |
188 | switch x := m.Payload.(type) { | |
189 | case *ConformanceRequest_ProtobufPayload: | |
190 | b.EncodeVarint(1<<3 | proto.WireBytes) | |
191 | b.EncodeRawBytes(x.ProtobufPayload) | |
192 | case *ConformanceRequest_JsonPayload: | |
193 | b.EncodeVarint(2<<3 | proto.WireBytes) | |
194 | b.EncodeStringBytes(x.JsonPayload) | |
195 | case nil: | |
196 | default: | |
197 | return fmt.Errorf("ConformanceRequest.Payload has unexpected type %T", x) | |
198 | } | |
199 | return nil | |
200 | } | |
201 | ||
202 | func _ConformanceRequest_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { | |
203 | m := msg.(*ConformanceRequest) | |
204 | switch tag { | |
205 | case 1: // payload.protobuf_payload | |
206 | if wire != proto.WireBytes { | |
207 | return true, proto.ErrInternalBadWireType | |
208 | } | |
209 | x, err := b.DecodeRawBytes(true) | |
210 | m.Payload = &ConformanceRequest_ProtobufPayload{x} | |
211 | return true, err | |
212 | case 2: // payload.json_payload | |
213 | if wire != proto.WireBytes { | |
214 | return true, proto.ErrInternalBadWireType | |
215 | } | |
216 | x, err := b.DecodeStringBytes() | |
217 | m.Payload = &ConformanceRequest_JsonPayload{x} | |
218 | return true, err | |
219 | default: | |
220 | return false, nil | |
221 | } | |
222 | } | |
223 | ||
224 | func _ConformanceRequest_OneofSizer(msg proto.Message) (n int) { | |
225 | m := msg.(*ConformanceRequest) | |
226 | // payload | |
227 | switch x := m.Payload.(type) { | |
228 | case *ConformanceRequest_ProtobufPayload: | |
229 | n += proto.SizeVarint(1<<3 | proto.WireBytes) | |
230 | n += proto.SizeVarint(uint64(len(x.ProtobufPayload))) | |
231 | n += len(x.ProtobufPayload) | |
232 | case *ConformanceRequest_JsonPayload: | |
233 | n += proto.SizeVarint(2<<3 | proto.WireBytes) | |
234 | n += proto.SizeVarint(uint64(len(x.JsonPayload))) | |
235 | n += len(x.JsonPayload) | |
236 | case nil: | |
237 | default: | |
238 | panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) | |
239 | } | |
240 | return n | |
241 | } | |
242 | ||
243 | // Represents a single test case's output. | |
244 | type ConformanceResponse struct { | |
245 | // Types that are valid to be assigned to Result: | |
246 | // *ConformanceResponse_ParseError | |
247 | // *ConformanceResponse_SerializeError | |
248 | // *ConformanceResponse_RuntimeError | |
249 | // *ConformanceResponse_ProtobufPayload | |
250 | // *ConformanceResponse_JsonPayload | |
251 | // *ConformanceResponse_Skipped | |
252 | Result isConformanceResponse_Result `protobuf_oneof:"result"` | |
253 | } | |
254 | ||
255 | func (m *ConformanceResponse) Reset() { *m = ConformanceResponse{} } | |
256 | func (m *ConformanceResponse) String() string { return proto.CompactTextString(m) } | |
257 | func (*ConformanceResponse) ProtoMessage() {} | |
258 | func (*ConformanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } | |
259 | ||
260 | type isConformanceResponse_Result interface { | |
261 | isConformanceResponse_Result() | |
262 | } | |
263 | ||
264 | type ConformanceResponse_ParseError struct { | |
265 | ParseError string `protobuf:"bytes,1,opt,name=parse_error,json=parseError,oneof"` | |
266 | } | |
267 | type ConformanceResponse_SerializeError struct { | |
268 | SerializeError string `protobuf:"bytes,6,opt,name=serialize_error,json=serializeError,oneof"` | |
269 | } | |
270 | type ConformanceResponse_RuntimeError struct { | |
271 | RuntimeError string `protobuf:"bytes,2,opt,name=runtime_error,json=runtimeError,oneof"` | |
272 | } | |
273 | type ConformanceResponse_ProtobufPayload struct { | |
274 | ProtobufPayload []byte `protobuf:"bytes,3,opt,name=protobuf_payload,json=protobufPayload,proto3,oneof"` | |
275 | } | |
276 | type ConformanceResponse_JsonPayload struct { | |
277 | JsonPayload string `protobuf:"bytes,4,opt,name=json_payload,json=jsonPayload,oneof"` | |
278 | } | |
279 | type ConformanceResponse_Skipped struct { | |
280 | Skipped string `protobuf:"bytes,5,opt,name=skipped,oneof"` | |
281 | } | |
282 | ||
283 | func (*ConformanceResponse_ParseError) isConformanceResponse_Result() {} | |
284 | func (*ConformanceResponse_SerializeError) isConformanceResponse_Result() {} | |
285 | func (*ConformanceResponse_RuntimeError) isConformanceResponse_Result() {} | |
286 | func (*ConformanceResponse_ProtobufPayload) isConformanceResponse_Result() {} | |
287 | func (*ConformanceResponse_JsonPayload) isConformanceResponse_Result() {} | |
288 | func (*ConformanceResponse_Skipped) isConformanceResponse_Result() {} | |
289 | ||
290 | func (m *ConformanceResponse) GetResult() isConformanceResponse_Result { | |
291 | if m != nil { | |
292 | return m.Result | |
293 | } | |
294 | return nil | |
295 | } | |
296 | ||
297 | func (m *ConformanceResponse) GetParseError() string { | |
298 | if x, ok := m.GetResult().(*ConformanceResponse_ParseError); ok { | |
299 | return x.ParseError | |
300 | } | |
301 | return "" | |
302 | } | |
303 | ||
304 | func (m *ConformanceResponse) GetSerializeError() string { | |
305 | if x, ok := m.GetResult().(*ConformanceResponse_SerializeError); ok { | |
306 | return x.SerializeError | |
307 | } | |
308 | return "" | |
309 | } | |
310 | ||
311 | func (m *ConformanceResponse) GetRuntimeError() string { | |
312 | if x, ok := m.GetResult().(*ConformanceResponse_RuntimeError); ok { | |
313 | return x.RuntimeError | |
314 | } | |
315 | return "" | |
316 | } | |
317 | ||
318 | func (m *ConformanceResponse) GetProtobufPayload() []byte { | |
319 | if x, ok := m.GetResult().(*ConformanceResponse_ProtobufPayload); ok { | |
320 | return x.ProtobufPayload | |
321 | } | |
322 | return nil | |
323 | } | |
324 | ||
325 | func (m *ConformanceResponse) GetJsonPayload() string { | |
326 | if x, ok := m.GetResult().(*ConformanceResponse_JsonPayload); ok { | |
327 | return x.JsonPayload | |
328 | } | |
329 | return "" | |
330 | } | |
331 | ||
332 | func (m *ConformanceResponse) GetSkipped() string { | |
333 | if x, ok := m.GetResult().(*ConformanceResponse_Skipped); ok { | |
334 | return x.Skipped | |
335 | } | |
336 | return "" | |
337 | } | |
338 | ||
339 | // XXX_OneofFuncs is for the internal use of the proto package. | |
340 | func (*ConformanceResponse) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { | |
341 | return _ConformanceResponse_OneofMarshaler, _ConformanceResponse_OneofUnmarshaler, _ConformanceResponse_OneofSizer, []interface{}{ | |
342 | (*ConformanceResponse_ParseError)(nil), | |
343 | (*ConformanceResponse_SerializeError)(nil), | |
344 | (*ConformanceResponse_RuntimeError)(nil), | |
345 | (*ConformanceResponse_ProtobufPayload)(nil), | |
346 | (*ConformanceResponse_JsonPayload)(nil), | |
347 | (*ConformanceResponse_Skipped)(nil), | |
348 | } | |
349 | } | |
350 | ||
351 | func _ConformanceResponse_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { | |
352 | m := msg.(*ConformanceResponse) | |
353 | // result | |
354 | switch x := m.Result.(type) { | |
355 | case *ConformanceResponse_ParseError: | |
356 | b.EncodeVarint(1<<3 | proto.WireBytes) | |
357 | b.EncodeStringBytes(x.ParseError) | |
358 | case *ConformanceResponse_SerializeError: | |
359 | b.EncodeVarint(6<<3 | proto.WireBytes) | |
360 | b.EncodeStringBytes(x.SerializeError) | |
361 | case *ConformanceResponse_RuntimeError: | |
362 | b.EncodeVarint(2<<3 | proto.WireBytes) | |
363 | b.EncodeStringBytes(x.RuntimeError) | |
364 | case *ConformanceResponse_ProtobufPayload: | |
365 | b.EncodeVarint(3<<3 | proto.WireBytes) | |
366 | b.EncodeRawBytes(x.ProtobufPayload) | |
367 | case *ConformanceResponse_JsonPayload: | |
368 | b.EncodeVarint(4<<3 | proto.WireBytes) | |
369 | b.EncodeStringBytes(x.JsonPayload) | |
370 | case *ConformanceResponse_Skipped: | |
371 | b.EncodeVarint(5<<3 | proto.WireBytes) | |
372 | b.EncodeStringBytes(x.Skipped) | |
373 | case nil: | |
374 | default: | |
375 | return fmt.Errorf("ConformanceResponse.Result has unexpected type %T", x) | |
376 | } | |
377 | return nil | |
378 | } | |
379 | ||
380 | func _ConformanceResponse_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { | |
381 | m := msg.(*ConformanceResponse) | |
382 | switch tag { | |
383 | case 1: // result.parse_error | |
384 | if wire != proto.WireBytes { | |
385 | return true, proto.ErrInternalBadWireType | |
386 | } | |
387 | x, err := b.DecodeStringBytes() | |
388 | m.Result = &ConformanceResponse_ParseError{x} | |
389 | return true, err | |
390 | case 6: // result.serialize_error | |
391 | if wire != proto.WireBytes { | |
392 | return true, proto.ErrInternalBadWireType | |
393 | } | |
394 | x, err := b.DecodeStringBytes() | |
395 | m.Result = &ConformanceResponse_SerializeError{x} | |
396 | return true, err | |
397 | case 2: // result.runtime_error | |
398 | if wire != proto.WireBytes { | |
399 | return true, proto.ErrInternalBadWireType | |
400 | } | |
401 | x, err := b.DecodeStringBytes() | |
402 | m.Result = &ConformanceResponse_RuntimeError{x} | |
403 | return true, err | |
404 | case 3: // result.protobuf_payload | |
405 | if wire != proto.WireBytes { | |
406 | return true, proto.ErrInternalBadWireType | |
407 | } | |
408 | x, err := b.DecodeRawBytes(true) | |
409 | m.Result = &ConformanceResponse_ProtobufPayload{x} | |
410 | return true, err | |
411 | case 4: // result.json_payload | |
412 | if wire != proto.WireBytes { | |
413 | return true, proto.ErrInternalBadWireType | |
414 | } | |
415 | x, err := b.DecodeStringBytes() | |
416 | m.Result = &ConformanceResponse_JsonPayload{x} | |
417 | return true, err | |
418 | case 5: // result.skipped | |
419 | if wire != proto.WireBytes { | |
420 | return true, proto.ErrInternalBadWireType | |
421 | } | |
422 | x, err := b.DecodeStringBytes() | |
423 | m.Result = &ConformanceResponse_Skipped{x} | |
424 | return true, err | |
425 | default: | |
426 | return false, nil | |
427 | } | |
428 | } | |
429 | ||
430 | func _ConformanceResponse_OneofSizer(msg proto.Message) (n int) { | |
431 | m := msg.(*ConformanceResponse) | |
432 | // result | |
433 | switch x := m.Result.(type) { | |
434 | case *ConformanceResponse_ParseError: | |
435 | n += proto.SizeVarint(1<<3 | proto.WireBytes) | |
436 | n += proto.SizeVarint(uint64(len(x.ParseError))) | |
437 | n += len(x.ParseError) | |
438 | case *ConformanceResponse_SerializeError: | |
439 | n += proto.SizeVarint(6<<3 | proto.WireBytes) | |
440 | n += proto.SizeVarint(uint64(len(x.SerializeError))) | |
441 | n += len(x.SerializeError) | |
442 | case *ConformanceResponse_RuntimeError: | |
443 | n += proto.SizeVarint(2<<3 | proto.WireBytes) | |
444 | n += proto.SizeVarint(uint64(len(x.RuntimeError))) | |
445 | n += len(x.RuntimeError) | |
446 | case *ConformanceResponse_ProtobufPayload: | |
447 | n += proto.SizeVarint(3<<3 | proto.WireBytes) | |
448 | n += proto.SizeVarint(uint64(len(x.ProtobufPayload))) | |
449 | n += len(x.ProtobufPayload) | |
450 | case *ConformanceResponse_JsonPayload: | |
451 | n += proto.SizeVarint(4<<3 | proto.WireBytes) | |
452 | n += proto.SizeVarint(uint64(len(x.JsonPayload))) | |
453 | n += len(x.JsonPayload) | |
454 | case *ConformanceResponse_Skipped: | |
455 | n += proto.SizeVarint(5<<3 | proto.WireBytes) | |
456 | n += proto.SizeVarint(uint64(len(x.Skipped))) | |
457 | n += len(x.Skipped) | |
458 | case nil: | |
459 | default: | |
460 | panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) | |
461 | } | |
462 | return n | |
463 | } | |
464 | ||
465 | // This proto includes every type of field in both singular and repeated | |
466 | // forms. | |
467 | type TestAllTypes struct { | |
468 | // Singular | |
469 | OptionalInt32 int32 `protobuf:"varint,1,opt,name=optional_int32,json=optionalInt32" json:"optional_int32,omitempty"` | |
470 | OptionalInt64 int64 `protobuf:"varint,2,opt,name=optional_int64,json=optionalInt64" json:"optional_int64,omitempty"` | |
471 | OptionalUint32 uint32 `protobuf:"varint,3,opt,name=optional_uint32,json=optionalUint32" json:"optional_uint32,omitempty"` | |
472 | OptionalUint64 uint64 `protobuf:"varint,4,opt,name=optional_uint64,json=optionalUint64" json:"optional_uint64,omitempty"` | |
473 | OptionalSint32 int32 `protobuf:"zigzag32,5,opt,name=optional_sint32,json=optionalSint32" json:"optional_sint32,omitempty"` | |
474 | OptionalSint64 int64 `protobuf:"zigzag64,6,opt,name=optional_sint64,json=optionalSint64" json:"optional_sint64,omitempty"` | |
475 | OptionalFixed32 uint32 `protobuf:"fixed32,7,opt,name=optional_fixed32,json=optionalFixed32" json:"optional_fixed32,omitempty"` | |
476 | OptionalFixed64 uint64 `protobuf:"fixed64,8,opt,name=optional_fixed64,json=optionalFixed64" json:"optional_fixed64,omitempty"` | |
477 | OptionalSfixed32 int32 `protobuf:"fixed32,9,opt,name=optional_sfixed32,json=optionalSfixed32" json:"optional_sfixed32,omitempty"` | |
478 | OptionalSfixed64 int64 `protobuf:"fixed64,10,opt,name=optional_sfixed64,json=optionalSfixed64" json:"optional_sfixed64,omitempty"` | |
479 | OptionalFloat float32 `protobuf:"fixed32,11,opt,name=optional_float,json=optionalFloat" json:"optional_float,omitempty"` | |
480 | OptionalDouble float64 `protobuf:"fixed64,12,opt,name=optional_double,json=optionalDouble" json:"optional_double,omitempty"` | |
481 | OptionalBool bool `protobuf:"varint,13,opt,name=optional_bool,json=optionalBool" json:"optional_bool,omitempty"` | |
482 | OptionalString string `protobuf:"bytes,14,opt,name=optional_string,json=optionalString" json:"optional_string,omitempty"` | |
483 | OptionalBytes []byte `protobuf:"bytes,15,opt,name=optional_bytes,json=optionalBytes,proto3" json:"optional_bytes,omitempty"` | |
484 | OptionalNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,18,opt,name=optional_nested_message,json=optionalNestedMessage" json:"optional_nested_message,omitempty"` | |
485 | OptionalForeignMessage *ForeignMessage `protobuf:"bytes,19,opt,name=optional_foreign_message,json=optionalForeignMessage" json:"optional_foreign_message,omitempty"` | |
486 | OptionalNestedEnum TestAllTypes_NestedEnum `protobuf:"varint,21,opt,name=optional_nested_enum,json=optionalNestedEnum,enum=conformance.TestAllTypes_NestedEnum" json:"optional_nested_enum,omitempty"` | |
487 | OptionalForeignEnum ForeignEnum `protobuf:"varint,22,opt,name=optional_foreign_enum,json=optionalForeignEnum,enum=conformance.ForeignEnum" json:"optional_foreign_enum,omitempty"` | |
488 | OptionalStringPiece string `protobuf:"bytes,24,opt,name=optional_string_piece,json=optionalStringPiece" json:"optional_string_piece,omitempty"` | |
489 | OptionalCord string `protobuf:"bytes,25,opt,name=optional_cord,json=optionalCord" json:"optional_cord,omitempty"` | |
490 | RecursiveMessage *TestAllTypes `protobuf:"bytes,27,opt,name=recursive_message,json=recursiveMessage" json:"recursive_message,omitempty"` | |
491 | // Repeated | |
492 | RepeatedInt32 []int32 `protobuf:"varint,31,rep,packed,name=repeated_int32,json=repeatedInt32" json:"repeated_int32,omitempty"` | |
493 | RepeatedInt64 []int64 `protobuf:"varint,32,rep,packed,name=repeated_int64,json=repeatedInt64" json:"repeated_int64,omitempty"` | |
494 | RepeatedUint32 []uint32 `protobuf:"varint,33,rep,packed,name=repeated_uint32,json=repeatedUint32" json:"repeated_uint32,omitempty"` | |
495 | RepeatedUint64 []uint64 `protobuf:"varint,34,rep,packed,name=repeated_uint64,json=repeatedUint64" json:"repeated_uint64,omitempty"` | |
496 | RepeatedSint32 []int32 `protobuf:"zigzag32,35,rep,packed,name=repeated_sint32,json=repeatedSint32" json:"repeated_sint32,omitempty"` | |
497 | RepeatedSint64 []int64 `protobuf:"zigzag64,36,rep,packed,name=repeated_sint64,json=repeatedSint64" json:"repeated_sint64,omitempty"` | |
498 | RepeatedFixed32 []uint32 `protobuf:"fixed32,37,rep,packed,name=repeated_fixed32,json=repeatedFixed32" json:"repeated_fixed32,omitempty"` | |
499 | RepeatedFixed64 []uint64 `protobuf:"fixed64,38,rep,packed,name=repeated_fixed64,json=repeatedFixed64" json:"repeated_fixed64,omitempty"` | |
500 | RepeatedSfixed32 []int32 `protobuf:"fixed32,39,rep,packed,name=repeated_sfixed32,json=repeatedSfixed32" json:"repeated_sfixed32,omitempty"` | |
501 | RepeatedSfixed64 []int64 `protobuf:"fixed64,40,rep,packed,name=repeated_sfixed64,json=repeatedSfixed64" json:"repeated_sfixed64,omitempty"` | |
502 | RepeatedFloat []float32 `protobuf:"fixed32,41,rep,packed,name=repeated_float,json=repeatedFloat" json:"repeated_float,omitempty"` | |
503 | RepeatedDouble []float64 `protobuf:"fixed64,42,rep,packed,name=repeated_double,json=repeatedDouble" json:"repeated_double,omitempty"` | |
504 | RepeatedBool []bool `protobuf:"varint,43,rep,packed,name=repeated_bool,json=repeatedBool" json:"repeated_bool,omitempty"` | |
505 | RepeatedString []string `protobuf:"bytes,44,rep,name=repeated_string,json=repeatedString" json:"repeated_string,omitempty"` | |
506 | RepeatedBytes [][]byte `protobuf:"bytes,45,rep,name=repeated_bytes,json=repeatedBytes,proto3" json:"repeated_bytes,omitempty"` | |
507 | RepeatedNestedMessage []*TestAllTypes_NestedMessage `protobuf:"bytes,48,rep,name=repeated_nested_message,json=repeatedNestedMessage" json:"repeated_nested_message,omitempty"` | |
508 | RepeatedForeignMessage []*ForeignMessage `protobuf:"bytes,49,rep,name=repeated_foreign_message,json=repeatedForeignMessage" json:"repeated_foreign_message,omitempty"` | |
509 | RepeatedNestedEnum []TestAllTypes_NestedEnum `protobuf:"varint,51,rep,packed,name=repeated_nested_enum,json=repeatedNestedEnum,enum=conformance.TestAllTypes_NestedEnum" json:"repeated_nested_enum,omitempty"` | |
510 | RepeatedForeignEnum []ForeignEnum `protobuf:"varint,52,rep,packed,name=repeated_foreign_enum,json=repeatedForeignEnum,enum=conformance.ForeignEnum" json:"repeated_foreign_enum,omitempty"` | |
511 | RepeatedStringPiece []string `protobuf:"bytes,54,rep,name=repeated_string_piece,json=repeatedStringPiece" json:"repeated_string_piece,omitempty"` | |
512 | RepeatedCord []string `protobuf:"bytes,55,rep,name=repeated_cord,json=repeatedCord" json:"repeated_cord,omitempty"` | |
513 | // Map | |
514 | MapInt32Int32 map[int32]int32 `protobuf:"bytes,56,rep,name=map_int32_int32,json=mapInt32Int32" json:"map_int32_int32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` | |
515 | MapInt64Int64 map[int64]int64 `protobuf:"bytes,57,rep,name=map_int64_int64,json=mapInt64Int64" json:"map_int64_int64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` | |
516 | MapUint32Uint32 map[uint32]uint32 `protobuf:"bytes,58,rep,name=map_uint32_uint32,json=mapUint32Uint32" json:"map_uint32_uint32,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` | |
517 | MapUint64Uint64 map[uint64]uint64 `protobuf:"bytes,59,rep,name=map_uint64_uint64,json=mapUint64Uint64" json:"map_uint64_uint64,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` | |
518 | MapSint32Sint32 map[int32]int32 `protobuf:"bytes,60,rep,name=map_sint32_sint32,json=mapSint32Sint32" json:"map_sint32_sint32,omitempty" protobuf_key:"zigzag32,1,opt,name=key" protobuf_val:"zigzag32,2,opt,name=value"` | |
519 | MapSint64Sint64 map[int64]int64 `protobuf:"bytes,61,rep,name=map_sint64_sint64,json=mapSint64Sint64" json:"map_sint64_sint64,omitempty" protobuf_key:"zigzag64,1,opt,name=key" protobuf_val:"zigzag64,2,opt,name=value"` | |
520 | MapFixed32Fixed32 map[uint32]uint32 `protobuf:"bytes,62,rep,name=map_fixed32_fixed32,json=mapFixed32Fixed32" json:"map_fixed32_fixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` | |
521 | MapFixed64Fixed64 map[uint64]uint64 `protobuf:"bytes,63,rep,name=map_fixed64_fixed64,json=mapFixed64Fixed64" json:"map_fixed64_fixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` | |
522 | MapSfixed32Sfixed32 map[int32]int32 `protobuf:"bytes,64,rep,name=map_sfixed32_sfixed32,json=mapSfixed32Sfixed32" json:"map_sfixed32_sfixed32,omitempty" protobuf_key:"fixed32,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` | |
523 | MapSfixed64Sfixed64 map[int64]int64 `protobuf:"bytes,65,rep,name=map_sfixed64_sfixed64,json=mapSfixed64Sfixed64" json:"map_sfixed64_sfixed64,omitempty" protobuf_key:"fixed64,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` | |
524 | MapInt32Float map[int32]float32 `protobuf:"bytes,66,rep,name=map_int32_float,json=mapInt32Float" json:"map_int32_float,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed32,2,opt,name=value"` | |
525 | MapInt32Double map[int32]float64 `protobuf:"bytes,67,rep,name=map_int32_double,json=mapInt32Double" json:"map_int32_double,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"fixed64,2,opt,name=value"` | |
526 | MapBoolBool map[bool]bool `protobuf:"bytes,68,rep,name=map_bool_bool,json=mapBoolBool" json:"map_bool_bool,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` | |
527 | MapStringString map[string]string `protobuf:"bytes,69,rep,name=map_string_string,json=mapStringString" json:"map_string_string,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` | |
528 | MapStringBytes map[string][]byte `protobuf:"bytes,70,rep,name=map_string_bytes,json=mapStringBytes" json:"map_string_bytes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value,proto3"` | |
529 | MapStringNestedMessage map[string]*TestAllTypes_NestedMessage `protobuf:"bytes,71,rep,name=map_string_nested_message,json=mapStringNestedMessage" json:"map_string_nested_message,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` | |
530 | MapStringForeignMessage map[string]*ForeignMessage `protobuf:"bytes,72,rep,name=map_string_foreign_message,json=mapStringForeignMessage" json:"map_string_foreign_message,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` | |
531 | MapStringNestedEnum map[string]TestAllTypes_NestedEnum `protobuf:"bytes,73,rep,name=map_string_nested_enum,json=mapStringNestedEnum" json:"map_string_nested_enum,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=conformance.TestAllTypes_NestedEnum"` | |
532 | MapStringForeignEnum map[string]ForeignEnum `protobuf:"bytes,74,rep,name=map_string_foreign_enum,json=mapStringForeignEnum" json:"map_string_foreign_enum,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value,enum=conformance.ForeignEnum"` | |
533 | // Types that are valid to be assigned to OneofField: | |
534 | // *TestAllTypes_OneofUint32 | |
535 | // *TestAllTypes_OneofNestedMessage | |
536 | // *TestAllTypes_OneofString | |
537 | // *TestAllTypes_OneofBytes | |
538 | // *TestAllTypes_OneofBool | |
539 | // *TestAllTypes_OneofUint64 | |
540 | // *TestAllTypes_OneofFloat | |
541 | // *TestAllTypes_OneofDouble | |
542 | // *TestAllTypes_OneofEnum | |
543 | OneofField isTestAllTypes_OneofField `protobuf_oneof:"oneof_field"` | |
544 | // Well-known types | |
545 | OptionalBoolWrapper *google_protobuf5.BoolValue `protobuf:"bytes,201,opt,name=optional_bool_wrapper,json=optionalBoolWrapper" json:"optional_bool_wrapper,omitempty"` | |
546 | OptionalInt32Wrapper *google_protobuf5.Int32Value `protobuf:"bytes,202,opt,name=optional_int32_wrapper,json=optionalInt32Wrapper" json:"optional_int32_wrapper,omitempty"` | |
547 | OptionalInt64Wrapper *google_protobuf5.Int64Value `protobuf:"bytes,203,opt,name=optional_int64_wrapper,json=optionalInt64Wrapper" json:"optional_int64_wrapper,omitempty"` | |
548 | OptionalUint32Wrapper *google_protobuf5.UInt32Value `protobuf:"bytes,204,opt,name=optional_uint32_wrapper,json=optionalUint32Wrapper" json:"optional_uint32_wrapper,omitempty"` | |
549 | OptionalUint64Wrapper *google_protobuf5.UInt64Value `protobuf:"bytes,205,opt,name=optional_uint64_wrapper,json=optionalUint64Wrapper" json:"optional_uint64_wrapper,omitempty"` | |
550 | OptionalFloatWrapper *google_protobuf5.FloatValue `protobuf:"bytes,206,opt,name=optional_float_wrapper,json=optionalFloatWrapper" json:"optional_float_wrapper,omitempty"` | |
551 | OptionalDoubleWrapper *google_protobuf5.DoubleValue `protobuf:"bytes,207,opt,name=optional_double_wrapper,json=optionalDoubleWrapper" json:"optional_double_wrapper,omitempty"` | |
552 | OptionalStringWrapper *google_protobuf5.StringValue `protobuf:"bytes,208,opt,name=optional_string_wrapper,json=optionalStringWrapper" json:"optional_string_wrapper,omitempty"` | |
553 | OptionalBytesWrapper *google_protobuf5.BytesValue `protobuf:"bytes,209,opt,name=optional_bytes_wrapper,json=optionalBytesWrapper" json:"optional_bytes_wrapper,omitempty"` | |
554 | RepeatedBoolWrapper []*google_protobuf5.BoolValue `protobuf:"bytes,211,rep,name=repeated_bool_wrapper,json=repeatedBoolWrapper" json:"repeated_bool_wrapper,omitempty"` | |
555 | RepeatedInt32Wrapper []*google_protobuf5.Int32Value `protobuf:"bytes,212,rep,name=repeated_int32_wrapper,json=repeatedInt32Wrapper" json:"repeated_int32_wrapper,omitempty"` | |
556 | RepeatedInt64Wrapper []*google_protobuf5.Int64Value `protobuf:"bytes,213,rep,name=repeated_int64_wrapper,json=repeatedInt64Wrapper" json:"repeated_int64_wrapper,omitempty"` | |
557 | RepeatedUint32Wrapper []*google_protobuf5.UInt32Value `protobuf:"bytes,214,rep,name=repeated_uint32_wrapper,json=repeatedUint32Wrapper" json:"repeated_uint32_wrapper,omitempty"` | |
558 | RepeatedUint64Wrapper []*google_protobuf5.UInt64Value `protobuf:"bytes,215,rep,name=repeated_uint64_wrapper,json=repeatedUint64Wrapper" json:"repeated_uint64_wrapper,omitempty"` | |
559 | RepeatedFloatWrapper []*google_protobuf5.FloatValue `protobuf:"bytes,216,rep,name=repeated_float_wrapper,json=repeatedFloatWrapper" json:"repeated_float_wrapper,omitempty"` | |
560 | RepeatedDoubleWrapper []*google_protobuf5.DoubleValue `protobuf:"bytes,217,rep,name=repeated_double_wrapper,json=repeatedDoubleWrapper" json:"repeated_double_wrapper,omitempty"` | |
561 | RepeatedStringWrapper []*google_protobuf5.StringValue `protobuf:"bytes,218,rep,name=repeated_string_wrapper,json=repeatedStringWrapper" json:"repeated_string_wrapper,omitempty"` | |
562 | RepeatedBytesWrapper []*google_protobuf5.BytesValue `protobuf:"bytes,219,rep,name=repeated_bytes_wrapper,json=repeatedBytesWrapper" json:"repeated_bytes_wrapper,omitempty"` | |
563 | OptionalDuration *google_protobuf1.Duration `protobuf:"bytes,301,opt,name=optional_duration,json=optionalDuration" json:"optional_duration,omitempty"` | |
564 | OptionalTimestamp *google_protobuf4.Timestamp `protobuf:"bytes,302,opt,name=optional_timestamp,json=optionalTimestamp" json:"optional_timestamp,omitempty"` | |
565 | OptionalFieldMask *google_protobuf2.FieldMask `protobuf:"bytes,303,opt,name=optional_field_mask,json=optionalFieldMask" json:"optional_field_mask,omitempty"` | |
566 | OptionalStruct *google_protobuf3.Struct `protobuf:"bytes,304,opt,name=optional_struct,json=optionalStruct" json:"optional_struct,omitempty"` | |
567 | OptionalAny *google_protobuf.Any `protobuf:"bytes,305,opt,name=optional_any,json=optionalAny" json:"optional_any,omitempty"` | |
568 | OptionalValue *google_protobuf3.Value `protobuf:"bytes,306,opt,name=optional_value,json=optionalValue" json:"optional_value,omitempty"` | |
569 | RepeatedDuration []*google_protobuf1.Duration `protobuf:"bytes,311,rep,name=repeated_duration,json=repeatedDuration" json:"repeated_duration,omitempty"` | |
570 | RepeatedTimestamp []*google_protobuf4.Timestamp `protobuf:"bytes,312,rep,name=repeated_timestamp,json=repeatedTimestamp" json:"repeated_timestamp,omitempty"` | |
571 | RepeatedFieldmask []*google_protobuf2.FieldMask `protobuf:"bytes,313,rep,name=repeated_fieldmask,json=repeatedFieldmask" json:"repeated_fieldmask,omitempty"` | |
572 | RepeatedStruct []*google_protobuf3.Struct `protobuf:"bytes,324,rep,name=repeated_struct,json=repeatedStruct" json:"repeated_struct,omitempty"` | |
573 | RepeatedAny []*google_protobuf.Any `protobuf:"bytes,315,rep,name=repeated_any,json=repeatedAny" json:"repeated_any,omitempty"` | |
574 | RepeatedValue []*google_protobuf3.Value `protobuf:"bytes,316,rep,name=repeated_value,json=repeatedValue" json:"repeated_value,omitempty"` | |
575 | // Test field-name-to-JSON-name convention. | |
576 | // (protobuf says names can be any valid C/C++ identifier.) | |
577 | Fieldname1 int32 `protobuf:"varint,401,opt,name=fieldname1" json:"fieldname1,omitempty"` | |
578 | FieldName2 int32 `protobuf:"varint,402,opt,name=field_name2,json=fieldName2" json:"field_name2,omitempty"` | |
579 | XFieldName3 int32 `protobuf:"varint,403,opt,name=_field_name3,json=FieldName3" json:"_field_name3,omitempty"` | |
580 | Field_Name4_ int32 `protobuf:"varint,404,opt,name=field__name4_,json=fieldName4" json:"field__name4_,omitempty"` | |
581 | Field0Name5 int32 `protobuf:"varint,405,opt,name=field0name5" json:"field0name5,omitempty"` | |
582 | Field_0Name6 int32 `protobuf:"varint,406,opt,name=field_0_name6,json=field0Name6" json:"field_0_name6,omitempty"` | |
583 | FieldName7 int32 `protobuf:"varint,407,opt,name=fieldName7" json:"fieldName7,omitempty"` | |
584 | FieldName8 int32 `protobuf:"varint,408,opt,name=FieldName8" json:"FieldName8,omitempty"` | |
585 | Field_Name9 int32 `protobuf:"varint,409,opt,name=field_Name9,json=fieldName9" json:"field_Name9,omitempty"` | |
586 | Field_Name10 int32 `protobuf:"varint,410,opt,name=Field_Name10,json=FieldName10" json:"Field_Name10,omitempty"` | |
587 | FIELD_NAME11 int32 `protobuf:"varint,411,opt,name=FIELD_NAME11,json=FIELDNAME11" json:"FIELD_NAME11,omitempty"` | |
588 | FIELDName12 int32 `protobuf:"varint,412,opt,name=FIELD_name12,json=FIELDName12" json:"FIELD_name12,omitempty"` | |
589 | XFieldName13 int32 `protobuf:"varint,413,opt,name=__field_name13,json=FieldName13" json:"__field_name13,omitempty"` | |
590 | X_FieldName14 int32 `protobuf:"varint,414,opt,name=__Field_name14,json=FieldName14" json:"__Field_name14,omitempty"` | |
591 | Field_Name15 int32 `protobuf:"varint,415,opt,name=field__name15,json=fieldName15" json:"field__name15,omitempty"` | |
592 | Field__Name16 int32 `protobuf:"varint,416,opt,name=field__Name16,json=fieldName16" json:"field__Name16,omitempty"` | |
593 | FieldName17__ int32 `protobuf:"varint,417,opt,name=field_name17__,json=fieldName17" json:"field_name17__,omitempty"` | |
594 | FieldName18__ int32 `protobuf:"varint,418,opt,name=Field_name18__,json=FieldName18" json:"Field_name18__,omitempty"` | |
595 | } | |
596 | ||
597 | func (m *TestAllTypes) Reset() { *m = TestAllTypes{} } | |
598 | func (m *TestAllTypes) String() string { return proto.CompactTextString(m) } | |
599 | func (*TestAllTypes) ProtoMessage() {} | |
600 | func (*TestAllTypes) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } | |
601 | ||
602 | type isTestAllTypes_OneofField interface { | |
603 | isTestAllTypes_OneofField() | |
604 | } | |
605 | ||
606 | type TestAllTypes_OneofUint32 struct { | |
607 | OneofUint32 uint32 `protobuf:"varint,111,opt,name=oneof_uint32,json=oneofUint32,oneof"` | |
608 | } | |
609 | type TestAllTypes_OneofNestedMessage struct { | |
610 | OneofNestedMessage *TestAllTypes_NestedMessage `protobuf:"bytes,112,opt,name=oneof_nested_message,json=oneofNestedMessage,oneof"` | |
611 | } | |
612 | type TestAllTypes_OneofString struct { | |
613 | OneofString string `protobuf:"bytes,113,opt,name=oneof_string,json=oneofString,oneof"` | |
614 | } | |
615 | type TestAllTypes_OneofBytes struct { | |
616 | OneofBytes []byte `protobuf:"bytes,114,opt,name=oneof_bytes,json=oneofBytes,proto3,oneof"` | |
617 | } | |
618 | type TestAllTypes_OneofBool struct { | |
619 | OneofBool bool `protobuf:"varint,115,opt,name=oneof_bool,json=oneofBool,oneof"` | |
620 | } | |
621 | type TestAllTypes_OneofUint64 struct { | |
622 | OneofUint64 uint64 `protobuf:"varint,116,opt,name=oneof_uint64,json=oneofUint64,oneof"` | |
623 | } | |
624 | type TestAllTypes_OneofFloat struct { | |
625 | OneofFloat float32 `protobuf:"fixed32,117,opt,name=oneof_float,json=oneofFloat,oneof"` | |
626 | } | |
627 | type TestAllTypes_OneofDouble struct { | |
628 | OneofDouble float64 `protobuf:"fixed64,118,opt,name=oneof_double,json=oneofDouble,oneof"` | |
629 | } | |
630 | type TestAllTypes_OneofEnum struct { | |
631 | OneofEnum TestAllTypes_NestedEnum `protobuf:"varint,119,opt,name=oneof_enum,json=oneofEnum,enum=conformance.TestAllTypes_NestedEnum,oneof"` | |
632 | } | |
633 | ||
634 | func (*TestAllTypes_OneofUint32) isTestAllTypes_OneofField() {} | |
635 | func (*TestAllTypes_OneofNestedMessage) isTestAllTypes_OneofField() {} | |
636 | func (*TestAllTypes_OneofString) isTestAllTypes_OneofField() {} | |
637 | func (*TestAllTypes_OneofBytes) isTestAllTypes_OneofField() {} | |
638 | func (*TestAllTypes_OneofBool) isTestAllTypes_OneofField() {} | |
639 | func (*TestAllTypes_OneofUint64) isTestAllTypes_OneofField() {} | |
640 | func (*TestAllTypes_OneofFloat) isTestAllTypes_OneofField() {} | |
641 | func (*TestAllTypes_OneofDouble) isTestAllTypes_OneofField() {} | |
642 | func (*TestAllTypes_OneofEnum) isTestAllTypes_OneofField() {} | |
643 | ||
644 | func (m *TestAllTypes) GetOneofField() isTestAllTypes_OneofField { | |
645 | if m != nil { | |
646 | return m.OneofField | |
647 | } | |
648 | return nil | |
649 | } | |
650 | ||
651 | func (m *TestAllTypes) GetOptionalInt32() int32 { | |
652 | if m != nil { | |
653 | return m.OptionalInt32 | |
654 | } | |
655 | return 0 | |
656 | } | |
657 | ||
658 | func (m *TestAllTypes) GetOptionalInt64() int64 { | |
659 | if m != nil { | |
660 | return m.OptionalInt64 | |
661 | } | |
662 | return 0 | |
663 | } | |
664 | ||
665 | func (m *TestAllTypes) GetOptionalUint32() uint32 { | |
666 | if m != nil { | |
667 | return m.OptionalUint32 | |
668 | } | |
669 | return 0 | |
670 | } | |
671 | ||
672 | func (m *TestAllTypes) GetOptionalUint64() uint64 { | |
673 | if m != nil { | |
674 | return m.OptionalUint64 | |
675 | } | |
676 | return 0 | |
677 | } | |
678 | ||
679 | func (m *TestAllTypes) GetOptionalSint32() int32 { | |
680 | if m != nil { | |
681 | return m.OptionalSint32 | |
682 | } | |
683 | return 0 | |
684 | } | |
685 | ||
686 | func (m *TestAllTypes) GetOptionalSint64() int64 { | |
687 | if m != nil { | |
688 | return m.OptionalSint64 | |
689 | } | |
690 | return 0 | |
691 | } | |
692 | ||
693 | func (m *TestAllTypes) GetOptionalFixed32() uint32 { | |
694 | if m != nil { | |
695 | return m.OptionalFixed32 | |
696 | } | |
697 | return 0 | |
698 | } | |
699 | ||
700 | func (m *TestAllTypes) GetOptionalFixed64() uint64 { | |
701 | if m != nil { | |
702 | return m.OptionalFixed64 | |
703 | } | |
704 | return 0 | |
705 | } | |
706 | ||
707 | func (m *TestAllTypes) GetOptionalSfixed32() int32 { | |
708 | if m != nil { | |
709 | return m.OptionalSfixed32 | |
710 | } | |
711 | return 0 | |
712 | } | |
713 | ||
714 | func (m *TestAllTypes) GetOptionalSfixed64() int64 { | |
715 | if m != nil { | |
716 | return m.OptionalSfixed64 | |
717 | } | |
718 | return 0 | |
719 | } | |
720 | ||
721 | func (m *TestAllTypes) GetOptionalFloat() float32 { | |
722 | if m != nil { | |
723 | return m.OptionalFloat | |
724 | } | |
725 | return 0 | |
726 | } | |
727 | ||
728 | func (m *TestAllTypes) GetOptionalDouble() float64 { | |
729 | if m != nil { | |
730 | return m.OptionalDouble | |
731 | } | |
732 | return 0 | |
733 | } | |
734 | ||
735 | func (m *TestAllTypes) GetOptionalBool() bool { | |
736 | if m != nil { | |
737 | return m.OptionalBool | |
738 | } | |
739 | return false | |
740 | } | |
741 | ||
742 | func (m *TestAllTypes) GetOptionalString() string { | |
743 | if m != nil { | |
744 | return m.OptionalString | |
745 | } | |
746 | return "" | |
747 | } | |
748 | ||
749 | func (m *TestAllTypes) GetOptionalBytes() []byte { | |
750 | if m != nil { | |
751 | return m.OptionalBytes | |
752 | } | |
753 | return nil | |
754 | } | |
755 | ||
756 | func (m *TestAllTypes) GetOptionalNestedMessage() *TestAllTypes_NestedMessage { | |
757 | if m != nil { | |
758 | return m.OptionalNestedMessage | |
759 | } | |
760 | return nil | |
761 | } | |
762 | ||
763 | func (m *TestAllTypes) GetOptionalForeignMessage() *ForeignMessage { | |
764 | if m != nil { | |
765 | return m.OptionalForeignMessage | |
766 | } | |
767 | return nil | |
768 | } | |
769 | ||
770 | func (m *TestAllTypes) GetOptionalNestedEnum() TestAllTypes_NestedEnum { | |
771 | if m != nil { | |
772 | return m.OptionalNestedEnum | |
773 | } | |
774 | return TestAllTypes_FOO | |
775 | } | |
776 | ||
777 | func (m *TestAllTypes) GetOptionalForeignEnum() ForeignEnum { | |
778 | if m != nil { | |
779 | return m.OptionalForeignEnum | |
780 | } | |
781 | return ForeignEnum_FOREIGN_FOO | |
782 | } | |
783 | ||
784 | func (m *TestAllTypes) GetOptionalStringPiece() string { | |
785 | if m != nil { | |
786 | return m.OptionalStringPiece | |
787 | } | |
788 | return "" | |
789 | } | |
790 | ||
791 | func (m *TestAllTypes) GetOptionalCord() string { | |
792 | if m != nil { | |
793 | return m.OptionalCord | |
794 | } | |
795 | return "" | |
796 | } | |
797 | ||
798 | func (m *TestAllTypes) GetRecursiveMessage() *TestAllTypes { | |
799 | if m != nil { | |
800 | return m.RecursiveMessage | |
801 | } | |
802 | return nil | |
803 | } | |
804 | ||
805 | func (m *TestAllTypes) GetRepeatedInt32() []int32 { | |
806 | if m != nil { | |
807 | return m.RepeatedInt32 | |
808 | } | |
809 | return nil | |
810 | } | |
811 | ||
812 | func (m *TestAllTypes) GetRepeatedInt64() []int64 { | |
813 | if m != nil { | |
814 | return m.RepeatedInt64 | |
815 | } | |
816 | return nil | |
817 | } | |
818 | ||
819 | func (m *TestAllTypes) GetRepeatedUint32() []uint32 { | |
820 | if m != nil { | |
821 | return m.RepeatedUint32 | |
822 | } | |
823 | return nil | |
824 | } | |
825 | ||
826 | func (m *TestAllTypes) GetRepeatedUint64() []uint64 { | |
827 | if m != nil { | |
828 | return m.RepeatedUint64 | |
829 | } | |
830 | return nil | |
831 | } | |
832 | ||
833 | func (m *TestAllTypes) GetRepeatedSint32() []int32 { | |
834 | if m != nil { | |
835 | return m.RepeatedSint32 | |
836 | } | |
837 | return nil | |
838 | } | |
839 | ||
840 | func (m *TestAllTypes) GetRepeatedSint64() []int64 { | |
841 | if m != nil { | |
842 | return m.RepeatedSint64 | |
843 | } | |
844 | return nil | |
845 | } | |
846 | ||
847 | func (m *TestAllTypes) GetRepeatedFixed32() []uint32 { | |
848 | if m != nil { | |
849 | return m.RepeatedFixed32 | |
850 | } | |
851 | return nil | |
852 | } | |
853 | ||
854 | func (m *TestAllTypes) GetRepeatedFixed64() []uint64 { | |
855 | if m != nil { | |
856 | return m.RepeatedFixed64 | |
857 | } | |
858 | return nil | |
859 | } | |
860 | ||
861 | func (m *TestAllTypes) GetRepeatedSfixed32() []int32 { | |
862 | if m != nil { | |
863 | return m.RepeatedSfixed32 | |
864 | } | |
865 | return nil | |
866 | } | |
867 | ||
868 | func (m *TestAllTypes) GetRepeatedSfixed64() []int64 { | |
869 | if m != nil { | |
870 | return m.RepeatedSfixed64 | |
871 | } | |
872 | return nil | |
873 | } | |
874 | ||
875 | func (m *TestAllTypes) GetRepeatedFloat() []float32 { | |
876 | if m != nil { | |
877 | return m.RepeatedFloat | |
878 | } | |
879 | return nil | |
880 | } | |
881 | ||
882 | func (m *TestAllTypes) GetRepeatedDouble() []float64 { | |
883 | if m != nil { | |
884 | return m.RepeatedDouble | |
885 | } | |
886 | return nil | |
887 | } | |
888 | ||
889 | func (m *TestAllTypes) GetRepeatedBool() []bool { | |
890 | if m != nil { | |
891 | return m.RepeatedBool | |
892 | } | |
893 | return nil | |
894 | } | |
895 | ||
896 | func (m *TestAllTypes) GetRepeatedString() []string { | |
897 | if m != nil { | |
898 | return m.RepeatedString | |
899 | } | |
900 | return nil | |
901 | } | |
902 | ||
903 | func (m *TestAllTypes) GetRepeatedBytes() [][]byte { | |
904 | if m != nil { | |
905 | return m.RepeatedBytes | |
906 | } | |
907 | return nil | |
908 | } | |
909 | ||
910 | func (m *TestAllTypes) GetRepeatedNestedMessage() []*TestAllTypes_NestedMessage { | |
911 | if m != nil { | |
912 | return m.RepeatedNestedMessage | |
913 | } | |
914 | return nil | |
915 | } | |
916 | ||
917 | func (m *TestAllTypes) GetRepeatedForeignMessage() []*ForeignMessage { | |
918 | if m != nil { | |
919 | return m.RepeatedForeignMessage | |
920 | } | |
921 | return nil | |
922 | } | |
923 | ||
924 | func (m *TestAllTypes) GetRepeatedNestedEnum() []TestAllTypes_NestedEnum { | |
925 | if m != nil { | |
926 | return m.RepeatedNestedEnum | |
927 | } | |
928 | return nil | |
929 | } | |
930 | ||
931 | func (m *TestAllTypes) GetRepeatedForeignEnum() []ForeignEnum { | |
932 | if m != nil { | |
933 | return m.RepeatedForeignEnum | |
934 | } | |
935 | return nil | |
936 | } | |
937 | ||
938 | func (m *TestAllTypes) GetRepeatedStringPiece() []string { | |
939 | if m != nil { | |
940 | return m.RepeatedStringPiece | |
941 | } | |
942 | return nil | |
943 | } | |
944 | ||
945 | func (m *TestAllTypes) GetRepeatedCord() []string { | |
946 | if m != nil { | |
947 | return m.RepeatedCord | |
948 | } | |
949 | return nil | |
950 | } | |
951 | ||
952 | func (m *TestAllTypes) GetMapInt32Int32() map[int32]int32 { | |
953 | if m != nil { | |
954 | return m.MapInt32Int32 | |
955 | } | |
956 | return nil | |
957 | } | |
958 | ||
959 | func (m *TestAllTypes) GetMapInt64Int64() map[int64]int64 { | |
960 | if m != nil { | |
961 | return m.MapInt64Int64 | |
962 | } | |
963 | return nil | |
964 | } | |
965 | ||
966 | func (m *TestAllTypes) GetMapUint32Uint32() map[uint32]uint32 { | |
967 | if m != nil { | |
968 | return m.MapUint32Uint32 | |
969 | } | |
970 | return nil | |
971 | } | |
972 | ||
973 | func (m *TestAllTypes) GetMapUint64Uint64() map[uint64]uint64 { | |
974 | if m != nil { | |
975 | return m.MapUint64Uint64 | |
976 | } | |
977 | return nil | |
978 | } | |
979 | ||
980 | func (m *TestAllTypes) GetMapSint32Sint32() map[int32]int32 { | |
981 | if m != nil { | |
982 | return m.MapSint32Sint32 | |
983 | } | |
984 | return nil | |
985 | } | |
986 | ||
987 | func (m *TestAllTypes) GetMapSint64Sint64() map[int64]int64 { | |
988 | if m != nil { | |
989 | return m.MapSint64Sint64 | |
990 | } | |
991 | return nil | |
992 | } | |
993 | ||
994 | func (m *TestAllTypes) GetMapFixed32Fixed32() map[uint32]uint32 { | |
995 | if m != nil { | |
996 | return m.MapFixed32Fixed32 | |
997 | } | |
998 | return nil | |
999 | } | |
1000 | ||
1001 | func (m *TestAllTypes) GetMapFixed64Fixed64() map[uint64]uint64 { | |
1002 | if m != nil { | |
1003 | return m.MapFixed64Fixed64 | |
1004 | } | |
1005 | return nil | |
1006 | } | |
1007 | ||
1008 | func (m *TestAllTypes) GetMapSfixed32Sfixed32() map[int32]int32 { | |
1009 | if m != nil { | |
1010 | return m.MapSfixed32Sfixed32 | |
1011 | } | |
1012 | return nil | |
1013 | } | |
1014 | ||
1015 | func (m *TestAllTypes) GetMapSfixed64Sfixed64() map[int64]int64 { | |
1016 | if m != nil { | |
1017 | return m.MapSfixed64Sfixed64 | |
1018 | } | |
1019 | return nil | |
1020 | } | |
1021 | ||
1022 | func (m *TestAllTypes) GetMapInt32Float() map[int32]float32 { | |
1023 | if m != nil { | |
1024 | return m.MapInt32Float | |
1025 | } | |
1026 | return nil | |
1027 | } | |
1028 | ||
1029 | func (m *TestAllTypes) GetMapInt32Double() map[int32]float64 { | |
1030 | if m != nil { | |
1031 | return m.MapInt32Double | |
1032 | } | |
1033 | return nil | |
1034 | } | |
1035 | ||
1036 | func (m *TestAllTypes) GetMapBoolBool() map[bool]bool { | |
1037 | if m != nil { | |
1038 | return m.MapBoolBool | |
1039 | } | |
1040 | return nil | |
1041 | } | |
1042 | ||
1043 | func (m *TestAllTypes) GetMapStringString() map[string]string { | |
1044 | if m != nil { | |
1045 | return m.MapStringString | |
1046 | } | |
1047 | return nil | |
1048 | } | |
1049 | ||
1050 | func (m *TestAllTypes) GetMapStringBytes() map[string][]byte { | |
1051 | if m != nil { | |
1052 | return m.MapStringBytes | |
1053 | } | |
1054 | return nil | |
1055 | } | |
1056 | ||
1057 | func (m *TestAllTypes) GetMapStringNestedMessage() map[string]*TestAllTypes_NestedMessage { | |
1058 | if m != nil { | |
1059 | return m.MapStringNestedMessage | |
1060 | } | |
1061 | return nil | |
1062 | } | |
1063 | ||
1064 | func (m *TestAllTypes) GetMapStringForeignMessage() map[string]*ForeignMessage { | |
1065 | if m != nil { | |
1066 | return m.MapStringForeignMessage | |
1067 | } | |
1068 | return nil | |
1069 | } | |
1070 | ||
1071 | func (m *TestAllTypes) GetMapStringNestedEnum() map[string]TestAllTypes_NestedEnum { | |
1072 | if m != nil { | |
1073 | return m.MapStringNestedEnum | |
1074 | } | |
1075 | return nil | |
1076 | } | |
1077 | ||
1078 | func (m *TestAllTypes) GetMapStringForeignEnum() map[string]ForeignEnum { | |
1079 | if m != nil { | |
1080 | return m.MapStringForeignEnum | |
1081 | } | |
1082 | return nil | |
1083 | } | |
1084 | ||
1085 | func (m *TestAllTypes) GetOneofUint32() uint32 { | |
1086 | if x, ok := m.GetOneofField().(*TestAllTypes_OneofUint32); ok { | |
1087 | return x.OneofUint32 | |
1088 | } | |
1089 | return 0 | |
1090 | } | |
1091 | ||
1092 | func (m *TestAllTypes) GetOneofNestedMessage() *TestAllTypes_NestedMessage { | |
1093 | if x, ok := m.GetOneofField().(*TestAllTypes_OneofNestedMessage); ok { | |
1094 | return x.OneofNestedMessage | |
1095 | } | |
1096 | return nil | |
1097 | } | |
1098 | ||
1099 | func (m *TestAllTypes) GetOneofString() string { | |
1100 | if x, ok := m.GetOneofField().(*TestAllTypes_OneofString); ok { | |
1101 | return x.OneofString | |
1102 | } | |
1103 | return "" | |
1104 | } | |
1105 | ||
1106 | func (m *TestAllTypes) GetOneofBytes() []byte { | |
1107 | if x, ok := m.GetOneofField().(*TestAllTypes_OneofBytes); ok { | |
1108 | return x.OneofBytes | |
1109 | } | |
1110 | return nil | |
1111 | } | |
1112 | ||
1113 | func (m *TestAllTypes) GetOneofBool() bool { | |
1114 | if x, ok := m.GetOneofField().(*TestAllTypes_OneofBool); ok { | |
1115 | return x.OneofBool | |
1116 | } | |
1117 | return false | |
1118 | } | |
1119 | ||
1120 | func (m *TestAllTypes) GetOneofUint64() uint64 { | |
1121 | if x, ok := m.GetOneofField().(*TestAllTypes_OneofUint64); ok { | |
1122 | return x.OneofUint64 | |
1123 | } | |
1124 | return 0 | |
1125 | } | |
1126 | ||
1127 | func (m *TestAllTypes) GetOneofFloat() float32 { | |
1128 | if x, ok := m.GetOneofField().(*TestAllTypes_OneofFloat); ok { | |
1129 | return x.OneofFloat | |
1130 | } | |
1131 | return 0 | |
1132 | } | |
1133 | ||
1134 | func (m *TestAllTypes) GetOneofDouble() float64 { | |
1135 | if x, ok := m.GetOneofField().(*TestAllTypes_OneofDouble); ok { | |
1136 | return x.OneofDouble | |
1137 | } | |
1138 | return 0 | |
1139 | } | |
1140 | ||
1141 | func (m *TestAllTypes) GetOneofEnum() TestAllTypes_NestedEnum { | |
1142 | if x, ok := m.GetOneofField().(*TestAllTypes_OneofEnum); ok { | |
1143 | return x.OneofEnum | |
1144 | } | |
1145 | return TestAllTypes_FOO | |
1146 | } | |
1147 | ||
1148 | func (m *TestAllTypes) GetOptionalBoolWrapper() *google_protobuf5.BoolValue { | |
1149 | if m != nil { | |
1150 | return m.OptionalBoolWrapper | |
1151 | } | |
1152 | return nil | |
1153 | } | |
1154 | ||
1155 | func (m *TestAllTypes) GetOptionalInt32Wrapper() *google_protobuf5.Int32Value { | |
1156 | if m != nil { | |
1157 | return m.OptionalInt32Wrapper | |
1158 | } | |
1159 | return nil | |
1160 | } | |
1161 | ||
1162 | func (m *TestAllTypes) GetOptionalInt64Wrapper() *google_protobuf5.Int64Value { | |
1163 | if m != nil { | |
1164 | return m.OptionalInt64Wrapper | |
1165 | } | |
1166 | return nil | |
1167 | } | |
1168 | ||
1169 | func (m *TestAllTypes) GetOptionalUint32Wrapper() *google_protobuf5.UInt32Value { | |
1170 | if m != nil { | |
1171 | return m.OptionalUint32Wrapper | |
1172 | } | |
1173 | return nil | |
1174 | } | |
1175 | ||
1176 | func (m *TestAllTypes) GetOptionalUint64Wrapper() *google_protobuf5.UInt64Value { | |
1177 | if m != nil { | |
1178 | return m.OptionalUint64Wrapper | |
1179 | } | |
1180 | return nil | |
1181 | } | |
1182 | ||
1183 | func (m *TestAllTypes) GetOptionalFloatWrapper() *google_protobuf5.FloatValue { | |
1184 | if m != nil { | |
1185 | return m.OptionalFloatWrapper | |
1186 | } | |
1187 | return nil | |
1188 | } | |
1189 | ||
1190 | func (m *TestAllTypes) GetOptionalDoubleWrapper() *google_protobuf5.DoubleValue { | |
1191 | if m != nil { | |
1192 | return m.OptionalDoubleWrapper | |
1193 | } | |
1194 | return nil | |
1195 | } | |
1196 | ||
1197 | func (m *TestAllTypes) GetOptionalStringWrapper() *google_protobuf5.StringValue { | |
1198 | if m != nil { | |
1199 | return m.OptionalStringWrapper | |
1200 | } | |
1201 | return nil | |
1202 | } | |
1203 | ||
1204 | func (m *TestAllTypes) GetOptionalBytesWrapper() *google_protobuf5.BytesValue { | |
1205 | if m != nil { | |
1206 | return m.OptionalBytesWrapper | |
1207 | } | |
1208 | return nil | |
1209 | } | |
1210 | ||
1211 | func (m *TestAllTypes) GetRepeatedBoolWrapper() []*google_protobuf5.BoolValue { | |
1212 | if m != nil { | |
1213 | return m.RepeatedBoolWrapper | |
1214 | } | |
1215 | return nil | |
1216 | } | |
1217 | ||
1218 | func (m *TestAllTypes) GetRepeatedInt32Wrapper() []*google_protobuf5.Int32Value { | |
1219 | if m != nil { | |
1220 | return m.RepeatedInt32Wrapper | |
1221 | } | |
1222 | return nil | |
1223 | } | |
1224 | ||
1225 | func (m *TestAllTypes) GetRepeatedInt64Wrapper() []*google_protobuf5.Int64Value { | |
1226 | if m != nil { | |
1227 | return m.RepeatedInt64Wrapper | |
1228 | } | |
1229 | return nil | |
1230 | } | |
1231 | ||
1232 | func (m *TestAllTypes) GetRepeatedUint32Wrapper() []*google_protobuf5.UInt32Value { | |
1233 | if m != nil { | |
1234 | return m.RepeatedUint32Wrapper | |
1235 | } | |
1236 | return nil | |
1237 | } | |
1238 | ||
1239 | func (m *TestAllTypes) GetRepeatedUint64Wrapper() []*google_protobuf5.UInt64Value { | |
1240 | if m != nil { | |
1241 | return m.RepeatedUint64Wrapper | |
1242 | } | |
1243 | return nil | |
1244 | } | |
1245 | ||
1246 | func (m *TestAllTypes) GetRepeatedFloatWrapper() []*google_protobuf5.FloatValue { | |
1247 | if m != nil { | |
1248 | return m.RepeatedFloatWrapper | |
1249 | } | |
1250 | return nil | |
1251 | } | |
1252 | ||
1253 | func (m *TestAllTypes) GetRepeatedDoubleWrapper() []*google_protobuf5.DoubleValue { | |
1254 | if m != nil { | |
1255 | return m.RepeatedDoubleWrapper | |
1256 | } | |
1257 | return nil | |
1258 | } | |
1259 | ||
1260 | func (m *TestAllTypes) GetRepeatedStringWrapper() []*google_protobuf5.StringValue { | |
1261 | if m != nil { | |
1262 | return m.RepeatedStringWrapper | |
1263 | } | |
1264 | return nil | |
1265 | } | |
1266 | ||
1267 | func (m *TestAllTypes) GetRepeatedBytesWrapper() []*google_protobuf5.BytesValue { | |
1268 | if m != nil { | |
1269 | return m.RepeatedBytesWrapper | |
1270 | } | |
1271 | return nil | |
1272 | } | |
1273 | ||
1274 | func (m *TestAllTypes) GetOptionalDuration() *google_protobuf1.Duration { | |
1275 | if m != nil { | |
1276 | return m.OptionalDuration | |
1277 | } | |
1278 | return nil | |
1279 | } | |
1280 | ||
1281 | func (m *TestAllTypes) GetOptionalTimestamp() *google_protobuf4.Timestamp { | |
1282 | if m != nil { | |
1283 | return m.OptionalTimestamp | |
1284 | } | |
1285 | return nil | |
1286 | } | |
1287 | ||
1288 | func (m *TestAllTypes) GetOptionalFieldMask() *google_protobuf2.FieldMask { | |
1289 | if m != nil { | |
1290 | return m.OptionalFieldMask | |
1291 | } | |
1292 | return nil | |
1293 | } | |
1294 | ||
1295 | func (m *TestAllTypes) GetOptionalStruct() *google_protobuf3.Struct { | |
1296 | if m != nil { | |
1297 | return m.OptionalStruct | |
1298 | } | |
1299 | return nil | |
1300 | } | |
1301 | ||
1302 | func (m *TestAllTypes) GetOptionalAny() *google_protobuf.Any { | |
1303 | if m != nil { | |
1304 | return m.OptionalAny | |
1305 | } | |
1306 | return nil | |
1307 | } | |
1308 | ||
1309 | func (m *TestAllTypes) GetOptionalValue() *google_protobuf3.Value { | |
1310 | if m != nil { | |
1311 | return m.OptionalValue | |
1312 | } | |
1313 | return nil | |
1314 | } | |
1315 | ||
1316 | func (m *TestAllTypes) GetRepeatedDuration() []*google_protobuf1.Duration { | |
1317 | if m != nil { | |
1318 | return m.RepeatedDuration | |
1319 | } | |
1320 | return nil | |
1321 | } | |
1322 | ||
1323 | func (m *TestAllTypes) GetRepeatedTimestamp() []*google_protobuf4.Timestamp { | |
1324 | if m != nil { | |
1325 | return m.RepeatedTimestamp | |
1326 | } | |
1327 | return nil | |
1328 | } | |
1329 | ||
1330 | func (m *TestAllTypes) GetRepeatedFieldmask() []*google_protobuf2.FieldMask { | |
1331 | if m != nil { | |
1332 | return m.RepeatedFieldmask | |
1333 | } | |
1334 | return nil | |
1335 | } | |
1336 | ||
1337 | func (m *TestAllTypes) GetRepeatedStruct() []*google_protobuf3.Struct { | |
1338 | if m != nil { | |
1339 | return m.RepeatedStruct | |
1340 | } | |
1341 | return nil | |
1342 | } | |
1343 | ||
1344 | func (m *TestAllTypes) GetRepeatedAny() []*google_protobuf.Any { | |
1345 | if m != nil { | |
1346 | return m.RepeatedAny | |
1347 | } | |
1348 | return nil | |
1349 | } | |
1350 | ||
1351 | func (m *TestAllTypes) GetRepeatedValue() []*google_protobuf3.Value { | |
1352 | if m != nil { | |
1353 | return m.RepeatedValue | |
1354 | } | |
1355 | return nil | |
1356 | } | |
1357 | ||
1358 | func (m *TestAllTypes) GetFieldname1() int32 { | |
1359 | if m != nil { | |
1360 | return m.Fieldname1 | |
1361 | } | |
1362 | return 0 | |
1363 | } | |
1364 | ||
1365 | func (m *TestAllTypes) GetFieldName2() int32 { | |
1366 | if m != nil { | |
1367 | return m.FieldName2 | |
1368 | } | |
1369 | return 0 | |
1370 | } | |
1371 | ||
1372 | func (m *TestAllTypes) GetXFieldName3() int32 { | |
1373 | if m != nil { | |
1374 | return m.XFieldName3 | |
1375 | } | |
1376 | return 0 | |
1377 | } | |
1378 | ||
1379 | func (m *TestAllTypes) GetField_Name4_() int32 { | |
1380 | if m != nil { | |
1381 | return m.Field_Name4_ | |
1382 | } | |
1383 | return 0 | |
1384 | } | |
1385 | ||
1386 | func (m *TestAllTypes) GetField0Name5() int32 { | |
1387 | if m != nil { | |
1388 | return m.Field0Name5 | |
1389 | } | |
1390 | return 0 | |
1391 | } | |
1392 | ||
1393 | func (m *TestAllTypes) GetField_0Name6() int32 { | |
1394 | if m != nil { | |
1395 | return m.Field_0Name6 | |
1396 | } | |
1397 | return 0 | |
1398 | } | |
1399 | ||
1400 | func (m *TestAllTypes) GetFieldName7() int32 { | |
1401 | if m != nil { | |
1402 | return m.FieldName7 | |
1403 | } | |
1404 | return 0 | |
1405 | } | |
1406 | ||
1407 | func (m *TestAllTypes) GetFieldName8() int32 { | |
1408 | if m != nil { | |
1409 | return m.FieldName8 | |
1410 | } | |
1411 | return 0 | |
1412 | } | |
1413 | ||
1414 | func (m *TestAllTypes) GetField_Name9() int32 { | |
1415 | if m != nil { | |
1416 | return m.Field_Name9 | |
1417 | } | |
1418 | return 0 | |
1419 | } | |
1420 | ||
1421 | func (m *TestAllTypes) GetField_Name10() int32 { | |
1422 | if m != nil { | |
1423 | return m.Field_Name10 | |
1424 | } | |
1425 | return 0 | |
1426 | } | |
1427 | ||
1428 | func (m *TestAllTypes) GetFIELD_NAME11() int32 { | |
1429 | if m != nil { | |
1430 | return m.FIELD_NAME11 | |
1431 | } | |
1432 | return 0 | |
1433 | } | |
1434 | ||
1435 | func (m *TestAllTypes) GetFIELDName12() int32 { | |
1436 | if m != nil { | |
1437 | return m.FIELDName12 | |
1438 | } | |
1439 | return 0 | |
1440 | } | |
1441 | ||
1442 | func (m *TestAllTypes) GetXFieldName13() int32 { | |
1443 | if m != nil { | |
1444 | return m.XFieldName13 | |
1445 | } | |
1446 | return 0 | |
1447 | } | |
1448 | ||
1449 | func (m *TestAllTypes) GetX_FieldName14() int32 { | |
1450 | if m != nil { | |
1451 | return m.X_FieldName14 | |
1452 | } | |
1453 | return 0 | |
1454 | } | |
1455 | ||
1456 | func (m *TestAllTypes) GetField_Name15() int32 { | |
1457 | if m != nil { | |
1458 | return m.Field_Name15 | |
1459 | } | |
1460 | return 0 | |
1461 | } | |
1462 | ||
1463 | func (m *TestAllTypes) GetField__Name16() int32 { | |
1464 | if m != nil { | |
1465 | return m.Field__Name16 | |
1466 | } | |
1467 | return 0 | |
1468 | } | |
1469 | ||
1470 | func (m *TestAllTypes) GetFieldName17__() int32 { | |
1471 | if m != nil { | |
1472 | return m.FieldName17__ | |
1473 | } | |
1474 | return 0 | |
1475 | } | |
1476 | ||
1477 | func (m *TestAllTypes) GetFieldName18__() int32 { | |
1478 | if m != nil { | |
1479 | return m.FieldName18__ | |
1480 | } | |
1481 | return 0 | |
1482 | } | |
1483 | ||
1484 | // XXX_OneofFuncs is for the internal use of the proto package. | |
1485 | func (*TestAllTypes) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { | |
1486 | return _TestAllTypes_OneofMarshaler, _TestAllTypes_OneofUnmarshaler, _TestAllTypes_OneofSizer, []interface{}{ | |
1487 | (*TestAllTypes_OneofUint32)(nil), | |
1488 | (*TestAllTypes_OneofNestedMessage)(nil), | |
1489 | (*TestAllTypes_OneofString)(nil), | |
1490 | (*TestAllTypes_OneofBytes)(nil), | |
1491 | (*TestAllTypes_OneofBool)(nil), | |
1492 | (*TestAllTypes_OneofUint64)(nil), | |
1493 | (*TestAllTypes_OneofFloat)(nil), | |
1494 | (*TestAllTypes_OneofDouble)(nil), | |
1495 | (*TestAllTypes_OneofEnum)(nil), | |
1496 | } | |
1497 | } | |
1498 | ||
1499 | func _TestAllTypes_OneofMarshaler(msg proto.Message, b *proto.Buffer) error { | |
1500 | m := msg.(*TestAllTypes) | |
1501 | // oneof_field | |
1502 | switch x := m.OneofField.(type) { | |
1503 | case *TestAllTypes_OneofUint32: | |
1504 | b.EncodeVarint(111<<3 | proto.WireVarint) | |
1505 | b.EncodeVarint(uint64(x.OneofUint32)) | |
1506 | case *TestAllTypes_OneofNestedMessage: | |
1507 | b.EncodeVarint(112<<3 | proto.WireBytes) | |
1508 | if err := b.EncodeMessage(x.OneofNestedMessage); err != nil { | |
1509 | return err | |
1510 | } | |
1511 | case *TestAllTypes_OneofString: | |
1512 | b.EncodeVarint(113<<3 | proto.WireBytes) | |
1513 | b.EncodeStringBytes(x.OneofString) | |
1514 | case *TestAllTypes_OneofBytes: | |
1515 | b.EncodeVarint(114<<3 | proto.WireBytes) | |
1516 | b.EncodeRawBytes(x.OneofBytes) | |
1517 | case *TestAllTypes_OneofBool: | |
1518 | t := uint64(0) | |
1519 | if x.OneofBool { | |
1520 | t = 1 | |
1521 | } | |
1522 | b.EncodeVarint(115<<3 | proto.WireVarint) | |
1523 | b.EncodeVarint(t) | |
1524 | case *TestAllTypes_OneofUint64: | |
1525 | b.EncodeVarint(116<<3 | proto.WireVarint) | |
1526 | b.EncodeVarint(uint64(x.OneofUint64)) | |
1527 | case *TestAllTypes_OneofFloat: | |
1528 | b.EncodeVarint(117<<3 | proto.WireFixed32) | |
1529 | b.EncodeFixed32(uint64(math.Float32bits(x.OneofFloat))) | |
1530 | case *TestAllTypes_OneofDouble: | |
1531 | b.EncodeVarint(118<<3 | proto.WireFixed64) | |
1532 | b.EncodeFixed64(math.Float64bits(x.OneofDouble)) | |
1533 | case *TestAllTypes_OneofEnum: | |
1534 | b.EncodeVarint(119<<3 | proto.WireVarint) | |
1535 | b.EncodeVarint(uint64(x.OneofEnum)) | |
1536 | case nil: | |
1537 | default: | |
1538 | return fmt.Errorf("TestAllTypes.OneofField has unexpected type %T", x) | |
1539 | } | |
1540 | return nil | |
1541 | } | |
1542 | ||
1543 | func _TestAllTypes_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { | |
1544 | m := msg.(*TestAllTypes) | |
1545 | switch tag { | |
1546 | case 111: // oneof_field.oneof_uint32 | |
1547 | if wire != proto.WireVarint { | |
1548 | return true, proto.ErrInternalBadWireType | |
1549 | } | |
1550 | x, err := b.DecodeVarint() | |
1551 | m.OneofField = &TestAllTypes_OneofUint32{uint32(x)} | |
1552 | return true, err | |
1553 | case 112: // oneof_field.oneof_nested_message | |
1554 | if wire != proto.WireBytes { | |
1555 | return true, proto.ErrInternalBadWireType | |
1556 | } | |
1557 | msg := new(TestAllTypes_NestedMessage) | |
1558 | err := b.DecodeMessage(msg) | |
1559 | m.OneofField = &TestAllTypes_OneofNestedMessage{msg} | |
1560 | return true, err | |
1561 | case 113: // oneof_field.oneof_string | |
1562 | if wire != proto.WireBytes { | |
1563 | return true, proto.ErrInternalBadWireType | |
1564 | } | |
1565 | x, err := b.DecodeStringBytes() | |
1566 | m.OneofField = &TestAllTypes_OneofString{x} | |
1567 | return true, err | |
1568 | case 114: // oneof_field.oneof_bytes | |
1569 | if wire != proto.WireBytes { | |
1570 | return true, proto.ErrInternalBadWireType | |
1571 | } | |
1572 | x, err := b.DecodeRawBytes(true) | |
1573 | m.OneofField = &TestAllTypes_OneofBytes{x} | |
1574 | return true, err | |
1575 | case 115: // oneof_field.oneof_bool | |
1576 | if wire != proto.WireVarint { | |
1577 | return true, proto.ErrInternalBadWireType | |
1578 | } | |
1579 | x, err := b.DecodeVarint() | |
1580 | m.OneofField = &TestAllTypes_OneofBool{x != 0} | |
1581 | return true, err | |
1582 | case 116: // oneof_field.oneof_uint64 | |
1583 | if wire != proto.WireVarint { | |
1584 | return true, proto.ErrInternalBadWireType | |
1585 | } | |
1586 | x, err := b.DecodeVarint() | |
1587 | m.OneofField = &TestAllTypes_OneofUint64{x} | |
1588 | return true, err | |
1589 | case 117: // oneof_field.oneof_float | |
1590 | if wire != proto.WireFixed32 { | |
1591 | return true, proto.ErrInternalBadWireType | |
1592 | } | |
1593 | x, err := b.DecodeFixed32() | |
1594 | m.OneofField = &TestAllTypes_OneofFloat{math.Float32frombits(uint32(x))} | |
1595 | return true, err | |
1596 | case 118: // oneof_field.oneof_double | |
1597 | if wire != proto.WireFixed64 { | |
1598 | return true, proto.ErrInternalBadWireType | |
1599 | } | |
1600 | x, err := b.DecodeFixed64() | |
1601 | m.OneofField = &TestAllTypes_OneofDouble{math.Float64frombits(x)} | |
1602 | return true, err | |
1603 | case 119: // oneof_field.oneof_enum | |
1604 | if wire != proto.WireVarint { | |
1605 | return true, proto.ErrInternalBadWireType | |
1606 | } | |
1607 | x, err := b.DecodeVarint() | |
1608 | m.OneofField = &TestAllTypes_OneofEnum{TestAllTypes_NestedEnum(x)} | |
1609 | return true, err | |
1610 | default: | |
1611 | return false, nil | |
1612 | } | |
1613 | } | |
1614 | ||
1615 | func _TestAllTypes_OneofSizer(msg proto.Message) (n int) { | |
1616 | m := msg.(*TestAllTypes) | |
1617 | // oneof_field | |
1618 | switch x := m.OneofField.(type) { | |
1619 | case *TestAllTypes_OneofUint32: | |
1620 | n += proto.SizeVarint(111<<3 | proto.WireVarint) | |
1621 | n += proto.SizeVarint(uint64(x.OneofUint32)) | |
1622 | case *TestAllTypes_OneofNestedMessage: | |
1623 | s := proto.Size(x.OneofNestedMessage) | |
1624 | n += proto.SizeVarint(112<<3 | proto.WireBytes) | |
1625 | n += proto.SizeVarint(uint64(s)) | |
1626 | n += s | |
1627 | case *TestAllTypes_OneofString: | |
1628 | n += proto.SizeVarint(113<<3 | proto.WireBytes) | |
1629 | n += proto.SizeVarint(uint64(len(x.OneofString))) | |
1630 | n += len(x.OneofString) | |
1631 | case *TestAllTypes_OneofBytes: | |
1632 | n += proto.SizeVarint(114<<3 | proto.WireBytes) | |
1633 | n += proto.SizeVarint(uint64(len(x.OneofBytes))) | |
1634 | n += len(x.OneofBytes) | |
1635 | case *TestAllTypes_OneofBool: | |
1636 | n += proto.SizeVarint(115<<3 | proto.WireVarint) | |
1637 | n += 1 | |
1638 | case *TestAllTypes_OneofUint64: | |
1639 | n += proto.SizeVarint(116<<3 | proto.WireVarint) | |
1640 | n += proto.SizeVarint(uint64(x.OneofUint64)) | |
1641 | case *TestAllTypes_OneofFloat: | |
1642 | n += proto.SizeVarint(117<<3 | proto.WireFixed32) | |
1643 | n += 4 | |
1644 | case *TestAllTypes_OneofDouble: | |
1645 | n += proto.SizeVarint(118<<3 | proto.WireFixed64) | |
1646 | n += 8 | |
1647 | case *TestAllTypes_OneofEnum: | |
1648 | n += proto.SizeVarint(119<<3 | proto.WireVarint) | |
1649 | n += proto.SizeVarint(uint64(x.OneofEnum)) | |
1650 | case nil: | |
1651 | default: | |
1652 | panic(fmt.Sprintf("proto: unexpected type %T in oneof", x)) | |
1653 | } | |
1654 | return n | |
1655 | } | |
1656 | ||
1657 | type TestAllTypes_NestedMessage struct { | |
1658 | A int32 `protobuf:"varint,1,opt,name=a" json:"a,omitempty"` | |
1659 | Corecursive *TestAllTypes `protobuf:"bytes,2,opt,name=corecursive" json:"corecursive,omitempty"` | |
1660 | } | |
1661 | ||
1662 | func (m *TestAllTypes_NestedMessage) Reset() { *m = TestAllTypes_NestedMessage{} } | |
1663 | func (m *TestAllTypes_NestedMessage) String() string { return proto.CompactTextString(m) } | |
1664 | func (*TestAllTypes_NestedMessage) ProtoMessage() {} | |
1665 | func (*TestAllTypes_NestedMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} } | |
1666 | ||
1667 | func (m *TestAllTypes_NestedMessage) GetA() int32 { | |
1668 | if m != nil { | |
1669 | return m.A | |
1670 | } | |
1671 | return 0 | |
1672 | } | |
1673 | ||
1674 | func (m *TestAllTypes_NestedMessage) GetCorecursive() *TestAllTypes { | |
1675 | if m != nil { | |
1676 | return m.Corecursive | |
1677 | } | |
1678 | return nil | |
1679 | } | |
1680 | ||
1681 | type ForeignMessage struct { | |
1682 | C int32 `protobuf:"varint,1,opt,name=c" json:"c,omitempty"` | |
1683 | } | |
1684 | ||
1685 | func (m *ForeignMessage) Reset() { *m = ForeignMessage{} } | |
1686 | func (m *ForeignMessage) String() string { return proto.CompactTextString(m) } | |
1687 | func (*ForeignMessage) ProtoMessage() {} | |
1688 | func (*ForeignMessage) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } | |
1689 | ||
1690 | func (m *ForeignMessage) GetC() int32 { | |
1691 | if m != nil { | |
1692 | return m.C | |
1693 | } | |
1694 | return 0 | |
1695 | } | |
1696 | ||
1697 | func init() { | |
1698 | proto.RegisterType((*ConformanceRequest)(nil), "conformance.ConformanceRequest") | |
1699 | proto.RegisterType((*ConformanceResponse)(nil), "conformance.ConformanceResponse") | |
1700 | proto.RegisterType((*TestAllTypes)(nil), "conformance.TestAllTypes") | |
1701 | proto.RegisterType((*TestAllTypes_NestedMessage)(nil), "conformance.TestAllTypes.NestedMessage") | |
1702 | proto.RegisterType((*ForeignMessage)(nil), "conformance.ForeignMessage") | |
1703 | proto.RegisterEnum("conformance.WireFormat", WireFormat_name, WireFormat_value) | |
1704 | proto.RegisterEnum("conformance.ForeignEnum", ForeignEnum_name, ForeignEnum_value) | |
1705 | proto.RegisterEnum("conformance.TestAllTypes_NestedEnum", TestAllTypes_NestedEnum_name, TestAllTypes_NestedEnum_value) | |
1706 | } | |
1707 | ||
1708 | func init() { proto.RegisterFile("conformance_proto/conformance.proto", fileDescriptor0) } | |
1709 | ||
1710 | var fileDescriptor0 = []byte{ | |
1711 | // 2737 bytes of a gzipped FileDescriptorProto | |
1712 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x5a, 0xd9, 0x72, 0xdb, 0xc8, | |
1713 | 0xd5, 0x16, 0x08, 0x59, 0x4b, 0x93, 0x92, 0xa8, 0xd6, 0xd6, 0x96, 0x5d, 0x63, 0x58, 0xb2, 0x7f, | |
1714 | 0xd3, 0xf6, 0x8c, 0xac, 0x05, 0x86, 0x65, 0xcf, 0x3f, 0x8e, 0x45, 0x9b, 0xb4, 0xe4, 0x8c, 0x25, | |
1715 | 0x17, 0x64, 0x8d, 0xab, 0x9c, 0x0b, 0x06, 0xa6, 0x20, 0x15, 0xc7, 0x24, 0xc1, 0x01, 0x48, 0x4f, | |
1716 | 0x94, 0xcb, 0xbc, 0x41, 0xf6, 0x7d, 0xbd, 0xcf, 0x7a, 0x93, 0xa4, 0x92, 0xab, 0x54, 0x6e, 0xb2, | |
1717 | 0x27, 0x95, 0x3d, 0x79, 0x85, 0xbc, 0x43, 0x52, 0xbd, 0xa2, 0xbb, 0x01, 0x50, 0xf4, 0x54, 0x0d, | |
1718 | 0x25, 0x1e, 0x7c, 0xfd, 0x9d, 0xd3, 0xe7, 0x1c, 0x7c, 0x2d, 0x1c, 0x18, 0x2c, 0xd7, 0x83, 0xf6, | |
1719 | 0x51, 0x10, 0xb6, 0xbc, 0x76, 0xdd, 0xaf, 0x75, 0xc2, 0xa0, 0x1b, 0xdc, 0x90, 0x2c, 0x2b, 0xc4, | |
1720 | 0x02, 0xf3, 0x92, 0x69, 0xf1, 0xec, 0x71, 0x10, 0x1c, 0x37, 0xfd, 0x1b, 0xe4, 0xd2, 0x8b, 0xde, | |
1721 | 0xd1, 0x0d, 0xaf, 0x7d, 0x42, 0x71, 0x8b, 0x6f, 0xe8, 0x97, 0x0e, 0x7b, 0xa1, 0xd7, 0x6d, 0x04, | |
1722 | 0x6d, 0x76, 0xdd, 0xd2, 0xaf, 0x1f, 0x35, 0xfc, 0xe6, 0x61, 0xad, 0xe5, 0x45, 0x2f, 0x19, 0xe2, | |
1723 | 0xbc, 0x8e, 0x88, 0xba, 0x61, 0xaf, 0xde, 0x65, 0x57, 0x2f, 0xe8, 0x57, 0xbb, 0x8d, 0x96, 0x1f, | |
1724 | 0x75, 0xbd, 0x56, 0x27, 0x2b, 0x80, 0x0f, 0x43, 0xaf, 0xd3, 0xf1, 0xc3, 0x88, 0x5e, 0x5f, 0xfa, | |
1725 | 0x85, 0x01, 0xe0, 0xfd, 0x78, 0x2f, 0xae, 0xff, 0x41, 0xcf, 0x8f, 0xba, 0xf0, 0x3a, 0x28, 0xf2, | |
1726 | 0x15, 0xb5, 0x8e, 0x77, 0xd2, 0x0c, 0xbc, 0x43, 0x64, 0x58, 0x46, 0xa9, 0xb0, 0x3d, 0xe4, 0x4e, | |
1727 | 0xf1, 0x2b, 0x4f, 0xe8, 0x05, 0xb8, 0x0c, 0x0a, 0xef, 0x47, 0x41, 0x5b, 0x00, 0x73, 0x96, 0x51, | |
1728 | 0x1a, 0xdf, 0x1e, 0x72, 0xf3, 0xd8, 0xca, 0x41, 0x7b, 0x60, 0x21, 0xa4, 0xe4, 0xfe, 0x61, 0x2d, | |
1729 | 0xe8, 0x75, 0x3b, 0xbd, 0x6e, 0x8d, 0x78, 0xed, 0x22, 0xd3, 0x32, 0x4a, 0x93, 0xeb, 0x0b, 0x2b, | |
1730 | 0x72, 0x9a, 0x9f, 0x35, 0x42, 0xbf, 0x4a, 0x2e, 0xbb, 0x73, 0x62, 0xdd, 0x1e, 0x59, 0x46, 0xcd, | |
1731 | 0xe5, 0x71, 0x30, 0xca, 0x1c, 0x2e, 0x7d, 0x2a, 0x07, 0x66, 0x94, 0x4d, 0x44, 0x9d, 0xa0, 0x1d, | |
1732 | 0xf9, 0xf0, 0x22, 0xc8, 0x77, 0xbc, 0x30, 0xf2, 0x6b, 0x7e, 0x18, 0x06, 0x21, 0xd9, 0x00, 0x8e, | |
1733 | 0x0b, 0x10, 0x63, 0x05, 0xdb, 0xe0, 0x55, 0x30, 0x15, 0xf9, 0x61, 0xc3, 0x6b, 0x36, 0x3e, 0xc9, | |
1734 | 0x61, 0x23, 0x0c, 0x36, 0x29, 0x2e, 0x50, 0xe8, 0x65, 0x30, 0x11, 0xf6, 0xda, 0x38, 0xc1, 0x0c, | |
1735 | 0xc8, 0xf7, 0x59, 0x60, 0x66, 0x0a, 0x4b, 0x4b, 0x9d, 0x39, 0x68, 0xea, 0x86, 0xd3, 0x52, 0xb7, | |
1736 | 0x08, 0x46, 0xa3, 0x97, 0x8d, 0x4e, 0xc7, 0x3f, 0x44, 0x67, 0xd8, 0x75, 0x6e, 0x28, 0x8f, 0x81, | |
1737 | 0x91, 0xd0, 0x8f, 0x7a, 0xcd, 0xee, 0xd2, 0x7f, 0xaa, 0xa0, 0xf0, 0xd4, 0x8f, 0xba, 0x5b, 0xcd, | |
1738 | 0xe6, 0xd3, 0x93, 0x8e, 0x1f, 0xc1, 0xcb, 0x60, 0x32, 0xe8, 0xe0, 0x5e, 0xf3, 0x9a, 0xb5, 0x46, | |
1739 | 0xbb, 0xbb, 0xb1, 0x4e, 0x12, 0x70, 0xc6, 0x9d, 0xe0, 0xd6, 0x1d, 0x6c, 0xd4, 0x61, 0x8e, 0x4d, | |
1740 | 0xf6, 0x65, 0x2a, 0x30, 0xc7, 0x86, 0x57, 0xc0, 0x94, 0x80, 0xf5, 0x28, 0x1d, 0xde, 0xd5, 0x84, | |
1741 | 0x2b, 0x56, 0x1f, 0x10, 0x6b, 0x02, 0xe8, 0xd8, 0x64, 0x57, 0xc3, 0x2a, 0x50, 0x63, 0x8c, 0x28, | |
1742 | 0x23, 0xde, 0xde, 0x74, 0x0c, 0xdc, 0x4f, 0x32, 0x46, 0x94, 0x11, 0xd7, 0x08, 0xaa, 0x40, 0xc7, | |
1743 | 0x86, 0x57, 0x41, 0x51, 0x00, 0x8f, 0x1a, 0x9f, 0xf0, 0x0f, 0x37, 0xd6, 0xd1, 0xa8, 0x65, 0x94, | |
1744 | 0x46, 0x5d, 0x41, 0x50, 0xa5, 0xe6, 0x24, 0xd4, 0xb1, 0xd1, 0x98, 0x65, 0x94, 0x46, 0x34, 0xa8, | |
1745 | 0x63, 0xc3, 0xeb, 0x60, 0x3a, 0x76, 0xcf, 0x69, 0xc7, 0x2d, 0xa3, 0x34, 0xe5, 0x0a, 0x8e, 0x7d, | |
1746 | 0x66, 0x4f, 0x01, 0x3b, 0x36, 0x02, 0x96, 0x51, 0x2a, 0xea, 0x60, 0xc7, 0x56, 0x52, 0x7f, 0xd4, | |
1747 | 0x0c, 0xbc, 0x2e, 0xca, 0x5b, 0x46, 0x29, 0x17, 0xa7, 0xbe, 0x8a, 0x8d, 0xca, 0xfe, 0x0f, 0x83, | |
1748 | 0xde, 0x8b, 0xa6, 0x8f, 0x0a, 0x96, 0x51, 0x32, 0xe2, 0xfd, 0x3f, 0x20, 0x56, 0xb8, 0x0c, 0xc4, | |
1749 | 0xca, 0xda, 0x8b, 0x20, 0x68, 0xa2, 0x09, 0xcb, 0x28, 0x8d, 0xb9, 0x05, 0x6e, 0x2c, 0x07, 0x41, | |
1750 | 0x53, 0xcd, 0x66, 0x37, 0x6c, 0xb4, 0x8f, 0xd1, 0x24, 0xee, 0x2a, 0x29, 0x9b, 0xc4, 0xaa, 0x44, | |
1751 | 0xf7, 0xe2, 0xa4, 0xeb, 0x47, 0x68, 0x0a, 0xb7, 0x71, 0x1c, 0x5d, 0x19, 0x1b, 0x61, 0x0d, 0x2c, | |
1752 | 0x08, 0x58, 0x9b, 0xde, 0xde, 0x2d, 0x3f, 0x8a, 0xbc, 0x63, 0x1f, 0x41, 0xcb, 0x28, 0xe5, 0xd7, | |
1753 | 0xaf, 0x28, 0x37, 0xb6, 0xdc, 0xa2, 0x2b, 0xbb, 0x04, 0xff, 0x98, 0xc2, 0xdd, 0x39, 0xce, 0xa3, | |
1754 | 0x98, 0xe1, 0x01, 0x40, 0x71, 0x96, 0x82, 0xd0, 0x6f, 0x1c, 0xb7, 0x85, 0x87, 0x19, 0xe2, 0xe1, | |
1755 | 0x9c, 0xe2, 0xa1, 0x4a, 0x31, 0x9c, 0x75, 0x5e, 0x24, 0x53, 0xb1, 0xc3, 0xf7, 0xc0, 0xac, 0x1e, | |
1756 | 0xb7, 0xdf, 0xee, 0xb5, 0xd0, 0x1c, 0x51, 0xa3, 0x4b, 0xa7, 0x05, 0x5d, 0x69, 0xf7, 0x5a, 0x2e, | |
1757 | 0x54, 0x23, 0xc6, 0x36, 0xf8, 0x2e, 0x98, 0x4b, 0x84, 0x4b, 0x88, 0xe7, 0x09, 0x31, 0x4a, 0x8b, | |
1758 | 0x95, 0x90, 0xcd, 0x68, 0x81, 0x12, 0x36, 0x47, 0x62, 0xa3, 0xd5, 0xaa, 0x75, 0x1a, 0x7e, 0xdd, | |
1759 | 0x47, 0x08, 0xd7, 0xac, 0x9c, 0x1b, 0xcb, 0xc5, 0xeb, 0x68, 0xdd, 0x9e, 0xe0, 0xcb, 0xf0, 0x8a, | |
1760 | 0xd4, 0x0a, 0xf5, 0x20, 0x3c, 0x44, 0x67, 0x19, 0xde, 0x88, 0xdb, 0xe1, 0x7e, 0x10, 0x1e, 0xc2, | |
1761 | 0x2a, 0x98, 0x0e, 0xfd, 0x7a, 0x2f, 0x8c, 0x1a, 0xaf, 0x7c, 0x91, 0xd6, 0x73, 0x24, 0xad, 0x67, | |
1762 | 0x33, 0x73, 0xe0, 0x16, 0xc5, 0x1a, 0x9e, 0xce, 0xcb, 0x60, 0x32, 0xf4, 0x3b, 0xbe, 0x87, 0xf3, | |
1763 | 0x48, 0x6f, 0xe6, 0x0b, 0x96, 0x89, 0xd5, 0x86, 0x5b, 0x85, 0xda, 0xc8, 0x30, 0xc7, 0x46, 0x96, | |
1764 | 0x65, 0x62, 0xb5, 0x91, 0x60, 0x54, 0x1b, 0x04, 0x8c, 0xa9, 0xcd, 0x45, 0xcb, 0xc4, 0x6a, 0xc3, | |
1765 | 0xcd, 0xb1, 0xda, 0x28, 0x40, 0xc7, 0x46, 0x4b, 0x96, 0x89, 0xd5, 0x46, 0x06, 0x6a, 0x8c, 0x4c, | |
1766 | 0x6d, 0x96, 0x2d, 0x13, 0xab, 0x0d, 0x37, 0xef, 0x27, 0x19, 0x99, 0xda, 0x5c, 0xb2, 0x4c, 0xac, | |
1767 | 0x36, 0x32, 0x90, 0xaa, 0x8d, 0x00, 0x72, 0x59, 0xb8, 0x6c, 0x99, 0x58, 0x6d, 0xb8, 0x5d, 0x52, | |
1768 | 0x1b, 0x15, 0xea, 0xd8, 0xe8, 0xff, 0x2c, 0x13, 0xab, 0x8d, 0x02, 0xa5, 0x6a, 0x13, 0xbb, 0xe7, | |
1769 | 0xb4, 0x57, 0x2c, 0x13, 0xab, 0x8d, 0x08, 0x40, 0x52, 0x1b, 0x0d, 0xec, 0xd8, 0xa8, 0x64, 0x99, | |
1770 | 0x58, 0x6d, 0x54, 0x30, 0x55, 0x9b, 0x38, 0x08, 0xa2, 0x36, 0x57, 0x2d, 0x13, 0xab, 0x8d, 0x08, | |
1771 | 0x81, 0xab, 0x8d, 0x80, 0x31, 0xb5, 0xb9, 0x66, 0x99, 0x58, 0x6d, 0xb8, 0x39, 0x56, 0x1b, 0x01, | |
1772 | 0x24, 0x6a, 0x73, 0xdd, 0x32, 0xb1, 0xda, 0x70, 0x23, 0x57, 0x9b, 0x38, 0x42, 0xaa, 0x36, 0x6f, | |
1773 | 0x5a, 0x26, 0x56, 0x1b, 0x11, 0x9f, 0x50, 0x9b, 0x98, 0x8d, 0xa8, 0xcd, 0x5b, 0x96, 0x89, 0xd5, | |
1774 | 0x46, 0xd0, 0x71, 0xb5, 0x11, 0x30, 0x4d, 0x6d, 0x56, 0x2d, 0xf3, 0xb5, 0xd4, 0x86, 0xf3, 0x24, | |
1775 | 0xd4, 0x26, 0xce, 0x92, 0xa6, 0x36, 0x6b, 0xc4, 0x43, 0x7f, 0xb5, 0x11, 0xc9, 0x4c, 0xa8, 0x8d, | |
1776 | 0x1e, 0x37, 0x11, 0x85, 0x0d, 0xcb, 0x1c, 0x5c, 0x6d, 0xd4, 0x88, 0xb9, 0xda, 0x24, 0xc2, 0x25, | |
1777 | 0xc4, 0x36, 0x21, 0xee, 0xa3, 0x36, 0x5a, 0xa0, 0x5c, 0x6d, 0xb4, 0x6a, 0x31, 0xb5, 0x71, 0x70, | |
1778 | 0xcd, 0xa8, 0xda, 0xa8, 0x75, 0x13, 0x6a, 0x23, 0xd6, 0x11, 0xb5, 0xb9, 0xc5, 0xf0, 0x46, 0xdc, | |
1779 | 0x0e, 0x44, 0x6d, 0x9e, 0x82, 0xa9, 0x96, 0xd7, 0xa1, 0x02, 0xc1, 0x64, 0x62, 0x93, 0x24, 0xf5, | |
1780 | 0xcd, 0xec, 0x0c, 0x3c, 0xf6, 0x3a, 0x44, 0x3b, 0xc8, 0x47, 0xa5, 0xdd, 0x0d, 0x4f, 0xdc, 0x89, | |
1781 | 0x96, 0x6c, 0x93, 0x58, 0x1d, 0x9b, 0xa9, 0xca, 0xed, 0xc1, 0x58, 0x1d, 0x9b, 0x7c, 0x28, 0xac, | |
1782 | 0xcc, 0x06, 0x9f, 0x83, 0x69, 0xcc, 0x4a, 0xe5, 0x87, 0xab, 0xd0, 0x1d, 0xc2, 0xbb, 0xd2, 0x97, | |
1783 | 0x97, 0x4a, 0x13, 0xfd, 0xa4, 0xcc, 0x38, 0x3c, 0xd9, 0x2a, 0x73, 0x3b, 0x36, 0x17, 0xae, 0xb7, | |
1784 | 0x07, 0xe4, 0x76, 0x6c, 0xfa, 0xa9, 0x72, 0x73, 0x2b, 0xe7, 0xa6, 0x22, 0xc7, 0xb5, 0xee, 0xff, | |
1785 | 0x07, 0xe0, 0xa6, 0x02, 0xb8, 0xaf, 0xc5, 0x2d, 0x5b, 0x65, 0x6e, 0xc7, 0xe6, 0xf2, 0xf8, 0xce, | |
1786 | 0x80, 0xdc, 0x8e, 0xbd, 0xaf, 0xc5, 0x2d, 0x5b, 0xe1, 0xc7, 0xc1, 0x0c, 0xe6, 0x66, 0xda, 0x26, | |
1787 | 0x24, 0xf5, 0x2e, 0x61, 0x5f, 0xed, 0xcb, 0xce, 0x74, 0x96, 0xfd, 0xa0, 0xfc, 0x38, 0x50, 0xd5, | |
1788 | 0xae, 0x78, 0x70, 0x6c, 0xa1, 0xc4, 0x1f, 0x19, 0xd4, 0x83, 0x63, 0xb3, 0x1f, 0x9a, 0x07, 0x61, | |
1789 | 0x87, 0x47, 0x60, 0x8e, 0xe4, 0x87, 0x6f, 0x42, 0x28, 0xf8, 0x3d, 0xe2, 0x63, 0xbd, 0x7f, 0x8e, | |
1790 | 0x18, 0x98, 0xff, 0xa4, 0x5e, 0x70, 0xc8, 0xfa, 0x15, 0xd5, 0x0f, 0xae, 0x04, 0xdf, 0xcb, 0xd6, | |
1791 | 0xc0, 0x7e, 0x1c, 0x9b, 0xff, 0xd4, 0xfd, 0xc4, 0x57, 0xd4, 0xfb, 0x95, 0x1e, 0x1a, 0xe5, 0x41, | |
1792 | 0xef, 0x57, 0x72, 0x9c, 0x68, 0xf7, 0x2b, 0x3d, 0x62, 0x9e, 0x81, 0x62, 0xcc, 0xca, 0xce, 0x98, | |
1793 | 0xfb, 0x84, 0xf6, 0xad, 0xd3, 0x69, 0xe9, 0xe9, 0x43, 0x79, 0x27, 0x5b, 0x8a, 0x11, 0xee, 0x02, | |
1794 | 0xec, 0x89, 0x9c, 0x46, 0xf4, 0x48, 0x7a, 0x40, 0x58, 0xaf, 0xf5, 0x65, 0xc5, 0xe7, 0x14, 0xfe, | |
1795 | 0x9f, 0x52, 0xe6, 0x5b, 0xb1, 0x45, 0xb4, 0x3b, 0x95, 0x42, 0x76, 0x7e, 0x55, 0x06, 0x69, 0x77, | |
1796 | 0x02, 0xa5, 0x9f, 0x52, 0xbb, 0x4b, 0x56, 0x9e, 0x04, 0xc6, 0x4d, 0x8f, 0xbc, 0xea, 0x00, 0x49, | |
1797 | 0xa0, 0xcb, 0xc9, 0x69, 0x18, 0x27, 0x41, 0x32, 0xc2, 0x0e, 0x38, 0x2b, 0x11, 0x6b, 0x87, 0xe4, | |
1798 | 0x43, 0xe2, 0xe1, 0xe6, 0x00, 0x1e, 0x94, 0x63, 0x91, 0x7a, 0x9a, 0x6f, 0xa5, 0x5e, 0x84, 0x11, | |
1799 | 0x58, 0x94, 0x3c, 0xea, 0xa7, 0xe6, 0x36, 0x71, 0xe9, 0x0c, 0xe0, 0x52, 0x3d, 0x33, 0xa9, 0xcf, | |
1800 | 0x85, 0x56, 0xfa, 0x55, 0x78, 0x0c, 0xe6, 0x93, 0xdb, 0x24, 0x47, 0xdf, 0xce, 0x20, 0xf7, 0x80, | |
1801 | 0xb4, 0x0d, 0x7c, 0xf4, 0x49, 0xf7, 0x80, 0x76, 0x05, 0xbe, 0x0f, 0x16, 0x52, 0x76, 0x47, 0x3c, | |
1802 | 0x3d, 0x22, 0x9e, 0x36, 0x06, 0xdf, 0x5a, 0xec, 0x6a, 0xb6, 0x95, 0x72, 0x09, 0x2e, 0x83, 0x42, | |
1803 | 0xd0, 0xf6, 0x83, 0x23, 0x7e, 0xdc, 0x04, 0xf8, 0x11, 0x7b, 0x7b, 0xc8, 0xcd, 0x13, 0x2b, 0x3b, | |
1804 | 0x3c, 0x3e, 0x06, 0x66, 0x29, 0x48, 0xab, 0x6d, 0xe7, 0xb5, 0x1e, 0xb7, 0xb6, 0x87, 0x5c, 0x48, | |
1805 | 0x68, 0xd4, 0x5a, 0x8a, 0x08, 0x58, 0xb7, 0x7f, 0xc0, 0x27, 0x12, 0xc4, 0xca, 0x7a, 0xf7, 0x22, | |
1806 | 0xa0, 0x5f, 0x59, 0xdb, 0x86, 0x6c, 0xbc, 0x01, 0x88, 0x91, 0x76, 0xe1, 0x05, 0x00, 0x18, 0x04, | |
1807 | 0xdf, 0x87, 0x11, 0x7e, 0x10, 0xdd, 0x1e, 0x72, 0xc7, 0x29, 0x02, 0xdf, 0x5b, 0xca, 0x56, 0x1d, | |
1808 | 0x1b, 0x75, 0x2d, 0xa3, 0x34, 0xac, 0x6c, 0xd5, 0xb1, 0x63, 0x47, 0x54, 0x7b, 0x7a, 0xf8, 0xf1, | |
1809 | 0x58, 0x38, 0xa2, 0x62, 0x22, 0x78, 0x98, 0x90, 0xbc, 0xc2, 0x8f, 0xc6, 0x82, 0x87, 0x09, 0x43, | |
1810 | 0x85, 0x47, 0x43, 0xca, 0xf6, 0xe1, 0xe0, 0x8f, 0x78, 0x22, 0x66, 0x52, 0x9e, 0x3d, 0xe9, 0x69, | |
1811 | 0x8c, 0x88, 0x0c, 0x9b, 0xa6, 0xa1, 0x5f, 0x19, 0x24, 0xf7, 0x8b, 0x2b, 0x74, 0xdc, 0xb6, 0xc2, | |
1812 | 0xe7, 0x3c, 0x2b, 0x78, 0xab, 0xef, 0x79, 0xcd, 0x9e, 0x1f, 0x3f, 0xa6, 0x61, 0xd3, 0x33, 0xba, | |
1813 | 0x0e, 0xba, 0x60, 0x5e, 0x9d, 0xd1, 0x08, 0xc6, 0x5f, 0x1b, 0xec, 0xd1, 0x56, 0x67, 0x24, 0x7a, | |
1814 | 0x47, 0x29, 0x67, 0x95, 0x49, 0x4e, 0x06, 0xa7, 0x63, 0x0b, 0xce, 0xdf, 0xf4, 0xe1, 0x74, 0xec, | |
1815 | 0x24, 0xa7, 0x63, 0x73, 0xce, 0x03, 0xe9, 0x21, 0xbf, 0xa7, 0x06, 0xfa, 0x5b, 0x4a, 0x7a, 0x3e, | |
1816 | 0x41, 0x7a, 0x20, 0x45, 0x3a, 0xa7, 0x0e, 0x89, 0xb2, 0x68, 0xa5, 0x58, 0x7f, 0xd7, 0x8f, 0x96, | |
1817 | 0x07, 0x3b, 0xa7, 0x8e, 0x94, 0xd2, 0x32, 0x40, 0x1a, 0x47, 0xb0, 0xfe, 0x3e, 0x2b, 0x03, 0xa4, | |
1818 | 0x97, 0xb4, 0x0c, 0x10, 0x5b, 0x5a, 0xa8, 0xb4, 0xd3, 0x04, 0xe9, 0x1f, 0xb2, 0x42, 0xa5, 0xcd, | |
1819 | 0xa7, 0x85, 0x4a, 0x8d, 0x69, 0xb4, 0x4c, 0x61, 0x38, 0xed, 0x1f, 0xb3, 0x68, 0xe9, 0x4d, 0xa8, | |
1820 | 0xd1, 0x52, 0x63, 0x5a, 0x06, 0xc8, 0x3d, 0x2a, 0x58, 0xff, 0x94, 0x95, 0x01, 0x72, 0xdb, 0x6a, | |
1821 | 0x19, 0x20, 0x36, 0xce, 0xb9, 0x27, 0x3d, 0x1c, 0x28, 0xcd, 0xff, 0x67, 0x83, 0xc8, 0x60, 0xdf, | |
1822 | 0xe6, 0x97, 0x1f, 0x0a, 0xa5, 0x20, 0xd5, 0x91, 0x81, 0x60, 0xfc, 0x8b, 0xc1, 0x9e, 0xb4, 0xfa, | |
1823 | 0x35, 0xbf, 0x32, 0x58, 0xc8, 0xe0, 0x94, 0x1a, 0xea, 0xaf, 0x7d, 0x38, 0x45, 0xf3, 0x2b, 0x53, | |
1824 | 0x08, 0xa9, 0x46, 0xda, 0x30, 0x42, 0x90, 0xfe, 0x8d, 0x92, 0x9e, 0xd2, 0xfc, 0xea, 0xcc, 0x22, | |
1825 | 0x8b, 0x56, 0x8a, 0xf5, 0xef, 0xfd, 0x68, 0x45, 0xf3, 0xab, 0x13, 0x8e, 0xb4, 0x0c, 0xa8, 0xcd, | |
1826 | 0xff, 0x8f, 0xac, 0x0c, 0xc8, 0xcd, 0xaf, 0x0c, 0x03, 0xd2, 0x42, 0xd5, 0x9a, 0xff, 0x9f, 0x59, | |
1827 | 0xa1, 0x2a, 0xcd, 0xaf, 0x8e, 0x0e, 0xd2, 0x68, 0xb5, 0xe6, 0xff, 0x57, 0x16, 0xad, 0xd2, 0xfc, | |
1828 | 0xea, 0xb3, 0x68, 0x5a, 0x06, 0xd4, 0xe6, 0xff, 0x77, 0x56, 0x06, 0xe4, 0xe6, 0x57, 0x06, 0x0e, | |
1829 | 0x9c, 0xf3, 0xa1, 0x34, 0xd7, 0xe5, 0xef, 0x70, 0xd0, 0x77, 0x73, 0x6c, 0x4e, 0x96, 0xd8, 0x3b, | |
1830 | 0x43, 0xc4, 0x33, 0x5f, 0x6e, 0x81, 0x8f, 0x80, 0x18, 0x1a, 0xd6, 0xc4, 0xcb, 0x1a, 0xf4, 0xbd, | |
1831 | 0x5c, 0xc6, 0xf9, 0xf1, 0x94, 0x43, 0x5c, 0xe1, 0x5f, 0x98, 0xe0, 0x47, 0xc1, 0x8c, 0x34, 0xc4, | |
1832 | 0xe6, 0x2f, 0x8e, 0xd0, 0xf7, 0xb3, 0xc8, 0xaa, 0x18, 0xf3, 0xd8, 0x8b, 0x5e, 0xc6, 0x64, 0xc2, | |
1833 | 0x04, 0xb7, 0xd4, 0xb9, 0x70, 0xaf, 0xde, 0x45, 0x3f, 0xa0, 0x44, 0x0b, 0x69, 0x45, 0xe8, 0xd5, | |
1834 | 0xbb, 0xca, 0xc4, 0xb8, 0x57, 0xef, 0xc2, 0x4d, 0x20, 0x66, 0x8b, 0x35, 0xaf, 0x7d, 0x82, 0x7e, | |
1835 | 0x48, 0xd7, 0xcf, 0x26, 0xd6, 0x6f, 0xb5, 0x4f, 0xdc, 0x3c, 0x87, 0x6e, 0xb5, 0x4f, 0xe0, 0x5d, | |
1836 | 0x69, 0xd6, 0xfc, 0x0a, 0x97, 0x01, 0xfd, 0x88, 0xae, 0x9d, 0x4f, 0xac, 0xa5, 0x55, 0x12, 0xd3, | |
1837 | 0x4d, 0xf2, 0x15, 0x97, 0x27, 0x6e, 0x50, 0x5e, 0x9e, 0x1f, 0xe7, 0x48, 0xb5, 0xfb, 0x95, 0x47, | |
1838 | 0xf4, 0xa5, 0x54, 0x1e, 0x41, 0x14, 0x97, 0xe7, 0x27, 0xb9, 0x0c, 0x85, 0x93, 0xca, 0xc3, 0x97, | |
1839 | 0xc5, 0xe5, 0x91, 0xb9, 0x48, 0x79, 0x48, 0x75, 0x7e, 0x9a, 0xc5, 0x25, 0x55, 0x27, 0x1e, 0x0a, | |
1840 | 0xb2, 0x55, 0xb8, 0x3a, 0xf2, 0xad, 0x82, 0xab, 0xf3, 0x4b, 0x4a, 0x94, 0x5d, 0x1d, 0xe9, 0xee, | |
1841 | 0x60, 0xd5, 0x11, 0x14, 0xb8, 0x3a, 0x3f, 0xa3, 0xeb, 0x33, 0xaa, 0xc3, 0xa1, 0xac, 0x3a, 0x62, | |
1842 | 0x25, 0xad, 0xce, 0xcf, 0xe9, 0xda, 0xcc, 0xea, 0x70, 0x38, 0xad, 0xce, 0x05, 0x00, 0xc8, 0xfe, | |
1843 | 0xdb, 0x5e, 0xcb, 0x5f, 0x43, 0x9f, 0x36, 0xc9, 0x6b, 0x28, 0xc9, 0x04, 0x2d, 0x90, 0xa7, 0xfd, | |
1844 | 0x8b, 0xbf, 0xae, 0xa3, 0xcf, 0xc8, 0x88, 0x5d, 0x6c, 0x82, 0x17, 0x41, 0xa1, 0x16, 0x43, 0x36, | |
1845 | 0xd0, 0x67, 0x19, 0xa4, 0xca, 0x21, 0x1b, 0x70, 0x09, 0x4c, 0x50, 0x04, 0x81, 0xd8, 0x35, 0xf4, | |
1846 | 0x39, 0x9d, 0x86, 0xfc, 0x3d, 0x49, 0xbe, 0xad, 0x62, 0xc8, 0x4d, 0xf4, 0x79, 0x8a, 0x90, 0x6d, | |
1847 | 0x70, 0x99, 0xd3, 0xac, 0x12, 0x1e, 0x07, 0x7d, 0x41, 0x01, 0x61, 0x1e, 0x47, 0xec, 0x08, 0x7f, | |
1848 | 0xbb, 0x85, 0xbe, 0xa8, 0x3b, 0xba, 0x85, 0x01, 0x22, 0xb4, 0x4d, 0xf4, 0x25, 0x3d, 0xda, 0xcd, | |
1849 | 0x78, 0xcb, 0xf8, 0xeb, 0x6d, 0xf4, 0x65, 0x9d, 0xe2, 0x36, 0x5c, 0x02, 0x85, 0xaa, 0x40, 0xac, | |
1850 | 0xad, 0xa2, 0xaf, 0xb0, 0x38, 0x04, 0xc9, 0xda, 0x2a, 0xc1, 0xec, 0x54, 0xde, 0x7d, 0x50, 0xdb, | |
1851 | 0xdd, 0x7a, 0x5c, 0x59, 0x5b, 0x43, 0x5f, 0xe5, 0x18, 0x6c, 0xa4, 0xb6, 0x18, 0x43, 0x72, 0xbd, | |
1852 | 0x8e, 0xbe, 0xa6, 0x60, 0x88, 0x0d, 0x5e, 0x02, 0x93, 0x35, 0x29, 0xbf, 0x6b, 0x1b, 0xe8, 0xeb, | |
1853 | 0x09, 0x6f, 0x1b, 0x14, 0x55, 0x8d, 0x51, 0x36, 0xfa, 0x46, 0x02, 0x65, 0xc7, 0x09, 0xa4, 0xa0, | |
1854 | 0x9b, 0xe8, 0x9b, 0x72, 0x02, 0x09, 0x48, 0xca, 0x32, 0xdd, 0x9d, 0x83, 0xbe, 0x95, 0x00, 0x39, | |
1855 | 0xd8, 0x9f, 0x14, 0xd3, 0xad, 0x5a, 0x0d, 0x7d, 0x3b, 0x81, 0xba, 0x85, 0x51, 0x52, 0x4c, 0x9b, | |
1856 | 0xb5, 0x1a, 0xfa, 0x4e, 0x22, 0xaa, 0xcd, 0xc5, 0xe7, 0x60, 0x42, 0x7d, 0xd0, 0x29, 0x00, 0xc3, | |
1857 | 0x63, 0x6f, 0x44, 0x0d, 0x0f, 0xbe, 0x0d, 0xf2, 0xf5, 0x40, 0xbc, 0xd4, 0x40, 0xb9, 0xd3, 0x5e, | |
1858 | 0x80, 0xc8, 0xe8, 0xc5, 0x7b, 0x00, 0x26, 0x87, 0x94, 0xb0, 0x08, 0xcc, 0x97, 0xfe, 0x09, 0x73, | |
1859 | 0x81, 0x7f, 0x85, 0xb3, 0xe0, 0x0c, 0xbd, 0x7d, 0x72, 0xc4, 0x46, 0xbf, 0xdc, 0xc9, 0x6d, 0x1a, | |
1860 | 0x31, 0x83, 0x3c, 0x90, 0x94, 0x19, 0xcc, 0x14, 0x06, 0x53, 0x66, 0x28, 0x83, 0xd9, 0xb4, 0xd1, | |
1861 | 0xa3, 0xcc, 0x31, 0x91, 0xc2, 0x31, 0x91, 0xce, 0xa1, 0x8c, 0x18, 0x65, 0x8e, 0xe1, 0x14, 0x8e, | |
1862 | 0xe1, 0x24, 0x47, 0x62, 0x94, 0x28, 0x73, 0x4c, 0xa7, 0x70, 0x4c, 0xa7, 0x73, 0x28, 0x23, 0x43, | |
1863 | 0x99, 0x03, 0xa6, 0x70, 0x40, 0x99, 0xe3, 0x01, 0x98, 0x4f, 0x1f, 0x0c, 0xca, 0x2c, 0xa3, 0x29, | |
1864 | 0x2c, 0xa3, 0x19, 0x2c, 0xea, 0xf0, 0x4f, 0x66, 0x19, 0x49, 0x61, 0x19, 0x91, 0x59, 0xaa, 0x00, | |
1865 | 0x65, 0x8d, 0xf7, 0x64, 0x9e, 0xa9, 0x14, 0x9e, 0xa9, 0x2c, 0x1e, 0x6d, 0x7c, 0x27, 0xf3, 0x14, | |
1866 | 0x53, 0x78, 0x8a, 0xa9, 0xdd, 0x26, 0x0f, 0xe9, 0x4e, 0xeb, 0xd7, 0x9c, 0xcc, 0xb0, 0x05, 0x66, | |
1867 | 0x52, 0xe6, 0x71, 0xa7, 0x51, 0x18, 0x32, 0xc5, 0x5d, 0x50, 0xd4, 0x87, 0x6f, 0xf2, 0xfa, 0xb1, | |
1868 | 0x94, 0xf5, 0x63, 0x29, 0x4d, 0xa2, 0x0f, 0xda, 0x64, 0x8e, 0xf1, 0x14, 0x8e, 0xf1, 0xe4, 0x36, | |
1869 | 0xf4, 0x89, 0xda, 0x69, 0x14, 0x05, 0x99, 0x22, 0x04, 0xe7, 0xfa, 0x8c, 0xcc, 0x52, 0xa8, 0xde, | |
1870 | 0x91, 0xa9, 0x5e, 0xe3, 0x7d, 0x95, 0xe4, 0xf3, 0x18, 0x9c, 0xef, 0x37, 0x33, 0x4b, 0x71, 0xba, | |
1871 | 0xa6, 0x3a, 0xed, 0xfb, 0x0a, 0x4b, 0x72, 0xd4, 0xa4, 0x0d, 0x97, 0x36, 0x2b, 0x4b, 0x71, 0x72, | |
1872 | 0x47, 0x76, 0x32, 0xe8, 0x4b, 0x2d, 0xc9, 0x9b, 0x07, 0xce, 0x66, 0xce, 0xcb, 0x52, 0xdc, 0xad, | |
1873 | 0xa8, 0xee, 0xb2, 0x5f, 0x75, 0xc5, 0x2e, 0x96, 0x6e, 0x03, 0x20, 0x4d, 0xf6, 0x46, 0x81, 0x59, | |
1874 | 0xdd, 0xdb, 0x2b, 0x0e, 0xe1, 0x5f, 0xca, 0x5b, 0x6e, 0xd1, 0xa0, 0xbf, 0x3c, 0x2f, 0xe6, 0xb0, | |
1875 | 0xbb, 0xdd, 0xca, 0xc3, 0xe2, 0x7f, 0xf9, 0x7f, 0x46, 0x79, 0x42, 0x8c, 0xa2, 0xf0, 0xa9, 0xb2, | |
1876 | 0xf4, 0x06, 0x98, 0xd4, 0x06, 0x92, 0x05, 0x60, 0xd4, 0xf9, 0x81, 0x52, 0xbf, 0x76, 0x13, 0x80, | |
1877 | 0xf8, 0xdf, 0x30, 0xc1, 0x29, 0x90, 0x3f, 0xd8, 0xdd, 0x7f, 0x52, 0xb9, 0xbf, 0x53, 0xdd, 0xa9, | |
1878 | 0x3c, 0x28, 0x0e, 0xc1, 0x02, 0x18, 0x7b, 0xe2, 0xee, 0x3d, 0xdd, 0x2b, 0x1f, 0x54, 0x8b, 0x06, | |
1879 | 0x1c, 0x03, 0xc3, 0x8f, 0xf6, 0xf7, 0x76, 0x8b, 0xb9, 0x6b, 0xf7, 0x40, 0x5e, 0x9e, 0x07, 0x4e, | |
1880 | 0x81, 0x7c, 0x75, 0xcf, 0xad, 0xec, 0x3c, 0xdc, 0xad, 0xd1, 0x48, 0x25, 0x03, 0x8d, 0x58, 0x31, | |
1881 | 0x3c, 0x2f, 0xe6, 0xca, 0x17, 0xc1, 0x85, 0x7a, 0xd0, 0x4a, 0xfc, 0x61, 0x26, 0x25, 0xe7, 0xc5, | |
1882 | 0x08, 0xb1, 0x6e, 0xfc, 0x2f, 0x00, 0x00, 0xff, 0xff, 0x33, 0xc2, 0x0c, 0xb6, 0xeb, 0x26, 0x00, | |
1883 | 0x00, | |
1884 | } |
0 | // Protocol Buffers - Google's data interchange format | |
1 | // Copyright 2008 Google Inc. All rights reserved. | |
2 | // https://developers.google.com/protocol-buffers/ | |
3 | // | |
4 | // Redistribution and use in source and binary forms, with or without | |
5 | // modification, are permitted provided that the following conditions are | |
6 | // met: | |
7 | // | |
8 | // * Redistributions of source code must retain the above copyright | |
9 | // notice, this list of conditions and the following disclaimer. | |
10 | // * Redistributions in binary form must reproduce the above | |
11 | // copyright notice, this list of conditions and the following disclaimer | |
12 | // in the documentation and/or other materials provided with the | |
13 | // distribution. | |
14 | // * Neither the name of Google Inc. nor the names of its | |
15 | // contributors may be used to endorse or promote products derived from | |
16 | // this software without specific prior written permission. | |
17 | // | |
18 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
19 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
20 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
21 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
22 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
23 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
24 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
25 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
26 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
27 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
28 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
29 | ||
30 | syntax = "proto3"; | |
31 | package conformance; | |
32 | option java_package = "com.google.protobuf.conformance"; | |
33 | ||
34 | import "google/protobuf/any.proto"; | |
35 | import "google/protobuf/duration.proto"; | |
36 | import "google/protobuf/field_mask.proto"; | |
37 | import "google/protobuf/struct.proto"; | |
38 | import "google/protobuf/timestamp.proto"; | |
39 | import "google/protobuf/wrappers.proto"; | |
40 | ||
41 | // This defines the conformance testing protocol. This protocol exists between | |
42 | // the conformance test suite itself and the code being tested. For each test, | |
43 | // the suite will send a ConformanceRequest message and expect a | |
44 | // ConformanceResponse message. | |
45 | // | |
46 | // You can either run the tests in two different ways: | |
47 | // | |
48 | // 1. in-process (using the interface in conformance_test.h). | |
49 | // | |
50 | // 2. as a sub-process communicating over a pipe. Information about how to | |
51 | // do this is in conformance_test_runner.cc. | |
52 | // | |
53 | // Pros/cons of the two approaches: | |
54 | // | |
55 | // - running as a sub-process is much simpler for languages other than C/C++. | |
56 | // | |
57 | // - running as a sub-process may be more tricky in unusual environments like | |
58 | // iOS apps, where fork/stdin/stdout are not available. | |
59 | ||
60 | enum WireFormat { | |
61 | UNSPECIFIED = 0; | |
62 | PROTOBUF = 1; | |
63 | JSON = 2; | |
64 | } | |
65 | ||
66 | // Represents a single test case's input. The testee should: | |
67 | // | |
68 | // 1. parse this proto (which should always succeed) | |
69 | // 2. parse the protobuf or JSON payload in "payload" (which may fail) | |
70 | // 3. if the parse succeeded, serialize the message in the requested format. | |
71 | message ConformanceRequest { | |
72 | // The payload (whether protobuf of JSON) is always for a TestAllTypes proto | |
73 | // (see below). | |
74 | oneof payload { | |
75 | bytes protobuf_payload = 1; | |
76 | string json_payload = 2; | |
77 | } | |
78 | ||
79 | // Which format should the testee serialize its message to? | |
80 | WireFormat requested_output_format = 3; | |
81 | } | |
82 | ||
83 | // Represents a single test case's output. | |
84 | message ConformanceResponse { | |
85 | oneof result { | |
86 | // This string should be set to indicate parsing failed. The string can | |
87 | // provide more information about the parse error if it is available. | |
88 | // | |
89 | // Setting this string does not necessarily mean the testee failed the | |
90 | // test. Some of the test cases are intentionally invalid input. | |
91 | string parse_error = 1; | |
92 | ||
93 | // If the input was successfully parsed but errors occurred when | |
94 | // serializing it to the requested output format, set the error message in | |
95 | // this field. | |
96 | string serialize_error = 6; | |
97 | ||
98 | // This should be set if some other error occurred. This will always | |
99 | // indicate that the test failed. The string can provide more information | |
100 | // about the failure. | |
101 | string runtime_error = 2; | |
102 | ||
103 | // If the input was successfully parsed and the requested output was | |
104 | // protobuf, serialize it to protobuf and set it in this field. | |
105 | bytes protobuf_payload = 3; | |
106 | ||
107 | // If the input was successfully parsed and the requested output was JSON, | |
108 | // serialize to JSON and set it in this field. | |
109 | string json_payload = 4; | |
110 | ||
111 | // For when the testee skipped the test, likely because a certain feature | |
112 | // wasn't supported, like JSON input/output. | |
113 | string skipped = 5; | |
114 | } | |
115 | } | |
116 | ||
117 | // This proto includes every type of field in both singular and repeated | |
118 | // forms. | |
119 | message TestAllTypes { | |
120 | message NestedMessage { | |
121 | int32 a = 1; | |
122 | TestAllTypes corecursive = 2; | |
123 | } | |
124 | ||
125 | enum NestedEnum { | |
126 | FOO = 0; | |
127 | BAR = 1; | |
128 | BAZ = 2; | |
129 | NEG = -1; // Intentionally negative. | |
130 | } | |
131 | ||
132 | // Singular | |
133 | int32 optional_int32 = 1; | |
134 | int64 optional_int64 = 2; | |
135 | uint32 optional_uint32 = 3; | |
136 | uint64 optional_uint64 = 4; | |
137 | sint32 optional_sint32 = 5; | |
138 | sint64 optional_sint64 = 6; | |
139 | fixed32 optional_fixed32 = 7; | |
140 | fixed64 optional_fixed64 = 8; | |
141 | sfixed32 optional_sfixed32 = 9; | |
142 | sfixed64 optional_sfixed64 = 10; | |
143 | float optional_float = 11; | |
144 | double optional_double = 12; | |
145 | bool optional_bool = 13; | |
146 | string optional_string = 14; | |
147 | bytes optional_bytes = 15; | |
148 | ||
149 | NestedMessage optional_nested_message = 18; | |
150 | ForeignMessage optional_foreign_message = 19; | |
151 | ||
152 | NestedEnum optional_nested_enum = 21; | |
153 | ForeignEnum optional_foreign_enum = 22; | |
154 | ||
155 | string optional_string_piece = 24 [ctype=STRING_PIECE]; | |
156 | string optional_cord = 25 [ctype=CORD]; | |
157 | ||
158 | TestAllTypes recursive_message = 27; | |
159 | ||
160 | // Repeated | |
161 | repeated int32 repeated_int32 = 31; | |
162 | repeated int64 repeated_int64 = 32; | |
163 | repeated uint32 repeated_uint32 = 33; | |
164 | repeated uint64 repeated_uint64 = 34; | |
165 | repeated sint32 repeated_sint32 = 35; | |
166 | repeated sint64 repeated_sint64 = 36; | |
167 | repeated fixed32 repeated_fixed32 = 37; | |
168 | repeated fixed64 repeated_fixed64 = 38; | |
169 | repeated sfixed32 repeated_sfixed32 = 39; | |
170 | repeated sfixed64 repeated_sfixed64 = 40; | |
171 | repeated float repeated_float = 41; | |
172 | repeated double repeated_double = 42; | |
173 | repeated bool repeated_bool = 43; | |
174 | repeated string repeated_string = 44; | |
175 | repeated bytes repeated_bytes = 45; | |
176 | ||
177 | repeated NestedMessage repeated_nested_message = 48; | |
178 | repeated ForeignMessage repeated_foreign_message = 49; | |
179 | ||
180 | repeated NestedEnum repeated_nested_enum = 51; | |
181 | repeated ForeignEnum repeated_foreign_enum = 52; | |
182 | ||
183 | repeated string repeated_string_piece = 54 [ctype=STRING_PIECE]; | |
184 | repeated string repeated_cord = 55 [ctype=CORD]; | |
185 | ||
186 | // Map | |
187 | map < int32, int32> map_int32_int32 = 56; | |
188 | map < int64, int64> map_int64_int64 = 57; | |
189 | map < uint32, uint32> map_uint32_uint32 = 58; | |
190 | map < uint64, uint64> map_uint64_uint64 = 59; | |
191 | map < sint32, sint32> map_sint32_sint32 = 60; | |
192 | map < sint64, sint64> map_sint64_sint64 = 61; | |
193 | map < fixed32, fixed32> map_fixed32_fixed32 = 62; | |
194 | map < fixed64, fixed64> map_fixed64_fixed64 = 63; | |
195 | map <sfixed32, sfixed32> map_sfixed32_sfixed32 = 64; | |
196 | map <sfixed64, sfixed64> map_sfixed64_sfixed64 = 65; | |
197 | map < int32, float> map_int32_float = 66; | |
198 | map < int32, double> map_int32_double = 67; | |
199 | map < bool, bool> map_bool_bool = 68; | |
200 | map < string, string> map_string_string = 69; | |
201 | map < string, bytes> map_string_bytes = 70; | |
202 | map < string, NestedMessage> map_string_nested_message = 71; | |
203 | map < string, ForeignMessage> map_string_foreign_message = 72; | |
204 | map < string, NestedEnum> map_string_nested_enum = 73; | |
205 | map < string, ForeignEnum> map_string_foreign_enum = 74; | |
206 | ||
207 | oneof oneof_field { | |
208 | uint32 oneof_uint32 = 111; | |
209 | NestedMessage oneof_nested_message = 112; | |
210 | string oneof_string = 113; | |
211 | bytes oneof_bytes = 114; | |
212 | bool oneof_bool = 115; | |
213 | uint64 oneof_uint64 = 116; | |
214 | float oneof_float = 117; | |
215 | double oneof_double = 118; | |
216 | NestedEnum oneof_enum = 119; | |
217 | } | |
218 | ||
219 | // Well-known types | |
220 | google.protobuf.BoolValue optional_bool_wrapper = 201; | |
221 | google.protobuf.Int32Value optional_int32_wrapper = 202; | |
222 | google.protobuf.Int64Value optional_int64_wrapper = 203; | |
223 | google.protobuf.UInt32Value optional_uint32_wrapper = 204; | |
224 | google.protobuf.UInt64Value optional_uint64_wrapper = 205; | |
225 | google.protobuf.FloatValue optional_float_wrapper = 206; | |
226 | google.protobuf.DoubleValue optional_double_wrapper = 207; | |
227 | google.protobuf.StringValue optional_string_wrapper = 208; | |
228 | google.protobuf.BytesValue optional_bytes_wrapper = 209; | |
229 | ||
230 | repeated google.protobuf.BoolValue repeated_bool_wrapper = 211; | |
231 | repeated google.protobuf.Int32Value repeated_int32_wrapper = 212; | |
232 | repeated google.protobuf.Int64Value repeated_int64_wrapper = 213; | |
233 | repeated google.protobuf.UInt32Value repeated_uint32_wrapper = 214; | |
234 | repeated google.protobuf.UInt64Value repeated_uint64_wrapper = 215; | |
235 | repeated google.protobuf.FloatValue repeated_float_wrapper = 216; | |
236 | repeated google.protobuf.DoubleValue repeated_double_wrapper = 217; | |
237 | repeated google.protobuf.StringValue repeated_string_wrapper = 218; | |
238 | repeated google.protobuf.BytesValue repeated_bytes_wrapper = 219; | |
239 | ||
240 | google.protobuf.Duration optional_duration = 301; | |
241 | google.protobuf.Timestamp optional_timestamp = 302; | |
242 | google.protobuf.FieldMask optional_field_mask = 303; | |
243 | google.protobuf.Struct optional_struct = 304; | |
244 | google.protobuf.Any optional_any = 305; | |
245 | google.protobuf.Value optional_value = 306; | |
246 | ||
247 | repeated google.protobuf.Duration repeated_duration = 311; | |
248 | repeated google.protobuf.Timestamp repeated_timestamp = 312; | |
249 | repeated google.protobuf.FieldMask repeated_fieldmask = 313; | |
250 | repeated google.protobuf.Struct repeated_struct = 324; | |
251 | repeated google.protobuf.Any repeated_any = 315; | |
252 | repeated google.protobuf.Value repeated_value = 316; | |
253 | ||
254 | // Test field-name-to-JSON-name convention. | |
255 | // (protobuf says names can be any valid C/C++ identifier.) | |
256 | int32 fieldname1 = 401; | |
257 | int32 field_name2 = 402; | |
258 | int32 _field_name3 = 403; | |
259 | int32 field__name4_ = 404; | |
260 | int32 field0name5 = 405; | |
261 | int32 field_0_name6 = 406; | |
262 | int32 fieldName7 = 407; | |
263 | int32 FieldName8 = 408; | |
264 | int32 field_Name9 = 409; | |
265 | int32 Field_Name10 = 410; | |
266 | int32 FIELD_NAME11 = 411; | |
267 | int32 FIELD_name12 = 412; | |
268 | int32 __field_name13 = 413; | |
269 | int32 __Field_name14 = 414; | |
270 | int32 field__name15 = 415; | |
271 | int32 field__Name16 = 416; | |
272 | int32 field_name17__ = 417; | |
273 | int32 Field_name18__ = 418; | |
274 | } | |
275 | ||
276 | message ForeignMessage { | |
277 | int32 c = 1; | |
278 | } | |
279 | ||
280 | enum ForeignEnum { | |
281 | FOREIGN_FOO = 0; | |
282 | FOREIGN_BAR = 1; | |
283 | FOREIGN_BAZ = 2; | |
284 | } |
0 | // Go support for Protocol Buffers - Google's data interchange format | |
1 | // | |
2 | // Copyright 2016 The Go Authors. All rights reserved. | |
3 | // https://github.com/golang/protobuf | |
4 | // | |
5 | // Redistribution and use in source and binary forms, with or without | |
6 | // modification, are permitted provided that the following conditions are | |
7 | // met: | |
8 | // | |
9 | // * Redistributions of source code must retain the above copyright | |
10 | // notice, this list of conditions and the following disclaimer. | |
11 | // * Redistributions in binary form must reproduce the above | |
12 | // copyright notice, this list of conditions and the following disclaimer | |
13 | // in the documentation and/or other materials provided with the | |
14 | // distribution. | |
15 | // * Neither the name of Google Inc. nor the names of its | |
16 | // contributors may be used to endorse or promote products derived from | |
17 | // this software without specific prior written permission. | |
18 | // | |
19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
20 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
21 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
22 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
23 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
24 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
25 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
26 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
27 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
28 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
29 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
30 | ||
31 | // Package descriptor provides functions for obtaining protocol buffer | |
32 | // descriptors for generated Go types. | |
33 | // | |
34 | // These functions cannot go in package proto because they depend on the | |
35 | // generated protobuf descriptor messages, which themselves depend on proto. | |
36 | package descriptor | |
37 | ||
38 | import ( | |
39 | "bytes" | |
40 | "compress/gzip" | |
41 | "fmt" | |
42 | "io/ioutil" | |
43 | ||
44 | "github.com/golang/protobuf/proto" | |
45 | protobuf "github.com/golang/protobuf/protoc-gen-go/descriptor" | |
46 | ) | |
47 | ||
48 | // extractFile extracts a FileDescriptorProto from a gzip'd buffer. | |
49 | func extractFile(gz []byte) (*protobuf.FileDescriptorProto, error) { | |
50 | r, err := gzip.NewReader(bytes.NewReader(gz)) | |
51 | if err != nil { | |
52 | return nil, fmt.Errorf("failed to open gzip reader: %v", err) | |
53 | } | |
54 | defer r.Close() | |
55 | ||
56 | b, err := ioutil.ReadAll(r) | |
57 | if err != nil { | |
58 | return nil, fmt.Errorf("failed to uncompress descriptor: %v", err) | |
59 | } | |
60 | ||
61 | fd := new(protobuf.FileDescriptorProto) | |
62 | if err := proto.Unmarshal(b, fd); err != nil { | |
63 | return nil, fmt.Errorf("malformed FileDescriptorProto: %v", err) | |
64 | } | |
65 | ||
66 | return fd, nil | |
67 | } | |
68 | ||
69 | // Message is a proto.Message with a method to return its descriptor. | |
70 | // | |
71 | // Message types generated by the protocol compiler always satisfy | |
72 | // the Message interface. | |
73 | type Message interface { | |
74 | proto.Message | |
75 | Descriptor() ([]byte, []int) | |
76 | } | |
77 | ||
78 | // ForMessage returns a FileDescriptorProto and a DescriptorProto from within it | |
79 | // describing the given message. | |
80 | func ForMessage(msg Message) (fd *protobuf.FileDescriptorProto, md *protobuf.DescriptorProto) { | |
81 | gz, path := msg.Descriptor() | |
82 | fd, err := extractFile(gz) | |
83 | if err != nil { | |
84 | panic(fmt.Sprintf("invalid FileDescriptorProto for %T: %v", msg, err)) | |
85 | } | |
86 | ||
87 | md = fd.MessageType[path[0]] | |
88 | for _, i := range path[1:] { | |
89 | md = md.NestedType[i] | |
90 | } | |
91 | return fd, md | |
92 | } |
0 | package descriptor_test | |
1 | ||
2 | import ( | |
3 | "fmt" | |
4 | "testing" | |
5 | ||
6 | "github.com/golang/protobuf/descriptor" | |
7 | tpb "github.com/golang/protobuf/proto/testdata" | |
8 | protobuf "github.com/golang/protobuf/protoc-gen-go/descriptor" | |
9 | ) | |
10 | ||
11 | func TestMessage(t *testing.T) { | |
12 | var msg *protobuf.DescriptorProto | |
13 | fd, md := descriptor.ForMessage(msg) | |
14 | if pkg, want := fd.GetPackage(), "google.protobuf"; pkg != want { | |
15 | t.Errorf("descriptor.ForMessage(%T).GetPackage() = %q; want %q", msg, pkg, want) | |
16 | } | |
17 | if name, want := md.GetName(), "DescriptorProto"; name != want { | |
18 | t.Fatalf("descriptor.ForMessage(%T).GetName() = %q; want %q", msg, name, want) | |
19 | } | |
20 | } | |
21 | ||
22 | func Example_Options() { | |
23 | var msg *tpb.MyMessageSet | |
24 | _, md := descriptor.ForMessage(msg) | |
25 | if md.GetOptions().GetMessageSetWireFormat() { | |
26 | fmt.Printf("%v uses option message_set_wire_format.\n", md.GetName()) | |
27 | } | |
28 | ||
29 | // Output: | |
30 | // MyMessageSet uses option message_set_wire_format. | |
31 | } |
43 | 43 | "errors" |
44 | 44 | "fmt" |
45 | 45 | "io" |
46 | "math" | |
46 | 47 | "reflect" |
47 | 48 | "sort" |
48 | 49 | "strconv" |
50 | 51 | "time" |
51 | 52 | |
52 | 53 | "github.com/golang/protobuf/proto" |
54 | ||
55 | stpb "github.com/golang/protobuf/ptypes/struct" | |
53 | 56 | ) |
54 | 57 | |
55 | 58 | // Marshaler is a configurable object for converting between |
71 | 74 | OrigName bool |
72 | 75 | } |
73 | 76 | |
77 | // JSONPBMarshaler is implemented by protobuf messages that customize the | |
78 | // way they are marshaled to JSON. Messages that implement this should | |
79 | // also implement JSONPBUnmarshaler so that the custom format can be | |
80 | // parsed. | |
81 | type JSONPBMarshaler interface { | |
82 | MarshalJSONPB(*Marshaler) ([]byte, error) | |
83 | } | |
84 | ||
85 | // JSONPBUnmarshaler is implemented by protobuf messages that customize | |
86 | // the way they are unmarshaled from JSON. Messages that implement this | |
87 | // should also implement JSONPBMarshaler so that the custom format can be | |
88 | // produced. | |
89 | type JSONPBUnmarshaler interface { | |
90 | UnmarshalJSONPB(*Unmarshaler, []byte) error | |
91 | } | |
92 | ||
74 | 93 | // Marshal marshals a protocol buffer into JSON. |
75 | 94 | func (m *Marshaler) Marshal(out io.Writer, pb proto.Message) error { |
76 | 95 | writer := &errWriter{writer: out} |
88 | 107 | |
89 | 108 | type int32Slice []int32 |
90 | 109 | |
110 | var nonFinite = map[string]float64{ | |
111 | `"NaN"`: math.NaN(), | |
112 | `"Infinity"`: math.Inf(1), | |
113 | `"-Infinity"`: math.Inf(-1), | |
114 | } | |
115 | ||
91 | 116 | // For sorting extensions ids to ensure stable output. |
92 | 117 | func (s int32Slice) Len() int { return len(s) } |
93 | 118 | func (s int32Slice) Less(i, j int) bool { return s[i] < s[j] } |
99 | 124 | |
100 | 125 | // marshalObject writes a struct to the Writer. |
101 | 126 | func (m *Marshaler) marshalObject(out *errWriter, v proto.Message, indent, typeURL string) error { |
127 | if jsm, ok := v.(JSONPBMarshaler); ok { | |
128 | b, err := jsm.MarshalJSONPB(m) | |
129 | if err != nil { | |
130 | return err | |
131 | } | |
132 | if typeURL != "" { | |
133 | // we are marshaling this object to an Any type | |
134 | var js map[string]*json.RawMessage | |
135 | if err = json.Unmarshal(b, &js); err != nil { | |
136 | return fmt.Errorf("type %T produced invalid JSON: %v", v, err) | |
137 | } | |
138 | turl, err := json.Marshal(typeURL) | |
139 | if err != nil { | |
140 | return fmt.Errorf("failed to marshal type URL %q to JSON: %v", typeURL, err) | |
141 | } | |
142 | js["@type"] = (*json.RawMessage)(&turl) | |
143 | if b, err = json.Marshal(js); err != nil { | |
144 | return err | |
145 | } | |
146 | } | |
147 | ||
148 | out.write(string(b)) | |
149 | return out.err | |
150 | } | |
151 | ||
102 | 152 | s := reflect.ValueOf(v).Elem() |
103 | 153 | |
104 | 154 | // Handle well-known types. |
125 | 175 | out.write(x) |
126 | 176 | out.write(`s"`) |
127 | 177 | return out.err |
128 | case "Struct": | |
129 | // Let marshalValue handle the `fields` map. | |
178 | case "Struct", "ListValue": | |
179 | // Let marshalValue handle the `Struct.fields` map or the `ListValue.values` slice. | |
130 | 180 | // TODO: pass the correct Properties if needed. |
131 | 181 | return m.marshalValue(out, &proto.Properties{}, s.Field(0), indent) |
132 | 182 | case "Timestamp": |
179 | 229 | |
180 | 230 | // IsNil will panic on most value kinds. |
181 | 231 | switch value.Kind() { |
182 | case reflect.Chan, reflect.Func, reflect.Interface, reflect.Map, reflect.Ptr, reflect.Slice: | |
232 | case reflect.Chan, reflect.Func, reflect.Interface: | |
183 | 233 | if value.IsNil() { |
184 | 234 | continue |
185 | 235 | } |
205 | 255 | } |
206 | 256 | case reflect.String: |
207 | 257 | if value.Len() == 0 { |
258 | continue | |
259 | } | |
260 | case reflect.Map, reflect.Ptr, reflect.Slice: | |
261 | if value.IsNil() { | |
208 | 262 | continue |
209 | 263 | } |
210 | 264 | } |
370 | 424 | |
371 | 425 | // marshalValue writes the value to the Writer. |
372 | 426 | func (m *Marshaler) marshalValue(out *errWriter, prop *proto.Properties, v reflect.Value, indent string) error { |
373 | ||
374 | 427 | var err error |
375 | 428 | v = reflect.Indirect(v) |
429 | ||
430 | // Handle nil pointer | |
431 | if v.Kind() == reflect.Invalid { | |
432 | out.write("null") | |
433 | return out.err | |
434 | } | |
376 | 435 | |
377 | 436 | // Handle repeated elements. |
378 | 437 | if v.Kind() == reflect.Slice && v.Type().Elem().Kind() != reflect.Uint8 { |
403 | 462 | |
404 | 463 | // Handle well-known types. |
405 | 464 | // Most are handled up in marshalObject (because 99% are messages). |
406 | type wkt interface { | |
407 | XXX_WellKnownType() string | |
408 | } | |
409 | 465 | if wkt, ok := v.Interface().(wkt); ok { |
410 | 466 | switch wkt.XXX_WellKnownType() { |
411 | 467 | case "NullValue": |
493 | 549 | return out.err |
494 | 550 | } |
495 | 551 | |
552 | // Handle non-finite floats, e.g. NaN, Infinity and -Infinity. | |
553 | if v.Kind() == reflect.Float32 || v.Kind() == reflect.Float64 { | |
554 | f := v.Float() | |
555 | var sval string | |
556 | switch { | |
557 | case math.IsInf(f, 1): | |
558 | sval = `"Infinity"` | |
559 | case math.IsInf(f, -1): | |
560 | sval = `"-Infinity"` | |
561 | case math.IsNaN(f): | |
562 | sval = `"NaN"` | |
563 | } | |
564 | if sval != "" { | |
565 | out.write(sval) | |
566 | return out.err | |
567 | } | |
568 | } | |
569 | ||
496 | 570 | // Default handling defers to the encoding/json library. |
497 | 571 | b, err := json.Marshal(v.Interface()) |
498 | 572 | if err != nil { |
564 | 638 | |
565 | 639 | // Allocate memory for pointer fields. |
566 | 640 | if targetType.Kind() == reflect.Ptr { |
641 | // If input value is "null" and target is a pointer type, then the field should be treated as not set | |
642 | // UNLESS the target is structpb.Value, in which case it should be set to structpb.NullValue. | |
643 | if string(inputValue) == "null" && targetType != reflect.TypeOf(&stpb.Value{}) { | |
644 | return nil | |
645 | } | |
567 | 646 | target.Set(reflect.New(targetType.Elem())) |
647 | ||
568 | 648 | return u.unmarshalValue(target.Elem(), inputValue, prop) |
569 | 649 | } |
570 | 650 | |
571 | // Handle well-known types. | |
572 | type wkt interface { | |
573 | XXX_WellKnownType() string | |
574 | } | |
575 | if wkt, ok := target.Addr().Interface().(wkt); ok { | |
576 | switch wkt.XXX_WellKnownType() { | |
651 | if jsu, ok := target.Addr().Interface().(JSONPBUnmarshaler); ok { | |
652 | return jsu.UnmarshalJSONPB(u, []byte(inputValue)) | |
653 | } | |
654 | ||
655 | // Handle well-known types that are not pointers. | |
656 | if w, ok := target.Addr().Interface().(wkt); ok { | |
657 | switch w.XXX_WellKnownType() { | |
577 | 658 | case "DoubleValue", "FloatValue", "Int64Value", "UInt64Value", |
578 | 659 | "Int32Value", "UInt32Value", "BoolValue", "StringValue", "BytesValue": |
579 | // "Wrappers use the same representation in JSON | |
580 | // as the wrapped primitive type, except that null is allowed." | |
581 | // encoding/json will turn JSON `null` into Go `nil`, | |
582 | // so we don't have to do any extra work. | |
583 | 660 | return u.unmarshalValue(target.Field(0), inputValue, prop) |
584 | 661 | case "Any": |
585 | return fmt.Errorf("unmarshaling Any not supported yet") | |
662 | // Use json.RawMessage pointer type instead of value to support pre-1.8 version. | |
663 | // 1.8 changed RawMessage.MarshalJSON from pointer type to value type, see | |
664 | // https://github.com/golang/go/issues/14493 | |
665 | var jsonFields map[string]*json.RawMessage | |
666 | if err := json.Unmarshal(inputValue, &jsonFields); err != nil { | |
667 | return err | |
668 | } | |
669 | ||
670 | val, ok := jsonFields["@type"] | |
671 | if !ok || val == nil { | |
672 | return errors.New("Any JSON doesn't have '@type'") | |
673 | } | |
674 | ||
675 | var turl string | |
676 | if err := json.Unmarshal([]byte(*val), &turl); err != nil { | |
677 | return fmt.Errorf("can't unmarshal Any's '@type': %q", *val) | |
678 | } | |
679 | target.Field(0).SetString(turl) | |
680 | ||
681 | mname := turl | |
682 | if slash := strings.LastIndex(mname, "/"); slash >= 0 { | |
683 | mname = mname[slash+1:] | |
684 | } | |
685 | mt := proto.MessageType(mname) | |
686 | if mt == nil { | |
687 | return fmt.Errorf("unknown message type %q", mname) | |
688 | } | |
689 | ||
690 | m := reflect.New(mt.Elem()).Interface().(proto.Message) | |
691 | if _, ok := m.(wkt); ok { | |
692 | val, ok := jsonFields["value"] | |
693 | if !ok { | |
694 | return errors.New("Any JSON doesn't have 'value'") | |
695 | } | |
696 | ||
697 | if err := u.unmarshalValue(reflect.ValueOf(m).Elem(), *val, nil); err != nil { | |
698 | return fmt.Errorf("can't unmarshal Any nested proto %T: %v", m, err) | |
699 | } | |
700 | } else { | |
701 | delete(jsonFields, "@type") | |
702 | nestedProto, err := json.Marshal(jsonFields) | |
703 | if err != nil { | |
704 | return fmt.Errorf("can't generate JSON for Any's nested proto to be unmarshaled: %v", err) | |
705 | } | |
706 | ||
707 | if err = u.unmarshalValue(reflect.ValueOf(m).Elem(), nestedProto, nil); err != nil { | |
708 | return fmt.Errorf("can't unmarshal Any nested proto %T: %v", m, err) | |
709 | } | |
710 | } | |
711 | ||
712 | b, err := proto.Marshal(m) | |
713 | if err != nil { | |
714 | return fmt.Errorf("can't marshal proto %T into Any.Value: %v", m, err) | |
715 | } | |
716 | target.Field(1).SetBytes(b) | |
717 | ||
718 | return nil | |
586 | 719 | case "Duration": |
587 | 720 | unq, err := strconv.Unquote(string(inputValue)) |
588 | 721 | if err != nil { |
589 | 722 | return err |
590 | 723 | } |
724 | ||
591 | 725 | d, err := time.ParseDuration(unq) |
592 | 726 | if err != nil { |
593 | 727 | return fmt.Errorf("bad Duration: %v", err) |
594 | 728 | } |
729 | ||
595 | 730 | ns := d.Nanoseconds() |
596 | 731 | s := ns / 1e9 |
597 | 732 | ns %= 1e9 |
603 | 738 | if err != nil { |
604 | 739 | return err |
605 | 740 | } |
741 | ||
606 | 742 | t, err := time.Parse(time.RFC3339Nano, unq) |
607 | 743 | if err != nil { |
608 | 744 | return fmt.Errorf("bad Timestamp: %v", err) |
609 | 745 | } |
610 | ns := t.UnixNano() | |
611 | s := ns / 1e9 | |
612 | ns %= 1e9 | |
613 | target.Field(0).SetInt(s) | |
614 | target.Field(1).SetInt(ns) | |
746 | ||
747 | target.Field(0).SetInt(t.Unix()) | |
748 | target.Field(1).SetInt(int64(t.Nanosecond())) | |
749 | return nil | |
750 | case "Struct": | |
751 | var m map[string]json.RawMessage | |
752 | if err := json.Unmarshal(inputValue, &m); err != nil { | |
753 | return fmt.Errorf("bad StructValue: %v", err) | |
754 | } | |
755 | ||
756 | target.Field(0).Set(reflect.ValueOf(map[string]*stpb.Value{})) | |
757 | for k, jv := range m { | |
758 | pv := &stpb.Value{} | |
759 | if err := u.unmarshalValue(reflect.ValueOf(pv).Elem(), jv, prop); err != nil { | |
760 | return fmt.Errorf("bad value in StructValue for key %q: %v", k, err) | |
761 | } | |
762 | target.Field(0).SetMapIndex(reflect.ValueOf(k), reflect.ValueOf(pv)) | |
763 | } | |
764 | return nil | |
765 | case "ListValue": | |
766 | var s []json.RawMessage | |
767 | if err := json.Unmarshal(inputValue, &s); err != nil { | |
768 | return fmt.Errorf("bad ListValue: %v", err) | |
769 | } | |
770 | ||
771 | target.Field(0).Set(reflect.ValueOf(make([]*stpb.Value, len(s), len(s)))) | |
772 | for i, sv := range s { | |
773 | if err := u.unmarshalValue(target.Field(0).Index(i), sv, prop); err != nil { | |
774 | return err | |
775 | } | |
776 | } | |
777 | return nil | |
778 | case "Value": | |
779 | ivStr := string(inputValue) | |
780 | if ivStr == "null" { | |
781 | target.Field(0).Set(reflect.ValueOf(&stpb.Value_NullValue{})) | |
782 | } else if v, err := strconv.ParseFloat(ivStr, 0); err == nil { | |
783 | target.Field(0).Set(reflect.ValueOf(&stpb.Value_NumberValue{v})) | |
784 | } else if v, err := strconv.Unquote(ivStr); err == nil { | |
785 | target.Field(0).Set(reflect.ValueOf(&stpb.Value_StringValue{v})) | |
786 | } else if v, err := strconv.ParseBool(ivStr); err == nil { | |
787 | target.Field(0).Set(reflect.ValueOf(&stpb.Value_BoolValue{v})) | |
788 | } else if err := json.Unmarshal(inputValue, &[]json.RawMessage{}); err == nil { | |
789 | lv := &stpb.ListValue{} | |
790 | target.Field(0).Set(reflect.ValueOf(&stpb.Value_ListValue{lv})) | |
791 | return u.unmarshalValue(reflect.ValueOf(lv).Elem(), inputValue, prop) | |
792 | } else if err := json.Unmarshal(inputValue, &map[string]json.RawMessage{}); err == nil { | |
793 | sv := &stpb.Struct{} | |
794 | target.Field(0).Set(reflect.ValueOf(&stpb.Value_StructValue{sv})) | |
795 | return u.unmarshalValue(reflect.ValueOf(sv).Elem(), inputValue, prop) | |
796 | } else { | |
797 | return fmt.Errorf("unrecognized type for Value %q", ivStr) | |
798 | } | |
615 | 799 | return nil |
616 | 800 | } |
617 | 801 | } |
696 | 880 | } |
697 | 881 | } |
698 | 882 | } |
883 | // Handle proto2 extensions. | |
884 | if len(jsonFields) > 0 { | |
885 | if ep, ok := target.Addr().Interface().(proto.Message); ok { | |
886 | for _, ext := range proto.RegisteredExtensions(ep) { | |
887 | name := fmt.Sprintf("[%s]", ext.Name) | |
888 | raw, ok := jsonFields[name] | |
889 | if !ok { | |
890 | continue | |
891 | } | |
892 | delete(jsonFields, name) | |
893 | nv := reflect.New(reflect.TypeOf(ext.ExtensionType).Elem()) | |
894 | if err := u.unmarshalValue(nv.Elem(), raw, nil); err != nil { | |
895 | return err | |
896 | } | |
897 | if err := proto.SetExtension(ep, ext, nv.Interface()); err != nil { | |
898 | return err | |
899 | } | |
900 | } | |
901 | } | |
902 | } | |
699 | 903 | if !u.AllowUnknownFields && len(jsonFields) > 0 { |
700 | 904 | // Pick any field to be the scapegoat. |
701 | 905 | var f string |
714 | 918 | if err := json.Unmarshal(inputValue, &slc); err != nil { |
715 | 919 | return err |
716 | 920 | } |
717 | len := len(slc) | |
718 | target.Set(reflect.MakeSlice(targetType, len, len)) | |
719 | for i := 0; i < len; i++ { | |
720 | if err := u.unmarshalValue(target.Index(i), slc[i], prop); err != nil { | |
721 | return err | |
921 | if slc != nil { | |
922 | l := len(slc) | |
923 | target.Set(reflect.MakeSlice(targetType, l, l)) | |
924 | for i := 0; i < l; i++ { | |
925 | if err := u.unmarshalValue(target.Index(i), slc[i], prop); err != nil { | |
926 | return err | |
927 | } | |
722 | 928 | } |
723 | 929 | } |
724 | 930 | return nil |
730 | 936 | if err := json.Unmarshal(inputValue, &mp); err != nil { |
731 | 937 | return err |
732 | 938 | } |
733 | target.Set(reflect.MakeMap(targetType)) | |
734 | var keyprop, valprop *proto.Properties | |
735 | if prop != nil { | |
736 | // These could still be nil if the protobuf metadata is broken somehow. | |
737 | // TODO: This won't work because the fields are unexported. | |
738 | // We should probably just reparse them. | |
739 | //keyprop, valprop = prop.mkeyprop, prop.mvalprop | |
740 | } | |
741 | for ks, raw := range mp { | |
742 | // Unmarshal map key. The core json library already decoded the key into a | |
743 | // string, so we handle that specially. Other types were quoted post-serialization. | |
744 | var k reflect.Value | |
745 | if targetType.Key().Kind() == reflect.String { | |
746 | k = reflect.ValueOf(ks) | |
747 | } else { | |
748 | k = reflect.New(targetType.Key()).Elem() | |
749 | if err := u.unmarshalValue(k, json.RawMessage(ks), keyprop); err != nil { | |
939 | if mp != nil { | |
940 | target.Set(reflect.MakeMap(targetType)) | |
941 | var keyprop, valprop *proto.Properties | |
942 | if prop != nil { | |
943 | // These could still be nil if the protobuf metadata is broken somehow. | |
944 | // TODO: This won't work because the fields are unexported. | |
945 | // We should probably just reparse them. | |
946 | //keyprop, valprop = prop.mkeyprop, prop.mvalprop | |
947 | } | |
948 | for ks, raw := range mp { | |
949 | // Unmarshal map key. The core json library already decoded the key into a | |
950 | // string, so we handle that specially. Other types were quoted post-serialization. | |
951 | var k reflect.Value | |
952 | if targetType.Key().Kind() == reflect.String { | |
953 | k = reflect.ValueOf(ks) | |
954 | } else { | |
955 | k = reflect.New(targetType.Key()).Elem() | |
956 | if err := u.unmarshalValue(k, json.RawMessage(ks), keyprop); err != nil { | |
957 | return err | |
958 | } | |
959 | } | |
960 | ||
961 | // Unmarshal map value. | |
962 | v := reflect.New(targetType.Elem()).Elem() | |
963 | if err := u.unmarshalValue(v, raw, valprop); err != nil { | |
750 | 964 | return err |
751 | 965 | } |
752 | } | |
753 | ||
754 | // Unmarshal map value. | |
755 | v := reflect.New(targetType.Elem()).Elem() | |
756 | if err := u.unmarshalValue(v, raw, valprop); err != nil { | |
757 | return err | |
758 | } | |
759 | target.SetMapIndex(k, v) | |
966 | target.SetMapIndex(k, v) | |
967 | } | |
760 | 968 | } |
761 | 969 | return nil |
762 | 970 | } |
766 | 974 | isNum := targetType.Kind() == reflect.Int64 || targetType.Kind() == reflect.Uint64 |
767 | 975 | if isNum && strings.HasPrefix(string(inputValue), `"`) { |
768 | 976 | inputValue = inputValue[1 : len(inputValue)-1] |
977 | } | |
978 | ||
979 | // Non-finite numbers can be encoded as strings. | |
980 | isFloat := targetType.Kind() == reflect.Float32 || targetType.Kind() == reflect.Float64 | |
981 | if isFloat { | |
982 | if num, ok := nonFinite[string(inputValue)]; ok { | |
983 | target.SetFloat(num) | |
984 | return nil | |
985 | } | |
769 | 986 | } |
770 | 987 | |
771 | 988 | // Use the encoding/json for parsing other value types. |
34 | 34 | "bytes" |
35 | 35 | "encoding/json" |
36 | 36 | "io" |
37 | "math" | |
37 | 38 | "reflect" |
38 | 39 | "strings" |
39 | 40 | "testing" |
42 | 43 | |
43 | 44 | pb "github.com/golang/protobuf/jsonpb/jsonpb_test_proto" |
44 | 45 | proto3pb "github.com/golang/protobuf/proto/proto3_proto" |
46 | "github.com/golang/protobuf/ptypes" | |
45 | 47 | anypb "github.com/golang/protobuf/ptypes/any" |
46 | 48 | durpb "github.com/golang/protobuf/ptypes/duration" |
47 | 49 | stpb "github.com/golang/protobuf/ptypes/struct" |
107 | 109 | RSint32: []int32{-1, -2, -3}, |
108 | 110 | RSint64: []int64{-6789012345, -3456789012}, |
109 | 111 | RFloat: []float32{3.14, 6.28}, |
110 | RDouble: []float64{299792458, 6.62606957e-34}, | |
112 | RDouble: []float64{299792458 * 1e20, 6.62606957e-34}, | |
111 | 113 | RString: []string{"happy", "days"}, |
112 | 114 | RBytes: [][]byte{[]byte("skittles"), []byte("m&m's")}, |
113 | 115 | } |
121 | 123 | `"rSint32":[-1,-2,-3],` + |
122 | 124 | `"rSint64":["-6789012345","-3456789012"],` + |
123 | 125 | `"rFloat":[3.14,6.28],` + |
124 | `"rDouble":[2.99792458e+08,6.62606957e-34],` + | |
126 | `"rDouble":[2.99792458e+28,6.62606957e-34],` + | |
125 | 127 | `"rString":["happy","days"],` + |
126 | 128 | `"rBytes":["c2tpdHRsZXM=","bSZtJ3M="]` + |
127 | 129 | `}` |
164 | 166 | 6.28 |
165 | 167 | ], |
166 | 168 | "rDouble": [ |
167 | 2.99792458e+08, | |
169 | 2.99792458e+28, | |
168 | 170 | 6.62606957e-34 |
169 | 171 | ], |
170 | 172 | "rString": [ |
306 | 308 | "value": "1.212s" |
307 | 309 | } |
308 | 310 | }` |
311 | ||
312 | nonFinites = &pb.NonFinites{ | |
313 | FNan: proto.Float32(float32(math.NaN())), | |
314 | FPinf: proto.Float32(float32(math.Inf(1))), | |
315 | FNinf: proto.Float32(float32(math.Inf(-1))), | |
316 | DNan: proto.Float64(float64(math.NaN())), | |
317 | DPinf: proto.Float64(float64(math.Inf(1))), | |
318 | DNinf: proto.Float64(float64(math.Inf(-1))), | |
319 | } | |
320 | nonFinitesJSON = `{` + | |
321 | `"fNan":"NaN",` + | |
322 | `"fPinf":"Infinity",` + | |
323 | `"fNinf":"-Infinity",` + | |
324 | `"dNan":"NaN",` + | |
325 | `"dPinf":"Infinity",` + | |
326 | `"dNinf":"-Infinity"` + | |
327 | `}` | |
309 | 328 | ) |
310 | 329 | |
311 | 330 | func init() { |
325 | 344 | }{ |
326 | 345 | {"simple flat object", marshaler, simpleObject, simpleObjectJSON}, |
327 | 346 | {"simple pretty object", marshalerAllOptions, simpleObject, simpleObjectPrettyJSON}, |
347 | {"non-finite floats fields object", marshaler, nonFinites, nonFinitesJSON}, | |
328 | 348 | {"repeated fields flat object", marshaler, repeatsObject, repeatsObjectJSON}, |
329 | 349 | {"repeated fields pretty object", marshalerAllOptions, repeatsObject, repeatsObjectPrettyJSON}, |
330 | 350 | {"nested message/enum flat object", marshaler, complexObject, complexObjectJSON}, |
349 | 369 | `{"rFunny":[1,2]}`}, |
350 | 370 | {"empty value", marshaler, &pb.Simple3{}, `{}`}, |
351 | 371 | {"empty value emitted", Marshaler{EmitDefaults: true}, &pb.Simple3{}, `{"dub":0}`}, |
372 | {"empty repeated emitted", Marshaler{EmitDefaults: true}, &pb.SimpleSlice3{}, `{"slices":[]}`}, | |
373 | {"empty map emitted", Marshaler{EmitDefaults: true}, &pb.SimpleMap3{}, `{"stringy":{}}`}, | |
374 | {"nested struct null", Marshaler{EmitDefaults: true}, &pb.SimpleNull3{}, `{"simple":null}`}, | |
352 | 375 | {"map<int64, int32>", marshaler, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}, `{"nummy":{"1":2,"3":4}}`}, |
353 | 376 | {"map<int64, int32>", marshalerAllOptions, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}, nummyPrettyJSON}, |
354 | 377 | {"map<string, string>", marshaler, |
355 | 378 | &pb.Mappy{Strry: map[string]string{`"one"`: "two", "three": "four"}}, |
356 | 379 | `{"strry":{"\"one\"":"two","three":"four"}}`}, |
357 | 380 | {"map<int32, Object>", marshaler, |
358 | &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: &pb.Simple3{Dub: 1}}}, `{"objjy":{"1":{"dub":1}}}`}, | |
381 | &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: {Dub: 1}}}, `{"objjy":{"1":{"dub":1}}}`}, | |
359 | 382 | {"map<int32, Object>", marshalerAllOptions, |
360 | &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: &pb.Simple3{Dub: 1}}}, objjyPrettyJSON}, | |
383 | &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: {Dub: 1}}}, objjyPrettyJSON}, | |
361 | 384 | {"map<int64, string>", marshaler, &pb.Mappy{Buggy: map[int64]string{1234: "yup"}}, |
362 | 385 | `{"buggy":{"1234":"yup"}}`}, |
363 | 386 | {"map<bool, bool>", marshaler, &pb.Mappy{Booly: map[bool]bool{false: true}}, `{"booly":{"false":true}}`}, |
371 | 394 | {"proto2 map<int64, string>", marshaler, &pb.Maps{MInt64Str: map[int64]string{213: "cat"}}, |
372 | 395 | `{"mInt64Str":{"213":"cat"}}`}, |
373 | 396 | {"proto2 map<bool, Object>", marshaler, |
374 | &pb.Maps{MBoolSimple: map[bool]*pb.Simple{true: &pb.Simple{OInt32: proto.Int32(1)}}}, | |
397 | &pb.Maps{MBoolSimple: map[bool]*pb.Simple{true: {OInt32: proto.Int32(1)}}}, | |
375 | 398 | `{"mBoolSimple":{"true":{"oInt32":1}}}`}, |
376 | 399 | {"oneof, not set", marshaler, &pb.MsgWithOneof{}, `{}`}, |
377 | 400 | {"oneof, set", marshaler, &pb.MsgWithOneof{Union: &pb.MsgWithOneof_Title{"Grand Poobah"}}, `{"title":"Grand Poobah"}`}, |
385 | 408 | {"Duration", marshaler, &pb.KnownTypes{Dur: &durpb.Duration{Seconds: 3}}, `{"dur":"3.000s"}`}, |
386 | 409 | {"Struct", marshaler, &pb.KnownTypes{St: &stpb.Struct{ |
387 | 410 | Fields: map[string]*stpb.Value{ |
388 | "one": &stpb.Value{Kind: &stpb.Value_StringValue{"loneliest number"}}, | |
389 | "two": &stpb.Value{Kind: &stpb.Value_NullValue{stpb.NullValue_NULL_VALUE}}, | |
411 | "one": {Kind: &stpb.Value_StringValue{"loneliest number"}}, | |
412 | "two": {Kind: &stpb.Value_NullValue{stpb.NullValue_NULL_VALUE}}, | |
390 | 413 | }, |
391 | 414 | }}, `{"st":{"one":"loneliest number","two":null}}`}, |
415 | {"empty ListValue", marshaler, &pb.KnownTypes{Lv: &stpb.ListValue{}}, `{"lv":[]}`}, | |
416 | {"basic ListValue", marshaler, &pb.KnownTypes{Lv: &stpb.ListValue{Values: []*stpb.Value{ | |
417 | {Kind: &stpb.Value_StringValue{"x"}}, | |
418 | {Kind: &stpb.Value_NullValue{}}, | |
419 | {Kind: &stpb.Value_NumberValue{3}}, | |
420 | {Kind: &stpb.Value_BoolValue{true}}, | |
421 | }}}, `{"lv":["x",null,3,true]}`}, | |
392 | 422 | {"Timestamp", marshaler, &pb.KnownTypes{Ts: &tspb.Timestamp{Seconds: 14e8, Nanos: 21e6}}, `{"ts":"2014-05-13T16:53:20.021Z"}`}, |
423 | {"number Value", marshaler, &pb.KnownTypes{Val: &stpb.Value{Kind: &stpb.Value_NumberValue{1}}}, `{"val":1}`}, | |
424 | {"null Value", marshaler, &pb.KnownTypes{Val: &stpb.Value{Kind: &stpb.Value_NullValue{stpb.NullValue_NULL_VALUE}}}, `{"val":null}`}, | |
425 | {"string number value", marshaler, &pb.KnownTypes{Val: &stpb.Value{Kind: &stpb.Value_StringValue{"9223372036854775807"}}}, `{"val":"9223372036854775807"}`}, | |
426 | {"list of lists Value", marshaler, &pb.KnownTypes{Val: &stpb.Value{ | |
427 | Kind: &stpb.Value_ListValue{&stpb.ListValue{ | |
428 | Values: []*stpb.Value{ | |
429 | {Kind: &stpb.Value_StringValue{"x"}}, | |
430 | {Kind: &stpb.Value_ListValue{&stpb.ListValue{ | |
431 | Values: []*stpb.Value{ | |
432 | {Kind: &stpb.Value_ListValue{&stpb.ListValue{ | |
433 | Values: []*stpb.Value{{Kind: &stpb.Value_StringValue{"y"}}}, | |
434 | }}}, | |
435 | {Kind: &stpb.Value_StringValue{"z"}}, | |
436 | }, | |
437 | }}}, | |
438 | }, | |
439 | }}, | |
440 | }}, `{"val":["x",[["y"],"z"]]}`}, | |
393 | 441 | |
394 | 442 | {"DoubleValue", marshaler, &pb.KnownTypes{Dbl: &wpb.DoubleValue{Value: 1.2}}, `{"dbl":1.2}`}, |
395 | 443 | {"FloatValue", marshaler, &pb.KnownTypes{Flt: &wpb.FloatValue{Value: 1.2}}, `{"flt":1.2}`}, |
410 | 458 | } else if tt.json != json { |
411 | 459 | t.Errorf("%s: got [%v] want [%v]", tt.desc, json, tt.json) |
412 | 460 | } |
461 | } | |
462 | } | |
463 | ||
464 | func TestMarshalJSONPBMarshaler(t *testing.T) { | |
465 | rawJson := `{ "foo": "bar", "baz": [0, 1, 2, 3] }` | |
466 | msg := dynamicMessage{rawJson: rawJson} | |
467 | str, err := new(Marshaler).MarshalToString(&msg) | |
468 | if err != nil { | |
469 | t.Errorf("an unexpected error occurred when marshalling JSONPBMarshaler: %v", err) | |
470 | } | |
471 | if str != rawJson { | |
472 | t.Errorf("marshalling JSON produced incorrect output: got %s, wanted %s", str, rawJson) | |
473 | } | |
474 | } | |
475 | ||
476 | func TestMarshalAnyJSONPBMarshaler(t *testing.T) { | |
477 | msg := dynamicMessage{rawJson: `{ "foo": "bar", "baz": [0, 1, 2, 3] }`} | |
478 | a, err := ptypes.MarshalAny(&msg) | |
479 | if err != nil { | |
480 | t.Errorf("an unexpected error occurred when marshalling to Any: %v", err) | |
481 | } | |
482 | str, err := new(Marshaler).MarshalToString(a) | |
483 | if err != nil { | |
484 | t.Errorf("an unexpected error occurred when marshalling Any to JSON: %v", err) | |
485 | } | |
486 | // after custom marshaling, it's round-tripped through JSON decoding/encoding already, | |
487 | // so the keys are sorted, whitespace is compacted, and "@type" key has been added | |
488 | expected := `{"@type":"type.googleapis.com/` + dynamicMessageName + `","baz":[0,1,2,3],"foo":"bar"}` | |
489 | if str != expected { | |
490 | t.Errorf("marshalling JSON produced incorrect output: got %s, wanted %s", str, expected) | |
413 | 491 | } |
414 | 492 | } |
415 | 493 | |
451 | 529 | }}}, |
452 | 530 | {"unquoted int64 object", Unmarshaler{}, `{"oInt64":-314}`, &pb.Simple{OInt64: proto.Int64(-314)}}, |
453 | 531 | {"unquoted uint64 object", Unmarshaler{}, `{"oUint64":123}`, &pb.Simple{OUint64: proto.Uint64(123)}}, |
532 | {"NaN", Unmarshaler{}, `{"oDouble":"NaN"}`, &pb.Simple{ODouble: proto.Float64(math.NaN())}}, | |
533 | {"Inf", Unmarshaler{}, `{"oFloat":"Infinity"}`, &pb.Simple{OFloat: proto.Float32(float32(math.Inf(1)))}}, | |
534 | {"-Inf", Unmarshaler{}, `{"oDouble":"-Infinity"}`, &pb.Simple{ODouble: proto.Float64(math.Inf(-1))}}, | |
454 | 535 | {"map<int64, int32>", Unmarshaler{}, `{"nummy":{"1":2,"3":4}}`, &pb.Mappy{Nummy: map[int64]int32{1: 2, 3: 4}}}, |
455 | 536 | {"map<string, string>", Unmarshaler{}, `{"strry":{"\"one\"":"two","three":"four"}}`, &pb.Mappy{Strry: map[string]string{`"one"`: "two", "three": "four"}}}, |
456 | {"map<int32, Object>", Unmarshaler{}, `{"objjy":{"1":{"dub":1}}}`, &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: &pb.Simple3{Dub: 1}}}}, | |
537 | {"map<int32, Object>", Unmarshaler{}, `{"objjy":{"1":{"dub":1}}}`, &pb.Mappy{Objjy: map[int32]*pb.Simple3{1: {Dub: 1}}}}, | |
538 | {"proto2 extension", Unmarshaler{}, realNumberJSON, realNumber}, | |
539 | {"Any with message", Unmarshaler{}, anySimpleJSON, anySimple}, | |
540 | {"Any with message and indent", Unmarshaler{}, anySimplePrettyJSON, anySimple}, | |
541 | {"Any with WKT", Unmarshaler{}, anyWellKnownJSON, anyWellKnown}, | |
542 | {"Any with WKT and indent", Unmarshaler{}, anyWellKnownPrettyJSON, anyWellKnown}, | |
457 | 543 | // TODO: This is broken. |
458 | 544 | //{"map<string, enum>", Unmarshaler{}, `{"enumy":{"XIV":"ROMAN"}`, &pb.Mappy{Enumy: map[string]pb.Numeral{"XIV": pb.Numeral_ROMAN}}}, |
459 | 545 | {"map<string, enum as int>", Unmarshaler{}, `{"enumy":{"XIV":2}}`, &pb.Mappy{Enumy: map[string]pb.Numeral{"XIV": pb.Numeral_ROMAN}}}, |
466 | 552 | {"camelName input", Unmarshaler{}, `{"oBool":true}`, &pb.Simple{OBool: proto.Bool(true)}}, |
467 | 553 | |
468 | 554 | {"Duration", Unmarshaler{}, `{"dur":"3.000s"}`, &pb.KnownTypes{Dur: &durpb.Duration{Seconds: 3}}}, |
555 | {"null Duration", Unmarshaler{}, `{"dur":null}`, &pb.KnownTypes{Dur: nil}}, | |
469 | 556 | {"Timestamp", Unmarshaler{}, `{"ts":"2014-05-13T16:53:20.021Z"}`, &pb.KnownTypes{Ts: &tspb.Timestamp{Seconds: 14e8, Nanos: 21e6}}}, |
557 | {"PreEpochTimestamp", Unmarshaler{}, `{"ts":"1969-12-31T23:59:58.999999995Z"}`, &pb.KnownTypes{Ts: &tspb.Timestamp{Seconds: -2, Nanos: 999999995}}}, | |
558 | {"ZeroTimeTimestamp", Unmarshaler{}, `{"ts":"0001-01-01T00:00:00Z"}`, &pb.KnownTypes{Ts: &tspb.Timestamp{Seconds: -62135596800, Nanos: 0}}}, | |
559 | {"null Timestamp", Unmarshaler{}, `{"ts":null}`, &pb.KnownTypes{Ts: nil}}, | |
560 | {"null Struct", Unmarshaler{}, `{"st": null}`, &pb.KnownTypes{St: nil}}, | |
561 | {"empty Struct", Unmarshaler{}, `{"st": {}}`, &pb.KnownTypes{St: &stpb.Struct{}}}, | |
562 | {"basic Struct", Unmarshaler{}, `{"st": {"a": "x", "b": null, "c": 3, "d": true}}`, &pb.KnownTypes{St: &stpb.Struct{Fields: map[string]*stpb.Value{ | |
563 | "a": {Kind: &stpb.Value_StringValue{"x"}}, | |
564 | "b": {Kind: &stpb.Value_NullValue{}}, | |
565 | "c": {Kind: &stpb.Value_NumberValue{3}}, | |
566 | "d": {Kind: &stpb.Value_BoolValue{true}}, | |
567 | }}}}, | |
568 | {"nested Struct", Unmarshaler{}, `{"st": {"a": {"b": 1, "c": [{"d": true}, "f"]}}}`, &pb.KnownTypes{St: &stpb.Struct{Fields: map[string]*stpb.Value{ | |
569 | "a": {Kind: &stpb.Value_StructValue{&stpb.Struct{Fields: map[string]*stpb.Value{ | |
570 | "b": {Kind: &stpb.Value_NumberValue{1}}, | |
571 | "c": {Kind: &stpb.Value_ListValue{&stpb.ListValue{Values: []*stpb.Value{ | |
572 | {Kind: &stpb.Value_StructValue{&stpb.Struct{Fields: map[string]*stpb.Value{"d": {Kind: &stpb.Value_BoolValue{true}}}}}}, | |
573 | {Kind: &stpb.Value_StringValue{"f"}}, | |
574 | }}}}, | |
575 | }}}}, | |
576 | }}}}, | |
577 | {"null ListValue", Unmarshaler{}, `{"lv": null}`, &pb.KnownTypes{Lv: nil}}, | |
578 | {"empty ListValue", Unmarshaler{}, `{"lv": []}`, &pb.KnownTypes{Lv: &stpb.ListValue{}}}, | |
579 | {"basic ListValue", Unmarshaler{}, `{"lv": ["x", null, 3, true]}`, &pb.KnownTypes{Lv: &stpb.ListValue{Values: []*stpb.Value{ | |
580 | {Kind: &stpb.Value_StringValue{"x"}}, | |
581 | {Kind: &stpb.Value_NullValue{}}, | |
582 | {Kind: &stpb.Value_NumberValue{3}}, | |
583 | {Kind: &stpb.Value_BoolValue{true}}, | |
584 | }}}}, | |
585 | {"number Value", Unmarshaler{}, `{"val":1}`, &pb.KnownTypes{Val: &stpb.Value{Kind: &stpb.Value_NumberValue{1}}}}, | |
586 | {"null Value", Unmarshaler{}, `{"val":null}`, &pb.KnownTypes{Val: &stpb.Value{Kind: &stpb.Value_NullValue{stpb.NullValue_NULL_VALUE}}}}, | |
587 | {"bool Value", Unmarshaler{}, `{"val":true}`, &pb.KnownTypes{Val: &stpb.Value{Kind: &stpb.Value_BoolValue{true}}}}, | |
588 | {"string Value", Unmarshaler{}, `{"val":"x"}`, &pb.KnownTypes{Val: &stpb.Value{Kind: &stpb.Value_StringValue{"x"}}}}, | |
589 | {"string number value", Unmarshaler{}, `{"val":"9223372036854775807"}`, &pb.KnownTypes{Val: &stpb.Value{Kind: &stpb.Value_StringValue{"9223372036854775807"}}}}, | |
590 | {"list of lists Value", Unmarshaler{}, `{"val":["x", [["y"], "z"]]}`, &pb.KnownTypes{Val: &stpb.Value{ | |
591 | Kind: &stpb.Value_ListValue{&stpb.ListValue{ | |
592 | Values: []*stpb.Value{ | |
593 | {Kind: &stpb.Value_StringValue{"x"}}, | |
594 | {Kind: &stpb.Value_ListValue{&stpb.ListValue{ | |
595 | Values: []*stpb.Value{ | |
596 | {Kind: &stpb.Value_ListValue{&stpb.ListValue{ | |
597 | Values: []*stpb.Value{{Kind: &stpb.Value_StringValue{"y"}}}, | |
598 | }}}, | |
599 | {Kind: &stpb.Value_StringValue{"z"}}, | |
600 | }, | |
601 | }}}, | |
602 | }, | |
603 | }}}}}, | |
470 | 604 | |
471 | 605 | {"DoubleValue", Unmarshaler{}, `{"dbl":1.2}`, &pb.KnownTypes{Dbl: &wpb.DoubleValue{Value: 1.2}}}, |
472 | 606 | {"FloatValue", Unmarshaler{}, `{"flt":1.2}`, &pb.KnownTypes{Flt: &wpb.FloatValue{Value: 1.2}}}, |
477 | 611 | {"BoolValue", Unmarshaler{}, `{"bool":true}`, &pb.KnownTypes{Bool: &wpb.BoolValue{Value: true}}}, |
478 | 612 | {"StringValue", Unmarshaler{}, `{"str":"plush"}`, &pb.KnownTypes{Str: &wpb.StringValue{Value: "plush"}}}, |
479 | 613 | {"BytesValue", Unmarshaler{}, `{"bytes":"d293"}`, &pb.KnownTypes{Bytes: &wpb.BytesValue{Value: []byte("wow")}}}, |
480 | // `null` is also a permissible value. Let's just test one. | |
481 | {"null DoubleValue", Unmarshaler{}, `{"dbl":null}`, &pb.KnownTypes{Dbl: &wpb.DoubleValue{}}}, | |
614 | ||
615 | // Ensure that `null` as a value ends up with a nil pointer instead of a [type]Value struct. | |
616 | {"null DoubleValue", Unmarshaler{}, `{"dbl":null}`, &pb.KnownTypes{Dbl: nil}}, | |
617 | {"null FloatValue", Unmarshaler{}, `{"flt":null}`, &pb.KnownTypes{Flt: nil}}, | |
618 | {"null Int64Value", Unmarshaler{}, `{"i64":null}`, &pb.KnownTypes{I64: nil}}, | |
619 | {"null UInt64Value", Unmarshaler{}, `{"u64":null}`, &pb.KnownTypes{U64: nil}}, | |
620 | {"null Int32Value", Unmarshaler{}, `{"i32":null}`, &pb.KnownTypes{I32: nil}}, | |
621 | {"null UInt32Value", Unmarshaler{}, `{"u32":null}`, &pb.KnownTypes{U32: nil}}, | |
622 | {"null BoolValue", Unmarshaler{}, `{"bool":null}`, &pb.KnownTypes{Bool: nil}}, | |
623 | {"null StringValue", Unmarshaler{}, `{"str":null}`, &pb.KnownTypes{Str: nil}}, | |
624 | {"null BytesValue", Unmarshaler{}, `{"bytes":null}`, &pb.KnownTypes{Bytes: nil}}, | |
482 | 625 | } |
483 | 626 | |
484 | 627 | func TestUnmarshaling(t *testing.T) { |
498 | 641 | if string(exp) != string(act) { |
499 | 642 | t.Errorf("%s: got [%s] want [%s]", tt.desc, act, exp) |
500 | 643 | } |
644 | } | |
645 | } | |
646 | ||
647 | func TestUnmarshalNullArray(t *testing.T) { | |
648 | var repeats pb.Repeats | |
649 | if err := UnmarshalString(`{"rBool":null}`, &repeats); err != nil { | |
650 | t.Fatal(err) | |
651 | } | |
652 | if !reflect.DeepEqual(repeats, pb.Repeats{}) { | |
653 | t.Errorf("got non-nil fields in [%#v]", repeats) | |
654 | } | |
655 | } | |
656 | ||
657 | func TestUnmarshalNullObject(t *testing.T) { | |
658 | var maps pb.Maps | |
659 | if err := UnmarshalString(`{"mInt64Str":null}`, &maps); err != nil { | |
660 | t.Fatal(err) | |
661 | } | |
662 | if !reflect.DeepEqual(maps, pb.Maps{}) { | |
663 | t.Errorf("got non-nil fields in [%#v]", maps) | |
501 | 664 | } |
502 | 665 | } |
503 | 666 | |
556 | 719 | } |
557 | 720 | } |
558 | 721 | } |
722 | ||
723 | func TestUnmarshalJSONPBUnmarshaler(t *testing.T) { | |
724 | rawJson := `{ "foo": "bar", "baz": [0, 1, 2, 3] }` | |
725 | var msg dynamicMessage | |
726 | if err := Unmarshal(strings.NewReader(rawJson), &msg); err != nil { | |
727 | t.Errorf("an unexpected error occurred when parsing into JSONPBUnmarshaler: %v", err) | |
728 | } | |
729 | if msg.rawJson != rawJson { | |
730 | t.Errorf("message contents not set correctly after unmarshalling JSON: got %s, wanted %s", msg.rawJson, rawJson) | |
731 | } | |
732 | } | |
733 | ||
734 | func TestUnmarshalAnyJSONPBUnmarshaler(t *testing.T) { | |
735 | rawJson := `{ "@type": "blah.com/` + dynamicMessageName + `", "foo": "bar", "baz": [0, 1, 2, 3] }` | |
736 | var got anypb.Any | |
737 | if err := Unmarshal(strings.NewReader(rawJson), &got); err != nil { | |
738 | t.Errorf("an unexpected error occurred when parsing into JSONPBUnmarshaler: %v", err) | |
739 | } | |
740 | ||
741 | dm := &dynamicMessage{rawJson: `{"baz":[0,1,2,3],"foo":"bar"}`} | |
742 | var want anypb.Any | |
743 | if b, err := proto.Marshal(dm); err != nil { | |
744 | t.Errorf("an unexpected error occurred when marshaling message: %v", err) | |
745 | } else { | |
746 | want.TypeUrl = "blah.com/" + dynamicMessageName | |
747 | want.Value = b | |
748 | } | |
749 | ||
750 | if !proto.Equal(&got, &want) { | |
751 | t.Errorf("message contents not set correctly after unmarshalling JSON: got %s, wanted %s", got, want) | |
752 | } | |
753 | } | |
754 | ||
755 | const ( | |
756 | dynamicMessageName = "google.protobuf.jsonpb.testing.dynamicMessage" | |
757 | ) | |
758 | ||
759 | func init() { | |
760 | // we register the custom type below so that we can use it in Any types | |
761 | proto.RegisterType((*dynamicMessage)(nil), dynamicMessageName) | |
762 | } | |
763 | ||
764 | // dynamicMessage implements protobuf.Message but is not a normal generated message type. | |
765 | // It provides implementations of JSONPBMarshaler and JSONPBUnmarshaler for JSON support. | |
766 | type dynamicMessage struct { | |
767 | rawJson string `protobuf:"bytes,1,opt,name=rawJson"` | |
768 | } | |
769 | ||
770 | func (m *dynamicMessage) Reset() { | |
771 | m.rawJson = "{}" | |
772 | } | |
773 | ||
774 | func (m *dynamicMessage) String() string { | |
775 | return m.rawJson | |
776 | } | |
777 | ||
778 | func (m *dynamicMessage) ProtoMessage() { | |
779 | } | |
780 | ||
781 | func (m *dynamicMessage) MarshalJSONPB(jm *Marshaler) ([]byte, error) { | |
782 | return []byte(m.rawJson), nil | |
783 | } | |
784 | ||
785 | func (m *dynamicMessage) UnmarshalJSONPB(jum *Unmarshaler, js []byte) error { | |
786 | m.rawJson = string(js) | |
787 | return nil | |
788 | } |
0 | // Code generated by protoc-gen-go. | |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | 1 | // source: more_test_objects.proto |
2 | // DO NOT EDIT! | |
3 | 2 | |
4 | 3 | /* |
5 | 4 | Package jsonpb is a generated protocol buffer package. |
10 | 9 | |
11 | 10 | It has these top-level messages: |
12 | 11 | Simple3 |
12 | SimpleSlice3 | |
13 | SimpleMap3 | |
14 | SimpleNull3 | |
13 | 15 | Mappy |
14 | 16 | Simple |
17 | NonFinites | |
15 | 18 | Repeats |
16 | 19 | Widget |
17 | 20 | Maps |
69 | 72 | func (m *Simple3) String() string { return proto.CompactTextString(m) } |
70 | 73 | func (*Simple3) ProtoMessage() {} |
71 | 74 | func (*Simple3) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } |
75 | ||
76 | func (m *Simple3) GetDub() float64 { | |
77 | if m != nil { | |
78 | return m.Dub | |
79 | } | |
80 | return 0 | |
81 | } | |
82 | ||
83 | type SimpleSlice3 struct { | |
84 | Slices []string `protobuf:"bytes,1,rep,name=slices" json:"slices,omitempty"` | |
85 | } | |
86 | ||
87 | func (m *SimpleSlice3) Reset() { *m = SimpleSlice3{} } | |
88 | func (m *SimpleSlice3) String() string { return proto.CompactTextString(m) } | |
89 | func (*SimpleSlice3) ProtoMessage() {} | |
90 | func (*SimpleSlice3) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } | |
91 | ||
92 | func (m *SimpleSlice3) GetSlices() []string { | |
93 | if m != nil { | |
94 | return m.Slices | |
95 | } | |
96 | return nil | |
97 | } | |
98 | ||
99 | type SimpleMap3 struct { | |
100 | Stringy map[string]string `protobuf:"bytes,1,rep,name=stringy" json:"stringy,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` | |
101 | } | |
102 | ||
103 | func (m *SimpleMap3) Reset() { *m = SimpleMap3{} } | |
104 | func (m *SimpleMap3) String() string { return proto.CompactTextString(m) } | |
105 | func (*SimpleMap3) ProtoMessage() {} | |
106 | func (*SimpleMap3) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } | |
107 | ||
108 | func (m *SimpleMap3) GetStringy() map[string]string { | |
109 | if m != nil { | |
110 | return m.Stringy | |
111 | } | |
112 | return nil | |
113 | } | |
114 | ||
115 | type SimpleNull3 struct { | |
116 | Simple *Simple3 `protobuf:"bytes,1,opt,name=simple" json:"simple,omitempty"` | |
117 | } | |
118 | ||
119 | func (m *SimpleNull3) Reset() { *m = SimpleNull3{} } | |
120 | func (m *SimpleNull3) String() string { return proto.CompactTextString(m) } | |
121 | func (*SimpleNull3) ProtoMessage() {} | |
122 | func (*SimpleNull3) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } | |
123 | ||
124 | func (m *SimpleNull3) GetSimple() *Simple3 { | |
125 | if m != nil { | |
126 | return m.Simple | |
127 | } | |
128 | return nil | |
129 | } | |
72 | 130 | |
73 | 131 | type Mappy struct { |
74 | 132 | Nummy map[int64]int32 `protobuf:"bytes,1,rep,name=nummy" json:"nummy,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` |
86 | 144 | func (m *Mappy) Reset() { *m = Mappy{} } |
87 | 145 | func (m *Mappy) String() string { return proto.CompactTextString(m) } |
88 | 146 | func (*Mappy) ProtoMessage() {} |
89 | func (*Mappy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } | |
147 | func (*Mappy) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } | |
90 | 148 | |
91 | 149 | func (m *Mappy) GetNummy() map[int64]int32 { |
92 | 150 | if m != nil { |
160 | 218 | |
161 | 219 | func init() { |
162 | 220 | proto.RegisterType((*Simple3)(nil), "jsonpb.Simple3") |
221 | proto.RegisterType((*SimpleSlice3)(nil), "jsonpb.SimpleSlice3") | |
222 | proto.RegisterType((*SimpleMap3)(nil), "jsonpb.SimpleMap3") | |
223 | proto.RegisterType((*SimpleNull3)(nil), "jsonpb.SimpleNull3") | |
163 | 224 | proto.RegisterType((*Mappy)(nil), "jsonpb.Mappy") |
164 | 225 | proto.RegisterEnum("jsonpb.Numeral", Numeral_name, Numeral_value) |
165 | 226 | } |
167 | 228 | func init() { proto.RegisterFile("more_test_objects.proto", fileDescriptor0) } |
168 | 229 | |
169 | 230 | var fileDescriptor0 = []byte{ |
170 | // 444 bytes of a gzipped FileDescriptorProto | |
171 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x8c, 0x94, 0xc1, 0x6b, 0xdb, 0x30, | |
172 | 0x14, 0x87, 0xe7, 0xa4, 0x4e, 0xec, 0x17, 0xba, 0x19, 0x31, 0x98, 0x58, 0x2f, 0xa1, 0x30, 0x08, | |
173 | 0x83, 0xf9, 0x90, 0x8c, 0xad, 0x6c, 0xa7, 0x74, 0xf4, 0x50, 0x46, 0x1d, 0x70, 0x09, 0x3b, 0x96, | |
174 | 0x78, 0x13, 0x65, 0x9e, 0x6d, 0x19, 0xdb, 0x1a, 0xe8, 0x8f, 0x1f, 0x8c, 0x27, 0xcb, 0xb5, 0x6c, | |
175 | 0x14, 0xd2, 0x9b, 0xcc, 0xef, 0xfb, 0xf2, 0x9e, 0xf4, 0x1e, 0x81, 0x37, 0x39, 0xaf, 0xd8, 0x43, | |
176 | 0xc3, 0xea, 0xe6, 0x81, 0x27, 0x29, 0xfb, 0xd9, 0xd4, 0x61, 0x59, 0xf1, 0x86, 0x93, 0x59, 0x5a, | |
177 | 0xf3, 0xa2, 0x4c, 0x2e, 0x2f, 0x60, 0x7e, 0xff, 0x3b, 0x2f, 0x33, 0xb6, 0x21, 0x01, 0x4c, 0x7f, | |
178 | 0x89, 0x84, 0x3a, 0x4b, 0x67, 0xe5, 0xc4, 0x78, 0xbc, 0xfc, 0xe7, 0x81, 0x7b, 0x77, 0x28, 0x4b, | |
179 | 0x49, 0x42, 0x70, 0x0b, 0x91, 0xe7, 0x92, 0x3a, 0xcb, 0xe9, 0x6a, 0xb1, 0xa6, 0x61, 0xab, 0x87, | |
180 | 0x2a, 0x0d, 0x23, 0x8c, 0x6e, 0x8a, 0xa6, 0x92, 0x71, 0x8b, 0x21, 0x5f, 0x37, 0x55, 0x25, 0xe9, | |
181 | 0xc4, 0xc6, 0xdf, 0x63, 0xa4, 0x79, 0x85, 0x21, 0xcf, 0x93, 0x34, 0x95, 0x74, 0x6a, 0xe3, 0x77, | |
182 | 0x18, 0x69, 0x5e, 0x61, 0xc8, 0x27, 0xe2, 0xf1, 0x51, 0xd2, 0x33, 0x1b, 0x7f, 0x8d, 0x91, 0xe6, | |
183 | 0x15, 0xa6, 0x78, 0xce, 0x33, 0x49, 0x5d, 0x2b, 0x8f, 0x51, 0xc7, 0xe3, 0x19, 0x79, 0x56, 0x88, | |
184 | 0x5c, 0xd2, 0x99, 0x8d, 0xbf, 0xc1, 0x48, 0xf3, 0x0a, 0x23, 0x9f, 0xc1, 0xab, 0x37, 0xeb, 0xb6, | |
185 | 0xc4, 0x5c, 0x29, 0x17, 0xa3, 0x2b, 0xeb, 0xb4, 0xb5, 0x9e, 0x60, 0x25, 0x7e, 0xfa, 0xd8, 0x8a, | |
186 | 0x9e, 0x55, 0xd4, 0x69, 0x27, 0xea, 0x4f, 0x14, 0x45, 0x57, 0xd1, 0xb7, 0x89, 0xfb, 0x61, 0x45, | |
187 | 0x61, 0x54, 0x14, 0x5d, 0x45, 0xb0, 0x8a, 0xc3, 0x8a, 0x1d, 0xfc, 0xf6, 0x0a, 0xa0, 0x1f, 0x34, | |
188 | 0x6e, 0xcb, 0x1f, 0x26, 0xd5, 0xb6, 0x4c, 0x63, 0x3c, 0x92, 0xd7, 0xe0, 0xfe, 0x3d, 0x64, 0x82, | |
189 | 0xd1, 0xc9, 0xd2, 0x59, 0xb9, 0x71, 0xfb, 0xf1, 0x65, 0x72, 0xe5, 0xa0, 0xd9, 0x8f, 0xdc, 0x34, | |
190 | 0x7d, 0x8b, 0xe9, 0x9b, 0xe6, 0x2d, 0x40, 0x3f, 0x7c, 0xd3, 0x74, 0x5b, 0xf3, 0x9d, 0x69, 0x2e, | |
191 | 0xd6, 0xaf, 0xba, 0x9b, 0xe8, 0x9d, 0x1e, 0x35, 0xd1, 0xef, 0xc5, 0xa9, 0xf6, 0xfd, 0xb1, 0xf9, | |
192 | 0xf4, 0x20, 0xa6, 0xe9, 0x59, 0x4c, 0x6f, 0xd4, 0x7e, 0xbf, 0x2b, 0x96, 0x8b, 0x0f, 0xda, 0x7f, | |
193 | 0xd9, 0xb7, 0x1f, 0x89, 0x9c, 0x55, 0x87, 0xcc, 0xfc, 0xa9, 0xaf, 0x70, 0x3e, 0xd8, 0x21, 0xcb, | |
194 | 0x63, 0x1c, 0xef, 0x03, 0x65, 0x73, 0xaa, 0xa7, 0xae, 0x3f, 0x96, 0xf7, 0xc7, 0x2a, 0x9f, 0x3f, | |
195 | 0x47, 0x3e, 0x56, 0xf9, 0xec, 0x84, 0xfc, 0xfe, 0x03, 0xcc, 0xf5, 0x4b, 0x90, 0x05, 0xcc, 0xf7, | |
196 | 0xd1, 0xf7, 0x68, 0xf7, 0x23, 0x0a, 0x5e, 0x10, 0x80, 0xd9, 0x36, 0xde, 0x5e, 0xdf, 0x7e, 0x0b, | |
197 | 0x1c, 0xe2, 0x83, 0x1b, 0xef, 0xee, 0xb6, 0x51, 0x30, 0x49, 0x66, 0xea, 0xaf, 0x6d, 0xf3, 0x3f, | |
198 | 0x00, 0x00, 0xff, 0xff, 0xa2, 0x4b, 0xe1, 0x77, 0xf5, 0x04, 0x00, 0x00, | |
199 | } | |
231 | // 526 bytes of a gzipped FileDescriptorProto | |
232 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x94, 0xdd, 0x6b, 0xdb, 0x3c, | |
233 | 0x14, 0x87, 0x5f, 0x27, 0xf5, 0xd7, 0x49, 0xfb, 0x2e, 0x88, 0xb1, 0x99, 0xf4, 0x62, 0xc5, 0xb0, | |
234 | 0xad, 0x0c, 0xe6, 0x8b, 0x78, 0x74, 0x5d, 0x77, 0x95, 0x8e, 0x5e, 0x94, 0x11, 0x07, 0x1c, 0xc2, | |
235 | 0x2e, 0x4b, 0xdc, 0x99, 0x90, 0xcc, 0x5f, 0xd8, 0xd6, 0xc0, 0xd7, 0xfb, 0xbb, 0x07, 0xe3, 0x48, | |
236 | 0x72, 0x2d, 0x07, 0x85, 0x6c, 0x77, 0x52, 0x7e, 0xcf, 0xe3, 0x73, 0x24, 0x1d, 0x02, 0x2f, 0xd3, | |
237 | 0xbc, 0x8c, 0x1f, 0xea, 0xb8, 0xaa, 0x1f, 0xf2, 0x68, 0x17, 0x3f, 0xd6, 0x95, 0x57, 0x94, 0x79, | |
238 | 0x9d, 0x13, 0x63, 0x57, 0xe5, 0x59, 0x11, 0xb9, 0xe7, 0x60, 0x2e, 0xb7, 0x69, 0x91, 0xc4, 0x3e, | |
239 | 0x19, 0xc3, 0xf0, 0x3b, 0x8d, 0x1c, 0xed, 0x42, 0xbb, 0xd4, 0x42, 0x5c, 0xba, 0x6f, 0xe0, 0x94, | |
240 | 0x87, 0xcb, 0x64, 0xfb, 0x18, 0xfb, 0xe4, 0x05, 0x18, 0x15, 0xae, 0x2a, 0x47, 0xbb, 0x18, 0x5e, | |
241 | 0xda, 0xa1, 0xd8, 0xb9, 0xbf, 0x34, 0x00, 0x0e, 0xce, 0xd7, 0x85, 0x4f, 0x3e, 0x81, 0x59, 0xd5, | |
242 | 0xe5, 0x36, 0xdb, 0x34, 0x8c, 0x1b, 0x4d, 0x5f, 0x79, 0xbc, 0x9a, 0xd7, 0x41, 0xde, 0x92, 0x13, | |
243 | 0x77, 0x59, 0x5d, 0x36, 0x61, 0xcb, 0x4f, 0x6e, 0xe0, 0x54, 0x0e, 0xb0, 0xa7, 0x1f, 0x71, 0xc3, | |
244 | 0x7a, 0xb2, 0x43, 0x5c, 0x92, 0xe7, 0xa0, 0xff, 0x5c, 0x27, 0x34, 0x76, 0x06, 0xec, 0x37, 0xbe, | |
245 | 0xb9, 0x19, 0x5c, 0x6b, 0xee, 0x15, 0x8c, 0xf8, 0xf7, 0x03, 0x9a, 0x24, 0x3e, 0x79, 0x0b, 0x46, | |
246 | 0xc5, 0xb6, 0xcc, 0x1e, 0x4d, 0x9f, 0xf5, 0x9b, 0xf0, 0x43, 0x11, 0xbb, 0xbf, 0x2d, 0xd0, 0xe7, | |
247 | 0xeb, 0xa2, 0x68, 0x88, 0x07, 0x7a, 0x46, 0xd3, 0xb4, 0x6d, 0xdb, 0x69, 0x0d, 0x96, 0x7a, 0x01, | |
248 | 0x46, 0xbc, 0x5f, 0x8e, 0x21, 0x5f, 0xd5, 0x65, 0xd9, 0x38, 0x03, 0x15, 0xbf, 0xc4, 0x48, 0xf0, | |
249 | 0x0c, 0x43, 0x3e, 0x8f, 0x76, 0xbb, 0xc6, 0x19, 0xaa, 0xf8, 0x05, 0x46, 0x82, 0x67, 0x18, 0xf2, | |
250 | 0x11, 0xdd, 0x6c, 0x1a, 0xe7, 0x44, 0xc5, 0xdf, 0x62, 0x24, 0x78, 0x86, 0x31, 0x3e, 0xcf, 0x93, | |
251 | 0xc6, 0xd1, 0x95, 0x3c, 0x46, 0x2d, 0x8f, 0x6b, 0xe4, 0xe3, 0x8c, 0xa6, 0x8d, 0x63, 0xa8, 0xf8, | |
252 | 0x3b, 0x8c, 0x04, 0xcf, 0x30, 0xf2, 0x11, 0xac, 0xca, 0x9f, 0xf2, 0x12, 0x26, 0x53, 0xce, 0xf7, | |
253 | 0x8e, 0x2c, 0x52, 0x6e, 0x3d, 0xc1, 0x4c, 0xbc, 0xfa, 0xc0, 0x45, 0x4b, 0x29, 0x8a, 0xb4, 0x15, | |
254 | 0xc5, 0x16, 0x45, 0xda, 0x56, 0xb4, 0x55, 0xe2, 0xaa, 0x5f, 0x91, 0x4a, 0x15, 0x69, 0x5b, 0x11, | |
255 | 0x94, 0x62, 0xbf, 0x62, 0x0b, 0x4f, 0xae, 0x01, 0xba, 0x87, 0x96, 0xe7, 0x6f, 0xa8, 0x98, 0x3f, | |
256 | 0x5d, 0x9a, 0x3f, 0x34, 0xbb, 0x27, 0xff, 0x97, 0xc9, 0x9d, 0xdc, 0x03, 0x74, 0x8f, 0x2f, 0x9b, | |
257 | 0x3a, 0x37, 0x5f, 0xcb, 0xa6, 0x62, 0x92, 0xfb, 0x4d, 0x74, 0x73, 0x71, 0xac, 0x7d, 0x7b, 0xdf, | |
258 | 0x7c, 0xba, 0x10, 0xd9, 0xb4, 0x14, 0xa6, 0xb5, 0xd7, 0x7e, 0x37, 0x2b, 0x8a, 0x83, 0xf7, 0xda, | |
259 | 0xff, 0xbf, 0x6b, 0x3f, 0xa0, 0x69, 0x5c, 0xae, 0x13, 0xf9, 0x53, 0x9f, 0xe1, 0xac, 0x37, 0x43, | |
260 | 0x8a, 0xcb, 0x38, 0xdc, 0x07, 0xca, 0xf2, 0xab, 0x1e, 0x3b, 0xfe, 0xbe, 0xbc, 0x3a, 0x54, 0xf9, | |
261 | 0xec, 0x6f, 0xe4, 0x43, 0x95, 0x4f, 0x8e, 0xc8, 0xef, 0xde, 0x83, 0x29, 0x6e, 0x82, 0x8c, 0xc0, | |
262 | 0x5c, 0x05, 0x5f, 0x83, 0xc5, 0xb7, 0x60, 0xfc, 0x1f, 0x01, 0x30, 0x66, 0xe1, 0xec, 0xf6, 0xfe, | |
263 | 0xcb, 0x58, 0x23, 0x36, 0xe8, 0xe1, 0x62, 0x3e, 0x0b, 0xc6, 0x83, 0xc8, 0x60, 0x7f, 0xe0, 0xfe, | |
264 | 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdc, 0x84, 0x34, 0xaf, 0xdb, 0x05, 0x00, 0x00, | |
265 | } |
36 | 36 | double dub = 1; |
37 | 37 | } |
38 | 38 | |
39 | message SimpleSlice3 { | |
40 | repeated string slices = 1; | |
41 | } | |
42 | ||
43 | message SimpleMap3 { | |
44 | map<string,string> stringy = 1; | |
45 | } | |
46 | ||
47 | message SimpleNull3 { | |
48 | Simple3 simple = 1; | |
49 | } | |
50 | ||
39 | 51 | enum Numeral { |
40 | 52 | UNKNOWN = 0; |
41 | 53 | ARABIC = 1; |
0 | // Code generated by protoc-gen-go. | |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | 1 | // source: test_objects.proto |
2 | // DO NOT EDIT! | |
3 | 2 | |
4 | 3 | package jsonpb |
5 | 4 | |
52 | 51 | *x = Widget_Color(value) |
53 | 52 | return nil |
54 | 53 | } |
55 | func (Widget_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{2, 0} } | |
54 | func (Widget_Color) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{3, 0} } | |
56 | 55 | |
57 | 56 | // Test message for holding primitive types. |
58 | 57 | type Simple struct { |
152 | 151 | return nil |
153 | 152 | } |
154 | 153 | |
154 | // Test message for holding special non-finites primitives. | |
155 | type NonFinites struct { | |
156 | FNan *float32 `protobuf:"fixed32,1,opt,name=f_nan,json=fNan" json:"f_nan,omitempty"` | |
157 | FPinf *float32 `protobuf:"fixed32,2,opt,name=f_pinf,json=fPinf" json:"f_pinf,omitempty"` | |
158 | FNinf *float32 `protobuf:"fixed32,3,opt,name=f_ninf,json=fNinf" json:"f_ninf,omitempty"` | |
159 | DNan *float64 `protobuf:"fixed64,4,opt,name=d_nan,json=dNan" json:"d_nan,omitempty"` | |
160 | DPinf *float64 `protobuf:"fixed64,5,opt,name=d_pinf,json=dPinf" json:"d_pinf,omitempty"` | |
161 | DNinf *float64 `protobuf:"fixed64,6,opt,name=d_ninf,json=dNinf" json:"d_ninf,omitempty"` | |
162 | XXX_unrecognized []byte `json:"-"` | |
163 | } | |
164 | ||
165 | func (m *NonFinites) Reset() { *m = NonFinites{} } | |
166 | func (m *NonFinites) String() string { return proto.CompactTextString(m) } | |
167 | func (*NonFinites) ProtoMessage() {} | |
168 | func (*NonFinites) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} } | |
169 | ||
170 | func (m *NonFinites) GetFNan() float32 { | |
171 | if m != nil && m.FNan != nil { | |
172 | return *m.FNan | |
173 | } | |
174 | return 0 | |
175 | } | |
176 | ||
177 | func (m *NonFinites) GetFPinf() float32 { | |
178 | if m != nil && m.FPinf != nil { | |
179 | return *m.FPinf | |
180 | } | |
181 | return 0 | |
182 | } | |
183 | ||
184 | func (m *NonFinites) GetFNinf() float32 { | |
185 | if m != nil && m.FNinf != nil { | |
186 | return *m.FNinf | |
187 | } | |
188 | return 0 | |
189 | } | |
190 | ||
191 | func (m *NonFinites) GetDNan() float64 { | |
192 | if m != nil && m.DNan != nil { | |
193 | return *m.DNan | |
194 | } | |
195 | return 0 | |
196 | } | |
197 | ||
198 | func (m *NonFinites) GetDPinf() float64 { | |
199 | if m != nil && m.DPinf != nil { | |
200 | return *m.DPinf | |
201 | } | |
202 | return 0 | |
203 | } | |
204 | ||
205 | func (m *NonFinites) GetDNinf() float64 { | |
206 | if m != nil && m.DNinf != nil { | |
207 | return *m.DNinf | |
208 | } | |
209 | return 0 | |
210 | } | |
211 | ||
155 | 212 | // Test message for holding repeated primitives. |
156 | 213 | type Repeats struct { |
157 | 214 | RBool []bool `protobuf:"varint,1,rep,name=r_bool,json=rBool" json:"r_bool,omitempty"` |
171 | 228 | func (m *Repeats) Reset() { *m = Repeats{} } |
172 | 229 | func (m *Repeats) String() string { return proto.CompactTextString(m) } |
173 | 230 | func (*Repeats) ProtoMessage() {} |
174 | func (*Repeats) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} } | |
231 | func (*Repeats) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} } | |
175 | 232 | |
176 | 233 | func (m *Repeats) GetRBool() []bool { |
177 | 234 | if m != nil { |
264 | 321 | func (m *Widget) Reset() { *m = Widget{} } |
265 | 322 | func (m *Widget) String() string { return proto.CompactTextString(m) } |
266 | 323 | func (*Widget) ProtoMessage() {} |
267 | func (*Widget) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{2} } | |
324 | func (*Widget) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} } | |
268 | 325 | |
269 | 326 | func (m *Widget) GetColor() Widget_Color { |
270 | 327 | if m != nil && m.Color != nil { |
317 | 374 | func (m *Maps) Reset() { *m = Maps{} } |
318 | 375 | func (m *Maps) String() string { return proto.CompactTextString(m) } |
319 | 376 | func (*Maps) ProtoMessage() {} |
320 | func (*Maps) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{3} } | |
377 | func (*Maps) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} } | |
321 | 378 | |
322 | 379 | func (m *Maps) GetMInt64Str() map[int64]string { |
323 | 380 | if m != nil { |
346 | 403 | func (m *MsgWithOneof) Reset() { *m = MsgWithOneof{} } |
347 | 404 | func (m *MsgWithOneof) String() string { return proto.CompactTextString(m) } |
348 | 405 | func (*MsgWithOneof) ProtoMessage() {} |
349 | func (*MsgWithOneof) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{4} } | |
406 | func (*MsgWithOneof) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} } | |
350 | 407 | |
351 | 408 | type isMsgWithOneof_Union interface { |
352 | 409 | isMsgWithOneof_Union() |
359 | 416 | Salary int64 `protobuf:"varint,2,opt,name=salary,oneof"` |
360 | 417 | } |
361 | 418 | type MsgWithOneof_Country struct { |
362 | Country string `protobuf:"bytes,3,opt,name=Country,json=country,oneof"` | |
419 | Country string `protobuf:"bytes,3,opt,name=Country,oneof"` | |
363 | 420 | } |
364 | 421 | type MsgWithOneof_HomeAddress struct { |
365 | 422 | HomeAddress string `protobuf:"bytes,4,opt,name=home_address,json=homeAddress,oneof"` |
509 | 566 | func (m *Real) Reset() { *m = Real{} } |
510 | 567 | func (m *Real) String() string { return proto.CompactTextString(m) } |
511 | 568 | func (*Real) ProtoMessage() {} |
512 | func (*Real) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{5} } | |
569 | func (*Real) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} } | |
513 | 570 | |
514 | 571 | var extRange_Real = []proto.ExtensionRange{ |
515 | 572 | {100, 536870911}, |
535 | 592 | func (m *Complex) Reset() { *m = Complex{} } |
536 | 593 | func (m *Complex) String() string { return proto.CompactTextString(m) } |
537 | 594 | func (*Complex) ProtoMessage() {} |
538 | func (*Complex) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{6} } | |
595 | func (*Complex) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} } | |
539 | 596 | |
540 | 597 | var extRange_Complex = []proto.ExtensionRange{ |
541 | 598 | {100, 536870911}, |
558 | 615 | Field: 123, |
559 | 616 | Name: "jsonpb.Complex.real_extension", |
560 | 617 | Tag: "bytes,123,opt,name=real_extension,json=realExtension", |
618 | Filename: "test_objects.proto", | |
561 | 619 | } |
562 | 620 | |
563 | 621 | type KnownTypes struct { |
565 | 623 | Dur *google_protobuf1.Duration `protobuf:"bytes,1,opt,name=dur" json:"dur,omitempty"` |
566 | 624 | St *google_protobuf2.Struct `protobuf:"bytes,12,opt,name=st" json:"st,omitempty"` |
567 | 625 | Ts *google_protobuf3.Timestamp `protobuf:"bytes,2,opt,name=ts" json:"ts,omitempty"` |
626 | Lv *google_protobuf2.ListValue `protobuf:"bytes,15,opt,name=lv" json:"lv,omitempty"` | |
627 | Val *google_protobuf2.Value `protobuf:"bytes,16,opt,name=val" json:"val,omitempty"` | |
568 | 628 | Dbl *google_protobuf4.DoubleValue `protobuf:"bytes,3,opt,name=dbl" json:"dbl,omitempty"` |
569 | 629 | Flt *google_protobuf4.FloatValue `protobuf:"bytes,4,opt,name=flt" json:"flt,omitempty"` |
570 | 630 | I64 *google_protobuf4.Int64Value `protobuf:"bytes,5,opt,name=i64" json:"i64,omitempty"` |
580 | 640 | func (m *KnownTypes) Reset() { *m = KnownTypes{} } |
581 | 641 | func (m *KnownTypes) String() string { return proto.CompactTextString(m) } |
582 | 642 | func (*KnownTypes) ProtoMessage() {} |
583 | func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{7} } | |
643 | func (*KnownTypes) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{8} } | |
584 | 644 | |
585 | 645 | func (m *KnownTypes) GetAn() *google_protobuf.Any { |
586 | 646 | if m != nil { |
606 | 666 | func (m *KnownTypes) GetTs() *google_protobuf3.Timestamp { |
607 | 667 | if m != nil { |
608 | 668 | return m.Ts |
669 | } | |
670 | return nil | |
671 | } | |
672 | ||
673 | func (m *KnownTypes) GetLv() *google_protobuf2.ListValue { | |
674 | if m != nil { | |
675 | return m.Lv | |
676 | } | |
677 | return nil | |
678 | } | |
679 | ||
680 | func (m *KnownTypes) GetVal() *google_protobuf2.Value { | |
681 | if m != nil { | |
682 | return m.Val | |
609 | 683 | } |
610 | 684 | return nil |
611 | 685 | } |
679 | 753 | Field: 124, |
680 | 754 | Name: "jsonpb.name", |
681 | 755 | Tag: "bytes,124,opt,name=name", |
756 | Filename: "test_objects.proto", | |
682 | 757 | } |
683 | 758 | |
684 | 759 | func init() { |
685 | 760 | proto.RegisterType((*Simple)(nil), "jsonpb.Simple") |
761 | proto.RegisterType((*NonFinites)(nil), "jsonpb.NonFinites") | |
686 | 762 | proto.RegisterType((*Repeats)(nil), "jsonpb.Repeats") |
687 | 763 | proto.RegisterType((*Widget)(nil), "jsonpb.Widget") |
688 | 764 | proto.RegisterType((*Maps)(nil), "jsonpb.Maps") |
698 | 774 | func init() { proto.RegisterFile("test_objects.proto", fileDescriptor1) } |
699 | 775 | |
700 | 776 | var fileDescriptor1 = []byte{ |
701 | // 1055 bytes of a gzipped FileDescriptorProto | |
702 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x74, 0x95, 0x51, 0x73, 0xdb, 0x44, | |
703 | 0x10, 0xc7, 0x23, 0xc9, 0x96, 0xec, 0x73, 0x12, 0xcc, 0x4d, 0x4a, 0x15, 0x13, 0x40, 0x63, 0x4a, | |
704 | 0x11, 0x85, 0xba, 0x83, 0xe2, 0xf1, 0x30, 0x85, 0x97, 0xa4, 0x31, 0x94, 0x81, 0x94, 0x99, 0x4b, | |
705 | 0x43, 0x1f, 0x3d, 0x72, 0x7c, 0x71, 0x55, 0x64, 0x9d, 0xe7, 0xee, 0x44, 0xea, 0x81, 0x87, 0x3c, | |
706 | 0xf3, 0xcc, 0x57, 0x80, 0x8f, 0xc0, 0x27, 0xe2, 0x83, 0x74, 0x76, 0x4f, 0xb2, 0x12, 0x3b, 0x7e, | |
707 | 0x8a, 0xf7, 0xf6, 0xbf, 0xff, 0x9c, 0x7e, 0xb7, 0x77, 0x4b, 0xa8, 0xe6, 0x4a, 0x8f, 0xc4, 0xf8, | |
708 | 0x0d, 0xbf, 0xd0, 0xaa, 0x37, 0x97, 0x42, 0x0b, 0xea, 0xbe, 0x51, 0x22, 0x9b, 0x8f, 0x3b, 0xfb, | |
709 | 0x53, 0x21, 0xa6, 0x29, 0x7f, 0x82, 0xab, 0xe3, 0xfc, 0xf2, 0x49, 0x9c, 0x2d, 0x8c, 0xa4, 0xf3, | |
710 | 0xf1, 0x6a, 0x6a, 0x92, 0xcb, 0x58, 0x27, 0x22, 0x2b, 0xf2, 0x07, 0xab, 0x79, 0xa5, 0x65, 0x7e, | |
711 | 0xa1, 0x8b, 0xec, 0x27, 0xab, 0x59, 0x9d, 0xcc, 0xb8, 0xd2, 0xf1, 0x6c, 0xbe, 0xc9, 0xfe, 0x4a, | |
712 | 0xc6, 0xf3, 0x39, 0x97, 0xc5, 0x0e, 0xbb, 0xff, 0xd8, 0xc4, 0x3d, 0x4b, 0x66, 0xf3, 0x94, 0xd3, | |
713 | 0x7b, 0xc4, 0x15, 0xa3, 0xb1, 0x10, 0xa9, 0x6f, 0x05, 0x56, 0xd8, 0x60, 0x75, 0x71, 0x2c, 0x44, | |
714 | 0x4a, 0xef, 0x13, 0x4f, 0x8c, 0x92, 0x4c, 0x1f, 0x46, 0xbe, 0x1d, 0x58, 0x61, 0x9d, 0xb9, 0xe2, | |
715 | 0x47, 0x88, 0x96, 0x89, 0x41, 0xdf, 0x77, 0x02, 0x2b, 0x74, 0x4c, 0x62, 0xd0, 0xa7, 0xfb, 0xa4, | |
716 | 0x21, 0x46, 0xb9, 0x29, 0xa9, 0x05, 0x56, 0xb8, 0xc3, 0x3c, 0x71, 0x8e, 0x61, 0x95, 0x1a, 0xf4, | |
717 | 0xfd, 0x7a, 0x60, 0x85, 0xb5, 0x22, 0x55, 0x56, 0x29, 0x53, 0xe5, 0x06, 0x56, 0xf8, 0x3e, 0xf3, | |
718 | 0xc4, 0xd9, 0x8d, 0x2a, 0x65, 0xaa, 0xbc, 0xc0, 0x0a, 0x69, 0x91, 0x1a, 0xf4, 0xcd, 0x26, 0x2e, | |
719 | 0x53, 0x11, 0x6b, 0xbf, 0x11, 0x58, 0xa1, 0xcd, 0x5c, 0xf1, 0x3d, 0x44, 0xa6, 0x66, 0x22, 0xf2, | |
720 | 0x71, 0xca, 0xfd, 0x66, 0x60, 0x85, 0x16, 0xf3, 0xc4, 0x09, 0x86, 0x85, 0x9d, 0x96, 0x49, 0x36, | |
721 | 0xf5, 0x49, 0x60, 0x85, 0x4d, 0xb0, 0xc3, 0xd0, 0xd8, 0x8d, 0x17, 0x9a, 0x2b, 0xbf, 0x15, 0x58, | |
722 | 0xe1, 0x36, 0x73, 0xc5, 0x31, 0x44, 0xdd, 0x7f, 0x6d, 0xe2, 0x31, 0x3e, 0xe7, 0xb1, 0x56, 0x00, | |
723 | 0x4a, 0x96, 0xa0, 0x1c, 0x00, 0x25, 0x4b, 0x50, 0x72, 0x09, 0xca, 0x01, 0x50, 0x72, 0x09, 0x4a, | |
724 | 0x2e, 0x41, 0x39, 0x00, 0x4a, 0x2e, 0x41, 0xc9, 0x0a, 0x94, 0x03, 0xa0, 0x64, 0x05, 0x4a, 0x56, | |
725 | 0xa0, 0x1c, 0x00, 0x25, 0x2b, 0x50, 0xb2, 0x02, 0xe5, 0x00, 0x28, 0x79, 0x76, 0xa3, 0x6a, 0x09, | |
726 | 0xca, 0x01, 0x50, 0xb2, 0x02, 0x25, 0x97, 0xa0, 0x1c, 0x00, 0x25, 0x97, 0xa0, 0x64, 0x05, 0xca, | |
727 | 0x01, 0x50, 0xb2, 0x02, 0x25, 0x2b, 0x50, 0x0e, 0x80, 0x92, 0x15, 0x28, 0xb9, 0x04, 0xe5, 0x00, | |
728 | 0x28, 0x69, 0x40, 0xfd, 0x67, 0x13, 0xf7, 0x55, 0x32, 0x99, 0x72, 0x4d, 0x1f, 0x91, 0xfa, 0x85, | |
729 | 0x48, 0x85, 0xc4, 0x7e, 0xda, 0x8d, 0xf6, 0x7a, 0xe6, 0x36, 0xf4, 0x4c, 0xba, 0xf7, 0x0c, 0x72, | |
730 | 0xcc, 0x48, 0xe8, 0x63, 0xf0, 0x33, 0x6a, 0x80, 0xb7, 0x49, 0xed, 0x4a, 0xfc, 0x4b, 0x1f, 0x12, | |
731 | 0x57, 0x61, 0xd7, 0xe2, 0x01, 0xb6, 0xa2, 0xdd, 0x52, 0x6d, 0x7a, 0x99, 0x15, 0x59, 0xfa, 0x85, | |
732 | 0x01, 0x82, 0x4a, 0xd8, 0xe7, 0xba, 0x12, 0x00, 0x15, 0x52, 0x4f, 0x9a, 0x03, 0xf6, 0xf7, 0xd0, | |
733 | 0xf3, 0xbd, 0x52, 0x59, 0x9c, 0x3b, 0x2b, 0xf3, 0xf4, 0x2b, 0xd2, 0x94, 0xa3, 0x52, 0x7c, 0x0f, | |
734 | 0x6d, 0xd7, 0xc4, 0x0d, 0x59, 0xfc, 0xea, 0x7e, 0x46, 0xea, 0x66, 0xd3, 0x1e, 0x71, 0xd8, 0xf0, | |
735 | 0xa4, 0xbd, 0x45, 0x9b, 0xa4, 0xfe, 0x03, 0x1b, 0x0e, 0x5f, 0xb4, 0x2d, 0xda, 0x20, 0xb5, 0xe3, | |
736 | 0x9f, 0xcf, 0x87, 0x6d, 0xbb, 0xfb, 0xb7, 0x4d, 0x6a, 0xa7, 0xf1, 0x5c, 0xd1, 0x6f, 0x49, 0x6b, | |
737 | 0x66, 0xda, 0x05, 0xd8, 0x63, 0x8f, 0xb5, 0xa2, 0x0f, 0x4b, 0x7f, 0x90, 0xf4, 0x4e, 0xb1, 0x7f, | |
738 | 0xce, 0xb4, 0x1c, 0x66, 0x5a, 0x2e, 0x58, 0x73, 0x56, 0xc6, 0xf4, 0x88, 0xec, 0xcc, 0xb0, 0x37, | |
739 | 0xcb, 0xaf, 0xb6, 0xb1, 0xfc, 0xa3, 0xdb, 0xe5, 0xd0, 0xaf, 0xe6, 0xb3, 0x8d, 0x41, 0x6b, 0x56, | |
740 | 0xad, 0x74, 0xbe, 0x23, 0xbb, 0xb7, 0xfd, 0x69, 0x9b, 0x38, 0xbf, 0xf1, 0x05, 0x1e, 0xa3, 0xc3, | |
741 | 0xe0, 0x27, 0xdd, 0x23, 0xf5, 0xdf, 0xe3, 0x34, 0xe7, 0xf8, 0x24, 0x34, 0x99, 0x09, 0x9e, 0xda, | |
742 | 0xdf, 0x58, 0x9d, 0x17, 0xa4, 0xbd, 0x6a, 0x7f, 0xb3, 0xbe, 0x61, 0xea, 0x1f, 0xdc, 0xac, 0x5f, | |
743 | 0x3f, 0x94, 0xca, 0xaf, 0xfb, 0x97, 0x45, 0xb6, 0x4f, 0xd5, 0xf4, 0x55, 0xa2, 0x5f, 0xff, 0x92, | |
744 | 0x71, 0x71, 0x49, 0x3f, 0x20, 0x75, 0x9d, 0xe8, 0x94, 0xa3, 0x5d, 0xf3, 0xf9, 0x16, 0x33, 0x21, | |
745 | 0xf5, 0x89, 0xab, 0xe2, 0x34, 0x96, 0x0b, 0xf4, 0x74, 0x9e, 0x6f, 0xb1, 0x22, 0xa6, 0x1d, 0xe2, | |
746 | 0x3d, 0x13, 0x39, 0xec, 0x04, 0x1f, 0x2a, 0xa8, 0xf1, 0x2e, 0xcc, 0x02, 0xfd, 0x94, 0x6c, 0xbf, | |
747 | 0x16, 0x33, 0x3e, 0x8a, 0x27, 0x13, 0xc9, 0x95, 0xc2, 0xf7, 0x0a, 0x04, 0x2d, 0x58, 0x3d, 0x32, | |
748 | 0x8b, 0xc7, 0x1e, 0xa9, 0xe7, 0x59, 0x22, 0xb2, 0xee, 0x43, 0x52, 0x63, 0x3c, 0x4e, 0xab, 0xcf, | |
749 | 0xb7, 0xf0, 0x65, 0x31, 0xc1, 0xa3, 0x46, 0x63, 0xd2, 0xbe, 0xbe, 0xbe, 0xbe, 0xb6, 0xbb, 0x57, | |
750 | 0xf0, 0x1f, 0xe1, 0x4b, 0xde, 0xd2, 0x03, 0xd2, 0x4c, 0x66, 0xf1, 0x34, 0xc9, 0x60, 0x67, 0x46, | |
751 | 0x5e, 0x2d, 0x54, 0x25, 0xd1, 0x09, 0xd9, 0x95, 0x3c, 0x4e, 0x47, 0xfc, 0xad, 0xe6, 0x99, 0x4a, | |
752 | 0x44, 0x46, 0xb7, 0xab, 0x96, 0x8a, 0x53, 0xff, 0x8f, 0xdb, 0x3d, 0x59, 0xd8, 0xb3, 0x1d, 0x28, | |
753 | 0x1a, 0x96, 0x35, 0xdd, 0xff, 0x6b, 0x84, 0xfc, 0x94, 0x89, 0xab, 0xec, 0xe5, 0x62, 0xce, 0x15, | |
754 | 0x7d, 0x40, 0xec, 0x38, 0xf3, 0x77, 0xb1, 0x74, 0xaf, 0x67, 0x46, 0x41, 0xaf, 0x1c, 0x05, 0xbd, | |
755 | 0xa3, 0x6c, 0xc1, 0xec, 0x38, 0xa3, 0x5f, 0x12, 0x67, 0x92, 0x9b, 0x5b, 0xda, 0x8a, 0xf6, 0xd7, | |
756 | 0x64, 0x27, 0xc5, 0x40, 0x62, 0xa0, 0xa2, 0x9f, 0x13, 0x5b, 0x69, 0x7f, 0x1b, 0xb5, 0xf7, 0xd7, | |
757 | 0xb4, 0x67, 0x38, 0x9c, 0x98, 0xad, 0xe0, 0xf6, 0xdb, 0x5a, 0x15, 0xe7, 0xdb, 0x59, 0x13, 0xbe, | |
758 | 0x2c, 0xe7, 0x14, 0xb3, 0xb5, 0xa2, 0x3d, 0xe2, 0x4c, 0xc6, 0x29, 0x9e, 0x4e, 0x2b, 0x3a, 0x58, | |
759 | 0xdf, 0x01, 0x3e, 0x47, 0xbf, 0x02, 0x64, 0x06, 0x42, 0xfa, 0x98, 0x38, 0x97, 0xa9, 0xc6, 0xc3, | |
760 | 0x82, 0xab, 0xb1, 0xaa, 0xc7, 0x87, 0xad, 0x90, 0x5f, 0xa6, 0x1a, 0xe4, 0x49, 0x31, 0x70, 0xee, | |
761 | 0x92, 0x63, 0xb3, 0x17, 0xf2, 0x64, 0xd0, 0x87, 0xdd, 0xe4, 0x83, 0x3e, 0x0e, 0xa1, 0xbb, 0x76, | |
762 | 0x73, 0x7e, 0x53, 0x9f, 0x0f, 0xfa, 0x68, 0x7f, 0x18, 0xe1, 0x64, 0xda, 0x60, 0x7f, 0x18, 0x95, | |
763 | 0xf6, 0x87, 0x11, 0xda, 0x1f, 0x46, 0x38, 0xae, 0x36, 0xd9, 0x2f, 0xf5, 0x39, 0xea, 0x6b, 0x38, | |
764 | 0x6c, 0x9a, 0x1b, 0x50, 0xc2, 0x6d, 0x33, 0x72, 0xd4, 0x81, 0x3f, 0xbc, 0x1b, 0x64, 0x83, 0xbf, | |
765 | 0x79, 0xc0, 0x0b, 0x7f, 0xa5, 0x25, 0xfd, 0x9a, 0xd4, 0xab, 0x89, 0x77, 0xd7, 0x07, 0xe0, 0xc3, | |
766 | 0x6e, 0x0a, 0x8c, 0xf2, 0x69, 0x40, 0x6a, 0x59, 0x3c, 0xe3, 0x2b, 0x2d, 0xfa, 0x27, 0xbe, 0x05, | |
767 | 0x98, 0x79, 0x17, 0x00, 0x00, 0xff, 0xff, 0xda, 0x8b, 0x4a, 0x7a, 0x0e, 0x09, 0x00, 0x00, | |
768 | } | |
777 | // 1160 bytes of a gzipped FileDescriptorProto | |
778 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x95, 0x41, 0x73, 0xdb, 0x44, | |
779 | 0x14, 0xc7, 0x23, 0xc9, 0x92, 0xed, 0x75, 0x92, 0x9a, 0x6d, 0xda, 0x2a, 0x26, 0x80, 0xc6, 0x94, | |
780 | 0x22, 0x0a, 0x75, 0x07, 0xc7, 0xe3, 0x61, 0x0a, 0x97, 0xa4, 0x71, 0x29, 0x43, 0x13, 0x98, 0x4d, | |
781 | 0x43, 0x8f, 0x1e, 0x39, 0x5a, 0xbb, 0x2a, 0xf2, 0xae, 0x67, 0x77, 0x95, 0xd4, 0x03, 0x87, 0x9c, | |
782 | 0x39, 0x32, 0x7c, 0x05, 0xf8, 0x08, 0x1c, 0xf8, 0x74, 0xcc, 0xdb, 0x95, 0xac, 0xc4, 0x8e, 0x4f, | |
783 | 0xf1, 0x7b, 0xef, 0xff, 0xfe, 0x59, 0xed, 0x6f, 0x77, 0x1f, 0xc2, 0x8a, 0x4a, 0x35, 0xe4, 0xa3, | |
784 | 0x77, 0xf4, 0x5c, 0xc9, 0xce, 0x4c, 0x70, 0xc5, 0xb1, 0xf7, 0x4e, 0x72, 0x36, 0x1b, 0xb5, 0x76, | |
785 | 0x27, 0x9c, 0x4f, 0x52, 0xfa, 0x54, 0x67, 0x47, 0xd9, 0xf8, 0x69, 0xc4, 0xe6, 0x46, 0xd2, 0xfa, | |
786 | 0x78, 0xb9, 0x14, 0x67, 0x22, 0x52, 0x09, 0x67, 0x79, 0x7d, 0x6f, 0xb9, 0x2e, 0x95, 0xc8, 0xce, | |
787 | 0x55, 0x5e, 0xfd, 0x64, 0xb9, 0xaa, 0x92, 0x29, 0x95, 0x2a, 0x9a, 0xce, 0xd6, 0xd9, 0x5f, 0x8a, | |
788 | 0x68, 0x36, 0xa3, 0x22, 0x5f, 0x61, 0xfb, 0x6f, 0x1b, 0x79, 0xa7, 0xc9, 0x74, 0x96, 0x52, 0x7c, | |
789 | 0x0f, 0x79, 0x7c, 0x38, 0xe2, 0x3c, 0xf5, 0xad, 0xc0, 0x0a, 0x6b, 0xc4, 0xe5, 0x87, 0x9c, 0xa7, | |
790 | 0xf8, 0x01, 0xaa, 0xf2, 0x61, 0xc2, 0xd4, 0x7e, 0xd7, 0xb7, 0x03, 0x2b, 0x74, 0x89, 0xc7, 0x7f, | |
791 | 0x80, 0x68, 0x51, 0xe8, 0xf7, 0x7c, 0x27, 0xb0, 0x42, 0xc7, 0x14, 0xfa, 0x3d, 0xbc, 0x8b, 0x6a, | |
792 | 0x7c, 0x98, 0x99, 0x96, 0x4a, 0x60, 0x85, 0x5b, 0xa4, 0xca, 0xcf, 0x74, 0x58, 0x96, 0xfa, 0x3d, | |
793 | 0xdf, 0x0d, 0xac, 0xb0, 0x92, 0x97, 0x8a, 0x2e, 0x69, 0xba, 0xbc, 0xc0, 0x0a, 0x3f, 0x20, 0x55, | |
794 | 0x7e, 0x7a, 0xad, 0x4b, 0x9a, 0xae, 0x6a, 0x60, 0x85, 0x38, 0x2f, 0xf5, 0x7b, 0x66, 0x11, 0xe3, | |
795 | 0x94, 0x47, 0xca, 0xaf, 0x05, 0x56, 0x68, 0x13, 0x8f, 0xbf, 0x80, 0xc8, 0xf4, 0xc4, 0x3c, 0x1b, | |
796 | 0xa5, 0xd4, 0xaf, 0x07, 0x56, 0x68, 0x91, 0x2a, 0x3f, 0xd2, 0x61, 0x6e, 0xa7, 0x44, 0xc2, 0x26, | |
797 | 0x3e, 0x0a, 0xac, 0xb0, 0x0e, 0x76, 0x3a, 0x34, 0x76, 0xa3, 0xb9, 0xa2, 0xd2, 0x6f, 0x04, 0x56, | |
798 | 0xb8, 0x49, 0x3c, 0x7e, 0x08, 0x51, 0xfb, 0x4f, 0x0b, 0xa1, 0x13, 0xce, 0x5e, 0x24, 0x2c, 0x51, | |
799 | 0x54, 0xe2, 0xbb, 0xc8, 0x1d, 0x0f, 0x59, 0xc4, 0xf4, 0x56, 0xd9, 0xa4, 0x32, 0x3e, 0x89, 0x18, | |
800 | 0x6c, 0xe0, 0x78, 0x38, 0x4b, 0xd8, 0x58, 0x6f, 0x94, 0x4d, 0xdc, 0xf1, 0xcf, 0x09, 0x1b, 0x9b, | |
801 | 0x34, 0x83, 0xb4, 0x93, 0xa7, 0x4f, 0x20, 0x7d, 0x17, 0xb9, 0xb1, 0xb6, 0xa8, 0xe8, 0xd5, 0x55, | |
802 | 0xe2, 0xdc, 0x22, 0x36, 0x16, 0xae, 0xce, 0xba, 0x71, 0x61, 0x11, 0x1b, 0x0b, 0x2f, 0x4f, 0x83, | |
803 | 0x45, 0xfb, 0x1f, 0x1b, 0x55, 0x09, 0x9d, 0xd1, 0x48, 0x49, 0x90, 0x88, 0x82, 0x9e, 0x03, 0xf4, | |
804 | 0x44, 0x41, 0x4f, 0x2c, 0xe8, 0x39, 0x40, 0x4f, 0x2c, 0xe8, 0x89, 0x05, 0x3d, 0x07, 0xe8, 0x89, | |
805 | 0x05, 0x3d, 0x51, 0xd2, 0x73, 0x80, 0x9e, 0x28, 0xe9, 0x89, 0x92, 0x9e, 0x03, 0xf4, 0x44, 0x49, | |
806 | 0x4f, 0x94, 0xf4, 0x1c, 0xa0, 0x27, 0x4e, 0xaf, 0x75, 0x2d, 0xe8, 0x39, 0x40, 0x4f, 0x94, 0xf4, | |
807 | 0xc4, 0x82, 0x9e, 0x03, 0xf4, 0xc4, 0x82, 0x9e, 0x28, 0xe9, 0x39, 0x40, 0x4f, 0x94, 0xf4, 0x44, | |
808 | 0x49, 0xcf, 0x01, 0x7a, 0xa2, 0xa4, 0x27, 0x16, 0xf4, 0x1c, 0xa0, 0x27, 0x0c, 0xbd, 0x7f, 0x6d, | |
809 | 0xe4, 0xbd, 0x49, 0xe2, 0x09, 0x55, 0xf8, 0x31, 0x72, 0xcf, 0x79, 0xca, 0x85, 0x26, 0xb7, 0xdd, | |
810 | 0xdd, 0xe9, 0x98, 0x2b, 0xda, 0x31, 0xe5, 0xce, 0x73, 0xa8, 0x11, 0x23, 0xc1, 0x4f, 0xc0, 0xcf, | |
811 | 0xa8, 0x61, 0xf3, 0xd6, 0xa9, 0x3d, 0xa1, 0xff, 0xe2, 0x47, 0xc8, 0x93, 0xfa, 0x2a, 0xe9, 0x53, | |
812 | 0xd5, 0xe8, 0x6e, 0x17, 0x6a, 0x73, 0xc1, 0x48, 0x5e, 0xc5, 0x5f, 0x98, 0x0d, 0xd1, 0x4a, 0x58, | |
813 | 0xe7, 0xaa, 0x12, 0x36, 0x28, 0x97, 0x56, 0x85, 0x01, 0xec, 0xef, 0x68, 0xcf, 0x3b, 0x85, 0x32, | |
814 | 0xe7, 0x4e, 0x8a, 0x3a, 0xfe, 0x0a, 0xd5, 0xc5, 0xb0, 0x10, 0xdf, 0xd3, 0xb6, 0x2b, 0xe2, 0x9a, | |
815 | 0xc8, 0x7f, 0xb5, 0x3f, 0x43, 0xae, 0x59, 0x74, 0x15, 0x39, 0x64, 0x70, 0xd4, 0xdc, 0xc0, 0x75, | |
816 | 0xe4, 0x7e, 0x4f, 0x06, 0x83, 0x93, 0xa6, 0x85, 0x6b, 0xa8, 0x72, 0xf8, 0xea, 0x6c, 0xd0, 0xb4, | |
817 | 0xdb, 0x7f, 0xd9, 0xa8, 0x72, 0x1c, 0xcd, 0x24, 0xfe, 0x16, 0x35, 0xa6, 0xe6, 0xb8, 0xc0, 0xde, | |
818 | 0xeb, 0x33, 0xd6, 0xe8, 0x7e, 0x58, 0xf8, 0x83, 0xa4, 0x73, 0xac, 0xcf, 0xcf, 0xa9, 0x12, 0x03, | |
819 | 0xa6, 0xc4, 0x9c, 0xd4, 0xa7, 0x45, 0x8c, 0x0f, 0xd0, 0xd6, 0x54, 0x9f, 0xcd, 0xe2, 0xab, 0x6d, | |
820 | 0xdd, 0xfe, 0xd1, 0xcd, 0x76, 0x38, 0xaf, 0xe6, 0xb3, 0x8d, 0x41, 0x63, 0x5a, 0x66, 0x5a, 0xdf, | |
821 | 0xa1, 0xed, 0x9b, 0xfe, 0xb8, 0x89, 0x9c, 0x5f, 0xe9, 0x5c, 0x63, 0x74, 0x08, 0xfc, 0xc4, 0x3b, | |
822 | 0xc8, 0xbd, 0x88, 0xd2, 0x8c, 0xea, 0xeb, 0x57, 0x27, 0x26, 0x78, 0x66, 0x7f, 0x63, 0xb5, 0x4e, | |
823 | 0x50, 0x73, 0xd9, 0xfe, 0x7a, 0x7f, 0xcd, 0xf4, 0x3f, 0xbc, 0xde, 0xbf, 0x0a, 0xa5, 0xf4, 0x6b, | |
824 | 0xff, 0x61, 0xa1, 0xcd, 0x63, 0x39, 0x79, 0x93, 0xa8, 0xb7, 0x3f, 0x31, 0xca, 0xc7, 0xf8, 0x3e, | |
825 | 0x72, 0x55, 0xa2, 0x52, 0xaa, 0xed, 0xea, 0x2f, 0x37, 0x88, 0x09, 0xb1, 0x8f, 0x3c, 0x19, 0xa5, | |
826 | 0x91, 0x98, 0x6b, 0x4f, 0xe7, 0xe5, 0x06, 0xc9, 0x63, 0xdc, 0x42, 0xd5, 0xe7, 0x3c, 0x83, 0x95, | |
827 | 0xe8, 0x67, 0x01, 0x7a, 0x8a, 0x04, 0xfe, 0x14, 0x6d, 0xbe, 0xe5, 0x53, 0x3a, 0x8c, 0xe2, 0x58, | |
828 | 0x50, 0x29, 0xf5, 0x0b, 0x01, 0x82, 0x06, 0x64, 0x0f, 0x4c, 0xf2, 0xb0, 0x8a, 0xdc, 0x8c, 0x25, | |
829 | 0x9c, 0xb5, 0x1f, 0xa1, 0x0a, 0xa1, 0x51, 0x5a, 0x7e, 0xbe, 0x65, 0xde, 0x08, 0x1d, 0x3c, 0xae, | |
830 | 0xd5, 0xe2, 0xe6, 0xd5, 0xd5, 0xd5, 0x95, 0xdd, 0xbe, 0x84, 0xff, 0x08, 0x5f, 0xf2, 0x1e, 0xef, | |
831 | 0xa1, 0x7a, 0x32, 0x8d, 0x26, 0x09, 0x83, 0x95, 0x19, 0x79, 0x99, 0x28, 0x5b, 0xba, 0x47, 0x68, | |
832 | 0x5b, 0xd0, 0x28, 0x1d, 0xd2, 0xf7, 0x8a, 0x32, 0x99, 0x70, 0x86, 0x37, 0xcb, 0x23, 0x15, 0xa5, | |
833 | 0xfe, 0x6f, 0x37, 0xcf, 0x64, 0x6e, 0x4f, 0xb6, 0xa0, 0x69, 0x50, 0xf4, 0xb4, 0xff, 0x73, 0x11, | |
834 | 0xfa, 0x91, 0xf1, 0x4b, 0xf6, 0x7a, 0x3e, 0xa3, 0x12, 0x3f, 0x44, 0x76, 0xc4, 0xfc, 0x6d, 0xdd, | |
835 | 0xba, 0xd3, 0x31, 0xf3, 0xa9, 0x53, 0xcc, 0xa7, 0xce, 0x01, 0x9b, 0x13, 0x3b, 0x62, 0xf8, 0x4b, | |
836 | 0xe4, 0xc4, 0x99, 0xb9, 0xa5, 0x8d, 0xee, 0xee, 0x8a, 0xec, 0x28, 0x9f, 0x92, 0x04, 0x54, 0xf8, | |
837 | 0x73, 0x64, 0x4b, 0xe5, 0x6f, 0x6a, 0xed, 0x83, 0x15, 0xed, 0xa9, 0x9e, 0x98, 0xc4, 0x96, 0x70, | |
838 | 0xfb, 0x6d, 0x25, 0x73, 0xbe, 0xad, 0x15, 0xe1, 0xeb, 0x62, 0x78, 0x12, 0x5b, 0x49, 0xd0, 0xa6, | |
839 | 0x17, 0xfe, 0x9d, 0x35, 0xda, 0x57, 0x89, 0x54, 0xbf, 0xc0, 0x0e, 0x13, 0x3b, 0xbd, 0xc0, 0x21, | |
840 | 0x72, 0x2e, 0xa2, 0xd4, 0x6f, 0x6a, 0xf1, 0xfd, 0x15, 0xb1, 0x11, 0x82, 0x04, 0x77, 0x90, 0x13, | |
841 | 0x8f, 0x52, 0xcd, 0xbc, 0xd1, 0xdd, 0x5b, 0xfd, 0x2e, 0xfd, 0xc8, 0xe5, 0xfa, 0x78, 0x94, 0xe2, | |
842 | 0x27, 0xc8, 0x19, 0xa7, 0x4a, 0x1f, 0x01, 0xb8, 0x70, 0xcb, 0x7a, 0xfd, 0x5c, 0xe6, 0xf2, 0x71, | |
843 | 0xaa, 0x40, 0x9e, 0xe4, 0xb3, 0xf5, 0x36, 0xb9, 0xbe, 0x42, 0xb9, 0x3c, 0xe9, 0xf7, 0x60, 0x35, | |
844 | 0x59, 0xbf, 0xa7, 0xa7, 0xca, 0x6d, 0xab, 0x39, 0xbb, 0xae, 0xcf, 0xfa, 0x3d, 0x6d, 0xbf, 0xdf, | |
845 | 0xd5, 0x43, 0x78, 0x8d, 0xfd, 0x7e, 0xb7, 0xb0, 0xdf, 0xef, 0x6a, 0xfb, 0xfd, 0xae, 0x9e, 0xcc, | |
846 | 0xeb, 0xec, 0x17, 0xfa, 0x4c, 0xeb, 0x2b, 0x7a, 0x84, 0xd5, 0xd7, 0x6c, 0x3a, 0xdc, 0x61, 0x23, | |
847 | 0xd7, 0x3a, 0xf0, 0x87, 0xd7, 0x08, 0xad, 0xf1, 0x37, 0x63, 0x21, 0xf7, 0x97, 0x4a, 0xe0, 0xaf, | |
848 | 0x91, 0x5b, 0x0e, 0xf7, 0xdb, 0x3e, 0x40, 0x8f, 0x0b, 0xd3, 0x60, 0x94, 0xcf, 0x02, 0x54, 0x61, | |
849 | 0xd1, 0x94, 0x2e, 0x1d, 0xfc, 0xdf, 0xf5, 0x0b, 0xa3, 0x2b, 0xff, 0x07, 0x00, 0x00, 0xff, 0xff, | |
850 | 0xd5, 0x39, 0x32, 0x09, 0xf9, 0x09, 0x00, 0x00, | |
851 | } |
51 | 51 | optional double o_double = 9; |
52 | 52 | optional string o_string = 10; |
53 | 53 | optional bytes o_bytes = 11; |
54 | } | |
55 | ||
56 | // Test message for holding special non-finites primitives. | |
57 | message NonFinites { | |
58 | optional float f_nan = 1; | |
59 | optional float f_pinf = 2; | |
60 | optional float f_ninf = 3; | |
61 | optional double d_nan = 4; | |
62 | optional double d_pinf = 5; | |
63 | optional double d_ninf = 6; | |
54 | 64 | } |
55 | 65 | |
56 | 66 | // Test message for holding repeated primitives. |
121 | 131 | optional google.protobuf.Duration dur = 1; |
122 | 132 | optional google.protobuf.Struct st = 12; |
123 | 133 | optional google.protobuf.Timestamp ts = 2; |
134 | optional google.protobuf.ListValue lv = 15; | |
135 | optional google.protobuf.Value val = 16; | |
124 | 136 | |
125 | 137 | optional google.protobuf.DoubleValue dbl = 3; |
126 | 138 | optional google.protobuf.FloatValue flt = 4; |
419 | 419 | name string |
420 | 420 | m Message |
421 | 421 | want []byte |
422 | wantErr error | |
422 | errType reflect.Type | |
423 | 423 | }{ |
424 | 424 | { |
425 | 425 | name: "Marshaler that fails", |
427 | 427 | err: errors.New("some marshal err"), |
428 | 428 | b: []byte{5, 6, 7}, |
429 | 429 | }, |
430 | // Since there's an error, nothing should be written to buffer. | |
431 | want: nil, | |
432 | wantErr: errors.New("some marshal err"), | |
430 | // Since the Marshal method returned bytes, they should be written to the | |
431 | // buffer. (For efficiency, we assume that Marshal implementations are | |
432 | // always correct w.r.t. RequiredNotSetError and output.) | |
433 | want: []byte{5, 6, 7}, | |
434 | errType: reflect.TypeOf(errors.New("some marshal err")), | |
433 | 435 | }, |
434 | 436 | { |
435 | 437 | name: "Marshaler that fails with RequiredNotSetError", |
445 | 447 | 10, 3, // for &msgWithFakeMarshaler |
446 | 448 | 5, 6, 7, // for &fakeMarshaler |
447 | 449 | }, |
448 | wantErr: &RequiredNotSetError{}, | |
450 | errType: reflect.TypeOf(&RequiredNotSetError{}), | |
449 | 451 | }, |
450 | 452 | { |
451 | 453 | name: "Marshaler that succeeds", |
452 | 454 | m: &fakeMarshaler{ |
453 | 455 | b: []byte{0, 1, 2, 3, 4, 127, 255}, |
454 | 456 | }, |
455 | want: []byte{0, 1, 2, 3, 4, 127, 255}, | |
456 | wantErr: nil, | |
457 | want: []byte{0, 1, 2, 3, 4, 127, 255}, | |
457 | 458 | }, |
458 | 459 | } |
459 | 460 | for _, test := range tests { |
460 | 461 | b := NewBuffer(nil) |
461 | 462 | err := b.Marshal(test.m) |
462 | if _, ok := err.(*RequiredNotSetError); ok { | |
463 | // We're not in package proto, so we can only assert the type in this case. | |
464 | err = &RequiredNotSetError{} | |
465 | } | |
466 | if !reflect.DeepEqual(test.wantErr, err) { | |
467 | t.Errorf("%s: got err %v wanted %v", test.name, err, test.wantErr) | |
463 | if reflect.TypeOf(err) != test.errType { | |
464 | t.Errorf("%s: got err %T(%v) wanted %T", test.name, err, err, test.errType) | |
468 | 465 | } |
469 | 466 | if !reflect.DeepEqual(test.want, b.Bytes()) { |
470 | 467 | t.Errorf("%s: got bytes %v wanted %v", test.name, b.Bytes(), test.want) |
468 | } | |
469 | if size := Size(test.m); size != len(b.Bytes()) { | |
470 | t.Errorf("%s: Size(_) = %v, but marshaled to %v bytes", test.name, size, len(b.Bytes())) | |
471 | } | |
472 | ||
473 | m, mErr := Marshal(test.m) | |
474 | if !bytes.Equal(b.Bytes(), m) { | |
475 | t.Errorf("%s: Marshal returned %v, but (*Buffer).Marshal wrote %v", test.name, m, b.Bytes()) | |
476 | } | |
477 | if !reflect.DeepEqual(err, mErr) { | |
478 | t.Errorf("%s: Marshal err = %q, but (*Buffer).Marshal returned %q", | |
479 | test.name, fmt.Sprint(mErr), fmt.Sprint(err)) | |
471 | 480 | } |
472 | 481 | } |
473 | 482 | } |
1301 | 1310 | // We don't care what the value actually is, just as long as it doesn't crash. |
1302 | 1311 | func TestPrintingNilEnumFields(t *testing.T) { |
1303 | 1312 | pb := new(GoEnum) |
1304 | fmt.Sprintf("%+v", pb) | |
1313 | _ = fmt.Sprintf("%+v", pb) | |
1305 | 1314 | } |
1306 | 1315 | |
1307 | 1316 | // Verify that absent required fields cause Marshal/Unmarshal to return errors. |
60 | 60 | // int32, int64, uint32, uint64, bool, and enum |
61 | 61 | // protocol buffer types. |
62 | 62 | func DecodeVarint(buf []byte) (x uint64, n int) { |
63 | // x, n already 0 | |
64 | 63 | for shift := uint(0); shift < 64; shift += 7 { |
65 | 64 | if n >= len(buf) { |
66 | 65 | return 0, 0 |
77 | 76 | return 0, 0 |
78 | 77 | } |
79 | 78 | |
80 | // DecodeVarint reads a varint-encoded integer from the Buffer. | |
81 | // This is the format for the | |
82 | // int32, int64, uint32, uint64, bool, and enum | |
83 | // protocol buffer types. | |
84 | func (p *Buffer) DecodeVarint() (x uint64, err error) { | |
85 | // x, err already 0 | |
86 | ||
79 | func (p *Buffer) decodeVarintSlow() (x uint64, err error) { | |
87 | 80 | i := p.index |
88 | 81 | l := len(p.buf) |
89 | 82 | |
104 | 97 | // The number is too large to represent in a 64-bit value. |
105 | 98 | err = errOverflow |
106 | 99 | return |
100 | } | |
101 | ||
102 | // DecodeVarint reads a varint-encoded integer from the Buffer. | |
103 | // This is the format for the | |
104 | // int32, int64, uint32, uint64, bool, and enum | |
105 | // protocol buffer types. | |
106 | func (p *Buffer) DecodeVarint() (x uint64, err error) { | |
107 | i := p.index | |
108 | buf := p.buf | |
109 | ||
110 | if i >= len(buf) { | |
111 | return 0, io.ErrUnexpectedEOF | |
112 | } else if buf[i] < 0x80 { | |
113 | p.index++ | |
114 | return uint64(buf[i]), nil | |
115 | } else if len(buf)-i < 10 { | |
116 | return p.decodeVarintSlow() | |
117 | } | |
118 | ||
119 | var b uint64 | |
120 | // we already checked the first byte | |
121 | x = uint64(buf[i]) - 0x80 | |
122 | i++ | |
123 | ||
124 | b = uint64(buf[i]) | |
125 | i++ | |
126 | x += b << 7 | |
127 | if b&0x80 == 0 { | |
128 | goto done | |
129 | } | |
130 | x -= 0x80 << 7 | |
131 | ||
132 | b = uint64(buf[i]) | |
133 | i++ | |
134 | x += b << 14 | |
135 | if b&0x80 == 0 { | |
136 | goto done | |
137 | } | |
138 | x -= 0x80 << 14 | |
139 | ||
140 | b = uint64(buf[i]) | |
141 | i++ | |
142 | x += b << 21 | |
143 | if b&0x80 == 0 { | |
144 | goto done | |
145 | } | |
146 | x -= 0x80 << 21 | |
147 | ||
148 | b = uint64(buf[i]) | |
149 | i++ | |
150 | x += b << 28 | |
151 | if b&0x80 == 0 { | |
152 | goto done | |
153 | } | |
154 | x -= 0x80 << 28 | |
155 | ||
156 | b = uint64(buf[i]) | |
157 | i++ | |
158 | x += b << 35 | |
159 | if b&0x80 == 0 { | |
160 | goto done | |
161 | } | |
162 | x -= 0x80 << 35 | |
163 | ||
164 | b = uint64(buf[i]) | |
165 | i++ | |
166 | x += b << 42 | |
167 | if b&0x80 == 0 { | |
168 | goto done | |
169 | } | |
170 | x -= 0x80 << 42 | |
171 | ||
172 | b = uint64(buf[i]) | |
173 | i++ | |
174 | x += b << 49 | |
175 | if b&0x80 == 0 { | |
176 | goto done | |
177 | } | |
178 | x -= 0x80 << 49 | |
179 | ||
180 | b = uint64(buf[i]) | |
181 | i++ | |
182 | x += b << 56 | |
183 | if b&0x80 == 0 { | |
184 | goto done | |
185 | } | |
186 | x -= 0x80 << 56 | |
187 | ||
188 | b = uint64(buf[i]) | |
189 | i++ | |
190 | x += b << 63 | |
191 | if b&0x80 == 0 { | |
192 | goto done | |
193 | } | |
194 | // x -= 0x80 << 63 // Always zero. | |
195 | ||
196 | return 0, errOverflow | |
197 | ||
198 | done: | |
199 | p.index = i | |
200 | return x, nil | |
107 | 201 | } |
108 | 202 | |
109 | 203 | // DecodeFixed64 reads a 64-bit integer from the Buffer. |
339 | 433 | // Buffer and places the decoded result in pb. If the struct |
340 | 434 | // underlying pb does not match the data in the buffer, the results can be |
341 | 435 | // unpredictable. |
436 | // | |
437 | // Unlike proto.Unmarshal, this does not reset pb before starting to unmarshal. | |
342 | 438 | func (p *Buffer) Unmarshal(pb Message) error { |
343 | 439 | // If the object can unmarshal itself, let it. |
344 | 440 | if u, ok := pb.(Unmarshaler); ok { |
0 | // Go support for Protocol Buffers - Google's data interchange format | |
1 | // | |
2 | // Copyright 2010 The Go Authors. All rights reserved. | |
3 | // https://github.com/golang/protobuf | |
4 | // | |
5 | // Redistribution and use in source and binary forms, with or without | |
6 | // modification, are permitted provided that the following conditions are | |
7 | // met: | |
8 | // | |
9 | // * Redistributions of source code must retain the above copyright | |
10 | // notice, this list of conditions and the following disclaimer. | |
11 | // * Redistributions in binary form must reproduce the above | |
12 | // copyright notice, this list of conditions and the following disclaimer | |
13 | // in the documentation and/or other materials provided with the | |
14 | // distribution. | |
15 | // * Neither the name of Google Inc. nor the names of its | |
16 | // contributors may be used to endorse or promote products derived from | |
17 | // this software without specific prior written permission. | |
18 | // | |
19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
20 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
21 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
22 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
23 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
24 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
25 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
26 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
27 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
28 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
29 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
30 | ||
31 | // +build go1.7 | |
32 | ||
33 | package proto_test | |
34 | ||
35 | import ( | |
36 | "fmt" | |
37 | "testing" | |
38 | ||
39 | "github.com/golang/protobuf/proto" | |
40 | tpb "github.com/golang/protobuf/proto/proto3_proto" | |
41 | ) | |
42 | ||
43 | var ( | |
44 | bytesBlackhole []byte | |
45 | msgBlackhole = new(tpb.Message) | |
46 | ) | |
47 | ||
48 | // BenchmarkVarint32ArraySmall shows the performance on an array of small int32 fields (1 and | |
49 | // 2 bytes long). | |
50 | func BenchmarkVarint32ArraySmall(b *testing.B) { | |
51 | for i := uint(1); i <= 10; i++ { | |
52 | dist := genInt32Dist([7]int{0, 3, 1}, 1<<i) | |
53 | raw, err := proto.Marshal(&tpb.Message{ | |
54 | ShortKey: dist, | |
55 | }) | |
56 | if err != nil { | |
57 | b.Error("wrong encode", err) | |
58 | } | |
59 | b.Run(fmt.Sprintf("Len%v", len(dist)), func(b *testing.B) { | |
60 | scratchBuf := proto.NewBuffer(nil) | |
61 | b.ResetTimer() | |
62 | for k := 0; k < b.N; k++ { | |
63 | scratchBuf.SetBuf(raw) | |
64 | msgBlackhole.Reset() | |
65 | if err := scratchBuf.Unmarshal(msgBlackhole); err != nil { | |
66 | b.Error("wrong decode", err) | |
67 | } | |
68 | } | |
69 | }) | |
70 | } | |
71 | } | |
72 | ||
73 | // BenchmarkVarint32ArrayLarge shows the performance on an array of large int32 fields (3 and | |
74 | // 4 bytes long, with a small number of 1, 2, 5 and 10 byte long versions). | |
75 | func BenchmarkVarint32ArrayLarge(b *testing.B) { | |
76 | for i := uint(1); i <= 10; i++ { | |
77 | dist := genInt32Dist([7]int{0, 1, 2, 4, 8, 1, 1}, 1<<i) | |
78 | raw, err := proto.Marshal(&tpb.Message{ | |
79 | ShortKey: dist, | |
80 | }) | |
81 | if err != nil { | |
82 | b.Error("wrong encode", err) | |
83 | } | |
84 | b.Run(fmt.Sprintf("Len%v", len(dist)), func(b *testing.B) { | |
85 | scratchBuf := proto.NewBuffer(nil) | |
86 | b.ResetTimer() | |
87 | for k := 0; k < b.N; k++ { | |
88 | scratchBuf.SetBuf(raw) | |
89 | msgBlackhole.Reset() | |
90 | if err := scratchBuf.Unmarshal(msgBlackhole); err != nil { | |
91 | b.Error("wrong decode", err) | |
92 | } | |
93 | } | |
94 | }) | |
95 | } | |
96 | } | |
97 | ||
98 | // BenchmarkVarint64ArraySmall shows the performance on an array of small int64 fields (1 and | |
99 | // 2 bytes long). | |
100 | func BenchmarkVarint64ArraySmall(b *testing.B) { | |
101 | for i := uint(1); i <= 10; i++ { | |
102 | dist := genUint64Dist([11]int{0, 3, 1}, 1<<i) | |
103 | raw, err := proto.Marshal(&tpb.Message{ | |
104 | Key: dist, | |
105 | }) | |
106 | if err != nil { | |
107 | b.Error("wrong encode", err) | |
108 | } | |
109 | b.Run(fmt.Sprintf("Len%v", len(dist)), func(b *testing.B) { | |
110 | scratchBuf := proto.NewBuffer(nil) | |
111 | b.ResetTimer() | |
112 | for k := 0; k < b.N; k++ { | |
113 | scratchBuf.SetBuf(raw) | |
114 | msgBlackhole.Reset() | |
115 | if err := scratchBuf.Unmarshal(msgBlackhole); err != nil { | |
116 | b.Error("wrong decode", err) | |
117 | } | |
118 | } | |
119 | }) | |
120 | } | |
121 | } | |
122 | ||
123 | // BenchmarkVarint64ArrayLarge shows the performance on an array of large int64 fields (6, 7, | |
124 | // and 8 bytes long with a small number of the other sizes). | |
125 | func BenchmarkVarint64ArrayLarge(b *testing.B) { | |
126 | for i := uint(1); i <= 10; i++ { | |
127 | dist := genUint64Dist([11]int{0, 1, 1, 2, 4, 8, 16, 32, 16, 1, 1}, 1<<i) | |
128 | raw, err := proto.Marshal(&tpb.Message{ | |
129 | Key: dist, | |
130 | }) | |
131 | if err != nil { | |
132 | b.Error("wrong encode", err) | |
133 | } | |
134 | b.Run(fmt.Sprintf("Len%v", len(dist)), func(b *testing.B) { | |
135 | scratchBuf := proto.NewBuffer(nil) | |
136 | b.ResetTimer() | |
137 | for k := 0; k < b.N; k++ { | |
138 | scratchBuf.SetBuf(raw) | |
139 | msgBlackhole.Reset() | |
140 | if err := scratchBuf.Unmarshal(msgBlackhole); err != nil { | |
141 | b.Error("wrong decode", err) | |
142 | } | |
143 | } | |
144 | }) | |
145 | } | |
146 | } | |
147 | ||
148 | // BenchmarkVarint64ArrayMixed shows the performance of lots of small messages, each | |
149 | // containing a small number of large (3, 4, and 5 byte) repeated int64s. | |
150 | func BenchmarkVarint64ArrayMixed(b *testing.B) { | |
151 | for i := uint(1); i <= 1<<5; i <<= 1 { | |
152 | dist := genUint64Dist([11]int{0, 0, 0, 4, 6, 4, 0, 0, 0, 0, 0}, int(i)) | |
153 | // number of sub fields | |
154 | for k := uint(1); k <= 1<<10; k <<= 2 { | |
155 | msg := &tpb.Message{} | |
156 | for m := uint(0); m < k; m++ { | |
157 | msg.Children = append(msg.Children, &tpb.Message{ | |
158 | Key: dist, | |
159 | }) | |
160 | } | |
161 | raw, err := proto.Marshal(msg) | |
162 | if err != nil { | |
163 | b.Error("wrong encode", err) | |
164 | } | |
165 | b.Run(fmt.Sprintf("Fields%vLen%v", k, i), func(b *testing.B) { | |
166 | scratchBuf := proto.NewBuffer(nil) | |
167 | b.ResetTimer() | |
168 | for k := 0; k < b.N; k++ { | |
169 | scratchBuf.SetBuf(raw) | |
170 | msgBlackhole.Reset() | |
171 | if err := scratchBuf.Unmarshal(msgBlackhole); err != nil { | |
172 | b.Error("wrong decode", err) | |
173 | } | |
174 | } | |
175 | }) | |
176 | } | |
177 | } | |
178 | } | |
179 | ||
180 | // genInt32Dist generates a slice of ints that will match the size distribution of dist. | |
181 | // A size of 6 corresponds to a max length varint32, which is 10 bytes. The distribution | |
182 | // is 1-indexed. (i.e. the value at index 1 is how many 1 byte ints to create). | |
183 | func genInt32Dist(dist [7]int, count int) (dest []int32) { | |
184 | for i := 0; i < count; i++ { | |
185 | for k := 0; k < len(dist); k++ { | |
186 | var num int32 | |
187 | switch k { | |
188 | case 1: | |
189 | num = 1<<7 - 1 | |
190 | case 2: | |
191 | num = 1<<14 - 1 | |
192 | case 3: | |
193 | num = 1<<21 - 1 | |
194 | case 4: | |
195 | num = 1<<28 - 1 | |
196 | case 5: | |
197 | num = 1<<29 - 1 | |
198 | case 6: | |
199 | num = -1 | |
200 | } | |
201 | for m := 0; m < dist[k]; m++ { | |
202 | dest = append(dest, num) | |
203 | } | |
204 | } | |
205 | } | |
206 | return | |
207 | } | |
208 | ||
209 | // genUint64Dist generates a slice of ints that will match the size distribution of dist. | |
210 | // The distribution is 1-indexed. (i.e. the value at index 1 is how many 1 byte ints to create). | |
211 | func genUint64Dist(dist [11]int, count int) (dest []uint64) { | |
212 | for i := 0; i < count; i++ { | |
213 | for k := 0; k < len(dist); k++ { | |
214 | var num uint64 | |
215 | switch k { | |
216 | case 1: | |
217 | num = 1<<7 - 1 | |
218 | case 2: | |
219 | num = 1<<14 - 1 | |
220 | case 3: | |
221 | num = 1<<21 - 1 | |
222 | case 4: | |
223 | num = 1<<28 - 1 | |
224 | case 5: | |
225 | num = 1<<35 - 1 | |
226 | case 6: | |
227 | num = 1<<42 - 1 | |
228 | case 7: | |
229 | num = 1<<49 - 1 | |
230 | case 8: | |
231 | num = 1<<56 - 1 | |
232 | case 9: | |
233 | num = 1<<63 - 1 | |
234 | case 10: | |
235 | num = 1<<64 - 1 | |
236 | } | |
237 | for m := 0; m < dist[k]; m++ { | |
238 | dest = append(dest, num) | |
239 | } | |
240 | } | |
241 | } | |
242 | return | |
243 | } | |
244 | ||
245 | // BenchmarkDecodeEmpty measures the overhead of doing the minimal possible decode. | |
246 | func BenchmarkDecodeEmpty(b *testing.B) { | |
247 | raw, err := proto.Marshal(&tpb.Message{}) | |
248 | if err != nil { | |
249 | b.Error("wrong encode", err) | |
250 | } | |
251 | b.ResetTimer() | |
252 | for i := 0; i < b.N; i++ { | |
253 | if err := proto.Unmarshal(raw, msgBlackhole); err != nil { | |
254 | b.Error("wrong decode", err) | |
255 | } | |
256 | } | |
257 | } |
173 | 173 | // This is the format used for the sint64 protocol buffer type. |
174 | 174 | func (p *Buffer) EncodeZigzag64(x uint64) error { |
175 | 175 | // use signed number to get arithmetic right shift. |
176 | return p.EncodeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63)))) | |
176 | return p.EncodeVarint((x << 1) ^ uint64((int64(x) >> 63))) | |
177 | 177 | } |
178 | 178 | |
179 | 179 | func sizeZigzag64(x uint64) int { |
180 | return sizeVarint(uint64((x << 1) ^ uint64((int64(x) >> 63)))) | |
180 | return sizeVarint((x << 1) ^ uint64((int64(x) >> 63))) | |
181 | 181 | } |
182 | 182 | |
183 | 183 | // EncodeZigzag32 writes a zigzag-encoded 32-bit integer |
233 | 233 | } |
234 | 234 | p := NewBuffer(nil) |
235 | 235 | err := p.Marshal(pb) |
236 | var state errorState | |
237 | if err != nil && !state.shouldContinue(err, nil) { | |
238 | return nil, err | |
239 | } | |
240 | 236 | if p.buf == nil && err == nil { |
241 | 237 | // Return a non-nil slice on success. |
242 | 238 | return []byte{}, nil |
265 | 261 | // Can the object marshal itself? |
266 | 262 | if m, ok := pb.(Marshaler); ok { |
267 | 263 | data, err := m.Marshal() |
268 | if err != nil { | |
269 | return err | |
270 | } | |
271 | 264 | p.buf = append(p.buf, data...) |
272 | return nil | |
265 | return err | |
273 | 266 | } |
274 | 267 | |
275 | 268 | t, base, err := getbase(pb) |
281 | 274 | } |
282 | 275 | |
283 | 276 | if collectStats { |
284 | stats.Encode++ | |
277 | (stats).Encode++ // Parens are to work around a goimports bug. | |
285 | 278 | } |
286 | 279 | |
287 | 280 | if len(p.buf) > maxMarshalSize { |
308 | 301 | } |
309 | 302 | |
310 | 303 | if collectStats { |
311 | stats.Size++ | |
304 | (stats).Size++ // Parens are to work around a goimports bug. | |
312 | 305 | } |
313 | 306 | |
314 | 307 | return |
1013 | 1006 | if p.isMarshaler { |
1014 | 1007 | m := structPointer_Interface(structp, p.stype).(Marshaler) |
1015 | 1008 | data, _ := m.Marshal() |
1016 | n += len(p.tagcode) | |
1017 | 1009 | n += sizeRawBytes(data) |
1018 | 1010 | continue |
1019 | 1011 | } |
1082 | 1074 | |
1083 | 1075 | func (o *Buffer) enc_exts(p *Properties, base structPointer) error { |
1084 | 1076 | exts := structPointer_Extensions(base, p.field) |
1085 | if err := encodeExtensions(exts); err != nil { | |
1077 | ||
1078 | v, mu := exts.extensionsRead() | |
1079 | if v == nil { | |
1080 | return nil | |
1081 | } | |
1082 | ||
1083 | mu.Lock() | |
1084 | defer mu.Unlock() | |
1085 | if err := encodeExtensionsMap(v); err != nil { | |
1086 | 1086 | return err |
1087 | 1087 | } |
1088 | v, _ := exts.extensionsRead() | |
1089 | 1088 | |
1090 | 1089 | return o.enc_map_body(v) |
1091 | 1090 | } |
0 | // Go support for Protocol Buffers - Google's data interchange format | |
1 | // | |
2 | // Copyright 2010 The Go Authors. All rights reserved. | |
3 | // https://github.com/golang/protobuf | |
4 | // | |
5 | // Redistribution and use in source and binary forms, with or without | |
6 | // modification, are permitted provided that the following conditions are | |
7 | // met: | |
8 | // | |
9 | // * Redistributions of source code must retain the above copyright | |
10 | // notice, this list of conditions and the following disclaimer. | |
11 | // * Redistributions in binary form must reproduce the above | |
12 | // copyright notice, this list of conditions and the following disclaimer | |
13 | // in the documentation and/or other materials provided with the | |
14 | // distribution. | |
15 | // * Neither the name of Google Inc. nor the names of its | |
16 | // contributors may be used to endorse or promote products derived from | |
17 | // this software without specific prior written permission. | |
18 | // | |
19 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
20 | // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
21 | // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
22 | // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | |
23 | // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
24 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | |
25 | // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | |
26 | // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | |
27 | // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | |
28 | // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | |
29 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
30 | ||
31 | // +build go1.7 | |
32 | ||
33 | package proto_test | |
34 | ||
35 | import ( | |
36 | "strconv" | |
37 | "testing" | |
38 | ||
39 | "github.com/golang/protobuf/proto" | |
40 | tpb "github.com/golang/protobuf/proto/proto3_proto" | |
41 | "github.com/golang/protobuf/ptypes" | |
42 | ) | |
43 | ||
44 | var ( | |
45 | blackhole []byte | |
46 | ) | |
47 | ||
48 | // BenchmarkAny creates increasingly large arbitrary Any messages. The type is always the | |
49 | // same. | |
50 | func BenchmarkAny(b *testing.B) { | |
51 | data := make([]byte, 1<<20) | |
52 | quantum := 1 << 10 | |
53 | for i := uint(0); i <= 10; i++ { | |
54 | b.Run(strconv.Itoa(quantum<<i), func(b *testing.B) { | |
55 | for k := 0; k < b.N; k++ { | |
56 | inner := &tpb.Message{ | |
57 | Data: data[:quantum<<i], | |
58 | } | |
59 | outer, err := ptypes.MarshalAny(inner) | |
60 | if err != nil { | |
61 | b.Error("wrong encode", err) | |
62 | } | |
63 | raw, err := proto.Marshal(&tpb.Message{ | |
64 | Anything: outer, | |
65 | }) | |
66 | if err != nil { | |
67 | b.Error("wrong encode", err) | |
68 | } | |
69 | blackhole = raw | |
70 | } | |
71 | }) | |
72 | } | |
73 | } | |
74 | ||
75 | // BenchmarkEmpy measures the overhead of doing the minimal possible encode. | |
76 | func BenchmarkEmpy(b *testing.B) { | |
77 | for i := 0; i < b.N; i++ { | |
78 | raw, err := proto.Marshal(&tpb.Message{}) | |
79 | if err != nil { | |
80 | b.Error("wrong encode", err) | |
81 | } | |
82 | blackhole = raw | |
83 | } | |
84 | } |
53 | 53 | in a proto3 .proto file, fields are not "set"; specifically, |
54 | 54 | zero length proto3 "bytes" fields are equal (nil == {}). |
55 | 55 | - Two repeated fields are equal iff their lengths are the same, |
56 | and their corresponding elements are equal (a "bytes" field, | |
57 | although represented by []byte, is not a repeated field) | |
56 | and their corresponding elements are equal. Note a "bytes" field, | |
57 | although represented by []byte, is not a repeated field and the | |
58 | rule for the scalar fields described above applies. | |
58 | 59 | - Two unset fields are equal. |
59 | 60 | - Two unknown field sets are equal if their current |
60 | 61 | encoded state is equal. |
61 | 62 | - Two extension sets are equal iff they have corresponding |
62 | 63 | elements that are pairwise equal. |
64 | - Two map fields are equal iff their lengths are the same, | |
65 | and they contain the same set of elements. Zero-length map | |
66 | fields are equal. | |
63 | 67 | - Every other combination of things are not equal. |
64 | 68 | |
65 | 69 | The return value is undefined if a and b are not protocol buffers. |
183 | 183 | false, |
184 | 184 | }, |
185 | 185 | { |
186 | "zero-length maps same", | |
187 | &pb.MessageWithMap{NameMapping: map[int32]string{}}, | |
188 | &pb.MessageWithMap{NameMapping: nil}, | |
189 | true, | |
190 | }, | |
191 | { | |
192 | "orders in map don't matter", | |
193 | &pb.MessageWithMap{NameMapping: map[int32]string{1: "Ken", 2: "Rob"}}, | |
194 | &pb.MessageWithMap{NameMapping: map[int32]string{2: "Rob", 1: "Ken"}}, | |
195 | true, | |
196 | }, | |
197 | { | |
186 | 198 | "oneof same", |
187 | 199 | &pb.Communique{Union: &pb.Communique_Number{41}}, |
188 | 200 | &pb.Communique{Union: &pb.Communique_Number{41}}, |
153 | 153 | Field int32 // field number |
154 | 154 | Name string // fully-qualified name of extension, for text formatting |
155 | 155 | Tag string // protobuf tag style |
156 | Filename string // name of the file in which the extension is defined | |
156 | 157 | } |
157 | 158 | |
158 | 159 | func (ed *ExtensionDesc) repeated() bool { |
39 | 39 | |
40 | 40 | "github.com/golang/protobuf/proto" |
41 | 41 | pb "github.com/golang/protobuf/proto/testdata" |
42 | "golang.org/x/sync/errgroup" | |
42 | 43 | ) |
43 | 44 | |
44 | 45 | func TestGetExtensionsWithMissingExtensions(t *testing.T) { |
505 | 506 | t.Errorf("proto.HasExtension(%s): got true, want false", proto.MarshalTextString(m)) |
506 | 507 | } |
507 | 508 | } |
509 | ||
510 | func TestMarshalRace(t *testing.T) { | |
511 | // unregistered extension | |
512 | desc := &proto.ExtensionDesc{ | |
513 | ExtendedType: (*pb.MyMessage)(nil), | |
514 | ExtensionType: (*bool)(nil), | |
515 | Field: 101010100, | |
516 | Name: "emptyextension", | |
517 | Tag: "varint,0,opt", | |
518 | } | |
519 | ||
520 | m := &pb.MyMessage{Count: proto.Int32(4)} | |
521 | if err := proto.SetExtension(m, desc, proto.Bool(true)); err != nil { | |
522 | t.Errorf("proto.SetExtension(m, desc, true): got error %q, want nil", err) | |
523 | } | |
524 | ||
525 | var g errgroup.Group | |
526 | for n := 3; n > 0; n-- { | |
527 | g.Go(func() error { | |
528 | _, err := proto.Marshal(m) | |
529 | return err | |
530 | }) | |
531 | } | |
532 | if err := g.Wait(); err != nil { | |
533 | t.Fatal(err) | |
534 | } | |
535 | } |
72 | 72 | When the .proto file specifies `syntax="proto3"`, there are some differences: |
73 | 73 | |
74 | 74 | - Non-repeated fields of non-message type are values instead of pointers. |
75 | - Getters are only generated for message and oneof fields. | |
76 | 75 | - Enum types do not get an Enum method. |
77 | 76 | |
78 | 77 | The simplest way to describe this is to see an example. |
0 | package proto_test | |
1 | ||
2 | import ( | |
3 | "fmt" | |
4 | "testing" | |
5 | ||
6 | "github.com/golang/protobuf/proto" | |
7 | ppb "github.com/golang/protobuf/proto/proto3_proto" | |
8 | ) | |
9 | ||
10 | func marshalled() []byte { | |
11 | m := &ppb.IntMaps{} | |
12 | for i := 0; i < 1000; i++ { | |
13 | m.Maps = append(m.Maps, &ppb.IntMap{ | |
14 | Rtt: map[int32]int32{1: 2}, | |
15 | }) | |
16 | } | |
17 | b, err := proto.Marshal(m) | |
18 | if err != nil { | |
19 | panic(fmt.Sprintf("Can't marshal %+v: %v", m, err)) | |
20 | } | |
21 | return b | |
22 | } | |
23 | ||
24 | func BenchmarkConcurrentMapUnmarshal(b *testing.B) { | |
25 | in := marshalled() | |
26 | b.RunParallel(func(pb *testing.PB) { | |
27 | for pb.Next() { | |
28 | var out ppb.IntMaps | |
29 | if err := proto.Unmarshal(in, &out); err != nil { | |
30 | b.Errorf("Can't unmarshal ppb.IntMaps: %v", err) | |
31 | } | |
32 | } | |
33 | }) | |
34 | } | |
35 | ||
36 | func BenchmarkSequentialMapUnmarshal(b *testing.B) { | |
37 | in := marshalled() | |
38 | b.ResetTimer() | |
39 | for i := 0; i < b.N; i++ { | |
40 | var out ppb.IntMaps | |
41 | if err := proto.Unmarshal(in, &out); err != nil { | |
42 | b.Errorf("Can't unmarshal ppb.IntMaps: %v", err) | |
43 | } | |
44 | } | |
45 | } |
843 | 843 | } |
844 | 844 | |
845 | 845 | // MessageName returns the fully-qualified proto name for the given message type. |
846 | func MessageName(x Message) string { return revProtoTypes[reflect.TypeOf(x)] } | |
846 | func MessageName(x Message) string { | |
847 | type xname interface { | |
848 | XXX_MessageName() string | |
849 | } | |
850 | if m, ok := x.(xname); ok { | |
851 | return m.XXX_MessageName() | |
852 | } | |
853 | return revProtoTypes[reflect.TypeOf(x)] | |
854 | } | |
847 | 855 | |
848 | 856 | // MessageType returns the message type (pointer to struct) for a named message. |
849 | 857 | func MessageType(name string) reflect.Type { return protoTypes[name] } |
11 | 11 | Message |
12 | 12 | Nested |
13 | 13 | MessageWithMap |
14 | IntMap | |
15 | IntMaps | |
14 | 16 | */ |
15 | 17 | package proto3_proto |
16 | 18 | |
27 | 29 | |
28 | 30 | // This is a compile-time assertion to ensure that this generated file |
29 | 31 | // is compatible with the proto package it is being compiled against. |
30 | const _ = proto.ProtoPackageIsVersion1 | |
32 | // A compilation error at this line likely means your copy of the | |
33 | // proto package needs to be updated. | |
34 | const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package | |
31 | 35 | |
32 | 36 | type Message_Humour int32 |
33 | 37 | |
64 | 68 | ResultCount int64 `protobuf:"varint,7,opt,name=result_count,json=resultCount" json:"result_count,omitempty"` |
65 | 69 | TrueScotsman bool `protobuf:"varint,8,opt,name=true_scotsman,json=trueScotsman" json:"true_scotsman,omitempty"` |
66 | 70 | Score float32 `protobuf:"fixed32,9,opt,name=score" json:"score,omitempty"` |
67 | Key []uint64 `protobuf:"varint,5,rep,name=key" json:"key,omitempty"` | |
71 | Key []uint64 `protobuf:"varint,5,rep,packed,name=key" json:"key,omitempty"` | |
72 | ShortKey []int32 `protobuf:"varint,19,rep,packed,name=short_key,json=shortKey" json:"short_key,omitempty"` | |
68 | 73 | Nested *Nested `protobuf:"bytes,6,opt,name=nested" json:"nested,omitempty"` |
69 | RFunny []Message_Humour `protobuf:"varint,16,rep,name=r_funny,json=rFunny,enum=proto3_proto.Message_Humour" json:"r_funny,omitempty"` | |
74 | RFunny []Message_Humour `protobuf:"varint,16,rep,packed,name=r_funny,json=rFunny,enum=proto3_proto.Message_Humour" json:"r_funny,omitempty"` | |
70 | 75 | Terrain map[string]*Nested `protobuf:"bytes,10,rep,name=terrain" json:"terrain,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` |
71 | 76 | Proto2Field *testdata.SubDefaults `protobuf:"bytes,11,opt,name=proto2_field,json=proto2Field" json:"proto2_field,omitempty"` |
72 | 77 | Proto2Value map[string]*testdata.SubDefaults `protobuf:"bytes,13,rep,name=proto2_value,json=proto2Value" json:"proto2_value,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` |
73 | 78 | Anything *google_protobuf.Any `protobuf:"bytes,14,opt,name=anything" json:"anything,omitempty"` |
74 | 79 | ManyThings []*google_protobuf.Any `protobuf:"bytes,15,rep,name=many_things,json=manyThings" json:"many_things,omitempty"` |
80 | Submessage *Message `protobuf:"bytes,17,opt,name=submessage" json:"submessage,omitempty"` | |
81 | Children []*Message `protobuf:"bytes,18,rep,name=children" json:"children,omitempty"` | |
75 | 82 | } |
76 | 83 | |
77 | 84 | func (m *Message) Reset() { *m = Message{} } |
79 | 86 | func (*Message) ProtoMessage() {} |
80 | 87 | func (*Message) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } |
81 | 88 | |
89 | func (m *Message) GetName() string { | |
90 | if m != nil { | |
91 | return m.Name | |
92 | } | |
93 | return "" | |
94 | } | |
95 | ||
96 | func (m *Message) GetHilarity() Message_Humour { | |
97 | if m != nil { | |
98 | return m.Hilarity | |
99 | } | |
100 | return Message_UNKNOWN | |
101 | } | |
102 | ||
103 | func (m *Message) GetHeightInCm() uint32 { | |
104 | if m != nil { | |
105 | return m.HeightInCm | |
106 | } | |
107 | return 0 | |
108 | } | |
109 | ||
110 | func (m *Message) GetData() []byte { | |
111 | if m != nil { | |
112 | return m.Data | |
113 | } | |
114 | return nil | |
115 | } | |
116 | ||
117 | func (m *Message) GetResultCount() int64 { | |
118 | if m != nil { | |
119 | return m.ResultCount | |
120 | } | |
121 | return 0 | |
122 | } | |
123 | ||
124 | func (m *Message) GetTrueScotsman() bool { | |
125 | if m != nil { | |
126 | return m.TrueScotsman | |
127 | } | |
128 | return false | |
129 | } | |
130 | ||
131 | func (m *Message) GetScore() float32 { | |
132 | if m != nil { | |
133 | return m.Score | |
134 | } | |
135 | return 0 | |
136 | } | |
137 | ||
138 | func (m *Message) GetKey() []uint64 { | |
139 | if m != nil { | |
140 | return m.Key | |
141 | } | |
142 | return nil | |
143 | } | |
144 | ||
145 | func (m *Message) GetShortKey() []int32 { | |
146 | if m != nil { | |
147 | return m.ShortKey | |
148 | } | |
149 | return nil | |
150 | } | |
151 | ||
82 | 152 | func (m *Message) GetNested() *Nested { |
83 | 153 | if m != nil { |
84 | 154 | return m.Nested |
86 | 156 | return nil |
87 | 157 | } |
88 | 158 | |
159 | func (m *Message) GetRFunny() []Message_Humour { | |
160 | if m != nil { | |
161 | return m.RFunny | |
162 | } | |
163 | return nil | |
164 | } | |
165 | ||
89 | 166 | func (m *Message) GetTerrain() map[string]*Nested { |
90 | 167 | if m != nil { |
91 | 168 | return m.Terrain |
117 | 194 | func (m *Message) GetManyThings() []*google_protobuf.Any { |
118 | 195 | if m != nil { |
119 | 196 | return m.ManyThings |
197 | } | |
198 | return nil | |
199 | } | |
200 | ||
201 | func (m *Message) GetSubmessage() *Message { | |
202 | if m != nil { | |
203 | return m.Submessage | |
204 | } | |
205 | return nil | |
206 | } | |
207 | ||
208 | func (m *Message) GetChildren() []*Message { | |
209 | if m != nil { | |
210 | return m.Children | |
120 | 211 | } |
121 | 212 | return nil |
122 | 213 | } |
131 | 222 | func (*Nested) ProtoMessage() {} |
132 | 223 | func (*Nested) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } |
133 | 224 | |
225 | func (m *Nested) GetBunny() string { | |
226 | if m != nil { | |
227 | return m.Bunny | |
228 | } | |
229 | return "" | |
230 | } | |
231 | ||
232 | func (m *Nested) GetCute() bool { | |
233 | if m != nil { | |
234 | return m.Cute | |
235 | } | |
236 | return false | |
237 | } | |
238 | ||
134 | 239 | type MessageWithMap struct { |
135 | 240 | ByteMapping map[bool][]byte `protobuf:"bytes,1,rep,name=byte_mapping,json=byteMapping" json:"byte_mapping,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value,proto3"` |
136 | 241 | } |
147 | 252 | return nil |
148 | 253 | } |
149 | 254 | |
255 | type IntMap struct { | |
256 | Rtt map[int32]int32 `protobuf:"bytes,1,rep,name=rtt" json:"rtt,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` | |
257 | } | |
258 | ||
259 | func (m *IntMap) Reset() { *m = IntMap{} } | |
260 | func (m *IntMap) String() string { return proto.CompactTextString(m) } | |
261 | func (*IntMap) ProtoMessage() {} | |
262 | func (*IntMap) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } | |
263 | ||
264 | func (m *IntMap) GetRtt() map[int32]int32 { | |
265 | if m != nil { | |
266 | return m.Rtt | |
267 | } | |
268 | return nil | |
269 | } | |
270 | ||
271 | type IntMaps struct { | |
272 | Maps []*IntMap `protobuf:"bytes,1,rep,name=maps" json:"maps,omitempty"` | |
273 | } | |
274 | ||
275 | func (m *IntMaps) Reset() { *m = IntMaps{} } | |
276 | func (m *IntMaps) String() string { return proto.CompactTextString(m) } | |
277 | func (*IntMaps) ProtoMessage() {} | |
278 | func (*IntMaps) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } | |
279 | ||
280 | func (m *IntMaps) GetMaps() []*IntMap { | |
281 | if m != nil { | |
282 | return m.Maps | |
283 | } | |
284 | return nil | |
285 | } | |
286 | ||
150 | 287 | func init() { |
151 | 288 | proto.RegisterType((*Message)(nil), "proto3_proto.Message") |
152 | 289 | proto.RegisterType((*Nested)(nil), "proto3_proto.Nested") |
153 | 290 | proto.RegisterType((*MessageWithMap)(nil), "proto3_proto.MessageWithMap") |
291 | proto.RegisterType((*IntMap)(nil), "proto3_proto.IntMap") | |
292 | proto.RegisterType((*IntMaps)(nil), "proto3_proto.IntMaps") | |
154 | 293 | proto.RegisterEnum("proto3_proto.Message_Humour", Message_Humour_name, Message_Humour_value) |
155 | 294 | } |
156 | 295 | |
296 | func init() { proto.RegisterFile("proto3_proto/proto3.proto", fileDescriptor0) } | |
297 | ||
157 | 298 | var fileDescriptor0 = []byte{ |
158 | // 621 bytes of a gzipped FileDescriptorProto | |
159 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x84, 0x53, 0x5b, 0x6f, 0xd3, 0x4c, | |
160 | 0x10, 0xfd, 0x72, 0xa9, 0xe3, 0x8e, 0x9d, 0xd6, 0xda, 0xaf, 0x48, 0xdb, 0x88, 0x87, 0x12, 0x24, | |
161 | 0x54, 0x71, 0x71, 0x51, 0x10, 0x52, 0x85, 0x10, 0xa8, 0x2d, 0xad, 0x88, 0x9a, 0x86, 0x68, 0xd3, | |
162 | 0x52, 0xf1, 0x64, 0xad, 0xd3, 0x4d, 0x62, 0x11, 0xaf, 0x23, 0x7b, 0x8d, 0xe4, 0xbf, 0xc3, 0xaf, | |
163 | 0xe4, 0x91, 0xbd, 0x38, 0xad, 0x5b, 0x05, 0x78, 0xf2, 0xee, 0xcc, 0x39, 0x33, 0xb3, 0xe7, 0x8c, | |
164 | 0x61, 0x77, 0x99, 0x26, 0x22, 0x79, 0x13, 0xe8, 0xcf, 0x81, 0xb9, 0xf8, 0xfa, 0x83, 0xdc, 0x6a, | |
165 | 0xaa, 0xb3, 0x3b, 0x4b, 0x92, 0xd9, 0x82, 0x19, 0x48, 0x98, 0x4f, 0x0f, 0x28, 0x2f, 0x0c, 0xb0, | |
166 | 0xf3, 0xbf, 0x60, 0x99, 0xb8, 0xa1, 0x82, 0x1e, 0xa8, 0x83, 0x09, 0x76, 0x7f, 0x59, 0xd0, 0xba, | |
167 | 0x60, 0x59, 0x46, 0x67, 0x0c, 0x21, 0x68, 0x72, 0x1a, 0x33, 0x5c, 0xdb, 0xab, 0xed, 0x6f, 0x12, | |
168 | 0x7d, 0x46, 0x87, 0x60, 0xcf, 0xa3, 0x05, 0x4d, 0x23, 0x51, 0xe0, 0xba, 0x8c, 0x6f, 0xf5, 0x1e, | |
169 | 0xfb, 0xd5, 0x86, 0x7e, 0x49, 0xf6, 0x3f, 0xe7, 0x71, 0x92, 0xa7, 0xe4, 0x16, 0x8d, 0xf6, 0xc0, | |
170 | 0x9d, 0xb3, 0x68, 0x36, 0x17, 0x41, 0xc4, 0x83, 0x49, 0x8c, 0x1b, 0x92, 0xdd, 0x26, 0x60, 0x62, | |
171 | 0x7d, 0x7e, 0x12, 0xab, 0x7e, 0x6a, 0x1c, 0xdc, 0x94, 0x19, 0x97, 0xe8, 0x33, 0x7a, 0x02, 0x6e, | |
172 | 0xca, 0xb2, 0x7c, 0x21, 0x82, 0x49, 0x92, 0x73, 0x81, 0x5b, 0x32, 0xd7, 0x20, 0x8e, 0x89, 0x9d, | |
173 | 0xa8, 0x10, 0x7a, 0x0a, 0x6d, 0x91, 0xe6, 0x2c, 0xc8, 0x26, 0x89, 0xc8, 0x62, 0xca, 0xb1, 0x2d, | |
174 | 0x31, 0x36, 0x71, 0x55, 0x70, 0x5c, 0xc6, 0xd0, 0x0e, 0x6c, 0xc8, 0x7c, 0xca, 0xf0, 0xa6, 0x4c, | |
175 | 0xd6, 0x89, 0xb9, 0x20, 0x0f, 0x1a, 0xdf, 0x59, 0x81, 0x37, 0xf6, 0x1a, 0xfb, 0x4d, 0xa2, 0x8e, | |
176 | 0xe8, 0x25, 0x58, 0x5c, 0xaa, 0xc1, 0x6e, 0xb0, 0x25, 0x81, 0x4e, 0x6f, 0xe7, 0xfe, 0xeb, 0x86, | |
177 | 0x3a, 0x47, 0x4a, 0x0c, 0x7a, 0x0b, 0xad, 0x34, 0x98, 0xe6, 0x9c, 0x17, 0xd8, 0x93, 0x35, 0xfe, | |
178 | 0x25, 0x86, 0x95, 0x9e, 0x29, 0x2c, 0x7a, 0x0f, 0x2d, 0xc1, 0xd2, 0x94, 0x46, 0x1c, 0x83, 0xa4, | |
179 | 0x39, 0xbd, 0xee, 0x7a, 0xda, 0xa5, 0x01, 0x9d, 0x72, 0x91, 0x16, 0x64, 0x45, 0x91, 0x16, 0x18, | |
180 | 0x8b, 0x7b, 0xc1, 0x34, 0x62, 0x8b, 0x1b, 0xec, 0xe8, 0x41, 0x1f, 0xf9, 0x2b, 0x3b, 0xfd, 0x71, | |
181 | 0x1e, 0x7e, 0x62, 0x53, 0x2a, 0x05, 0xca, 0x88, 0x63, 0xa0, 0x67, 0x0a, 0x89, 0xfa, 0xb7, 0xcc, | |
182 | 0x1f, 0x74, 0x91, 0x33, 0xdc, 0xd6, 0xcd, 0x9f, 0xad, 0x6f, 0x3e, 0xd2, 0xc8, 0xaf, 0x0a, 0x68, | |
183 | 0x06, 0x28, 0x4b, 0xe9, 0x08, 0x7a, 0x0d, 0xb6, 0xdc, 0x24, 0x31, 0x8f, 0xf8, 0x0c, 0x6f, 0x95, | |
184 | 0x4a, 0x99, 0x55, 0xf3, 0x57, 0xab, 0xe6, 0x1f, 0xf1, 0x82, 0xdc, 0xa2, 0xa4, 0x56, 0x8e, 0x34, | |
185 | 0xa2, 0x08, 0xf4, 0x2d, 0xc3, 0xdb, 0xba, 0xf7, 0x7a, 0x12, 0x28, 0xe0, 0xa5, 0xc6, 0x75, 0x46, | |
186 | 0xe0, 0x56, 0x65, 0x58, 0x59, 0x66, 0x76, 0x52, 0x5b, 0xf6, 0x1c, 0x36, 0xcc, 0x73, 0xea, 0x7f, | |
187 | 0x71, 0xcc, 0x40, 0xde, 0xd5, 0x0f, 0x6b, 0x9d, 0x2b, 0xf0, 0x1e, 0xbe, 0x6d, 0x4d, 0xd5, 0x17, | |
188 | 0xf7, 0xab, 0xfe, 0x41, 0xde, 0xbb, 0xb2, 0xdd, 0x8f, 0x60, 0x19, 0x9b, 0x91, 0x03, 0xad, 0xab, | |
189 | 0xe1, 0xf9, 0xf0, 0xcb, 0xf5, 0xd0, 0xfb, 0x0f, 0xd9, 0xd0, 0x1c, 0x5d, 0x0d, 0xc7, 0x5e, 0x0d, | |
190 | 0xb5, 0x61, 0x73, 0x3c, 0x38, 0x1a, 0x8d, 0x2f, 0xfb, 0x27, 0xe7, 0x5e, 0x1d, 0x6d, 0x83, 0x73, | |
191 | 0xdc, 0x1f, 0x0c, 0x82, 0xe3, 0xa3, 0xfe, 0xe0, 0xf4, 0x9b, 0xd7, 0xe8, 0xf6, 0xc0, 0x32, 0xc3, | |
192 | 0xaa, 0x65, 0x0d, 0xf5, 0x52, 0x99, 0x79, 0xcc, 0x45, 0xfd, 0x1e, 0x93, 0x5c, 0x98, 0x81, 0x6c, | |
193 | 0xa2, 0xcf, 0xdd, 0x9f, 0x35, 0xd8, 0x2a, 0x0d, 0xbb, 0x8e, 0xc4, 0xfc, 0x82, 0x2e, 0x91, 0x14, | |
194 | 0x2c, 0x2c, 0x04, 0x0b, 0x62, 0xba, 0x5c, 0x2a, 0x77, 0x6a, 0x5a, 0xe8, 0x57, 0x6b, 0x4d, 0x2e, | |
195 | 0x39, 0xfe, 0xb1, 0x24, 0x5c, 0x18, 0x7c, 0xe9, 0x75, 0x78, 0x17, 0xe9, 0x7c, 0x00, 0xef, 0x21, | |
196 | 0xa0, 0x2a, 0x98, 0x6d, 0x04, 0xdb, 0xa9, 0x0a, 0xe6, 0x56, 0x94, 0x09, 0x2d, 0xd3, 0xfa, 0x77, | |
197 | 0x00, 0x00, 0x00, 0xff, 0xff, 0x78, 0xc9, 0x75, 0x36, 0xb5, 0x04, 0x00, 0x00, | |
198 | } | |
299 | // 733 bytes of a gzipped FileDescriptorProto | |
300 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x84, 0x53, 0x6d, 0x6f, 0xf3, 0x34, | |
301 | 0x14, 0x25, 0x4d, 0x5f, 0xd2, 0x9b, 0x74, 0x0b, 0x5e, 0x91, 0xbc, 0x02, 0x52, 0x28, 0x12, 0x8a, | |
302 | 0x78, 0x49, 0xa1, 0xd3, 0xd0, 0x84, 0x10, 0x68, 0x1b, 0x9b, 0xa8, 0xd6, 0x95, 0xca, 0xdd, 0x98, | |
303 | 0xf8, 0x14, 0xa5, 0xad, 0xdb, 0x46, 0x34, 0x4e, 0x49, 0x1c, 0xa4, 0xfc, 0x1d, 0xfe, 0x28, 0x8f, | |
304 | 0x6c, 0xa7, 0x5d, 0x36, 0x65, 0xcf, 0xf3, 0x29, 0xf6, 0xf1, 0xb9, 0xf7, 0x9c, 0x1c, 0x5f, 0xc3, | |
305 | 0xe9, 0x2e, 0x89, 0x79, 0x7c, 0xe6, 0xcb, 0xcf, 0x40, 0x6d, 0x3c, 0xf9, 0x41, 0x56, 0xf9, 0xa8, | |
306 | 0x77, 0xba, 0x8e, 0xe3, 0xf5, 0x96, 0x2a, 0xca, 0x3c, 0x5b, 0x0d, 0x02, 0x96, 0x2b, 0x62, 0xef, | |
307 | 0x84, 0xd3, 0x94, 0x2f, 0x03, 0x1e, 0x0c, 0xc4, 0x42, 0x81, 0xfd, 0xff, 0x5b, 0xd0, 0xba, 0xa7, | |
308 | 0x69, 0x1a, 0xac, 0x29, 0x42, 0x50, 0x67, 0x41, 0x44, 0xb1, 0xe6, 0x68, 0x6e, 0x9b, 0xc8, 0x35, | |
309 | 0xba, 0x00, 0x63, 0x13, 0x6e, 0x83, 0x24, 0xe4, 0x39, 0xae, 0x39, 0x9a, 0x7b, 0x34, 0xfc, 0xcc, | |
310 | 0x2b, 0x0b, 0x7a, 0x45, 0xb1, 0xf7, 0x7b, 0x16, 0xc5, 0x59, 0x42, 0x0e, 0x6c, 0xe4, 0x80, 0xb5, | |
311 | 0xa1, 0xe1, 0x7a, 0xc3, 0xfd, 0x90, 0xf9, 0x8b, 0x08, 0xeb, 0x8e, 0xe6, 0x76, 0x08, 0x28, 0x6c, | |
312 | 0xc4, 0xae, 0x23, 0xa1, 0x27, 0xec, 0xe0, 0xba, 0xa3, 0xb9, 0x16, 0x91, 0x6b, 0xf4, 0x05, 0x58, | |
313 | 0x09, 0x4d, 0xb3, 0x2d, 0xf7, 0x17, 0x71, 0xc6, 0x38, 0x6e, 0x39, 0x9a, 0xab, 0x13, 0x53, 0x61, | |
314 | 0xd7, 0x02, 0x42, 0x5f, 0x42, 0x87, 0x27, 0x19, 0xf5, 0xd3, 0x45, 0xcc, 0xd3, 0x28, 0x60, 0xd8, | |
315 | 0x70, 0x34, 0xd7, 0x20, 0x96, 0x00, 0x67, 0x05, 0x86, 0xba, 0xd0, 0x48, 0x17, 0x71, 0x42, 0x71, | |
316 | 0xdb, 0xd1, 0xdc, 0x1a, 0x51, 0x1b, 0x64, 0x83, 0xfe, 0x37, 0xcd, 0x71, 0xc3, 0xd1, 0xdd, 0x3a, | |
317 | 0x11, 0x4b, 0xf4, 0x29, 0xb4, 0xd3, 0x4d, 0x9c, 0x70, 0x5f, 0xe0, 0x27, 0x8e, 0xee, 0x36, 0x88, | |
318 | 0x21, 0x81, 0x3b, 0x9a, 0xa3, 0x6f, 0xa1, 0xc9, 0x68, 0xca, 0xe9, 0x12, 0x37, 0x1d, 0xcd, 0x35, | |
319 | 0x87, 0xdd, 0x97, 0xbf, 0x3e, 0x91, 0x67, 0xa4, 0xe0, 0xa0, 0x73, 0x68, 0x25, 0xfe, 0x2a, 0x63, | |
320 | 0x2c, 0xc7, 0xb6, 0xa3, 0x7f, 0x30, 0xa9, 0x66, 0x72, 0x2b, 0xb8, 0xe8, 0x67, 0x68, 0x71, 0x9a, | |
321 | 0x24, 0x41, 0xc8, 0x30, 0x38, 0xba, 0x6b, 0x0e, 0xfb, 0xd5, 0x65, 0x0f, 0x8a, 0x74, 0xc3, 0x78, | |
322 | 0x92, 0x93, 0x7d, 0x09, 0xba, 0x00, 0x75, 0xff, 0x43, 0x7f, 0x15, 0xd2, 0xed, 0x12, 0x9b, 0xd2, | |
323 | 0xe8, 0x27, 0xde, 0xfe, 0xae, 0xbd, 0x59, 0x36, 0xff, 0x8d, 0xae, 0x82, 0x6c, 0xcb, 0x53, 0x62, | |
324 | 0x2a, 0xea, 0xad, 0x60, 0xa2, 0xd1, 0xa1, 0xf2, 0xdf, 0x60, 0x9b, 0x51, 0xdc, 0x91, 0xe2, 0x5f, | |
325 | 0x55, 0x8b, 0x4f, 0x25, 0xf3, 0x4f, 0x41, 0x54, 0x06, 0x8a, 0x56, 0x12, 0x41, 0xdf, 0x83, 0x11, | |
326 | 0xb0, 0x9c, 0x6f, 0x42, 0xb6, 0xc6, 0x47, 0x45, 0x52, 0x6a, 0x0e, 0xbd, 0xfd, 0x1c, 0x7a, 0x97, | |
327 | 0x2c, 0x27, 0x07, 0x16, 0x3a, 0x07, 0x33, 0x0a, 0x58, 0xee, 0xcb, 0x5d, 0x8a, 0x8f, 0xa5, 0x76, | |
328 | 0x75, 0x11, 0x08, 0xe2, 0x83, 0xe4, 0xa1, 0x73, 0x80, 0x34, 0x9b, 0x47, 0xca, 0x14, 0xfe, 0xb8, | |
329 | 0xf8, 0xd7, 0x2a, 0xc7, 0xa4, 0x44, 0x44, 0x3f, 0x80, 0xb1, 0xd8, 0x84, 0xdb, 0x65, 0x42, 0x19, | |
330 | 0x46, 0x52, 0xea, 0x8d, 0xa2, 0x03, 0xad, 0x37, 0x05, 0xab, 0x1c, 0xf8, 0x7e, 0x72, 0xd4, 0xd3, | |
331 | 0x90, 0x93, 0xf3, 0x35, 0x34, 0x54, 0x70, 0xb5, 0xf7, 0xcc, 0x86, 0xa2, 0xfc, 0x54, 0xbb, 0xd0, | |
332 | 0x7a, 0x8f, 0x60, 0xbf, 0x4e, 0xb1, 0xa2, 0xeb, 0x37, 0x2f, 0xbb, 0xbe, 0x71, 0x91, 0xcf, 0x6d, | |
333 | 0xfb, 0xbf, 0x42, 0x53, 0x0d, 0x14, 0x32, 0xa1, 0xf5, 0x38, 0xb9, 0x9b, 0xfc, 0xf1, 0x34, 0xb1, | |
334 | 0x3f, 0x42, 0x06, 0xd4, 0xa7, 0x8f, 0x93, 0x99, 0xad, 0xa1, 0x0e, 0xb4, 0x67, 0xe3, 0xcb, 0xe9, | |
335 | 0xec, 0x61, 0x74, 0x7d, 0x67, 0xd7, 0xd0, 0x31, 0x98, 0x57, 0xa3, 0xf1, 0xd8, 0xbf, 0xba, 0x1c, | |
336 | 0x8d, 0x6f, 0xfe, 0xb2, 0xf5, 0xfe, 0x10, 0x9a, 0xca, 0xac, 0x78, 0x33, 0x73, 0x39, 0xbe, 0xca, | |
337 | 0x8f, 0xda, 0x88, 0x57, 0xba, 0xc8, 0xb8, 0x32, 0x64, 0x10, 0xb9, 0xee, 0xff, 0xa7, 0xc1, 0x51, | |
338 | 0x91, 0xd9, 0x53, 0xc8, 0x37, 0xf7, 0xc1, 0x0e, 0x4d, 0xc1, 0x9a, 0xe7, 0x9c, 0xfa, 0x51, 0xb0, | |
339 | 0xdb, 0x89, 0x39, 0xd0, 0x64, 0xce, 0xdf, 0x55, 0xe6, 0x5c, 0xd4, 0x78, 0x57, 0x39, 0xa7, 0xf7, | |
340 | 0x8a, 0x5f, 0x4c, 0xd5, 0xfc, 0x19, 0xe9, 0xfd, 0x02, 0xf6, 0x6b, 0x42, 0x39, 0x30, 0x43, 0x05, | |
341 | 0xd6, 0x2d, 0x07, 0x66, 0x95, 0x93, 0xf9, 0x07, 0x9a, 0x23, 0xc6, 0x85, 0xb7, 0x01, 0xe8, 0x09, | |
342 | 0xe7, 0x85, 0xa5, 0xcf, 0x5f, 0x5a, 0x52, 0x14, 0x8f, 0x70, 0xae, 0x2c, 0x08, 0x66, 0xef, 0x47, | |
343 | 0x30, 0xf6, 0x40, 0x59, 0xb2, 0x51, 0x21, 0xd9, 0x28, 0x4b, 0x9e, 0x41, 0x4b, 0xf5, 0x4b, 0x91, | |
344 | 0x0b, 0xf5, 0x28, 0xd8, 0xa5, 0x85, 0x68, 0xb7, 0x4a, 0x94, 0x48, 0xc6, 0xbc, 0xa9, 0x8e, 0xde, | |
345 | 0x05, 0x00, 0x00, 0xff, 0xff, 0x75, 0x38, 0xad, 0x84, 0xe4, 0x05, 0x00, 0x00, | |
346 | } |
52 | 52 | float score = 9; |
53 | 53 | |
54 | 54 | repeated uint64 key = 5; |
55 | repeated int32 short_key = 19; | |
55 | 56 | Nested nested = 6; |
56 | 57 | repeated Humour r_funny = 16; |
57 | 58 | |
61 | 62 | |
62 | 63 | google.protobuf.Any anything = 14; |
63 | 64 | repeated google.protobuf.Any many_things = 15; |
65 | ||
66 | Message submessage = 17; | |
67 | repeated Message children = 18; | |
64 | 68 | } |
65 | 69 | |
66 | 70 | message Nested { |
71 | 75 | message MessageWithMap { |
72 | 76 | map<bool, bytes> byte_mapping = 1; |
73 | 77 | } |
78 | ||
79 | ||
80 | message IntMap { | |
81 | map<int32, int32> rtt = 1; | |
82 | } | |
83 | ||
84 | message IntMaps { | |
85 | repeated IntMap maps = 1; | |
86 | } |
92 | 92 | } |
93 | 93 | } |
94 | 94 | |
95 | func TestGettersForBasicTypesExist(t *testing.T) { | |
96 | var m pb.Message | |
97 | if got := m.GetNested().GetBunny(); got != "" { | |
98 | t.Errorf("m.GetNested().GetBunny() = %q, want empty string", got) | |
99 | } | |
100 | if got := m.GetNested().GetCute(); got { | |
101 | t.Errorf("m.GetNested().GetCute() = %t, want false", got) | |
102 | } | |
103 | } | |
104 | ||
95 | 105 | func TestProto3SetDefaults(t *testing.T) { |
96 | 106 | in := &pb.Message{ |
97 | 107 | Terrain: map[string]*pb.Nested{ |
0 | // Code generated by protoc-gen-go. | |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | 1 | // source: test.proto |
2 | // DO NOT EDIT! | |
3 | 2 | |
4 | 3 | /* |
5 | 4 | Package testdata is a generated protocol buffer package. |
322 | 321 | } |
323 | 322 | |
324 | 323 | type GoTestField struct { |
325 | Label *string `protobuf:"bytes,1,req,name=Label,json=label" json:"Label,omitempty"` | |
326 | Type *string `protobuf:"bytes,2,req,name=Type,json=type" json:"Type,omitempty"` | |
324 | Label *string `protobuf:"bytes,1,req,name=Label" json:"Label,omitempty"` | |
325 | Type *string `protobuf:"bytes,2,req,name=Type" json:"Type,omitempty"` | |
327 | 326 | XXX_unrecognized []byte `json:"-"` |
328 | 327 | } |
329 | 328 | |
348 | 347 | |
349 | 348 | type GoTest struct { |
350 | 349 | // Some typical parameters |
351 | Kind *GoTest_KIND `protobuf:"varint,1,req,name=Kind,json=kind,enum=testdata.GoTest_KIND" json:"Kind,omitempty"` | |
352 | Table *string `protobuf:"bytes,2,opt,name=Table,json=table" json:"Table,omitempty"` | |
353 | Param *int32 `protobuf:"varint,3,opt,name=Param,json=param" json:"Param,omitempty"` | |
350 | Kind *GoTest_KIND `protobuf:"varint,1,req,name=Kind,enum=testdata.GoTest_KIND" json:"Kind,omitempty"` | |
351 | Table *string `protobuf:"bytes,2,opt,name=Table" json:"Table,omitempty"` | |
352 | Param *int32 `protobuf:"varint,3,opt,name=Param" json:"Param,omitempty"` | |
354 | 353 | // Required, repeated and optional foreign fields. |
355 | RequiredField *GoTestField `protobuf:"bytes,4,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"` | |
356 | RepeatedField []*GoTestField `protobuf:"bytes,5,rep,name=RepeatedField,json=repeatedField" json:"RepeatedField,omitempty"` | |
357 | OptionalField *GoTestField `protobuf:"bytes,6,opt,name=OptionalField,json=optionalField" json:"OptionalField,omitempty"` | |
354 | RequiredField *GoTestField `protobuf:"bytes,4,req,name=RequiredField" json:"RequiredField,omitempty"` | |
355 | RepeatedField []*GoTestField `protobuf:"bytes,5,rep,name=RepeatedField" json:"RepeatedField,omitempty"` | |
356 | OptionalField *GoTestField `protobuf:"bytes,6,opt,name=OptionalField" json:"OptionalField,omitempty"` | |
358 | 357 | // Required fields of all basic types |
359 | F_BoolRequired *bool `protobuf:"varint,10,req,name=F_Bool_required,json=fBoolRequired" json:"F_Bool_required,omitempty"` | |
360 | F_Int32Required *int32 `protobuf:"varint,11,req,name=F_Int32_required,json=fInt32Required" json:"F_Int32_required,omitempty"` | |
361 | F_Int64Required *int64 `protobuf:"varint,12,req,name=F_Int64_required,json=fInt64Required" json:"F_Int64_required,omitempty"` | |
362 | F_Fixed32Required *uint32 `protobuf:"fixed32,13,req,name=F_Fixed32_required,json=fFixed32Required" json:"F_Fixed32_required,omitempty"` | |
363 | F_Fixed64Required *uint64 `protobuf:"fixed64,14,req,name=F_Fixed64_required,json=fFixed64Required" json:"F_Fixed64_required,omitempty"` | |
364 | F_Uint32Required *uint32 `protobuf:"varint,15,req,name=F_Uint32_required,json=fUint32Required" json:"F_Uint32_required,omitempty"` | |
365 | F_Uint64Required *uint64 `protobuf:"varint,16,req,name=F_Uint64_required,json=fUint64Required" json:"F_Uint64_required,omitempty"` | |
366 | F_FloatRequired *float32 `protobuf:"fixed32,17,req,name=F_Float_required,json=fFloatRequired" json:"F_Float_required,omitempty"` | |
367 | F_DoubleRequired *float64 `protobuf:"fixed64,18,req,name=F_Double_required,json=fDoubleRequired" json:"F_Double_required,omitempty"` | |
368 | F_StringRequired *string `protobuf:"bytes,19,req,name=F_String_required,json=fStringRequired" json:"F_String_required,omitempty"` | |
369 | F_BytesRequired []byte `protobuf:"bytes,101,req,name=F_Bytes_required,json=fBytesRequired" json:"F_Bytes_required,omitempty"` | |
370 | F_Sint32Required *int32 `protobuf:"zigzag32,102,req,name=F_Sint32_required,json=fSint32Required" json:"F_Sint32_required,omitempty"` | |
371 | F_Sint64Required *int64 `protobuf:"zigzag64,103,req,name=F_Sint64_required,json=fSint64Required" json:"F_Sint64_required,omitempty"` | |
358 | F_BoolRequired *bool `protobuf:"varint,10,req,name=F_Bool_required,json=FBoolRequired" json:"F_Bool_required,omitempty"` | |
359 | F_Int32Required *int32 `protobuf:"varint,11,req,name=F_Int32_required,json=FInt32Required" json:"F_Int32_required,omitempty"` | |
360 | F_Int64Required *int64 `protobuf:"varint,12,req,name=F_Int64_required,json=FInt64Required" json:"F_Int64_required,omitempty"` | |
361 | F_Fixed32Required *uint32 `protobuf:"fixed32,13,req,name=F_Fixed32_required,json=FFixed32Required" json:"F_Fixed32_required,omitempty"` | |
362 | F_Fixed64Required *uint64 `protobuf:"fixed64,14,req,name=F_Fixed64_required,json=FFixed64Required" json:"F_Fixed64_required,omitempty"` | |
363 | F_Uint32Required *uint32 `protobuf:"varint,15,req,name=F_Uint32_required,json=FUint32Required" json:"F_Uint32_required,omitempty"` | |
364 | F_Uint64Required *uint64 `protobuf:"varint,16,req,name=F_Uint64_required,json=FUint64Required" json:"F_Uint64_required,omitempty"` | |
365 | F_FloatRequired *float32 `protobuf:"fixed32,17,req,name=F_Float_required,json=FFloatRequired" json:"F_Float_required,omitempty"` | |
366 | F_DoubleRequired *float64 `protobuf:"fixed64,18,req,name=F_Double_required,json=FDoubleRequired" json:"F_Double_required,omitempty"` | |
367 | F_StringRequired *string `protobuf:"bytes,19,req,name=F_String_required,json=FStringRequired" json:"F_String_required,omitempty"` | |
368 | F_BytesRequired []byte `protobuf:"bytes,101,req,name=F_Bytes_required,json=FBytesRequired" json:"F_Bytes_required,omitempty"` | |
369 | F_Sint32Required *int32 `protobuf:"zigzag32,102,req,name=F_Sint32_required,json=FSint32Required" json:"F_Sint32_required,omitempty"` | |
370 | F_Sint64Required *int64 `protobuf:"zigzag64,103,req,name=F_Sint64_required,json=FSint64Required" json:"F_Sint64_required,omitempty"` | |
372 | 371 | // Repeated fields of all basic types |
373 | F_BoolRepeated []bool `protobuf:"varint,20,rep,name=F_Bool_repeated,json=fBoolRepeated" json:"F_Bool_repeated,omitempty"` | |
374 | F_Int32Repeated []int32 `protobuf:"varint,21,rep,name=F_Int32_repeated,json=fInt32Repeated" json:"F_Int32_repeated,omitempty"` | |
375 | F_Int64Repeated []int64 `protobuf:"varint,22,rep,name=F_Int64_repeated,json=fInt64Repeated" json:"F_Int64_repeated,omitempty"` | |
376 | F_Fixed32Repeated []uint32 `protobuf:"fixed32,23,rep,name=F_Fixed32_repeated,json=fFixed32Repeated" json:"F_Fixed32_repeated,omitempty"` | |
377 | F_Fixed64Repeated []uint64 `protobuf:"fixed64,24,rep,name=F_Fixed64_repeated,json=fFixed64Repeated" json:"F_Fixed64_repeated,omitempty"` | |
378 | F_Uint32Repeated []uint32 `protobuf:"varint,25,rep,name=F_Uint32_repeated,json=fUint32Repeated" json:"F_Uint32_repeated,omitempty"` | |
379 | F_Uint64Repeated []uint64 `protobuf:"varint,26,rep,name=F_Uint64_repeated,json=fUint64Repeated" json:"F_Uint64_repeated,omitempty"` | |
380 | F_FloatRepeated []float32 `protobuf:"fixed32,27,rep,name=F_Float_repeated,json=fFloatRepeated" json:"F_Float_repeated,omitempty"` | |
381 | F_DoubleRepeated []float64 `protobuf:"fixed64,28,rep,name=F_Double_repeated,json=fDoubleRepeated" json:"F_Double_repeated,omitempty"` | |
382 | F_StringRepeated []string `protobuf:"bytes,29,rep,name=F_String_repeated,json=fStringRepeated" json:"F_String_repeated,omitempty"` | |
383 | F_BytesRepeated [][]byte `protobuf:"bytes,201,rep,name=F_Bytes_repeated,json=fBytesRepeated" json:"F_Bytes_repeated,omitempty"` | |
384 | F_Sint32Repeated []int32 `protobuf:"zigzag32,202,rep,name=F_Sint32_repeated,json=fSint32Repeated" json:"F_Sint32_repeated,omitempty"` | |
385 | F_Sint64Repeated []int64 `protobuf:"zigzag64,203,rep,name=F_Sint64_repeated,json=fSint64Repeated" json:"F_Sint64_repeated,omitempty"` | |
372 | F_BoolRepeated []bool `protobuf:"varint,20,rep,name=F_Bool_repeated,json=FBoolRepeated" json:"F_Bool_repeated,omitempty"` | |
373 | F_Int32Repeated []int32 `protobuf:"varint,21,rep,name=F_Int32_repeated,json=FInt32Repeated" json:"F_Int32_repeated,omitempty"` | |
374 | F_Int64Repeated []int64 `protobuf:"varint,22,rep,name=F_Int64_repeated,json=FInt64Repeated" json:"F_Int64_repeated,omitempty"` | |
375 | F_Fixed32Repeated []uint32 `protobuf:"fixed32,23,rep,name=F_Fixed32_repeated,json=FFixed32Repeated" json:"F_Fixed32_repeated,omitempty"` | |
376 | F_Fixed64Repeated []uint64 `protobuf:"fixed64,24,rep,name=F_Fixed64_repeated,json=FFixed64Repeated" json:"F_Fixed64_repeated,omitempty"` | |
377 | F_Uint32Repeated []uint32 `protobuf:"varint,25,rep,name=F_Uint32_repeated,json=FUint32Repeated" json:"F_Uint32_repeated,omitempty"` | |
378 | F_Uint64Repeated []uint64 `protobuf:"varint,26,rep,name=F_Uint64_repeated,json=FUint64Repeated" json:"F_Uint64_repeated,omitempty"` | |
379 | F_FloatRepeated []float32 `protobuf:"fixed32,27,rep,name=F_Float_repeated,json=FFloatRepeated" json:"F_Float_repeated,omitempty"` | |
380 | F_DoubleRepeated []float64 `protobuf:"fixed64,28,rep,name=F_Double_repeated,json=FDoubleRepeated" json:"F_Double_repeated,omitempty"` | |
381 | F_StringRepeated []string `protobuf:"bytes,29,rep,name=F_String_repeated,json=FStringRepeated" json:"F_String_repeated,omitempty"` | |
382 | F_BytesRepeated [][]byte `protobuf:"bytes,201,rep,name=F_Bytes_repeated,json=FBytesRepeated" json:"F_Bytes_repeated,omitempty"` | |
383 | F_Sint32Repeated []int32 `protobuf:"zigzag32,202,rep,name=F_Sint32_repeated,json=FSint32Repeated" json:"F_Sint32_repeated,omitempty"` | |
384 | F_Sint64Repeated []int64 `protobuf:"zigzag64,203,rep,name=F_Sint64_repeated,json=FSint64Repeated" json:"F_Sint64_repeated,omitempty"` | |
386 | 385 | // Optional fields of all basic types |
387 | F_BoolOptional *bool `protobuf:"varint,30,opt,name=F_Bool_optional,json=fBoolOptional" json:"F_Bool_optional,omitempty"` | |
388 | F_Int32Optional *int32 `protobuf:"varint,31,opt,name=F_Int32_optional,json=fInt32Optional" json:"F_Int32_optional,omitempty"` | |
389 | F_Int64Optional *int64 `protobuf:"varint,32,opt,name=F_Int64_optional,json=fInt64Optional" json:"F_Int64_optional,omitempty"` | |
390 | F_Fixed32Optional *uint32 `protobuf:"fixed32,33,opt,name=F_Fixed32_optional,json=fFixed32Optional" json:"F_Fixed32_optional,omitempty"` | |
391 | F_Fixed64Optional *uint64 `protobuf:"fixed64,34,opt,name=F_Fixed64_optional,json=fFixed64Optional" json:"F_Fixed64_optional,omitempty"` | |
392 | F_Uint32Optional *uint32 `protobuf:"varint,35,opt,name=F_Uint32_optional,json=fUint32Optional" json:"F_Uint32_optional,omitempty"` | |
393 | F_Uint64Optional *uint64 `protobuf:"varint,36,opt,name=F_Uint64_optional,json=fUint64Optional" json:"F_Uint64_optional,omitempty"` | |
394 | F_FloatOptional *float32 `protobuf:"fixed32,37,opt,name=F_Float_optional,json=fFloatOptional" json:"F_Float_optional,omitempty"` | |
395 | F_DoubleOptional *float64 `protobuf:"fixed64,38,opt,name=F_Double_optional,json=fDoubleOptional" json:"F_Double_optional,omitempty"` | |
396 | F_StringOptional *string `protobuf:"bytes,39,opt,name=F_String_optional,json=fStringOptional" json:"F_String_optional,omitempty"` | |
397 | F_BytesOptional []byte `protobuf:"bytes,301,opt,name=F_Bytes_optional,json=fBytesOptional" json:"F_Bytes_optional,omitempty"` | |
398 | F_Sint32Optional *int32 `protobuf:"zigzag32,302,opt,name=F_Sint32_optional,json=fSint32Optional" json:"F_Sint32_optional,omitempty"` | |
399 | F_Sint64Optional *int64 `protobuf:"zigzag64,303,opt,name=F_Sint64_optional,json=fSint64Optional" json:"F_Sint64_optional,omitempty"` | |
386 | F_BoolOptional *bool `protobuf:"varint,30,opt,name=F_Bool_optional,json=FBoolOptional" json:"F_Bool_optional,omitempty"` | |
387 | F_Int32Optional *int32 `protobuf:"varint,31,opt,name=F_Int32_optional,json=FInt32Optional" json:"F_Int32_optional,omitempty"` | |
388 | F_Int64Optional *int64 `protobuf:"varint,32,opt,name=F_Int64_optional,json=FInt64Optional" json:"F_Int64_optional,omitempty"` | |
389 | F_Fixed32Optional *uint32 `protobuf:"fixed32,33,opt,name=F_Fixed32_optional,json=FFixed32Optional" json:"F_Fixed32_optional,omitempty"` | |
390 | F_Fixed64Optional *uint64 `protobuf:"fixed64,34,opt,name=F_Fixed64_optional,json=FFixed64Optional" json:"F_Fixed64_optional,omitempty"` | |
391 | F_Uint32Optional *uint32 `protobuf:"varint,35,opt,name=F_Uint32_optional,json=FUint32Optional" json:"F_Uint32_optional,omitempty"` | |
392 | F_Uint64Optional *uint64 `protobuf:"varint,36,opt,name=F_Uint64_optional,json=FUint64Optional" json:"F_Uint64_optional,omitempty"` | |
393 | F_FloatOptional *float32 `protobuf:"fixed32,37,opt,name=F_Float_optional,json=FFloatOptional" json:"F_Float_optional,omitempty"` | |
394 | F_DoubleOptional *float64 `protobuf:"fixed64,38,opt,name=F_Double_optional,json=FDoubleOptional" json:"F_Double_optional,omitempty"` | |
395 | F_StringOptional *string `protobuf:"bytes,39,opt,name=F_String_optional,json=FStringOptional" json:"F_String_optional,omitempty"` | |
396 | F_BytesOptional []byte `protobuf:"bytes,301,opt,name=F_Bytes_optional,json=FBytesOptional" json:"F_Bytes_optional,omitempty"` | |
397 | F_Sint32Optional *int32 `protobuf:"zigzag32,302,opt,name=F_Sint32_optional,json=FSint32Optional" json:"F_Sint32_optional,omitempty"` | |
398 | F_Sint64Optional *int64 `protobuf:"zigzag64,303,opt,name=F_Sint64_optional,json=FSint64Optional" json:"F_Sint64_optional,omitempty"` | |
400 | 399 | // Default-valued fields of all basic types |
401 | F_BoolDefaulted *bool `protobuf:"varint,40,opt,name=F_Bool_defaulted,json=fBoolDefaulted,def=1" json:"F_Bool_defaulted,omitempty"` | |
402 | F_Int32Defaulted *int32 `protobuf:"varint,41,opt,name=F_Int32_defaulted,json=fInt32Defaulted,def=32" json:"F_Int32_defaulted,omitempty"` | |
403 | F_Int64Defaulted *int64 `protobuf:"varint,42,opt,name=F_Int64_defaulted,json=fInt64Defaulted,def=64" json:"F_Int64_defaulted,omitempty"` | |
404 | F_Fixed32Defaulted *uint32 `protobuf:"fixed32,43,opt,name=F_Fixed32_defaulted,json=fFixed32Defaulted,def=320" json:"F_Fixed32_defaulted,omitempty"` | |
405 | F_Fixed64Defaulted *uint64 `protobuf:"fixed64,44,opt,name=F_Fixed64_defaulted,json=fFixed64Defaulted,def=640" json:"F_Fixed64_defaulted,omitempty"` | |
406 | F_Uint32Defaulted *uint32 `protobuf:"varint,45,opt,name=F_Uint32_defaulted,json=fUint32Defaulted,def=3200" json:"F_Uint32_defaulted,omitempty"` | |
407 | F_Uint64Defaulted *uint64 `protobuf:"varint,46,opt,name=F_Uint64_defaulted,json=fUint64Defaulted,def=6400" json:"F_Uint64_defaulted,omitempty"` | |
408 | F_FloatDefaulted *float32 `protobuf:"fixed32,47,opt,name=F_Float_defaulted,json=fFloatDefaulted,def=314159" json:"F_Float_defaulted,omitempty"` | |
409 | F_DoubleDefaulted *float64 `protobuf:"fixed64,48,opt,name=F_Double_defaulted,json=fDoubleDefaulted,def=271828" json:"F_Double_defaulted,omitempty"` | |
410 | F_StringDefaulted *string `protobuf:"bytes,49,opt,name=F_String_defaulted,json=fStringDefaulted,def=hello, \"world!\"\n" json:"F_String_defaulted,omitempty"` | |
411 | F_BytesDefaulted []byte `protobuf:"bytes,401,opt,name=F_Bytes_defaulted,json=fBytesDefaulted,def=Bignose" json:"F_Bytes_defaulted,omitempty"` | |
412 | F_Sint32Defaulted *int32 `protobuf:"zigzag32,402,opt,name=F_Sint32_defaulted,json=fSint32Defaulted,def=-32" json:"F_Sint32_defaulted,omitempty"` | |
413 | F_Sint64Defaulted *int64 `protobuf:"zigzag64,403,opt,name=F_Sint64_defaulted,json=fSint64Defaulted,def=-64" json:"F_Sint64_defaulted,omitempty"` | |
400 | F_BoolDefaulted *bool `protobuf:"varint,40,opt,name=F_Bool_defaulted,json=FBoolDefaulted,def=1" json:"F_Bool_defaulted,omitempty"` | |
401 | F_Int32Defaulted *int32 `protobuf:"varint,41,opt,name=F_Int32_defaulted,json=FInt32Defaulted,def=32" json:"F_Int32_defaulted,omitempty"` | |
402 | F_Int64Defaulted *int64 `protobuf:"varint,42,opt,name=F_Int64_defaulted,json=FInt64Defaulted,def=64" json:"F_Int64_defaulted,omitempty"` | |
403 | F_Fixed32Defaulted *uint32 `protobuf:"fixed32,43,opt,name=F_Fixed32_defaulted,json=FFixed32Defaulted,def=320" json:"F_Fixed32_defaulted,omitempty"` | |
404 | F_Fixed64Defaulted *uint64 `protobuf:"fixed64,44,opt,name=F_Fixed64_defaulted,json=FFixed64Defaulted,def=640" json:"F_Fixed64_defaulted,omitempty"` | |
405 | F_Uint32Defaulted *uint32 `protobuf:"varint,45,opt,name=F_Uint32_defaulted,json=FUint32Defaulted,def=3200" json:"F_Uint32_defaulted,omitempty"` | |
406 | F_Uint64Defaulted *uint64 `protobuf:"varint,46,opt,name=F_Uint64_defaulted,json=FUint64Defaulted,def=6400" json:"F_Uint64_defaulted,omitempty"` | |
407 | F_FloatDefaulted *float32 `protobuf:"fixed32,47,opt,name=F_Float_defaulted,json=FFloatDefaulted,def=314159" json:"F_Float_defaulted,omitempty"` | |
408 | F_DoubleDefaulted *float64 `protobuf:"fixed64,48,opt,name=F_Double_defaulted,json=FDoubleDefaulted,def=271828" json:"F_Double_defaulted,omitempty"` | |
409 | F_StringDefaulted *string `protobuf:"bytes,49,opt,name=F_String_defaulted,json=FStringDefaulted,def=hello, \"world!\"\n" json:"F_String_defaulted,omitempty"` | |
410 | F_BytesDefaulted []byte `protobuf:"bytes,401,opt,name=F_Bytes_defaulted,json=FBytesDefaulted,def=Bignose" json:"F_Bytes_defaulted,omitempty"` | |
411 | F_Sint32Defaulted *int32 `protobuf:"zigzag32,402,opt,name=F_Sint32_defaulted,json=FSint32Defaulted,def=-32" json:"F_Sint32_defaulted,omitempty"` | |
412 | F_Sint64Defaulted *int64 `protobuf:"zigzag64,403,opt,name=F_Sint64_defaulted,json=FSint64Defaulted,def=-64" json:"F_Sint64_defaulted,omitempty"` | |
414 | 413 | // Packed repeated fields (no string or bytes). |
415 | F_BoolRepeatedPacked []bool `protobuf:"varint,50,rep,packed,name=F_Bool_repeated_packed,json=fBoolRepeatedPacked" json:"F_Bool_repeated_packed,omitempty"` | |
416 | F_Int32RepeatedPacked []int32 `protobuf:"varint,51,rep,packed,name=F_Int32_repeated_packed,json=fInt32RepeatedPacked" json:"F_Int32_repeated_packed,omitempty"` | |
417 | F_Int64RepeatedPacked []int64 `protobuf:"varint,52,rep,packed,name=F_Int64_repeated_packed,json=fInt64RepeatedPacked" json:"F_Int64_repeated_packed,omitempty"` | |
418 | F_Fixed32RepeatedPacked []uint32 `protobuf:"fixed32,53,rep,packed,name=F_Fixed32_repeated_packed,json=fFixed32RepeatedPacked" json:"F_Fixed32_repeated_packed,omitempty"` | |
419 | F_Fixed64RepeatedPacked []uint64 `protobuf:"fixed64,54,rep,packed,name=F_Fixed64_repeated_packed,json=fFixed64RepeatedPacked" json:"F_Fixed64_repeated_packed,omitempty"` | |
420 | F_Uint32RepeatedPacked []uint32 `protobuf:"varint,55,rep,packed,name=F_Uint32_repeated_packed,json=fUint32RepeatedPacked" json:"F_Uint32_repeated_packed,omitempty"` | |
421 | F_Uint64RepeatedPacked []uint64 `protobuf:"varint,56,rep,packed,name=F_Uint64_repeated_packed,json=fUint64RepeatedPacked" json:"F_Uint64_repeated_packed,omitempty"` | |
422 | F_FloatRepeatedPacked []float32 `protobuf:"fixed32,57,rep,packed,name=F_Float_repeated_packed,json=fFloatRepeatedPacked" json:"F_Float_repeated_packed,omitempty"` | |
423 | F_DoubleRepeatedPacked []float64 `protobuf:"fixed64,58,rep,packed,name=F_Double_repeated_packed,json=fDoubleRepeatedPacked" json:"F_Double_repeated_packed,omitempty"` | |
424 | F_Sint32RepeatedPacked []int32 `protobuf:"zigzag32,502,rep,packed,name=F_Sint32_repeated_packed,json=fSint32RepeatedPacked" json:"F_Sint32_repeated_packed,omitempty"` | |
425 | F_Sint64RepeatedPacked []int64 `protobuf:"zigzag64,503,rep,packed,name=F_Sint64_repeated_packed,json=fSint64RepeatedPacked" json:"F_Sint64_repeated_packed,omitempty"` | |
414 | F_BoolRepeatedPacked []bool `protobuf:"varint,50,rep,packed,name=F_Bool_repeated_packed,json=FBoolRepeatedPacked" json:"F_Bool_repeated_packed,omitempty"` | |
415 | F_Int32RepeatedPacked []int32 `protobuf:"varint,51,rep,packed,name=F_Int32_repeated_packed,json=FInt32RepeatedPacked" json:"F_Int32_repeated_packed,omitempty"` | |
416 | F_Int64RepeatedPacked []int64 `protobuf:"varint,52,rep,packed,name=F_Int64_repeated_packed,json=FInt64RepeatedPacked" json:"F_Int64_repeated_packed,omitempty"` | |
417 | F_Fixed32RepeatedPacked []uint32 `protobuf:"fixed32,53,rep,packed,name=F_Fixed32_repeated_packed,json=FFixed32RepeatedPacked" json:"F_Fixed32_repeated_packed,omitempty"` | |
418 | F_Fixed64RepeatedPacked []uint64 `protobuf:"fixed64,54,rep,packed,name=F_Fixed64_repeated_packed,json=FFixed64RepeatedPacked" json:"F_Fixed64_repeated_packed,omitempty"` | |
419 | F_Uint32RepeatedPacked []uint32 `protobuf:"varint,55,rep,packed,name=F_Uint32_repeated_packed,json=FUint32RepeatedPacked" json:"F_Uint32_repeated_packed,omitempty"` | |
420 | F_Uint64RepeatedPacked []uint64 `protobuf:"varint,56,rep,packed,name=F_Uint64_repeated_packed,json=FUint64RepeatedPacked" json:"F_Uint64_repeated_packed,omitempty"` | |
421 | F_FloatRepeatedPacked []float32 `protobuf:"fixed32,57,rep,packed,name=F_Float_repeated_packed,json=FFloatRepeatedPacked" json:"F_Float_repeated_packed,omitempty"` | |
422 | F_DoubleRepeatedPacked []float64 `protobuf:"fixed64,58,rep,packed,name=F_Double_repeated_packed,json=FDoubleRepeatedPacked" json:"F_Double_repeated_packed,omitempty"` | |
423 | F_Sint32RepeatedPacked []int32 `protobuf:"zigzag32,502,rep,packed,name=F_Sint32_repeated_packed,json=FSint32RepeatedPacked" json:"F_Sint32_repeated_packed,omitempty"` | |
424 | F_Sint64RepeatedPacked []int64 `protobuf:"zigzag64,503,rep,packed,name=F_Sint64_repeated_packed,json=FSint64RepeatedPacked" json:"F_Sint64_repeated_packed,omitempty"` | |
426 | 425 | Requiredgroup *GoTest_RequiredGroup `protobuf:"group,70,req,name=RequiredGroup,json=requiredgroup" json:"requiredgroup,omitempty"` |
427 | 426 | Repeatedgroup []*GoTest_RepeatedGroup `protobuf:"group,80,rep,name=RepeatedGroup,json=repeatedgroup" json:"repeatedgroup,omitempty"` |
428 | 427 | Optionalgroup *GoTest_OptionalGroup `protobuf:"group,90,opt,name=OptionalGroup,json=optionalgroup" json:"optionalgroup,omitempty"` |
956 | 955 | |
957 | 956 | // Required, repeated, and optional groups. |
958 | 957 | type GoTest_RequiredGroup struct { |
959 | RequiredField *string `protobuf:"bytes,71,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"` | |
958 | RequiredField *string `protobuf:"bytes,71,req,name=RequiredField" json:"RequiredField,omitempty"` | |
960 | 959 | XXX_unrecognized []byte `json:"-"` |
961 | 960 | } |
962 | 961 | |
973 | 972 | } |
974 | 973 | |
975 | 974 | type GoTest_RepeatedGroup struct { |
976 | RequiredField *string `protobuf:"bytes,81,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"` | |
975 | RequiredField *string `protobuf:"bytes,81,req,name=RequiredField" json:"RequiredField,omitempty"` | |
977 | 976 | XXX_unrecognized []byte `json:"-"` |
978 | 977 | } |
979 | 978 | |
990 | 989 | } |
991 | 990 | |
992 | 991 | type GoTest_OptionalGroup struct { |
993 | RequiredField *string `protobuf:"bytes,91,req,name=RequiredField,json=requiredField" json:"RequiredField,omitempty"` | |
992 | RequiredField *string `protobuf:"bytes,91,req,name=RequiredField" json:"RequiredField,omitempty"` | |
994 | 993 | XXX_unrecognized []byte `json:"-"` |
995 | 994 | } |
996 | 995 | |
1025 | 1024 | } |
1026 | 1025 | |
1027 | 1026 | type GoTestRequiredGroupField_Group struct { |
1028 | Field *int32 `protobuf:"varint,2,req,name=Field,json=field" json:"Field,omitempty"` | |
1027 | Field *int32 `protobuf:"varint,2,req,name=Field" json:"Field,omitempty"` | |
1029 | 1028 | XXX_unrecognized []byte `json:"-"` |
1030 | 1029 | } |
1031 | 1030 | |
1526 | 1525 | Field: 103, |
1527 | 1526 | Name: "testdata.Ext.more", |
1528 | 1527 | Tag: "bytes,103,opt,name=more", |
1528 | Filename: "test.proto", | |
1529 | 1529 | } |
1530 | 1530 | |
1531 | 1531 | var E_Ext_Text = &proto.ExtensionDesc{ |
1534 | 1534 | Field: 104, |
1535 | 1535 | Name: "testdata.Ext.text", |
1536 | 1536 | Tag: "bytes,104,opt,name=text", |
1537 | Filename: "test.proto", | |
1537 | 1538 | } |
1538 | 1539 | |
1539 | 1540 | var E_Ext_Number = &proto.ExtensionDesc{ |
1542 | 1543 | Field: 105, |
1543 | 1544 | Name: "testdata.Ext.number", |
1544 | 1545 | Tag: "varint,105,opt,name=number", |
1546 | Filename: "test.proto", | |
1545 | 1547 | } |
1546 | 1548 | |
1547 | 1549 | type ComplexExtension struct { |
1709 | 1711 | type Defaults struct { |
1710 | 1712 | // Default-valued fields of all basic types. |
1711 | 1713 | // Same as GoTest, but copied here to make testing easier. |
1712 | F_Bool *bool `protobuf:"varint,1,opt,name=F_Bool,json=fBool,def=1" json:"F_Bool,omitempty"` | |
1713 | F_Int32 *int32 `protobuf:"varint,2,opt,name=F_Int32,json=fInt32,def=32" json:"F_Int32,omitempty"` | |
1714 | F_Int64 *int64 `protobuf:"varint,3,opt,name=F_Int64,json=fInt64,def=64" json:"F_Int64,omitempty"` | |
1715 | F_Fixed32 *uint32 `protobuf:"fixed32,4,opt,name=F_Fixed32,json=fFixed32,def=320" json:"F_Fixed32,omitempty"` | |
1716 | F_Fixed64 *uint64 `protobuf:"fixed64,5,opt,name=F_Fixed64,json=fFixed64,def=640" json:"F_Fixed64,omitempty"` | |
1717 | F_Uint32 *uint32 `protobuf:"varint,6,opt,name=F_Uint32,json=fUint32,def=3200" json:"F_Uint32,omitempty"` | |
1718 | F_Uint64 *uint64 `protobuf:"varint,7,opt,name=F_Uint64,json=fUint64,def=6400" json:"F_Uint64,omitempty"` | |
1719 | F_Float *float32 `protobuf:"fixed32,8,opt,name=F_Float,json=fFloat,def=314159" json:"F_Float,omitempty"` | |
1720 | F_Double *float64 `protobuf:"fixed64,9,opt,name=F_Double,json=fDouble,def=271828" json:"F_Double,omitempty"` | |
1721 | F_String *string `protobuf:"bytes,10,opt,name=F_String,json=fString,def=hello, \"world!\"\n" json:"F_String,omitempty"` | |
1722 | F_Bytes []byte `protobuf:"bytes,11,opt,name=F_Bytes,json=fBytes,def=Bignose" json:"F_Bytes,omitempty"` | |
1723 | F_Sint32 *int32 `protobuf:"zigzag32,12,opt,name=F_Sint32,json=fSint32,def=-32" json:"F_Sint32,omitempty"` | |
1724 | F_Sint64 *int64 `protobuf:"zigzag64,13,opt,name=F_Sint64,json=fSint64,def=-64" json:"F_Sint64,omitempty"` | |
1725 | F_Enum *Defaults_Color `protobuf:"varint,14,opt,name=F_Enum,json=fEnum,enum=testdata.Defaults_Color,def=1" json:"F_Enum,omitempty"` | |
1714 | F_Bool *bool `protobuf:"varint,1,opt,name=F_Bool,json=FBool,def=1" json:"F_Bool,omitempty"` | |
1715 | F_Int32 *int32 `protobuf:"varint,2,opt,name=F_Int32,json=FInt32,def=32" json:"F_Int32,omitempty"` | |
1716 | F_Int64 *int64 `protobuf:"varint,3,opt,name=F_Int64,json=FInt64,def=64" json:"F_Int64,omitempty"` | |
1717 | F_Fixed32 *uint32 `protobuf:"fixed32,4,opt,name=F_Fixed32,json=FFixed32,def=320" json:"F_Fixed32,omitempty"` | |
1718 | F_Fixed64 *uint64 `protobuf:"fixed64,5,opt,name=F_Fixed64,json=FFixed64,def=640" json:"F_Fixed64,omitempty"` | |
1719 | F_Uint32 *uint32 `protobuf:"varint,6,opt,name=F_Uint32,json=FUint32,def=3200" json:"F_Uint32,omitempty"` | |
1720 | F_Uint64 *uint64 `protobuf:"varint,7,opt,name=F_Uint64,json=FUint64,def=6400" json:"F_Uint64,omitempty"` | |
1721 | F_Float *float32 `protobuf:"fixed32,8,opt,name=F_Float,json=FFloat,def=314159" json:"F_Float,omitempty"` | |
1722 | F_Double *float64 `protobuf:"fixed64,9,opt,name=F_Double,json=FDouble,def=271828" json:"F_Double,omitempty"` | |
1723 | F_String *string `protobuf:"bytes,10,opt,name=F_String,json=FString,def=hello, \"world!\"\n" json:"F_String,omitempty"` | |
1724 | F_Bytes []byte `protobuf:"bytes,11,opt,name=F_Bytes,json=FBytes,def=Bignose" json:"F_Bytes,omitempty"` | |
1725 | F_Sint32 *int32 `protobuf:"zigzag32,12,opt,name=F_Sint32,json=FSint32,def=-32" json:"F_Sint32,omitempty"` | |
1726 | F_Sint64 *int64 `protobuf:"zigzag64,13,opt,name=F_Sint64,json=FSint64,def=-64" json:"F_Sint64,omitempty"` | |
1727 | F_Enum *Defaults_Color `protobuf:"varint,14,opt,name=F_Enum,json=FEnum,enum=testdata.Defaults_Color,def=1" json:"F_Enum,omitempty"` | |
1726 | 1728 | // More fields with crazy defaults. |
1727 | F_Pinf *float32 `protobuf:"fixed32,15,opt,name=F_Pinf,json=fPinf,def=inf" json:"F_Pinf,omitempty"` | |
1728 | F_Ninf *float32 `protobuf:"fixed32,16,opt,name=F_Ninf,json=fNinf,def=-inf" json:"F_Ninf,omitempty"` | |
1729 | F_Nan *float32 `protobuf:"fixed32,17,opt,name=F_Nan,json=fNan,def=nan" json:"F_Nan,omitempty"` | |
1729 | F_Pinf *float32 `protobuf:"fixed32,15,opt,name=F_Pinf,json=FPinf,def=inf" json:"F_Pinf,omitempty"` | |
1730 | F_Ninf *float32 `protobuf:"fixed32,16,opt,name=F_Ninf,json=FNinf,def=-inf" json:"F_Ninf,omitempty"` | |
1731 | F_Nan *float32 `protobuf:"fixed32,17,opt,name=F_Nan,json=FNan,def=nan" json:"F_Nan,omitempty"` | |
1730 | 1732 | // Sub-message. |
1731 | 1733 | Sub *SubDefaults `protobuf:"bytes,18,opt,name=sub" json:"sub,omitempty"` |
1732 | 1734 | // Redundant but explicit defaults. |
2175 | 2177 | } |
2176 | 2178 | |
2177 | 2179 | type Oneof_F_Bool struct { |
2178 | F_Bool bool `protobuf:"varint,1,opt,name=F_Bool,json=fBool,oneof"` | |
2180 | F_Bool bool `protobuf:"varint,1,opt,name=F_Bool,json=FBool,oneof"` | |
2179 | 2181 | } |
2180 | 2182 | type Oneof_F_Int32 struct { |
2181 | F_Int32 int32 `protobuf:"varint,2,opt,name=F_Int32,json=fInt32,oneof"` | |
2183 | F_Int32 int32 `protobuf:"varint,2,opt,name=F_Int32,json=FInt32,oneof"` | |
2182 | 2184 | } |
2183 | 2185 | type Oneof_F_Int64 struct { |
2184 | F_Int64 int64 `protobuf:"varint,3,opt,name=F_Int64,json=fInt64,oneof"` | |
2186 | F_Int64 int64 `protobuf:"varint,3,opt,name=F_Int64,json=FInt64,oneof"` | |
2185 | 2187 | } |
2186 | 2188 | type Oneof_F_Fixed32 struct { |
2187 | F_Fixed32 uint32 `protobuf:"fixed32,4,opt,name=F_Fixed32,json=fFixed32,oneof"` | |
2189 | F_Fixed32 uint32 `protobuf:"fixed32,4,opt,name=F_Fixed32,json=FFixed32,oneof"` | |
2188 | 2190 | } |
2189 | 2191 | type Oneof_F_Fixed64 struct { |
2190 | F_Fixed64 uint64 `protobuf:"fixed64,5,opt,name=F_Fixed64,json=fFixed64,oneof"` | |
2192 | F_Fixed64 uint64 `protobuf:"fixed64,5,opt,name=F_Fixed64,json=FFixed64,oneof"` | |
2191 | 2193 | } |
2192 | 2194 | type Oneof_F_Uint32 struct { |
2193 | F_Uint32 uint32 `protobuf:"varint,6,opt,name=F_Uint32,json=fUint32,oneof"` | |
2195 | F_Uint32 uint32 `protobuf:"varint,6,opt,name=F_Uint32,json=FUint32,oneof"` | |
2194 | 2196 | } |
2195 | 2197 | type Oneof_F_Uint64 struct { |
2196 | F_Uint64 uint64 `protobuf:"varint,7,opt,name=F_Uint64,json=fUint64,oneof"` | |
2198 | F_Uint64 uint64 `protobuf:"varint,7,opt,name=F_Uint64,json=FUint64,oneof"` | |
2197 | 2199 | } |
2198 | 2200 | type Oneof_F_Float struct { |
2199 | F_Float float32 `protobuf:"fixed32,8,opt,name=F_Float,json=fFloat,oneof"` | |
2201 | F_Float float32 `protobuf:"fixed32,8,opt,name=F_Float,json=FFloat,oneof"` | |
2200 | 2202 | } |
2201 | 2203 | type Oneof_F_Double struct { |
2202 | F_Double float64 `protobuf:"fixed64,9,opt,name=F_Double,json=fDouble,oneof"` | |
2204 | F_Double float64 `protobuf:"fixed64,9,opt,name=F_Double,json=FDouble,oneof"` | |
2203 | 2205 | } |
2204 | 2206 | type Oneof_F_String struct { |
2205 | F_String string `protobuf:"bytes,10,opt,name=F_String,json=fString,oneof"` | |
2207 | F_String string `protobuf:"bytes,10,opt,name=F_String,json=FString,oneof"` | |
2206 | 2208 | } |
2207 | 2209 | type Oneof_F_Bytes struct { |
2208 | F_Bytes []byte `protobuf:"bytes,11,opt,name=F_Bytes,json=fBytes,oneof"` | |
2210 | F_Bytes []byte `protobuf:"bytes,11,opt,name=F_Bytes,json=FBytes,oneof"` | |
2209 | 2211 | } |
2210 | 2212 | type Oneof_F_Sint32 struct { |
2211 | F_Sint32 int32 `protobuf:"zigzag32,12,opt,name=F_Sint32,json=fSint32,oneof"` | |
2213 | F_Sint32 int32 `protobuf:"zigzag32,12,opt,name=F_Sint32,json=FSint32,oneof"` | |
2212 | 2214 | } |
2213 | 2215 | type Oneof_F_Sint64 struct { |
2214 | F_Sint64 int64 `protobuf:"zigzag64,13,opt,name=F_Sint64,json=fSint64,oneof"` | |
2216 | F_Sint64 int64 `protobuf:"zigzag64,13,opt,name=F_Sint64,json=FSint64,oneof"` | |
2215 | 2217 | } |
2216 | 2218 | type Oneof_F_Enum struct { |
2217 | F_Enum MyMessage_Color `protobuf:"varint,14,opt,name=F_Enum,json=fEnum,enum=testdata.MyMessage_Color,oneof"` | |
2219 | F_Enum MyMessage_Color `protobuf:"varint,14,opt,name=F_Enum,json=FEnum,enum=testdata.MyMessage_Color,oneof"` | |
2218 | 2220 | } |
2219 | 2221 | type Oneof_F_Message struct { |
2220 | F_Message *GoTestField `protobuf:"bytes,15,opt,name=F_Message,json=fMessage,oneof"` | |
2222 | F_Message *GoTestField `protobuf:"bytes,15,opt,name=F_Message,json=FMessage,oneof"` | |
2221 | 2223 | } |
2222 | 2224 | type Oneof_FGroup struct { |
2223 | 2225 | FGroup *Oneof_F_Group `protobuf:"group,16,opt,name=F_Group,json=fGroup,oneof"` |
2224 | 2226 | } |
2225 | 2227 | type Oneof_F_Largest_Tag struct { |
2226 | F_Largest_Tag int32 `protobuf:"varint,536870911,opt,name=F_Largest_Tag,json=fLargestTag,oneof"` | |
2228 | F_Largest_Tag int32 `protobuf:"varint,536870911,opt,name=F_Largest_Tag,json=FLargestTag,oneof"` | |
2227 | 2229 | } |
2228 | 2230 | type Oneof_Value struct { |
2229 | 2231 | Value int32 `protobuf:"varint,100,opt,name=value,oneof"` |
2959 | 2961 | Field: 106, |
2960 | 2962 | Name: "testdata.greeting", |
2961 | 2963 | Tag: "bytes,106,rep,name=greeting", |
2964 | Filename: "test.proto", | |
2962 | 2965 | } |
2963 | 2966 | |
2964 | 2967 | var E_Complex = &proto.ExtensionDesc{ |
2967 | 2970 | Field: 200, |
2968 | 2971 | Name: "testdata.complex", |
2969 | 2972 | Tag: "bytes,200,opt,name=complex", |
2973 | Filename: "test.proto", | |
2970 | 2974 | } |
2971 | 2975 | |
2972 | 2976 | var E_RComplex = &proto.ExtensionDesc{ |
2975 | 2979 | Field: 201, |
2976 | 2980 | Name: "testdata.r_complex", |
2977 | 2981 | Tag: "bytes,201,rep,name=r_complex,json=rComplex", |
2982 | Filename: "test.proto", | |
2978 | 2983 | } |
2979 | 2984 | |
2980 | 2985 | var E_NoDefaultDouble = &proto.ExtensionDesc{ |
2983 | 2988 | Field: 101, |
2984 | 2989 | Name: "testdata.no_default_double", |
2985 | 2990 | Tag: "fixed64,101,opt,name=no_default_double,json=noDefaultDouble", |
2991 | Filename: "test.proto", | |
2986 | 2992 | } |
2987 | 2993 | |
2988 | 2994 | var E_NoDefaultFloat = &proto.ExtensionDesc{ |
2991 | 2997 | Field: 102, |
2992 | 2998 | Name: "testdata.no_default_float", |
2993 | 2999 | Tag: "fixed32,102,opt,name=no_default_float,json=noDefaultFloat", |
3000 | Filename: "test.proto", | |
2994 | 3001 | } |
2995 | 3002 | |
2996 | 3003 | var E_NoDefaultInt32 = &proto.ExtensionDesc{ |
2999 | 3006 | Field: 103, |
3000 | 3007 | Name: "testdata.no_default_int32", |
3001 | 3008 | Tag: "varint,103,opt,name=no_default_int32,json=noDefaultInt32", |
3009 | Filename: "test.proto", | |
3002 | 3010 | } |
3003 | 3011 | |
3004 | 3012 | var E_NoDefaultInt64 = &proto.ExtensionDesc{ |
3007 | 3015 | Field: 104, |
3008 | 3016 | Name: "testdata.no_default_int64", |
3009 | 3017 | Tag: "varint,104,opt,name=no_default_int64,json=noDefaultInt64", |
3018 | Filename: "test.proto", | |
3010 | 3019 | } |
3011 | 3020 | |
3012 | 3021 | var E_NoDefaultUint32 = &proto.ExtensionDesc{ |
3015 | 3024 | Field: 105, |
3016 | 3025 | Name: "testdata.no_default_uint32", |
3017 | 3026 | Tag: "varint,105,opt,name=no_default_uint32,json=noDefaultUint32", |
3027 | Filename: "test.proto", | |
3018 | 3028 | } |
3019 | 3029 | |
3020 | 3030 | var E_NoDefaultUint64 = &proto.ExtensionDesc{ |
3023 | 3033 | Field: 106, |
3024 | 3034 | Name: "testdata.no_default_uint64", |
3025 | 3035 | Tag: "varint,106,opt,name=no_default_uint64,json=noDefaultUint64", |
3036 | Filename: "test.proto", | |
3026 | 3037 | } |
3027 | 3038 | |
3028 | 3039 | var E_NoDefaultSint32 = &proto.ExtensionDesc{ |
3031 | 3042 | Field: 107, |
3032 | 3043 | Name: "testdata.no_default_sint32", |
3033 | 3044 | Tag: "zigzag32,107,opt,name=no_default_sint32,json=noDefaultSint32", |
3045 | Filename: "test.proto", | |
3034 | 3046 | } |
3035 | 3047 | |
3036 | 3048 | var E_NoDefaultSint64 = &proto.ExtensionDesc{ |
3039 | 3051 | Field: 108, |
3040 | 3052 | Name: "testdata.no_default_sint64", |
3041 | 3053 | Tag: "zigzag64,108,opt,name=no_default_sint64,json=noDefaultSint64", |
3054 | Filename: "test.proto", | |
3042 | 3055 | } |
3043 | 3056 | |
3044 | 3057 | var E_NoDefaultFixed32 = &proto.ExtensionDesc{ |
3047 | 3060 | Field: 109, |
3048 | 3061 | Name: "testdata.no_default_fixed32", |
3049 | 3062 | Tag: "fixed32,109,opt,name=no_default_fixed32,json=noDefaultFixed32", |
3063 | Filename: "test.proto", | |
3050 | 3064 | } |
3051 | 3065 | |
3052 | 3066 | var E_NoDefaultFixed64 = &proto.ExtensionDesc{ |
3055 | 3069 | Field: 110, |
3056 | 3070 | Name: "testdata.no_default_fixed64", |
3057 | 3071 | Tag: "fixed64,110,opt,name=no_default_fixed64,json=noDefaultFixed64", |
3072 | Filename: "test.proto", | |
3058 | 3073 | } |
3059 | 3074 | |
3060 | 3075 | var E_NoDefaultSfixed32 = &proto.ExtensionDesc{ |
3063 | 3078 | Field: 111, |
3064 | 3079 | Name: "testdata.no_default_sfixed32", |
3065 | 3080 | Tag: "fixed32,111,opt,name=no_default_sfixed32,json=noDefaultSfixed32", |
3081 | Filename: "test.proto", | |
3066 | 3082 | } |
3067 | 3083 | |
3068 | 3084 | var E_NoDefaultSfixed64 = &proto.ExtensionDesc{ |
3071 | 3087 | Field: 112, |
3072 | 3088 | Name: "testdata.no_default_sfixed64", |
3073 | 3089 | Tag: "fixed64,112,opt,name=no_default_sfixed64,json=noDefaultSfixed64", |
3090 | Filename: "test.proto", | |
3074 | 3091 | } |
3075 | 3092 | |
3076 | 3093 | var E_NoDefaultBool = &proto.ExtensionDesc{ |
3079 | 3096 | Field: 113, |
3080 | 3097 | Name: "testdata.no_default_bool", |
3081 | 3098 | Tag: "varint,113,opt,name=no_default_bool,json=noDefaultBool", |
3099 | Filename: "test.proto", | |
3082 | 3100 | } |
3083 | 3101 | |
3084 | 3102 | var E_NoDefaultString = &proto.ExtensionDesc{ |
3087 | 3105 | Field: 114, |
3088 | 3106 | Name: "testdata.no_default_string", |
3089 | 3107 | Tag: "bytes,114,opt,name=no_default_string,json=noDefaultString", |
3108 | Filename: "test.proto", | |
3090 | 3109 | } |
3091 | 3110 | |
3092 | 3111 | var E_NoDefaultBytes = &proto.ExtensionDesc{ |
3095 | 3114 | Field: 115, |
3096 | 3115 | Name: "testdata.no_default_bytes", |
3097 | 3116 | Tag: "bytes,115,opt,name=no_default_bytes,json=noDefaultBytes", |
3117 | Filename: "test.proto", | |
3098 | 3118 | } |
3099 | 3119 | |
3100 | 3120 | var E_NoDefaultEnum = &proto.ExtensionDesc{ |
3103 | 3123 | Field: 116, |
3104 | 3124 | Name: "testdata.no_default_enum", |
3105 | 3125 | Tag: "varint,116,opt,name=no_default_enum,json=noDefaultEnum,enum=testdata.DefaultsMessage_DefaultsEnum", |
3126 | Filename: "test.proto", | |
3106 | 3127 | } |
3107 | 3128 | |
3108 | 3129 | var E_DefaultDouble = &proto.ExtensionDesc{ |
3111 | 3132 | Field: 201, |
3112 | 3133 | Name: "testdata.default_double", |
3113 | 3134 | Tag: "fixed64,201,opt,name=default_double,json=defaultDouble,def=3.1415", |
3135 | Filename: "test.proto", | |
3114 | 3136 | } |
3115 | 3137 | |
3116 | 3138 | var E_DefaultFloat = &proto.ExtensionDesc{ |
3119 | 3141 | Field: 202, |
3120 | 3142 | Name: "testdata.default_float", |
3121 | 3143 | Tag: "fixed32,202,opt,name=default_float,json=defaultFloat,def=3.14", |
3144 | Filename: "test.proto", | |
3122 | 3145 | } |
3123 | 3146 | |
3124 | 3147 | var E_DefaultInt32 = &proto.ExtensionDesc{ |
3127 | 3150 | Field: 203, |
3128 | 3151 | Name: "testdata.default_int32", |
3129 | 3152 | Tag: "varint,203,opt,name=default_int32,json=defaultInt32,def=42", |
3153 | Filename: "test.proto", | |
3130 | 3154 | } |
3131 | 3155 | |
3132 | 3156 | var E_DefaultInt64 = &proto.ExtensionDesc{ |
3135 | 3159 | Field: 204, |
3136 | 3160 | Name: "testdata.default_int64", |
3137 | 3161 | Tag: "varint,204,opt,name=default_int64,json=defaultInt64,def=43", |
3162 | Filename: "test.proto", | |
3138 | 3163 | } |
3139 | 3164 | |
3140 | 3165 | var E_DefaultUint32 = &proto.ExtensionDesc{ |
3143 | 3168 | Field: 205, |
3144 | 3169 | Name: "testdata.default_uint32", |
3145 | 3170 | Tag: "varint,205,opt,name=default_uint32,json=defaultUint32,def=44", |
3171 | Filename: "test.proto", | |
3146 | 3172 | } |
3147 | 3173 | |
3148 | 3174 | var E_DefaultUint64 = &proto.ExtensionDesc{ |
3151 | 3177 | Field: 206, |
3152 | 3178 | Name: "testdata.default_uint64", |
3153 | 3179 | Tag: "varint,206,opt,name=default_uint64,json=defaultUint64,def=45", |
3180 | Filename: "test.proto", | |
3154 | 3181 | } |
3155 | 3182 | |
3156 | 3183 | var E_DefaultSint32 = &proto.ExtensionDesc{ |
3159 | 3186 | Field: 207, |
3160 | 3187 | Name: "testdata.default_sint32", |
3161 | 3188 | Tag: "zigzag32,207,opt,name=default_sint32,json=defaultSint32,def=46", |
3189 | Filename: "test.proto", | |
3162 | 3190 | } |
3163 | 3191 | |
3164 | 3192 | var E_DefaultSint64 = &proto.ExtensionDesc{ |
3167 | 3195 | Field: 208, |
3168 | 3196 | Name: "testdata.default_sint64", |
3169 | 3197 | Tag: "zigzag64,208,opt,name=default_sint64,json=defaultSint64,def=47", |
3198 | Filename: "test.proto", | |
3170 | 3199 | } |
3171 | 3200 | |
3172 | 3201 | var E_DefaultFixed32 = &proto.ExtensionDesc{ |
3175 | 3204 | Field: 209, |
3176 | 3205 | Name: "testdata.default_fixed32", |
3177 | 3206 | Tag: "fixed32,209,opt,name=default_fixed32,json=defaultFixed32,def=48", |
3207 | Filename: "test.proto", | |
3178 | 3208 | } |
3179 | 3209 | |
3180 | 3210 | var E_DefaultFixed64 = &proto.ExtensionDesc{ |
3183 | 3213 | Field: 210, |
3184 | 3214 | Name: "testdata.default_fixed64", |
3185 | 3215 | Tag: "fixed64,210,opt,name=default_fixed64,json=defaultFixed64,def=49", |
3216 | Filename: "test.proto", | |
3186 | 3217 | } |
3187 | 3218 | |
3188 | 3219 | var E_DefaultSfixed32 = &proto.ExtensionDesc{ |
3191 | 3222 | Field: 211, |
3192 | 3223 | Name: "testdata.default_sfixed32", |
3193 | 3224 | Tag: "fixed32,211,opt,name=default_sfixed32,json=defaultSfixed32,def=50", |
3225 | Filename: "test.proto", | |
3194 | 3226 | } |
3195 | 3227 | |
3196 | 3228 | var E_DefaultSfixed64 = &proto.ExtensionDesc{ |
3199 | 3231 | Field: 212, |
3200 | 3232 | Name: "testdata.default_sfixed64", |
3201 | 3233 | Tag: "fixed64,212,opt,name=default_sfixed64,json=defaultSfixed64,def=51", |
3234 | Filename: "test.proto", | |
3202 | 3235 | } |
3203 | 3236 | |
3204 | 3237 | var E_DefaultBool = &proto.ExtensionDesc{ |
3207 | 3240 | Field: 213, |
3208 | 3241 | Name: "testdata.default_bool", |
3209 | 3242 | Tag: "varint,213,opt,name=default_bool,json=defaultBool,def=1", |
3243 | Filename: "test.proto", | |
3210 | 3244 | } |
3211 | 3245 | |
3212 | 3246 | var E_DefaultString = &proto.ExtensionDesc{ |
3215 | 3249 | Field: 214, |
3216 | 3250 | Name: "testdata.default_string", |
3217 | 3251 | Tag: "bytes,214,opt,name=default_string,json=defaultString,def=Hello, string", |
3252 | Filename: "test.proto", | |
3218 | 3253 | } |
3219 | 3254 | |
3220 | 3255 | var E_DefaultBytes = &proto.ExtensionDesc{ |
3223 | 3258 | Field: 215, |
3224 | 3259 | Name: "testdata.default_bytes", |
3225 | 3260 | Tag: "bytes,215,opt,name=default_bytes,json=defaultBytes,def=Hello, bytes", |
3261 | Filename: "test.proto", | |
3226 | 3262 | } |
3227 | 3263 | |
3228 | 3264 | var E_DefaultEnum = &proto.ExtensionDesc{ |
3231 | 3267 | Field: 216, |
3232 | 3268 | Name: "testdata.default_enum", |
3233 | 3269 | Tag: "varint,216,opt,name=default_enum,json=defaultEnum,enum=testdata.DefaultsMessage_DefaultsEnum,def=1", |
3270 | Filename: "test.proto", | |
3234 | 3271 | } |
3235 | 3272 | |
3236 | 3273 | var E_X201 = &proto.ExtensionDesc{ |
3239 | 3276 | Field: 201, |
3240 | 3277 | Name: "testdata.x201", |
3241 | 3278 | Tag: "bytes,201,opt,name=x201", |
3279 | Filename: "test.proto", | |
3242 | 3280 | } |
3243 | 3281 | |
3244 | 3282 | var E_X202 = &proto.ExtensionDesc{ |
3247 | 3285 | Field: 202, |
3248 | 3286 | Name: "testdata.x202", |
3249 | 3287 | Tag: "bytes,202,opt,name=x202", |
3288 | Filename: "test.proto", | |
3250 | 3289 | } |
3251 | 3290 | |
3252 | 3291 | var E_X203 = &proto.ExtensionDesc{ |
3255 | 3294 | Field: 203, |
3256 | 3295 | Name: "testdata.x203", |
3257 | 3296 | Tag: "bytes,203,opt,name=x203", |
3297 | Filename: "test.proto", | |
3258 | 3298 | } |
3259 | 3299 | |
3260 | 3300 | var E_X204 = &proto.ExtensionDesc{ |
3263 | 3303 | Field: 204, |
3264 | 3304 | Name: "testdata.x204", |
3265 | 3305 | Tag: "bytes,204,opt,name=x204", |
3306 | Filename: "test.proto", | |
3266 | 3307 | } |
3267 | 3308 | |
3268 | 3309 | var E_X205 = &proto.ExtensionDesc{ |
3271 | 3312 | Field: 205, |
3272 | 3313 | Name: "testdata.x205", |
3273 | 3314 | Tag: "bytes,205,opt,name=x205", |
3315 | Filename: "test.proto", | |
3274 | 3316 | } |
3275 | 3317 | |
3276 | 3318 | var E_X206 = &proto.ExtensionDesc{ |
3279 | 3321 | Field: 206, |
3280 | 3322 | Name: "testdata.x206", |
3281 | 3323 | Tag: "bytes,206,opt,name=x206", |
3324 | Filename: "test.proto", | |
3282 | 3325 | } |
3283 | 3326 | |
3284 | 3327 | var E_X207 = &proto.ExtensionDesc{ |
3287 | 3330 | Field: 207, |
3288 | 3331 | Name: "testdata.x207", |
3289 | 3332 | Tag: "bytes,207,opt,name=x207", |
3333 | Filename: "test.proto", | |
3290 | 3334 | } |
3291 | 3335 | |
3292 | 3336 | var E_X208 = &proto.ExtensionDesc{ |
3295 | 3339 | Field: 208, |
3296 | 3340 | Name: "testdata.x208", |
3297 | 3341 | Tag: "bytes,208,opt,name=x208", |
3342 | Filename: "test.proto", | |
3298 | 3343 | } |
3299 | 3344 | |
3300 | 3345 | var E_X209 = &proto.ExtensionDesc{ |
3303 | 3348 | Field: 209, |
3304 | 3349 | Name: "testdata.x209", |
3305 | 3350 | Tag: "bytes,209,opt,name=x209", |
3351 | Filename: "test.proto", | |
3306 | 3352 | } |
3307 | 3353 | |
3308 | 3354 | var E_X210 = &proto.ExtensionDesc{ |
3311 | 3357 | Field: 210, |
3312 | 3358 | Name: "testdata.x210", |
3313 | 3359 | Tag: "bytes,210,opt,name=x210", |
3360 | Filename: "test.proto", | |
3314 | 3361 | } |
3315 | 3362 | |
3316 | 3363 | var E_X211 = &proto.ExtensionDesc{ |
3319 | 3366 | Field: 211, |
3320 | 3367 | Name: "testdata.x211", |
3321 | 3368 | Tag: "bytes,211,opt,name=x211", |
3369 | Filename: "test.proto", | |
3322 | 3370 | } |
3323 | 3371 | |
3324 | 3372 | var E_X212 = &proto.ExtensionDesc{ |
3327 | 3375 | Field: 212, |
3328 | 3376 | Name: "testdata.x212", |
3329 | 3377 | Tag: "bytes,212,opt,name=x212", |
3378 | Filename: "test.proto", | |
3330 | 3379 | } |
3331 | 3380 | |
3332 | 3381 | var E_X213 = &proto.ExtensionDesc{ |
3335 | 3384 | Field: 213, |
3336 | 3385 | Name: "testdata.x213", |
3337 | 3386 | Tag: "bytes,213,opt,name=x213", |
3387 | Filename: "test.proto", | |
3338 | 3388 | } |
3339 | 3389 | |
3340 | 3390 | var E_X214 = &proto.ExtensionDesc{ |
3343 | 3393 | Field: 214, |
3344 | 3394 | Name: "testdata.x214", |
3345 | 3395 | Tag: "bytes,214,opt,name=x214", |
3396 | Filename: "test.proto", | |
3346 | 3397 | } |
3347 | 3398 | |
3348 | 3399 | var E_X215 = &proto.ExtensionDesc{ |
3351 | 3402 | Field: 215, |
3352 | 3403 | Name: "testdata.x215", |
3353 | 3404 | Tag: "bytes,215,opt,name=x215", |
3405 | Filename: "test.proto", | |
3354 | 3406 | } |
3355 | 3407 | |
3356 | 3408 | var E_X216 = &proto.ExtensionDesc{ |
3359 | 3411 | Field: 216, |
3360 | 3412 | Name: "testdata.x216", |
3361 | 3413 | Tag: "bytes,216,opt,name=x216", |
3414 | Filename: "test.proto", | |
3362 | 3415 | } |
3363 | 3416 | |
3364 | 3417 | var E_X217 = &proto.ExtensionDesc{ |
3367 | 3420 | Field: 217, |
3368 | 3421 | Name: "testdata.x217", |
3369 | 3422 | Tag: "bytes,217,opt,name=x217", |
3423 | Filename: "test.proto", | |
3370 | 3424 | } |
3371 | 3425 | |
3372 | 3426 | var E_X218 = &proto.ExtensionDesc{ |
3375 | 3429 | Field: 218, |
3376 | 3430 | Name: "testdata.x218", |
3377 | 3431 | Tag: "bytes,218,opt,name=x218", |
3432 | Filename: "test.proto", | |
3378 | 3433 | } |
3379 | 3434 | |
3380 | 3435 | var E_X219 = &proto.ExtensionDesc{ |
3383 | 3438 | Field: 219, |
3384 | 3439 | Name: "testdata.x219", |
3385 | 3440 | Tag: "bytes,219,opt,name=x219", |
3441 | Filename: "test.proto", | |
3386 | 3442 | } |
3387 | 3443 | |
3388 | 3444 | var E_X220 = &proto.ExtensionDesc{ |
3391 | 3447 | Field: 220, |
3392 | 3448 | Name: "testdata.x220", |
3393 | 3449 | Tag: "bytes,220,opt,name=x220", |
3450 | Filename: "test.proto", | |
3394 | 3451 | } |
3395 | 3452 | |
3396 | 3453 | var E_X221 = &proto.ExtensionDesc{ |
3399 | 3456 | Field: 221, |
3400 | 3457 | Name: "testdata.x221", |
3401 | 3458 | Tag: "bytes,221,opt,name=x221", |
3459 | Filename: "test.proto", | |
3402 | 3460 | } |
3403 | 3461 | |
3404 | 3462 | var E_X222 = &proto.ExtensionDesc{ |
3407 | 3465 | Field: 222, |
3408 | 3466 | Name: "testdata.x222", |
3409 | 3467 | Tag: "bytes,222,opt,name=x222", |
3468 | Filename: "test.proto", | |
3410 | 3469 | } |
3411 | 3470 | |
3412 | 3471 | var E_X223 = &proto.ExtensionDesc{ |
3415 | 3474 | Field: 223, |
3416 | 3475 | Name: "testdata.x223", |
3417 | 3476 | Tag: "bytes,223,opt,name=x223", |
3477 | Filename: "test.proto", | |
3418 | 3478 | } |
3419 | 3479 | |
3420 | 3480 | var E_X224 = &proto.ExtensionDesc{ |
3423 | 3483 | Field: 224, |
3424 | 3484 | Name: "testdata.x224", |
3425 | 3485 | Tag: "bytes,224,opt,name=x224", |
3486 | Filename: "test.proto", | |
3426 | 3487 | } |
3427 | 3488 | |
3428 | 3489 | var E_X225 = &proto.ExtensionDesc{ |
3431 | 3492 | Field: 225, |
3432 | 3493 | Name: "testdata.x225", |
3433 | 3494 | Tag: "bytes,225,opt,name=x225", |
3495 | Filename: "test.proto", | |
3434 | 3496 | } |
3435 | 3497 | |
3436 | 3498 | var E_X226 = &proto.ExtensionDesc{ |
3439 | 3501 | Field: 226, |
3440 | 3502 | Name: "testdata.x226", |
3441 | 3503 | Tag: "bytes,226,opt,name=x226", |
3504 | Filename: "test.proto", | |
3442 | 3505 | } |
3443 | 3506 | |
3444 | 3507 | var E_X227 = &proto.ExtensionDesc{ |
3447 | 3510 | Field: 227, |
3448 | 3511 | Name: "testdata.x227", |
3449 | 3512 | Tag: "bytes,227,opt,name=x227", |
3513 | Filename: "test.proto", | |
3450 | 3514 | } |
3451 | 3515 | |
3452 | 3516 | var E_X228 = &proto.ExtensionDesc{ |
3455 | 3519 | Field: 228, |
3456 | 3520 | Name: "testdata.x228", |
3457 | 3521 | Tag: "bytes,228,opt,name=x228", |
3522 | Filename: "test.proto", | |
3458 | 3523 | } |
3459 | 3524 | |
3460 | 3525 | var E_X229 = &proto.ExtensionDesc{ |
3463 | 3528 | Field: 229, |
3464 | 3529 | Name: "testdata.x229", |
3465 | 3530 | Tag: "bytes,229,opt,name=x229", |
3531 | Filename: "test.proto", | |
3466 | 3532 | } |
3467 | 3533 | |
3468 | 3534 | var E_X230 = &proto.ExtensionDesc{ |
3471 | 3537 | Field: 230, |
3472 | 3538 | Name: "testdata.x230", |
3473 | 3539 | Tag: "bytes,230,opt,name=x230", |
3540 | Filename: "test.proto", | |
3474 | 3541 | } |
3475 | 3542 | |
3476 | 3543 | var E_X231 = &proto.ExtensionDesc{ |
3479 | 3546 | Field: 231, |
3480 | 3547 | Name: "testdata.x231", |
3481 | 3548 | Tag: "bytes,231,opt,name=x231", |
3549 | Filename: "test.proto", | |
3482 | 3550 | } |
3483 | 3551 | |
3484 | 3552 | var E_X232 = &proto.ExtensionDesc{ |
3487 | 3555 | Field: 232, |
3488 | 3556 | Name: "testdata.x232", |
3489 | 3557 | Tag: "bytes,232,opt,name=x232", |
3558 | Filename: "test.proto", | |
3490 | 3559 | } |
3491 | 3560 | |
3492 | 3561 | var E_X233 = &proto.ExtensionDesc{ |
3495 | 3564 | Field: 233, |
3496 | 3565 | Name: "testdata.x233", |
3497 | 3566 | Tag: "bytes,233,opt,name=x233", |
3567 | Filename: "test.proto", | |
3498 | 3568 | } |
3499 | 3569 | |
3500 | 3570 | var E_X234 = &proto.ExtensionDesc{ |
3503 | 3573 | Field: 234, |
3504 | 3574 | Name: "testdata.x234", |
3505 | 3575 | Tag: "bytes,234,opt,name=x234", |
3576 | Filename: "test.proto", | |
3506 | 3577 | } |
3507 | 3578 | |
3508 | 3579 | var E_X235 = &proto.ExtensionDesc{ |
3511 | 3582 | Field: 235, |
3512 | 3583 | Name: "testdata.x235", |
3513 | 3584 | Tag: "bytes,235,opt,name=x235", |
3585 | Filename: "test.proto", | |
3514 | 3586 | } |
3515 | 3587 | |
3516 | 3588 | var E_X236 = &proto.ExtensionDesc{ |
3519 | 3591 | Field: 236, |
3520 | 3592 | Name: "testdata.x236", |
3521 | 3593 | Tag: "bytes,236,opt,name=x236", |
3594 | Filename: "test.proto", | |
3522 | 3595 | } |
3523 | 3596 | |
3524 | 3597 | var E_X237 = &proto.ExtensionDesc{ |
3527 | 3600 | Field: 237, |
3528 | 3601 | Name: "testdata.x237", |
3529 | 3602 | Tag: "bytes,237,opt,name=x237", |
3603 | Filename: "test.proto", | |
3530 | 3604 | } |
3531 | 3605 | |
3532 | 3606 | var E_X238 = &proto.ExtensionDesc{ |
3535 | 3609 | Field: 238, |
3536 | 3610 | Name: "testdata.x238", |
3537 | 3611 | Tag: "bytes,238,opt,name=x238", |
3612 | Filename: "test.proto", | |
3538 | 3613 | } |
3539 | 3614 | |
3540 | 3615 | var E_X239 = &proto.ExtensionDesc{ |
3543 | 3618 | Field: 239, |
3544 | 3619 | Name: "testdata.x239", |
3545 | 3620 | Tag: "bytes,239,opt,name=x239", |
3621 | Filename: "test.proto", | |
3546 | 3622 | } |
3547 | 3623 | |
3548 | 3624 | var E_X240 = &proto.ExtensionDesc{ |
3551 | 3627 | Field: 240, |
3552 | 3628 | Name: "testdata.x240", |
3553 | 3629 | Tag: "bytes,240,opt,name=x240", |
3630 | Filename: "test.proto", | |
3554 | 3631 | } |
3555 | 3632 | |
3556 | 3633 | var E_X241 = &proto.ExtensionDesc{ |
3559 | 3636 | Field: 241, |
3560 | 3637 | Name: "testdata.x241", |
3561 | 3638 | Tag: "bytes,241,opt,name=x241", |
3639 | Filename: "test.proto", | |
3562 | 3640 | } |
3563 | 3641 | |
3564 | 3642 | var E_X242 = &proto.ExtensionDesc{ |
3567 | 3645 | Field: 242, |
3568 | 3646 | Name: "testdata.x242", |
3569 | 3647 | Tag: "bytes,242,opt,name=x242", |
3648 | Filename: "test.proto", | |
3570 | 3649 | } |
3571 | 3650 | |
3572 | 3651 | var E_X243 = &proto.ExtensionDesc{ |
3575 | 3654 | Field: 243, |
3576 | 3655 | Name: "testdata.x243", |
3577 | 3656 | Tag: "bytes,243,opt,name=x243", |
3657 | Filename: "test.proto", | |
3578 | 3658 | } |
3579 | 3659 | |
3580 | 3660 | var E_X244 = &proto.ExtensionDesc{ |
3583 | 3663 | Field: 244, |
3584 | 3664 | Name: "testdata.x244", |
3585 | 3665 | Tag: "bytes,244,opt,name=x244", |
3666 | Filename: "test.proto", | |
3586 | 3667 | } |
3587 | 3668 | |
3588 | 3669 | var E_X245 = &proto.ExtensionDesc{ |
3591 | 3672 | Field: 245, |
3592 | 3673 | Name: "testdata.x245", |
3593 | 3674 | Tag: "bytes,245,opt,name=x245", |
3675 | Filename: "test.proto", | |
3594 | 3676 | } |
3595 | 3677 | |
3596 | 3678 | var E_X246 = &proto.ExtensionDesc{ |
3599 | 3681 | Field: 246, |
3600 | 3682 | Name: "testdata.x246", |
3601 | 3683 | Tag: "bytes,246,opt,name=x246", |
3684 | Filename: "test.proto", | |
3602 | 3685 | } |
3603 | 3686 | |
3604 | 3687 | var E_X247 = &proto.ExtensionDesc{ |
3607 | 3690 | Field: 247, |
3608 | 3691 | Name: "testdata.x247", |
3609 | 3692 | Tag: "bytes,247,opt,name=x247", |
3693 | Filename: "test.proto", | |
3610 | 3694 | } |
3611 | 3695 | |
3612 | 3696 | var E_X248 = &proto.ExtensionDesc{ |
3615 | 3699 | Field: 248, |
3616 | 3700 | Name: "testdata.x248", |
3617 | 3701 | Tag: "bytes,248,opt,name=x248", |
3702 | Filename: "test.proto", | |
3618 | 3703 | } |
3619 | 3704 | |
3620 | 3705 | var E_X249 = &proto.ExtensionDesc{ |
3623 | 3708 | Field: 249, |
3624 | 3709 | Name: "testdata.x249", |
3625 | 3710 | Tag: "bytes,249,opt,name=x249", |
3711 | Filename: "test.proto", | |
3626 | 3712 | } |
3627 | 3713 | |
3628 | 3714 | var E_X250 = &proto.ExtensionDesc{ |
3631 | 3717 | Field: 250, |
3632 | 3718 | Name: "testdata.x250", |
3633 | 3719 | Tag: "bytes,250,opt,name=x250", |
3720 | Filename: "test.proto", | |
3634 | 3721 | } |
3635 | 3722 | |
3636 | 3723 | func init() { |
3776 | 3863 | func init() { proto.RegisterFile("test.proto", fileDescriptor0) } |
3777 | 3864 | |
3778 | 3865 | var fileDescriptor0 = []byte{ |
3779 | // 4465 bytes of a gzipped FileDescriptorProto | |
3780 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x94, 0x5a, 0xc9, 0x77, 0xdb, 0x48, | |
3866 | // 4453 bytes of a gzipped FileDescriptorProto | |
3867 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x5a, 0xc9, 0x77, 0xdb, 0x48, | |
3781 | 3868 | 0x7a, 0x37, 0xc0, 0xfd, 0x23, 0x25, 0x42, 0x65, 0xb5, 0x9b, 0x96, 0xbc, 0xc0, 0x9c, 0xe9, 0x6e, |
3782 | 0x7a, 0xd3, 0x48, 0x20, 0x44, 0xdb, 0x74, 0xa7, 0xdf, 0xf3, 0x42, 0xc9, 0x7a, 0x63, 0x89, 0x0a, | |
3783 | 0xa4, 0xee, 0x7e, 0xd3, 0x39, 0xf0, 0x51, 0x22, 0x48, 0xb3, 0x4d, 0x02, 0x34, 0x09, 0xc5, 0x52, | |
3869 | 0x7a, 0xd3, 0x48, 0x20, 0x44, 0xdb, 0x74, 0xa7, 0xdf, 0xf3, 0x42, 0xca, 0x7a, 0x63, 0x89, 0x0a, | |
3870 | 0xa4, 0xee, 0x7e, 0xd3, 0x39, 0xf0, 0x51, 0x22, 0x44, 0xb3, 0x4d, 0x02, 0x34, 0x09, 0xc5, 0x52, | |
3784 | 3871 | 0x72, 0xe9, 0x4b, 0x72, 0xcd, 0x76, 0xc9, 0x35, 0xa7, 0x9c, 0x92, 0xbc, 0x97, 0x7f, 0x22, 0xe9, |
3785 | 3872 | 0xee, 0x59, 0x7b, 0xd6, 0xac, 0x93, 0x7d, 0x99, 0xec, 0xdb, 0x4c, 0x92, 0x4b, 0xcf, 0xab, 0xaf, |
3786 | 3873 | 0x0a, 0x40, 0x01, 0x24, 0x20, 0xf9, 0x24, 0x56, 0xd5, 0xef, 0xf7, 0xd5, 0xf6, 0xab, 0xef, 0xab, |
3787 | 0xaf, 0x20, 0x00, 0xc7, 0x9c, 0x38, 0x2b, 0xa3, 0xb1, 0xed, 0xd8, 0x24, 0x4b, 0x7f, 0x77, 0xda, | |
3788 | 0x4e, 0xbb, 0x7c, 0x1d, 0xd2, 0x9b, 0x76, 0xc3, 0x3a, 0x1a, 0x92, 0xab, 0x90, 0xe8, 0xda, 0x76, | |
3789 | 0x49, 0x52, 0xe5, 0xca, 0xbc, 0x36, 0xb7, 0xe2, 0x22, 0x56, 0x36, 0x9a, 0x4d, 0x83, 0xb6, 0x94, | |
3790 | 0xef, 0x40, 0x7e, 0xd3, 0xde, 0x37, 0x27, 0xce, 0x46, 0xdf, 0x1c, 0x74, 0xc8, 0x22, 0xa4, 0x9e, | |
3791 | 0xb6, 0x0f, 0xcc, 0x01, 0x32, 0x72, 0x46, 0x6a, 0x40, 0x0b, 0x84, 0x40, 0x72, 0xff, 0x64, 0x64, | |
3792 | 0x96, 0x64, 0xac, 0x4c, 0x3a, 0x27, 0x23, 0xb3, 0xfc, 0x2b, 0x57, 0x68, 0x27, 0x94, 0x49, 0xae, | |
3793 | 0x43, 0xf2, 0xcb, 0x7d, 0xab, 0xc3, 0x7b, 0x79, 0xcd, 0xef, 0x85, 0xb5, 0xaf, 0x7c, 0x79, 0x6b, | |
3794 | 0xe7, 0xb1, 0x91, 0x7c, 0xde, 0xb7, 0xd0, 0xfe, 0x7e, 0xfb, 0x60, 0x40, 0x4d, 0x49, 0xd4, 0xbe, | |
3795 | 0x43, 0x0b, 0xb4, 0x76, 0xb7, 0x3d, 0x6e, 0x0f, 0x4b, 0x09, 0x55, 0xaa, 0xa4, 0x8c, 0xd4, 0x88, | |
3796 | 0x16, 0xc8, 0x7d, 0x98, 0x33, 0xcc, 0x17, 0x47, 0xfd, 0xb1, 0xd9, 0xc1, 0xc1, 0x95, 0x92, 0xaa, | |
3797 | 0x5c, 0xc9, 0x4f, 0xdb, 0xc7, 0x46, 0x63, 0x6e, 0x2c, 0x62, 0x19, 0x79, 0x64, 0xb6, 0x1d, 0x97, | |
3798 | 0x9c, 0x52, 0x13, 0xb1, 0x64, 0x01, 0x4b, 0xc9, 0xcd, 0x91, 0xd3, 0xb7, 0xad, 0xf6, 0x80, 0x91, | |
3799 | 0xd3, 0xaa, 0x14, 0x43, 0xb6, 0x45, 0x2c, 0x79, 0x13, 0x8a, 0x1b, 0xad, 0x87, 0xb6, 0x3d, 0x68, | |
3800 | 0xb9, 0x23, 0x2a, 0x81, 0x2a, 0x57, 0xb2, 0xc6, 0x5c, 0x97, 0xd6, 0xba, 0x53, 0x22, 0x15, 0x50, | |
3801 | 0x36, 0x5a, 0x5b, 0x96, 0x53, 0xd5, 0x7c, 0x60, 0x5e, 0x95, 0x2b, 0x29, 0x63, 0xbe, 0x8b, 0xd5, | |
3802 | 0x53, 0xc8, 0x9a, 0xee, 0x23, 0x0b, 0xaa, 0x5c, 0x49, 0x30, 0x64, 0x4d, 0xf7, 0x90, 0xb7, 0x80, | |
3803 | 0x6c, 0xb4, 0x36, 0xfa, 0xc7, 0x66, 0x47, 0xb4, 0x3a, 0xa7, 0xca, 0x95, 0x8c, 0xa1, 0x74, 0x79, | |
3804 | 0xc3, 0x0c, 0xb4, 0x68, 0x79, 0x5e, 0x95, 0x2b, 0x69, 0x17, 0x2d, 0xd8, 0xbe, 0x01, 0x0b, 0x1b, | |
3805 | 0xad, 0x77, 0xfb, 0xc1, 0x01, 0x17, 0x55, 0xb9, 0x32, 0x67, 0x14, 0xbb, 0xac, 0x7e, 0x1a, 0x2b, | |
3806 | 0x1a, 0x56, 0x54, 0xb9, 0x92, 0xe4, 0x58, 0xc1, 0x2e, 0xce, 0x6e, 0x63, 0x60, 0xb7, 0x1d, 0x1f, | |
3807 | 0xba, 0xa0, 0xca, 0x15, 0xd9, 0x98, 0xef, 0x62, 0x75, 0xd0, 0xea, 0x63, 0xfb, 0xe8, 0x60, 0x60, | |
3808 | 0xfa, 0x50, 0xa2, 0xca, 0x15, 0xc9, 0x28, 0x76, 0x59, 0x7d, 0x10, 0xbb, 0xe7, 0x8c, 0xfb, 0x56, | |
3809 | 0xcf, 0xc7, 0x9e, 0x47, 0xfd, 0x16, 0xbb, 0xac, 0x3e, 0x38, 0x82, 0x87, 0x27, 0x8e, 0x39, 0xf1, | |
3810 | 0xa1, 0xa6, 0x2a, 0x57, 0x0a, 0xc6, 0x7c, 0x17, 0xab, 0x43, 0x56, 0x43, 0x6b, 0xd0, 0x55, 0xe5, | |
3811 | 0xca, 0x02, 0xb5, 0x3a, 0x63, 0x0d, 0xf6, 0x42, 0x6b, 0xd0, 0x53, 0xe5, 0x0a, 0xe1, 0x58, 0x61, | |
3812 | 0x0d, 0x44, 0xcd, 0x30, 0x21, 0x96, 0x16, 0xd5, 0x84, 0xa0, 0x19, 0x56, 0x19, 0xd4, 0x0c, 0x07, | |
3813 | 0xbe, 0xa6, 0x26, 0x44, 0xcd, 0x84, 0x90, 0xd8, 0x39, 0x47, 0x5e, 0x50, 0x13, 0xa2, 0x66, 0x38, | |
3814 | 0x32, 0xa4, 0x19, 0x8e, 0x7d, 0x5d, 0x4d, 0x04, 0x35, 0x33, 0x85, 0x16, 0x2d, 0x97, 0xd4, 0x44, | |
3815 | 0x50, 0x33, 0x1c, 0x1d, 0xd4, 0x0c, 0x07, 0x5f, 0x54, 0x13, 0x01, 0xcd, 0x84, 0xb1, 0xa2, 0xe1, | |
3816 | 0x25, 0x35, 0x11, 0xd0, 0x8c, 0x38, 0x3b, 0x57, 0x33, 0x1c, 0xba, 0xac, 0x26, 0x44, 0xcd, 0x88, | |
3817 | 0x56, 0x3d, 0xcd, 0x70, 0xe8, 0x25, 0x35, 0x11, 0xd0, 0x8c, 0x88, 0xf5, 0x34, 0xc3, 0xb1, 0x97, | |
3818 | 0xd5, 0x44, 0x40, 0x33, 0x1c, 0x7b, 0x5d, 0xd4, 0x0c, 0x87, 0x7e, 0x2c, 0xa9, 0x09, 0x51, 0x34, | |
3819 | 0x1c, 0x7a, 0x33, 0x20, 0x1a, 0x8e, 0xfd, 0x84, 0x62, 0x45, 0xd5, 0x84, 0xc1, 0xe2, 0x2a, 0x7c, | |
3820 | 0x4a, 0xc1, 0xa2, 0x6c, 0x38, 0xd8, 0x97, 0x8d, 0xeb, 0x82, 0x4a, 0x57, 0x54, 0xc9, 0x93, 0x8d, | |
3821 | 0xeb, 0xc3, 0x44, 0xd9, 0x78, 0xc0, 0xab, 0xe8, 0x6a, 0xb9, 0x6c, 0xa6, 0x90, 0x35, 0xdd, 0x47, | |
3822 | 0xaa, 0xaa, 0xe4, 0xcb, 0xc6, 0x43, 0x06, 0x64, 0xe3, 0x61, 0xaf, 0xa9, 0x92, 0x28, 0x9b, 0x19, | |
3823 | 0x68, 0xd1, 0x72, 0x59, 0x95, 0x44, 0xd9, 0x78, 0x68, 0x51, 0x36, 0x1e, 0xf8, 0x0b, 0xaa, 0x24, | |
3824 | 0xc8, 0x66, 0x1a, 0x2b, 0x1a, 0xfe, 0xa2, 0x2a, 0x09, 0xb2, 0x09, 0xce, 0x8e, 0xc9, 0xc6, 0x83, | |
3825 | 0xbe, 0xa1, 0x4a, 0xbe, 0x6c, 0x82, 0x56, 0xb9, 0x6c, 0x3c, 0xe8, 0x9b, 0xaa, 0x24, 0xc8, 0x26, | |
3826 | 0x88, 0xe5, 0xb2, 0xf1, 0xb0, 0x6f, 0x61, 0x7c, 0x73, 0x65, 0xe3, 0x61, 0x05, 0xd9, 0x78, 0xd0, | |
3827 | 0xdf, 0xa1, 0xb1, 0xd0, 0x93, 0x8d, 0x07, 0x15, 0x65, 0xe3, 0x61, 0x7f, 0x97, 0x62, 0x7d, 0xd9, | |
3828 | 0x4c, 0x83, 0xc5, 0x55, 0xf8, 0x3d, 0x0a, 0xf6, 0x65, 0xe3, 0x81, 0x57, 0x70, 0x10, 0x54, 0x36, | |
3829 | 0x1d, 0xb3, 0xdb, 0x3e, 0x1a, 0x50, 0x89, 0x55, 0xa8, 0x6e, 0xea, 0x49, 0x67, 0x7c, 0x64, 0xd2, | |
3830 | 0x91, 0xd8, 0xf6, 0xe0, 0xb1, 0xdb, 0x46, 0x56, 0xa8, 0x71, 0x26, 0x1f, 0x9f, 0x70, 0x9d, 0xea, | |
3831 | 0xa7, 0x2e, 0x57, 0x35, 0xa3, 0xc8, 0x34, 0x34, 0x8d, 0xaf, 0xe9, 0x02, 0xfe, 0x06, 0x55, 0x51, | |
3832 | 0x5d, 0xae, 0xe9, 0x0c, 0x5f, 0xd3, 0x7d, 0x7c, 0x15, 0xce, 0xfb, 0x52, 0xf2, 0x19, 0x37, 0xa9, | |
3833 | 0x96, 0xea, 0x89, 0xaa, 0xb6, 0x6a, 0x2c, 0xb8, 0x82, 0x9a, 0x45, 0x0a, 0x74, 0x73, 0x8b, 0x4a, | |
3834 | 0xaa, 0x9e, 0xa8, 0xe9, 0x1e, 0x49, 0xec, 0x49, 0xa3, 0x32, 0xe4, 0xc2, 0xf2, 0x39, 0xb7, 0xa9, | |
3835 | 0xb2, 0xea, 0xc9, 0xaa, 0xb6, 0xba, 0x6a, 0x28, 0x5c, 0x5f, 0x33, 0x38, 0x81, 0x7e, 0x56, 0xa8, | |
3836 | 0xc2, 0xea, 0xc9, 0x9a, 0xee, 0x71, 0x82, 0xfd, 0x2c, 0xb8, 0x42, 0xf3, 0x29, 0x5f, 0xa2, 0x4a, | |
3837 | 0xab, 0xa7, 0xab, 0x6b, 0xfa, 0xda, 0xfa, 0x3d, 0xa3, 0xc8, 0x14, 0xe7, 0x73, 0x74, 0xda, 0x0f, | |
3838 | 0x97, 0x9c, 0x4f, 0x5a, 0xa5, 0x9a, 0xab, 0xa7, 0xb5, 0x3b, 0x6b, 0x77, 0xb5, 0xbb, 0x86, 0xc2, | |
3839 | 0xb5, 0xe7, 0xb3, 0xde, 0xa1, 0x2c, 0x2e, 0x3e, 0x9f, 0xb5, 0x46, 0xd5, 0x57, 0x57, 0x9e, 0x99, | |
3840 | 0x83, 0x81, 0x7d, 0x4b, 0x2d, 0xbf, 0xb4, 0xc7, 0x83, 0xce, 0xb5, 0x32, 0x18, 0x0a, 0xd7, 0xa3, | |
3841 | 0xd8, 0xeb, 0x82, 0x2b, 0x48, 0x9f, 0xfe, 0x6b, 0xf4, 0x1e, 0x56, 0xa8, 0x67, 0x1e, 0xf6, 0x7b, | |
3842 | 0x96, 0x3d, 0x31, 0x8d, 0x22, 0x93, 0x66, 0x68, 0x4d, 0xf6, 0xc2, 0xeb, 0xf8, 0xeb, 0x94, 0xb6, | |
3843 | 0x50, 0x4f, 0xdc, 0xae, 0x6a, 0xb4, 0xa7, 0x59, 0xeb, 0xb8, 0x17, 0x5e, 0xc7, 0xdf, 0xa0, 0x1c, | |
3844 | 0x52, 0x4f, 0xdc, 0xae, 0xe9, 0x9c, 0x23, 0xae, 0xe3, 0x1d, 0xb8, 0x10, 0x8a, 0x8b, 0xad, 0x51, | |
3845 | 0xfb, 0xf0, 0xb9, 0xd9, 0x29, 0x69, 0x34, 0x3c, 0x3e, 0x94, 0x15, 0xc9, 0x38, 0x1f, 0x08, 0x91, | |
3846 | 0xbb, 0xd8, 0x4c, 0xee, 0xc1, 0xeb, 0xe1, 0x40, 0xe9, 0x32, 0xab, 0x34, 0x5e, 0x22, 0x73, 0x31, | |
3847 | 0x18, 0x33, 0x43, 0x54, 0xc1, 0x01, 0xbb, 0x54, 0x9d, 0x06, 0x50, 0x9f, 0xea, 0x7b, 0x62, 0x4e, | |
3848 | 0xfd, 0x19, 0xb8, 0x38, 0x1d, 0x4a, 0x5d, 0xf2, 0x3a, 0x8d, 0xa8, 0x48, 0xbe, 0x10, 0x8e, 0xaa, | |
3849 | 0x53, 0xf4, 0x19, 0x7d, 0xd7, 0x68, 0x88, 0x15, 0xe9, 0x53, 0xbd, 0xdf, 0x87, 0xd2, 0x54, 0xb0, | |
3850 | 0x75, 0xd9, 0x77, 0x68, 0xcc, 0x45, 0xf6, 0x6b, 0xa1, 0xb8, 0x1b, 0x26, 0xcf, 0xe8, 0xfa, 0x2e, | |
3851 | 0x0d, 0xc2, 0x02, 0x79, 0xaa, 0x67, 0x5c, 0xb2, 0x60, 0x38, 0x76, 0xb9, 0xf7, 0x68, 0x54, 0xe6, | |
3852 | 0x4b, 0x16, 0x88, 0xcc, 0x62, 0xbf, 0xa1, 0xf8, 0xec, 0x72, 0xeb, 0x34, 0x4c, 0xf3, 0x7e, 0x83, | |
3853 | 0xa1, 0x9a, 0x93, 0xdf, 0xa6, 0xe4, 0xbd, 0xd9, 0x33, 0xfe, 0x71, 0x82, 0x06, 0x58, 0xce, 0xde, | |
3854 | 0x9b, 0x35, 0x65, 0x8f, 0x3d, 0x63, 0xca, 0x3f, 0xa1, 0x6c, 0x22, 0xb0, 0xa7, 0xe6, 0xfc, 0x18, | |
3855 | 0xbc, 0x8c, 0xa3, 0x37, 0xb6, 0x8f, 0x46, 0xa5, 0x0d, 0x55, 0xae, 0x80, 0x76, 0x65, 0x2a, 0xfb, | |
3856 | 0x71, 0x2f, 0x79, 0x9b, 0x14, 0x65, 0x04, 0x49, 0xcc, 0x0a, 0xb3, 0xcb, 0xac, 0xec, 0xaa, 0x89, | |
3857 | 0x08, 0x2b, 0x0c, 0xe5, 0x59, 0x11, 0x48, 0xd4, 0x8a, 0xeb, 0xf4, 0x99, 0x95, 0x0f, 0x54, 0x69, | |
3858 | 0xa6, 0x15, 0x37, 0x04, 0x70, 0x2b, 0x01, 0xd2, 0xd2, 0xba, 0x9f, 0x6f, 0x61, 0x3b, 0xf9, 0x62, | |
3859 | 0x38, 0x01, 0xdb, 0xc4, 0xfb, 0x73, 0x30, 0xd3, 0x62, 0x34, 0x61, 0x70, 0xd3, 0xb4, 0x9f, 0x8d, | |
3860 | 0xa0, 0x05, 0x46, 0x33, 0x4d, 0xfb, 0xb9, 0x19, 0xb4, 0xf2, 0x6f, 0x4a, 0x90, 0xa4, 0xf9, 0x24, | |
3861 | 0xc9, 0x42, 0xf2, 0xbd, 0xe6, 0xd6, 0x63, 0xe5, 0x1c, 0xfd, 0xf5, 0xb0, 0xd9, 0x7c, 0xaa, 0x48, | |
3862 | 0x24, 0x07, 0xa9, 0x87, 0x5f, 0xd9, 0x6f, 0xec, 0x29, 0x32, 0x29, 0x42, 0x7e, 0x63, 0x6b, 0x67, | |
3863 | 0xb3, 0x61, 0xec, 0x1a, 0x5b, 0x3b, 0xfb, 0x4a, 0x82, 0xb6, 0x6d, 0x3c, 0x6d, 0x3e, 0xd8, 0x57, | |
3864 | 0x92, 0x24, 0x03, 0x09, 0x5a, 0x97, 0x22, 0x00, 0xe9, 0xbd, 0x7d, 0x63, 0x6b, 0x67, 0x53, 0x49, | |
3865 | 0x53, 0x2b, 0xfb, 0x5b, 0xdb, 0x0d, 0x25, 0x43, 0x91, 0xfb, 0xef, 0xee, 0x3e, 0x6d, 0x28, 0x59, | |
3866 | 0xfa, 0xf3, 0x81, 0x61, 0x3c, 0xf8, 0x8a, 0x92, 0xa3, 0xa4, 0xed, 0x07, 0xbb, 0x0a, 0x60, 0xf3, | |
3867 | 0x83, 0x87, 0x4f, 0x1b, 0x4a, 0x9e, 0x14, 0x20, 0xbb, 0xf1, 0xee, 0xce, 0xa3, 0xfd, 0xad, 0xe6, | |
3868 | 0x8e, 0x52, 0x28, 0x9f, 0x40, 0x89, 0x2d, 0x73, 0x60, 0x15, 0x59, 0x52, 0xf8, 0x0e, 0xa4, 0xd8, | |
3869 | 0xce, 0x48, 0xa8, 0x92, 0x4a, 0x78, 0x67, 0xa6, 0x29, 0x2b, 0x6c, 0x8f, 0x18, 0x6d, 0xe9, 0x32, | |
3870 | 0xa4, 0xd8, 0x2a, 0x2d, 0x42, 0x8a, 0xad, 0x8e, 0x8c, 0xa9, 0x62, 0xaa, 0x8b, 0xab, 0xf2, 0x5b, | |
3871 | 0x32, 0xc0, 0xa6, 0xbd, 0xf7, 0xbc, 0x3f, 0xc2, 0x84, 0xfc, 0x32, 0xc0, 0xe4, 0x79, 0x7f, 0xd4, | |
3872 | 0x42, 0xd5, 0xf3, 0xa4, 0x32, 0x47, 0x6b, 0xd0, 0xdf, 0x91, 0x6b, 0x50, 0xc0, 0xe6, 0x2e, 0xf3, | |
3873 | 0x42, 0x98, 0x4b, 0x66, 0x8c, 0x3c, 0xad, 0xe3, 0x8e, 0x29, 0x08, 0xa9, 0xe9, 0x98, 0x42, 0xa6, | |
3874 | 0x05, 0x48, 0x4d, 0x27, 0x57, 0x01, 0x8b, 0xad, 0x09, 0x46, 0x14, 0x4c, 0x1b, 0x73, 0x06, 0xf6, | |
3875 | 0xcb, 0x62, 0x0c, 0x79, 0x1b, 0xb0, 0x4f, 0x36, 0xef, 0xe2, 0xf4, 0xe9, 0x70, 0x87, 0xbb, 0x42, | |
3876 | 0x7f, 0xb0, 0xd9, 0xfa, 0x84, 0xa5, 0x26, 0xe4, 0xbc, 0x7a, 0xda, 0x17, 0xd6, 0xf2, 0x19, 0x29, | |
3877 | 0x38, 0x23, 0xc0, 0x2a, 0x6f, 0x4a, 0x0c, 0xc0, 0x47, 0xb3, 0x80, 0xa3, 0x61, 0x24, 0x36, 0x9c, | |
3878 | 0xf2, 0x65, 0x98, 0xdb, 0xb1, 0x2d, 0x76, 0x7a, 0x71, 0x95, 0x0a, 0x20, 0xb5, 0x4b, 0x12, 0x66, | |
3879 | 0x4f, 0x52, 0xbb, 0x7c, 0x05, 0x40, 0x68, 0x53, 0x40, 0x3a, 0x60, 0x6d, 0xe8, 0x03, 0xa4, 0x83, | |
3880 | 0xf2, 0x4d, 0x48, 0x6f, 0xb7, 0x8f, 0xf7, 0xdb, 0x3d, 0x72, 0x0d, 0x60, 0xd0, 0x9e, 0x38, 0x2d, | |
3881 | 0x5c, 0xfa, 0xd2, 0xe7, 0x9f, 0x7f, 0xfe, 0xb9, 0x84, 0x97, 0xbd, 0x1c, 0xad, 0x65, 0x2a, 0x7d, | |
3882 | 0x01, 0xd0, 0x1c, 0x74, 0xb6, 0xcd, 0xc9, 0xa4, 0xdd, 0x33, 0x49, 0x15, 0xd2, 0x96, 0x39, 0xa1, | |
3883 | 0xd1, 0x4e, 0xc2, 0x77, 0x84, 0x65, 0x7f, 0x15, 0x7c, 0xd4, 0xca, 0x0e, 0x42, 0x0c, 0x0e, 0x25, | |
3884 | 0x0a, 0x24, 0xac, 0xa3, 0x21, 0xbe, 0x93, 0xa4, 0x0c, 0xfa, 0x73, 0xe9, 0x12, 0xa4, 0x19, 0x86, | |
3885 | 0x10, 0x48, 0x5a, 0xed, 0xa1, 0x59, 0x62, 0xfd, 0xe2, 0xef, 0xf2, 0xaf, 0x4a, 0x00, 0x3b, 0xe6, | |
3886 | 0xcb, 0x33, 0xf4, 0xe9, 0xa3, 0x62, 0xfa, 0x4c, 0xb0, 0x3e, 0xef, 0xc7, 0xf5, 0x49, 0x75, 0xd6, | |
3887 | 0xb5, 0xed, 0x4e, 0x8b, 0x6d, 0x31, 0x7b, 0xd2, 0xc9, 0xd1, 0x1a, 0xdc, 0xb5, 0xf2, 0x07, 0x50, | |
3888 | 0xd8, 0xb2, 0x2c, 0x73, 0xec, 0x8e, 0x89, 0x40, 0xf2, 0x99, 0x3d, 0x71, 0xf8, 0xdb, 0x12, 0xfe, | |
3889 | 0x26, 0x25, 0x48, 0x8e, 0xec, 0xb1, 0xc3, 0xe6, 0x59, 0x4f, 0xea, 0xab, 0xab, 0xab, 0x06, 0xd6, | |
3890 | 0x90, 0x4b, 0x90, 0x3b, 0xb4, 0x2d, 0xcb, 0x3c, 0xa4, 0x93, 0x48, 0x60, 0x5a, 0xe3, 0x57, 0x94, | |
3891 | 0x7f, 0x59, 0x82, 0x42, 0xd3, 0x79, 0xe6, 0x1b, 0x57, 0x20, 0xf1, 0xdc, 0x3c, 0xc1, 0xe1, 0x25, | |
3892 | 0x0c, 0xfa, 0x93, 0x1e, 0x95, 0x9f, 0x6f, 0x0f, 0x8e, 0xd8, 0x5b, 0x53, 0xc1, 0x60, 0x05, 0x72, | |
3893 | 0x01, 0xd2, 0x2f, 0xcd, 0x7e, 0xef, 0x99, 0x83, 0x36, 0x65, 0x83, 0x97, 0xc8, 0x2d, 0x48, 0xf5, | |
3894 | 0xe9, 0x60, 0x4b, 0x49, 0x5c, 0xaf, 0x0b, 0xfe, 0x7a, 0x89, 0x73, 0x30, 0x18, 0xe8, 0x46, 0x36, | |
3895 | 0xdb, 0x51, 0x3e, 0xfa, 0xe8, 0xa3, 0x8f, 0xe4, 0x72, 0x17, 0x16, 0xdd, 0xc3, 0x1b, 0x98, 0xec, | |
3896 | 0x0e, 0x94, 0x06, 0xa6, 0xdd, 0xea, 0xf6, 0xad, 0xf6, 0x60, 0x70, 0xd2, 0x7a, 0x69, 0x5b, 0xad, | |
3897 | 0xb6, 0xd5, 0xb2, 0x27, 0x87, 0xed, 0x31, 0x2e, 0x40, 0x74, 0x17, 0x8b, 0x03, 0xd3, 0xde, 0x60, | |
3898 | 0xb4, 0xf7, 0x6d, 0xeb, 0x81, 0xd5, 0xa4, 0x9c, 0xf2, 0x1f, 0x24, 0x21, 0xb7, 0x7d, 0xe2, 0x5a, | |
3899 | 0x5f, 0x84, 0xd4, 0xa1, 0x7d, 0x64, 0xb1, 0xb5, 0x4c, 0x19, 0xac, 0xe0, 0xed, 0x91, 0x2c, 0xec, | |
3900 | 0xd1, 0x22, 0xa4, 0x5e, 0x1c, 0xd9, 0x8e, 0x89, 0xd3, 0xcd, 0x19, 0xac, 0x40, 0x57, 0x6b, 0x64, | |
3901 | 0x3a, 0xa5, 0x24, 0x26, 0xb7, 0xf4, 0xa7, 0x3f, 0xff, 0xd4, 0x19, 0xe6, 0x4f, 0x56, 0x20, 0x6d, | |
3902 | 0xd3, 0xd5, 0x9f, 0x94, 0xd2, 0xf8, 0xae, 0x26, 0xc0, 0xc5, 0x5d, 0x31, 0x38, 0x8a, 0x6c, 0xc1, | |
3903 | 0xc2, 0x4b, 0xb3, 0x35, 0x3c, 0x9a, 0x38, 0xad, 0x9e, 0xdd, 0xea, 0x98, 0xe6, 0xc8, 0x1c, 0x97, | |
3904 | 0xe6, 0xb0, 0x27, 0xc1, 0x27, 0xcc, 0x5a, 0x48, 0x63, 0xfe, 0xa5, 0xb9, 0x7d, 0x34, 0x71, 0x36, | |
3905 | 0xed, 0xc7, 0xc8, 0x22, 0x55, 0xc8, 0x8d, 0x4d, 0xea, 0x09, 0xe8, 0x60, 0x0b, 0xe1, 0xde, 0x03, | |
3906 | 0xd4, 0xec, 0xd8, 0x1c, 0x61, 0x05, 0x59, 0x87, 0xec, 0x41, 0xff, 0xb9, 0x39, 0x79, 0x66, 0x76, | |
3907 | 0x4a, 0x19, 0x55, 0xaa, 0xcc, 0x6b, 0x17, 0x7d, 0x8e, 0xb7, 0xac, 0x2b, 0x8f, 0xec, 0x81, 0x3d, | |
3908 | 0x36, 0x3c, 0x28, 0xb9, 0x0f, 0xb9, 0x89, 0x3d, 0x34, 0x99, 0xbe, 0xb3, 0x18, 0x54, 0x2f, 0xcf, | |
3909 | 0xe2, 0xed, 0xd9, 0x43, 0xd3, 0xf5, 0x60, 0x2e, 0x9e, 0x2c, 0xb3, 0x81, 0x1e, 0xd0, 0xab, 0x73, | |
3910 | 0x09, 0xf0, 0x69, 0x80, 0x0e, 0x08, 0xaf, 0xd2, 0x64, 0x89, 0x0e, 0xa8, 0xd7, 0xa5, 0x37, 0xa2, | |
3911 | 0x52, 0x1e, 0xf3, 0x4a, 0xaf, 0xbc, 0x74, 0x0b, 0x72, 0x9e, 0x41, 0xdf, 0xf5, 0x31, 0x77, 0x93, | |
3912 | 0x43, 0x7f, 0xc0, 0x5c, 0x1f, 0xf3, 0x35, 0x6f, 0x40, 0x0a, 0x87, 0x4d, 0x23, 0x94, 0xd1, 0xa0, | |
3913 | 0x01, 0x31, 0x07, 0xa9, 0x4d, 0xa3, 0xd1, 0xd8, 0x51, 0x24, 0x8c, 0x8d, 0x4f, 0xdf, 0x6d, 0x28, | |
3914 | 0xb2, 0xa0, 0xd8, 0xdf, 0x96, 0x20, 0xd1, 0x38, 0x46, 0xb5, 0xd0, 0x69, 0xb8, 0x27, 0x9a, 0xfe, | |
3915 | 0xd6, 0x6a, 0x90, 0x1c, 0xda, 0x63, 0x93, 0x9c, 0x9f, 0x31, 0xcb, 0x52, 0x0f, 0xf7, 0x4b, 0x78, | |
3916 | 0x45, 0x6e, 0x1c, 0x3b, 0x06, 0xe2, 0xb5, 0xb7, 0x20, 0xe9, 0x98, 0xc7, 0xce, 0x6c, 0xde, 0x33, | |
3917 | 0xd6, 0x01, 0x05, 0x68, 0x37, 0x21, 0x6d, 0x1d, 0x0d, 0x0f, 0xcc, 0xf1, 0x6c, 0x68, 0x1f, 0xa7, | |
3918 | 0xc7, 0x21, 0xe5, 0xf7, 0x40, 0x79, 0x64, 0x0f, 0x47, 0x03, 0xf3, 0xb8, 0x71, 0xec, 0x98, 0xd6, | |
3919 | 0xa4, 0x6f, 0x5b, 0x54, 0xcf, 0xdd, 0xfe, 0x18, 0xbd, 0x88, 0xc4, 0x02, 0xe0, 0x78, 0xe2, 0xd0, | |
3920 | 0x53, 0x3d, 0x31, 0x0f, 0x6d, 0xab, 0xc3, 0x1d, 0x26, 0x2f, 0x51, 0xb4, 0xf3, 0xac, 0x3f, 0xa6, | |
3921 | 0x0e, 0x84, 0xfa, 0x79, 0x56, 0x28, 0x6f, 0x42, 0x91, 0xe7, 0x18, 0x13, 0xde, 0x71, 0xf9, 0x06, | |
3922 | 0x14, 0xdc, 0x2a, 0x7c, 0x38, 0xcf, 0x42, 0xf2, 0x83, 0x86, 0xd1, 0x54, 0xce, 0xd1, 0x65, 0x6d, | |
3923 | 0xee, 0x34, 0x14, 0x89, 0xfe, 0xd8, 0x7f, 0xbf, 0x19, 0x58, 0xca, 0x4b, 0x50, 0xf0, 0xc6, 0xbe, | |
3924 | 0x67, 0x3a, 0xd8, 0x42, 0x03, 0x42, 0xa6, 0x2e, 0x67, 0xa5, 0x72, 0x06, 0x52, 0x8d, 0xe1, 0xc8, | |
3925 | 0x39, 0x29, 0xff, 0x22, 0xe4, 0x39, 0xe8, 0x69, 0x7f, 0xe2, 0x90, 0x3b, 0x90, 0x19, 0xf2, 0xf9, | |
3926 | 0x4a, 0x78, 0xdd, 0x13, 0x35, 0xe5, 0xe3, 0xdc, 0xdf, 0x86, 0x8b, 0x5e, 0xaa, 0x42, 0x46, 0xf0, | |
3927 | 0xa5, 0xfc, 0xa8, 0xcb, 0xe2, 0x51, 0x67, 0x4e, 0x21, 0x21, 0x38, 0x85, 0xf2, 0x36, 0x64, 0x58, | |
3928 | 0x04, 0x9c, 0x60, 0x54, 0x67, 0xa9, 0x22, 0x13, 0x13, 0xdb, 0xf9, 0x3c, 0xab, 0x63, 0x17, 0x95, | |
3929 | 0xab, 0x90, 0x47, 0xc1, 0x72, 0x04, 0x73, 0x9d, 0x80, 0x55, 0x4c, 0x6e, 0xbf, 0x9f, 0x82, 0xac, | |
3930 | 0xbb, 0x52, 0x64, 0x19, 0xd2, 0x2c, 0x3f, 0x43, 0x53, 0xee, 0xfb, 0x41, 0x0a, 0x33, 0x32, 0xb2, | |
3931 | 0x0c, 0x19, 0x9e, 0x83, 0x71, 0xef, 0x2e, 0x57, 0x35, 0x23, 0xcd, 0x72, 0x2e, 0xaf, 0xb1, 0xa6, | |
3932 | 0xa3, 0x63, 0x62, 0x2f, 0x03, 0x69, 0x96, 0x55, 0x11, 0x15, 0x72, 0x5e, 0x1e, 0x85, 0xfe, 0x98, | |
3933 | 0x3f, 0x03, 0x64, 0xdd, 0xc4, 0x49, 0x40, 0xd4, 0x74, 0xf4, 0x58, 0x3c, 0xe7, 0xcf, 0x76, 0xfd, | |
3934 | 0xeb, 0x49, 0xd6, 0xcd, 0x86, 0xf0, 0xf9, 0xde, 0x4d, 0xf0, 0x33, 0x3c, 0xff, 0xf1, 0x01, 0x35, | |
3935 | 0x1d, 0x5d, 0x82, 0x9b, 0xcd, 0x67, 0x78, 0x8e, 0x43, 0xae, 0xd2, 0x21, 0x62, 0xce, 0x82, 0x47, | |
3936 | 0xdf, 0x4f, 0xdd, 0xd3, 0x2c, 0x93, 0x21, 0xd7, 0xa8, 0x05, 0x96, 0x98, 0xe0, 0xb9, 0xf4, 0xf3, | |
3937 | 0xf4, 0x0c, 0xcf, 0x57, 0xc8, 0x4d, 0x0a, 0x61, 0xcb, 0x5f, 0x82, 0x88, 0xa4, 0x3c, 0xc3, 0x93, | |
3938 | 0x72, 0xa2, 0xd2, 0x0e, 0xd1, 0x3d, 0xa0, 0x4b, 0x10, 0x12, 0xf0, 0x34, 0x4b, 0xc0, 0xc9, 0x15, | |
3939 | 0x34, 0xc7, 0x26, 0x55, 0xf0, 0x93, 0xed, 0x0c, 0x4f, 0x70, 0xfc, 0x76, 0xbc, 0xb2, 0x79, 0x89, | |
3940 | 0x75, 0x86, 0xa7, 0x30, 0xa4, 0x46, 0xf7, 0x8b, 0xea, 0xbb, 0x34, 0x8f, 0x4e, 0xb0, 0xe4, 0x0b, | |
3941 | 0xcf, 0xdd, 0x53, 0xe6, 0x03, 0xeb, 0xcc, 0x83, 0x18, 0xa9, 0x2e, 0x9e, 0x86, 0x25, 0xca, 0xdb, | |
3942 | 0xed, 0x5b, 0xdd, 0x52, 0x11, 0x57, 0x22, 0xd1, 0xb7, 0xba, 0x46, 0xaa, 0x4b, 0x6b, 0x98, 0x06, | |
3943 | 0x76, 0x68, 0x9b, 0x82, 0x6d, 0xc9, 0xdb, 0xac, 0x91, 0x56, 0x91, 0x12, 0xa4, 0x36, 0x5a, 0x3b, | |
3944 | 0x6d, 0xab, 0xb4, 0xc0, 0x78, 0x56, 0xdb, 0x32, 0x92, 0xdd, 0x9d, 0xb6, 0x45, 0xde, 0x82, 0xc4, | |
3945 | 0xe4, 0xe8, 0xa0, 0x44, 0xc2, 0x5f, 0x56, 0xf6, 0x8e, 0x0e, 0xdc, 0xa1, 0x18, 0x14, 0x41, 0x96, | |
3946 | 0x21, 0x3b, 0x71, 0xc6, 0xad, 0x5f, 0x30, 0xc7, 0x76, 0xe9, 0x3c, 0x2e, 0xe1, 0x39, 0x23, 0x33, | |
3947 | 0x71, 0xc6, 0x1f, 0x98, 0x63, 0xfb, 0x8c, 0xce, 0xaf, 0x7c, 0x05, 0xf2, 0x82, 0x5d, 0x52, 0x04, | |
3948 | 0xc9, 0x62, 0x37, 0x85, 0xba, 0x74, 0xc7, 0x90, 0xac, 0xf2, 0x3e, 0x14, 0xdc, 0x1c, 0x06, 0xe7, | |
3949 | 0xab, 0xd1, 0x93, 0x34, 0xb0, 0xc7, 0x78, 0x3e, 0xe7, 0xb5, 0x4b, 0x62, 0x88, 0xf2, 0x61, 0x3c, | |
3950 | 0x5c, 0x30, 0x68, 0x59, 0x09, 0x0d, 0x45, 0x2a, 0xff, 0x50, 0x82, 0xc2, 0xb6, 0x3d, 0xf6, 0x1f, | |
3951 | 0x98, 0x17, 0x21, 0x75, 0x60, 0xdb, 0x83, 0x09, 0x9a, 0xcd, 0x1a, 0xac, 0x40, 0xde, 0x80, 0x02, | |
3952 | 0xfe, 0x70, 0x73, 0x4f, 0xd9, 0x7b, 0xda, 0xc8, 0x63, 0x3d, 0x4f, 0x38, 0x09, 0x24, 0xfb, 0x96, | |
3953 | 0x33, 0xe1, 0x9e, 0x0c, 0x7f, 0x93, 0x2f, 0x40, 0x9e, 0xfe, 0x75, 0x99, 0x49, 0xef, 0xc2, 0x0a, | |
3954 | 0xb4, 0x9a, 0x13, 0xdf, 0x82, 0x39, 0xdc, 0x7d, 0x0f, 0x96, 0xf1, 0x9e, 0x31, 0x0a, 0xac, 0x81, | |
3955 | 0x03, 0x4b, 0x90, 0x61, 0xae, 0x60, 0x82, 0x5f, 0xcb, 0x72, 0x86, 0x5b, 0xa4, 0xee, 0x15, 0x33, | |
3956 | 0x01, 0x16, 0xee, 0x33, 0x06, 0x2f, 0x95, 0x1f, 0x40, 0x16, 0xa3, 0x54, 0x73, 0xd0, 0x21, 0x65, | |
3957 | 0x90, 0x7a, 0x25, 0x13, 0x63, 0xe4, 0xa2, 0x70, 0xcd, 0xe7, 0xcd, 0x2b, 0x9b, 0x86, 0xd4, 0x5b, | |
3958 | 0x5a, 0x00, 0x69, 0x93, 0xde, 0xbb, 0x8f, 0xb9, 0x9b, 0x96, 0x8e, 0xcb, 0x4d, 0x6e, 0x62, 0xc7, | |
3959 | 0x7c, 0x19, 0x67, 0x62, 0xc7, 0x7c, 0xc9, 0x4c, 0x5c, 0x9d, 0x32, 0x41, 0x4b, 0x27, 0xfc, 0xd3, | |
3960 | 0xa1, 0x74, 0x52, 0xae, 0xc2, 0x1c, 0x1e, 0xcf, 0xbe, 0xd5, 0xdb, 0xb5, 0xfb, 0x16, 0xde, 0xf3, | |
3961 | 0xbb, 0x78, 0x4f, 0x92, 0x0c, 0xa9, 0x4b, 0xf7, 0xc0, 0x3c, 0x6e, 0x1f, 0xb2, 0x1b, 0x67, 0xd6, | |
3962 | 0x60, 0x85, 0xf2, 0x67, 0x49, 0x98, 0xe7, 0xae, 0xf5, 0xfd, 0xbe, 0xf3, 0x6c, 0xbb, 0x3d, 0x22, | |
3963 | 0x4f, 0xa1, 0x40, 0xbd, 0x6a, 0x6b, 0xd8, 0x1e, 0x8d, 0xe8, 0xf1, 0x95, 0xf0, 0xaa, 0x71, 0x7d, | |
3964 | 0xca, 0x55, 0x73, 0xfc, 0xca, 0x4e, 0x7b, 0x68, 0x6e, 0x33, 0x6c, 0xc3, 0x72, 0xc6, 0x27, 0x46, | |
3965 | 0xde, 0xf2, 0x6b, 0xc8, 0x16, 0xe4, 0x87, 0x93, 0x9e, 0x67, 0x4c, 0x46, 0x63, 0x95, 0x48, 0x63, | |
3966 | 0xdb, 0x93, 0x5e, 0xc0, 0x16, 0x0c, 0xbd, 0x0a, 0x3a, 0x30, 0xea, 0x8f, 0x3d, 0x5b, 0x89, 0x53, | |
3967 | 0x06, 0x46, 0x5d, 0x47, 0x70, 0x60, 0x07, 0x7e, 0x0d, 0x79, 0x0c, 0x40, 0x8f, 0x97, 0x63, 0xd3, | |
3968 | 0xd4, 0x09, 0x15, 0x94, 0xd7, 0xde, 0x8c, 0xb4, 0xb5, 0xe7, 0x8c, 0xf7, 0xed, 0x3d, 0x67, 0xcc, | |
3969 | 0x0c, 0xd1, 0x83, 0x89, 0xc5, 0xa5, 0x77, 0x40, 0x09, 0xcf, 0x5f, 0xbc, 0x91, 0xa7, 0x66, 0xdc, | |
3970 | 0xc8, 0x73, 0xfc, 0x46, 0x5e, 0x97, 0xef, 0x4a, 0x4b, 0xef, 0x41, 0x31, 0x34, 0x65, 0x91, 0x4e, | |
3971 | 0x18, 0xfd, 0xb6, 0x48, 0xcf, 0x6b, 0xaf, 0x0b, 0x9f, 0xb3, 0xc5, 0x0d, 0x17, 0xed, 0xbe, 0x03, | |
3972 | 0x4a, 0x78, 0xfa, 0xa2, 0xe1, 0x6c, 0x4c, 0xa6, 0x80, 0xfc, 0xfb, 0x30, 0x17, 0x98, 0xb2, 0x48, | |
3973 | 0xce, 0x9d, 0x32, 0xa9, 0xf2, 0x2f, 0xa5, 0x20, 0xd5, 0xb4, 0x4c, 0xbb, 0x4b, 0x5e, 0x0f, 0xc6, | |
3974 | 0xc9, 0x27, 0xe7, 0xdc, 0x18, 0x79, 0x31, 0x14, 0x23, 0x9f, 0x9c, 0xf3, 0x22, 0xe4, 0xc5, 0x50, | |
3975 | 0x84, 0x74, 0x9b, 0x6a, 0x3a, 0xb9, 0x3c, 0x15, 0x1f, 0x9f, 0x9c, 0x13, 0x82, 0xe3, 0xe5, 0xa9, | |
3976 | 0xe0, 0xe8, 0x37, 0xd7, 0x74, 0xea, 0x50, 0x83, 0x91, 0xf1, 0xc9, 0x39, 0x3f, 0x2a, 0x2e, 0x87, | |
3977 | 0xa3, 0xa2, 0xd7, 0x58, 0xd3, 0xd9, 0x90, 0x84, 0x88, 0x88, 0x43, 0x62, 0xb1, 0x70, 0x39, 0x1c, | |
3978 | 0x0b, 0x91, 0xc7, 0xa3, 0xe0, 0x72, 0x38, 0x0a, 0x62, 0x23, 0x8f, 0x7a, 0x17, 0x43, 0x51, 0x0f, | |
3979 | 0x8d, 0xb2, 0x70, 0xb7, 0x1c, 0x0e, 0x77, 0x8c, 0x27, 0x8c, 0x54, 0x8c, 0x75, 0x5e, 0x63, 0x4d, | |
3980 | 0x27, 0x5a, 0x28, 0xd0, 0x45, 0xdf, 0xf6, 0x71, 0x2f, 0xd0, 0xe9, 0xeb, 0x74, 0xd9, 0xdc, 0x8b, | |
3981 | 0x68, 0x31, 0xe6, 0x8b, 0x3f, 0xae, 0xa6, 0x7b, 0x11, 0xd3, 0x20, 0xd3, 0xe5, 0x09, 0xb0, 0x82, | |
3982 | 0x9e, 0x4b, 0x90, 0x25, 0x6e, 0xfe, 0xca, 0x46, 0x0b, 0x3d, 0x18, 0xce, 0x8b, 0xdd, 0xe9, 0x2b, | |
3983 | 0x30, 0xb7, 0xd1, 0x7a, 0xda, 0x1e, 0xf7, 0xcc, 0x89, 0xd3, 0xda, 0x6f, 0xf7, 0xbc, 0x47, 0x04, | |
3984 | 0xba, 0xff, 0xf9, 0x2e, 0x6f, 0xd9, 0x6f, 0xf7, 0xc8, 0x05, 0x57, 0x5c, 0x1d, 0x6c, 0x95, 0xb8, | |
3985 | 0xbc, 0x96, 0x5e, 0xa7, 0x8b, 0xc6, 0x8c, 0xa1, 0x2f, 0x5c, 0xe0, 0xbe, 0xf0, 0x61, 0x06, 0x52, | |
3986 | 0x47, 0x56, 0xdf, 0xb6, 0x1e, 0xe6, 0x20, 0xe3, 0xd8, 0xe3, 0x61, 0xdb, 0xb1, 0xcb, 0x3f, 0x92, | |
3987 | 0x00, 0x1e, 0xd9, 0xc3, 0xe1, 0x91, 0xd5, 0x7f, 0x71, 0x64, 0x92, 0x2b, 0x90, 0x1f, 0xb6, 0x9f, | |
3988 | 0x9b, 0xad, 0xa1, 0xd9, 0x3a, 0x1c, 0xbb, 0xe7, 0x20, 0x47, 0xab, 0xb6, 0xcd, 0x47, 0xe3, 0x13, | |
3989 | 0x52, 0x72, 0xaf, 0xe8, 0xa8, 0x1d, 0x94, 0x24, 0xbf, 0xb2, 0x2f, 0xf2, 0x4b, 0x67, 0x9a, 0xef, | |
3990 | 0xa1, 0x7b, 0xed, 0x64, 0x79, 0x44, 0x86, 0xef, 0x1e, 0x96, 0xa8, 0xe4, 0x1d, 0x73, 0x38, 0x6a, | |
3991 | 0x1d, 0xa2, 0x54, 0xa8, 0x1c, 0x52, 0xb4, 0xfc, 0x88, 0xdc, 0x86, 0xc4, 0xa1, 0x3d, 0x40, 0x91, | |
3992 | 0x9c, 0xb2, 0x2f, 0x14, 0x47, 0xde, 0x80, 0xc4, 0x70, 0xc2, 0x64, 0x93, 0xd7, 0x16, 0x84, 0x7b, | |
3993 | 0x02, 0x0b, 0x4d, 0x14, 0x36, 0x9c, 0xf4, 0xbc, 0x79, 0xdf, 0x28, 0x42, 0x62, 0xa3, 0xd9, 0xa4, | |
3994 | 0xb1, 0x7f, 0xa3, 0xd9, 0x5c, 0x53, 0xa4, 0xfa, 0x97, 0x20, 0xdb, 0x1b, 0x9b, 0x26, 0x75, 0x0f, | |
3995 | 0xb3, 0x73, 0x8e, 0x0f, 0x31, 0xd6, 0x79, 0xa0, 0xfa, 0x36, 0x64, 0x0e, 0x59, 0xd6, 0x41, 0x22, | |
3996 | 0xd2, 0xda, 0xd2, 0x1f, 0xb2, 0x47, 0x95, 0x25, 0xbf, 0x39, 0x9c, 0xa7, 0x18, 0xae, 0x8d, 0xfa, | |
3997 | 0x2e, 0xe4, 0xc6, 0xad, 0xd3, 0x0c, 0x7e, 0xcc, 0xa2, 0x4b, 0x9c, 0xc1, 0xec, 0x98, 0x57, 0xd5, | |
3998 | 0x1b, 0xb0, 0x60, 0xd9, 0xee, 0x37, 0x94, 0x56, 0x87, 0x9d, 0xb1, 0x8b, 0xd3, 0x57, 0x39, 0xd7, | |
3999 | 0xb8, 0xc9, 0xbe, 0x5b, 0x5a, 0x36, 0x6f, 0x60, 0xa7, 0xb2, 0xfe, 0x08, 0x14, 0xc1, 0x0c, 0xa6, | |
4000 | 0x9e, 0x71, 0x56, 0xba, 0xec, 0x43, 0xa9, 0x67, 0x05, 0xcf, 0x7d, 0xc8, 0x08, 0x3b, 0x99, 0x31, | |
4001 | 0x46, 0x7a, 0xec, 0xab, 0xb3, 0x67, 0x04, 0x5d, 0xdd, 0xb4, 0x11, 0xea, 0x6b, 0xa2, 0x8d, 0x3c, | |
4002 | 0x63, 0x1f, 0xa4, 0x45, 0x23, 0x35, 0x3d, 0xb4, 0x2a, 0x47, 0xa7, 0x0e, 0xa5, 0xcf, 0xbe, 0x27, | |
4003 | 0x7b, 0x56, 0x98, 0x03, 0x9c, 0x61, 0x26, 0x7e, 0x30, 0x1f, 0xb2, 0x4f, 0xcd, 0x01, 0x33, 0x53, | |
4004 | 0xa3, 0x99, 0x9c, 0x3a, 0x9a, 0xe7, 0xec, 0xbb, 0xae, 0x67, 0x66, 0x6f, 0xd6, 0x68, 0x26, 0xa7, | |
4005 | 0x8e, 0x66, 0xc0, 0xbe, 0xf8, 0x06, 0xcc, 0xd4, 0xf4, 0xfa, 0x26, 0x10, 0x71, 0xab, 0x79, 0x9c, | |
4006 | 0x88, 0xb1, 0x33, 0x64, 0xdf, 0xf1, 0xfd, 0xcd, 0x66, 0x94, 0x59, 0x86, 0xe2, 0x07, 0x64, 0xb1, | |
4007 | 0x4f, 0xfc, 0x41, 0x43, 0x35, 0xbd, 0xbe, 0x05, 0xe7, 0xc5, 0x89, 0x9d, 0x61, 0x48, 0xb6, 0x2a, | |
4008 | 0x55, 0x8a, 0xc6, 0x82, 0x3f, 0x35, 0xce, 0x99, 0x69, 0x2a, 0x7e, 0x50, 0x23, 0x55, 0xaa, 0x28, | |
4009 | 0x53, 0xa6, 0x6a, 0x7a, 0xfd, 0x01, 0x14, 0x05, 0x53, 0x07, 0x18, 0xa1, 0xa3, 0xcd, 0xbc, 0x60, | |
4010 | 0xff, 0x6b, 0xe1, 0x99, 0xa1, 0x11, 0x3d, 0xbc, 0x63, 0x3c, 0xc6, 0x45, 0x1b, 0x19, 0xb3, 0x7f, | |
4011 | 0x14, 0xf0, 0xc7, 0x82, 0x8c, 0xd0, 0x91, 0xc0, 0xfc, 0x3b, 0xce, 0xca, 0x84, 0xfd, 0x0b, 0x81, | |
4012 | 0x3f, 0x14, 0x4a, 0xa8, 0xf7, 0x03, 0xd3, 0x31, 0x69, 0x90, 0x8b, 0xb1, 0xe1, 0xa0, 0x47, 0x7e, | |
4013 | 0x33, 0x12, 0xb0, 0x22, 0x3e, 0x90, 0x08, 0xd3, 0xa6, 0xc5, 0xfa, 0x16, 0xcc, 0x9f, 0xdd, 0x21, | |
4014 | 0x7d, 0x2c, 0xb1, 0x6c, 0xb9, 0xba, 0x42, 0x13, 0x6a, 0x63, 0xae, 0x13, 0xf0, 0x4b, 0x0d, 0x98, | |
4015 | 0x3b, 0xb3, 0x53, 0xfa, 0x44, 0x62, 0x39, 0x27, 0xb5, 0x64, 0x14, 0x3a, 0x41, 0xcf, 0x34, 0x77, | |
4016 | 0x66, 0xb7, 0xf4, 0xa9, 0xc4, 0x1e, 0x28, 0x74, 0xcd, 0x33, 0xe2, 0x7a, 0xa6, 0xb9, 0x33, 0xbb, | |
4017 | 0xa5, 0xaf, 0xb2, 0x8c, 0x52, 0xd6, 0xab, 0xa2, 0x11, 0xf4, 0x05, 0xf3, 0x67, 0x77, 0x4b, 0x5f, | |
4018 | 0x93, 0xf0, 0xb1, 0x42, 0xd6, 0x75, 0x6f, 0x5d, 0x3c, 0xcf, 0x34, 0x7f, 0x76, 0xb7, 0xf4, 0x75, | |
4019 | 0x09, 0x9f, 0x34, 0x64, 0x7d, 0x3d, 0x60, 0x26, 0x38, 0x9a, 0xd3, 0xdd, 0xd2, 0x37, 0x24, 0x7c, | |
4020 | 0x65, 0x90, 0xf5, 0x9a, 0x67, 0x66, 0x6f, 0x6a, 0x34, 0xa7, 0xbb, 0xa5, 0x6f, 0xe2, 0x2d, 0xbe, | |
4021 | 0x2e, 0xeb, 0x77, 0x02, 0x66, 0xd0, 0x33, 0x15, 0x5f, 0xc1, 0x2d, 0x7d, 0x4b, 0xc2, 0xc7, 0x20, | |
4022 | 0x59, 0xbf, 0x6b, 0xb8, 0xbd, 0xfb, 0x9e, 0xa9, 0xf8, 0x0a, 0x6e, 0xe9, 0x33, 0x09, 0xdf, 0x8c, | |
4023 | 0x64, 0xfd, 0x5e, 0xd0, 0x10, 0x7a, 0x26, 0xe5, 0x55, 0xdc, 0xd2, 0xb7, 0xa9, 0xa5, 0x62, 0x5d, | |
4024 | 0x5e, 0x5f, 0x35, 0xdc, 0x01, 0x08, 0x9e, 0x49, 0x79, 0x15, 0xb7, 0xf4, 0x1d, 0x6a, 0x4a, 0xa9, | |
4025 | 0xcb, 0xeb, 0x6b, 0x21, 0x53, 0x35, 0xbd, 0xfe, 0x08, 0x0a, 0x67, 0x75, 0x4b, 0xdf, 0x15, 0xdf, | |
4026 | 0xe2, 0xf2, 0x1d, 0xc1, 0x37, 0xed, 0x0a, 0x7b, 0x76, 0xaa, 0x63, 0xfa, 0x1e, 0xe6, 0x38, 0xf5, | |
4027 | 0xb9, 0x27, 0xec, 0xbd, 0x8a, 0x11, 0xfc, 0xed, 0x63, 0x6e, 0x6a, 0xdb, 0x3f, 0x1f, 0xa7, 0xfa, | |
4028 | 0xa8, 0xef, 0x4b, 0xf8, 0xa8, 0x55, 0xe0, 0x06, 0x11, 0xef, 0x9d, 0x14, 0xe6, 0xb0, 0x3e, 0xf4, | |
4029 | 0x67, 0x79, 0x9a, 0xb7, 0xfa, 0x81, 0xf4, 0x2a, 0xee, 0xaa, 0x9e, 0x68, 0xee, 0x34, 0xbc, 0xc5, | |
4030 | 0xc0, 0x9a, 0xb7, 0x21, 0x79, 0xac, 0xad, 0xae, 0x89, 0x57, 0x32, 0xf1, 0x2d, 0x97, 0x39, 0xa9, | |
4031 | 0xbc, 0x56, 0x14, 0x9e, 0xbb, 0x87, 0x23, 0xe7, 0xc4, 0x40, 0x16, 0x67, 0x6b, 0x91, 0xec, 0x4f, | |
4032 | 0x62, 0xd8, 0x1a, 0x67, 0x57, 0x23, 0xd9, 0x9f, 0xc6, 0xb0, 0xab, 0x9c, 0xad, 0x47, 0xb2, 0xbf, | |
4033 | 0x1a, 0xc3, 0xd6, 0x39, 0x7b, 0x3d, 0x92, 0xfd, 0xb5, 0x18, 0xf6, 0x3a, 0x67, 0xd7, 0x22, 0xd9, | |
4034 | 0x5f, 0x8f, 0x61, 0xd7, 0x38, 0xfb, 0x4e, 0x24, 0xfb, 0x1b, 0x31, 0xec, 0x3b, 0x9c, 0x7d, 0x37, | |
4035 | 0x92, 0xfd, 0xcd, 0x18, 0xf6, 0x5d, 0xce, 0xbe, 0x17, 0xc9, 0xfe, 0x56, 0x0c, 0xfb, 0x1e, 0x63, | |
4036 | 0xaf, 0xad, 0x46, 0xb2, 0x3f, 0x8b, 0x66, 0xaf, 0xad, 0x72, 0x76, 0xb4, 0xd6, 0xbe, 0x1d, 0xc3, | |
4037 | 0xe6, 0x5a, 0x5b, 0x8b, 0xd6, 0xda, 0x77, 0x62, 0xd8, 0x5c, 0x6b, 0x6b, 0xd1, 0x5a, 0xfb, 0x6e, | |
4038 | 0x0c, 0x9b, 0x6b, 0x6d, 0x2d, 0x5a, 0x6b, 0xdf, 0x8b, 0x61, 0x73, 0xad, 0xad, 0x45, 0x6b, 0xed, | |
4039 | 0xfb, 0x31, 0x6c, 0xae, 0xb5, 0xb5, 0x68, 0xad, 0xfd, 0x20, 0x86, 0xcd, 0xb5, 0xb6, 0x16, 0xad, | |
4040 | 0xb5, 0x3f, 0x8a, 0x61, 0x73, 0xad, 0xad, 0x45, 0x6b, 0xed, 0x8f, 0x63, 0xd8, 0x5c, 0x6b, 0x6b, | |
4041 | 0xd1, 0x5a, 0xfb, 0x93, 0x18, 0x36, 0xd7, 0x9a, 0x16, 0xad, 0xb5, 0x3f, 0x8d, 0x66, 0x6b, 0x5c, | |
4042 | 0x6b, 0x5a, 0xb4, 0xd6, 0xfe, 0x2c, 0x86, 0xcd, 0xb5, 0xa6, 0x45, 0x6b, 0xed, 0xcf, 0x63, 0xd8, | |
4043 | 0x5c, 0x6b, 0x5a, 0xb4, 0xd6, 0x7e, 0x18, 0xc3, 0xe6, 0x5a, 0xd3, 0xa2, 0xb5, 0xf6, 0x17, 0x31, | |
4044 | 0x6c, 0xae, 0x35, 0x2d, 0x5a, 0x6b, 0x7f, 0x19, 0xc3, 0xe6, 0x5a, 0xd3, 0xa2, 0xb5, 0xf6, 0x57, | |
4045 | 0x31, 0x6c, 0xae, 0x35, 0x2d, 0x5a, 0x6b, 0x7f, 0x1d, 0xc3, 0xe6, 0x5a, 0xd3, 0xa2, 0xb5, 0xf6, | |
4046 | 0x37, 0x31, 0x6c, 0xae, 0x35, 0x2d, 0x5a, 0x6b, 0x7f, 0x1b, 0xc3, 0xe6, 0x5a, 0xab, 0x46, 0x6b, | |
4047 | 0xed, 0xef, 0xa2, 0xd9, 0x55, 0xae, 0xb5, 0x6a, 0xb4, 0xd6, 0xfe, 0x3e, 0x86, 0xcd, 0xb5, 0x56, | |
4048 | 0x8d, 0xd6, 0xda, 0x3f, 0xc4, 0xb0, 0xb9, 0xd6, 0xaa, 0xd1, 0x5a, 0xfb, 0xc7, 0x18, 0x36, 0xd7, | |
4049 | 0x5a, 0x35, 0x5a, 0x6b, 0x3f, 0x8a, 0x61, 0x73, 0xad, 0x55, 0xa3, 0xb5, 0xf6, 0x4f, 0x31, 0x6c, | |
4050 | 0xae, 0xb5, 0x6a, 0xb4, 0xd6, 0xfe, 0x39, 0x86, 0xcd, 0xb5, 0x56, 0x8d, 0xd6, 0xda, 0xbf, 0xc4, | |
4051 | 0xb0, 0xb9, 0xd6, 0xaa, 0xd1, 0x5a, 0xfb, 0xd7, 0x18, 0x36, 0xd7, 0x5a, 0x35, 0x5a, 0x6b, 0xff, | |
4052 | 0x16, 0xc3, 0xe6, 0x5a, 0xd3, 0xa3, 0xb5, 0xf6, 0xef, 0xd1, 0x6c, 0x9d, 0x6b, 0x4d, 0x8f, 0xd6, | |
4053 | 0xda, 0x7f, 0xc4, 0xb0, 0xb9, 0xd6, 0xf4, 0x68, 0xad, 0xfd, 0x67, 0x0c, 0x9b, 0x6b, 0x4d, 0x8f, | |
4054 | 0xd6, 0xda, 0x7f, 0xc5, 0xb0, 0xb9, 0xd6, 0xf4, 0x68, 0xad, 0xfd, 0x77, 0x0c, 0x9b, 0x6b, 0x4d, | |
4055 | 0x8f, 0xd6, 0xda, 0xff, 0xc4, 0xb0, 0xb9, 0xd6, 0xf4, 0x68, 0xad, 0xfd, 0x38, 0x86, 0xcd, 0xb5, | |
4056 | 0xa6, 0x47, 0x6b, 0xed, 0x27, 0x31, 0x6c, 0xae, 0x35, 0x3d, 0x5a, 0x6b, 0xff, 0x1b, 0xc3, 0xe6, | |
4057 | 0x5a, 0xd3, 0xa3, 0xb5, 0xf6, 0x7f, 0x31, 0x6c, 0xae, 0xb5, 0xf5, 0x68, 0xad, 0xfd, 0x7f, 0x34, | |
4058 | 0x7b, 0x7d, 0xf5, 0xa7, 0x01, 0x00, 0x00, 0xff, 0xff, 0x40, 0x32, 0xb7, 0xac, 0x57, 0x39, 0x00, | |
4059 | 0x00, | |
4060 | } | |
3874 | 0xaf, 0x20, 0x00, 0xc7, 0x9c, 0x38, 0x2b, 0xa3, 0xb1, 0xed, 0xd8, 0x24, 0x4b, 0x7f, 0x77, 0x3b, | |
3875 | 0x4e, 0xa7, 0x7c, 0x1d, 0xd2, 0x1b, 0x76, 0xc3, 0x3a, 0x1a, 0x92, 0xab, 0x90, 0x38, 0xb4, 0xed, | |
3876 | 0x92, 0xa4, 0xca, 0x95, 0x79, 0x6d, 0x6e, 0xc5, 0x45, 0xac, 0x34, 0x5b, 0x2d, 0x83, 0xb6, 0x94, | |
3877 | 0xef, 0x40, 0x7e, 0xc3, 0xde, 0x33, 0x27, 0x4e, 0xb3, 0x6f, 0x0e, 0xba, 0x64, 0x11, 0x52, 0x4f, | |
3878 | 0x3b, 0xfb, 0xe6, 0x00, 0x19, 0x39, 0x83, 0x15, 0x08, 0x81, 0xe4, 0xde, 0xc9, 0xc8, 0x2c, 0xc9, | |
3879 | 0x58, 0x89, 0xbf, 0xcb, 0xbf, 0x72, 0x85, 0x76, 0x42, 0x99, 0xe4, 0x3a, 0x24, 0xbf, 0xdc, 0xb7, | |
3880 | 0xba, 0xbc, 0x97, 0xd7, 0xfc, 0x5e, 0x58, 0xfb, 0xca, 0x97, 0x37, 0xb7, 0x1f, 0x1b, 0x08, 0xa1, | |
3881 | 0xf6, 0xf7, 0x3a, 0xfb, 0x03, 0x6a, 0x4a, 0xa2, 0xf6, 0xb1, 0x40, 0x6b, 0x77, 0x3a, 0xe3, 0xce, | |
3882 | 0xb0, 0x94, 0x50, 0xa5, 0x4a, 0xca, 0x60, 0x05, 0x72, 0x1f, 0xe6, 0x0c, 0xf3, 0xc5, 0x51, 0x7f, | |
3883 | 0x6c, 0x76, 0x71, 0x70, 0xa5, 0xa4, 0x2a, 0x57, 0xf2, 0xd3, 0xf6, 0xb1, 0xd1, 0x08, 0x62, 0x19, | |
3884 | 0x79, 0x64, 0x76, 0x1c, 0x97, 0x9c, 0x52, 0x13, 0xb1, 0x64, 0x01, 0x4b, 0xc9, 0xad, 0x91, 0xd3, | |
3885 | 0xb7, 0xad, 0xce, 0x80, 0x91, 0xd3, 0xaa, 0x14, 0x43, 0x0e, 0x60, 0xc9, 0x9b, 0x50, 0x6c, 0xb6, | |
3886 | 0x1f, 0xda, 0xf6, 0xa0, 0x3d, 0xe6, 0x23, 0x2a, 0x81, 0x2a, 0x57, 0xb2, 0xc6, 0x5c, 0x93, 0xd6, | |
3887 | 0xba, 0xc3, 0x24, 0x15, 0x50, 0x9a, 0xed, 0x4d, 0xcb, 0xa9, 0x6a, 0x3e, 0x30, 0xaf, 0xca, 0x95, | |
3888 | 0x94, 0x31, 0xdf, 0xc4, 0xea, 0x29, 0x64, 0x4d, 0xf7, 0x91, 0x05, 0x55, 0xae, 0x24, 0x18, 0xb2, | |
3889 | 0xa6, 0x7b, 0xc8, 0x5b, 0x40, 0x9a, 0xed, 0x66, 0xff, 0xd8, 0xec, 0x8a, 0x56, 0xe7, 0x54, 0xb9, | |
3890 | 0x92, 0x31, 0x94, 0x26, 0x6f, 0x98, 0x81, 0x16, 0x2d, 0xcf, 0xab, 0x72, 0x25, 0xed, 0xa2, 0x05, | |
3891 | 0xdb, 0x37, 0x60, 0xa1, 0xd9, 0x7e, 0xb7, 0x1f, 0x1c, 0x70, 0x51, 0x95, 0x2b, 0x73, 0x46, 0xb1, | |
3892 | 0xc9, 0xea, 0xa7, 0xb1, 0xa2, 0x61, 0x45, 0x95, 0x2b, 0x49, 0x8e, 0x15, 0xec, 0xe2, 0xec, 0x9a, | |
3893 | 0x03, 0xbb, 0xe3, 0xf8, 0xd0, 0x05, 0x55, 0xae, 0xc8, 0xc6, 0x7c, 0x13, 0xab, 0x83, 0x56, 0x1f, | |
3894 | 0xdb, 0x47, 0xfb, 0x03, 0xd3, 0x87, 0x12, 0x55, 0xae, 0x48, 0x46, 0xb1, 0xc9, 0xea, 0x83, 0xd8, | |
3895 | 0x5d, 0x67, 0xdc, 0xb7, 0x7a, 0x3e, 0xf6, 0x3c, 0xea, 0xb7, 0xd8, 0x64, 0xf5, 0xc1, 0x11, 0x3c, | |
3896 | 0x3c, 0x71, 0xcc, 0x89, 0x0f, 0x35, 0x55, 0xb9, 0x52, 0x30, 0xe6, 0x9b, 0x58, 0x1d, 0xb2, 0x1a, | |
3897 | 0x5a, 0x83, 0x43, 0x55, 0xae, 0x2c, 0x50, 0xab, 0x33, 0xd6, 0x60, 0x37, 0xb4, 0x06, 0x3d, 0x55, | |
3898 | 0xae, 0x10, 0x8e, 0x15, 0xd6, 0x40, 0xd4, 0x0c, 0x13, 0x62, 0x69, 0x51, 0x4d, 0x08, 0x9a, 0x61, | |
3899 | 0x95, 0x41, 0xcd, 0x70, 0xe0, 0x6b, 0x6a, 0x42, 0xd4, 0x4c, 0x08, 0x89, 0x9d, 0x73, 0xe4, 0x05, | |
3900 | 0x35, 0x21, 0x6a, 0x86, 0x23, 0x43, 0x9a, 0xe1, 0xd8, 0xd7, 0xd5, 0x44, 0x50, 0x33, 0x53, 0x68, | |
3901 | 0xd1, 0x72, 0x49, 0x4d, 0x04, 0x35, 0xc3, 0xd1, 0x41, 0xcd, 0x70, 0xf0, 0x45, 0x35, 0x11, 0xd0, | |
3902 | 0x4c, 0x18, 0x2b, 0x1a, 0x5e, 0x52, 0x13, 0x01, 0xcd, 0x88, 0xb3, 0x73, 0x35, 0xc3, 0xa1, 0xcb, | |
3903 | 0x6a, 0x42, 0xd4, 0x8c, 0x68, 0xd5, 0xd3, 0x0c, 0x87, 0x5e, 0x52, 0x13, 0x01, 0xcd, 0x88, 0x58, | |
3904 | 0x4f, 0x33, 0x1c, 0x7b, 0x59, 0x4d, 0x04, 0x34, 0xc3, 0xb1, 0xd7, 0x45, 0xcd, 0x70, 0xe8, 0xc7, | |
3905 | 0x92, 0x9a, 0x10, 0x45, 0xc3, 0xa1, 0x37, 0x03, 0xa2, 0xe1, 0xd8, 0x4f, 0x28, 0x56, 0x54, 0x4d, | |
3906 | 0x18, 0x2c, 0xae, 0xc2, 0xa7, 0x14, 0x2c, 0xca, 0x86, 0x83, 0x7d, 0xd9, 0xd8, 0xdc, 0x05, 0x95, | |
3907 | 0xae, 0xa8, 0x92, 0x27, 0x1b, 0xd7, 0x2f, 0x89, 0xb2, 0xf1, 0x80, 0x57, 0xd1, 0xd5, 0x72, 0xd9, | |
3908 | 0x4c, 0x21, 0x6b, 0xba, 0x8f, 0x54, 0x55, 0xc9, 0x97, 0x8d, 0x87, 0x0c, 0xc8, 0xc6, 0xc3, 0x5e, | |
3909 | 0x53, 0x25, 0x51, 0x36, 0x33, 0xd0, 0xa2, 0xe5, 0xb2, 0x2a, 0x89, 0xb2, 0xf1, 0xd0, 0xa2, 0x6c, | |
3910 | 0x3c, 0xf0, 0x17, 0x54, 0x49, 0x90, 0xcd, 0x34, 0x56, 0x34, 0xfc, 0x45, 0x55, 0x12, 0x64, 0x13, | |
3911 | 0x9c, 0x1d, 0x93, 0x8d, 0x07, 0x7d, 0x43, 0x95, 0x7c, 0xd9, 0x04, 0xad, 0x72, 0xd9, 0x78, 0xd0, | |
3912 | 0x37, 0x55, 0x49, 0x90, 0x4d, 0x10, 0xcb, 0x65, 0xe3, 0x61, 0xdf, 0xc2, 0xf8, 0xe6, 0xca, 0xc6, | |
3913 | 0xc3, 0x0a, 0xb2, 0xf1, 0xa0, 0xbf, 0x43, 0x63, 0xa1, 0x27, 0x1b, 0x0f, 0x2a, 0xca, 0xc6, 0xc3, | |
3914 | 0xfe, 0x2e, 0xc5, 0xfa, 0xb2, 0x99, 0x06, 0x8b, 0xab, 0xf0, 0x7b, 0x14, 0xec, 0xcb, 0xc6, 0x03, | |
3915 | 0xaf, 0xe0, 0x20, 0xa8, 0x6c, 0xba, 0xe6, 0x61, 0xe7, 0x68, 0x40, 0x25, 0x56, 0xa1, 0xba, 0xa9, | |
3916 | 0x27, 0x9d, 0xf1, 0x91, 0x49, 0x47, 0x62, 0xdb, 0x83, 0xc7, 0x6e, 0x1b, 0x59, 0xa1, 0xc6, 0x99, | |
3917 | 0x7c, 0x7c, 0xc2, 0x75, 0xaa, 0x9f, 0xba, 0x5c, 0xd5, 0x8c, 0x22, 0xd3, 0xd0, 0x34, 0xbe, 0xa6, | |
3918 | 0x0b, 0xf8, 0x1b, 0x54, 0x45, 0x75, 0xb9, 0xa6, 0x33, 0x7c, 0x4d, 0xf7, 0xf1, 0x55, 0x38, 0xef, | |
3919 | 0x4b, 0xc9, 0x67, 0xdc, 0xa4, 0x5a, 0xaa, 0x27, 0xaa, 0xda, 0xaa, 0xb1, 0xe0, 0x0a, 0x6a, 0x16, | |
3920 | 0x29, 0xd0, 0xcd, 0x2d, 0x2a, 0xa9, 0x7a, 0xa2, 0xa6, 0x7b, 0x24, 0xb1, 0x27, 0x8d, 0xca, 0x90, | |
3921 | 0x0b, 0xcb, 0xe7, 0xdc, 0xa6, 0xca, 0xaa, 0x27, 0xab, 0xda, 0xea, 0xaa, 0xa1, 0x70, 0x7d, 0xcd, | |
3922 | 0xe0, 0x04, 0xfa, 0x59, 0xa1, 0x0a, 0xab, 0x27, 0x6b, 0xba, 0xc7, 0x09, 0xf6, 0xb3, 0xe0, 0x0a, | |
3923 | 0xcd, 0xa7, 0x7c, 0x89, 0x2a, 0xad, 0x9e, 0xae, 0xae, 0xe9, 0x6b, 0xeb, 0xf7, 0x8c, 0x22, 0x53, | |
3924 | 0x9c, 0xcf, 0xd1, 0x69, 0x3f, 0x5c, 0x72, 0x3e, 0x69, 0x95, 0x6a, 0xae, 0x9e, 0xd6, 0xee, 0xac, | |
3925 | 0xdd, 0xd5, 0xee, 0x1a, 0x0a, 0xd7, 0x9e, 0xcf, 0x7a, 0x87, 0xb2, 0xb8, 0xf8, 0x7c, 0xd6, 0x1a, | |
3926 | 0x55, 0x5f, 0x5d, 0x79, 0x66, 0x0e, 0x06, 0xf6, 0x2d, 0xb5, 0xfc, 0xd2, 0x1e, 0x0f, 0xba, 0xd7, | |
3927 | 0xca, 0x60, 0x28, 0x5c, 0x8f, 0x62, 0xaf, 0x0b, 0xae, 0x20, 0x7d, 0xfa, 0xaf, 0xd1, 0x7b, 0x58, | |
3928 | 0xa1, 0x9e, 0x79, 0xd8, 0xef, 0x59, 0xf6, 0xc4, 0x34, 0x8a, 0x4c, 0x9a, 0xa1, 0x35, 0xd9, 0x0d, | |
3929 | 0xaf, 0xe3, 0xaf, 0x53, 0xda, 0x42, 0x3d, 0x71, 0xbb, 0xaa, 0xd1, 0x9e, 0x66, 0xad, 0xe3, 0x6e, | |
3930 | 0x78, 0x1d, 0x7f, 0x83, 0x72, 0x48, 0x3d, 0x71, 0xbb, 0xa6, 0x73, 0x8e, 0xb8, 0x8e, 0x77, 0xe0, | |
3931 | 0x42, 0x28, 0x2e, 0xb6, 0x47, 0x9d, 0x83, 0xe7, 0x66, 0xb7, 0xa4, 0xd1, 0xf0, 0xf8, 0x50, 0x56, | |
3932 | 0x24, 0xe3, 0x7c, 0x20, 0x44, 0xee, 0x60, 0x33, 0xb9, 0x07, 0xaf, 0x87, 0x03, 0xa5, 0xcb, 0xac, | |
3933 | 0xd2, 0x78, 0x89, 0xcc, 0xc5, 0x60, 0xcc, 0x0c, 0x51, 0x05, 0x07, 0xec, 0x52, 0x75, 0x1a, 0x40, | |
3934 | 0x7d, 0xaa, 0xef, 0x89, 0x39, 0xf5, 0x67, 0xe0, 0xe2, 0x74, 0x28, 0x75, 0xc9, 0xeb, 0x34, 0xa2, | |
3935 | 0x22, 0xf9, 0x42, 0x38, 0xaa, 0x4e, 0xd1, 0x67, 0xf4, 0x5d, 0xa3, 0x21, 0x56, 0xa4, 0x4f, 0xf5, | |
3936 | 0x7e, 0x1f, 0x4a, 0x53, 0xc1, 0xd6, 0x65, 0xdf, 0xa1, 0x31, 0x17, 0xd9, 0xaf, 0x85, 0xe2, 0x6e, | |
3937 | 0x98, 0x3c, 0xa3, 0xeb, 0xbb, 0x34, 0x08, 0x0b, 0xe4, 0xa9, 0x9e, 0x71, 0xc9, 0x82, 0xe1, 0xd8, | |
3938 | 0xe5, 0xde, 0xa3, 0x51, 0x99, 0x2f, 0x59, 0x20, 0x32, 0x8b, 0xfd, 0x86, 0xe2, 0xb3, 0xcb, 0xad, | |
3939 | 0xd3, 0x30, 0xcd, 0xfb, 0x0d, 0x86, 0x6a, 0x4e, 0x7e, 0x9b, 0x92, 0x77, 0x67, 0xcf, 0xf8, 0xc7, | |
3940 | 0x09, 0x1a, 0x60, 0x39, 0x7b, 0x77, 0xd6, 0x94, 0x3d, 0xf6, 0x8c, 0x29, 0xff, 0x84, 0xb2, 0x89, | |
3941 | 0xc0, 0x9e, 0x9a, 0xf3, 0x63, 0x98, 0x73, 0x6f, 0x75, 0xbd, 0xb1, 0x7d, 0x34, 0x2a, 0x35, 0x55, | |
3942 | 0xb9, 0x02, 0xda, 0x95, 0xa9, 0xec, 0xc7, 0xbd, 0xe4, 0x6d, 0x50, 0x94, 0x11, 0x24, 0x31, 0x2b, | |
3943 | 0xcc, 0x2e, 0xb3, 0xb2, 0xa3, 0x26, 0x22, 0xac, 0x30, 0x94, 0x67, 0x45, 0x20, 0x51, 0x2b, 0xae, | |
3944 | 0xd3, 0x67, 0x56, 0x3e, 0x50, 0xa5, 0x99, 0x56, 0xdc, 0x10, 0xc0, 0xad, 0x04, 0x48, 0x4b, 0xeb, | |
3945 | 0x7e, 0xbe, 0x85, 0xed, 0xe4, 0x8b, 0xe1, 0x04, 0x6c, 0x03, 0xef, 0xcf, 0xc1, 0x4a, 0x46, 0x13, | |
3946 | 0x06, 0x37, 0x4d, 0xfb, 0xd9, 0x08, 0x5a, 0x60, 0x34, 0xd3, 0xb4, 0x9f, 0x9b, 0x41, 0x2b, 0xff, | |
3947 | 0xa6, 0x04, 0x49, 0x9a, 0x4f, 0x92, 0x2c, 0x24, 0xdf, 0x6b, 0x6d, 0x3e, 0x56, 0xce, 0xd1, 0x5f, | |
3948 | 0x0f, 0x5b, 0xad, 0xa7, 0x8a, 0x44, 0x72, 0x90, 0x7a, 0xf8, 0x95, 0xbd, 0xc6, 0xae, 0x22, 0x93, | |
3949 | 0x22, 0xe4, 0x9b, 0x9b, 0xdb, 0x1b, 0x0d, 0x63, 0xc7, 0xd8, 0xdc, 0xde, 0x53, 0x12, 0xb4, 0xad, | |
3950 | 0xf9, 0xb4, 0xf5, 0x60, 0x4f, 0x49, 0x92, 0x0c, 0x24, 0x68, 0x5d, 0x8a, 0x00, 0xa4, 0x77, 0xf7, | |
3951 | 0x8c, 0xcd, 0xed, 0x0d, 0x25, 0x4d, 0xad, 0xec, 0x6d, 0x6e, 0x35, 0x94, 0x0c, 0x45, 0xee, 0xbd, | |
3952 | 0xbb, 0xf3, 0xb4, 0xa1, 0x64, 0xe9, 0xcf, 0x07, 0x86, 0xf1, 0xe0, 0x2b, 0x4a, 0x8e, 0x92, 0xb6, | |
3953 | 0x1e, 0xec, 0x28, 0x80, 0xcd, 0x0f, 0x1e, 0x3e, 0x6d, 0x28, 0x79, 0x52, 0x80, 0x6c, 0xf3, 0xdd, | |
3954 | 0xed, 0x47, 0x7b, 0x9b, 0xad, 0x6d, 0xa5, 0x50, 0x3e, 0x81, 0x12, 0x5b, 0xe6, 0xc0, 0x2a, 0xb2, | |
3955 | 0xa4, 0xf0, 0x1d, 0x48, 0xb1, 0x9d, 0x91, 0x50, 0x25, 0x95, 0xf0, 0xce, 0x4c, 0x53, 0x56, 0xd8, | |
3956 | 0x1e, 0x31, 0xda, 0xd2, 0x65, 0x48, 0xb1, 0x55, 0x5a, 0x84, 0x14, 0x5b, 0x1d, 0x19, 0x53, 0x45, | |
3957 | 0x56, 0x28, 0xff, 0x96, 0x0c, 0xb0, 0x61, 0xef, 0x3e, 0xef, 0x8f, 0x30, 0x21, 0xbf, 0x0c, 0x30, | |
3958 | 0x79, 0xde, 0x1f, 0xb5, 0x51, 0xf5, 0x3c, 0xa9, 0xcc, 0xd1, 0x1a, 0xf4, 0x77, 0xe4, 0x1a, 0x14, | |
3959 | 0xb0, 0xf9, 0x90, 0x79, 0x21, 0xcc, 0x25, 0x33, 0x46, 0x9e, 0xd6, 0x71, 0xc7, 0x14, 0x84, 0xd4, | |
3960 | 0x74, 0x4c, 0x21, 0xd3, 0x02, 0xa4, 0xa6, 0x93, 0xab, 0x80, 0xc5, 0xf6, 0x04, 0x23, 0x0a, 0xa6, | |
3961 | 0x8d, 0x39, 0x03, 0xfb, 0x65, 0x31, 0x86, 0xbc, 0x0d, 0xd8, 0x27, 0x9b, 0x77, 0x71, 0xfa, 0x74, | |
3962 | 0xb8, 0xc3, 0x5d, 0xa1, 0x3f, 0xd8, 0x6c, 0x7d, 0xc2, 0x52, 0x0b, 0x72, 0x5e, 0x3d, 0xed, 0x0b, | |
3963 | 0x6b, 0xf9, 0x8c, 0x14, 0x9c, 0x11, 0x60, 0x95, 0x37, 0x25, 0x06, 0xe0, 0xa3, 0x59, 0xc0, 0xd1, | |
3964 | 0x30, 0x12, 0x1b, 0x4e, 0xf9, 0x32, 0xcc, 0x6d, 0xdb, 0x16, 0x3b, 0xbd, 0xb8, 0x4a, 0x05, 0x90, | |
3965 | 0x3a, 0x25, 0x09, 0xb3, 0x27, 0xa9, 0x53, 0xbe, 0x02, 0x20, 0xb4, 0x29, 0x20, 0xed, 0xb3, 0x36, | |
3966 | 0xf4, 0x01, 0xd2, 0x7e, 0xf9, 0x26, 0xa4, 0xb7, 0x3a, 0xc7, 0x7b, 0x9d, 0x1e, 0xb9, 0x06, 0x30, | |
3967 | 0xe8, 0x4c, 0x9c, 0xf6, 0x21, 0xee, 0xc3, 0xe7, 0x9f, 0x7f, 0xfe, 0xb9, 0x84, 0x97, 0xbd, 0x1c, | |
3968 | 0xad, 0x65, 0xfb, 0xf1, 0x02, 0xa0, 0x35, 0xe8, 0x6e, 0x99, 0x93, 0x49, 0xa7, 0x67, 0x92, 0x2a, | |
3969 | 0xa4, 0x2d, 0x73, 0x42, 0xa3, 0x9d, 0x84, 0xef, 0x08, 0xcb, 0xfe, 0x2a, 0xf8, 0xa8, 0x95, 0x6d, | |
3970 | 0x84, 0x18, 0x1c, 0x4a, 0x14, 0x48, 0x58, 0x47, 0x43, 0x7c, 0x27, 0x49, 0x19, 0xf4, 0xe7, 0xd2, | |
3971 | 0x25, 0x48, 0x33, 0x0c, 0x21, 0x90, 0xb4, 0x3a, 0x43, 0xb3, 0xc4, 0xfa, 0xc5, 0xdf, 0xe5, 0x5f, | |
3972 | 0x95, 0x00, 0xb6, 0xcd, 0x97, 0x67, 0xe8, 0xd3, 0x47, 0xc5, 0xf4, 0x99, 0x60, 0x7d, 0xde, 0x8f, | |
3973 | 0xeb, 0x93, 0xea, 0xec, 0xd0, 0xb6, 0xbb, 0x6d, 0xb6, 0xc5, 0xec, 0x49, 0x27, 0x47, 0x6b, 0x70, | |
3974 | 0xd7, 0xca, 0x1f, 0x40, 0x61, 0xd3, 0xb2, 0xcc, 0xb1, 0x3b, 0x26, 0x02, 0xc9, 0x67, 0xf6, 0xc4, | |
3975 | 0xe1, 0x6f, 0x4b, 0xf8, 0x9b, 0x94, 0x20, 0x39, 0xb2, 0xc7, 0x0e, 0x9b, 0x67, 0x3d, 0xa9, 0xaf, | |
3976 | 0xae, 0xae, 0x1a, 0x58, 0x43, 0x2e, 0x41, 0xee, 0xc0, 0xb6, 0x2c, 0xf3, 0x80, 0x4e, 0x22, 0x81, | |
3977 | 0x69, 0x8d, 0x5f, 0x51, 0xfe, 0x65, 0x09, 0x0a, 0x2d, 0xe7, 0x99, 0x6f, 0x5c, 0x81, 0xc4, 0x73, | |
3978 | 0xf3, 0x04, 0x87, 0x97, 0x30, 0xe8, 0x4f, 0x7a, 0x54, 0x7e, 0xbe, 0x33, 0x38, 0x62, 0x6f, 0x4d, | |
3979 | 0x05, 0x83, 0x15, 0xc8, 0x05, 0x48, 0xbf, 0x34, 0xfb, 0xbd, 0x67, 0x0e, 0xda, 0x94, 0x0d, 0x5e, | |
3980 | 0x22, 0xb7, 0x20, 0xd5, 0xa7, 0x83, 0x2d, 0x25, 0x71, 0xbd, 0x2e, 0xf8, 0xeb, 0x25, 0xce, 0xc1, | |
3981 | 0x60, 0xa0, 0x1b, 0xd9, 0x6c, 0x57, 0xf9, 0xe8, 0xa3, 0x8f, 0x3e, 0x92, 0xcb, 0x87, 0xb0, 0xe8, | |
3982 | 0x1e, 0xde, 0xc0, 0x64, 0xb7, 0xa1, 0x34, 0x30, 0xed, 0xf6, 0x61, 0xdf, 0xea, 0x0c, 0x06, 0x27, | |
3983 | 0xed, 0x97, 0xb6, 0xd5, 0xee, 0x58, 0x6d, 0x7b, 0x72, 0xd0, 0x19, 0xe3, 0x02, 0x44, 0x77, 0xb1, | |
3984 | 0x38, 0x30, 0xed, 0x26, 0xa3, 0xbd, 0x6f, 0x5b, 0x0f, 0xac, 0x16, 0xe5, 0x94, 0xff, 0x20, 0x09, | |
3985 | 0xb9, 0xad, 0x13, 0xd7, 0xfa, 0x22, 0xa4, 0x0e, 0xec, 0x23, 0x8b, 0xad, 0x65, 0xca, 0x60, 0x05, | |
3986 | 0x6f, 0x8f, 0x64, 0x61, 0x8f, 0x16, 0x21, 0xf5, 0xe2, 0xc8, 0x76, 0x4c, 0x9c, 0x6e, 0xce, 0x60, | |
3987 | 0x05, 0xba, 0x5a, 0x23, 0xd3, 0x29, 0x25, 0x31, 0xb9, 0xa5, 0x3f, 0xfd, 0xf9, 0xa7, 0xce, 0x30, | |
3988 | 0x7f, 0xb2, 0x02, 0x69, 0x9b, 0xae, 0xfe, 0xa4, 0x94, 0xc6, 0x77, 0x35, 0x01, 0x2e, 0xee, 0x8a, | |
3989 | 0xc1, 0x51, 0x64, 0x13, 0x16, 0x5e, 0x9a, 0xed, 0xe1, 0xd1, 0xc4, 0x69, 0xf7, 0xec, 0x76, 0xd7, | |
3990 | 0x34, 0x47, 0xe6, 0xb8, 0x34, 0x87, 0x3d, 0x09, 0x3e, 0x61, 0xd6, 0x42, 0x1a, 0xf3, 0x2f, 0xcd, | |
3991 | 0xad, 0xa3, 0x89, 0xb3, 0x61, 0x3f, 0x46, 0x16, 0xa9, 0x42, 0x6e, 0x6c, 0x52, 0x4f, 0x40, 0x07, | |
3992 | 0x5b, 0x08, 0xf7, 0x1e, 0xa0, 0x66, 0xc7, 0xe6, 0x08, 0x2b, 0xc8, 0x3a, 0x64, 0xf7, 0xfb, 0xcf, | |
3993 | 0xcd, 0xc9, 0x33, 0xb3, 0x5b, 0xca, 0xa8, 0x52, 0x65, 0x5e, 0xbb, 0xe8, 0x73, 0xbc, 0x65, 0x5d, | |
3994 | 0x79, 0x64, 0x0f, 0xec, 0xb1, 0xe1, 0x41, 0xc9, 0x7d, 0xc8, 0x4d, 0xec, 0xa1, 0xc9, 0xf4, 0x9d, | |
3995 | 0xc5, 0xa0, 0x7a, 0x79, 0x16, 0x6f, 0xd7, 0x1e, 0x9a, 0xae, 0x07, 0x73, 0xf1, 0x64, 0x99, 0x0d, | |
3996 | 0x74, 0x9f, 0x5e, 0x9d, 0x4b, 0x80, 0x4f, 0x03, 0x74, 0x40, 0x78, 0x95, 0x26, 0x4b, 0x74, 0x40, | |
3997 | 0xbd, 0x43, 0x7a, 0x23, 0x2a, 0xe5, 0x31, 0xaf, 0xf4, 0xca, 0x4b, 0xb7, 0x20, 0xe7, 0x19, 0xf4, | |
3998 | 0x5d, 0x1f, 0x73, 0x37, 0x39, 0xf4, 0x07, 0xcc, 0xf5, 0x31, 0x5f, 0xf3, 0x06, 0xa4, 0x70, 0xd8, | |
3999 | 0x34, 0x42, 0x19, 0x0d, 0x1a, 0x10, 0x73, 0x90, 0xda, 0x30, 0x1a, 0x8d, 0x6d, 0x45, 0xc2, 0xd8, | |
4000 | 0xf8, 0xf4, 0xdd, 0x86, 0x22, 0x0b, 0x8a, 0xfd, 0x6d, 0x09, 0x12, 0x8d, 0x63, 0x54, 0x0b, 0x9d, | |
4001 | 0x86, 0x7b, 0xa2, 0xe9, 0x6f, 0xad, 0x06, 0xc9, 0xa1, 0x3d, 0x36, 0xc9, 0xf9, 0x19, 0xb3, 0x2c, | |
4002 | 0xf5, 0x70, 0xbf, 0x84, 0x57, 0xe4, 0xc6, 0xb1, 0x63, 0x20, 0x5e, 0x7b, 0x0b, 0x92, 0x8e, 0x79, | |
4003 | 0xec, 0xcc, 0xe6, 0x3d, 0x63, 0x1d, 0x50, 0x80, 0x76, 0x13, 0xd2, 0xd6, 0xd1, 0x70, 0xdf, 0x1c, | |
4004 | 0xcf, 0x86, 0xf6, 0x71, 0x7a, 0x1c, 0x52, 0x7e, 0x0f, 0x94, 0x47, 0xf6, 0x70, 0x34, 0x30, 0x8f, | |
4005 | 0x1b, 0xc7, 0x8e, 0x69, 0x4d, 0xfa, 0xb6, 0x45, 0xf5, 0x7c, 0xd8, 0x1f, 0xa3, 0x17, 0xc1, 0xb7, | |
4006 | 0x62, 0x2c, 0xd0, 0x53, 0x3d, 0x31, 0x0f, 0x6c, 0xab, 0xcb, 0x1d, 0x26, 0x2f, 0x51, 0xb4, 0xf3, | |
4007 | 0xac, 0x3f, 0xa6, 0x0e, 0x84, 0xfa, 0x79, 0x56, 0x28, 0x6f, 0x40, 0x91, 0xe7, 0x18, 0x13, 0xde, | |
4008 | 0x71, 0xf9, 0x06, 0x14, 0xdc, 0x2a, 0x7c, 0x38, 0xcf, 0x42, 0xf2, 0x83, 0x86, 0xd1, 0x52, 0xce, | |
4009 | 0xd1, 0x65, 0x6d, 0x6d, 0x37, 0x14, 0x89, 0xfe, 0xd8, 0x7b, 0xbf, 0x15, 0x58, 0xca, 0x4b, 0x50, | |
4010 | 0xf0, 0xc6, 0xbe, 0x6b, 0x3a, 0xd8, 0x42, 0x03, 0x42, 0xa6, 0x2e, 0x67, 0xa5, 0x72, 0x06, 0x52, | |
4011 | 0x8d, 0xe1, 0xc8, 0x39, 0x29, 0xff, 0x22, 0xe4, 0x39, 0xe8, 0x69, 0x7f, 0xe2, 0x90, 0x3b, 0x90, | |
4012 | 0x19, 0xf2, 0xf9, 0x4a, 0x78, 0xdd, 0x13, 0x35, 0xe5, 0xe3, 0xdc, 0xdf, 0x86, 0x8b, 0x5e, 0xaa, | |
4013 | 0x42, 0x46, 0xf0, 0xa5, 0xfc, 0xa8, 0xcb, 0xe2, 0x51, 0x67, 0x4e, 0x21, 0x21, 0x38, 0x85, 0xf2, | |
4014 | 0x16, 0x64, 0x58, 0x04, 0x9c, 0x60, 0x54, 0x67, 0xa9, 0x22, 0x13, 0x13, 0xdb, 0xf9, 0x3c, 0xab, | |
4015 | 0x63, 0x17, 0x95, 0xab, 0x90, 0x47, 0xc1, 0x72, 0x04, 0x73, 0x9d, 0x80, 0x55, 0x4c, 0x6e, 0xbf, | |
4016 | 0x9f, 0x82, 0xac, 0xbb, 0x52, 0x64, 0x19, 0xd2, 0x2c, 0x3f, 0x43, 0x53, 0xee, 0xfb, 0x41, 0x0a, | |
4017 | 0x33, 0x32, 0xb2, 0x0c, 0x19, 0x9e, 0x83, 0x71, 0xef, 0x2e, 0x57, 0x35, 0x23, 0xcd, 0x72, 0x2e, | |
4018 | 0xaf, 0xb1, 0xa6, 0xa3, 0x63, 0x62, 0x2f, 0x03, 0x69, 0x96, 0x55, 0x11, 0x15, 0x72, 0x5e, 0x1e, | |
4019 | 0x85, 0xfe, 0x98, 0x3f, 0x03, 0x64, 0xdd, 0xc4, 0x49, 0x40, 0xd4, 0x74, 0xf4, 0x58, 0x3c, 0xe7, | |
4020 | 0xcf, 0x36, 0xfd, 0xeb, 0x49, 0xd6, 0xcd, 0x86, 0xf0, 0xf9, 0xde, 0x4d, 0xf0, 0x33, 0x3c, 0xff, | |
4021 | 0xf1, 0x01, 0x35, 0x1d, 0x5d, 0x82, 0x9b, 0xcd, 0x67, 0x78, 0x8e, 0x43, 0xae, 0xd2, 0x21, 0x62, | |
4022 | 0xce, 0x82, 0x47, 0xdf, 0x4f, 0xdd, 0xd3, 0x2c, 0x93, 0x21, 0xd7, 0xa8, 0x05, 0x96, 0x98, 0xe0, | |
4023 | 0xb9, 0xf4, 0xf3, 0xf4, 0x0c, 0xcf, 0x57, 0xc8, 0x4d, 0x0a, 0x61, 0xcb, 0x5f, 0x82, 0x88, 0xa4, | |
4024 | 0x3c, 0xc3, 0x93, 0x72, 0xa2, 0xd2, 0x0e, 0xd1, 0x3d, 0xa0, 0x4b, 0x10, 0x12, 0xf0, 0x34, 0x4b, | |
4025 | 0xc0, 0xc9, 0x15, 0x34, 0xc7, 0x26, 0x55, 0xf0, 0x93, 0xed, 0x0c, 0x4f, 0x70, 0xfc, 0x76, 0xbc, | |
4026 | 0xb2, 0x79, 0x89, 0x75, 0x86, 0xa7, 0x30, 0xa4, 0x46, 0xf7, 0x8b, 0xea, 0xbb, 0x34, 0x8f, 0x4e, | |
4027 | 0xb0, 0xe4, 0x0b, 0xcf, 0xdd, 0x53, 0xe6, 0x03, 0xeb, 0xcc, 0x83, 0x18, 0xa9, 0x26, 0x9e, 0x86, | |
4028 | 0x25, 0xca, 0xdb, 0xe9, 0x5b, 0x87, 0xa5, 0x22, 0xae, 0x44, 0xa2, 0x6f, 0x1d, 0x1a, 0xa9, 0x26, | |
4029 | 0xad, 0x61, 0x1a, 0xd8, 0xa6, 0x6d, 0x0a, 0xb6, 0x25, 0x6f, 0xb3, 0x46, 0x5a, 0x45, 0x4a, 0x90, | |
4030 | 0x6a, 0xb6, 0xb7, 0x3b, 0x56, 0x69, 0x81, 0xf1, 0xac, 0x8e, 0x65, 0x24, 0x9b, 0xdb, 0x1d, 0x8b, | |
4031 | 0xbc, 0x05, 0x89, 0xc9, 0xd1, 0x7e, 0x89, 0x84, 0xbf, 0xac, 0xec, 0x1e, 0xed, 0xbb, 0x43, 0x31, | |
4032 | 0x28, 0x82, 0x2c, 0x43, 0x76, 0xe2, 0x8c, 0xdb, 0xbf, 0x60, 0x8e, 0xed, 0xd2, 0x79, 0x5c, 0xc2, | |
4033 | 0x73, 0x46, 0x66, 0xe2, 0x8c, 0x3f, 0x30, 0xc7, 0xf6, 0x19, 0x9d, 0x5f, 0xf9, 0x0a, 0xe4, 0x05, | |
4034 | 0xbb, 0xa4, 0x08, 0x92, 0xc5, 0x6e, 0x0a, 0x75, 0xe9, 0x8e, 0x21, 0x59, 0xe5, 0x3d, 0x28, 0xb8, | |
4035 | 0x39, 0x0c, 0xce, 0x57, 0xa3, 0x27, 0x69, 0x60, 0x8f, 0xf1, 0x7c, 0xce, 0x6b, 0x97, 0xc4, 0x10, | |
4036 | 0xe5, 0xc3, 0x78, 0xb8, 0x60, 0xd0, 0xb2, 0x12, 0x1a, 0x8a, 0x54, 0xfe, 0xa1, 0x04, 0x85, 0x2d, | |
4037 | 0x7b, 0xec, 0x3f, 0x30, 0x2f, 0x42, 0x6a, 0xdf, 0xb6, 0x07, 0x13, 0x34, 0x9b, 0x35, 0x58, 0x81, | |
4038 | 0xbc, 0x01, 0x05, 0xfc, 0xe1, 0xe6, 0x9e, 0xb2, 0xf7, 0xb4, 0x91, 0xc7, 0x7a, 0x9e, 0x70, 0x12, | |
4039 | 0x48, 0xf6, 0x2d, 0x67, 0xc2, 0x3d, 0x19, 0xfe, 0x26, 0x5f, 0x80, 0x3c, 0xfd, 0xeb, 0x32, 0x93, | |
4040 | 0xde, 0x85, 0x15, 0x68, 0x35, 0x27, 0xbe, 0x05, 0x73, 0xb8, 0xfb, 0x1e, 0x2c, 0xe3, 0x3d, 0x63, | |
4041 | 0x14, 0x58, 0x03, 0x07, 0x96, 0x20, 0xc3, 0x5c, 0xc1, 0x04, 0xbf, 0x96, 0xe5, 0x0c, 0xb7, 0x48, | |
4042 | 0xdd, 0x2b, 0x66, 0x02, 0x2c, 0xdc, 0x67, 0x0c, 0x5e, 0x2a, 0x3f, 0x80, 0x2c, 0x46, 0xa9, 0xd6, | |
4043 | 0xa0, 0x4b, 0xca, 0x20, 0xf5, 0x4a, 0x26, 0xc6, 0xc8, 0x45, 0xe1, 0x9a, 0xcf, 0x9b, 0x57, 0x36, | |
4044 | 0x0c, 0xa9, 0xb7, 0xb4, 0x00, 0xd2, 0x06, 0xbd, 0x77, 0x1f, 0x73, 0x37, 0x2d, 0x1d, 0x97, 0x5b, | |
4045 | 0xdc, 0xc4, 0xb6, 0xf9, 0x32, 0xce, 0xc4, 0xb6, 0xf9, 0x92, 0x99, 0xb8, 0x3a, 0x65, 0x82, 0x96, | |
4046 | 0x4e, 0xf8, 0xa7, 0x43, 0xe9, 0xa4, 0x5c, 0x85, 0x39, 0x3c, 0x9e, 0x7d, 0xab, 0xb7, 0x63, 0xf7, | |
4047 | 0x2d, 0xbc, 0xe7, 0x1f, 0xe2, 0x3d, 0x49, 0x32, 0xa4, 0x43, 0xba, 0x07, 0xe6, 0x71, 0xe7, 0x80, | |
4048 | 0xdd, 0x38, 0xb3, 0x06, 0x2b, 0x94, 0x3f, 0x4b, 0xc2, 0x3c, 0x77, 0xad, 0xef, 0xf7, 0x9d, 0x67, | |
4049 | 0x5b, 0x9d, 0x11, 0x79, 0x0a, 0x05, 0xea, 0x55, 0xdb, 0xc3, 0xce, 0x68, 0x44, 0x8f, 0xaf, 0x84, | |
4050 | 0x57, 0x8d, 0xeb, 0x53, 0xae, 0x9a, 0xe3, 0x57, 0xb6, 0x3b, 0x43, 0x73, 0x8b, 0x61, 0x1b, 0x96, | |
4051 | 0x33, 0x3e, 0x31, 0xf2, 0x96, 0x5f, 0x43, 0x36, 0x21, 0x3f, 0x9c, 0xf4, 0x3c, 0x63, 0x32, 0x1a, | |
4052 | 0xab, 0x44, 0x1a, 0xdb, 0x9a, 0xf4, 0x02, 0xb6, 0x60, 0xe8, 0x55, 0xd0, 0x81, 0x51, 0x7f, 0xec, | |
4053 | 0xd9, 0x4a, 0x9c, 0x32, 0x30, 0xea, 0x3a, 0x82, 0x03, 0xdb, 0xf7, 0x6b, 0xc8, 0x63, 0x00, 0x7a, | |
4054 | 0xbc, 0x1c, 0x9b, 0xa6, 0x4e, 0xa8, 0xa0, 0xbc, 0xf6, 0x66, 0xa4, 0xad, 0x5d, 0x67, 0xbc, 0x67, | |
4055 | 0xef, 0x3a, 0x63, 0x66, 0x88, 0x1e, 0x4c, 0x2c, 0x2e, 0xbd, 0x03, 0x4a, 0x78, 0xfe, 0xe2, 0x8d, | |
4056 | 0x3c, 0x35, 0xe3, 0x46, 0x9e, 0xe3, 0x37, 0xf2, 0xba, 0x7c, 0x57, 0x5a, 0x7a, 0x0f, 0x8a, 0xa1, | |
4057 | 0x29, 0x8b, 0x74, 0xc2, 0xe8, 0xb7, 0x45, 0x7a, 0x5e, 0x7b, 0x5d, 0xf8, 0x9c, 0x2d, 0x6e, 0xb8, | |
4058 | 0x68, 0xf7, 0x1d, 0x50, 0xc2, 0xd3, 0x17, 0x0d, 0x67, 0x63, 0x32, 0x05, 0xe4, 0xdf, 0x87, 0xb9, | |
4059 | 0xc0, 0x94, 0x45, 0x72, 0xee, 0x94, 0x49, 0x95, 0x7f, 0x29, 0x05, 0xa9, 0x96, 0x65, 0xda, 0x87, | |
4060 | 0xe4, 0xf5, 0x60, 0x9c, 0x7c, 0x72, 0xce, 0x8d, 0x91, 0x17, 0x43, 0x31, 0xf2, 0xc9, 0x39, 0x2f, | |
4061 | 0x42, 0x5e, 0x0c, 0x45, 0x48, 0xb7, 0xa9, 0xa6, 0x93, 0xcb, 0x53, 0xf1, 0xf1, 0xc9, 0x39, 0x21, | |
4062 | 0x38, 0x5e, 0x9e, 0x0a, 0x8e, 0x7e, 0x73, 0x4d, 0xa7, 0x0e, 0x35, 0x18, 0x19, 0x9f, 0x9c, 0xf3, | |
4063 | 0xa3, 0xe2, 0x72, 0x38, 0x2a, 0x7a, 0x8d, 0x35, 0x9d, 0x0d, 0x49, 0x88, 0x88, 0x38, 0x24, 0x16, | |
4064 | 0x0b, 0x97, 0xc3, 0xb1, 0x10, 0x79, 0x3c, 0x0a, 0x2e, 0x87, 0xa3, 0x20, 0x36, 0xf2, 0xa8, 0x77, | |
4065 | 0x31, 0x14, 0xf5, 0xd0, 0x28, 0x0b, 0x77, 0xcb, 0xe1, 0x70, 0xc7, 0x78, 0xc2, 0x48, 0xc5, 0x58, | |
4066 | 0xe7, 0x35, 0xd6, 0x74, 0xa2, 0x85, 0x02, 0x5d, 0xf4, 0x6d, 0x1f, 0xf7, 0x02, 0x9d, 0xbe, 0x4e, | |
4067 | 0x97, 0xcd, 0xbd, 0x88, 0x16, 0x63, 0xbe, 0xf8, 0xe3, 0x6a, 0xba, 0x17, 0x31, 0x0d, 0x32, 0x87, | |
4068 | 0x3c, 0x01, 0x56, 0xd0, 0x73, 0x09, 0xb2, 0xc4, 0xcd, 0x5f, 0x69, 0xb6, 0xd1, 0x83, 0xd1, 0x79, | |
4069 | 0x1d, 0xb2, 0x3b, 0x7d, 0x05, 0xe6, 0x9a, 0xed, 0xa7, 0x9d, 0x71, 0xcf, 0x9c, 0x38, 0xed, 0xbd, | |
4070 | 0x4e, 0xcf, 0x7b, 0x44, 0xa0, 0xfb, 0x9f, 0x6f, 0xf2, 0x96, 0xbd, 0x4e, 0x8f, 0x5c, 0x70, 0xc5, | |
4071 | 0xd5, 0xc5, 0x56, 0x89, 0xcb, 0x6b, 0xe9, 0x75, 0xba, 0x68, 0xcc, 0x18, 0xfa, 0xc2, 0x05, 0xee, | |
4072 | 0x0b, 0x1f, 0x66, 0x20, 0x75, 0x64, 0xf5, 0x6d, 0xeb, 0x61, 0x0e, 0x32, 0x8e, 0x3d, 0x1e, 0x76, | |
4073 | 0x1c, 0xbb, 0xfc, 0x23, 0x09, 0xe0, 0x91, 0x3d, 0x1c, 0x1e, 0x59, 0xfd, 0x17, 0x47, 0x26, 0xb9, | |
4074 | 0x02, 0xf9, 0x61, 0xe7, 0xb9, 0xd9, 0x1e, 0x9a, 0xed, 0x83, 0xb1, 0x7b, 0x0e, 0x72, 0xb4, 0x6a, | |
4075 | 0xcb, 0x7c, 0x34, 0x3e, 0x21, 0x25, 0xf7, 0x8a, 0x8e, 0xda, 0x41, 0x49, 0xf2, 0x2b, 0xfb, 0x22, | |
4076 | 0xbf, 0x74, 0xa6, 0xf9, 0x1e, 0xba, 0xd7, 0x4e, 0x96, 0x47, 0x64, 0xf8, 0xee, 0x61, 0x89, 0x4a, | |
4077 | 0xde, 0x31, 0x87, 0xa3, 0xf6, 0x01, 0x4a, 0x85, 0xca, 0x21, 0x45, 0xcb, 0x8f, 0xc8, 0x6d, 0x48, | |
4078 | 0x1c, 0xd8, 0x03, 0x14, 0xc9, 0x29, 0xfb, 0x42, 0x71, 0xe4, 0x0d, 0x48, 0x0c, 0x27, 0x4c, 0x36, | |
4079 | 0x79, 0x6d, 0x41, 0xb8, 0x27, 0xb0, 0xd0, 0x44, 0x61, 0xc3, 0x49, 0xcf, 0x9b, 0xf7, 0x8d, 0x22, | |
4080 | 0x24, 0x9a, 0xad, 0x16, 0x8d, 0xfd, 0xcd, 0x56, 0x6b, 0x4d, 0x91, 0xea, 0x5f, 0x82, 0x6c, 0x6f, | |
4081 | 0x6c, 0x9a, 0xd4, 0x3d, 0xcc, 0xce, 0x39, 0x3e, 0xc4, 0x58, 0xe7, 0x81, 0xea, 0x5b, 0x90, 0x39, | |
4082 | 0x60, 0x59, 0x07, 0x89, 0x48, 0x6b, 0x4b, 0x7f, 0xc8, 0x1e, 0x55, 0x96, 0xfc, 0xe6, 0x70, 0x9e, | |
4083 | 0x62, 0xb8, 0x36, 0xea, 0x3b, 0x90, 0x1b, 0xb7, 0x4f, 0x33, 0xf8, 0x31, 0x8b, 0x2e, 0x71, 0x06, | |
4084 | 0xb3, 0x63, 0x5e, 0x55, 0x6f, 0xc0, 0x82, 0x65, 0xbb, 0xdf, 0x50, 0xda, 0x5d, 0x76, 0xc6, 0x2e, | |
4085 | 0x4e, 0x5f, 0xe5, 0x5c, 0xe3, 0x26, 0xfb, 0x6e, 0x69, 0xd9, 0xbc, 0x81, 0x9d, 0xca, 0xfa, 0x23, | |
4086 | 0x50, 0x04, 0x33, 0x98, 0x7a, 0xc6, 0x59, 0x39, 0x64, 0x1f, 0x4a, 0x3d, 0x2b, 0x78, 0xee, 0x43, | |
4087 | 0x46, 0xd8, 0xc9, 0x8c, 0x31, 0xd2, 0x63, 0x5f, 0x9d, 0x3d, 0x23, 0xe8, 0xea, 0xa6, 0x8d, 0x50, | |
4088 | 0x5f, 0x13, 0x6d, 0xe4, 0x19, 0xfb, 0x20, 0x2d, 0x1a, 0xa9, 0xe9, 0xa1, 0x55, 0x39, 0x3a, 0x75, | |
4089 | 0x28, 0x7d, 0xf6, 0x3d, 0xd9, 0xb3, 0xc2, 0x1c, 0xe0, 0x0c, 0x33, 0xf1, 0x83, 0xf9, 0x90, 0x7d, | |
4090 | 0x6a, 0x0e, 0x98, 0x99, 0x1a, 0xcd, 0xe4, 0xd4, 0xd1, 0x3c, 0x67, 0xdf, 0x75, 0x3d, 0x33, 0xbb, | |
4091 | 0xb3, 0x46, 0x33, 0x39, 0x75, 0x34, 0x03, 0xf6, 0xc5, 0x37, 0x60, 0xa6, 0xa6, 0xd7, 0x37, 0x80, | |
4092 | 0x88, 0x5b, 0xcd, 0xe3, 0x44, 0x8c, 0x9d, 0x21, 0xfb, 0x8e, 0xef, 0x6f, 0x36, 0xa3, 0xcc, 0x32, | |
4093 | 0x14, 0x3f, 0x20, 0x8b, 0x7d, 0xe2, 0x0f, 0x1a, 0xaa, 0xe9, 0xf5, 0x4d, 0x38, 0x2f, 0x4e, 0xec, | |
4094 | 0x0c, 0x43, 0xb2, 0x55, 0xa9, 0x52, 0x34, 0x16, 0xfc, 0xa9, 0x71, 0xce, 0x4c, 0x53, 0xf1, 0x83, | |
4095 | 0x1a, 0xa9, 0x52, 0x45, 0x99, 0x32, 0x55, 0xd3, 0xeb, 0x0f, 0xa0, 0x28, 0x98, 0xda, 0xc7, 0x08, | |
4096 | 0x1d, 0x6d, 0xe6, 0x05, 0xfb, 0x5f, 0x0b, 0xcf, 0x0c, 0x8d, 0xe8, 0xe1, 0x1d, 0xe3, 0x31, 0x2e, | |
4097 | 0xda, 0xc8, 0x98, 0xfd, 0xa3, 0x80, 0x3f, 0x16, 0x64, 0x84, 0x8e, 0x04, 0xe6, 0xdf, 0x71, 0x56, | |
4098 | 0x26, 0xec, 0x5f, 0x08, 0xfc, 0xa1, 0x50, 0x42, 0xbd, 0x1f, 0x98, 0x8e, 0x49, 0x83, 0x5c, 0x8c, | |
4099 | 0x0d, 0x07, 0x3d, 0xf2, 0x9b, 0x91, 0x80, 0x15, 0xf1, 0x81, 0x44, 0x98, 0x36, 0x2d, 0xd6, 0x37, | |
4100 | 0x61, 0xfe, 0xec, 0x0e, 0xe9, 0x63, 0x89, 0x65, 0xcb, 0xd5, 0x15, 0x9a, 0x50, 0x1b, 0x73, 0xdd, | |
4101 | 0x80, 0x5f, 0x6a, 0xc0, 0xdc, 0x99, 0x9d, 0xd2, 0x27, 0x12, 0xcb, 0x39, 0xa9, 0x25, 0xa3, 0xd0, | |
4102 | 0x0d, 0x7a, 0xa6, 0xb9, 0x33, 0xbb, 0xa5, 0x4f, 0x25, 0xf6, 0x40, 0xa1, 0x6b, 0x9e, 0x11, 0xd7, | |
4103 | 0x33, 0xcd, 0x9d, 0xd9, 0x2d, 0x7d, 0x95, 0x65, 0x94, 0xb2, 0x5e, 0x15, 0x8d, 0xa0, 0x2f, 0x98, | |
4104 | 0x3f, 0xbb, 0x5b, 0xfa, 0x9a, 0x84, 0x8f, 0x15, 0xb2, 0xae, 0x7b, 0xeb, 0xe2, 0x79, 0xa6, 0xf9, | |
4105 | 0xb3, 0xbb, 0xa5, 0xaf, 0x4b, 0xf8, 0xa4, 0x21, 0xeb, 0xeb, 0x01, 0x33, 0xc1, 0xd1, 0x9c, 0xee, | |
4106 | 0x96, 0xbe, 0x21, 0xe1, 0x2b, 0x83, 0xac, 0xd7, 0x3c, 0x33, 0xbb, 0x53, 0xa3, 0x39, 0xdd, 0x2d, | |
4107 | 0x7d, 0x13, 0x6f, 0xf1, 0x75, 0x59, 0xbf, 0x13, 0x30, 0x83, 0x9e, 0xa9, 0xf8, 0x0a, 0x6e, 0xe9, | |
4108 | 0x5b, 0x12, 0x3e, 0x06, 0xc9, 0xfa, 0x5d, 0xc3, 0xed, 0xdd, 0xf7, 0x4c, 0xc5, 0x57, 0x70, 0x4b, | |
4109 | 0x9f, 0x49, 0xf8, 0x66, 0x24, 0xeb, 0xf7, 0x82, 0x86, 0xd0, 0x33, 0x29, 0xaf, 0xe2, 0x96, 0xbe, | |
4110 | 0x4d, 0x2d, 0x15, 0xeb, 0xf2, 0xfa, 0xaa, 0xe1, 0x0e, 0x40, 0xf0, 0x4c, 0xca, 0xab, 0xb8, 0xa5, | |
4111 | 0xef, 0x50, 0x53, 0x4a, 0x5d, 0x5e, 0x5f, 0x0b, 0x99, 0xaa, 0xe9, 0xf5, 0x47, 0x50, 0x38, 0xab, | |
4112 | 0x5b, 0xfa, 0xae, 0xf8, 0x16, 0x97, 0xef, 0x0a, 0xbe, 0x69, 0x47, 0xd8, 0xb3, 0x53, 0x1d, 0xd3, | |
4113 | 0xf7, 0x30, 0xc7, 0xa9, 0xcf, 0x3d, 0x61, 0xef, 0x55, 0x8c, 0xe0, 0x6f, 0x1f, 0x73, 0x53, 0x5b, | |
4114 | 0xfe, 0xf9, 0x38, 0xd5, 0x47, 0x7d, 0x5f, 0xc2, 0x47, 0xad, 0x02, 0x37, 0x88, 0x78, 0xef, 0xa4, | |
4115 | 0x30, 0x87, 0xf5, 0xa1, 0x3f, 0xcb, 0xd3, 0xbc, 0xd5, 0x0f, 0xa4, 0x57, 0x71, 0x57, 0xf5, 0x44, | |
4116 | 0x6b, 0xbb, 0xe1, 0x2d, 0x06, 0xd6, 0xbc, 0x0d, 0xc9, 0x63, 0x6d, 0x75, 0x4d, 0xbc, 0x92, 0x89, | |
4117 | 0x6f, 0xb9, 0xcc, 0x49, 0xe5, 0xb5, 0xa2, 0xf0, 0xdc, 0x3d, 0x1c, 0x39, 0x27, 0x06, 0xb2, 0x38, | |
4118 | 0x5b, 0x8b, 0x64, 0x7f, 0x12, 0xc3, 0xd6, 0x38, 0xbb, 0x1a, 0xc9, 0xfe, 0x34, 0x86, 0x5d, 0xe5, | |
4119 | 0x6c, 0x3d, 0x92, 0xfd, 0xd5, 0x18, 0xb6, 0xce, 0xd9, 0xeb, 0x91, 0xec, 0xaf, 0xc5, 0xb0, 0xd7, | |
4120 | 0x39, 0xbb, 0x16, 0xc9, 0xfe, 0x7a, 0x0c, 0xbb, 0xc6, 0xd9, 0x77, 0x22, 0xd9, 0xdf, 0x88, 0x61, | |
4121 | 0xdf, 0xe1, 0xec, 0xbb, 0x91, 0xec, 0x6f, 0xc6, 0xb0, 0xef, 0x72, 0xf6, 0xbd, 0x48, 0xf6, 0xb7, | |
4122 | 0x62, 0xd8, 0xf7, 0x18, 0x7b, 0x6d, 0x35, 0x92, 0xfd, 0x59, 0x34, 0x7b, 0x6d, 0x95, 0xb3, 0xa3, | |
4123 | 0xb5, 0xf6, 0xed, 0x18, 0x36, 0xd7, 0xda, 0x5a, 0xb4, 0xd6, 0xbe, 0x13, 0xc3, 0xe6, 0x5a, 0x5b, | |
4124 | 0x8b, 0xd6, 0xda, 0x77, 0x63, 0xd8, 0x5c, 0x6b, 0x6b, 0xd1, 0x5a, 0xfb, 0x5e, 0x0c, 0x9b, 0x6b, | |
4125 | 0x6d, 0x2d, 0x5a, 0x6b, 0xdf, 0x8f, 0x61, 0x73, 0xad, 0xad, 0x45, 0x6b, 0xed, 0x07, 0x31, 0x6c, | |
4126 | 0xae, 0xb5, 0xb5, 0x68, 0xad, 0xfd, 0x51, 0x0c, 0x9b, 0x6b, 0x6d, 0x2d, 0x5a, 0x6b, 0x7f, 0x1c, | |
4127 | 0xc3, 0xe6, 0x5a, 0x5b, 0x8b, 0xd6, 0xda, 0x9f, 0xc4, 0xb0, 0xb9, 0xd6, 0xb4, 0x68, 0xad, 0xfd, | |
4128 | 0x69, 0x34, 0x5b, 0xe3, 0x5a, 0xd3, 0xa2, 0xb5, 0xf6, 0x67, 0x31, 0x6c, 0xae, 0x35, 0x2d, 0x5a, | |
4129 | 0x6b, 0x7f, 0x1e, 0xc3, 0xe6, 0x5a, 0xd3, 0xa2, 0xb5, 0xf6, 0xc3, 0x18, 0x36, 0xd7, 0x9a, 0x16, | |
4130 | 0xad, 0xb5, 0xbf, 0x88, 0x61, 0x73, 0xad, 0x69, 0xd1, 0x5a, 0xfb, 0xcb, 0x18, 0x36, 0xd7, 0x9a, | |
4131 | 0x16, 0xad, 0xb5, 0xbf, 0x8a, 0x61, 0x73, 0xad, 0x69, 0xd1, 0x5a, 0xfb, 0xeb, 0x18, 0x36, 0xd7, | |
4132 | 0x9a, 0x16, 0xad, 0xb5, 0xbf, 0x89, 0x61, 0x73, 0xad, 0x69, 0xd1, 0x5a, 0xfb, 0xdb, 0x18, 0x36, | |
4133 | 0xd7, 0x5a, 0x35, 0x5a, 0x6b, 0x7f, 0x17, 0xcd, 0xae, 0x72, 0xad, 0x55, 0xa3, 0xb5, 0xf6, 0xf7, | |
4134 | 0x31, 0x6c, 0xae, 0xb5, 0x6a, 0xb4, 0xd6, 0xfe, 0x21, 0x86, 0xcd, 0xb5, 0x56, 0x8d, 0xd6, 0xda, | |
4135 | 0x3f, 0xc6, 0xb0, 0xb9, 0xd6, 0xaa, 0xd1, 0x5a, 0xfb, 0x51, 0x0c, 0x9b, 0x6b, 0xad, 0x1a, 0xad, | |
4136 | 0xb5, 0x7f, 0x8a, 0x61, 0x73, 0xad, 0x55, 0xa3, 0xb5, 0xf6, 0xcf, 0x31, 0x6c, 0xae, 0xb5, 0x6a, | |
4137 | 0xb4, 0xd6, 0xfe, 0x25, 0x86, 0xcd, 0xb5, 0x56, 0x8d, 0xd6, 0xda, 0xbf, 0xc6, 0xb0, 0xb9, 0xd6, | |
4138 | 0xaa, 0xd1, 0x5a, 0xfb, 0xb7, 0x18, 0x36, 0xd7, 0x9a, 0x1e, 0xad, 0xb5, 0x7f, 0x8f, 0x66, 0xeb, | |
4139 | 0x5c, 0x6b, 0x7a, 0xb4, 0xd6, 0xfe, 0x23, 0x86, 0xcd, 0xb5, 0xa6, 0x47, 0x6b, 0xed, 0x3f, 0x63, | |
4140 | 0xd8, 0x5c, 0x6b, 0x7a, 0xb4, 0xd6, 0xfe, 0x2b, 0x86, 0xcd, 0xb5, 0xa6, 0x47, 0x6b, 0xed, 0xbf, | |
4141 | 0x63, 0xd8, 0x5c, 0x6b, 0x7a, 0xb4, 0xd6, 0xfe, 0x27, 0x86, 0xcd, 0xb5, 0xa6, 0x47, 0x6b, 0xed, | |
4142 | 0xc7, 0x31, 0x6c, 0xae, 0x35, 0x3d, 0x5a, 0x6b, 0x3f, 0x89, 0x61, 0x73, 0xad, 0xe9, 0xd1, 0x5a, | |
4143 | 0xfb, 0xdf, 0x18, 0x36, 0xd7, 0x9a, 0x1e, 0xad, 0xb5, 0xff, 0x8b, 0x61, 0x73, 0xad, 0xad, 0x47, | |
4144 | 0x6b, 0xed, 0xff, 0xa3, 0xd9, 0xeb, 0xab, 0x3f, 0x0d, 0x00, 0x00, 0xff, 0xff, 0xaa, 0x00, 0xcd, | |
4145 | 0x32, 0x57, 0x39, 0x00, 0x00, | |
4146 | } |
591 | 591 | props = oop.Prop |
592 | 592 | nv := reflect.New(oop.Type.Elem()) |
593 | 593 | dst = nv.Elem().Field(0) |
594 | sv.Field(oop.Field).Set(nv) | |
594 | field := sv.Field(oop.Field) | |
595 | if !field.IsNil() { | |
596 | return p.errorf("field '%s' would overwrite already parsed oneof '%s'", name, sv.Type().Field(oop.Field).Name) | |
597 | } | |
598 | field.Set(nv) | |
595 | 599 | } |
596 | 600 | if !dst.IsValid() { |
597 | 601 | return p.errorf("unknown field name %q in %v", name, st) |
791 | 795 | fv.Set(reflect.Append(fv, reflect.New(at.Elem()).Elem())) |
792 | 796 | return p.readAny(fv.Index(fv.Len()-1), props) |
793 | 797 | case reflect.Bool: |
794 | // Either "true", "false", 1 or 0. | |
798 | // true/1/t/True or false/f/0/False. | |
795 | 799 | switch tok.value { |
796 | case "true", "1": | |
800 | case "true", "1", "t", "True": | |
797 | 801 | fv.SetBool(true) |
798 | 802 | return nil |
799 | case "false", "0": | |
803 | case "false", "0", "f", "False": | |
800 | 804 | fv.SetBool(false) |
801 | 805 | return nil |
802 | 806 | } |
860 | 864 | return p.readStruct(fv, terminator) |
861 | 865 | case reflect.Uint32: |
862 | 866 | if x, err := strconv.ParseUint(tok.value, 0, 32); err == nil { |
863 | fv.SetUint(uint64(x)) | |
867 | fv.SetUint(x) | |
864 | 868 | return nil |
865 | 869 | } |
866 | 870 | case reflect.Uint64: |
379 | 379 | }, |
380 | 380 | }, |
381 | 381 | |
382 | // Boolean false | |
383 | { | |
384 | in: `count:42 inner { host: "example.com" connected: false }`, | |
385 | out: &MyMessage{ | |
386 | Count: Int32(42), | |
387 | Inner: &InnerMessage{ | |
388 | Host: String("example.com"), | |
389 | Connected: Bool(false), | |
390 | }, | |
391 | }, | |
392 | }, | |
393 | // Boolean true | |
394 | { | |
395 | in: `count:42 inner { host: "example.com" connected: true }`, | |
396 | out: &MyMessage{ | |
397 | Count: Int32(42), | |
398 | Inner: &InnerMessage{ | |
399 | Host: String("example.com"), | |
400 | Connected: Bool(true), | |
401 | }, | |
402 | }, | |
403 | }, | |
404 | // Boolean 0 | |
405 | { | |
406 | in: `count:42 inner { host: "example.com" connected: 0 }`, | |
407 | out: &MyMessage{ | |
408 | Count: Int32(42), | |
409 | Inner: &InnerMessage{ | |
410 | Host: String("example.com"), | |
411 | Connected: Bool(false), | |
412 | }, | |
413 | }, | |
414 | }, | |
415 | // Boolean 1 | |
416 | { | |
417 | in: `count:42 inner { host: "example.com" connected: 1 }`, | |
418 | out: &MyMessage{ | |
419 | Count: Int32(42), | |
420 | Inner: &InnerMessage{ | |
421 | Host: String("example.com"), | |
422 | Connected: Bool(true), | |
423 | }, | |
424 | }, | |
425 | }, | |
426 | // Boolean f | |
427 | { | |
428 | in: `count:42 inner { host: "example.com" connected: f }`, | |
429 | out: &MyMessage{ | |
430 | Count: Int32(42), | |
431 | Inner: &InnerMessage{ | |
432 | Host: String("example.com"), | |
433 | Connected: Bool(false), | |
434 | }, | |
435 | }, | |
436 | }, | |
437 | // Boolean t | |
438 | { | |
439 | in: `count:42 inner { host: "example.com" connected: t }`, | |
440 | out: &MyMessage{ | |
441 | Count: Int32(42), | |
442 | Inner: &InnerMessage{ | |
443 | Host: String("example.com"), | |
444 | Connected: Bool(true), | |
445 | }, | |
446 | }, | |
447 | }, | |
448 | // Boolean False | |
449 | { | |
450 | in: `count:42 inner { host: "example.com" connected: False }`, | |
451 | out: &MyMessage{ | |
452 | Count: Int32(42), | |
453 | Inner: &InnerMessage{ | |
454 | Host: String("example.com"), | |
455 | Connected: Bool(false), | |
456 | }, | |
457 | }, | |
458 | }, | |
459 | // Boolean True | |
460 | { | |
461 | in: `count:42 inner { host: "example.com" connected: True }`, | |
462 | out: &MyMessage{ | |
463 | Count: Int32(42), | |
464 | Inner: &InnerMessage{ | |
465 | Host: String("example.com"), | |
466 | Connected: Bool(true), | |
467 | }, | |
468 | }, | |
469 | }, | |
470 | ||
382 | 471 | // Extension |
383 | 472 | buildExtStructTest(`count: 42 [testdata.Ext.more]:<data:"Hello, world!" >`), |
384 | 473 | buildExtStructTest(`count: 42 [testdata.Ext.more] {data:"Hello, world!"}`), |
545 | 634 | if !Equal(m, want) { |
546 | 635 | t.Errorf("\n got %v\nwant %v", m, want) |
547 | 636 | } |
637 | ||
638 | const inOverwrite = `name:"Shrek" number:42` | |
639 | m = new(Communique) | |
640 | testErr := "line 1.13: field 'number' would overwrite already parsed oneof 'Union'" | |
641 | if err := UnmarshalText(inOverwrite, m); err == nil { | |
642 | t.Errorf("TestOneofParsing: Didn't get expected error: %v", testErr) | |
643 | } else if err.Error() != testErr { | |
644 | t.Errorf("TestOneofParsing: Incorrect error.\nHave: %v\nWant: %v", | |
645 | err.Error(), testErr) | |
646 | } | |
647 | ||
548 | 648 | } |
549 | 649 | |
550 | 650 | var benchInput string |
31 | 31 | # Not stored here, but descriptor.proto is in https://github.com/google/protobuf/ |
32 | 32 | # at src/google/protobuf/descriptor.proto |
33 | 33 | regenerate: |
34 | echo WARNING! THIS RULE IS PROBABLY NOT RIGHT FOR YOUR INSTALLATION | |
35 | protoc --go_out=. -I$(HOME)/src/protobuf/src $(HOME)/src/protobuf/src/google/protobuf/descriptor.proto && \ | |
36 | sed 's,^package google_protobuf,package descriptor,' google/protobuf/descriptor.pb.go > \ | |
37 | $(GOPATH)/src/github.com/golang/protobuf/protoc-gen-go/descriptor/descriptor.pb.go && \ | |
38 | rm -f google/protobuf/descriptor.pb.go | |
34 | @echo WARNING! THIS RULE IS PROBABLY NOT RIGHT FOR YOUR INSTALLATION | |
35 | protoc --go_out=../../../../.. -I$(HOME)/src/protobuf/include $(HOME)/src/protobuf/include/google/protobuf/descriptor.proto |
0 | // Code generated by protoc-gen-go. | |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | 1 | // source: google/protobuf/descriptor.proto |
2 | // DO NOT EDIT! | |
3 | 2 | |
4 | 3 | /* |
5 | 4 | Package descriptor is a generated protocol buffer package. |
64 | 63 | FieldDescriptorProto_TYPE_FIXED32 FieldDescriptorProto_Type = 7 |
65 | 64 | FieldDescriptorProto_TYPE_BOOL FieldDescriptorProto_Type = 8 |
66 | 65 | FieldDescriptorProto_TYPE_STRING FieldDescriptorProto_Type = 9 |
66 | // Tag-delimited aggregate. | |
67 | // Group type is deprecated and not supported in proto3. However, Proto3 | |
68 | // implementations should still be able to parse the group wire format and | |
69 | // treat group fields as unknown fields. | |
67 | 70 | FieldDescriptorProto_TYPE_GROUP FieldDescriptorProto_Type = 10 |
68 | 71 | FieldDescriptorProto_TYPE_MESSAGE FieldDescriptorProto_Type = 11 |
69 | 72 | // New in version 2. |
291 | 294 | return nil |
292 | 295 | } |
293 | 296 | func (FieldOptions_JSType) EnumDescriptor() ([]byte, []int) { return fileDescriptor0, []int{11, 1} } |
297 | ||
298 | // Is this method side-effect-free (or safe in HTTP parlance), or idempotent, | |
299 | // or neither? HTTP based RPC implementation may choose GET verb for safe | |
300 | // methods, and PUT verb for idempotent methods instead of the default POST. | |
301 | type MethodOptions_IdempotencyLevel int32 | |
302 | ||
303 | const ( | |
304 | MethodOptions_IDEMPOTENCY_UNKNOWN MethodOptions_IdempotencyLevel = 0 | |
305 | MethodOptions_NO_SIDE_EFFECTS MethodOptions_IdempotencyLevel = 1 | |
306 | MethodOptions_IDEMPOTENT MethodOptions_IdempotencyLevel = 2 | |
307 | ) | |
308 | ||
309 | var MethodOptions_IdempotencyLevel_name = map[int32]string{ | |
310 | 0: "IDEMPOTENCY_UNKNOWN", | |
311 | 1: "NO_SIDE_EFFECTS", | |
312 | 2: "IDEMPOTENT", | |
313 | } | |
314 | var MethodOptions_IdempotencyLevel_value = map[string]int32{ | |
315 | "IDEMPOTENCY_UNKNOWN": 0, | |
316 | "NO_SIDE_EFFECTS": 1, | |
317 | "IDEMPOTENT": 2, | |
318 | } | |
319 | ||
320 | func (x MethodOptions_IdempotencyLevel) Enum() *MethodOptions_IdempotencyLevel { | |
321 | p := new(MethodOptions_IdempotencyLevel) | |
322 | *p = x | |
323 | return p | |
324 | } | |
325 | func (x MethodOptions_IdempotencyLevel) String() string { | |
326 | return proto.EnumName(MethodOptions_IdempotencyLevel_name, int32(x)) | |
327 | } | |
328 | func (x *MethodOptions_IdempotencyLevel) UnmarshalJSON(data []byte) error { | |
329 | value, err := proto.UnmarshalJSONEnum(MethodOptions_IdempotencyLevel_value, data, "MethodOptions_IdempotencyLevel") | |
330 | if err != nil { | |
331 | return err | |
332 | } | |
333 | *x = MethodOptions_IdempotencyLevel(value) | |
334 | return nil | |
335 | } | |
336 | func (MethodOptions_IdempotencyLevel) EnumDescriptor() ([]byte, []int) { | |
337 | return fileDescriptor0, []int{16, 0} | |
338 | } | |
294 | 339 | |
295 | 340 | // The protocol compiler can output a FileDescriptorSet containing the .proto |
296 | 341 | // files it parses. |
899 | 944 | // generated to contain the file's getDescriptor() method as well as any |
900 | 945 | // top-level extensions defined in the file. |
901 | 946 | JavaMultipleFiles *bool `protobuf:"varint,10,opt,name=java_multiple_files,json=javaMultipleFiles,def=0" json:"java_multiple_files,omitempty"` |
902 | // If set true, then the Java code generator will generate equals() and | |
903 | // hashCode() methods for all messages defined in the .proto file. | |
904 | // This increases generated code size, potentially substantially for large | |
905 | // protos, which may harm a memory-constrained application. | |
906 | // - In the full runtime this is a speed optimization, as the | |
907 | // AbstractMessage base class includes reflection-based implementations of | |
908 | // these methods. | |
909 | // - In the lite runtime, setting this option changes the semantics of | |
910 | // equals() and hashCode() to more closely match those of the full runtime; | |
911 | // the generated methods compute their results based on field values rather | |
912 | // than object identity. (Implementations should not assume that hashcodes | |
913 | // will be consistent across runtimes or versions of the protocol compiler.) | |
914 | JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash,def=0" json:"java_generate_equals_and_hash,omitempty"` | |
947 | // This option does nothing. | |
948 | JavaGenerateEqualsAndHash *bool `protobuf:"varint,20,opt,name=java_generate_equals_and_hash,json=javaGenerateEqualsAndHash" json:"java_generate_equals_and_hash,omitempty"` | |
915 | 949 | // If set true, then the Java2 code generator will generate code that |
916 | 950 | // throws an exception whenever an attempt is made to assign a non-UTF-8 |
917 | 951 | // byte sequence to a string field. |
952 | 986 | ObjcClassPrefix *string `protobuf:"bytes,36,opt,name=objc_class_prefix,json=objcClassPrefix" json:"objc_class_prefix,omitempty"` |
953 | 987 | // Namespace for generated classes; defaults to the package. |
954 | 988 | CsharpNamespace *string `protobuf:"bytes,37,opt,name=csharp_namespace,json=csharpNamespace" json:"csharp_namespace,omitempty"` |
989 | // By default Swift generators will take the proto package and CamelCase it | |
990 | // replacing '.' with underscore and use that to prefix the types/symbols | |
991 | // defined. When this options is provided, they will use this value instead | |
992 | // to prefix the types/symbols defined. | |
993 | SwiftPrefix *string `protobuf:"bytes,39,opt,name=swift_prefix,json=swiftPrefix" json:"swift_prefix,omitempty"` | |
994 | // Sets the php class prefix which is prepended to all php generated classes | |
995 | // from this .proto. Default is empty. | |
996 | PhpClassPrefix *string `protobuf:"bytes,40,opt,name=php_class_prefix,json=phpClassPrefix" json:"php_class_prefix,omitempty"` | |
955 | 997 | // The parser stores options it doesn't recognize here. See above. |
956 | 998 | UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` |
957 | 999 | proto.XXX_InternalExtensions `json:"-"` |
972 | 1014 | } |
973 | 1015 | |
974 | 1016 | const Default_FileOptions_JavaMultipleFiles bool = false |
975 | const Default_FileOptions_JavaGenerateEqualsAndHash bool = false | |
976 | 1017 | const Default_FileOptions_JavaStringCheckUtf8 bool = false |
977 | 1018 | const Default_FileOptions_OptimizeFor FileOptions_OptimizeMode = FileOptions_SPEED |
978 | 1019 | const Default_FileOptions_CcGenericServices bool = false |
1006 | 1047 | if m != nil && m.JavaGenerateEqualsAndHash != nil { |
1007 | 1048 | return *m.JavaGenerateEqualsAndHash |
1008 | 1049 | } |
1009 | return Default_FileOptions_JavaGenerateEqualsAndHash | |
1050 | return false | |
1010 | 1051 | } |
1011 | 1052 | |
1012 | 1053 | func (m *FileOptions) GetJavaStringCheckUtf8() bool { |
1075 | 1116 | func (m *FileOptions) GetCsharpNamespace() string { |
1076 | 1117 | if m != nil && m.CsharpNamespace != nil { |
1077 | 1118 | return *m.CsharpNamespace |
1119 | } | |
1120 | return "" | |
1121 | } | |
1122 | ||
1123 | func (m *FileOptions) GetSwiftPrefix() string { | |
1124 | if m != nil && m.SwiftPrefix != nil { | |
1125 | return *m.SwiftPrefix | |
1126 | } | |
1127 | return "" | |
1128 | } | |
1129 | ||
1130 | func (m *FileOptions) GetPhpClassPrefix() string { | |
1131 | if m != nil && m.PhpClassPrefix != nil { | |
1132 | return *m.PhpClassPrefix | |
1078 | 1133 | } |
1079 | 1134 | return "" |
1080 | 1135 | } |
1236 | 1291 | // |
1237 | 1292 | // |
1238 | 1293 | // Note that implementations may choose not to check required fields within |
1239 | // a lazy sub-message. That is, calling IsInitialized() on the outher message | |
1294 | // a lazy sub-message. That is, calling IsInitialized() on the outer message | |
1240 | 1295 | // may return true even if the inner message has missing required fields. |
1241 | 1296 | // This is necessary because otherwise the inner message would have to be |
1242 | 1297 | // parsed in order to perform the check, defeating the purpose of lazy |
1492 | 1547 | // Depending on the target platform, this can emit Deprecated annotations |
1493 | 1548 | // for the method, or it will be completely ignored; in the very least, |
1494 | 1549 | // this is a formalization for deprecating methods. |
1495 | Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` | |
1550 | Deprecated *bool `protobuf:"varint,33,opt,name=deprecated,def=0" json:"deprecated,omitempty"` | |
1551 | IdempotencyLevel *MethodOptions_IdempotencyLevel `protobuf:"varint,34,opt,name=idempotency_level,json=idempotencyLevel,enum=google.protobuf.MethodOptions_IdempotencyLevel,def=0" json:"idempotency_level,omitempty"` | |
1496 | 1552 | // The parser stores options it doesn't recognize here. See above. |
1497 | 1553 | UninterpretedOption []*UninterpretedOption `protobuf:"bytes,999,rep,name=uninterpreted_option,json=uninterpretedOption" json:"uninterpreted_option,omitempty"` |
1498 | 1554 | proto.XXX_InternalExtensions `json:"-"` |
1513 | 1569 | } |
1514 | 1570 | |
1515 | 1571 | const Default_MethodOptions_Deprecated bool = false |
1572 | const Default_MethodOptions_IdempotencyLevel MethodOptions_IdempotencyLevel = MethodOptions_IDEMPOTENCY_UNKNOWN | |
1516 | 1573 | |
1517 | 1574 | func (m *MethodOptions) GetDeprecated() bool { |
1518 | 1575 | if m != nil && m.Deprecated != nil { |
1519 | 1576 | return *m.Deprecated |
1520 | 1577 | } |
1521 | 1578 | return Default_MethodOptions_Deprecated |
1579 | } | |
1580 | ||
1581 | func (m *MethodOptions) GetIdempotencyLevel() MethodOptions_IdempotencyLevel { | |
1582 | if m != nil && m.IdempotencyLevel != nil { | |
1583 | return *m.IdempotencyLevel | |
1584 | } | |
1585 | return Default_MethodOptions_IdempotencyLevel | |
1522 | 1586 | } |
1523 | 1587 | |
1524 | 1588 | func (m *MethodOptions) GetUninterpretedOption() []*UninterpretedOption { |
1923 | 1987 | proto.RegisterEnum("google.protobuf.FileOptions_OptimizeMode", FileOptions_OptimizeMode_name, FileOptions_OptimizeMode_value) |
1924 | 1988 | proto.RegisterEnum("google.protobuf.FieldOptions_CType", FieldOptions_CType_name, FieldOptions_CType_value) |
1925 | 1989 | proto.RegisterEnum("google.protobuf.FieldOptions_JSType", FieldOptions_JSType_name, FieldOptions_JSType_value) |
1990 | proto.RegisterEnum("google.protobuf.MethodOptions_IdempotencyLevel", MethodOptions_IdempotencyLevel_name, MethodOptions_IdempotencyLevel_value) | |
1926 | 1991 | } |
1927 | 1992 | |
1928 | 1993 | func init() { proto.RegisterFile("google/protobuf/descriptor.proto", fileDescriptor0) } |
1929 | 1994 | |
1930 | 1995 | var fileDescriptor0 = []byte{ |
1931 | // 2287 bytes of a gzipped FileDescriptorProto | |
1932 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xcc, 0x59, 0xcd, 0x73, 0xdb, 0xc6, | |
1933 | 0x15, 0x0f, 0xf8, 0x25, 0xf2, 0x91, 0xa2, 0x56, 0x2b, 0xc5, 0x86, 0xe5, 0x38, 0x96, 0x19, 0x3b, | |
1934 | 0x96, 0xed, 0x96, 0xce, 0xc8, 0x1f, 0x71, 0x94, 0x4e, 0x3a, 0x94, 0x08, 0x2b, 0xf4, 0x50, 0x22, | |
1935 | 0x0b, 0x4a, 0xad, 0x93, 0x1e, 0x30, 0x2b, 0x60, 0x49, 0xc1, 0x06, 0x17, 0x28, 0x00, 0xda, 0x56, | |
1936 | 0x4e, 0x9e, 0xe9, 0xa9, 0xc7, 0xde, 0x3a, 0x6d, 0xa7, 0xd3, 0xc9, 0x25, 0x33, 0xfd, 0x03, 0x7a, | |
1937 | 0xe8, 0xbd, 0xd7, 0xce, 0xf4, 0xde, 0x63, 0x67, 0xda, 0xff, 0xa0, 0xd7, 0xce, 0xee, 0x02, 0x20, | |
1938 | 0xf8, 0x15, 0xab, 0x99, 0x49, 0xd2, 0x93, 0xb8, 0xbf, 0xf7, 0x7b, 0x0f, 0x6f, 0xdf, 0x3e, 0xbc, | |
1939 | 0xf7, 0xb0, 0x82, 0xcd, 0x81, 0xeb, 0x0e, 0x1c, 0x7a, 0xd7, 0xf3, 0xdd, 0xd0, 0x3d, 0x19, 0xf5, | |
1940 | 0xef, 0x5a, 0x34, 0x30, 0x7d, 0xdb, 0x0b, 0x5d, 0xbf, 0x2e, 0x30, 0xbc, 0x22, 0x19, 0xf5, 0x98, | |
1941 | 0x51, 0x3b, 0x80, 0xd5, 0xc7, 0xb6, 0x43, 0x9b, 0x09, 0xb1, 0x47, 0x43, 0xfc, 0x08, 0x72, 0x7d, | |
1942 | 0xdb, 0xa1, 0xaa, 0xb2, 0x99, 0xdd, 0x2a, 0x6f, 0x5f, 0xaf, 0x4f, 0x29, 0xd5, 0x27, 0x35, 0xba, | |
1943 | 0x1c, 0xd6, 0x85, 0x46, 0xed, 0x9f, 0x39, 0x58, 0x9b, 0x23, 0xc5, 0x18, 0x72, 0x8c, 0x0c, 0xb9, | |
1944 | 0x45, 0x65, 0xab, 0xa4, 0x8b, 0xdf, 0x58, 0x85, 0x25, 0x8f, 0x98, 0xcf, 0xc9, 0x80, 0xaa, 0x19, | |
1945 | 0x01, 0xc7, 0x4b, 0xfc, 0x2e, 0x80, 0x45, 0x3d, 0xca, 0x2c, 0xca, 0xcc, 0x33, 0x35, 0xbb, 0x99, | |
1946 | 0xdd, 0x2a, 0xe9, 0x29, 0x04, 0xdf, 0x81, 0x55, 0x6f, 0x74, 0xe2, 0xd8, 0xa6, 0x91, 0xa2, 0xc1, | |
1947 | 0x66, 0x76, 0x2b, 0xaf, 0x23, 0x29, 0x68, 0x8e, 0xc9, 0x37, 0x61, 0xe5, 0x25, 0x25, 0xcf, 0xd3, | |
1948 | 0xd4, 0xb2, 0xa0, 0x56, 0x39, 0x9c, 0x22, 0xee, 0x41, 0x65, 0x48, 0x83, 0x80, 0x0c, 0xa8, 0x11, | |
1949 | 0x9e, 0x79, 0x54, 0xcd, 0x89, 0xdd, 0x6f, 0xce, 0xec, 0x7e, 0x7a, 0xe7, 0xe5, 0x48, 0xeb, 0xe8, | |
1950 | 0xcc, 0xa3, 0xb8, 0x01, 0x25, 0xca, 0x46, 0x43, 0x69, 0x21, 0xbf, 0x20, 0x7e, 0x1a, 0x1b, 0x0d, | |
1951 | 0xa7, 0xad, 0x14, 0xb9, 0x5a, 0x64, 0x62, 0x29, 0xa0, 0xfe, 0x0b, 0xdb, 0xa4, 0x6a, 0x41, 0x18, | |
1952 | 0xb8, 0x39, 0x63, 0xa0, 0x27, 0xe5, 0xd3, 0x36, 0x62, 0x3d, 0xbc, 0x07, 0x25, 0xfa, 0x2a, 0xa4, | |
1953 | 0x2c, 0xb0, 0x5d, 0xa6, 0x2e, 0x09, 0x23, 0x37, 0xe6, 0x9c, 0x22, 0x75, 0xac, 0x69, 0x13, 0x63, | |
1954 | 0x3d, 0xfc, 0x10, 0x96, 0x5c, 0x2f, 0xb4, 0x5d, 0x16, 0xa8, 0xc5, 0x4d, 0x65, 0xab, 0xbc, 0xfd, | |
1955 | 0xce, 0xdc, 0x44, 0xe8, 0x48, 0x8e, 0x1e, 0x93, 0x71, 0x0b, 0x50, 0xe0, 0x8e, 0x7c, 0x93, 0x1a, | |
1956 | 0xa6, 0x6b, 0x51, 0xc3, 0x66, 0x7d, 0x57, 0x2d, 0x09, 0x03, 0x57, 0x67, 0x37, 0x22, 0x88, 0x7b, | |
1957 | 0xae, 0x45, 0x5b, 0xac, 0xef, 0xea, 0xd5, 0x60, 0x62, 0x8d, 0x2f, 0x40, 0x21, 0x38, 0x63, 0x21, | |
1958 | 0x79, 0xa5, 0x56, 0x44, 0x86, 0x44, 0xab, 0xda, 0x7f, 0xf2, 0xb0, 0x72, 0x9e, 0x14, 0xfb, 0x18, | |
1959 | 0xf2, 0x7d, 0xbe, 0x4b, 0x35, 0xf3, 0xbf, 0xc4, 0x40, 0xea, 0x4c, 0x06, 0xb1, 0xf0, 0x0d, 0x83, | |
1960 | 0xd8, 0x80, 0x32, 0xa3, 0x41, 0x48, 0x2d, 0x99, 0x11, 0xd9, 0x73, 0xe6, 0x14, 0x48, 0xa5, 0xd9, | |
1961 | 0x94, 0xca, 0x7d, 0xa3, 0x94, 0x7a, 0x0a, 0x2b, 0x89, 0x4b, 0x86, 0x4f, 0xd8, 0x20, 0xce, 0xcd, | |
1962 | 0xbb, 0x6f, 0xf2, 0xa4, 0xae, 0xc5, 0x7a, 0x3a, 0x57, 0xd3, 0xab, 0x74, 0x62, 0x8d, 0x9b, 0x00, | |
1963 | 0x2e, 0xa3, 0x6e, 0xdf, 0xb0, 0xa8, 0xe9, 0xa8, 0xc5, 0x05, 0x51, 0xea, 0x70, 0xca, 0x4c, 0x94, | |
1964 | 0x5c, 0x89, 0x9a, 0x0e, 0xfe, 0x68, 0x9c, 0x6a, 0x4b, 0x0b, 0x32, 0xe5, 0x40, 0xbe, 0x64, 0x33, | |
1965 | 0xd9, 0x76, 0x0c, 0x55, 0x9f, 0xf2, 0xbc, 0xa7, 0x56, 0xb4, 0xb3, 0x92, 0x70, 0xa2, 0xfe, 0xc6, | |
1966 | 0x9d, 0xe9, 0x91, 0x9a, 0xdc, 0xd8, 0xb2, 0x9f, 0x5e, 0xe2, 0xf7, 0x20, 0x01, 0x0c, 0x91, 0x56, | |
1967 | 0x20, 0xaa, 0x50, 0x25, 0x06, 0x0f, 0xc9, 0x90, 0x6e, 0x3c, 0x82, 0xea, 0x64, 0x78, 0xf0, 0x3a, | |
1968 | 0xe4, 0x83, 0x90, 0xf8, 0xa1, 0xc8, 0xc2, 0xbc, 0x2e, 0x17, 0x18, 0x41, 0x96, 0x32, 0x4b, 0x54, | |
1969 | 0xb9, 0xbc, 0xce, 0x7f, 0x6e, 0x7c, 0x08, 0xcb, 0x13, 0x8f, 0x3f, 0xaf, 0x62, 0xed, 0x37, 0x05, | |
1970 | 0x58, 0x9f, 0x97, 0x73, 0x73, 0xd3, 0xff, 0x02, 0x14, 0xd8, 0x68, 0x78, 0x42, 0x7d, 0x35, 0x2b, | |
1971 | 0x2c, 0x44, 0x2b, 0xdc, 0x80, 0xbc, 0x43, 0x4e, 0xa8, 0xa3, 0xe6, 0x36, 0x95, 0xad, 0xea, 0xf6, | |
1972 | 0x9d, 0x73, 0x65, 0x75, 0xbd, 0xcd, 0x55, 0x74, 0xa9, 0x89, 0x3f, 0x81, 0x5c, 0x54, 0xe2, 0xb8, | |
1973 | 0x85, 0xdb, 0xe7, 0xb3, 0xc0, 0x73, 0x51, 0x17, 0x7a, 0xf8, 0x32, 0x94, 0xf8, 0x5f, 0x19, 0xdb, | |
1974 | 0x82, 0xf0, 0xb9, 0xc8, 0x01, 0x1e, 0x57, 0xbc, 0x01, 0x45, 0x91, 0x66, 0x16, 0x8d, 0x5b, 0x43, | |
1975 | 0xb2, 0xe6, 0x07, 0x63, 0xd1, 0x3e, 0x19, 0x39, 0xa1, 0xf1, 0x82, 0x38, 0x23, 0x2a, 0x12, 0xa6, | |
1976 | 0xa4, 0x57, 0x22, 0xf0, 0xa7, 0x1c, 0xc3, 0x57, 0xa1, 0x2c, 0xb3, 0xd2, 0x66, 0x16, 0x7d, 0x25, | |
1977 | 0xaa, 0x4f, 0x5e, 0x97, 0x89, 0xda, 0xe2, 0x08, 0x7f, 0xfc, 0xb3, 0xc0, 0x65, 0xf1, 0xd1, 0x8a, | |
1978 | 0x47, 0x70, 0x40, 0x3c, 0xfe, 0xc3, 0xe9, 0xc2, 0x77, 0x65, 0xfe, 0xf6, 0xa6, 0x73, 0xb1, 0xf6, | |
1979 | 0xe7, 0x0c, 0xe4, 0xc4, 0xfb, 0xb6, 0x02, 0xe5, 0xa3, 0xcf, 0xba, 0x9a, 0xd1, 0xec, 0x1c, 0xef, | |
1980 | 0xb6, 0x35, 0xa4, 0xe0, 0x2a, 0x80, 0x00, 0x1e, 0xb7, 0x3b, 0x8d, 0x23, 0x94, 0x49, 0xd6, 0xad, | |
1981 | 0xc3, 0xa3, 0x87, 0xf7, 0x51, 0x36, 0x51, 0x38, 0x96, 0x40, 0x2e, 0x4d, 0xb8, 0xb7, 0x8d, 0xf2, | |
1982 | 0x18, 0x41, 0x45, 0x1a, 0x68, 0x3d, 0xd5, 0x9a, 0x0f, 0xef, 0xa3, 0xc2, 0x24, 0x72, 0x6f, 0x1b, | |
1983 | 0x2d, 0xe1, 0x65, 0x28, 0x09, 0x64, 0xb7, 0xd3, 0x69, 0xa3, 0x62, 0x62, 0xb3, 0x77, 0xa4, 0xb7, | |
1984 | 0x0e, 0xf7, 0x51, 0x29, 0xb1, 0xb9, 0xaf, 0x77, 0x8e, 0xbb, 0x08, 0x12, 0x0b, 0x07, 0x5a, 0xaf, | |
1985 | 0xd7, 0xd8, 0xd7, 0x50, 0x39, 0x61, 0xec, 0x7e, 0x76, 0xa4, 0xf5, 0x50, 0x65, 0xc2, 0xad, 0x7b, | |
1986 | 0xdb, 0x68, 0x39, 0x79, 0x84, 0x76, 0x78, 0x7c, 0x80, 0xaa, 0x78, 0x15, 0x96, 0xe5, 0x23, 0x62, | |
1987 | 0x27, 0x56, 0xa6, 0xa0, 0x87, 0xf7, 0x11, 0x1a, 0x3b, 0x22, 0xad, 0xac, 0x4e, 0x00, 0x0f, 0xef, | |
1988 | 0x23, 0x5c, 0xdb, 0x83, 0xbc, 0xc8, 0x2e, 0x8c, 0xa1, 0xda, 0x6e, 0xec, 0x6a, 0x6d, 0xa3, 0xd3, | |
1989 | 0x3d, 0x6a, 0x75, 0x0e, 0x1b, 0x6d, 0xa4, 0x8c, 0x31, 0x5d, 0xfb, 0xc9, 0x71, 0x4b, 0xd7, 0x9a, | |
1990 | 0x28, 0x93, 0xc6, 0xba, 0x5a, 0xe3, 0x48, 0x6b, 0xa2, 0x6c, 0xcd, 0x84, 0xf5, 0x79, 0x75, 0x66, | |
1991 | 0xee, 0x9b, 0x91, 0x3a, 0xe2, 0xcc, 0x82, 0x23, 0x16, 0xb6, 0x66, 0x8e, 0xf8, 0x4b, 0x05, 0xd6, | |
1992 | 0xe6, 0xd4, 0xda, 0xb9, 0x0f, 0xf9, 0x31, 0xe4, 0x65, 0x8a, 0xca, 0xee, 0x73, 0x6b, 0x6e, 0xd1, | |
1993 | 0x16, 0x09, 0x3b, 0xd3, 0x81, 0x84, 0x5e, 0xba, 0x03, 0x67, 0x17, 0x74, 0x60, 0x6e, 0x62, 0xc6, | |
1994 | 0xc9, 0x5f, 0x2a, 0xa0, 0x2e, 0xb2, 0xfd, 0x86, 0x42, 0x91, 0x99, 0x28, 0x14, 0x1f, 0x4f, 0x3b, | |
1995 | 0x70, 0x6d, 0xf1, 0x1e, 0x66, 0xbc, 0xf8, 0x4a, 0x81, 0x0b, 0xf3, 0x07, 0x95, 0xb9, 0x3e, 0x7c, | |
1996 | 0x02, 0x85, 0x21, 0x0d, 0x4f, 0xdd, 0xb8, 0x59, 0xbf, 0x3f, 0xa7, 0x05, 0x70, 0xf1, 0x74, 0xac, | |
1997 | 0x22, 0xad, 0x74, 0x0f, 0xc9, 0x2e, 0x9a, 0x36, 0xa4, 0x37, 0x33, 0x9e, 0xfe, 0x2a, 0x03, 0x6f, | |
1998 | 0xcf, 0x35, 0x3e, 0xd7, 0xd1, 0x2b, 0x00, 0x36, 0xf3, 0x46, 0xa1, 0x6c, 0xc8, 0xb2, 0x3e, 0x95, | |
1999 | 0x04, 0x22, 0xde, 0x7d, 0x5e, 0x7b, 0x46, 0x61, 0x22, 0xcf, 0x0a, 0x39, 0x48, 0x48, 0x10, 0x1e, | |
2000 | 0x8d, 0x1d, 0xcd, 0x09, 0x47, 0xdf, 0x5d, 0xb0, 0xd3, 0x99, 0x5e, 0xf7, 0x01, 0x20, 0xd3, 0xb1, | |
2001 | 0x29, 0x0b, 0x8d, 0x20, 0xf4, 0x29, 0x19, 0xda, 0x6c, 0x20, 0x0a, 0x70, 0x71, 0x27, 0xdf, 0x27, | |
2002 | 0x4e, 0x40, 0xf5, 0x15, 0x29, 0xee, 0xc5, 0x52, 0xae, 0x21, 0xba, 0x8c, 0x9f, 0xd2, 0x28, 0x4c, | |
2003 | 0x68, 0x48, 0x71, 0xa2, 0x51, 0xfb, 0xf5, 0x12, 0x94, 0x53, 0x63, 0x1d, 0xbe, 0x06, 0x95, 0x67, | |
2004 | 0xe4, 0x05, 0x31, 0xe2, 0x51, 0x5d, 0x46, 0xa2, 0xcc, 0xb1, 0x6e, 0x34, 0xae, 0x7f, 0x00, 0xeb, | |
2005 | 0x82, 0xe2, 0x8e, 0x42, 0xea, 0x1b, 0xa6, 0x43, 0x82, 0x40, 0x04, 0xad, 0x28, 0xa8, 0x98, 0xcb, | |
2006 | 0x3a, 0x5c, 0xb4, 0x17, 0x4b, 0xf0, 0x03, 0x58, 0x13, 0x1a, 0xc3, 0x91, 0x13, 0xda, 0x9e, 0x43, | |
2007 | 0x0d, 0xfe, 0xf1, 0x10, 0x88, 0x42, 0x9c, 0x78, 0xb6, 0xca, 0x19, 0x07, 0x11, 0x81, 0x7b, 0x14, | |
2008 | 0xe0, 0x7d, 0xb8, 0x22, 0xd4, 0x06, 0x94, 0x51, 0x9f, 0x84, 0xd4, 0xa0, 0xbf, 0x18, 0x11, 0x27, | |
2009 | 0x30, 0x08, 0xb3, 0x8c, 0x53, 0x12, 0x9c, 0xaa, 0xeb, 0x69, 0x03, 0x97, 0x38, 0x77, 0x3f, 0xa2, | |
2010 | 0x6a, 0x82, 0xd9, 0x60, 0xd6, 0xa7, 0x24, 0x38, 0xc5, 0x3b, 0x70, 0x41, 0x18, 0x0a, 0x42, 0xdf, | |
2011 | 0x66, 0x03, 0xc3, 0x3c, 0xa5, 0xe6, 0x73, 0x63, 0x14, 0xf6, 0x1f, 0xa9, 0x97, 0xd3, 0x16, 0x84, | |
2012 | 0x93, 0x3d, 0xc1, 0xd9, 0xe3, 0x94, 0xe3, 0xb0, 0xff, 0x08, 0xf7, 0xa0, 0xc2, 0xcf, 0x63, 0x68, | |
2013 | 0x7f, 0x41, 0x8d, 0xbe, 0xeb, 0x8b, 0xe6, 0x52, 0x9d, 0xf3, 0x72, 0xa7, 0x82, 0x58, 0xef, 0x44, | |
2014 | 0x0a, 0x07, 0xae, 0x45, 0x77, 0xf2, 0xbd, 0xae, 0xa6, 0x35, 0xf5, 0x72, 0x6c, 0xe5, 0xb1, 0xeb, | |
2015 | 0xf3, 0x9c, 0x1a, 0xb8, 0x49, 0x8c, 0xcb, 0x32, 0xa7, 0x06, 0x6e, 0x1c, 0xe1, 0x07, 0xb0, 0x66, | |
2016 | 0x9a, 0x72, 0xdb, 0xb6, 0x69, 0x44, 0x53, 0x7e, 0xa0, 0xa2, 0x89, 0x78, 0x99, 0xe6, 0xbe, 0x24, | |
2017 | 0x44, 0x69, 0x1e, 0xe0, 0x8f, 0xe0, 0xed, 0x71, 0xbc, 0xd2, 0x8a, 0xab, 0x33, 0xbb, 0x9c, 0x56, | |
2018 | 0x7d, 0x00, 0x6b, 0xde, 0xd9, 0xac, 0x22, 0x9e, 0x78, 0xa2, 0x77, 0x36, 0xad, 0x76, 0x43, 0x7c, | |
2019 | 0xb9, 0xf9, 0xd4, 0x24, 0x21, 0xb5, 0xd4, 0x8b, 0x69, 0x76, 0x4a, 0x80, 0xef, 0x02, 0x32, 0x4d, | |
2020 | 0x83, 0x32, 0x72, 0xe2, 0x50, 0x83, 0xf8, 0x94, 0x91, 0x40, 0xbd, 0x9a, 0x26, 0x57, 0x4d, 0x53, | |
2021 | 0x13, 0xd2, 0x86, 0x10, 0xe2, 0xdb, 0xb0, 0xea, 0x9e, 0x3c, 0x33, 0x65, 0x72, 0x19, 0x9e, 0x4f, | |
2022 | 0xfb, 0xf6, 0x2b, 0xf5, 0xba, 0x08, 0xd3, 0x0a, 0x17, 0x88, 0xd4, 0xea, 0x0a, 0x18, 0xdf, 0x02, | |
2023 | 0x64, 0x06, 0xa7, 0xc4, 0xf7, 0x44, 0x77, 0x0f, 0x3c, 0x62, 0x52, 0xf5, 0x86, 0xa4, 0x4a, 0xfc, | |
2024 | 0x30, 0x86, 0xf1, 0x53, 0x58, 0x1f, 0x31, 0x9b, 0x85, 0xd4, 0xf7, 0x7c, 0xca, 0x87, 0x74, 0xf9, | |
2025 | 0xa6, 0xa9, 0xff, 0x5a, 0x5a, 0x30, 0x66, 0x1f, 0xa7, 0xd9, 0xf2, 0x74, 0xf5, 0xb5, 0xd1, 0x2c, | |
2026 | 0x58, 0xdb, 0x81, 0x4a, 0xfa, 0xd0, 0x71, 0x09, 0xe4, 0xb1, 0x23, 0x85, 0xf7, 0xd0, 0xbd, 0x4e, | |
2027 | 0x93, 0x77, 0xbf, 0xcf, 0x35, 0x94, 0xe1, 0x5d, 0xb8, 0xdd, 0x3a, 0xd2, 0x0c, 0xfd, 0xf8, 0xf0, | |
2028 | 0xa8, 0x75, 0xa0, 0xa1, 0xec, 0xed, 0x52, 0xf1, 0xdf, 0x4b, 0xe8, 0xf5, 0xeb, 0xd7, 0xaf, 0x33, | |
2029 | 0x4f, 0x72, 0xc5, 0xf7, 0xd1, 0xcd, 0xda, 0x5f, 0x33, 0x50, 0x9d, 0x9c, 0x7f, 0xf1, 0x8f, 0xe0, | |
2030 | 0x62, 0xfc, 0xb1, 0x1a, 0xd0, 0xd0, 0x78, 0x69, 0xfb, 0x22, 0x1b, 0x87, 0x44, 0x4e, 0x90, 0x49, | |
2031 | 0x20, 0xd7, 0x23, 0x56, 0x8f, 0x86, 0x3f, 0xb3, 0x7d, 0x9e, 0x6b, 0x43, 0x12, 0xe2, 0x36, 0x5c, | |
2032 | 0x65, 0xae, 0x11, 0x84, 0x84, 0x59, 0xc4, 0xb7, 0x8c, 0xf1, 0x35, 0x81, 0x41, 0x4c, 0x93, 0x06, | |
2033 | 0x81, 0x2b, 0x1b, 0x41, 0x62, 0xe5, 0x1d, 0xe6, 0xf6, 0x22, 0xf2, 0xb8, 0x42, 0x36, 0x22, 0xea, | |
2034 | 0xd4, 0xa1, 0x67, 0x17, 0x1d, 0xfa, 0x65, 0x28, 0x0d, 0x89, 0x67, 0x50, 0x16, 0xfa, 0x67, 0x62, | |
2035 | 0x6a, 0x2b, 0xea, 0xc5, 0x21, 0xf1, 0x34, 0xbe, 0xfe, 0xf6, 0x4e, 0x22, 0x15, 0xcd, 0xda, 0x3f, | |
2036 | 0xb2, 0x50, 0x49, 0x4f, 0x6e, 0x7c, 0x10, 0x36, 0x45, 0x95, 0x56, 0xc4, 0x4b, 0xfc, 0xde, 0xd7, | |
2037 | 0xce, 0x79, 0xf5, 0x3d, 0x5e, 0xbe, 0x77, 0x0a, 0x72, 0x9e, 0xd2, 0xa5, 0x26, 0x6f, 0x9d, 0xfc, | |
2038 | 0xb5, 0xa5, 0x72, 0x4a, 0x2f, 0xea, 0xd1, 0x0a, 0xef, 0x43, 0xe1, 0x59, 0x20, 0x6c, 0x17, 0x84, | |
2039 | 0xed, 0xeb, 0x5f, 0x6f, 0xfb, 0x49, 0x4f, 0x18, 0x2f, 0x3d, 0xe9, 0x19, 0x87, 0x1d, 0xfd, 0xa0, | |
2040 | 0xd1, 0xd6, 0x23, 0x75, 0x7c, 0x09, 0x72, 0x0e, 0xf9, 0xe2, 0x6c, 0xb2, 0xd0, 0x0b, 0xe8, 0xbc, | |
2041 | 0x81, 0xbf, 0x04, 0xb9, 0x97, 0x94, 0x3c, 0x9f, 0x2c, 0xaf, 0x02, 0xfa, 0x16, 0x5f, 0x80, 0xbb, | |
2042 | 0x90, 0x17, 0xf1, 0xc2, 0x00, 0x51, 0xc4, 0xd0, 0x5b, 0xb8, 0x08, 0xb9, 0xbd, 0x8e, 0xce, 0x5f, | |
2043 | 0x02, 0x04, 0x15, 0x89, 0x1a, 0xdd, 0x96, 0xb6, 0xa7, 0xa1, 0x4c, 0xed, 0x01, 0x14, 0x64, 0x10, | |
2044 | 0xf8, 0x0b, 0x92, 0x84, 0x01, 0xbd, 0x15, 0x2d, 0x23, 0x1b, 0x4a, 0x2c, 0x3d, 0x3e, 0xd8, 0xd5, | |
2045 | 0x74, 0x94, 0x49, 0x1f, 0x6f, 0x00, 0x95, 0xf4, 0xd0, 0xf6, 0xdd, 0xe4, 0xd4, 0x5f, 0x14, 0x28, | |
2046 | 0xa7, 0x86, 0x30, 0xde, 0xfe, 0x89, 0xe3, 0xb8, 0x2f, 0x0d, 0xe2, 0xd8, 0x24, 0x88, 0x92, 0x02, | |
2047 | 0x04, 0xd4, 0xe0, 0xc8, 0x79, 0x0f, 0xed, 0x3b, 0x71, 0xfe, 0x0f, 0x0a, 0xa0, 0xe9, 0x01, 0x6e, | |
2048 | 0xca, 0x41, 0xe5, 0x7b, 0x75, 0xf0, 0xf7, 0x0a, 0x54, 0x27, 0xa7, 0xb6, 0x29, 0xf7, 0xae, 0x7d, | |
2049 | 0xaf, 0xee, 0xfd, 0x4e, 0x81, 0xe5, 0x89, 0x59, 0xed, 0xff, 0xca, 0xbb, 0xdf, 0x66, 0x61, 0x6d, | |
2050 | 0x8e, 0x1e, 0x6e, 0x44, 0x43, 0xad, 0x9c, 0xb3, 0x7f, 0x78, 0x9e, 0x67, 0xd5, 0x79, 0xcf, 0xec, | |
2051 | 0x12, 0x3f, 0x8c, 0x66, 0xe0, 0x5b, 0x80, 0x6c, 0x8b, 0xb2, 0xd0, 0xee, 0xdb, 0xd4, 0x8f, 0x3e, | |
2052 | 0xc4, 0xe5, 0xa4, 0xbb, 0x32, 0xc6, 0xe5, 0xb7, 0xf8, 0x0f, 0x00, 0x7b, 0x6e, 0x60, 0x87, 0xf6, | |
2053 | 0x0b, 0x6a, 0xd8, 0x2c, 0xfe, 0x6a, 0xe7, 0x93, 0x6f, 0x4e, 0x47, 0xb1, 0xa4, 0xc5, 0xc2, 0x84, | |
2054 | 0xcd, 0xe8, 0x80, 0x4c, 0xb1, 0x79, 0xed, 0xcb, 0xea, 0x28, 0x96, 0x24, 0xec, 0x6b, 0x50, 0xb1, | |
2055 | 0xdc, 0x11, 0x1f, 0x22, 0x24, 0x8f, 0x97, 0x5a, 0x45, 0x2f, 0x4b, 0x2c, 0xa1, 0x44, 0x53, 0xde, | |
2056 | 0xf8, 0xba, 0xa0, 0xa2, 0x97, 0x25, 0x26, 0x29, 0x37, 0x61, 0x85, 0x0c, 0x06, 0x3e, 0x37, 0x1e, | |
2057 | 0x1b, 0x92, 0xa3, 0x6b, 0x35, 0x81, 0x05, 0x71, 0xe3, 0x09, 0x14, 0xe3, 0x38, 0xf0, 0x6e, 0xc6, | |
2058 | 0x23, 0x61, 0x78, 0xf2, 0xd2, 0x26, 0xb3, 0x55, 0xd2, 0x8b, 0x2c, 0x16, 0x5e, 0x83, 0x8a, 0x1d, | |
2059 | 0x18, 0xe3, 0xdb, 0xc3, 0xcc, 0x66, 0x66, 0xab, 0xa8, 0x97, 0xed, 0x20, 0xb9, 0x2e, 0xaa, 0x7d, | |
2060 | 0x95, 0x81, 0xea, 0xe4, 0xed, 0x27, 0x6e, 0x42, 0xd1, 0x71, 0x4d, 0x22, 0x12, 0x41, 0x5e, 0xbd, | |
2061 | 0x6f, 0xbd, 0xe1, 0xc2, 0xb4, 0xde, 0x8e, 0xf8, 0x7a, 0xa2, 0xb9, 0xf1, 0x37, 0x05, 0x8a, 0x31, | |
2062 | 0x8c, 0x2f, 0x40, 0xce, 0x23, 0xe1, 0xa9, 0x30, 0x97, 0xdf, 0xcd, 0x20, 0x45, 0x17, 0x6b, 0x8e, | |
2063 | 0x07, 0x1e, 0x61, 0x22, 0x05, 0x22, 0x9c, 0xaf, 0xf9, 0xb9, 0x3a, 0x94, 0x58, 0x62, 0x28, 0x76, | |
2064 | 0x87, 0x43, 0xca, 0xc2, 0x20, 0x3e, 0xd7, 0x08, 0xdf, 0x8b, 0x60, 0x7c, 0x07, 0x56, 0x43, 0x9f, | |
2065 | 0xd8, 0xce, 0x04, 0x37, 0x27, 0xb8, 0x28, 0x16, 0x24, 0xe4, 0x1d, 0xb8, 0x14, 0xdb, 0xb5, 0x68, | |
2066 | 0x48, 0xcc, 0x53, 0x6a, 0x8d, 0x95, 0x0a, 0xe2, 0x6a, 0xed, 0x62, 0x44, 0x68, 0x46, 0xf2, 0x58, | |
2067 | 0xb7, 0xf6, 0x77, 0x05, 0x56, 0xe3, 0x31, 0xde, 0x4a, 0x82, 0x75, 0x00, 0x40, 0x18, 0x73, 0xc3, | |
2068 | 0x74, 0xb8, 0x66, 0x53, 0x79, 0x46, 0xaf, 0xde, 0x48, 0x94, 0xf4, 0x94, 0x81, 0x8d, 0x21, 0xc0, | |
2069 | 0x58, 0xb2, 0x30, 0x6c, 0x57, 0xa1, 0x1c, 0x5d, 0x6d, 0x8b, 0xff, 0x8f, 0xc8, 0x6f, 0x3f, 0x90, | |
2070 | 0x10, 0x9f, 0xf7, 0xf1, 0x3a, 0xe4, 0x4f, 0xe8, 0xc0, 0x66, 0xd1, 0x85, 0x9b, 0x5c, 0xc4, 0xd7, | |
2071 | 0x78, 0xb9, 0xe4, 0x1a, 0x6f, 0xf7, 0xe7, 0xb0, 0x66, 0xba, 0xc3, 0x69, 0x77, 0x77, 0xd1, 0xd4, | |
2072 | 0xf7, 0x67, 0xf0, 0xa9, 0xf2, 0x39, 0x8c, 0xa7, 0xb3, 0x3f, 0x2a, 0xca, 0x97, 0x99, 0xec, 0x7e, | |
2073 | 0x77, 0xf7, 0x4f, 0x99, 0x8d, 0x7d, 0xa9, 0xda, 0x8d, 0x77, 0xaa, 0xd3, 0xbe, 0x43, 0x4d, 0xee, | |
2074 | 0xfd, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x05, 0x54, 0xc8, 0x7d, 0x07, 0x1a, 0x00, 0x00, | |
2075 | } | |
1996 | // 2460 bytes of a gzipped FileDescriptorProto | |
1997 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0x5b, 0x6f, 0xdb, 0xc8, | |
1998 | 0x15, 0x5e, 0x5d, 0x2d, 0x1d, 0xc9, 0xf2, 0x78, 0xec, 0x4d, 0x18, 0xef, 0x25, 0x8e, 0xf6, 0x12, | |
1999 | 0x6f, 0xd2, 0xc8, 0x0b, 0xe7, 0xb2, 0x59, 0xa7, 0x48, 0x21, 0x4b, 0x8c, 0x57, 0xa9, 0x2c, 0xa9, | |
2000 | 0x94, 0xdc, 0x4d, 0xf6, 0x85, 0x18, 0x93, 0x23, 0x99, 0x09, 0x45, 0x72, 0x49, 0x2a, 0x89, 0xf7, | |
2001 | 0x29, 0x40, 0x9f, 0x0a, 0xf4, 0x07, 0x14, 0x45, 0xd1, 0x87, 0x7d, 0x59, 0xa0, 0x3f, 0xa0, 0xcf, | |
2002 | 0xfd, 0x05, 0x05, 0xf6, 0xb9, 0x2f, 0x45, 0x51, 0xa0, 0xfd, 0x07, 0x7d, 0x2d, 0x66, 0x86, 0xa4, | |
2003 | 0x48, 0x5d, 0x12, 0x77, 0x81, 0xec, 0x3e, 0xd9, 0x73, 0xce, 0x77, 0x0e, 0xcf, 0x9c, 0xf9, 0x66, | |
2004 | 0xce, 0x99, 0x11, 0x6c, 0x8f, 0x6c, 0x7b, 0x64, 0xd2, 0x5d, 0xc7, 0xb5, 0x7d, 0xfb, 0x64, 0x32, | |
2005 | 0xdc, 0xd5, 0xa9, 0xa7, 0xb9, 0x86, 0xe3, 0xdb, 0x6e, 0x8d, 0xcb, 0xf0, 0x9a, 0x40, 0xd4, 0x42, | |
2006 | 0x44, 0xf5, 0x08, 0xd6, 0x1f, 0x18, 0x26, 0x6d, 0x46, 0xc0, 0x3e, 0xf5, 0xf1, 0x5d, 0xc8, 0x0e, | |
2007 | 0x0d, 0x93, 0x4a, 0xa9, 0xed, 0xcc, 0x4e, 0x69, 0xef, 0xc3, 0xda, 0x8c, 0x51, 0x2d, 0x69, 0xd1, | |
2008 | 0x63, 0x62, 0x85, 0x5b, 0x54, 0xff, 0x95, 0x85, 0x8d, 0x05, 0x5a, 0x8c, 0x21, 0x6b, 0x91, 0x31, | |
2009 | 0xf3, 0x98, 0xda, 0x29, 0x2a, 0xfc, 0x7f, 0x2c, 0xc1, 0x8a, 0x43, 0xb4, 0xa7, 0x64, 0x44, 0xa5, | |
2010 | 0x34, 0x17, 0x87, 0x43, 0xfc, 0x3e, 0x80, 0x4e, 0x1d, 0x6a, 0xe9, 0xd4, 0xd2, 0xce, 0xa4, 0xcc, | |
2011 | 0x76, 0x66, 0xa7, 0xa8, 0xc4, 0x24, 0xf8, 0x3a, 0xac, 0x3b, 0x93, 0x13, 0xd3, 0xd0, 0xd4, 0x18, | |
2012 | 0x0c, 0xb6, 0x33, 0x3b, 0x39, 0x05, 0x09, 0x45, 0x73, 0x0a, 0xbe, 0x0a, 0x6b, 0xcf, 0x29, 0x79, | |
2013 | 0x1a, 0x87, 0x96, 0x38, 0xb4, 0xc2, 0xc4, 0x31, 0x60, 0x03, 0xca, 0x63, 0xea, 0x79, 0x64, 0x44, | |
2014 | 0x55, 0xff, 0xcc, 0xa1, 0x52, 0x96, 0xcf, 0x7e, 0x7b, 0x6e, 0xf6, 0xb3, 0x33, 0x2f, 0x05, 0x56, | |
2015 | 0x83, 0x33, 0x87, 0xe2, 0x3a, 0x14, 0xa9, 0x35, 0x19, 0x0b, 0x0f, 0xb9, 0x25, 0xf9, 0x93, 0xad, | |
2016 | 0xc9, 0x78, 0xd6, 0x4b, 0x81, 0x99, 0x05, 0x2e, 0x56, 0x3c, 0xea, 0x3e, 0x33, 0x34, 0x2a, 0xe5, | |
2017 | 0xb9, 0x83, 0xab, 0x73, 0x0e, 0xfa, 0x42, 0x3f, 0xeb, 0x23, 0xb4, 0xc3, 0x0d, 0x28, 0xd2, 0x17, | |
2018 | 0x3e, 0xb5, 0x3c, 0xc3, 0xb6, 0xa4, 0x15, 0xee, 0xe4, 0xa3, 0x05, 0xab, 0x48, 0x4d, 0x7d, 0xd6, | |
2019 | 0xc5, 0xd4, 0x0e, 0xdf, 0x81, 0x15, 0xdb, 0xf1, 0x0d, 0xdb, 0xf2, 0xa4, 0xc2, 0x76, 0x6a, 0xa7, | |
2020 | 0xb4, 0xf7, 0xee, 0x42, 0x22, 0x74, 0x05, 0x46, 0x09, 0xc1, 0xb8, 0x05, 0xc8, 0xb3, 0x27, 0xae, | |
2021 | 0x46, 0x55, 0xcd, 0xd6, 0xa9, 0x6a, 0x58, 0x43, 0x5b, 0x2a, 0x72, 0x07, 0x97, 0xe7, 0x27, 0xc2, | |
2022 | 0x81, 0x0d, 0x5b, 0xa7, 0x2d, 0x6b, 0x68, 0x2b, 0x15, 0x2f, 0x31, 0xc6, 0x17, 0x20, 0xef, 0x9d, | |
2023 | 0x59, 0x3e, 0x79, 0x21, 0x95, 0x39, 0x43, 0x82, 0x51, 0xf5, 0xbf, 0x39, 0x58, 0x3b, 0x0f, 0xc5, | |
2024 | 0xee, 0x41, 0x6e, 0xc8, 0x66, 0x29, 0xa5, 0xff, 0x9f, 0x1c, 0x08, 0x9b, 0x64, 0x12, 0xf3, 0x3f, | |
2025 | 0x30, 0x89, 0x75, 0x28, 0x59, 0xd4, 0xf3, 0xa9, 0x2e, 0x18, 0x91, 0x39, 0x27, 0xa7, 0x40, 0x18, | |
2026 | 0xcd, 0x53, 0x2a, 0xfb, 0x83, 0x28, 0xf5, 0x08, 0xd6, 0xa2, 0x90, 0x54, 0x97, 0x58, 0xa3, 0x90, | |
2027 | 0x9b, 0xbb, 0xaf, 0x8b, 0xa4, 0x26, 0x87, 0x76, 0x0a, 0x33, 0x53, 0x2a, 0x34, 0x31, 0xc6, 0x4d, | |
2028 | 0x00, 0xdb, 0xa2, 0xf6, 0x50, 0xd5, 0xa9, 0x66, 0x4a, 0x85, 0x25, 0x59, 0xea, 0x32, 0xc8, 0x5c, | |
2029 | 0x96, 0x6c, 0x21, 0xd5, 0x4c, 0xfc, 0xf9, 0x94, 0x6a, 0x2b, 0x4b, 0x98, 0x72, 0x24, 0x36, 0xd9, | |
2030 | 0x1c, 0xdb, 0x8e, 0xa1, 0xe2, 0x52, 0xc6, 0x7b, 0xaa, 0x07, 0x33, 0x2b, 0xf2, 0x20, 0x6a, 0xaf, | |
2031 | 0x9d, 0x99, 0x12, 0x98, 0x89, 0x89, 0xad, 0xba, 0xf1, 0x21, 0xfe, 0x00, 0x22, 0x81, 0xca, 0x69, | |
2032 | 0x05, 0xfc, 0x14, 0x2a, 0x87, 0xc2, 0x0e, 0x19, 0xd3, 0xad, 0xbb, 0x50, 0x49, 0xa6, 0x07, 0x6f, | |
2033 | 0x42, 0xce, 0xf3, 0x89, 0xeb, 0x73, 0x16, 0xe6, 0x14, 0x31, 0xc0, 0x08, 0x32, 0xd4, 0xd2, 0xf9, | |
2034 | 0x29, 0x97, 0x53, 0xd8, 0xbf, 0x5b, 0x9f, 0xc1, 0x6a, 0xe2, 0xf3, 0xe7, 0x35, 0xac, 0xfe, 0x3e, | |
2035 | 0x0f, 0x9b, 0x8b, 0x38, 0xb7, 0x90, 0xfe, 0x17, 0x20, 0x6f, 0x4d, 0xc6, 0x27, 0xd4, 0x95, 0x32, | |
2036 | 0xdc, 0x43, 0x30, 0xc2, 0x75, 0xc8, 0x99, 0xe4, 0x84, 0x9a, 0x52, 0x76, 0x3b, 0xb5, 0x53, 0xd9, | |
2037 | 0xbb, 0x7e, 0x2e, 0x56, 0xd7, 0xda, 0xcc, 0x44, 0x11, 0x96, 0xf8, 0x3e, 0x64, 0x83, 0x23, 0x8e, | |
2038 | 0x79, 0xb8, 0x76, 0x3e, 0x0f, 0x8c, 0x8b, 0x0a, 0xb7, 0xc3, 0xef, 0x40, 0x91, 0xfd, 0x15, 0xb9, | |
2039 | 0xcd, 0xf3, 0x98, 0x0b, 0x4c, 0xc0, 0xf2, 0x8a, 0xb7, 0xa0, 0xc0, 0x69, 0xa6, 0xd3, 0xb0, 0x34, | |
2040 | 0x44, 0x63, 0xb6, 0x30, 0x3a, 0x1d, 0x92, 0x89, 0xe9, 0xab, 0xcf, 0x88, 0x39, 0xa1, 0x9c, 0x30, | |
2041 | 0x45, 0xa5, 0x1c, 0x08, 0x7f, 0xcd, 0x64, 0xf8, 0x32, 0x94, 0x04, 0x2b, 0x0d, 0x4b, 0xa7, 0x2f, | |
2042 | 0xf8, 0xe9, 0x93, 0x53, 0x04, 0x51, 0x5b, 0x4c, 0xc2, 0x3e, 0xff, 0xc4, 0xb3, 0xad, 0x70, 0x69, | |
2043 | 0xf9, 0x27, 0x98, 0x80, 0x7f, 0xfe, 0xb3, 0xd9, 0x83, 0xef, 0xbd, 0xc5, 0xd3, 0x9b, 0xe5, 0x62, | |
2044 | 0xf5, 0x2f, 0x69, 0xc8, 0xf2, 0xfd, 0xb6, 0x06, 0xa5, 0xc1, 0xe3, 0x9e, 0xac, 0x36, 0xbb, 0xc7, | |
2045 | 0x07, 0x6d, 0x19, 0xa5, 0x70, 0x05, 0x80, 0x0b, 0x1e, 0xb4, 0xbb, 0xf5, 0x01, 0x4a, 0x47, 0xe3, | |
2046 | 0x56, 0x67, 0x70, 0xe7, 0x16, 0xca, 0x44, 0x06, 0xc7, 0x42, 0x90, 0x8d, 0x03, 0x6e, 0xee, 0xa1, | |
2047 | 0x1c, 0x46, 0x50, 0x16, 0x0e, 0x5a, 0x8f, 0xe4, 0xe6, 0x9d, 0x5b, 0x28, 0x9f, 0x94, 0xdc, 0xdc, | |
2048 | 0x43, 0x2b, 0x78, 0x15, 0x8a, 0x5c, 0x72, 0xd0, 0xed, 0xb6, 0x51, 0x21, 0xf2, 0xd9, 0x1f, 0x28, | |
2049 | 0xad, 0xce, 0x21, 0x2a, 0x46, 0x3e, 0x0f, 0x95, 0xee, 0x71, 0x0f, 0x41, 0xe4, 0xe1, 0x48, 0xee, | |
2050 | 0xf7, 0xeb, 0x87, 0x32, 0x2a, 0x45, 0x88, 0x83, 0xc7, 0x03, 0xb9, 0x8f, 0xca, 0x89, 0xb0, 0x6e, | |
2051 | 0xee, 0xa1, 0xd5, 0xe8, 0x13, 0x72, 0xe7, 0xf8, 0x08, 0x55, 0xf0, 0x3a, 0xac, 0x8a, 0x4f, 0x84, | |
2052 | 0x41, 0xac, 0xcd, 0x88, 0xee, 0xdc, 0x42, 0x68, 0x1a, 0x88, 0xf0, 0xb2, 0x9e, 0x10, 0xdc, 0xb9, | |
2053 | 0x85, 0x70, 0xb5, 0x01, 0x39, 0xce, 0x2e, 0x8c, 0xa1, 0xd2, 0xae, 0x1f, 0xc8, 0x6d, 0xb5, 0xdb, | |
2054 | 0x1b, 0xb4, 0xba, 0x9d, 0x7a, 0x1b, 0xa5, 0xa6, 0x32, 0x45, 0xfe, 0xd5, 0x71, 0x4b, 0x91, 0x9b, | |
2055 | 0x28, 0x1d, 0x97, 0xf5, 0xe4, 0xfa, 0x40, 0x6e, 0xa2, 0x4c, 0x55, 0x83, 0xcd, 0x45, 0xe7, 0xcc, | |
2056 | 0xc2, 0x9d, 0x11, 0x5b, 0xe2, 0xf4, 0x92, 0x25, 0xe6, 0xbe, 0xe6, 0x96, 0xf8, 0xdb, 0x14, 0x6c, | |
2057 | 0x2c, 0x38, 0x6b, 0x17, 0x7e, 0xe4, 0x17, 0x90, 0x13, 0x14, 0x15, 0xd5, 0xe7, 0x93, 0x85, 0x87, | |
2058 | 0x36, 0x27, 0xec, 0x5c, 0x05, 0xe2, 0x76, 0xf1, 0x0a, 0x9c, 0x59, 0x52, 0x81, 0x99, 0x8b, 0xb9, | |
2059 | 0x20, 0x7f, 0x93, 0x02, 0x69, 0x99, 0xef, 0xd7, 0x1c, 0x14, 0xe9, 0xc4, 0x41, 0x71, 0x6f, 0x36, | |
2060 | 0x80, 0x2b, 0xcb, 0xe7, 0x30, 0x17, 0xc5, 0x77, 0x29, 0xb8, 0xb0, 0xb8, 0x51, 0x59, 0x18, 0xc3, | |
2061 | 0x7d, 0xc8, 0x8f, 0xa9, 0x7f, 0x6a, 0x87, 0xc5, 0xfa, 0xe3, 0x05, 0x25, 0x80, 0xa9, 0x67, 0x73, | |
2062 | 0x15, 0x58, 0xc5, 0x6b, 0x48, 0x66, 0x59, 0xb7, 0x21, 0xa2, 0x99, 0x8b, 0xf4, 0xb7, 0x69, 0x78, | |
2063 | 0x7b, 0xa1, 0xf3, 0x85, 0x81, 0xbe, 0x07, 0x60, 0x58, 0xce, 0xc4, 0x17, 0x05, 0x59, 0x9c, 0x4f, | |
2064 | 0x45, 0x2e, 0xe1, 0x7b, 0x9f, 0x9d, 0x3d, 0x13, 0x3f, 0xd2, 0x67, 0xb8, 0x1e, 0x84, 0x88, 0x03, | |
2065 | 0xee, 0x4e, 0x03, 0xcd, 0xf2, 0x40, 0xdf, 0x5f, 0x32, 0xd3, 0xb9, 0x5a, 0xf7, 0x29, 0x20, 0xcd, | |
2066 | 0x34, 0xa8, 0xe5, 0xab, 0x9e, 0xef, 0x52, 0x32, 0x36, 0xac, 0x11, 0x3f, 0x80, 0x0b, 0xfb, 0xb9, | |
2067 | 0x21, 0x31, 0x3d, 0xaa, 0xac, 0x09, 0x75, 0x3f, 0xd4, 0x32, 0x0b, 0x5e, 0x65, 0xdc, 0x98, 0x45, | |
2068 | 0x3e, 0x61, 0x21, 0xd4, 0x91, 0x45, 0xf5, 0xef, 0x2b, 0x50, 0x8a, 0xb5, 0x75, 0xf8, 0x0a, 0x94, | |
2069 | 0x9f, 0x90, 0x67, 0x44, 0x0d, 0x5b, 0x75, 0x91, 0x89, 0x12, 0x93, 0xf5, 0x82, 0x76, 0xfd, 0x53, | |
2070 | 0xd8, 0xe4, 0x10, 0x7b, 0xe2, 0x53, 0x57, 0xd5, 0x4c, 0xe2, 0x79, 0x3c, 0x69, 0x05, 0x0e, 0xc5, | |
2071 | 0x4c, 0xd7, 0x65, 0xaa, 0x46, 0xa8, 0xc1, 0xb7, 0x61, 0x83, 0x5b, 0x8c, 0x27, 0xa6, 0x6f, 0x38, | |
2072 | 0x26, 0x55, 0xd9, 0xe5, 0xc1, 0xe3, 0x07, 0x71, 0x14, 0xd9, 0x3a, 0x43, 0x1c, 0x05, 0x00, 0x16, | |
2073 | 0x91, 0x87, 0x9b, 0xf0, 0x1e, 0x37, 0x1b, 0x51, 0x8b, 0xba, 0xc4, 0xa7, 0x2a, 0xfd, 0x7a, 0x42, | |
2074 | 0x4c, 0x4f, 0x25, 0x96, 0xae, 0x9e, 0x12, 0xef, 0x54, 0xda, 0x64, 0x0e, 0x0e, 0xd2, 0x52, 0x4a, | |
2075 | 0xb9, 0xc4, 0x80, 0x87, 0x01, 0x4e, 0xe6, 0xb0, 0xba, 0xa5, 0x7f, 0x41, 0xbc, 0x53, 0xbc, 0x0f, | |
2076 | 0x17, 0xb8, 0x17, 0xcf, 0x77, 0x0d, 0x6b, 0xa4, 0x6a, 0xa7, 0x54, 0x7b, 0xaa, 0x4e, 0xfc, 0xe1, | |
2077 | 0x5d, 0xe9, 0x9d, 0xf8, 0xf7, 0x79, 0x84, 0x7d, 0x8e, 0x69, 0x30, 0xc8, 0xb1, 0x3f, 0xbc, 0x8b, | |
2078 | 0xfb, 0x50, 0x66, 0x8b, 0x31, 0x36, 0xbe, 0xa1, 0xea, 0xd0, 0x76, 0x79, 0x65, 0xa9, 0x2c, 0xd8, | |
2079 | 0xd9, 0xb1, 0x0c, 0xd6, 0xba, 0x81, 0xc1, 0x91, 0xad, 0xd3, 0xfd, 0x5c, 0xbf, 0x27, 0xcb, 0x4d, | |
2080 | 0xa5, 0x14, 0x7a, 0x79, 0x60, 0xbb, 0x8c, 0x50, 0x23, 0x3b, 0x4a, 0x70, 0x49, 0x10, 0x6a, 0x64, | |
2081 | 0x87, 0xe9, 0xbd, 0x0d, 0x1b, 0x9a, 0x26, 0xe6, 0x6c, 0x68, 0x6a, 0xd0, 0xe2, 0x7b, 0x12, 0x4a, | |
2082 | 0x24, 0x4b, 0xd3, 0x0e, 0x05, 0x20, 0xe0, 0xb8, 0x87, 0x3f, 0x87, 0xb7, 0xa7, 0xc9, 0x8a, 0x1b, | |
2083 | 0xae, 0xcf, 0xcd, 0x72, 0xd6, 0xf4, 0x36, 0x6c, 0x38, 0x67, 0xf3, 0x86, 0x38, 0xf1, 0x45, 0xe7, | |
2084 | 0x6c, 0xd6, 0xec, 0x23, 0x7e, 0x6d, 0x73, 0xa9, 0x46, 0x7c, 0xaa, 0x4b, 0x17, 0xe3, 0xe8, 0x98, | |
2085 | 0x02, 0xef, 0x02, 0xd2, 0x34, 0x95, 0x5a, 0xe4, 0xc4, 0xa4, 0x2a, 0x71, 0xa9, 0x45, 0x3c, 0xe9, | |
2086 | 0x72, 0x1c, 0x5c, 0xd1, 0x34, 0x99, 0x6b, 0xeb, 0x5c, 0x89, 0xaf, 0xc1, 0xba, 0x7d, 0xf2, 0x44, | |
2087 | 0x13, 0xcc, 0x52, 0x1d, 0x97, 0x0e, 0x8d, 0x17, 0xd2, 0x87, 0x3c, 0x4d, 0x6b, 0x4c, 0xc1, 0x79, | |
2088 | 0xd5, 0xe3, 0x62, 0xfc, 0x09, 0x20, 0xcd, 0x3b, 0x25, 0xae, 0xc3, 0x4b, 0xbb, 0xe7, 0x10, 0x8d, | |
2089 | 0x4a, 0x1f, 0x09, 0xa8, 0x90, 0x77, 0x42, 0x31, 0x63, 0xb6, 0xf7, 0xdc, 0x18, 0xfa, 0xa1, 0xc7, | |
2090 | 0xab, 0x82, 0xd9, 0x5c, 0x16, 0x78, 0xdb, 0x01, 0xe4, 0x9c, 0x3a, 0xc9, 0x0f, 0xef, 0x70, 0x58, | |
2091 | 0xc5, 0x39, 0x75, 0xe2, 0xdf, 0x7d, 0x04, 0x9b, 0x13, 0xcb, 0xb0, 0x7c, 0xea, 0x3a, 0x2e, 0x65, | |
2092 | 0xed, 0xbe, 0xd8, 0xb3, 0xd2, 0xbf, 0x57, 0x96, 0x34, 0xec, 0xc7, 0x71, 0xb4, 0xa0, 0x8a, 0xb2, | |
2093 | 0x31, 0x99, 0x17, 0x56, 0xf7, 0xa1, 0x1c, 0x67, 0x10, 0x2e, 0x82, 0xe0, 0x10, 0x4a, 0xb1, 0x6a, | |
2094 | 0xdc, 0xe8, 0x36, 0x59, 0x1d, 0xfd, 0x4a, 0x46, 0x69, 0x56, 0xcf, 0xdb, 0xad, 0x81, 0xac, 0x2a, | |
2095 | 0xc7, 0x9d, 0x41, 0xeb, 0x48, 0x46, 0x99, 0x6b, 0xc5, 0xc2, 0x7f, 0x56, 0xd0, 0xcb, 0x97, 0x2f, | |
2096 | 0x5f, 0xa6, 0x1f, 0x66, 0x0b, 0x1f, 0xa3, 0xab, 0xd5, 0xef, 0xd3, 0x50, 0x49, 0x76, 0xd2, 0xf8, | |
2097 | 0xe7, 0x70, 0x31, 0xbc, 0xf6, 0x7a, 0xd4, 0x57, 0x9f, 0x1b, 0x2e, 0xa7, 0xf6, 0x98, 0x88, 0x5e, | |
2098 | 0x34, 0x5a, 0x95, 0xcd, 0x00, 0xd5, 0xa7, 0xfe, 0x97, 0x86, 0xcb, 0x88, 0x3b, 0x26, 0x3e, 0x6e, | |
2099 | 0xc3, 0x65, 0xcb, 0x56, 0x3d, 0x9f, 0x58, 0x3a, 0x71, 0x75, 0x75, 0xfa, 0xe0, 0xa0, 0x12, 0x4d, | |
2100 | 0xa3, 0x9e, 0x67, 0x8b, 0x92, 0x12, 0x79, 0x79, 0xd7, 0xb2, 0xfb, 0x01, 0x78, 0x7a, 0xd6, 0xd6, | |
2101 | 0x03, 0xe8, 0x0c, 0x83, 0x32, 0xcb, 0x18, 0xf4, 0x0e, 0x14, 0xc7, 0xc4, 0x51, 0xa9, 0xe5, 0xbb, | |
2102 | 0x67, 0xbc, 0xff, 0x2b, 0x28, 0x85, 0x31, 0x71, 0x64, 0x36, 0x7e, 0x73, 0x2b, 0x91, 0xcc, 0x66, | |
2103 | 0x01, 0x15, 0x1f, 0x66, 0x0b, 0x45, 0x04, 0xd5, 0x7f, 0x66, 0xa0, 0x1c, 0xef, 0x07, 0x59, 0x7b, | |
2104 | 0xad, 0xf1, 0xb3, 0x3f, 0xc5, 0x4f, 0x87, 0x0f, 0x5e, 0xd9, 0x3d, 0xd6, 0x1a, 0xac, 0x28, 0xec, | |
2105 | 0xe7, 0x45, 0x97, 0xa6, 0x08, 0x4b, 0x56, 0x90, 0xd9, 0x79, 0x40, 0x45, 0xef, 0x5f, 0x50, 0x82, | |
2106 | 0x11, 0x3e, 0x84, 0xfc, 0x13, 0x8f, 0xfb, 0xce, 0x73, 0xdf, 0x1f, 0xbe, 0xda, 0xf7, 0xc3, 0x3e, | |
2107 | 0x77, 0x5e, 0x7c, 0xd8, 0x57, 0x3b, 0x5d, 0xe5, 0xa8, 0xde, 0x56, 0x02, 0x73, 0x7c, 0x09, 0xb2, | |
2108 | 0x26, 0xf9, 0xe6, 0x2c, 0x59, 0x3e, 0xb8, 0xe8, 0xbc, 0x8b, 0x70, 0x09, 0xb2, 0xcf, 0x29, 0x79, | |
2109 | 0x9a, 0x3c, 0xb4, 0xb9, 0xe8, 0x0d, 0x6e, 0x86, 0x5d, 0xc8, 0xf1, 0x7c, 0x61, 0x80, 0x20, 0x63, | |
2110 | 0xe8, 0x2d, 0x5c, 0x80, 0x6c, 0xa3, 0xab, 0xb0, 0x0d, 0x81, 0xa0, 0x2c, 0xa4, 0x6a, 0xaf, 0x25, | |
2111 | 0x37, 0x64, 0x94, 0xae, 0xde, 0x86, 0xbc, 0x48, 0x02, 0xdb, 0x2c, 0x51, 0x1a, 0xd0, 0x5b, 0xc1, | |
2112 | 0x30, 0xf0, 0x91, 0x0a, 0xb5, 0xc7, 0x47, 0x07, 0xb2, 0x82, 0xd2, 0xc9, 0xa5, 0xce, 0xa2, 0x5c, | |
2113 | 0xd5, 0x83, 0x72, 0xbc, 0x21, 0xfc, 0x51, 0x58, 0x56, 0xfd, 0x6b, 0x0a, 0x4a, 0xb1, 0x06, 0x8f, | |
2114 | 0xb5, 0x16, 0xc4, 0x34, 0xed, 0xe7, 0x2a, 0x31, 0x0d, 0xe2, 0x05, 0xd4, 0x00, 0x2e, 0xaa, 0x33, | |
2115 | 0xc9, 0x79, 0x97, 0xee, 0x47, 0xda, 0x22, 0x39, 0x94, 0xaf, 0xfe, 0x29, 0x05, 0x68, 0xb6, 0x45, | |
2116 | 0x9c, 0x09, 0x33, 0xf5, 0x53, 0x86, 0x59, 0xfd, 0x63, 0x0a, 0x2a, 0xc9, 0xbe, 0x70, 0x26, 0xbc, | |
2117 | 0x2b, 0x3f, 0x69, 0x78, 0xff, 0x48, 0xc3, 0x6a, 0xa2, 0x1b, 0x3c, 0x6f, 0x74, 0x5f, 0xc3, 0xba, | |
2118 | 0xa1, 0xd3, 0xb1, 0x63, 0xfb, 0xd4, 0xd2, 0xce, 0x54, 0x93, 0x3e, 0xa3, 0xa6, 0x54, 0xe5, 0x87, | |
2119 | 0xc6, 0xee, 0xab, 0xfb, 0xcd, 0x5a, 0x6b, 0x6a, 0xd7, 0x66, 0x66, 0xfb, 0x1b, 0xad, 0xa6, 0x7c, | |
2120 | 0xd4, 0xeb, 0x0e, 0xe4, 0x4e, 0xe3, 0xb1, 0x7a, 0xdc, 0xf9, 0x65, 0xa7, 0xfb, 0x65, 0x47, 0x41, | |
2121 | 0xc6, 0x0c, 0xec, 0x0d, 0x6e, 0xfb, 0x1e, 0xa0, 0xd9, 0xa0, 0xf0, 0x45, 0x58, 0x14, 0x16, 0x7a, | |
2122 | 0x0b, 0x6f, 0xc0, 0x5a, 0xa7, 0xab, 0xf6, 0x5b, 0x4d, 0x59, 0x95, 0x1f, 0x3c, 0x90, 0x1b, 0x83, | |
2123 | 0xbe, 0xb8, 0x80, 0x47, 0xe8, 0x41, 0x62, 0x83, 0x57, 0xff, 0x90, 0x81, 0x8d, 0x05, 0x91, 0xe0, | |
2124 | 0x7a, 0xd0, 0xfb, 0x8b, 0xeb, 0xc8, 0x8d, 0xf3, 0x44, 0x5f, 0x63, 0xdd, 0x45, 0x8f, 0xb8, 0x7e, | |
2125 | 0x70, 0x55, 0xf8, 0x04, 0x58, 0x96, 0x2c, 0xdf, 0x18, 0x1a, 0xd4, 0x0d, 0xde, 0x2b, 0xc4, 0x85, | |
2126 | 0x60, 0x6d, 0x2a, 0x17, 0x4f, 0x16, 0x3f, 0x03, 0xec, 0xd8, 0x9e, 0xe1, 0x1b, 0xcf, 0xa8, 0x6a, | |
2127 | 0x58, 0xe1, 0xe3, 0x06, 0xbb, 0x20, 0x64, 0x15, 0x14, 0x6a, 0x5a, 0x96, 0x1f, 0xa1, 0x2d, 0x3a, | |
2128 | 0x22, 0x33, 0x68, 0x76, 0x98, 0x67, 0x14, 0x14, 0x6a, 0x22, 0xf4, 0x15, 0x28, 0xeb, 0xf6, 0x84, | |
2129 | 0xb5, 0x5b, 0x02, 0xc7, 0x6a, 0x47, 0x4a, 0x29, 0x09, 0x59, 0x04, 0x09, 0xfa, 0xe1, 0xe9, 0xab, | |
2130 | 0x4a, 0x59, 0x29, 0x09, 0x99, 0x80, 0x5c, 0x85, 0x35, 0x32, 0x1a, 0xb9, 0xcc, 0x79, 0xe8, 0x48, | |
2131 | 0x74, 0xf8, 0x95, 0x48, 0xcc, 0x81, 0x5b, 0x0f, 0xa1, 0x10, 0xe6, 0x81, 0x95, 0x6a, 0x96, 0x09, | |
2132 | 0xd5, 0x11, 0x6f, 0x5b, 0xe9, 0x9d, 0xa2, 0x52, 0xb0, 0x42, 0xe5, 0x15, 0x28, 0x1b, 0x9e, 0x3a, | |
2133 | 0x7d, 0x64, 0x4d, 0x6f, 0xa7, 0x77, 0x0a, 0x4a, 0xc9, 0xf0, 0xa2, 0x57, 0xb5, 0xea, 0x77, 0x69, | |
2134 | 0xa8, 0x24, 0x1f, 0x89, 0x71, 0x13, 0x0a, 0xa6, 0xad, 0x11, 0x4e, 0x2d, 0xf1, 0x0b, 0xc5, 0xce, | |
2135 | 0x6b, 0xde, 0x95, 0x6b, 0xed, 0x00, 0xaf, 0x44, 0x96, 0x5b, 0x7f, 0x4b, 0x41, 0x21, 0x14, 0xe3, | |
2136 | 0x0b, 0x90, 0x75, 0x88, 0x7f, 0xca, 0xdd, 0xe5, 0x0e, 0xd2, 0x28, 0xa5, 0xf0, 0x31, 0x93, 0x7b, | |
2137 | 0x0e, 0xb1, 0x38, 0x05, 0x02, 0x39, 0x1b, 0xb3, 0x75, 0x35, 0x29, 0xd1, 0xf9, 0xf5, 0xc1, 0x1e, | |
2138 | 0x8f, 0xa9, 0xe5, 0x7b, 0xe1, 0xba, 0x06, 0xf2, 0x46, 0x20, 0xc6, 0xd7, 0x61, 0xdd, 0x77, 0x89, | |
2139 | 0x61, 0x26, 0xb0, 0x59, 0x8e, 0x45, 0xa1, 0x22, 0x02, 0xef, 0xc3, 0xa5, 0xd0, 0xaf, 0x4e, 0x7d, | |
2140 | 0xa2, 0x9d, 0x52, 0x7d, 0x6a, 0x94, 0xe7, 0x2f, 0x90, 0x17, 0x03, 0x40, 0x33, 0xd0, 0x87, 0xb6, | |
2141 | 0xd5, 0xef, 0x53, 0xb0, 0x1e, 0x5e, 0x78, 0xf4, 0x28, 0x59, 0x47, 0x00, 0xc4, 0xb2, 0x6c, 0x3f, | |
2142 | 0x9e, 0xae, 0x79, 0x2a, 0xcf, 0xd9, 0xd5, 0xea, 0x91, 0x91, 0x12, 0x73, 0xb0, 0x35, 0x06, 0x98, | |
2143 | 0x6a, 0x96, 0xa6, 0xed, 0x32, 0x94, 0x82, 0x5f, 0x00, 0xf8, 0xcf, 0x48, 0xe2, 0x8a, 0x0c, 0x42, | |
2144 | 0xc4, 0x6e, 0x46, 0x78, 0x13, 0x72, 0x27, 0x74, 0x64, 0x58, 0xc1, 0xbb, 0xa4, 0x18, 0x84, 0xaf, | |
2145 | 0x9d, 0xd9, 0xe8, 0xb5, 0xf3, 0xe0, 0x77, 0x29, 0xd8, 0xd0, 0xec, 0xf1, 0x6c, 0xbc, 0x07, 0x68, | |
2146 | 0xe6, 0x9e, 0xee, 0x7d, 0x91, 0xfa, 0xea, 0xfe, 0xc8, 0xf0, 0x4f, 0x27, 0x27, 0x35, 0xcd, 0x1e, | |
2147 | 0xef, 0x8e, 0x6c, 0x93, 0x58, 0xa3, 0xe9, 0xef, 0x60, 0xfc, 0x1f, 0xed, 0xc6, 0x88, 0x5a, 0x37, | |
2148 | 0x46, 0x76, 0xec, 0x57, 0xb1, 0x7b, 0xd3, 0x7f, 0xbf, 0x4d, 0x67, 0x0e, 0x7b, 0x07, 0x7f, 0x4e, | |
2149 | 0x6f, 0x1d, 0x8a, 0x6f, 0xf5, 0xc2, 0xdc, 0x28, 0x74, 0x68, 0x52, 0x8d, 0xcd, 0xf7, 0x7f, 0x01, | |
2150 | 0x00, 0x00, 0xff, 0xff, 0x8e, 0x54, 0xe7, 0xef, 0x60, 0x1b, 0x00, 0x00, | |
2151 | } |
625 | 625 | } |
626 | 626 | } |
627 | 627 | } |
628 | ||
629 | 628 | if pluginList != "" { |
630 | 629 | // Amend the set of plugins. |
631 | 630 | enabled := make(map[string]bool) |
1180 | 1179 | g.P("const _ = ", g.Pkg["proto"], ".ProtoPackageIsVersion", generatedCodeVersion, " // please upgrade the proto package") |
1181 | 1180 | g.P() |
1182 | 1181 | } |
1183 | ||
1184 | 1182 | for _, td := range g.file.imp { |
1185 | 1183 | g.generateImported(td) |
1186 | 1184 | } |
1238 | 1236 | |
1239 | 1237 | // Generate the header, including package definition |
1240 | 1238 | func (g *Generator) generateHeader() { |
1241 | g.P("// Code generated by protoc-gen-go.") | |
1239 | g.P("// Code generated by protoc-gen-go. DO NOT EDIT.") | |
1242 | 1240 | g.P("// source: ", g.file.Name) |
1243 | g.P("// DO NOT EDIT!") | |
1244 | 1241 | g.P() |
1245 | 1242 | |
1246 | 1243 | name := g.file.PackageName() |
2077 | 2074 | star = "*" |
2078 | 2075 | } |
2079 | 2076 | |
2080 | // In proto3, only generate getters for message fields and oneof fields. | |
2081 | if message.proto3() && *field.Type != descriptor.FieldDescriptorProto_TYPE_MESSAGE && !oneof { | |
2082 | continue | |
2083 | } | |
2084 | ||
2085 | 2077 | // Only export getter symbols for basic types, |
2086 | 2078 | // and for messages and enums in the same package. |
2087 | 2079 | // Groups are not exported. |
2140 | 2132 | continue |
2141 | 2133 | } |
2142 | 2134 | if !oneof { |
2143 | g.P("if m != nil && m." + fname + " != nil {") | |
2135 | if message.proto3() { | |
2136 | g.P("if m != nil {") | |
2137 | } else { | |
2138 | g.P("if m != nil && m." + fname + " != nil {") | |
2139 | } | |
2144 | 2140 | g.In() |
2145 | 2141 | g.P("return " + star + "m." + fname) |
2146 | 2142 | g.Out() |
2558 | 2554 | g.P("Field: ", field.Number, ",") |
2559 | 2555 | g.P(`Name: "`, extName, `",`) |
2560 | 2556 | g.P("Tag: ", tag, ",") |
2557 | g.P(`Filename: "`, g.file.GetName(), `",`) | |
2561 | 2558 | |
2562 | 2559 | g.Out() |
2563 | 2560 | g.P("}") |
47 | 47 | // It is incremented whenever an incompatibility between the generated code and |
48 | 48 | // the grpc package is introduced; the generated code references |
49 | 49 | // a constant, grpc.SupportPackageIsVersionN (where N is generatedCodeVersion). |
50 | const generatedCodeVersion = 3 | |
50 | const generatedCodeVersion = 4 | |
51 | 51 | |
52 | 52 | // Paths for packages used by code generated in this file, |
53 | 53 | // relative to the import_prefix of the generator.Generator. |
253 | 253 | g.P("},") |
254 | 254 | } |
255 | 255 | g.P("},") |
256 | g.P("Metadata: ", file.VarName(), ",") | |
256 | g.P("Metadata: \"", file.GetName(), "\",") | |
257 | 257 | g.P("}") |
258 | 258 | g.P() |
259 | 259 | } |
32 | 32 | # at src/google/protobuf/compiler/plugin.proto |
33 | 33 | # Also we need to fix an import. |
34 | 34 | regenerate: |
35 | echo WARNING! THIS RULE IS PROBABLY NOT RIGHT FOR YOUR INSTALLATION | |
36 | protoc --go_out=Mgoogle/protobuf/descriptor.proto=github.com/golang/protobuf/protoc-gen-go/descriptor:. \ | |
37 | -I$(HOME)/src/protobuf/src $(HOME)/src/protobuf/src/google/protobuf/compiler/plugin.proto && \ | |
38 | mv google/protobuf/compiler/plugin.pb.go $(GOPATH)/src/github.com/golang/protobuf/protoc-gen-go/plugin | |
35 | @echo WARNING! THIS RULE IS PROBABLY NOT RIGHT FOR YOUR INSTALLATION | |
36 | protoc --go_out=Mgoogle/protobuf/descriptor.proto=github.com/golang/protobuf/protoc-gen-go/descriptor:../../../../.. \ | |
37 | -I$(HOME)/src/protobuf/include $(HOME)/src/protobuf/include/google/protobuf/compiler/plugin.proto | |
39 | 38 | |
40 | 39 | restore: |
41 | 40 | cp plugin.pb.golden plugin.pb.go |
0 | // Code generated by protoc-gen-go. | |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | 1 | // source: google/protobuf/compiler/plugin.proto |
2 | // DO NOT EDIT! | |
3 | 2 | |
4 | 3 | /* |
5 | 4 | Package plugin_go is a generated protocol buffer package. |
8 | 7 | google/protobuf/compiler/plugin.proto |
9 | 8 | |
10 | 9 | It has these top-level messages: |
10 | Version | |
11 | 11 | CodeGeneratorRequest |
12 | 12 | CodeGeneratorResponse |
13 | 13 | */ |
28 | 28 | // A compilation error at this line likely means your copy of the |
29 | 29 | // proto package needs to be updated. |
30 | 30 | const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package |
31 | ||
32 | // The version number of protocol compiler. | |
33 | type Version struct { | |
34 | Major *int32 `protobuf:"varint,1,opt,name=major" json:"major,omitempty"` | |
35 | Minor *int32 `protobuf:"varint,2,opt,name=minor" json:"minor,omitempty"` | |
36 | Patch *int32 `protobuf:"varint,3,opt,name=patch" json:"patch,omitempty"` | |
37 | // A suffix for alpha, beta or rc release, e.g., "alpha-1", "rc2". It should | |
38 | // be empty for mainline stable releases. | |
39 | Suffix *string `protobuf:"bytes,4,opt,name=suffix" json:"suffix,omitempty"` | |
40 | XXX_unrecognized []byte `json:"-"` | |
41 | } | |
42 | ||
43 | func (m *Version) Reset() { *m = Version{} } | |
44 | func (m *Version) String() string { return proto.CompactTextString(m) } | |
45 | func (*Version) ProtoMessage() {} | |
46 | func (*Version) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } | |
47 | ||
48 | func (m *Version) GetMajor() int32 { | |
49 | if m != nil && m.Major != nil { | |
50 | return *m.Major | |
51 | } | |
52 | return 0 | |
53 | } | |
54 | ||
55 | func (m *Version) GetMinor() int32 { | |
56 | if m != nil && m.Minor != nil { | |
57 | return *m.Minor | |
58 | } | |
59 | return 0 | |
60 | } | |
61 | ||
62 | func (m *Version) GetPatch() int32 { | |
63 | if m != nil && m.Patch != nil { | |
64 | return *m.Patch | |
65 | } | |
66 | return 0 | |
67 | } | |
68 | ||
69 | func (m *Version) GetSuffix() string { | |
70 | if m != nil && m.Suffix != nil { | |
71 | return *m.Suffix | |
72 | } | |
73 | return "" | |
74 | } | |
31 | 75 | |
32 | 76 | // An encoded CodeGeneratorRequest is written to the plugin's stdin. |
33 | 77 | type CodeGeneratorRequest struct { |
48 | 92 | // the entire set into memory at once. However, as of this writing, this |
49 | 93 | // is not similarly optimized on protoc's end -- it will store all fields in |
50 | 94 | // memory at once before sending them to the plugin. |
51 | ProtoFile []*google_protobuf.FileDescriptorProto `protobuf:"bytes,15,rep,name=proto_file,json=protoFile" json:"proto_file,omitempty"` | |
52 | XXX_unrecognized []byte `json:"-"` | |
95 | // | |
96 | // Type names of fields and extensions in the FileDescriptorProto are always | |
97 | // fully qualified. | |
98 | ProtoFile []*google_protobuf.FileDescriptorProto `protobuf:"bytes,15,rep,name=proto_file,json=protoFile" json:"proto_file,omitempty"` | |
99 | // The version number of protocol compiler. | |
100 | CompilerVersion *Version `protobuf:"bytes,3,opt,name=compiler_version,json=compilerVersion" json:"compiler_version,omitempty"` | |
101 | XXX_unrecognized []byte `json:"-"` | |
53 | 102 | } |
54 | 103 | |
55 | 104 | func (m *CodeGeneratorRequest) Reset() { *m = CodeGeneratorRequest{} } |
56 | 105 | func (m *CodeGeneratorRequest) String() string { return proto.CompactTextString(m) } |
57 | 106 | func (*CodeGeneratorRequest) ProtoMessage() {} |
58 | func (*CodeGeneratorRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } | |
107 | func (*CodeGeneratorRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } | |
59 | 108 | |
60 | 109 | func (m *CodeGeneratorRequest) GetFileToGenerate() []string { |
61 | 110 | if m != nil { |
74 | 123 | func (m *CodeGeneratorRequest) GetProtoFile() []*google_protobuf.FileDescriptorProto { |
75 | 124 | if m != nil { |
76 | 125 | return m.ProtoFile |
126 | } | |
127 | return nil | |
128 | } | |
129 | ||
130 | func (m *CodeGeneratorRequest) GetCompilerVersion() *Version { | |
131 | if m != nil { | |
132 | return m.CompilerVersion | |
77 | 133 | } |
78 | 134 | return nil |
79 | 135 | } |
96 | 152 | func (m *CodeGeneratorResponse) Reset() { *m = CodeGeneratorResponse{} } |
97 | 153 | func (m *CodeGeneratorResponse) String() string { return proto.CompactTextString(m) } |
98 | 154 | func (*CodeGeneratorResponse) ProtoMessage() {} |
99 | func (*CodeGeneratorResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } | |
155 | func (*CodeGeneratorResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } | |
100 | 156 | |
101 | 157 | func (m *CodeGeneratorResponse) GetError() string { |
102 | 158 | if m != nil && m.Error != nil { |
172 | 228 | func (m *CodeGeneratorResponse_File) Reset() { *m = CodeGeneratorResponse_File{} } |
173 | 229 | func (m *CodeGeneratorResponse_File) String() string { return proto.CompactTextString(m) } |
174 | 230 | func (*CodeGeneratorResponse_File) ProtoMessage() {} |
175 | func (*CodeGeneratorResponse_File) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1, 0} } | |
231 | func (*CodeGeneratorResponse_File) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2, 0} } | |
176 | 232 | |
177 | 233 | func (m *CodeGeneratorResponse_File) GetName() string { |
178 | 234 | if m != nil && m.Name != nil { |
196 | 252 | } |
197 | 253 | |
198 | 254 | func init() { |
255 | proto.RegisterType((*Version)(nil), "google.protobuf.compiler.Version") | |
199 | 256 | proto.RegisterType((*CodeGeneratorRequest)(nil), "google.protobuf.compiler.CodeGeneratorRequest") |
200 | 257 | proto.RegisterType((*CodeGeneratorResponse)(nil), "google.protobuf.compiler.CodeGeneratorResponse") |
201 | 258 | proto.RegisterType((*CodeGeneratorResponse_File)(nil), "google.protobuf.compiler.CodeGeneratorResponse.File") |
204 | 261 | func init() { proto.RegisterFile("google/protobuf/compiler/plugin.proto", fileDescriptor0) } |
205 | 262 | |
206 | 263 | var fileDescriptor0 = []byte{ |
207 | // 310 bytes of a gzipped FileDescriptorProto | |
208 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x74, 0x51, 0xc1, 0x4a, 0xc3, 0x40, | |
209 | 0x10, 0x25, 0xb6, 0x22, 0x19, 0xa5, 0x95, 0xa5, 0xc2, 0x52, 0x7a, 0x08, 0x45, 0x31, 0xa7, 0x14, | |
210 | 0x44, 0xf0, 0xde, 0x8a, 0x7a, 0x2c, 0xc1, 0x93, 0x20, 0x21, 0xa6, 0xd3, 0xb0, 0x90, 0xec, 0xac, | |
211 | 0xb3, 0xdb, 0x2f, 0xf2, 0x9f, 0xfc, 0x1e, 0xd9, 0x4d, 0x5b, 0xa5, 0xd8, 0xdb, 0xce, 0x7b, 0x6f, | |
212 | 0xe6, 0xbd, 0x9d, 0x81, 0x9b, 0x9a, 0xa8, 0x6e, 0x70, 0x66, 0x98, 0x1c, 0x7d, 0x6c, 0xd6, 0xb3, | |
213 | 0x8a, 0x5a, 0xa3, 0x1a, 0xe4, 0x99, 0x69, 0x36, 0xb5, 0xd2, 0x59, 0x20, 0x84, 0xec, 0x64, 0xd9, | |
214 | 0x4e, 0x96, 0xed, 0x64, 0xe3, 0xe4, 0x70, 0xc0, 0x0a, 0x6d, 0xc5, 0xca, 0x38, 0xe2, 0x4e, 0x3d, | |
215 | 0xfd, 0x8a, 0x60, 0xb4, 0xa0, 0x15, 0x3e, 0xa3, 0x46, 0x2e, 0x1d, 0x71, 0x8e, 0x9f, 0x1b, 0xb4, | |
216 | 0x4e, 0xa4, 0x70, 0xb9, 0x56, 0x0d, 0x16, 0x8e, 0x8a, 0xba, 0xe3, 0x50, 0x46, 0x49, 0x2f, 0x8d, | |
217 | 0xf3, 0x81, 0xc7, 0x5f, 0x69, 0xdb, 0x81, 0x62, 0x02, 0xb1, 0x29, 0xb9, 0x6c, 0xd1, 0x21, 0xcb, | |
218 | 0x93, 0x24, 0x4a, 0xe3, 0xfc, 0x17, 0x10, 0x0b, 0x80, 0xe0, 0x54, 0xf8, 0x2e, 0x39, 0x4c, 0x7a, | |
219 | 0xe9, 0xf9, 0xdd, 0x75, 0x76, 0x98, 0xf8, 0x49, 0x35, 0xf8, 0xb8, 0xcf, 0xb6, 0xf4, 0x70, 0x1e, | |
220 | 0x07, 0xd6, 0x33, 0xd3, 0xef, 0x08, 0xae, 0x0e, 0x52, 0x5a, 0x43, 0xda, 0xa2, 0x18, 0xc1, 0x29, | |
221 | 0x32, 0x13, 0xcb, 0x28, 0x18, 0x77, 0x85, 0x78, 0x81, 0xfe, 0x1f, 0xbb, 0xfb, 0xec, 0xd8, 0x82, | |
222 | 0xb2, 0x7f, 0x87, 0x86, 0x34, 0x79, 0x98, 0x30, 0x7e, 0x87, 0xbe, 0xaf, 0x84, 0x80, 0xbe, 0x2e, | |
223 | 0x5b, 0xdc, 0xda, 0x84, 0xb7, 0xb8, 0x85, 0xa1, 0xd2, 0x16, 0xd9, 0x29, 0xd2, 0x85, 0x21, 0xa5, | |
224 | 0xdd, 0xf6, 0xfb, 0x83, 0x3d, 0xbc, 0xf4, 0xa8, 0x90, 0x70, 0x56, 0x91, 0x76, 0xa8, 0x9d, 0x1c, | |
225 | 0x06, 0xc1, 0xae, 0x9c, 0x3f, 0xc0, 0xa4, 0xa2, 0xf6, 0x68, 0xbe, 0xf9, 0xc5, 0x32, 0x1c, 0x3a, | |
226 | 0x2c, 0xc4, 0xbe, 0xc5, 0xdd, 0xd9, 0x8b, 0x9a, 0x7e, 0x02, 0x00, 0x00, 0xff, 0xff, 0x83, 0x7b, | |
227 | 0x5c, 0x7c, 0x1b, 0x02, 0x00, 0x00, | |
228 | } | |
264 | // 417 bytes of a gzipped FileDescriptorProto | |
265 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xcf, 0x6a, 0x14, 0x41, | |
266 | 0x10, 0xc6, 0x19, 0x77, 0x63, 0x98, 0x8a, 0x64, 0x43, 0x13, 0xa5, 0x09, 0x39, 0x8c, 0x8b, 0xe2, | |
267 | 0x5c, 0x32, 0x0b, 0xc1, 0x8b, 0x78, 0x4b, 0x44, 0x3d, 0x78, 0x58, 0x1a, 0xf1, 0x20, 0xc8, 0x30, | |
268 | 0x99, 0xd4, 0x74, 0x5a, 0x66, 0xba, 0xc6, 0xee, 0x1e, 0xf1, 0x49, 0x7d, 0x0f, 0xdf, 0x40, 0xfa, | |
269 | 0xcf, 0x24, 0xb2, 0xb8, 0xa7, 0xee, 0xef, 0x57, 0xd5, 0xd5, 0x55, 0x1f, 0x05, 0x2f, 0x25, 0x91, | |
270 | 0xec, 0x71, 0x33, 0x1a, 0x72, 0x74, 0x33, 0x75, 0x9b, 0x96, 0x86, 0x51, 0xf5, 0x68, 0x36, 0x63, | |
271 | 0x3f, 0x49, 0xa5, 0xab, 0x10, 0x60, 0x3c, 0xa6, 0x55, 0x73, 0x5a, 0x35, 0xa7, 0x9d, 0x15, 0xbb, | |
272 | 0x05, 0x6e, 0xd1, 0xb6, 0x46, 0x8d, 0x8e, 0x4c, 0xcc, 0x5e, 0xb7, 0x70, 0xf8, 0x05, 0x8d, 0x55, | |
273 | 0xa4, 0xd9, 0x29, 0x1c, 0x0c, 0xcd, 0x77, 0x32, 0x3c, 0x2b, 0xb2, 0xf2, 0x40, 0x44, 0x11, 0xa8, | |
274 | 0xd2, 0x64, 0xf8, 0xa3, 0x44, 0xbd, 0xf0, 0x74, 0x6c, 0x5c, 0x7b, 0xc7, 0x17, 0x91, 0x06, 0xc1, | |
275 | 0x9e, 0xc1, 0x63, 0x3b, 0x75, 0x9d, 0xfa, 0xc5, 0x97, 0x45, 0x56, 0xe6, 0x22, 0xa9, 0xf5, 0x9f, | |
276 | 0x0c, 0x4e, 0xaf, 0xe9, 0x16, 0x3f, 0xa0, 0x46, 0xd3, 0x38, 0x32, 0x02, 0x7f, 0x4c, 0x68, 0x1d, | |
277 | 0x2b, 0xe1, 0xa4, 0x53, 0x3d, 0xd6, 0x8e, 0x6a, 0x19, 0x63, 0xc8, 0xb3, 0x62, 0x51, 0xe6, 0xe2, | |
278 | 0xd8, 0xf3, 0xcf, 0x94, 0x5e, 0x20, 0x3b, 0x87, 0x7c, 0x6c, 0x4c, 0x33, 0xa0, 0xc3, 0xd8, 0x4a, | |
279 | 0x2e, 0x1e, 0x00, 0xbb, 0x06, 0x08, 0xe3, 0xd4, 0xfe, 0x15, 0x5f, 0x15, 0x8b, 0xf2, 0xe8, 0xf2, | |
280 | 0x45, 0xb5, 0x6b, 0xcb, 0x7b, 0xd5, 0xe3, 0xbb, 0x7b, 0x03, 0xb6, 0x1e, 0x8b, 0x3c, 0x44, 0x7d, | |
281 | 0x84, 0x7d, 0x82, 0x93, 0xd9, 0xb8, 0xfa, 0x67, 0xf4, 0x24, 0x8c, 0x77, 0x74, 0xf9, 0xbc, 0xda, | |
282 | 0xe7, 0x70, 0x95, 0xcc, 0x13, 0xab, 0x99, 0x24, 0xb0, 0xfe, 0x9d, 0xc1, 0xd3, 0x9d, 0x99, 0xed, | |
283 | 0x48, 0xda, 0xa2, 0xf7, 0x0e, 0x8d, 0x49, 0x3e, 0xe7, 0x22, 0x0a, 0xf6, 0x11, 0x96, 0xff, 0x34, | |
284 | 0xff, 0x7a, 0xff, 0x8f, 0xff, 0x2d, 0x1a, 0x66, 0x13, 0xa1, 0xc2, 0xd9, 0x37, 0x58, 0x86, 0x79, | |
285 | 0x18, 0x2c, 0x75, 0x33, 0x60, 0xfa, 0x26, 0xdc, 0xd9, 0x2b, 0x58, 0x29, 0x6d, 0xd1, 0x38, 0x45, | |
286 | 0xba, 0x1e, 0x49, 0x69, 0x97, 0xcc, 0x3c, 0xbe, 0xc7, 0x5b, 0x4f, 0x19, 0x87, 0xc3, 0x96, 0xb4, | |
287 | 0x43, 0xed, 0xf8, 0x2a, 0x24, 0xcc, 0xf2, 0x4a, 0xc2, 0x79, 0x4b, 0xc3, 0xde, 0xfe, 0xae, 0x9e, | |
288 | 0x6c, 0xc3, 0x6e, 0x06, 0x7b, 0xed, 0xd7, 0x37, 0x52, 0xb9, 0xbb, 0xe9, 0xc6, 0x87, 0x37, 0x92, | |
289 | 0xfa, 0x46, 0xcb, 0x87, 0x65, 0x0c, 0x97, 0xf6, 0x42, 0xa2, 0xbe, 0x90, 0x94, 0x56, 0xfa, 0x6d, | |
290 | 0x3c, 0x6a, 0x49, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xf7, 0x15, 0x40, 0xc5, 0xfe, 0x02, 0x00, | |
291 | 0x00, | |
292 | } |
44 | 44 | |
45 | 45 | golden: |
46 | 46 | make -B my_test/test.pb.go |
47 | sed -i '/return.*fileDescriptor/d' my_test/test.pb.go | |
48 | sed -i '/^var fileDescriptor/,/^}/d' my_test/test.pb.go | |
49 | sed -i '/proto.RegisterFile.*fileDescriptor/d' my_test/test.pb.go | |
47 | sed -i -e '/return.*fileDescriptor/d' my_test/test.pb.go | |
48 | sed -i -e '/^var fileDescriptor/,/^}/d' my_test/test.pb.go | |
49 | sed -i -e '/proto.RegisterFile.*fileDescriptor/d' my_test/test.pb.go | |
50 | 50 | gofmt -w my_test/test.pb.go |
51 | 51 | diff -w my_test/test.pb.go my_test/test.pb.go.golden |
52 | 52 | |
57 | 57 | |
58 | 58 | regenerate: |
59 | 59 | # Invoke protoc once to generate three independent .pb.go files in the same package. |
60 | protoc --go_out=. multi/multi{1,2,3}.proto | |
60 | protoc --go_out=. multi/multi1.proto multi/multi2.proto multi/multi3.proto | |
61 | 61 | |
62 | 62 | #extension_test: extension_test.$O |
63 | 63 | # $(LD) -L. -o $@ $< |
0 | // Code generated by protoc-gen-go. | |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | 1 | // source: my_test/test.proto |
2 | // DO NOT EDIT! | |
3 | 2 | |
4 | 3 | /* |
5 | 4 | Package my_test is a generated protocol buffer package. |
318 | 317 | type Reply_Entry struct { |
319 | 318 | KeyThatNeeds_1234Camel_CasIng *int64 `protobuf:"varint,1,req,name=key_that_needs_1234camel_CasIng,json=keyThatNeeds1234camelCasIng" json:"key_that_needs_1234camel_CasIng,omitempty"` |
320 | 319 | Value *int64 `protobuf:"varint,2,opt,name=value,def=7" json:"value,omitempty"` |
321 | XMyFieldName_2 *int64 `protobuf:"varint,3,opt,name=_my_field_name_2,json=myFieldName2" json:"_my_field_name_2,omitempty"` | |
320 | XMyFieldName_2 *int64 `protobuf:"varint,3,opt,name=_my_field_name_2,json=MyFieldName2" json:"_my_field_name_2,omitempty"` | |
322 | 321 | XXX_unrecognized []byte `json:"-"` |
323 | 322 | } |
324 | 323 | |
388 | 387 | Field: 101, |
389 | 388 | Name: "my.test.ReplyExtensions.time", |
390 | 389 | Tag: "fixed64,101,opt,name=time", |
390 | Filename: "my_test/test.proto", | |
391 | 391 | } |
392 | 392 | |
393 | 393 | var E_ReplyExtensions_Carrot = &proto.ExtensionDesc{ |
396 | 396 | Field: 105, |
397 | 397 | Name: "my.test.ReplyExtensions.carrot", |
398 | 398 | Tag: "bytes,105,opt,name=carrot", |
399 | Filename: "my_test/test.proto", | |
399 | 400 | } |
400 | 401 | |
401 | 402 | var E_ReplyExtensions_Donut = &proto.ExtensionDesc{ |
404 | 405 | Field: 101, |
405 | 406 | Name: "my.test.ReplyExtensions.donut", |
406 | 407 | Tag: "bytes,101,opt,name=donut", |
408 | Filename: "my_test/test.proto", | |
407 | 409 | } |
408 | 410 | |
409 | 411 | type OtherReplyExtensions struct { |
831 | 833 | Field: 103, |
832 | 834 | Name: "my.test.tag", |
833 | 835 | Tag: "bytes,103,opt,name=tag", |
836 | Filename: "my_test/test.proto", | |
834 | 837 | } |
835 | 838 | |
836 | 839 | var E_Donut = &proto.ExtensionDesc{ |
839 | 842 | Field: 106, |
840 | 843 | Name: "my.test.donut", |
841 | 844 | Tag: "bytes,106,opt,name=donut", |
845 | Filename: "my_test/test.proto", | |
842 | 846 | } |
843 | 847 | |
844 | 848 | func init() { |
0 | // Code generated by protoc-gen-go. | |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | 1 | // source: my_test/test.proto |
2 | // DO NOT EDIT! | |
3 | 2 | |
4 | 3 | /* |
5 | 4 | Package my_test is a generated protocol buffer package. |
318 | 317 | type Reply_Entry struct { |
319 | 318 | KeyThatNeeds_1234Camel_CasIng *int64 `protobuf:"varint,1,req,name=key_that_needs_1234camel_CasIng,json=keyThatNeeds1234camelCasIng" json:"key_that_needs_1234camel_CasIng,omitempty"` |
320 | 319 | Value *int64 `protobuf:"varint,2,opt,name=value,def=7" json:"value,omitempty"` |
321 | XMyFieldName_2 *int64 `protobuf:"varint,3,opt,name=_my_field_name_2,json=myFieldName2" json:"_my_field_name_2,omitempty"` | |
320 | XMyFieldName_2 *int64 `protobuf:"varint,3,opt,name=_my_field_name_2,json=MyFieldName2" json:"_my_field_name_2,omitempty"` | |
322 | 321 | XXX_unrecognized []byte `json:"-"` |
323 | 322 | } |
324 | 323 | |
388 | 387 | Field: 101, |
389 | 388 | Name: "my.test.ReplyExtensions.time", |
390 | 389 | Tag: "fixed64,101,opt,name=time", |
390 | Filename: "my_test/test.proto", | |
391 | 391 | } |
392 | 392 | |
393 | 393 | var E_ReplyExtensions_Carrot = &proto.ExtensionDesc{ |
396 | 396 | Field: 105, |
397 | 397 | Name: "my.test.ReplyExtensions.carrot", |
398 | 398 | Tag: "bytes,105,opt,name=carrot", |
399 | Filename: "my_test/test.proto", | |
399 | 400 | } |
400 | 401 | |
401 | 402 | var E_ReplyExtensions_Donut = &proto.ExtensionDesc{ |
404 | 405 | Field: 101, |
405 | 406 | Name: "my.test.ReplyExtensions.donut", |
406 | 407 | Tag: "bytes,101,opt,name=donut", |
408 | Filename: "my_test/test.proto", | |
407 | 409 | } |
408 | 410 | |
409 | 411 | type OtherReplyExtensions struct { |
831 | 833 | Field: 103, |
832 | 834 | Name: "my.test.tag", |
833 | 835 | Tag: "bytes,103,opt,name=tag", |
836 | Filename: "my_test/test.proto", | |
834 | 837 | } |
835 | 838 | |
836 | 839 | var E_Donut = &proto.ExtensionDesc{ |
839 | 842 | Field: 106, |
840 | 843 | Name: "my.test.donut", |
841 | 844 | Tag: "bytes,106,opt,name=donut", |
845 | Filename: "my_test/test.proto", | |
842 | 846 | } |
843 | 847 | |
844 | 848 | func init() { |
0 | // Code generated by protoc-gen-go. | |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | 1 | // source: github.com/golang/protobuf/ptypes/any/any.proto |
2 | // DO NOT EDIT! | |
3 | 2 | |
4 | 3 | /* |
5 | 4 | Package any is a generated protocol buffer package. |
131 | 130 | func (*Any) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } |
132 | 131 | func (*Any) XXX_WellKnownType() string { return "Any" } |
133 | 132 | |
133 | func (m *Any) GetTypeUrl() string { | |
134 | if m != nil { | |
135 | return m.TypeUrl | |
136 | } | |
137 | return "" | |
138 | } | |
139 | ||
140 | func (m *Any) GetValue() []byte { | |
141 | if m != nil { | |
142 | return m.Value | |
143 | } | |
144 | return nil | |
145 | } | |
146 | ||
134 | 147 | func init() { |
135 | 148 | proto.RegisterType((*Any)(nil), "google.protobuf.Any") |
136 | 149 | } |
138 | 151 | func init() { proto.RegisterFile("github.com/golang/protobuf/ptypes/any/any.proto", fileDescriptor0) } |
139 | 152 | |
140 | 153 | var fileDescriptor0 = []byte{ |
141 | // 187 bytes of a gzipped FileDescriptorProto | |
142 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xd2, 0x4f, 0xcf, 0x2c, 0xc9, | |
154 | // 184 bytes of a gzipped FileDescriptorProto | |
155 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xd2, 0x4f, 0xcf, 0x2c, 0xc9, | |
143 | 156 | 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0x2f, 0x28, |
144 | 157 | 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0x28, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x4f, 0xcc, |
145 | 158 | 0xab, 0x04, 0x61, 0x3d, 0xb0, 0xb8, 0x10, 0x7f, 0x7a, 0x7e, 0x7e, 0x7a, 0x4e, 0xaa, 0x1e, 0x4c, |
146 | 159 | 0x95, 0x92, 0x19, 0x17, 0xb3, 0x63, 0x5e, 0xa5, 0x90, 0x24, 0x17, 0x07, 0x48, 0x79, 0x7c, 0x69, |
147 | 160 | 0x51, 0x8e, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x67, 0x10, 0x3b, 0x88, 0x1f, 0x5a, 0x94, 0x23, 0x24, |
148 | 161 | 0xc2, 0xc5, 0x5a, 0x96, 0x98, 0x53, 0x9a, 0x2a, 0xc1, 0xa4, 0xc0, 0xa8, 0xc1, 0x13, 0x04, 0xe1, |
149 | 0x38, 0x15, 0x71, 0x09, 0x27, 0xe7, 0xe7, 0xea, 0xa1, 0x19, 0xe7, 0xc4, 0xe1, 0x98, 0x57, 0x19, | |
150 | 0x00, 0xe2, 0x04, 0x30, 0x46, 0xa9, 0x12, 0xe5, 0xb8, 0x05, 0x8c, 0x8c, 0x8b, 0x98, 0x98, 0xdd, | |
151 | 0x03, 0x9c, 0x56, 0x31, 0xc9, 0xb9, 0x43, 0x4c, 0x0b, 0x80, 0xaa, 0xd2, 0x0b, 0x4f, 0xcd, 0xc9, | |
152 | 0xf1, 0xce, 0xcb, 0x2f, 0xcf, 0x0b, 0x01, 0xa9, 0x4e, 0x62, 0x03, 0x6b, 0x37, 0x06, 0x04, 0x00, | |
153 | 0x00, 0xff, 0xff, 0xc6, 0x4d, 0x03, 0x23, 0xf6, 0x00, 0x00, 0x00, | |
162 | 0x38, 0xe5, 0x73, 0x09, 0x27, 0xe7, 0xe7, 0xea, 0xa1, 0x19, 0xe7, 0xc4, 0xe1, 0x98, 0x57, 0x19, | |
163 | 0x00, 0xe2, 0x04, 0x30, 0x46, 0xa9, 0x12, 0xe5, 0xb8, 0x45, 0x4c, 0xcc, 0xee, 0x01, 0x4e, 0xab, | |
164 | 0x98, 0xe4, 0xdc, 0x21, 0x46, 0x05, 0x40, 0x95, 0xe8, 0x85, 0xa7, 0xe6, 0xe4, 0x78, 0xe7, 0xe5, | |
165 | 0x97, 0xe7, 0x85, 0x80, 0x94, 0x26, 0xb1, 0x81, 0xf5, 0x1a, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, | |
166 | 0x45, 0x1f, 0x1a, 0xf2, 0xf3, 0x00, 0x00, 0x00, | |
154 | 167 | } |
36 | 36 | option java_package = "com.google.protobuf"; |
37 | 37 | option java_outer_classname = "AnyProto"; |
38 | 38 | option java_multiple_files = true; |
39 | option java_generate_equals_and_hash = true; | |
40 | 39 | option objc_class_prefix = "GPB"; |
41 | 40 | |
42 | 41 | // `Any` contains an arbitrary serialized protocol buffer message along with a |
50 | 50 | // function. AnyMessageName is provided for less common use cases like filtering a |
51 | 51 | // sequence of Any messages based on a set of allowed message type names. |
52 | 52 | func AnyMessageName(any *any.Any) (string, error) { |
53 | if any == nil { | |
54 | return "", fmt.Errorf("message is nil") | |
55 | } | |
53 | 56 | slash := strings.LastIndex(any.TypeUrl, "/") |
54 | 57 | if slash < 0 { |
55 | 58 | return "", fmt.Errorf("message type url %q is invalid", any.TypeUrl) |
0 | // Code generated by protoc-gen-go. | |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | 1 | // source: github.com/golang/protobuf/ptypes/duration/duration.proto |
2 | // DO NOT EDIT! | |
3 | 2 | |
4 | 3 | /* |
5 | 4 | Package duration is a generated protocol buffer package. |
33 | 32 | // or "month". It is related to Timestamp in that the difference between |
34 | 33 | // two Timestamp values is a Duration and it can be added or subtracted |
35 | 34 | // from a Timestamp. Range is approximately +-10,000 years. |
35 | // | |
36 | // # Examples | |
36 | 37 | // |
37 | 38 | // Example 1: Compute Duration from two Timestamps in pseudo code. |
38 | 39 | // |
68 | 69 | // end.nanos -= 1000000000; |
69 | 70 | // } |
70 | 71 | // |
72 | // Example 3: Compute Duration from datetime.timedelta in Python. | |
73 | // | |
74 | // td = datetime.timedelta(days=3, minutes=10) | |
75 | // duration = Duration() | |
76 | // duration.FromTimedelta(td) | |
77 | // | |
78 | // # JSON Mapping | |
79 | // | |
80 | // In JSON format, the Duration type is encoded as a string rather than an | |
81 | // object, where the string ends in the suffix "s" (indicating seconds) and | |
82 | // is preceded by the number of seconds, with nanoseconds expressed as | |
83 | // fractional seconds. For example, 3 seconds with 0 nanoseconds should be | |
84 | // encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should | |
85 | // be expressed in JSON format as "3.000000001s", and 3 seconds and 1 | |
86 | // microsecond should be expressed in JSON format as "3.000001s". | |
87 | // | |
71 | 88 | // |
72 | 89 | type Duration struct { |
73 | 90 | // Signed seconds of the span of time. Must be from -315,576,000,000 |
74 | // to +315,576,000,000 inclusive. | |
91 | // to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
92 | // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
75 | 93 | Seconds int64 `protobuf:"varint,1,opt,name=seconds" json:"seconds,omitempty"` |
76 | 94 | // Signed fractions of a second at nanosecond resolution of the span |
77 | 95 | // of time. Durations less than one second are represented with a 0 |
88 | 106 | func (*Duration) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } |
89 | 107 | func (*Duration) XXX_WellKnownType() string { return "Duration" } |
90 | 108 | |
109 | func (m *Duration) GetSeconds() int64 { | |
110 | if m != nil { | |
111 | return m.Seconds | |
112 | } | |
113 | return 0 | |
114 | } | |
115 | ||
116 | func (m *Duration) GetNanos() int32 { | |
117 | if m != nil { | |
118 | return m.Nanos | |
119 | } | |
120 | return 0 | |
121 | } | |
122 | ||
91 | 123 | func init() { |
92 | 124 | proto.RegisterType((*Duration)(nil), "google.protobuf.Duration") |
93 | 125 | } |
98 | 130 | |
99 | 131 | var fileDescriptor0 = []byte{ |
100 | 132 | // 189 bytes of a gzipped FileDescriptorProto |
101 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xb2, 0x4c, 0xcf, 0x2c, 0xc9, | |
133 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4c, 0xcf, 0x2c, 0xc9, | |
102 | 134 | 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0x2f, 0x28, |
103 | 135 | 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0x28, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x4f, 0x29, |
104 | 136 | 0x2d, 0x4a, 0x2c, 0xc9, 0xcc, 0xcf, 0x83, 0x33, 0xf4, 0xc0, 0x2a, 0x84, 0xf8, 0xd3, 0xf3, 0xf3, |
106 | 138 | 0xd8, 0x8b, 0x53, 0x93, 0xf3, 0xf3, 0x52, 0x8a, 0x25, 0x18, 0x15, 0x18, 0x35, 0x98, 0x83, 0x60, |
107 | 139 | 0x5c, 0x21, 0x11, 0x2e, 0xd6, 0xbc, 0xc4, 0xbc, 0xfc, 0x62, 0x09, 0x26, 0x05, 0x46, 0x0d, 0xd6, |
108 | 140 | 0x20, 0x08, 0xc7, 0xa9, 0x86, 0x4b, 0x38, 0x39, 0x3f, 0x57, 0x0f, 0xcd, 0x48, 0x27, 0x5e, 0x98, |
109 | 0x81, 0x01, 0x20, 0x91, 0x00, 0xc6, 0x28, 0x2d, 0xe2, 0xdd, 0xbb, 0x80, 0x91, 0x71, 0x11, 0x13, | |
141 | 0x81, 0x01, 0x20, 0x91, 0x00, 0xc6, 0x28, 0x2d, 0xe2, 0xdd, 0xfb, 0x83, 0x91, 0x71, 0x11, 0x13, | |
110 | 142 | 0xb3, 0x7b, 0x80, 0xd3, 0x2a, 0x26, 0x39, 0x77, 0x88, 0xb9, 0x01, 0x50, 0xa5, 0x7a, 0xe1, 0xa9, |
111 | 143 | 0x39, 0x39, 0xde, 0x79, 0xf9, 0xe5, 0x79, 0x21, 0x20, 0x2d, 0x49, 0x6c, 0x60, 0x33, 0x8c, 0x01, |
112 | 0x01, 0x00, 0x00, 0xff, 0xff, 0x62, 0xfb, 0xb1, 0x51, 0x0e, 0x01, 0x00, 0x00, | |
144 | 0x01, 0x00, 0x00, 0xff, 0xff, 0x45, 0x5a, 0x81, 0x3d, 0x0e, 0x01, 0x00, 0x00, | |
113 | 145 | } |
32 | 32 | package google.protobuf; |
33 | 33 | |
34 | 34 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; |
35 | option cc_enable_arenas = true; | |
35 | 36 | option go_package = "github.com/golang/protobuf/ptypes/duration"; |
36 | 37 | option java_package = "com.google.protobuf"; |
37 | 38 | option java_outer_classname = "DurationProto"; |
38 | 39 | option java_multiple_files = true; |
39 | option java_generate_equals_and_hash = true; | |
40 | 40 | option objc_class_prefix = "GPB"; |
41 | 41 | |
42 | 42 | // A Duration represents a signed, fixed-length span of time represented |
45 | 45 | // or "month". It is related to Timestamp in that the difference between |
46 | 46 | // two Timestamp values is a Duration and it can be added or subtracted |
47 | 47 | // from a Timestamp. Range is approximately +-10,000 years. |
48 | // | |
49 | // # Examples | |
48 | 50 | // |
49 | 51 | // Example 1: Compute Duration from two Timestamps in pseudo code. |
50 | 52 | // |
80 | 82 | // end.nanos -= 1000000000; |
81 | 83 | // } |
82 | 84 | // |
85 | // Example 3: Compute Duration from datetime.timedelta in Python. | |
86 | // | |
87 | // td = datetime.timedelta(days=3, minutes=10) | |
88 | // duration = Duration() | |
89 | // duration.FromTimedelta(td) | |
90 | // | |
91 | // # JSON Mapping | |
92 | // | |
93 | // In JSON format, the Duration type is encoded as a string rather than an | |
94 | // object, where the string ends in the suffix "s" (indicating seconds) and | |
95 | // is preceded by the number of seconds, with nanoseconds expressed as | |
96 | // fractional seconds. For example, 3 seconds with 0 nanoseconds should be | |
97 | // encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should | |
98 | // be expressed in JSON format as "3.000000001s", and 3 seconds and 1 | |
99 | // microsecond should be expressed in JSON format as "3.000001s". | |
100 | // | |
83 | 101 | // |
84 | 102 | message Duration { |
85 | 103 | |
86 | 104 | // Signed seconds of the span of time. Must be from -315,576,000,000 |
87 | // to +315,576,000,000 inclusive. | |
105 | // to +315,576,000,000 inclusive. Note: these bounds are computed from: | |
106 | // 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years | |
88 | 107 | int64 seconds = 1; |
89 | 108 | |
90 | 109 | // Signed fractions of a second at nanosecond resolution of the span |
51 | 51 | dur time.Duration |
52 | 52 | }{ |
53 | 53 | // The zero duration. |
54 | {&durpb.Duration{0, 0}, true, true, 0}, | |
54 | {&durpb.Duration{Seconds: 0, Nanos: 0}, true, true, 0}, | |
55 | 55 | // Some ordinary non-zero durations. |
56 | {&durpb.Duration{100, 0}, true, true, 100 * time.Second}, | |
57 | {&durpb.Duration{-100, 0}, true, true, -100 * time.Second}, | |
58 | {&durpb.Duration{100, 987}, true, true, 100*time.Second + 987}, | |
59 | {&durpb.Duration{-100, -987}, true, true, -(100*time.Second + 987)}, | |
56 | {&durpb.Duration{Seconds: 100, Nanos: 0}, true, true, 100 * time.Second}, | |
57 | {&durpb.Duration{Seconds: -100, Nanos: 0}, true, true, -100 * time.Second}, | |
58 | {&durpb.Duration{Seconds: 100, Nanos: 987}, true, true, 100*time.Second + 987}, | |
59 | {&durpb.Duration{Seconds: -100, Nanos: -987}, true, true, -(100*time.Second + 987)}, | |
60 | 60 | // The largest duration representable in Go. |
61 | {&durpb.Duration{maxGoSeconds, int32(math.MaxInt64 - 1e9*maxGoSeconds)}, true, true, math.MaxInt64}, | |
61 | {&durpb.Duration{Seconds: maxGoSeconds, Nanos: int32(math.MaxInt64 - 1e9*maxGoSeconds)}, true, true, math.MaxInt64}, | |
62 | 62 | // The smallest duration representable in Go. |
63 | {&durpb.Duration{minGoSeconds, int32(math.MinInt64 - 1e9*minGoSeconds)}, true, true, math.MinInt64}, | |
63 | {&durpb.Duration{Seconds: minGoSeconds, Nanos: int32(math.MinInt64 - 1e9*minGoSeconds)}, true, true, math.MinInt64}, | |
64 | 64 | {nil, false, false, 0}, |
65 | {&durpb.Duration{-100, 987}, false, false, 0}, | |
66 | {&durpb.Duration{100, -987}, false, false, 0}, | |
67 | {&durpb.Duration{math.MinInt64, 0}, false, false, 0}, | |
68 | {&durpb.Duration{math.MaxInt64, 0}, false, false, 0}, | |
65 | {&durpb.Duration{Seconds: -100, Nanos: 987}, false, false, 0}, | |
66 | {&durpb.Duration{Seconds: 100, Nanos: -987}, false, false, 0}, | |
67 | {&durpb.Duration{Seconds: math.MinInt64, Nanos: 0}, false, false, 0}, | |
68 | {&durpb.Duration{Seconds: math.MaxInt64, Nanos: 0}, false, false, 0}, | |
69 | 69 | // The largest valid duration. |
70 | {&durpb.Duration{maxSeconds, 1e9 - 1}, true, false, 0}, | |
70 | {&durpb.Duration{Seconds: maxSeconds, Nanos: 1e9 - 1}, true, false, 0}, | |
71 | 71 | // The smallest valid duration. |
72 | {&durpb.Duration{minSeconds, -(1e9 - 1)}, true, false, 0}, | |
72 | {&durpb.Duration{Seconds: minSeconds, Nanos: -(1e9 - 1)}, true, false, 0}, | |
73 | 73 | // The smallest invalid duration above the valid range. |
74 | {&durpb.Duration{maxSeconds + 1, 0}, false, false, 0}, | |
74 | {&durpb.Duration{Seconds: maxSeconds + 1, Nanos: 0}, false, false, 0}, | |
75 | 75 | // The largest invalid duration below the valid range. |
76 | {&durpb.Duration{minSeconds - 1, -(1e9 - 1)}, false, false, 0}, | |
76 | {&durpb.Duration{Seconds: minSeconds - 1, Nanos: -(1e9 - 1)}, false, false, 0}, | |
77 | 77 | // One nanosecond past the largest duration representable in Go. |
78 | {&durpb.Duration{maxGoSeconds, int32(math.MaxInt64-1e9*maxGoSeconds) + 1}, true, false, 0}, | |
78 | {&durpb.Duration{Seconds: maxGoSeconds, Nanos: int32(math.MaxInt64-1e9*maxGoSeconds) + 1}, true, false, 0}, | |
79 | 79 | // One nanosecond past the smallest duration representable in Go. |
80 | {&durpb.Duration{minGoSeconds, int32(math.MinInt64-1e9*minGoSeconds) - 1}, true, false, 0}, | |
80 | {&durpb.Duration{Seconds: minGoSeconds, Nanos: int32(math.MinInt64-1e9*minGoSeconds) - 1}, true, false, 0}, | |
81 | 81 | // One second past the largest duration representable in Go. |
82 | {&durpb.Duration{maxGoSeconds + 1, int32(math.MaxInt64 - 1e9*maxGoSeconds)}, true, false, 0}, | |
82 | {&durpb.Duration{Seconds: maxGoSeconds + 1, Nanos: int32(math.MaxInt64 - 1e9*maxGoSeconds)}, true, false, 0}, | |
83 | 83 | // One second past the smallest duration representable in Go. |
84 | {&durpb.Duration{minGoSeconds - 1, int32(math.MinInt64 - 1e9*minGoSeconds)}, true, false, 0}, | |
84 | {&durpb.Duration{Seconds: minGoSeconds - 1, Nanos: int32(math.MinInt64 - 1e9*minGoSeconds)}, true, false, 0}, | |
85 | 85 | } |
86 | 86 | |
87 | 87 | func TestValidateDuration(t *testing.T) { |
0 | // Code generated by protoc-gen-go. | |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | 1 | // source: github.com/golang/protobuf/ptypes/empty/empty.proto |
2 | // DO NOT EDIT! | |
3 | 2 | |
4 | 3 | /* |
5 | 4 | Package empty is a generated protocol buffer package. |
54 | 53 | } |
55 | 54 | |
56 | 55 | var fileDescriptor0 = []byte{ |
57 | // 150 bytes of a gzipped FileDescriptorProto | |
58 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0x32, 0x4e, 0xcf, 0x2c, 0xc9, | |
56 | // 147 bytes of a gzipped FileDescriptorProto | |
57 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x32, 0x4e, 0xcf, 0x2c, 0xc9, | |
59 | 58 | 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0x2f, 0x28, |
60 | 59 | 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0x28, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x4f, 0xcd, |
61 | 60 | 0x2d, 0x28, 0xa9, 0x84, 0x90, 0x7a, 0x60, 0x39, 0x21, 0xfe, 0xf4, 0xfc, 0xfc, 0xf4, 0x9c, 0x54, |
62 | 0x3d, 0x98, 0x4a, 0x25, 0x76, 0x2e, 0x56, 0x57, 0x90, 0xbc, 0x53, 0x25, 0x97, 0x70, 0x72, 0x7e, | |
61 | 0x3d, 0x98, 0x4a, 0x25, 0x76, 0x2e, 0x56, 0x57, 0x90, 0xbc, 0x53, 0x19, 0x97, 0x70, 0x72, 0x7e, | |
63 | 62 | 0xae, 0x1e, 0x9a, 0xbc, 0x13, 0x17, 0x58, 0x36, 0x00, 0xc4, 0x0d, 0x60, 0x8c, 0x52, 0x27, 0xd2, |
64 | 0xce, 0x05, 0x8c, 0x8c, 0x3f, 0x18, 0x19, 0x17, 0x31, 0x31, 0xbb, 0x07, 0x38, 0xad, 0x62, 0x92, | |
65 | 0x73, 0x87, 0x18, 0x1a, 0x00, 0x55, 0xaa, 0x17, 0x9e, 0x9a, 0x93, 0xe3, 0x9d, 0x97, 0x5f, 0x9e, | |
66 | 0x17, 0x02, 0xd2, 0x92, 0xc4, 0x06, 0x36, 0xc3, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x7f, 0xbb, | |
67 | 0xf4, 0x0e, 0xd2, 0x00, 0x00, 0x00, | |
63 | 0xce, 0x1f, 0x8c, 0x8c, 0x8b, 0x98, 0x98, 0xdd, 0x03, 0x9c, 0x56, 0x31, 0xc9, 0xb9, 0x43, 0x4c, | |
64 | 0x0c, 0x80, 0xaa, 0xd3, 0x0b, 0x4f, 0xcd, 0xc9, 0xf1, 0xce, 0xcb, 0x2f, 0xcf, 0x0b, 0x01, 0xa9, | |
65 | 0x4f, 0x62, 0x03, 0x1b, 0x60, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x6e, 0x8e, 0x0a, 0x06, 0xcf, | |
66 | 0x00, 0x00, 0x00, | |
68 | 67 | } |
36 | 36 | option java_package = "com.google.protobuf"; |
37 | 37 | option java_outer_classname = "EmptyProto"; |
38 | 38 | option java_multiple_files = true; |
39 | option java_generate_equals_and_hash = true; | |
40 | 39 | option objc_class_prefix = "GPB"; |
41 | 40 | option cc_enable_arenas = true; |
42 | 41 |
0 | // Code generated by protoc-gen-go. | |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | 1 | // source: github.com/golang/protobuf/ptypes/struct/struct.proto |
2 | // DO NOT EDIT! | |
3 | 2 | |
4 | 3 | /* |
5 | 4 | Package structpb is a generated protocol buffer package. |
351 | 350 | } |
352 | 351 | |
353 | 352 | var fileDescriptor0 = []byte{ |
354 | // 416 bytes of a gzipped FileDescriptorProto | |
355 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0x8c, 0x92, 0x41, 0x8b, 0xd3, 0x40, | |
353 | // 417 bytes of a gzipped FileDescriptorProto | |
354 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x41, 0x8b, 0xd3, 0x40, | |
356 | 355 | 0x14, 0x80, 0x3b, 0xc9, 0x36, 0x98, 0x17, 0x59, 0x97, 0x11, 0xb4, 0xac, 0xa0, 0xa1, 0x7b, 0x09, |
357 | 356 | 0x22, 0x09, 0x56, 0x04, 0x31, 0x5e, 0x0c, 0xac, 0xbb, 0x60, 0x58, 0x62, 0x74, 0x57, 0xf0, 0x52, |
358 | 0x9a, 0x34, 0x8d, 0xa1, 0xd3, 0x99, 0x90, 0xcc, 0x28, 0x3d, 0xfa, 0x2f, 0x3c, 0x8a, 0x47, 0x8f, | |
359 | 0xfe, 0x42, 0x99, 0x99, 0x24, 0x4a, 0x4b, 0xc1, 0xd3, 0xf4, 0xbd, 0xf9, 0xde, 0x37, 0xef, 0xbd, | |
360 | 0x06, 0x9e, 0x97, 0x15, 0xff, 0x2c, 0x32, 0x3f, 0x67, 0x9b, 0xa0, 0x64, 0x64, 0x41, 0xcb, 0xa0, | |
361 | 0x6e, 0x18, 0x67, 0x99, 0x58, 0x05, 0x35, 0xdf, 0xd6, 0x45, 0x1b, 0xb4, 0xbc, 0x11, 0x39, 0xef, | |
362 | 0x0e, 0x5f, 0xdd, 0xe2, 0x3b, 0x25, 0x63, 0x25, 0x29, 0xfc, 0x9e, 0x9d, 0x7e, 0x47, 0x60, 0xbd, | |
363 | 0x57, 0x04, 0x0e, 0xc1, 0x5a, 0x55, 0x05, 0x59, 0xb6, 0x13, 0xe4, 0x9a, 0x9e, 0x33, 0x3b, 0xf3, | |
364 | 0x77, 0x60, 0x5f, 0x83, 0xfe, 0x1b, 0x45, 0x9d, 0x53, 0xde, 0x6c, 0xd3, 0xae, 0xe4, 0xf4, 0x1d, | |
365 | 0x38, 0xff, 0xa4, 0xf1, 0x09, 0x98, 0xeb, 0x62, 0x3b, 0x41, 0x2e, 0xf2, 0xec, 0x54, 0xfe, 0xc4, | |
366 | 0x4f, 0x60, 0xfc, 0x65, 0x41, 0x44, 0x31, 0x31, 0x5c, 0xe4, 0x39, 0xb3, 0x7b, 0x7b, 0xf2, 0x1b, | |
367 | 0x79, 0x9b, 0x6a, 0xe8, 0xa5, 0xf1, 0x02, 0x4d, 0x7f, 0x1b, 0x30, 0x56, 0x49, 0x1c, 0x02, 0x50, | |
368 | 0x41, 0xc8, 0x5c, 0x0b, 0xa4, 0xf4, 0x78, 0x76, 0xba, 0x27, 0xb8, 0x12, 0x84, 0x28, 0xfe, 0x72, | |
369 | 0x94, 0xda, 0xb4, 0x0f, 0xf0, 0x19, 0xdc, 0xa6, 0x62, 0x93, 0x15, 0xcd, 0xfc, 0xef, 0xfb, 0xe8, | |
370 | 0x72, 0x94, 0x3a, 0x3a, 0x3b, 0x40, 0x2d, 0x6f, 0x2a, 0x5a, 0x76, 0x90, 0x29, 0x1b, 0x97, 0x90, | |
371 | 0xce, 0x6a, 0xe8, 0x11, 0x40, 0xc6, 0x58, 0xdf, 0xc6, 0x91, 0x8b, 0xbc, 0x5b, 0xf2, 0x29, 0x99, | |
372 | 0xd3, 0xc0, 0x2b, 0x65, 0x11, 0x39, 0xef, 0x90, 0xb1, 0x1a, 0xf5, 0xfe, 0x81, 0x3d, 0x76, 0x7a, | |
373 | 0x91, 0xf3, 0x61, 0x4a, 0x52, 0xb5, 0x7d, 0xad, 0xa5, 0x6a, 0xf7, 0xa7, 0x8c, 0xab, 0x96, 0x0f, | |
374 | 0x53, 0x92, 0x3e, 0x88, 0x2c, 0x38, 0x5a, 0x57, 0x74, 0x39, 0x0d, 0xc1, 0x1e, 0x08, 0xec, 0x83, | |
375 | 0xa5, 0x64, 0xfd, 0x3f, 0x7a, 0x68, 0xe9, 0x1d, 0xf5, 0xf8, 0x01, 0xd8, 0xc3, 0x12, 0xf1, 0x31, | |
376 | 0xc0, 0xd5, 0x75, 0x1c, 0xcf, 0x6f, 0x5e, 0xc7, 0xd7, 0xe7, 0x27, 0xa3, 0xe8, 0x1b, 0x82, 0xbb, | |
377 | 0x39, 0xdb, 0xec, 0x2a, 0x22, 0x47, 0x4f, 0x93, 0xc8, 0x38, 0x41, 0x9f, 0x9e, 0xfe, 0xef, 0x87, | |
378 | 0x19, 0xea, 0xa3, 0xce, 0x7e, 0x20, 0xf4, 0xd3, 0x30, 0x2f, 0x92, 0xe8, 0x97, 0xf1, 0xf0, 0x42, | |
379 | 0xcb, 0x93, 0xbe, 0xbf, 0x8f, 0x05, 0x21, 0x6f, 0x29, 0xfb, 0x4a, 0x3f, 0xc8, 0xca, 0xcc, 0x52, | |
380 | 0xaa, 0x67, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xbc, 0xcf, 0x6d, 0x50, 0xfe, 0x02, 0x00, 0x00, | |
381 | } | |
357 | 0x9a, 0x34, 0x8d, 0xa1, 0xd3, 0x99, 0x90, 0xcc, 0x28, 0x3d, 0xfa, 0x2f, 0x3c, 0x7b, 0xf4, 0xe8, | |
358 | 0xaf, 0xf3, 0x28, 0x33, 0x93, 0x44, 0x69, 0x29, 0x78, 0x9a, 0xbe, 0x37, 0xdf, 0xfb, 0xe6, 0xbd, | |
359 | 0xd7, 0xc0, 0xf3, 0xb2, 0xe2, 0x9f, 0x45, 0xe6, 0xe7, 0x6c, 0x13, 0x94, 0x8c, 0x2c, 0x68, 0x19, | |
360 | 0xd4, 0x0d, 0xe3, 0x2c, 0x13, 0xab, 0xa0, 0xe6, 0xdb, 0xba, 0x68, 0x83, 0x96, 0x37, 0x22, 0xe7, | |
361 | 0xdd, 0xe1, 0xab, 0x5b, 0x7c, 0xa7, 0x64, 0xac, 0x24, 0x85, 0xdf, 0xb3, 0xd3, 0xef, 0x08, 0xac, | |
362 | 0xf7, 0x8a, 0xc0, 0x21, 0x58, 0xab, 0xaa, 0x20, 0xcb, 0x76, 0x82, 0x5c, 0xd3, 0x73, 0x66, 0x67, | |
363 | 0xfe, 0x0e, 0xec, 0x6b, 0xd0, 0x7f, 0xa3, 0xa8, 0x73, 0xca, 0x9b, 0x6d, 0xda, 0x95, 0x9c, 0xbe, | |
364 | 0x03, 0xe7, 0x9f, 0x34, 0x3e, 0x01, 0x73, 0x5d, 0x6c, 0x27, 0xc8, 0x45, 0x9e, 0x9d, 0xca, 0x9f, | |
365 | 0xf8, 0x09, 0x8c, 0xbf, 0x2c, 0x88, 0x28, 0x26, 0x86, 0x8b, 0x3c, 0x67, 0x76, 0x6f, 0x4f, 0x7e, | |
366 | 0x23, 0x6f, 0x53, 0x0d, 0xbd, 0x34, 0x5e, 0xa0, 0xe9, 0x2f, 0x03, 0xc6, 0x2a, 0x89, 0x43, 0x00, | |
367 | 0x2a, 0x08, 0x99, 0x6b, 0x81, 0x94, 0x1e, 0xcf, 0x4e, 0xf7, 0x04, 0x57, 0x82, 0x10, 0xc5, 0x5f, | |
368 | 0x8e, 0x52, 0x9b, 0xf6, 0x01, 0x3e, 0x83, 0xdb, 0x54, 0x6c, 0xb2, 0xa2, 0x99, 0xff, 0x7d, 0x1f, | |
369 | 0x5d, 0x8e, 0x52, 0x47, 0x67, 0x07, 0xa8, 0xe5, 0x4d, 0x45, 0xcb, 0x0e, 0x32, 0x65, 0xe3, 0x12, | |
370 | 0xd2, 0x59, 0x0d, 0x3d, 0x02, 0xc8, 0x18, 0xeb, 0xdb, 0x38, 0x72, 0x91, 0x77, 0x4b, 0x3e, 0x25, | |
371 | 0x73, 0x1a, 0x78, 0xa5, 0x2c, 0x22, 0xe7, 0x1d, 0x32, 0x56, 0xa3, 0xde, 0x3f, 0xb0, 0xc7, 0x4e, | |
372 | 0x2f, 0x72, 0x3e, 0x4c, 0x49, 0xaa, 0xb6, 0xaf, 0xb5, 0x54, 0xed, 0xfe, 0x94, 0x71, 0xd5, 0xf2, | |
373 | 0x61, 0x4a, 0xd2, 0x07, 0x91, 0x05, 0x47, 0xeb, 0x8a, 0x2e, 0xa7, 0x21, 0xd8, 0x03, 0x81, 0x7d, | |
374 | 0xb0, 0x94, 0xac, 0xff, 0x47, 0x0f, 0x2d, 0xbd, 0xa3, 0x1e, 0x3f, 0x00, 0x7b, 0x58, 0x22, 0x3e, | |
375 | 0x06, 0xb8, 0xba, 0x8e, 0xe3, 0xf9, 0xcd, 0xeb, 0xf8, 0xfa, 0xfc, 0x64, 0x14, 0x7d, 0x43, 0x70, | |
376 | 0x37, 0x67, 0x9b, 0x5d, 0x45, 0xe4, 0xe8, 0x69, 0x12, 0x19, 0x27, 0xe8, 0xd3, 0xd3, 0xff, 0xfd, | |
377 | 0x30, 0x43, 0x7d, 0xd4, 0xd9, 0x6f, 0x84, 0x7e, 0x18, 0xe6, 0x45, 0x12, 0xfd, 0x34, 0x1e, 0x5e, | |
378 | 0x68, 0x79, 0xd2, 0xf7, 0xf7, 0xb1, 0x20, 0xe4, 0x2d, 0x65, 0x5f, 0xe9, 0x07, 0x59, 0x99, 0x59, | |
379 | 0x4a, 0xf5, 0xec, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9b, 0x6e, 0x5d, 0x3c, 0xfe, 0x02, 0x00, | |
380 | 0x00, | |
381 | } |
32 | 32 | package google.protobuf; |
33 | 33 | |
34 | 34 | option csharp_namespace = "Google.Protobuf.WellKnownTypes"; |
35 | option cc_enable_arenas = true; | |
35 | 36 | option go_package = "github.com/golang/protobuf/ptypes/struct;structpb"; |
36 | 37 | option java_package = "com.google.protobuf"; |
37 | 38 | option java_outer_classname = "StructProto"; |
38 | 39 | option java_multiple_files = true; |
39 | option java_generate_equals_and_hash = true; | |
40 | 40 | option objc_class_prefix = "GPB"; |
41 | 41 | |
42 | 42 |
0 | // Code generated by protoc-gen-go. | |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | 1 | // source: github.com/golang/protobuf/ptypes/timestamp/timestamp.proto |
2 | // DO NOT EDIT! | |
3 | 2 | |
4 | 3 | /* |
5 | 4 | Package timestamp is a generated protocol buffer package. |
39 | 38 | // and from RFC 3339 date strings. |
40 | 39 | // See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). |
41 | 40 | // |
41 | // # Examples | |
42 | // | |
42 | 43 | // Example 1: Compute Timestamp from POSIX `time()`. |
43 | 44 | // |
44 | 45 | // Timestamp timestamp; |
76 | 77 | // |
77 | 78 | // Example 5: Compute Timestamp from current time in Python. |
78 | 79 | // |
79 | // now = time.time() | |
80 | // seconds = int(now) | |
81 | // nanos = int((now - seconds) * 10**9) | |
82 | // timestamp = Timestamp(seconds=seconds, nanos=nanos) | |
80 | // timestamp = Timestamp() | |
81 | // timestamp.GetCurrentTime() | |
82 | // | |
83 | // # JSON Mapping | |
84 | // | |
85 | // In JSON format, the Timestamp type is encoded as a string in the | |
86 | // [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the | |
87 | // format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" | |
88 | // where {year} is always expressed using four digits while {month}, {day}, | |
89 | // {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional | |
90 | // seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), | |
91 | // are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone | |
92 | // is required, though only UTC (as indicated by "Z") is presently supported. | |
93 | // | |
94 | // For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past | |
95 | // 01:30 UTC on January 15, 2017. | |
96 | // | |
97 | // In JavaScript, one can convert a Date object to this format using the | |
98 | // standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] | |
99 | // method. In Python, a standard `datetime.datetime` object can be converted | |
100 | // to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) | |
101 | // with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one | |
102 | // can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( | |
103 | // http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) | |
104 | // to obtain a formatter capable of generating timestamps in this format. | |
83 | 105 | // |
84 | 106 | // |
85 | 107 | type Timestamp struct { |
86 | 108 | // Represents seconds of UTC time since Unix epoch |
87 | // 1970-01-01T00:00:00Z. Must be from from 0001-01-01T00:00:00Z to | |
109 | // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
88 | 110 | // 9999-12-31T23:59:59Z inclusive. |
89 | 111 | Seconds int64 `protobuf:"varint,1,opt,name=seconds" json:"seconds,omitempty"` |
90 | 112 | // Non-negative fractions of a second at nanosecond resolution. Negative |
100 | 122 | func (*Timestamp) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } |
101 | 123 | func (*Timestamp) XXX_WellKnownType() string { return "Timestamp" } |
102 | 124 | |
125 | func (m *Timestamp) GetSeconds() int64 { | |
126 | if m != nil { | |
127 | return m.Seconds | |
128 | } | |
129 | return 0 | |
130 | } | |
131 | ||
132 | func (m *Timestamp) GetNanos() int32 { | |
133 | if m != nil { | |
134 | return m.Nanos | |
135 | } | |
136 | return 0 | |
137 | } | |
138 | ||
103 | 139 | func init() { |
104 | 140 | proto.RegisterType((*Timestamp)(nil), "google.protobuf.Timestamp") |
105 | 141 | } |
109 | 145 | } |
110 | 146 | |
111 | 147 | var fileDescriptor0 = []byte{ |
112 | // 194 bytes of a gzipped FileDescriptorProto | |
113 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xb2, 0x4e, 0xcf, 0x2c, 0xc9, | |
148 | // 190 bytes of a gzipped FileDescriptorProto | |
149 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4e, 0xcf, 0x2c, 0xc9, | |
114 | 150 | 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0x2f, 0x28, |
115 | 151 | 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0x28, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x2f, 0xc9, |
116 | 152 | 0xcc, 0x4d, 0x2d, 0x2e, 0x49, 0xcc, 0x2d, 0x40, 0xb0, 0xf4, 0xc0, 0x6a, 0x84, 0xf8, 0xd3, 0xf3, |
117 | 153 | 0xf3, 0xd3, 0x73, 0x52, 0xf5, 0x60, 0x3a, 0x94, 0xac, 0xb9, 0x38, 0x43, 0x60, 0x6a, 0x84, 0x24, |
118 | 154 | 0xb8, 0xd8, 0x8b, 0x53, 0x93, 0xf3, 0xf3, 0x52, 0x8a, 0x25, 0x18, 0x15, 0x18, 0x35, 0x98, 0x83, |
119 | 155 | 0x60, 0x5c, 0x21, 0x11, 0x2e, 0xd6, 0xbc, 0xc4, 0xbc, 0xfc, 0x62, 0x09, 0x26, 0x05, 0x46, 0x0d, |
120 | 0xd6, 0x20, 0x08, 0xc7, 0xa9, 0x91, 0x91, 0x4b, 0x38, 0x39, 0x3f, 0x57, 0x0f, 0xcd, 0x50, 0x27, | |
121 | 0x3e, 0xb8, 0x91, 0x01, 0x20, 0xa1, 0x00, 0xc6, 0x28, 0x6d, 0x12, 0x1c, 0xbd, 0x80, 0x91, 0xf1, | |
122 | 0x07, 0x23, 0xe3, 0x22, 0x26, 0x66, 0xf7, 0x00, 0xa7, 0x55, 0x4c, 0x72, 0xee, 0x10, 0xc3, 0x03, | |
123 | 0xa0, 0xca, 0xf5, 0xc2, 0x53, 0x73, 0x72, 0xbc, 0xf3, 0xf2, 0xcb, 0xf3, 0x42, 0x40, 0xda, 0x92, | |
124 | 0xd8, 0xc0, 0xe6, 0x18, 0x03, 0x02, 0x00, 0x00, 0xff, 0xff, 0x17, 0x5f, 0xb7, 0xdc, 0x17, 0x01, | |
125 | 0x00, 0x00, | |
156 | 0xd6, 0x20, 0x08, 0xc7, 0xa9, 0x8e, 0x4b, 0x38, 0x39, 0x3f, 0x57, 0x0f, 0xcd, 0x4c, 0x27, 0x3e, | |
157 | 0xb8, 0x89, 0x01, 0x20, 0xa1, 0x00, 0xc6, 0x28, 0x6d, 0x12, 0xdc, 0xfc, 0x83, 0x91, 0x71, 0x11, | |
158 | 0x13, 0xb3, 0x7b, 0x80, 0xd3, 0x2a, 0x26, 0x39, 0x77, 0x88, 0xc9, 0x01, 0x50, 0xb5, 0x7a, 0xe1, | |
159 | 0xa9, 0x39, 0x39, 0xde, 0x79, 0xf9, 0xe5, 0x79, 0x21, 0x20, 0x3d, 0x49, 0x6c, 0x60, 0x43, 0x8c, | |
160 | 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x6b, 0x59, 0x0a, 0x4d, 0x13, 0x01, 0x00, 0x00, | |
126 | 161 | } |
37 | 37 | option java_package = "com.google.protobuf"; |
38 | 38 | option java_outer_classname = "TimestampProto"; |
39 | 39 | option java_multiple_files = true; |
40 | option java_generate_equals_and_hash = true; | |
41 | 40 | option objc_class_prefix = "GPB"; |
42 | 41 | |
43 | 42 | // A Timestamp represents a point in time independent of any time zone |
51 | 50 | // By restricting to that range, we ensure that we can convert to |
52 | 51 | // and from RFC 3339 date strings. |
53 | 52 | // See [https://www.ietf.org/rfc/rfc3339.txt](https://www.ietf.org/rfc/rfc3339.txt). |
53 | // | |
54 | // # Examples | |
54 | 55 | // |
55 | 56 | // Example 1: Compute Timestamp from POSIX `time()`. |
56 | 57 | // |
89 | 90 | // |
90 | 91 | // Example 5: Compute Timestamp from current time in Python. |
91 | 92 | // |
92 | // now = time.time() | |
93 | // seconds = int(now) | |
94 | // nanos = int((now - seconds) * 10**9) | |
95 | // timestamp = Timestamp(seconds=seconds, nanos=nanos) | |
93 | // timestamp = Timestamp() | |
94 | // timestamp.GetCurrentTime() | |
95 | // | |
96 | // # JSON Mapping | |
97 | // | |
98 | // In JSON format, the Timestamp type is encoded as a string in the | |
99 | // [RFC 3339](https://www.ietf.org/rfc/rfc3339.txt) format. That is, the | |
100 | // format is "{year}-{month}-{day}T{hour}:{min}:{sec}[.{frac_sec}]Z" | |
101 | // where {year} is always expressed using four digits while {month}, {day}, | |
102 | // {hour}, {min}, and {sec} are zero-padded to two digits each. The fractional | |
103 | // seconds, which can go up to 9 digits (i.e. up to 1 nanosecond resolution), | |
104 | // are optional. The "Z" suffix indicates the timezone ("UTC"); the timezone | |
105 | // is required, though only UTC (as indicated by "Z") is presently supported. | |
106 | // | |
107 | // For example, "2017-01-15T01:30:15.01Z" encodes 15.01 seconds past | |
108 | // 01:30 UTC on January 15, 2017. | |
109 | // | |
110 | // In JavaScript, one can convert a Date object to this format using the | |
111 | // standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString] | |
112 | // method. In Python, a standard `datetime.datetime` object can be converted | |
113 | // to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime) | |
114 | // with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one | |
115 | // can use the Joda Time's [`ISODateTimeFormat.dateTime()`]( | |
116 | // http://joda-time.sourceforge.net/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime()) | |
117 | // to obtain a formatter capable of generating timestamps in this format. | |
96 | 118 | // |
97 | 119 | // |
98 | 120 | message Timestamp { |
99 | 121 | |
100 | 122 | // Represents seconds of UTC time since Unix epoch |
101 | // 1970-01-01T00:00:00Z. Must be from from 0001-01-01T00:00:00Z to | |
123 | // 1970-01-01T00:00:00Z. Must be from 0001-01-01T00:00:00Z to | |
102 | 124 | // 9999-12-31T23:59:59Z inclusive. |
103 | 125 | int64 seconds = 1; |
104 | 126 |
98 | 98 | return t, validateTimestamp(ts) |
99 | 99 | } |
100 | 100 | |
101 | // TimestampNow returns a google.protobuf.Timestamp for the current time. | |
102 | func TimestampNow() *tspb.Timestamp { | |
103 | ts, err := TimestampProto(time.Now()) | |
104 | if err != nil { | |
105 | panic("ptypes: time.Now() out of Timestamp range") | |
106 | } | |
107 | return ts | |
108 | } | |
109 | ||
101 | 110 | // TimestampProto converts the time.Time to a google.protobuf.Timestamp proto. |
102 | 111 | // It returns an error if the resulting Timestamp is invalid. |
103 | 112 | func TimestampProto(t time.Time) (*tspb.Timestamp, error) { |
45 | 45 | t time.Time |
46 | 46 | }{ |
47 | 47 | // The timestamp representing the Unix epoch date. |
48 | {&tspb.Timestamp{0, 0}, true, utcDate(1970, 1, 1)}, | |
48 | {&tspb.Timestamp{Seconds: 0, Nanos: 0}, true, utcDate(1970, 1, 1)}, | |
49 | 49 | // The smallest representable timestamp. |
50 | {&tspb.Timestamp{math.MinInt64, math.MinInt32}, false, | |
50 | {&tspb.Timestamp{Seconds: math.MinInt64, Nanos: math.MinInt32}, false, | |
51 | 51 | time.Unix(math.MinInt64, math.MinInt32).UTC()}, |
52 | 52 | // The smallest representable timestamp with non-negative nanos. |
53 | {&tspb.Timestamp{math.MinInt64, 0}, false, time.Unix(math.MinInt64, 0).UTC()}, | |
53 | {&tspb.Timestamp{Seconds: math.MinInt64, Nanos: 0}, false, time.Unix(math.MinInt64, 0).UTC()}, | |
54 | 54 | // The earliest valid timestamp. |
55 | {&tspb.Timestamp{minValidSeconds, 0}, true, utcDate(1, 1, 1)}, | |
55 | {&tspb.Timestamp{Seconds: minValidSeconds, Nanos: 0}, true, utcDate(1, 1, 1)}, | |
56 | 56 | //"0001-01-01T00:00:00Z"}, |
57 | 57 | // The largest representable timestamp. |
58 | {&tspb.Timestamp{math.MaxInt64, math.MaxInt32}, false, | |
58 | {&tspb.Timestamp{Seconds: math.MaxInt64, Nanos: math.MaxInt32}, false, | |
59 | 59 | time.Unix(math.MaxInt64, math.MaxInt32).UTC()}, |
60 | 60 | // The largest representable timestamp with nanos in range. |
61 | {&tspb.Timestamp{math.MaxInt64, 1e9 - 1}, false, | |
61 | {&tspb.Timestamp{Seconds: math.MaxInt64, Nanos: 1e9 - 1}, false, | |
62 | 62 | time.Unix(math.MaxInt64, 1e9-1).UTC()}, |
63 | 63 | // The largest valid timestamp. |
64 | {&tspb.Timestamp{maxValidSeconds - 1, 1e9 - 1}, true, | |
64 | {&tspb.Timestamp{Seconds: maxValidSeconds - 1, Nanos: 1e9 - 1}, true, | |
65 | 65 | time.Date(9999, 12, 31, 23, 59, 59, 1e9-1, time.UTC)}, |
66 | 66 | // The smallest invalid timestamp that is larger than the valid range. |
67 | {&tspb.Timestamp{maxValidSeconds, 0}, false, time.Unix(maxValidSeconds, 0).UTC()}, | |
67 | {&tspb.Timestamp{Seconds: maxValidSeconds, Nanos: 0}, false, time.Unix(maxValidSeconds, 0).UTC()}, | |
68 | 68 | // A date before the epoch. |
69 | {&tspb.Timestamp{-281836800, 0}, true, utcDate(1961, 1, 26)}, | |
69 | {&tspb.Timestamp{Seconds: -281836800, Nanos: 0}, true, utcDate(1961, 1, 26)}, | |
70 | 70 | // A date after the epoch. |
71 | {&tspb.Timestamp{1296000000, 0}, true, utcDate(2011, 1, 26)}, | |
71 | {&tspb.Timestamp{Seconds: 1296000000, Nanos: 0}, true, utcDate(2011, 1, 26)}, | |
72 | 72 | // A date after the epoch, in the middle of the day. |
73 | {&tspb.Timestamp{1296012345, 940483}, true, | |
73 | {&tspb.Timestamp{Seconds: 1296012345, Nanos: 940483}, true, | |
74 | 74 | time.Date(2011, 1, 26, 3, 25, 45, 940483, time.UTC)}, |
75 | 75 | } |
76 | 76 | |
122 | 122 | }{ |
123 | 123 | // Not much testing needed because presumably time.Format is |
124 | 124 | // well-tested. |
125 | {&tspb.Timestamp{0, 0}, "1970-01-01T00:00:00Z"}, | |
126 | {&tspb.Timestamp{minValidSeconds - 1, 0}, "(timestamp: seconds:-62135596801 before 0001-01-01)"}, | |
125 | {&tspb.Timestamp{Seconds: 0, Nanos: 0}, "1970-01-01T00:00:00Z"}, | |
126 | {&tspb.Timestamp{Seconds: minValidSeconds - 1, Nanos: 0}, "(timestamp: seconds:-62135596801 before 0001-01-01)"}, | |
127 | 127 | } { |
128 | 128 | got := TimestampString(test.ts) |
129 | 129 | if got != test.want { |
135 | 135 | func utcDate(year, month, day int) time.Time { |
136 | 136 | return time.Date(year, time.Month(month), day, 0, 0, 0, 0, time.UTC) |
137 | 137 | } |
138 | ||
139 | func TestTimestampNow(t *testing.T) { | |
140 | // Bracket the expected time. | |
141 | before := time.Now() | |
142 | ts := TimestampNow() | |
143 | after := time.Now() | |
144 | ||
145 | tm, err := Timestamp(ts) | |
146 | if err != nil { | |
147 | t.Errorf("between %v and %v\nTimestampNow() = %v\nwhich is invalid (%v)", before, after, ts, err) | |
148 | } | |
149 | if tm.Before(before) || tm.After(after) { | |
150 | t.Errorf("between %v and %v\nTimestamp(TimestampNow()) = %v", before, after, tm) | |
151 | } | |
152 | } |
0 | // Code generated by protoc-gen-go. | |
0 | // Code generated by protoc-gen-go. DO NOT EDIT. | |
1 | 1 | // source: github.com/golang/protobuf/ptypes/wrappers/wrappers.proto |
2 | // DO NOT EDIT! | |
3 | 2 | |
4 | 3 | /* |
5 | 4 | Package wrappers is a generated protocol buffer package. |
49 | 48 | func (*DoubleValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{0} } |
50 | 49 | func (*DoubleValue) XXX_WellKnownType() string { return "DoubleValue" } |
51 | 50 | |
51 | func (m *DoubleValue) GetValue() float64 { | |
52 | if m != nil { | |
53 | return m.Value | |
54 | } | |
55 | return 0 | |
56 | } | |
57 | ||
52 | 58 | // Wrapper message for `float`. |
53 | 59 | // |
54 | 60 | // The JSON representation for `FloatValue` is JSON number. |
63 | 69 | func (*FloatValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{1} } |
64 | 70 | func (*FloatValue) XXX_WellKnownType() string { return "FloatValue" } |
65 | 71 | |
72 | func (m *FloatValue) GetValue() float32 { | |
73 | if m != nil { | |
74 | return m.Value | |
75 | } | |
76 | return 0 | |
77 | } | |
78 | ||
66 | 79 | // Wrapper message for `int64`. |
67 | 80 | // |
68 | 81 | // The JSON representation for `Int64Value` is JSON string. |
77 | 90 | func (*Int64Value) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{2} } |
78 | 91 | func (*Int64Value) XXX_WellKnownType() string { return "Int64Value" } |
79 | 92 | |
93 | func (m *Int64Value) GetValue() int64 { | |
94 | if m != nil { | |
95 | return m.Value | |
96 | } | |
97 | return 0 | |
98 | } | |
99 | ||
80 | 100 | // Wrapper message for `uint64`. |
81 | 101 | // |
82 | 102 | // The JSON representation for `UInt64Value` is JSON string. |
91 | 111 | func (*UInt64Value) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{3} } |
92 | 112 | func (*UInt64Value) XXX_WellKnownType() string { return "UInt64Value" } |
93 | 113 | |
114 | func (m *UInt64Value) GetValue() uint64 { | |
115 | if m != nil { | |
116 | return m.Value | |
117 | } | |
118 | return 0 | |
119 | } | |
120 | ||
94 | 121 | // Wrapper message for `int32`. |
95 | 122 | // |
96 | 123 | // The JSON representation for `Int32Value` is JSON number. |
105 | 132 | func (*Int32Value) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{4} } |
106 | 133 | func (*Int32Value) XXX_WellKnownType() string { return "Int32Value" } |
107 | 134 | |
135 | func (m *Int32Value) GetValue() int32 { | |
136 | if m != nil { | |
137 | return m.Value | |
138 | } | |
139 | return 0 | |
140 | } | |
141 | ||
108 | 142 | // Wrapper message for `uint32`. |
109 | 143 | // |
110 | 144 | // The JSON representation for `UInt32Value` is JSON number. |
119 | 153 | func (*UInt32Value) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{5} } |
120 | 154 | func (*UInt32Value) XXX_WellKnownType() string { return "UInt32Value" } |
121 | 155 | |
156 | func (m *UInt32Value) GetValue() uint32 { | |
157 | if m != nil { | |
158 | return m.Value | |
159 | } | |
160 | return 0 | |
161 | } | |
162 | ||
122 | 163 | // Wrapper message for `bool`. |
123 | 164 | // |
124 | 165 | // The JSON representation for `BoolValue` is JSON `true` and `false`. |
133 | 174 | func (*BoolValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{6} } |
134 | 175 | func (*BoolValue) XXX_WellKnownType() string { return "BoolValue" } |
135 | 176 | |
177 | func (m *BoolValue) GetValue() bool { | |
178 | if m != nil { | |
179 | return m.Value | |
180 | } | |
181 | return false | |
182 | } | |
183 | ||
136 | 184 | // Wrapper message for `string`. |
137 | 185 | // |
138 | 186 | // The JSON representation for `StringValue` is JSON string. |
147 | 195 | func (*StringValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{7} } |
148 | 196 | func (*StringValue) XXX_WellKnownType() string { return "StringValue" } |
149 | 197 | |
198 | func (m *StringValue) GetValue() string { | |
199 | if m != nil { | |
200 | return m.Value | |
201 | } | |
202 | return "" | |
203 | } | |
204 | ||
150 | 205 | // Wrapper message for `bytes`. |
151 | 206 | // |
152 | 207 | // The JSON representation for `BytesValue` is JSON string. |
160 | 215 | func (*BytesValue) ProtoMessage() {} |
161 | 216 | func (*BytesValue) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{8} } |
162 | 217 | func (*BytesValue) XXX_WellKnownType() string { return "BytesValue" } |
218 | ||
219 | func (m *BytesValue) GetValue() []byte { | |
220 | if m != nil { | |
221 | return m.Value | |
222 | } | |
223 | return nil | |
224 | } | |
163 | 225 | |
164 | 226 | func init() { |
165 | 227 | proto.RegisterType((*DoubleValue)(nil), "google.protobuf.DoubleValue") |
178 | 240 | } |
179 | 241 | |
180 | 242 | var fileDescriptor0 = []byte{ |
181 | // 260 bytes of a gzipped FileDescriptorProto | |
182 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xe2, 0xb2, 0x4c, 0xcf, 0x2c, 0xc9, | |
243 | // 257 bytes of a gzipped FileDescriptorProto | |
244 | 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xb2, 0x4c, 0xcf, 0x2c, 0xc9, | |
183 | 245 | 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, 0x4f, 0xcf, 0xcf, 0x49, 0xcc, 0x4b, 0xd7, 0x2f, 0x28, |
184 | 246 | 0xca, 0x2f, 0xc9, 0x4f, 0x2a, 0x4d, 0xd3, 0x2f, 0x28, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x2f, 0x2f, |
185 | 247 | 0x4a, 0x2c, 0x28, 0x48, 0x2d, 0x42, 0x30, 0xf4, 0xc0, 0x2a, 0x84, 0xf8, 0xd3, 0xf3, 0xf3, 0xd3, |
190 | 252 | 0xe2, 0x52, 0xc4, 0x82, 0x6a, 0x90, 0xb1, 0x11, 0x16, 0x35, 0xac, 0x68, 0x06, 0x61, 0x55, 0xc4, |
191 | 253 | 0x0b, 0x53, 0xa4, 0xc8, 0xc5, 0xe9, 0x94, 0x9f, 0x9f, 0x83, 0x45, 0x09, 0x07, 0x92, 0x39, 0xc1, |
192 | 254 | 0x25, 0x45, 0x99, 0x79, 0xe9, 0x58, 0x14, 0x71, 0x22, 0x39, 0xc8, 0xa9, 0xb2, 0x24, 0xb5, 0x18, |
193 | 0x8b, 0x1a, 0x1e, 0xa8, 0x1a, 0xa7, 0x7a, 0x2e, 0xe1, 0xe4, 0xfc, 0x5c, 0x3d, 0xb4, 0xd0, 0x75, | |
194 | 0xe2, 0x0d, 0x87, 0x06, 0x7f, 0x00, 0x48, 0x24, 0x80, 0x31, 0x4a, 0x8b, 0xf8, 0xa8, 0x5b, 0xc0, | |
195 | 0xc8, 0xf8, 0x83, 0x91, 0x71, 0x11, 0x13, 0xb3, 0x7b, 0x80, 0xd3, 0x2a, 0x26, 0x39, 0x77, 0x88, | |
196 | 0xd1, 0x01, 0x50, 0xd5, 0x7a, 0xe1, 0xa9, 0x39, 0x39, 0xde, 0x79, 0xf9, 0xe5, 0x79, 0x21, 0x20, | |
197 | 0x5d, 0x49, 0x6c, 0x60, 0x63, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa9, 0xdf, 0x64, 0x4b, | |
198 | 0x1c, 0x02, 0x00, 0x00, | |
199 | } | |
255 | 0x8b, 0x1a, 0x1e, 0xa8, 0x1a, 0xa7, 0x1a, 0x2e, 0xe1, 0xe4, 0xfc, 0x5c, 0x3d, 0xb4, 0xd0, 0x75, | |
256 | 0xe2, 0x0d, 0x87, 0x06, 0x7f, 0x00, 0x48, 0x24, 0x80, 0x31, 0x4a, 0x8b, 0xf8, 0xa8, 0xfb, 0xc1, | |
257 | 0xc8, 0xb8, 0x88, 0x89, 0xd9, 0x3d, 0xc0, 0x69, 0x15, 0x93, 0x9c, 0x3b, 0xc4, 0xdc, 0x00, 0xa8, | |
258 | 0x52, 0xbd, 0xf0, 0xd4, 0x9c, 0x1c, 0xef, 0xbc, 0xfc, 0xf2, 0xbc, 0x10, 0x90, 0x96, 0x24, 0x36, | |
259 | 0xb0, 0x19, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0xee, 0x36, 0x8d, 0xd8, 0x19, 0x02, 0x00, | |
260 | 0x00, | |
261 | } |