// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.0 // protoc v3.19.4 // source: options.proto package valhalla import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type ShapeMatch int32 const ( ShapeMatch_walk_or_snap ShapeMatch = 0 ShapeMatch_edge_walk ShapeMatch = 1 ShapeMatch_map_snap ShapeMatch = 2 ) // Enum value maps for ShapeMatch. var ( ShapeMatch_name = map[int32]string{ 0: "walk_or_snap", 1: "edge_walk", 2: "map_snap", } ShapeMatch_value = map[string]int32{ "walk_or_snap": 0, "edge_walk": 1, "map_snap": 2, } ) func (x ShapeMatch) Enum() *ShapeMatch { p := new(ShapeMatch) *p = x return p } func (x ShapeMatch) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ShapeMatch) Descriptor() protoreflect.EnumDescriptor { return file_options_proto_enumTypes[0].Descriptor() } func (ShapeMatch) Type() protoreflect.EnumType { return &file_options_proto_enumTypes[0] } func (x ShapeMatch) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ShapeMatch.Descriptor instead. func (ShapeMatch) EnumDescriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{0} } type FilterAction int32 const ( FilterAction_no_action FilterAction = 0 FilterAction_exclude FilterAction = 1 FilterAction_include FilterAction = 2 ) // Enum value maps for FilterAction. var ( FilterAction_name = map[int32]string{ 0: "no_action", 1: "exclude", 2: "include", } FilterAction_value = map[string]int32{ "no_action": 0, "exclude": 1, "include": 2, } ) func (x FilterAction) Enum() *FilterAction { p := new(FilterAction) *p = x return p } func (x FilterAction) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (FilterAction) Descriptor() protoreflect.EnumDescriptor { return file_options_proto_enumTypes[1].Descriptor() } func (FilterAction) Type() protoreflect.EnumType { return &file_options_proto_enumTypes[1] } func (x FilterAction) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use FilterAction.Descriptor instead. func (FilterAction) EnumDescriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{1} } type DirectionsType int32 const ( DirectionsType_instructions DirectionsType = 0 DirectionsType_none DirectionsType = 1 DirectionsType_maneuvers DirectionsType = 2 ) // Enum value maps for DirectionsType. var ( DirectionsType_name = map[int32]string{ 0: "instructions", 1: "none", 2: "maneuvers", } DirectionsType_value = map[string]int32{ "instructions": 0, "none": 1, "maneuvers": 2, } ) func (x DirectionsType) Enum() *DirectionsType { p := new(DirectionsType) *p = x return p } func (x DirectionsType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (DirectionsType) Descriptor() protoreflect.EnumDescriptor { return file_options_proto_enumTypes[2].Descriptor() } func (DirectionsType) Type() protoreflect.EnumType { return &file_options_proto_enumTypes[2] } func (x DirectionsType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use DirectionsType.Descriptor instead. func (DirectionsType) EnumDescriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{2} } type ShapeFormat int32 const ( ShapeFormat_polyline6 ShapeFormat = 0 ShapeFormat_polyline5 ShapeFormat = 1 ShapeFormat_geojson ShapeFormat = 2 ) // Enum value maps for ShapeFormat. var ( ShapeFormat_name = map[int32]string{ 0: "polyline6", 1: "polyline5", 2: "geojson", } ShapeFormat_value = map[string]int32{ "polyline6": 0, "polyline5": 1, "geojson": 2, } ) func (x ShapeFormat) Enum() *ShapeFormat { p := new(ShapeFormat) *p = x return p } func (x ShapeFormat) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (ShapeFormat) Descriptor() protoreflect.EnumDescriptor { return file_options_proto_enumTypes[3].Descriptor() } func (ShapeFormat) Type() protoreflect.EnumType { return &file_options_proto_enumTypes[3] } func (x ShapeFormat) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use ShapeFormat.Descriptor instead. func (ShapeFormat) EnumDescriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{3} } type Costing_Type int32 const ( Costing_none_ Costing_Type = 0 Costing_bicycle Costing_Type = 1 Costing_bus Costing_Type = 2 Costing_motor_scooter Costing_Type = 3 Costing_multimodal Costing_Type = 4 // turns into pedestrian + transit Costing_pedestrian Costing_Type = 5 Costing_transit Costing_Type = 6 Costing_truck Costing_Type = 7 Costing_motorcycle Costing_Type = 8 Costing_taxi Costing_Type = 9 Costing_auto_ Costing_Type = 10 Costing_bikeshare Costing_Type = 11 // turns into pedestrian + bike ) // Enum value maps for Costing_Type. var ( Costing_Type_name = map[int32]string{ 0: "none_", 1: "bicycle", 2: "bus", 3: "motor_scooter", 4: "multimodal", 5: "pedestrian", 6: "transit", 7: "truck", 8: "motorcycle", 9: "taxi", 10: "auto_", 11: "bikeshare", } Costing_Type_value = map[string]int32{ "none_": 0, "bicycle": 1, "bus": 2, "motor_scooter": 3, "multimodal": 4, "pedestrian": 5, "transit": 6, "truck": 7, "motorcycle": 8, "taxi": 9, "auto_": 10, "bikeshare": 11, } ) func (x Costing_Type) Enum() *Costing_Type { p := new(Costing_Type) *p = x return p } func (x Costing_Type) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Costing_Type) Descriptor() protoreflect.EnumDescriptor { return file_options_proto_enumTypes[4].Descriptor() } func (Costing_Type) Type() protoreflect.EnumType { return &file_options_proto_enumTypes[4] } func (x Costing_Type) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Costing_Type.Descriptor instead. func (Costing_Type) EnumDescriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{4, 0} } type Options_Units int32 const ( Options_kilometers Options_Units = 0 Options_miles Options_Units = 1 ) // Enum value maps for Options_Units. var ( Options_Units_name = map[int32]string{ 0: "kilometers", 1: "miles", } Options_Units_value = map[string]int32{ "kilometers": 0, "miles": 1, } ) func (x Options_Units) Enum() *Options_Units { p := new(Options_Units) *p = x return p } func (x Options_Units) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Options_Units) Descriptor() protoreflect.EnumDescriptor { return file_options_proto_enumTypes[5].Descriptor() } func (Options_Units) Type() protoreflect.EnumType { return &file_options_proto_enumTypes[5] } func (x Options_Units) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Options_Units.Descriptor instead. func (Options_Units) EnumDescriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{5, 0} } type Options_Format int32 const ( Options_json Options_Format = 0 Options_gpx Options_Format = 1 Options_osrm Options_Format = 2 Options_pbf Options_Format = 3 ) // Enum value maps for Options_Format. var ( Options_Format_name = map[int32]string{ 0: "json", 1: "gpx", 2: "osrm", 3: "pbf", } Options_Format_value = map[string]int32{ "json": 0, "gpx": 1, "osrm": 2, "pbf": 3, } ) func (x Options_Format) Enum() *Options_Format { p := new(Options_Format) *p = x return p } func (x Options_Format) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Options_Format) Descriptor() protoreflect.EnumDescriptor { return file_options_proto_enumTypes[6].Descriptor() } func (Options_Format) Type() protoreflect.EnumType { return &file_options_proto_enumTypes[6] } func (x Options_Format) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Options_Format.Descriptor instead. func (Options_Format) EnumDescriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{5, 1} } type Options_Action int32 const ( Options_no_action Options_Action = 0 Options_route Options_Action = 1 Options_locate Options_Action = 2 Options_sources_to_targets Options_Action = 3 Options_optimized_route Options_Action = 4 Options_isochrone Options_Action = 5 Options_trace_route Options_Action = 6 Options_trace_attributes Options_Action = 7 Options_height Options_Action = 8 Options_transit_available Options_Action = 9 Options_expansion Options_Action = 10 Options_centroid Options_Action = 11 Options_status Options_Action = 12 ) // Enum value maps for Options_Action. var ( Options_Action_name = map[int32]string{ 0: "no_action", 1: "route", 2: "locate", 3: "sources_to_targets", 4: "optimized_route", 5: "isochrone", 6: "trace_route", 7: "trace_attributes", 8: "height", 9: "transit_available", 10: "expansion", 11: "centroid", 12: "status", } Options_Action_value = map[string]int32{ "no_action": 0, "route": 1, "locate": 2, "sources_to_targets": 3, "optimized_route": 4, "isochrone": 5, "trace_route": 6, "trace_attributes": 7, "height": 8, "transit_available": 9, "expansion": 10, "centroid": 11, "status": 12, } ) func (x Options_Action) Enum() *Options_Action { p := new(Options_Action) *p = x return p } func (x Options_Action) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Options_Action) Descriptor() protoreflect.EnumDescriptor { return file_options_proto_enumTypes[7].Descriptor() } func (Options_Action) Type() protoreflect.EnumType { return &file_options_proto_enumTypes[7] } func (x Options_Action) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Options_Action.Descriptor instead. func (Options_Action) EnumDescriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{5, 2} } type Options_DateTimeType int32 const ( Options_no_time Options_DateTimeType = 0 Options_current Options_DateTimeType = 1 Options_depart_at Options_DateTimeType = 2 Options_arrive_by Options_DateTimeType = 3 Options_invariant Options_DateTimeType = 4 ) // Enum value maps for Options_DateTimeType. var ( Options_DateTimeType_name = map[int32]string{ 0: "no_time", 1: "current", 2: "depart_at", 3: "arrive_by", 4: "invariant", } Options_DateTimeType_value = map[string]int32{ "no_time": 0, "current": 1, "depart_at": 2, "arrive_by": 3, "invariant": 4, } ) func (x Options_DateTimeType) Enum() *Options_DateTimeType { p := new(Options_DateTimeType) *p = x return p } func (x Options_DateTimeType) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Options_DateTimeType) Descriptor() protoreflect.EnumDescriptor { return file_options_proto_enumTypes[8].Descriptor() } func (Options_DateTimeType) Type() protoreflect.EnumType { return &file_options_proto_enumTypes[8] } func (x Options_DateTimeType) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Options_DateTimeType.Descriptor instead. func (Options_DateTimeType) EnumDescriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{5, 3} } type Options_ExpansionProperties int32 const ( Options_costs Options_ExpansionProperties = 0 Options_durations Options_ExpansionProperties = 1 Options_distances Options_ExpansionProperties = 2 Options_statuses Options_ExpansionProperties = 3 Options_edge_ids Options_ExpansionProperties = 4 ) // Enum value maps for Options_ExpansionProperties. var ( Options_ExpansionProperties_name = map[int32]string{ 0: "costs", 1: "durations", 2: "distances", 3: "statuses", 4: "edge_ids", } Options_ExpansionProperties_value = map[string]int32{ "costs": 0, "durations": 1, "distances": 2, "statuses": 3, "edge_ids": 4, } ) func (x Options_ExpansionProperties) Enum() *Options_ExpansionProperties { p := new(Options_ExpansionProperties) *p = x return p } func (x Options_ExpansionProperties) String() string { return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) } func (Options_ExpansionProperties) Descriptor() protoreflect.EnumDescriptor { return file_options_proto_enumTypes[9].Descriptor() } func (Options_ExpansionProperties) Type() protoreflect.EnumType { return &file_options_proto_enumTypes[9] } func (x Options_ExpansionProperties) Number() protoreflect.EnumNumber { return protoreflect.EnumNumber(x) } // Deprecated: Use Options_ExpansionProperties.Descriptor instead. func (Options_ExpansionProperties) EnumDescriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{5, 4} } type Contour struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to HasTime: // *Contour_Time HasTime isContour_HasTime `protobuf_oneof:"has_time"` // Types that are assignable to HasColor: // *Contour_Color HasColor isContour_HasColor `protobuf_oneof:"has_color"` // Types that are assignable to HasDistance: // *Contour_Distance HasDistance isContour_HasDistance `protobuf_oneof:"has_distance"` } func (x *Contour) Reset() { *x = Contour{} if protoimpl.UnsafeEnabled { mi := &file_options_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Contour) String() string { return protoimpl.X.MessageStringOf(x) } func (*Contour) ProtoMessage() {} func (x *Contour) ProtoReflect() protoreflect.Message { mi := &file_options_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Contour.ProtoReflect.Descriptor instead. func (*Contour) Descriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{0} } func (m *Contour) GetHasTime() isContour_HasTime { if m != nil { return m.HasTime } return nil } func (x *Contour) GetTime() float32 { if x, ok := x.GetHasTime().(*Contour_Time); ok { return x.Time } return 0 } func (m *Contour) GetHasColor() isContour_HasColor { if m != nil { return m.HasColor } return nil } func (x *Contour) GetColor() string { if x, ok := x.GetHasColor().(*Contour_Color); ok { return x.Color } return "" } func (m *Contour) GetHasDistance() isContour_HasDistance { if m != nil { return m.HasDistance } return nil } func (x *Contour) GetDistance() float32 { if x, ok := x.GetHasDistance().(*Contour_Distance); ok { return x.Distance } return 0 } type isContour_HasTime interface { isContour_HasTime() } type Contour_Time struct { Time float32 `protobuf:"fixed32,1,opt,name=time,proto3,oneof"` // minutes } func (*Contour_Time) isContour_HasTime() {} type isContour_HasColor interface { isContour_HasColor() } type Contour_Color struct { Color string `protobuf:"bytes,2,opt,name=color,proto3,oneof"` // hex color with out # - for example: "ff0000" for red } func (*Contour_Color) isContour_HasColor() {} type isContour_HasDistance interface { isContour_HasDistance() } type Contour_Distance struct { Distance float32 `protobuf:"fixed32,3,opt,name=distance,proto3,oneof"` // kilometers } func (*Contour_Distance) isContour_HasDistance() {} type Ring struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Coords []*LatLng `protobuf:"bytes,1,rep,name=coords,proto3" json:"coords,omitempty"` } func (x *Ring) Reset() { *x = Ring{} if protoimpl.UnsafeEnabled { mi := &file_options_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Ring) String() string { return protoimpl.X.MessageStringOf(x) } func (*Ring) ProtoMessage() {} func (x *Ring) ProtoReflect() protoreflect.Message { mi := &file_options_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Ring.ProtoReflect.Descriptor instead. func (*Ring) Descriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{1} } func (x *Ring) GetCoords() []*LatLng { if x != nil { return x.Coords } return nil } // use this to select which top level fields should be present in the pbf output // the actions below are marked for each field that would provide a minimal response type PbfFieldSelector struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Options bool `protobuf:"varint,1,opt,name=options,proto3" json:"options,omitempty"` Trip bool `protobuf:"varint,2,opt,name=trip,proto3" json:"trip,omitempty"` // /trace_attributes Directions bool `protobuf:"varint,3,opt,name=directions,proto3" json:"directions,omitempty"` // /route /trace_route /optimized_route /centroid Status bool `protobuf:"varint,4,opt,name=status,proto3" json:"status,omitempty"` // /status } func (x *PbfFieldSelector) Reset() { *x = PbfFieldSelector{} if protoimpl.UnsafeEnabled { mi := &file_options_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *PbfFieldSelector) String() string { return protoimpl.X.MessageStringOf(x) } func (*PbfFieldSelector) ProtoMessage() {} func (x *PbfFieldSelector) ProtoReflect() protoreflect.Message { mi := &file_options_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use PbfFieldSelector.ProtoReflect.Descriptor instead. func (*PbfFieldSelector) Descriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{2} } func (x *PbfFieldSelector) GetOptions() bool { if x != nil { return x.Options } return false } func (x *PbfFieldSelector) GetTrip() bool { if x != nil { return x.Trip } return false } func (x *PbfFieldSelector) GetDirections() bool { if x != nil { return x.Directions } return false } func (x *PbfFieldSelector) GetStatus() bool { if x != nil { return x.Status } return false } type AvoidEdge struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to HasId: // *AvoidEdge_Id HasId isAvoidEdge_HasId `protobuf_oneof:"has_id"` // Types that are assignable to HasPercentAlong: // *AvoidEdge_PercentAlong HasPercentAlong isAvoidEdge_HasPercentAlong `protobuf_oneof:"has_percent_along"` } func (x *AvoidEdge) Reset() { *x = AvoidEdge{} if protoimpl.UnsafeEnabled { mi := &file_options_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *AvoidEdge) String() string { return protoimpl.X.MessageStringOf(x) } func (*AvoidEdge) ProtoMessage() {} func (x *AvoidEdge) ProtoReflect() protoreflect.Message { mi := &file_options_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use AvoidEdge.ProtoReflect.Descriptor instead. func (*AvoidEdge) Descriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{3} } func (m *AvoidEdge) GetHasId() isAvoidEdge_HasId { if m != nil { return m.HasId } return nil } func (x *AvoidEdge) GetId() uint64 { if x, ok := x.GetHasId().(*AvoidEdge_Id); ok { return x.Id } return 0 } func (m *AvoidEdge) GetHasPercentAlong() isAvoidEdge_HasPercentAlong { if m != nil { return m.HasPercentAlong } return nil } func (x *AvoidEdge) GetPercentAlong() float32 { if x, ok := x.GetHasPercentAlong().(*AvoidEdge_PercentAlong); ok { return x.PercentAlong } return 0 } type isAvoidEdge_HasId interface { isAvoidEdge_HasId() } type AvoidEdge_Id struct { Id uint64 `protobuf:"varint,1,opt,name=id,proto3,oneof"` } func (*AvoidEdge_Id) isAvoidEdge_HasId() {} type isAvoidEdge_HasPercentAlong interface { isAvoidEdge_HasPercentAlong() } type AvoidEdge_PercentAlong struct { PercentAlong float32 `protobuf:"fixed32,2,opt,name=percent_along,json=percentAlong,proto3,oneof"` } func (*AvoidEdge_PercentAlong) isAvoidEdge_HasPercentAlong() {} type Costing struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to HasOptions: // *Costing_Options_ HasOptions isCosting_HasOptions `protobuf_oneof:"has_options"` Type Costing_Type `protobuf:"varint,2,opt,name=type,proto3,enum=valhalla.Costing_Type" json:"type,omitempty"` // Types that are assignable to HasName: // *Costing_Name HasName isCosting_HasName `protobuf_oneof:"has_name"` // this is used internally only, setting it in your request will have no effect // // Types that are assignable to HasFilterClosures: // *Costing_FilterClosures HasFilterClosures isCosting_HasFilterClosures `protobuf_oneof:"has_filter_closures"` } func (x *Costing) Reset() { *x = Costing{} if protoimpl.UnsafeEnabled { mi := &file_options_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Costing) String() string { return protoimpl.X.MessageStringOf(x) } func (*Costing) ProtoMessage() {} func (x *Costing) ProtoReflect() protoreflect.Message { mi := &file_options_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Costing.ProtoReflect.Descriptor instead. func (*Costing) Descriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{4} } func (m *Costing) GetHasOptions() isCosting_HasOptions { if m != nil { return m.HasOptions } return nil } func (x *Costing) GetOptions() *Costing_Options { if x, ok := x.GetHasOptions().(*Costing_Options_); ok { return x.Options } return nil } func (x *Costing) GetType() Costing_Type { if x != nil { return x.Type } return Costing_none_ } func (m *Costing) GetHasName() isCosting_HasName { if m != nil { return m.HasName } return nil } func (x *Costing) GetName() string { if x, ok := x.GetHasName().(*Costing_Name); ok { return x.Name } return "" } func (m *Costing) GetHasFilterClosures() isCosting_HasFilterClosures { if m != nil { return m.HasFilterClosures } return nil } func (x *Costing) GetFilterClosures() bool { if x, ok := x.GetHasFilterClosures().(*Costing_FilterClosures); ok { return x.FilterClosures } return false } type isCosting_HasOptions interface { isCosting_HasOptions() } type Costing_Options_ struct { Options *Costing_Options `protobuf:"bytes,1,opt,name=options,proto3,oneof"` } func (*Costing_Options_) isCosting_HasOptions() {} type isCosting_HasName interface { isCosting_HasName() } type Costing_Name struct { Name string `protobuf:"bytes,3,opt,name=name,proto3,oneof"` } func (*Costing_Name) isCosting_HasName() {} type isCosting_HasFilterClosures interface { isCosting_HasFilterClosures() } type Costing_FilterClosures struct { FilterClosures bool `protobuf:"varint,4,opt,name=filter_closures,json=filterClosures,proto3,oneof"` } func (*Costing_FilterClosures) isCosting_HasFilterClosures() {} type Options struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Units Options_Units `protobuf:"varint,1,opt,name=units,proto3,enum=valhalla.Options_Units" json:"units,omitempty"` // kilometers or miles // Types that are assignable to HasLanguage: // *Options_Language HasLanguage isOptions_HasLanguage `protobuf_oneof:"has_language"` DirectionsType DirectionsType `protobuf:"varint,3,opt,name=directions_type,json=directionsType,proto3,enum=valhalla.DirectionsType" json:"directions_type,omitempty"` // Enable/disable narrative production [default = instructions] Format Options_Format `protobuf:"varint,4,opt,name=format,proto3,enum=valhalla.Options_Format" json:"format,omitempty"` // What the response format should be [default = json] // Types that are assignable to HasId: // *Options_Id HasId isOptions_HasId `protobuf_oneof:"has_id"` // Types that are assignable to HasJsonp: // *Options_Jsonp HasJsonp isOptions_HasJsonp `protobuf_oneof:"has_jsonp"` // Types that are assignable to HasEncodedPolyline: // *Options_EncodedPolyline HasEncodedPolyline isOptions_HasEncodedPolyline `protobuf_oneof:"has_encoded_polyline"` Action Options_Action `protobuf:"varint,8,opt,name=action,proto3,enum=valhalla.Options_Action" json:"action,omitempty"` // Action signifying the request type //deprecated = 9; // // Types that are assignable to HasRange: // *Options_Range HasRange isOptions_HasRange `protobuf_oneof:"has_range"` // verbose needs to stay oneof, so that matrix serializer can default to true // // Types that are assignable to HasVerbose: // *Options_Verbose HasVerbose isOptions_HasVerbose `protobuf_oneof:"has_verbose"` CostingType Costing_Type `protobuf:"varint,12,opt,name=costing_type,json=costingType,proto3,enum=valhalla.Costing_Type" json:"costing_type,omitempty"` // The main costing to use with the action, in multimodal this is the first costing to use Costings map[int32]*Costing `protobuf:"bytes,13,rep,name=costings,proto3" json:"costings,omitempty" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // A map of Costing.Type enum to its Costing object Locations []*Location `protobuf:"bytes,14,rep,name=locations,proto3" json:"locations,omitempty"` // Locations for /route /optimized /locate /isochrone ExcludeLocations []*Location `protobuf:"bytes,15,rep,name=exclude_locations,json=excludeLocations,proto3" json:"exclude_locations,omitempty"` // Avoids for any costing Sources []*Location `protobuf:"bytes,16,rep,name=sources,proto3" json:"sources,omitempty"` // Sources for /sources_to_targets Targets []*Location `protobuf:"bytes,17,rep,name=targets,proto3" json:"targets,omitempty"` // Targets for /sources_to_targets DateTimeType Options_DateTimeType `protobuf:"varint,18,opt,name=date_time_type,json=dateTimeType,proto3,enum=valhalla.Options_DateTimeType" json:"date_time_type,omitempty"` // Are you leaving now or then or arriving then // Types that are assignable to HasDateTime: // *Options_DateTime HasDateTime isOptions_HasDateTime `protobuf_oneof:"has_date_time"` Shape []*Location `protobuf:"bytes,20,rep,name=shape,proto3" json:"shape,omitempty"` // Raw shape for map matching // Types that are assignable to HasResampleDistance: // *Options_ResampleDistance HasResampleDistance isOptions_HasResampleDistance `protobuf_oneof:"has_resample_distance"` Contours []*Contour `protobuf:"bytes,22,rep,name=contours,proto3" json:"contours,omitempty"` // List of isochrone contours // Types that are assignable to HasPolygons: // *Options_Polygons HasPolygons isOptions_HasPolygons `protobuf_oneof:"has_polygons"` // Types that are assignable to HasDenoise: // *Options_Denoise HasDenoise isOptions_HasDenoise `protobuf_oneof:"has_denoise"` // Types that are assignable to HasGeneralize: // *Options_Generalize HasGeneralize isOptions_HasGeneralize `protobuf_oneof:"has_generalize"` // Types that are assignable to HasShowLocations: // *Options_ShowLocations HasShowLocations isOptions_HasShowLocations `protobuf_oneof:"has_show_locations"` Trace []*Location `protobuf:"bytes,27,rep,name=trace,proto3" json:"trace,omitempty"` // Trace points for map matching ShapeMatch ShapeMatch `protobuf:"varint,28,opt,name=shape_match,json=shapeMatch,proto3,enum=valhalla.ShapeMatch" json:"shape_match,omitempty"` // The matching algorithm based on the type of input [default = walk_or_snap] //deprecated = 29; // // Types that are assignable to HasGpsAccuracy: // *Options_GpsAccuracy HasGpsAccuracy isOptions_HasGpsAccuracy `protobuf_oneof:"has_gps_accuracy"` // Types that are assignable to HasSearchRadius: // *Options_SearchRadius HasSearchRadius isOptions_HasSearchRadius `protobuf_oneof:"has_search_radius"` // Types that are assignable to HasTurnPenaltyFactor: // *Options_TurnPenaltyFactor HasTurnPenaltyFactor isOptions_HasTurnPenaltyFactor `protobuf_oneof:"has_turn_penalty_factor"` FilterAction FilterAction `protobuf:"varint,33,opt,name=filter_action,json=filterAction,proto3,enum=valhalla.FilterAction" json:"filter_action,omitempty"` // The trace filter action - either exclude or include FilterAttributes []string `protobuf:"bytes,34,rep,name=filter_attributes,json=filterAttributes,proto3" json:"filter_attributes,omitempty"` // The filter list for trace attributes // Types that are assignable to HasBreakageDistance: // *Options_BreakageDistance HasBreakageDistance isOptions_HasBreakageDistance `protobuf_oneof:"has_breakage_distance"` // Types that are assignable to HasUseTimestamps: // *Options_UseTimestamps HasUseTimestamps isOptions_HasUseTimestamps `protobuf_oneof:"has_use_timestamps"` ShapeFormat ShapeFormat `protobuf:"varint,38,opt,name=shape_format,json=shapeFormat,proto3,enum=valhalla.ShapeFormat" json:"shape_format,omitempty"` // Shape format (defaults to polyline6 encoding) // Types that are assignable to HasAlternates: // *Options_Alternates HasAlternates isOptions_HasAlternates `protobuf_oneof:"has_alternates"` // Types that are assignable to HasInterpolationDistance: // *Options_InterpolationDistance HasInterpolationDistance isOptions_HasInterpolationDistance `protobuf_oneof:"has_interpolation_distance"` // Types that are assignable to HasGuidanceViews: // *Options_GuidanceViews HasGuidanceViews isOptions_HasGuidanceViews `protobuf_oneof:"has_guidance_views"` // 42 is reserved // // Types that are assignable to HasHeightPrecision: // *Options_HeightPrecision HasHeightPrecision isOptions_HasHeightPrecision `protobuf_oneof:"has_height_precision"` // Types that are assignable to HasRoundaboutExits: // *Options_RoundaboutExits HasRoundaboutExits isOptions_HasRoundaboutExits `protobuf_oneof:"has_roundabout_exits"` // Types that are assignable to HasLinearReferences: // *Options_LinearReferences HasLinearReferences isOptions_HasLinearReferences `protobuf_oneof:"has_linear_references"` Recostings []*Costing `protobuf:"bytes,46,rep,name=recostings,proto3" json:"recostings,omitempty"` // CostingType options to use to recost a path after it has been found ExcludePolygons []*Ring `protobuf:"bytes,47,rep,name=exclude_polygons,json=excludePolygons,proto3" json:"exclude_polygons,omitempty"` // Rings/polygons to exclude entire areas during path finding // Types that are assignable to HasPrioritizeBidirectional: // *Options_PrioritizeBidirectional HasPrioritizeBidirectional isOptions_HasPrioritizeBidirectional `protobuf_oneof:"has_prioritize_bidirectional"` // Types that are assignable to HasExpansionAction: // *Options_ExpansionAction HasExpansionAction isOptions_HasExpansionAction `protobuf_oneof:"has_expansion_action"` // Types that are assignable to HasSkipOpposites: // *Options_SkipOpposites HasSkipOpposites isOptions_HasSkipOpposites `protobuf_oneof:"has_skip_opposites"` ExpansionProperties []Options_ExpansionProperties `protobuf:"varint,51,rep,packed,name=expansion_properties,json=expansionProperties,proto3,enum=valhalla.Options_ExpansionProperties" json:"expansion_properties,omitempty"` // The array keys (ExpansionTypes enum) to return in the /expansions's GeoJSON "properties" PbfFieldSelector *PbfFieldSelector `protobuf:"bytes,52,opt,name=pbf_field_selector,json=pbfFieldSelector,proto3" json:"pbf_field_selector,omitempty"` // Which pbf fields to include in the pbf format response Reverse bool `protobuf:"varint,53,opt,name=reverse,proto3" json:"reverse,omitempty"` // should the isochrone expansion be done in the reverse direction, ignored for multimodal isochrones // Types that are assignable to HasMatrixLocations: // *Options_MatrixLocations HasMatrixLocations isOptions_HasMatrixLocations `protobuf_oneof:"has_matrix_locations"` } func (x *Options) Reset() { *x = Options{} if protoimpl.UnsafeEnabled { mi := &file_options_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Options) String() string { return protoimpl.X.MessageStringOf(x) } func (*Options) ProtoMessage() {} func (x *Options) ProtoReflect() protoreflect.Message { mi := &file_options_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Options.ProtoReflect.Descriptor instead. func (*Options) Descriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{5} } func (x *Options) GetUnits() Options_Units { if x != nil { return x.Units } return Options_kilometers } func (m *Options) GetHasLanguage() isOptions_HasLanguage { if m != nil { return m.HasLanguage } return nil } func (x *Options) GetLanguage() string { if x, ok := x.GetHasLanguage().(*Options_Language); ok { return x.Language } return "" } func (x *Options) GetDirectionsType() DirectionsType { if x != nil { return x.DirectionsType } return DirectionsType_instructions } func (x *Options) GetFormat() Options_Format { if x != nil { return x.Format } return Options_json } func (m *Options) GetHasId() isOptions_HasId { if m != nil { return m.HasId } return nil } func (x *Options) GetId() string { if x, ok := x.GetHasId().(*Options_Id); ok { return x.Id } return "" } func (m *Options) GetHasJsonp() isOptions_HasJsonp { if m != nil { return m.HasJsonp } return nil } func (x *Options) GetJsonp() string { if x, ok := x.GetHasJsonp().(*Options_Jsonp); ok { return x.Jsonp } return "" } func (m *Options) GetHasEncodedPolyline() isOptions_HasEncodedPolyline { if m != nil { return m.HasEncodedPolyline } return nil } func (x *Options) GetEncodedPolyline() string { if x, ok := x.GetHasEncodedPolyline().(*Options_EncodedPolyline); ok { return x.EncodedPolyline } return "" } func (x *Options) GetAction() Options_Action { if x != nil { return x.Action } return Options_no_action } func (m *Options) GetHasRange() isOptions_HasRange { if m != nil { return m.HasRange } return nil } func (x *Options) GetRange() bool { if x, ok := x.GetHasRange().(*Options_Range); ok { return x.Range } return false } func (m *Options) GetHasVerbose() isOptions_HasVerbose { if m != nil { return m.HasVerbose } return nil } func (x *Options) GetVerbose() bool { if x, ok := x.GetHasVerbose().(*Options_Verbose); ok { return x.Verbose } return false } func (x *Options) GetCostingType() Costing_Type { if x != nil { return x.CostingType } return Costing_none_ } func (x *Options) GetCostings() map[int32]*Costing { if x != nil { return x.Costings } return nil } func (x *Options) GetLocations() []*Location { if x != nil { return x.Locations } return nil } func (x *Options) GetExcludeLocations() []*Location { if x != nil { return x.ExcludeLocations } return nil } func (x *Options) GetSources() []*Location { if x != nil { return x.Sources } return nil } func (x *Options) GetTargets() []*Location { if x != nil { return x.Targets } return nil } func (x *Options) GetDateTimeType() Options_DateTimeType { if x != nil { return x.DateTimeType } return Options_no_time } func (m *Options) GetHasDateTime() isOptions_HasDateTime { if m != nil { return m.HasDateTime } return nil } func (x *Options) GetDateTime() string { if x, ok := x.GetHasDateTime().(*Options_DateTime); ok { return x.DateTime } return "" } func (x *Options) GetShape() []*Location { if x != nil { return x.Shape } return nil } func (m *Options) GetHasResampleDistance() isOptions_HasResampleDistance { if m != nil { return m.HasResampleDistance } return nil } func (x *Options) GetResampleDistance() float64 { if x, ok := x.GetHasResampleDistance().(*Options_ResampleDistance); ok { return x.ResampleDistance } return 0 } func (x *Options) GetContours() []*Contour { if x != nil { return x.Contours } return nil } func (m *Options) GetHasPolygons() isOptions_HasPolygons { if m != nil { return m.HasPolygons } return nil } func (x *Options) GetPolygons() bool { if x, ok := x.GetHasPolygons().(*Options_Polygons); ok { return x.Polygons } return false } func (m *Options) GetHasDenoise() isOptions_HasDenoise { if m != nil { return m.HasDenoise } return nil } func (x *Options) GetDenoise() float32 { if x, ok := x.GetHasDenoise().(*Options_Denoise); ok { return x.Denoise } return 0 } func (m *Options) GetHasGeneralize() isOptions_HasGeneralize { if m != nil { return m.HasGeneralize } return nil } func (x *Options) GetGeneralize() float32 { if x, ok := x.GetHasGeneralize().(*Options_Generalize); ok { return x.Generalize } return 0 } func (m *Options) GetHasShowLocations() isOptions_HasShowLocations { if m != nil { return m.HasShowLocations } return nil } func (x *Options) GetShowLocations() bool { if x, ok := x.GetHasShowLocations().(*Options_ShowLocations); ok { return x.ShowLocations } return false } func (x *Options) GetTrace() []*Location { if x != nil { return x.Trace } return nil } func (x *Options) GetShapeMatch() ShapeMatch { if x != nil { return x.ShapeMatch } return ShapeMatch_walk_or_snap } func (m *Options) GetHasGpsAccuracy() isOptions_HasGpsAccuracy { if m != nil { return m.HasGpsAccuracy } return nil } func (x *Options) GetGpsAccuracy() float32 { if x, ok := x.GetHasGpsAccuracy().(*Options_GpsAccuracy); ok { return x.GpsAccuracy } return 0 } func (m *Options) GetHasSearchRadius() isOptions_HasSearchRadius { if m != nil { return m.HasSearchRadius } return nil } func (x *Options) GetSearchRadius() float32 { if x, ok := x.GetHasSearchRadius().(*Options_SearchRadius); ok { return x.SearchRadius } return 0 } func (m *Options) GetHasTurnPenaltyFactor() isOptions_HasTurnPenaltyFactor { if m != nil { return m.HasTurnPenaltyFactor } return nil } func (x *Options) GetTurnPenaltyFactor() float32 { if x, ok := x.GetHasTurnPenaltyFactor().(*Options_TurnPenaltyFactor); ok { return x.TurnPenaltyFactor } return 0 } func (x *Options) GetFilterAction() FilterAction { if x != nil { return x.FilterAction } return FilterAction_no_action } func (x *Options) GetFilterAttributes() []string { if x != nil { return x.FilterAttributes } return nil } func (m *Options) GetHasBreakageDistance() isOptions_HasBreakageDistance { if m != nil { return m.HasBreakageDistance } return nil } func (x *Options) GetBreakageDistance() float32 { if x, ok := x.GetHasBreakageDistance().(*Options_BreakageDistance); ok { return x.BreakageDistance } return 0 } func (m *Options) GetHasUseTimestamps() isOptions_HasUseTimestamps { if m != nil { return m.HasUseTimestamps } return nil } func (x *Options) GetUseTimestamps() bool { if x, ok := x.GetHasUseTimestamps().(*Options_UseTimestamps); ok { return x.UseTimestamps } return false } func (x *Options) GetShapeFormat() ShapeFormat { if x != nil { return x.ShapeFormat } return ShapeFormat_polyline6 } func (m *Options) GetHasAlternates() isOptions_HasAlternates { if m != nil { return m.HasAlternates } return nil } func (x *Options) GetAlternates() uint32 { if x, ok := x.GetHasAlternates().(*Options_Alternates); ok { return x.Alternates } return 0 } func (m *Options) GetHasInterpolationDistance() isOptions_HasInterpolationDistance { if m != nil { return m.HasInterpolationDistance } return nil } func (x *Options) GetInterpolationDistance() float32 { if x, ok := x.GetHasInterpolationDistance().(*Options_InterpolationDistance); ok { return x.InterpolationDistance } return 0 } func (m *Options) GetHasGuidanceViews() isOptions_HasGuidanceViews { if m != nil { return m.HasGuidanceViews } return nil } func (x *Options) GetGuidanceViews() bool { if x, ok := x.GetHasGuidanceViews().(*Options_GuidanceViews); ok { return x.GuidanceViews } return false } func (m *Options) GetHasHeightPrecision() isOptions_HasHeightPrecision { if m != nil { return m.HasHeightPrecision } return nil } func (x *Options) GetHeightPrecision() uint32 { if x, ok := x.GetHasHeightPrecision().(*Options_HeightPrecision); ok { return x.HeightPrecision } return 0 } func (m *Options) GetHasRoundaboutExits() isOptions_HasRoundaboutExits { if m != nil { return m.HasRoundaboutExits } return nil } func (x *Options) GetRoundaboutExits() bool { if x, ok := x.GetHasRoundaboutExits().(*Options_RoundaboutExits); ok { return x.RoundaboutExits } return false } func (m *Options) GetHasLinearReferences() isOptions_HasLinearReferences { if m != nil { return m.HasLinearReferences } return nil } func (x *Options) GetLinearReferences() bool { if x, ok := x.GetHasLinearReferences().(*Options_LinearReferences); ok { return x.LinearReferences } return false } func (x *Options) GetRecostings() []*Costing { if x != nil { return x.Recostings } return nil } func (x *Options) GetExcludePolygons() []*Ring { if x != nil { return x.ExcludePolygons } return nil } func (m *Options) GetHasPrioritizeBidirectional() isOptions_HasPrioritizeBidirectional { if m != nil { return m.HasPrioritizeBidirectional } return nil } func (x *Options) GetPrioritizeBidirectional() bool { if x, ok := x.GetHasPrioritizeBidirectional().(*Options_PrioritizeBidirectional); ok { return x.PrioritizeBidirectional } return false } func (m *Options) GetHasExpansionAction() isOptions_HasExpansionAction { if m != nil { return m.HasExpansionAction } return nil } func (x *Options) GetExpansionAction() Options_Action { if x, ok := x.GetHasExpansionAction().(*Options_ExpansionAction); ok { return x.ExpansionAction } return Options_no_action } func (m *Options) GetHasSkipOpposites() isOptions_HasSkipOpposites { if m != nil { return m.HasSkipOpposites } return nil } func (x *Options) GetSkipOpposites() bool { if x, ok := x.GetHasSkipOpposites().(*Options_SkipOpposites); ok { return x.SkipOpposites } return false } func (x *Options) GetExpansionProperties() []Options_ExpansionProperties { if x != nil { return x.ExpansionProperties } return nil } func (x *Options) GetPbfFieldSelector() *PbfFieldSelector { if x != nil { return x.PbfFieldSelector } return nil } func (x *Options) GetReverse() bool { if x != nil { return x.Reverse } return false } func (m *Options) GetHasMatrixLocations() isOptions_HasMatrixLocations { if m != nil { return m.HasMatrixLocations } return nil } func (x *Options) GetMatrixLocations() uint32 { if x, ok := x.GetHasMatrixLocations().(*Options_MatrixLocations); ok { return x.MatrixLocations } return 0 } type isOptions_HasLanguage interface { isOptions_HasLanguage() } type Options_Language struct { Language string `protobuf:"bytes,2,opt,name=language,proto3,oneof"` // Based on IETF BCP 47 language tag string [default = "en-US"] } func (*Options_Language) isOptions_HasLanguage() {} type isOptions_HasId interface { isOptions_HasId() } type Options_Id struct { Id string `protobuf:"bytes,5,opt,name=id,proto3,oneof"` // id for the request } func (*Options_Id) isOptions_HasId() {} type isOptions_HasJsonp interface { isOptions_HasJsonp() } type Options_Jsonp struct { Jsonp string `protobuf:"bytes,6,opt,name=jsonp,proto3,oneof"` // javascript callback for the request } func (*Options_Jsonp) isOptions_HasJsonp() {} type isOptions_HasEncodedPolyline interface { isOptions_HasEncodedPolyline() } type Options_EncodedPolyline struct { EncodedPolyline string `protobuf:"bytes,7,opt,name=encoded_polyline,json=encodedPolyline,proto3,oneof"` // polyline 6 encoded shape used in /height /trace_* } func (*Options_EncodedPolyline) isOptions_HasEncodedPolyline() {} type isOptions_HasRange interface { isOptions_HasRange() } type Options_Range struct { Range bool `protobuf:"varint,10,opt,name=range,proto3,oneof"` // Used in /height if the range between points should be serialized [default = false] } func (*Options_Range) isOptions_HasRange() {} type isOptions_HasVerbose interface { isOptions_HasVerbose() } type Options_Verbose struct { Verbose bool `protobuf:"varint,11,opt,name=verbose,proto3,oneof"` // Used in /locate & /status request to give back extensive information [default = false] } func (*Options_Verbose) isOptions_HasVerbose() {} type isOptions_HasDateTime interface { isOptions_HasDateTime() } type Options_DateTime struct { DateTime string `protobuf:"bytes,19,opt,name=date_time,json=dateTime,proto3,oneof"` // And what day and time } func (*Options_DateTime) isOptions_HasDateTime() {} type isOptions_HasResampleDistance interface { isOptions_HasResampleDistance() } type Options_ResampleDistance struct { ResampleDistance float64 `protobuf:"fixed64,21,opt,name=resample_distance,json=resampleDistance,proto3,oneof"` // Resampling shape at regular intervals } func (*Options_ResampleDistance) isOptions_HasResampleDistance() {} type isOptions_HasPolygons interface { isOptions_HasPolygons() } type Options_Polygons struct { Polygons bool `protobuf:"varint,23,opt,name=polygons,proto3,oneof"` // Boolean value to determine whether to return geojson polygons or linestrings as the contours } func (*Options_Polygons) isOptions_HasPolygons() {} type isOptions_HasDenoise interface { isOptions_HasDenoise() } type Options_Denoise struct { Denoise float32 `protobuf:"fixed32,24,opt,name=denoise,proto3,oneof"` // A floating point value from 0 to 1 which can be used to remove smaller contours (default 1.0) } func (*Options_Denoise) isOptions_HasDenoise() {} type isOptions_HasGeneralize interface { isOptions_HasGeneralize() } type Options_Generalize struct { Generalize float32 `protobuf:"fixed32,25,opt,name=generalize,proto3,oneof"` // Meters used as the tolerance for Douglas-Peucker generalization } func (*Options_Generalize) isOptions_HasGeneralize() {} type isOptions_HasShowLocations interface { isOptions_HasShowLocations() } type Options_ShowLocations struct { ShowLocations bool `protobuf:"varint,26,opt,name=show_locations,json=showLocations,proto3,oneof"` // Add original locations to the isochrone geojson response } func (*Options_ShowLocations) isOptions_HasShowLocations() {} type isOptions_HasGpsAccuracy interface { isOptions_HasGpsAccuracy() } type Options_GpsAccuracy struct { GpsAccuracy float32 `protobuf:"fixed32,30,opt,name=gps_accuracy,json=gpsAccuracy,proto3,oneof"` // The gps accuracy associated with the supplied trace points } func (*Options_GpsAccuracy) isOptions_HasGpsAccuracy() {} type isOptions_HasSearchRadius interface { isOptions_HasSearchRadius() } type Options_SearchRadius struct { SearchRadius float32 `protobuf:"fixed32,31,opt,name=search_radius,json=searchRadius,proto3,oneof"` // The search radius associated with the supplied trace points } func (*Options_SearchRadius) isOptions_HasSearchRadius() {} type isOptions_HasTurnPenaltyFactor interface { isOptions_HasTurnPenaltyFactor() } type Options_TurnPenaltyFactor struct { TurnPenaltyFactor float32 `protobuf:"fixed32,32,opt,name=turn_penalty_factor,json=turnPenaltyFactor,proto3,oneof"` // The turn penalty factor associated with the supplied trace points } func (*Options_TurnPenaltyFactor) isOptions_HasTurnPenaltyFactor() {} type isOptions_HasBreakageDistance interface { isOptions_HasBreakageDistance() } type Options_BreakageDistance struct { BreakageDistance float32 `protobuf:"fixed32,36,opt,name=breakage_distance,json=breakageDistance,proto3,oneof"` // Map-matching breaking distance (distance between GPS trace points) } func (*Options_BreakageDistance) isOptions_HasBreakageDistance() {} type isOptions_HasUseTimestamps interface { isOptions_HasUseTimestamps() } type Options_UseTimestamps struct { UseTimestamps bool `protobuf:"varint,37,opt,name=use_timestamps,json=useTimestamps,proto3,oneof"` // Use timestamps to compute elapsed time for trace_route and trace_attributes [default = false] } func (*Options_UseTimestamps) isOptions_HasUseTimestamps() {} type isOptions_HasAlternates interface { isOptions_HasAlternates() } type Options_Alternates struct { Alternates uint32 `protobuf:"varint,39,opt,name=alternates,proto3,oneof"` // Maximum number of alternate routes that can be returned } func (*Options_Alternates) isOptions_HasAlternates() {} type isOptions_HasInterpolationDistance interface { isOptions_HasInterpolationDistance() } type Options_InterpolationDistance struct { InterpolationDistance float32 `protobuf:"fixed32,40,opt,name=interpolation_distance,json=interpolationDistance,proto3,oneof"` // Map-matching interpolation distance beyond which trace points are merged } func (*Options_InterpolationDistance) isOptions_HasInterpolationDistance() {} type isOptions_HasGuidanceViews interface { isOptions_HasGuidanceViews() } type Options_GuidanceViews struct { GuidanceViews bool `protobuf:"varint,41,opt,name=guidance_views,json=guidanceViews,proto3,oneof"` // Whether to return guidance_views in the response } func (*Options_GuidanceViews) isOptions_HasGuidanceViews() {} type isOptions_HasHeightPrecision interface { isOptions_HasHeightPrecision() } type Options_HeightPrecision struct { HeightPrecision uint32 `protobuf:"varint,43,opt,name=height_precision,json=heightPrecision,proto3,oneof"` // Number of digits precision for heights returned [default = 0] } func (*Options_HeightPrecision) isOptions_HasHeightPrecision() {} type isOptions_HasRoundaboutExits interface { isOptions_HasRoundaboutExits() } type Options_RoundaboutExits struct { RoundaboutExits bool `protobuf:"varint,44,opt,name=roundabout_exits,json=roundaboutExits,proto3,oneof"` // Whether to announce roundabout exit maneuvers [default = true] } func (*Options_RoundaboutExits) isOptions_HasRoundaboutExits() {} type isOptions_HasLinearReferences interface { isOptions_HasLinearReferences() } type Options_LinearReferences struct { LinearReferences bool `protobuf:"varint,45,opt,name=linear_references,json=linearReferences,proto3,oneof"` // Include linear references for graph edges returned in certain responses. } func (*Options_LinearReferences) isOptions_HasLinearReferences() {} type isOptions_HasPrioritizeBidirectional interface { isOptions_HasPrioritizeBidirectional() } type Options_PrioritizeBidirectional struct { PrioritizeBidirectional bool `protobuf:"varint,48,opt,name=prioritize_bidirectional,json=prioritizeBidirectional,proto3,oneof"` // Prioritize bidirectional a* when depart_at date_time.type is specified [default = false] } func (*Options_PrioritizeBidirectional) isOptions_HasPrioritizeBidirectional() {} type isOptions_HasExpansionAction interface { isOptions_HasExpansionAction() } type Options_ExpansionAction struct { ExpansionAction Options_Action `protobuf:"varint,49,opt,name=expansion_action,json=expansionAction,proto3,enum=valhalla.Options_Action,oneof"` // Meta action for /expansion endpoint } func (*Options_ExpansionAction) isOptions_HasExpansionAction() {} type isOptions_HasSkipOpposites interface { isOptions_HasSkipOpposites() } type Options_SkipOpposites struct { SkipOpposites bool `protobuf:"varint,50,opt,name=skip_opposites,json=skipOpposites,proto3,oneof"` // Whether to return opposite edges encountered during expansion } func (*Options_SkipOpposites) isOptions_HasSkipOpposites() {} type isOptions_HasMatrixLocations interface { isOptions_HasMatrixLocations() } type Options_MatrixLocations struct { MatrixLocations uint32 `protobuf:"varint,54,opt,name=matrix_locations,json=matrixLocations,proto3,oneof"` // a one to many or many to one time distance matrix. Does not affect } func (*Options_MatrixLocations) isOptions_HasMatrixLocations() {} type Costing_Options struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // Types that are assignable to HasManeuverPenalty: // *Costing_Options_ManeuverPenalty HasManeuverPenalty isCosting_Options_HasManeuverPenalty `protobuf_oneof:"has_maneuver_penalty"` // Types that are assignable to HasDestinationOnlyPenalty: // *Costing_Options_DestinationOnlyPenalty HasDestinationOnlyPenalty isCosting_Options_HasDestinationOnlyPenalty `protobuf_oneof:"has_destination_only_penalty"` // Types that are assignable to HasGateCost: // *Costing_Options_GateCost HasGateCost isCosting_Options_HasGateCost `protobuf_oneof:"has_gate_cost"` // Types that are assignable to HasGatePenalty: // *Costing_Options_GatePenalty HasGatePenalty isCosting_Options_HasGatePenalty `protobuf_oneof:"has_gate_penalty"` // Types that are assignable to HasTollBoothCost: // *Costing_Options_TollBoothCost HasTollBoothCost isCosting_Options_HasTollBoothCost `protobuf_oneof:"has_toll_booth_cost"` // Types that are assignable to HasTollBoothPenalty: // *Costing_Options_TollBoothPenalty HasTollBoothPenalty isCosting_Options_HasTollBoothPenalty `protobuf_oneof:"has_toll_booth_penalty"` // Types that are assignable to HasAlleyPenalty: // *Costing_Options_AlleyPenalty HasAlleyPenalty isCosting_Options_HasAlleyPenalty `protobuf_oneof:"has_alley_penalty"` // Types that are assignable to HasCountryCrossingCost: // *Costing_Options_CountryCrossingCost HasCountryCrossingCost isCosting_Options_HasCountryCrossingCost `protobuf_oneof:"has_country_crossing_cost"` // Types that are assignable to HasCountryCrossingPenalty: // *Costing_Options_CountryCrossingPenalty HasCountryCrossingPenalty isCosting_Options_HasCountryCrossingPenalty `protobuf_oneof:"has_country_crossing_penalty"` // Types that are assignable to HasFerryCost: // *Costing_Options_FerryCost HasFerryCost isCosting_Options_HasFerryCost `protobuf_oneof:"has_ferry_cost"` // Types that are assignable to HasAvoidBadSurfaces: // *Costing_Options_AvoidBadSurfaces HasAvoidBadSurfaces isCosting_Options_HasAvoidBadSurfaces `protobuf_oneof:"has_avoid_bad_surfaces"` // Types that are assignable to HasUseFerry: // *Costing_Options_UseFerry HasUseFerry isCosting_Options_HasUseFerry `protobuf_oneof:"has_use_ferry"` // Types that are assignable to HasUseHighways: // *Costing_Options_UseHighways HasUseHighways isCosting_Options_HasUseHighways `protobuf_oneof:"has_use_highways"` // Types that are assignable to HasUseTolls: // *Costing_Options_UseTolls HasUseTolls isCosting_Options_HasUseTolls `protobuf_oneof:"has_use_tolls"` // Types that are assignable to HasUseRoads: // *Costing_Options_UseRoads HasUseRoads isCosting_Options_HasUseRoads `protobuf_oneof:"has_use_roads"` // Types that are assignable to HasMaxDistance: // *Costing_Options_MaxDistance HasMaxDistance isCosting_Options_HasMaxDistance `protobuf_oneof:"has_max_distance"` // Types that are assignable to HasWalkingSpeed: // *Costing_Options_WalkingSpeed HasWalkingSpeed isCosting_Options_HasWalkingSpeed `protobuf_oneof:"has_walking_speed"` // Types that are assignable to HasStepPenalty: // *Costing_Options_StepPenalty HasStepPenalty isCosting_Options_HasStepPenalty `protobuf_oneof:"has_step_penalty"` // Types that are assignable to HasMaxGrade: // *Costing_Options_MaxGrade HasMaxGrade isCosting_Options_HasMaxGrade `protobuf_oneof:"has_max_grade"` // Types that are assignable to HasMaxHikingDifficulty: // *Costing_Options_MaxHikingDifficulty HasMaxHikingDifficulty isCosting_Options_HasMaxHikingDifficulty `protobuf_oneof:"has_max_hiking_difficulty"` // Types that are assignable to HasModeFactor: // *Costing_Options_ModeFactor HasModeFactor isCosting_Options_HasModeFactor `protobuf_oneof:"has_mode_factor"` // Types that are assignable to HasWalkwayFactor: // *Costing_Options_WalkwayFactor HasWalkwayFactor isCosting_Options_HasWalkwayFactor `protobuf_oneof:"has_walkway_factor"` // Types that are assignable to HasSidewalkFactor: // *Costing_Options_SidewalkFactor HasSidewalkFactor isCosting_Options_HasSidewalkFactor `protobuf_oneof:"has_sidewalk_factor"` // Types that are assignable to HasAlleyFactor: // *Costing_Options_AlleyFactor HasAlleyFactor isCosting_Options_HasAlleyFactor `protobuf_oneof:"has_alley_factor"` // Types that are assignable to HasDrivewayFactor: // *Costing_Options_DrivewayFactor HasDrivewayFactor isCosting_Options_HasDrivewayFactor `protobuf_oneof:"has_driveway_factor"` // Types that are assignable to HasDrivewayPenalty: // *Costing_Options_DrivewayPenalty HasDrivewayPenalty isCosting_Options_HasDrivewayPenalty `protobuf_oneof:"has_driveway_penalty"` // Types that are assignable to HasTransitStartEndMaxDistance: // *Costing_Options_TransitStartEndMaxDistance HasTransitStartEndMaxDistance isCosting_Options_HasTransitStartEndMaxDistance `protobuf_oneof:"has_transit_start_end_max_distance"` // Types that are assignable to HasTransitTransferMaxDistance: // *Costing_Options_TransitTransferMaxDistance HasTransitTransferMaxDistance isCosting_Options_HasTransitTransferMaxDistance `protobuf_oneof:"has_transit_transfer_max_distance"` // Types that are assignable to HasTransportType: // *Costing_Options_TransportType HasTransportType isCosting_Options_HasTransportType `protobuf_oneof:"has_transport_type"` // Types that are assignable to HasTopSpeed: // *Costing_Options_TopSpeed HasTopSpeed isCosting_Options_HasTopSpeed `protobuf_oneof:"has_top_speed"` // Types that are assignable to HasUseHills: // *Costing_Options_UseHills HasUseHills isCosting_Options_HasUseHills `protobuf_oneof:"has_use_hills"` // Types that are assignable to HasUsePrimary: // *Costing_Options_UsePrimary HasUsePrimary isCosting_Options_HasUsePrimary `protobuf_oneof:"has_use_primary"` // Types that are assignable to HasUseTrails: // *Costing_Options_UseTrails HasUseTrails isCosting_Options_HasUseTrails `protobuf_oneof:"has_use_trails"` // Types that are assignable to HasLowClassPenalty: // *Costing_Options_LowClassPenalty HasLowClassPenalty isCosting_Options_HasLowClassPenalty `protobuf_oneof:"has_low_class_penalty"` // Types that are assignable to HasHazmat: // *Costing_Options_Hazmat HasHazmat isCosting_Options_HasHazmat `protobuf_oneof:"has_hazmat"` // Types that are assignable to HasWeight: // *Costing_Options_Weight HasWeight isCosting_Options_HasWeight `protobuf_oneof:"has_weight"` // Types that are assignable to HasAxleLoad: // *Costing_Options_AxleLoad HasAxleLoad isCosting_Options_HasAxleLoad `protobuf_oneof:"has_axle_load"` // Types that are assignable to HasHeight: // *Costing_Options_Height HasHeight isCosting_Options_HasHeight `protobuf_oneof:"has_height"` // Types that are assignable to HasWidth: // *Costing_Options_Width HasWidth isCosting_Options_HasWidth `protobuf_oneof:"has_width"` // Types that are assignable to HasLength: // *Costing_Options_Length HasLength isCosting_Options_HasLength `protobuf_oneof:"has_length"` // Types that are assignable to HasCyclingSpeed: // *Costing_Options_CyclingSpeed HasCyclingSpeed isCosting_Options_HasCyclingSpeed `protobuf_oneof:"has_cycling_speed"` // Types that are assignable to HasWheelchair: // *Costing_Options_Wheelchair HasWheelchair isCosting_Options_HasWheelchair `protobuf_oneof:"has_wheelchair"` // Types that are assignable to HasBicycle: // *Costing_Options_Bicycle HasBicycle isCosting_Options_HasBicycle `protobuf_oneof:"has_bicycle"` // Types that are assignable to HasUseBus: // *Costing_Options_UseBus HasUseBus isCosting_Options_HasUseBus `protobuf_oneof:"has_use_bus"` // Types that are assignable to HasUseRail: // *Costing_Options_UseRail HasUseRail isCosting_Options_HasUseRail `protobuf_oneof:"has_use_rail"` // Types that are assignable to HasUseTransfers: // *Costing_Options_UseTransfers HasUseTransfers isCosting_Options_HasUseTransfers `protobuf_oneof:"has_use_transfers"` // Types that are assignable to HasTransferCost: // *Costing_Options_TransferCost HasTransferCost isCosting_Options_HasTransferCost `protobuf_oneof:"has_transfer_cost"` // Types that are assignable to HasTransferPenalty: // *Costing_Options_TransferPenalty HasTransferPenalty isCosting_Options_HasTransferPenalty `protobuf_oneof:"has_transfer_penalty"` FilterStopAction FilterAction `protobuf:"varint,49,opt,name=filter_stop_action,json=filterStopAction,proto3,enum=valhalla.FilterAction" json:"filter_stop_action,omitempty"` FilterStopIds []string `protobuf:"bytes,50,rep,name=filter_stop_ids,json=filterStopIds,proto3" json:"filter_stop_ids,omitempty"` FilterOperatorAction FilterAction `protobuf:"varint,51,opt,name=filter_operator_action,json=filterOperatorAction,proto3,enum=valhalla.FilterAction" json:"filter_operator_action,omitempty"` FilterOperatorIds []string `protobuf:"bytes,52,rep,name=filter_operator_ids,json=filterOperatorIds,proto3" json:"filter_operator_ids,omitempty"` FilterRouteAction FilterAction `protobuf:"varint,53,opt,name=filter_route_action,json=filterRouteAction,proto3,enum=valhalla.FilterAction" json:"filter_route_action,omitempty"` FilterRouteIds []string `protobuf:"bytes,54,rep,name=filter_route_ids,json=filterRouteIds,proto3" json:"filter_route_ids,omitempty"` // Types that are assignable to HasFlowMask: // *Costing_Options_FlowMask HasFlowMask isCosting_Options_HasFlowMask `protobuf_oneof:"has_flow_mask"` // Types that are assignable to HasBikeShareCost: // *Costing_Options_BikeShareCost HasBikeShareCost isCosting_Options_HasBikeShareCost `protobuf_oneof:"has_bike_share_cost"` // Types that are assignable to HasBikeSharePenalty: // *Costing_Options_BikeSharePenalty HasBikeSharePenalty isCosting_Options_HasBikeSharePenalty `protobuf_oneof:"has_bike_share_penalty"` // Types that are assignable to HasRailFerryCost: // *Costing_Options_RailFerryCost HasRailFerryCost isCosting_Options_HasRailFerryCost `protobuf_oneof:"has_rail_ferry_cost"` // Types that are assignable to HasUseRailFerry: // *Costing_Options_UseRailFerry HasUseRailFerry isCosting_Options_HasUseRailFerry `protobuf_oneof:"has_use_rail_ferry"` // Types that are assignable to HasIgnoreRestrictions: // *Costing_Options_IgnoreRestrictions HasIgnoreRestrictions isCosting_Options_HasIgnoreRestrictions `protobuf_oneof:"has_ignore_restrictions"` // Types that are assignable to HasIgnoreOneways: // *Costing_Options_IgnoreOneways HasIgnoreOneways isCosting_Options_HasIgnoreOneways `protobuf_oneof:"has_ignore_oneways"` // Types that are assignable to HasIgnoreAccess: // *Costing_Options_IgnoreAccess HasIgnoreAccess isCosting_Options_HasIgnoreAccess `protobuf_oneof:"has_ignore_access"` // Types that are assignable to HasIgnoreClosures: // *Costing_Options_IgnoreClosures HasIgnoreClosures isCosting_Options_HasIgnoreClosures `protobuf_oneof:"has_ignore_closures"` // Types that are assignable to HasShortest: // *Costing_Options_Shortest HasShortest isCosting_Options_HasShortest `protobuf_oneof:"has_shortest"` // Types that are assignable to HasServicePenalty: // *Costing_Options_ServicePenalty HasServicePenalty isCosting_Options_HasServicePenalty `protobuf_oneof:"has_service_penalty"` // Types that are assignable to HasUseTracks: // *Costing_Options_UseTracks HasUseTracks isCosting_Options_HasUseTracks `protobuf_oneof:"has_use_tracks"` // Types that are assignable to HasUseDistance: // *Costing_Options_UseDistance HasUseDistance isCosting_Options_HasUseDistance `protobuf_oneof:"has_use_distance"` // Types that are assignable to HasUseLivingStreets: // *Costing_Options_UseLivingStreets HasUseLivingStreets isCosting_Options_HasUseLivingStreets `protobuf_oneof:"has_use_living_streets"` // Types that are assignable to HasServiceFactor: // *Costing_Options_ServiceFactor HasServiceFactor isCosting_Options_HasServiceFactor `protobuf_oneof:"has_service_factor"` // Types that are assignable to HasClosureFactor: // *Costing_Options_ClosureFactor HasClosureFactor isCosting_Options_HasClosureFactor `protobuf_oneof:"has_closure_factor"` // Types that are assignable to HasPrivateAccessPenalty: // *Costing_Options_PrivateAccessPenalty HasPrivateAccessPenalty isCosting_Options_HasPrivateAccessPenalty `protobuf_oneof:"has_private_access_penalty"` // Types that are assignable to HasExcludeUnpaved: // *Costing_Options_ExcludeUnpaved HasExcludeUnpaved isCosting_Options_HasExcludeUnpaved `protobuf_oneof:"has_exclude_unpaved"` // Types that are assignable to HasIncludeHot: // *Costing_Options_IncludeHot HasIncludeHot isCosting_Options_HasIncludeHot `protobuf_oneof:"has_include_hot"` // Types that are assignable to HasIncludeHov2: // *Costing_Options_IncludeHov2 HasIncludeHov2 isCosting_Options_HasIncludeHov2 `protobuf_oneof:"has_include_hov2"` // Types that are assignable to HasIncludeHov3: // *Costing_Options_IncludeHov3 HasIncludeHov3 isCosting_Options_HasIncludeHov3 `protobuf_oneof:"has_include_hov3"` // Types that are assignable to HasExcludeCashOnlyTolls: // *Costing_Options_ExcludeCashOnlyTolls HasExcludeCashOnlyTolls isCosting_Options_HasExcludeCashOnlyTolls `protobuf_oneof:"has_exclude_cash_only_tolls"` // Types that are assignable to HasRestrictionProbability: // *Costing_Options_RestrictionProbability HasRestrictionProbability isCosting_Options_HasRestrictionProbability `protobuf_oneof:"has_restriction_probability"` ExcludeEdges []*AvoidEdge `protobuf:"bytes,78,rep,name=exclude_edges,json=excludeEdges,proto3" json:"exclude_edges,omitempty"` // Types that are assignable to HasElevatorPenalty: // *Costing_Options_ElevatorPenalty HasElevatorPenalty isCosting_Options_HasElevatorPenalty `protobuf_oneof:"has_elevator_penalty"` FixedSpeed uint32 `protobuf:"varint,80,opt,name=fixed_speed,json=fixedSpeed,proto3" json:"fixed_speed,omitempty"` AxleCount uint32 `protobuf:"varint,81,opt,name=axle_count,json=axleCount,proto3" json:"axle_count,omitempty"` UseLit float32 `protobuf:"fixed32,82,opt,name=use_lit,json=useLit,proto3" json:"use_lit,omitempty"` } func (x *Costing_Options) Reset() { *x = Costing_Options{} if protoimpl.UnsafeEnabled { mi := &file_options_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Costing_Options) String() string { return protoimpl.X.MessageStringOf(x) } func (*Costing_Options) ProtoMessage() {} func (x *Costing_Options) ProtoReflect() protoreflect.Message { mi := &file_options_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Costing_Options.ProtoReflect.Descriptor instead. func (*Costing_Options) Descriptor() ([]byte, []int) { return file_options_proto_rawDescGZIP(), []int{4, 0} } func (m *Costing_Options) GetHasManeuverPenalty() isCosting_Options_HasManeuverPenalty { if m != nil { return m.HasManeuverPenalty } return nil } func (x *Costing_Options) GetManeuverPenalty() float32 { if x, ok := x.GetHasManeuverPenalty().(*Costing_Options_ManeuverPenalty); ok { return x.ManeuverPenalty } return 0 } func (m *Costing_Options) GetHasDestinationOnlyPenalty() isCosting_Options_HasDestinationOnlyPenalty { if m != nil { return m.HasDestinationOnlyPenalty } return nil } func (x *Costing_Options) GetDestinationOnlyPenalty() float32 { if x, ok := x.GetHasDestinationOnlyPenalty().(*Costing_Options_DestinationOnlyPenalty); ok { return x.DestinationOnlyPenalty } return 0 } func (m *Costing_Options) GetHasGateCost() isCosting_Options_HasGateCost { if m != nil { return m.HasGateCost } return nil } func (x *Costing_Options) GetGateCost() float32 { if x, ok := x.GetHasGateCost().(*Costing_Options_GateCost); ok { return x.GateCost } return 0 } func (m *Costing_Options) GetHasGatePenalty() isCosting_Options_HasGatePenalty { if m != nil { return m.HasGatePenalty } return nil } func (x *Costing_Options) GetGatePenalty() float32 { if x, ok := x.GetHasGatePenalty().(*Costing_Options_GatePenalty); ok { return x.GatePenalty } return 0 } func (m *Costing_Options) GetHasTollBoothCost() isCosting_Options_HasTollBoothCost { if m != nil { return m.HasTollBoothCost } return nil } func (x *Costing_Options) GetTollBoothCost() float32 { if x, ok := x.GetHasTollBoothCost().(*Costing_Options_TollBoothCost); ok { return x.TollBoothCost } return 0 } func (m *Costing_Options) GetHasTollBoothPenalty() isCosting_Options_HasTollBoothPenalty { if m != nil { return m.HasTollBoothPenalty } return nil } func (x *Costing_Options) GetTollBoothPenalty() float32 { if x, ok := x.GetHasTollBoothPenalty().(*Costing_Options_TollBoothPenalty); ok { return x.TollBoothPenalty } return 0 } func (m *Costing_Options) GetHasAlleyPenalty() isCosting_Options_HasAlleyPenalty { if m != nil { return m.HasAlleyPenalty } return nil } func (x *Costing_Options) GetAlleyPenalty() float32 { if x, ok := x.GetHasAlleyPenalty().(*Costing_Options_AlleyPenalty); ok { return x.AlleyPenalty } return 0 } func (m *Costing_Options) GetHasCountryCrossingCost() isCosting_Options_HasCountryCrossingCost { if m != nil { return m.HasCountryCrossingCost } return nil } func (x *Costing_Options) GetCountryCrossingCost() float32 { if x, ok := x.GetHasCountryCrossingCost().(*Costing_Options_CountryCrossingCost); ok { return x.CountryCrossingCost } return 0 } func (m *Costing_Options) GetHasCountryCrossingPenalty() isCosting_Options_HasCountryCrossingPenalty { if m != nil { return m.HasCountryCrossingPenalty } return nil } func (x *Costing_Options) GetCountryCrossingPenalty() float32 { if x, ok := x.GetHasCountryCrossingPenalty().(*Costing_Options_CountryCrossingPenalty); ok { return x.CountryCrossingPenalty } return 0 } func (m *Costing_Options) GetHasFerryCost() isCosting_Options_HasFerryCost { if m != nil { return m.HasFerryCost } return nil } func (x *Costing_Options) GetFerryCost() float32 { if x, ok := x.GetHasFerryCost().(*Costing_Options_FerryCost); ok { return x.FerryCost } return 0 } func (m *Costing_Options) GetHasAvoidBadSurfaces() isCosting_Options_HasAvoidBadSurfaces { if m != nil { return m.HasAvoidBadSurfaces } return nil } func (x *Costing_Options) GetAvoidBadSurfaces() float32 { if x, ok := x.GetHasAvoidBadSurfaces().(*Costing_Options_AvoidBadSurfaces); ok { return x.AvoidBadSurfaces } return 0 } func (m *Costing_Options) GetHasUseFerry() isCosting_Options_HasUseFerry { if m != nil { return m.HasUseFerry } return nil } func (x *Costing_Options) GetUseFerry() float32 { if x, ok := x.GetHasUseFerry().(*Costing_Options_UseFerry); ok { return x.UseFerry } return 0 } func (m *Costing_Options) GetHasUseHighways() isCosting_Options_HasUseHighways { if m != nil { return m.HasUseHighways } return nil } func (x *Costing_Options) GetUseHighways() float32 { if x, ok := x.GetHasUseHighways().(*Costing_Options_UseHighways); ok { return x.UseHighways } return 0 } func (m *Costing_Options) GetHasUseTolls() isCosting_Options_HasUseTolls { if m != nil { return m.HasUseTolls } return nil } func (x *Costing_Options) GetUseTolls() float32 { if x, ok := x.GetHasUseTolls().(*Costing_Options_UseTolls); ok { return x.UseTolls } return 0 } func (m *Costing_Options) GetHasUseRoads() isCosting_Options_HasUseRoads { if m != nil { return m.HasUseRoads } return nil } func (x *Costing_Options) GetUseRoads() float32 { if x, ok := x.GetHasUseRoads().(*Costing_Options_UseRoads); ok { return x.UseRoads } return 0 } func (m *Costing_Options) GetHasMaxDistance() isCosting_Options_HasMaxDistance { if m != nil { return m.HasMaxDistance } return nil } func (x *Costing_Options) GetMaxDistance() uint32 { if x, ok := x.GetHasMaxDistance().(*Costing_Options_MaxDistance); ok { return x.MaxDistance } return 0 } func (m *Costing_Options) GetHasWalkingSpeed() isCosting_Options_HasWalkingSpeed { if m != nil { return m.HasWalkingSpeed } return nil } func (x *Costing_Options) GetWalkingSpeed() float32 { if x, ok := x.GetHasWalkingSpeed().(*Costing_Options_WalkingSpeed); ok { return x.WalkingSpeed } return 0 } func (m *Costing_Options) GetHasStepPenalty() isCosting_Options_HasStepPenalty { if m != nil { return m.HasStepPenalty } return nil } func (x *Costing_Options) GetStepPenalty() float32 { if x, ok := x.GetHasStepPenalty().(*Costing_Options_StepPenalty); ok { return x.StepPenalty } return 0 } func (m *Costing_Options) GetHasMaxGrade() isCosting_Options_HasMaxGrade { if m != nil { return m.HasMaxGrade } return nil } func (x *Costing_Options) GetMaxGrade() uint32 { if x, ok := x.GetHasMaxGrade().(*Costing_Options_MaxGrade); ok { return x.MaxGrade } return 0 } func (m *Costing_Options) GetHasMaxHikingDifficulty() isCosting_Options_HasMaxHikingDifficulty { if m != nil { return m.HasMaxHikingDifficulty } return nil } func (x *Costing_Options) GetMaxHikingDifficulty() uint32 { if x, ok := x.GetHasMaxHikingDifficulty().(*Costing_Options_MaxHikingDifficulty); ok { return x.MaxHikingDifficulty } return 0 } func (m *Costing_Options) GetHasModeFactor() isCosting_Options_HasModeFactor { if m != nil { return m.HasModeFactor } return nil } func (x *Costing_Options) GetModeFactor() float32 { if x, ok := x.GetHasModeFactor().(*Costing_Options_ModeFactor); ok { return x.ModeFactor } return 0 } func (m *Costing_Options) GetHasWalkwayFactor() isCosting_Options_HasWalkwayFactor { if m != nil { return m.HasWalkwayFactor } return nil } func (x *Costing_Options) GetWalkwayFactor() float32 { if x, ok := x.GetHasWalkwayFactor().(*Costing_Options_WalkwayFactor); ok { return x.WalkwayFactor } return 0 } func (m *Costing_Options) GetHasSidewalkFactor() isCosting_Options_HasSidewalkFactor { if m != nil { return m.HasSidewalkFactor } return nil } func (x *Costing_Options) GetSidewalkFactor() float32 { if x, ok := x.GetHasSidewalkFactor().(*Costing_Options_SidewalkFactor); ok { return x.SidewalkFactor } return 0 } func (m *Costing_Options) GetHasAlleyFactor() isCosting_Options_HasAlleyFactor { if m != nil { return m.HasAlleyFactor } return nil } func (x *Costing_Options) GetAlleyFactor() float32 { if x, ok := x.GetHasAlleyFactor().(*Costing_Options_AlleyFactor); ok { return x.AlleyFactor } return 0 } func (m *Costing_Options) GetHasDrivewayFactor() isCosting_Options_HasDrivewayFactor { if m != nil { return m.HasDrivewayFactor } return nil } func (x *Costing_Options) GetDrivewayFactor() float32 { if x, ok := x.GetHasDrivewayFactor().(*Costing_Options_DrivewayFactor); ok { return x.DrivewayFactor } return 0 } func (m *Costing_Options) GetHasDrivewayPenalty() isCosting_Options_HasDrivewayPenalty { if m != nil { return m.HasDrivewayPenalty } return nil } func (x *Costing_Options) GetDrivewayPenalty() float32 { if x, ok := x.GetHasDrivewayPenalty().(*Costing_Options_DrivewayPenalty); ok { return x.DrivewayPenalty } return 0 } func (m *Costing_Options) GetHasTransitStartEndMaxDistance() isCosting_Options_HasTransitStartEndMaxDistance { if m != nil { return m.HasTransitStartEndMaxDistance } return nil } func (x *Costing_Options) GetTransitStartEndMaxDistance() uint32 { if x, ok := x.GetHasTransitStartEndMaxDistance().(*Costing_Options_TransitStartEndMaxDistance); ok { return x.TransitStartEndMaxDistance } return 0 } func (m *Costing_Options) GetHasTransitTransferMaxDistance() isCosting_Options_HasTransitTransferMaxDistance { if m != nil { return m.HasTransitTransferMaxDistance } return nil } func (x *Costing_Options) GetTransitTransferMaxDistance() uint32 { if x, ok := x.GetHasTransitTransferMaxDistance().(*Costing_Options_TransitTransferMaxDistance); ok { return x.TransitTransferMaxDistance } return 0 } func (m *Costing_Options) GetHasTransportType() isCosting_Options_HasTransportType { if m != nil { return m.HasTransportType } return nil } func (x *Costing_Options) GetTransportType() string { if x, ok := x.GetHasTransportType().(*Costing_Options_TransportType); ok { return x.TransportType } return "" } func (m *Costing_Options) GetHasTopSpeed() isCosting_Options_HasTopSpeed { if m != nil { return m.HasTopSpeed } return nil } func (x *Costing_Options) GetTopSpeed() float32 { if x, ok := x.GetHasTopSpeed().(*Costing_Options_TopSpeed); ok { return x.TopSpeed } return 0 } func (m *Costing_Options) GetHasUseHills() isCosting_Options_HasUseHills { if m != nil { return m.HasUseHills } return nil } func (x *Costing_Options) GetUseHills() float32 { if x, ok := x.GetHasUseHills().(*Costing_Options_UseHills); ok { return x.UseHills } return 0 } func (m *Costing_Options) GetHasUsePrimary() isCosting_Options_HasUsePrimary { if m != nil { return m.HasUsePrimary } return nil } func (x *Costing_Options) GetUsePrimary() float32 { if x, ok := x.GetHasUsePrimary().(*Costing_Options_UsePrimary); ok { return x.UsePrimary } return 0 } func (m *Costing_Options) GetHasUseTrails() isCosting_Options_HasUseTrails { if m != nil { return m.HasUseTrails } return nil } func (x *Costing_Options) GetUseTrails() float32 { if x, ok := x.GetHasUseTrails().(*Costing_Options_UseTrails); ok { return x.UseTrails } return 0 } func (m *Costing_Options) GetHasLowClassPenalty() isCosting_Options_HasLowClassPenalty { if m != nil { return m.HasLowClassPenalty } return nil } func (x *Costing_Options) GetLowClassPenalty() float32 { if x, ok := x.GetHasLowClassPenalty().(*Costing_Options_LowClassPenalty); ok { return x.LowClassPenalty } return 0 } func (m *Costing_Options) GetHasHazmat() isCosting_Options_HasHazmat { if m != nil { return m.HasHazmat } return nil } func (x *Costing_Options) GetHazmat() bool { if x, ok := x.GetHasHazmat().(*Costing_Options_Hazmat); ok { return x.Hazmat } return false } func (m *Costing_Options) GetHasWeight() isCosting_Options_HasWeight { if m != nil { return m.HasWeight } return nil } func (x *Costing_Options) GetWeight() float32 { if x, ok := x.GetHasWeight().(*Costing_Options_Weight); ok { return x.Weight } return 0 } func (m *Costing_Options) GetHasAxleLoad() isCosting_Options_HasAxleLoad { if m != nil { return m.HasAxleLoad } return nil } func (x *Costing_Options) GetAxleLoad() float32 { if x, ok := x.GetHasAxleLoad().(*Costing_Options_AxleLoad); ok { return x.AxleLoad } return 0 } func (m *Costing_Options) GetHasHeight() isCosting_Options_HasHeight { if m != nil { return m.HasHeight } return nil } func (x *Costing_Options) GetHeight() float32 { if x, ok := x.GetHasHeight().(*Costing_Options_Height); ok { return x.Height } return 0 } func (m *Costing_Options) GetHasWidth() isCosting_Options_HasWidth { if m != nil { return m.HasWidth } return nil } func (x *Costing_Options) GetWidth() float32 { if x, ok := x.GetHasWidth().(*Costing_Options_Width); ok { return x.Width } return 0 } func (m *Costing_Options) GetHasLength() isCosting_Options_HasLength { if m != nil { return m.HasLength } return nil } func (x *Costing_Options) GetLength() float32 { if x, ok := x.GetHasLength().(*Costing_Options_Length); ok { return x.Length } return 0 } func (m *Costing_Options) GetHasCyclingSpeed() isCosting_Options_HasCyclingSpeed { if m != nil { return m.HasCyclingSpeed } return nil } func (x *Costing_Options) GetCyclingSpeed() float32 { if x, ok := x.GetHasCyclingSpeed().(*Costing_Options_CyclingSpeed); ok { return x.CyclingSpeed } return 0 } func (m *Costing_Options) GetHasWheelchair() isCosting_Options_HasWheelchair { if m != nil { return m.HasWheelchair } return nil } func (x *Costing_Options) GetWheelchair() bool { if x, ok := x.GetHasWheelchair().(*Costing_Options_Wheelchair); ok { return x.Wheelchair } return false } func (m *Costing_Options) GetHasBicycle() isCosting_Options_HasBicycle { if m != nil { return m.HasBicycle } return nil } func (x *Costing_Options) GetBicycle() bool { if x, ok := x.GetHasBicycle().(*Costing_Options_Bicycle); ok { return x.Bicycle } return false } func (m *Costing_Options) GetHasUseBus() isCosting_Options_HasUseBus { if m != nil { return m.HasUseBus } return nil } func (x *Costing_Options) GetUseBus() float32 { if x, ok := x.GetHasUseBus().(*Costing_Options_UseBus); ok { return x.UseBus } return 0 } func (m *Costing_Options) GetHasUseRail() isCosting_Options_HasUseRail { if m != nil { return m.HasUseRail } return nil } func (x *Costing_Options) GetUseRail() float32 { if x, ok := x.GetHasUseRail().(*Costing_Options_UseRail); ok { return x.UseRail } return 0 } func (m *Costing_Options) GetHasUseTransfers() isCosting_Options_HasUseTransfers { if m != nil { return m.HasUseTransfers } return nil } func (x *Costing_Options) GetUseTransfers() float32 { if x, ok := x.GetHasUseTransfers().(*Costing_Options_UseTransfers); ok { return x.UseTransfers } return 0 } func (m *Costing_Options) GetHasTransferCost() isCosting_Options_HasTransferCost { if m != nil { return m.HasTransferCost } return nil } func (x *Costing_Options) GetTransferCost() float32 { if x, ok := x.GetHasTransferCost().(*Costing_Options_TransferCost); ok { return x.TransferCost } return 0 } func (m *Costing_Options) GetHasTransferPenalty() isCosting_Options_HasTransferPenalty { if m != nil { return m.HasTransferPenalty } return nil } func (x *Costing_Options) GetTransferPenalty() float32 { if x, ok := x.GetHasTransferPenalty().(*Costing_Options_TransferPenalty); ok { return x.TransferPenalty } return 0 } func (x *Costing_Options) GetFilterStopAction() FilterAction { if x != nil { return x.FilterStopAction } return FilterAction_no_action } func (x *Costing_Options) GetFilterStopIds() []string { if x != nil { return x.FilterStopIds } return nil } func (x *Costing_Options) GetFilterOperatorAction() FilterAction { if x != nil { return x.FilterOperatorAction } return FilterAction_no_action } func (x *Costing_Options) GetFilterOperatorIds() []string { if x != nil { return x.FilterOperatorIds } return nil } func (x *Costing_Options) GetFilterRouteAction() FilterAction { if x != nil { return x.FilterRouteAction } return FilterAction_no_action } func (x *Costing_Options) GetFilterRouteIds() []string { if x != nil { return x.FilterRouteIds } return nil } func (m *Costing_Options) GetHasFlowMask() isCosting_Options_HasFlowMask { if m != nil { return m.HasFlowMask } return nil } func (x *Costing_Options) GetFlowMask() uint32 { if x, ok := x.GetHasFlowMask().(*Costing_Options_FlowMask); ok { return x.FlowMask } return 0 } func (m *Costing_Options) GetHasBikeShareCost() isCosting_Options_HasBikeShareCost { if m != nil { return m.HasBikeShareCost } return nil } func (x *Costing_Options) GetBikeShareCost() float32 { if x, ok := x.GetHasBikeShareCost().(*Costing_Options_BikeShareCost); ok { return x.BikeShareCost } return 0 } func (m *Costing_Options) GetHasBikeSharePenalty() isCosting_Options_HasBikeSharePenalty { if m != nil { return m.HasBikeSharePenalty } return nil } func (x *Costing_Options) GetBikeSharePenalty() float32 { if x, ok := x.GetHasBikeSharePenalty().(*Costing_Options_BikeSharePenalty); ok { return x.BikeSharePenalty } return 0 } func (m *Costing_Options) GetHasRailFerryCost() isCosting_Options_HasRailFerryCost { if m != nil { return m.HasRailFerryCost } return nil } func (x *Costing_Options) GetRailFerryCost() float32 { if x, ok := x.GetHasRailFerryCost().(*Costing_Options_RailFerryCost); ok { return x.RailFerryCost } return 0 } func (m *Costing_Options) GetHasUseRailFerry() isCosting_Options_HasUseRailFerry { if m != nil { return m.HasUseRailFerry } return nil } func (x *Costing_Options) GetUseRailFerry() float32 { if x, ok := x.GetHasUseRailFerry().(*Costing_Options_UseRailFerry); ok { return x.UseRailFerry } return 0 } func (m *Costing_Options) GetHasIgnoreRestrictions() isCosting_Options_HasIgnoreRestrictions { if m != nil { return m.HasIgnoreRestrictions } return nil } func (x *Costing_Options) GetIgnoreRestrictions() bool { if x, ok := x.GetHasIgnoreRestrictions().(*Costing_Options_IgnoreRestrictions); ok { return x.IgnoreRestrictions } return false } func (m *Costing_Options) GetHasIgnoreOneways() isCosting_Options_HasIgnoreOneways { if m != nil { return m.HasIgnoreOneways } return nil } func (x *Costing_Options) GetIgnoreOneways() bool { if x, ok := x.GetHasIgnoreOneways().(*Costing_Options_IgnoreOneways); ok { return x.IgnoreOneways } return false } func (m *Costing_Options) GetHasIgnoreAccess() isCosting_Options_HasIgnoreAccess { if m != nil { return m.HasIgnoreAccess } return nil } func (x *Costing_Options) GetIgnoreAccess() bool { if x, ok := x.GetHasIgnoreAccess().(*Costing_Options_IgnoreAccess); ok { return x.IgnoreAccess } return false } func (m *Costing_Options) GetHasIgnoreClosures() isCosting_Options_HasIgnoreClosures { if m != nil { return m.HasIgnoreClosures } return nil } func (x *Costing_Options) GetIgnoreClosures() bool { if x, ok := x.GetHasIgnoreClosures().(*Costing_Options_IgnoreClosures); ok { return x.IgnoreClosures } return false } func (m *Costing_Options) GetHasShortest() isCosting_Options_HasShortest { if m != nil { return m.HasShortest } return nil } func (x *Costing_Options) GetShortest() bool { if x, ok := x.GetHasShortest().(*Costing_Options_Shortest); ok { return x.Shortest } return false } func (m *Costing_Options) GetHasServicePenalty() isCosting_Options_HasServicePenalty { if m != nil { return m.HasServicePenalty } return nil } func (x *Costing_Options) GetServicePenalty() float32 { if x, ok := x.GetHasServicePenalty().(*Costing_Options_ServicePenalty); ok { return x.ServicePenalty } return 0 } func (m *Costing_Options) GetHasUseTracks() isCosting_Options_HasUseTracks { if m != nil { return m.HasUseTracks } return nil } func (x *Costing_Options) GetUseTracks() float32 { if x, ok := x.GetHasUseTracks().(*Costing_Options_UseTracks); ok { return x.UseTracks } return 0 } func (m *Costing_Options) GetHasUseDistance() isCosting_Options_HasUseDistance { if m != nil { return m.HasUseDistance } return nil } func (x *Costing_Options) GetUseDistance() float32 { if x, ok := x.GetHasUseDistance().(*Costing_Options_UseDistance); ok { return x.UseDistance } return 0 } func (m *Costing_Options) GetHasUseLivingStreets() isCosting_Options_HasUseLivingStreets { if m != nil { return m.HasUseLivingStreets } return nil } func (x *Costing_Options) GetUseLivingStreets() float32 { if x, ok := x.GetHasUseLivingStreets().(*Costing_Options_UseLivingStreets); ok { return x.UseLivingStreets } return 0 } func (m *Costing_Options) GetHasServiceFactor() isCosting_Options_HasServiceFactor { if m != nil { return m.HasServiceFactor } return nil } func (x *Costing_Options) GetServiceFactor() float32 { if x, ok := x.GetHasServiceFactor().(*Costing_Options_ServiceFactor); ok { return x.ServiceFactor } return 0 } func (m *Costing_Options) GetHasClosureFactor() isCosting_Options_HasClosureFactor { if m != nil { return m.HasClosureFactor } return nil } func (x *Costing_Options) GetClosureFactor() float32 { if x, ok := x.GetHasClosureFactor().(*Costing_Options_ClosureFactor); ok { return x.ClosureFactor } return 0 } func (m *Costing_Options) GetHasPrivateAccessPenalty() isCosting_Options_HasPrivateAccessPenalty { if m != nil { return m.HasPrivateAccessPenalty } return nil } func (x *Costing_Options) GetPrivateAccessPenalty() float32 { if x, ok := x.GetHasPrivateAccessPenalty().(*Costing_Options_PrivateAccessPenalty); ok { return x.PrivateAccessPenalty } return 0 } func (m *Costing_Options) GetHasExcludeUnpaved() isCosting_Options_HasExcludeUnpaved { if m != nil { return m.HasExcludeUnpaved } return nil } func (x *Costing_Options) GetExcludeUnpaved() bool { if x, ok := x.GetHasExcludeUnpaved().(*Costing_Options_ExcludeUnpaved); ok { return x.ExcludeUnpaved } return false } func (m *Costing_Options) GetHasIncludeHot() isCosting_Options_HasIncludeHot { if m != nil { return m.HasIncludeHot } return nil } func (x *Costing_Options) GetIncludeHot() bool { if x, ok := x.GetHasIncludeHot().(*Costing_Options_IncludeHot); ok { return x.IncludeHot } return false } func (m *Costing_Options) GetHasIncludeHov2() isCosting_Options_HasIncludeHov2 { if m != nil { return m.HasIncludeHov2 } return nil } func (x *Costing_Options) GetIncludeHov2() bool { if x, ok := x.GetHasIncludeHov2().(*Costing_Options_IncludeHov2); ok { return x.IncludeHov2 } return false } func (m *Costing_Options) GetHasIncludeHov3() isCosting_Options_HasIncludeHov3 { if m != nil { return m.HasIncludeHov3 } return nil } func (x *Costing_Options) GetIncludeHov3() bool { if x, ok := x.GetHasIncludeHov3().(*Costing_Options_IncludeHov3); ok { return x.IncludeHov3 } return false } func (m *Costing_Options) GetHasExcludeCashOnlyTolls() isCosting_Options_HasExcludeCashOnlyTolls { if m != nil { return m.HasExcludeCashOnlyTolls } return nil } func (x *Costing_Options) GetExcludeCashOnlyTolls() bool { if x, ok := x.GetHasExcludeCashOnlyTolls().(*Costing_Options_ExcludeCashOnlyTolls); ok { return x.ExcludeCashOnlyTolls } return false } func (m *Costing_Options) GetHasRestrictionProbability() isCosting_Options_HasRestrictionProbability { if m != nil { return m.HasRestrictionProbability } return nil } func (x *Costing_Options) GetRestrictionProbability() uint32 { if x, ok := x.GetHasRestrictionProbability().(*Costing_Options_RestrictionProbability); ok { return x.RestrictionProbability } return 0 } func (x *Costing_Options) GetExcludeEdges() []*AvoidEdge { if x != nil { return x.ExcludeEdges } return nil } func (m *Costing_Options) GetHasElevatorPenalty() isCosting_Options_HasElevatorPenalty { if m != nil { return m.HasElevatorPenalty } return nil } func (x *Costing_Options) GetElevatorPenalty() float32 { if x, ok := x.GetHasElevatorPenalty().(*Costing_Options_ElevatorPenalty); ok { return x.ElevatorPenalty } return 0 } func (x *Costing_Options) GetFixedSpeed() uint32 { if x != nil { return x.FixedSpeed } return 0 } func (x *Costing_Options) GetAxleCount() uint32 { if x != nil { return x.AxleCount } return 0 } func (x *Costing_Options) GetUseLit() float32 { if x != nil { return x.UseLit } return 0 } type isCosting_Options_HasManeuverPenalty interface { isCosting_Options_HasManeuverPenalty() } type Costing_Options_ManeuverPenalty struct { ManeuverPenalty float32 `protobuf:"fixed32,1,opt,name=maneuver_penalty,json=maneuverPenalty,proto3,oneof"` } func (*Costing_Options_ManeuverPenalty) isCosting_Options_HasManeuverPenalty() {} type isCosting_Options_HasDestinationOnlyPenalty interface { isCosting_Options_HasDestinationOnlyPenalty() } type Costing_Options_DestinationOnlyPenalty struct { DestinationOnlyPenalty float32 `protobuf:"fixed32,2,opt,name=destination_only_penalty,json=destinationOnlyPenalty,proto3,oneof"` } func (*Costing_Options_DestinationOnlyPenalty) isCosting_Options_HasDestinationOnlyPenalty() {} type isCosting_Options_HasGateCost interface { isCosting_Options_HasGateCost() } type Costing_Options_GateCost struct { GateCost float32 `protobuf:"fixed32,3,opt,name=gate_cost,json=gateCost,proto3,oneof"` } func (*Costing_Options_GateCost) isCosting_Options_HasGateCost() {} type isCosting_Options_HasGatePenalty interface { isCosting_Options_HasGatePenalty() } type Costing_Options_GatePenalty struct { GatePenalty float32 `protobuf:"fixed32,4,opt,name=gate_penalty,json=gatePenalty,proto3,oneof"` } func (*Costing_Options_GatePenalty) isCosting_Options_HasGatePenalty() {} type isCosting_Options_HasTollBoothCost interface { isCosting_Options_HasTollBoothCost() } type Costing_Options_TollBoothCost struct { TollBoothCost float32 `protobuf:"fixed32,5,opt,name=toll_booth_cost,json=tollBoothCost,proto3,oneof"` } func (*Costing_Options_TollBoothCost) isCosting_Options_HasTollBoothCost() {} type isCosting_Options_HasTollBoothPenalty interface { isCosting_Options_HasTollBoothPenalty() } type Costing_Options_TollBoothPenalty struct { TollBoothPenalty float32 `protobuf:"fixed32,6,opt,name=toll_booth_penalty,json=tollBoothPenalty,proto3,oneof"` } func (*Costing_Options_TollBoothPenalty) isCosting_Options_HasTollBoothPenalty() {} type isCosting_Options_HasAlleyPenalty interface { isCosting_Options_HasAlleyPenalty() } type Costing_Options_AlleyPenalty struct { AlleyPenalty float32 `protobuf:"fixed32,7,opt,name=alley_penalty,json=alleyPenalty,proto3,oneof"` } func (*Costing_Options_AlleyPenalty) isCosting_Options_HasAlleyPenalty() {} type isCosting_Options_HasCountryCrossingCost interface { isCosting_Options_HasCountryCrossingCost() } type Costing_Options_CountryCrossingCost struct { CountryCrossingCost float32 `protobuf:"fixed32,8,opt,name=country_crossing_cost,json=countryCrossingCost,proto3,oneof"` } func (*Costing_Options_CountryCrossingCost) isCosting_Options_HasCountryCrossingCost() {} type isCosting_Options_HasCountryCrossingPenalty interface { isCosting_Options_HasCountryCrossingPenalty() } type Costing_Options_CountryCrossingPenalty struct { CountryCrossingPenalty float32 `protobuf:"fixed32,9,opt,name=country_crossing_penalty,json=countryCrossingPenalty,proto3,oneof"` } func (*Costing_Options_CountryCrossingPenalty) isCosting_Options_HasCountryCrossingPenalty() {} type isCosting_Options_HasFerryCost interface { isCosting_Options_HasFerryCost() } type Costing_Options_FerryCost struct { FerryCost float32 `protobuf:"fixed32,10,opt,name=ferry_cost,json=ferryCost,proto3,oneof"` } func (*Costing_Options_FerryCost) isCosting_Options_HasFerryCost() {} type isCosting_Options_HasAvoidBadSurfaces interface { isCosting_Options_HasAvoidBadSurfaces() } type Costing_Options_AvoidBadSurfaces struct { AvoidBadSurfaces float32 `protobuf:"fixed32,11,opt,name=avoid_bad_surfaces,json=avoidBadSurfaces,proto3,oneof"` } func (*Costing_Options_AvoidBadSurfaces) isCosting_Options_HasAvoidBadSurfaces() {} type isCosting_Options_HasUseFerry interface { isCosting_Options_HasUseFerry() } type Costing_Options_UseFerry struct { UseFerry float32 `protobuf:"fixed32,12,opt,name=use_ferry,json=useFerry,proto3,oneof"` } func (*Costing_Options_UseFerry) isCosting_Options_HasUseFerry() {} type isCosting_Options_HasUseHighways interface { isCosting_Options_HasUseHighways() } type Costing_Options_UseHighways struct { UseHighways float32 `protobuf:"fixed32,13,opt,name=use_highways,json=useHighways,proto3,oneof"` } func (*Costing_Options_UseHighways) isCosting_Options_HasUseHighways() {} type isCosting_Options_HasUseTolls interface { isCosting_Options_HasUseTolls() } type Costing_Options_UseTolls struct { UseTolls float32 `protobuf:"fixed32,14,opt,name=use_tolls,json=useTolls,proto3,oneof"` } func (*Costing_Options_UseTolls) isCosting_Options_HasUseTolls() {} type isCosting_Options_HasUseRoads interface { isCosting_Options_HasUseRoads() } type Costing_Options_UseRoads struct { UseRoads float32 `protobuf:"fixed32,15,opt,name=use_roads,json=useRoads,proto3,oneof"` } func (*Costing_Options_UseRoads) isCosting_Options_HasUseRoads() {} type isCosting_Options_HasMaxDistance interface { isCosting_Options_HasMaxDistance() } type Costing_Options_MaxDistance struct { MaxDistance uint32 `protobuf:"varint,16,opt,name=max_distance,json=maxDistance,proto3,oneof"` } func (*Costing_Options_MaxDistance) isCosting_Options_HasMaxDistance() {} type isCosting_Options_HasWalkingSpeed interface { isCosting_Options_HasWalkingSpeed() } type Costing_Options_WalkingSpeed struct { WalkingSpeed float32 `protobuf:"fixed32,17,opt,name=walking_speed,json=walkingSpeed,proto3,oneof"` } func (*Costing_Options_WalkingSpeed) isCosting_Options_HasWalkingSpeed() {} type isCosting_Options_HasStepPenalty interface { isCosting_Options_HasStepPenalty() } type Costing_Options_StepPenalty struct { StepPenalty float32 `protobuf:"fixed32,18,opt,name=step_penalty,json=stepPenalty,proto3,oneof"` } func (*Costing_Options_StepPenalty) isCosting_Options_HasStepPenalty() {} type isCosting_Options_HasMaxGrade interface { isCosting_Options_HasMaxGrade() } type Costing_Options_MaxGrade struct { MaxGrade uint32 `protobuf:"varint,19,opt,name=max_grade,json=maxGrade,proto3,oneof"` } func (*Costing_Options_MaxGrade) isCosting_Options_HasMaxGrade() {} type isCosting_Options_HasMaxHikingDifficulty interface { isCosting_Options_HasMaxHikingDifficulty() } type Costing_Options_MaxHikingDifficulty struct { MaxHikingDifficulty uint32 `protobuf:"varint,20,opt,name=max_hiking_difficulty,json=maxHikingDifficulty,proto3,oneof"` } func (*Costing_Options_MaxHikingDifficulty) isCosting_Options_HasMaxHikingDifficulty() {} type isCosting_Options_HasModeFactor interface { isCosting_Options_HasModeFactor() } type Costing_Options_ModeFactor struct { ModeFactor float32 `protobuf:"fixed32,21,opt,name=mode_factor,json=modeFactor,proto3,oneof"` } func (*Costing_Options_ModeFactor) isCosting_Options_HasModeFactor() {} type isCosting_Options_HasWalkwayFactor interface { isCosting_Options_HasWalkwayFactor() } type Costing_Options_WalkwayFactor struct { WalkwayFactor float32 `protobuf:"fixed32,22,opt,name=walkway_factor,json=walkwayFactor,proto3,oneof"` } func (*Costing_Options_WalkwayFactor) isCosting_Options_HasWalkwayFactor() {} type isCosting_Options_HasSidewalkFactor interface { isCosting_Options_HasSidewalkFactor() } type Costing_Options_SidewalkFactor struct { SidewalkFactor float32 `protobuf:"fixed32,23,opt,name=sidewalk_factor,json=sidewalkFactor,proto3,oneof"` } func (*Costing_Options_SidewalkFactor) isCosting_Options_HasSidewalkFactor() {} type isCosting_Options_HasAlleyFactor interface { isCosting_Options_HasAlleyFactor() } type Costing_Options_AlleyFactor struct { AlleyFactor float32 `protobuf:"fixed32,24,opt,name=alley_factor,json=alleyFactor,proto3,oneof"` } func (*Costing_Options_AlleyFactor) isCosting_Options_HasAlleyFactor() {} type isCosting_Options_HasDrivewayFactor interface { isCosting_Options_HasDrivewayFactor() } type Costing_Options_DrivewayFactor struct { DrivewayFactor float32 `protobuf:"fixed32,25,opt,name=driveway_factor,json=drivewayFactor,proto3,oneof"` } func (*Costing_Options_DrivewayFactor) isCosting_Options_HasDrivewayFactor() {} type isCosting_Options_HasDrivewayPenalty interface { isCosting_Options_HasDrivewayPenalty() } type Costing_Options_DrivewayPenalty struct { DrivewayPenalty float32 `protobuf:"fixed32,26,opt,name=driveway_penalty,json=drivewayPenalty,proto3,oneof"` } func (*Costing_Options_DrivewayPenalty) isCosting_Options_HasDrivewayPenalty() {} type isCosting_Options_HasTransitStartEndMaxDistance interface { isCosting_Options_HasTransitStartEndMaxDistance() } type Costing_Options_TransitStartEndMaxDistance struct { TransitStartEndMaxDistance uint32 `protobuf:"varint,27,opt,name=transit_start_end_max_distance,json=transitStartEndMaxDistance,proto3,oneof"` } func (*Costing_Options_TransitStartEndMaxDistance) isCosting_Options_HasTransitStartEndMaxDistance() { } type isCosting_Options_HasTransitTransferMaxDistance interface { isCosting_Options_HasTransitTransferMaxDistance() } type Costing_Options_TransitTransferMaxDistance struct { TransitTransferMaxDistance uint32 `protobuf:"varint,28,opt,name=transit_transfer_max_distance,json=transitTransferMaxDistance,proto3,oneof"` } func (*Costing_Options_TransitTransferMaxDistance) isCosting_Options_HasTransitTransferMaxDistance() { } type isCosting_Options_HasTransportType interface { isCosting_Options_HasTransportType() } type Costing_Options_TransportType struct { TransportType string `protobuf:"bytes,29,opt,name=transport_type,json=transportType,proto3,oneof"` } func (*Costing_Options_TransportType) isCosting_Options_HasTransportType() {} type isCosting_Options_HasTopSpeed interface { isCosting_Options_HasTopSpeed() } type Costing_Options_TopSpeed struct { TopSpeed float32 `protobuf:"fixed32,30,opt,name=top_speed,json=topSpeed,proto3,oneof"` } func (*Costing_Options_TopSpeed) isCosting_Options_HasTopSpeed() {} type isCosting_Options_HasUseHills interface { isCosting_Options_HasUseHills() } type Costing_Options_UseHills struct { UseHills float32 `protobuf:"fixed32,31,opt,name=use_hills,json=useHills,proto3,oneof"` } func (*Costing_Options_UseHills) isCosting_Options_HasUseHills() {} type isCosting_Options_HasUsePrimary interface { isCosting_Options_HasUsePrimary() } type Costing_Options_UsePrimary struct { UsePrimary float32 `protobuf:"fixed32,32,opt,name=use_primary,json=usePrimary,proto3,oneof"` } func (*Costing_Options_UsePrimary) isCosting_Options_HasUsePrimary() {} type isCosting_Options_HasUseTrails interface { isCosting_Options_HasUseTrails() } type Costing_Options_UseTrails struct { UseTrails float32 `protobuf:"fixed32,33,opt,name=use_trails,json=useTrails,proto3,oneof"` } func (*Costing_Options_UseTrails) isCosting_Options_HasUseTrails() {} type isCosting_Options_HasLowClassPenalty interface { isCosting_Options_HasLowClassPenalty() } type Costing_Options_LowClassPenalty struct { LowClassPenalty float32 `protobuf:"fixed32,34,opt,name=low_class_penalty,json=lowClassPenalty,proto3,oneof"` } func (*Costing_Options_LowClassPenalty) isCosting_Options_HasLowClassPenalty() {} type isCosting_Options_HasHazmat interface { isCosting_Options_HasHazmat() } type Costing_Options_Hazmat struct { Hazmat bool `protobuf:"varint,35,opt,name=hazmat,proto3,oneof"` } func (*Costing_Options_Hazmat) isCosting_Options_HasHazmat() {} type isCosting_Options_HasWeight interface { isCosting_Options_HasWeight() } type Costing_Options_Weight struct { Weight float32 `protobuf:"fixed32,36,opt,name=weight,proto3,oneof"` } func (*Costing_Options_Weight) isCosting_Options_HasWeight() {} type isCosting_Options_HasAxleLoad interface { isCosting_Options_HasAxleLoad() } type Costing_Options_AxleLoad struct { AxleLoad float32 `protobuf:"fixed32,37,opt,name=axle_load,json=axleLoad,proto3,oneof"` } func (*Costing_Options_AxleLoad) isCosting_Options_HasAxleLoad() {} type isCosting_Options_HasHeight interface { isCosting_Options_HasHeight() } type Costing_Options_Height struct { Height float32 `protobuf:"fixed32,38,opt,name=height,proto3,oneof"` } func (*Costing_Options_Height) isCosting_Options_HasHeight() {} type isCosting_Options_HasWidth interface { isCosting_Options_HasWidth() } type Costing_Options_Width struct { Width float32 `protobuf:"fixed32,39,opt,name=width,proto3,oneof"` } func (*Costing_Options_Width) isCosting_Options_HasWidth() {} type isCosting_Options_HasLength interface { isCosting_Options_HasLength() } type Costing_Options_Length struct { Length float32 `protobuf:"fixed32,40,opt,name=length,proto3,oneof"` } func (*Costing_Options_Length) isCosting_Options_HasLength() {} type isCosting_Options_HasCyclingSpeed interface { isCosting_Options_HasCyclingSpeed() } type Costing_Options_CyclingSpeed struct { CyclingSpeed float32 `protobuf:"fixed32,41,opt,name=cycling_speed,json=cyclingSpeed,proto3,oneof"` } func (*Costing_Options_CyclingSpeed) isCosting_Options_HasCyclingSpeed() {} type isCosting_Options_HasWheelchair interface { isCosting_Options_HasWheelchair() } type Costing_Options_Wheelchair struct { Wheelchair bool `protobuf:"varint,42,opt,name=wheelchair,proto3,oneof"` } func (*Costing_Options_Wheelchair) isCosting_Options_HasWheelchair() {} type isCosting_Options_HasBicycle interface { isCosting_Options_HasBicycle() } type Costing_Options_Bicycle struct { Bicycle bool `protobuf:"varint,43,opt,name=bicycle,proto3,oneof"` } func (*Costing_Options_Bicycle) isCosting_Options_HasBicycle() {} type isCosting_Options_HasUseBus interface { isCosting_Options_HasUseBus() } type Costing_Options_UseBus struct { UseBus float32 `protobuf:"fixed32,44,opt,name=use_bus,json=useBus,proto3,oneof"` } func (*Costing_Options_UseBus) isCosting_Options_HasUseBus() {} type isCosting_Options_HasUseRail interface { isCosting_Options_HasUseRail() } type Costing_Options_UseRail struct { UseRail float32 `protobuf:"fixed32,45,opt,name=use_rail,json=useRail,proto3,oneof"` } func (*Costing_Options_UseRail) isCosting_Options_HasUseRail() {} type isCosting_Options_HasUseTransfers interface { isCosting_Options_HasUseTransfers() } type Costing_Options_UseTransfers struct { UseTransfers float32 `protobuf:"fixed32,46,opt,name=use_transfers,json=useTransfers,proto3,oneof"` } func (*Costing_Options_UseTransfers) isCosting_Options_HasUseTransfers() {} type isCosting_Options_HasTransferCost interface { isCosting_Options_HasTransferCost() } type Costing_Options_TransferCost struct { TransferCost float32 `protobuf:"fixed32,47,opt,name=transfer_cost,json=transferCost,proto3,oneof"` } func (*Costing_Options_TransferCost) isCosting_Options_HasTransferCost() {} type isCosting_Options_HasTransferPenalty interface { isCosting_Options_HasTransferPenalty() } type Costing_Options_TransferPenalty struct { TransferPenalty float32 `protobuf:"fixed32,48,opt,name=transfer_penalty,json=transferPenalty,proto3,oneof"` } func (*Costing_Options_TransferPenalty) isCosting_Options_HasTransferPenalty() {} type isCosting_Options_HasFlowMask interface { isCosting_Options_HasFlowMask() } type Costing_Options_FlowMask struct { FlowMask uint32 `protobuf:"varint,55,opt,name=flow_mask,json=flowMask,proto3,oneof"` } func (*Costing_Options_FlowMask) isCosting_Options_HasFlowMask() {} type isCosting_Options_HasBikeShareCost interface { isCosting_Options_HasBikeShareCost() } type Costing_Options_BikeShareCost struct { BikeShareCost float32 `protobuf:"fixed32,56,opt,name=bike_share_cost,json=bikeShareCost,proto3,oneof"` } func (*Costing_Options_BikeShareCost) isCosting_Options_HasBikeShareCost() {} type isCosting_Options_HasBikeSharePenalty interface { isCosting_Options_HasBikeSharePenalty() } type Costing_Options_BikeSharePenalty struct { BikeSharePenalty float32 `protobuf:"fixed32,57,opt,name=bike_share_penalty,json=bikeSharePenalty,proto3,oneof"` } func (*Costing_Options_BikeSharePenalty) isCosting_Options_HasBikeSharePenalty() {} type isCosting_Options_HasRailFerryCost interface { isCosting_Options_HasRailFerryCost() } type Costing_Options_RailFerryCost struct { RailFerryCost float32 `protobuf:"fixed32,58,opt,name=rail_ferry_cost,json=railFerryCost,proto3,oneof"` } func (*Costing_Options_RailFerryCost) isCosting_Options_HasRailFerryCost() {} type isCosting_Options_HasUseRailFerry interface { isCosting_Options_HasUseRailFerry() } type Costing_Options_UseRailFerry struct { UseRailFerry float32 `protobuf:"fixed32,59,opt,name=use_rail_ferry,json=useRailFerry,proto3,oneof"` } func (*Costing_Options_UseRailFerry) isCosting_Options_HasUseRailFerry() {} type isCosting_Options_HasIgnoreRestrictions interface { isCosting_Options_HasIgnoreRestrictions() } type Costing_Options_IgnoreRestrictions struct { IgnoreRestrictions bool `protobuf:"varint,60,opt,name=ignore_restrictions,json=ignoreRestrictions,proto3,oneof"` } func (*Costing_Options_IgnoreRestrictions) isCosting_Options_HasIgnoreRestrictions() {} type isCosting_Options_HasIgnoreOneways interface { isCosting_Options_HasIgnoreOneways() } type Costing_Options_IgnoreOneways struct { IgnoreOneways bool `protobuf:"varint,61,opt,name=ignore_oneways,json=ignoreOneways,proto3,oneof"` } func (*Costing_Options_IgnoreOneways) isCosting_Options_HasIgnoreOneways() {} type isCosting_Options_HasIgnoreAccess interface { isCosting_Options_HasIgnoreAccess() } type Costing_Options_IgnoreAccess struct { IgnoreAccess bool `protobuf:"varint,62,opt,name=ignore_access,json=ignoreAccess,proto3,oneof"` } func (*Costing_Options_IgnoreAccess) isCosting_Options_HasIgnoreAccess() {} type isCosting_Options_HasIgnoreClosures interface { isCosting_Options_HasIgnoreClosures() } type Costing_Options_IgnoreClosures struct { IgnoreClosures bool `protobuf:"varint,63,opt,name=ignore_closures,json=ignoreClosures,proto3,oneof"` } func (*Costing_Options_IgnoreClosures) isCosting_Options_HasIgnoreClosures() {} type isCosting_Options_HasShortest interface { isCosting_Options_HasShortest() } type Costing_Options_Shortest struct { Shortest bool `protobuf:"varint,64,opt,name=shortest,proto3,oneof"` } func (*Costing_Options_Shortest) isCosting_Options_HasShortest() {} type isCosting_Options_HasServicePenalty interface { isCosting_Options_HasServicePenalty() } type Costing_Options_ServicePenalty struct { ServicePenalty float32 `protobuf:"fixed32,65,opt,name=service_penalty,json=servicePenalty,proto3,oneof"` } func (*Costing_Options_ServicePenalty) isCosting_Options_HasServicePenalty() {} type isCosting_Options_HasUseTracks interface { isCosting_Options_HasUseTracks() } type Costing_Options_UseTracks struct { UseTracks float32 `protobuf:"fixed32,66,opt,name=use_tracks,json=useTracks,proto3,oneof"` } func (*Costing_Options_UseTracks) isCosting_Options_HasUseTracks() {} type isCosting_Options_HasUseDistance interface { isCosting_Options_HasUseDistance() } type Costing_Options_UseDistance struct { UseDistance float32 `protobuf:"fixed32,67,opt,name=use_distance,json=useDistance,proto3,oneof"` } func (*Costing_Options_UseDistance) isCosting_Options_HasUseDistance() {} type isCosting_Options_HasUseLivingStreets interface { isCosting_Options_HasUseLivingStreets() } type Costing_Options_UseLivingStreets struct { UseLivingStreets float32 `protobuf:"fixed32,68,opt,name=use_living_streets,json=useLivingStreets,proto3,oneof"` } func (*Costing_Options_UseLivingStreets) isCosting_Options_HasUseLivingStreets() {} type isCosting_Options_HasServiceFactor interface { isCosting_Options_HasServiceFactor() } type Costing_Options_ServiceFactor struct { ServiceFactor float32 `protobuf:"fixed32,69,opt,name=service_factor,json=serviceFactor,proto3,oneof"` } func (*Costing_Options_ServiceFactor) isCosting_Options_HasServiceFactor() {} type isCosting_Options_HasClosureFactor interface { isCosting_Options_HasClosureFactor() } type Costing_Options_ClosureFactor struct { ClosureFactor float32 `protobuf:"fixed32,70,opt,name=closure_factor,json=closureFactor,proto3,oneof"` } func (*Costing_Options_ClosureFactor) isCosting_Options_HasClosureFactor() {} type isCosting_Options_HasPrivateAccessPenalty interface { isCosting_Options_HasPrivateAccessPenalty() } type Costing_Options_PrivateAccessPenalty struct { PrivateAccessPenalty float32 `protobuf:"fixed32,71,opt,name=private_access_penalty,json=privateAccessPenalty,proto3,oneof"` } func (*Costing_Options_PrivateAccessPenalty) isCosting_Options_HasPrivateAccessPenalty() {} type isCosting_Options_HasExcludeUnpaved interface { isCosting_Options_HasExcludeUnpaved() } type Costing_Options_ExcludeUnpaved struct { ExcludeUnpaved bool `protobuf:"varint,72,opt,name=exclude_unpaved,json=excludeUnpaved,proto3,oneof"` } func (*Costing_Options_ExcludeUnpaved) isCosting_Options_HasExcludeUnpaved() {} type isCosting_Options_HasIncludeHot interface { isCosting_Options_HasIncludeHot() } type Costing_Options_IncludeHot struct { IncludeHot bool `protobuf:"varint,73,opt,name=include_hot,json=includeHot,proto3,oneof"` } func (*Costing_Options_IncludeHot) isCosting_Options_HasIncludeHot() {} type isCosting_Options_HasIncludeHov2 interface { isCosting_Options_HasIncludeHov2() } type Costing_Options_IncludeHov2 struct { IncludeHov2 bool `protobuf:"varint,74,opt,name=include_hov2,json=includeHov2,proto3,oneof"` } func (*Costing_Options_IncludeHov2) isCosting_Options_HasIncludeHov2() {} type isCosting_Options_HasIncludeHov3 interface { isCosting_Options_HasIncludeHov3() } type Costing_Options_IncludeHov3 struct { IncludeHov3 bool `protobuf:"varint,75,opt,name=include_hov3,json=includeHov3,proto3,oneof"` } func (*Costing_Options_IncludeHov3) isCosting_Options_HasIncludeHov3() {} type isCosting_Options_HasExcludeCashOnlyTolls interface { isCosting_Options_HasExcludeCashOnlyTolls() } type Costing_Options_ExcludeCashOnlyTolls struct { ExcludeCashOnlyTolls bool `protobuf:"varint,76,opt,name=exclude_cash_only_tolls,json=excludeCashOnlyTolls,proto3,oneof"` } func (*Costing_Options_ExcludeCashOnlyTolls) isCosting_Options_HasExcludeCashOnlyTolls() {} type isCosting_Options_HasRestrictionProbability interface { isCosting_Options_HasRestrictionProbability() } type Costing_Options_RestrictionProbability struct { RestrictionProbability uint32 `protobuf:"varint,77,opt,name=restriction_probability,json=restrictionProbability,proto3,oneof"` } func (*Costing_Options_RestrictionProbability) isCosting_Options_HasRestrictionProbability() {} type isCosting_Options_HasElevatorPenalty interface { isCosting_Options_HasElevatorPenalty() } type Costing_Options_ElevatorPenalty struct { ElevatorPenalty float32 `protobuf:"fixed32,79,opt,name=elevator_penalty,json=elevatorPenalty,proto3,oneof"` } func (*Costing_Options_ElevatorPenalty) isCosting_Options_HasElevatorPenalty() {} var File_options_proto protoreflect.FileDescriptor var file_options_proto_rawDesc = []byte{ 0x0a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x08, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x1a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x7e, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x6f, 0x75, 0x72, 0x12, 0x14, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x08, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x42, 0x0e, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x30, 0x0a, 0x04, 0x52, 0x69, 0x6e, 0x67, 0x12, 0x28, 0x0a, 0x06, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x61, 0x74, 0x4c, 0x6e, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6f, 0x72, 0x64, 0x73, 0x22, 0x78, 0x0a, 0x10, 0x50, 0x62, 0x66, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x72, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x74, 0x72, 0x69, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x63, 0x0a, 0x09, 0x41, 0x76, 0x6f, 0x69, 0x64, 0x45, 0x64, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x02, 0x69, 0x64, 0x12, 0x25, 0x0a, 0x0d, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x41, 0x6c, 0x6f, 0x6e, 0x67, 0x42, 0x08, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x6c, 0x6f, 0x6e, 0x67, 0x22, 0xdc, 0x29, 0x0a, 0x07, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x35, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x1a, 0xd1, 0x26, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x18, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x16, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x6e, 0x6c, 0x79, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x08, 0x67, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0c, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x03, 0x52, 0x0b, 0x67, 0x61, 0x74, 0x65, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x74, 0x6f, 0x6c, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0d, 0x74, 0x6f, 0x6c, 0x6c, 0x42, 0x6f, 0x6f, 0x74, 0x68, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x74, 0x6f, 0x6c, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x68, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x05, 0x52, 0x10, 0x74, 0x6f, 0x6c, 0x6c, 0x42, 0x6f, 0x6f, 0x74, 0x68, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x25, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x15, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x07, 0x52, 0x13, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x16, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0a, 0x66, 0x65, 0x72, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x09, 0x66, 0x65, 0x72, 0x72, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x76, 0x6f, 0x69, 0x64, 0x5f, 0x62, 0x61, 0x64, 0x5f, 0x73, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x10, 0x61, 0x76, 0x6f, 0x69, 0x64, 0x42, 0x61, 0x64, 0x53, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x72, 0x72, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0b, 0x52, 0x08, 0x75, 0x73, 0x65, 0x46, 0x65, 0x72, 0x72, 0x79, 0x12, 0x23, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0c, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x48, 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x73, 0x12, 0x1d, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x6c, 0x6c, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0d, 0x52, 0x08, 0x75, 0x73, 0x65, 0x54, 0x6f, 0x6c, 0x6c, 0x73, 0x12, 0x1d, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x6f, 0x61, 0x64, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0e, 0x52, 0x08, 0x75, 0x73, 0x65, 0x52, 0x6f, 0x61, 0x64, 0x73, 0x12, 0x23, 0x0a, 0x0c, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x0f, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x02, 0x48, 0x10, 0x52, 0x0c, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x12, 0x20, 0x01, 0x28, 0x02, 0x48, 0x11, 0x52, 0x0b, 0x73, 0x74, 0x65, 0x70, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x1d, 0x0a, 0x09, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x12, 0x52, 0x08, 0x6d, 0x61, 0x78, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x34, 0x0a, 0x15, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x13, 0x52, 0x13, 0x6d, 0x61, 0x78, 0x48, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x44, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x12, 0x21, 0x0a, 0x0b, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x02, 0x48, 0x14, 0x52, 0x0a, 0x6d, 0x6f, 0x64, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0e, 0x77, 0x61, 0x6c, 0x6b, 0x77, 0x61, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x16, 0x20, 0x01, 0x28, 0x02, 0x48, 0x15, 0x52, 0x0d, 0x77, 0x61, 0x6c, 0x6b, 0x77, 0x61, 0x79, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x29, 0x0a, 0x0f, 0x73, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x17, 0x20, 0x01, 0x28, 0x02, 0x48, 0x16, 0x52, 0x0e, 0x73, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0c, 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x18, 0x20, 0x01, 0x28, 0x02, 0x48, 0x17, 0x52, 0x0b, 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x29, 0x0a, 0x0f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x48, 0x18, 0x52, 0x0e, 0x64, 0x72, 0x69, 0x76, 0x65, 0x77, 0x61, 0x79, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x2b, 0x0a, 0x10, 0x64, 0x72, 0x69, 0x76, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x19, 0x52, 0x0f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x77, 0x61, 0x79, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x1e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x1a, 0x52, 0x1a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x45, 0x6e, 0x64, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x43, 0x0a, 0x1d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x1b, 0x52, 0x1a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x4d, 0x61, 0x78, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x1c, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x74, 0x6f, 0x70, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x02, 0x48, 0x1d, 0x52, 0x08, 0x74, 0x6f, 0x70, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x5f, 0x68, 0x69, 0x6c, 0x6c, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x02, 0x48, 0x1e, 0x52, 0x08, 0x75, 0x73, 0x65, 0x48, 0x69, 0x6c, 0x6c, 0x73, 0x12, 0x21, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x20, 0x20, 0x01, 0x28, 0x02, 0x48, 0x1f, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x73, 0x18, 0x21, 0x20, 0x01, 0x28, 0x02, 0x48, 0x20, 0x52, 0x09, 0x75, 0x73, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x2c, 0x0a, 0x11, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x22, 0x20, 0x01, 0x28, 0x02, 0x48, 0x21, 0x52, 0x0f, 0x6c, 0x6f, 0x77, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x06, 0x68, 0x61, 0x7a, 0x6d, 0x61, 0x74, 0x18, 0x23, 0x20, 0x01, 0x28, 0x08, 0x48, 0x22, 0x52, 0x06, 0x68, 0x61, 0x7a, 0x6d, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x24, 0x20, 0x01, 0x28, 0x02, 0x48, 0x23, 0x52, 0x06, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1d, 0x0a, 0x09, 0x61, 0x78, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x25, 0x20, 0x01, 0x28, 0x02, 0x48, 0x24, 0x52, 0x08, 0x61, 0x78, 0x6c, 0x65, 0x4c, 0x6f, 0x61, 0x64, 0x12, 0x18, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x02, 0x48, 0x25, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x16, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x27, 0x20, 0x01, 0x28, 0x02, 0x48, 0x26, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x28, 0x20, 0x01, 0x28, 0x02, 0x48, 0x27, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0d, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x29, 0x20, 0x01, 0x28, 0x02, 0x48, 0x28, 0x52, 0x0c, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0a, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x29, 0x52, 0x0a, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, 0x12, 0x1a, 0x0a, 0x07, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x2a, 0x52, 0x07, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x5f, 0x62, 0x75, 0x73, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x2b, 0x52, 0x06, 0x75, 0x73, 0x65, 0x42, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x61, 0x69, 0x6c, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x02, 0x48, 0x2c, 0x52, 0x07, 0x75, 0x73, 0x65, 0x52, 0x61, 0x69, 0x6c, 0x12, 0x25, 0x0a, 0x0d, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x02, 0x48, 0x2d, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x02, 0x48, 0x2e, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x2b, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x30, 0x20, 0x01, 0x28, 0x02, 0x48, 0x2f, 0x52, 0x0f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x44, 0x0a, 0x12, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x32, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x49, 0x64, 0x73, 0x12, 0x4c, 0x0a, 0x16, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x33, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x14, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x34, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x64, 0x73, 0x12, 0x46, 0x0a, 0x13, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x35, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x11, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x36, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x49, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x18, 0x37, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x30, 0x52, 0x08, 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x61, 0x73, 0x6b, 0x12, 0x28, 0x0a, 0x0f, 0x62, 0x69, 0x6b, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x38, 0x20, 0x01, 0x28, 0x02, 0x48, 0x31, 0x52, 0x0d, 0x62, 0x69, 0x6b, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x69, 0x6b, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x39, 0x20, 0x01, 0x28, 0x02, 0x48, 0x32, 0x52, 0x10, 0x62, 0x69, 0x6b, 0x65, 0x53, 0x68, 0x61, 0x72, 0x65, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x28, 0x0a, 0x0f, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x66, 0x65, 0x72, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x33, 0x52, 0x0d, 0x72, 0x61, 0x69, 0x6c, 0x46, 0x65, 0x72, 0x72, 0x79, 0x43, 0x6f, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x66, 0x65, 0x72, 0x72, 0x79, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x34, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x52, 0x61, 0x69, 0x6c, 0x46, 0x65, 0x72, 0x72, 0x79, 0x12, 0x31, 0x0a, 0x13, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x35, 0x52, 0x12, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x27, 0x0a, 0x0e, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x65, 0x77, 0x61, 0x79, 0x73, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x36, 0x52, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x4f, 0x6e, 0x65, 0x77, 0x61, 0x79, 0x73, 0x12, 0x25, 0x0a, 0x0d, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x08, 0x48, 0x37, 0x52, 0x0c, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x0f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x08, 0x48, 0x38, 0x52, 0x0e, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x73, 0x74, 0x18, 0x40, 0x20, 0x01, 0x28, 0x08, 0x48, 0x39, 0x52, 0x08, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x73, 0x74, 0x12, 0x29, 0x0a, 0x0f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x41, 0x20, 0x01, 0x28, 0x02, 0x48, 0x3a, 0x52, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x18, 0x42, 0x20, 0x01, 0x28, 0x02, 0x48, 0x3b, 0x52, 0x09, 0x75, 0x73, 0x65, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x12, 0x23, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x43, 0x20, 0x01, 0x28, 0x02, 0x48, 0x3c, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x75, 0x73, 0x65, 0x5f, 0x6c, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x73, 0x18, 0x44, 0x20, 0x01, 0x28, 0x02, 0x48, 0x3d, 0x52, 0x10, 0x75, 0x73, 0x65, 0x4c, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x65, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x45, 0x20, 0x01, 0x28, 0x02, 0x48, 0x3e, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x27, 0x0a, 0x0e, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x46, 0x20, 0x01, 0x28, 0x02, 0x48, 0x3f, 0x52, 0x0d, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x36, 0x0a, 0x16, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x47, 0x20, 0x01, 0x28, 0x02, 0x48, 0x40, 0x52, 0x14, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x75, 0x6e, 0x70, 0x61, 0x76, 0x65, 0x64, 0x18, 0x48, 0x20, 0x01, 0x28, 0x08, 0x48, 0x41, 0x52, 0x0e, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x55, 0x6e, 0x70, 0x61, 0x76, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x6f, 0x74, 0x18, 0x49, 0x20, 0x01, 0x28, 0x08, 0x48, 0x42, 0x52, 0x0a, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x48, 0x6f, 0x74, 0x12, 0x23, 0x0a, 0x0c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x6f, 0x76, 0x32, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x43, 0x52, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x48, 0x6f, 0x76, 0x32, 0x12, 0x23, 0x0a, 0x0c, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x6f, 0x76, 0x33, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x44, 0x52, 0x0b, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x48, 0x6f, 0x76, 0x33, 0x12, 0x37, 0x0a, 0x17, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x74, 0x6f, 0x6c, 0x6c, 0x73, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x45, 0x52, 0x14, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x61, 0x73, 0x68, 0x4f, 0x6e, 0x6c, 0x79, 0x54, 0x6f, 0x6c, 0x6c, 0x73, 0x12, 0x39, 0x0a, 0x17, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x4d, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x46, 0x52, 0x16, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x38, 0x0a, 0x0d, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x64, 0x67, 0x65, 0x73, 0x18, 0x4e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x41, 0x76, 0x6f, 0x69, 0x64, 0x45, 0x64, 0x67, 0x65, 0x52, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x64, 0x67, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x10, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x02, 0x48, 0x47, 0x52, 0x0f, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x50, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x78, 0x65, 0x64, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x78, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x51, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x78, 0x6c, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x5f, 0x6c, 0x69, 0x74, 0x18, 0x52, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x75, 0x73, 0x65, 0x4c, 0x69, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x1e, 0x0a, 0x1c, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x6f, 0x6c, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x68, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x6f, 0x6c, 0x6c, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x68, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x1b, 0x0a, 0x19, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x42, 0x1e, 0x0a, 0x1c, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x63, 0x72, 0x6f, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x66, 0x65, 0x72, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x76, 0x6f, 0x69, 0x64, 0x5f, 0x62, 0x61, 0x64, 0x5f, 0x73, 0x75, 0x72, 0x66, 0x61, 0x63, 0x65, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x66, 0x65, 0x72, 0x72, 0x79, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x68, 0x69, 0x67, 0x68, 0x77, 0x61, 0x79, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x6f, 0x6c, 0x6c, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x6f, 0x61, 0x64, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6c, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x42, 0x1b, 0x0a, 0x19, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x68, 0x69, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x69, 0x66, 0x66, 0x69, 0x63, 0x75, 0x6c, 0x74, 0x79, 0x42, 0x11, 0x0a, 0x0f, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x77, 0x61, 0x6c, 0x6b, 0x77, 0x61, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x69, 0x64, 0x65, 0x77, 0x61, 0x6c, 0x6b, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x6c, 0x6c, 0x65, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x72, 0x69, 0x76, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x24, 0x0a, 0x22, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x23, 0x0a, 0x21, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x68, 0x69, 0x6c, 0x6c, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x6f, 0x77, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x0c, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x61, 0x7a, 0x6d, 0x61, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x77, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x78, 0x6c, 0x65, 0x5f, 0x6c, 0x6f, 0x61, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x77, 0x68, 0x65, 0x65, 0x6c, 0x63, 0x68, 0x61, 0x69, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x62, 0x75, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x61, 0x69, 0x6c, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x62, 0x69, 0x6b, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x42, 0x18, 0x0a, 0x16, 0x68, 0x61, 0x73, 0x5f, 0x62, 0x69, 0x6b, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x66, 0x65, 0x72, 0x72, 0x79, 0x5f, 0x63, 0x6f, 0x73, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x72, 0x61, 0x69, 0x6c, 0x5f, 0x66, 0x65, 0x72, 0x72, 0x79, 0x42, 0x19, 0x0a, 0x17, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x6f, 0x6e, 0x65, 0x77, 0x61, 0x79, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x65, 0x73, 0x74, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x6c, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x65, 0x74, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x1c, 0x0a, 0x1a, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x75, 0x6e, 0x70, 0x61, 0x76, 0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x6f, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x6f, 0x76, 0x32, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x6f, 0x76, 0x33, 0x42, 0x1d, 0x0a, 0x1b, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x61, 0x73, 0x68, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x5f, 0x74, 0x6f, 0x6c, 0x6c, 0x73, 0x42, 0x1d, 0x0a, 0x1b, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x22, 0xa6, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, 0x65, 0x5f, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x62, 0x69, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x75, 0x73, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x63, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x6d, 0x6f, 0x64, 0x61, 0x6c, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x65, 0x64, 0x65, 0x73, 0x74, 0x72, 0x69, 0x61, 0x6e, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x74, 0x61, 0x78, 0x69, 0x10, 0x09, 0x12, 0x09, 0x0a, 0x05, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x62, 0x69, 0x6b, 0x65, 0x73, 0x68, 0x61, 0x72, 0x65, 0x10, 0x0b, 0x42, 0x0d, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x68, 0x61, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x75, 0x72, 0x65, 0x73, 0x22, 0x9a, 0x1b, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2d, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x52, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x1c, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x12, 0x41, 0x0a, 0x0f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x10, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x05, 0x6a, 0x73, 0x6f, 0x6e, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x6a, 0x73, 0x6f, 0x6e, 0x70, 0x12, 0x2b, 0x0a, 0x10, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x50, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x05, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x07, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0c, 0x63, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x63, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x63, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x30, 0x0a, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x3f, 0x0a, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x2c, 0x0a, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x44, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06, 0x52, 0x08, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x73, 0x68, 0x61, 0x70, 0x65, 0x12, 0x2d, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x48, 0x07, 0x52, 0x10, 0x72, 0x65, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x2d, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x6f, 0x75, 0x72, 0x73, 0x18, 0x16, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x6f, 0x75, 0x72, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x6f, 0x75, 0x72, 0x73, 0x12, 0x1c, 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x73, 0x12, 0x1a, 0x0a, 0x07, 0x64, 0x65, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x07, 0x64, 0x65, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0a, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0b, 0x52, 0x0d, 0x73, 0x68, 0x6f, 0x77, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x12, 0x35, 0x0a, 0x0b, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x6d, 0x61, 0x74, 0x63, 0x68, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x52, 0x0a, 0x73, 0x68, 0x61, 0x70, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0c, 0x67, 0x70, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0c, 0x52, 0x0b, 0x67, 0x70, 0x73, 0x41, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x12, 0x25, 0x0a, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0d, 0x52, 0x0c, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x12, 0x30, 0x0a, 0x13, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x20, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0e, 0x52, 0x11, 0x74, 0x75, 0x72, 0x6e, 0x50, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x3b, 0x0a, 0x0d, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x22, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x11, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x24, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0f, 0x52, 0x10, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x61, 0x67, 0x65, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x25, 0x20, 0x01, 0x28, 0x08, 0x48, 0x10, 0x52, 0x0d, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x26, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x53, 0x68, 0x61, 0x70, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0b, 0x73, 0x68, 0x61, 0x70, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x20, 0x0a, 0x0a, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x11, 0x52, 0x0a, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x02, 0x48, 0x12, 0x52, 0x15, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x0e, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x18, 0x29, 0x20, 0x01, 0x28, 0x08, 0x48, 0x13, 0x52, 0x0d, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x69, 0x65, 0x77, 0x73, 0x12, 0x2b, 0x0a, 0x10, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x14, 0x52, 0x0f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x50, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x10, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x08, 0x48, 0x15, 0x52, 0x0f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x45, 0x78, 0x69, 0x74, 0x73, 0x12, 0x2d, 0x0a, 0x11, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x16, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x2e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x39, 0x0a, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x73, 0x18, 0x2f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x52, 0x69, 0x6e, 0x67, 0x52, 0x0f, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x50, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x73, 0x12, 0x3b, 0x0a, 0x18, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x69, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x18, 0x30, 0x20, 0x01, 0x28, 0x08, 0x48, 0x17, 0x52, 0x17, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x7a, 0x65, 0x42, 0x69, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x12, 0x45, 0x0a, 0x10, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x31, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x18, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0e, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x08, 0x48, 0x19, 0x52, 0x0d, 0x73, 0x6b, 0x69, 0x70, 0x4f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x73, 0x12, 0x58, 0x0a, 0x14, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x33, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x52, 0x13, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x12, 0x70, 0x62, 0x66, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x34, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x50, 0x62, 0x66, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x52, 0x10, 0x70, 0x62, 0x66, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x76, 0x65, 0x72, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x10, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x36, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x1a, 0x52, 0x0f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x4e, 0x0a, 0x0d, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x2e, 0x43, 0x6f, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x22, 0x0a, 0x05, 0x55, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x0e, 0x0a, 0x0a, 0x6b, 0x69, 0x6c, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x6d, 0x69, 0x6c, 0x65, 0x73, 0x10, 0x01, 0x22, 0x2e, 0x0a, 0x06, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x08, 0x0a, 0x04, 0x6a, 0x73, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x67, 0x70, 0x78, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x6f, 0x73, 0x72, 0x6d, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x62, 0x66, 0x10, 0x03, 0x22, 0xdd, 0x01, 0x0a, 0x06, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x65, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x6f, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x65, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x74, 0x72, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x10, 0x08, 0x12, 0x15, 0x0a, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x69, 0x74, 0x5f, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x63, 0x65, 0x6e, 0x74, 0x72, 0x6f, 0x69, 0x64, 0x10, 0x0b, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x0c, 0x22, 0x55, 0x0a, 0x0c, 0x44, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x61, 0x74, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x72, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x62, 0x79, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74, 0x10, 0x04, 0x22, 0x5a, 0x0a, 0x13, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x6f, 0x73, 0x74, 0x73, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x69, 0x64, 0x73, 0x10, 0x04, 0x42, 0x0e, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x70, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x76, 0x65, 0x72, 0x62, 0x6f, 0x73, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x6f, 0x6c, 0x79, 0x67, 0x6f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x68, 0x61, 0x73, 0x5f, 0x64, 0x65, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x68, 0x6f, 0x77, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x68, 0x61, 0x73, 0x5f, 0x67, 0x70, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x72, 0x61, 0x63, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x42, 0x19, 0x0a, 0x17, 0x68, 0x61, 0x73, 0x5f, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x70, 0x65, 0x6e, 0x61, 0x6c, 0x74, 0x79, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x62, 0x72, 0x65, 0x61, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x75, 0x73, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x6c, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x73, 0x42, 0x1c, 0x0a, 0x1a, 0x68, 0x61, 0x73, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x70, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x67, 0x75, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x73, 0x42, 0x17, 0x0a, 0x15, 0x68, 0x61, 0x73, 0x5f, 0x6c, 0x69, 0x6e, 0x65, 0x61, 0x72, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x42, 0x1e, 0x0a, 0x1c, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x69, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x6b, 0x69, 0x70, 0x5f, 0x6f, 0x70, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2a, 0x3b, 0x0a, 0x0a, 0x53, 0x68, 0x61, 0x70, 0x65, 0x4d, 0x61, 0x74, 0x63, 0x68, 0x12, 0x10, 0x0a, 0x0c, 0x77, 0x61, 0x6c, 0x6b, 0x5f, 0x6f, 0x72, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x77, 0x61, 0x6c, 0x6b, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x6e, 0x61, 0x70, 0x10, 0x02, 0x2a, 0x37, 0x0a, 0x0c, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x10, 0x02, 0x2a, 0x3b, 0x0a, 0x0e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6d, 0x61, 0x6e, 0x65, 0x75, 0x76, 0x65, 0x72, 0x73, 0x10, 0x02, 0x2a, 0x38, 0x0a, 0x0b, 0x53, 0x68, 0x61, 0x70, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x36, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x6c, 0x79, 0x6c, 0x69, 0x6e, 0x65, 0x35, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x67, 0x65, 0x6f, 0x6a, 0x73, 0x6f, 0x6e, 0x10, 0x02, 0x42, 0x40, 0x48, 0x03, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x2e, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2e, 0x69, 0x6f, 0x2f, 0x63, 0x6f, 0x6f, 0x70, 0x67, 0x6f, 0x2d, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x2f, 0x72, 0x6f, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x2d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x61, 0x6c, 0x68, 0x61, 0x6c, 0x6c, 0x61, 0x50, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_options_proto_rawDescOnce sync.Once file_options_proto_rawDescData = file_options_proto_rawDesc ) func file_options_proto_rawDescGZIP() []byte { file_options_proto_rawDescOnce.Do(func() { file_options_proto_rawDescData = protoimpl.X.CompressGZIP(file_options_proto_rawDescData) }) return file_options_proto_rawDescData } var file_options_proto_enumTypes = make([]protoimpl.EnumInfo, 10) var file_options_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_options_proto_goTypes = []interface{}{ (ShapeMatch)(0), // 0: valhalla.ShapeMatch (FilterAction)(0), // 1: valhalla.FilterAction (DirectionsType)(0), // 2: valhalla.DirectionsType (ShapeFormat)(0), // 3: valhalla.ShapeFormat (Costing_Type)(0), // 4: valhalla.Costing.Type (Options_Units)(0), // 5: valhalla.Options.Units (Options_Format)(0), // 6: valhalla.Options.Format (Options_Action)(0), // 7: valhalla.Options.Action (Options_DateTimeType)(0), // 8: valhalla.Options.DateTimeType (Options_ExpansionProperties)(0), // 9: valhalla.Options.ExpansionProperties (*Contour)(nil), // 10: valhalla.Contour (*Ring)(nil), // 11: valhalla.Ring (*PbfFieldSelector)(nil), // 12: valhalla.PbfFieldSelector (*AvoidEdge)(nil), // 13: valhalla.AvoidEdge (*Costing)(nil), // 14: valhalla.Costing (*Options)(nil), // 15: valhalla.Options (*Costing_Options)(nil), // 16: valhalla.Costing.Options nil, // 17: valhalla.Options.CostingsEntry (*LatLng)(nil), // 18: valhalla.LatLng (*Location)(nil), // 19: valhalla.Location } var file_options_proto_depIdxs = []int32{ 18, // 0: valhalla.Ring.coords:type_name -> valhalla.LatLng 16, // 1: valhalla.Costing.options:type_name -> valhalla.Costing.Options 4, // 2: valhalla.Costing.type:type_name -> valhalla.Costing.Type 5, // 3: valhalla.Options.units:type_name -> valhalla.Options.Units 2, // 4: valhalla.Options.directions_type:type_name -> valhalla.DirectionsType 6, // 5: valhalla.Options.format:type_name -> valhalla.Options.Format 7, // 6: valhalla.Options.action:type_name -> valhalla.Options.Action 4, // 7: valhalla.Options.costing_type:type_name -> valhalla.Costing.Type 17, // 8: valhalla.Options.costings:type_name -> valhalla.Options.CostingsEntry 19, // 9: valhalla.Options.locations:type_name -> valhalla.Location 19, // 10: valhalla.Options.exclude_locations:type_name -> valhalla.Location 19, // 11: valhalla.Options.sources:type_name -> valhalla.Location 19, // 12: valhalla.Options.targets:type_name -> valhalla.Location 8, // 13: valhalla.Options.date_time_type:type_name -> valhalla.Options.DateTimeType 19, // 14: valhalla.Options.shape:type_name -> valhalla.Location 10, // 15: valhalla.Options.contours:type_name -> valhalla.Contour 19, // 16: valhalla.Options.trace:type_name -> valhalla.Location 0, // 17: valhalla.Options.shape_match:type_name -> valhalla.ShapeMatch 1, // 18: valhalla.Options.filter_action:type_name -> valhalla.FilterAction 3, // 19: valhalla.Options.shape_format:type_name -> valhalla.ShapeFormat 14, // 20: valhalla.Options.recostings:type_name -> valhalla.Costing 11, // 21: valhalla.Options.exclude_polygons:type_name -> valhalla.Ring 7, // 22: valhalla.Options.expansion_action:type_name -> valhalla.Options.Action 9, // 23: valhalla.Options.expansion_properties:type_name -> valhalla.Options.ExpansionProperties 12, // 24: valhalla.Options.pbf_field_selector:type_name -> valhalla.PbfFieldSelector 1, // 25: valhalla.Costing.Options.filter_stop_action:type_name -> valhalla.FilterAction 1, // 26: valhalla.Costing.Options.filter_operator_action:type_name -> valhalla.FilterAction 1, // 27: valhalla.Costing.Options.filter_route_action:type_name -> valhalla.FilterAction 13, // 28: valhalla.Costing.Options.exclude_edges:type_name -> valhalla.AvoidEdge 14, // 29: valhalla.Options.CostingsEntry.value:type_name -> valhalla.Costing 30, // [30:30] is the sub-list for method output_type 30, // [30:30] is the sub-list for method input_type 30, // [30:30] is the sub-list for extension type_name 30, // [30:30] is the sub-list for extension extendee 0, // [0:30] is the sub-list for field type_name } func init() { file_options_proto_init() } func file_options_proto_init() { if File_options_proto != nil { return } file_common_proto_init() if !protoimpl.UnsafeEnabled { file_options_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Contour); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_options_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Ring); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_options_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PbfFieldSelector); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_options_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AvoidEdge); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_options_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Costing); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_options_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Options); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_options_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Costing_Options); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } file_options_proto_msgTypes[0].OneofWrappers = []interface{}{ (*Contour_Time)(nil), (*Contour_Color)(nil), (*Contour_Distance)(nil), } file_options_proto_msgTypes[3].OneofWrappers = []interface{}{ (*AvoidEdge_Id)(nil), (*AvoidEdge_PercentAlong)(nil), } file_options_proto_msgTypes[4].OneofWrappers = []interface{}{ (*Costing_Options_)(nil), (*Costing_Name)(nil), (*Costing_FilterClosures)(nil), } file_options_proto_msgTypes[5].OneofWrappers = []interface{}{ (*Options_Language)(nil), (*Options_Id)(nil), (*Options_Jsonp)(nil), (*Options_EncodedPolyline)(nil), (*Options_Range)(nil), (*Options_Verbose)(nil), (*Options_DateTime)(nil), (*Options_ResampleDistance)(nil), (*Options_Polygons)(nil), (*Options_Denoise)(nil), (*Options_Generalize)(nil), (*Options_ShowLocations)(nil), (*Options_GpsAccuracy)(nil), (*Options_SearchRadius)(nil), (*Options_TurnPenaltyFactor)(nil), (*Options_BreakageDistance)(nil), (*Options_UseTimestamps)(nil), (*Options_Alternates)(nil), (*Options_InterpolationDistance)(nil), (*Options_GuidanceViews)(nil), (*Options_HeightPrecision)(nil), (*Options_RoundaboutExits)(nil), (*Options_LinearReferences)(nil), (*Options_PrioritizeBidirectional)(nil), (*Options_ExpansionAction)(nil), (*Options_SkipOpposites)(nil), (*Options_MatrixLocations)(nil), } file_options_proto_msgTypes[6].OneofWrappers = []interface{}{ (*Costing_Options_ManeuverPenalty)(nil), (*Costing_Options_DestinationOnlyPenalty)(nil), (*Costing_Options_GateCost)(nil), (*Costing_Options_GatePenalty)(nil), (*Costing_Options_TollBoothCost)(nil), (*Costing_Options_TollBoothPenalty)(nil), (*Costing_Options_AlleyPenalty)(nil), (*Costing_Options_CountryCrossingCost)(nil), (*Costing_Options_CountryCrossingPenalty)(nil), (*Costing_Options_FerryCost)(nil), (*Costing_Options_AvoidBadSurfaces)(nil), (*Costing_Options_UseFerry)(nil), (*Costing_Options_UseHighways)(nil), (*Costing_Options_UseTolls)(nil), (*Costing_Options_UseRoads)(nil), (*Costing_Options_MaxDistance)(nil), (*Costing_Options_WalkingSpeed)(nil), (*Costing_Options_StepPenalty)(nil), (*Costing_Options_MaxGrade)(nil), (*Costing_Options_MaxHikingDifficulty)(nil), (*Costing_Options_ModeFactor)(nil), (*Costing_Options_WalkwayFactor)(nil), (*Costing_Options_SidewalkFactor)(nil), (*Costing_Options_AlleyFactor)(nil), (*Costing_Options_DrivewayFactor)(nil), (*Costing_Options_DrivewayPenalty)(nil), (*Costing_Options_TransitStartEndMaxDistance)(nil), (*Costing_Options_TransitTransferMaxDistance)(nil), (*Costing_Options_TransportType)(nil), (*Costing_Options_TopSpeed)(nil), (*Costing_Options_UseHills)(nil), (*Costing_Options_UsePrimary)(nil), (*Costing_Options_UseTrails)(nil), (*Costing_Options_LowClassPenalty)(nil), (*Costing_Options_Hazmat)(nil), (*Costing_Options_Weight)(nil), (*Costing_Options_AxleLoad)(nil), (*Costing_Options_Height)(nil), (*Costing_Options_Width)(nil), (*Costing_Options_Length)(nil), (*Costing_Options_CyclingSpeed)(nil), (*Costing_Options_Wheelchair)(nil), (*Costing_Options_Bicycle)(nil), (*Costing_Options_UseBus)(nil), (*Costing_Options_UseRail)(nil), (*Costing_Options_UseTransfers)(nil), (*Costing_Options_TransferCost)(nil), (*Costing_Options_TransferPenalty)(nil), (*Costing_Options_FlowMask)(nil), (*Costing_Options_BikeShareCost)(nil), (*Costing_Options_BikeSharePenalty)(nil), (*Costing_Options_RailFerryCost)(nil), (*Costing_Options_UseRailFerry)(nil), (*Costing_Options_IgnoreRestrictions)(nil), (*Costing_Options_IgnoreOneways)(nil), (*Costing_Options_IgnoreAccess)(nil), (*Costing_Options_IgnoreClosures)(nil), (*Costing_Options_Shortest)(nil), (*Costing_Options_ServicePenalty)(nil), (*Costing_Options_UseTracks)(nil), (*Costing_Options_UseDistance)(nil), (*Costing_Options_UseLivingStreets)(nil), (*Costing_Options_ServiceFactor)(nil), (*Costing_Options_ClosureFactor)(nil), (*Costing_Options_PrivateAccessPenalty)(nil), (*Costing_Options_ExcludeUnpaved)(nil), (*Costing_Options_IncludeHot)(nil), (*Costing_Options_IncludeHov2)(nil), (*Costing_Options_IncludeHov3)(nil), (*Costing_Options_ExcludeCashOnlyTolls)(nil), (*Costing_Options_RestrictionProbability)(nil), (*Costing_Options_ElevatorPenalty)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_options_proto_rawDesc, NumEnums: 10, NumMessages: 8, NumExtensions: 0, NumServices: 0, }, GoTypes: file_options_proto_goTypes, DependencyIndexes: file_options_proto_depIdxs, EnumInfos: file_options_proto_enumTypes, MessageInfos: file_options_proto_msgTypes, }.Build() File_options_proto = out.File file_options_proto_rawDesc = nil file_options_proto_goTypes = nil file_options_proto_depIdxs = nil }