blob: ebbd8dcbd81593a680ddf278ee4e65686c8524c0 [file] [log] [blame]
Don Newton98fd8812019-09-23 15:15:02 -04001// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: voltha_protos/device.proto
3
4package voltha
5
6import (
7 fmt "fmt"
8 proto "github.com/golang/protobuf/proto"
9 any "github.com/golang/protobuf/ptypes/any"
David K. Bainbridgeaea73cd2020-01-27 10:44:50 -080010 common "github.com/opencord/voltha-protos/v3/go/common"
11 openflow_13 "github.com/opencord/voltha-protos/v3/go/openflow_13"
Don Newton98fd8812019-09-23 15:15:02 -040012 math "math"
13)
14
15// Reference imports to suppress errors if they are not otherwise used.
16var _ = proto.Marshal
17var _ = fmt.Errorf
18var _ = math.Inf
19
20// This is a compile-time assertion to ensure that this generated file
21// is compatible with the proto package it is being compiled against.
22// A compilation error at this line likely means your copy of the
23// proto package needs to be updated.
24const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
25
26type PmConfig_PmType int32
27
28const (
29 PmConfig_COUNTER PmConfig_PmType = 0
30 PmConfig_GAUGE PmConfig_PmType = 1
31 PmConfig_STATE PmConfig_PmType = 2
32 PmConfig_CONTEXT PmConfig_PmType = 3
33)
34
35var PmConfig_PmType_name = map[int32]string{
36 0: "COUNTER",
37 1: "GAUGE",
38 2: "STATE",
39 3: "CONTEXT",
40}
41
42var PmConfig_PmType_value = map[string]int32{
43 "COUNTER": 0,
44 "GAUGE": 1,
45 "STATE": 2,
46 "CONTEXT": 3,
47}
48
49func (x PmConfig_PmType) String() string {
50 return proto.EnumName(PmConfig_PmType_name, int32(x))
51}
52
53func (PmConfig_PmType) EnumDescriptor() ([]byte, []int) {
54 return fileDescriptor_200940f73d155856, []int{2, 0}
55}
56
57type ImageDownload_ImageDownloadState int32
58
59const (
60 ImageDownload_DOWNLOAD_UNKNOWN ImageDownload_ImageDownloadState = 0
61 ImageDownload_DOWNLOAD_SUCCEEDED ImageDownload_ImageDownloadState = 1
62 ImageDownload_DOWNLOAD_REQUESTED ImageDownload_ImageDownloadState = 2
63 ImageDownload_DOWNLOAD_STARTED ImageDownload_ImageDownloadState = 3
64 ImageDownload_DOWNLOAD_FAILED ImageDownload_ImageDownloadState = 4
65 ImageDownload_DOWNLOAD_UNSUPPORTED ImageDownload_ImageDownloadState = 5
66 ImageDownload_DOWNLOAD_CANCELLED ImageDownload_ImageDownloadState = 6
67)
68
69var ImageDownload_ImageDownloadState_name = map[int32]string{
70 0: "DOWNLOAD_UNKNOWN",
71 1: "DOWNLOAD_SUCCEEDED",
72 2: "DOWNLOAD_REQUESTED",
73 3: "DOWNLOAD_STARTED",
74 4: "DOWNLOAD_FAILED",
75 5: "DOWNLOAD_UNSUPPORTED",
76 6: "DOWNLOAD_CANCELLED",
77}
78
79var ImageDownload_ImageDownloadState_value = map[string]int32{
80 "DOWNLOAD_UNKNOWN": 0,
81 "DOWNLOAD_SUCCEEDED": 1,
82 "DOWNLOAD_REQUESTED": 2,
83 "DOWNLOAD_STARTED": 3,
84 "DOWNLOAD_FAILED": 4,
85 "DOWNLOAD_UNSUPPORTED": 5,
86 "DOWNLOAD_CANCELLED": 6,
87}
88
89func (x ImageDownload_ImageDownloadState) String() string {
90 return proto.EnumName(ImageDownload_ImageDownloadState_name, int32(x))
91}
92
93func (ImageDownload_ImageDownloadState) EnumDescriptor() ([]byte, []int) {
94 return fileDescriptor_200940f73d155856, []int{7, 0}
95}
96
97type ImageDownload_ImageDownloadFailureReason int32
98
99const (
100 ImageDownload_NO_ERROR ImageDownload_ImageDownloadFailureReason = 0
101 ImageDownload_INVALID_URL ImageDownload_ImageDownloadFailureReason = 1
102 ImageDownload_DEVICE_BUSY ImageDownload_ImageDownloadFailureReason = 2
103 ImageDownload_INSUFFICIENT_SPACE ImageDownload_ImageDownloadFailureReason = 3
104 ImageDownload_UNKNOWN_ERROR ImageDownload_ImageDownloadFailureReason = 4
105 ImageDownload_CANCELLED ImageDownload_ImageDownloadFailureReason = 5
106)
107
108var ImageDownload_ImageDownloadFailureReason_name = map[int32]string{
109 0: "NO_ERROR",
110 1: "INVALID_URL",
111 2: "DEVICE_BUSY",
112 3: "INSUFFICIENT_SPACE",
113 4: "UNKNOWN_ERROR",
114 5: "CANCELLED",
115}
116
117var ImageDownload_ImageDownloadFailureReason_value = map[string]int32{
118 "NO_ERROR": 0,
119 "INVALID_URL": 1,
120 "DEVICE_BUSY": 2,
121 "INSUFFICIENT_SPACE": 3,
122 "UNKNOWN_ERROR": 4,
123 "CANCELLED": 5,
124}
125
126func (x ImageDownload_ImageDownloadFailureReason) String() string {
127 return proto.EnumName(ImageDownload_ImageDownloadFailureReason_name, int32(x))
128}
129
130func (ImageDownload_ImageDownloadFailureReason) EnumDescriptor() ([]byte, []int) {
131 return fileDescriptor_200940f73d155856, []int{7, 1}
132}
133
134type ImageDownload_ImageActivateState int32
135
136const (
137 ImageDownload_IMAGE_UNKNOWN ImageDownload_ImageActivateState = 0
138 ImageDownload_IMAGE_INACTIVE ImageDownload_ImageActivateState = 1
139 ImageDownload_IMAGE_ACTIVATING ImageDownload_ImageActivateState = 2
140 ImageDownload_IMAGE_ACTIVE ImageDownload_ImageActivateState = 3
141 ImageDownload_IMAGE_REVERTING ImageDownload_ImageActivateState = 4
142 ImageDownload_IMAGE_REVERTED ImageDownload_ImageActivateState = 5
143)
144
145var ImageDownload_ImageActivateState_name = map[int32]string{
146 0: "IMAGE_UNKNOWN",
147 1: "IMAGE_INACTIVE",
148 2: "IMAGE_ACTIVATING",
149 3: "IMAGE_ACTIVE",
150 4: "IMAGE_REVERTING",
151 5: "IMAGE_REVERTED",
152}
153
154var ImageDownload_ImageActivateState_value = map[string]int32{
155 "IMAGE_UNKNOWN": 0,
156 "IMAGE_INACTIVE": 1,
157 "IMAGE_ACTIVATING": 2,
158 "IMAGE_ACTIVE": 3,
159 "IMAGE_REVERTING": 4,
160 "IMAGE_REVERTED": 5,
161}
162
163func (x ImageDownload_ImageActivateState) String() string {
164 return proto.EnumName(ImageDownload_ImageActivateState_name, int32(x))
165}
166
167func (ImageDownload_ImageActivateState) EnumDescriptor() ([]byte, []int) {
168 return fileDescriptor_200940f73d155856, []int{7, 2}
169}
170
171type Port_PortType int32
172
173const (
174 Port_UNKNOWN Port_PortType = 0
175 Port_ETHERNET_NNI Port_PortType = 1
176 Port_ETHERNET_UNI Port_PortType = 2
177 Port_PON_OLT Port_PortType = 3
178 Port_PON_ONU Port_PortType = 4
179 Port_VENET_OLT Port_PortType = 5
180 Port_VENET_ONU Port_PortType = 6
181)
182
183var Port_PortType_name = map[int32]string{
184 0: "UNKNOWN",
185 1: "ETHERNET_NNI",
186 2: "ETHERNET_UNI",
187 3: "PON_OLT",
188 4: "PON_ONU",
189 5: "VENET_OLT",
190 6: "VENET_ONU",
191}
192
193var Port_PortType_value = map[string]int32{
194 "UNKNOWN": 0,
195 "ETHERNET_NNI": 1,
196 "ETHERNET_UNI": 2,
197 "PON_OLT": 3,
198 "PON_ONU": 4,
199 "VENET_OLT": 5,
200 "VENET_ONU": 6,
201}
202
203func (x Port_PortType) String() string {
204 return proto.EnumName(Port_PortType_name, int32(x))
205}
206
207func (Port_PortType) EnumDescriptor() ([]byte, []int) {
208 return fileDescriptor_200940f73d155856, []int{9, 0}
209}
210
211type SimulateAlarmRequest_OperationType int32
212
213const (
214 SimulateAlarmRequest_RAISE SimulateAlarmRequest_OperationType = 0
215 SimulateAlarmRequest_CLEAR SimulateAlarmRequest_OperationType = 1
216)
217
218var SimulateAlarmRequest_OperationType_name = map[int32]string{
219 0: "RAISE",
220 1: "CLEAR",
221}
222
223var SimulateAlarmRequest_OperationType_value = map[string]int32{
224 "RAISE": 0,
225 "CLEAR": 1,
226}
227
228func (x SimulateAlarmRequest_OperationType) String() string {
229 return proto.EnumName(SimulateAlarmRequest_OperationType_name, int32(x))
230}
231
232func (SimulateAlarmRequest_OperationType) EnumDescriptor() ([]byte, []int) {
233 return fileDescriptor_200940f73d155856, []int{13, 0}
234}
235
236// A Device Type
237type DeviceType struct {
238 // Unique name for the device type
239 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
240 // Unique vendor id for the device type applicable to ONU
241 // 4 bytes of vendor id from ONU serial number
242 VendorId string `protobuf:"bytes,5,opt,name=vendor_id,json=vendorId,proto3" json:"vendor_id,omitempty"`
243 VendorIds []string `protobuf:"bytes,6,rep,name=vendor_ids,json=vendorIds,proto3" json:"vendor_ids,omitempty"`
244 // Name of the adapter that handles device type
245 Adapter string `protobuf:"bytes,2,opt,name=adapter,proto3" json:"adapter,omitempty"`
246 // Capabilities
247 AcceptsBulkFlowUpdate bool `protobuf:"varint,3,opt,name=accepts_bulk_flow_update,json=acceptsBulkFlowUpdate,proto3" json:"accepts_bulk_flow_update,omitempty"`
248 AcceptsAddRemoveFlowUpdates bool `protobuf:"varint,4,opt,name=accepts_add_remove_flow_updates,json=acceptsAddRemoveFlowUpdates,proto3" json:"accepts_add_remove_flow_updates,omitempty"`
249 AcceptsDirectLogicalFlowsUpdate bool `protobuf:"varint,7,opt,name=accepts_direct_logical_flows_update,json=acceptsDirectLogicalFlowsUpdate,proto3" json:"accepts_direct_logical_flows_update,omitempty"`
250 XXX_NoUnkeyedLiteral struct{} `json:"-"`
251 XXX_unrecognized []byte `json:"-"`
252 XXX_sizecache int32 `json:"-"`
253}
254
255func (m *DeviceType) Reset() { *m = DeviceType{} }
256func (m *DeviceType) String() string { return proto.CompactTextString(m) }
257func (*DeviceType) ProtoMessage() {}
258func (*DeviceType) Descriptor() ([]byte, []int) {
259 return fileDescriptor_200940f73d155856, []int{0}
260}
261
262func (m *DeviceType) XXX_Unmarshal(b []byte) error {
263 return xxx_messageInfo_DeviceType.Unmarshal(m, b)
264}
265func (m *DeviceType) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
266 return xxx_messageInfo_DeviceType.Marshal(b, m, deterministic)
267}
268func (m *DeviceType) XXX_Merge(src proto.Message) {
269 xxx_messageInfo_DeviceType.Merge(m, src)
270}
271func (m *DeviceType) XXX_Size() int {
272 return xxx_messageInfo_DeviceType.Size(m)
273}
274func (m *DeviceType) XXX_DiscardUnknown() {
275 xxx_messageInfo_DeviceType.DiscardUnknown(m)
276}
277
278var xxx_messageInfo_DeviceType proto.InternalMessageInfo
279
280func (m *DeviceType) GetId() string {
281 if m != nil {
282 return m.Id
283 }
284 return ""
285}
286
287func (m *DeviceType) GetVendorId() string {
288 if m != nil {
289 return m.VendorId
290 }
291 return ""
292}
293
294func (m *DeviceType) GetVendorIds() []string {
295 if m != nil {
296 return m.VendorIds
297 }
298 return nil
299}
300
301func (m *DeviceType) GetAdapter() string {
302 if m != nil {
303 return m.Adapter
304 }
305 return ""
306}
307
308func (m *DeviceType) GetAcceptsBulkFlowUpdate() bool {
309 if m != nil {
310 return m.AcceptsBulkFlowUpdate
311 }
312 return false
313}
314
315func (m *DeviceType) GetAcceptsAddRemoveFlowUpdates() bool {
316 if m != nil {
317 return m.AcceptsAddRemoveFlowUpdates
318 }
319 return false
320}
321
322func (m *DeviceType) GetAcceptsDirectLogicalFlowsUpdate() bool {
323 if m != nil {
324 return m.AcceptsDirectLogicalFlowsUpdate
325 }
326 return false
327}
328
329// A plurality of device types
330type DeviceTypes struct {
331 Items []*DeviceType `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
332 XXX_NoUnkeyedLiteral struct{} `json:"-"`
333 XXX_unrecognized []byte `json:"-"`
334 XXX_sizecache int32 `json:"-"`
335}
336
337func (m *DeviceTypes) Reset() { *m = DeviceTypes{} }
338func (m *DeviceTypes) String() string { return proto.CompactTextString(m) }
339func (*DeviceTypes) ProtoMessage() {}
340func (*DeviceTypes) Descriptor() ([]byte, []int) {
341 return fileDescriptor_200940f73d155856, []int{1}
342}
343
344func (m *DeviceTypes) XXX_Unmarshal(b []byte) error {
345 return xxx_messageInfo_DeviceTypes.Unmarshal(m, b)
346}
347func (m *DeviceTypes) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
348 return xxx_messageInfo_DeviceTypes.Marshal(b, m, deterministic)
349}
350func (m *DeviceTypes) XXX_Merge(src proto.Message) {
351 xxx_messageInfo_DeviceTypes.Merge(m, src)
352}
353func (m *DeviceTypes) XXX_Size() int {
354 return xxx_messageInfo_DeviceTypes.Size(m)
355}
356func (m *DeviceTypes) XXX_DiscardUnknown() {
357 xxx_messageInfo_DeviceTypes.DiscardUnknown(m)
358}
359
360var xxx_messageInfo_DeviceTypes proto.InternalMessageInfo
361
362func (m *DeviceTypes) GetItems() []*DeviceType {
363 if m != nil {
364 return m.Items
365 }
366 return nil
367}
368
369type PmConfig struct {
370 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
371 Type PmConfig_PmType `protobuf:"varint,2,opt,name=type,proto3,enum=voltha.PmConfig_PmType" json:"type,omitempty"`
372 Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"`
373 SampleFreq uint32 `protobuf:"varint,4,opt,name=sample_freq,json=sampleFreq,proto3" json:"sample_freq,omitempty"`
374 XXX_NoUnkeyedLiteral struct{} `json:"-"`
375 XXX_unrecognized []byte `json:"-"`
376 XXX_sizecache int32 `json:"-"`
377}
378
379func (m *PmConfig) Reset() { *m = PmConfig{} }
380func (m *PmConfig) String() string { return proto.CompactTextString(m) }
381func (*PmConfig) ProtoMessage() {}
382func (*PmConfig) Descriptor() ([]byte, []int) {
383 return fileDescriptor_200940f73d155856, []int{2}
384}
385
386func (m *PmConfig) XXX_Unmarshal(b []byte) error {
387 return xxx_messageInfo_PmConfig.Unmarshal(m, b)
388}
389func (m *PmConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
390 return xxx_messageInfo_PmConfig.Marshal(b, m, deterministic)
391}
392func (m *PmConfig) XXX_Merge(src proto.Message) {
393 xxx_messageInfo_PmConfig.Merge(m, src)
394}
395func (m *PmConfig) XXX_Size() int {
396 return xxx_messageInfo_PmConfig.Size(m)
397}
398func (m *PmConfig) XXX_DiscardUnknown() {
399 xxx_messageInfo_PmConfig.DiscardUnknown(m)
400}
401
402var xxx_messageInfo_PmConfig proto.InternalMessageInfo
403
404func (m *PmConfig) GetName() string {
405 if m != nil {
406 return m.Name
407 }
408 return ""
409}
410
411func (m *PmConfig) GetType() PmConfig_PmType {
412 if m != nil {
413 return m.Type
414 }
415 return PmConfig_COUNTER
416}
417
418func (m *PmConfig) GetEnabled() bool {
419 if m != nil {
420 return m.Enabled
421 }
422 return false
423}
424
425func (m *PmConfig) GetSampleFreq() uint32 {
426 if m != nil {
427 return m.SampleFreq
428 }
429 return 0
430}
431
432type PmGroupConfig struct {
433 GroupName string `protobuf:"bytes,1,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"`
434 GroupFreq uint32 `protobuf:"varint,2,opt,name=group_freq,json=groupFreq,proto3" json:"group_freq,omitempty"`
435 Enabled bool `protobuf:"varint,3,opt,name=enabled,proto3" json:"enabled,omitempty"`
436 Metrics []*PmConfig `protobuf:"bytes,4,rep,name=metrics,proto3" json:"metrics,omitempty"`
437 XXX_NoUnkeyedLiteral struct{} `json:"-"`
438 XXX_unrecognized []byte `json:"-"`
439 XXX_sizecache int32 `json:"-"`
440}
441
442func (m *PmGroupConfig) Reset() { *m = PmGroupConfig{} }
443func (m *PmGroupConfig) String() string { return proto.CompactTextString(m) }
444func (*PmGroupConfig) ProtoMessage() {}
445func (*PmGroupConfig) Descriptor() ([]byte, []int) {
446 return fileDescriptor_200940f73d155856, []int{3}
447}
448
449func (m *PmGroupConfig) XXX_Unmarshal(b []byte) error {
450 return xxx_messageInfo_PmGroupConfig.Unmarshal(m, b)
451}
452func (m *PmGroupConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
453 return xxx_messageInfo_PmGroupConfig.Marshal(b, m, deterministic)
454}
455func (m *PmGroupConfig) XXX_Merge(src proto.Message) {
456 xxx_messageInfo_PmGroupConfig.Merge(m, src)
457}
458func (m *PmGroupConfig) XXX_Size() int {
459 return xxx_messageInfo_PmGroupConfig.Size(m)
460}
461func (m *PmGroupConfig) XXX_DiscardUnknown() {
462 xxx_messageInfo_PmGroupConfig.DiscardUnknown(m)
463}
464
465var xxx_messageInfo_PmGroupConfig proto.InternalMessageInfo
466
467func (m *PmGroupConfig) GetGroupName() string {
468 if m != nil {
469 return m.GroupName
470 }
471 return ""
472}
473
474func (m *PmGroupConfig) GetGroupFreq() uint32 {
475 if m != nil {
476 return m.GroupFreq
477 }
478 return 0
479}
480
481func (m *PmGroupConfig) GetEnabled() bool {
482 if m != nil {
483 return m.Enabled
484 }
485 return false
486}
487
488func (m *PmGroupConfig) GetMetrics() []*PmConfig {
489 if m != nil {
490 return m.Metrics
491 }
492 return nil
493}
494
495type PmConfigs struct {
496 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
497 DefaultFreq uint32 `protobuf:"varint,2,opt,name=default_freq,json=defaultFreq,proto3" json:"default_freq,omitempty"`
498 // Forces group names and group semantics
499 Grouped bool `protobuf:"varint,3,opt,name=grouped,proto3" json:"grouped,omitempty"`
500 // Allows Pm to set an individual sample frequency
501 FreqOverride bool `protobuf:"varint,4,opt,name=freq_override,json=freqOverride,proto3" json:"freq_override,omitempty"`
502 Groups []*PmGroupConfig `protobuf:"bytes,5,rep,name=groups,proto3" json:"groups,omitempty"`
503 Metrics []*PmConfig `protobuf:"bytes,6,rep,name=metrics,proto3" json:"metrics,omitempty"`
504 XXX_NoUnkeyedLiteral struct{} `json:"-"`
505 XXX_unrecognized []byte `json:"-"`
506 XXX_sizecache int32 `json:"-"`
507}
508
509func (m *PmConfigs) Reset() { *m = PmConfigs{} }
510func (m *PmConfigs) String() string { return proto.CompactTextString(m) }
511func (*PmConfigs) ProtoMessage() {}
512func (*PmConfigs) Descriptor() ([]byte, []int) {
513 return fileDescriptor_200940f73d155856, []int{4}
514}
515
516func (m *PmConfigs) XXX_Unmarshal(b []byte) error {
517 return xxx_messageInfo_PmConfigs.Unmarshal(m, b)
518}
519func (m *PmConfigs) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
520 return xxx_messageInfo_PmConfigs.Marshal(b, m, deterministic)
521}
522func (m *PmConfigs) XXX_Merge(src proto.Message) {
523 xxx_messageInfo_PmConfigs.Merge(m, src)
524}
525func (m *PmConfigs) XXX_Size() int {
526 return xxx_messageInfo_PmConfigs.Size(m)
527}
528func (m *PmConfigs) XXX_DiscardUnknown() {
529 xxx_messageInfo_PmConfigs.DiscardUnknown(m)
530}
531
532var xxx_messageInfo_PmConfigs proto.InternalMessageInfo
533
534func (m *PmConfigs) GetId() string {
535 if m != nil {
536 return m.Id
537 }
538 return ""
539}
540
541func (m *PmConfigs) GetDefaultFreq() uint32 {
542 if m != nil {
543 return m.DefaultFreq
544 }
545 return 0
546}
547
548func (m *PmConfigs) GetGrouped() bool {
549 if m != nil {
550 return m.Grouped
551 }
552 return false
553}
554
555func (m *PmConfigs) GetFreqOverride() bool {
556 if m != nil {
557 return m.FreqOverride
558 }
559 return false
560}
561
562func (m *PmConfigs) GetGroups() []*PmGroupConfig {
563 if m != nil {
564 return m.Groups
565 }
566 return nil
567}
568
569func (m *PmConfigs) GetMetrics() []*PmConfig {
570 if m != nil {
571 return m.Metrics
572 }
573 return nil
574}
575
576// Describes instance of software image on the device
577type Image struct {
578 Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
579 Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"`
580 Hash string `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty"`
581 InstallDatetime string `protobuf:"bytes,4,opt,name=install_datetime,json=installDatetime,proto3" json:"install_datetime,omitempty"`
582 // The active software image is one that is currently loaded and executing
583 // in the ONU or circuit pack. Under normal operation, one software image
584 // is always active while the other is inactive. Under no circumstances are
585 // both software images allowed to be active at the same time
586 IsActive bool `protobuf:"varint,5,opt,name=is_active,json=isActive,proto3" json:"is_active,omitempty"`
587 // The committed software image is loaded and executed upon reboot of the
588 // ONU and/or circuit pack. During normal operation, one software image is
589 // always committed, while the other is uncommitted.
590 IsCommitted bool `protobuf:"varint,6,opt,name=is_committed,json=isCommitted,proto3" json:"is_committed,omitempty"`
591 // A software image is valid if it has been verified to be an executable
592 // code image. The verification mechanism is not subject to standardization;
593 // however, it should include at least a data integrity (e.g., CRC) check of
594 // the entire code image.
595 IsValid bool `protobuf:"varint,7,opt,name=is_valid,json=isValid,proto3" json:"is_valid,omitempty"`
596 XXX_NoUnkeyedLiteral struct{} `json:"-"`
597 XXX_unrecognized []byte `json:"-"`
598 XXX_sizecache int32 `json:"-"`
599}
600
601func (m *Image) Reset() { *m = Image{} }
602func (m *Image) String() string { return proto.CompactTextString(m) }
603func (*Image) ProtoMessage() {}
604func (*Image) Descriptor() ([]byte, []int) {
605 return fileDescriptor_200940f73d155856, []int{5}
606}
607
608func (m *Image) XXX_Unmarshal(b []byte) error {
609 return xxx_messageInfo_Image.Unmarshal(m, b)
610}
611func (m *Image) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
612 return xxx_messageInfo_Image.Marshal(b, m, deterministic)
613}
614func (m *Image) XXX_Merge(src proto.Message) {
615 xxx_messageInfo_Image.Merge(m, src)
616}
617func (m *Image) XXX_Size() int {
618 return xxx_messageInfo_Image.Size(m)
619}
620func (m *Image) XXX_DiscardUnknown() {
621 xxx_messageInfo_Image.DiscardUnknown(m)
622}
623
624var xxx_messageInfo_Image proto.InternalMessageInfo
625
626func (m *Image) GetName() string {
627 if m != nil {
628 return m.Name
629 }
630 return ""
631}
632
633func (m *Image) GetVersion() string {
634 if m != nil {
635 return m.Version
636 }
637 return ""
638}
639
640func (m *Image) GetHash() string {
641 if m != nil {
642 return m.Hash
643 }
644 return ""
645}
646
647func (m *Image) GetInstallDatetime() string {
648 if m != nil {
649 return m.InstallDatetime
650 }
651 return ""
652}
653
654func (m *Image) GetIsActive() bool {
655 if m != nil {
656 return m.IsActive
657 }
658 return false
659}
660
661func (m *Image) GetIsCommitted() bool {
662 if m != nil {
663 return m.IsCommitted
664 }
665 return false
666}
667
668func (m *Image) GetIsValid() bool {
669 if m != nil {
670 return m.IsValid
671 }
672 return false
673}
674
675// List of software on the device
676type Images struct {
677 Image []*Image `protobuf:"bytes,1,rep,name=image,proto3" json:"image,omitempty"`
678 XXX_NoUnkeyedLiteral struct{} `json:"-"`
679 XXX_unrecognized []byte `json:"-"`
680 XXX_sizecache int32 `json:"-"`
681}
682
683func (m *Images) Reset() { *m = Images{} }
684func (m *Images) String() string { return proto.CompactTextString(m) }
685func (*Images) ProtoMessage() {}
686func (*Images) Descriptor() ([]byte, []int) {
687 return fileDescriptor_200940f73d155856, []int{6}
688}
689
690func (m *Images) XXX_Unmarshal(b []byte) error {
691 return xxx_messageInfo_Images.Unmarshal(m, b)
692}
693func (m *Images) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
694 return xxx_messageInfo_Images.Marshal(b, m, deterministic)
695}
696func (m *Images) XXX_Merge(src proto.Message) {
697 xxx_messageInfo_Images.Merge(m, src)
698}
699func (m *Images) XXX_Size() int {
700 return xxx_messageInfo_Images.Size(m)
701}
702func (m *Images) XXX_DiscardUnknown() {
703 xxx_messageInfo_Images.DiscardUnknown(m)
704}
705
706var xxx_messageInfo_Images proto.InternalMessageInfo
707
708func (m *Images) GetImage() []*Image {
709 if m != nil {
710 return m.Image
711 }
712 return nil
713}
714
715type ImageDownload struct {
716 // Device Identifier
717 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
718 // Image unique identifier
719 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
720 // URL where the image is available
721 // should include username password
722 Url string `protobuf:"bytes,3,opt,name=url,proto3" json:"url,omitempty"`
723 // CRC of the image to be verified aginst
724 Crc uint32 `protobuf:"varint,4,opt,name=crc,proto3" json:"crc,omitempty"`
725 // Download state
726 DownloadState ImageDownload_ImageDownloadState `protobuf:"varint,5,opt,name=download_state,json=downloadState,proto3,enum=voltha.ImageDownload_ImageDownloadState" json:"download_state,omitempty"`
727 // Downloaded version
728 ImageVersion string `protobuf:"bytes,6,opt,name=image_version,json=imageVersion,proto3" json:"image_version,omitempty"`
729 // Bytes downloaded
730 DownloadedBytes uint32 `protobuf:"varint,7,opt,name=downloaded_bytes,json=downloadedBytes,proto3" json:"downloaded_bytes,omitempty"`
731 // Download failure reason
732 Reason ImageDownload_ImageDownloadFailureReason `protobuf:"varint,8,opt,name=reason,proto3,enum=voltha.ImageDownload_ImageDownloadFailureReason" json:"reason,omitempty"`
733 // Additional info
734 AdditionalInfo string `protobuf:"bytes,9,opt,name=additional_info,json=additionalInfo,proto3" json:"additional_info,omitempty"`
735 // Save current configuration
736 SaveConfig bool `protobuf:"varint,10,opt,name=save_config,json=saveConfig,proto3" json:"save_config,omitempty"`
737 // Image local location
738 LocalDir string `protobuf:"bytes,11,opt,name=local_dir,json=localDir,proto3" json:"local_dir,omitempty"`
739 // Image activation state
740 ImageState ImageDownload_ImageActivateState `protobuf:"varint,12,opt,name=image_state,json=imageState,proto3,enum=voltha.ImageDownload_ImageActivateState" json:"image_state,omitempty"`
741 // Image file size
742 FileSize uint32 `protobuf:"varint,13,opt,name=file_size,json=fileSize,proto3" json:"file_size,omitempty"`
743 XXX_NoUnkeyedLiteral struct{} `json:"-"`
744 XXX_unrecognized []byte `json:"-"`
745 XXX_sizecache int32 `json:"-"`
746}
747
748func (m *ImageDownload) Reset() { *m = ImageDownload{} }
749func (m *ImageDownload) String() string { return proto.CompactTextString(m) }
750func (*ImageDownload) ProtoMessage() {}
751func (*ImageDownload) Descriptor() ([]byte, []int) {
752 return fileDescriptor_200940f73d155856, []int{7}
753}
754
755func (m *ImageDownload) XXX_Unmarshal(b []byte) error {
756 return xxx_messageInfo_ImageDownload.Unmarshal(m, b)
757}
758func (m *ImageDownload) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
759 return xxx_messageInfo_ImageDownload.Marshal(b, m, deterministic)
760}
761func (m *ImageDownload) XXX_Merge(src proto.Message) {
762 xxx_messageInfo_ImageDownload.Merge(m, src)
763}
764func (m *ImageDownload) XXX_Size() int {
765 return xxx_messageInfo_ImageDownload.Size(m)
766}
767func (m *ImageDownload) XXX_DiscardUnknown() {
768 xxx_messageInfo_ImageDownload.DiscardUnknown(m)
769}
770
771var xxx_messageInfo_ImageDownload proto.InternalMessageInfo
772
773func (m *ImageDownload) GetId() string {
774 if m != nil {
775 return m.Id
776 }
777 return ""
778}
779
780func (m *ImageDownload) GetName() string {
781 if m != nil {
782 return m.Name
783 }
784 return ""
785}
786
787func (m *ImageDownload) GetUrl() string {
788 if m != nil {
789 return m.Url
790 }
791 return ""
792}
793
794func (m *ImageDownload) GetCrc() uint32 {
795 if m != nil {
796 return m.Crc
797 }
798 return 0
799}
800
801func (m *ImageDownload) GetDownloadState() ImageDownload_ImageDownloadState {
802 if m != nil {
803 return m.DownloadState
804 }
805 return ImageDownload_DOWNLOAD_UNKNOWN
806}
807
808func (m *ImageDownload) GetImageVersion() string {
809 if m != nil {
810 return m.ImageVersion
811 }
812 return ""
813}
814
815func (m *ImageDownload) GetDownloadedBytes() uint32 {
816 if m != nil {
817 return m.DownloadedBytes
818 }
819 return 0
820}
821
822func (m *ImageDownload) GetReason() ImageDownload_ImageDownloadFailureReason {
823 if m != nil {
824 return m.Reason
825 }
826 return ImageDownload_NO_ERROR
827}
828
829func (m *ImageDownload) GetAdditionalInfo() string {
830 if m != nil {
831 return m.AdditionalInfo
832 }
833 return ""
834}
835
836func (m *ImageDownload) GetSaveConfig() bool {
837 if m != nil {
838 return m.SaveConfig
839 }
840 return false
841}
842
843func (m *ImageDownload) GetLocalDir() string {
844 if m != nil {
845 return m.LocalDir
846 }
847 return ""
848}
849
850func (m *ImageDownload) GetImageState() ImageDownload_ImageActivateState {
851 if m != nil {
852 return m.ImageState
853 }
854 return ImageDownload_IMAGE_UNKNOWN
855}
856
857func (m *ImageDownload) GetFileSize() uint32 {
858 if m != nil {
859 return m.FileSize
860 }
861 return 0
862}
863
864type ImageDownloads struct {
865 Items []*ImageDownload `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"`
866 XXX_NoUnkeyedLiteral struct{} `json:"-"`
867 XXX_unrecognized []byte `json:"-"`
868 XXX_sizecache int32 `json:"-"`
869}
870
871func (m *ImageDownloads) Reset() { *m = ImageDownloads{} }
872func (m *ImageDownloads) String() string { return proto.CompactTextString(m) }
873func (*ImageDownloads) ProtoMessage() {}
874func (*ImageDownloads) Descriptor() ([]byte, []int) {
875 return fileDescriptor_200940f73d155856, []int{8}
876}
877
878func (m *ImageDownloads) XXX_Unmarshal(b []byte) error {
879 return xxx_messageInfo_ImageDownloads.Unmarshal(m, b)
880}
881func (m *ImageDownloads) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
882 return xxx_messageInfo_ImageDownloads.Marshal(b, m, deterministic)
883}
884func (m *ImageDownloads) XXX_Merge(src proto.Message) {
885 xxx_messageInfo_ImageDownloads.Merge(m, src)
886}
887func (m *ImageDownloads) XXX_Size() int {
888 return xxx_messageInfo_ImageDownloads.Size(m)
889}
890func (m *ImageDownloads) XXX_DiscardUnknown() {
891 xxx_messageInfo_ImageDownloads.DiscardUnknown(m)
892}
893
894var xxx_messageInfo_ImageDownloads proto.InternalMessageInfo
895
896func (m *ImageDownloads) GetItems() []*ImageDownload {
897 if m != nil {
898 return m.Items
899 }
900 return nil
901}
902
903type Port struct {
Rohan Agrawalc32d9932020-06-15 11:01:47 +0000904 PortNo uint32 `protobuf:"varint,1,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
905 Label string `protobuf:"bytes,2,opt,name=label,proto3" json:"label,omitempty"`
906 Type Port_PortType `protobuf:"varint,3,opt,name=type,proto3,enum=voltha.Port_PortType" json:"type,omitempty"`
907 AdminState common.AdminState_Types `protobuf:"varint,5,opt,name=admin_state,json=adminState,proto3,enum=common.AdminState_Types" json:"admin_state,omitempty"`
908 OperStatus common.OperStatus_Types `protobuf:"varint,6,opt,name=oper_status,json=operStatus,proto3,enum=common.OperStatus_Types" json:"oper_status,omitempty"`
909 DeviceId string `protobuf:"bytes,7,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
910 Peers []*Port_PeerPort `protobuf:"bytes,8,rep,name=peers,proto3" json:"peers,omitempty"`
911 RxPackets uint64 `protobuf:"fixed64,9,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"`
912 RxBytes uint64 `protobuf:"fixed64,10,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"`
913 RxErrors uint64 `protobuf:"fixed64,11,opt,name=rx_errors,json=rxErrors,proto3" json:"rx_errors,omitempty"`
914 TxPackets uint64 `protobuf:"fixed64,12,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"`
915 TxBytes uint64 `protobuf:"fixed64,13,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"`
916 TxErrors uint64 `protobuf:"fixed64,14,opt,name=tx_errors,json=txErrors,proto3" json:"tx_errors,omitempty"`
917 // ofp_port represents the characteristics of a port, e.g. hardware
918 // address and supported features. This field is relevant only for
919 // UNI and NNI ports. For PON ports, it can be left empty.
920 OfpPort *openflow_13.OfpPort `protobuf:"bytes,15,opt,name=ofp_port,json=ofpPort,proto3" json:"ofp_port,omitempty"`
921 XXX_NoUnkeyedLiteral struct{} `json:"-"`
922 XXX_unrecognized []byte `json:"-"`
923 XXX_sizecache int32 `json:"-"`
Don Newton98fd8812019-09-23 15:15:02 -0400924}
925
926func (m *Port) Reset() { *m = Port{} }
927func (m *Port) String() string { return proto.CompactTextString(m) }
928func (*Port) ProtoMessage() {}
929func (*Port) Descriptor() ([]byte, []int) {
930 return fileDescriptor_200940f73d155856, []int{9}
931}
932
933func (m *Port) XXX_Unmarshal(b []byte) error {
934 return xxx_messageInfo_Port.Unmarshal(m, b)
935}
936func (m *Port) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
937 return xxx_messageInfo_Port.Marshal(b, m, deterministic)
938}
939func (m *Port) XXX_Merge(src proto.Message) {
940 xxx_messageInfo_Port.Merge(m, src)
941}
942func (m *Port) XXX_Size() int {
943 return xxx_messageInfo_Port.Size(m)
944}
945func (m *Port) XXX_DiscardUnknown() {
946 xxx_messageInfo_Port.DiscardUnknown(m)
947}
948
949var xxx_messageInfo_Port proto.InternalMessageInfo
950
951func (m *Port) GetPortNo() uint32 {
952 if m != nil {
953 return m.PortNo
954 }
955 return 0
956}
957
958func (m *Port) GetLabel() string {
959 if m != nil {
960 return m.Label
961 }
962 return ""
963}
964
965func (m *Port) GetType() Port_PortType {
966 if m != nil {
967 return m.Type
968 }
969 return Port_UNKNOWN
970}
971
David K. Bainbridgeaea73cd2020-01-27 10:44:50 -0800972func (m *Port) GetAdminState() common.AdminState_Types {
Don Newton98fd8812019-09-23 15:15:02 -0400973 if m != nil {
974 return m.AdminState
975 }
976 return common.AdminState_UNKNOWN
977}
978
David K. Bainbridgeaea73cd2020-01-27 10:44:50 -0800979func (m *Port) GetOperStatus() common.OperStatus_Types {
Don Newton98fd8812019-09-23 15:15:02 -0400980 if m != nil {
981 return m.OperStatus
982 }
983 return common.OperStatus_UNKNOWN
984}
985
986func (m *Port) GetDeviceId() string {
987 if m != nil {
988 return m.DeviceId
989 }
990 return ""
991}
992
993func (m *Port) GetPeers() []*Port_PeerPort {
994 if m != nil {
995 return m.Peers
996 }
997 return nil
998}
999
1000func (m *Port) GetRxPackets() uint64 {
1001 if m != nil {
1002 return m.RxPackets
1003 }
1004 return 0
1005}
1006
1007func (m *Port) GetRxBytes() uint64 {
1008 if m != nil {
1009 return m.RxBytes
1010 }
1011 return 0
1012}
1013
1014func (m *Port) GetRxErrors() uint64 {
1015 if m != nil {
1016 return m.RxErrors
1017 }
1018 return 0
1019}
1020
1021func (m *Port) GetTxPackets() uint64 {
1022 if m != nil {
1023 return m.TxPackets
1024 }
1025 return 0
1026}
1027
1028func (m *Port) GetTxBytes() uint64 {
1029 if m != nil {
1030 return m.TxBytes
1031 }
1032 return 0
1033}
1034
1035func (m *Port) GetTxErrors() uint64 {
1036 if m != nil {
1037 return m.TxErrors
1038 }
1039 return 0
1040}
1041
Rohan Agrawalc32d9932020-06-15 11:01:47 +00001042func (m *Port) GetOfpPort() *openflow_13.OfpPort {
1043 if m != nil {
1044 return m.OfpPort
1045 }
1046 return nil
1047}
1048
Don Newton98fd8812019-09-23 15:15:02 -04001049type Port_PeerPort struct {
1050 DeviceId string `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
1051 PortNo uint32 `protobuf:"varint,2,opt,name=port_no,json=portNo,proto3" json:"port_no,omitempty"`
1052 XXX_NoUnkeyedLiteral struct{} `json:"-"`
1053 XXX_unrecognized []byte `json:"-"`
1054 XXX_sizecache int32 `json:"-"`
1055}
1056
1057func (m *Port_PeerPort) Reset() { *m = Port_PeerPort{} }
1058func (m *Port_PeerPort) String() string { return proto.CompactTextString(m) }
1059func (*Port_PeerPort) ProtoMessage() {}
1060func (*Port_PeerPort) Descriptor() ([]byte, []int) {
1061 return fileDescriptor_200940f73d155856, []int{9, 0}
1062}
1063
1064func (m *Port_PeerPort) XXX_Unmarshal(b []byte) error {
1065 return xxx_messageInfo_Port_PeerPort.Unmarshal(m, b)
1066}
1067func (m *Port_PeerPort) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1068 return xxx_messageInfo_Port_PeerPort.Marshal(b, m, deterministic)
1069}
1070func (m *Port_PeerPort) XXX_Merge(src proto.Message) {
1071 xxx_messageInfo_Port_PeerPort.Merge(m, src)
1072}
1073func (m *Port_PeerPort) XXX_Size() int {
1074 return xxx_messageInfo_Port_PeerPort.Size(m)
1075}
1076func (m *Port_PeerPort) XXX_DiscardUnknown() {
1077 xxx_messageInfo_Port_PeerPort.DiscardUnknown(m)
1078}
1079
1080var xxx_messageInfo_Port_PeerPort proto.InternalMessageInfo
1081
1082func (m *Port_PeerPort) GetDeviceId() string {
1083 if m != nil {
1084 return m.DeviceId
1085 }
1086 return ""
1087}
1088
1089func (m *Port_PeerPort) GetPortNo() uint32 {
1090 if m != nil {
1091 return m.PortNo
1092 }
1093 return 0
1094}
1095
1096type Ports struct {
1097 Items []*Port `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
1098 XXX_NoUnkeyedLiteral struct{} `json:"-"`
1099 XXX_unrecognized []byte `json:"-"`
1100 XXX_sizecache int32 `json:"-"`
1101}
1102
1103func (m *Ports) Reset() { *m = Ports{} }
1104func (m *Ports) String() string { return proto.CompactTextString(m) }
1105func (*Ports) ProtoMessage() {}
1106func (*Ports) Descriptor() ([]byte, []int) {
1107 return fileDescriptor_200940f73d155856, []int{10}
1108}
1109
1110func (m *Ports) XXX_Unmarshal(b []byte) error {
1111 return xxx_messageInfo_Ports.Unmarshal(m, b)
1112}
1113func (m *Ports) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1114 return xxx_messageInfo_Ports.Marshal(b, m, deterministic)
1115}
1116func (m *Ports) XXX_Merge(src proto.Message) {
1117 xxx_messageInfo_Ports.Merge(m, src)
1118}
1119func (m *Ports) XXX_Size() int {
1120 return xxx_messageInfo_Ports.Size(m)
1121}
1122func (m *Ports) XXX_DiscardUnknown() {
1123 xxx_messageInfo_Ports.DiscardUnknown(m)
1124}
1125
1126var xxx_messageInfo_Ports proto.InternalMessageInfo
1127
1128func (m *Ports) GetItems() []*Port {
1129 if m != nil {
1130 return m.Items
1131 }
1132 return nil
1133}
1134
1135// A Physical Device instance
1136type Device struct {
1137 // Voltha's device identifier
1138 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
1139 // Device type, refers to one of the registered device types
1140 Type string `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
1141 // Is this device a root device. Each logical switch has one root
1142 // device that is associated with the logical flow switch.
1143 Root bool `protobuf:"varint,3,opt,name=root,proto3" json:"root,omitempty"`
1144 // Parent device id, in the device tree (for a root device, the parent_id
1145 // is the logical_device.id)
1146 ParentId string `protobuf:"bytes,4,opt,name=parent_id,json=parentId,proto3" json:"parent_id,omitempty"`
1147 ParentPortNo uint32 `protobuf:"varint,20,opt,name=parent_port_no,json=parentPortNo,proto3" json:"parent_port_no,omitempty"`
1148 // Vendor, version, serial number, etc.
1149 Vendor string `protobuf:"bytes,5,opt,name=vendor,proto3" json:"vendor,omitempty"`
1150 Model string `protobuf:"bytes,6,opt,name=model,proto3" json:"model,omitempty"`
1151 HardwareVersion string `protobuf:"bytes,7,opt,name=hardware_version,json=hardwareVersion,proto3" json:"hardware_version,omitempty"`
1152 FirmwareVersion string `protobuf:"bytes,8,opt,name=firmware_version,json=firmwareVersion,proto3" json:"firmware_version,omitempty"`
1153 // List of software on the device
1154 Images *Images `protobuf:"bytes,9,opt,name=images,proto3" json:"images,omitempty"`
1155 SerialNumber string `protobuf:"bytes,10,opt,name=serial_number,json=serialNumber,proto3" json:"serial_number,omitempty"`
1156 VendorId string `protobuf:"bytes,24,opt,name=vendor_id,json=vendorId,proto3" json:"vendor_id,omitempty"`
1157 // Addapter that takes care of device
1158 Adapter string `protobuf:"bytes,11,opt,name=adapter,proto3" json:"adapter,omitempty"`
1159 // Device contact on vlan (if 0, no vlan)
1160 Vlan uint32 `protobuf:"varint,12,opt,name=vlan,proto3" json:"vlan,omitempty"`
1161 // Device contact MAC address (format: "xx:xx:xx:xx:xx:xx")
1162 MacAddress string `protobuf:"bytes,13,opt,name=mac_address,json=macAddress,proto3" json:"mac_address,omitempty"`
1163 // Types that are valid to be assigned to Address:
1164 // *Device_Ipv4Address
1165 // *Device_Ipv6Address
1166 // *Device_HostAndPort
David K. Bainbridgeaea73cd2020-01-27 10:44:50 -08001167 Address isDevice_Address `protobuf_oneof:"address"`
1168 ExtraArgs string `protobuf:"bytes,23,opt,name=extra_args,json=extraArgs,proto3" json:"extra_args,omitempty"`
1169 ProxyAddress *Device_ProxyAddress `protobuf:"bytes,19,opt,name=proxy_address,json=proxyAddress,proto3" json:"proxy_address,omitempty"`
1170 AdminState common.AdminState_Types `protobuf:"varint,16,opt,name=admin_state,json=adminState,proto3,enum=common.AdminState_Types" json:"admin_state,omitempty"`
1171 OperStatus common.OperStatus_Types `protobuf:"varint,17,opt,name=oper_status,json=operStatus,proto3,enum=common.OperStatus_Types" json:"oper_status,omitempty"`
1172 Reason string `protobuf:"bytes,22,opt,name=reason,proto3" json:"reason,omitempty"`
1173 ConnectStatus common.ConnectStatus_Types `protobuf:"varint,18,opt,name=connect_status,json=connectStatus,proto3,enum=common.ConnectStatus_Types" json:"connect_status,omitempty"`
Don Newton98fd8812019-09-23 15:15:02 -04001174 // Device type specific attributes
1175 Custom *any.Any `protobuf:"bytes,64,opt,name=custom,proto3" json:"custom,omitempty"`
1176 Ports []*Port `protobuf:"bytes,128,rep,name=ports,proto3" json:"ports,omitempty"`
1177 Flows *openflow_13.Flows `protobuf:"bytes,129,opt,name=flows,proto3" json:"flows,omitempty"`
1178 FlowGroups *openflow_13.FlowGroups `protobuf:"bytes,130,opt,name=flow_groups,json=flowGroups,proto3" json:"flow_groups,omitempty"`
1179 // PmConfigs will eventually converted to a child node of the
1180 // device to falicitata callbacks and to simplify manipulation.
1181 PmConfigs *PmConfigs `protobuf:"bytes,131,opt,name=pm_configs,json=pmConfigs,proto3" json:"pm_configs,omitempty"`
1182 ImageDownloads []*ImageDownload `protobuf:"bytes,133,rep,name=image_downloads,json=imageDownloads,proto3" json:"image_downloads,omitempty"`
1183 XXX_NoUnkeyedLiteral struct{} `json:"-"`
1184 XXX_unrecognized []byte `json:"-"`
1185 XXX_sizecache int32 `json:"-"`
1186}
1187
1188func (m *Device) Reset() { *m = Device{} }
1189func (m *Device) String() string { return proto.CompactTextString(m) }
1190func (*Device) ProtoMessage() {}
1191func (*Device) Descriptor() ([]byte, []int) {
1192 return fileDescriptor_200940f73d155856, []int{11}
1193}
1194
1195func (m *Device) XXX_Unmarshal(b []byte) error {
1196 return xxx_messageInfo_Device.Unmarshal(m, b)
1197}
1198func (m *Device) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1199 return xxx_messageInfo_Device.Marshal(b, m, deterministic)
1200}
1201func (m *Device) XXX_Merge(src proto.Message) {
1202 xxx_messageInfo_Device.Merge(m, src)
1203}
1204func (m *Device) XXX_Size() int {
1205 return xxx_messageInfo_Device.Size(m)
1206}
1207func (m *Device) XXX_DiscardUnknown() {
1208 xxx_messageInfo_Device.DiscardUnknown(m)
1209}
1210
1211var xxx_messageInfo_Device proto.InternalMessageInfo
1212
1213func (m *Device) GetId() string {
1214 if m != nil {
1215 return m.Id
1216 }
1217 return ""
1218}
1219
1220func (m *Device) GetType() string {
1221 if m != nil {
1222 return m.Type
1223 }
1224 return ""
1225}
1226
1227func (m *Device) GetRoot() bool {
1228 if m != nil {
1229 return m.Root
1230 }
1231 return false
1232}
1233
1234func (m *Device) GetParentId() string {
1235 if m != nil {
1236 return m.ParentId
1237 }
1238 return ""
1239}
1240
1241func (m *Device) GetParentPortNo() uint32 {
1242 if m != nil {
1243 return m.ParentPortNo
1244 }
1245 return 0
1246}
1247
1248func (m *Device) GetVendor() string {
1249 if m != nil {
1250 return m.Vendor
1251 }
1252 return ""
1253}
1254
1255func (m *Device) GetModel() string {
1256 if m != nil {
1257 return m.Model
1258 }
1259 return ""
1260}
1261
1262func (m *Device) GetHardwareVersion() string {
1263 if m != nil {
1264 return m.HardwareVersion
1265 }
1266 return ""
1267}
1268
1269func (m *Device) GetFirmwareVersion() string {
1270 if m != nil {
1271 return m.FirmwareVersion
1272 }
1273 return ""
1274}
1275
1276func (m *Device) GetImages() *Images {
1277 if m != nil {
1278 return m.Images
1279 }
1280 return nil
1281}
1282
1283func (m *Device) GetSerialNumber() string {
1284 if m != nil {
1285 return m.SerialNumber
1286 }
1287 return ""
1288}
1289
1290func (m *Device) GetVendorId() string {
1291 if m != nil {
1292 return m.VendorId
1293 }
1294 return ""
1295}
1296
1297func (m *Device) GetAdapter() string {
1298 if m != nil {
1299 return m.Adapter
1300 }
1301 return ""
1302}
1303
1304func (m *Device) GetVlan() uint32 {
1305 if m != nil {
1306 return m.Vlan
1307 }
1308 return 0
1309}
1310
1311func (m *Device) GetMacAddress() string {
1312 if m != nil {
1313 return m.MacAddress
1314 }
1315 return ""
1316}
1317
1318type isDevice_Address interface {
1319 isDevice_Address()
1320}
1321
1322type Device_Ipv4Address struct {
1323 Ipv4Address string `protobuf:"bytes,14,opt,name=ipv4_address,json=ipv4Address,proto3,oneof"`
1324}
1325
1326type Device_Ipv6Address struct {
1327 Ipv6Address string `protobuf:"bytes,15,opt,name=ipv6_address,json=ipv6Address,proto3,oneof"`
1328}
1329
1330type Device_HostAndPort struct {
1331 HostAndPort string `protobuf:"bytes,21,opt,name=host_and_port,json=hostAndPort,proto3,oneof"`
1332}
1333
1334func (*Device_Ipv4Address) isDevice_Address() {}
1335
1336func (*Device_Ipv6Address) isDevice_Address() {}
1337
1338func (*Device_HostAndPort) isDevice_Address() {}
1339
1340func (m *Device) GetAddress() isDevice_Address {
1341 if m != nil {
1342 return m.Address
1343 }
1344 return nil
1345}
1346
1347func (m *Device) GetIpv4Address() string {
1348 if x, ok := m.GetAddress().(*Device_Ipv4Address); ok {
1349 return x.Ipv4Address
1350 }
1351 return ""
1352}
1353
1354func (m *Device) GetIpv6Address() string {
1355 if x, ok := m.GetAddress().(*Device_Ipv6Address); ok {
1356 return x.Ipv6Address
1357 }
1358 return ""
1359}
1360
1361func (m *Device) GetHostAndPort() string {
1362 if x, ok := m.GetAddress().(*Device_HostAndPort); ok {
1363 return x.HostAndPort
1364 }
1365 return ""
1366}
1367
1368func (m *Device) GetExtraArgs() string {
1369 if m != nil {
1370 return m.ExtraArgs
1371 }
1372 return ""
1373}
1374
1375func (m *Device) GetProxyAddress() *Device_ProxyAddress {
1376 if m != nil {
1377 return m.ProxyAddress
1378 }
1379 return nil
1380}
1381
David K. Bainbridgeaea73cd2020-01-27 10:44:50 -08001382func (m *Device) GetAdminState() common.AdminState_Types {
Don Newton98fd8812019-09-23 15:15:02 -04001383 if m != nil {
1384 return m.AdminState
1385 }
1386 return common.AdminState_UNKNOWN
1387}
1388
David K. Bainbridgeaea73cd2020-01-27 10:44:50 -08001389func (m *Device) GetOperStatus() common.OperStatus_Types {
Don Newton98fd8812019-09-23 15:15:02 -04001390 if m != nil {
1391 return m.OperStatus
1392 }
1393 return common.OperStatus_UNKNOWN
1394}
1395
1396func (m *Device) GetReason() string {
1397 if m != nil {
1398 return m.Reason
1399 }
1400 return ""
1401}
1402
David K. Bainbridgeaea73cd2020-01-27 10:44:50 -08001403func (m *Device) GetConnectStatus() common.ConnectStatus_Types {
Don Newton98fd8812019-09-23 15:15:02 -04001404 if m != nil {
1405 return m.ConnectStatus
1406 }
1407 return common.ConnectStatus_UNKNOWN
1408}
1409
1410func (m *Device) GetCustom() *any.Any {
1411 if m != nil {
1412 return m.Custom
1413 }
1414 return nil
1415}
1416
1417func (m *Device) GetPorts() []*Port {
1418 if m != nil {
1419 return m.Ports
1420 }
1421 return nil
1422}
1423
1424func (m *Device) GetFlows() *openflow_13.Flows {
1425 if m != nil {
1426 return m.Flows
1427 }
1428 return nil
1429}
1430
1431func (m *Device) GetFlowGroups() *openflow_13.FlowGroups {
1432 if m != nil {
1433 return m.FlowGroups
1434 }
1435 return nil
1436}
1437
1438func (m *Device) GetPmConfigs() *PmConfigs {
1439 if m != nil {
1440 return m.PmConfigs
1441 }
1442 return nil
1443}
1444
1445func (m *Device) GetImageDownloads() []*ImageDownload {
1446 if m != nil {
1447 return m.ImageDownloads
1448 }
1449 return nil
1450}
1451
1452// XXX_OneofWrappers is for the internal use of the proto package.
1453func (*Device) XXX_OneofWrappers() []interface{} {
1454 return []interface{}{
1455 (*Device_Ipv4Address)(nil),
1456 (*Device_Ipv6Address)(nil),
1457 (*Device_HostAndPort)(nil),
1458 }
1459}
1460
1461type Device_ProxyAddress struct {
1462 DeviceId string `protobuf:"bytes,1,opt,name=device_id,json=deviceId,proto3" json:"device_id,omitempty"`
1463 DeviceType string `protobuf:"bytes,2,opt,name=device_type,json=deviceType,proto3" json:"device_type,omitempty"`
1464 ChannelId uint32 `protobuf:"varint,3,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
1465 ChannelGroupId uint32 `protobuf:"varint,4,opt,name=channel_group_id,json=channelGroupId,proto3" json:"channel_group_id,omitempty"`
1466 ChannelTermination string `protobuf:"bytes,5,opt,name=channel_termination,json=channelTermination,proto3" json:"channel_termination,omitempty"`
1467 OnuId uint32 `protobuf:"varint,6,opt,name=onu_id,json=onuId,proto3" json:"onu_id,omitempty"`
1468 OnuSessionId uint32 `protobuf:"varint,7,opt,name=onu_session_id,json=onuSessionId,proto3" json:"onu_session_id,omitempty"`
1469 XXX_NoUnkeyedLiteral struct{} `json:"-"`
1470 XXX_unrecognized []byte `json:"-"`
1471 XXX_sizecache int32 `json:"-"`
1472}
1473
1474func (m *Device_ProxyAddress) Reset() { *m = Device_ProxyAddress{} }
1475func (m *Device_ProxyAddress) String() string { return proto.CompactTextString(m) }
1476func (*Device_ProxyAddress) ProtoMessage() {}
1477func (*Device_ProxyAddress) Descriptor() ([]byte, []int) {
1478 return fileDescriptor_200940f73d155856, []int{11, 0}
1479}
1480
1481func (m *Device_ProxyAddress) XXX_Unmarshal(b []byte) error {
1482 return xxx_messageInfo_Device_ProxyAddress.Unmarshal(m, b)
1483}
1484func (m *Device_ProxyAddress) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1485 return xxx_messageInfo_Device_ProxyAddress.Marshal(b, m, deterministic)
1486}
1487func (m *Device_ProxyAddress) XXX_Merge(src proto.Message) {
1488 xxx_messageInfo_Device_ProxyAddress.Merge(m, src)
1489}
1490func (m *Device_ProxyAddress) XXX_Size() int {
1491 return xxx_messageInfo_Device_ProxyAddress.Size(m)
1492}
1493func (m *Device_ProxyAddress) XXX_DiscardUnknown() {
1494 xxx_messageInfo_Device_ProxyAddress.DiscardUnknown(m)
1495}
1496
1497var xxx_messageInfo_Device_ProxyAddress proto.InternalMessageInfo
1498
1499func (m *Device_ProxyAddress) GetDeviceId() string {
1500 if m != nil {
1501 return m.DeviceId
1502 }
1503 return ""
1504}
1505
1506func (m *Device_ProxyAddress) GetDeviceType() string {
1507 if m != nil {
1508 return m.DeviceType
1509 }
1510 return ""
1511}
1512
1513func (m *Device_ProxyAddress) GetChannelId() uint32 {
1514 if m != nil {
1515 return m.ChannelId
1516 }
1517 return 0
1518}
1519
1520func (m *Device_ProxyAddress) GetChannelGroupId() uint32 {
1521 if m != nil {
1522 return m.ChannelGroupId
1523 }
1524 return 0
1525}
1526
1527func (m *Device_ProxyAddress) GetChannelTermination() string {
1528 if m != nil {
1529 return m.ChannelTermination
1530 }
1531 return ""
1532}
1533
1534func (m *Device_ProxyAddress) GetOnuId() uint32 {
1535 if m != nil {
1536 return m.OnuId
1537 }
1538 return 0
1539}
1540
1541func (m *Device_ProxyAddress) GetOnuSessionId() uint32 {
1542 if m != nil {
1543 return m.OnuSessionId
1544 }
1545 return 0
1546}
1547
1548type Devices struct {
1549 Items []*Device `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"`
1550 XXX_NoUnkeyedLiteral struct{} `json:"-"`
1551 XXX_unrecognized []byte `json:"-"`
1552 XXX_sizecache int32 `json:"-"`
1553}
1554
1555func (m *Devices) Reset() { *m = Devices{} }
1556func (m *Devices) String() string { return proto.CompactTextString(m) }
1557func (*Devices) ProtoMessage() {}
1558func (*Devices) Descriptor() ([]byte, []int) {
1559 return fileDescriptor_200940f73d155856, []int{12}
1560}
1561
1562func (m *Devices) XXX_Unmarshal(b []byte) error {
1563 return xxx_messageInfo_Devices.Unmarshal(m, b)
1564}
1565func (m *Devices) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1566 return xxx_messageInfo_Devices.Marshal(b, m, deterministic)
1567}
1568func (m *Devices) XXX_Merge(src proto.Message) {
1569 xxx_messageInfo_Devices.Merge(m, src)
1570}
1571func (m *Devices) XXX_Size() int {
1572 return xxx_messageInfo_Devices.Size(m)
1573}
1574func (m *Devices) XXX_DiscardUnknown() {
1575 xxx_messageInfo_Devices.DiscardUnknown(m)
1576}
1577
1578var xxx_messageInfo_Devices proto.InternalMessageInfo
1579
1580func (m *Devices) GetItems() []*Device {
1581 if m != nil {
1582 return m.Items
1583 }
1584 return nil
1585}
1586
1587type SimulateAlarmRequest struct {
1588 // Device Identifier
1589 Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
1590 Indicator string `protobuf:"bytes,2,opt,name=indicator,proto3" json:"indicator,omitempty"`
1591 IntfId string `protobuf:"bytes,3,opt,name=intf_id,json=intfId,proto3" json:"intf_id,omitempty"`
1592 PortTypeName string `protobuf:"bytes,4,opt,name=port_type_name,json=portTypeName,proto3" json:"port_type_name,omitempty"`
1593 OnuDeviceId string `protobuf:"bytes,5,opt,name=onu_device_id,json=onuDeviceId,proto3" json:"onu_device_id,omitempty"`
1594 InverseBitErrorRate int32 `protobuf:"varint,6,opt,name=inverse_bit_error_rate,json=inverseBitErrorRate,proto3" json:"inverse_bit_error_rate,omitempty"`
1595 Drift int32 `protobuf:"varint,7,opt,name=drift,proto3" json:"drift,omitempty"`
1596 NewEqd int32 `protobuf:"varint,8,opt,name=new_eqd,json=newEqd,proto3" json:"new_eqd,omitempty"`
1597 OnuSerialNumber string `protobuf:"bytes,9,opt,name=onu_serial_number,json=onuSerialNumber,proto3" json:"onu_serial_number,omitempty"`
1598 Operation SimulateAlarmRequest_OperationType `protobuf:"varint,10,opt,name=operation,proto3,enum=voltha.SimulateAlarmRequest_OperationType" json:"operation,omitempty"`
1599 XXX_NoUnkeyedLiteral struct{} `json:"-"`
1600 XXX_unrecognized []byte `json:"-"`
1601 XXX_sizecache int32 `json:"-"`
1602}
1603
1604func (m *SimulateAlarmRequest) Reset() { *m = SimulateAlarmRequest{} }
1605func (m *SimulateAlarmRequest) String() string { return proto.CompactTextString(m) }
1606func (*SimulateAlarmRequest) ProtoMessage() {}
1607func (*SimulateAlarmRequest) Descriptor() ([]byte, []int) {
1608 return fileDescriptor_200940f73d155856, []int{13}
1609}
1610
1611func (m *SimulateAlarmRequest) XXX_Unmarshal(b []byte) error {
1612 return xxx_messageInfo_SimulateAlarmRequest.Unmarshal(m, b)
1613}
1614func (m *SimulateAlarmRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1615 return xxx_messageInfo_SimulateAlarmRequest.Marshal(b, m, deterministic)
1616}
1617func (m *SimulateAlarmRequest) XXX_Merge(src proto.Message) {
1618 xxx_messageInfo_SimulateAlarmRequest.Merge(m, src)
1619}
1620func (m *SimulateAlarmRequest) XXX_Size() int {
1621 return xxx_messageInfo_SimulateAlarmRequest.Size(m)
1622}
1623func (m *SimulateAlarmRequest) XXX_DiscardUnknown() {
1624 xxx_messageInfo_SimulateAlarmRequest.DiscardUnknown(m)
1625}
1626
1627var xxx_messageInfo_SimulateAlarmRequest proto.InternalMessageInfo
1628
1629func (m *SimulateAlarmRequest) GetId() string {
1630 if m != nil {
1631 return m.Id
1632 }
1633 return ""
1634}
1635
1636func (m *SimulateAlarmRequest) GetIndicator() string {
1637 if m != nil {
1638 return m.Indicator
1639 }
1640 return ""
1641}
1642
1643func (m *SimulateAlarmRequest) GetIntfId() string {
1644 if m != nil {
1645 return m.IntfId
1646 }
1647 return ""
1648}
1649
1650func (m *SimulateAlarmRequest) GetPortTypeName() string {
1651 if m != nil {
1652 return m.PortTypeName
1653 }
1654 return ""
1655}
1656
1657func (m *SimulateAlarmRequest) GetOnuDeviceId() string {
1658 if m != nil {
1659 return m.OnuDeviceId
1660 }
1661 return ""
1662}
1663
1664func (m *SimulateAlarmRequest) GetInverseBitErrorRate() int32 {
1665 if m != nil {
1666 return m.InverseBitErrorRate
1667 }
1668 return 0
1669}
1670
1671func (m *SimulateAlarmRequest) GetDrift() int32 {
1672 if m != nil {
1673 return m.Drift
1674 }
1675 return 0
1676}
1677
1678func (m *SimulateAlarmRequest) GetNewEqd() int32 {
1679 if m != nil {
1680 return m.NewEqd
1681 }
1682 return 0
1683}
1684
1685func (m *SimulateAlarmRequest) GetOnuSerialNumber() string {
1686 if m != nil {
1687 return m.OnuSerialNumber
1688 }
1689 return ""
1690}
1691
1692func (m *SimulateAlarmRequest) GetOperation() SimulateAlarmRequest_OperationType {
1693 if m != nil {
1694 return m.Operation
1695 }
1696 return SimulateAlarmRequest_RAISE
1697}
1698
1699func init() {
1700 proto.RegisterEnum("voltha.PmConfig_PmType", PmConfig_PmType_name, PmConfig_PmType_value)
1701 proto.RegisterEnum("voltha.ImageDownload_ImageDownloadState", ImageDownload_ImageDownloadState_name, ImageDownload_ImageDownloadState_value)
1702 proto.RegisterEnum("voltha.ImageDownload_ImageDownloadFailureReason", ImageDownload_ImageDownloadFailureReason_name, ImageDownload_ImageDownloadFailureReason_value)
1703 proto.RegisterEnum("voltha.ImageDownload_ImageActivateState", ImageDownload_ImageActivateState_name, ImageDownload_ImageActivateState_value)
1704 proto.RegisterEnum("voltha.Port_PortType", Port_PortType_name, Port_PortType_value)
1705 proto.RegisterEnum("voltha.SimulateAlarmRequest_OperationType", SimulateAlarmRequest_OperationType_name, SimulateAlarmRequest_OperationType_value)
1706 proto.RegisterType((*DeviceType)(nil), "voltha.DeviceType")
1707 proto.RegisterType((*DeviceTypes)(nil), "voltha.DeviceTypes")
1708 proto.RegisterType((*PmConfig)(nil), "voltha.PmConfig")
1709 proto.RegisterType((*PmGroupConfig)(nil), "voltha.PmGroupConfig")
1710 proto.RegisterType((*PmConfigs)(nil), "voltha.PmConfigs")
1711 proto.RegisterType((*Image)(nil), "voltha.Image")
1712 proto.RegisterType((*Images)(nil), "voltha.Images")
1713 proto.RegisterType((*ImageDownload)(nil), "voltha.ImageDownload")
1714 proto.RegisterType((*ImageDownloads)(nil), "voltha.ImageDownloads")
1715 proto.RegisterType((*Port)(nil), "voltha.Port")
1716 proto.RegisterType((*Port_PeerPort)(nil), "voltha.Port.PeerPort")
1717 proto.RegisterType((*Ports)(nil), "voltha.Ports")
1718 proto.RegisterType((*Device)(nil), "voltha.Device")
1719 proto.RegisterType((*Device_ProxyAddress)(nil), "voltha.Device.ProxyAddress")
1720 proto.RegisterType((*Devices)(nil), "voltha.Devices")
1721 proto.RegisterType((*SimulateAlarmRequest)(nil), "voltha.SimulateAlarmRequest")
1722}
1723
1724func init() { proto.RegisterFile("voltha_protos/device.proto", fileDescriptor_200940f73d155856) }
1725
1726var fileDescriptor_200940f73d155856 = []byte{
Rohan Agrawalc32d9932020-06-15 11:01:47 +00001727 // 2383 bytes of a gzipped FileDescriptorProto
1728 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x58, 0x4d, 0x6f, 0xdb, 0xc8,
1729 0xf9, 0x8f, 0x64, 0x93, 0x12, 0x1f, 0xbd, 0x98, 0x99, 0x38, 0x1b, 0x26, 0xfe, 0x1b, 0xc9, 0x5f,
1730 0xd9, 0xa2, 0xde, 0x6c, 0x63, 0xa7, 0x9b, 0x62, 0x77, 0x7b, 0x28, 0x10, 0x59, 0x62, 0x12, 0xa2,
1731 0xae, 0xec, 0x8e, 0x24, 0x6f, 0xdb, 0x0b, 0x41, 0x8b, 0x23, 0x9b, 0x08, 0xc9, 0x51, 0x86, 0x94,
1732 0xe3, 0xec, 0xa9, 0xed, 0xa2, 0x3d, 0xf5, 0xd6, 0x2f, 0xd1, 0x6f, 0xb0, 0xc7, 0x16, 0xe8, 0x79,
1733 0xd1, 0xef, 0xd0, 0x02, 0x45, 0x3f, 0xc1, 0x9e, 0x8b, 0x79, 0x86, 0x23, 0x91, 0x49, 0x9a, 0x6d,
1734 0x2f, 0xb6, 0xe6, 0xf7, 0xbc, 0xcc, 0xcc, 0x6f, 0x66, 0x9e, 0x17, 0xc2, 0x9d, 0x4b, 0x1e, 0xe7,
1735 0x17, 0x81, 0xbf, 0x10, 0x3c, 0xe7, 0xd9, 0x41, 0xc8, 0x2e, 0xa3, 0x19, 0xdb, 0xc7, 0x11, 0x31,
1736 0x95, 0xec, 0xce, 0xed, 0x73, 0xce, 0xcf, 0x63, 0x76, 0x80, 0xe8, 0xd9, 0x72, 0x7e, 0x10, 0xa4,
1737 0xaf, 0x95, 0xca, 0x9d, 0x37, 0xcc, 0x67, 0x3c, 0x49, 0x78, 0x5a, 0xc8, 0x9c, 0xaa, 0x2c, 0x61,
1738 0x79, 0x50, 0x48, 0xee, 0x56, 0x25, 0x7c, 0xc1, 0xd2, 0x79, 0xcc, 0x5f, 0xf9, 0x3f, 0x7c, 0xac,
1739 0x14, 0x7a, 0x7f, 0xae, 0x03, 0x0c, 0x71, 0x29, 0x93, 0xd7, 0x0b, 0x46, 0xba, 0x50, 0x8f, 0x42,
1740 0xa7, 0x76, 0xaf, 0xb6, 0x67, 0xd1, 0x7a, 0x14, 0x92, 0x1d, 0xb0, 0x2e, 0x59, 0x1a, 0x72, 0xe1,
1741 0x47, 0xa1, 0x63, 0x20, 0xdc, 0x54, 0x80, 0x17, 0x92, 0x5d, 0x80, 0x95, 0x30, 0x73, 0xcc, 0x7b,
1742 0x1b, 0x7b, 0x16, 0xb5, 0xb4, 0x34, 0x23, 0x0e, 0x34, 0x82, 0x30, 0x58, 0xe4, 0x4c, 0x38, 0x75,
1743 0xb4, 0xd4, 0x43, 0xf2, 0x19, 0x38, 0xc1, 0x6c, 0xc6, 0x16, 0x79, 0xe6, 0x9f, 0x2d, 0xe3, 0x17,
1744 0x3e, 0x2e, 0x69, 0xb9, 0x08, 0x83, 0x9c, 0x39, 0x1b, 0xf7, 0x6a, 0x7b, 0x4d, 0x7a, 0xb3, 0x90,
1745 0x1f, 0x2e, 0xe3, 0x17, 0x4f, 0x63, 0xfe, 0x6a, 0x8a, 0x42, 0x32, 0x84, 0xbb, 0xda, 0x30, 0x08,
1746 0x43, 0x5f, 0xb0, 0x84, 0x5f, 0xb2, 0xb2, 0x79, 0xe6, 0x6c, 0xa2, 0xfd, 0x4e, 0xa1, 0xd6, 0x0f,
1747 0x43, 0x8a, 0x4a, 0x6b, 0x27, 0x19, 0x39, 0x82, 0xfb, 0xda, 0x4b, 0x18, 0x09, 0x36, 0xcb, 0xfd,
1748 0x98, 0x9f, 0x47, 0xb3, 0x20, 0x46, 0x4f, 0x99, 0x5e, 0x49, 0x03, 0x3d, 0xe9, 0x09, 0x87, 0xa8,
1749 0x79, 0xa4, 0x14, 0xa5, 0xb7, 0x4c, 0xb9, 0xeb, 0x7d, 0x06, 0xad, 0x35, 0x81, 0x19, 0xd9, 0x03,
1750 0x23, 0xca, 0x59, 0x92, 0x39, 0xb5, 0x7b, 0x1b, 0x7b, 0xad, 0x4f, 0xc8, 0xbe, 0x3a, 0x81, 0xfd,
1751 0xb5, 0x0e, 0x55, 0x0a, 0xbd, 0xbf, 0xd4, 0xa0, 0x79, 0x92, 0x0c, 0x78, 0x3a, 0x8f, 0xce, 0x09,
1752 0x81, 0xcd, 0x34, 0x48, 0x58, 0x41, 0x3d, 0xfe, 0x26, 0x1f, 0xc3, 0x66, 0xfe, 0x7a, 0xc1, 0x90,
1753 0xbd, 0xee, 0x27, 0xb7, 0xb4, 0x27, 0x6d, 0xb3, 0x7f, 0x92, 0xa0, 0x3b, 0x54, 0x92, 0x6c, 0xb3,
1754 0x34, 0x38, 0x8b, 0x59, 0x58, 0x50, 0xa8, 0x87, 0xe4, 0x2e, 0xb4, 0xb2, 0x20, 0x59, 0xc4, 0xcc,
1755 0x9f, 0x0b, 0xf6, 0x12, 0x09, 0xea, 0x50, 0x50, 0xd0, 0x53, 0xc1, 0x5e, 0xf6, 0x3e, 0x07, 0x53,
1756 0xb9, 0x22, 0x2d, 0x68, 0x0c, 0x8e, 0xa7, 0xa3, 0x89, 0x4b, 0xed, 0x6b, 0xc4, 0x02, 0xe3, 0x59,
1757 0x7f, 0xfa, 0xcc, 0xb5, 0x6b, 0xf2, 0xe7, 0x78, 0xd2, 0x9f, 0xb8, 0x76, 0x5d, 0xa9, 0x8c, 0x26,
1758 0xee, 0x2f, 0x26, 0xf6, 0x46, 0xef, 0x8f, 0x35, 0xe8, 0x9c, 0x24, 0xcf, 0x04, 0x5f, 0x2e, 0x8a,
1759 0x7d, 0xec, 0x02, 0x9c, 0xcb, 0xa1, 0x5f, 0xda, 0x8d, 0x85, 0xc8, 0x48, 0x6e, 0x69, 0x25, 0xc6,
1760 0xa5, 0xd4, 0x71, 0x29, 0x4a, 0x2c, 0x57, 0xf2, 0x9e, 0x4d, 0x3c, 0x80, 0x46, 0xc2, 0x72, 0x11,
1761 0xcd, 0xe4, 0x09, 0x4b, 0x62, 0xed, 0x37, 0xe9, 0xa0, 0x5a, 0xa1, 0xf7, 0xcf, 0x1a, 0x58, 0x1a,
1762 0xcd, 0xde, 0xba, 0xd2, 0xff, 0x0f, 0xed, 0x90, 0xcd, 0x83, 0x65, 0x9c, 0x97, 0x17, 0xd1, 0x2a,
1763 0x30, 0x5c, 0xc6, 0x5d, 0x68, 0xe0, 0x9a, 0xf4, 0x32, 0x0e, 0x8d, 0x7f, 0x7d, 0xfb, 0xcd, 0x6e,
1764 0x8d, 0x6a, 0x94, 0x3c, 0x80, 0x8e, 0xb4, 0xf5, 0xf9, 0x25, 0x13, 0x22, 0x0a, 0x99, 0xba, 0x75,
1765 0x5a, 0xad, 0x2d, 0x65, 0xc7, 0x85, 0x88, 0x3c, 0x04, 0x13, 0xcd, 0x32, 0xc7, 0xc0, 0x85, 0xdf,
1766 0x5c, 0x2f, 0xbc, 0x44, 0x1c, 0x2d, 0x94, 0xca, 0x1b, 0x35, 0xbf, 0x6b, 0xa3, 0x7f, 0xab, 0x81,
1767 0xe1, 0x25, 0xc1, 0x39, 0x7b, 0xe7, 0xf5, 0x71, 0xa0, 0x71, 0xc9, 0x44, 0x16, 0xf1, 0x54, 0xbf,
1768 0xbf, 0x62, 0x28, 0xb5, 0x2f, 0x82, 0xec, 0x02, 0x37, 0x67, 0x51, 0xfc, 0x4d, 0x3e, 0x02, 0x3b,
1769 0x4a, 0xb3, 0x3c, 0x88, 0x63, 0x5f, 0x5e, 0xeb, 0x3c, 0x4a, 0xd4, 0xae, 0x2c, 0xba, 0x55, 0xe0,
1770 0xc3, 0x02, 0x96, 0x41, 0x21, 0xca, 0xfc, 0x60, 0x96, 0x47, 0x97, 0x0c, 0x83, 0x42, 0x93, 0x36,
1771 0xa3, 0xac, 0x8f, 0x63, 0x49, 0x6f, 0x94, 0xf9, 0x32, 0x3c, 0x45, 0x79, 0xce, 0x42, 0xc7, 0x44,
1772 0x79, 0x2b, 0xca, 0x06, 0x1a, 0x22, 0xb7, 0xa1, 0x19, 0x65, 0xfe, 0x65, 0x10, 0x47, 0x61, 0xf1,
1773 0xc8, 0x1a, 0x51, 0x76, 0x2a, 0x87, 0xbd, 0x87, 0x60, 0xe2, 0x86, 0x32, 0x72, 0x1f, 0x8c, 0x48,
1774 0xfe, 0x2a, 0xde, 0x51, 0x47, 0xb3, 0x80, 0x62, 0xaa, 0x64, 0xbd, 0x7f, 0x34, 0xa0, 0x83, 0xc0,
1775 0x90, 0xbf, 0x4a, 0x63, 0x1e, 0x84, 0x6f, 0x9d, 0xb6, 0x26, 0xa6, 0x5e, 0x22, 0xc6, 0x86, 0x8d,
1776 0xa5, 0x88, 0x8b, 0xdd, 0xcb, 0x9f, 0x12, 0x99, 0x89, 0x59, 0xf1, 0x34, 0xe4, 0x4f, 0x72, 0x0c,
1777 0xdd, 0xb0, 0xf0, 0xe9, 0x67, 0xb9, 0x0c, 0x07, 0x06, 0xbe, 0xc2, 0xbd, 0xca, 0x3a, 0xf4, 0xb4,
1778 0xd5, 0xd1, 0x58, 0xea, 0xd3, 0x4e, 0x58, 0x1e, 0x92, 0xfb, 0xd0, 0xc1, 0x35, 0xfb, 0xfa, 0x4c,
1779 0x4c, 0x9c, 0xbe, 0x8d, 0xe0, 0x69, 0x71, 0x30, 0x1f, 0x81, 0xad, 0xad, 0x58, 0xe8, 0x9f, 0xbd,
1780 0x96, 0x01, 0xad, 0x81, 0x8b, 0xda, 0x5a, 0xe3, 0x87, 0x12, 0x26, 0xcf, 0xc1, 0x14, 0x2c, 0xc8,
1781 0x78, 0xea, 0x34, 0x71, 0x61, 0x8f, 0xfe, 0x8b, 0x85, 0x3d, 0x0d, 0xa2, 0x78, 0x29, 0x18, 0x45,
1782 0x3b, 0x5a, 0xd8, 0x93, 0xef, 0xc3, 0x56, 0x10, 0x86, 0x51, 0x1e, 0xf1, 0x34, 0x88, 0xfd, 0x28,
1783 0x9d, 0x73, 0xc7, 0xc2, 0xb5, 0x75, 0xd7, 0xb0, 0x97, 0xce, 0xb9, 0x0a, 0x24, 0x97, 0xcc, 0x9f,
1784 0xe1, 0x35, 0x74, 0x00, 0x8f, 0x0e, 0x24, 0x54, 0x3c, 0xfe, 0x1d, 0xb0, 0x62, 0x2e, 0xe3, 0x68,
1785 0x18, 0x09, 0xa7, 0xa5, 0xb2, 0x05, 0x02, 0xc3, 0x48, 0x10, 0x0f, 0x5a, 0x8a, 0x00, 0x45, 0x67,
1786 0xfb, 0x3b, 0xe9, 0xc4, 0x0b, 0x15, 0xe4, 0x4c, 0xd1, 0x09, 0x68, 0xac, 0xb8, 0xdc, 0x01, 0x6b,
1787 0x1e, 0xc5, 0xcc, 0xcf, 0xa2, 0x2f, 0x99, 0xd3, 0x41, 0x7e, 0x9a, 0x12, 0x18, 0x47, 0x5f, 0xb2,
1788 0xde, 0xd7, 0x35, 0x20, 0x6f, 0x1f, 0x07, 0xd9, 0x06, 0x7b, 0x78, 0xfc, 0xc5, 0xe8, 0xe8, 0xb8,
1789 0x3f, 0xf4, 0xa7, 0xa3, 0x9f, 0x8e, 0x8e, 0xbf, 0x18, 0xd9, 0xd7, 0xc8, 0x07, 0x40, 0x56, 0xe8,
1790 0x78, 0x3a, 0x18, 0xb8, 0xee, 0xd0, 0x1d, 0xda, 0xb5, 0x0a, 0x4e, 0xdd, 0x9f, 0x4f, 0xdd, 0xf1,
1791 0xc4, 0x1d, 0xda, 0xf5, 0x8a, 0x97, 0xf1, 0xa4, 0x4f, 0x25, 0xba, 0x41, 0x6e, 0xc0, 0xd6, 0x0a,
1792 0x7d, 0xda, 0xf7, 0x8e, 0xdc, 0xa1, 0xbd, 0x49, 0x1c, 0xd8, 0x2e, 0x4d, 0x38, 0x9e, 0x9e, 0x9c,
1793 0x1c, 0xa3, 0xba, 0x51, 0x71, 0x3e, 0xe8, 0x8f, 0x06, 0xee, 0x91, 0xb4, 0x30, 0x7b, 0xbf, 0xaf,
1794 0xc1, 0x9d, 0xff, 0x7c, 0x5e, 0xa4, 0x0d, 0xcd, 0xd1, 0xb1, 0xef, 0x52, 0x7a, 0x2c, 0xa3, 0xf3,
1795 0x16, 0xb4, 0xbc, 0xd1, 0x69, 0xff, 0xc8, 0x1b, 0xfa, 0x53, 0x7a, 0x64, 0xd7, 0x24, 0x30, 0x74,
1796 0x4f, 0xbd, 0x81, 0xeb, 0x1f, 0x4e, 0xc7, 0xbf, 0xb4, 0xeb, 0x72, 0x1a, 0x6f, 0x34, 0x9e, 0x3e,
1797 0x7d, 0xea, 0x0d, 0x3c, 0x77, 0x34, 0xf1, 0xc7, 0x27, 0xfd, 0x81, 0x6b, 0x6f, 0x90, 0xeb, 0xd0,
1798 0x29, 0x08, 0x28, 0x9c, 0x6d, 0x92, 0x0e, 0x58, 0xeb, 0x85, 0x18, 0xbd, 0x3f, 0x68, 0x0a, 0x2b,
1799 0x47, 0x20, 0x0d, 0xbd, 0x9f, 0xf5, 0x9f, 0xb9, 0x25, 0xfe, 0x08, 0x74, 0x15, 0xe4, 0x8d, 0xfa,
1800 0x83, 0x89, 0x77, 0x2a, 0x93, 0xc5, 0x36, 0xd8, 0x0a, 0x43, 0xa4, 0x3f, 0xf1, 0x46, 0xcf, 0xec,
1801 0x3a, 0xb1, 0xa1, 0x5d, 0x42, 0x5d, 0xc5, 0x9a, 0x42, 0xa8, 0x7b, 0xea, 0x52, 0x54, 0xdb, 0x5c,
1802 0x3b, 0x54, 0x20, 0x2e, 0xe7, 0x27, 0xd0, 0xad, 0xd0, 0x92, 0x91, 0x8f, 0x75, 0x92, 0xad, 0x57,
1803 0x43, 0x6a, 0x45, 0x4d, 0xe7, 0xd9, 0xaf, 0x0d, 0xd8, 0x3c, 0xe1, 0x22, 0x27, 0xb7, 0xa0, 0xb1,
1804 0xe0, 0x22, 0xf7, 0x53, 0x8e, 0x01, 0xa2, 0x43, 0x4d, 0x39, 0x1c, 0x71, 0xb2, 0x0d, 0x46, 0x1c,
1805 0x9c, 0xb1, 0xb8, 0x88, 0x12, 0x6a, 0x40, 0x3e, 0x2a, 0xd2, 0xef, 0x06, 0xde, 0xd4, 0x75, 0xd8,
1806 0xe6, 0x22, 0xc7, 0x3f, 0xa5, 0xe4, 0xfb, 0x63, 0x68, 0x05, 0x61, 0x12, 0xa5, 0x95, 0x50, 0xe1,
1807 0xec, 0x17, 0x45, 0x5a, 0x5f, 0x8a, 0x90, 0xc2, 0x7d, 0xac, 0x11, 0x28, 0x04, 0x2b, 0x44, 0x9a,
1808 0xf2, 0x05, 0x13, 0x68, 0xb9, 0xcc, 0x30, 0x2a, 0x94, 0x4c, 0x8f, 0x17, 0x4c, 0x8c, 0x51, 0xa2,
1809 0x4d, 0xf9, 0x0a, 0x91, 0xcf, 0x40, 0x55, 0x91, 0x7e, 0x11, 0x48, 0x2d, 0xda, 0x54, 0x80, 0x17,
1810 0x4a, 0x8a, 0x16, 0x8c, 0x89, 0xcc, 0x69, 0xbe, 0x91, 0x75, 0x70, 0xf9, 0x8c, 0x09, 0xf9, 0x83,
1811 0x2a, 0x1d, 0x99, 0x96, 0xc5, 0x95, 0xbf, 0x08, 0x66, 0x2f, 0x58, 0x9e, 0xe1, 0xeb, 0x37, 0xa9,
1812 0x25, 0xae, 0x4e, 0x14, 0x20, 0x03, 0xb6, 0xb8, 0x2a, 0xc2, 0x11, 0xa0, 0xb0, 0x21, 0xae, 0x54,
1813 0x18, 0xda, 0x01, 0x4b, 0x5c, 0xf9, 0x4c, 0x08, 0x2e, 0x32, 0x7c, 0xf2, 0x26, 0x6d, 0x8a, 0x2b,
1814 0x17, 0xc7, 0xd2, 0x6d, 0xbe, 0x76, 0xdb, 0x56, 0x6e, 0xf3, 0xb2, 0xdb, 0x5c, 0xbb, 0xed, 0x28,
1815 0xb7, 0xf9, 0xda, 0x6d, 0xbe, 0x72, 0xdb, 0x55, 0x6e, 0x73, 0xed, 0xf6, 0x11, 0x34, 0xf9, 0x7c,
1816 0xe1, 0xcb, 0xc3, 0x73, 0xb6, 0xee, 0xd5, 0x70, 0x77, 0xe5, 0xca, 0x56, 0x0b, 0x69, 0x83, 0xcf,
1817 0x17, 0x72, 0x9b, 0x77, 0x9e, 0x40, 0x53, 0x6f, 0xb9, 0xca, 0x5a, 0xed, 0x0d, 0xd6, 0x4a, 0x57,
1818 0xa4, 0x5e, 0xbe, 0x22, 0xbd, 0x0c, 0x9a, 0xfa, 0xcc, 0x65, 0x09, 0xb4, 0x7e, 0x01, 0x36, 0xb4,
1819 0xdd, 0xc9, 0x73, 0x97, 0x8e, 0xdc, 0x89, 0x3f, 0x1a, 0x79, 0x76, 0xad, 0x82, 0x4c, 0x47, 0x9e,
1820 0xaa, 0x99, 0x4e, 0x8e, 0x47, 0xfe, 0xf1, 0xd1, 0xc4, 0xde, 0x58, 0x0d, 0x46, 0x53, 0xf5, 0xf0,
1821 0x4e, 0x5d, 0xa9, 0x28, 0x65, 0x46, 0x69, 0x38, 0x9a, 0xda, 0x66, 0xef, 0x63, 0x30, 0xe4, 0xa4,
1822 0x19, 0xe9, 0x55, 0x8b, 0xca, 0x76, 0xf9, 0x30, 0xf5, 0x35, 0xff, 0x6b, 0x1b, 0x4c, 0x55, 0x64,
1823 0x92, 0x9b, 0xeb, 0x24, 0xa8, 0x6b, 0x12, 0x99, 0x0b, 0x6f, 0x97, 0xea, 0xc9, 0x95, 0x40, 0x5d,
1824 0xe0, 0xdb, 0xb0, 0x29, 0x38, 0xcf, 0xab, 0xe5, 0x0e, 0x42, 0xa4, 0x07, 0xd6, 0x22, 0x10, 0x2c,
1825 0xcd, 0x25, 0x5f, 0x9b, 0x65, 0xd3, 0xa6, 0xc2, 0xf1, 0xb2, 0x75, 0x0b, 0x1d, 0xcd, 0xde, 0xb6,
1826 0x64, 0x6f, 0x55, 0x10, 0x29, 0xe1, 0x89, 0x7a, 0x6d, 0xbb, 0x60, 0xaa, 0x26, 0x41, 0x35, 0x14,
1827 0x5a, 0xa9, 0x00, 0xc9, 0x0e, 0x18, 0x09, 0x0f, 0x59, 0xac, 0x12, 0xa4, 0x96, 0x2a, 0x8c, 0x3c,
1828 0x02, 0xfb, 0x22, 0x10, 0xe1, 0xab, 0x40, 0xac, 0x13, 0x69, 0xa3, 0xac, 0xb7, 0xa5, 0xc5, 0x3a,
1829 0xa5, 0x3e, 0x02, 0x7b, 0x1e, 0x89, 0xa4, 0x62, 0xd1, 0xac, 0x58, 0x68, 0xb1, 0xb6, 0x78, 0x08,
1830 0x26, 0xe6, 0x1a, 0xf5, 0x10, 0x5a, 0x9f, 0x74, 0x2b, 0xd1, 0x25, 0x5b, 0xad, 0x57, 0x29, 0xc9,
1831 0x5a, 0x30, 0x63, 0x22, 0x0a, 0x62, 0x3f, 0x5d, 0x26, 0x67, 0x4c, 0xe0, 0x0b, 0x59, 0x79, 0x6f,
1832 0x2b, 0xd9, 0x08, 0x45, 0x92, 0xcb, 0x75, 0x3b, 0xe5, 0x54, 0xb8, 0x5c, 0x75, 0x55, 0x77, 0xd7,
1833 0x6d, 0x53, 0xab, 0xac, 0xb1, 0xea, 0x9e, 0x08, 0x6c, 0x5e, 0xc6, 0x41, 0x8a, 0xef, 0xa9, 0x43,
1834 0xf1, 0xb7, 0x4c, 0xcd, 0x49, 0x30, 0x93, 0x4d, 0x91, 0x60, 0x99, 0x7a, 0x4d, 0x16, 0x85, 0x24,
1835 0x98, 0xf5, 0x15, 0x42, 0xee, 0x43, 0x3b, 0x5a, 0x5c, 0xfe, 0x68, 0xa5, 0x21, 0xdf, 0x94, 0xf5,
1836 0xfc, 0x1a, 0x6d, 0x49, 0xb4, 0xaa, 0xf4, 0xe9, 0x4a, 0x69, 0xab, 0xa4, 0xf4, 0xa9, 0x56, 0xfa,
1837 0x10, 0x3a, 0x17, 0x3c, 0xcb, 0xfd, 0x20, 0x0d, 0xd5, 0x13, 0xbc, 0xa9, 0xb5, 0x24, 0xdc, 0x4f,
1838 0x43, 0x7c, 0x65, 0xbb, 0x00, 0xec, 0x2a, 0x17, 0x81, 0x1f, 0x88, 0xf3, 0xcc, 0xb9, 0xa5, 0xfa,
1839 0x00, 0x44, 0xfa, 0xe2, 0x3c, 0x23, 0x4f, 0xa0, 0xb3, 0x10, 0xfc, 0xea, 0xf5, 0x6a, 0xaa, 0x1b,
1840 0x48, 0xf5, 0x4e, 0xb5, 0x5b, 0xda, 0x3f, 0x91, 0x3a, 0xc5, 0xc4, 0xb4, 0xbd, 0x28, 0x8d, 0xde,
1841 0x0c, 0xb9, 0xf6, 0xff, 0x10, 0x72, 0x9f, 0x54, 0x43, 0xee, 0xf5, 0xf7, 0x87, 0x5c, 0xcd, 0x7f,
1842 0x39, 0xf2, 0xee, 0xae, 0x8a, 0xaf, 0x0f, 0x2a, 0x57, 0xb8, 0xa8, 0xa8, 0x3c, 0xe8, 0xce, 0x78,
1843 0x9a, 0xca, 0xce, 0xb2, 0x98, 0x83, 0xe0, 0x1c, 0x3b, 0x7a, 0x8e, 0x81, 0x92, 0xbe, 0x6b, 0x9a,
1844 0xce, 0xac, 0x2c, 0x23, 0x3f, 0x00, 0x73, 0xb6, 0xcc, 0x72, 0x9e, 0x38, 0x4f, 0x90, 0xa1, 0xed,
1845 0x7d, 0xf5, 0x89, 0x60, 0x5f, 0x7f, 0x22, 0xd8, 0xef, 0xa7, 0xaf, 0x69, 0xa1, 0x43, 0x1e, 0x83,
1846 0x21, 0x8f, 0x24, 0x73, 0x7e, 0xfd, 0x8e, 0x40, 0x71, 0xd8, 0xfd, 0xfb, 0xb7, 0xdf, 0xec, 0x5a,
1847 0xab, 0x08, 0x47, 0x95, 0x2e, 0x79, 0x04, 0x06, 0xf6, 0xbd, 0xce, 0x6f, 0x6a, 0x38, 0x05, 0xa9,
1848 0x04, 0x53, 0x6c, 0x75, 0x0f, 0x0d, 0x69, 0x7a, 0x8d, 0x2a, 0x45, 0x49, 0x20, 0x8a, 0x8b, 0xbe,
1849 0xe6, 0xb7, 0xca, 0xee, 0xd6, 0x5b, 0x76, 0xd8, 0xdf, 0xac, 0x8c, 0x61, 0xbe, 0x82, 0xc8, 0xe7,
1850 0x00, 0x8b, 0xa4, 0x28, 0x24, 0x33, 0xe7, 0x2b, 0xe5, 0xe0, 0xfa, 0x9b, 0x9d, 0xce, 0xca, 0xd4,
1851 0x5a, 0xac, 0xda, 0xb9, 0x23, 0xd8, 0x52, 0x65, 0xa4, 0x2e, 0x88, 0x33, 0xe7, 0x77, 0xb5, 0xf7,
1852 0x54, 0x01, 0x87, 0x2d, 0xe9, 0xc2, 0x54, 0x6d, 0x00, 0xed, 0x46, 0x95, 0x42, 0xe2, 0xce, 0x57,
1853 0x75, 0x68, 0x97, 0x2f, 0xd9, 0xfb, 0xb3, 0xc3, 0x5d, 0x68, 0x15, 0xc2, 0x75, 0x1c, 0xa5, 0x10,
1854 0xae, 0x3f, 0x9f, 0xec, 0x02, 0xcc, 0x2e, 0x82, 0x34, 0x65, 0xb1, 0x34, 0xdf, 0x50, 0xed, 0x6d,
1855 0x81, 0x78, 0x21, 0xd9, 0x03, 0x5b, 0x8b, 0x55, 0x17, 0x5c, 0x44, 0xd4, 0x0e, 0xed, 0x16, 0x38,
1856 0xd2, 0xe3, 0x85, 0xe4, 0x00, 0x6e, 0x68, 0xcd, 0x9c, 0x89, 0x24, 0x4a, 0x03, 0x59, 0x87, 0x17,
1857 0x5f, 0x60, 0x48, 0x21, 0x9a, 0xac, 0x25, 0xe4, 0x26, 0x98, 0x3c, 0x5d, 0x4a, 0x87, 0x26, 0x3a,
1858 0x34, 0x78, 0xba, 0xf4, 0x42, 0xf2, 0x21, 0x74, 0x25, 0x9c, 0xb1, 0x4c, 0x86, 0x36, 0x5d, 0x27,
1859 0x74, 0x68, 0x9b, 0xa7, 0xcb, 0xb1, 0x02, 0xbd, 0xf0, 0xd0, 0x92, 0x21, 0x07, 0xf7, 0xdf, 0x3b,
1860 0x80, 0x86, 0x7a, 0x7b, 0xf2, 0xa1, 0x57, 0x92, 0x4e, 0xb7, 0xfa, 0x36, 0x75, 0xda, 0xf9, 0xd3,
1861 0x06, 0x6c, 0x8f, 0xa3, 0x64, 0x19, 0x07, 0x39, 0xeb, 0xc7, 0x81, 0x48, 0x28, 0x7b, 0xb9, 0x64,
1862 0x59, 0xfe, 0x56, 0x27, 0xf6, 0x7f, 0x60, 0x45, 0x69, 0x18, 0xcd, 0x82, 0x9c, 0xeb, 0x0f, 0x42,
1863 0x6b, 0x40, 0x26, 0xde, 0x28, 0xcd, 0xe7, 0x9a, 0x36, 0x8b, 0x9a, 0x72, 0xa8, 0x76, 0x80, 0xf7,
1864 0x55, 0x32, 0xae, 0x3e, 0x2a, 0xa8, 0xae, 0xb4, 0xbd, 0x28, 0xd2, 0x31, 0x7e, 0x57, 0xe8, 0x41,
1865 0x47, 0xee, 0x73, 0x7d, 0x74, 0x8a, 0xa9, 0x16, 0x4f, 0x97, 0x43, 0x7d, 0x7a, 0x8f, 0xe1, 0x83,
1866 0x28, 0x95, 0x29, 0x80, 0xf9, 0x67, 0x51, 0xae, 0x8a, 0x0b, 0x5f, 0xc8, 0xe0, 0x21, 0x29, 0x33,
1867 0xe8, 0x8d, 0x42, 0x7a, 0x18, 0xe5, 0x58, 0x68, 0x50, 0xd5, 0x36, 0x18, 0xa1, 0x88, 0xe6, 0x39,
1868 0xf2, 0x66, 0x50, 0x35, 0x90, 0xab, 0x4d, 0xd9, 0x2b, 0x9f, 0xbd, 0x0c, 0x31, 0x97, 0x18, 0xd4,
1869 0x4c, 0xd9, 0x2b, 0xf7, 0x65, 0x48, 0x1e, 0xc0, 0x75, 0xc5, 0x77, 0x39, 0x21, 0xa8, 0x6e, 0x6a,
1870 0x0b, 0x29, 0x2f, 0x25, 0x83, 0xe7, 0x60, 0xc9, 0x90, 0xa2, 0x4e, 0x16, 0x30, 0x40, 0x3c, 0xd0,
1871 0x1c, 0xbf, 0x8b, 0x51, 0x8c, 0x4c, 0xa8, 0x8d, 0x95, 0xe7, 0xda, 0xb8, 0xf7, 0x3d, 0xe8, 0x54,
1872 0x64, 0xc4, 0x02, 0x83, 0xf6, 0xbd, 0xb1, 0xab, 0xbe, 0xe2, 0x0c, 0x8e, 0xdc, 0x3e, 0xb5, 0x6b,
1873 0x87, 0x63, 0xb8, 0xc1, 0xc5, 0x39, 0xbe, 0xd2, 0x19, 0x17, 0x61, 0x31, 0xd7, 0x61, 0xfb, 0x14,
1874 0xff, 0x2b, 0x9e, 0x7e, 0xb5, 0x7f, 0x1e, 0xe5, 0x17, 0xcb, 0x33, 0x19, 0xa9, 0x0e, 0xb4, 0xe6,
1875 0x81, 0xd2, 0x7c, 0x58, 0x7c, 0x45, 0xbc, 0x7c, 0x7c, 0x70, 0xce, 0x0b, 0xec, 0xcc, 0x44, 0xf0,
1876 0xf1, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x4e, 0x2a, 0x8d, 0xf0, 0xdf, 0x14, 0x00, 0x00,
Don Newton98fd8812019-09-23 15:15:02 -04001877}