From 276c6505f399dee96871e3d351086ef9be9daf17 Mon Sep 17 00:00:00 2001 From: bwzsilicon Date: Thu, 14 Nov 2024 16:56:42 -0500 Subject: [PATCH] Creating Rocket Telemetry Go Proxy --- .../workflows/rocket_telem_proxy_build.yml | 118 +++ fill/umbilical/proto_build.h | 2 +- go-proxies/fill-telem-proxy/main.go | 4 +- go-proxies/pkg/types/types.go | 80 +- go-proxies/proto-out/command.pb.go | 785 ++++++++++-------- go-proxies/proto-out/command_grpc.pb.go | 30 +- go-proxies/proxy_build.sh | 6 +- go-proxies/rocket-telem-proxy/Dockerfile | 36 + go-proxies/rocket-telem-proxy/main | Bin 0 -> 17360466 bytes go-proxies/rocket-telem-proxy/main.go | 61 ++ go-proxies/websocket-proxy/main.go | 2 +- 11 files changed, 758 insertions(+), 366 deletions(-) create mode 100644 .github/workflows/rocket_telem_proxy_build.yml create mode 100644 go-proxies/rocket-telem-proxy/Dockerfile create mode 100755 go-proxies/rocket-telem-proxy/main create mode 100644 go-proxies/rocket-telem-proxy/main.go diff --git a/.github/workflows/rocket_telem_proxy_build.yml b/.github/workflows/rocket_telem_proxy_build.yml new file mode 100644 index 00000000..e3071411 --- /dev/null +++ b/.github/workflows/rocket_telem_proxy_build.yml @@ -0,0 +1,118 @@ +name: Create and publish the Telemetry Proxy Docker image + +# Configures this workflow to run every time a change is pushed to the branch called `main` or a pull request to `main` is created +on: + push: + branches: ['main'] + pull_request: + +# Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds. +env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository_owner }}/rocket-telem-proxy + +jobs: + build: + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + platform: + - linux/amd64 + - linux/arm64 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Prepare + run: | + platform=${{ matrix.platform }} + echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=raw,value=latest,enable={{is_default_branch}} + type=ref,event=branch,enable=${{ github.ref != 'refs/heads/main' }} + type=ref,event=pr + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to the Container registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and push by digest + id: build + uses: docker/build-push-action@v6 + with: + context: . + file: go-proxies/rocket-telem-proxy/Dockerfile + platforms: ${{ matrix.platform }} + labels: ${{ steps.meta.outputs.labels }} + outputs: type=image,name=${{ env.REGISTRY }}/${{ env.IMAGE_NAME }},push-by-digest=true,name-canonical=true,push=true + cache-from: type=gha + cache-to: type=gha,mode=max + + - name: Export digest + run: | + mkdir -p /tmp/digests + digest="${{ steps.build.outputs.digest }}" + touch "/tmp/digests/${digest#sha256:}" + + - name: Upload digest + uses: actions/upload-artifact@v4 + with: + name: digests-${{ env.PLATFORM_PAIR }} + path: /tmp/digests/* + if-no-files-found: error + retention-days: 1 + + merge: + runs-on: ubuntu-latest + needs: + - build + steps: + - name: Download digests + uses: actions/download-artifact@v4 + with: + path: /tmp/digests + pattern: digests-* + merge-multiple: true + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + tags: | + type=raw,value=latest,enable={{is_default_branch}} + type=ref,event=branch,enable=${{ github.ref != 'refs/heads/main' }} + type=ref,event=pr + + - name: Log in to the Container registry + uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Create manifest list and push + working-directory: /tmp/digests + run: | + docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ + $(printf '${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}@sha256:%s ' *) + + - name: Inspect image + run: | + docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.version }} diff --git a/fill/umbilical/proto_build.h b/fill/umbilical/proto_build.h index 0faf4564..23637f18 100644 --- a/fill/umbilical/proto_build.h +++ b/fill/umbilical/proto_build.h @@ -13,7 +13,7 @@ using command::RocketUmbTelemetry; class RocketTelemetryProtoBuilder { private: - const char* usb_port = "PUT NAME HERE"; + const char* usb_port = "/dev/ttyACM0"; std::ifstream serial_data; public: diff --git a/go-proxies/fill-telem-proxy/main.go b/go-proxies/fill-telem-proxy/main.go index 815d296c..88977f60 100644 --- a/go-proxies/fill-telem-proxy/main.go +++ b/go-proxies/fill-telem-proxy/main.go @@ -37,7 +37,7 @@ func main() { go func(ctx context.Context, grpcClient pb.FillStationTelemeterClient) { for { - stream, err := grpcClient.StreamTelemetry(ctx, &pb.TelemetryRequest{}) + stream, err := grpcClient.StreamTelemetry(ctx, &pb.FillStationTelemetryRequest{}) if err != nil { log.Printf("could not receive stream: %v, retrying in 5 seconds...", err) time.Sleep(5 * time.Second) @@ -52,7 +52,7 @@ func main() { } // Store packet - datastore.Store(packet) + datastore.FillStationTelemetryStore(packet) } } }(ctx, grpcClient) diff --git a/go-proxies/pkg/types/types.go b/go-proxies/pkg/types/types.go index b9f3a488..bc5367ce 100644 --- a/go-proxies/pkg/types/types.go +++ b/go-proxies/pkg/types/types.go @@ -78,7 +78,7 @@ func (d *Datastore) Init(ctx context.Context) { } // Store parses a packet and writes it to InfluxDB -func (d *Datastore) Store(packet *pb.FillStationTelemetry) { +func (d *Datastore) FillStationTelemetryStore(packet *pb.FillStationTelemetry) { // Create tags map tags := map[string]string{} @@ -100,6 +100,84 @@ func (d *Datastore) Store(packet *pb.FillStationTelemetry) { } } +// Stores RocketTelemetry to InfluxDB +func (d *Datastore) RocketTelemetryStore(packet *pb.RocketTelemetry) { + timestamp := time.Now() + // Create tags map + tags := map[string]string{} + + // Create fields map + fields := map[string]interface{}{} + + // Access Umb telemetry data if available + if packet.UmbTelem != nil { + umbTelem := packet.UmbTelem + fields["ms_since_boot"] = umbTelem.MsSinceBoot + fields["radio_state"] = umbTelem.RadioState + fields["transmit_state"] = umbTelem.TransmitState + fields["voltage"] = umbTelem.Voltage + fields["pt3"] = umbTelem.Pt3 + fields["pt4"] = umbTelem.Pt4 + fields["rtd_temp"] = umbTelem.RtdTemp + + if umbTelem.Metadata != nil { + metaData := umbTelem.Metadata + + // Tags have to be of type [string][string] + tags["alt_armed"] = fmt.Sprintf("%v", metaData.AltArmed) + tags["alt_valid"] = fmt.Sprintf("%v", metaData.AltValid) + tags["gps_valid"] = fmt.Sprintf("%v", metaData.GpsValid) + tags["imu_valid"] = fmt.Sprintf("%v", metaData.ImuValid) + tags["acc_valid"] = fmt.Sprintf("%v", metaData.AccValid) + tags["therm_valid"] = fmt.Sprintf("%v", metaData.ThermValid) + tags["voltage_valid"] = fmt.Sprintf("%v", metaData.VoltageValid) + tags["adc_valid"] = fmt.Sprintf("%v", metaData.AdcValid) + tags["fram_valid"] = fmt.Sprintf("%v", metaData.FramValid) + tags["sd_valid"] = fmt.Sprintf("%v", metaData.SdValid) + tags["gps_msg_valid"] = fmt.Sprintf("%v", metaData.GpsMsgValid) + tags["mav_state"] = fmt.Sprintf("%v", metaData.MavState) + tags["sv_state"] = fmt.Sprintf("%v", metaData.SvState) + tags["flight_mode"] = metaData.FlightMode.String() + } + + if umbTelem.Events != nil { + events := umbTelem.Events + fields["altitude_armed"] = events.AltitudeArmed + fields["altimeter_init_failed"] = events.AltimeterInitFailed + fields["altimeter_reading_failed"] = events.AltimeterReadingFailed + fields["gps_init_failed"] = events.GpsInitFailed + fields["gps_reading_failed"] = events.GpsReadingFailed + fields["imu_init_failed"] = events.ImuInitFailed + fields["imu_reading_failed"] = events.ImuReadingFailed + fields["accelerometer_init_failed"] = events.AccelerometerInitFailed + fields["accelerometer_reading_failed"] = events.AccelerometerReadingFailed + fields["thermometer_init_failed"] = events.ThermometerInitFailed + fields["thermometer_reading_failed"] = events.ThermometerReadingFailed + fields["voltage_init_failed"] = events.VoltageInitFailed + fields["voltage_reading_failed"] = events.VoltageReadingFailed + fields["adc_init_failed"] = events.AdcInitFailed + fields["adc_reading_failed"] = events.AdcReadingFailed + fields["fram_init_failed"] = events.FramInitFailed + fields["fram_write_failed"] = events.FramWriteFailed + fields["sd_init_failed"] = events.SdInitFailed + fields["sd_write_failed"] = events.SdWriteFailed + fields["mav_was_actuated"] = events.MavWasActuated + fields["sv_was_actuated"] = events.SvWasActuated + fields["main_deploy_wait_end"] = events.MainDeployWaitEnd + fields["main_log_shutoff"] = events.MainLogShutoff + fields["cycle_overflow"] = events.CycleOverflow + fields["invalid_command"] = events.InvalidCommand + } + } + + point := write.NewPoint("telemetry", tags, fields, timestamp) + writeCtx, writeCancel := context.WithTimeout(d.ctx, time.Second) + defer writeCancel() + if err := d.writeAPI.WritePoint(writeCtx, point); err != nil { + log.Println(err) + } +} + // Query parses and executes a json request for historical data func (d *Datastore) Query(req HistoricalDataRequest) HistoricalDataResponse { // Validate input (important to prevent injection attacks!) diff --git a/go-proxies/proto-out/command.pb.go b/go-proxies/proto-out/command.pb.go index 374e9406..4b80ad1a 100644 --- a/go-proxies/proto-out/command.pb.go +++ b/go-proxies/proto-out/command.pb.go @@ -5,8 +5,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 -// protoc v3.12.4 +// protoc-gen-go v1.35.2 +// protoc v3.20.3 // source: command.proto package command_proto @@ -225,26 +225,26 @@ func (*CommandReply) Descriptor() ([]byte, []int) { } // The telemetry request message -type TelemetryRequest struct { +type FillStationTelemetryRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *TelemetryRequest) Reset() { - *x = TelemetryRequest{} +func (x *FillStationTelemetryRequest) Reset() { + *x = FillStationTelemetryRequest{} mi := &file_command_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } -func (x *TelemetryRequest) String() string { +func (x *FillStationTelemetryRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TelemetryRequest) ProtoMessage() {} +func (*FillStationTelemetryRequest) ProtoMessage() {} -func (x *TelemetryRequest) ProtoReflect() protoreflect.Message { +func (x *FillStationTelemetryRequest) ProtoReflect() protoreflect.Message { mi := &file_command_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -256,42 +256,92 @@ func (x *TelemetryRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TelemetryRequest.ProtoReflect.Descriptor instead. -func (*TelemetryRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use FillStationTelemetryRequest.ProtoReflect.Descriptor instead. +func (*FillStationTelemetryRequest) Descriptor() ([]byte, []int) { return file_command_proto_rawDescGZIP(), []int{2} } +// Rocket Telemetry Request +type RocketTelemetryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsRocketTelemetryRequest bool `protobuf:"varint,1,opt,name=isRocketTelemetryRequest,proto3" json:"isRocketTelemetryRequest,omitempty"` +} + +func (x *RocketTelemetryRequest) Reset() { + *x = RocketTelemetryRequest{} + mi := &file_command_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RocketTelemetryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RocketTelemetryRequest) ProtoMessage() {} + +func (x *RocketTelemetryRequest) ProtoReflect() protoreflect.Message { + mi := &file_command_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RocketTelemetryRequest.ProtoReflect.Descriptor instead. +func (*RocketTelemetryRequest) Descriptor() ([]byte, []int) { + return file_command_proto_rawDescGZIP(), []int{3} +} + +func (x *RocketTelemetryRequest) GetIsRocketTelemetryRequest() bool { + if x != nil { + return x.IsRocketTelemetryRequest + } + return false +} + type Events struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - KeyArmed bool `protobuf:"varint,1,opt,name=key_armed,json=keyArmed,proto3" json:"key_armed,omitempty"` - AltitudeArmed bool `protobuf:"varint,2,opt,name=altitude_armed,json=altitudeArmed,proto3" json:"altitude_armed,omitempty"` - AltimeterInitFailed bool `protobuf:"varint,3,opt,name=altimeter_init_failed,json=altimeterInitFailed,proto3" json:"altimeter_init_failed,omitempty"` - AltimeterReadingFailed bool `protobuf:"varint,4,opt,name=altimeter_reading_failed,json=altimeterReadingFailed,proto3" json:"altimeter_reading_failed,omitempty"` - AltimeterWasTurnedOff bool `protobuf:"varint,5,opt,name=altimeter_was_turned_off,json=altimeterWasTurnedOff,proto3" json:"altimeter_was_turned_off,omitempty"` - GpsInitFailed bool `protobuf:"varint,6,opt,name=gps_init_failed,json=gpsInitFailed,proto3" json:"gps_init_failed,omitempty"` - GpsReadingFailed bool `protobuf:"varint,7,opt,name=gps_reading_failed,json=gpsReadingFailed,proto3" json:"gps_reading_failed,omitempty"` - GpsWasTurnedOff bool `protobuf:"varint,8,opt,name=gps_was_turned_off,json=gpsWasTurnedOff,proto3" json:"gps_was_turned_off,omitempty"` - ImuInitFailed bool `protobuf:"varint,9,opt,name=imu_init_failed,json=imuInitFailed,proto3" json:"imu_init_failed,omitempty"` - ImuReadingFailed bool `protobuf:"varint,10,opt,name=imu_reading_failed,json=imuReadingFailed,proto3" json:"imu_reading_failed,omitempty"` - ImuWasTurnedOff bool `protobuf:"varint,11,opt,name=imu_was_turned_off,json=imuWasTurnedOff,proto3" json:"imu_was_turned_off,omitempty"` - AccelerometerInitFailed bool `protobuf:"varint,12,opt,name=accelerometer_init_failed,json=accelerometerInitFailed,proto3" json:"accelerometer_init_failed,omitempty"` - AccelerometerReadingFailed bool `protobuf:"varint,13,opt,name=accelerometer_reading_failed,json=accelerometerReadingFailed,proto3" json:"accelerometer_reading_failed,omitempty"` - AccelerometerWasTurnedOff bool `protobuf:"varint,14,opt,name=accelerometer_was_turned_off,json=accelerometerWasTurnedOff,proto3" json:"accelerometer_was_turned_off,omitempty"` - ThermometerInitFailed bool `protobuf:"varint,15,opt,name=thermometer_init_failed,json=thermometerInitFailed,proto3" json:"thermometer_init_failed,omitempty"` - ThermometerReadingFailed bool `protobuf:"varint,16,opt,name=thermometer_reading_failed,json=thermometerReadingFailed,proto3" json:"thermometer_reading_failed,omitempty"` - ThermometerWasTurnedOff bool `protobuf:"varint,17,opt,name=thermometer_was_turned_off,json=thermometerWasTurnedOff,proto3" json:"thermometer_was_turned_off,omitempty"` + AltitudeArmed bool `protobuf:"varint,1,opt,name=altitude_armed,json=altitudeArmed,proto3" json:"altitude_armed,omitempty"` + AltimeterInitFailed bool `protobuf:"varint,2,opt,name=altimeter_init_failed,json=altimeterInitFailed,proto3" json:"altimeter_init_failed,omitempty"` + AltimeterReadingFailed bool `protobuf:"varint,3,opt,name=altimeter_reading_failed,json=altimeterReadingFailed,proto3" json:"altimeter_reading_failed,omitempty"` + GpsInitFailed bool `protobuf:"varint,4,opt,name=gps_init_failed,json=gpsInitFailed,proto3" json:"gps_init_failed,omitempty"` + GpsReadingFailed bool `protobuf:"varint,5,opt,name=gps_reading_failed,json=gpsReadingFailed,proto3" json:"gps_reading_failed,omitempty"` + ImuInitFailed bool `protobuf:"varint,6,opt,name=imu_init_failed,json=imuInitFailed,proto3" json:"imu_init_failed,omitempty"` + ImuReadingFailed bool `protobuf:"varint,7,opt,name=imu_reading_failed,json=imuReadingFailed,proto3" json:"imu_reading_failed,omitempty"` + AccelerometerInitFailed bool `protobuf:"varint,8,opt,name=accelerometer_init_failed,json=accelerometerInitFailed,proto3" json:"accelerometer_init_failed,omitempty"` + AccelerometerReadingFailed bool `protobuf:"varint,9,opt,name=accelerometer_reading_failed,json=accelerometerReadingFailed,proto3" json:"accelerometer_reading_failed,omitempty"` + ThermometerInitFailed bool `protobuf:"varint,10,opt,name=thermometer_init_failed,json=thermometerInitFailed,proto3" json:"thermometer_init_failed,omitempty"` + ThermometerReadingFailed bool `protobuf:"varint,11,opt,name=thermometer_reading_failed,json=thermometerReadingFailed,proto3" json:"thermometer_reading_failed,omitempty"` + VoltageInitFailed bool `protobuf:"varint,12,opt,name=voltage_init_failed,json=voltageInitFailed,proto3" json:"voltage_init_failed,omitempty"` + VoltageReadingFailed bool `protobuf:"varint,13,opt,name=voltage_reading_failed,json=voltageReadingFailed,proto3" json:"voltage_reading_failed,omitempty"` + AdcInitFailed bool `protobuf:"varint,14,opt,name=adc_init_failed,json=adcInitFailed,proto3" json:"adc_init_failed,omitempty"` + AdcReadingFailed bool `protobuf:"varint,15,opt,name=adc_reading_failed,json=adcReadingFailed,proto3" json:"adc_reading_failed,omitempty"` + FramInitFailed bool `protobuf:"varint,16,opt,name=fram_init_failed,json=framInitFailed,proto3" json:"fram_init_failed,omitempty"` + FramWriteFailed bool `protobuf:"varint,17,opt,name=fram_write_failed,json=framWriteFailed,proto3" json:"fram_write_failed,omitempty"` SdInitFailed bool `protobuf:"varint,18,opt,name=sd_init_failed,json=sdInitFailed,proto3" json:"sd_init_failed,omitempty"` SdWriteFailed bool `protobuf:"varint,19,opt,name=sd_write_failed,json=sdWriteFailed,proto3" json:"sd_write_failed,omitempty"` - RfmInitFailed bool `protobuf:"varint,20,opt,name=rfm_init_failed,json=rfmInitFailed,proto3" json:"rfm_init_failed,omitempty"` - RfmTransmitFailed bool `protobuf:"varint,21,opt,name=rfm_transmit_failed,json=rfmTransmitFailed,proto3" json:"rfm_transmit_failed,omitempty"` + MavWasActuated bool `protobuf:"varint,20,opt,name=mav_was_actuated,json=mavWasActuated,proto3" json:"mav_was_actuated,omitempty"` + SvWasActuated bool `protobuf:"varint,21,opt,name=sv_was_actuated,json=svWasActuated,proto3" json:"sv_was_actuated,omitempty"` + MainDeployWaitEnd bool `protobuf:"varint,22,opt,name=main_deploy_wait_end,json=mainDeployWaitEnd,proto3" json:"main_deploy_wait_end,omitempty"` + MainLogShutoff bool `protobuf:"varint,23,opt,name=main_log_shutoff,json=mainLogShutoff,proto3" json:"main_log_shutoff,omitempty"` + CycleOverflow bool `protobuf:"varint,24,opt,name=cycle_overflow,json=cycleOverflow,proto3" json:"cycle_overflow,omitempty"` + InvalidCommand bool `protobuf:"varint,25,opt,name=invalid_command,json=invalidCommand,proto3" json:"invalid_command,omitempty"` } func (x *Events) Reset() { *x = Events{} - mi := &file_command_proto_msgTypes[3] + mi := &file_command_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -303,7 +353,7 @@ func (x *Events) String() string { func (*Events) ProtoMessage() {} func (x *Events) ProtoReflect() protoreflect.Message { - mi := &file_command_proto_msgTypes[3] + mi := &file_command_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -316,14 +366,7 @@ func (x *Events) ProtoReflect() protoreflect.Message { // Deprecated: Use Events.ProtoReflect.Descriptor instead. func (*Events) Descriptor() ([]byte, []int) { - return file_command_proto_rawDescGZIP(), []int{3} -} - -func (x *Events) GetKeyArmed() bool { - if x != nil { - return x.KeyArmed - } - return false + return file_command_proto_rawDescGZIP(), []int{4} } func (x *Events) GetAltitudeArmed() bool { @@ -347,93 +390,100 @@ func (x *Events) GetAltimeterReadingFailed() bool { return false } -func (x *Events) GetAltimeterWasTurnedOff() bool { +func (x *Events) GetGpsInitFailed() bool { if x != nil { - return x.AltimeterWasTurnedOff + return x.GpsInitFailed } return false } -func (x *Events) GetGpsInitFailed() bool { +func (x *Events) GetGpsReadingFailed() bool { if x != nil { - return x.GpsInitFailed + return x.GpsReadingFailed } return false } -func (x *Events) GetGpsReadingFailed() bool { +func (x *Events) GetImuInitFailed() bool { if x != nil { - return x.GpsReadingFailed + return x.ImuInitFailed } return false } -func (x *Events) GetGpsWasTurnedOff() bool { +func (x *Events) GetImuReadingFailed() bool { if x != nil { - return x.GpsWasTurnedOff + return x.ImuReadingFailed } return false } -func (x *Events) GetImuInitFailed() bool { +func (x *Events) GetAccelerometerInitFailed() bool { if x != nil { - return x.ImuInitFailed + return x.AccelerometerInitFailed } return false } -func (x *Events) GetImuReadingFailed() bool { +func (x *Events) GetAccelerometerReadingFailed() bool { if x != nil { - return x.ImuReadingFailed + return x.AccelerometerReadingFailed } return false } -func (x *Events) GetImuWasTurnedOff() bool { +func (x *Events) GetThermometerInitFailed() bool { if x != nil { - return x.ImuWasTurnedOff + return x.ThermometerInitFailed } return false } -func (x *Events) GetAccelerometerInitFailed() bool { +func (x *Events) GetThermometerReadingFailed() bool { if x != nil { - return x.AccelerometerInitFailed + return x.ThermometerReadingFailed } return false } -func (x *Events) GetAccelerometerReadingFailed() bool { +func (x *Events) GetVoltageInitFailed() bool { if x != nil { - return x.AccelerometerReadingFailed + return x.VoltageInitFailed } return false } -func (x *Events) GetAccelerometerWasTurnedOff() bool { +func (x *Events) GetVoltageReadingFailed() bool { if x != nil { - return x.AccelerometerWasTurnedOff + return x.VoltageReadingFailed } return false } -func (x *Events) GetThermometerInitFailed() bool { +func (x *Events) GetAdcInitFailed() bool { if x != nil { - return x.ThermometerInitFailed + return x.AdcInitFailed } return false } -func (x *Events) GetThermometerReadingFailed() bool { +func (x *Events) GetAdcReadingFailed() bool { if x != nil { - return x.ThermometerReadingFailed + return x.AdcReadingFailed + } + return false +} + +func (x *Events) GetFramInitFailed() bool { + if x != nil { + return x.FramInitFailed } return false } -func (x *Events) GetThermometerWasTurnedOff() bool { +func (x *Events) GetFramWriteFailed() bool { if x != nil { - return x.ThermometerWasTurnedOff + return x.FramWriteFailed } return false } @@ -452,16 +502,44 @@ func (x *Events) GetSdWriteFailed() bool { return false } -func (x *Events) GetRfmInitFailed() bool { +func (x *Events) GetMavWasActuated() bool { if x != nil { - return x.RfmInitFailed + return x.MavWasActuated } return false } -func (x *Events) GetRfmTransmitFailed() bool { +func (x *Events) GetSvWasActuated() bool { if x != nil { - return x.RfmTransmitFailed + return x.SvWasActuated + } + return false +} + +func (x *Events) GetMainDeployWaitEnd() bool { + if x != nil { + return x.MainDeployWaitEnd + } + return false +} + +func (x *Events) GetMainLogShutoff() bool { + if x != nil { + return x.MainLogShutoff + } + return false +} + +func (x *Events) GetCycleOverflow() bool { + if x != nil { + return x.CycleOverflow + } + return false +} + +func (x *Events) GetInvalidCommand() bool { + if x != nil { + return x.InvalidCommand } return false } @@ -489,7 +567,7 @@ type RocketMetadata struct { func (x *RocketMetadata) Reset() { *x = RocketMetadata{} - mi := &file_command_proto_msgTypes[4] + mi := &file_command_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -501,7 +579,7 @@ func (x *RocketMetadata) String() string { func (*RocketMetadata) ProtoMessage() {} func (x *RocketMetadata) ProtoReflect() protoreflect.Message { - mi := &file_command_proto_msgTypes[4] + mi := &file_command_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -514,7 +592,7 @@ func (x *RocketMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use RocketMetadata.ProtoReflect.Descriptor instead. func (*RocketMetadata) Descriptor() ([]byte, []int) { - return file_command_proto_rawDescGZIP(), []int{4} + return file_command_proto_rawDescGZIP(), []int{5} } func (x *RocketMetadata) GetAltArmed() bool { @@ -628,7 +706,7 @@ type GPSTelemetry struct { func (x *GPSTelemetry) Reset() { *x = GPSTelemetry{} - mi := &file_command_proto_msgTypes[5] + mi := &file_command_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -640,7 +718,7 @@ func (x *GPSTelemetry) String() string { func (*GPSTelemetry) ProtoMessage() {} func (x *GPSTelemetry) ProtoReflect() protoreflect.Message { - mi := &file_command_proto_msgTypes[5] + mi := &file_command_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -653,7 +731,7 @@ func (x *GPSTelemetry) ProtoReflect() protoreflect.Message { // Deprecated: Use GPSTelemetry.ProtoReflect.Descriptor instead. func (*GPSTelemetry) Descriptor() ([]byte, []int) { - return file_command_proto_rawDescGZIP(), []int{5} + return file_command_proto_rawDescGZIP(), []int{6} } func (x *GPSTelemetry) GetLatitude() int32 { @@ -696,7 +774,7 @@ type AccelerometerTelemetry struct { func (x *AccelerometerTelemetry) Reset() { *x = AccelerometerTelemetry{} - mi := &file_command_proto_msgTypes[6] + mi := &file_command_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -708,7 +786,7 @@ func (x *AccelerometerTelemetry) String() string { func (*AccelerometerTelemetry) ProtoMessage() {} func (x *AccelerometerTelemetry) ProtoReflect() protoreflect.Message { - mi := &file_command_proto_msgTypes[6] + mi := &file_command_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -721,7 +799,7 @@ func (x *AccelerometerTelemetry) ProtoReflect() protoreflect.Message { // Deprecated: Use AccelerometerTelemetry.ProtoReflect.Descriptor instead. func (*AccelerometerTelemetry) Descriptor() ([]byte, []int) { - return file_command_proto_rawDescGZIP(), []int{6} + return file_command_proto_rawDescGZIP(), []int{7} } func (x *AccelerometerTelemetry) GetAccelX() float32 { @@ -766,7 +844,7 @@ type IMUTelemetry struct { func (x *IMUTelemetry) Reset() { *x = IMUTelemetry{} - mi := &file_command_proto_msgTypes[7] + mi := &file_command_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -778,7 +856,7 @@ func (x *IMUTelemetry) String() string { func (*IMUTelemetry) ProtoMessage() {} func (x *IMUTelemetry) ProtoReflect() protoreflect.Message { - mi := &file_command_proto_msgTypes[7] + mi := &file_command_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -791,7 +869,7 @@ func (x *IMUTelemetry) ProtoReflect() protoreflect.Message { // Deprecated: Use IMUTelemetry.ProtoReflect.Descriptor instead. func (*IMUTelemetry) Descriptor() ([]byte, []int) { - return file_command_proto_rawDescGZIP(), []int{7} + return file_command_proto_rawDescGZIP(), []int{8} } func (x *IMUTelemetry) GetGyroX() float32 { @@ -899,7 +977,7 @@ type RocketLoRaTelemetry struct { func (x *RocketLoRaTelemetry) Reset() { *x = RocketLoRaTelemetry{} - mi := &file_command_proto_msgTypes[8] + mi := &file_command_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -911,7 +989,7 @@ func (x *RocketLoRaTelemetry) String() string { func (*RocketLoRaTelemetry) ProtoMessage() {} func (x *RocketLoRaTelemetry) ProtoReflect() protoreflect.Message { - mi := &file_command_proto_msgTypes[8] + mi := &file_command_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -924,7 +1002,7 @@ func (x *RocketLoRaTelemetry) ProtoReflect() protoreflect.Message { // Deprecated: Use RocketLoRaTelemetry.ProtoReflect.Descriptor instead. func (*RocketLoRaTelemetry) Descriptor() ([]byte, []int) { - return file_command_proto_rawDescGZIP(), []int{8} + return file_command_proto_rawDescGZIP(), []int{9} } func (x *RocketLoRaTelemetry) GetMetadata() *RocketMetadata { @@ -1029,7 +1107,7 @@ type RocketUmbTelemetry struct { func (x *RocketUmbTelemetry) Reset() { *x = RocketUmbTelemetry{} - mi := &file_command_proto_msgTypes[9] + mi := &file_command_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1041,7 +1119,7 @@ func (x *RocketUmbTelemetry) String() string { func (*RocketUmbTelemetry) ProtoMessage() {} func (x *RocketUmbTelemetry) ProtoReflect() protoreflect.Message { - mi := &file_command_proto_msgTypes[9] + mi := &file_command_proto_msgTypes[10] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1054,7 +1132,7 @@ func (x *RocketUmbTelemetry) ProtoReflect() protoreflect.Message { // Deprecated: Use RocketUmbTelemetry.ProtoReflect.Descriptor instead. func (*RocketUmbTelemetry) Descriptor() ([]byte, []int) { - return file_command_proto_rawDescGZIP(), []int{9} + return file_command_proto_rawDescGZIP(), []int{10} } func (x *RocketUmbTelemetry) GetMetadata() *RocketMetadata { @@ -1131,7 +1209,7 @@ type RocketTelemetry struct { func (x *RocketTelemetry) Reset() { *x = RocketTelemetry{} - mi := &file_command_proto_msgTypes[10] + mi := &file_command_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1143,7 +1221,7 @@ func (x *RocketTelemetry) String() string { func (*RocketTelemetry) ProtoMessage() {} func (x *RocketTelemetry) ProtoReflect() protoreflect.Message { - mi := &file_command_proto_msgTypes[10] + mi := &file_command_proto_msgTypes[11] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1156,7 +1234,7 @@ func (x *RocketTelemetry) ProtoReflect() protoreflect.Message { // Deprecated: Use RocketTelemetry.ProtoReflect.Descriptor instead. func (*RocketTelemetry) Descriptor() ([]byte, []int) { - return file_command_proto_rawDescGZIP(), []int{10} + return file_command_proto_rawDescGZIP(), []int{11} } func (x *RocketTelemetry) GetLoraTelem() *RocketLoRaTelemetry { @@ -1190,7 +1268,7 @@ type FillStationTelemetry struct { func (x *FillStationTelemetry) Reset() { *x = FillStationTelemetry{} - mi := &file_command_proto_msgTypes[11] + mi := &file_command_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1202,7 +1280,7 @@ func (x *FillStationTelemetry) String() string { func (*FillStationTelemetry) ProtoMessage() {} func (x *FillStationTelemetry) ProtoReflect() protoreflect.Message { - mi := &file_command_proto_msgTypes[11] + mi := &file_command_proto_msgTypes[12] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1215,7 +1293,7 @@ func (x *FillStationTelemetry) ProtoReflect() protoreflect.Message { // Deprecated: Use FillStationTelemetry.ProtoReflect.Descriptor instead. func (*FillStationTelemetry) Descriptor() ([]byte, []int) { - return file_command_proto_rawDescGZIP(), []int{11} + return file_command_proto_rawDescGZIP(), []int{12} } func (x *FillStationTelemetry) GetTimestamp() uint32 { @@ -1295,233 +1373,249 @@ var file_command_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x5f, 0x73, 0x76, 0x32, 0x5f, 0x63, 0x6c, 0x6f, 0x73, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x61, 0x76, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x66, 0x69, 0x72, 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x22, 0x12, 0x0a, 0x10, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x91, 0x08, 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6b, 0x65, 0x79, 0x5f, 0x61, 0x72, 0x6d, 0x65, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6b, 0x65, 0x79, 0x41, 0x72, 0x6d, 0x65, 0x64, 0x12, 0x25, - 0x0a, 0x0e, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f, 0x61, 0x72, 0x6d, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, - 0x41, 0x72, 0x6d, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x74, - 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, - 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x6c, 0x74, - 0x69, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x61, 0x6c, 0x74, - 0x69, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x5f, 0x77, 0x61, 0x73, 0x5f, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x57, 0x61, 0x73, 0x54, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x4f, 0x66, 0x66, 0x12, 0x26, 0x0a, 0x0f, - 0x67, 0x70, 0x73, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x67, 0x70, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x67, 0x70, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, - 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x10, 0x67, 0x70, 0x73, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x67, 0x70, 0x73, 0x5f, 0x77, 0x61, 0x73, 0x5f, 0x74, 0x75, - 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, - 0x67, 0x70, 0x73, 0x57, 0x61, 0x73, 0x54, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x4f, 0x66, 0x66, 0x12, - 0x26, 0x0a, 0x0f, 0x69, 0x6d, 0x75, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x6d, 0x75, 0x49, 0x6e, 0x69, - 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6d, 0x75, 0x5f, 0x72, - 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x6d, 0x75, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x69, 0x6d, 0x75, 0x5f, 0x77, 0x61, 0x73, - 0x5f, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x0f, 0x69, 0x6d, 0x75, 0x57, 0x61, 0x73, 0x54, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x4f, - 0x66, 0x66, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x6f, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x6f, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x40, - 0x0a, 0x1c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, - 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x6f, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x12, 0x3f, 0x0a, 0x1c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x65, - 0x72, 0x5f, 0x77, 0x61, 0x73, 0x5f, 0x74, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x5f, 0x6f, 0x66, 0x66, - 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x6f, - 0x6d, 0x65, 0x74, 0x65, 0x72, 0x57, 0x61, 0x73, 0x54, 0x75, 0x72, 0x6e, 0x65, 0x64, 0x4f, 0x66, - 0x66, 0x12, 0x36, 0x0a, 0x17, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, - 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, + 0x6c, 0x79, 0x22, 0x1d, 0x0a, 0x1b, 0x46, 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x54, 0x0a, 0x16, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3a, 0x0a, 0x18, 0x69, + 0x73, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x69, + 0x73, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x9a, 0x09, 0x0a, 0x06, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f, 0x61, + 0x72, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x6c, 0x74, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x41, 0x72, 0x6d, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x6c, 0x74, + 0x69, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65, + 0x74, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x38, 0x0a, + 0x18, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x69, + 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x16, 0x61, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, + 0x67, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x67, 0x70, 0x73, 0x5f, 0x69, + 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0d, 0x67, 0x70, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, + 0x2c, 0x0a, 0x12, 0x67, 0x70, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x67, 0x70, 0x73, + 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x0a, + 0x0f, 0x69, 0x6d, 0x75, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x6d, 0x75, 0x49, 0x6e, 0x69, 0x74, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6d, 0x75, 0x5f, 0x72, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x10, 0x69, 0x6d, 0x75, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x12, 0x3a, 0x0a, 0x19, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x6f, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x6f, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, + 0x40, 0x0a, 0x1c, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x5f, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x6f, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x12, 0x36, 0x0a, 0x17, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, + 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x1a, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, - 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x74, + 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, - 0x67, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x3b, 0x0a, 0x1a, 0x74, 0x68, 0x65, 0x72, 0x6d, - 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x5f, 0x77, 0x61, 0x73, 0x5f, 0x74, 0x75, 0x72, 0x6e, 0x65, - 0x64, 0x5f, 0x6f, 0x66, 0x66, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x74, 0x68, 0x65, - 0x72, 0x6d, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x57, 0x61, 0x73, 0x54, 0x75, 0x72, 0x6e, 0x65, - 0x64, 0x4f, 0x66, 0x66, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, - 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x73, 0x64, - 0x49, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x64, - 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x64, 0x57, 0x72, 0x69, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, - 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x66, 0x6d, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, - 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x66, 0x6d, - 0x49, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x66, - 0x6d, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, - 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x66, 0x6d, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x6d, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0xd0, 0x03, 0x0a, 0x0e, 0x52, - 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, - 0x09, 0x61, 0x6c, 0x74, 0x5f, 0x61, 0x72, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x08, 0x61, 0x6c, 0x74, 0x41, 0x72, 0x6d, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6c, - 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, - 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x70, 0x73, 0x5f, 0x76, - 0x61, 0x6c, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x67, 0x70, 0x73, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x75, 0x5f, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x6d, 0x75, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x63, 0x63, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0a, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, - 0x23, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x56, - 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x64, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x64, 0x63, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x72, 0x61, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x56, 0x61, 0x6c, 0x69, 0x64, - 0x12, 0x19, 0x0a, 0x08, 0x73, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x07, 0x73, 0x64, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x67, - 0x70, 0x73, 0x5f, 0x6d, 0x73, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x67, 0x70, 0x73, 0x4d, 0x73, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, - 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x76, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, 0x76, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x73, 0x76, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x73, 0x76, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x66, 0x6c, 0x69, 0x67, 0x68, - 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, - 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x46, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x4d, 0x6f, 0x64, - 0x65, 0x52, 0x0a, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x8a, 0x01, - 0x0a, 0x0c, 0x47, 0x50, 0x53, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x1a, - 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, - 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, - 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, - 0x73, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x53, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x73, 0x12, - 0x19, 0x0a, 0x08, 0x75, 0x74, 0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x75, 0x74, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x63, 0x0a, 0x16, 0x41, 0x63, - 0x63, 0x65, 0x6c, 0x65, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x74, 0x72, 0x79, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5f, 0x78, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x58, 0x12, 0x17, 0x0a, - 0x07, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5f, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, - 0x61, 0x63, 0x63, 0x65, 0x6c, 0x59, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5f, - 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5a, 0x22, - 0xa2, 0x02, 0x0a, 0x0c, 0x49, 0x4d, 0x55, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, - 0x12, 0x15, 0x0a, 0x06, 0x67, 0x79, 0x72, 0x6f, 0x5f, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x05, 0x67, 0x79, 0x72, 0x6f, 0x58, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x79, 0x72, 0x6f, 0x5f, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x67, 0x79, 0x72, 0x6f, 0x59, 0x12, 0x15, - 0x0a, 0x06, 0x67, 0x79, 0x72, 0x6f, 0x5f, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, - 0x67, 0x79, 0x72, 0x6f, 0x5a, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5f, 0x78, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x58, 0x12, 0x17, - 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5f, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x06, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x59, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, 0x6c, - 0x5f, 0x7a, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5a, - 0x12, 0x13, 0x0a, 0x05, 0x6f, 0x72, 0x69, 0x5f, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x04, 0x6f, 0x72, 0x69, 0x58, 0x12, 0x13, 0x0a, 0x05, 0x6f, 0x72, 0x69, 0x5f, 0x79, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x6f, 0x72, 0x69, 0x59, 0x12, 0x13, 0x0a, 0x05, 0x6f, 0x72, - 0x69, 0x5f, 0x7a, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x6f, 0x72, 0x69, 0x5a, 0x12, - 0x15, 0x0a, 0x06, 0x67, 0x72, 0x61, 0x76, 0x5f, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x05, 0x67, 0x72, 0x61, 0x76, 0x58, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x72, 0x61, 0x76, 0x5f, 0x79, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x67, 0x72, 0x61, 0x76, 0x59, 0x12, 0x15, 0x0a, - 0x06, 0x67, 0x72, 0x61, 0x76, 0x5f, 0x7a, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x67, - 0x72, 0x61, 0x76, 0x5a, 0x22, 0xd0, 0x03, 0x0a, 0x13, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4c, - 0x6f, 0x52, 0x61, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x08, - 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x6f, - 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x73, 0x53, 0x69, 0x6e, 0x63, - 0x65, 0x42, 0x6f, 0x6f, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, - 0x0a, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x08, 0x61, 0x6c, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x67, 0x70, - 0x73, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x47, 0x50, 0x53, 0x54, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x74, 0x72, 0x79, 0x52, 0x08, 0x67, 0x70, 0x73, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x12, 0x32, - 0x0a, 0x09, 0x69, 0x6d, 0x75, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x49, 0x4d, 0x55, 0x54, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x08, 0x69, 0x6d, 0x75, 0x54, 0x65, 0x6c, - 0x65, 0x6d, 0x12, 0x40, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5f, 0x74, 0x65, 0x6c, 0x65, - 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x54, - 0x65, 0x6c, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x04, 0x74, 0x65, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x74, - 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x74, 0x61, - 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x74, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x03, 0x70, 0x74, 0x33, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x74, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x03, 0x70, 0x74, 0x34, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x6c, 0x69, 0x6d, 0x73, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x62, 0x6c, 0x69, - 0x6d, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xb7, 0x02, 0x0a, 0x12, 0x52, 0x6f, 0x63, 0x6b, - 0x65, 0x74, 0x55, 0x6d, 0x62, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x33, - 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x52, 0x6f, 0x63, 0x6b, 0x65, - 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, - 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x73, 0x53, 0x69, - 0x6e, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, - 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x74, - 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x74, 0x61, - 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x74, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x03, 0x70, 0x74, 0x33, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x74, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x03, 0x70, 0x74, 0x34, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x74, 0x64, 0x5f, 0x74, 0x65, - 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x72, 0x74, 0x64, 0x54, 0x65, 0x6d, - 0x70, 0x22, 0xaf, 0x01, 0x0a, 0x0f, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x65, 0x6c, 0x65, - 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x40, 0x0a, 0x0a, 0x6c, 0x6f, 0x72, 0x61, 0x5f, 0x74, 0x65, - 0x6c, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, - 0x61, 0x6e, 0x64, 0x2e, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x6f, 0x52, 0x61, 0x54, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x72, 0x61, 0x54, - 0x65, 0x6c, 0x65, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x09, 0x75, 0x6d, 0x62, 0x5f, 0x74, - 0x65, 0x6c, 0x65, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x55, 0x6d, 0x62, 0x54, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x48, 0x01, 0x52, 0x08, 0x75, 0x6d, 0x62, 0x54, 0x65, - 0x6c, 0x65, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x6f, 0x72, 0x61, 0x5f, - 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x75, 0x6d, 0x62, 0x5f, 0x74, 0x65, - 0x6c, 0x65, 0x6d, 0x22, 0xbf, 0x01, 0x0a, 0x14, 0x46, 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x74, - 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x70, 0x74, 0x31, 0x12, 0x10, 0x0a, 0x03, - 0x70, 0x74, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x70, 0x74, 0x32, 0x12, 0x10, - 0x0a, 0x03, 0x6c, 0x63, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x6c, 0x63, 0x31, - 0x12, 0x19, 0x0a, 0x08, 0x73, 0x76, 0x31, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x07, 0x73, 0x76, 0x31, 0x43, 0x6f, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, - 0x67, 0x6e, 0x31, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, - 0x69, 0x67, 0x6e, 0x31, 0x43, 0x6f, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x67, 0x6e, 0x32, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x69, 0x67, 0x6e, - 0x32, 0x43, 0x6f, 0x6e, 0x74, 0x2a, 0x65, 0x0a, 0x0a, 0x46, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x4d, - 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x55, 0x50, 0x10, 0x00, - 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, 0x41, 0x4e, 0x44, 0x42, 0x59, 0x10, 0x01, 0x12, 0x0a, 0x0a, - 0x06, 0x41, 0x53, 0x43, 0x45, 0x4e, 0x54, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x52, 0x4f, - 0x47, 0x55, 0x45, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x03, 0x12, 0x11, - 0x0a, 0x0d, 0x4d, 0x41, 0x49, 0x4e, 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x45, 0x44, 0x10, - 0x04, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x05, 0x32, 0x67, 0x0a, 0x14, - 0x46, 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6c, 0x65, 0x6d, - 0x65, 0x74, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x65, - 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x19, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, - 0x64, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x46, 0x69, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x22, 0x00, 0x30, 0x01, 0x32, 0x5d, 0x0a, 0x0f, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, - 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x4a, 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x19, 0x2e, 0x63, 0x6f, - 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x2e, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, - 0x22, 0x00, 0x30, 0x01, 0x32, 0x45, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x65, - 0x72, 0x12, 0x38, 0x0a, 0x0b, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x12, 0x10, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, - 0x6e, 0x64, 0x1a, 0x15, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x61, 0x6e, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x19, 0x5a, 0x17, 0x2e, - 0x2e, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x67, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x76, 0x6f, 0x6c, 0x74, 0x61, + 0x67, 0x65, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x69, + 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x76, 0x6f, 0x6c, 0x74, 0x61, + 0x67, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x26, 0x0a, + 0x0f, 0x61, 0x64, 0x63, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x61, 0x64, 0x63, 0x49, 0x6e, 0x69, 0x74, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x61, 0x64, 0x63, 0x5f, 0x72, 0x65, 0x61, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x10, 0x61, 0x64, 0x63, 0x52, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x46, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x66, 0x72, 0x61, 0x6d, 0x5f, 0x69, 0x6e, 0x69, 0x74, + 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x66, + 0x72, 0x61, 0x6d, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x2a, 0x0a, + 0x11, 0x66, 0x72, 0x61, 0x6d, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x57, 0x72, + 0x69, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x64, 0x5f, + 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0c, 0x73, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, + 0x26, 0x0a, 0x0f, 0x73, 0x64, 0x5f, 0x77, 0x72, 0x69, 0x74, 0x65, 0x5f, 0x66, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x64, 0x57, 0x72, 0x69, 0x74, + 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, 0x76, 0x5f, 0x77, + 0x61, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0e, 0x6d, 0x61, 0x76, 0x57, 0x61, 0x73, 0x41, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, + 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x76, 0x5f, 0x77, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x75, + 0x61, 0x74, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x76, 0x57, 0x61, + 0x73, 0x41, 0x63, 0x74, 0x75, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x6d, 0x61, 0x69, + 0x6e, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x65, 0x6e, + 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x6d, 0x61, 0x69, 0x6e, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x57, 0x61, 0x69, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6d, 0x61, + 0x69, 0x6e, 0x5f, 0x6c, 0x6f, 0x67, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x6f, 0x66, 0x66, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6d, 0x61, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x53, 0x68, 0x75, + 0x74, 0x6f, 0x66, 0x66, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x6f, 0x76, + 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x79, + 0x63, 0x6c, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x12, 0x27, 0x0a, 0x0f, 0x69, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x22, 0xd0, 0x03, 0x0a, 0x0e, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6c, 0x74, 0x5f, 0x61, + 0x72, 0x6d, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x6c, 0x74, 0x41, + 0x72, 0x6d, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x6c, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x70, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x67, 0x70, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x69, 0x6d, 0x75, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x69, 0x6d, 0x75, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x61, + 0x63, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x61, 0x63, 0x63, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x68, 0x65, 0x72, + 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x74, + 0x68, 0x65, 0x72, 0x6d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x76, 0x6f, 0x6c, + 0x74, 0x61, 0x67, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0c, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x61, 0x64, 0x63, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x61, 0x64, 0x63, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x66, + 0x72, 0x61, 0x6d, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x66, 0x72, 0x61, 0x6d, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x64, + 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x64, + 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x67, 0x70, 0x73, 0x5f, 0x6d, 0x73, 0x67, + 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x67, 0x70, + 0x73, 0x4d, 0x73, 0x67, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x61, 0x76, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6d, 0x61, + 0x76, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x76, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x76, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x34, 0x0a, 0x0b, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x2e, 0x46, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0a, 0x66, 0x6c, 0x69, + 0x67, 0x68, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x0c, 0x47, 0x50, 0x53, 0x54, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x74, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, + 0x64, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x6e, 0x75, 0x6d, 0x5f, 0x73, 0x61, 0x74, 0x65, 0x6c, 0x6c, + 0x69, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x53, + 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x75, 0x74, 0x63, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x75, 0x74, 0x63, + 0x54, 0x69, 0x6d, 0x65, 0x22, 0x63, 0x0a, 0x16, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x6f, + 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x17, + 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5f, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x06, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x58, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, 0x6c, + 0x5f, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x59, + 0x12, 0x17, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5f, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5a, 0x22, 0xa2, 0x02, 0x0a, 0x0c, 0x49, 0x4d, + 0x55, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x79, + 0x72, 0x6f, 0x5f, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x67, 0x79, 0x72, 0x6f, + 0x58, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x79, 0x72, 0x6f, 0x5f, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x05, 0x67, 0x79, 0x72, 0x6f, 0x59, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x79, 0x72, 0x6f, + 0x5f, 0x7a, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x67, 0x79, 0x72, 0x6f, 0x5a, 0x12, + 0x17, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5f, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x58, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, + 0x6c, 0x5f, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x6c, + 0x59, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5f, 0x7a, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5a, 0x12, 0x13, 0x0a, 0x05, 0x6f, 0x72, + 0x69, 0x5f, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x6f, 0x72, 0x69, 0x58, 0x12, + 0x13, 0x0a, 0x05, 0x6f, 0x72, 0x69, 0x5f, 0x79, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, + 0x6f, 0x72, 0x69, 0x59, 0x12, 0x13, 0x0a, 0x05, 0x6f, 0x72, 0x69, 0x5f, 0x7a, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x04, 0x6f, 0x72, 0x69, 0x5a, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x72, 0x61, + 0x76, 0x5f, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x67, 0x72, 0x61, 0x76, 0x58, + 0x12, 0x15, 0x0a, 0x06, 0x67, 0x72, 0x61, 0x76, 0x5f, 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x05, 0x67, 0x72, 0x61, 0x76, 0x59, 0x12, 0x15, 0x0a, 0x06, 0x67, 0x72, 0x61, 0x76, 0x5f, + 0x7a, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x67, 0x72, 0x61, 0x76, 0x5a, 0x22, 0xd0, + 0x03, 0x0a, 0x13, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x6f, 0x52, 0x61, 0x54, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, + 0x6e, 0x64, 0x2e, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0d, 0x6d, + 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x42, 0x6f, 0x6f, 0x74, 0x12, + 0x27, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x6c, 0x74, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x61, 0x6c, 0x74, 0x69, + 0x74, 0x75, 0x64, 0x65, 0x12, 0x32, 0x0a, 0x09, 0x67, 0x70, 0x73, 0x5f, 0x74, 0x65, 0x6c, 0x65, + 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x2e, 0x47, 0x50, 0x53, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x08, + 0x67, 0x70, 0x73, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x12, 0x32, 0x0a, 0x09, 0x69, 0x6d, 0x75, 0x5f, + 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x49, 0x4d, 0x55, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, + 0x72, 0x79, 0x52, 0x08, 0x69, 0x6d, 0x75, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x12, 0x40, 0x0a, 0x0b, + 0x61, 0x63, 0x63, 0x65, 0x6c, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x41, 0x63, 0x63, 0x65, + 0x6c, 0x65, 0x72, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, + 0x72, 0x79, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x6c, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x65, 0x6d, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x74, 0x65, + 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x70, 0x74, 0x33, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x70, 0x74, 0x33, 0x12, 0x10, + 0x0a, 0x03, 0x70, 0x74, 0x34, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x70, 0x74, 0x34, + 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x6c, 0x69, 0x6d, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0a, 0x62, 0x6c, 0x69, 0x6d, 0x73, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0xb7, 0x02, 0x0a, 0x12, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x55, 0x6d, 0x62, 0x54, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x33, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x63, 0x6f, 0x6d, + 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, + 0x0d, 0x6d, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x42, 0x6f, 0x6f, + 0x74, 0x12, 0x27, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x61, + 0x64, 0x69, 0x6f, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0a, 0x72, 0x61, 0x64, 0x69, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x07, 0x76, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x70, 0x74, 0x33, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x70, 0x74, 0x33, 0x12, 0x10, + 0x0a, 0x03, 0x70, 0x74, 0x34, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x70, 0x74, 0x34, + 0x12, 0x19, 0x0a, 0x08, 0x72, 0x74, 0x64, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x02, 0x52, 0x07, 0x72, 0x74, 0x64, 0x54, 0x65, 0x6d, 0x70, 0x22, 0xaf, 0x01, 0x0a, 0x0f, + 0x52, 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, + 0x40, 0x0a, 0x0a, 0x6c, 0x6f, 0x72, 0x61, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x52, 0x6f, + 0x63, 0x6b, 0x65, 0x74, 0x4c, 0x6f, 0x52, 0x61, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, + 0x79, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x72, 0x61, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x88, 0x01, + 0x01, 0x12, 0x3d, 0x0a, 0x09, 0x75, 0x6d, 0x62, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x52, + 0x6f, 0x63, 0x6b, 0x65, 0x74, 0x55, 0x6d, 0x62, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, + 0x79, 0x48, 0x01, 0x52, 0x08, 0x75, 0x6d, 0x62, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x88, 0x01, 0x01, + 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6c, 0x6f, 0x72, 0x61, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x75, 0x6d, 0x62, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x22, 0xbf, 0x01, + 0x0a, 0x14, 0x46, 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x74, 0x31, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x03, 0x70, 0x74, 0x31, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x74, 0x32, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x03, 0x70, 0x74, 0x32, 0x12, 0x10, 0x0a, 0x03, 0x6c, 0x63, 0x31, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x03, 0x6c, 0x63, 0x31, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x76, + 0x31, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x07, 0x73, 0x76, + 0x31, 0x43, 0x6f, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x67, 0x6e, 0x31, 0x5f, 0x63, 0x6f, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x69, 0x67, 0x6e, 0x31, 0x43, 0x6f, + 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x67, 0x6e, 0x32, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x08, 0x69, 0x67, 0x6e, 0x32, 0x43, 0x6f, 0x6e, 0x74, 0x2a, + 0x65, 0x0a, 0x0a, 0x46, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, + 0x07, 0x53, 0x54, 0x41, 0x52, 0x54, 0x55, 0x50, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x54, + 0x41, 0x4e, 0x44, 0x42, 0x59, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x53, 0x43, 0x45, 0x4e, + 0x54, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x52, 0x4f, 0x47, 0x55, 0x45, 0x5f, 0x44, 0x45, + 0x50, 0x4c, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x41, 0x49, 0x4e, + 0x5f, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x46, + 0x41, 0x55, 0x4c, 0x54, 0x10, 0x05, 0x32, 0x72, 0x0a, 0x14, 0x46, 0x69, 0x6c, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x5a, + 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, + 0x79, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x46, 0x69, 0x6c, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x2e, 0x46, 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6c, + 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x22, 0x00, 0x30, 0x01, 0x32, 0x63, 0x0a, 0x0f, 0x52, 0x6f, + 0x63, 0x6b, 0x65, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x12, 0x50, 0x0a, + 0x0f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x52, 0x6f, 0x63, 0x6b, 0x65, + 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x18, 0x2e, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x52, 0x6f, 0x63, 0x6b, + 0x65, 0x74, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x22, 0x00, 0x30, 0x01, 0x32, + 0x45, 0x0a, 0x09, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x0b, + 0x53, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x2e, 0x63, 0x6f, + 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x1a, 0x15, 0x2e, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x19, 0x5a, 0x17, 0x2e, 0x2e, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x73, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1537,38 +1631,39 @@ func file_command_proto_rawDescGZIP() []byte { } var file_command_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_command_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_command_proto_msgTypes = make([]protoimpl.MessageInfo, 13) var file_command_proto_goTypes = []any{ - (FlightMode)(0), // 0: command.FlightMode - (*Command)(nil), // 1: command.Command - (*CommandReply)(nil), // 2: command.CommandReply - (*TelemetryRequest)(nil), // 3: command.TelemetryRequest - (*Events)(nil), // 4: command.Events - (*RocketMetadata)(nil), // 5: command.RocketMetadata - (*GPSTelemetry)(nil), // 6: command.GPSTelemetry - (*AccelerometerTelemetry)(nil), // 7: command.AccelerometerTelemetry - (*IMUTelemetry)(nil), // 8: command.IMUTelemetry - (*RocketLoRaTelemetry)(nil), // 9: command.RocketLoRaTelemetry - (*RocketUmbTelemetry)(nil), // 10: command.RocketUmbTelemetry - (*RocketTelemetry)(nil), // 11: command.RocketTelemetry - (*FillStationTelemetry)(nil), // 12: command.FillStationTelemetry + (FlightMode)(0), // 0: command.FlightMode + (*Command)(nil), // 1: command.Command + (*CommandReply)(nil), // 2: command.CommandReply + (*FillStationTelemetryRequest)(nil), // 3: command.FillStationTelemetryRequest + (*RocketTelemetryRequest)(nil), // 4: command.RocketTelemetryRequest + (*Events)(nil), // 5: command.Events + (*RocketMetadata)(nil), // 6: command.RocketMetadata + (*GPSTelemetry)(nil), // 7: command.GPSTelemetry + (*AccelerometerTelemetry)(nil), // 8: command.AccelerometerTelemetry + (*IMUTelemetry)(nil), // 9: command.IMUTelemetry + (*RocketLoRaTelemetry)(nil), // 10: command.RocketLoRaTelemetry + (*RocketUmbTelemetry)(nil), // 11: command.RocketUmbTelemetry + (*RocketTelemetry)(nil), // 12: command.RocketTelemetry + (*FillStationTelemetry)(nil), // 13: command.FillStationTelemetry } var file_command_proto_depIdxs = []int32{ 0, // 0: command.RocketMetadata.flight_mode:type_name -> command.FlightMode - 5, // 1: command.RocketLoRaTelemetry.metadata:type_name -> command.RocketMetadata - 4, // 2: command.RocketLoRaTelemetry.events:type_name -> command.Events - 6, // 3: command.RocketLoRaTelemetry.gps_telem:type_name -> command.GPSTelemetry - 8, // 4: command.RocketLoRaTelemetry.imu_telem:type_name -> command.IMUTelemetry - 7, // 5: command.RocketLoRaTelemetry.accel_telem:type_name -> command.AccelerometerTelemetry - 5, // 6: command.RocketUmbTelemetry.metadata:type_name -> command.RocketMetadata - 4, // 7: command.RocketUmbTelemetry.events:type_name -> command.Events - 9, // 8: command.RocketTelemetry.lora_telem:type_name -> command.RocketLoRaTelemetry - 10, // 9: command.RocketTelemetry.umb_telem:type_name -> command.RocketUmbTelemetry - 3, // 10: command.FillStationTelemeter.StreamTelemetry:input_type -> command.TelemetryRequest - 3, // 11: command.RocketTelemeter.StreamTelemetry:input_type -> command.TelemetryRequest + 6, // 1: command.RocketLoRaTelemetry.metadata:type_name -> command.RocketMetadata + 5, // 2: command.RocketLoRaTelemetry.events:type_name -> command.Events + 7, // 3: command.RocketLoRaTelemetry.gps_telem:type_name -> command.GPSTelemetry + 9, // 4: command.RocketLoRaTelemetry.imu_telem:type_name -> command.IMUTelemetry + 8, // 5: command.RocketLoRaTelemetry.accel_telem:type_name -> command.AccelerometerTelemetry + 6, // 6: command.RocketUmbTelemetry.metadata:type_name -> command.RocketMetadata + 5, // 7: command.RocketUmbTelemetry.events:type_name -> command.Events + 10, // 8: command.RocketTelemetry.lora_telem:type_name -> command.RocketLoRaTelemetry + 11, // 9: command.RocketTelemetry.umb_telem:type_name -> command.RocketUmbTelemetry + 3, // 10: command.FillStationTelemeter.StreamTelemetry:input_type -> command.FillStationTelemetryRequest + 4, // 11: command.RocketTelemeter.StreamTelemetry:input_type -> command.RocketTelemetryRequest 1, // 12: command.Commander.SendCommand:input_type -> command.Command - 12, // 13: command.FillStationTelemeter.StreamTelemetry:output_type -> command.FillStationTelemetry - 11, // 14: command.RocketTelemeter.StreamTelemetry:output_type -> command.RocketTelemetry + 13, // 13: command.FillStationTelemeter.StreamTelemetry:output_type -> command.FillStationTelemetry + 12, // 14: command.RocketTelemeter.StreamTelemetry:output_type -> command.RocketTelemetry 2, // 15: command.Commander.SendCommand:output_type -> command.CommandReply 13, // [13:16] is the sub-list for method output_type 10, // [10:13] is the sub-list for method input_type @@ -1583,14 +1678,14 @@ func file_command_proto_init() { return } file_command_proto_msgTypes[0].OneofWrappers = []any{} - file_command_proto_msgTypes[10].OneofWrappers = []any{} + file_command_proto_msgTypes[11].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_command_proto_rawDesc, NumEnums: 1, - NumMessages: 12, + NumMessages: 13, NumExtensions: 0, NumServices: 3, }, diff --git a/go-proxies/proto-out/command_grpc.pb.go b/go-proxies/proto-out/command_grpc.pb.go index bb7e3aff..ce64c0cd 100644 --- a/go-proxies/proto-out/command_grpc.pb.go +++ b/go-proxies/proto-out/command_grpc.pb.go @@ -6,7 +6,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v3.12.4 +// - protoc v3.20.3 // source: command.proto package command_proto @@ -34,7 +34,7 @@ const ( // The telemetry service definition type FillStationTelemeterClient interface { // Sends telemetry - StreamTelemetry(ctx context.Context, in *TelemetryRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[FillStationTelemetry], error) + StreamTelemetry(ctx context.Context, in *FillStationTelemetryRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[FillStationTelemetry], error) } type fillStationTelemeterClient struct { @@ -45,13 +45,13 @@ func NewFillStationTelemeterClient(cc grpc.ClientConnInterface) FillStationTelem return &fillStationTelemeterClient{cc} } -func (c *fillStationTelemeterClient) StreamTelemetry(ctx context.Context, in *TelemetryRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[FillStationTelemetry], error) { +func (c *fillStationTelemeterClient) StreamTelemetry(ctx context.Context, in *FillStationTelemetryRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[FillStationTelemetry], error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) stream, err := c.cc.NewStream(ctx, &FillStationTelemeter_ServiceDesc.Streams[0], FillStationTelemeter_StreamTelemetry_FullMethodName, cOpts...) if err != nil { return nil, err } - x := &grpc.GenericClientStream[TelemetryRequest, FillStationTelemetry]{ClientStream: stream} + x := &grpc.GenericClientStream[FillStationTelemetryRequest, FillStationTelemetry]{ClientStream: stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -71,7 +71,7 @@ type FillStationTelemeter_StreamTelemetryClient = grpc.ServerStreamingClient[Fil // The telemetry service definition type FillStationTelemeterServer interface { // Sends telemetry - StreamTelemetry(*TelemetryRequest, grpc.ServerStreamingServer[FillStationTelemetry]) error + StreamTelemetry(*FillStationTelemetryRequest, grpc.ServerStreamingServer[FillStationTelemetry]) error mustEmbedUnimplementedFillStationTelemeterServer() } @@ -82,7 +82,7 @@ type FillStationTelemeterServer interface { // pointer dereference when methods are called. type UnimplementedFillStationTelemeterServer struct{} -func (UnimplementedFillStationTelemeterServer) StreamTelemetry(*TelemetryRequest, grpc.ServerStreamingServer[FillStationTelemetry]) error { +func (UnimplementedFillStationTelemeterServer) StreamTelemetry(*FillStationTelemetryRequest, grpc.ServerStreamingServer[FillStationTelemetry]) error { return status.Errorf(codes.Unimplemented, "method StreamTelemetry not implemented") } func (UnimplementedFillStationTelemeterServer) mustEmbedUnimplementedFillStationTelemeterServer() {} @@ -107,11 +107,11 @@ func RegisterFillStationTelemeterServer(s grpc.ServiceRegistrar, srv FillStation } func _FillStationTelemeter_StreamTelemetry_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(TelemetryRequest) + m := new(FillStationTelemetryRequest) if err := stream.RecvMsg(m); err != nil { return err } - return srv.(FillStationTelemeterServer).StreamTelemetry(m, &grpc.GenericServerStream[TelemetryRequest, FillStationTelemetry]{ServerStream: stream}) + return srv.(FillStationTelemeterServer).StreamTelemetry(m, &grpc.GenericServerStream[FillStationTelemetryRequest, FillStationTelemetry]{ServerStream: stream}) } // This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. @@ -145,7 +145,7 @@ const ( // The telemetry service definition type RocketTelemeterClient interface { // Sends telemetry - StreamTelemetry(ctx context.Context, in *TelemetryRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[RocketTelemetry], error) + StreamTelemetry(ctx context.Context, in *RocketTelemetryRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[RocketTelemetry], error) } type rocketTelemeterClient struct { @@ -156,13 +156,13 @@ func NewRocketTelemeterClient(cc grpc.ClientConnInterface) RocketTelemeterClient return &rocketTelemeterClient{cc} } -func (c *rocketTelemeterClient) StreamTelemetry(ctx context.Context, in *TelemetryRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[RocketTelemetry], error) { +func (c *rocketTelemeterClient) StreamTelemetry(ctx context.Context, in *RocketTelemetryRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[RocketTelemetry], error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) stream, err := c.cc.NewStream(ctx, &RocketTelemeter_ServiceDesc.Streams[0], RocketTelemeter_StreamTelemetry_FullMethodName, cOpts...) if err != nil { return nil, err } - x := &grpc.GenericClientStream[TelemetryRequest, RocketTelemetry]{ClientStream: stream} + x := &grpc.GenericClientStream[RocketTelemetryRequest, RocketTelemetry]{ClientStream: stream} if err := x.ClientStream.SendMsg(in); err != nil { return nil, err } @@ -182,7 +182,7 @@ type RocketTelemeter_StreamTelemetryClient = grpc.ServerStreamingClient[RocketTe // The telemetry service definition type RocketTelemeterServer interface { // Sends telemetry - StreamTelemetry(*TelemetryRequest, grpc.ServerStreamingServer[RocketTelemetry]) error + StreamTelemetry(*RocketTelemetryRequest, grpc.ServerStreamingServer[RocketTelemetry]) error mustEmbedUnimplementedRocketTelemeterServer() } @@ -193,7 +193,7 @@ type RocketTelemeterServer interface { // pointer dereference when methods are called. type UnimplementedRocketTelemeterServer struct{} -func (UnimplementedRocketTelemeterServer) StreamTelemetry(*TelemetryRequest, grpc.ServerStreamingServer[RocketTelemetry]) error { +func (UnimplementedRocketTelemeterServer) StreamTelemetry(*RocketTelemetryRequest, grpc.ServerStreamingServer[RocketTelemetry]) error { return status.Errorf(codes.Unimplemented, "method StreamTelemetry not implemented") } func (UnimplementedRocketTelemeterServer) mustEmbedUnimplementedRocketTelemeterServer() {} @@ -218,11 +218,11 @@ func RegisterRocketTelemeterServer(s grpc.ServiceRegistrar, srv RocketTelemeterS } func _RocketTelemeter_StreamTelemetry_Handler(srv interface{}, stream grpc.ServerStream) error { - m := new(TelemetryRequest) + m := new(RocketTelemetryRequest) if err := stream.RecvMsg(m); err != nil { return err } - return srv.(RocketTelemeterServer).StreamTelemetry(m, &grpc.GenericServerStream[TelemetryRequest, RocketTelemetry]{ServerStream: stream}) + return srv.(RocketTelemeterServer).StreamTelemetry(m, &grpc.GenericServerStream[RocketTelemetryRequest, RocketTelemetry]{ServerStream: stream}) } // This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. diff --git a/go-proxies/proxy_build.sh b/go-proxies/proxy_build.sh index 4c3f08e2..d82ce1ef 100755 --- a/go-proxies/proxy_build.sh +++ b/go-proxies/proxy_build.sh @@ -1,6 +1,6 @@ #!/bin/bash -# Run from telemetry-proxy directory +# Run from go-proxy directory go install google.golang.org/protobuf/cmd/protoc-gen-go@latest go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest @@ -8,10 +8,14 @@ export PATH="$PATH:$(go env GOPATH)/bin" protoc --go_out=./proto-out --go_opt=paths=source_relative --go-grpc_out=./proto-out --go-grpc_opt=paths=source_relative -I../protos ../protos/command.proto --experimental_allow_proto3_optional pushd fill-telem-proxy go build main.go +popd +pushd rocket-telem-proxy +go build main.go popd && pushd websocket-proxy go build main.go popd pushd .. docker build -t ghcr.io/cornellrocketryteam/fill-telem-proxy:latest -f go-proxies/fill-telem-proxy/Dockerfile . & +docker build -t ghcr.io/cornellrocketryteam/rocket-telem-proxy:latest -f go-proxies/rocket-telem-proxy/Dockerfile . & docker build -t ghcr.io/cornellrocketryteam/websocket-proxy:latest -f go-proxies/websocket-proxy/Dockerfile . popd diff --git a/go-proxies/rocket-telem-proxy/Dockerfile b/go-proxies/rocket-telem-proxy/Dockerfile new file mode 100644 index 00000000..ceacaf23 --- /dev/null +++ b/go-proxies/rocket-telem-proxy/Dockerfile @@ -0,0 +1,36 @@ +FROM golang AS build + +# Set destination for COPY +WORKDIR /app + +# Install protobuf compiler +RUN apt-get update && apt-get install -y protobuf-compiler +RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@latest +RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest + +# Download Go modules +COPY go-proxies/go.mod go-proxies/go.sum ./ +RUN go mod download + +# Build the protobufs +COPY protos /protos +RUN mkdir proto-out +RUN protoc --go_out=./proto-out --go_opt=paths=source_relative --go-grpc_out=./proto-out --go-grpc_opt=paths=source_relative -I../protos ../protos/command.proto + +# Copy the source code +ADD go-proxies ./ + +# Build +RUN CGO_ENABLED=0 GOOS=linux go build rocket-telem-proxy/main.go + +# Use a minimal base image +FROM ubuntu:22.04 + +# Copy the binary +COPY --from=build /app/main /bin/main + +# Expose port +EXPOSE 8080 + +# Run +CMD ["/bin/main"] \ No newline at end of file diff --git a/go-proxies/rocket-telem-proxy/main b/go-proxies/rocket-telem-proxy/main new file mode 100755 index 0000000000000000000000000000000000000000..bd02e7a6f259b1b902323e24d15e6f76c7502f9c GIT binary patch literal 17360466 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⩔ib=437Y<1%a`UW^|qplBl-x$X15HoJPZ{Fct8rrEbv)ym5^uGC@ zd^4JF{>byM@T>EmYDL4&kY^iv*P|cdd~Ww!a(ufqC6jMMyeApA&3{(oJ`3>d9A(Em zc*Vdoty>E_aIFnKsOzE(^isy6>-fk8oDbn%7hi_`37Vqvk}(TxKKdhW8z;@%?*5A7 zf*JJqtNb=ehkwdDD_P~Nw<&)44!8V2RLPI#U}sib zt9w0SfDVd3V%KhwU0bn1`d+e9lyBm-lM_YAQTis%IRpAFCZY5PH0fip$@uw^Ru$MH7f z7Sozv8S{cb4B82_ZxJ^Pv!;i{qucGS@eoL{l*R#Sba(HRKFlDXZW`VZGZeT zKU^9w{*(h$RaLsKY5PBH-caEaRI+g z{cen;-yXCG-gZ?YfS)1<{|Gt~IqO1Gi}8=l!#^UMWgP!VJWO7Q;!v~nvjW#YV&!Az zZ{{5N(yV_ZP^vR-``C*IOHHF}2+hrElYKp+i zc3?XE-C|(hMjNsd2yWVs4qnt0vtL!bqmq4ql1;+pZf@6{lMcw z=UrR_UZ=*3Yrn)v;(iK7YAo(J=Rg-@S-^mCO+x>Fmv;(6*xcBIBOaytIUHkSFV~j` z*+d{H-RIXGuDA*vQE~5&Lr{2 z8>0_xag+GRy@Phon5BE^iG|?CO0Dg~+Ixh(2YxO8X*M!m4)G&uSF|eH-#;Uldxv-t z>B!n+t!Fll2Ri20F`MVvJlB2M;X(ZJ+xrRaX*~L~WlnlxvfqcFdwpQ<(?B2C6E&m{ z+-Lo*K2XP%seSnQus+bv-dorjXI?sy$*&UJvH3nhogL)*XCCqvBlmA-?X>x{!n2X-UVLXKV-()B;Y-@U zbshe?HTdh+;ICVQzi!E@*ES!-Ux!ckjj|f@+&~K_m~gXvbSl$abJjI^Psm3!#r6H| zV_YMVC3jNSTIyO$U2Cap>8eAUd#LMpW=3^9oJov-TCdKRiQ~Hq;p5w`Hu$!U{?0`P zlx_A1@=xZn+}YbXORpQa>b{d-eJk6M|E(syG* z^gTSR@8SCEyuMGhzv22R{0jF)--p}3UoUiNJv!Zh{ri4kCc5wc^YL@|e$R2xWV=qV zPlVvNid9sMiv0KC6#u>a5B@WkPq}{laEc$lE{NS{EO`w~;Ky-n3flwhIRO8$bLDAW zuEf6Ae$dIY=jVr{MgoI|5yCuz<6!E?I6DkT}AuqXVU2Wx+7amp!X^8%Iea{%%ZEg%tv@$d1Dc= zBchY1=(p7)k#j{S)rUgKQ1tx@&cU>JchFdU#P;_Q?0EFIEVaKQ-M)U-?<;fl%al19 z=&z0c8?<-(^P_Wcg2QqSg)WkF$eo{{jk5@O^P`+Y^Z1^9nt4UuynrB9hVB|>cTHVK z5$Ppwx;d8axWIU(ri|z37Z{IA58po!>#Omk!hRIF2Si`efOmR1aU{f+48RvSA7qXy z17;62r&)OFpWA%cba4hynms%9F!nZG`{(|oL0?qIPQG2sw>_bB`|UDdxE|T-1^;Icd)_qb+hI;Ke2B+dq}Lz<=HlW zNxkelZiPoY`T{if0J%|QGm;)9-_>Gl7%|GR1zVq9C(pD!8VSCG%=L*_SUC-#^=-jT| zz5%rTGY^%tr_F5%uPyi20Dth3>mvcz6I91XA7=oOqV`JbT$v zVN)(%bL1Zq0ciK=6xdjP>+SRS!{R|4YadtM_&pELT-YBwQjE_;__2m{mWE9XLP8$64Q_n&J($1YdQWgsJYVVt;8`^tp z?~Bq{N1MI#Q-3fn$upOwntHS{aoJG@^Dh`*c9*sB=h4im1Q&zf6|tf#RD zFEM+{pf$%?cfwKmFZ^|-cD28&Npw}|9_2oipZ8&YYpp%bjmh%65O0I@ND0cc#c(*ZJ$flesQ-e)j95g>P8{{2#vA zurha=wQWbN&F5MhJI1_0W6^h6=h88JJl47jaAt`8lVrWSM*3y6P;! zw%L6v=XAkG)!%&!=k+37FRD8C@m4)A&PeYo{vv$q5%IK8vn|608u#AcvM}2F7JIbg z-uv;9>3ton?Kz_F*gy1Ji0#APKbz+MZnieL8rkQeF*B-(*^myacZxQ+IScJ~8`ApB z?^fA<#4bzknG|M-9}0|Jpt;ywNQy zq&~%p43tmz%Bg!u`7E!Tc2qvl4)MtrZ=O?Z#+LaE7#E zF|cbg?m+!lzlpD#uKXLc{O`$xO?lV0cLt|OS zSS}?0o)~tXU_LfEcxcIin0I-oQ64`G+ zCewVMI_So0?23p+ymx>`Bo|wqv9WzjD6ij@uNz9P{RpwmX{AwkgkaQd{9t$tF3_BlP2`)##F^I0Y`i6a%?)_xW1ms(EqpADgtwmm2h0uxks>fTim&NVbx49m^#K9HuvKVcOKknx@ z_fw*W)<4-0@5hhuDdN=oM_`H}e%G0hXup-YxPw1@rfqkzzV6{K*WCwv$3F!&!t024 zy*ZIipRpy^n8MN! z&HEvr(67S4gc_a((?bsC*XdpK{hngYnMgoT75}hJW5K_s-bOp-OS_7_iCs5> zx8QDaG3%J|cb)Gi?{!xFcUU(a(@o!N*wCMcf4u-7Bi^KW+g15?j9Lp5(H%QOX;ZtT z4^m%SC=(l9TK!sdKIw~f(0u8tUDMfH42@A6ZNSX7gD%-USMqgQZ!AB9YoI zy!Hinu5EX;*Dh=FV(p^${MYSDe~q#)(}a3|lG5&Dv@6;{99v`iJtj}|b+qsa8iMbJ zGAHk3O00z8pU*!|Sbb%Xe>i+o2@Q+K*q<~K{SW(4nK9OGC*61nYeRE%4B1h#Hh53| z0P=FdUpiUeUC>q8gu1_M^3d0iwdGqV+ug4C3B@BrHy?V?Y~0T|sM3pzp}p8~XSJ7M z^IB>0WLL7^&yZ299vq?Ni_*}w%BJqvX@9lh| zr~7fc@IucKAECL zPTzsQ^zR+sm;NT&01omoYTSy;Y^Oc-sp$L20mQt>XQunY@BeilpQewgb1Ha!6nOp6 zo4-?0mw&!)_tRfFz&|B(#-E+vH{o2_h6yLPoPSY%!xxEhN`}cj!y(uL(DIW52FCxAsZ)XjCJUoyx`U zk%T{pPIbZ)Rj2k|Nw=Rk>dUQNa~LbQq4kvw{h7-*Q{jb^@B^~`G7qDB-iohCv0~lF zOkNM~iZ8h1cWJ)tZ~YN-Du}Q4ICwuI`|zgM&4?$j`GC`U4d3n>6{tR8MpVxo;hZXX zk6HA<@(0c+hw{{~1+2Vu`}t#;ckpgm8g>!ls(PS@o8i|F-gG5fe=oAotTw*?72oLn zi`BUzrB3C8*!oZCf$+>*Kj+DbzjNiprQ)-U%i2cag_57^A2J&oc~3m^d9Dv}{b}7x z#|%dp!>ZjsjFO-EHzsd7;2$@?bXy~49Q_$!yp{Vg{p>pOgx42^)^ zKDPUJ#AGS&=b!m??Hym*-EXg5UvHFOG(*MdnK z^R2#Eo?jEzeyB`h5n6My%m-CI@GLgn?v--P(&vVhm%HVmUkDGhzqaVPNM>w&7`w6F zoumDEJ^ANzC@Y{$->w0t>tZ)2b|MdNaaap`Du3M(dSrKTL)E5Z*gd}u%|C{`sPz}5 z-UHO>@O=i~7nqD{>Ds|xkkgZ~W$;{Oy6?sYM9!S%m8@;w4*xv1nI3F2diQx`I9)&Q z$#APpdUKI6dt*FP?%2W%_#$)=xvZs_ebiOnK5F5&>`7Up0vjz4ps)V8Iz9U~vh`lU zGLRX{lfB0GV}J5Jd_#E$urA`6c*kb=x`hM#F4b4r)plCmO+KArIiI##JBz8_>h-yT zxt6cfevh4BGQ8yEi^la^c>v$)We#{Y*zbUJQ}Yk5P73`{>?^U4Hdn^uRwEFJ8R)S54OsurM~<7+9ih+4ufr>2iw1uPirf%z2M#*BjwD0-F=D0cJFbncrVtz5T;6?vb**|uW28$2y>=q_p4F!qG!NZo z#)p~P3DCQ8XkP@JtAg%njBj?ib7`1M?N`HoWo4cm6KqaGONA$)(Zm>=P<3$hh(2gk zV*&n5$^0SaJVd#>XWGpT(!|~b*$^c22l+1a=<1`3O{n+Vp6|hj(?R%z3*Va)#qhQ& za7T9efih^C%8EUHfvyZJ!imvm@Ly5?V)~LQ17tA=srSU+N`7iQ`GB<I?DyPml{Cba{&WbdA*?2jdld z9JM%NZchB@hc*VZrtns4m#$fvd$YCuOD;=d3x4;h!MH>Jn~(iys9#R)kA`;09&fyV zzW%yvSpM$e?LSBRh2WcV=*dwy>Q8+(68dfz(mpa+?&hc(fUjCH+hr>t4RyKYzkudVzBFjAWj)#w>mzTgc}(yxzYs{^9QkoMb;*mI!?tmXl)6el4V-H;O>8s{I5R8=yN1& z>={D82S@!rC7FZJBKRrq#F-oHFqVFmF^7_|v8Pt&p6~x&h`Q}J%$0=!I8nj3l9eKq z$=*pUgtY;K=JRVLLv7&o9X0>3Z)G>zbpB? zOLNn)mmOvuExjRTWl&xBoO$e-e)QJ$(ENVn<#K*+=M0&CY|YC?vG*v%IWg#2=Qf+Z zjM+}#t-w5kcW2jd*WyrqAc~@|fz3&ix zK1TmiZGH=otJ9MOdB-*q*O+4#E#qvk%!=uW^aqyAUgEVQJ|=ym?M2hqQ%Md)34_>GPfgedPCB3_eZaY>0r_ljZ~x z1?;_-uHOMZb@ILJ0J3*K&E9F%{dP1ks)`H`wk->u6$UKEl3|JB_~;T39sKEJi%7x!O=ZyC8?<<;o_ zJ|Agu`N(}Le;OMb<(jIkYfWyt@*{eS)m+cCD2iNrW` z(caFnPM>I)VBfs~m~CKBHuIrzgeW^iY_H1nj6Je@l9vVY4r2$o6?isbcNhEyU`jiJ z=`DigW%+rkU*G9$Df@o;h2Nhx?EORJ(c5{J*o#W#hyCmNk!c3%S3Zxe)Gzv>9IC?0 zSKrI?$B=1OI+o6eR=juxWo7V1-Z5O)LUX(B<2)LZ*4$l&OsnzpUOM}uUITYHhlW^XayJ-qZ1KM0n%W-Y88I|b@@A_|Vx#u9FU5X^?AHD;ePBJdmntu$ z*_#AsUAp1ohAV4KOJuXh@DAoHo&8*gjWe*H^iU>pE8{y7b{aX;r+S~sC=H$MUv!9e z|5G%Eb7KtikXb7`e`aqbwyn(d?sX2=np4eV+P`2M8|5_CQOEJj^2TN6%q*3U;(6Q1 zKwdX;anG~Tp);EuVpElSsP*6bpH0*FM&|RJ_4X`yvX1ox%$T3Xbn*djWli@`-#T+< zragCvZv(bXoqd`C??|if@Ni-ubEfwG-uGW54}tQXl%MY3BiM@{C_i518UtsG`DG2Z_-n9S z<<*SaUt``H{EEt1gIa&bsOt;-MdZUi?#9vmJAF{!ZQGprXMM=ffQ7tAUu(=yTv>9N z*Y1L0?G}0Uzc8%b`&G^vf2S$mPhE@r`X=09Wz$!@c2i}{KN0KT%b53HMBjYe5I&;4QTCt_V%dOH`IG6y^amnMM|?X${xmojj& z3w>j;_I9Etckx|q1YZJmD9*FP`|f>wf9_f_rw9(b<LrZhm~Bc^~oaI)`CG><>Scuv_e=ZZw#=q;PXcf#i6GZvq~qqZpcg70GOIM!eco&v5M zMt4;{hB?IfEJHum?*r(^=xcp*1DU0-({2ayvi4riHD#yUIj=$cRuQzvc7s1X)4?%# zd0Uh@#D41TT?p16zy=s3hP}|rB;+LFeY?l7HhsXpTx8`RXSZa=v*^n00qVSpI?LfNpZSPe_gL;PR=>4J(tc5<^dU8?;fD z!<;R4vQG7q2S;?v&L{HnL0}P=tplAiRc{|C8>Y7>8C%R`&T40TnZQH!YOIb4HUID& zIup;;p8B6FJRu&~jfdteVsPPG&;%c6;`p#Sflo2x6F!KC$nK+9>~diBE^}wh+<&+A zWzkM9Fy(#gtEZj1lNmGRM^f2p;W}ly?f~xU-{UG19@zebtlc*CUj0*_eoCKwm<+^a z1CuIXLJkh%vO`vfDE7;MiI;!F>JYUibEfJdKS1*;V4(IiZo9S*y6ar@W@}dY(JEqk z^!zw|_3@&em>|~%4Nbao5O0ovubCdc%Ks&NU5HGcxix)=ysl?Hz8(i(IcxpV;~u^q z2d)c`XUKNcqBwrZ@_PRo@b;RmHzuYAj=yqyAk*5jhLm&GsmiB%XPw>-t_s&nS%+nT zOGAXy8g$XnR8$sV-Cdwq~9qX@m=sQqPY_u^1Sd2G9P2MbHNz5itfl~^@zaT$@Da z7;q@pqY=>VHNY7ggN@e}-4ZV7uY~!o!}mmdRAwEvPiUFthjpXOOvz93@5+yVJ-S*4 z{u#li1X}PKu-HAG^$O0m(T;L5t4;CT`KTUR81smTs+r`{ZqMwIq zZyaKq9a28bHVcopbH9{2`%QZ3E@FChet_2a{mj3{7sm!68{sbI)ulaY^-o~SR+&$G zkoyMKnQW{7UD`7Nm}^~i(cX4w$Jc2~Z9m1Yez8`{(mRH$G<2--#`9Ko;tV8qUC=U%*57FarLx^W1{g1$nSqV)r;QU_6E~<$Xc#Okb_X#q4Pg;v1Ml99W$F(eeWn5z~C1Y}%aX z8|OUV0%G@~Gw?lMZuZQ>mtV!%0*bF_yT|mEl{=?SU}K4bD_JJgTZj!*aRi}qC-F~$ z1G24)yTSTy@)Jrn?WC;hF2)PY#QzU5Psj*+{kgo=H2u0~bknazI~7+^U`G6SGUt6y zW-hvsS9XfWu~vfQBrHb9R$V=kNvOLUJ?ap$a1V2JD|y$CbIqB-y~l~^lC9pxNP=7K z%)8<{-1xLK<~+Ure}53zBB$HAyT_Y5>XzL4C)Qn(IkNE-%#ocp+Oy-}x#De;e4~9j z?UdX70MH?=q4w$Cz0bd*ZVZWFn$L6D&RFZsf|cZpe-WH$cZ~@&cT?9fVB8aWcz1XC z+D+ZObJ&hQ4Vy|veHt*(xHbQAU_OsJ=ToO*VaiOnx1DiM02am2#x?Y9A9T@xugGkR z)Oy@Yc()Ja7b%iYy1Q>f3^65M=RKGSN}ZzwS8lq(}m&(Nt2K*;Q6u9)P}Rjdpf_`EuZLBXD7E@%PXl@ESZ2 z5Bx3lcf&75D|aDV#?YVAmpLmkn3v1`W9{7mi_vsNrChy55X_taUZ-`yUHn$&itpHkF_4UI&HJXRm~YR zO*o?d>};O-#1^Ch7aq+ljG0{-L4sYW1QNn)T|(FHE!6QfKOX zYtMD6yR;9Tec>p=MBzKg8k`g%j2jFH&L%q6`cu1lEH?=z=$%Svb0nT#ie|B`!N8);@7pp1ByCl!OU zI^B)IQQfk+Ll0->+|)BW4cwl1esShDlTn{@eq1JT>wAm9qxmT`Ty^e)jvpZ26gpnB z1UfD}dX2a`wVh6$i%G=J)tU6_1;ux_J`WEqxaH2)VD^Dc#K=6U@^1Qo&G&<9Uok4O zG4Gt#Zrdl8CbOG8V>{1z?ZX2KkfF<=8-?JT_EwZbJ1l;9a8JGN)Osa$suOzkZR})C z+S3XRmA_d0Xf^8%-nb`9ePt>1DIfY2S)O~wp{WLkhj@Pn@8*D;w)}o~4}|oo5O#9>1vVF| z{PF>v^`Q2zo^0c{FK2BzlIiDhHZ*p-OaI1Nv+=>;`tgrlc)fLvgWsg$Kj+=2<_~L! zr+2{96=R>g)%4BtaBK^>1%Fzk*eK;b5ssCBW5TT+%ZtzKfM?D}R;WW(s9IKHWo^AH zUH;R+LNZU=9mKZ}!0^KshF=m4?{fM^@%ymeqkl~!*?Wa=MRYz0o@uT^;F#=PIwMAM zP})<0L>KhGfNyGL`@hbO;VV*o$U-=%JfDD@>*{`$L#Izu-Xz$rclVrrQsvCczxd_l z?wsGPa^~!x{d(BflZ~(QcFO0|rq-M6LjiP{9M;W!_hQF+_*QIdq25cNVY-i%-rARa z^{Uq3vcfasS9bpqyhOBRti}rNw=w@8q|Sfg{zm?!i*g1^-YBjaSBrVm-TQK#`h!0E z1^QE-f@_l~&sJT)%>X0yOSZ9W`jt(;=3>v?%Dj~u^ho%31Rfbw8(d4Dlgz3;D4Nqh z7TPu&%yQR{av61BLf!6~a^;l*zSq7t?IT)D3~ny;ZGs8Du^2f6y+qfX85r&ru5_?Q z-UipKEQsCvm()++Pnvn|UcYx3%W29aQwRs(OV!!X0nPhQ+;>~dQ|>zX9q;-$bb{;D zb=ak6)Nw7p7B+9YYwnoJne+d_@0-*o*-Wx~7P5OA{d>u8BP?9}>TVL5Z2TEz-{x;N z<8IbB@ah4%2RJn`o(|~Z4)@!EvAoK+`zT9=l`rG?yihzSc!72K0qRVRS+evW-m)#z z%nHJT?qiKf=hohuFfv1&JP^g}V|HJ!=G*_1uDK)f>ZXFHqLx2N7i1o0MyGXJ8omG; zevrMd_-HK;2~uZt7!Of?qt)o4THl4N?>V%c%{~wPhTtK&@Q`fmHc@!Ugk^EdL$*Z@ zY$68bNtIWEb5W0n`0eLS;a*OZ&iQJb>yo92O`(`F)O~l>BiJv zM(kHiu_ncn6BX=oELgGQV1@vZHn*AG&&iD`WiPX5v4f8;X}IMi%b?uVQ>NTo&m* zj~$0K-T@wVLQj-C#^Q))zYI?2wlgo)}x05 z?3-Rc7h6i0XH^Xqo7Sv)a6=t=dzQ3qI=W=+zn;BW-UwNDJQeNY{l=-b`)T3|1 zULH7ID+fuDIrFlvi-0oW*PHg}Dq~LI3Zh|JL?BrkpaT?+wP{_utK5 zH>lr_W1byi50q~rNQ_2k^ykK7*YeTNd4L_&#?PAD-d7D`-N8%X?tdHh%9KB2!q^M3!}{l4eCTYiK0`%&-r^WN{* z`3*c``s&UfJCX)0$K8OP>7D%Z<&l!{@Uuns{^$AUYa_+uCqn1eV6Sl^@$oyHs!glu zYxeqBR)ll9O_ezx0+*C~PS>p87JC*gbMbBJ@ynHSM(^oY@y8Y)!A<>^fS1yRWye^D zt?DdrI$NHZSefD2_#|vv3G7b2*W$yFjYK)?%E+yhO}`c!b4vL!CI9|~xst6=^LCbN zwTB+se1>cBn?P;I;!8U`G6y()2DwB1E!Rg zeC+D0?KzfT6b~EYoDV`nYsH^8x;*IfDrar&@yi?B@?|QAHvg+jhg*zy7DSQCS#K{; z-lTed;PUzVRnC}yO?fKs_@v6mIp;g+&-eNJD1UZ+Ru1Y8iVgE=xMYtm;@gDxPjd!9 zs?VomjARq^KVsaRi>&8sY&_FYeKr6d2b%(k5cnPj-_yYNbQ4U7=43d*L=UjbjBw^6 zveXFH_=zjsyteT8Bih5G`OsXbkBY&p;!i$+9p0~eI(lb&$hC3mJMArs@+-Uknp?E* zh&-zN={?!`Rgdg}irrM*ifhD%ZucFe;hUNWAK2bdxv7isO6Pt{wuI}5nK0?iNv#e3 zbPiQMzY#B%U+03xOwoAORZF4H@ZouYwH}!gBUa0OPw}GUeCUletlgw_B3WNFRoB)> z35?5(>HR(UZurL5^~?P8YQylYm2G%e`M1cj(!3fxt~6nb^K)x2I~9Js{AdNVF~YZ5 ztQ)P9NK5%9wI8HETF;JI@|?rkF#HN0F|I96Lf7r$l51uEQ zyw~)#-3JaWMqXtO#NT7=mv6h5HOT(Sj{DGkSfg6U(j7Y%V}l^iNI89)U_v@;`A7xV z>YL5eGX=USxbU8Vj!po7*6_|G;J**p=}cGEbt!d4si%-{b7LVJpIgLrKI3%ZwDh?E zbp@G&g4wb0x#hvc#M)qDQd2Ool=@!aPcalnyx$JKEy#?IU&s9v+LF(=!^EE}gpOxJ zw{u22=d(wf^EQ5h{<-VOl^ZRe9nIN4^l5S}`6-vj&Q0L`a_A{>HH&ij?j7LRc?UcN zy`wAY+UcM{=dshBPv)BQ5x&c9B4;qRX2sP#tQbsSh@5^t7O`})yV1+GeRQ`T`hYpxr);vZBO^7TH~1@?xgq-w;{6(%r+G#aRYJ=y#=)_a2XK`|`^*HsASRzBb7( z!P=1B8>Kb&ZRj5BxkhJrEGE|Qr{H&z*xU%V4DH=&M=vfw#@(i0azf*SZPfaZzGeG& z(3Np7c5T-U=RHluzpQrRv_mZY8_Mr0AKaQn(Y{Gv*>H5h@rKh&?)i_?lTP)@#?!oH z+?u0nuh?^X(yxDhdP(x!Y0e4w@$=+A+_@@!Gj#aJ+5>*j=7o*5u2~e4-dg$*XsY7$ zi&r@t#^KA-dGTA&m9{ZP_V3%WV&s)dd;!J8S8ZXu0b;A*|9!HxRDY9sQk(`fx;?AB zQF7qL#w9!ImG=(X3`I}BPtJ4AhkTem{BIj4`FD_CS{QJaM92HsYr*=Fu6V$hy~5`| z{t8`^@9jEZjkL4Q;?UZ7EX~rsDEuHb_oe6~_|l+wdGVL%?_8g&wdVrceC9BhyxSpu zZBRCqLL`+kSd)Auw3yweLS)NFP22zcR>$nGtw6dRQ2qIM0Of*}%hS zXAb?EG?x75@Eckfz_zb{aAY-g`W+yw0z9`+s>>VCTyU%lEp3q#*mdS~Hm1-?3y zwFo@OAy3_EohSJ8XJ-RqtKOJHBI}Fmt zz(>$Ykw?Pil4Ao2tG~e~)kdMGmsNs8y5G*du0yxD^65dZyn}LIzfFa`=2!MAtKTp$ zFP~?<3;vQ1fv*Fs+o45vPFP2sR&ESgUF$!BfsK;SS9&ln_FyjmeI4*h0`rPt`voh2 zc{V(>!h?AXm>@aNV+uTFcev305%;{ULHx`nhRfPL(PdL{%jV$$w?wZL;}Q{Wp+{OjuyBm^ zYHf$$t>!>@^BV9dfq&F-e(+BAL>xlylKwtW27FY8&&1A26#VS8yi)nDg_r5|Gye;` z)Euq$^3wQv{c3N{R(tgpf|ofSUKV+KgoT&G&&JUhG$!@G5FVNzG#|u=vq$)>GC$9q z<%#I>{#@fv8#_=oY|h0$ZX-4;mCyS)@7sr7yJILV`DQAAA7Ib zUyZQx?O?u@BG3tH>2yRI3Pws~g;F?XZVH_zpHd|Jh( zGRC`oTIHrJ?8ov0q?x)h|0me_wai?-!}1G zOg=hiq|FsQVfr9n6<&osyxQi`ec=;pbY=kD6;G2bPV3v+f+&-|m~H0SvoQkLeDZ^5 zW@RIn2jQh5bWR`d!pzZX6I7nq>ikuK&Dr2i5x7$X?rZ~h+QFUtRr@zrjLomsTGgJM zAaYG80*|JyH0nxcZssx%`OKqubOmj16Ta4mhShFCSHYH1%Ha-*J0j<8M-UuHQe`UoglYEPkwV@gsx& z$S;;e#HIwSl8IbNx-8U&mj$c;Kih ziMA`9-8J|dM5i^DM;Xg-e?e-@rlnO)A@a>0I}$w?YZXkVLR(gcI9nY3t}_ebLL zP-)nkNGzrwn|qdZmTTqrU~i|VJIsOJmyvscX!S_af`lmjS$j2sg zrw0q+ng7q9&lAJWBOMM4#{b5vtfl`OFqnYua-s45uVLf;Vaj+vG;F-zOBwHUuHVmi zzddZcmwV$CU)B7dBJa8Mmi2kPYj-Z+AJ1PrzYdz>JSZgcd z{Kfx8u4km{aU9)j(2w76Rryp4nK60O@TPPQa zzpn5jS-HCy8Lr9%tUf21t{B+r-ru*Mj|`XV$#BuXA;bB78%>|3bN+8)&W@O{SYjqAf_t;qjX2o;cIFn;FXL79OOpeu@ z$x#4r${tlvZQ;K-%DchpY~avNJ}<6qtQ5Ybnt~=b?~v^u=UiJ^51uE!bpZTChiO(F zaq1|e>~+f2$9&4N%Ri)C=tra{sm!6wP!{lb*6{bl$9#Hnn~gsl}*An~0C`t~+uQCF7i3k<8Gp+|l7(6R%3!HFui(P3$nZ zF&4W!Jm0~trG6++MmhaZ*~4DHBeZSU4;Vp@k2n{2m$Ks2cOBk!cz50f-lgo*sqe;k zcb>oJ!_^HV;swiQVY6Gg`^VD;>4fmRo;>NIjWxsR1NwvVyX=Awrt(V7lMm-v-)2o| z4wysb+uDj8qL_+_j~F`-?l`YVY$FaR%Aax`{EYTfc|c4uU~)=gKXUT+VSTIg`u1D; z=Hu7vwm*aVzOVmi-p9}%$(VshoV@+S&jdUf+LIU8XVI^I=3Y3b^DFg@^rd9fBo?l6 z%OKPz1r`n=?`UZ4KsBJg^`=4T&_r%2AV^`G})_SU!P<6PmnU>4{tWWQB1 zYW*t>g@44yhn=p3wJ5xcai5%Sr;mj`>yHkzsROMBH)*dCE1%pI{z8r8cNrHURlDl9OF{tB-2?1s@Kw8KQg5_~l?8 z5j}S_my`LP>m1@;78`sA;1{-PVh5H#hp!SH(DXhCtme*8e1{q97}Ff#+Ql!Ih7Ztf z;MYFgIq#VKEWz|ctQ!Z|7~sM?0K1KRM|31zc}2*KrmLxPJV`!F8A%Y0hgc9wt}2 zV3r)|od4WK@ar0EMXB*EsrY{nFl}Rg>>Bu@y9NdC-&1}eTz=7O??lS_dV+ZGi>>!L znzO7y+^rz?LG}Ne%8BI=uh%?89N>p+Y+>i&bQ*C+$oJ=ylJlwK{m{64;2#10P2^r} zqwGV_NQ0OJMzzGXGXKc6LPS1W3N1)KP4`I zxqT)ZSAj9rS&nl`y0PeS{EyK-_P6iRH+l}wv9Tz!kp$@XHthQLJ=&CxeGvT8STrUV zuUvXy>DD){v2^QyFqiXg^Yq!bU48bEl=;=%-tED9r#G)YJ-f}uUk#;a2KmdB2NTyK zvuG~cuIDVs+Upao8~UI1pM8U8{&fQTL%C;{qVFw!Zk7P@M7A?2k&}{}WuOdsO0XeM zl(n__b^VNb-%=mFK75sXyLSQJsd0?=#xY!<^2am6=64;8UrNq0gZq<0!MuLt0Lc~d z)wa!n_OQM?LIru9@cy~PmC1G@S{b~u{Adm_6X@@p=^e5*jT?ytC`X3u?+>!QE5u)z z@OQ~N841PrbU>?>S4R6S>vN!m$5C)>7@8-j6sjr`_X-!VgsCpary2oOj4 zE;t~3v^Er;x4p|=LHgyc9d`{6vDJBg(O;=P(K>jhaH<2p=npQkexI=GcTnDT_$FU? zN;~tI>-p59nB<-Gr_!W1e-#>{eXDD@uVcQ}49hLAIr%2-AHPU@yVw($8m})pES}LG z59H0g*KD-1U2?k31(whH$VP6I9$bk{Kxenet`gO{@nlHFEbbp+_K5DFXIP)%_0)r| zQe!^n>ZEsm8rl!-Hs@|{edbf1k9(e*OLT#r!E5xa+I_~EKyKXjTs;E@dRE1=TGhG3 zwJprnGvFW@(PZx5w2J4nNzAwFQ=i83Yw1Tao}X7M+6?~2-YLj4#N4M*-lW*6J#IS_ zc{f6t-YI)0m?z!s+$X*EPLkUMS>b;FI0A4`az}gI^{d~Oia&8DkM(TNv-S6*jrf4(aBx3b@-Du=hwtxoWwB!7$hEI0 zKFxVXF%_Z#CD5-r%DY&9lOk$4wvf{(@@^%nIEZo(1owI_?ozM{rPtSibpS4hjzPHnK z;=c%6|HVKVG*xB3|04g$W35sC6o+qN@69{>eK&e=?c#JV}&J!?(;u#)?j zaH)KDqJeACMW4QJm7dHyzJE$I%-&nNKA49;5V2<(w`hM1yltl95Pd(G<$=2A8~I9o zUzp$KFKN?X^|OI~ipE>o?d=`(c}fmr^?jb=Ehq4$ zwSyP;rQk)azK1uYe(&yyd2DwhaWINIc$weSdG+mgqR9=z@>?LA^o>lR(LTSt&B|MY z{C_SnUzzAQ@?*x}74j_xWZyk$p6U3L*2Dc`;6e#ai0v3j=xo*a6GcfOzU z&MWRa$hc$YmV5Oq=be=)?<{xUxkT@nz$yG^oRi`_qr4jfeLUmlS5`k|$B0hYze(>F z;^&cn2Ac+JI(vxk3BJ%^rn$D@E3O|p2ZH^7&Ku;%!{x2l?f$jF_!#Xok&SbU3BHxh zp5EXXvu82wPeG3ZhI^HpC6oSZeGu#OMkjU_%{jK= zvag2RI*RZ^`E^Ktn@=6-{Jn;q(yb@0p8ey`wud711?&qBvFD(Z{M+n1XjcEKu5$Cf z%b&(L_Z0EYc>1pWN7#nQUA98F*1Vl@$e*dTAi2n053VfK1y1X^_fLc+@g@$pfqf zJzokx>xa&41BVXJh*q;-9r#9@mwNjHx0sCHO4iA0`h1YN(HzOHwH>;&4Vgvdb+oCu z?0`pTp7iU+7qKteyZ7T=Qpf4;VSRk}%Zj&xZz*5c9-;K?CHD=89{RG zCy*Jw_zANygFkS!#hi3ws!Oj6Y-}I)P0;&hA>Sz*Cw*ryY^YWxfqR^ zlY-|~?qog|cr?bRFRna3Xpa-lgwShMXECzfJaE$Tw+&G{4~nTd1fNh`REZZCrJPKX zky7KLN<90vo~^~ct@=XA|NHe?+@Novi0KPV3*_yd;@M~qy0py7<581mX)kO4&&oNU z0q>7GlsSDr8U~MRz@Jq8R`3YdvX2{Bl&}u=eJbDX%bIxZlkPcy*gStV`2uZ9egoHq z^P)L#`t6Qnz0Z@)oTZ%c!cEC9{yfP~Y{2z2 z`klVeY1I3Qo7L|+`mMQg*XvOKlGY6Q-Fh?8+m*YppFRFT;_EZfEiy07usoUki$_M3 z+}(P~`B>}7$3J6XaD0wgabm7n@fK%r^=>eE$2T~6FEHoCt;{;kd0bh6^wNC#b9|1o zB5QxfquW?>$LG4&$0u*uq_w8}FIsCScxNu}sC+&7_xe9IuQ$n@bRpx_ow+N)nC)Jg znY^p_mYLj^{)$cMt#pf2`S;e9|TP0`O_3Yt{>eZiM9QE+O z*u($-FaDi6U~wUMTlqG3sL#)DSN?zG0nxUGi;Ye5c(Jj)N}JO8Y#Zd=*hp-T>h{-z zaB{kjldOeU3N9M{`Sjrd>;D?mN0pyrE_60W_8L!DR1S|gXLG22`4NiQ%T|J)bjd0g zKRWI+D>@gO6NZr!?vP_^i$eb5aZ)6ntTF9G> z{jIU1)ya!ry`+`+j{1UCu~zuM&Bv;C<$JJm=;>0QQY;fTHu1Voq>kNRmyG{U1s*N% z*5rl!f42?GKODB>5BCPOug4p|_S1Ht&xGl3l?MmKtgHbJYk|W$4-TEcp$j;WZ=WB!EmuLrwVqg{x!e7t9dUOGFFy}41;Z80Jh=! zzYvEpfLA_jJ({<97<@(Z>ODLQFm~j*L|~z53_#yhhyK);5Pco&OUU*GS<3cBW6_!@ zWIYBLM^lJ6oD_ULVeMsu^fPGZi!)h)We`{vc=Lnr@`(0a&SQS&d-FrA{)!Ih80SJY zc0tG5p<~fAW%dl$4(@&2Z-N3=YPSw}}jVrjS?3wIk!TO?$;ib=yJe+J${EEE} z)_;2#47D~tk^;NeftkM^-SgcC$H&@RA=)qB=N6M`<#uqikv+quG3GE7HYq& z>xCE-vm*Nz_A#4G8w(PMICiD*JN_l zqgmNgipK}!gT#-tpE`187mjx#Mfi%$B9%qJZLPyL?DcxD4ciFoGtbZm@i48oCfZF> zuIs;g_tl~AvNY|#0sOW0-y!&G`N=`X>94OMUB^rUS~W9-3}f*Sno`7?%L$S%37^oG zlc7@;%)k7%MaX4Y_-WJNhwUTr!GMFJHL}?+#_wCqck{>-#C!7LkNp+zWUUJ9lC3a8 zncmmC%88Lhy*a=jT5b}B%OgYbWDHpwSAKQ(_lX;_^MC)yL?LlBD~Hd&XTSS&>ilEB z`(X-x-v%E^-H#z%vA-;|%j#~xpdEcH2n?jdNr#j@I>;DAJEi+S30>=ewiGWfJR=+M zeD+u?Z`*>P*$b}pt;O#rJFN7}F62?!zw$qg0*%=_d5 z-cDUHcucMKHUpa?V7?vL#IWU^4yZOn&!B3ZNp@9x9?K)ccpeS3-f zZW}Os5Eu%FB$tR5yvKvpE5OLb9QS`8e@+aGkGF9Ff(^VlbTv98KA}R*FY_&XR|J23 zHUi2M*WbbMuN_p&9gWTZKb z;Wn}2waKKbzs z<7Cf_<~Onq8$;TUMDAGhV|)I57iSG)&q>H{$$A=izQqYYS^zCuvnt=7y{`Ube7gMT zWc*ec;L@>3@RaN{Q`o%joR~ep?4*lZjG3McfZZM$#>lx*6Krm{%6yFWUckc-Hj3IQMvvKDGPb` zy2j3UQvvuYnM*d}cIlzSCe0z9u;|>`^<|+zsq`$_O;nBzz?NyAi_VQ(@5eV*c{)%k z?y5cY0sC-i&}+ljb?&2nVkfC9XzS0Q{yDbpV5#cH7Clh6be+_CE#4Dna1S`(U*GLr z2QDYxF$FiY4o)dgJvM=|3*i3)!~A386c5I^hjUG^v<=&Akp4%PJI}H+4aVg^odE@cp0VTf$;FZ+T5@Qc;miFMX76mhhGQ%DTgA8l) z2#7~0rmJ?cjboPGLH&&P&m(>z)NIHXVB-KNi-qQ&PvU1^c(;uKB_9m_u`$l>Ws+rB zi~ssDPu44T&y_DyIqUER%Hegy8sn!Umg9bvLo>EfUM?BvC$1mvlPbq&-bwwnvco!V zeD~dy-$7aG8cw}NPHZqOZa$`6lLKz-_qp^$HhZe-xYxL??n>-p`#r8-tkRn|`cIjY zx8VZwH^TDQLH+d)=vlIz?nk#)oy0OW__2(OmzyuNv0nW-hTk@dZ;b`_fSL8XYF%*- zUA6qlT8AHJZM6ZnY}RHwa8jB0s%W+132)bPbOb#U%@QoLSoaS~#$cUyvd*y;H*5cC z8uL>Zxjs=BG1X@u1GX)cjHX#^XL_Mk~Q|TA6YR9_0`y}c{h^ByOApr(4v}bzG-I)uA)y0_mEgNpxoeLL$;>v2CYm0wcrmeB5h)y{OnEH3m7 z|5klKqh!p^?roQ_Zu&E39Z>t8O!PXr^hKX8gx{_{IOrcj{>p0)o0;OjIp8EVto7I> z8p%WX1~#SALdH<((xw`p)_xz_6t%P|ZGhHdSAzEPKD0KPN^7D2E}!=7R+XNemH8Tw z@BUVqXu{iW-1&DVrL1dg2g22_dt+6s#9_h3`{(oLCxBGyd2;8jHGLJ#Ne=P81;9Q> z`v_C;L;PiR@XRdev0{h^#{A#mFXCNii3Ny5_r)9i>yB#;dUoIo9q_-7mrPzk;LJ?< zX|okW>h|Xi^+&P1mey6ea&JtrGn^mMK`tYcPTUf?*VN|%a*RdE_f*C{$OyO`_!PE< zYn{e26DWJ8-@D+eh;nEaefxQ=g;VZDb-1il10j82ELcpz)+-)6<1-Lf0zvSdu z8be!GDfUVE$cf{mt%kyvE8xj)ejrO*l2_Vu>Nk1$y46qVvXO_C1oGv95$_& zH+cs>*<#*y`Q%f22mRnE<)^5(ia#UzojKC-nK=S!8%I)9{8U$Ev~I|P9eZ{u9js@Hn4gMx$fYmI9O^l%Gf+Rr>xvbP@moSDns`by}(Xp64f zLh~8h(Ecu=Z)(@i%h1DEdyscenC>&za1N04gMl*ISJ?@#{Ur`DK=+uwr6!nofc%#y zUN(6}#0<-3(DN91alQ<#{4(*r8Ni{$?8)G)?H*!D-&z&iT#Byxxe4SJ;M}s`pNqDB z{eg#O_mIE#kBqyA+_fjod!D=_Fw*)yMvr$|YeHs52IqbEbM{yhW7L?Fw2{Gl_t1`b zz2;u!9o%<5hK>skbWmSt9<(Mjvi?!dND&OI{U8Mn-S?2|n7KRgvXiIwb?(&dfnfEI zf@bXDK!&yVuY2J7*^(o|T06|YV5;A@W|_X)&zM<1-;uYln%v91e%?gN-lESIe{Xg1S2TUex{Ag_0W-tT z8{ECp^u5&)%ImKrmvF?*B`i30ucJH~&g*~LwKM&Rv+0(^m_zIzrNz#QelxOkHFD2V z=22s4z9rh)L!RKzQHSRBsRv4D_n7OR?1A?lVs5)99NKh<>z%aSdzb1A)h}1BuM5nH zKOgFU?_I!@v+VY&ecDy~>R->**anz`UjD>ieSCWAf!LYyz|!Z;ry}n$v!~rKiu_mx z{h~B5syb`bt-S}KPfMGe6`%V@r}g*vDF5((hCC*f zGdx=oAXtHRrg;?1`~BVLoaE#YYWsfP_y6bf3FkcbIp$C)+Tgot z;pkhf>1QWd`xdrYi)$HkJ#qMO(GDBmsw*WYH`KMPJvc1;+({%9~OSqUsE z@g-H#Pw|1rg>&FqZlRUTAFVyG)*h9Ai5Zjl!R^HkI;yH8xZ=_E;!8(Da+z;QPSX=IKF` zQ#%*F5n&xmxG25nkn|q#y1H&ucn)#T@MXh0`pV!PDs%Ud!8!*R^(N;ki z8J3LJ7~C*=MxDvYKCo@|zx;-h6I-*b35nUE#oD($IbG)#hFbI2_=+m%lVbM{j0eWN zo6o!Ge=pV!^_{Q!gdM*Vh-8IJZ+PZK#lys@BYvN4n@M-4pLdpX?n@(fhkW1Vrtg6! z?JazTeWh;w@2Gy}M*Ae<_u(&xuX*872CY?xCIFBA^KkphOr8Db;c85pQ_U5!(acpF zJg*Qu%0V}k4d%|7pLnT{nzQB1nf9Hy-{ccl^`UQ|3GX~F=9^r;(Y%=XsLKsUW-uSK ztfZ@3M`klOTl{8jK4Ip@U1zuP!t@{AL-SHd-Uhe*820do+E2l=FJ1=ETv-1pupR-e z`P#CKz0ns}$(#>}tJH5`>y4}QZA|$F{cylH`knGkh&YOYxwy@3N91)+}`zWxFW?0F8B)7J~z5C%QtVNVQ6v9r*C42+iZyWI;I{G`_SA9A6 zi?#;NnS6JDK}?gbUvjR0##Q{eKC|xl45#c7uDK@PNkO;-U--uge0H3ba!%vBx`y8s z@U6&HbX0ITR%Rvh;9F62sHOKAT^{>vw8<5|`2l#!ROBw_TA{yVyW0Bu_f;-EigM%U zYQ!%VSkn4km6wH*zoPto>iR4G=*w;^K`u7dKriIm@Q{C@v&LH7Rc$Tqo`mjYx4YXq zY}eDMdM2^Pe7D`tXmx0Dlzzs**H|(7LXG%#pyi<5uQk?P_8ROro&Nrm@;3GNC;spz z#{7iSuOGYb&$QovOy$L)Vay4$OczomrYdx~^SPii+UjJX}(r$k~s{f+< z8uYCi{CygG9^>u=)~*iIYx#}Nt~oICuhkIH2_cG|DkW07xS&7 zuPtM~&9~@oOSvDMzw(8be(}nMcGkbThH}o3Py1gyiw3^gT1~u?&K#)ZYFX&( zyL$HwMpx&YukOt|d#4XZ@2*X=zLv)~cVFrqK8LxkXPqU;yE*X21p0Od`u0}z?eAS{ z+eCs(Vxm1~u6^Xyv(NBMy0+|t$lvxF+n|?oC<^fD{pKP*I?8iBW_s?tj)T-J#db(UCtg5&U}?VUY2e=c7WSI!RRI8@!K4}hJDx~eo+NqgJ0~s|K5Ro z?Q!T`e61CF_wu!QDu=KAfO0Qit57+7Z9C|i!>#0_XMhv>_Drtmx2!o^$(Olj&hL~jDT*ILzW=*U=(+uSm)^xcAU)x~ z{svzM_pDj6K9JM$7xYWN7yYf{+i=#^)xS~n@0WjM|88~qH_p?)WtZvSP*4BrJ^lM} zO8@S3`uEUf`qxYT_|*RGGVtr4&r;x4#@c%!e6Nu;NY=}`qpbbKuCok{3TNE8+Ckg7 z(rJ=(YKoV*FhV4&-S1AS{iKHI%a*z z-iz?Oo`VCwxYy7eIkxTcRVqiWze#yWy23+a&Aw56|E$|K@^%vV5*=kxKYOgpd_}#; zS3k0M7UhCL3^^9vLOJ?`>-&jM()v349x021SGu?R7-H{7pe2BOW&O3=&$_o_O*BTG zjgXh^UoTw#oZ1J6d+6INw=Wt$b>aK&u0r0bKSr-a_Qki96y+hGD=pvZJb00OvQf@> zjN)_gK@(%Cqe6br3HH9cdl}X3O6>>BDnE`A|fFM>Zmf)4!w z_AmV4n(jmqcXYS_!zYX|AI*?ae>l&K{yL#+N&BrXh zjWG`G8PR;zB2%N%vFVf6F657j0m~S38>Anl$W`5|OtBJX9+`8&STTR9V}m1?wGYZX z2M1!{faGa4-^aPvy0+oXcXQ4Ty!rFF{k&PUFdkYEUoO53Jxnv_SN5-;ir;DtIg^;P z5bMzq;Uj)X=~HfA7mZasH=Qx$pJvSHMsevzf<3x@KDv=&LZlli2KaUOjd-Ms$IAC2 zy+}4LvieS~k6N{{7dKL&CDkO`ipLk@&LAv@v7P9Pv zAvyi>1Kjy1*+0x1yeqkyy@Vml+WQl?jMy%Ne`S{OS4m$IjP7?}WcJ!y{rbr3De;q9 zXE8Df9Ty*G-+5mL=!fDd(a)29+NeV2&gLAj1Hvb8QMC6UeG%{0nqf(uRrI3z#J&0{ zd0Wi;QRJ0qSL<twcBbd zgP5#9`)P7U-*{>HYR;N#&x8Iq2dzEggW};@ubjkpqlrCP0StCBjx1k#`LM0#5=boINN0mcfd(V+@+d%#?Zb?u`m_Cakdw;0H12M6rK5D;Koy z`{&N@>%`}H_h$+J{mk8FXe!6S$9!ilrDtv-4pw^rWMjb#lL5w{@;G=PI>5&-U44(q zJ3_l(=ePPGyw2x+!?VEyg9DCEsqZV`e<9#4Tt5g7moU${tdV%%)3{rSy>anZbp5C^ z)_=Le`0RXZ{qY<=`dumBjl9gKUE12KIk?B2tKoLeE0xXilxhC(;gQ3cvGW~kOnWD3 zY`m{AJ(T(`aPd>FbwR~JThNT5Q)KV~&b)G^Ej{ETTfqEYCXh#+O#*2H>No-{E-KSE`F>s_%RTE_0Xo^Cp^&H9b)bU z%h~LUR?d3CZo1$BY;u8_^sRj0Cpj>neR!Wg1#VNcF0Jo?-<9~W2Ua4gkEnld zO8w`o$L({44yM$<`6KGj;@l8#yw3Z`_sVsXwf4PdCh#@uDjDE3^V5s0G|x{?PDUNv zF|@-sR@<%Ng67_Jeb0FpdtwiM|8rL4)^OV(<^j4jzjJR34;|cZ8=5k{{}JCS{!Z^f zQ+s>i*8+uA$9fKYJ5r5pL|LT3XVwh{Yizt5LSI!synV5#%iG>>X+QOyb#8m`57C?r zQ#%I8<}bP7*}0+f_u#KmjK1RgrK5@eltMot%hwb^mgGQB8~|g=H@FcME_Gfubz!0?nC@Sdj1yXQZi3E#bfZ`IQ`Q7YWgIe_X*&*r4Iq z0r`6rQ;!dTbvF5Ho^6d~gj&DHnOTwxjDJA?<2At((twC988LH-PHMy|%ho56(u zvUMbX+lZ}QYV;!6jcF}qivLAU{|)dKZJ7QzGFt0-lE24^+Y!FI^Z88&-l_S>-Tvwv zPA|XJx8{3?2l=5x!-F1%N2OVNbzi$K&E{KOlarf}Evesphi|;Fit$Y;JWJ!nSCXuU zrd+;u0J!VEs@w3$K7QzyD0la`cT?k&@|?lWDh;&%U@F1XE{eW$VKnpm@8 z<~)E0Zm?mbIlLA4{1eYzc-Z?tJo6Xt&l~6R)qeuFUD<~|e}~;R{l5$>z92r9qEFd8 z_>QpA!Q!DJV!nzDFGe=DkoQ~lRUi{0;G+v$@0@&Ab%LMhyyqkMng-xOf$e+lp&s~U z(HklF`Fe_fcPYHIjQ8T`;H4GlqlT~Lv|J-u1@1=S&t}}rUqKeWA(v0_o%j@q5Z20` z3dx^?jxJtk@_=xkL*9@x=!)o1ca|qgwSGU*g;n0AUR&mt+44bi@e+Ohx0L>lNr~4U z0S_CYygEO`pUid6OSXUDIq+Dq+|k>y{el6`oGaz8s%`tdl z2)e?aCb#RjaF`em$)Vg#c))F}S2^`6*HH(2vjdo@Y%Xoh1z&YvxdWaL4CKGqy1TKN zv3A!nR?+JhiRo26I-{incy#ifzNz3FU2EvOuJfr+*LgcEbDi^&eVzM5D~W->CrVwV z^s$saK1Ux_r}$9xc6;pAd_RKktEf*gjkD zOW(VUz1;8LlO80TO8a8ioJqJ1UEepX z?zq2*eG-w6hvf^v4|c548b?f1T1)4_-gRkJ_Pd>% z^+&wNI5zTL6nIRk;Jnd-n~O9T@{tGG|5ZrrTp_;8v|lYckq(~L%^yk3o?^xP=ausz zH`fY-=f_HEPx{p(?pjsA<_)eaJ47CH;oi3$e(mOiTac0uPV<>Q-afBhzRIKMeVNv| z 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%0DU-4D7BdHxzj}8Cewz`@O~kWWTikIW!{AnHi_^F+ zNz3`Vh26#cyD1GCXrmvy{D(GihV9rbjQ=6Vzt|e_gxd2Tvc+6FOrnGPQ|Q3>p3!}? zh|?1t2?t%|m{+bQmqwEP#~MS=J<|&IBO9f!yyF=QVyOh1#~5i$yu?T4F&5q_{4x#} zaZCPbn(B?@gy&q;nnlFIq}lycnuxb)t@najz%mAu|6Ib81elZ_0;7tzL?CfkzaYhm~g_);=V9)*4jPvIZY8lC%&GdS^~*n9pmoIDEpW(@n~KEZeYvv#{a zaJ$`x=4eYOQW%~GPIlo-GHs`w{b;B55w)XV)z0}zdlJ=7_nqzQvD-P{@%3nL;%M55 z+!%U7IqB^+p>^{p_arzL>}JZGXUa@lsC}&(M?JU8OEbQsc}{tHkNjIN(fZR=}uM8RFgWp919^|OX(0B63>b>fTQeV0A&hV*YcWBH~$Km(n zu{UFhJnXThk!>2+FnC3-^PD=+kJ5#T@o;5Z@_6+}?$f;JTW5eEw~yV+ zyoVep-sZp~tgYRw{l*8<{c z%9h^L+3$t^z*%CRW=Fu6XgUJDJx{sXYa0hoI{PW0c~8APCmc=PAff8RJsMSTtB692@>BD$p9L$`DT@cN5dVV~{aoE%xX%#>nvg;9Hw2&@0Rn z7U!aG{nV8M9p!O-sXG2r${Ge`7gC-}N1~zoOZxgRL|bW!(_`-{#Uke69Jh9q-s{kLS_u654HWGz!`XdJ6Ku zk@0<7h2c`kAn1O?8P0BmhDFEn9Yumg1>=~1MxpZ<*ZKYf*o??P`iBoM(MEms*wfk{ zrMZ}V1vx_kXO$Z>%J;d$mmQalCAu-R10DX5I->X&rZT>{^_PWX(4}NTeq~;l)=wmx z@~{Py`M}1*V|!k`2p)d=yZ-k8