commit cf9ea20a628eae7acd8f19ffbb68cadffc9e5a2a Author: aespin Date: Tue Aug 20 10:09:47 2024 +0200 wip diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5657f6e --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +vendor \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/bd.dat b/bd.dat new file mode 100644 index 0000000..523cbe6 Binary files /dev/null and b/bd.dat differ diff --git a/bdreq.dat b/bdreq.dat new file mode 100644 index 0000000..f1a62ea Binary files /dev/null and b/bdreq.dat differ diff --git a/cmd/main.go b/cmd/main.go new file mode 100644 index 0000000..1d75ae3 --- /dev/null +++ b/cmd/main.go @@ -0,0 +1,9 @@ +package main + +import "git.espin.casa/albert/cml04-gdm-int/internal/app" + +func main() { + if err := app.Run(); err != nil { + panic(err) + } +} diff --git a/ed.dat b/ed.dat new file mode 100644 index 0000000..8907242 Binary files /dev/null and b/ed.dat differ diff --git a/edreq.dat b/edreq.dat new file mode 100644 index 0000000..6f4762a Binary files /dev/null and b/edreq.dat differ diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..c08a367 --- /dev/null +++ b/go.mod @@ -0,0 +1,22 @@ +module git.espin.casa/albert/cml04-gdm-int + +go 1.22.0 + +require ( + git.espin.casa/albert/logger v0.0.0-20240221100041-dc3cb01119a3 + github.com/microsoft/go-mssqldb v1.6.0 + google.golang.org/grpc v1.61.1 + google.golang.org/protobuf v1.32.0 +) + +require ( + github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 // indirect + github.com/golang-sql/sqlexp v0.1.0 // indirect + github.com/golang/protobuf v1.5.3 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + golang.org/x/crypto v0.15.0 // indirect + golang.org/x/net v0.18.0 // indirect + golang.org/x/sys v0.14.0 // indirect + golang.org/x/text v0.14.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..c0438dc --- /dev/null +++ b/go.sum @@ -0,0 +1,67 @@ +git.espin.casa/albert/logger v0.0.0-20240221100041-dc3cb01119a3 h1:HUEESn4o8sVXAUJWGJAATeitiNRxVzzwBU8RiIW4Wzc= +git.espin.casa/albert/logger v0.0.0-20240221100041-dc3cb01119a3/go.mod h1:P1yAUiotJurq7j/wZt6Cnel17HChplkz0E40WD8a5to= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1 h1:/iHxaJhsFr0+xVFfbMr5vxz848jyiWuIEDhYq3y5odY= +github.com/Azure/azure-sdk-for-go/sdk/azcore v1.7.1/go.mod h1:bjGvMhVMb+EEm3VRNQawDMUyMMjo+S5ewNjflkep/0Q= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0 h1:vcYCAze6p19qBW7MhZybIsqD8sMV8js0NyQM8JDnVtg= +github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.3.0/go.mod h1:OQeznEEkTZ9OrhHJoDD8ZDq51FHgXjqtP9z6bEwBq9U= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0 h1:sXr+ck84g/ZlZUOZiNELInmMgOsuGwdjjVkEIde0OtY= +github.com/Azure/azure-sdk-for-go/sdk/internal v1.3.0/go.mod h1:okt5dMMTOFjX/aovMlrjvvXoPMBVSPzk9185BT0+eZM= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0 h1:yfJe15aSwEQ6Oo6J+gdfdulPNoZ3TEhmbhLIoxZcA+U= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/azkeys v1.0.0/go.mod h1:Q28U+75mpCaSCDowNEmhIo/rmgdkqmkmzI7N6TGR4UY= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0 h1:T028gtTPiYt/RMUfs8nVsAL7FDQrfLlrm/NnRG/zcC4= +github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v0.8.0/go.mod h1:cw4zVQgBby0Z5f2v0itn6se2dDP17nTjbZFXW5uPyHA= +github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0 h1:HCc0+LpPfpCKs6LGGLAhwBARt9632unrVcI6i8s/8os= +github.com/AzureAD/microsoft-authentication-library-for-go v1.1.0/go.mod h1:wP83P5OoQ5p6ip3ScPr0BAq0BvuPAvacpEuSzyouqAI= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/golang-jwt/jwt/v5 v5.0.0 h1:1n1XNM9hk7O9mnQoNBGolZvzebBQ7p93ULHRc28XJUE= +github.com/golang-jwt/jwt/v5 v5.0.0/go.mod h1:pqrtFR0X4osieyHYxtmOUWsAWrfe1Q5UVIyoH402zdk= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9 h1:au07oEsX2xN0ktxqI+Sida1w446QrXBRJ0nee3SNZlA= +github.com/golang-sql/civil v0.0.0-20220223132316-b832511892a9/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= +github.com/golang-sql/sqlexp v0.1.0 h1:ZCD6MBpcuOVfGVqsEmY5/4FtYiKz6tSyUv9LPEDei6A= +github.com/golang-sql/sqlexp v0.1.0/go.mod h1:J4ad9Vo8ZCWQ2GMrC4UCQy1JpCbwU9m3EOqtpKwwwHI= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= +github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/uuid v1.4.0 h1:MtMxsa51/r9yyhkyLsVeVt0B+BGQZzpQiTQ4eHZ8bc4= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/microsoft/go-mssqldb v1.6.0 h1:mM3gYdVwEPFrlg/Dvr2DNVEgYFG7L42l+dGc67NNNpc= +github.com/microsoft/go-mssqldb v1.6.0/go.mod h1:00mDtPbeQCRGC1HwOOR5K/gr30P1NcEG0vx6Kbv2aJU= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 h1:KoWmjvw+nsYOo29YJK9vDA65RGE3NrOnUtO7a+RF9HU= +github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8/go.mod h1:HKlIX3XHQyzLZPlr7++PzdhaXEj94dEiJgZDTsxEqUI= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +golang.org/x/crypto v0.15.0 h1:frVn1TEaCEaZcn3Tmd7Y2b5KKPaZ+I32Q2OA3kYp5TA= +golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/net v0.18.0 h1:mIYleuAkSbHh0tCv7RvjL3F6ZVbLjq4+R7zbOn3Kokg= +golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.14.0 h1:Vz7Qs629MkJkGyHxUlRHizWJRG2j8fbQKjELVSNhy7Q= +golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 h1:Jyp0Hsi0bmHXG6k9eATXoYtjd6e2UzZ1SCn/wIupY14= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17/go.mod h1:oQ5rr10WTTMvP4A36n8JpR1OrO1BEiV4f78CneXZxkA= +google.golang.org/grpc v1.61.1 h1:kLAiWrZs7YeDM6MumDe7m3y4aM6wacLzM1Y/wiLP9XY= +google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/internal/app/app.go b/internal/app/app.go new file mode 100644 index 0000000..1f04d5d --- /dev/null +++ b/internal/app/app.go @@ -0,0 +1,96 @@ +package app + +import ( + "flag" + "net" + "os" + "os/signal" + "syscall" + + "git.espin.casa/albert/cml04-gdm-int/internal/logging" + "git.espin.casa/albert/cml04-gdm-int/internal/rspdb" + "git.espin.casa/albert/cml04-gdm-int/internal/server" + "git.espin.casa/albert/cml04-gdm-int/internal/service" + "git.espin.casa/albert/cml04-gdm-int/pkg/api" + "git.espin.casa/albert/logger" + "google.golang.org/grpc" + "google.golang.org/grpc/reflection" +) + +const ( + NSQTopic string = "RSMIN" +) + +func Run() error { + // flags + restAddress := flag.String("rest-addr", "0.0.0.0:3333", "http port") + logLevel := flag.String("level", "debug", "Log level") + flag.Parse() + // setup logger + log := logger.New(os.Stdout, *logLevel) + // log fields + logFields := logger.LogFields{ + "log_level": *logLevel, + "rest_address": *restAddress, + } + // create roll shop db + rollShopDB, err := rspdb.NewRspDB(rspdb.RspDBDefaultConfig()) + if err != nil { + return err + } + defer rollShopDB.Close() + // create service + svc := service.NewService(rollShopDB) + // create logging service + svc = logging.NewLoggingService(log, svc) + // create rest server + server := server.NewServer(svc) + // start service + s := grpc.NewServer() + // register service + api.RegisterRollDataServiceServer(s, server) + // reflection + reflection.Register(s) + // start server + // create grpc server + lis, err := net.Listen("tcp", *restAddress) + if err != nil { + log.Error("failed to listen", err, logFields) + return err + } + // start service server + go func() { + if err := s.Serve(lis); err != nil { + log.Error("failed to serve gRPC", err, logFields) + return + } + }() + // info banner + log.Info("started cml04-gdm-int service", logFields) + // wait signal to finish + signal := WaitSignal() + log.Info("signal received", logFields.Add(logger.LogFields.Add(logFields, logger.LogFields{ + "signal": signal, + }))) + // stop grpc service + s.GracefulStop() + return nil +} + +// WaitSignal catching exit signal +func WaitSignal() os.Signal { + ch := make(chan os.Signal, 2) + signal.Notify( + ch, + syscall.SIGINT, + syscall.SIGQUIT, + syscall.SIGTERM, + ) + for { + sig := <-ch + switch sig { + case syscall.SIGINT, syscall.SIGQUIT, syscall.SIGTERM: + return sig + } + } +} diff --git a/internal/helpers/helper.go b/internal/helpers/helper.go new file mode 100644 index 0000000..2b78153 --- /dev/null +++ b/internal/helpers/helper.go @@ -0,0 +1,26 @@ +package helpers + +import ( + "regexp" + "time" +) + +func CleanString(input string) string { + return regexp.MustCompile("[^a-zA-Z0-9]+").ReplaceAllString(input, "") +} + +func HeaderTimeStamp(t time.Time) [8]int16 { + year := t.Year() % 100 + + timeStamp := [8]int16{ + int16(20), + int16(year), + int16(t.Month()), + int16(t.Day()), + int16(t.Hour()), + int16(t.Minute()), + int16(t.Second()), + int16(t.Nanosecond() / 1e6), + } + return timeStamp +} diff --git a/internal/helpers/helper_test.go b/internal/helpers/helper_test.go new file mode 100644 index 0000000..86f0e19 --- /dev/null +++ b/internal/helpers/helper_test.go @@ -0,0 +1,40 @@ +package helpers + +import ( + "testing" + "time" +) + +func TestCleanString(t *testing.T) { + tests := []struct { + input string + expected string + }{ + {"hello123", "hello123"}, + {"_hello_123_", "hello123"}, + {"!@#$%^hello&*()123", "hello123"}, + {"", ""}, + } + + for _, test := range tests { + result := CleanString(test.input) + if result != test.expected { + t.Errorf("Input: %s, Expected: %s, Got: %s", test.input, test.expected, result) + } + } +} + +func TestHeaderTimeStamp(t *testing.T) { + // Stub the current time for testing purposes + // Fixed time for consistent results + now := time.Date(2024, 2, 20, 12, 30, 45, 0, time.UTC) + expectedTimeStamp := [8]int16{20, 24, 2, 20, 12, 30, 45, 0} + + result := HeaderTimeStamp(now) + + for i, v := range result { + if v != expectedTimeStamp[i] { + t.Errorf("Expected: %d, Got: %d", expectedTimeStamp[i], v) + } + } +} diff --git a/internal/logging/logging.go b/internal/logging/logging.go new file mode 100644 index 0000000..e0eaa93 --- /dev/null +++ b/internal/logging/logging.go @@ -0,0 +1,87 @@ +package logging + +import ( + "context" + "time" + + "git.espin.casa/albert/cml04-gdm-int/internal/service" + "git.espin.casa/albert/cml04-gdm-int/pkg/api" + "git.espin.casa/albert/logger" +) + +type Logging struct { + log logger.LoggerAdapter + next service.IService +} + +// BdRollData implements service.IService. +func (svc *Logging) BdRollData(ctx context.Context, req *api.BdRollDataReq) (res *api.BdRollDataRes, err error) { + defer func(start time.Time) { + logFields := logger.LogFields{ + "took": time.Since(start), + "sender": req.GetSender(), + "roll_id": req.GetRollId(), + } + if err != nil { + svc.log.Error("Break Down Roll Data failed", err, logFields) + } else { + svc.log.Info("Break Down Roll Data success", logFields) + } + }(time.Now()) + return svc.next.BdRollData(ctx, req) +} + +// EdRollData implements service.IService. +func (svc *Logging) EdRollData(ctx context.Context, req *api.EdRollDataReq) (res *api.EdRollDataRes, err error) { + defer func(start time.Time) { + logFields := logger.LogFields{ + "took": time.Since(start), + "sender": req.GetSender(), + "roll_id": req.GetRollId(), + } + if err != nil { + svc.log.Error("Edge Roll Data failed", err, logFields) + } else { + svc.log.Info("Edge Roll Data success", logFields) + } + }(time.Now()) + return svc.next.EdRollData(ctx, req) +} + +// UfRollData implements service.IService. +func (svc *Logging) UfRollData(ctx context.Context, req *api.UfRollDataReq) (res *api.UfRollDataRes, err error) { + defer func(start time.Time) { + logFields := logger.LogFields{ + "took": time.Since(start), + "sender": req.GetSender(), + "roll_id": req.GetRollId(), + } + if err != nil { + svc.log.Error("Universal Finishing Roll Data failed", err, logFields) + } else { + svc.log.Info("Universal Finishing Roll Data success", logFields) + } + }(time.Now()) + return svc.next.UfRollData(ctx, req) +} + +// UrRollData implements service.IService. +func (svc *Logging) UrRollData(ctx context.Context, req *api.UrRollDataReq) (res *api.UrRollDataRes, err error) { + defer func(start time.Time) { + logFields := logger.LogFields{ + "took": time.Since(start), + "sender": req.GetSender(), + "roll_id": req.GetRollId(), + } + if err != nil { + svc.log.Error("Universal Rolling Roll Data failed", err, logFields) + } else { + svc.log.Info("Universal Rolling Roll Data success", logFields) + } + }(time.Now()) + return svc.next.UrRollData(ctx, req) +} + +func NewLoggingService(log logger.LoggerAdapter, next service.IService) service.IService { + return &Logging{log, next} +} diff --git a/internal/rspdb/rspdb.go b/internal/rspdb/rspdb.go new file mode 100644 index 0000000..9ab1398 --- /dev/null +++ b/internal/rspdb/rspdb.go @@ -0,0 +1,703 @@ +package rspdb + +import ( + "context" + "database/sql" + "fmt" + + "git.espin.casa/albert/cml04-gdm-int/pkg/api" + _ "github.com/microsoft/go-mssqldb" +) + +var ( + BreakDownRollDataQuery string = `SELECT BD_ROLL_SET_DATE, BD_ROLL_SET_ID, BD_TOP_ROLL_NUMBER, BD_BOT_ROLL_NUMBER, BD_ROLL_MATERIAL, BD_ROLL_INSTALL_POS, BD_ROLL_SET_TYPE, BD_ROLL_DIAM_NOM_ACT_TOP, BD_ROLL_DIAM_NOM_ACT_BOT, BD_ROLL_NOMINAL_GAP, BD_ROLL_GROOVES, BD_ROLL_GROOVE_WIDTH0, BD_ROLL_GROOVE_WIDTH1, BD_ROLL_GROOVE_WIDTH2, BD_ROLL_GROOVE_WIDTH3, BD_ROLL_GROOVE_WIDTH4, BD_ROLL_GROOVE_WIDTH5, BD_ROLL_GROOVE_WIDTH6, BD_ROLL_GROOVE_WIDTH7, BD_ROLL_GROOVE_WIDTH8, BD_ROLL_GROOVE_WIDTH9, BD_ROLL_GROOVE_STIFFNESS_TOP0, BD_ROLL_GROOVE_STIFFNESS_TOP1, BD_ROLL_GROOVE_STIFFNESS_TOP2, BD_ROLL_GROOVE_STIFFNESS_TOP3, BD_ROLL_GROOVE_STIFFNESS_TOP4, BD_ROLL_GROOVE_STIFFNESS_TOP5, BD_ROLL_GROOVE_STIFFNESS_TOP6, BD_ROLL_GROOVE_STIFFNESS_TOP7, BD_ROLL_GROOVE_STIFFNESS_TOP8, BD_ROLL_GROOVE_STIFFNESS_TOP9, BD_ROLL_GROOVE_STIFFNESS_BOT0, BD_ROLL_GROOVE_STIFFNESS_BOT1, BD_ROLL_GROOVE_STIFFNESS_BOT2, BD_ROLL_GROOVE_STIFFNESS_BOT3, BD_ROLL_GROOVE_STIFFNESS_BOT4, BD_ROLL_GROOVE_STIFFNESS_BOT5, BD_ROLL_GROOVE_STIFFNESS_BOT6, BD_ROLL_GROOVE_STIFFNESS_BOT7, BD_ROLL_GROOVE_STIFFNESS_BOT8, BD_ROLL_GROOVE_STIFFNESS_BOT9, BD_ROLL_GROOVE_POS0, BD_ROLL_GROOVE_POS1, BD_ROLL_GROOVE_POS2, BD_ROLL_GROOVE_POS3, BD_ROLL_GROOVE_POS4, BD_ROLL_GROOVE_POS5, BD_ROLL_GROOVE_POS6, BD_ROLL_GROOVE_POS7, BD_ROLL_GROOVE_POS8, BD_ROLL_GROOVE_POS9, BD_ROLL_GROOVE_SHARP0, BD_ROLL_GROOVE_SHARP1, BD_ROLL_GROOVE_SHARP2, BD_ROLL_GROOVE_SHARP3, BD_ROLL_GROOVE_SHARP4, BD_ROLL_GROOVE_SHARP5, BD_ROLL_GROOVE_SHARP6, BD_ROLL_GROOVE_SHARP7, BD_ROLL_GROOVE_SHARP8, BD_ROLL_GROOVE_SHARP9, BD_ROLL_GROOVE_DEPTH0, BD_ROLL_GROOVE_DEPTH1, BD_ROLL_GROOVE_DEPTH2, BD_ROLL_GROOVE_DEPTH3, BD_ROLL_GROOVE_DEPTH4, BD_ROLL_GROOVE_DEPTH5, BD_ROLL_GROOVE_DEPTH6, BD_ROLL_GROOVE_DEPTH7, BD_ROLL_GROOVE_DEPTH8, BD_ROLL_GROOVE_DEPTH9, BD_ROLL_ASSEMBLY_STATUS, BD_NO_OF_FIN_SEC, BD_INIT_SEC0, BD_INIT_SEC1, BD_INIT_SEC2, BD_INIT_SEC3, BD_INIT_SEC4, BD_FIN_SEC0, BD_FIN_SEC1, BD_FIN_SEC2, BD_FIN_SEC3, BD_FIN_SEC4, BD_ROLL_ACTUAL_SHIMPS_TOP, BD_ROLL_ACTUAL_SHIMPS_BOT, BD_TONNAGE_ACCUM0, BD_TONNAGE_ACCUM1, BD_TONNAGE_ACCUM2, BD_TONNAGE_ACCUM3, BD_TONNAGE_ACCUM4, BD_TONNAGE_ACCUM5, BD_TONNAGE_ACCUM6, BD_TONNAGE_ACCUM7, BD_TONNAGE_ACCUM8, BD_TONNAGE_ACCUM9, BD_ROLL_ID, BD_DEL_FLAG, BD_ROLL_SET_ID_OLD, BD_FIN_SEC5, BD_FIN_SEC6, BD_FIN_SEC7, BD_FIN_SEC8, BD_FIN_SEC9, BD_FIN_SEC10, BD_FIN_SEC11, BD_FIN_SEC12, BD_FIN_SEC13, BD_FIN_SEC14, BD_FIN_SEC15, BD_FIN_SEC16, BD_FIN_SEC17, BD_FIN_SEC18, BD_FIN_SEC19, OLD_FLAG, ALTURA_BARRON_SALIDA, ALTURA_BARRON_ENTRADA, FAMILIA, CORRECCION, ESTADO_REGISTRO, FECHA_REGISTRO, FECHA_ENVIO + FROM gdm_rspid_BD WHERE BD_ROLL_ID = '%s'` + UniversalRoughingDataQuery string = `SELECT UR_ROLL_SET_DATE, UR_ROLL_SET_ID, UR_ROLL_SET_ID_HROLLS, UR_HTO_ROLL_NUMBER, UR_HBO_ROLL_NUMBER, UR_ROLL_INSTALL_POS, UR_ROLL_SET_TYPE, UR_TONNAGE_ACCUM0, UR_TONNAGE_ACCUM1, UR_TONNAGE_ACCUM2, UR_TONNAGE_ACCUM3, UR_TONNAGE_ACCUM4, UR_TONNAGE_ACCUM5, UR_TONNAGE_ACCUM6, UR_TONNAGE_ACCUM7, UR_TONNAGE_ACCUM8, UR_TONNAGE_ACCUM9, UR_CHANGE_SLEEVE_LENGTH, UR_CHANGE_SLEEVE_DEPTH, UR_ROLL_ASSEMBLY_STATUS, UR_NO_OF_FIN_SEC, UR_INIT_SEC0, UR_INIT_SEC1, UR_INIT_SEC2, UR_INIT_SEC3, UR_INIT_SEC4, UR_FIN_SEC0, UR_FIN_SEC1, UR_FIN_SEC2, UR_FIN_SEC3, UR_FIN_SEC4, UR_ROLL_MATERIAL_H, UR_ROLL_DIAM_ACT_HBO, UR_ROLL_DIAM_ACT_HTP, UR_H_NOMGAP, UR_ACTUAL_SHIMPS_HBO, UR_ACTUAL_SHIMPS_HTP, UR_ROLL_BARREL_WIDTH_HBO, UR_ROLL_BARREL_WIDTH_HTP, UR_ROLL_CHAM_WIDTH_HBO, UR_ROLL_CHAM_WIDTH_HTP, UR_ROLL_ANGLE_HBO, UR_ROLL_ANGLE_HTB, UR_ROLL_SET_ID_VROLLS, UR_VDS_ROLL_NUMBER, UR_VOS_ROLL_NUMBER, UR_ROLL_MATERIAL_V, UR_ROLL_DIAM_ACT_VDS, UR_ROLL_DIAM_ACT_VOS, UR_ROLL_ANGLE_VDS, UR_ROLL_ANGLE_VOS, UR_PASSLINE_OFFSET, UR_ACTUAL_SHIMPS_VDS_1, UR_ACTUAL_SHIMPS_VDS_2, UR_ACTUAL_SHIMPS_VOS_1, UR_ACTUAL_SHIMPS_VOS_2, UR_PIN_V_CHOCK, UR_ROLL_GROOVES, UR_ROLL_GROOVE_WIDTH0, UR_ROLL_GROOVE_WIDTH1, UR_ROLL_GROOVE_WIDTH2, UR_ROLL_GROOVE_WIDTH3, UR_ROLL_GROOVE_WIDTH4, UR_ROLL_GROOVE_WIDTH5, UR_ROLL_GROOVE_WIDTH6, UR_ROLL_GROOVE_WIDTH7, UR_ROLL_GROOVE_WIDTH8, UR_ROLL_GROOVE_WIDTH9, UR_ROLL_GROOVE_STIFFNESS_TOP0, UR_ROLL_GROOVE_STIFFNESS_TOP1, UR_ROLL_GROOVE_STIFFNESS_TOP2, UR_ROLL_GROOVE_STIFFNESS_TOP3, UR_ROLL_GROOVE_STIFFNESS_TOP4, UR_ROLL_GROOVE_STIFFNESS_TOP5, UR_ROLL_GROOVE_STIFFNESS_TOP6, UR_ROLL_GROOVE_STIFFNESS_TOP7, UR_ROLL_GROOVE_STIFFNESS_TOP8, UR_ROLL_GROOVE_STIFFNESS_TOP9, UR_ROLL_GROOVE_STIFFNESS_BOT0, UR_ROLL_GROOVE_STIFFNESS_BOT1, UR_ROLL_GROOVE_STIFFNESS_BOT2, UR_ROLL_GROOVE_STIFFNESS_BOT3, UR_ROLL_GROOVE_STIFFNESS_BOT4, UR_ROLL_GROOVE_STIFFNESS_BOT5, UR_ROLL_GROOVE_STIFFNESS_BOT6, UR_ROLL_GROOVE_STIFFNESS_BOT7, UR_ROLL_GROOVE_STIFFNESS_BOT8, UR_ROLL_GROOVE_STIFFNESS_BOT9, UR_ROLL_GROOVE_POS0, UR_ROLL_GROOVE_POS1, UR_ROLL_GROOVE_POS2, UR_ROLL_GROOVE_POS3, UR_ROLL_GROOVE_POS4, UR_ROLL_GROOVE_POS5, UR_ROLL_GROOVE_POS6, UR_ROLL_GROOVE_POS7, UR_ROLL_GROOVE_POS8, UR_ROLL_GROOVE_POS9, UR_ROLL_GROOVE_SHARP0, UR_ROLL_GROOVE_SHARP1, UR_ROLL_GROOVE_SHARP2, UR_ROLL_GROOVE_SHARP3, UR_ROLL_GROOVE_SHARP4, UR_ROLL_GROOVE_SHARP5, UR_ROLL_GROOVE_SHARP6, UR_ROLL_GROOVE_SHARP7, UR_ROLL_GROOVE_SHARP8, UR_ROLL_GROOVE_SHARP9,ISNULL(UR_ROLL_THRUST_PLATE,0), UR_ROLL_ID, UR_DEL_FLAG, UR_ROLL_SET_ID_OLD, TOP_SHAFT_UR, BOT_SHAFT_UR, UR_FIN_SEC5, UR_FIN_SEC6, UR_FIN_SEC7, UR_FIN_SEC8, UR_FIN_SEC9, UR_FIN_SEC10, UR_FIN_SEC11, UR_FIN_SEC12, UR_FIN_SEC13, UR_FIN_SEC14, UR_FIN_SEC15, UR_FIN_SEC16, UR_FIN_SEC17, UR_FIN_SEC18, UR_FIN_SEC19, OLD_FLAG, ISNULL(AMPUESA_CORTA,0), ESTADO_REGISTRO, FECHA_REGISTRO, FECHA_ENVIO + FROM gdm_rspid_UR WHERE UR_ROLL_ID = '%s'` + EdgerDataQuery string = `SELECT ED_ROLL_SET_DATE, ED_ROLL_SET_ID, ED_TOP_ROLL_NUMBER, ED_BOT_ROLL_NUMBER, ED_ROLL_MATERIAL, ED_ROLL_INSTALL_POS, ED_ROLL_SET_TYPE, ED_ROLL_DIAM_NOM_HTP, ED_ROLL_DIAM_NOM_HBO, ED_ROLL_NOMINAL_GAP, ED_ROLL_ASSEMBLY_STATUS, ED_NO_OF_FIN_SEC, ED_INIT_SEC0, ED_INIT_SEC1, ED_INIT_SEC2, ED_INIT_SEC3, ED_INIT_SEC4, ED_FIN_SEC0, ED_FIN_SEC1, ED_FIN_SEC2, ED_FIN_SEC3, ED_FIN_SEC4, ED_ROLL_NO_OF_GROOVES, ED_ROLL_GROOVE_STIFF_TOP0, ED_ROLL_GROOVE_STIFF_TOP1, ED_ROLL_GROOVE_STIFF_TOP2, ED_ROLL_GROOVE_STIFF_TOP3, ED_ROLL_GROOVE_STIFF_TOP4, ED_ROLL_GROOVE_STIFF_TOP5, ED_ROLL_GROOVE_STIFF_TOP6, ED_ROLL_GROOVE_STIFF_TOP7, ED_ROLL_GROOVE_STIFF_TOP8, ED_ROLL_GROOVE_STIFF_TOP9, ED_ROLL_GROOVE_STIFF_BOT0, ED_ROLL_GROOVE_STIFF_BOT1, ED_ROLL_GROOVE_STIFF_BOT2, ED_ROLL_GROOVE_STIFF_BOT3, ED_ROLL_GROOVE_STIFF_BOT4, ED_ROLL_GROOVE_STIFF_BOT5, ED_ROLL_GROOVE_STIFF_BOT6, ED_ROLL_GROOVE_STIFF_BOT7, ED_ROLL_GROOVE_STIFF_BOT8, ED_ROLL_GROOVE_STIFF_BOT9, ED_ROLL_GROOVE_POS0, ED_ROLL_GROOVE_POS1, ED_ROLL_GROOVE_POS2, ED_ROLL_GROOVE_POS3, ED_ROLL_GROOVE_POS4, ED_ROLL_GROOVE_POS5, ED_ROLL_GROOVE_POS6, ED_ROLL_GROOVE_POS7, ED_ROLL_GROOVE_POS8, ED_ROLL_GROOVE_POS9, ED_ACTUAL_SHIMPS_HBO, ED_ACTUAL_SHIMPS_HTP, ED_CHANGE_SLEEVE_LENGTH, ED_CHANGE_SLEEVE_DEPTH, ED_TONNAGE_ACCUM0, ED_TONNAGE_ACCUM1, ED_TONNAGE_ACCUM2, ED_TONNAGE_ACCUM3, ED_TONNAGE_ACCUM4, ED_TONNAGE_ACCUM5, ED_TONNAGE_ACCUM6, ED_TONNAGE_ACCUM7, ED_TONNAGE_ACCUM8, ED_TONNAGE_ACCUM9, ED_ROLL_FLANGE_DIAM_TOP0, ED_ROLL_FLANGE_DIAM_TOP1, ED_ROLL_FLANGE_DIAM_TOP2, ED_ROLL_FLANGE_DIAM_TOP3, ED_ROLL_FLANGE_DIAM_TOP4, ED_ROLL_FLANGE_DIAM_TOP5, ED_ROLL_FLANGE_DIAM_TOP6, ED_ROLL_FLANGE_DIAM_TOP7, ED_ROLL_FLANGE_DIAM_TOP8, ED_ROLL_FLANGE_DIAM_TOP9, ED_ROLL_FLANGE_DIAM_BOT0, ED_ROLL_FLANGE_DIAM_BOT1, ED_ROLL_FLANGE_DIAM_BOT2, ED_ROLL_FLANGE_DIAM_BOT3, ED_ROLL_FLANGE_DIAM_BOT4, ED_ROLL_FLANGE_DIAM_BOT5, ED_ROLL_FLANGE_DIAM_BOT6, ED_ROLL_FLANGE_DIAM_BOT7, ED_ROLL_FLANGE_DIAM_BOT8, ED_ROLL_FLANGE_DIAM_BOT9, ED_ROLL_WEB_DIAM_TOP0, ED_ROLL_WEB_DIAM_TOP1, ED_ROLL_WEB_DIAM_TOP2, ED_ROLL_WEB_DIAM_TOP3, ED_ROLL_WEB_DIAM_TOP4, ED_ROLL_WEB_DIAM_TOP5, ED_ROLL_WEB_DIAM_TOP6, ED_ROLL_WEB_DIAM_TOP7, ED_ROLL_WEB_DIAM_TOP8, ED_ROLL_WEB_DIAM_TOP9, ED_ROLL_WEB_DIAM_BOT0, ED_ROLL_WEB_DIAM_BOT1, ED_ROLL_WEB_DIAM_BOT2, ED_ROLL_WEB_DIAM_BOT3, ED_ROLL_WEB_DIAM_BOT4, ED_ROLL_WEB_DIAM_BOT5, ED_ROLL_WEB_DIAM_BOT6, ED_ROLL_WEB_DIAM_BOT7, ED_ROLL_WEB_DIAM_BOT8, ED_ROLL_WEB_DIAM_BOT9, ED_ROLL_CHAM_WIDTH_TOP0, ED_ROLL_CHAM_WIDTH_TOP1, ED_ROLL_CHAM_WIDTH_TOP2, ED_ROLL_CHAM_WIDTH_TOP3, ED_ROLL_CHAM_WIDTH_TOP4, ED_ROLL_CHAM_WIDTH_TOP5, ED_ROLL_CHAM_WIDTH_TOP6, ED_ROLL_CHAM_WIDTH_TOP7, ED_ROLL_CHAM_WIDTH_TOP8, ED_ROLL_CHAM_WIDTH_TOP9, ED_ROLL_CHAM_WIDTH_BOT0, ED_ROLL_CHAM_WIDTH_BOT1, ED_ROLL_CHAM_WIDTH_BOT2, ED_ROLL_CHAM_WIDTH_BOT3, ED_ROLL_CHAM_WIDTH_BOT4, ED_ROLL_CHAM_WIDTH_BOT5, ED_ROLL_CHAM_WIDTH_BOT6, ED_ROLL_CHAM_WIDTH_BOT7, ED_ROLL_CHAM_WIDTH_BOT8, ED_ROLL_CHAM_WIDTH_BOT9, ED_ROLL_ANGLE_FLANGE_FACE0, ED_ROLL_ANGLE_FLANGE_FACE1, ED_ROLL_ANGLE_FLANGE_FACE2, ED_ROLL_ANGLE_FLANGE_FACE3, ED_ROLL_ANGLE_FLANGE_FACE4, ED_ROLL_ANGLE_FLANGE_FACE5, ED_ROLL_ANGLE_FLANGE_FACE6, ED_ROLL_ANGLE_FLANGE_FACE7, ED_ROLL_ANGLE_FLANGE_FACE8, ED_ROLL_ANGLE_FLANGE_FACE9, ED_ROLL_ROOT_RADIUS0, ED_ROLL_ROOT_RADIUS1, ED_ROLL_ROOT_RADIUS2, ED_ROLL_ROOT_RADIUS3, ED_ROLL_ROOT_RADIUS4, ED_ROLL_ROOT_RADIUS5, ED_ROLL_ROOT_RADIUS6, ED_ROLL_ROOT_RADIUS7, ED_ROLL_ROOT_RADIUS8, ED_ROLL_ROOT_RADIUS9, ED_PASSLINE_OFFSET, ED_D_ROLL_GROOVE_SHARP0, ED_D_ROLL_GROOVE_SHARP1, ED_D_ROLL_GROOVE_SHARP2, ED_D_ROLL_GROOVE_SHARP3, ED_D_ROLL_GROOVE_SHARP4, ED_D_ROLL_GROOVE_SHARP5, ED_D_ROLL_GROOVE_SHARP6, ED_D_ROLL_GROOVE_SHARP7, ED_D_ROLL_GROOVE_SHARP8, ED_D_ROLL_GROOVE_SHARP9, ED_D_ROLL_GROOVE_WIDTH0, ED_D_ROLL_GROOVE_WIDTH1, ED_D_ROLL_GROOVE_WIDTH2, ED_D_ROLL_GROOVE_WIDTH3, ED_D_ROLL_GROOVE_WIDTH4, ED_D_ROLL_GROOVE_WIDTH5, ED_D_ROLL_GROOVE_WIDTH6, ED_D_ROLL_GROOVE_WIDTH7, ED_D_ROLL_GROOVE_WIDTH8, ED_D_ROLL_GROOVE_WIDTH9, ED_ROLL_ID, ED_DEL_FLAG, ED_ROLL_SET_ID_OLD, ED_FIN_SEC5, ED_FIN_SEC6, ED_FIN_SEC7, ED_FIN_SEC8, ED_FIN_SEC9, ED_FIN_SEC10, ED_FIN_SEC11, ED_FIN_SEC12, ED_FIN_SEC13, ED_FIN_SEC14, ED_FIN_SEC15, ED_FIN_SEC16, ED_FIN_SEC17, ED_FIN_SEC18, ED_FIN_SEC19, OLD_FLAG, ESTADO_REGISTRO, FECHA_REGISTRO, FECHA_ENVIO + FROM gdm_rspid_EDG WHERE ED_ROLL_ID = '%s'` + UniversalFinishingDataQuery string = `SELECT UF_ROLL_SET_DATE, UF_ROLL_SET_ID, UF_ROLL_SET_ID_HROLLS, UF_HTO_ROLL_NUMBER, UF_HBO_ROLL_NUMBER, UF_ROLL_INSTALL_POS, UF_ROLL_SET_TYPE, UF_TONNAGE_ACCUM0, UF_TONNAGE_ACCUM1, UF_TONNAGE_ACCUM2, UF_TONNAGE_ACCUM3, UF_TONNAGE_ACCUM4, UF_TONNAGE_ACCUM5, UF_TONNAGE_ACCUM6, UF_TONNAGE_ACCUM7, UF_TONNAGE_ACCUM8, UF_TONNAGE_ACCUM9, UF_CHANGE_SLEEVE_LENGTH, UF_CHANGE_SLEEVE_DEPTH, UF_ROLL_ASSEMBLY_STATUS, UF_NO_OF_FIN_SEC, UF_INIT_SEC0, UF_INIT_SEC1, UF_INIT_SEC2, UF_INIT_SEC3, UF_INIT_SEC4, UF_FIN_SEC0, UF_FIN_SEC1, UF_FIN_SEC2, UF_FIN_SEC3, UF_FIN_SEC4, UF_ROLL_MATERIAL_H, UF_ROLL_DIAM_ACT_HBO, UF_ROLL_DIAM_ACT_HTP, UF_H_NOMGAP, UF_ACTUAL_SHIMPS_HBO, UF_ACTUAL_SHIMPS_HTP, UF_ROLL_BARREL_WIDTH_HBO, UF_ROLL_BARREL_WIDTH_HTP, UF_ROLL_CHAM_WIDTH_HBO, UF_ROLL_CHAM_WIDTH_HTP, UF_ROLL_ANGLE_HBO, UF_ROLL_ANGLE_HTB, UF_ROLL_SET_ID_VROLLS, UF_VDS_ROLL_NUMBER, UF_VOS_ROLL_NUMBER, UF_ROLL_MATERIAL_V, UF_ROLL_DIAM_ACT_VDS, UF_ROLL_DIAM_ACT_VOS, UF_ROLL_ANGLE_VDS, UF_ROLL_ANGLE_VOS, UF_PASSLINE_OFFSET, UF_ACTUAL_SHIMPS_VDS_1, UF_ACTUAL_SHIMPS_VDS_2, UF_ACTUAL_SHIMPS_VOS_1, UF_ACTUAL_SHIMPS_VOS_2, UF_PIN_V_CHOCK, UF_ROLL_GROOVES, UF_ROLL_GROOVE_WIDTH0, UF_ROLL_GROOVE_WIDTH1, UF_ROLL_GROOVE_WIDTH2, UF_ROLL_GROOVE_WIDTH3, UF_ROLL_GROOVE_WIDTH4, UF_ROLL_GROOVE_WIDTH5, UF_ROLL_GROOVE_WIDTH6, UF_ROLL_GROOVE_WIDTH7, UF_ROLL_GROOVE_WIDTH8, UF_ROLL_GROOVE_WIDTH9, UF_ROLL_GROOVE_STIFFNESS_TOP0, UF_ROLL_GROOVE_STIFFNESS_TOP1, UF_ROLL_GROOVE_STIFFNESS_TOP2, UF_ROLL_GROOVE_STIFFNESS_TOP3, UF_ROLL_GROOVE_STIFFNESS_TOP4, UF_ROLL_GROOVE_STIFFNESS_TOP5, UF_ROLL_GROOVE_STIFFNESS_TOP6, UF_ROLL_GROOVE_STIFFNESS_TOP7, UF_ROLL_GROOVE_STIFFNESS_TOP8, UF_ROLL_GROOVE_STIFFNESS_TOP9, UF_ROLL_GROOVE_STIFFNESS_BOT0, UF_ROLL_GROOVE_STIFFNESS_BOT1, UF_ROLL_GROOVE_STIFFNESS_BOT2, UF_ROLL_GROOVE_STIFFNESS_BOT3, UF_ROLL_GROOVE_STIFFNESS_BOT4, UF_ROLL_GROOVE_STIFFNESS_BOT5, UF_ROLL_GROOVE_STIFFNESS_BOT6, UF_ROLL_GROOVE_STIFFNESS_BOT7, UF_ROLL_GROOVE_STIFFNESS_BOT8, UF_ROLL_GROOVE_STIFFNESS_BOT9, UF_ROLL_GROOVE_POS0, UF_ROLL_GROOVE_POS1, UF_ROLL_GROOVE_POS2, UF_ROLL_GROOVE_POS3, UF_ROLL_GROOVE_POS4, UF_ROLL_GROOVE_POS5, UF_ROLL_GROOVE_POS6, UF_ROLL_GROOVE_POS7, UF_ROLL_GROOVE_POS8, UF_ROLL_GROOVE_POS9, UF_ROLL_GROOVE_SHARP0, UF_ROLL_GROOVE_SHARP1, UF_ROLL_GROOVE_SHARP2, UF_ROLL_GROOVE_SHARP3, UF_ROLL_GROOVE_SHARP4, UF_ROLL_GROOVE_SHARP5, UF_ROLL_GROOVE_SHARP6, UF_ROLL_GROOVE_SHARP7, UF_ROLL_GROOVE_SHARP8, UF_ROLL_GROOVE_SHARP9,ISNULL(UF_ROLL_THRUST_PLATE,0), UF_ROLL_ID, UF_DEL_FLAG, UF_ROLL_SET_ID_OLD, TOP_SHAFT_UF, BOT_SHAFT_UF, UF_FIN_SEC5, UF_FIN_SEC6, UF_FIN_SEC7, UF_FIN_SEC8, UF_FIN_SEC9, UF_FIN_SEC10, UF_FIN_SEC11, UF_FIN_SEC12, UF_FIN_SEC13, UF_FIN_SEC14, UF_FIN_SEC15, UF_FIN_SEC16, UF_FIN_SEC17, UF_FIN_SEC18, UF_FIN_SEC19, OLD_FLAG, ISNULL(AMPUESA_CORTA,0), ESTADO_REGISTRO, FECHA_REGISTRO, FECHA_ENVIO + FROM gdm_rspid_UF WHERE UF_ROLL_ID = '%s'` +) + +type RspDB struct { + conn *sql.DB +} + +type RspDBConfig struct { + Host string + Port int + User string + Pwd string + Dbname string +} + +func RspDBDefaultConfig() *RspDBConfig { + return &RspDBConfig{ + Host: "10.6.4.113", + Port: 1433, + User: "sa", + Pwd: "mapex@123", + Dbname: "mapexbp_celsa4", + } +} + +func (r *RspDB) Close() error { + return r.conn.Close() +} + +func (r *RspDB) GetBreakDownRollData(ctx context.Context, bdRollId string) (*api.BdRollData, error) { + // data rolling var holder + bdData := &api.BdRollData{} + // create sql statement + query := fmt.Sprintf(BreakDownRollDataQuery, bdRollId) + // execute sql + row := r.conn.QueryRowContext(ctx, query) + if row.Err() != nil { + return nil, row.Err() + } + if err := row.Scan( + &bdData.BdRollSetDate, + &bdData.BdRollSetId, + &bdData.BdTopRollNumber, + &bdData.BdBotRollNumber, + &bdData.BdRollMaterial, + &bdData.BdRollInstallPos, + &bdData.BdRollSetType, + &bdData.BdRollDiamNomActTop, + &bdData.BdRollDiamNomActBot, + &bdData.BdRollNominalGap, + &bdData.BdRollGrooves, + &bdData.BdRollGrooveWidth0, + &bdData.BdRollGrooveWidth1, + &bdData.BdRollGrooveWidth2, + &bdData.BdRollGrooveWidth3, + &bdData.BdRollGrooveWidth4, + &bdData.BdRollGrooveWidth5, + &bdData.BdRollGrooveWidth6, + &bdData.BdRollGrooveWidth7, + &bdData.BdRollGrooveWidth8, + &bdData.BdRollGrooveWidth9, + &bdData.BdRollGrooveStiffnessTop0, + &bdData.BdRollGrooveStiffnessTop1, + &bdData.BdRollGrooveStiffnessTop2, + &bdData.BdRollGrooveStiffnessTop3, + &bdData.BdRollGrooveStiffnessTop4, + &bdData.BdRollGrooveStiffnessTop5, + &bdData.BdRollGrooveStiffnessTop6, + &bdData.BdRollGrooveStiffnessTop7, + &bdData.BdRollGrooveStiffnessTop8, + &bdData.BdRollGrooveStiffnessTop9, + &bdData.BdRollGrooveStiffnessBot0, + &bdData.BdRollGrooveStiffnessBot1, + &bdData.BdRollGrooveStiffnessBot2, + &bdData.BdRollGrooveStiffnessBot3, + &bdData.BdRollGrooveStiffnessBot4, + &bdData.BdRollGrooveStiffnessBot5, + &bdData.BdRollGrooveStiffnessBot6, + &bdData.BdRollGrooveStiffnessBot7, + &bdData.BdRollGrooveStiffnessBot8, + &bdData.BdRollGrooveStiffnessBot9, + &bdData.BdRollGroovePos0, + &bdData.BdRollGroovePos1, + &bdData.BdRollGroovePos2, + &bdData.BdRollGroovePos3, + &bdData.BdRollGroovePos4, + &bdData.BdRollGroovePos5, + &bdData.BdRollGroovePos6, + &bdData.BdRollGroovePos7, + &bdData.BdRollGroovePos8, + &bdData.BdRollGroovePos9, + &bdData.BdRollGrooveSharp0, + &bdData.BdRollGrooveSharp1, + &bdData.BdRollGrooveSharp2, + &bdData.BdRollGrooveSharp3, + &bdData.BdRollGrooveSharp4, + &bdData.BdRollGrooveSharp5, + &bdData.BdRollGrooveSharp6, + &bdData.BdRollGrooveSharp7, + &bdData.BdRollGrooveSharp8, + &bdData.BdRollGrooveSharp9, + &bdData.BdRollGrooveDepth0, + &bdData.BdRollGrooveDepth1, + &bdData.BdRollGrooveDepth2, + &bdData.BdRollGrooveDepth3, + &bdData.BdRollGrooveDepth4, + &bdData.BdRollGrooveDepth5, + &bdData.BdRollGrooveDepth6, + &bdData.BdRollGrooveDepth7, + &bdData.BdRollGrooveDepth8, + &bdData.BdRollGrooveDepth9, + &bdData.BdRollAssemblyStatus, + &bdData.BdNoOfFinSec, + &bdData.BdInitSec0, + &bdData.BdInitSec1, + &bdData.BdInitSec2, + &bdData.BdInitSec3, + &bdData.BdInitSec4, + &bdData.BdFinSec0, + &bdData.BdFinSec1, + &bdData.BdFinSec2, + &bdData.BdFinSec3, + &bdData.BdFinSec4, + &bdData.BdRollActualShimpsTop, + &bdData.BdRollActualShimpsBot, + &bdData.BdTonnageAccum0, + &bdData.BdTonnageAccum1, + &bdData.BdTonnageAccum2, + &bdData.BdTonnageAccum3, + &bdData.BdTonnageAccum4, + &bdData.BdTonnageAccum5, + &bdData.BdTonnageAccum6, + &bdData.BdTonnageAccum7, + &bdData.BdTonnageAccum8, + &bdData.BdTonnageAccum9, + &bdData.BdRollId, + &bdData.BdDelFlag, + &bdData.BdRollSetIdOld, + &bdData.BdFinSec5, + &bdData.BdFinSec6, + &bdData.BdFinSec7, + &bdData.BdFinSec8, + &bdData.BdFinSec9, + &bdData.BdFinSec10, + &bdData.BdFinSec11, + &bdData.BdFinSec12, + &bdData.BdFinSec13, + &bdData.BdFinSec14, + &bdData.BdFinSec15, + &bdData.BdFinSec16, + &bdData.BdFinSec17, + &bdData.BdFinSec18, + &bdData.BdFinSec19, + &bdData.OldFlag, + &bdData.AlturaBarronSalida, + &bdData.AlturaBarronEntrada, + &bdData.Familia, + &bdData.Correccion, + &bdData.EstadoRegistro, + &bdData.FechaRegistro, + &bdData.FechaEnvio); err != nil { + return nil, err + } + return bdData, nil +} + +func (r *RspDB) GetUniversalRoughingRollData(ctx context.Context, urRollId string) (*api.UrRollData, error) { + // data rolling var holder + urData := &api.UrRollData{} + // create sql statement + sql := fmt.Sprintf(UniversalRoughingDataQuery, urRollId) + // execute query + row := r.conn.QueryRowContext(ctx, sql) + if row.Err() != nil { + return nil, row.Err() + } + // scan over row data + if err := row.Scan( + &urData.UrRollSetDate, + &urData.UrRollSetId, + &urData.UrRollSetIdHrolls, + &urData.UrHtoRollNumber, + &urData.UrHboRollNumber, + &urData.UrRollInstallPos, + &urData.UrRollSetType, + &urData.UrTonnageAccum0, + &urData.UrTonnageAccum1, + &urData.UrTonnageAccum2, + &urData.UrTonnageAccum3, + &urData.UrTonnageAccum4, + &urData.UrTonnageAccum5, + &urData.UrTonnageAccum6, + &urData.UrTonnageAccum7, + &urData.UrTonnageAccum8, + &urData.UrTonnageAccum9, + &urData.UrChangeSleeveLength, + &urData.UrChangeSleeveDepth, + &urData.UrRollAssemblyStatus, + &urData.UrNoOfFinSec, + &urData.UrInitSec0, + &urData.UrInitSec1, + &urData.UrInitSec2, + &urData.UrInitSec3, + &urData.UrInitSec4, + &urData.UrFinSec0, + &urData.UrFinSec1, + &urData.UrFinSec2, + &urData.UrFinSec3, + &urData.UrFinSec4, + &urData.UrRollMaterialH, + &urData.UrRollDiamActHbo, + &urData.UrRollDiamActHtp, + &urData.UrHNomgap, + &urData.UrActualShimpsHbo, + &urData.UrActualShimpsHtp, + &urData.UrRollBarrelWidthHbo, + &urData.UrRollBarrelWidthHtp, + &urData.UrRollChamWidthHbo, + &urData.UrRollChamWidthHtp, + &urData.UrRollAngleHbo, + &urData.UrRollAngleHtb, + &urData.UrRollSetIdVrolls, + &urData.UrVdsRollNumber, + &urData.UrVosRollNumber, + &urData.UrRollMaterialV, + &urData.UrRollDiamActVds, + &urData.UrRollDiamActVos, + &urData.UrRollAngleVds, + &urData.UrRollAngleVos, + &urData.UrPasslineOffset, + &urData.UrActualShimpsVds_1, + &urData.UrActualShimpsVds_2, + &urData.UrActualShimpsVos_1, + &urData.UrActualShimpsVos_2, + &urData.UrPinVChock, + &urData.UrRollGrooves, + &urData.UrRollGrooveWidth0, + &urData.UrRollGrooveWidth1, + &urData.UrRollGrooveWidth2, + &urData.UrRollGrooveWidth3, + &urData.UrRollGrooveWidth4, + &urData.UrRollGrooveWidth5, + &urData.UrRollGrooveWidth6, + &urData.UrRollGrooveWidth7, + &urData.UrRollGrooveWidth8, + &urData.UrRollGrooveWidth9, + &urData.UrRollGrooveStiffnessTop0, + &urData.UrRollGrooveStiffnessTop1, + &urData.UrRollGrooveStiffnessTop2, + &urData.UrRollGrooveStiffnessTop3, + &urData.UrRollGrooveStiffnessTop4, + &urData.UrRollGrooveStiffnessTop5, + &urData.UrRollGrooveStiffnessTop6, + &urData.UrRollGrooveStiffnessTop7, + &urData.UrRollGrooveStiffnessTop8, + &urData.UrRollGrooveStiffnessTop9, + &urData.UrRollGrooveStiffnessBot0, + &urData.UrRollGrooveStiffnessBot1, + &urData.UrRollGrooveStiffnessBot2, + &urData.UrRollGrooveStiffnessBot3, + &urData.UrRollGrooveStiffnessBot4, + &urData.UrRollGrooveStiffnessBot5, + &urData.UrRollGrooveStiffnessBot6, + &urData.UrRollGrooveStiffnessBot7, + &urData.UrRollGrooveStiffnessBot8, + &urData.UrRollGrooveStiffnessBot9, + &urData.UrRollGroovePos0, + &urData.UrRollGroovePos1, + &urData.UrRollGroovePos2, + &urData.UrRollGroovePos3, + &urData.UrRollGroovePos4, + &urData.UrRollGroovePos5, + &urData.UrRollGroovePos6, + &urData.UrRollGroovePos7, + &urData.UrRollGroovePos8, + &urData.UrRollGroovePos9, + &urData.UrRollGrooveSharp0, + &urData.UrRollGrooveSharp1, + &urData.UrRollGrooveSharp2, + &urData.UrRollGrooveSharp3, + &urData.UrRollGrooveSharp4, + &urData.UrRollGrooveSharp5, + &urData.UrRollGrooveSharp6, + &urData.UrRollGrooveSharp7, + &urData.UrRollGrooveSharp8, + &urData.UrRollGrooveSharp9, + &urData.UrRollThrustPlate, + &urData.UrRollId, + &urData.UrDelFlag, + &urData.UrRollSetIdOld, + &urData.TopShaftUr, + &urData.BotShaftUr, + &urData.UrFinSec5, + &urData.UrFinSec6, + &urData.UrFinSec7, + &urData.UrFinSec8, + &urData.UrFinSec9, + &urData.UrFinSec10, + &urData.UrFinSec11, + &urData.UrFinSec12, + &urData.UrFinSec13, + &urData.UrFinSec14, + &urData.UrFinSec15, + &urData.UrFinSec16, + &urData.UrFinSec17, + &urData.UrFinSec18, + &urData.UrFinSec19, + &urData.OldFlag, + &urData.AmpuesaCorta, + &urData.EstadoRegistro, + &urData.FechaRegistro, + &urData.FechaEnvio); err != nil { + return nil, err + } + return urData, nil +} + +func (r *RspDB) GetEdgerRollData(ctx context.Context, edRollId string) (*api.EdRollData, error) { + // data rolling var holder + edData := &api.EdRollData{} + // create sql statement + sql := fmt.Sprintf(EdgerDataQuery, edRollId) + // execute query + row := r.conn.QueryRowContext(ctx, sql) + if row.Err() != nil { + return nil, row.Err() + } + // scan over row data + if err := row.Scan( + &edData.EdRollSetDate, + &edData.EdRollSetId, + &edData.EdTopRollNumber, + &edData.EdBotRollNumber, + &edData.EdRollMaterial, + &edData.EdRollInstallPos, + &edData.EdRollSetType, + &edData.EdRollDiamNomHtp, + &edData.EdRollDiamNomHbo, + &edData.EdRollNominalGap, + &edData.EdRollAssemblyStatus, + &edData.EdNoOfFinSec, + &edData.EdInitSec0, + &edData.EdInitSec1, + &edData.EdInitSec2, + &edData.EdInitSec3, + &edData.EdInitSec4, + &edData.EdFinSec0, + &edData.EdFinSec1, + &edData.EdFinSec2, + &edData.EdFinSec3, + &edData.EdFinSec4, + &edData.EdRollNoOfGrooves, + &edData.EdRollGrooveStiffTop0, + &edData.EdRollGrooveStiffTop1, + &edData.EdRollGrooveStiffTop2, + &edData.EdRollGrooveStiffTop3, + &edData.EdRollGrooveStiffTop4, + &edData.EdRollGrooveStiffTop5, + &edData.EdRollGrooveStiffTop6, + &edData.EdRollGrooveStiffTop7, + &edData.EdRollGrooveStiffTop8, + &edData.EdRollGrooveStiffTop9, + &edData.EdRollGrooveStiffBot0, + &edData.EdRollGrooveStiffBot1, + &edData.EdRollGrooveStiffBot2, + &edData.EdRollGrooveStiffBot3, + &edData.EdRollGrooveStiffBot4, + &edData.EdRollGrooveStiffBot5, + &edData.EdRollGrooveStiffBot6, + &edData.EdRollGrooveStiffBot7, + &edData.EdRollGrooveStiffBot8, + &edData.EdRollGrooveStiffBot9, + &edData.EdRollGroovePos0, + &edData.EdRollGroovePos1, + &edData.EdRollGroovePos2, + &edData.EdRollGroovePos3, + &edData.EdRollGroovePos4, + &edData.EdRollGroovePos5, + &edData.EdRollGroovePos6, + &edData.EdRollGroovePos7, + &edData.EdRollGroovePos8, + &edData.EdRollGroovePos9, + &edData.EdActualShimpsHbo, + &edData.EdActualShimpsHtp, + &edData.EdChangeSleeveLength, + &edData.EdChangeSleeveDepth, + &edData.EdTonnageAccum0, + &edData.EdTonnageAccum1, + &edData.EdTonnageAccum2, + &edData.EdTonnageAccum3, + &edData.EdTonnageAccum4, + &edData.EdTonnageAccum5, + &edData.EdTonnageAccum6, + &edData.EdTonnageAccum7, + &edData.EdTonnageAccum8, + &edData.EdTonnageAccum9, + &edData.EdRollFlangeDiamTop0, + &edData.EdRollFlangeDiamTop1, + &edData.EdRollFlangeDiamTop2, + &edData.EdRollFlangeDiamTop3, + &edData.EdRollFlangeDiamTop4, + &edData.EdRollFlangeDiamTop5, + &edData.EdRollFlangeDiamTop6, + &edData.EdRollFlangeDiamTop7, + &edData.EdRollFlangeDiamTop8, + &edData.EdRollFlangeDiamTop9, + &edData.EdRollFlangeDiamBot0, + &edData.EdRollFlangeDiamBot1, + &edData.EdRollFlangeDiamBot2, + &edData.EdRollFlangeDiamBot3, + &edData.EdRollFlangeDiamBot4, + &edData.EdRollFlangeDiamBot5, + &edData.EdRollFlangeDiamBot6, + &edData.EdRollFlangeDiamBot7, + &edData.EdRollFlangeDiamBot8, + &edData.EdRollFlangeDiamBot9, + &edData.EdRollWebDiamTop0, + &edData.EdRollWebDiamTop1, + &edData.EdRollWebDiamTop2, + &edData.EdRollWebDiamTop3, + &edData.EdRollWebDiamTop4, + &edData.EdRollWebDiamTop5, + &edData.EdRollWebDiamTop6, + &edData.EdRollWebDiamTop7, + &edData.EdRollWebDiamTop8, + &edData.EdRollWebDiamTop9, + &edData.EdRollWebDiamBot0, + &edData.EdRollWebDiamBot1, + &edData.EdRollWebDiamBot2, + &edData.EdRollWebDiamBot3, + &edData.EdRollWebDiamBot4, + &edData.EdRollWebDiamBot5, + &edData.EdRollWebDiamBot6, + &edData.EdRollWebDiamBot7, + &edData.EdRollWebDiamBot8, + &edData.EdRollWebDiamBot9, + &edData.EdRollChamWidthTop0, + &edData.EdRollChamWidthTop1, + &edData.EdRollChamWidthTop2, + &edData.EdRollChamWidthTop3, + &edData.EdRollChamWidthTop4, + &edData.EdRollChamWidthTop5, + &edData.EdRollChamWidthTop6, + &edData.EdRollChamWidthTop7, + &edData.EdRollChamWidthTop8, + &edData.EdRollChamWidthTop9, + &edData.EdRollChamWidthBot0, + &edData.EdRollChamWidthBot1, + &edData.EdRollChamWidthBot2, + &edData.EdRollChamWidthBot3, + &edData.EdRollChamWidthBot4, + &edData.EdRollChamWidthBot5, + &edData.EdRollChamWidthBot6, + &edData.EdRollChamWidthBot7, + &edData.EdRollChamWidthBot8, + &edData.EdRollChamWidthBot9, + &edData.EdRollAngleFlangeFace0, + &edData.EdRollAngleFlangeFace1, + &edData.EdRollAngleFlangeFace2, + &edData.EdRollAngleFlangeFace3, + &edData.EdRollAngleFlangeFace4, + &edData.EdRollAngleFlangeFace5, + &edData.EdRollAngleFlangeFace6, + &edData.EdRollAngleFlangeFace7, + &edData.EdRollAngleFlangeFace8, + &edData.EdRollAngleFlangeFace9, + &edData.EdRollRootRadius0, + &edData.EdRollRootRadius1, + &edData.EdRollRootRadius2, + &edData.EdRollRootRadius3, + &edData.EdRollRootRadius4, + &edData.EdRollRootRadius5, + &edData.EdRollRootRadius6, + &edData.EdRollRootRadius7, + &edData.EdRollRootRadius8, + &edData.EdRollRootRadius9, + &edData.EdPasslineOffset, + &edData.EdDRollGrooveSharp0, + &edData.EdDRollGrooveSharp1, + &edData.EdDRollGrooveSharp2, + &edData.EdDRollGrooveSharp3, + &edData.EdDRollGrooveSharp4, + &edData.EdDRollGrooveSharp5, + &edData.EdDRollGrooveSharp6, + &edData.EdDRollGrooveSharp7, + &edData.EdDRollGrooveSharp8, + &edData.EdDRollGrooveSharp9, + &edData.EdDRollGrooveWidth0, + &edData.EdDRollGrooveWidth1, + &edData.EdDRollGrooveWidth2, + &edData.EdDRollGrooveWidth3, + &edData.EdDRollGrooveWidth4, + &edData.EdDRollGrooveWidth5, + &edData.EdDRollGrooveWidth6, + &edData.EdDRollGrooveWidth7, + &edData.EdDRollGrooveWidth8, + &edData.EdDRollGrooveWidth9, + &edData.EdRollId, + &edData.EdDelFlag, + &edData.EdRollSetIdOld, + &edData.EdFinSec5, + &edData.EdFinSec6, + &edData.EdFinSec7, + &edData.EdFinSec8, + &edData.EdFinSec9, + &edData.EdFinSec10, + &edData.EdFinSec11, + &edData.EdFinSec12, + &edData.EdFinSec13, + &edData.EdFinSec14, + &edData.EdFinSec15, + &edData.EdFinSec16, + &edData.EdFinSec17, + &edData.EdFinSec18, + &edData.EdFinSec19, + &edData.OldFlag, + &edData.EstadoRegistro, + &edData.FechaRegistro, + &edData.FechaEnvio); err != nil { + return nil, err + } + + return edData, nil +} + +func (r *RspDB) GetUniversalFinishingRollData(ctx context.Context, ufRollId string) (*api.UfRollData, error) { + // data rolling var holder + ufData := &api.UfRollData{} + // create sql statement + sql := fmt.Sprintf(UniversalFinishingDataQuery, ufRollId) + // execute query + row := r.conn.QueryRowContext(ctx, sql) + if row.Err() != nil { + return nil, row.Err() + } + // scan over row data + if err := row.Scan( + &ufData.UfRollSetDate, + &ufData.UfRollSetId, + &ufData.UfRollSetIdHrolls, + &ufData.UfHtoRollNumber, + &ufData.UfHboRollNumber, + &ufData.UfRollInstallPos, + &ufData.UfRollSetType, + &ufData.UfTonnageAccum0, + &ufData.UfTonnageAccum1, + &ufData.UfTonnageAccum2, + &ufData.UfTonnageAccum3, + &ufData.UfTonnageAccum4, + &ufData.UfTonnageAccum5, + &ufData.UfTonnageAccum6, + &ufData.UfTonnageAccum7, + &ufData.UfTonnageAccum8, + &ufData.UfTonnageAccum9, + &ufData.UfChangeSleeveLength, + &ufData.UfChangeSleeveDepth, + &ufData.UfRollAssemblyStatus, + &ufData.UfNoOfFinSec, + &ufData.UfInitSec0, + &ufData.UfInitSec1, + &ufData.UfInitSec2, + &ufData.UfInitSec3, + &ufData.UfInitSec4, + &ufData.UfFinSec0, + &ufData.UfFinSec1, + &ufData.UfFinSec2, + &ufData.UfFinSec3, + &ufData.UfFinSec4, + &ufData.UfRollMaterialH, + &ufData.UfRollDiamActHbo, + &ufData.UfRollDiamActHtp, + &ufData.UfHNomgap, + &ufData.UfActualShimpsHbo, + &ufData.UfActualShimpsHtp, + &ufData.UfRollBarrelWidthHbo, + &ufData.UfRollBarrelWidthHtp, + &ufData.UfRollChamWidthHbo, + &ufData.UfRollChamWidthHtp, + &ufData.UfRollAngleHbo, + &ufData.UfRollAngleHtb, + &ufData.UfRollSetIdVrolls, + &ufData.UfVdsRollNumber, + &ufData.UfVosRollNumber, + &ufData.UfRollMaterialV, + &ufData.UfRollDiamActVds, + &ufData.UfRollDiamActVos, + &ufData.UfRollAngleVds, + &ufData.UfRollAngleVos, + &ufData.UfPasslineOffset, + &ufData.UfActualShimpsVds_1, + &ufData.UfActualShimpsVds_2, + &ufData.UfActualShimpsVos_1, + &ufData.UfActualShimpsVos_2, + &ufData.UfPinVChock, + &ufData.UfRollGrooves, + &ufData.UfRollGrooveWidth0, + &ufData.UfRollGrooveWidth1, + &ufData.UfRollGrooveWidth2, + &ufData.UfRollGrooveWidth3, + &ufData.UfRollGrooveWidth4, + &ufData.UfRollGrooveWidth5, + &ufData.UfRollGrooveWidth6, + &ufData.UfRollGrooveWidth7, + &ufData.UfRollGrooveWidth8, + &ufData.UfRollGrooveWidth9, + &ufData.UfRollGrooveStiffnessTop0, + &ufData.UfRollGrooveStiffnessTop1, + &ufData.UfRollGrooveStiffnessTop2, + &ufData.UfRollGrooveStiffnessTop3, + &ufData.UfRollGrooveStiffnessTop4, + &ufData.UfRollGrooveStiffnessTop5, + &ufData.UfRollGrooveStiffnessTop6, + &ufData.UfRollGrooveStiffnessTop7, + &ufData.UfRollGrooveStiffnessTop8, + &ufData.UfRollGrooveStiffnessTop9, + &ufData.UfRollGrooveStiffnessBot0, + &ufData.UfRollGrooveStiffnessBot1, + &ufData.UfRollGrooveStiffnessBot2, + &ufData.UfRollGrooveStiffnessBot3, + &ufData.UfRollGrooveStiffnessBot4, + &ufData.UfRollGrooveStiffnessBot5, + &ufData.UfRollGrooveStiffnessBot6, + &ufData.UfRollGrooveStiffnessBot7, + &ufData.UfRollGrooveStiffnessBot8, + &ufData.UfRollGrooveStiffnessBot9, + &ufData.UfRollGroovePos0, + &ufData.UfRollGroovePos1, + &ufData.UfRollGroovePos2, + &ufData.UfRollGroovePos3, + &ufData.UfRollGroovePos4, + &ufData.UfRollGroovePos5, + &ufData.UfRollGroovePos6, + &ufData.UfRollGroovePos7, + &ufData.UfRollGroovePos8, + &ufData.UfRollGroovePos9, + &ufData.UfRollGrooveSharp0, + &ufData.UfRollGrooveSharp1, + &ufData.UfRollGrooveSharp2, + &ufData.UfRollGrooveSharp3, + &ufData.UfRollGrooveSharp4, + &ufData.UfRollGrooveSharp5, + &ufData.UfRollGrooveSharp6, + &ufData.UfRollGrooveSharp7, + &ufData.UfRollGrooveSharp8, + &ufData.UfRollGrooveSharp9, + &ufData.UfRollThrustPlate, + &ufData.UfRollId, + &ufData.UfDelFlag, + &ufData.UfRollSetIdOld, + &ufData.TopShaftUf, + &ufData.BotShaftUf, + &ufData.UfFinSec5, + &ufData.UfFinSec6, + &ufData.UfFinSec7, + &ufData.UfFinSec8, + &ufData.UfFinSec9, + &ufData.UfFinSec10, + &ufData.UfFinSec11, + &ufData.UfFinSec12, + &ufData.UfFinSec13, + &ufData.UfFinSec14, + &ufData.UfFinSec15, + &ufData.UfFinSec16, + &ufData.UfFinSec17, + &ufData.UfFinSec18, + &ufData.UfFinSec19, + &ufData.OldFlag, + &ufData.AmpuesaCorta, + &ufData.EstadoRegistro, + &ufData.FechaRegistro, + &ufData.FechaEnvio); err != nil { + return nil, err + } + + return ufData, nil +} + +func NewRspDB(cfg *RspDBConfig) (*RspDB, error) { + connString := fmt.Sprintf("server=%s;user id=%s;password=%s;port=%d;database=%s", cfg.Host, cfg.User, cfg.Pwd, cfg.Port, cfg.Dbname) + conn, err := sql.Open("mssql", connString) + return &RspDB{ + conn: conn, + }, err +} diff --git a/internal/server/server.go b/internal/server/server.go new file mode 100644 index 0000000..d5aae43 --- /dev/null +++ b/internal/server/server.go @@ -0,0 +1,33 @@ +package server + +import ( + "context" + + "git.espin.casa/albert/cml04-gdm-int/internal/service" + "git.espin.casa/albert/cml04-gdm-int/pkg/api" +) + +type server struct { + api.UnimplementedRollDataServiceServer + svc service.IService +} + +func (s server) BdRollData(ctx context.Context, req *api.BdRollDataReq) (res *api.BdRollDataRes, err error) { + return s.svc.BdRollData(ctx, req) +} + +func (s server) EdRollData(ctx context.Context, req *api.EdRollDataReq) (res *api.EdRollDataRes, err error) { + return s.svc.EdRollData(ctx, req) +} + +func (s server) UfRollData(ctx context.Context, req *api.UfRollDataReq) (res *api.UfRollDataRes, err error) { + return s.svc.UfRollData(ctx, req) +} + +func (s server) UrRollData(ctx context.Context, req *api.UrRollDataReq) (res *api.UrRollDataRes, err error) { + return s.svc.UrRollData(ctx, req) +} + +func NewServer(svc service.IService) *server { + return &server{svc: svc} +} diff --git a/internal/service/service.go b/internal/service/service.go new file mode 100644 index 0000000..6f9e5eb --- /dev/null +++ b/internal/service/service.go @@ -0,0 +1,86 @@ +package service + +import ( + "context" + "time" + + "git.espin.casa/albert/cml04-gdm-int/internal/rspdb" + "git.espin.casa/albert/cml04-gdm-int/pkg/api" +) + +type IService interface { + BdRollData(ctx context.Context, req *api.BdRollDataReq) (res *api.BdRollDataRes, err error) + UrRollData(ctx context.Context, req *api.UrRollDataReq) (res *api.UrRollDataRes, err error) + EdRollData(ctx context.Context, req *api.EdRollDataReq) (res *api.EdRollDataRes, err error) + UfRollData(ctx context.Context, req *api.UfRollDataReq) (res *api.UfRollDataRes, err error) +} + +type service struct { + db *rspdb.RspDB +} + +// BdRollData implements IService. +func (s *service) BdRollData(ctx context.Context, req *api.BdRollDataReq) (res *api.BdRollDataRes, err error) { + // gets break down roll data from database + bdData, err := s.db.GetBreakDownRollData(ctx, req.GetRollId()) + if err != nil { + return nil, err + } + // response + return &api.BdRollDataRes{ + Msg: "data for bd success", + RollData: bdData, + TimeStamp: time.Now().UTC().Format(time.RFC3339), + }, nil +} + +// EdRollData implements IService. +func (s *service) EdRollData(ctx context.Context, req *api.EdRollDataReq) (res *api.EdRollDataRes, err error) { + // gets edger roll data from database + edgerData, err := s.db.GetEdgerRollData(ctx, req.GetRollId()) + if err != nil { + return nil, err + } + // response + return &api.EdRollDataRes{ + Msg: "data for ed success", + RollData: edgerData, + TimeStamp: time.Now().UTC().Format(time.RFC3339), + }, nil +} + +// UfRollData implements IService. +func (s *service) UfRollData(ctx context.Context, req *api.UfRollDataReq) (res *api.UfRollDataRes, err error) { + // gets universal finishing roll data from database + ufData, err := s.db.GetUniversalFinishingRollData(ctx, req.GetRollId()) + if err != nil { + return nil, err + } + // response + return &api.UfRollDataRes{ + Msg: "data for uf success", + RollData: ufData, + TimeStamp: time.Now().UTC().Format(time.RFC3339), + }, nil +} + +// UrRollData implements IService. +func (s *service) UrRollData(ctx context.Context, req *api.UrRollDataReq) (res *api.UrRollDataRes, err error) { + // gets universal roll data from database + ufData, err := s.db.GetUniversalRoughingRollData(ctx, req.GetRollId()) + if err != nil { + return nil, err + } + // response + return &api.UrRollDataRes{ + Msg: "data for ur success", + RollData: ufData, + TimeStamp: time.Now().UTC().Format(time.RFC3339), + }, nil +} + +func NewService(db *rspdb.RspDB) IService { + return &service{ + db: db, + } +} diff --git a/pkg/api/api.pb.go b/pkg/api/api.pb.go new file mode 100644 index 0000000..da9428a --- /dev/null +++ b/pkg/api/api.pb.go @@ -0,0 +1,7340 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.1 +// protoc v4.23.2 +// source: api.proto + +package api + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type BdRollDataReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + RollId string `protobuf:"bytes,2,opt,name=roll_id,json=rollId,proto3" json:"roll_id,omitempty"` + TimeStamp string `protobuf:"bytes,100,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` +} + +func (x *BdRollDataReq) Reset() { + *x = BdRollDataReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BdRollDataReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BdRollDataReq) ProtoMessage() {} + +func (x *BdRollDataReq) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BdRollDataReq.ProtoReflect.Descriptor instead. +func (*BdRollDataReq) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{0} +} + +func (x *BdRollDataReq) GetSender() string { + if x != nil { + return x.Sender + } + return "" +} + +func (x *BdRollDataReq) GetRollId() string { + if x != nil { + return x.RollId + } + return "" +} + +func (x *BdRollDataReq) GetTimeStamp() string { + if x != nil { + return x.TimeStamp + } + return "" +} + +type BdRollDataRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + RollData *BdRollData `protobuf:"bytes,2,opt,name=roll_data,json=rollData,proto3" json:"roll_data,omitempty"` + TimeStamp string `protobuf:"bytes,100,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` +} + +func (x *BdRollDataRes) Reset() { + *x = BdRollDataRes{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BdRollDataRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BdRollDataRes) ProtoMessage() {} + +func (x *BdRollDataRes) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BdRollDataRes.ProtoReflect.Descriptor instead. +func (*BdRollDataRes) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{1} +} + +func (x *BdRollDataRes) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *BdRollDataRes) GetRollData() *BdRollData { + if x != nil { + return x.RollData + } + return nil +} + +func (x *BdRollDataRes) GetTimeStamp() string { + if x != nil { + return x.TimeStamp + } + return "" +} + +type UrRollDataReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + RollId string `protobuf:"bytes,2,opt,name=roll_id,json=rollId,proto3" json:"roll_id,omitempty"` + TimeStamp string `protobuf:"bytes,100,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` +} + +func (x *UrRollDataReq) Reset() { + *x = UrRollDataReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UrRollDataReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UrRollDataReq) ProtoMessage() {} + +func (x *UrRollDataReq) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UrRollDataReq.ProtoReflect.Descriptor instead. +func (*UrRollDataReq) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{2} +} + +func (x *UrRollDataReq) GetSender() string { + if x != nil { + return x.Sender + } + return "" +} + +func (x *UrRollDataReq) GetRollId() string { + if x != nil { + return x.RollId + } + return "" +} + +func (x *UrRollDataReq) GetTimeStamp() string { + if x != nil { + return x.TimeStamp + } + return "" +} + +type UrRollDataRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + RollData *UrRollData `protobuf:"bytes,2,opt,name=roll_data,json=rollData,proto3" json:"roll_data,omitempty"` + TimeStamp string `protobuf:"bytes,100,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` +} + +func (x *UrRollDataRes) Reset() { + *x = UrRollDataRes{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UrRollDataRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UrRollDataRes) ProtoMessage() {} + +func (x *UrRollDataRes) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UrRollDataRes.ProtoReflect.Descriptor instead. +func (*UrRollDataRes) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{3} +} + +func (x *UrRollDataRes) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *UrRollDataRes) GetRollData() *UrRollData { + if x != nil { + return x.RollData + } + return nil +} + +func (x *UrRollDataRes) GetTimeStamp() string { + if x != nil { + return x.TimeStamp + } + return "" +} + +type EdRollDataReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + RollId string `protobuf:"bytes,2,opt,name=roll_id,json=rollId,proto3" json:"roll_id,omitempty"` + TimeStamp string `protobuf:"bytes,100,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` +} + +func (x *EdRollDataReq) Reset() { + *x = EdRollDataReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EdRollDataReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EdRollDataReq) ProtoMessage() {} + +func (x *EdRollDataReq) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EdRollDataReq.ProtoReflect.Descriptor instead. +func (*EdRollDataReq) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{4} +} + +func (x *EdRollDataReq) GetSender() string { + if x != nil { + return x.Sender + } + return "" +} + +func (x *EdRollDataReq) GetRollId() string { + if x != nil { + return x.RollId + } + return "" +} + +func (x *EdRollDataReq) GetTimeStamp() string { + if x != nil { + return x.TimeStamp + } + return "" +} + +type EdRollDataRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + RollData *EdRollData `protobuf:"bytes,2,opt,name=roll_data,json=rollData,proto3" json:"roll_data,omitempty"` + TimeStamp string `protobuf:"bytes,100,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` +} + +func (x *EdRollDataRes) Reset() { + *x = EdRollDataRes{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EdRollDataRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EdRollDataRes) ProtoMessage() {} + +func (x *EdRollDataRes) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EdRollDataRes.ProtoReflect.Descriptor instead. +func (*EdRollDataRes) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{5} +} + +func (x *EdRollDataRes) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *EdRollDataRes) GetRollData() *EdRollData { + if x != nil { + return x.RollData + } + return nil +} + +func (x *EdRollDataRes) GetTimeStamp() string { + if x != nil { + return x.TimeStamp + } + return "" +} + +type UfRollDataReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sender string `protobuf:"bytes,1,opt,name=sender,proto3" json:"sender,omitempty"` + RollId string `protobuf:"bytes,2,opt,name=roll_id,json=rollId,proto3" json:"roll_id,omitempty"` + TimeStamp string `protobuf:"bytes,100,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` +} + +func (x *UfRollDataReq) Reset() { + *x = UfRollDataReq{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UfRollDataReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UfRollDataReq) ProtoMessage() {} + +func (x *UfRollDataReq) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UfRollDataReq.ProtoReflect.Descriptor instead. +func (*UfRollDataReq) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{6} +} + +func (x *UfRollDataReq) GetSender() string { + if x != nil { + return x.Sender + } + return "" +} + +func (x *UfRollDataReq) GetRollId() string { + if x != nil { + return x.RollId + } + return "" +} + +func (x *UfRollDataReq) GetTimeStamp() string { + if x != nil { + return x.TimeStamp + } + return "" +} + +type UfRollDataRes struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Msg string `protobuf:"bytes,1,opt,name=msg,proto3" json:"msg,omitempty"` + RollData *UfRollData `protobuf:"bytes,2,opt,name=roll_data,json=rollData,proto3" json:"roll_data,omitempty"` + TimeStamp string `protobuf:"bytes,100,opt,name=time_stamp,json=timeStamp,proto3" json:"time_stamp,omitempty"` +} + +func (x *UfRollDataRes) Reset() { + *x = UfRollDataRes{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UfRollDataRes) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UfRollDataRes) ProtoMessage() {} + +func (x *UfRollDataRes) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UfRollDataRes.ProtoReflect.Descriptor instead. +func (*UfRollDataRes) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{7} +} + +func (x *UfRollDataRes) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *UfRollDataRes) GetRollData() *UfRollData { + if x != nil { + return x.RollData + } + return nil +} + +func (x *UfRollDataRes) GetTimeStamp() string { + if x != nil { + return x.TimeStamp + } + return "" +} + +type BdRollData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BdRollSetDate string `protobuf:"bytes,1,opt,name=bd_roll_set_date,json=bdRollSetDate,proto3" json:"bd_roll_set_date,omitempty"` + BdRollSetId string `protobuf:"bytes,2,opt,name=bd_roll_set_id,json=bdRollSetId,proto3" json:"bd_roll_set_id,omitempty"` + BdTopRollNumber string `protobuf:"bytes,3,opt,name=bd_top_roll_number,json=bdTopRollNumber,proto3" json:"bd_top_roll_number,omitempty"` + BdBotRollNumber string `protobuf:"bytes,4,opt,name=bd_bot_roll_number,json=bdBotRollNumber,proto3" json:"bd_bot_roll_number,omitempty"` + BdRollMaterial string `protobuf:"bytes,5,opt,name=bd_roll_material,json=bdRollMaterial,proto3" json:"bd_roll_material,omitempty"` + BdRollInstallPos int64 `protobuf:"varint,6,opt,name=bd_roll_install_pos,json=bdRollInstallPos,proto3" json:"bd_roll_install_pos,omitempty"` + BdRollSetType int64 `protobuf:"varint,7,opt,name=bd_roll_set_type,json=bdRollSetType,proto3" json:"bd_roll_set_type,omitempty"` + BdRollDiamNomActTop float64 `protobuf:"fixed64,8,opt,name=bd_roll_diam_nom_act_top,json=bdRollDiamNomActTop,proto3" json:"bd_roll_diam_nom_act_top,omitempty"` + BdRollDiamNomActBot float64 `protobuf:"fixed64,9,opt,name=bd_roll_diam_nom_act_bot,json=bdRollDiamNomActBot,proto3" json:"bd_roll_diam_nom_act_bot,omitempty"` + BdRollNominalGap float64 `protobuf:"fixed64,10,opt,name=bd_roll_nominal_gap,json=bdRollNominalGap,proto3" json:"bd_roll_nominal_gap,omitempty"` + BdRollGrooves int64 `protobuf:"varint,11,opt,name=bd_roll_grooves,json=bdRollGrooves,proto3" json:"bd_roll_grooves,omitempty"` + BdRollGrooveWidth0 float64 `protobuf:"fixed64,12,opt,name=bd_roll_groove_width0,json=bdRollGrooveWidth0,proto3" json:"bd_roll_groove_width0,omitempty"` + BdRollGrooveWidth1 float64 `protobuf:"fixed64,13,opt,name=bd_roll_groove_width1,json=bdRollGrooveWidth1,proto3" json:"bd_roll_groove_width1,omitempty"` + BdRollGrooveWidth2 float64 `protobuf:"fixed64,14,opt,name=bd_roll_groove_width2,json=bdRollGrooveWidth2,proto3" json:"bd_roll_groove_width2,omitempty"` + BdRollGrooveWidth3 float64 `protobuf:"fixed64,15,opt,name=bd_roll_groove_width3,json=bdRollGrooveWidth3,proto3" json:"bd_roll_groove_width3,omitempty"` + BdRollGrooveWidth4 float64 `protobuf:"fixed64,16,opt,name=bd_roll_groove_width4,json=bdRollGrooveWidth4,proto3" json:"bd_roll_groove_width4,omitempty"` + BdRollGrooveWidth5 float64 `protobuf:"fixed64,17,opt,name=bd_roll_groove_width5,json=bdRollGrooveWidth5,proto3" json:"bd_roll_groove_width5,omitempty"` + BdRollGrooveWidth6 float64 `protobuf:"fixed64,18,opt,name=bd_roll_groove_width6,json=bdRollGrooveWidth6,proto3" json:"bd_roll_groove_width6,omitempty"` + BdRollGrooveWidth7 float64 `protobuf:"fixed64,19,opt,name=bd_roll_groove_width7,json=bdRollGrooveWidth7,proto3" json:"bd_roll_groove_width7,omitempty"` + BdRollGrooveWidth8 float64 `protobuf:"fixed64,20,opt,name=bd_roll_groove_width8,json=bdRollGrooveWidth8,proto3" json:"bd_roll_groove_width8,omitempty"` + BdRollGrooveWidth9 float64 `protobuf:"fixed64,21,opt,name=bd_roll_groove_width9,json=bdRollGrooveWidth9,proto3" json:"bd_roll_groove_width9,omitempty"` + BdRollGrooveStiffnessTop0 float64 `protobuf:"fixed64,22,opt,name=bd_roll_groove_stiffness_top0,json=bdRollGrooveStiffnessTop0,proto3" json:"bd_roll_groove_stiffness_top0,omitempty"` + BdRollGrooveStiffnessTop1 float64 `protobuf:"fixed64,23,opt,name=bd_roll_groove_stiffness_top1,json=bdRollGrooveStiffnessTop1,proto3" json:"bd_roll_groove_stiffness_top1,omitempty"` + BdRollGrooveStiffnessTop2 float64 `protobuf:"fixed64,24,opt,name=bd_roll_groove_stiffness_top2,json=bdRollGrooveStiffnessTop2,proto3" json:"bd_roll_groove_stiffness_top2,omitempty"` + BdRollGrooveStiffnessTop3 float64 `protobuf:"fixed64,25,opt,name=bd_roll_groove_stiffness_top3,json=bdRollGrooveStiffnessTop3,proto3" json:"bd_roll_groove_stiffness_top3,omitempty"` + BdRollGrooveStiffnessTop4 float64 `protobuf:"fixed64,26,opt,name=bd_roll_groove_stiffness_top4,json=bdRollGrooveStiffnessTop4,proto3" json:"bd_roll_groove_stiffness_top4,omitempty"` + BdRollGrooveStiffnessTop5 float64 `protobuf:"fixed64,27,opt,name=bd_roll_groove_stiffness_top5,json=bdRollGrooveStiffnessTop5,proto3" json:"bd_roll_groove_stiffness_top5,omitempty"` + BdRollGrooveStiffnessTop6 float64 `protobuf:"fixed64,28,opt,name=bd_roll_groove_stiffness_top6,json=bdRollGrooveStiffnessTop6,proto3" json:"bd_roll_groove_stiffness_top6,omitempty"` + BdRollGrooveStiffnessTop7 float64 `protobuf:"fixed64,29,opt,name=bd_roll_groove_stiffness_top7,json=bdRollGrooveStiffnessTop7,proto3" json:"bd_roll_groove_stiffness_top7,omitempty"` + BdRollGrooveStiffnessTop8 float64 `protobuf:"fixed64,30,opt,name=bd_roll_groove_stiffness_top8,json=bdRollGrooveStiffnessTop8,proto3" json:"bd_roll_groove_stiffness_top8,omitempty"` + BdRollGrooveStiffnessTop9 float64 `protobuf:"fixed64,31,opt,name=bd_roll_groove_stiffness_top9,json=bdRollGrooveStiffnessTop9,proto3" json:"bd_roll_groove_stiffness_top9,omitempty"` + BdRollGrooveStiffnessBot0 float64 `protobuf:"fixed64,32,opt,name=bd_roll_groove_stiffness_bot0,json=bdRollGrooveStiffnessBot0,proto3" json:"bd_roll_groove_stiffness_bot0,omitempty"` + BdRollGrooveStiffnessBot1 float64 `protobuf:"fixed64,33,opt,name=bd_roll_groove_stiffness_bot1,json=bdRollGrooveStiffnessBot1,proto3" json:"bd_roll_groove_stiffness_bot1,omitempty"` + BdRollGrooveStiffnessBot2 float64 `protobuf:"fixed64,34,opt,name=bd_roll_groove_stiffness_bot2,json=bdRollGrooveStiffnessBot2,proto3" json:"bd_roll_groove_stiffness_bot2,omitempty"` + BdRollGrooveStiffnessBot3 float64 `protobuf:"fixed64,35,opt,name=bd_roll_groove_stiffness_bot3,json=bdRollGrooveStiffnessBot3,proto3" json:"bd_roll_groove_stiffness_bot3,omitempty"` + BdRollGrooveStiffnessBot4 float64 `protobuf:"fixed64,36,opt,name=bd_roll_groove_stiffness_bot4,json=bdRollGrooveStiffnessBot4,proto3" json:"bd_roll_groove_stiffness_bot4,omitempty"` + BdRollGrooveStiffnessBot5 float64 `protobuf:"fixed64,37,opt,name=bd_roll_groove_stiffness_bot5,json=bdRollGrooveStiffnessBot5,proto3" json:"bd_roll_groove_stiffness_bot5,omitempty"` + BdRollGrooveStiffnessBot6 float64 `protobuf:"fixed64,38,opt,name=bd_roll_groove_stiffness_bot6,json=bdRollGrooveStiffnessBot6,proto3" json:"bd_roll_groove_stiffness_bot6,omitempty"` + BdRollGrooveStiffnessBot7 float64 `protobuf:"fixed64,39,opt,name=bd_roll_groove_stiffness_bot7,json=bdRollGrooveStiffnessBot7,proto3" json:"bd_roll_groove_stiffness_bot7,omitempty"` + BdRollGrooveStiffnessBot8 float64 `protobuf:"fixed64,40,opt,name=bd_roll_groove_stiffness_bot8,json=bdRollGrooveStiffnessBot8,proto3" json:"bd_roll_groove_stiffness_bot8,omitempty"` + BdRollGrooveStiffnessBot9 float64 `protobuf:"fixed64,41,opt,name=bd_roll_groove_stiffness_bot9,json=bdRollGrooveStiffnessBot9,proto3" json:"bd_roll_groove_stiffness_bot9,omitempty"` + BdRollGroovePos0 float64 `protobuf:"fixed64,42,opt,name=bd_roll_groove_pos0,json=bdRollGroovePos0,proto3" json:"bd_roll_groove_pos0,omitempty"` + BdRollGroovePos1 float64 `protobuf:"fixed64,43,opt,name=bd_roll_groove_pos1,json=bdRollGroovePos1,proto3" json:"bd_roll_groove_pos1,omitempty"` + BdRollGroovePos2 float64 `protobuf:"fixed64,44,opt,name=bd_roll_groove_pos2,json=bdRollGroovePos2,proto3" json:"bd_roll_groove_pos2,omitempty"` + BdRollGroovePos3 float64 `protobuf:"fixed64,45,opt,name=bd_roll_groove_pos3,json=bdRollGroovePos3,proto3" json:"bd_roll_groove_pos3,omitempty"` + BdRollGroovePos4 float64 `protobuf:"fixed64,46,opt,name=bd_roll_groove_pos4,json=bdRollGroovePos4,proto3" json:"bd_roll_groove_pos4,omitempty"` + BdRollGroovePos5 float64 `protobuf:"fixed64,47,opt,name=bd_roll_groove_pos5,json=bdRollGroovePos5,proto3" json:"bd_roll_groove_pos5,omitempty"` + BdRollGroovePos6 float64 `protobuf:"fixed64,48,opt,name=bd_roll_groove_pos6,json=bdRollGroovePos6,proto3" json:"bd_roll_groove_pos6,omitempty"` + BdRollGroovePos7 float64 `protobuf:"fixed64,49,opt,name=bd_roll_groove_pos7,json=bdRollGroovePos7,proto3" json:"bd_roll_groove_pos7,omitempty"` + BdRollGroovePos8 float64 `protobuf:"fixed64,50,opt,name=bd_roll_groove_pos8,json=bdRollGroovePos8,proto3" json:"bd_roll_groove_pos8,omitempty"` + BdRollGroovePos9 float64 `protobuf:"fixed64,51,opt,name=bd_roll_groove_pos9,json=bdRollGroovePos9,proto3" json:"bd_roll_groove_pos9,omitempty"` + BdRollGrooveSharp0 int64 `protobuf:"varint,52,opt,name=bd_roll_groove_sharp0,json=bdRollGrooveSharp0,proto3" json:"bd_roll_groove_sharp0,omitempty"` + BdRollGrooveSharp1 int64 `protobuf:"varint,53,opt,name=bd_roll_groove_sharp1,json=bdRollGrooveSharp1,proto3" json:"bd_roll_groove_sharp1,omitempty"` + BdRollGrooveSharp2 int64 `protobuf:"varint,54,opt,name=bd_roll_groove_sharp2,json=bdRollGrooveSharp2,proto3" json:"bd_roll_groove_sharp2,omitempty"` + BdRollGrooveSharp3 int64 `protobuf:"varint,55,opt,name=bd_roll_groove_sharp3,json=bdRollGrooveSharp3,proto3" json:"bd_roll_groove_sharp3,omitempty"` + BdRollGrooveSharp4 int64 `protobuf:"varint,56,opt,name=bd_roll_groove_sharp4,json=bdRollGrooveSharp4,proto3" json:"bd_roll_groove_sharp4,omitempty"` + BdRollGrooveSharp5 int64 `protobuf:"varint,57,opt,name=bd_roll_groove_sharp5,json=bdRollGrooveSharp5,proto3" json:"bd_roll_groove_sharp5,omitempty"` + BdRollGrooveSharp6 int64 `protobuf:"varint,58,opt,name=bd_roll_groove_sharp6,json=bdRollGrooveSharp6,proto3" json:"bd_roll_groove_sharp6,omitempty"` + BdRollGrooveSharp7 int64 `protobuf:"varint,59,opt,name=bd_roll_groove_sharp7,json=bdRollGrooveSharp7,proto3" json:"bd_roll_groove_sharp7,omitempty"` + BdRollGrooveSharp8 int64 `protobuf:"varint,60,opt,name=bd_roll_groove_sharp8,json=bdRollGrooveSharp8,proto3" json:"bd_roll_groove_sharp8,omitempty"` + BdRollGrooveSharp9 int64 `protobuf:"varint,61,opt,name=bd_roll_groove_sharp9,json=bdRollGrooveSharp9,proto3" json:"bd_roll_groove_sharp9,omitempty"` + BdRollGrooveDepth0 float64 `protobuf:"fixed64,62,opt,name=bd_roll_groove_depth0,json=bdRollGrooveDepth0,proto3" json:"bd_roll_groove_depth0,omitempty"` + BdRollGrooveDepth1 float64 `protobuf:"fixed64,63,opt,name=bd_roll_groove_depth1,json=bdRollGrooveDepth1,proto3" json:"bd_roll_groove_depth1,omitempty"` + BdRollGrooveDepth2 float64 `protobuf:"fixed64,64,opt,name=bd_roll_groove_depth2,json=bdRollGrooveDepth2,proto3" json:"bd_roll_groove_depth2,omitempty"` + BdRollGrooveDepth3 float64 `protobuf:"fixed64,65,opt,name=bd_roll_groove_depth3,json=bdRollGrooveDepth3,proto3" json:"bd_roll_groove_depth3,omitempty"` + BdRollGrooveDepth4 float64 `protobuf:"fixed64,66,opt,name=bd_roll_groove_depth4,json=bdRollGrooveDepth4,proto3" json:"bd_roll_groove_depth4,omitempty"` + BdRollGrooveDepth5 float64 `protobuf:"fixed64,67,opt,name=bd_roll_groove_depth5,json=bdRollGrooveDepth5,proto3" json:"bd_roll_groove_depth5,omitempty"` + BdRollGrooveDepth6 float64 `protobuf:"fixed64,68,opt,name=bd_roll_groove_depth6,json=bdRollGrooveDepth6,proto3" json:"bd_roll_groove_depth6,omitempty"` + BdRollGrooveDepth7 float64 `protobuf:"fixed64,69,opt,name=bd_roll_groove_depth7,json=bdRollGrooveDepth7,proto3" json:"bd_roll_groove_depth7,omitempty"` + BdRollGrooveDepth8 float64 `protobuf:"fixed64,70,opt,name=bd_roll_groove_depth8,json=bdRollGrooveDepth8,proto3" json:"bd_roll_groove_depth8,omitempty"` + BdRollGrooveDepth9 float64 `protobuf:"fixed64,71,opt,name=bd_roll_groove_depth9,json=bdRollGrooveDepth9,proto3" json:"bd_roll_groove_depth9,omitempty"` + BdRollAssemblyStatus int64 `protobuf:"varint,72,opt,name=bd_roll_assembly_status,json=bdRollAssemblyStatus,proto3" json:"bd_roll_assembly_status,omitempty"` + BdNoOfFinSec int64 `protobuf:"varint,73,opt,name=bd_no_of_fin_sec,json=bdNoOfFinSec,proto3" json:"bd_no_of_fin_sec,omitempty"` + BdInitSec0 string `protobuf:"bytes,74,opt,name=bd_init_sec0,json=bdInitSec0,proto3" json:"bd_init_sec0,omitempty"` + BdInitSec1 string `protobuf:"bytes,75,opt,name=bd_init_sec1,json=bdInitSec1,proto3" json:"bd_init_sec1,omitempty"` + BdInitSec2 string `protobuf:"bytes,76,opt,name=bd_init_sec2,json=bdInitSec2,proto3" json:"bd_init_sec2,omitempty"` + BdInitSec3 string `protobuf:"bytes,77,opt,name=bd_init_sec3,json=bdInitSec3,proto3" json:"bd_init_sec3,omitempty"` + BdInitSec4 string `protobuf:"bytes,78,opt,name=bd_init_sec4,json=bdInitSec4,proto3" json:"bd_init_sec4,omitempty"` + BdFinSec0 string `protobuf:"bytes,79,opt,name=bd_fin_sec0,json=bdFinSec0,proto3" json:"bd_fin_sec0,omitempty"` + BdFinSec1 string `protobuf:"bytes,80,opt,name=bd_fin_sec1,json=bdFinSec1,proto3" json:"bd_fin_sec1,omitempty"` + BdFinSec2 string `protobuf:"bytes,81,opt,name=bd_fin_sec2,json=bdFinSec2,proto3" json:"bd_fin_sec2,omitempty"` + BdFinSec3 string `protobuf:"bytes,82,opt,name=bd_fin_sec3,json=bdFinSec3,proto3" json:"bd_fin_sec3,omitempty"` + BdFinSec4 string `protobuf:"bytes,83,opt,name=bd_fin_sec4,json=bdFinSec4,proto3" json:"bd_fin_sec4,omitempty"` + BdRollActualShimpsTop float64 `protobuf:"fixed64,84,opt,name=bd_roll_actual_shimps_top,json=bdRollActualShimpsTop,proto3" json:"bd_roll_actual_shimps_top,omitempty"` + BdRollActualShimpsBot float64 `protobuf:"fixed64,85,opt,name=bd_roll_actual_shimps_bot,json=bdRollActualShimpsBot,proto3" json:"bd_roll_actual_shimps_bot,omitempty"` + BdTonnageAccum0 float64 `protobuf:"fixed64,86,opt,name=bd_tonnage_accum0,json=bdTonnageAccum0,proto3" json:"bd_tonnage_accum0,omitempty"` + BdTonnageAccum1 float64 `protobuf:"fixed64,87,opt,name=bd_tonnage_accum1,json=bdTonnageAccum1,proto3" json:"bd_tonnage_accum1,omitempty"` + BdTonnageAccum2 float64 `protobuf:"fixed64,88,opt,name=bd_tonnage_accum2,json=bdTonnageAccum2,proto3" json:"bd_tonnage_accum2,omitempty"` + BdTonnageAccum3 float64 `protobuf:"fixed64,89,opt,name=bd_tonnage_accum3,json=bdTonnageAccum3,proto3" json:"bd_tonnage_accum3,omitempty"` + BdTonnageAccum4 float64 `protobuf:"fixed64,90,opt,name=bd_tonnage_accum4,json=bdTonnageAccum4,proto3" json:"bd_tonnage_accum4,omitempty"` + BdTonnageAccum5 float64 `protobuf:"fixed64,91,opt,name=bd_tonnage_accum5,json=bdTonnageAccum5,proto3" json:"bd_tonnage_accum5,omitempty"` + BdTonnageAccum6 float64 `protobuf:"fixed64,92,opt,name=bd_tonnage_accum6,json=bdTonnageAccum6,proto3" json:"bd_tonnage_accum6,omitempty"` + BdTonnageAccum7 float64 `protobuf:"fixed64,93,opt,name=bd_tonnage_accum7,json=bdTonnageAccum7,proto3" json:"bd_tonnage_accum7,omitempty"` + BdTonnageAccum8 float64 `protobuf:"fixed64,94,opt,name=bd_tonnage_accum8,json=bdTonnageAccum8,proto3" json:"bd_tonnage_accum8,omitempty"` + BdTonnageAccum9 float64 `protobuf:"fixed64,95,opt,name=bd_tonnage_accum9,json=bdTonnageAccum9,proto3" json:"bd_tonnage_accum9,omitempty"` + BdRollId string `protobuf:"bytes,96,opt,name=bd_roll_id,json=bdRollId,proto3" json:"bd_roll_id,omitempty"` + BdDelFlag bool `protobuf:"varint,97,opt,name=bd_del_flag,json=bdDelFlag,proto3" json:"bd_del_flag,omitempty"` + BdRollSetIdOld string `protobuf:"bytes,98,opt,name=bd_roll_set_id_old,json=bdRollSetIdOld,proto3" json:"bd_roll_set_id_old,omitempty"` + BdFinSec5 string `protobuf:"bytes,99,opt,name=bd_fin_sec5,json=bdFinSec5,proto3" json:"bd_fin_sec5,omitempty"` + BdFinSec6 string `protobuf:"bytes,100,opt,name=bd_fin_sec6,json=bdFinSec6,proto3" json:"bd_fin_sec6,omitempty"` + BdFinSec7 string `protobuf:"bytes,101,opt,name=bd_fin_sec7,json=bdFinSec7,proto3" json:"bd_fin_sec7,omitempty"` + BdFinSec8 string `protobuf:"bytes,102,opt,name=bd_fin_sec8,json=bdFinSec8,proto3" json:"bd_fin_sec8,omitempty"` + BdFinSec9 string `protobuf:"bytes,103,opt,name=bd_fin_sec9,json=bdFinSec9,proto3" json:"bd_fin_sec9,omitempty"` + BdFinSec10 string `protobuf:"bytes,104,opt,name=bd_fin_sec10,json=bdFinSec10,proto3" json:"bd_fin_sec10,omitempty"` + BdFinSec11 string `protobuf:"bytes,105,opt,name=bd_fin_sec11,json=bdFinSec11,proto3" json:"bd_fin_sec11,omitempty"` + BdFinSec12 string `protobuf:"bytes,106,opt,name=bd_fin_sec12,json=bdFinSec12,proto3" json:"bd_fin_sec12,omitempty"` + BdFinSec13 string `protobuf:"bytes,107,opt,name=bd_fin_sec13,json=bdFinSec13,proto3" json:"bd_fin_sec13,omitempty"` + BdFinSec14 string `protobuf:"bytes,108,opt,name=bd_fin_sec14,json=bdFinSec14,proto3" json:"bd_fin_sec14,omitempty"` + BdFinSec15 string `protobuf:"bytes,109,opt,name=bd_fin_sec15,json=bdFinSec15,proto3" json:"bd_fin_sec15,omitempty"` + BdFinSec16 string `protobuf:"bytes,110,opt,name=bd_fin_sec16,json=bdFinSec16,proto3" json:"bd_fin_sec16,omitempty"` + BdFinSec17 string `protobuf:"bytes,111,opt,name=bd_fin_sec17,json=bdFinSec17,proto3" json:"bd_fin_sec17,omitempty"` + BdFinSec18 string `protobuf:"bytes,112,opt,name=bd_fin_sec18,json=bdFinSec18,proto3" json:"bd_fin_sec18,omitempty"` + BdFinSec19 string `protobuf:"bytes,113,opt,name=bd_fin_sec19,json=bdFinSec19,proto3" json:"bd_fin_sec19,omitempty"` + OldFlag bool `protobuf:"varint,114,opt,name=old_flag,json=oldFlag,proto3" json:"old_flag,omitempty"` + AlturaBarronSalida float64 `protobuf:"fixed64,115,opt,name=altura_barron_salida,json=alturaBarronSalida,proto3" json:"altura_barron_salida,omitempty"` + AlturaBarronEntrada float64 `protobuf:"fixed64,116,opt,name=altura_barron_entrada,json=alturaBarronEntrada,proto3" json:"altura_barron_entrada,omitempty"` + Familia string `protobuf:"bytes,117,opt,name=familia,proto3" json:"familia,omitempty"` + Correccion bool `protobuf:"varint,118,opt,name=correccion,proto3" json:"correccion,omitempty"` + EstadoRegistro bool `protobuf:"varint,119,opt,name=estado_registro,json=estadoRegistro,proto3" json:"estado_registro,omitempty"` + FechaRegistro string `protobuf:"bytes,120,opt,name=fecha_registro,json=fechaRegistro,proto3" json:"fecha_registro,omitempty"` + FechaEnvio string `protobuf:"bytes,121,opt,name=fecha_envio,json=fechaEnvio,proto3" json:"fecha_envio,omitempty"` +} + +func (x *BdRollData) Reset() { + *x = BdRollData{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BdRollData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BdRollData) ProtoMessage() {} + +func (x *BdRollData) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BdRollData.ProtoReflect.Descriptor instead. +func (*BdRollData) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{8} +} + +func (x *BdRollData) GetBdRollSetDate() string { + if x != nil { + return x.BdRollSetDate + } + return "" +} + +func (x *BdRollData) GetBdRollSetId() string { + if x != nil { + return x.BdRollSetId + } + return "" +} + +func (x *BdRollData) GetBdTopRollNumber() string { + if x != nil { + return x.BdTopRollNumber + } + return "" +} + +func (x *BdRollData) GetBdBotRollNumber() string { + if x != nil { + return x.BdBotRollNumber + } + return "" +} + +func (x *BdRollData) GetBdRollMaterial() string { + if x != nil { + return x.BdRollMaterial + } + return "" +} + +func (x *BdRollData) GetBdRollInstallPos() int64 { + if x != nil { + return x.BdRollInstallPos + } + return 0 +} + +func (x *BdRollData) GetBdRollSetType() int64 { + if x != nil { + return x.BdRollSetType + } + return 0 +} + +func (x *BdRollData) GetBdRollDiamNomActTop() float64 { + if x != nil { + return x.BdRollDiamNomActTop + } + return 0 +} + +func (x *BdRollData) GetBdRollDiamNomActBot() float64 { + if x != nil { + return x.BdRollDiamNomActBot + } + return 0 +} + +func (x *BdRollData) GetBdRollNominalGap() float64 { + if x != nil { + return x.BdRollNominalGap + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooves() int64 { + if x != nil { + return x.BdRollGrooves + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveWidth0() float64 { + if x != nil { + return x.BdRollGrooveWidth0 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveWidth1() float64 { + if x != nil { + return x.BdRollGrooveWidth1 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveWidth2() float64 { + if x != nil { + return x.BdRollGrooveWidth2 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveWidth3() float64 { + if x != nil { + return x.BdRollGrooveWidth3 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveWidth4() float64 { + if x != nil { + return x.BdRollGrooveWidth4 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveWidth5() float64 { + if x != nil { + return x.BdRollGrooveWidth5 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveWidth6() float64 { + if x != nil { + return x.BdRollGrooveWidth6 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveWidth7() float64 { + if x != nil { + return x.BdRollGrooveWidth7 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveWidth8() float64 { + if x != nil { + return x.BdRollGrooveWidth8 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveWidth9() float64 { + if x != nil { + return x.BdRollGrooveWidth9 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessTop0() float64 { + if x != nil { + return x.BdRollGrooveStiffnessTop0 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessTop1() float64 { + if x != nil { + return x.BdRollGrooveStiffnessTop1 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessTop2() float64 { + if x != nil { + return x.BdRollGrooveStiffnessTop2 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessTop3() float64 { + if x != nil { + return x.BdRollGrooveStiffnessTop3 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessTop4() float64 { + if x != nil { + return x.BdRollGrooveStiffnessTop4 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessTop5() float64 { + if x != nil { + return x.BdRollGrooveStiffnessTop5 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessTop6() float64 { + if x != nil { + return x.BdRollGrooveStiffnessTop6 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessTop7() float64 { + if x != nil { + return x.BdRollGrooveStiffnessTop7 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessTop8() float64 { + if x != nil { + return x.BdRollGrooveStiffnessTop8 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessTop9() float64 { + if x != nil { + return x.BdRollGrooveStiffnessTop9 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessBot0() float64 { + if x != nil { + return x.BdRollGrooveStiffnessBot0 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessBot1() float64 { + if x != nil { + return x.BdRollGrooveStiffnessBot1 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessBot2() float64 { + if x != nil { + return x.BdRollGrooveStiffnessBot2 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessBot3() float64 { + if x != nil { + return x.BdRollGrooveStiffnessBot3 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessBot4() float64 { + if x != nil { + return x.BdRollGrooveStiffnessBot4 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessBot5() float64 { + if x != nil { + return x.BdRollGrooveStiffnessBot5 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessBot6() float64 { + if x != nil { + return x.BdRollGrooveStiffnessBot6 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessBot7() float64 { + if x != nil { + return x.BdRollGrooveStiffnessBot7 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessBot8() float64 { + if x != nil { + return x.BdRollGrooveStiffnessBot8 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveStiffnessBot9() float64 { + if x != nil { + return x.BdRollGrooveStiffnessBot9 + } + return 0 +} + +func (x *BdRollData) GetBdRollGroovePos0() float64 { + if x != nil { + return x.BdRollGroovePos0 + } + return 0 +} + +func (x *BdRollData) GetBdRollGroovePos1() float64 { + if x != nil { + return x.BdRollGroovePos1 + } + return 0 +} + +func (x *BdRollData) GetBdRollGroovePos2() float64 { + if x != nil { + return x.BdRollGroovePos2 + } + return 0 +} + +func (x *BdRollData) GetBdRollGroovePos3() float64 { + if x != nil { + return x.BdRollGroovePos3 + } + return 0 +} + +func (x *BdRollData) GetBdRollGroovePos4() float64 { + if x != nil { + return x.BdRollGroovePos4 + } + return 0 +} + +func (x *BdRollData) GetBdRollGroovePos5() float64 { + if x != nil { + return x.BdRollGroovePos5 + } + return 0 +} + +func (x *BdRollData) GetBdRollGroovePos6() float64 { + if x != nil { + return x.BdRollGroovePos6 + } + return 0 +} + +func (x *BdRollData) GetBdRollGroovePos7() float64 { + if x != nil { + return x.BdRollGroovePos7 + } + return 0 +} + +func (x *BdRollData) GetBdRollGroovePos8() float64 { + if x != nil { + return x.BdRollGroovePos8 + } + return 0 +} + +func (x *BdRollData) GetBdRollGroovePos9() float64 { + if x != nil { + return x.BdRollGroovePos9 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveSharp0() int64 { + if x != nil { + return x.BdRollGrooveSharp0 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveSharp1() int64 { + if x != nil { + return x.BdRollGrooveSharp1 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveSharp2() int64 { + if x != nil { + return x.BdRollGrooveSharp2 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveSharp3() int64 { + if x != nil { + return x.BdRollGrooveSharp3 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveSharp4() int64 { + if x != nil { + return x.BdRollGrooveSharp4 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveSharp5() int64 { + if x != nil { + return x.BdRollGrooveSharp5 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveSharp6() int64 { + if x != nil { + return x.BdRollGrooveSharp6 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveSharp7() int64 { + if x != nil { + return x.BdRollGrooveSharp7 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveSharp8() int64 { + if x != nil { + return x.BdRollGrooveSharp8 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveSharp9() int64 { + if x != nil { + return x.BdRollGrooveSharp9 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveDepth0() float64 { + if x != nil { + return x.BdRollGrooveDepth0 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveDepth1() float64 { + if x != nil { + return x.BdRollGrooveDepth1 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveDepth2() float64 { + if x != nil { + return x.BdRollGrooveDepth2 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveDepth3() float64 { + if x != nil { + return x.BdRollGrooveDepth3 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveDepth4() float64 { + if x != nil { + return x.BdRollGrooveDepth4 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveDepth5() float64 { + if x != nil { + return x.BdRollGrooveDepth5 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveDepth6() float64 { + if x != nil { + return x.BdRollGrooveDepth6 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveDepth7() float64 { + if x != nil { + return x.BdRollGrooveDepth7 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveDepth8() float64 { + if x != nil { + return x.BdRollGrooveDepth8 + } + return 0 +} + +func (x *BdRollData) GetBdRollGrooveDepth9() float64 { + if x != nil { + return x.BdRollGrooveDepth9 + } + return 0 +} + +func (x *BdRollData) GetBdRollAssemblyStatus() int64 { + if x != nil { + return x.BdRollAssemblyStatus + } + return 0 +} + +func (x *BdRollData) GetBdNoOfFinSec() int64 { + if x != nil { + return x.BdNoOfFinSec + } + return 0 +} + +func (x *BdRollData) GetBdInitSec0() string { + if x != nil { + return x.BdInitSec0 + } + return "" +} + +func (x *BdRollData) GetBdInitSec1() string { + if x != nil { + return x.BdInitSec1 + } + return "" +} + +func (x *BdRollData) GetBdInitSec2() string { + if x != nil { + return x.BdInitSec2 + } + return "" +} + +func (x *BdRollData) GetBdInitSec3() string { + if x != nil { + return x.BdInitSec3 + } + return "" +} + +func (x *BdRollData) GetBdInitSec4() string { + if x != nil { + return x.BdInitSec4 + } + return "" +} + +func (x *BdRollData) GetBdFinSec0() string { + if x != nil { + return x.BdFinSec0 + } + return "" +} + +func (x *BdRollData) GetBdFinSec1() string { + if x != nil { + return x.BdFinSec1 + } + return "" +} + +func (x *BdRollData) GetBdFinSec2() string { + if x != nil { + return x.BdFinSec2 + } + return "" +} + +func (x *BdRollData) GetBdFinSec3() string { + if x != nil { + return x.BdFinSec3 + } + return "" +} + +func (x *BdRollData) GetBdFinSec4() string { + if x != nil { + return x.BdFinSec4 + } + return "" +} + +func (x *BdRollData) GetBdRollActualShimpsTop() float64 { + if x != nil { + return x.BdRollActualShimpsTop + } + return 0 +} + +func (x *BdRollData) GetBdRollActualShimpsBot() float64 { + if x != nil { + return x.BdRollActualShimpsBot + } + return 0 +} + +func (x *BdRollData) GetBdTonnageAccum0() float64 { + if x != nil { + return x.BdTonnageAccum0 + } + return 0 +} + +func (x *BdRollData) GetBdTonnageAccum1() float64 { + if x != nil { + return x.BdTonnageAccum1 + } + return 0 +} + +func (x *BdRollData) GetBdTonnageAccum2() float64 { + if x != nil { + return x.BdTonnageAccum2 + } + return 0 +} + +func (x *BdRollData) GetBdTonnageAccum3() float64 { + if x != nil { + return x.BdTonnageAccum3 + } + return 0 +} + +func (x *BdRollData) GetBdTonnageAccum4() float64 { + if x != nil { + return x.BdTonnageAccum4 + } + return 0 +} + +func (x *BdRollData) GetBdTonnageAccum5() float64 { + if x != nil { + return x.BdTonnageAccum5 + } + return 0 +} + +func (x *BdRollData) GetBdTonnageAccum6() float64 { + if x != nil { + return x.BdTonnageAccum6 + } + return 0 +} + +func (x *BdRollData) GetBdTonnageAccum7() float64 { + if x != nil { + return x.BdTonnageAccum7 + } + return 0 +} + +func (x *BdRollData) GetBdTonnageAccum8() float64 { + if x != nil { + return x.BdTonnageAccum8 + } + return 0 +} + +func (x *BdRollData) GetBdTonnageAccum9() float64 { + if x != nil { + return x.BdTonnageAccum9 + } + return 0 +} + +func (x *BdRollData) GetBdRollId() string { + if x != nil { + return x.BdRollId + } + return "" +} + +func (x *BdRollData) GetBdDelFlag() bool { + if x != nil { + return x.BdDelFlag + } + return false +} + +func (x *BdRollData) GetBdRollSetIdOld() string { + if x != nil { + return x.BdRollSetIdOld + } + return "" +} + +func (x *BdRollData) GetBdFinSec5() string { + if x != nil { + return x.BdFinSec5 + } + return "" +} + +func (x *BdRollData) GetBdFinSec6() string { + if x != nil { + return x.BdFinSec6 + } + return "" +} + +func (x *BdRollData) GetBdFinSec7() string { + if x != nil { + return x.BdFinSec7 + } + return "" +} + +func (x *BdRollData) GetBdFinSec8() string { + if x != nil { + return x.BdFinSec8 + } + return "" +} + +func (x *BdRollData) GetBdFinSec9() string { + if x != nil { + return x.BdFinSec9 + } + return "" +} + +func (x *BdRollData) GetBdFinSec10() string { + if x != nil { + return x.BdFinSec10 + } + return "" +} + +func (x *BdRollData) GetBdFinSec11() string { + if x != nil { + return x.BdFinSec11 + } + return "" +} + +func (x *BdRollData) GetBdFinSec12() string { + if x != nil { + return x.BdFinSec12 + } + return "" +} + +func (x *BdRollData) GetBdFinSec13() string { + if x != nil { + return x.BdFinSec13 + } + return "" +} + +func (x *BdRollData) GetBdFinSec14() string { + if x != nil { + return x.BdFinSec14 + } + return "" +} + +func (x *BdRollData) GetBdFinSec15() string { + if x != nil { + return x.BdFinSec15 + } + return "" +} + +func (x *BdRollData) GetBdFinSec16() string { + if x != nil { + return x.BdFinSec16 + } + return "" +} + +func (x *BdRollData) GetBdFinSec17() string { + if x != nil { + return x.BdFinSec17 + } + return "" +} + +func (x *BdRollData) GetBdFinSec18() string { + if x != nil { + return x.BdFinSec18 + } + return "" +} + +func (x *BdRollData) GetBdFinSec19() string { + if x != nil { + return x.BdFinSec19 + } + return "" +} + +func (x *BdRollData) GetOldFlag() bool { + if x != nil { + return x.OldFlag + } + return false +} + +func (x *BdRollData) GetAlturaBarronSalida() float64 { + if x != nil { + return x.AlturaBarronSalida + } + return 0 +} + +func (x *BdRollData) GetAlturaBarronEntrada() float64 { + if x != nil { + return x.AlturaBarronEntrada + } + return 0 +} + +func (x *BdRollData) GetFamilia() string { + if x != nil { + return x.Familia + } + return "" +} + +func (x *BdRollData) GetCorreccion() bool { + if x != nil { + return x.Correccion + } + return false +} + +func (x *BdRollData) GetEstadoRegistro() bool { + if x != nil { + return x.EstadoRegistro + } + return false +} + +func (x *BdRollData) GetFechaRegistro() string { + if x != nil { + return x.FechaRegistro + } + return "" +} + +func (x *BdRollData) GetFechaEnvio() string { + if x != nil { + return x.FechaEnvio + } + return "" +} + +type UrRollData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UrRollSetDate string `protobuf:"bytes,1,opt,name=ur_roll_set_date,json=urRollSetDate,proto3" json:"ur_roll_set_date,omitempty"` + UrRollSetId string `protobuf:"bytes,2,opt,name=ur_roll_set_id,json=urRollSetId,proto3" json:"ur_roll_set_id,omitempty"` + UrRollSetIdHrolls string `protobuf:"bytes,3,opt,name=ur_roll_set_id_hrolls,json=urRollSetIdHrolls,proto3" json:"ur_roll_set_id_hrolls,omitempty"` + UrHtoRollNumber string `protobuf:"bytes,4,opt,name=ur_hto_roll_number,json=urHtoRollNumber,proto3" json:"ur_hto_roll_number,omitempty"` + UrHboRollNumber string `protobuf:"bytes,5,opt,name=ur_hbo_roll_number,json=urHboRollNumber,proto3" json:"ur_hbo_roll_number,omitempty"` + UrRollInstallPos int64 `protobuf:"varint,6,opt,name=ur_roll_install_pos,json=urRollInstallPos,proto3" json:"ur_roll_install_pos,omitempty"` + UrRollSetType int64 `protobuf:"varint,7,opt,name=ur_roll_set_type,json=urRollSetType,proto3" json:"ur_roll_set_type,omitempty"` + UrTonnageAccum0 float64 `protobuf:"fixed64,8,opt,name=ur_tonnage_accum0,json=urTonnageAccum0,proto3" json:"ur_tonnage_accum0,omitempty"` + UrTonnageAccum1 float64 `protobuf:"fixed64,9,opt,name=ur_tonnage_accum1,json=urTonnageAccum1,proto3" json:"ur_tonnage_accum1,omitempty"` + UrTonnageAccum2 float64 `protobuf:"fixed64,10,opt,name=ur_tonnage_accum2,json=urTonnageAccum2,proto3" json:"ur_tonnage_accum2,omitempty"` + UrTonnageAccum3 float64 `protobuf:"fixed64,11,opt,name=ur_tonnage_accum3,json=urTonnageAccum3,proto3" json:"ur_tonnage_accum3,omitempty"` + UrTonnageAccum4 float64 `protobuf:"fixed64,12,opt,name=ur_tonnage_accum4,json=urTonnageAccum4,proto3" json:"ur_tonnage_accum4,omitempty"` + UrTonnageAccum5 float64 `protobuf:"fixed64,13,opt,name=ur_tonnage_accum5,json=urTonnageAccum5,proto3" json:"ur_tonnage_accum5,omitempty"` + UrTonnageAccum6 float64 `protobuf:"fixed64,14,opt,name=ur_tonnage_accum6,json=urTonnageAccum6,proto3" json:"ur_tonnage_accum6,omitempty"` + UrTonnageAccum7 float64 `protobuf:"fixed64,15,opt,name=ur_tonnage_accum7,json=urTonnageAccum7,proto3" json:"ur_tonnage_accum7,omitempty"` + UrTonnageAccum8 float64 `protobuf:"fixed64,16,opt,name=ur_tonnage_accum8,json=urTonnageAccum8,proto3" json:"ur_tonnage_accum8,omitempty"` + UrTonnageAccum9 float64 `protobuf:"fixed64,17,opt,name=ur_tonnage_accum9,json=urTonnageAccum9,proto3" json:"ur_tonnage_accum9,omitempty"` + UrChangeSleeveLength float64 `protobuf:"fixed64,18,opt,name=ur_change_sleeve_length,json=urChangeSleeveLength,proto3" json:"ur_change_sleeve_length,omitempty"` + UrChangeSleeveDepth float64 `protobuf:"fixed64,19,opt,name=ur_change_sleeve_depth,json=urChangeSleeveDepth,proto3" json:"ur_change_sleeve_depth,omitempty"` + UrRollAssemblyStatus int64 `protobuf:"varint,20,opt,name=ur_roll_assembly_status,json=urRollAssemblyStatus,proto3" json:"ur_roll_assembly_status,omitempty"` + UrNoOfFinSec int64 `protobuf:"varint,21,opt,name=ur_no_of_fin_sec,json=urNoOfFinSec,proto3" json:"ur_no_of_fin_sec,omitempty"` + UrInitSec0 string `protobuf:"bytes,22,opt,name=ur_init_sec0,json=urInitSec0,proto3" json:"ur_init_sec0,omitempty"` + UrInitSec1 string `protobuf:"bytes,23,opt,name=ur_init_sec1,json=urInitSec1,proto3" json:"ur_init_sec1,omitempty"` + UrInitSec2 string `protobuf:"bytes,24,opt,name=ur_init_sec2,json=urInitSec2,proto3" json:"ur_init_sec2,omitempty"` + UrInitSec3 string `protobuf:"bytes,25,opt,name=ur_init_sec3,json=urInitSec3,proto3" json:"ur_init_sec3,omitempty"` + UrInitSec4 string `protobuf:"bytes,26,opt,name=ur_init_sec4,json=urInitSec4,proto3" json:"ur_init_sec4,omitempty"` + UrFinSec0 string `protobuf:"bytes,27,opt,name=ur_fin_sec0,json=urFinSec0,proto3" json:"ur_fin_sec0,omitempty"` + UrFinSec1 string `protobuf:"bytes,28,opt,name=ur_fin_sec1,json=urFinSec1,proto3" json:"ur_fin_sec1,omitempty"` + UrFinSec2 string `protobuf:"bytes,29,opt,name=ur_fin_sec2,json=urFinSec2,proto3" json:"ur_fin_sec2,omitempty"` + UrFinSec3 string `protobuf:"bytes,30,opt,name=ur_fin_sec3,json=urFinSec3,proto3" json:"ur_fin_sec3,omitempty"` + UrFinSec4 string `protobuf:"bytes,31,opt,name=ur_fin_sec4,json=urFinSec4,proto3" json:"ur_fin_sec4,omitempty"` + UrRollMaterialH string `protobuf:"bytes,32,opt,name=ur_roll_material_h,json=urRollMaterialH,proto3" json:"ur_roll_material_h,omitempty"` + UrRollDiamActHbo float64 `protobuf:"fixed64,33,opt,name=ur_roll_diam_act_hbo,json=urRollDiamActHbo,proto3" json:"ur_roll_diam_act_hbo,omitempty"` + UrRollDiamActHtp float64 `protobuf:"fixed64,34,opt,name=ur_roll_diam_act_htp,json=urRollDiamActHtp,proto3" json:"ur_roll_diam_act_htp,omitempty"` + UrHNomgap float64 `protobuf:"fixed64,35,opt,name=ur_h_nomgap,json=urHNomgap,proto3" json:"ur_h_nomgap,omitempty"` + UrActualShimpsHbo float64 `protobuf:"fixed64,36,opt,name=ur_actual_shimps_hbo,json=urActualShimpsHbo,proto3" json:"ur_actual_shimps_hbo,omitempty"` + UrActualShimpsHtp float64 `protobuf:"fixed64,37,opt,name=ur_actual_shimps_htp,json=urActualShimpsHtp,proto3" json:"ur_actual_shimps_htp,omitempty"` + UrRollBarrelWidthHbo float64 `protobuf:"fixed64,38,opt,name=ur_roll_barrel_width_hbo,json=urRollBarrelWidthHbo,proto3" json:"ur_roll_barrel_width_hbo,omitempty"` + UrRollBarrelWidthHtp float64 `protobuf:"fixed64,39,opt,name=ur_roll_barrel_width_htp,json=urRollBarrelWidthHtp,proto3" json:"ur_roll_barrel_width_htp,omitempty"` + UrRollChamWidthHbo float64 `protobuf:"fixed64,40,opt,name=ur_roll_cham_width_hbo,json=urRollChamWidthHbo,proto3" json:"ur_roll_cham_width_hbo,omitempty"` + UrRollChamWidthHtp float64 `protobuf:"fixed64,41,opt,name=ur_roll_cham_width_htp,json=urRollChamWidthHtp,proto3" json:"ur_roll_cham_width_htp,omitempty"` + UrRollAngleHbo float64 `protobuf:"fixed64,42,opt,name=ur_roll_angle_hbo,json=urRollAngleHbo,proto3" json:"ur_roll_angle_hbo,omitempty"` + UrRollAngleHtb float64 `protobuf:"fixed64,43,opt,name=ur_roll_angle_htb,json=urRollAngleHtb,proto3" json:"ur_roll_angle_htb,omitempty"` + UrRollSetIdVrolls string `protobuf:"bytes,44,opt,name=ur_roll_set_id_vrolls,json=urRollSetIdVrolls,proto3" json:"ur_roll_set_id_vrolls,omitempty"` + UrVdsRollNumber string `protobuf:"bytes,45,opt,name=ur_vds_roll_number,json=urVdsRollNumber,proto3" json:"ur_vds_roll_number,omitempty"` + UrVosRollNumber string `protobuf:"bytes,46,opt,name=ur_vos_roll_number,json=urVosRollNumber,proto3" json:"ur_vos_roll_number,omitempty"` + UrRollMaterialV string `protobuf:"bytes,47,opt,name=ur_roll_material_v,json=urRollMaterialV,proto3" json:"ur_roll_material_v,omitempty"` + UrRollDiamActVds float64 `protobuf:"fixed64,48,opt,name=ur_roll_diam_act_vds,json=urRollDiamActVds,proto3" json:"ur_roll_diam_act_vds,omitempty"` + UrRollDiamActVos float64 `protobuf:"fixed64,49,opt,name=ur_roll_diam_act_vos,json=urRollDiamActVos,proto3" json:"ur_roll_diam_act_vos,omitempty"` + UrRollAngleVds float64 `protobuf:"fixed64,50,opt,name=ur_roll_angle_vds,json=urRollAngleVds,proto3" json:"ur_roll_angle_vds,omitempty"` + UrRollAngleVos float64 `protobuf:"fixed64,51,opt,name=ur_roll_angle_vos,json=urRollAngleVos,proto3" json:"ur_roll_angle_vos,omitempty"` + UrPasslineOffset float64 `protobuf:"fixed64,52,opt,name=ur_passline_offset,json=urPasslineOffset,proto3" json:"ur_passline_offset,omitempty"` + UrActualShimpsVds_1 float64 `protobuf:"fixed64,53,opt,name=ur_actual_shimps_vds_1,json=urActualShimpsVds1,proto3" json:"ur_actual_shimps_vds_1,omitempty"` + UrActualShimpsVds_2 float64 `protobuf:"fixed64,54,opt,name=ur_actual_shimps_vds_2,json=urActualShimpsVds2,proto3" json:"ur_actual_shimps_vds_2,omitempty"` + UrActualShimpsVos_1 float64 `protobuf:"fixed64,55,opt,name=ur_actual_shimps_vos_1,json=urActualShimpsVos1,proto3" json:"ur_actual_shimps_vos_1,omitempty"` + UrActualShimpsVos_2 float64 `protobuf:"fixed64,56,opt,name=ur_actual_shimps_vos_2,json=urActualShimpsVos2,proto3" json:"ur_actual_shimps_vos_2,omitempty"` + UrPinVChock float64 `protobuf:"fixed64,57,opt,name=ur_pin_v_chock,json=urPinVChock,proto3" json:"ur_pin_v_chock,omitempty"` + UrRollGrooves int64 `protobuf:"varint,58,opt,name=ur_roll_grooves,json=urRollGrooves,proto3" json:"ur_roll_grooves,omitempty"` + UrRollGrooveWidth0 float64 `protobuf:"fixed64,59,opt,name=ur_roll_groove_width0,json=urRollGrooveWidth0,proto3" json:"ur_roll_groove_width0,omitempty"` + UrRollGrooveWidth1 float64 `protobuf:"fixed64,60,opt,name=ur_roll_groove_width1,json=urRollGrooveWidth1,proto3" json:"ur_roll_groove_width1,omitempty"` + UrRollGrooveWidth2 float64 `protobuf:"fixed64,61,opt,name=ur_roll_groove_width2,json=urRollGrooveWidth2,proto3" json:"ur_roll_groove_width2,omitempty"` + UrRollGrooveWidth3 float64 `protobuf:"fixed64,62,opt,name=ur_roll_groove_width3,json=urRollGrooveWidth3,proto3" json:"ur_roll_groove_width3,omitempty"` + UrRollGrooveWidth4 float64 `protobuf:"fixed64,63,opt,name=ur_roll_groove_width4,json=urRollGrooveWidth4,proto3" json:"ur_roll_groove_width4,omitempty"` + UrRollGrooveWidth5 float64 `protobuf:"fixed64,64,opt,name=ur_roll_groove_width5,json=urRollGrooveWidth5,proto3" json:"ur_roll_groove_width5,omitempty"` + UrRollGrooveWidth6 float64 `protobuf:"fixed64,65,opt,name=ur_roll_groove_width6,json=urRollGrooveWidth6,proto3" json:"ur_roll_groove_width6,omitempty"` + UrRollGrooveWidth7 float64 `protobuf:"fixed64,66,opt,name=ur_roll_groove_width7,json=urRollGrooveWidth7,proto3" json:"ur_roll_groove_width7,omitempty"` + UrRollGrooveWidth8 float64 `protobuf:"fixed64,67,opt,name=ur_roll_groove_width8,json=urRollGrooveWidth8,proto3" json:"ur_roll_groove_width8,omitempty"` + UrRollGrooveWidth9 float64 `protobuf:"fixed64,68,opt,name=ur_roll_groove_width9,json=urRollGrooveWidth9,proto3" json:"ur_roll_groove_width9,omitempty"` + UrRollGrooveStiffnessTop0 float64 `protobuf:"fixed64,69,opt,name=ur_roll_groove_stiffness_top0,json=urRollGrooveStiffnessTop0,proto3" json:"ur_roll_groove_stiffness_top0,omitempty"` + UrRollGrooveStiffnessTop1 float64 `protobuf:"fixed64,70,opt,name=ur_roll_groove_stiffness_top1,json=urRollGrooveStiffnessTop1,proto3" json:"ur_roll_groove_stiffness_top1,omitempty"` + UrRollGrooveStiffnessTop2 float64 `protobuf:"fixed64,71,opt,name=ur_roll_groove_stiffness_top2,json=urRollGrooveStiffnessTop2,proto3" json:"ur_roll_groove_stiffness_top2,omitempty"` + UrRollGrooveStiffnessTop3 float64 `protobuf:"fixed64,72,opt,name=ur_roll_groove_stiffness_top3,json=urRollGrooveStiffnessTop3,proto3" json:"ur_roll_groove_stiffness_top3,omitempty"` + UrRollGrooveStiffnessTop4 float64 `protobuf:"fixed64,73,opt,name=ur_roll_groove_stiffness_top4,json=urRollGrooveStiffnessTop4,proto3" json:"ur_roll_groove_stiffness_top4,omitempty"` + UrRollGrooveStiffnessTop5 float64 `protobuf:"fixed64,74,opt,name=ur_roll_groove_stiffness_top5,json=urRollGrooveStiffnessTop5,proto3" json:"ur_roll_groove_stiffness_top5,omitempty"` + UrRollGrooveStiffnessTop6 float64 `protobuf:"fixed64,75,opt,name=ur_roll_groove_stiffness_top6,json=urRollGrooveStiffnessTop6,proto3" json:"ur_roll_groove_stiffness_top6,omitempty"` + UrRollGrooveStiffnessTop7 float64 `protobuf:"fixed64,76,opt,name=ur_roll_groove_stiffness_top7,json=urRollGrooveStiffnessTop7,proto3" json:"ur_roll_groove_stiffness_top7,omitempty"` + UrRollGrooveStiffnessTop8 float64 `protobuf:"fixed64,77,opt,name=ur_roll_groove_stiffness_top8,json=urRollGrooveStiffnessTop8,proto3" json:"ur_roll_groove_stiffness_top8,omitempty"` + UrRollGrooveStiffnessTop9 float64 `protobuf:"fixed64,78,opt,name=ur_roll_groove_stiffness_top9,json=urRollGrooveStiffnessTop9,proto3" json:"ur_roll_groove_stiffness_top9,omitempty"` + UrRollGrooveStiffnessBot0 float64 `protobuf:"fixed64,79,opt,name=ur_roll_groove_stiffness_bot0,json=urRollGrooveStiffnessBot0,proto3" json:"ur_roll_groove_stiffness_bot0,omitempty"` + UrRollGrooveStiffnessBot1 float64 `protobuf:"fixed64,80,opt,name=ur_roll_groove_stiffness_bot1,json=urRollGrooveStiffnessBot1,proto3" json:"ur_roll_groove_stiffness_bot1,omitempty"` + UrRollGrooveStiffnessBot2 float64 `protobuf:"fixed64,81,opt,name=ur_roll_groove_stiffness_bot2,json=urRollGrooveStiffnessBot2,proto3" json:"ur_roll_groove_stiffness_bot2,omitempty"` + UrRollGrooveStiffnessBot3 float64 `protobuf:"fixed64,82,opt,name=ur_roll_groove_stiffness_bot3,json=urRollGrooveStiffnessBot3,proto3" json:"ur_roll_groove_stiffness_bot3,omitempty"` + UrRollGrooveStiffnessBot4 float64 `protobuf:"fixed64,83,opt,name=ur_roll_groove_stiffness_bot4,json=urRollGrooveStiffnessBot4,proto3" json:"ur_roll_groove_stiffness_bot4,omitempty"` + UrRollGrooveStiffnessBot5 float64 `protobuf:"fixed64,84,opt,name=ur_roll_groove_stiffness_bot5,json=urRollGrooveStiffnessBot5,proto3" json:"ur_roll_groove_stiffness_bot5,omitempty"` + UrRollGrooveStiffnessBot6 float64 `protobuf:"fixed64,85,opt,name=ur_roll_groove_stiffness_bot6,json=urRollGrooveStiffnessBot6,proto3" json:"ur_roll_groove_stiffness_bot6,omitempty"` + UrRollGrooveStiffnessBot7 float64 `protobuf:"fixed64,86,opt,name=ur_roll_groove_stiffness_bot7,json=urRollGrooveStiffnessBot7,proto3" json:"ur_roll_groove_stiffness_bot7,omitempty"` + UrRollGrooveStiffnessBot8 float64 `protobuf:"fixed64,87,opt,name=ur_roll_groove_stiffness_bot8,json=urRollGrooveStiffnessBot8,proto3" json:"ur_roll_groove_stiffness_bot8,omitempty"` + UrRollGrooveStiffnessBot9 float64 `protobuf:"fixed64,88,opt,name=ur_roll_groove_stiffness_bot9,json=urRollGrooveStiffnessBot9,proto3" json:"ur_roll_groove_stiffness_bot9,omitempty"` + UrRollGroovePos0 float64 `protobuf:"fixed64,89,opt,name=ur_roll_groove_pos0,json=urRollGroovePos0,proto3" json:"ur_roll_groove_pos0,omitempty"` + UrRollGroovePos1 float64 `protobuf:"fixed64,90,opt,name=ur_roll_groove_pos1,json=urRollGroovePos1,proto3" json:"ur_roll_groove_pos1,omitempty"` + UrRollGroovePos2 float64 `protobuf:"fixed64,91,opt,name=ur_roll_groove_pos2,json=urRollGroovePos2,proto3" json:"ur_roll_groove_pos2,omitempty"` + UrRollGroovePos3 float64 `protobuf:"fixed64,92,opt,name=ur_roll_groove_pos3,json=urRollGroovePos3,proto3" json:"ur_roll_groove_pos3,omitempty"` + UrRollGroovePos4 float64 `protobuf:"fixed64,93,opt,name=ur_roll_groove_pos4,json=urRollGroovePos4,proto3" json:"ur_roll_groove_pos4,omitempty"` + UrRollGroovePos5 float64 `protobuf:"fixed64,94,opt,name=ur_roll_groove_pos5,json=urRollGroovePos5,proto3" json:"ur_roll_groove_pos5,omitempty"` + UrRollGroovePos6 float64 `protobuf:"fixed64,95,opt,name=ur_roll_groove_pos6,json=urRollGroovePos6,proto3" json:"ur_roll_groove_pos6,omitempty"` + UrRollGroovePos7 float64 `protobuf:"fixed64,96,opt,name=ur_roll_groove_pos7,json=urRollGroovePos7,proto3" json:"ur_roll_groove_pos7,omitempty"` + UrRollGroovePos8 float64 `protobuf:"fixed64,97,opt,name=ur_roll_groove_pos8,json=urRollGroovePos8,proto3" json:"ur_roll_groove_pos8,omitempty"` + UrRollGroovePos9 float64 `protobuf:"fixed64,98,opt,name=ur_roll_groove_pos9,json=urRollGroovePos9,proto3" json:"ur_roll_groove_pos9,omitempty"` + UrRollGrooveSharp0 int64 `protobuf:"varint,99,opt,name=ur_roll_groove_sharp0,json=urRollGrooveSharp0,proto3" json:"ur_roll_groove_sharp0,omitempty"` + UrRollGrooveSharp1 int64 `protobuf:"varint,100,opt,name=ur_roll_groove_sharp1,json=urRollGrooveSharp1,proto3" json:"ur_roll_groove_sharp1,omitempty"` + UrRollGrooveSharp2 int64 `protobuf:"varint,101,opt,name=ur_roll_groove_sharp2,json=urRollGrooveSharp2,proto3" json:"ur_roll_groove_sharp2,omitempty"` + UrRollGrooveSharp3 int64 `protobuf:"varint,102,opt,name=ur_roll_groove_sharp3,json=urRollGrooveSharp3,proto3" json:"ur_roll_groove_sharp3,omitempty"` + UrRollGrooveSharp4 int64 `protobuf:"varint,103,opt,name=ur_roll_groove_sharp4,json=urRollGrooveSharp4,proto3" json:"ur_roll_groove_sharp4,omitempty"` + UrRollGrooveSharp5 int64 `protobuf:"varint,104,opt,name=ur_roll_groove_sharp5,json=urRollGrooveSharp5,proto3" json:"ur_roll_groove_sharp5,omitempty"` + UrRollGrooveSharp6 int64 `protobuf:"varint,105,opt,name=ur_roll_groove_sharp6,json=urRollGrooveSharp6,proto3" json:"ur_roll_groove_sharp6,omitempty"` + UrRollGrooveSharp7 int64 `protobuf:"varint,106,opt,name=ur_roll_groove_sharp7,json=urRollGrooveSharp7,proto3" json:"ur_roll_groove_sharp7,omitempty"` + UrRollGrooveSharp8 int64 `protobuf:"varint,107,opt,name=ur_roll_groove_sharp8,json=urRollGrooveSharp8,proto3" json:"ur_roll_groove_sharp8,omitempty"` + UrRollGrooveSharp9 int64 `protobuf:"varint,108,opt,name=ur_roll_groove_sharp9,json=urRollGrooveSharp9,proto3" json:"ur_roll_groove_sharp9,omitempty"` + UrRollThrustPlate float64 `protobuf:"fixed64,109,opt,name=ur_roll_thrust_plate,json=urRollThrustPlate,proto3" json:"ur_roll_thrust_plate,omitempty"` + UrRollId string `protobuf:"bytes,110,opt,name=ur_roll_id,json=urRollId,proto3" json:"ur_roll_id,omitempty"` + UrDelFlag bool `protobuf:"varint,111,opt,name=ur_del_flag,json=urDelFlag,proto3" json:"ur_del_flag,omitempty"` + UrRollSetIdOld string `protobuf:"bytes,112,opt,name=ur_roll_set_id_old,json=urRollSetIdOld,proto3" json:"ur_roll_set_id_old,omitempty"` + TopShaftUr string `protobuf:"bytes,113,opt,name=top_shaft_ur,json=topShaftUr,proto3" json:"top_shaft_ur,omitempty"` + BotShaftUr string `protobuf:"bytes,114,opt,name=bot_shaft_ur,json=botShaftUr,proto3" json:"bot_shaft_ur,omitempty"` + UrFinSec5 string `protobuf:"bytes,115,opt,name=ur_fin_sec5,json=urFinSec5,proto3" json:"ur_fin_sec5,omitempty"` + UrFinSec6 string `protobuf:"bytes,116,opt,name=ur_fin_sec6,json=urFinSec6,proto3" json:"ur_fin_sec6,omitempty"` + UrFinSec7 string `protobuf:"bytes,117,opt,name=ur_fin_sec7,json=urFinSec7,proto3" json:"ur_fin_sec7,omitempty"` + UrFinSec8 string `protobuf:"bytes,118,opt,name=ur_fin_sec8,json=urFinSec8,proto3" json:"ur_fin_sec8,omitempty"` + UrFinSec9 string `protobuf:"bytes,119,opt,name=ur_fin_sec9,json=urFinSec9,proto3" json:"ur_fin_sec9,omitempty"` + UrFinSec10 string `protobuf:"bytes,120,opt,name=ur_fin_sec10,json=urFinSec10,proto3" json:"ur_fin_sec10,omitempty"` + UrFinSec11 string `protobuf:"bytes,121,opt,name=ur_fin_sec11,json=urFinSec11,proto3" json:"ur_fin_sec11,omitempty"` + UrFinSec12 string `protobuf:"bytes,122,opt,name=ur_fin_sec12,json=urFinSec12,proto3" json:"ur_fin_sec12,omitempty"` + UrFinSec13 string `protobuf:"bytes,123,opt,name=ur_fin_sec13,json=urFinSec13,proto3" json:"ur_fin_sec13,omitempty"` + UrFinSec14 string `protobuf:"bytes,124,opt,name=ur_fin_sec14,json=urFinSec14,proto3" json:"ur_fin_sec14,omitempty"` + UrFinSec15 string `protobuf:"bytes,125,opt,name=ur_fin_sec15,json=urFinSec15,proto3" json:"ur_fin_sec15,omitempty"` + UrFinSec16 string `protobuf:"bytes,126,opt,name=ur_fin_sec16,json=urFinSec16,proto3" json:"ur_fin_sec16,omitempty"` + UrFinSec17 string `protobuf:"bytes,127,opt,name=ur_fin_sec17,json=urFinSec17,proto3" json:"ur_fin_sec17,omitempty"` + UrFinSec18 string `protobuf:"bytes,128,opt,name=ur_fin_sec18,json=urFinSec18,proto3" json:"ur_fin_sec18,omitempty"` + UrFinSec19 string `protobuf:"bytes,129,opt,name=ur_fin_sec19,json=urFinSec19,proto3" json:"ur_fin_sec19,omitempty"` + OldFlag bool `protobuf:"varint,130,opt,name=old_flag,json=oldFlag,proto3" json:"old_flag,omitempty"` + AmpuesaCorta int64 `protobuf:"varint,131,opt,name=ampuesa_corta,json=ampuesaCorta,proto3" json:"ampuesa_corta,omitempty"` + EstadoRegistro bool `protobuf:"varint,132,opt,name=estado_registro,json=estadoRegistro,proto3" json:"estado_registro,omitempty"` + FechaRegistro string `protobuf:"bytes,133,opt,name=fecha_registro,json=fechaRegistro,proto3" json:"fecha_registro,omitempty"` + FechaEnvio string `protobuf:"bytes,134,opt,name=fecha_envio,json=fechaEnvio,proto3" json:"fecha_envio,omitempty"` +} + +func (x *UrRollData) Reset() { + *x = UrRollData{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UrRollData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UrRollData) ProtoMessage() {} + +func (x *UrRollData) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UrRollData.ProtoReflect.Descriptor instead. +func (*UrRollData) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{9} +} + +func (x *UrRollData) GetUrRollSetDate() string { + if x != nil { + return x.UrRollSetDate + } + return "" +} + +func (x *UrRollData) GetUrRollSetId() string { + if x != nil { + return x.UrRollSetId + } + return "" +} + +func (x *UrRollData) GetUrRollSetIdHrolls() string { + if x != nil { + return x.UrRollSetIdHrolls + } + return "" +} + +func (x *UrRollData) GetUrHtoRollNumber() string { + if x != nil { + return x.UrHtoRollNumber + } + return "" +} + +func (x *UrRollData) GetUrHboRollNumber() string { + if x != nil { + return x.UrHboRollNumber + } + return "" +} + +func (x *UrRollData) GetUrRollInstallPos() int64 { + if x != nil { + return x.UrRollInstallPos + } + return 0 +} + +func (x *UrRollData) GetUrRollSetType() int64 { + if x != nil { + return x.UrRollSetType + } + return 0 +} + +func (x *UrRollData) GetUrTonnageAccum0() float64 { + if x != nil { + return x.UrTonnageAccum0 + } + return 0 +} + +func (x *UrRollData) GetUrTonnageAccum1() float64 { + if x != nil { + return x.UrTonnageAccum1 + } + return 0 +} + +func (x *UrRollData) GetUrTonnageAccum2() float64 { + if x != nil { + return x.UrTonnageAccum2 + } + return 0 +} + +func (x *UrRollData) GetUrTonnageAccum3() float64 { + if x != nil { + return x.UrTonnageAccum3 + } + return 0 +} + +func (x *UrRollData) GetUrTonnageAccum4() float64 { + if x != nil { + return x.UrTonnageAccum4 + } + return 0 +} + +func (x *UrRollData) GetUrTonnageAccum5() float64 { + if x != nil { + return x.UrTonnageAccum5 + } + return 0 +} + +func (x *UrRollData) GetUrTonnageAccum6() float64 { + if x != nil { + return x.UrTonnageAccum6 + } + return 0 +} + +func (x *UrRollData) GetUrTonnageAccum7() float64 { + if x != nil { + return x.UrTonnageAccum7 + } + return 0 +} + +func (x *UrRollData) GetUrTonnageAccum8() float64 { + if x != nil { + return x.UrTonnageAccum8 + } + return 0 +} + +func (x *UrRollData) GetUrTonnageAccum9() float64 { + if x != nil { + return x.UrTonnageAccum9 + } + return 0 +} + +func (x *UrRollData) GetUrChangeSleeveLength() float64 { + if x != nil { + return x.UrChangeSleeveLength + } + return 0 +} + +func (x *UrRollData) GetUrChangeSleeveDepth() float64 { + if x != nil { + return x.UrChangeSleeveDepth + } + return 0 +} + +func (x *UrRollData) GetUrRollAssemblyStatus() int64 { + if x != nil { + return x.UrRollAssemblyStatus + } + return 0 +} + +func (x *UrRollData) GetUrNoOfFinSec() int64 { + if x != nil { + return x.UrNoOfFinSec + } + return 0 +} + +func (x *UrRollData) GetUrInitSec0() string { + if x != nil { + return x.UrInitSec0 + } + return "" +} + +func (x *UrRollData) GetUrInitSec1() string { + if x != nil { + return x.UrInitSec1 + } + return "" +} + +func (x *UrRollData) GetUrInitSec2() string { + if x != nil { + return x.UrInitSec2 + } + return "" +} + +func (x *UrRollData) GetUrInitSec3() string { + if x != nil { + return x.UrInitSec3 + } + return "" +} + +func (x *UrRollData) GetUrInitSec4() string { + if x != nil { + return x.UrInitSec4 + } + return "" +} + +func (x *UrRollData) GetUrFinSec0() string { + if x != nil { + return x.UrFinSec0 + } + return "" +} + +func (x *UrRollData) GetUrFinSec1() string { + if x != nil { + return x.UrFinSec1 + } + return "" +} + +func (x *UrRollData) GetUrFinSec2() string { + if x != nil { + return x.UrFinSec2 + } + return "" +} + +func (x *UrRollData) GetUrFinSec3() string { + if x != nil { + return x.UrFinSec3 + } + return "" +} + +func (x *UrRollData) GetUrFinSec4() string { + if x != nil { + return x.UrFinSec4 + } + return "" +} + +func (x *UrRollData) GetUrRollMaterialH() string { + if x != nil { + return x.UrRollMaterialH + } + return "" +} + +func (x *UrRollData) GetUrRollDiamActHbo() float64 { + if x != nil { + return x.UrRollDiamActHbo + } + return 0 +} + +func (x *UrRollData) GetUrRollDiamActHtp() float64 { + if x != nil { + return x.UrRollDiamActHtp + } + return 0 +} + +func (x *UrRollData) GetUrHNomgap() float64 { + if x != nil { + return x.UrHNomgap + } + return 0 +} + +func (x *UrRollData) GetUrActualShimpsHbo() float64 { + if x != nil { + return x.UrActualShimpsHbo + } + return 0 +} + +func (x *UrRollData) GetUrActualShimpsHtp() float64 { + if x != nil { + return x.UrActualShimpsHtp + } + return 0 +} + +func (x *UrRollData) GetUrRollBarrelWidthHbo() float64 { + if x != nil { + return x.UrRollBarrelWidthHbo + } + return 0 +} + +func (x *UrRollData) GetUrRollBarrelWidthHtp() float64 { + if x != nil { + return x.UrRollBarrelWidthHtp + } + return 0 +} + +func (x *UrRollData) GetUrRollChamWidthHbo() float64 { + if x != nil { + return x.UrRollChamWidthHbo + } + return 0 +} + +func (x *UrRollData) GetUrRollChamWidthHtp() float64 { + if x != nil { + return x.UrRollChamWidthHtp + } + return 0 +} + +func (x *UrRollData) GetUrRollAngleHbo() float64 { + if x != nil { + return x.UrRollAngleHbo + } + return 0 +} + +func (x *UrRollData) GetUrRollAngleHtb() float64 { + if x != nil { + return x.UrRollAngleHtb + } + return 0 +} + +func (x *UrRollData) GetUrRollSetIdVrolls() string { + if x != nil { + return x.UrRollSetIdVrolls + } + return "" +} + +func (x *UrRollData) GetUrVdsRollNumber() string { + if x != nil { + return x.UrVdsRollNumber + } + return "" +} + +func (x *UrRollData) GetUrVosRollNumber() string { + if x != nil { + return x.UrVosRollNumber + } + return "" +} + +func (x *UrRollData) GetUrRollMaterialV() string { + if x != nil { + return x.UrRollMaterialV + } + return "" +} + +func (x *UrRollData) GetUrRollDiamActVds() float64 { + if x != nil { + return x.UrRollDiamActVds + } + return 0 +} + +func (x *UrRollData) GetUrRollDiamActVos() float64 { + if x != nil { + return x.UrRollDiamActVos + } + return 0 +} + +func (x *UrRollData) GetUrRollAngleVds() float64 { + if x != nil { + return x.UrRollAngleVds + } + return 0 +} + +func (x *UrRollData) GetUrRollAngleVos() float64 { + if x != nil { + return x.UrRollAngleVos + } + return 0 +} + +func (x *UrRollData) GetUrPasslineOffset() float64 { + if x != nil { + return x.UrPasslineOffset + } + return 0 +} + +func (x *UrRollData) GetUrActualShimpsVds_1() float64 { + if x != nil { + return x.UrActualShimpsVds_1 + } + return 0 +} + +func (x *UrRollData) GetUrActualShimpsVds_2() float64 { + if x != nil { + return x.UrActualShimpsVds_2 + } + return 0 +} + +func (x *UrRollData) GetUrActualShimpsVos_1() float64 { + if x != nil { + return x.UrActualShimpsVos_1 + } + return 0 +} + +func (x *UrRollData) GetUrActualShimpsVos_2() float64 { + if x != nil { + return x.UrActualShimpsVos_2 + } + return 0 +} + +func (x *UrRollData) GetUrPinVChock() float64 { + if x != nil { + return x.UrPinVChock + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooves() int64 { + if x != nil { + return x.UrRollGrooves + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveWidth0() float64 { + if x != nil { + return x.UrRollGrooveWidth0 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveWidth1() float64 { + if x != nil { + return x.UrRollGrooveWidth1 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveWidth2() float64 { + if x != nil { + return x.UrRollGrooveWidth2 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveWidth3() float64 { + if x != nil { + return x.UrRollGrooveWidth3 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveWidth4() float64 { + if x != nil { + return x.UrRollGrooveWidth4 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveWidth5() float64 { + if x != nil { + return x.UrRollGrooveWidth5 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveWidth6() float64 { + if x != nil { + return x.UrRollGrooveWidth6 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveWidth7() float64 { + if x != nil { + return x.UrRollGrooveWidth7 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveWidth8() float64 { + if x != nil { + return x.UrRollGrooveWidth8 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveWidth9() float64 { + if x != nil { + return x.UrRollGrooveWidth9 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessTop0() float64 { + if x != nil { + return x.UrRollGrooveStiffnessTop0 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessTop1() float64 { + if x != nil { + return x.UrRollGrooveStiffnessTop1 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessTop2() float64 { + if x != nil { + return x.UrRollGrooveStiffnessTop2 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessTop3() float64 { + if x != nil { + return x.UrRollGrooveStiffnessTop3 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessTop4() float64 { + if x != nil { + return x.UrRollGrooveStiffnessTop4 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessTop5() float64 { + if x != nil { + return x.UrRollGrooveStiffnessTop5 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessTop6() float64 { + if x != nil { + return x.UrRollGrooveStiffnessTop6 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessTop7() float64 { + if x != nil { + return x.UrRollGrooveStiffnessTop7 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessTop8() float64 { + if x != nil { + return x.UrRollGrooveStiffnessTop8 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessTop9() float64 { + if x != nil { + return x.UrRollGrooveStiffnessTop9 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessBot0() float64 { + if x != nil { + return x.UrRollGrooveStiffnessBot0 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessBot1() float64 { + if x != nil { + return x.UrRollGrooveStiffnessBot1 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessBot2() float64 { + if x != nil { + return x.UrRollGrooveStiffnessBot2 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessBot3() float64 { + if x != nil { + return x.UrRollGrooveStiffnessBot3 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessBot4() float64 { + if x != nil { + return x.UrRollGrooveStiffnessBot4 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessBot5() float64 { + if x != nil { + return x.UrRollGrooveStiffnessBot5 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessBot6() float64 { + if x != nil { + return x.UrRollGrooveStiffnessBot6 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessBot7() float64 { + if x != nil { + return x.UrRollGrooveStiffnessBot7 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessBot8() float64 { + if x != nil { + return x.UrRollGrooveStiffnessBot8 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveStiffnessBot9() float64 { + if x != nil { + return x.UrRollGrooveStiffnessBot9 + } + return 0 +} + +func (x *UrRollData) GetUrRollGroovePos0() float64 { + if x != nil { + return x.UrRollGroovePos0 + } + return 0 +} + +func (x *UrRollData) GetUrRollGroovePos1() float64 { + if x != nil { + return x.UrRollGroovePos1 + } + return 0 +} + +func (x *UrRollData) GetUrRollGroovePos2() float64 { + if x != nil { + return x.UrRollGroovePos2 + } + return 0 +} + +func (x *UrRollData) GetUrRollGroovePos3() float64 { + if x != nil { + return x.UrRollGroovePos3 + } + return 0 +} + +func (x *UrRollData) GetUrRollGroovePos4() float64 { + if x != nil { + return x.UrRollGroovePos4 + } + return 0 +} + +func (x *UrRollData) GetUrRollGroovePos5() float64 { + if x != nil { + return x.UrRollGroovePos5 + } + return 0 +} + +func (x *UrRollData) GetUrRollGroovePos6() float64 { + if x != nil { + return x.UrRollGroovePos6 + } + return 0 +} + +func (x *UrRollData) GetUrRollGroovePos7() float64 { + if x != nil { + return x.UrRollGroovePos7 + } + return 0 +} + +func (x *UrRollData) GetUrRollGroovePos8() float64 { + if x != nil { + return x.UrRollGroovePos8 + } + return 0 +} + +func (x *UrRollData) GetUrRollGroovePos9() float64 { + if x != nil { + return x.UrRollGroovePos9 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveSharp0() int64 { + if x != nil { + return x.UrRollGrooveSharp0 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveSharp1() int64 { + if x != nil { + return x.UrRollGrooveSharp1 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveSharp2() int64 { + if x != nil { + return x.UrRollGrooveSharp2 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveSharp3() int64 { + if x != nil { + return x.UrRollGrooveSharp3 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveSharp4() int64 { + if x != nil { + return x.UrRollGrooveSharp4 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveSharp5() int64 { + if x != nil { + return x.UrRollGrooveSharp5 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveSharp6() int64 { + if x != nil { + return x.UrRollGrooveSharp6 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveSharp7() int64 { + if x != nil { + return x.UrRollGrooveSharp7 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveSharp8() int64 { + if x != nil { + return x.UrRollGrooveSharp8 + } + return 0 +} + +func (x *UrRollData) GetUrRollGrooveSharp9() int64 { + if x != nil { + return x.UrRollGrooveSharp9 + } + return 0 +} + +func (x *UrRollData) GetUrRollThrustPlate() float64 { + if x != nil { + return x.UrRollThrustPlate + } + return 0 +} + +func (x *UrRollData) GetUrRollId() string { + if x != nil { + return x.UrRollId + } + return "" +} + +func (x *UrRollData) GetUrDelFlag() bool { + if x != nil { + return x.UrDelFlag + } + return false +} + +func (x *UrRollData) GetUrRollSetIdOld() string { + if x != nil { + return x.UrRollSetIdOld + } + return "" +} + +func (x *UrRollData) GetTopShaftUr() string { + if x != nil { + return x.TopShaftUr + } + return "" +} + +func (x *UrRollData) GetBotShaftUr() string { + if x != nil { + return x.BotShaftUr + } + return "" +} + +func (x *UrRollData) GetUrFinSec5() string { + if x != nil { + return x.UrFinSec5 + } + return "" +} + +func (x *UrRollData) GetUrFinSec6() string { + if x != nil { + return x.UrFinSec6 + } + return "" +} + +func (x *UrRollData) GetUrFinSec7() string { + if x != nil { + return x.UrFinSec7 + } + return "" +} + +func (x *UrRollData) GetUrFinSec8() string { + if x != nil { + return x.UrFinSec8 + } + return "" +} + +func (x *UrRollData) GetUrFinSec9() string { + if x != nil { + return x.UrFinSec9 + } + return "" +} + +func (x *UrRollData) GetUrFinSec10() string { + if x != nil { + return x.UrFinSec10 + } + return "" +} + +func (x *UrRollData) GetUrFinSec11() string { + if x != nil { + return x.UrFinSec11 + } + return "" +} + +func (x *UrRollData) GetUrFinSec12() string { + if x != nil { + return x.UrFinSec12 + } + return "" +} + +func (x *UrRollData) GetUrFinSec13() string { + if x != nil { + return x.UrFinSec13 + } + return "" +} + +func (x *UrRollData) GetUrFinSec14() string { + if x != nil { + return x.UrFinSec14 + } + return "" +} + +func (x *UrRollData) GetUrFinSec15() string { + if x != nil { + return x.UrFinSec15 + } + return "" +} + +func (x *UrRollData) GetUrFinSec16() string { + if x != nil { + return x.UrFinSec16 + } + return "" +} + +func (x *UrRollData) GetUrFinSec17() string { + if x != nil { + return x.UrFinSec17 + } + return "" +} + +func (x *UrRollData) GetUrFinSec18() string { + if x != nil { + return x.UrFinSec18 + } + return "" +} + +func (x *UrRollData) GetUrFinSec19() string { + if x != nil { + return x.UrFinSec19 + } + return "" +} + +func (x *UrRollData) GetOldFlag() bool { + if x != nil { + return x.OldFlag + } + return false +} + +func (x *UrRollData) GetAmpuesaCorta() int64 { + if x != nil { + return x.AmpuesaCorta + } + return 0 +} + +func (x *UrRollData) GetEstadoRegistro() bool { + if x != nil { + return x.EstadoRegistro + } + return false +} + +func (x *UrRollData) GetFechaRegistro() string { + if x != nil { + return x.FechaRegistro + } + return "" +} + +func (x *UrRollData) GetFechaEnvio() string { + if x != nil { + return x.FechaEnvio + } + return "" +} + +type EdRollData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EdRollSetDate string `protobuf:"bytes,1,opt,name=ed_roll_set_date,json=edRollSetDate,proto3" json:"ed_roll_set_date,omitempty"` + EdRollSetId string `protobuf:"bytes,2,opt,name=ed_roll_set_id,json=edRollSetId,proto3" json:"ed_roll_set_id,omitempty"` + EdTopRollNumber string `protobuf:"bytes,3,opt,name=ed_top_roll_number,json=edTopRollNumber,proto3" json:"ed_top_roll_number,omitempty"` + EdBotRollNumber string `protobuf:"bytes,4,opt,name=ed_bot_roll_number,json=edBotRollNumber,proto3" json:"ed_bot_roll_number,omitempty"` + EdRollMaterial string `protobuf:"bytes,5,opt,name=ed_roll_material,json=edRollMaterial,proto3" json:"ed_roll_material,omitempty"` + EdRollInstallPos int64 `protobuf:"varint,6,opt,name=ed_roll_install_pos,json=edRollInstallPos,proto3" json:"ed_roll_install_pos,omitempty"` + EdRollSetType int64 `protobuf:"varint,7,opt,name=ed_roll_set_type,json=edRollSetType,proto3" json:"ed_roll_set_type,omitempty"` + EdRollDiamNomHtp float64 `protobuf:"fixed64,8,opt,name=ed_roll_diam_nom_htp,json=edRollDiamNomHtp,proto3" json:"ed_roll_diam_nom_htp,omitempty"` + EdRollDiamNomHbo float64 `protobuf:"fixed64,9,opt,name=ed_roll_diam_nom_hbo,json=edRollDiamNomHbo,proto3" json:"ed_roll_diam_nom_hbo,omitempty"` + EdRollNominalGap float64 `protobuf:"fixed64,10,opt,name=ed_roll_nominal_gap,json=edRollNominalGap,proto3" json:"ed_roll_nominal_gap,omitempty"` + EdRollAssemblyStatus int64 `protobuf:"varint,11,opt,name=ed_roll_assembly_status,json=edRollAssemblyStatus,proto3" json:"ed_roll_assembly_status,omitempty"` + EdNoOfFinSec int64 `protobuf:"varint,12,opt,name=ed_no_of_fin_sec,json=edNoOfFinSec,proto3" json:"ed_no_of_fin_sec,omitempty"` + EdInitSec0 string `protobuf:"bytes,13,opt,name=ed_init_sec0,json=edInitSec0,proto3" json:"ed_init_sec0,omitempty"` + EdInitSec1 string `protobuf:"bytes,14,opt,name=ed_init_sec1,json=edInitSec1,proto3" json:"ed_init_sec1,omitempty"` + EdInitSec2 string `protobuf:"bytes,15,opt,name=ed_init_sec2,json=edInitSec2,proto3" json:"ed_init_sec2,omitempty"` + EdInitSec3 string `protobuf:"bytes,16,opt,name=ed_init_sec3,json=edInitSec3,proto3" json:"ed_init_sec3,omitempty"` + EdInitSec4 string `protobuf:"bytes,17,opt,name=ed_init_sec4,json=edInitSec4,proto3" json:"ed_init_sec4,omitempty"` + EdFinSec0 string `protobuf:"bytes,18,opt,name=ed_fin_sec0,json=edFinSec0,proto3" json:"ed_fin_sec0,omitempty"` + EdFinSec1 string `protobuf:"bytes,19,opt,name=ed_fin_sec1,json=edFinSec1,proto3" json:"ed_fin_sec1,omitempty"` + EdFinSec2 string `protobuf:"bytes,20,opt,name=ed_fin_sec2,json=edFinSec2,proto3" json:"ed_fin_sec2,omitempty"` + EdFinSec3 string `protobuf:"bytes,21,opt,name=ed_fin_sec3,json=edFinSec3,proto3" json:"ed_fin_sec3,omitempty"` + EdFinSec4 string `protobuf:"bytes,22,opt,name=ed_fin_sec4,json=edFinSec4,proto3" json:"ed_fin_sec4,omitempty"` + EdRollNoOfGrooves int64 `protobuf:"varint,23,opt,name=ed_roll_no_of_grooves,json=edRollNoOfGrooves,proto3" json:"ed_roll_no_of_grooves,omitempty"` + EdRollGrooveStiffTop0 float64 `protobuf:"fixed64,24,opt,name=ed_roll_groove_stiff_top0,json=edRollGrooveStiffTop0,proto3" json:"ed_roll_groove_stiff_top0,omitempty"` + EdRollGrooveStiffTop1 float64 `protobuf:"fixed64,25,opt,name=ed_roll_groove_stiff_top1,json=edRollGrooveStiffTop1,proto3" json:"ed_roll_groove_stiff_top1,omitempty"` + EdRollGrooveStiffTop2 float64 `protobuf:"fixed64,26,opt,name=ed_roll_groove_stiff_top2,json=edRollGrooveStiffTop2,proto3" json:"ed_roll_groove_stiff_top2,omitempty"` + EdRollGrooveStiffTop3 float64 `protobuf:"fixed64,27,opt,name=ed_roll_groove_stiff_top3,json=edRollGrooveStiffTop3,proto3" json:"ed_roll_groove_stiff_top3,omitempty"` + EdRollGrooveStiffTop4 float64 `protobuf:"fixed64,28,opt,name=ed_roll_groove_stiff_top4,json=edRollGrooveStiffTop4,proto3" json:"ed_roll_groove_stiff_top4,omitempty"` + EdRollGrooveStiffTop5 float64 `protobuf:"fixed64,29,opt,name=ed_roll_groove_stiff_top5,json=edRollGrooveStiffTop5,proto3" json:"ed_roll_groove_stiff_top5,omitempty"` + EdRollGrooveStiffTop6 float64 `protobuf:"fixed64,30,opt,name=ed_roll_groove_stiff_top6,json=edRollGrooveStiffTop6,proto3" json:"ed_roll_groove_stiff_top6,omitempty"` + EdRollGrooveStiffTop7 float64 `protobuf:"fixed64,31,opt,name=ed_roll_groove_stiff_top7,json=edRollGrooveStiffTop7,proto3" json:"ed_roll_groove_stiff_top7,omitempty"` + EdRollGrooveStiffTop8 float64 `protobuf:"fixed64,32,opt,name=ed_roll_groove_stiff_top8,json=edRollGrooveStiffTop8,proto3" json:"ed_roll_groove_stiff_top8,omitempty"` + EdRollGrooveStiffTop9 float64 `protobuf:"fixed64,33,opt,name=ed_roll_groove_stiff_top9,json=edRollGrooveStiffTop9,proto3" json:"ed_roll_groove_stiff_top9,omitempty"` + EdRollGrooveStiffBot0 float64 `protobuf:"fixed64,34,opt,name=ed_roll_groove_stiff_bot0,json=edRollGrooveStiffBot0,proto3" json:"ed_roll_groove_stiff_bot0,omitempty"` + EdRollGrooveStiffBot1 float64 `protobuf:"fixed64,35,opt,name=ed_roll_groove_stiff_bot1,json=edRollGrooveStiffBot1,proto3" json:"ed_roll_groove_stiff_bot1,omitempty"` + EdRollGrooveStiffBot2 float64 `protobuf:"fixed64,36,opt,name=ed_roll_groove_stiff_bot2,json=edRollGrooveStiffBot2,proto3" json:"ed_roll_groove_stiff_bot2,omitempty"` + EdRollGrooveStiffBot3 float64 `protobuf:"fixed64,37,opt,name=ed_roll_groove_stiff_bot3,json=edRollGrooveStiffBot3,proto3" json:"ed_roll_groove_stiff_bot3,omitempty"` + EdRollGrooveStiffBot4 float64 `protobuf:"fixed64,38,opt,name=ed_roll_groove_stiff_bot4,json=edRollGrooveStiffBot4,proto3" json:"ed_roll_groove_stiff_bot4,omitempty"` + EdRollGrooveStiffBot5 float64 `protobuf:"fixed64,39,opt,name=ed_roll_groove_stiff_bot5,json=edRollGrooveStiffBot5,proto3" json:"ed_roll_groove_stiff_bot5,omitempty"` + EdRollGrooveStiffBot6 float64 `protobuf:"fixed64,40,opt,name=ed_roll_groove_stiff_bot6,json=edRollGrooveStiffBot6,proto3" json:"ed_roll_groove_stiff_bot6,omitempty"` + EdRollGrooveStiffBot7 float64 `protobuf:"fixed64,41,opt,name=ed_roll_groove_stiff_bot7,json=edRollGrooveStiffBot7,proto3" json:"ed_roll_groove_stiff_bot7,omitempty"` + EdRollGrooveStiffBot8 float64 `protobuf:"fixed64,42,opt,name=ed_roll_groove_stiff_bot8,json=edRollGrooveStiffBot8,proto3" json:"ed_roll_groove_stiff_bot8,omitempty"` + EdRollGrooveStiffBot9 float64 `protobuf:"fixed64,43,opt,name=ed_roll_groove_stiff_bot9,json=edRollGrooveStiffBot9,proto3" json:"ed_roll_groove_stiff_bot9,omitempty"` + EdRollGroovePos0 float64 `protobuf:"fixed64,44,opt,name=ed_roll_groove_pos0,json=edRollGroovePos0,proto3" json:"ed_roll_groove_pos0,omitempty"` + EdRollGroovePos1 float64 `protobuf:"fixed64,45,opt,name=ed_roll_groove_pos1,json=edRollGroovePos1,proto3" json:"ed_roll_groove_pos1,omitempty"` + EdRollGroovePos2 float64 `protobuf:"fixed64,46,opt,name=ed_roll_groove_pos2,json=edRollGroovePos2,proto3" json:"ed_roll_groove_pos2,omitempty"` + EdRollGroovePos3 float64 `protobuf:"fixed64,47,opt,name=ed_roll_groove_pos3,json=edRollGroovePos3,proto3" json:"ed_roll_groove_pos3,omitempty"` + EdRollGroovePos4 float64 `protobuf:"fixed64,48,opt,name=ed_roll_groove_pos4,json=edRollGroovePos4,proto3" json:"ed_roll_groove_pos4,omitempty"` + EdRollGroovePos5 float64 `protobuf:"fixed64,49,opt,name=ed_roll_groove_pos5,json=edRollGroovePos5,proto3" json:"ed_roll_groove_pos5,omitempty"` + EdRollGroovePos6 float64 `protobuf:"fixed64,50,opt,name=ed_roll_groove_pos6,json=edRollGroovePos6,proto3" json:"ed_roll_groove_pos6,omitempty"` + EdRollGroovePos7 float64 `protobuf:"fixed64,51,opt,name=ed_roll_groove_pos7,json=edRollGroovePos7,proto3" json:"ed_roll_groove_pos7,omitempty"` + EdRollGroovePos8 float64 `protobuf:"fixed64,52,opt,name=ed_roll_groove_pos8,json=edRollGroovePos8,proto3" json:"ed_roll_groove_pos8,omitempty"` + EdRollGroovePos9 float64 `protobuf:"fixed64,53,opt,name=ed_roll_groove_pos9,json=edRollGroovePos9,proto3" json:"ed_roll_groove_pos9,omitempty"` + EdActualShimpsHbo float64 `protobuf:"fixed64,54,opt,name=ed_actual_shimps_hbo,json=edActualShimpsHbo,proto3" json:"ed_actual_shimps_hbo,omitempty"` + EdActualShimpsHtp float64 `protobuf:"fixed64,55,opt,name=ed_actual_shimps_htp,json=edActualShimpsHtp,proto3" json:"ed_actual_shimps_htp,omitempty"` + EdChangeSleeveLength float64 `protobuf:"fixed64,56,opt,name=ed_change_sleeve_length,json=edChangeSleeveLength,proto3" json:"ed_change_sleeve_length,omitempty"` + EdChangeSleeveDepth float64 `protobuf:"fixed64,57,opt,name=ed_change_sleeve_depth,json=edChangeSleeveDepth,proto3" json:"ed_change_sleeve_depth,omitempty"` + EdTonnageAccum0 float64 `protobuf:"fixed64,58,opt,name=ed_tonnage_accum0,json=edTonnageAccum0,proto3" json:"ed_tonnage_accum0,omitempty"` + EdTonnageAccum1 float64 `protobuf:"fixed64,59,opt,name=ed_tonnage_accum1,json=edTonnageAccum1,proto3" json:"ed_tonnage_accum1,omitempty"` + EdTonnageAccum2 float64 `protobuf:"fixed64,60,opt,name=ed_tonnage_accum2,json=edTonnageAccum2,proto3" json:"ed_tonnage_accum2,omitempty"` + EdTonnageAccum3 float64 `protobuf:"fixed64,61,opt,name=ed_tonnage_accum3,json=edTonnageAccum3,proto3" json:"ed_tonnage_accum3,omitempty"` + EdTonnageAccum4 float64 `protobuf:"fixed64,62,opt,name=ed_tonnage_accum4,json=edTonnageAccum4,proto3" json:"ed_tonnage_accum4,omitempty"` + EdTonnageAccum5 float64 `protobuf:"fixed64,63,opt,name=ed_tonnage_accum5,json=edTonnageAccum5,proto3" json:"ed_tonnage_accum5,omitempty"` + EdTonnageAccum6 float64 `protobuf:"fixed64,64,opt,name=ed_tonnage_accum6,json=edTonnageAccum6,proto3" json:"ed_tonnage_accum6,omitempty"` + EdTonnageAccum7 float64 `protobuf:"fixed64,65,opt,name=ed_tonnage_accum7,json=edTonnageAccum7,proto3" json:"ed_tonnage_accum7,omitempty"` + EdTonnageAccum8 float64 `protobuf:"fixed64,66,opt,name=ed_tonnage_accum8,json=edTonnageAccum8,proto3" json:"ed_tonnage_accum8,omitempty"` + EdTonnageAccum9 float64 `protobuf:"fixed64,67,opt,name=ed_tonnage_accum9,json=edTonnageAccum9,proto3" json:"ed_tonnage_accum9,omitempty"` + EdRollFlangeDiamTop0 float64 `protobuf:"fixed64,68,opt,name=ed_roll_flange_diam_top0,json=edRollFlangeDiamTop0,proto3" json:"ed_roll_flange_diam_top0,omitempty"` + EdRollFlangeDiamTop1 float64 `protobuf:"fixed64,69,opt,name=ed_roll_flange_diam_top1,json=edRollFlangeDiamTop1,proto3" json:"ed_roll_flange_diam_top1,omitempty"` + EdRollFlangeDiamTop2 float64 `protobuf:"fixed64,70,opt,name=ed_roll_flange_diam_top2,json=edRollFlangeDiamTop2,proto3" json:"ed_roll_flange_diam_top2,omitempty"` + EdRollFlangeDiamTop3 float64 `protobuf:"fixed64,71,opt,name=ed_roll_flange_diam_top3,json=edRollFlangeDiamTop3,proto3" json:"ed_roll_flange_diam_top3,omitempty"` + EdRollFlangeDiamTop4 float64 `protobuf:"fixed64,72,opt,name=ed_roll_flange_diam_top4,json=edRollFlangeDiamTop4,proto3" json:"ed_roll_flange_diam_top4,omitempty"` + EdRollFlangeDiamTop5 float64 `protobuf:"fixed64,73,opt,name=ed_roll_flange_diam_top5,json=edRollFlangeDiamTop5,proto3" json:"ed_roll_flange_diam_top5,omitempty"` + EdRollFlangeDiamTop6 float64 `protobuf:"fixed64,74,opt,name=ed_roll_flange_diam_top6,json=edRollFlangeDiamTop6,proto3" json:"ed_roll_flange_diam_top6,omitempty"` + EdRollFlangeDiamTop7 float64 `protobuf:"fixed64,75,opt,name=ed_roll_flange_diam_top7,json=edRollFlangeDiamTop7,proto3" json:"ed_roll_flange_diam_top7,omitempty"` + EdRollFlangeDiamTop8 float64 `protobuf:"fixed64,76,opt,name=ed_roll_flange_diam_top8,json=edRollFlangeDiamTop8,proto3" json:"ed_roll_flange_diam_top8,omitempty"` + EdRollFlangeDiamTop9 float64 `protobuf:"fixed64,77,opt,name=ed_roll_flange_diam_top9,json=edRollFlangeDiamTop9,proto3" json:"ed_roll_flange_diam_top9,omitempty"` + EdRollFlangeDiamBot0 float64 `protobuf:"fixed64,78,opt,name=ed_roll_flange_diam_bot0,json=edRollFlangeDiamBot0,proto3" json:"ed_roll_flange_diam_bot0,omitempty"` + EdRollFlangeDiamBot1 float64 `protobuf:"fixed64,79,opt,name=ed_roll_flange_diam_bot1,json=edRollFlangeDiamBot1,proto3" json:"ed_roll_flange_diam_bot1,omitempty"` + EdRollFlangeDiamBot2 float64 `protobuf:"fixed64,80,opt,name=ed_roll_flange_diam_bot2,json=edRollFlangeDiamBot2,proto3" json:"ed_roll_flange_diam_bot2,omitempty"` + EdRollFlangeDiamBot3 float64 `protobuf:"fixed64,81,opt,name=ed_roll_flange_diam_bot3,json=edRollFlangeDiamBot3,proto3" json:"ed_roll_flange_diam_bot3,omitempty"` + EdRollFlangeDiamBot4 float64 `protobuf:"fixed64,82,opt,name=ed_roll_flange_diam_bot4,json=edRollFlangeDiamBot4,proto3" json:"ed_roll_flange_diam_bot4,omitempty"` + EdRollFlangeDiamBot5 float64 `protobuf:"fixed64,83,opt,name=ed_roll_flange_diam_bot5,json=edRollFlangeDiamBot5,proto3" json:"ed_roll_flange_diam_bot5,omitempty"` + EdRollFlangeDiamBot6 float64 `protobuf:"fixed64,84,opt,name=ed_roll_flange_diam_bot6,json=edRollFlangeDiamBot6,proto3" json:"ed_roll_flange_diam_bot6,omitempty"` + EdRollFlangeDiamBot7 float64 `protobuf:"fixed64,85,opt,name=ed_roll_flange_diam_bot7,json=edRollFlangeDiamBot7,proto3" json:"ed_roll_flange_diam_bot7,omitempty"` + EdRollFlangeDiamBot8 float64 `protobuf:"fixed64,86,opt,name=ed_roll_flange_diam_bot8,json=edRollFlangeDiamBot8,proto3" json:"ed_roll_flange_diam_bot8,omitempty"` + EdRollFlangeDiamBot9 float64 `protobuf:"fixed64,87,opt,name=ed_roll_flange_diam_bot9,json=edRollFlangeDiamBot9,proto3" json:"ed_roll_flange_diam_bot9,omitempty"` + EdRollWebDiamTop0 float64 `protobuf:"fixed64,88,opt,name=ed_roll_web_diam_top0,json=edRollWebDiamTop0,proto3" json:"ed_roll_web_diam_top0,omitempty"` + EdRollWebDiamTop1 float64 `protobuf:"fixed64,89,opt,name=ed_roll_web_diam_top1,json=edRollWebDiamTop1,proto3" json:"ed_roll_web_diam_top1,omitempty"` + EdRollWebDiamTop2 float64 `protobuf:"fixed64,90,opt,name=ed_roll_web_diam_top2,json=edRollWebDiamTop2,proto3" json:"ed_roll_web_diam_top2,omitempty"` + EdRollWebDiamTop3 float64 `protobuf:"fixed64,91,opt,name=ed_roll_web_diam_top3,json=edRollWebDiamTop3,proto3" json:"ed_roll_web_diam_top3,omitempty"` + EdRollWebDiamTop4 float64 `protobuf:"fixed64,92,opt,name=ed_roll_web_diam_top4,json=edRollWebDiamTop4,proto3" json:"ed_roll_web_diam_top4,omitempty"` + EdRollWebDiamTop5 float64 `protobuf:"fixed64,93,opt,name=ed_roll_web_diam_top5,json=edRollWebDiamTop5,proto3" json:"ed_roll_web_diam_top5,omitempty"` + EdRollWebDiamTop6 float64 `protobuf:"fixed64,94,opt,name=ed_roll_web_diam_top6,json=edRollWebDiamTop6,proto3" json:"ed_roll_web_diam_top6,omitempty"` + EdRollWebDiamTop7 float64 `protobuf:"fixed64,95,opt,name=ed_roll_web_diam_top7,json=edRollWebDiamTop7,proto3" json:"ed_roll_web_diam_top7,omitempty"` + EdRollWebDiamTop8 float64 `protobuf:"fixed64,96,opt,name=ed_roll_web_diam_top8,json=edRollWebDiamTop8,proto3" json:"ed_roll_web_diam_top8,omitempty"` + EdRollWebDiamTop9 float64 `protobuf:"fixed64,97,opt,name=ed_roll_web_diam_top9,json=edRollWebDiamTop9,proto3" json:"ed_roll_web_diam_top9,omitempty"` + EdRollWebDiamBot0 float64 `protobuf:"fixed64,98,opt,name=ed_roll_web_diam_bot0,json=edRollWebDiamBot0,proto3" json:"ed_roll_web_diam_bot0,omitempty"` + EdRollWebDiamBot1 float64 `protobuf:"fixed64,99,opt,name=ed_roll_web_diam_bot1,json=edRollWebDiamBot1,proto3" json:"ed_roll_web_diam_bot1,omitempty"` + EdRollWebDiamBot2 float64 `protobuf:"fixed64,100,opt,name=ed_roll_web_diam_bot2,json=edRollWebDiamBot2,proto3" json:"ed_roll_web_diam_bot2,omitempty"` + EdRollWebDiamBot3 float64 `protobuf:"fixed64,101,opt,name=ed_roll_web_diam_bot3,json=edRollWebDiamBot3,proto3" json:"ed_roll_web_diam_bot3,omitempty"` + EdRollWebDiamBot4 float64 `protobuf:"fixed64,102,opt,name=ed_roll_web_diam_bot4,json=edRollWebDiamBot4,proto3" json:"ed_roll_web_diam_bot4,omitempty"` + EdRollWebDiamBot5 float64 `protobuf:"fixed64,103,opt,name=ed_roll_web_diam_bot5,json=edRollWebDiamBot5,proto3" json:"ed_roll_web_diam_bot5,omitempty"` + EdRollWebDiamBot6 float64 `protobuf:"fixed64,104,opt,name=ed_roll_web_diam_bot6,json=edRollWebDiamBot6,proto3" json:"ed_roll_web_diam_bot6,omitempty"` + EdRollWebDiamBot7 float64 `protobuf:"fixed64,105,opt,name=ed_roll_web_diam_bot7,json=edRollWebDiamBot7,proto3" json:"ed_roll_web_diam_bot7,omitempty"` + EdRollWebDiamBot8 float64 `protobuf:"fixed64,106,opt,name=ed_roll_web_diam_bot8,json=edRollWebDiamBot8,proto3" json:"ed_roll_web_diam_bot8,omitempty"` + EdRollWebDiamBot9 float64 `protobuf:"fixed64,107,opt,name=ed_roll_web_diam_bot9,json=edRollWebDiamBot9,proto3" json:"ed_roll_web_diam_bot9,omitempty"` + EdRollChamWidthTop0 float64 `protobuf:"fixed64,108,opt,name=ed_roll_cham_width_top0,json=edRollChamWidthTop0,proto3" json:"ed_roll_cham_width_top0,omitempty"` + EdRollChamWidthTop1 float64 `protobuf:"fixed64,109,opt,name=ed_roll_cham_width_top1,json=edRollChamWidthTop1,proto3" json:"ed_roll_cham_width_top1,omitempty"` + EdRollChamWidthTop2 float64 `protobuf:"fixed64,110,opt,name=ed_roll_cham_width_top2,json=edRollChamWidthTop2,proto3" json:"ed_roll_cham_width_top2,omitempty"` + EdRollChamWidthTop3 float64 `protobuf:"fixed64,111,opt,name=ed_roll_cham_width_top3,json=edRollChamWidthTop3,proto3" json:"ed_roll_cham_width_top3,omitempty"` + EdRollChamWidthTop4 float64 `protobuf:"fixed64,112,opt,name=ed_roll_cham_width_top4,json=edRollChamWidthTop4,proto3" json:"ed_roll_cham_width_top4,omitempty"` + EdRollChamWidthTop5 float64 `protobuf:"fixed64,113,opt,name=ed_roll_cham_width_top5,json=edRollChamWidthTop5,proto3" json:"ed_roll_cham_width_top5,omitempty"` + EdRollChamWidthTop6 float64 `protobuf:"fixed64,114,opt,name=ed_roll_cham_width_top6,json=edRollChamWidthTop6,proto3" json:"ed_roll_cham_width_top6,omitempty"` + EdRollChamWidthTop7 float64 `protobuf:"fixed64,115,opt,name=ed_roll_cham_width_top7,json=edRollChamWidthTop7,proto3" json:"ed_roll_cham_width_top7,omitempty"` + EdRollChamWidthTop8 float64 `protobuf:"fixed64,116,opt,name=ed_roll_cham_width_top8,json=edRollChamWidthTop8,proto3" json:"ed_roll_cham_width_top8,omitempty"` + EdRollChamWidthTop9 float64 `protobuf:"fixed64,117,opt,name=ed_roll_cham_width_top9,json=edRollChamWidthTop9,proto3" json:"ed_roll_cham_width_top9,omitempty"` + EdRollChamWidthBot0 float64 `protobuf:"fixed64,118,opt,name=ed_roll_cham_width_bot0,json=edRollChamWidthBot0,proto3" json:"ed_roll_cham_width_bot0,omitempty"` + EdRollChamWidthBot1 float64 `protobuf:"fixed64,119,opt,name=ed_roll_cham_width_bot1,json=edRollChamWidthBot1,proto3" json:"ed_roll_cham_width_bot1,omitempty"` + EdRollChamWidthBot2 float64 `protobuf:"fixed64,120,opt,name=ed_roll_cham_width_bot2,json=edRollChamWidthBot2,proto3" json:"ed_roll_cham_width_bot2,omitempty"` + EdRollChamWidthBot3 float64 `protobuf:"fixed64,121,opt,name=ed_roll_cham_width_bot3,json=edRollChamWidthBot3,proto3" json:"ed_roll_cham_width_bot3,omitempty"` + EdRollChamWidthBot4 float64 `protobuf:"fixed64,122,opt,name=ed_roll_cham_width_bot4,json=edRollChamWidthBot4,proto3" json:"ed_roll_cham_width_bot4,omitempty"` + EdRollChamWidthBot5 float64 `protobuf:"fixed64,123,opt,name=ed_roll_cham_width_bot5,json=edRollChamWidthBot5,proto3" json:"ed_roll_cham_width_bot5,omitempty"` + EdRollChamWidthBot6 float64 `protobuf:"fixed64,124,opt,name=ed_roll_cham_width_bot6,json=edRollChamWidthBot6,proto3" json:"ed_roll_cham_width_bot6,omitempty"` + EdRollChamWidthBot7 float64 `protobuf:"fixed64,125,opt,name=ed_roll_cham_width_bot7,json=edRollChamWidthBot7,proto3" json:"ed_roll_cham_width_bot7,omitempty"` + EdRollChamWidthBot8 float64 `protobuf:"fixed64,126,opt,name=ed_roll_cham_width_bot8,json=edRollChamWidthBot8,proto3" json:"ed_roll_cham_width_bot8,omitempty"` + EdRollChamWidthBot9 float64 `protobuf:"fixed64,127,opt,name=ed_roll_cham_width_bot9,json=edRollChamWidthBot9,proto3" json:"ed_roll_cham_width_bot9,omitempty"` + EdRollAngleFlangeFace0 float64 `protobuf:"fixed64,128,opt,name=ed_roll_angle_flange_face0,json=edRollAngleFlangeFace0,proto3" json:"ed_roll_angle_flange_face0,omitempty"` + EdRollAngleFlangeFace1 float64 `protobuf:"fixed64,129,opt,name=ed_roll_angle_flange_face1,json=edRollAngleFlangeFace1,proto3" json:"ed_roll_angle_flange_face1,omitempty"` + EdRollAngleFlangeFace2 float64 `protobuf:"fixed64,130,opt,name=ed_roll_angle_flange_face2,json=edRollAngleFlangeFace2,proto3" json:"ed_roll_angle_flange_face2,omitempty"` + EdRollAngleFlangeFace3 float64 `protobuf:"fixed64,131,opt,name=ed_roll_angle_flange_face3,json=edRollAngleFlangeFace3,proto3" json:"ed_roll_angle_flange_face3,omitempty"` + EdRollAngleFlangeFace4 float64 `protobuf:"fixed64,132,opt,name=ed_roll_angle_flange_face4,json=edRollAngleFlangeFace4,proto3" json:"ed_roll_angle_flange_face4,omitempty"` + EdRollAngleFlangeFace5 float64 `protobuf:"fixed64,133,opt,name=ed_roll_angle_flange_face5,json=edRollAngleFlangeFace5,proto3" json:"ed_roll_angle_flange_face5,omitempty"` + EdRollAngleFlangeFace6 float64 `protobuf:"fixed64,134,opt,name=ed_roll_angle_flange_face6,json=edRollAngleFlangeFace6,proto3" json:"ed_roll_angle_flange_face6,omitempty"` + EdRollAngleFlangeFace7 float64 `protobuf:"fixed64,135,opt,name=ed_roll_angle_flange_face7,json=edRollAngleFlangeFace7,proto3" json:"ed_roll_angle_flange_face7,omitempty"` + EdRollAngleFlangeFace8 float64 `protobuf:"fixed64,136,opt,name=ed_roll_angle_flange_face8,json=edRollAngleFlangeFace8,proto3" json:"ed_roll_angle_flange_face8,omitempty"` + EdRollAngleFlangeFace9 float64 `protobuf:"fixed64,137,opt,name=ed_roll_angle_flange_face9,json=edRollAngleFlangeFace9,proto3" json:"ed_roll_angle_flange_face9,omitempty"` + EdRollRootRadius0 float64 `protobuf:"fixed64,138,opt,name=ed_roll_root_radius0,json=edRollRootRadius0,proto3" json:"ed_roll_root_radius0,omitempty"` + EdRollRootRadius1 float64 `protobuf:"fixed64,139,opt,name=ed_roll_root_radius1,json=edRollRootRadius1,proto3" json:"ed_roll_root_radius1,omitempty"` + EdRollRootRadius2 float64 `protobuf:"fixed64,140,opt,name=ed_roll_root_radius2,json=edRollRootRadius2,proto3" json:"ed_roll_root_radius2,omitempty"` + EdRollRootRadius3 float64 `protobuf:"fixed64,141,opt,name=ed_roll_root_radius3,json=edRollRootRadius3,proto3" json:"ed_roll_root_radius3,omitempty"` + EdRollRootRadius4 float64 `protobuf:"fixed64,142,opt,name=ed_roll_root_radius4,json=edRollRootRadius4,proto3" json:"ed_roll_root_radius4,omitempty"` + EdRollRootRadius5 float64 `protobuf:"fixed64,143,opt,name=ed_roll_root_radius5,json=edRollRootRadius5,proto3" json:"ed_roll_root_radius5,omitempty"` + EdRollRootRadius6 float64 `protobuf:"fixed64,144,opt,name=ed_roll_root_radius6,json=edRollRootRadius6,proto3" json:"ed_roll_root_radius6,omitempty"` + EdRollRootRadius7 float64 `protobuf:"fixed64,145,opt,name=ed_roll_root_radius7,json=edRollRootRadius7,proto3" json:"ed_roll_root_radius7,omitempty"` + EdRollRootRadius8 float64 `protobuf:"fixed64,146,opt,name=ed_roll_root_radius8,json=edRollRootRadius8,proto3" json:"ed_roll_root_radius8,omitempty"` + EdRollRootRadius9 float64 `protobuf:"fixed64,147,opt,name=ed_roll_root_radius9,json=edRollRootRadius9,proto3" json:"ed_roll_root_radius9,omitempty"` + EdPasslineOffset float64 `protobuf:"fixed64,148,opt,name=ed_passline_offset,json=edPasslineOffset,proto3" json:"ed_passline_offset,omitempty"` + EdDRollGrooveSharp0 int64 `protobuf:"varint,149,opt,name=ed_d_roll_groove_sharp0,json=edDRollGrooveSharp0,proto3" json:"ed_d_roll_groove_sharp0,omitempty"` + EdDRollGrooveSharp1 int64 `protobuf:"varint,150,opt,name=ed_d_roll_groove_sharp1,json=edDRollGrooveSharp1,proto3" json:"ed_d_roll_groove_sharp1,omitempty"` + EdDRollGrooveSharp2 int64 `protobuf:"varint,151,opt,name=ed_d_roll_groove_sharp2,json=edDRollGrooveSharp2,proto3" json:"ed_d_roll_groove_sharp2,omitempty"` + EdDRollGrooveSharp3 int64 `protobuf:"varint,152,opt,name=ed_d_roll_groove_sharp3,json=edDRollGrooveSharp3,proto3" json:"ed_d_roll_groove_sharp3,omitempty"` + EdDRollGrooveSharp4 int64 `protobuf:"varint,153,opt,name=ed_d_roll_groove_sharp4,json=edDRollGrooveSharp4,proto3" json:"ed_d_roll_groove_sharp4,omitempty"` + EdDRollGrooveSharp5 int64 `protobuf:"varint,154,opt,name=ed_d_roll_groove_sharp5,json=edDRollGrooveSharp5,proto3" json:"ed_d_roll_groove_sharp5,omitempty"` + EdDRollGrooveSharp6 int64 `protobuf:"varint,155,opt,name=ed_d_roll_groove_sharp6,json=edDRollGrooveSharp6,proto3" json:"ed_d_roll_groove_sharp6,omitempty"` + EdDRollGrooveSharp7 int64 `protobuf:"varint,156,opt,name=ed_d_roll_groove_sharp7,json=edDRollGrooveSharp7,proto3" json:"ed_d_roll_groove_sharp7,omitempty"` + EdDRollGrooveSharp8 int64 `protobuf:"varint,157,opt,name=ed_d_roll_groove_sharp8,json=edDRollGrooveSharp8,proto3" json:"ed_d_roll_groove_sharp8,omitempty"` + EdDRollGrooveSharp9 int64 `protobuf:"varint,158,opt,name=ed_d_roll_groove_sharp9,json=edDRollGrooveSharp9,proto3" json:"ed_d_roll_groove_sharp9,omitempty"` + EdDRollGrooveWidth0 float64 `protobuf:"fixed64,159,opt,name=ed_d_roll_groove_width0,json=edDRollGrooveWidth0,proto3" json:"ed_d_roll_groove_width0,omitempty"` + EdDRollGrooveWidth1 float64 `protobuf:"fixed64,160,opt,name=ed_d_roll_groove_width1,json=edDRollGrooveWidth1,proto3" json:"ed_d_roll_groove_width1,omitempty"` + EdDRollGrooveWidth2 float64 `protobuf:"fixed64,161,opt,name=ed_d_roll_groove_width2,json=edDRollGrooveWidth2,proto3" json:"ed_d_roll_groove_width2,omitempty"` + EdDRollGrooveWidth3 float64 `protobuf:"fixed64,162,opt,name=ed_d_roll_groove_width3,json=edDRollGrooveWidth3,proto3" json:"ed_d_roll_groove_width3,omitempty"` + EdDRollGrooveWidth4 float64 `protobuf:"fixed64,163,opt,name=ed_d_roll_groove_width4,json=edDRollGrooveWidth4,proto3" json:"ed_d_roll_groove_width4,omitempty"` + EdDRollGrooveWidth5 float64 `protobuf:"fixed64,164,opt,name=ed_d_roll_groove_width5,json=edDRollGrooveWidth5,proto3" json:"ed_d_roll_groove_width5,omitempty"` + EdDRollGrooveWidth6 float64 `protobuf:"fixed64,165,opt,name=ed_d_roll_groove_width6,json=edDRollGrooveWidth6,proto3" json:"ed_d_roll_groove_width6,omitempty"` + EdDRollGrooveWidth7 float64 `protobuf:"fixed64,166,opt,name=ed_d_roll_groove_width7,json=edDRollGrooveWidth7,proto3" json:"ed_d_roll_groove_width7,omitempty"` + EdDRollGrooveWidth8 float64 `protobuf:"fixed64,167,opt,name=ed_d_roll_groove_width8,json=edDRollGrooveWidth8,proto3" json:"ed_d_roll_groove_width8,omitempty"` + EdDRollGrooveWidth9 float64 `protobuf:"fixed64,168,opt,name=ed_d_roll_groove_width9,json=edDRollGrooveWidth9,proto3" json:"ed_d_roll_groove_width9,omitempty"` + EdRollId string `protobuf:"bytes,169,opt,name=ed_roll_id,json=edRollId,proto3" json:"ed_roll_id,omitempty"` + EdDelFlag bool `protobuf:"varint,170,opt,name=ed_del_flag,json=edDelFlag,proto3" json:"ed_del_flag,omitempty"` + EdRollSetIdOld string `protobuf:"bytes,171,opt,name=ed_roll_set_id_old,json=edRollSetIdOld,proto3" json:"ed_roll_set_id_old,omitempty"` + EdFinSec5 string `protobuf:"bytes,172,opt,name=ed_fin_sec5,json=edFinSec5,proto3" json:"ed_fin_sec5,omitempty"` + EdFinSec6 string `protobuf:"bytes,173,opt,name=ed_fin_sec6,json=edFinSec6,proto3" json:"ed_fin_sec6,omitempty"` + EdFinSec7 string `protobuf:"bytes,174,opt,name=ed_fin_sec7,json=edFinSec7,proto3" json:"ed_fin_sec7,omitempty"` + EdFinSec8 string `protobuf:"bytes,175,opt,name=ed_fin_sec8,json=edFinSec8,proto3" json:"ed_fin_sec8,omitempty"` + EdFinSec9 string `protobuf:"bytes,176,opt,name=ed_fin_sec9,json=edFinSec9,proto3" json:"ed_fin_sec9,omitempty"` + EdFinSec10 string `protobuf:"bytes,177,opt,name=ed_fin_sec10,json=edFinSec10,proto3" json:"ed_fin_sec10,omitempty"` + EdFinSec11 string `protobuf:"bytes,178,opt,name=ed_fin_sec11,json=edFinSec11,proto3" json:"ed_fin_sec11,omitempty"` + EdFinSec12 string `protobuf:"bytes,179,opt,name=ed_fin_sec12,json=edFinSec12,proto3" json:"ed_fin_sec12,omitempty"` + EdFinSec13 string `protobuf:"bytes,180,opt,name=ed_fin_sec13,json=edFinSec13,proto3" json:"ed_fin_sec13,omitempty"` + EdFinSec14 string `protobuf:"bytes,181,opt,name=ed_fin_sec14,json=edFinSec14,proto3" json:"ed_fin_sec14,omitempty"` + EdFinSec15 string `protobuf:"bytes,182,opt,name=ed_fin_sec15,json=edFinSec15,proto3" json:"ed_fin_sec15,omitempty"` + EdFinSec16 string `protobuf:"bytes,183,opt,name=ed_fin_sec16,json=edFinSec16,proto3" json:"ed_fin_sec16,omitempty"` + EdFinSec17 string `protobuf:"bytes,184,opt,name=ed_fin_sec17,json=edFinSec17,proto3" json:"ed_fin_sec17,omitempty"` + EdFinSec18 string `protobuf:"bytes,185,opt,name=ed_fin_sec18,json=edFinSec18,proto3" json:"ed_fin_sec18,omitempty"` + EdFinSec19 string `protobuf:"bytes,186,opt,name=ed_fin_sec19,json=edFinSec19,proto3" json:"ed_fin_sec19,omitempty"` + OldFlag bool `protobuf:"varint,187,opt,name=old_flag,json=oldFlag,proto3" json:"old_flag,omitempty"` + EstadoRegistro bool `protobuf:"varint,188,opt,name=estado_registro,json=estadoRegistro,proto3" json:"estado_registro,omitempty"` + FechaRegistro string `protobuf:"bytes,189,opt,name=fecha_registro,json=fechaRegistro,proto3" json:"fecha_registro,omitempty"` + FechaEnvio string `protobuf:"bytes,190,opt,name=fecha_envio,json=fechaEnvio,proto3" json:"fecha_envio,omitempty"` +} + +func (x *EdRollData) Reset() { + *x = EdRollData{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *EdRollData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*EdRollData) ProtoMessage() {} + +func (x *EdRollData) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use EdRollData.ProtoReflect.Descriptor instead. +func (*EdRollData) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{10} +} + +func (x *EdRollData) GetEdRollSetDate() string { + if x != nil { + return x.EdRollSetDate + } + return "" +} + +func (x *EdRollData) GetEdRollSetId() string { + if x != nil { + return x.EdRollSetId + } + return "" +} + +func (x *EdRollData) GetEdTopRollNumber() string { + if x != nil { + return x.EdTopRollNumber + } + return "" +} + +func (x *EdRollData) GetEdBotRollNumber() string { + if x != nil { + return x.EdBotRollNumber + } + return "" +} + +func (x *EdRollData) GetEdRollMaterial() string { + if x != nil { + return x.EdRollMaterial + } + return "" +} + +func (x *EdRollData) GetEdRollInstallPos() int64 { + if x != nil { + return x.EdRollInstallPos + } + return 0 +} + +func (x *EdRollData) GetEdRollSetType() int64 { + if x != nil { + return x.EdRollSetType + } + return 0 +} + +func (x *EdRollData) GetEdRollDiamNomHtp() float64 { + if x != nil { + return x.EdRollDiamNomHtp + } + return 0 +} + +func (x *EdRollData) GetEdRollDiamNomHbo() float64 { + if x != nil { + return x.EdRollDiamNomHbo + } + return 0 +} + +func (x *EdRollData) GetEdRollNominalGap() float64 { + if x != nil { + return x.EdRollNominalGap + } + return 0 +} + +func (x *EdRollData) GetEdRollAssemblyStatus() int64 { + if x != nil { + return x.EdRollAssemblyStatus + } + return 0 +} + +func (x *EdRollData) GetEdNoOfFinSec() int64 { + if x != nil { + return x.EdNoOfFinSec + } + return 0 +} + +func (x *EdRollData) GetEdInitSec0() string { + if x != nil { + return x.EdInitSec0 + } + return "" +} + +func (x *EdRollData) GetEdInitSec1() string { + if x != nil { + return x.EdInitSec1 + } + return "" +} + +func (x *EdRollData) GetEdInitSec2() string { + if x != nil { + return x.EdInitSec2 + } + return "" +} + +func (x *EdRollData) GetEdInitSec3() string { + if x != nil { + return x.EdInitSec3 + } + return "" +} + +func (x *EdRollData) GetEdInitSec4() string { + if x != nil { + return x.EdInitSec4 + } + return "" +} + +func (x *EdRollData) GetEdFinSec0() string { + if x != nil { + return x.EdFinSec0 + } + return "" +} + +func (x *EdRollData) GetEdFinSec1() string { + if x != nil { + return x.EdFinSec1 + } + return "" +} + +func (x *EdRollData) GetEdFinSec2() string { + if x != nil { + return x.EdFinSec2 + } + return "" +} + +func (x *EdRollData) GetEdFinSec3() string { + if x != nil { + return x.EdFinSec3 + } + return "" +} + +func (x *EdRollData) GetEdFinSec4() string { + if x != nil { + return x.EdFinSec4 + } + return "" +} + +func (x *EdRollData) GetEdRollNoOfGrooves() int64 { + if x != nil { + return x.EdRollNoOfGrooves + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffTop0() float64 { + if x != nil { + return x.EdRollGrooveStiffTop0 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffTop1() float64 { + if x != nil { + return x.EdRollGrooveStiffTop1 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffTop2() float64 { + if x != nil { + return x.EdRollGrooveStiffTop2 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffTop3() float64 { + if x != nil { + return x.EdRollGrooveStiffTop3 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffTop4() float64 { + if x != nil { + return x.EdRollGrooveStiffTop4 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffTop5() float64 { + if x != nil { + return x.EdRollGrooveStiffTop5 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffTop6() float64 { + if x != nil { + return x.EdRollGrooveStiffTop6 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffTop7() float64 { + if x != nil { + return x.EdRollGrooveStiffTop7 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffTop8() float64 { + if x != nil { + return x.EdRollGrooveStiffTop8 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffTop9() float64 { + if x != nil { + return x.EdRollGrooveStiffTop9 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffBot0() float64 { + if x != nil { + return x.EdRollGrooveStiffBot0 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffBot1() float64 { + if x != nil { + return x.EdRollGrooveStiffBot1 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffBot2() float64 { + if x != nil { + return x.EdRollGrooveStiffBot2 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffBot3() float64 { + if x != nil { + return x.EdRollGrooveStiffBot3 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffBot4() float64 { + if x != nil { + return x.EdRollGrooveStiffBot4 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffBot5() float64 { + if x != nil { + return x.EdRollGrooveStiffBot5 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffBot6() float64 { + if x != nil { + return x.EdRollGrooveStiffBot6 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffBot7() float64 { + if x != nil { + return x.EdRollGrooveStiffBot7 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffBot8() float64 { + if x != nil { + return x.EdRollGrooveStiffBot8 + } + return 0 +} + +func (x *EdRollData) GetEdRollGrooveStiffBot9() float64 { + if x != nil { + return x.EdRollGrooveStiffBot9 + } + return 0 +} + +func (x *EdRollData) GetEdRollGroovePos0() float64 { + if x != nil { + return x.EdRollGroovePos0 + } + return 0 +} + +func (x *EdRollData) GetEdRollGroovePos1() float64 { + if x != nil { + return x.EdRollGroovePos1 + } + return 0 +} + +func (x *EdRollData) GetEdRollGroovePos2() float64 { + if x != nil { + return x.EdRollGroovePos2 + } + return 0 +} + +func (x *EdRollData) GetEdRollGroovePos3() float64 { + if x != nil { + return x.EdRollGroovePos3 + } + return 0 +} + +func (x *EdRollData) GetEdRollGroovePos4() float64 { + if x != nil { + return x.EdRollGroovePos4 + } + return 0 +} + +func (x *EdRollData) GetEdRollGroovePos5() float64 { + if x != nil { + return x.EdRollGroovePos5 + } + return 0 +} + +func (x *EdRollData) GetEdRollGroovePos6() float64 { + if x != nil { + return x.EdRollGroovePos6 + } + return 0 +} + +func (x *EdRollData) GetEdRollGroovePos7() float64 { + if x != nil { + return x.EdRollGroovePos7 + } + return 0 +} + +func (x *EdRollData) GetEdRollGroovePos8() float64 { + if x != nil { + return x.EdRollGroovePos8 + } + return 0 +} + +func (x *EdRollData) GetEdRollGroovePos9() float64 { + if x != nil { + return x.EdRollGroovePos9 + } + return 0 +} + +func (x *EdRollData) GetEdActualShimpsHbo() float64 { + if x != nil { + return x.EdActualShimpsHbo + } + return 0 +} + +func (x *EdRollData) GetEdActualShimpsHtp() float64 { + if x != nil { + return x.EdActualShimpsHtp + } + return 0 +} + +func (x *EdRollData) GetEdChangeSleeveLength() float64 { + if x != nil { + return x.EdChangeSleeveLength + } + return 0 +} + +func (x *EdRollData) GetEdChangeSleeveDepth() float64 { + if x != nil { + return x.EdChangeSleeveDepth + } + return 0 +} + +func (x *EdRollData) GetEdTonnageAccum0() float64 { + if x != nil { + return x.EdTonnageAccum0 + } + return 0 +} + +func (x *EdRollData) GetEdTonnageAccum1() float64 { + if x != nil { + return x.EdTonnageAccum1 + } + return 0 +} + +func (x *EdRollData) GetEdTonnageAccum2() float64 { + if x != nil { + return x.EdTonnageAccum2 + } + return 0 +} + +func (x *EdRollData) GetEdTonnageAccum3() float64 { + if x != nil { + return x.EdTonnageAccum3 + } + return 0 +} + +func (x *EdRollData) GetEdTonnageAccum4() float64 { + if x != nil { + return x.EdTonnageAccum4 + } + return 0 +} + +func (x *EdRollData) GetEdTonnageAccum5() float64 { + if x != nil { + return x.EdTonnageAccum5 + } + return 0 +} + +func (x *EdRollData) GetEdTonnageAccum6() float64 { + if x != nil { + return x.EdTonnageAccum6 + } + return 0 +} + +func (x *EdRollData) GetEdTonnageAccum7() float64 { + if x != nil { + return x.EdTonnageAccum7 + } + return 0 +} + +func (x *EdRollData) GetEdTonnageAccum8() float64 { + if x != nil { + return x.EdTonnageAccum8 + } + return 0 +} + +func (x *EdRollData) GetEdTonnageAccum9() float64 { + if x != nil { + return x.EdTonnageAccum9 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamTop0() float64 { + if x != nil { + return x.EdRollFlangeDiamTop0 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamTop1() float64 { + if x != nil { + return x.EdRollFlangeDiamTop1 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamTop2() float64 { + if x != nil { + return x.EdRollFlangeDiamTop2 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamTop3() float64 { + if x != nil { + return x.EdRollFlangeDiamTop3 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamTop4() float64 { + if x != nil { + return x.EdRollFlangeDiamTop4 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamTop5() float64 { + if x != nil { + return x.EdRollFlangeDiamTop5 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamTop6() float64 { + if x != nil { + return x.EdRollFlangeDiamTop6 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamTop7() float64 { + if x != nil { + return x.EdRollFlangeDiamTop7 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamTop8() float64 { + if x != nil { + return x.EdRollFlangeDiamTop8 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamTop9() float64 { + if x != nil { + return x.EdRollFlangeDiamTop9 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamBot0() float64 { + if x != nil { + return x.EdRollFlangeDiamBot0 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamBot1() float64 { + if x != nil { + return x.EdRollFlangeDiamBot1 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamBot2() float64 { + if x != nil { + return x.EdRollFlangeDiamBot2 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamBot3() float64 { + if x != nil { + return x.EdRollFlangeDiamBot3 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamBot4() float64 { + if x != nil { + return x.EdRollFlangeDiamBot4 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamBot5() float64 { + if x != nil { + return x.EdRollFlangeDiamBot5 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamBot6() float64 { + if x != nil { + return x.EdRollFlangeDiamBot6 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamBot7() float64 { + if x != nil { + return x.EdRollFlangeDiamBot7 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamBot8() float64 { + if x != nil { + return x.EdRollFlangeDiamBot8 + } + return 0 +} + +func (x *EdRollData) GetEdRollFlangeDiamBot9() float64 { + if x != nil { + return x.EdRollFlangeDiamBot9 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamTop0() float64 { + if x != nil { + return x.EdRollWebDiamTop0 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamTop1() float64 { + if x != nil { + return x.EdRollWebDiamTop1 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamTop2() float64 { + if x != nil { + return x.EdRollWebDiamTop2 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamTop3() float64 { + if x != nil { + return x.EdRollWebDiamTop3 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamTop4() float64 { + if x != nil { + return x.EdRollWebDiamTop4 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamTop5() float64 { + if x != nil { + return x.EdRollWebDiamTop5 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamTop6() float64 { + if x != nil { + return x.EdRollWebDiamTop6 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamTop7() float64 { + if x != nil { + return x.EdRollWebDiamTop7 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamTop8() float64 { + if x != nil { + return x.EdRollWebDiamTop8 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamTop9() float64 { + if x != nil { + return x.EdRollWebDiamTop9 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamBot0() float64 { + if x != nil { + return x.EdRollWebDiamBot0 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamBot1() float64 { + if x != nil { + return x.EdRollWebDiamBot1 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamBot2() float64 { + if x != nil { + return x.EdRollWebDiamBot2 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamBot3() float64 { + if x != nil { + return x.EdRollWebDiamBot3 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamBot4() float64 { + if x != nil { + return x.EdRollWebDiamBot4 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamBot5() float64 { + if x != nil { + return x.EdRollWebDiamBot5 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamBot6() float64 { + if x != nil { + return x.EdRollWebDiamBot6 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamBot7() float64 { + if x != nil { + return x.EdRollWebDiamBot7 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamBot8() float64 { + if x != nil { + return x.EdRollWebDiamBot8 + } + return 0 +} + +func (x *EdRollData) GetEdRollWebDiamBot9() float64 { + if x != nil { + return x.EdRollWebDiamBot9 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthTop0() float64 { + if x != nil { + return x.EdRollChamWidthTop0 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthTop1() float64 { + if x != nil { + return x.EdRollChamWidthTop1 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthTop2() float64 { + if x != nil { + return x.EdRollChamWidthTop2 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthTop3() float64 { + if x != nil { + return x.EdRollChamWidthTop3 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthTop4() float64 { + if x != nil { + return x.EdRollChamWidthTop4 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthTop5() float64 { + if x != nil { + return x.EdRollChamWidthTop5 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthTop6() float64 { + if x != nil { + return x.EdRollChamWidthTop6 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthTop7() float64 { + if x != nil { + return x.EdRollChamWidthTop7 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthTop8() float64 { + if x != nil { + return x.EdRollChamWidthTop8 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthTop9() float64 { + if x != nil { + return x.EdRollChamWidthTop9 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthBot0() float64 { + if x != nil { + return x.EdRollChamWidthBot0 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthBot1() float64 { + if x != nil { + return x.EdRollChamWidthBot1 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthBot2() float64 { + if x != nil { + return x.EdRollChamWidthBot2 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthBot3() float64 { + if x != nil { + return x.EdRollChamWidthBot3 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthBot4() float64 { + if x != nil { + return x.EdRollChamWidthBot4 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthBot5() float64 { + if x != nil { + return x.EdRollChamWidthBot5 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthBot6() float64 { + if x != nil { + return x.EdRollChamWidthBot6 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthBot7() float64 { + if x != nil { + return x.EdRollChamWidthBot7 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthBot8() float64 { + if x != nil { + return x.EdRollChamWidthBot8 + } + return 0 +} + +func (x *EdRollData) GetEdRollChamWidthBot9() float64 { + if x != nil { + return x.EdRollChamWidthBot9 + } + return 0 +} + +func (x *EdRollData) GetEdRollAngleFlangeFace0() float64 { + if x != nil { + return x.EdRollAngleFlangeFace0 + } + return 0 +} + +func (x *EdRollData) GetEdRollAngleFlangeFace1() float64 { + if x != nil { + return x.EdRollAngleFlangeFace1 + } + return 0 +} + +func (x *EdRollData) GetEdRollAngleFlangeFace2() float64 { + if x != nil { + return x.EdRollAngleFlangeFace2 + } + return 0 +} + +func (x *EdRollData) GetEdRollAngleFlangeFace3() float64 { + if x != nil { + return x.EdRollAngleFlangeFace3 + } + return 0 +} + +func (x *EdRollData) GetEdRollAngleFlangeFace4() float64 { + if x != nil { + return x.EdRollAngleFlangeFace4 + } + return 0 +} + +func (x *EdRollData) GetEdRollAngleFlangeFace5() float64 { + if x != nil { + return x.EdRollAngleFlangeFace5 + } + return 0 +} + +func (x *EdRollData) GetEdRollAngleFlangeFace6() float64 { + if x != nil { + return x.EdRollAngleFlangeFace6 + } + return 0 +} + +func (x *EdRollData) GetEdRollAngleFlangeFace7() float64 { + if x != nil { + return x.EdRollAngleFlangeFace7 + } + return 0 +} + +func (x *EdRollData) GetEdRollAngleFlangeFace8() float64 { + if x != nil { + return x.EdRollAngleFlangeFace8 + } + return 0 +} + +func (x *EdRollData) GetEdRollAngleFlangeFace9() float64 { + if x != nil { + return x.EdRollAngleFlangeFace9 + } + return 0 +} + +func (x *EdRollData) GetEdRollRootRadius0() float64 { + if x != nil { + return x.EdRollRootRadius0 + } + return 0 +} + +func (x *EdRollData) GetEdRollRootRadius1() float64 { + if x != nil { + return x.EdRollRootRadius1 + } + return 0 +} + +func (x *EdRollData) GetEdRollRootRadius2() float64 { + if x != nil { + return x.EdRollRootRadius2 + } + return 0 +} + +func (x *EdRollData) GetEdRollRootRadius3() float64 { + if x != nil { + return x.EdRollRootRadius3 + } + return 0 +} + +func (x *EdRollData) GetEdRollRootRadius4() float64 { + if x != nil { + return x.EdRollRootRadius4 + } + return 0 +} + +func (x *EdRollData) GetEdRollRootRadius5() float64 { + if x != nil { + return x.EdRollRootRadius5 + } + return 0 +} + +func (x *EdRollData) GetEdRollRootRadius6() float64 { + if x != nil { + return x.EdRollRootRadius6 + } + return 0 +} + +func (x *EdRollData) GetEdRollRootRadius7() float64 { + if x != nil { + return x.EdRollRootRadius7 + } + return 0 +} + +func (x *EdRollData) GetEdRollRootRadius8() float64 { + if x != nil { + return x.EdRollRootRadius8 + } + return 0 +} + +func (x *EdRollData) GetEdRollRootRadius9() float64 { + if x != nil { + return x.EdRollRootRadius9 + } + return 0 +} + +func (x *EdRollData) GetEdPasslineOffset() float64 { + if x != nil { + return x.EdPasslineOffset + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveSharp0() int64 { + if x != nil { + return x.EdDRollGrooveSharp0 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveSharp1() int64 { + if x != nil { + return x.EdDRollGrooveSharp1 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveSharp2() int64 { + if x != nil { + return x.EdDRollGrooveSharp2 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveSharp3() int64 { + if x != nil { + return x.EdDRollGrooveSharp3 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveSharp4() int64 { + if x != nil { + return x.EdDRollGrooveSharp4 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveSharp5() int64 { + if x != nil { + return x.EdDRollGrooveSharp5 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveSharp6() int64 { + if x != nil { + return x.EdDRollGrooveSharp6 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveSharp7() int64 { + if x != nil { + return x.EdDRollGrooveSharp7 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveSharp8() int64 { + if x != nil { + return x.EdDRollGrooveSharp8 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveSharp9() int64 { + if x != nil { + return x.EdDRollGrooveSharp9 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveWidth0() float64 { + if x != nil { + return x.EdDRollGrooveWidth0 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveWidth1() float64 { + if x != nil { + return x.EdDRollGrooveWidth1 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveWidth2() float64 { + if x != nil { + return x.EdDRollGrooveWidth2 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveWidth3() float64 { + if x != nil { + return x.EdDRollGrooveWidth3 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveWidth4() float64 { + if x != nil { + return x.EdDRollGrooveWidth4 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveWidth5() float64 { + if x != nil { + return x.EdDRollGrooveWidth5 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveWidth6() float64 { + if x != nil { + return x.EdDRollGrooveWidth6 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveWidth7() float64 { + if x != nil { + return x.EdDRollGrooveWidth7 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveWidth8() float64 { + if x != nil { + return x.EdDRollGrooveWidth8 + } + return 0 +} + +func (x *EdRollData) GetEdDRollGrooveWidth9() float64 { + if x != nil { + return x.EdDRollGrooveWidth9 + } + return 0 +} + +func (x *EdRollData) GetEdRollId() string { + if x != nil { + return x.EdRollId + } + return "" +} + +func (x *EdRollData) GetEdDelFlag() bool { + if x != nil { + return x.EdDelFlag + } + return false +} + +func (x *EdRollData) GetEdRollSetIdOld() string { + if x != nil { + return x.EdRollSetIdOld + } + return "" +} + +func (x *EdRollData) GetEdFinSec5() string { + if x != nil { + return x.EdFinSec5 + } + return "" +} + +func (x *EdRollData) GetEdFinSec6() string { + if x != nil { + return x.EdFinSec6 + } + return "" +} + +func (x *EdRollData) GetEdFinSec7() string { + if x != nil { + return x.EdFinSec7 + } + return "" +} + +func (x *EdRollData) GetEdFinSec8() string { + if x != nil { + return x.EdFinSec8 + } + return "" +} + +func (x *EdRollData) GetEdFinSec9() string { + if x != nil { + return x.EdFinSec9 + } + return "" +} + +func (x *EdRollData) GetEdFinSec10() string { + if x != nil { + return x.EdFinSec10 + } + return "" +} + +func (x *EdRollData) GetEdFinSec11() string { + if x != nil { + return x.EdFinSec11 + } + return "" +} + +func (x *EdRollData) GetEdFinSec12() string { + if x != nil { + return x.EdFinSec12 + } + return "" +} + +func (x *EdRollData) GetEdFinSec13() string { + if x != nil { + return x.EdFinSec13 + } + return "" +} + +func (x *EdRollData) GetEdFinSec14() string { + if x != nil { + return x.EdFinSec14 + } + return "" +} + +func (x *EdRollData) GetEdFinSec15() string { + if x != nil { + return x.EdFinSec15 + } + return "" +} + +func (x *EdRollData) GetEdFinSec16() string { + if x != nil { + return x.EdFinSec16 + } + return "" +} + +func (x *EdRollData) GetEdFinSec17() string { + if x != nil { + return x.EdFinSec17 + } + return "" +} + +func (x *EdRollData) GetEdFinSec18() string { + if x != nil { + return x.EdFinSec18 + } + return "" +} + +func (x *EdRollData) GetEdFinSec19() string { + if x != nil { + return x.EdFinSec19 + } + return "" +} + +func (x *EdRollData) GetOldFlag() bool { + if x != nil { + return x.OldFlag + } + return false +} + +func (x *EdRollData) GetEstadoRegistro() bool { + if x != nil { + return x.EstadoRegistro + } + return false +} + +func (x *EdRollData) GetFechaRegistro() string { + if x != nil { + return x.FechaRegistro + } + return "" +} + +func (x *EdRollData) GetFechaEnvio() string { + if x != nil { + return x.FechaEnvio + } + return "" +} + +type UfRollData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UfRollSetDate string `protobuf:"bytes,1,opt,name=uf_roll_set_date,json=ufRollSetDate,proto3" json:"uf_roll_set_date,omitempty"` + UfRollSetId string `protobuf:"bytes,2,opt,name=uf_roll_set_id,json=ufRollSetId,proto3" json:"uf_roll_set_id,omitempty"` + UfRollSetIdHrolls string `protobuf:"bytes,3,opt,name=uf_roll_set_id_hrolls,json=ufRollSetIdHrolls,proto3" json:"uf_roll_set_id_hrolls,omitempty"` + UfHtoRollNumber string `protobuf:"bytes,4,opt,name=uf_hto_roll_number,json=ufHtoRollNumber,proto3" json:"uf_hto_roll_number,omitempty"` + UfHboRollNumber string `protobuf:"bytes,5,opt,name=uf_hbo_roll_number,json=ufHboRollNumber,proto3" json:"uf_hbo_roll_number,omitempty"` + UfRollInstallPos int64 `protobuf:"varint,6,opt,name=uf_roll_install_pos,json=ufRollInstallPos,proto3" json:"uf_roll_install_pos,omitempty"` + UfRollSetType int64 `protobuf:"varint,7,opt,name=uf_roll_set_type,json=ufRollSetType,proto3" json:"uf_roll_set_type,omitempty"` + UfTonnageAccum0 float64 `protobuf:"fixed64,8,opt,name=uf_tonnage_accum0,json=ufTonnageAccum0,proto3" json:"uf_tonnage_accum0,omitempty"` + UfTonnageAccum1 float64 `protobuf:"fixed64,9,opt,name=uf_tonnage_accum1,json=ufTonnageAccum1,proto3" json:"uf_tonnage_accum1,omitempty"` + UfTonnageAccum2 float64 `protobuf:"fixed64,10,opt,name=uf_tonnage_accum2,json=ufTonnageAccum2,proto3" json:"uf_tonnage_accum2,omitempty"` + UfTonnageAccum3 float64 `protobuf:"fixed64,11,opt,name=uf_tonnage_accum3,json=ufTonnageAccum3,proto3" json:"uf_tonnage_accum3,omitempty"` + UfTonnageAccum4 float64 `protobuf:"fixed64,12,opt,name=uf_tonnage_accum4,json=ufTonnageAccum4,proto3" json:"uf_tonnage_accum4,omitempty"` + UfTonnageAccum5 float64 `protobuf:"fixed64,13,opt,name=uf_tonnage_accum5,json=ufTonnageAccum5,proto3" json:"uf_tonnage_accum5,omitempty"` + UfTonnageAccum6 float64 `protobuf:"fixed64,14,opt,name=uf_tonnage_accum6,json=ufTonnageAccum6,proto3" json:"uf_tonnage_accum6,omitempty"` + UfTonnageAccum7 float64 `protobuf:"fixed64,15,opt,name=uf_tonnage_accum7,json=ufTonnageAccum7,proto3" json:"uf_tonnage_accum7,omitempty"` + UfTonnageAccum8 float64 `protobuf:"fixed64,16,opt,name=uf_tonnage_accum8,json=ufTonnageAccum8,proto3" json:"uf_tonnage_accum8,omitempty"` + UfTonnageAccum9 float64 `protobuf:"fixed64,17,opt,name=uf_tonnage_accum9,json=ufTonnageAccum9,proto3" json:"uf_tonnage_accum9,omitempty"` + UfChangeSleeveLength float64 `protobuf:"fixed64,18,opt,name=uf_change_sleeve_length,json=ufChangeSleeveLength,proto3" json:"uf_change_sleeve_length,omitempty"` + UfChangeSleeveDepth float64 `protobuf:"fixed64,19,opt,name=uf_change_sleeve_depth,json=ufChangeSleeveDepth,proto3" json:"uf_change_sleeve_depth,omitempty"` + UfRollAssemblyStatus int64 `protobuf:"varint,20,opt,name=uf_roll_assembly_status,json=ufRollAssemblyStatus,proto3" json:"uf_roll_assembly_status,omitempty"` + UfNoOfFinSec int64 `protobuf:"varint,21,opt,name=uf_no_of_fin_sec,json=ufNoOfFinSec,proto3" json:"uf_no_of_fin_sec,omitempty"` + UfInitSec0 string `protobuf:"bytes,22,opt,name=uf_init_sec0,json=ufInitSec0,proto3" json:"uf_init_sec0,omitempty"` + UfInitSec1 string `protobuf:"bytes,23,opt,name=uf_init_sec1,json=ufInitSec1,proto3" json:"uf_init_sec1,omitempty"` + UfInitSec2 string `protobuf:"bytes,24,opt,name=uf_init_sec2,json=ufInitSec2,proto3" json:"uf_init_sec2,omitempty"` + UfInitSec3 string `protobuf:"bytes,25,opt,name=uf_init_sec3,json=ufInitSec3,proto3" json:"uf_init_sec3,omitempty"` + UfInitSec4 string `protobuf:"bytes,26,opt,name=uf_init_sec4,json=ufInitSec4,proto3" json:"uf_init_sec4,omitempty"` + UfFinSec0 string `protobuf:"bytes,27,opt,name=uf_fin_sec0,json=ufFinSec0,proto3" json:"uf_fin_sec0,omitempty"` + UfFinSec1 string `protobuf:"bytes,28,opt,name=uf_fin_sec1,json=ufFinSec1,proto3" json:"uf_fin_sec1,omitempty"` + UfFinSec2 string `protobuf:"bytes,29,opt,name=uf_fin_sec2,json=ufFinSec2,proto3" json:"uf_fin_sec2,omitempty"` + UfFinSec3 string `protobuf:"bytes,30,opt,name=uf_fin_sec3,json=ufFinSec3,proto3" json:"uf_fin_sec3,omitempty"` + UfFinSec4 string `protobuf:"bytes,31,opt,name=uf_fin_sec4,json=ufFinSec4,proto3" json:"uf_fin_sec4,omitempty"` + UfRollMaterialH string `protobuf:"bytes,32,opt,name=uf_roll_material_h,json=ufRollMaterialH,proto3" json:"uf_roll_material_h,omitempty"` + UfRollDiamActHbo float64 `protobuf:"fixed64,33,opt,name=uf_roll_diam_act_hbo,json=ufRollDiamActHbo,proto3" json:"uf_roll_diam_act_hbo,omitempty"` + UfRollDiamActHtp float64 `protobuf:"fixed64,34,opt,name=uf_roll_diam_act_htp,json=ufRollDiamActHtp,proto3" json:"uf_roll_diam_act_htp,omitempty"` + UfHNomgap float64 `protobuf:"fixed64,35,opt,name=uf_h_nomgap,json=ufHNomgap,proto3" json:"uf_h_nomgap,omitempty"` + UfActualShimpsHbo float64 `protobuf:"fixed64,36,opt,name=uf_actual_shimps_hbo,json=ufActualShimpsHbo,proto3" json:"uf_actual_shimps_hbo,omitempty"` + UfActualShimpsHtp float64 `protobuf:"fixed64,37,opt,name=uf_actual_shimps_htp,json=ufActualShimpsHtp,proto3" json:"uf_actual_shimps_htp,omitempty"` + UfRollBarrelWidthHbo float64 `protobuf:"fixed64,38,opt,name=uf_roll_barrel_width_hbo,json=ufRollBarrelWidthHbo,proto3" json:"uf_roll_barrel_width_hbo,omitempty"` + UfRollBarrelWidthHtp float64 `protobuf:"fixed64,39,opt,name=uf_roll_barrel_width_htp,json=ufRollBarrelWidthHtp,proto3" json:"uf_roll_barrel_width_htp,omitempty"` + UfRollChamWidthHbo float64 `protobuf:"fixed64,40,opt,name=uf_roll_cham_width_hbo,json=ufRollChamWidthHbo,proto3" json:"uf_roll_cham_width_hbo,omitempty"` + UfRollChamWidthHtp float64 `protobuf:"fixed64,41,opt,name=uf_roll_cham_width_htp,json=ufRollChamWidthHtp,proto3" json:"uf_roll_cham_width_htp,omitempty"` + UfRollAngleHbo float64 `protobuf:"fixed64,42,opt,name=uf_roll_angle_hbo,json=ufRollAngleHbo,proto3" json:"uf_roll_angle_hbo,omitempty"` + UfRollAngleHtb float64 `protobuf:"fixed64,43,opt,name=uf_roll_angle_htb,json=ufRollAngleHtb,proto3" json:"uf_roll_angle_htb,omitempty"` + UfRollSetIdVrolls string `protobuf:"bytes,44,opt,name=uf_roll_set_id_vrolls,json=ufRollSetIdVrolls,proto3" json:"uf_roll_set_id_vrolls,omitempty"` + UfVdsRollNumber string `protobuf:"bytes,45,opt,name=uf_vds_roll_number,json=ufVdsRollNumber,proto3" json:"uf_vds_roll_number,omitempty"` + UfVosRollNumber string `protobuf:"bytes,46,opt,name=uf_vos_roll_number,json=ufVosRollNumber,proto3" json:"uf_vos_roll_number,omitempty"` + UfRollMaterialV string `protobuf:"bytes,47,opt,name=uf_roll_material_v,json=ufRollMaterialV,proto3" json:"uf_roll_material_v,omitempty"` + UfRollDiamActVds float64 `protobuf:"fixed64,48,opt,name=uf_roll_diam_act_vds,json=ufRollDiamActVds,proto3" json:"uf_roll_diam_act_vds,omitempty"` + UfRollDiamActVos float64 `protobuf:"fixed64,49,opt,name=uf_roll_diam_act_vos,json=ufRollDiamActVos,proto3" json:"uf_roll_diam_act_vos,omitempty"` + UfRollAngleVds float64 `protobuf:"fixed64,50,opt,name=uf_roll_angle_vds,json=ufRollAngleVds,proto3" json:"uf_roll_angle_vds,omitempty"` + UfRollAngleVos float64 `protobuf:"fixed64,51,opt,name=uf_roll_angle_vos,json=ufRollAngleVos,proto3" json:"uf_roll_angle_vos,omitempty"` + UfPasslineOffset float64 `protobuf:"fixed64,52,opt,name=uf_passline_offset,json=ufPasslineOffset,proto3" json:"uf_passline_offset,omitempty"` + UfActualShimpsVds_1 float64 `protobuf:"fixed64,53,opt,name=uf_actual_shimps_vds_1,json=ufActualShimpsVds1,proto3" json:"uf_actual_shimps_vds_1,omitempty"` + UfActualShimpsVds_2 float64 `protobuf:"fixed64,54,opt,name=uf_actual_shimps_vds_2,json=ufActualShimpsVds2,proto3" json:"uf_actual_shimps_vds_2,omitempty"` + UfActualShimpsVos_1 float64 `protobuf:"fixed64,55,opt,name=uf_actual_shimps_vos_1,json=ufActualShimpsVos1,proto3" json:"uf_actual_shimps_vos_1,omitempty"` + UfActualShimpsVos_2 float64 `protobuf:"fixed64,56,opt,name=uf_actual_shimps_vos_2,json=ufActualShimpsVos2,proto3" json:"uf_actual_shimps_vos_2,omitempty"` + UfPinVChock float64 `protobuf:"fixed64,57,opt,name=uf_pin_v_chock,json=ufPinVChock,proto3" json:"uf_pin_v_chock,omitempty"` + UfRollGrooves int64 `protobuf:"varint,58,opt,name=uf_roll_grooves,json=ufRollGrooves,proto3" json:"uf_roll_grooves,omitempty"` + UfRollGrooveWidth0 float64 `protobuf:"fixed64,59,opt,name=uf_roll_groove_width0,json=ufRollGrooveWidth0,proto3" json:"uf_roll_groove_width0,omitempty"` + UfRollGrooveWidth1 float64 `protobuf:"fixed64,60,opt,name=uf_roll_groove_width1,json=ufRollGrooveWidth1,proto3" json:"uf_roll_groove_width1,omitempty"` + UfRollGrooveWidth2 float64 `protobuf:"fixed64,61,opt,name=uf_roll_groove_width2,json=ufRollGrooveWidth2,proto3" json:"uf_roll_groove_width2,omitempty"` + UfRollGrooveWidth3 float64 `protobuf:"fixed64,62,opt,name=uf_roll_groove_width3,json=ufRollGrooveWidth3,proto3" json:"uf_roll_groove_width3,omitempty"` + UfRollGrooveWidth4 float64 `protobuf:"fixed64,63,opt,name=uf_roll_groove_width4,json=ufRollGrooveWidth4,proto3" json:"uf_roll_groove_width4,omitempty"` + UfRollGrooveWidth5 float64 `protobuf:"fixed64,64,opt,name=uf_roll_groove_width5,json=ufRollGrooveWidth5,proto3" json:"uf_roll_groove_width5,omitempty"` + UfRollGrooveWidth6 float64 `protobuf:"fixed64,65,opt,name=uf_roll_groove_width6,json=ufRollGrooveWidth6,proto3" json:"uf_roll_groove_width6,omitempty"` + UfRollGrooveWidth7 float64 `protobuf:"fixed64,66,opt,name=uf_roll_groove_width7,json=ufRollGrooveWidth7,proto3" json:"uf_roll_groove_width7,omitempty"` + UfRollGrooveWidth8 float64 `protobuf:"fixed64,67,opt,name=uf_roll_groove_width8,json=ufRollGrooveWidth8,proto3" json:"uf_roll_groove_width8,omitempty"` + UfRollGrooveWidth9 float64 `protobuf:"fixed64,68,opt,name=uf_roll_groove_width9,json=ufRollGrooveWidth9,proto3" json:"uf_roll_groove_width9,omitempty"` + UfRollGrooveStiffnessTop0 float64 `protobuf:"fixed64,69,opt,name=uf_roll_groove_stiffness_top0,json=ufRollGrooveStiffnessTop0,proto3" json:"uf_roll_groove_stiffness_top0,omitempty"` + UfRollGrooveStiffnessTop1 float64 `protobuf:"fixed64,70,opt,name=uf_roll_groove_stiffness_top1,json=ufRollGrooveStiffnessTop1,proto3" json:"uf_roll_groove_stiffness_top1,omitempty"` + UfRollGrooveStiffnessTop2 float64 `protobuf:"fixed64,71,opt,name=uf_roll_groove_stiffness_top2,json=ufRollGrooveStiffnessTop2,proto3" json:"uf_roll_groove_stiffness_top2,omitempty"` + UfRollGrooveStiffnessTop3 float64 `protobuf:"fixed64,72,opt,name=uf_roll_groove_stiffness_top3,json=ufRollGrooveStiffnessTop3,proto3" json:"uf_roll_groove_stiffness_top3,omitempty"` + UfRollGrooveStiffnessTop4 float64 `protobuf:"fixed64,73,opt,name=uf_roll_groove_stiffness_top4,json=ufRollGrooveStiffnessTop4,proto3" json:"uf_roll_groove_stiffness_top4,omitempty"` + UfRollGrooveStiffnessTop5 float64 `protobuf:"fixed64,74,opt,name=uf_roll_groove_stiffness_top5,json=ufRollGrooveStiffnessTop5,proto3" json:"uf_roll_groove_stiffness_top5,omitempty"` + UfRollGrooveStiffnessTop6 float64 `protobuf:"fixed64,75,opt,name=uf_roll_groove_stiffness_top6,json=ufRollGrooveStiffnessTop6,proto3" json:"uf_roll_groove_stiffness_top6,omitempty"` + UfRollGrooveStiffnessTop7 float64 `protobuf:"fixed64,76,opt,name=uf_roll_groove_stiffness_top7,json=ufRollGrooveStiffnessTop7,proto3" json:"uf_roll_groove_stiffness_top7,omitempty"` + UfRollGrooveStiffnessTop8 float64 `protobuf:"fixed64,77,opt,name=uf_roll_groove_stiffness_top8,json=ufRollGrooveStiffnessTop8,proto3" json:"uf_roll_groove_stiffness_top8,omitempty"` + UfRollGrooveStiffnessTop9 float64 `protobuf:"fixed64,78,opt,name=uf_roll_groove_stiffness_top9,json=ufRollGrooveStiffnessTop9,proto3" json:"uf_roll_groove_stiffness_top9,omitempty"` + UfRollGrooveStiffnessBot0 float64 `protobuf:"fixed64,79,opt,name=uf_roll_groove_stiffness_bot0,json=ufRollGrooveStiffnessBot0,proto3" json:"uf_roll_groove_stiffness_bot0,omitempty"` + UfRollGrooveStiffnessBot1 float64 `protobuf:"fixed64,80,opt,name=uf_roll_groove_stiffness_bot1,json=ufRollGrooveStiffnessBot1,proto3" json:"uf_roll_groove_stiffness_bot1,omitempty"` + UfRollGrooveStiffnessBot2 float64 `protobuf:"fixed64,81,opt,name=uf_roll_groove_stiffness_bot2,json=ufRollGrooveStiffnessBot2,proto3" json:"uf_roll_groove_stiffness_bot2,omitempty"` + UfRollGrooveStiffnessBot3 float64 `protobuf:"fixed64,82,opt,name=uf_roll_groove_stiffness_bot3,json=ufRollGrooveStiffnessBot3,proto3" json:"uf_roll_groove_stiffness_bot3,omitempty"` + UfRollGrooveStiffnessBot4 float64 `protobuf:"fixed64,83,opt,name=uf_roll_groove_stiffness_bot4,json=ufRollGrooveStiffnessBot4,proto3" json:"uf_roll_groove_stiffness_bot4,omitempty"` + UfRollGrooveStiffnessBot5 float64 `protobuf:"fixed64,84,opt,name=uf_roll_groove_stiffness_bot5,json=ufRollGrooveStiffnessBot5,proto3" json:"uf_roll_groove_stiffness_bot5,omitempty"` + UfRollGrooveStiffnessBot6 float64 `protobuf:"fixed64,85,opt,name=uf_roll_groove_stiffness_bot6,json=ufRollGrooveStiffnessBot6,proto3" json:"uf_roll_groove_stiffness_bot6,omitempty"` + UfRollGrooveStiffnessBot7 float64 `protobuf:"fixed64,86,opt,name=uf_roll_groove_stiffness_bot7,json=ufRollGrooveStiffnessBot7,proto3" json:"uf_roll_groove_stiffness_bot7,omitempty"` + UfRollGrooveStiffnessBot8 float64 `protobuf:"fixed64,87,opt,name=uf_roll_groove_stiffness_bot8,json=ufRollGrooveStiffnessBot8,proto3" json:"uf_roll_groove_stiffness_bot8,omitempty"` + UfRollGrooveStiffnessBot9 float64 `protobuf:"fixed64,88,opt,name=uf_roll_groove_stiffness_bot9,json=ufRollGrooveStiffnessBot9,proto3" json:"uf_roll_groove_stiffness_bot9,omitempty"` + UfRollGroovePos0 float64 `protobuf:"fixed64,89,opt,name=uf_roll_groove_pos0,json=ufRollGroovePos0,proto3" json:"uf_roll_groove_pos0,omitempty"` + UfRollGroovePos1 float64 `protobuf:"fixed64,90,opt,name=uf_roll_groove_pos1,json=ufRollGroovePos1,proto3" json:"uf_roll_groove_pos1,omitempty"` + UfRollGroovePos2 float64 `protobuf:"fixed64,91,opt,name=uf_roll_groove_pos2,json=ufRollGroovePos2,proto3" json:"uf_roll_groove_pos2,omitempty"` + UfRollGroovePos3 float64 `protobuf:"fixed64,92,opt,name=uf_roll_groove_pos3,json=ufRollGroovePos3,proto3" json:"uf_roll_groove_pos3,omitempty"` + UfRollGroovePos4 float64 `protobuf:"fixed64,93,opt,name=uf_roll_groove_pos4,json=ufRollGroovePos4,proto3" json:"uf_roll_groove_pos4,omitempty"` + UfRollGroovePos5 float64 `protobuf:"fixed64,94,opt,name=uf_roll_groove_pos5,json=ufRollGroovePos5,proto3" json:"uf_roll_groove_pos5,omitempty"` + UfRollGroovePos6 float64 `protobuf:"fixed64,95,opt,name=uf_roll_groove_pos6,json=ufRollGroovePos6,proto3" json:"uf_roll_groove_pos6,omitempty"` + UfRollGroovePos7 float64 `protobuf:"fixed64,96,opt,name=uf_roll_groove_pos7,json=ufRollGroovePos7,proto3" json:"uf_roll_groove_pos7,omitempty"` + UfRollGroovePos8 float64 `protobuf:"fixed64,97,opt,name=uf_roll_groove_pos8,json=ufRollGroovePos8,proto3" json:"uf_roll_groove_pos8,omitempty"` + UfRollGroovePos9 float64 `protobuf:"fixed64,98,opt,name=uf_roll_groove_pos9,json=ufRollGroovePos9,proto3" json:"uf_roll_groove_pos9,omitempty"` + UfRollGrooveSharp0 int64 `protobuf:"varint,99,opt,name=uf_roll_groove_sharp0,json=ufRollGrooveSharp0,proto3" json:"uf_roll_groove_sharp0,omitempty"` + UfRollGrooveSharp1 int64 `protobuf:"varint,100,opt,name=uf_roll_groove_sharp1,json=ufRollGrooveSharp1,proto3" json:"uf_roll_groove_sharp1,omitempty"` + UfRollGrooveSharp2 int64 `protobuf:"varint,101,opt,name=uf_roll_groove_sharp2,json=ufRollGrooveSharp2,proto3" json:"uf_roll_groove_sharp2,omitempty"` + UfRollGrooveSharp3 int64 `protobuf:"varint,102,opt,name=uf_roll_groove_sharp3,json=ufRollGrooveSharp3,proto3" json:"uf_roll_groove_sharp3,omitempty"` + UfRollGrooveSharp4 int64 `protobuf:"varint,103,opt,name=uf_roll_groove_sharp4,json=ufRollGrooveSharp4,proto3" json:"uf_roll_groove_sharp4,omitempty"` + UfRollGrooveSharp5 int64 `protobuf:"varint,104,opt,name=uf_roll_groove_sharp5,json=ufRollGrooveSharp5,proto3" json:"uf_roll_groove_sharp5,omitempty"` + UfRollGrooveSharp6 int64 `protobuf:"varint,105,opt,name=uf_roll_groove_sharp6,json=ufRollGrooveSharp6,proto3" json:"uf_roll_groove_sharp6,omitempty"` + UfRollGrooveSharp7 int64 `protobuf:"varint,106,opt,name=uf_roll_groove_sharp7,json=ufRollGrooveSharp7,proto3" json:"uf_roll_groove_sharp7,omitempty"` + UfRollGrooveSharp8 int64 `protobuf:"varint,107,opt,name=uf_roll_groove_sharp8,json=ufRollGrooveSharp8,proto3" json:"uf_roll_groove_sharp8,omitempty"` + UfRollGrooveSharp9 int64 `protobuf:"varint,108,opt,name=uf_roll_groove_sharp9,json=ufRollGrooveSharp9,proto3" json:"uf_roll_groove_sharp9,omitempty"` + UfRollThrustPlate float64 `protobuf:"fixed64,109,opt,name=uf_roll_thrust_plate,json=ufRollThrustPlate,proto3" json:"uf_roll_thrust_plate,omitempty"` + UfRollId string `protobuf:"bytes,110,opt,name=uf_roll_id,json=ufRollId,proto3" json:"uf_roll_id,omitempty"` + UfDelFlag bool `protobuf:"varint,111,opt,name=uf_del_flag,json=ufDelFlag,proto3" json:"uf_del_flag,omitempty"` + UfRollSetIdOld string `protobuf:"bytes,112,opt,name=uf_roll_set_id_old,json=ufRollSetIdOld,proto3" json:"uf_roll_set_id_old,omitempty"` + TopShaftUf string `protobuf:"bytes,113,opt,name=top_shaft_uf,json=topShaftUf,proto3" json:"top_shaft_uf,omitempty"` + BotShaftUf string `protobuf:"bytes,114,opt,name=bot_shaft_uf,json=botShaftUf,proto3" json:"bot_shaft_uf,omitempty"` + UfFinSec5 string `protobuf:"bytes,115,opt,name=uf_fin_sec5,json=ufFinSec5,proto3" json:"uf_fin_sec5,omitempty"` + UfFinSec6 string `protobuf:"bytes,116,opt,name=uf_fin_sec6,json=ufFinSec6,proto3" json:"uf_fin_sec6,omitempty"` + UfFinSec7 string `protobuf:"bytes,117,opt,name=uf_fin_sec7,json=ufFinSec7,proto3" json:"uf_fin_sec7,omitempty"` + UfFinSec8 string `protobuf:"bytes,118,opt,name=uf_fin_sec8,json=ufFinSec8,proto3" json:"uf_fin_sec8,omitempty"` + UfFinSec9 string `protobuf:"bytes,119,opt,name=uf_fin_sec9,json=ufFinSec9,proto3" json:"uf_fin_sec9,omitempty"` + UfFinSec10 string `protobuf:"bytes,120,opt,name=uf_fin_sec10,json=ufFinSec10,proto3" json:"uf_fin_sec10,omitempty"` + UfFinSec11 string `protobuf:"bytes,121,opt,name=uf_fin_sec11,json=ufFinSec11,proto3" json:"uf_fin_sec11,omitempty"` + UfFinSec12 string `protobuf:"bytes,122,opt,name=uf_fin_sec12,json=ufFinSec12,proto3" json:"uf_fin_sec12,omitempty"` + UfFinSec13 string `protobuf:"bytes,123,opt,name=uf_fin_sec13,json=ufFinSec13,proto3" json:"uf_fin_sec13,omitempty"` + UfFinSec14 string `protobuf:"bytes,124,opt,name=uf_fin_sec14,json=ufFinSec14,proto3" json:"uf_fin_sec14,omitempty"` + UfFinSec15 string `protobuf:"bytes,125,opt,name=uf_fin_sec15,json=ufFinSec15,proto3" json:"uf_fin_sec15,omitempty"` + UfFinSec16 string `protobuf:"bytes,126,opt,name=uf_fin_sec16,json=ufFinSec16,proto3" json:"uf_fin_sec16,omitempty"` + UfFinSec17 string `protobuf:"bytes,127,opt,name=uf_fin_sec17,json=ufFinSec17,proto3" json:"uf_fin_sec17,omitempty"` + UfFinSec18 string `protobuf:"bytes,128,opt,name=uf_fin_sec18,json=ufFinSec18,proto3" json:"uf_fin_sec18,omitempty"` + UfFinSec19 string `protobuf:"bytes,129,opt,name=uf_fin_sec19,json=ufFinSec19,proto3" json:"uf_fin_sec19,omitempty"` + OldFlag bool `protobuf:"varint,130,opt,name=old_flag,json=oldFlag,proto3" json:"old_flag,omitempty"` + AmpuesaCorta int64 `protobuf:"varint,131,opt,name=ampuesa_corta,json=ampuesaCorta,proto3" json:"ampuesa_corta,omitempty"` + EstadoRegistro bool `protobuf:"varint,132,opt,name=estado_registro,json=estadoRegistro,proto3" json:"estado_registro,omitempty"` + FechaRegistro string `protobuf:"bytes,133,opt,name=fecha_registro,json=fechaRegistro,proto3" json:"fecha_registro,omitempty"` + FechaEnvio string `protobuf:"bytes,134,opt,name=fecha_envio,json=fechaEnvio,proto3" json:"fecha_envio,omitempty"` +} + +func (x *UfRollData) Reset() { + *x = UfRollData{} + if protoimpl.UnsafeEnabled { + mi := &file_api_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UfRollData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UfRollData) ProtoMessage() {} + +func (x *UfRollData) ProtoReflect() protoreflect.Message { + mi := &file_api_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UfRollData.ProtoReflect.Descriptor instead. +func (*UfRollData) Descriptor() ([]byte, []int) { + return file_api_proto_rawDescGZIP(), []int{11} +} + +func (x *UfRollData) GetUfRollSetDate() string { + if x != nil { + return x.UfRollSetDate + } + return "" +} + +func (x *UfRollData) GetUfRollSetId() string { + if x != nil { + return x.UfRollSetId + } + return "" +} + +func (x *UfRollData) GetUfRollSetIdHrolls() string { + if x != nil { + return x.UfRollSetIdHrolls + } + return "" +} + +func (x *UfRollData) GetUfHtoRollNumber() string { + if x != nil { + return x.UfHtoRollNumber + } + return "" +} + +func (x *UfRollData) GetUfHboRollNumber() string { + if x != nil { + return x.UfHboRollNumber + } + return "" +} + +func (x *UfRollData) GetUfRollInstallPos() int64 { + if x != nil { + return x.UfRollInstallPos + } + return 0 +} + +func (x *UfRollData) GetUfRollSetType() int64 { + if x != nil { + return x.UfRollSetType + } + return 0 +} + +func (x *UfRollData) GetUfTonnageAccum0() float64 { + if x != nil { + return x.UfTonnageAccum0 + } + return 0 +} + +func (x *UfRollData) GetUfTonnageAccum1() float64 { + if x != nil { + return x.UfTonnageAccum1 + } + return 0 +} + +func (x *UfRollData) GetUfTonnageAccum2() float64 { + if x != nil { + return x.UfTonnageAccum2 + } + return 0 +} + +func (x *UfRollData) GetUfTonnageAccum3() float64 { + if x != nil { + return x.UfTonnageAccum3 + } + return 0 +} + +func (x *UfRollData) GetUfTonnageAccum4() float64 { + if x != nil { + return x.UfTonnageAccum4 + } + return 0 +} + +func (x *UfRollData) GetUfTonnageAccum5() float64 { + if x != nil { + return x.UfTonnageAccum5 + } + return 0 +} + +func (x *UfRollData) GetUfTonnageAccum6() float64 { + if x != nil { + return x.UfTonnageAccum6 + } + return 0 +} + +func (x *UfRollData) GetUfTonnageAccum7() float64 { + if x != nil { + return x.UfTonnageAccum7 + } + return 0 +} + +func (x *UfRollData) GetUfTonnageAccum8() float64 { + if x != nil { + return x.UfTonnageAccum8 + } + return 0 +} + +func (x *UfRollData) GetUfTonnageAccum9() float64 { + if x != nil { + return x.UfTonnageAccum9 + } + return 0 +} + +func (x *UfRollData) GetUfChangeSleeveLength() float64 { + if x != nil { + return x.UfChangeSleeveLength + } + return 0 +} + +func (x *UfRollData) GetUfChangeSleeveDepth() float64 { + if x != nil { + return x.UfChangeSleeveDepth + } + return 0 +} + +func (x *UfRollData) GetUfRollAssemblyStatus() int64 { + if x != nil { + return x.UfRollAssemblyStatus + } + return 0 +} + +func (x *UfRollData) GetUfNoOfFinSec() int64 { + if x != nil { + return x.UfNoOfFinSec + } + return 0 +} + +func (x *UfRollData) GetUfInitSec0() string { + if x != nil { + return x.UfInitSec0 + } + return "" +} + +func (x *UfRollData) GetUfInitSec1() string { + if x != nil { + return x.UfInitSec1 + } + return "" +} + +func (x *UfRollData) GetUfInitSec2() string { + if x != nil { + return x.UfInitSec2 + } + return "" +} + +func (x *UfRollData) GetUfInitSec3() string { + if x != nil { + return x.UfInitSec3 + } + return "" +} + +func (x *UfRollData) GetUfInitSec4() string { + if x != nil { + return x.UfInitSec4 + } + return "" +} + +func (x *UfRollData) GetUfFinSec0() string { + if x != nil { + return x.UfFinSec0 + } + return "" +} + +func (x *UfRollData) GetUfFinSec1() string { + if x != nil { + return x.UfFinSec1 + } + return "" +} + +func (x *UfRollData) GetUfFinSec2() string { + if x != nil { + return x.UfFinSec2 + } + return "" +} + +func (x *UfRollData) GetUfFinSec3() string { + if x != nil { + return x.UfFinSec3 + } + return "" +} + +func (x *UfRollData) GetUfFinSec4() string { + if x != nil { + return x.UfFinSec4 + } + return "" +} + +func (x *UfRollData) GetUfRollMaterialH() string { + if x != nil { + return x.UfRollMaterialH + } + return "" +} + +func (x *UfRollData) GetUfRollDiamActHbo() float64 { + if x != nil { + return x.UfRollDiamActHbo + } + return 0 +} + +func (x *UfRollData) GetUfRollDiamActHtp() float64 { + if x != nil { + return x.UfRollDiamActHtp + } + return 0 +} + +func (x *UfRollData) GetUfHNomgap() float64 { + if x != nil { + return x.UfHNomgap + } + return 0 +} + +func (x *UfRollData) GetUfActualShimpsHbo() float64 { + if x != nil { + return x.UfActualShimpsHbo + } + return 0 +} + +func (x *UfRollData) GetUfActualShimpsHtp() float64 { + if x != nil { + return x.UfActualShimpsHtp + } + return 0 +} + +func (x *UfRollData) GetUfRollBarrelWidthHbo() float64 { + if x != nil { + return x.UfRollBarrelWidthHbo + } + return 0 +} + +func (x *UfRollData) GetUfRollBarrelWidthHtp() float64 { + if x != nil { + return x.UfRollBarrelWidthHtp + } + return 0 +} + +func (x *UfRollData) GetUfRollChamWidthHbo() float64 { + if x != nil { + return x.UfRollChamWidthHbo + } + return 0 +} + +func (x *UfRollData) GetUfRollChamWidthHtp() float64 { + if x != nil { + return x.UfRollChamWidthHtp + } + return 0 +} + +func (x *UfRollData) GetUfRollAngleHbo() float64 { + if x != nil { + return x.UfRollAngleHbo + } + return 0 +} + +func (x *UfRollData) GetUfRollAngleHtb() float64 { + if x != nil { + return x.UfRollAngleHtb + } + return 0 +} + +func (x *UfRollData) GetUfRollSetIdVrolls() string { + if x != nil { + return x.UfRollSetIdVrolls + } + return "" +} + +func (x *UfRollData) GetUfVdsRollNumber() string { + if x != nil { + return x.UfVdsRollNumber + } + return "" +} + +func (x *UfRollData) GetUfVosRollNumber() string { + if x != nil { + return x.UfVosRollNumber + } + return "" +} + +func (x *UfRollData) GetUfRollMaterialV() string { + if x != nil { + return x.UfRollMaterialV + } + return "" +} + +func (x *UfRollData) GetUfRollDiamActVds() float64 { + if x != nil { + return x.UfRollDiamActVds + } + return 0 +} + +func (x *UfRollData) GetUfRollDiamActVos() float64 { + if x != nil { + return x.UfRollDiamActVos + } + return 0 +} + +func (x *UfRollData) GetUfRollAngleVds() float64 { + if x != nil { + return x.UfRollAngleVds + } + return 0 +} + +func (x *UfRollData) GetUfRollAngleVos() float64 { + if x != nil { + return x.UfRollAngleVos + } + return 0 +} + +func (x *UfRollData) GetUfPasslineOffset() float64 { + if x != nil { + return x.UfPasslineOffset + } + return 0 +} + +func (x *UfRollData) GetUfActualShimpsVds_1() float64 { + if x != nil { + return x.UfActualShimpsVds_1 + } + return 0 +} + +func (x *UfRollData) GetUfActualShimpsVds_2() float64 { + if x != nil { + return x.UfActualShimpsVds_2 + } + return 0 +} + +func (x *UfRollData) GetUfActualShimpsVos_1() float64 { + if x != nil { + return x.UfActualShimpsVos_1 + } + return 0 +} + +func (x *UfRollData) GetUfActualShimpsVos_2() float64 { + if x != nil { + return x.UfActualShimpsVos_2 + } + return 0 +} + +func (x *UfRollData) GetUfPinVChock() float64 { + if x != nil { + return x.UfPinVChock + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooves() int64 { + if x != nil { + return x.UfRollGrooves + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveWidth0() float64 { + if x != nil { + return x.UfRollGrooveWidth0 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveWidth1() float64 { + if x != nil { + return x.UfRollGrooveWidth1 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveWidth2() float64 { + if x != nil { + return x.UfRollGrooveWidth2 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveWidth3() float64 { + if x != nil { + return x.UfRollGrooveWidth3 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveWidth4() float64 { + if x != nil { + return x.UfRollGrooveWidth4 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveWidth5() float64 { + if x != nil { + return x.UfRollGrooveWidth5 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveWidth6() float64 { + if x != nil { + return x.UfRollGrooveWidth6 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveWidth7() float64 { + if x != nil { + return x.UfRollGrooveWidth7 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveWidth8() float64 { + if x != nil { + return x.UfRollGrooveWidth8 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveWidth9() float64 { + if x != nil { + return x.UfRollGrooveWidth9 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessTop0() float64 { + if x != nil { + return x.UfRollGrooveStiffnessTop0 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessTop1() float64 { + if x != nil { + return x.UfRollGrooveStiffnessTop1 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessTop2() float64 { + if x != nil { + return x.UfRollGrooveStiffnessTop2 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessTop3() float64 { + if x != nil { + return x.UfRollGrooveStiffnessTop3 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessTop4() float64 { + if x != nil { + return x.UfRollGrooveStiffnessTop4 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessTop5() float64 { + if x != nil { + return x.UfRollGrooveStiffnessTop5 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessTop6() float64 { + if x != nil { + return x.UfRollGrooveStiffnessTop6 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessTop7() float64 { + if x != nil { + return x.UfRollGrooveStiffnessTop7 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessTop8() float64 { + if x != nil { + return x.UfRollGrooveStiffnessTop8 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessTop9() float64 { + if x != nil { + return x.UfRollGrooveStiffnessTop9 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessBot0() float64 { + if x != nil { + return x.UfRollGrooveStiffnessBot0 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessBot1() float64 { + if x != nil { + return x.UfRollGrooveStiffnessBot1 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessBot2() float64 { + if x != nil { + return x.UfRollGrooveStiffnessBot2 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessBot3() float64 { + if x != nil { + return x.UfRollGrooveStiffnessBot3 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessBot4() float64 { + if x != nil { + return x.UfRollGrooveStiffnessBot4 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessBot5() float64 { + if x != nil { + return x.UfRollGrooveStiffnessBot5 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessBot6() float64 { + if x != nil { + return x.UfRollGrooveStiffnessBot6 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessBot7() float64 { + if x != nil { + return x.UfRollGrooveStiffnessBot7 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessBot8() float64 { + if x != nil { + return x.UfRollGrooveStiffnessBot8 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveStiffnessBot9() float64 { + if x != nil { + return x.UfRollGrooveStiffnessBot9 + } + return 0 +} + +func (x *UfRollData) GetUfRollGroovePos0() float64 { + if x != nil { + return x.UfRollGroovePos0 + } + return 0 +} + +func (x *UfRollData) GetUfRollGroovePos1() float64 { + if x != nil { + return x.UfRollGroovePos1 + } + return 0 +} + +func (x *UfRollData) GetUfRollGroovePos2() float64 { + if x != nil { + return x.UfRollGroovePos2 + } + return 0 +} + +func (x *UfRollData) GetUfRollGroovePos3() float64 { + if x != nil { + return x.UfRollGroovePos3 + } + return 0 +} + +func (x *UfRollData) GetUfRollGroovePos4() float64 { + if x != nil { + return x.UfRollGroovePos4 + } + return 0 +} + +func (x *UfRollData) GetUfRollGroovePos5() float64 { + if x != nil { + return x.UfRollGroovePos5 + } + return 0 +} + +func (x *UfRollData) GetUfRollGroovePos6() float64 { + if x != nil { + return x.UfRollGroovePos6 + } + return 0 +} + +func (x *UfRollData) GetUfRollGroovePos7() float64 { + if x != nil { + return x.UfRollGroovePos7 + } + return 0 +} + +func (x *UfRollData) GetUfRollGroovePos8() float64 { + if x != nil { + return x.UfRollGroovePos8 + } + return 0 +} + +func (x *UfRollData) GetUfRollGroovePos9() float64 { + if x != nil { + return x.UfRollGroovePos9 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveSharp0() int64 { + if x != nil { + return x.UfRollGrooveSharp0 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveSharp1() int64 { + if x != nil { + return x.UfRollGrooveSharp1 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveSharp2() int64 { + if x != nil { + return x.UfRollGrooveSharp2 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveSharp3() int64 { + if x != nil { + return x.UfRollGrooveSharp3 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveSharp4() int64 { + if x != nil { + return x.UfRollGrooveSharp4 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveSharp5() int64 { + if x != nil { + return x.UfRollGrooveSharp5 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveSharp6() int64 { + if x != nil { + return x.UfRollGrooveSharp6 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveSharp7() int64 { + if x != nil { + return x.UfRollGrooveSharp7 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveSharp8() int64 { + if x != nil { + return x.UfRollGrooveSharp8 + } + return 0 +} + +func (x *UfRollData) GetUfRollGrooveSharp9() int64 { + if x != nil { + return x.UfRollGrooveSharp9 + } + return 0 +} + +func (x *UfRollData) GetUfRollThrustPlate() float64 { + if x != nil { + return x.UfRollThrustPlate + } + return 0 +} + +func (x *UfRollData) GetUfRollId() string { + if x != nil { + return x.UfRollId + } + return "" +} + +func (x *UfRollData) GetUfDelFlag() bool { + if x != nil { + return x.UfDelFlag + } + return false +} + +func (x *UfRollData) GetUfRollSetIdOld() string { + if x != nil { + return x.UfRollSetIdOld + } + return "" +} + +func (x *UfRollData) GetTopShaftUf() string { + if x != nil { + return x.TopShaftUf + } + return "" +} + +func (x *UfRollData) GetBotShaftUf() string { + if x != nil { + return x.BotShaftUf + } + return "" +} + +func (x *UfRollData) GetUfFinSec5() string { + if x != nil { + return x.UfFinSec5 + } + return "" +} + +func (x *UfRollData) GetUfFinSec6() string { + if x != nil { + return x.UfFinSec6 + } + return "" +} + +func (x *UfRollData) GetUfFinSec7() string { + if x != nil { + return x.UfFinSec7 + } + return "" +} + +func (x *UfRollData) GetUfFinSec8() string { + if x != nil { + return x.UfFinSec8 + } + return "" +} + +func (x *UfRollData) GetUfFinSec9() string { + if x != nil { + return x.UfFinSec9 + } + return "" +} + +func (x *UfRollData) GetUfFinSec10() string { + if x != nil { + return x.UfFinSec10 + } + return "" +} + +func (x *UfRollData) GetUfFinSec11() string { + if x != nil { + return x.UfFinSec11 + } + return "" +} + +func (x *UfRollData) GetUfFinSec12() string { + if x != nil { + return x.UfFinSec12 + } + return "" +} + +func (x *UfRollData) GetUfFinSec13() string { + if x != nil { + return x.UfFinSec13 + } + return "" +} + +func (x *UfRollData) GetUfFinSec14() string { + if x != nil { + return x.UfFinSec14 + } + return "" +} + +func (x *UfRollData) GetUfFinSec15() string { + if x != nil { + return x.UfFinSec15 + } + return "" +} + +func (x *UfRollData) GetUfFinSec16() string { + if x != nil { + return x.UfFinSec16 + } + return "" +} + +func (x *UfRollData) GetUfFinSec17() string { + if x != nil { + return x.UfFinSec17 + } + return "" +} + +func (x *UfRollData) GetUfFinSec18() string { + if x != nil { + return x.UfFinSec18 + } + return "" +} + +func (x *UfRollData) GetUfFinSec19() string { + if x != nil { + return x.UfFinSec19 + } + return "" +} + +func (x *UfRollData) GetOldFlag() bool { + if x != nil { + return x.OldFlag + } + return false +} + +func (x *UfRollData) GetAmpuesaCorta() int64 { + if x != nil { + return x.AmpuesaCorta + } + return 0 +} + +func (x *UfRollData) GetEstadoRegistro() bool { + if x != nil { + return x.EstadoRegistro + } + return false +} + +func (x *UfRollData) GetFechaRegistro() string { + if x != nil { + return x.FechaRegistro + } + return "" +} + +func (x *UfRollData) GetFechaEnvio() string { + if x != nil { + return x.FechaEnvio + } + return "" +} + +var File_api_proto protoreflect.FileDescriptor + +var file_api_proto_rawDesc = []byte{ + 0x0a, 0x09, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x61, 0x70, 0x69, + 0x22, 0x5f, 0x0a, 0x0d, 0x42, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x71, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6c, 0x6c, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, + 0x70, 0x22, 0x6e, 0x0a, 0x0d, 0x42, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, + 0x70, 0x22, 0x5f, 0x0a, 0x0d, 0x55, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6c, + 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0x6e, 0x0a, 0x0d, 0x55, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, + 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x6d, 0x70, 0x22, 0x5f, 0x0a, 0x0d, 0x45, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, + 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x6d, 0x70, 0x22, 0x6e, 0x0a, 0x0d, 0x45, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x45, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x6d, 0x70, 0x22, 0x5f, 0x0a, 0x0d, 0x55, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x6f, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x6d, 0x70, 0x22, 0x6e, 0x0a, 0x0d, 0x55, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2c, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x61, 0x70, 0x69, + 0x2e, 0x55, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x72, 0x6f, 0x6c, + 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x6d, 0x70, 0x22, 0xd2, 0x2c, 0x0a, 0x0a, 0x42, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x10, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x62, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0e, + 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, 0x49, + 0x64, 0x12, 0x2b, 0x0a, 0x12, 0x62, 0x64, 0x5f, 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, + 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, + 0x64, 0x54, 0x6f, 0x70, 0x52, 0x6f, 0x6c, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2b, + 0x0a, 0x12, 0x62, 0x64, 0x5f, 0x62, 0x6f, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x62, 0x64, 0x42, 0x6f, + 0x74, 0x52, 0x6f, 0x6c, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x62, + 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x74, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x13, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, + 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x10, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x50, 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, + 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x35, 0x0a, + 0x18, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x6e, 0x6f, + 0x6d, 0x5f, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x6f, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x13, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x4e, 0x6f, 0x6d, 0x41, 0x63, + 0x74, 0x54, 0x6f, 0x70, 0x12, 0x35, 0x0a, 0x18, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x6e, 0x6f, 0x6d, 0x5f, 0x61, 0x63, 0x74, 0x5f, 0x62, 0x6f, 0x74, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x69, + 0x61, 0x6d, 0x4e, 0x6f, 0x6d, 0x41, 0x63, 0x74, 0x42, 0x6f, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x62, + 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x5f, 0x67, + 0x61, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, + 0x4e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x47, 0x61, 0x70, 0x12, 0x26, 0x0a, 0x0f, 0x62, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x73, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0d, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x30, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, + 0x69, 0x64, 0x74, 0x68, 0x30, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, + 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x31, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x31, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x32, 0x12, 0x31, 0x0a, 0x15, 0x62, + 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x33, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, + 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x33, 0x12, 0x31, + 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x34, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x34, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x35, 0x18, 0x11, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, + 0x64, 0x74, 0x68, 0x35, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x36, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x36, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x37, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x37, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x38, 0x18, 0x14, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x38, 0x12, 0x31, 0x0a, + 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x39, 0x18, 0x15, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x39, + 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, + 0x30, 0x18, 0x16, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, + 0x70, 0x30, 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, + 0x6f, 0x70, 0x31, 0x18, 0x17, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x54, 0x6f, 0x70, 0x31, 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x5f, 0x74, 0x6f, 0x70, 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x54, 0x6f, 0x70, 0x32, 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x33, 0x18, 0x19, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, + 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x33, 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, + 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x34, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, + 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x34, 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, + 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x35, 0x18, 0x1b, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x35, 0x12, 0x40, 0x0a, 0x1d, + 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, + 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x36, 0x18, 0x1c, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x36, 0x12, 0x40, + 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x37, 0x18, + 0x1d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x37, + 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, + 0x38, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, + 0x70, 0x38, 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, + 0x6f, 0x70, 0x39, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x54, 0x6f, 0x70, 0x39, 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x5f, 0x62, 0x6f, 0x74, 0x30, 0x18, 0x20, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x42, 0x6f, 0x74, 0x30, 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x31, 0x18, 0x21, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, + 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x31, 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, + 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x32, 0x18, 0x22, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, + 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x32, 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, + 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x33, 0x18, 0x23, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x33, 0x12, 0x40, 0x0a, 0x1d, + 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, + 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x34, 0x18, 0x24, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x34, 0x12, 0x40, + 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x35, 0x18, + 0x25, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x35, + 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, + 0x36, 0x18, 0x26, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, + 0x74, 0x36, 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, + 0x6f, 0x74, 0x37, 0x18, 0x27, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x42, 0x6f, 0x74, 0x37, 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x5f, 0x62, 0x6f, 0x74, 0x38, 0x18, 0x28, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x42, 0x6f, 0x74, 0x38, 0x12, 0x40, 0x0a, 0x1d, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x39, 0x18, 0x29, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x62, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, + 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x39, 0x12, 0x2d, 0x0a, 0x13, 0x62, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x30, 0x18, + 0x2a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x30, 0x12, 0x2d, 0x0a, 0x13, 0x62, 0x64, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x31, 0x18, 0x2b, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x50, 0x6f, 0x73, 0x31, 0x12, 0x2d, 0x0a, 0x13, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x32, 0x18, 0x2c, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x10, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x50, 0x6f, 0x73, 0x32, 0x12, 0x2d, 0x0a, 0x13, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, + 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x33, 0x18, 0x2d, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x10, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x50, 0x6f, 0x73, 0x33, 0x12, 0x2d, 0x0a, 0x13, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x34, 0x18, 0x2e, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x10, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, + 0x6f, 0x73, 0x34, 0x12, 0x2d, 0x0a, 0x13, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x35, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x10, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, + 0x73, 0x35, 0x12, 0x2d, 0x0a, 0x13, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x36, 0x18, 0x30, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x10, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, + 0x36, 0x12, 0x2d, 0x0a, 0x13, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x37, 0x18, 0x31, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, + 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x37, + 0x12, 0x2d, 0x0a, 0x13, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x38, 0x18, 0x32, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x62, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x38, 0x12, + 0x2d, 0x0a, 0x13, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x39, 0x18, 0x33, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x62, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x39, 0x12, 0x31, + 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x30, 0x18, 0x34, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x62, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, + 0x30, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x31, 0x18, 0x35, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, + 0x61, 0x72, 0x70, 0x31, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x32, 0x18, 0x36, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x32, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x33, + 0x18, 0x37, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x33, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, + 0x72, 0x70, 0x34, 0x18, 0x38, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x34, 0x12, 0x31, 0x0a, + 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, + 0x73, 0x68, 0x61, 0x72, 0x70, 0x35, 0x18, 0x39, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x62, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x35, + 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x36, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, + 0x72, 0x70, 0x36, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x37, 0x18, 0x3b, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x53, 0x68, 0x61, 0x72, 0x70, 0x37, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x38, 0x18, + 0x3c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x38, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, + 0x70, 0x39, 0x18, 0x3d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, + 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x39, 0x12, 0x31, 0x0a, 0x15, + 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x64, + 0x65, 0x70, 0x74, 0x68, 0x30, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x30, 0x12, + 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x31, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, + 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x70, 0x74, + 0x68, 0x31, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x32, 0x18, 0x40, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x44, + 0x65, 0x70, 0x74, 0x68, 0x32, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, + 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x33, 0x18, 0x41, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x33, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, + 0x34, 0x18, 0x42, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x34, 0x12, 0x31, 0x0a, 0x15, 0x62, + 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x70, 0x74, 0x68, 0x35, 0x18, 0x43, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, + 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x35, 0x12, 0x31, + 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x36, 0x18, 0x44, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, + 0x36, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x37, 0x18, 0x45, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x44, 0x65, + 0x70, 0x74, 0x68, 0x37, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x38, 0x18, 0x46, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x38, 0x12, 0x31, 0x0a, 0x15, 0x62, 0x64, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x39, + 0x18, 0x47, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x39, 0x12, 0x35, 0x0a, 0x17, 0x62, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x48, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x62, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x26, 0x0a, 0x10, 0x62, 0x64, 0x5f, 0x6e, 0x6f, 0x5f, 0x6f, 0x66, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x49, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x62, 0x64, 0x4e, + 0x6f, 0x4f, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x64, 0x5f, + 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x30, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x63, 0x30, 0x12, 0x20, 0x0a, 0x0c, 0x62, + 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x18, 0x4b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x62, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x63, 0x31, 0x12, 0x20, 0x0a, + 0x0c, 0x62, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x32, 0x18, 0x4c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x63, 0x32, 0x12, + 0x20, 0x0a, 0x0c, 0x62, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x33, 0x18, + 0x4d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x63, + 0x33, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, + 0x34, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, + 0x65, 0x63, 0x34, 0x12, 0x1e, 0x0a, 0x0b, 0x62, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, + 0x63, 0x30, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, + 0x65, 0x63, 0x30, 0x12, 0x1e, 0x0a, 0x0b, 0x62, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, + 0x63, 0x31, 0x18, 0x50, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, + 0x65, 0x63, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x62, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, + 0x63, 0x32, 0x18, 0x51, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, + 0x65, 0x63, 0x32, 0x12, 0x1e, 0x0a, 0x0b, 0x62, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, + 0x63, 0x33, 0x18, 0x52, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, + 0x65, 0x63, 0x33, 0x12, 0x1e, 0x0a, 0x0b, 0x62, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, + 0x63, 0x34, 0x18, 0x53, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, + 0x65, 0x63, 0x34, 0x12, 0x38, 0x0a, 0x19, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, + 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, 0x74, 0x6f, 0x70, + 0x18, 0x54, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x63, + 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x54, 0x6f, 0x70, 0x12, 0x38, 0x0a, + 0x19, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, + 0x73, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x18, 0x55, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x15, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, + 0x69, 0x6d, 0x70, 0x73, 0x42, 0x6f, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x64, 0x5f, 0x74, 0x6f, + 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x30, 0x18, 0x56, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x0f, 0x62, 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, + 0x75, 0x6d, 0x30, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x64, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x31, 0x18, 0x57, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, + 0x62, 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x31, 0x12, + 0x2a, 0x0a, 0x11, 0x62, 0x64, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x75, 0x6d, 0x32, 0x18, 0x58, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x62, 0x64, 0x54, 0x6f, + 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x32, 0x12, 0x2a, 0x0a, 0x11, 0x62, + 0x64, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x33, + 0x18, 0x59, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x62, 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, + 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x33, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x64, 0x5f, 0x74, 0x6f, + 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x34, 0x18, 0x5a, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x0f, 0x62, 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, + 0x75, 0x6d, 0x34, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x64, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x35, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, + 0x62, 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x35, 0x12, + 0x2a, 0x0a, 0x11, 0x62, 0x64, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, + 0x63, 0x75, 0x6d, 0x36, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x62, 0x64, 0x54, 0x6f, + 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x36, 0x12, 0x2a, 0x0a, 0x11, 0x62, + 0x64, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x37, + 0x18, 0x5d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x62, 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, + 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x37, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x64, 0x5f, 0x74, 0x6f, + 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x38, 0x18, 0x5e, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x0f, 0x62, 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, + 0x75, 0x6d, 0x38, 0x12, 0x2a, 0x0a, 0x11, 0x62, 0x64, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x39, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, + 0x62, 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x39, 0x12, + 0x1c, 0x0a, 0x0a, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x60, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0b, 0x62, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x61, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x09, 0x62, 0x64, 0x44, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2a, 0x0a, + 0x12, 0x62, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x5f, + 0x6f, 0x6c, 0x64, 0x18, 0x62, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x62, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x53, 0x65, 0x74, 0x49, 0x64, 0x4f, 0x6c, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x62, 0x64, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x35, 0x18, 0x63, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x35, 0x12, 0x1e, 0x0a, 0x0b, 0x62, 0x64, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x36, 0x18, 0x64, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x36, 0x12, 0x1e, 0x0a, 0x0b, 0x62, 0x64, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x37, 0x18, 0x65, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x37, 0x12, 0x1e, 0x0a, 0x0b, 0x62, 0x64, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x38, 0x18, 0x66, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x38, 0x12, 0x1e, 0x0a, 0x0b, 0x62, 0x64, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x39, 0x18, 0x67, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x39, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x64, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x30, 0x18, 0x68, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x30, 0x12, 0x20, 0x0a, 0x0c, 0x62, + 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x31, 0x18, 0x69, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x31, 0x12, 0x20, 0x0a, + 0x0c, 0x62, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x32, 0x18, 0x6a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x32, 0x12, + 0x20, 0x0a, 0x0c, 0x62, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x33, 0x18, + 0x6b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, + 0x33, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, + 0x34, 0x18, 0x6c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, + 0x63, 0x31, 0x34, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, + 0x63, 0x31, 0x35, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x64, 0x46, 0x69, 0x6e, + 0x53, 0x65, 0x63, 0x31, 0x35, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, + 0x73, 0x65, 0x63, 0x31, 0x36, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x64, 0x46, + 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x36, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x64, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x37, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, + 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x37, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x64, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x38, 0x18, 0x70, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x38, 0x12, 0x20, 0x0a, 0x0c, 0x62, + 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x39, 0x18, 0x71, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x62, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x39, 0x12, 0x19, 0x0a, + 0x08, 0x6f, 0x6c, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x72, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x6f, 0x6c, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x6c, 0x74, 0x75, + 0x72, 0x61, 0x5f, 0x62, 0x61, 0x72, 0x72, 0x6f, 0x6e, 0x5f, 0x73, 0x61, 0x6c, 0x69, 0x64, 0x61, + 0x18, 0x73, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x61, 0x6c, 0x74, 0x75, 0x72, 0x61, 0x42, 0x61, + 0x72, 0x72, 0x6f, 0x6e, 0x53, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x6c, + 0x74, 0x75, 0x72, 0x61, 0x5f, 0x62, 0x61, 0x72, 0x72, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x74, 0x72, + 0x61, 0x64, 0x61, 0x18, 0x74, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x61, 0x6c, 0x74, 0x75, 0x72, + 0x61, 0x42, 0x61, 0x72, 0x72, 0x6f, 0x6e, 0x45, 0x6e, 0x74, 0x72, 0x61, 0x64, 0x61, 0x12, 0x18, + 0x0a, 0x07, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x61, 0x18, 0x75, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x66, 0x61, 0x6d, 0x69, 0x6c, 0x69, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x72, 0x72, + 0x65, 0x63, 0x63, 0x69, 0x6f, 0x6e, 0x18, 0x76, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x63, 0x6f, + 0x72, 0x72, 0x65, 0x63, 0x63, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x65, 0x73, 0x74, 0x61, + 0x64, 0x6f, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x6f, 0x18, 0x77, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0e, 0x65, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x65, 0x63, 0x68, 0x61, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x6f, 0x18, 0x78, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x63, 0x68, 0x61, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x65, 0x63, 0x68, + 0x61, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x6f, 0x18, 0x79, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, + 0x65, 0x63, 0x68, 0x61, 0x45, 0x6e, 0x76, 0x69, 0x6f, 0x22, 0x87, 0x31, 0x0a, 0x0a, 0x55, 0x72, + 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x10, 0x75, 0x72, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x23, 0x0a, 0x0e, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x72, 0x52, 0x6f, 0x6c, + 0x6c, 0x53, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x68, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, + 0x49, 0x64, 0x48, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x72, 0x5f, 0x68, + 0x74, 0x6f, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x72, 0x48, 0x74, 0x6f, 0x52, 0x6f, 0x6c, 0x6c, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x72, 0x5f, 0x68, 0x62, 0x6f, 0x5f, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x75, 0x72, 0x48, 0x62, 0x6f, 0x52, 0x6f, 0x6c, 0x6c, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x6e, + 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x10, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x6f, + 0x73, 0x12, 0x27, 0x0a, 0x10, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x74, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, 0x72, 0x52, + 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x72, + 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x30, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x72, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, + 0x41, 0x63, 0x63, 0x75, 0x6d, 0x30, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x72, 0x5f, 0x74, 0x6f, 0x6e, + 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x31, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x0f, 0x75, 0x72, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, + 0x6d, 0x31, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x72, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, + 0x72, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x32, 0x12, 0x2a, + 0x0a, 0x11, 0x75, 0x72, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, + 0x75, 0x6d, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x72, 0x54, 0x6f, 0x6e, + 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x33, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x72, + 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x34, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x72, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, + 0x41, 0x63, 0x63, 0x75, 0x6d, 0x34, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x72, 0x5f, 0x74, 0x6f, 0x6e, + 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x35, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x0f, 0x75, 0x72, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, + 0x6d, 0x35, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x72, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x36, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, + 0x72, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x36, 0x12, 0x2a, + 0x0a, 0x11, 0x75, 0x72, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, + 0x75, 0x6d, 0x37, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x72, 0x54, 0x6f, 0x6e, + 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x37, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x72, + 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x38, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x72, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, + 0x41, 0x63, 0x63, 0x75, 0x6d, 0x38, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x72, 0x5f, 0x74, 0x6f, 0x6e, + 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x39, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x0f, 0x75, 0x72, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, + 0x6d, 0x39, 0x12, 0x35, 0x0a, 0x17, 0x75, 0x72, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x73, 0x6c, 0x65, 0x65, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x14, 0x75, 0x72, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x6c, 0x65, + 0x65, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x16, 0x75, 0x72, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x65, 0x65, 0x76, 0x65, 0x5f, 0x64, 0x65, + 0x70, 0x74, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x75, 0x72, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x53, 0x6c, 0x65, 0x65, 0x76, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x35, + 0x0a, 0x17, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, + 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x14, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x10, 0x75, 0x72, 0x5f, 0x6e, 0x6f, 0x5f, 0x6f, + 0x66, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0c, 0x75, 0x72, 0x4e, 0x6f, 0x4f, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x12, 0x20, 0x0a, + 0x0c, 0x75, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x30, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x63, 0x30, 0x12, + 0x20, 0x0a, 0x0c, 0x75, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x18, + 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x63, + 0x31, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, + 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x72, 0x49, 0x6e, 0x69, 0x74, 0x53, + 0x65, 0x63, 0x32, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, + 0x65, 0x63, 0x33, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x72, 0x49, 0x6e, 0x69, + 0x74, 0x53, 0x65, 0x63, 0x33, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x72, 0x5f, 0x69, 0x6e, 0x69, 0x74, + 0x5f, 0x73, 0x65, 0x63, 0x34, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x72, 0x49, + 0x6e, 0x69, 0x74, 0x53, 0x65, 0x63, 0x34, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x72, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x30, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x72, + 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x30, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x72, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x72, + 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x72, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x32, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x72, + 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x32, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x72, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x33, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x72, + 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x33, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x72, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x34, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x72, + 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x34, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x72, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x68, 0x18, 0x20, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x74, 0x65, 0x72, + 0x69, 0x61, 0x6c, 0x48, 0x12, 0x2e, 0x0a, 0x14, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x61, 0x63, 0x74, 0x5f, 0x68, 0x62, 0x6f, 0x18, 0x21, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x10, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x41, 0x63, + 0x74, 0x48, 0x62, 0x6f, 0x12, 0x2e, 0x0a, 0x14, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x61, 0x63, 0x74, 0x5f, 0x68, 0x74, 0x70, 0x18, 0x22, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x10, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x41, 0x63, + 0x74, 0x48, 0x74, 0x70, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x72, 0x5f, 0x68, 0x5f, 0x6e, 0x6f, 0x6d, + 0x67, 0x61, 0x70, 0x18, 0x23, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x75, 0x72, 0x48, 0x4e, 0x6f, + 0x6d, 0x67, 0x61, 0x70, 0x12, 0x2f, 0x0a, 0x14, 0x75, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, + 0x6c, 0x5f, 0x73, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, 0x68, 0x62, 0x6f, 0x18, 0x24, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x11, 0x75, 0x72, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x69, 0x6d, + 0x70, 0x73, 0x48, 0x62, 0x6f, 0x12, 0x2f, 0x0a, 0x14, 0x75, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x75, + 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, 0x68, 0x74, 0x70, 0x18, 0x25, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x11, 0x75, 0x72, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x69, + 0x6d, 0x70, 0x73, 0x48, 0x74, 0x70, 0x12, 0x36, 0x0a, 0x18, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x62, 0x61, 0x72, 0x72, 0x65, 0x6c, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x68, + 0x62, 0x6f, 0x18, 0x26, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, + 0x42, 0x61, 0x72, 0x72, 0x65, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x48, 0x62, 0x6f, 0x12, 0x36, + 0x0a, 0x18, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x62, 0x61, 0x72, 0x72, 0x65, 0x6c, + 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x68, 0x74, 0x70, 0x18, 0x27, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x14, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x72, 0x65, 0x6c, 0x57, 0x69, + 0x64, 0x74, 0x68, 0x48, 0x74, 0x70, 0x12, 0x32, 0x0a, 0x16, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x68, 0x62, 0x6f, + 0x18, 0x28, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, + 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x48, 0x62, 0x6f, 0x12, 0x32, 0x0a, 0x16, 0x75, 0x72, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x5f, 0x68, 0x74, 0x70, 0x18, 0x29, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, + 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x48, 0x74, 0x70, 0x12, 0x29, + 0x0a, 0x11, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, + 0x68, 0x62, 0x6f, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x75, 0x72, 0x52, 0x6f, 0x6c, + 0x6c, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x48, 0x62, 0x6f, 0x12, 0x29, 0x0a, 0x11, 0x75, 0x72, 0x5f, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x68, 0x74, 0x62, 0x18, 0x2b, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x6e, 0x67, 0x6c, + 0x65, 0x48, 0x74, 0x62, 0x12, 0x30, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x18, 0x2c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x11, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, 0x49, 0x64, + 0x56, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x72, 0x5f, 0x76, 0x64, 0x73, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x75, 0x72, 0x56, 0x64, 0x73, 0x52, 0x6f, 0x6c, 0x6c, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x72, 0x5f, 0x76, 0x6f, 0x73, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x75, 0x72, 0x56, 0x6f, 0x73, 0x52, 0x6f, 0x6c, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6d, 0x61, 0x74, 0x65, + 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x76, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x72, + 0x52, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x56, 0x12, 0x2e, 0x0a, + 0x14, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x61, 0x63, + 0x74, 0x5f, 0x76, 0x64, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x72, 0x52, + 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x41, 0x63, 0x74, 0x56, 0x64, 0x73, 0x12, 0x2e, 0x0a, + 0x14, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x61, 0x63, + 0x74, 0x5f, 0x76, 0x6f, 0x73, 0x18, 0x31, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x72, 0x52, + 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x41, 0x63, 0x74, 0x56, 0x6f, 0x73, 0x12, 0x29, 0x0a, + 0x11, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x76, + 0x64, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, + 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x64, 0x73, 0x12, 0x29, 0x0a, 0x11, 0x75, 0x72, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x76, 0x6f, 0x73, 0x18, 0x33, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x0e, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x6e, 0x67, 0x6c, 0x65, + 0x56, 0x6f, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x72, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x6c, 0x69, + 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x10, 0x75, 0x72, 0x50, 0x61, 0x73, 0x73, 0x6c, 0x69, 0x6e, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x12, 0x32, 0x0a, 0x16, 0x75, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, + 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, 0x76, 0x64, 0x73, 0x5f, 0x31, 0x18, 0x35, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x12, 0x75, 0x72, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x69, 0x6d, 0x70, + 0x73, 0x56, 0x64, 0x73, 0x31, 0x12, 0x32, 0x0a, 0x16, 0x75, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x75, + 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, 0x76, 0x64, 0x73, 0x5f, 0x32, 0x18, + 0x36, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x72, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, + 0x68, 0x69, 0x6d, 0x70, 0x73, 0x56, 0x64, 0x73, 0x32, 0x12, 0x32, 0x0a, 0x16, 0x75, 0x72, 0x5f, + 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, 0x76, 0x6f, + 0x73, 0x5f, 0x31, 0x18, 0x37, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x72, 0x41, 0x63, 0x74, + 0x75, 0x61, 0x6c, 0x53, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x56, 0x6f, 0x73, 0x31, 0x12, 0x32, 0x0a, + 0x16, 0x75, 0x72, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x69, 0x6d, 0x70, + 0x73, 0x5f, 0x76, 0x6f, 0x73, 0x5f, 0x32, 0x18, 0x38, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, + 0x72, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x56, 0x6f, 0x73, + 0x32, 0x12, 0x23, 0x0a, 0x0e, 0x75, 0x72, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x76, 0x5f, 0x63, 0x68, + 0x6f, 0x63, 0x6b, 0x18, 0x39, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x75, 0x72, 0x50, 0x69, 0x6e, + 0x56, 0x43, 0x68, 0x6f, 0x63, 0x6b, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x73, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0d, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x73, 0x12, 0x31, + 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x30, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, + 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x30, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x31, 0x18, 0x3c, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, + 0x64, 0x74, 0x68, 0x31, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x32, 0x18, 0x3d, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x32, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x33, + 0x18, 0x3e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x33, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x34, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x34, 0x12, 0x31, 0x0a, + 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, + 0x77, 0x69, 0x64, 0x74, 0x68, 0x35, 0x18, 0x40, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x72, + 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x35, + 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x36, 0x18, 0x41, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, + 0x74, 0x68, 0x36, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x37, 0x18, 0x42, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x37, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x38, 0x18, + 0x43, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x38, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x39, 0x18, 0x44, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, + 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x39, 0x12, 0x40, 0x0a, 0x1d, + 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, + 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x30, 0x18, 0x45, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x30, 0x12, 0x40, + 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x31, 0x18, + 0x46, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x31, + 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, + 0x32, 0x18, 0x47, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, + 0x70, 0x32, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, + 0x6f, 0x70, 0x33, 0x18, 0x48, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x54, 0x6f, 0x70, 0x33, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x5f, 0x74, 0x6f, 0x70, 0x34, 0x18, 0x49, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x54, 0x6f, 0x70, 0x34, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x35, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, + 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, + 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x35, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, + 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x36, 0x18, 0x4b, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, + 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x36, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, + 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x37, 0x18, 0x4c, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x37, 0x12, 0x40, 0x0a, 0x1d, + 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, + 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x38, 0x18, 0x4d, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x38, 0x12, 0x40, + 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x39, 0x18, + 0x4e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x39, + 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, + 0x30, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, + 0x74, 0x30, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, + 0x6f, 0x74, 0x31, 0x18, 0x50, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x42, 0x6f, 0x74, 0x31, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x5f, 0x62, 0x6f, 0x74, 0x32, 0x18, 0x51, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x42, 0x6f, 0x74, 0x32, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x33, 0x18, 0x52, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, + 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, + 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x33, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, + 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x34, 0x18, 0x53, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, + 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x34, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, + 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x35, 0x18, 0x54, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x35, 0x12, 0x40, 0x0a, 0x1d, + 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, + 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x36, 0x18, 0x55, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x36, 0x12, 0x40, + 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x37, 0x18, + 0x56, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x37, + 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, + 0x38, 0x18, 0x57, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, + 0x74, 0x38, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, + 0x6f, 0x74, 0x39, 0x18, 0x58, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x72, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x42, 0x6f, 0x74, 0x39, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x30, 0x18, 0x59, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x10, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, + 0x6f, 0x73, 0x30, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x31, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x10, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, + 0x73, 0x31, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x32, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x10, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, + 0x32, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x33, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, + 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x33, + 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x34, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, + 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x34, 0x12, + 0x2d, 0x0a, 0x13, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x35, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x72, + 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x35, 0x12, 0x2d, + 0x0a, 0x13, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x70, 0x6f, 0x73, 0x36, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x72, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x36, 0x12, 0x2d, 0x0a, + 0x13, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, + 0x70, 0x6f, 0x73, 0x37, 0x18, 0x60, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x72, 0x52, 0x6f, + 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x37, 0x12, 0x2d, 0x0a, 0x13, + 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, + 0x6f, 0x73, 0x38, 0x18, 0x61, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x72, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x38, 0x12, 0x2d, 0x0a, 0x13, 0x75, + 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, + 0x73, 0x39, 0x18, 0x62, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, + 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x39, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, + 0x72, 0x70, 0x30, 0x18, 0x63, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x30, 0x12, 0x31, 0x0a, + 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, + 0x73, 0x68, 0x61, 0x72, 0x70, 0x31, 0x18, 0x64, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, 0x72, + 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x31, + 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x32, 0x18, 0x65, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, + 0x72, 0x70, 0x32, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x33, 0x18, 0x66, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x53, 0x68, 0x61, 0x72, 0x70, 0x33, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x34, 0x18, + 0x67, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x34, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, + 0x70, 0x35, 0x18, 0x68, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, + 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x35, 0x12, 0x31, 0x0a, 0x15, + 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, + 0x68, 0x61, 0x72, 0x70, 0x36, 0x18, 0x69, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, 0x72, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x36, 0x12, + 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x37, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, + 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, + 0x70, 0x37, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x38, 0x18, 0x6b, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, + 0x68, 0x61, 0x72, 0x70, 0x38, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x72, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, + 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x39, 0x18, 0x6c, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x39, 0x12, 0x2f, 0x0a, 0x14, 0x75, 0x72, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x74, 0x68, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, 0x74, 0x65, + 0x18, 0x6d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x54, 0x68, + 0x72, 0x75, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x0a, 0x75, 0x72, 0x5f, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x72, 0x5f, 0x64, 0x65, + 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x75, 0x72, + 0x44, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x12, 0x75, 0x72, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x6f, 0x6c, 0x64, 0x18, 0x70, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, 0x49, 0x64, + 0x4f, 0x6c, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x6f, 0x70, 0x5f, 0x73, 0x68, 0x61, 0x66, 0x74, + 0x5f, 0x75, 0x72, 0x18, 0x71, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x70, 0x53, 0x68, + 0x61, 0x66, 0x74, 0x55, 0x72, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x6f, 0x74, 0x5f, 0x73, 0x68, 0x61, + 0x66, 0x74, 0x5f, 0x75, 0x72, 0x18, 0x72, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6f, 0x74, + 0x53, 0x68, 0x61, 0x66, 0x74, 0x55, 0x72, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x72, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x35, 0x18, 0x73, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x72, + 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x35, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x72, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x36, 0x18, 0x74, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x72, + 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x36, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x72, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x37, 0x18, 0x75, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x72, + 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x37, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x72, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x38, 0x18, 0x76, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x72, + 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x38, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x72, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x39, 0x18, 0x77, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x72, + 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x39, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x72, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x30, 0x18, 0x78, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, + 0x72, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x30, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x72, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x31, 0x18, 0x79, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x75, 0x72, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x31, 0x12, 0x20, 0x0a, 0x0c, 0x75, + 0x72, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x32, 0x18, 0x7a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x75, 0x72, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x32, 0x12, 0x20, 0x0a, + 0x0c, 0x75, 0x72, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x33, 0x18, 0x7b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x72, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x33, 0x12, + 0x20, 0x0a, 0x0c, 0x75, 0x72, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x34, 0x18, + 0x7c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x72, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, + 0x34, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x72, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, + 0x35, 0x18, 0x7d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x72, 0x46, 0x69, 0x6e, 0x53, 0x65, + 0x63, 0x31, 0x35, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x72, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, + 0x63, 0x31, 0x36, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x72, 0x46, 0x69, 0x6e, + 0x53, 0x65, 0x63, 0x31, 0x36, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x72, 0x5f, 0x66, 0x69, 0x6e, 0x5f, + 0x73, 0x65, 0x63, 0x31, 0x37, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x72, 0x46, + 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x37, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x72, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x38, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x75, 0x72, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x38, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x72, + 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x39, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x75, 0x72, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x39, 0x12, 0x1a, 0x0a, + 0x08, 0x6f, 0x6c, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6d, 0x70, + 0x75, 0x65, 0x73, 0x61, 0x5f, 0x63, 0x6f, 0x72, 0x74, 0x61, 0x18, 0x83, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0c, 0x61, 0x6d, 0x70, 0x75, 0x65, 0x73, 0x61, 0x43, 0x6f, 0x72, 0x74, 0x61, 0x12, + 0x28, 0x0a, 0x0f, 0x65, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x72, 0x6f, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x73, 0x74, 0x61, 0x64, + 0x6f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x65, 0x63, + 0x68, 0x61, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x6f, 0x18, 0x85, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x63, 0x68, 0x61, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x65, 0x63, 0x68, 0x61, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x6f, + 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x65, 0x63, 0x68, 0x61, 0x45, 0x6e, + 0x76, 0x69, 0x6f, 0x22, 0xd5, 0x49, 0x0a, 0x0a, 0x45, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x27, 0x0a, 0x10, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, + 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0e, 0x65, + 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, 0x49, 0x64, + 0x12, 0x2b, 0x0a, 0x12, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x64, + 0x54, 0x6f, 0x70, 0x52, 0x6f, 0x6c, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2b, 0x0a, + 0x12, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x64, 0x42, 0x6f, 0x74, + 0x52, 0x6f, 0x6c, 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x74, 0x65, + 0x72, 0x69, 0x61, 0x6c, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x10, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, + 0x50, 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2e, 0x0a, 0x14, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x6e, 0x6f, 0x6d, + 0x5f, 0x68, 0x74, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x65, 0x64, 0x52, 0x6f, + 0x6c, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x4e, 0x6f, 0x6d, 0x48, 0x74, 0x70, 0x12, 0x2e, 0x0a, 0x14, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x6e, 0x6f, 0x6d, + 0x5f, 0x68, 0x62, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x65, 0x64, 0x52, 0x6f, + 0x6c, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x4e, 0x6f, 0x6d, 0x48, 0x62, 0x6f, 0x12, 0x2d, 0x0a, 0x13, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x5f, + 0x67, 0x61, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x4e, 0x6f, 0x6d, 0x69, 0x6e, 0x61, 0x6c, 0x47, 0x61, 0x70, 0x12, 0x35, 0x0a, 0x17, 0x65, + 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x26, 0x0a, 0x10, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x5f, 0x6f, 0x66, 0x5f, 0x66, + 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x65, 0x64, + 0x4e, 0x6f, 0x4f, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x64, + 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x30, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x65, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x63, 0x30, 0x12, 0x20, 0x0a, 0x0c, + 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x65, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x63, 0x31, 0x12, 0x20, + 0x0a, 0x0c, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x32, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x63, 0x32, + 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x33, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x64, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, + 0x63, 0x33, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, + 0x63, 0x34, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x64, 0x49, 0x6e, 0x69, 0x74, + 0x53, 0x65, 0x63, 0x34, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, + 0x65, 0x63, 0x30, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x64, 0x46, 0x69, 0x6e, + 0x53, 0x65, 0x63, 0x30, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, + 0x65, 0x63, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x64, 0x46, 0x69, 0x6e, + 0x53, 0x65, 0x63, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, + 0x65, 0x63, 0x32, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x64, 0x46, 0x69, 0x6e, + 0x53, 0x65, 0x63, 0x32, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, + 0x65, 0x63, 0x33, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x64, 0x46, 0x69, 0x6e, + 0x53, 0x65, 0x63, 0x33, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, + 0x65, 0x63, 0x34, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x64, 0x46, 0x69, 0x6e, + 0x53, 0x65, 0x63, 0x34, 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x6e, 0x6f, 0x5f, 0x6f, 0x66, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x73, 0x18, 0x17, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x4e, 0x6f, 0x4f, 0x66, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x5f, 0x74, + 0x6f, 0x70, 0x30, 0x18, 0x18, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x54, 0x6f, 0x70, 0x30, + 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x5f, 0x74, 0x6f, 0x70, 0x31, 0x18, 0x19, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x54, 0x6f, 0x70, 0x31, 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, + 0x66, 0x66, 0x5f, 0x74, 0x6f, 0x70, 0x32, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, + 0x54, 0x6f, 0x70, 0x32, 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x5f, 0x74, 0x6f, 0x70, + 0x33, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x54, 0x6f, 0x70, 0x33, 0x12, 0x38, + 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x5f, 0x74, 0x6f, 0x70, 0x34, 0x18, 0x1c, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x69, 0x66, 0x66, 0x54, 0x6f, 0x70, 0x34, 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, + 0x5f, 0x74, 0x6f, 0x70, 0x35, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x54, 0x6f, + 0x70, 0x35, 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x5f, 0x74, 0x6f, 0x70, 0x36, 0x18, + 0x1e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x54, 0x6f, 0x70, 0x36, 0x12, 0x38, 0x0a, 0x19, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, + 0x74, 0x69, 0x66, 0x66, 0x5f, 0x74, 0x6f, 0x70, 0x37, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, + 0x66, 0x66, 0x54, 0x6f, 0x70, 0x37, 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x5f, 0x74, + 0x6f, 0x70, 0x38, 0x18, 0x20, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x54, 0x6f, 0x70, 0x38, + 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x5f, 0x74, 0x6f, 0x70, 0x39, 0x18, 0x21, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x54, 0x6f, 0x70, 0x39, 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, + 0x66, 0x66, 0x5f, 0x62, 0x6f, 0x74, 0x30, 0x18, 0x22, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, + 0x42, 0x6f, 0x74, 0x30, 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x5f, 0x62, 0x6f, 0x74, + 0x31, 0x18, 0x23, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x42, 0x6f, 0x74, 0x31, 0x12, 0x38, + 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x5f, 0x62, 0x6f, 0x74, 0x32, 0x18, 0x24, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x69, 0x66, 0x66, 0x42, 0x6f, 0x74, 0x32, 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, + 0x5f, 0x62, 0x6f, 0x74, 0x33, 0x18, 0x25, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x42, 0x6f, + 0x74, 0x33, 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x5f, 0x62, 0x6f, 0x74, 0x34, 0x18, + 0x26, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x42, 0x6f, 0x74, 0x34, 0x12, 0x38, 0x0a, 0x19, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, + 0x74, 0x69, 0x66, 0x66, 0x5f, 0x62, 0x6f, 0x74, 0x35, 0x18, 0x27, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, + 0x66, 0x66, 0x42, 0x6f, 0x74, 0x35, 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x5f, 0x62, + 0x6f, 0x74, 0x36, 0x18, 0x28, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x42, 0x6f, 0x74, 0x36, + 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x5f, 0x62, 0x6f, 0x74, 0x37, 0x18, 0x29, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x42, 0x6f, 0x74, 0x37, 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, + 0x66, 0x66, 0x5f, 0x62, 0x6f, 0x74, 0x38, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, + 0x42, 0x6f, 0x74, 0x38, 0x12, 0x38, 0x0a, 0x19, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x5f, 0x62, 0x6f, 0x74, + 0x39, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x42, 0x6f, 0x74, 0x39, 0x12, 0x2d, + 0x0a, 0x13, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x70, 0x6f, 0x73, 0x30, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x65, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x30, 0x12, 0x2d, 0x0a, + 0x13, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, + 0x70, 0x6f, 0x73, 0x31, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x65, 0x64, 0x52, 0x6f, + 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x31, 0x12, 0x2d, 0x0a, 0x13, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, + 0x6f, 0x73, 0x32, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x32, 0x12, 0x2d, 0x0a, 0x13, 0x65, + 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, + 0x73, 0x33, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, + 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x33, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, + 0x34, 0x18, 0x30, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x34, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x64, 0x5f, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x35, + 0x18, 0x31, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x35, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x36, 0x18, + 0x32, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x36, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x64, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x37, 0x18, 0x33, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x50, 0x6f, 0x73, 0x37, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x38, 0x18, 0x34, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x10, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x50, 0x6f, 0x73, 0x38, 0x12, 0x2d, 0x0a, 0x13, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, + 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x39, 0x18, 0x35, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x10, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x50, 0x6f, 0x73, 0x39, 0x12, 0x2f, 0x0a, 0x14, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, + 0x6c, 0x5f, 0x73, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, 0x68, 0x62, 0x6f, 0x18, 0x36, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x69, 0x6d, + 0x70, 0x73, 0x48, 0x62, 0x6f, 0x12, 0x2f, 0x0a, 0x14, 0x65, 0x64, 0x5f, 0x61, 0x63, 0x74, 0x75, + 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, 0x68, 0x74, 0x70, 0x18, 0x37, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x69, + 0x6d, 0x70, 0x73, 0x48, 0x74, 0x70, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x65, 0x65, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x38, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x53, 0x6c, 0x65, 0x65, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x33, 0x0a, + 0x16, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x65, 0x65, 0x76, + 0x65, 0x5f, 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x39, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, + 0x64, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x6c, 0x65, 0x65, 0x76, 0x65, 0x44, 0x65, 0x70, + 0x74, 0x68, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x30, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x65, + 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x30, 0x12, 0x2a, + 0x0a, 0x11, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, + 0x75, 0x6d, 0x31, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x65, 0x64, 0x54, 0x6f, 0x6e, + 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x31, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x64, + 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x32, 0x18, + 0x3c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x65, 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, + 0x41, 0x63, 0x63, 0x75, 0x6d, 0x32, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6e, + 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x33, 0x18, 0x3d, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x0f, 0x65, 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, + 0x6d, 0x33, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x34, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x65, + 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x34, 0x12, 0x2a, + 0x0a, 0x11, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, + 0x75, 0x6d, 0x35, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x65, 0x64, 0x54, 0x6f, 0x6e, + 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x35, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x64, + 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x36, 0x18, + 0x40, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x65, 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, + 0x41, 0x63, 0x63, 0x75, 0x6d, 0x36, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6e, + 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x37, 0x18, 0x41, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x0f, 0x65, 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, + 0x6d, 0x37, 0x12, 0x2a, 0x0a, 0x11, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, + 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x38, 0x18, 0x42, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x65, + 0x64, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x38, 0x12, 0x2a, + 0x0a, 0x11, 0x65, 0x64, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, + 0x75, 0x6d, 0x39, 0x18, 0x43, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x65, 0x64, 0x54, 0x6f, 0x6e, + 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x39, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, + 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x30, 0x18, 0x44, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, + 0x70, 0x30, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x31, 0x18, 0x45, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, + 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, 0x70, 0x31, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, + 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x32, 0x18, 0x46, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, + 0x70, 0x32, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x33, 0x18, 0x47, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, + 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, 0x70, 0x33, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, + 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x34, 0x18, 0x48, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, + 0x70, 0x34, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x35, 0x18, 0x49, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, + 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, 0x70, 0x35, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, + 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x36, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, + 0x70, 0x36, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x37, 0x18, 0x4b, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, + 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, 0x70, 0x37, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, + 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x38, 0x18, 0x4c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, + 0x70, 0x38, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x39, 0x18, 0x4d, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, + 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, 0x70, 0x39, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, + 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x30, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, + 0x74, 0x30, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x31, 0x18, 0x4f, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, + 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, 0x74, 0x31, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, + 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x32, 0x18, 0x50, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, + 0x74, 0x32, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x33, 0x18, 0x51, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, + 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, 0x74, 0x33, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, + 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x34, 0x18, 0x52, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, + 0x74, 0x34, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x35, 0x18, 0x53, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, + 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, 0x74, 0x35, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, + 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x36, 0x18, 0x54, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, + 0x74, 0x36, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x37, 0x18, 0x55, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, + 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, 0x74, 0x37, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, + 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x38, 0x18, 0x56, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, + 0x74, 0x38, 0x12, 0x36, 0x0a, 0x18, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x66, 0x6c, + 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x39, 0x18, 0x57, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x46, 0x6c, 0x61, 0x6e, + 0x67, 0x65, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, 0x74, 0x39, 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x74, + 0x6f, 0x70, 0x30, 0x18, 0x58, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, 0x70, 0x30, 0x12, 0x30, 0x0a, 0x15, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, + 0x5f, 0x74, 0x6f, 0x70, 0x31, 0x18, 0x59, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, 0x70, 0x31, 0x12, 0x30, + 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, + 0x61, 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x32, 0x18, 0x5a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, 0x70, 0x32, + 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, + 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x33, 0x18, 0x5b, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, + 0x70, 0x33, 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, + 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x34, 0x18, 0x5c, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, + 0x54, 0x6f, 0x70, 0x34, 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x35, 0x18, 0x5d, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, + 0x61, 0x6d, 0x54, 0x6f, 0x70, 0x35, 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x74, 0x6f, 0x70, 0x36, 0x18, + 0x5e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, + 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, 0x70, 0x36, 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x74, 0x6f, 0x70, + 0x37, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, + 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, 0x70, 0x37, 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x74, + 0x6f, 0x70, 0x38, 0x18, 0x60, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, 0x70, 0x38, 0x12, 0x30, 0x0a, 0x15, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, + 0x5f, 0x74, 0x6f, 0x70, 0x39, 0x18, 0x61, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x54, 0x6f, 0x70, 0x39, 0x12, 0x30, + 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, + 0x61, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x30, 0x18, 0x62, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, 0x74, 0x30, + 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, + 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x31, 0x18, 0x63, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, + 0x74, 0x31, 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, + 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x32, 0x18, 0x64, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, + 0x42, 0x6f, 0x74, 0x32, 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x33, 0x18, 0x65, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, + 0x61, 0x6d, 0x42, 0x6f, 0x74, 0x33, 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x34, 0x18, + 0x66, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, + 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, 0x74, 0x34, 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x62, 0x6f, 0x74, + 0x35, 0x18, 0x67, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, + 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, 0x74, 0x35, 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x62, + 0x6f, 0x74, 0x36, 0x18, 0x68, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, 0x74, 0x36, 0x12, 0x30, 0x0a, 0x15, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, 0x61, 0x6d, + 0x5f, 0x62, 0x6f, 0x74, 0x37, 0x18, 0x69, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, 0x74, 0x37, 0x12, 0x30, + 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, 0x64, 0x69, + 0x61, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x38, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, 0x74, 0x38, + 0x12, 0x30, 0x0a, 0x15, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x77, 0x65, 0x62, 0x5f, + 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x62, 0x6f, 0x74, 0x39, 0x18, 0x6b, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x57, 0x65, 0x62, 0x44, 0x69, 0x61, 0x6d, 0x42, 0x6f, + 0x74, 0x39, 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, + 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x70, 0x30, 0x18, 0x6c, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, + 0x69, 0x64, 0x74, 0x68, 0x54, 0x6f, 0x70, 0x30, 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x74, + 0x6f, 0x70, 0x31, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x54, 0x6f, 0x70, 0x31, 0x12, 0x34, + 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x70, 0x32, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x54, 0x6f, 0x70, 0x32, 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x70, 0x33, 0x18, + 0x6f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, + 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x54, 0x6f, 0x70, 0x33, 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x5f, 0x74, 0x6f, 0x70, 0x34, 0x18, 0x70, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x54, 0x6f, 0x70, 0x34, + 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, + 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x70, 0x35, 0x18, 0x71, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, + 0x74, 0x68, 0x54, 0x6f, 0x70, 0x35, 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x70, + 0x36, 0x18, 0x72, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, + 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x54, 0x6f, 0x70, 0x36, 0x12, 0x34, 0x0a, 0x17, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x70, 0x37, 0x18, 0x73, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x54, 0x6f, + 0x70, 0x37, 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, + 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x70, 0x38, 0x18, 0x74, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, + 0x69, 0x64, 0x74, 0x68, 0x54, 0x6f, 0x70, 0x38, 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x74, + 0x6f, 0x70, 0x39, 0x18, 0x75, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x54, 0x6f, 0x70, 0x39, 0x12, 0x34, + 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x6f, 0x74, 0x30, 0x18, 0x76, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x42, 0x6f, 0x74, 0x30, 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x6f, 0x74, 0x31, 0x18, + 0x77, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, + 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x42, 0x6f, 0x74, 0x31, 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x5f, 0x62, 0x6f, 0x74, 0x32, 0x18, 0x78, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x42, 0x6f, 0x74, 0x32, + 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, + 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x6f, 0x74, 0x33, 0x18, 0x79, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, + 0x74, 0x68, 0x42, 0x6f, 0x74, 0x33, 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x6f, 0x74, + 0x34, 0x18, 0x7a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, + 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x42, 0x6f, 0x74, 0x34, 0x12, 0x34, 0x0a, 0x17, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x5f, 0x62, 0x6f, 0x74, 0x35, 0x18, 0x7b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x42, 0x6f, + 0x74, 0x35, 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, + 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x6f, 0x74, 0x36, 0x18, 0x7c, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, + 0x69, 0x64, 0x74, 0x68, 0x42, 0x6f, 0x74, 0x36, 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, + 0x6f, 0x74, 0x37, 0x18, 0x7d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x42, 0x6f, 0x74, 0x37, 0x12, 0x34, + 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x6f, 0x74, 0x38, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x42, 0x6f, 0x74, 0x38, 0x12, 0x34, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x62, 0x6f, 0x74, 0x39, 0x18, + 0x7f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, + 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x42, 0x6f, 0x74, 0x39, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x6e, + 0x67, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x30, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x16, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x6e, + 0x67, 0x65, 0x46, 0x61, 0x63, 0x65, 0x30, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x64, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, + 0x66, 0x61, 0x63, 0x65, 0x31, 0x18, 0x81, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x65, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x46, + 0x61, 0x63, 0x65, 0x31, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x63, + 0x65, 0x32, 0x18, 0x82, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x61, 0x63, 0x65, + 0x32, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, + 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x33, 0x18, + 0x83, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x6e, + 0x67, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x61, 0x63, 0x65, 0x33, 0x12, 0x3b, + 0x0a, 0x1a, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, + 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x34, 0x18, 0x84, 0x01, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x16, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x6e, 0x67, 0x6c, 0x65, + 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x61, 0x63, 0x65, 0x34, 0x12, 0x3b, 0x0a, 0x1a, 0x65, + 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, + 0x6e, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x35, 0x18, 0x85, 0x01, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x16, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x46, 0x6c, 0x61, + 0x6e, 0x67, 0x65, 0x46, 0x61, 0x63, 0x65, 0x35, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x66, 0x61, 0x63, 0x65, 0x36, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, + 0x46, 0x61, 0x63, 0x65, 0x36, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, + 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x66, 0x61, + 0x63, 0x65, 0x37, 0x18, 0x87, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x65, 0x64, 0x52, 0x6f, + 0x6c, 0x6c, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x61, 0x63, + 0x65, 0x37, 0x12, 0x3b, 0x0a, 0x1a, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, + 0x67, 0x6c, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x38, + 0x18, 0x88, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x41, + 0x6e, 0x67, 0x6c, 0x65, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x61, 0x63, 0x65, 0x38, 0x12, + 0x3b, 0x0a, 0x1a, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, + 0x5f, 0x66, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x66, 0x61, 0x63, 0x65, 0x39, 0x18, 0x89, 0x01, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x16, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x6e, 0x67, 0x6c, + 0x65, 0x46, 0x6c, 0x61, 0x6e, 0x67, 0x65, 0x46, 0x61, 0x63, 0x65, 0x39, 0x12, 0x30, 0x0a, 0x14, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x30, 0x18, 0x8a, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x30, 0x12, 0x30, + 0x0a, 0x14, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x31, 0x18, 0x8b, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x31, + 0x12, 0x30, 0x0a, 0x14, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x72, 0x6f, 0x6f, 0x74, + 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x32, 0x18, 0x8c, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x32, 0x12, 0x30, 0x0a, 0x14, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x72, 0x6f, + 0x6f, 0x74, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x33, 0x18, 0x8d, 0x01, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x33, 0x12, 0x30, 0x0a, 0x14, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x34, 0x18, 0x8e, 0x01, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x52, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x34, 0x12, 0x30, 0x0a, 0x14, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x35, 0x18, 0x8f, + 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x52, 0x6f, 0x6f, + 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x35, 0x12, 0x30, 0x0a, 0x14, 0x65, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, 0x73, 0x36, + 0x18, 0x90, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x52, + 0x6f, 0x6f, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x36, 0x12, 0x30, 0x0a, 0x14, 0x65, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x61, 0x64, 0x69, 0x75, + 0x73, 0x37, 0x18, 0x91, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, 0x6f, 0x6c, + 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x37, 0x12, 0x30, 0x0a, 0x14, + 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x61, 0x64, + 0x69, 0x75, 0x73, 0x38, 0x18, 0x92, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x38, 0x12, 0x30, + 0x0a, 0x14, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x72, 0x6f, 0x6f, 0x74, 0x5f, 0x72, + 0x61, 0x64, 0x69, 0x75, 0x73, 0x39, 0x18, 0x93, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x65, + 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x52, 0x6f, 0x6f, 0x74, 0x52, 0x61, 0x64, 0x69, 0x75, 0x73, 0x39, + 0x12, 0x2d, 0x0a, 0x12, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x6c, 0x69, 0x6e, 0x65, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x94, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x65, + 0x64, 0x50, 0x61, 0x73, 0x73, 0x6c, 0x69, 0x6e, 0x65, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, + 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x30, 0x18, 0x95, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x53, 0x68, 0x61, 0x72, 0x70, 0x30, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, + 0x31, 0x18, 0x96, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x31, 0x12, 0x35, 0x0a, + 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x32, 0x18, 0x97, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, + 0x61, 0x72, 0x70, 0x32, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x33, 0x18, + 0x98, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x33, 0x12, 0x35, 0x0a, 0x17, 0x65, + 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, + 0x73, 0x68, 0x61, 0x72, 0x70, 0x34, 0x18, 0x99, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x65, + 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, + 0x70, 0x34, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x35, 0x18, 0x9a, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x35, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, + 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, + 0x61, 0x72, 0x70, 0x36, 0x18, 0x9b, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x65, 0x64, 0x44, + 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x36, + 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x37, 0x18, 0x9c, 0x01, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x37, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, + 0x70, 0x38, 0x18, 0x9d, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, + 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x38, 0x12, 0x35, + 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x39, 0x18, 0x9e, 0x01, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, + 0x68, 0x61, 0x72, 0x70, 0x39, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x30, + 0x18, 0x9f, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, + 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x30, 0x12, 0x35, 0x0a, 0x17, + 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x31, 0x18, 0xa0, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, + 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, + 0x74, 0x68, 0x31, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, + 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x32, 0x18, 0xa1, + 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x32, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, + 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x33, 0x18, 0xa2, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, + 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, + 0x33, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x34, 0x18, 0xa3, 0x01, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x34, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x35, 0x18, 0xa4, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x35, 0x12, + 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x36, 0x18, 0xa5, 0x01, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x36, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x37, 0x18, 0xa6, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x37, 0x12, 0x35, 0x0a, + 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x38, 0x18, 0xa7, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, + 0x64, 0x74, 0x68, 0x38, 0x12, 0x35, 0x0a, 0x17, 0x65, 0x64, 0x5f, 0x64, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x39, 0x18, + 0xa8, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x65, 0x64, 0x44, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x39, 0x12, 0x1d, 0x0a, 0x0a, 0x65, + 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0xa9, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x64, + 0x5f, 0x64, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0xaa, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2b, 0x0a, 0x12, 0x65, + 0x64, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x6f, 0x6c, + 0x64, 0x18, 0xab, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x64, 0x52, 0x6f, 0x6c, 0x6c, + 0x53, 0x65, 0x74, 0x49, 0x64, 0x4f, 0x6c, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x64, 0x5f, 0x66, + 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x35, 0x18, 0xac, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x65, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x35, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x64, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x36, 0x18, 0xad, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x36, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x64, + 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x37, 0x18, 0xae, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x37, 0x12, 0x1f, 0x0a, 0x0b, 0x65, + 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x38, 0x18, 0xaf, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x38, 0x12, 0x1f, 0x0a, 0x0b, + 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x39, 0x18, 0xb0, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x39, 0x12, 0x21, 0x0a, + 0x0c, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x30, 0x18, 0xb1, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x30, + 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x31, + 0x18, 0xb2, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, + 0x63, 0x31, 0x31, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, + 0x63, 0x31, 0x32, 0x18, 0xb3, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x64, 0x46, 0x69, + 0x6e, 0x53, 0x65, 0x63, 0x31, 0x32, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, + 0x5f, 0x73, 0x65, 0x63, 0x31, 0x33, 0x18, 0xb4, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, + 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x33, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x64, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x34, 0x18, 0xb5, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x34, 0x12, 0x21, 0x0a, 0x0c, + 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x35, 0x18, 0xb6, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x35, 0x12, + 0x21, 0x0a, 0x0c, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x36, 0x18, + 0xb7, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, + 0x31, 0x36, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, + 0x31, 0x37, 0x18, 0xb8, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x64, 0x46, 0x69, 0x6e, + 0x53, 0x65, 0x63, 0x31, 0x37, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x64, 0x5f, 0x66, 0x69, 0x6e, 0x5f, + 0x73, 0x65, 0x63, 0x31, 0x38, 0x18, 0xb9, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x64, + 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x38, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x64, 0x5f, 0x66, + 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x39, 0x18, 0xba, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x65, 0x64, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x39, 0x12, 0x1a, 0x0a, 0x08, 0x6f, + 0x6c, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0xbb, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x6f, 0x6c, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x73, 0x74, 0x61, 0x64, + 0x6f, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x6f, 0x18, 0xbc, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0e, 0x65, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, + 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x65, 0x63, 0x68, 0x61, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x6f, 0x18, 0xbd, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x63, 0x68, + 0x61, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x65, 0x63, + 0x68, 0x61, 0x5f, 0x65, 0x6e, 0x76, 0x69, 0x6f, 0x18, 0xbe, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x66, 0x65, 0x63, 0x68, 0x61, 0x45, 0x6e, 0x76, 0x69, 0x6f, 0x22, 0x87, 0x31, 0x0a, 0x0a, + 0x55, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x27, 0x0a, 0x10, 0x75, 0x66, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0e, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x75, 0x66, 0x52, + 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, 0x49, 0x64, 0x12, 0x30, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x68, 0x72, 0x6f, 0x6c, 0x6c, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x53, + 0x65, 0x74, 0x49, 0x64, 0x48, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x66, + 0x5f, 0x68, 0x74, 0x6f, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x66, 0x48, 0x74, 0x6f, 0x52, 0x6f, 0x6c, + 0x6c, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x66, 0x5f, 0x68, 0x62, + 0x6f, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x66, 0x48, 0x62, 0x6f, 0x52, 0x6f, 0x6c, 0x6c, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x70, 0x6f, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x10, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, + 0x50, 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, + 0x65, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x75, + 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, + 0x75, 0x66, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, + 0x30, 0x18, 0x08, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x66, 0x54, 0x6f, 0x6e, 0x6e, 0x61, + 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x30, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x66, 0x5f, 0x74, + 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x31, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x66, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, + 0x63, 0x75, 0x6d, 0x31, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x66, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, + 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x32, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x0f, 0x75, 0x66, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x32, + 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x66, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, + 0x63, 0x63, 0x75, 0x6d, 0x33, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x66, 0x54, + 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x33, 0x12, 0x2a, 0x0a, 0x11, + 0x75, 0x66, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, + 0x34, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x66, 0x54, 0x6f, 0x6e, 0x6e, 0x61, + 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x34, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x66, 0x5f, 0x74, + 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x35, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x66, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, + 0x63, 0x75, 0x6d, 0x35, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x66, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, + 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x36, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x0f, 0x75, 0x66, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x36, + 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x66, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, + 0x63, 0x63, 0x75, 0x6d, 0x37, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x66, 0x54, + 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x37, 0x12, 0x2a, 0x0a, 0x11, + 0x75, 0x66, 0x5f, 0x74, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, + 0x38, 0x18, 0x10, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x66, 0x54, 0x6f, 0x6e, 0x6e, 0x61, + 0x67, 0x65, 0x41, 0x63, 0x63, 0x75, 0x6d, 0x38, 0x12, 0x2a, 0x0a, 0x11, 0x75, 0x66, 0x5f, 0x74, + 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x75, 0x6d, 0x39, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x0f, 0x75, 0x66, 0x54, 0x6f, 0x6e, 0x6e, 0x61, 0x67, 0x65, 0x41, 0x63, + 0x63, 0x75, 0x6d, 0x39, 0x12, 0x35, 0x0a, 0x17, 0x75, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x5f, 0x73, 0x6c, 0x65, 0x65, 0x76, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x75, 0x66, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, + 0x6c, 0x65, 0x65, 0x76, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x16, 0x75, + 0x66, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x73, 0x6c, 0x65, 0x65, 0x76, 0x65, 0x5f, + 0x64, 0x65, 0x70, 0x74, 0x68, 0x18, 0x13, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, 0x75, 0x66, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x53, 0x6c, 0x65, 0x65, 0x76, 0x65, 0x44, 0x65, 0x70, 0x74, 0x68, + 0x12, 0x35, 0x0a, 0x17, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x73, 0x73, 0x65, + 0x6d, 0x62, 0x6c, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x14, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x10, 0x75, 0x66, 0x5f, 0x6e, 0x6f, + 0x5f, 0x6f, 0x66, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x15, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0c, 0x75, 0x66, 0x4e, 0x6f, 0x4f, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x12, + 0x20, 0x0a, 0x0c, 0x75, 0x66, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x30, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x66, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x63, + 0x30, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x66, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, + 0x31, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x66, 0x49, 0x6e, 0x69, 0x74, 0x53, + 0x65, 0x63, 0x31, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x66, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x73, + 0x65, 0x63, 0x32, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x66, 0x49, 0x6e, 0x69, + 0x74, 0x53, 0x65, 0x63, 0x32, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x66, 0x5f, 0x69, 0x6e, 0x69, 0x74, + 0x5f, 0x73, 0x65, 0x63, 0x33, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x66, 0x49, + 0x6e, 0x69, 0x74, 0x53, 0x65, 0x63, 0x33, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x66, 0x5f, 0x69, 0x6e, + 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x34, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, + 0x66, 0x49, 0x6e, 0x69, 0x74, 0x53, 0x65, 0x63, 0x34, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x66, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x30, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x30, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x66, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x66, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x32, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x32, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x66, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x33, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x33, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x66, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x34, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x34, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x66, 0x5f, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x68, 0x18, + 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x74, + 0x65, 0x72, 0x69, 0x61, 0x6c, 0x48, 0x12, 0x2e, 0x0a, 0x14, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x61, 0x63, 0x74, 0x5f, 0x68, 0x62, 0x6f, 0x18, 0x21, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x61, 0x6d, + 0x41, 0x63, 0x74, 0x48, 0x62, 0x6f, 0x12, 0x2e, 0x0a, 0x14, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, 0x61, 0x63, 0x74, 0x5f, 0x68, 0x74, 0x70, 0x18, 0x22, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x61, 0x6d, + 0x41, 0x63, 0x74, 0x48, 0x74, 0x70, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x66, 0x5f, 0x68, 0x5f, 0x6e, + 0x6f, 0x6d, 0x67, 0x61, 0x70, 0x18, 0x23, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x75, 0x66, 0x48, + 0x4e, 0x6f, 0x6d, 0x67, 0x61, 0x70, 0x12, 0x2f, 0x0a, 0x14, 0x75, 0x66, 0x5f, 0x61, 0x63, 0x74, + 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, 0x68, 0x62, 0x6f, 0x18, 0x24, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x75, 0x66, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, + 0x69, 0x6d, 0x70, 0x73, 0x48, 0x62, 0x6f, 0x12, 0x2f, 0x0a, 0x14, 0x75, 0x66, 0x5f, 0x61, 0x63, + 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, 0x68, 0x74, 0x70, 0x18, + 0x25, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x75, 0x66, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, + 0x68, 0x69, 0x6d, 0x70, 0x73, 0x48, 0x74, 0x70, 0x12, 0x36, 0x0a, 0x18, 0x75, 0x66, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x62, 0x61, 0x72, 0x72, 0x65, 0x6c, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x5f, 0x68, 0x62, 0x6f, 0x18, 0x26, 0x20, 0x01, 0x28, 0x01, 0x52, 0x14, 0x75, 0x66, 0x52, 0x6f, + 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x72, 0x65, 0x6c, 0x57, 0x69, 0x64, 0x74, 0x68, 0x48, 0x62, 0x6f, + 0x12, 0x36, 0x0a, 0x18, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x62, 0x61, 0x72, 0x72, + 0x65, 0x6c, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x68, 0x74, 0x70, 0x18, 0x27, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x14, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x42, 0x61, 0x72, 0x72, 0x65, 0x6c, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x48, 0x74, 0x70, 0x12, 0x32, 0x0a, 0x16, 0x75, 0x66, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x68, + 0x62, 0x6f, 0x18, 0x28, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, + 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x48, 0x62, 0x6f, 0x12, 0x32, 0x0a, 0x16, + 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x63, 0x68, 0x61, 0x6d, 0x5f, 0x77, 0x69, 0x64, + 0x74, 0x68, 0x5f, 0x68, 0x74, 0x70, 0x18, 0x29, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x66, + 0x52, 0x6f, 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x6d, 0x57, 0x69, 0x64, 0x74, 0x68, 0x48, 0x74, 0x70, + 0x12, 0x29, 0x0a, 0x11, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, + 0x65, 0x5f, 0x68, 0x62, 0x6f, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x75, 0x66, 0x52, + 0x6f, 0x6c, 0x6c, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x48, 0x62, 0x6f, 0x12, 0x29, 0x0a, 0x11, 0x75, + 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x68, 0x74, 0x62, + 0x18, 0x2b, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x6e, + 0x67, 0x6c, 0x65, 0x48, 0x74, 0x62, 0x12, 0x30, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x76, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x18, + 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, + 0x49, 0x64, 0x56, 0x72, 0x6f, 0x6c, 0x6c, 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x66, 0x5f, 0x76, + 0x64, 0x73, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x75, 0x66, 0x56, 0x64, 0x73, 0x52, 0x6f, 0x6c, 0x6c, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x66, 0x5f, 0x76, 0x6f, 0x73, 0x5f, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x2e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x75, 0x66, 0x56, 0x6f, 0x73, 0x52, 0x6f, 0x6c, 0x6c, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x6d, 0x61, + 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x76, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x4d, 0x61, 0x74, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x56, 0x12, + 0x2e, 0x0a, 0x14, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, + 0x61, 0x63, 0x74, 0x5f, 0x76, 0x64, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, + 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x41, 0x63, 0x74, 0x56, 0x64, 0x73, 0x12, + 0x2e, 0x0a, 0x14, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x64, 0x69, 0x61, 0x6d, 0x5f, + 0x61, 0x63, 0x74, 0x5f, 0x76, 0x6f, 0x73, 0x18, 0x31, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, + 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x69, 0x61, 0x6d, 0x41, 0x63, 0x74, 0x56, 0x6f, 0x73, 0x12, + 0x29, 0x0a, 0x11, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, + 0x5f, 0x76, 0x64, 0x73, 0x18, 0x32, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x75, 0x66, 0x52, 0x6f, + 0x6c, 0x6c, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x56, 0x64, 0x73, 0x12, 0x29, 0x0a, 0x11, 0x75, 0x66, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x61, 0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x76, 0x6f, 0x73, 0x18, + 0x33, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x41, 0x6e, 0x67, + 0x6c, 0x65, 0x56, 0x6f, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x75, 0x66, 0x5f, 0x70, 0x61, 0x73, 0x73, + 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x10, 0x75, 0x66, 0x50, 0x61, 0x73, 0x73, 0x6c, 0x69, 0x6e, 0x65, 0x4f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x12, 0x32, 0x0a, 0x16, 0x75, 0x66, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, + 0x5f, 0x73, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, 0x76, 0x64, 0x73, 0x5f, 0x31, 0x18, 0x35, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x66, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x69, + 0x6d, 0x70, 0x73, 0x56, 0x64, 0x73, 0x31, 0x12, 0x32, 0x0a, 0x16, 0x75, 0x66, 0x5f, 0x61, 0x63, + 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, 0x76, 0x64, 0x73, 0x5f, + 0x32, 0x18, 0x36, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x66, 0x41, 0x63, 0x74, 0x75, 0x61, + 0x6c, 0x53, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x56, 0x64, 0x73, 0x32, 0x12, 0x32, 0x0a, 0x16, 0x75, + 0x66, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x5f, + 0x76, 0x6f, 0x73, 0x5f, 0x31, 0x18, 0x37, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x66, 0x41, + 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x56, 0x6f, 0x73, 0x31, 0x12, + 0x32, 0x0a, 0x16, 0x75, 0x66, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x69, + 0x6d, 0x70, 0x73, 0x5f, 0x76, 0x6f, 0x73, 0x5f, 0x32, 0x18, 0x38, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x12, 0x75, 0x66, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x53, 0x68, 0x69, 0x6d, 0x70, 0x73, 0x56, + 0x6f, 0x73, 0x32, 0x12, 0x23, 0x0a, 0x0e, 0x75, 0x66, 0x5f, 0x70, 0x69, 0x6e, 0x5f, 0x76, 0x5f, + 0x63, 0x68, 0x6f, 0x63, 0x6b, 0x18, 0x39, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x75, 0x66, 0x50, + 0x69, 0x6e, 0x56, 0x43, 0x68, 0x6f, 0x63, 0x6b, 0x12, 0x26, 0x0a, 0x0f, 0x75, 0x66, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x73, 0x18, 0x3a, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0d, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x73, + 0x12, 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x30, 0x18, 0x3b, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, + 0x74, 0x68, 0x30, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x31, 0x18, 0x3c, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x57, 0x69, 0x64, 0x74, 0x68, 0x31, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x32, 0x18, + 0x3d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x32, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x33, 0x18, 0x3e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, + 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x33, 0x12, 0x31, 0x0a, 0x15, + 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x34, 0x18, 0x3f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x66, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x34, 0x12, + 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x35, 0x18, 0x40, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, + 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, + 0x68, 0x35, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x36, 0x18, 0x41, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, + 0x69, 0x64, 0x74, 0x68, 0x36, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, + 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x37, 0x18, 0x42, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x37, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x38, 0x18, 0x43, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x38, 0x12, 0x31, 0x0a, 0x15, 0x75, + 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x39, 0x18, 0x44, 0x20, 0x01, 0x28, 0x01, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, + 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x57, 0x69, 0x64, 0x74, 0x68, 0x39, 0x12, 0x40, + 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x30, 0x18, + 0x45, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x30, + 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, + 0x31, 0x18, 0x46, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, + 0x70, 0x31, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, + 0x6f, 0x70, 0x32, 0x18, 0x47, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x54, 0x6f, 0x70, 0x32, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x5f, 0x74, 0x6f, 0x70, 0x33, 0x18, 0x48, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x54, 0x6f, 0x70, 0x33, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x34, 0x18, 0x49, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, + 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, + 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x34, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, + 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x35, 0x18, 0x4a, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, + 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x35, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, + 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x36, 0x18, 0x4b, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x36, 0x12, 0x40, 0x0a, 0x1d, + 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, + 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x37, 0x18, 0x4c, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x37, 0x12, 0x40, + 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, 0x38, 0x18, + 0x4d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x70, 0x38, + 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x70, + 0x39, 0x18, 0x4e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x54, 0x6f, + 0x70, 0x39, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, + 0x6f, 0x74, 0x30, 0x18, 0x4f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x42, 0x6f, 0x74, 0x30, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x5f, 0x62, 0x6f, 0x74, 0x31, 0x18, 0x50, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x42, 0x6f, 0x74, 0x31, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x32, 0x18, 0x51, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, + 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, + 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x32, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, + 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x33, 0x18, 0x52, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, + 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x33, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, + 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x34, 0x18, 0x53, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x34, 0x12, 0x40, 0x0a, 0x1d, + 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, + 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x35, 0x18, 0x54, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x35, 0x12, 0x40, + 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, 0x36, 0x18, + 0x55, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, 0x74, 0x36, + 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, 0x6f, 0x74, + 0x37, 0x18, 0x56, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x6f, + 0x74, 0x37, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x62, + 0x6f, 0x74, 0x38, 0x18, 0x57, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, 0x6f, 0x6c, + 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x42, 0x6f, 0x74, 0x38, 0x12, 0x40, 0x0a, 0x1d, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, 0x73, 0x73, + 0x5f, 0x62, 0x6f, 0x74, 0x39, 0x18, 0x58, 0x20, 0x01, 0x28, 0x01, 0x52, 0x19, 0x75, 0x66, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x69, 0x66, 0x66, 0x6e, 0x65, + 0x73, 0x73, 0x42, 0x6f, 0x74, 0x39, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, + 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x30, 0x18, 0x59, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x50, 0x6f, 0x73, 0x30, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, + 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x31, 0x18, 0x5a, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x10, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x50, 0x6f, 0x73, 0x31, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x32, 0x18, 0x5b, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x10, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, + 0x6f, 0x73, 0x32, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x33, 0x18, 0x5c, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x10, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, + 0x73, 0x33, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x34, 0x18, 0x5d, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x10, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, + 0x34, 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x35, 0x18, 0x5e, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, + 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x35, + 0x12, 0x2d, 0x0a, 0x13, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x36, 0x18, 0x5f, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, + 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x36, 0x12, + 0x2d, 0x0a, 0x13, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x5f, 0x70, 0x6f, 0x73, 0x37, 0x18, 0x60, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x66, + 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x37, 0x12, 0x2d, + 0x0a, 0x13, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x70, 0x6f, 0x73, 0x38, 0x18, 0x61, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x66, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x38, 0x12, 0x2d, 0x0a, + 0x13, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, + 0x70, 0x6f, 0x73, 0x39, 0x18, 0x62, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x75, 0x66, 0x52, 0x6f, + 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x50, 0x6f, 0x73, 0x39, 0x12, 0x31, 0x0a, 0x15, + 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, + 0x68, 0x61, 0x72, 0x70, 0x30, 0x18, 0x63, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, 0x66, 0x52, + 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x30, 0x12, + 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x31, 0x18, 0x64, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, + 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, + 0x70, 0x31, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x32, 0x18, 0x65, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, + 0x68, 0x61, 0x72, 0x70, 0x32, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, + 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x33, 0x18, 0x66, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, + 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x33, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, + 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, + 0x34, 0x18, 0x67, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, + 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x34, 0x12, 0x31, 0x0a, 0x15, 0x75, + 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, + 0x61, 0x72, 0x70, 0x35, 0x18, 0x68, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, + 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x35, 0x12, 0x31, + 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, + 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x36, 0x18, 0x69, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, + 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, + 0x36, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, + 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x37, 0x18, 0x6a, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, + 0x61, 0x72, 0x70, 0x37, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, + 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x38, 0x18, 0x6b, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, 0x6f, 0x6f, 0x76, + 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x38, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x66, 0x5f, 0x72, 0x6f, + 0x6c, 0x6c, 0x5f, 0x67, 0x72, 0x6f, 0x6f, 0x76, 0x65, 0x5f, 0x73, 0x68, 0x61, 0x72, 0x70, 0x39, + 0x18, 0x6c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x47, 0x72, + 0x6f, 0x6f, 0x76, 0x65, 0x53, 0x68, 0x61, 0x72, 0x70, 0x39, 0x12, 0x2f, 0x0a, 0x14, 0x75, 0x66, + 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x74, 0x68, 0x72, 0x75, 0x73, 0x74, 0x5f, 0x70, 0x6c, 0x61, + 0x74, 0x65, 0x18, 0x6d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x11, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, + 0x54, 0x68, 0x72, 0x75, 0x73, 0x74, 0x50, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x0a, 0x75, + 0x66, 0x5f, 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x6e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x66, 0x5f, + 0x64, 0x65, 0x6c, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x6f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x75, 0x66, 0x44, 0x65, 0x6c, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x2a, 0x0a, 0x12, 0x75, 0x66, 0x5f, + 0x72, 0x6f, 0x6c, 0x6c, 0x5f, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x6f, 0x6c, 0x64, 0x18, + 0x70, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x65, 0x74, + 0x49, 0x64, 0x4f, 0x6c, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x74, 0x6f, 0x70, 0x5f, 0x73, 0x68, 0x61, + 0x66, 0x74, 0x5f, 0x75, 0x66, 0x18, 0x71, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x70, + 0x53, 0x68, 0x61, 0x66, 0x74, 0x55, 0x66, 0x12, 0x20, 0x0a, 0x0c, 0x62, 0x6f, 0x74, 0x5f, 0x73, + 0x68, 0x61, 0x66, 0x74, 0x5f, 0x75, 0x66, 0x18, 0x72, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, + 0x6f, 0x74, 0x53, 0x68, 0x61, 0x66, 0x74, 0x55, 0x66, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x66, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x35, 0x18, 0x73, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x35, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x66, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x36, 0x18, 0x74, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x36, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x66, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x37, 0x18, 0x75, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x37, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x66, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x38, 0x18, 0x76, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x38, 0x12, 0x1e, 0x0a, 0x0b, 0x75, 0x66, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x39, 0x18, 0x77, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x39, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x66, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x30, 0x18, 0x78, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x30, 0x12, 0x20, 0x0a, 0x0c, 0x75, + 0x66, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x31, 0x18, 0x79, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x31, 0x12, 0x20, 0x0a, + 0x0c, 0x75, 0x66, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x32, 0x18, 0x7a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x32, 0x12, + 0x20, 0x0a, 0x0c, 0x75, 0x66, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x33, 0x18, + 0x7b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, + 0x33, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x66, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, + 0x34, 0x18, 0x7c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, + 0x63, 0x31, 0x34, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x66, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, + 0x63, 0x31, 0x35, 0x18, 0x7d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x66, 0x46, 0x69, 0x6e, + 0x53, 0x65, 0x63, 0x31, 0x35, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x66, 0x5f, 0x66, 0x69, 0x6e, 0x5f, + 0x73, 0x65, 0x63, 0x31, 0x36, 0x18, 0x7e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x66, 0x46, + 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x36, 0x12, 0x20, 0x0a, 0x0c, 0x75, 0x66, 0x5f, 0x66, 0x69, + 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x37, 0x18, 0x7f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, + 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x37, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x66, 0x5f, + 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x38, 0x18, 0x80, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x38, 0x12, 0x21, 0x0a, 0x0c, + 0x75, 0x66, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x31, 0x39, 0x18, 0x81, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x66, 0x46, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x31, 0x39, 0x12, + 0x1a, 0x0a, 0x08, 0x6f, 0x6c, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x82, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x6f, 0x6c, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x24, 0x0a, 0x0d, 0x61, + 0x6d, 0x70, 0x75, 0x65, 0x73, 0x61, 0x5f, 0x63, 0x6f, 0x72, 0x74, 0x61, 0x18, 0x83, 0x01, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0c, 0x61, 0x6d, 0x70, 0x75, 0x65, 0x73, 0x61, 0x43, 0x6f, 0x72, 0x74, + 0x61, 0x12, 0x28, 0x0a, 0x0f, 0x65, 0x73, 0x74, 0x61, 0x64, 0x6f, 0x5f, 0x72, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x72, 0x6f, 0x18, 0x84, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x65, 0x73, 0x74, + 0x61, 0x64, 0x6f, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x66, + 0x65, 0x63, 0x68, 0x61, 0x5f, 0x72, 0x65, 0x67, 0x69, 0x73, 0x74, 0x72, 0x6f, 0x18, 0x85, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x65, 0x63, 0x68, 0x61, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x72, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x65, 0x63, 0x68, 0x61, 0x5f, 0x65, 0x6e, 0x76, + 0x69, 0x6f, 0x18, 0x86, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x65, 0x63, 0x68, 0x61, + 0x45, 0x6e, 0x76, 0x69, 0x6f, 0x32, 0xe9, 0x01, 0x0a, 0x0f, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x0a, 0x42, 0x64, 0x52, + 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x42, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x42, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x12, + 0x34, 0x0a, 0x0a, 0x55, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x55, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x71, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x55, 0x72, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x45, 0x64, 0x52, 0x6f, 0x6c, 0x6c, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x64, 0x52, 0x6f, 0x6c, 0x6c, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x45, 0x64, + 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x73, 0x12, 0x34, 0x0a, 0x0a, 0x55, + 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x2e, 0x61, 0x70, 0x69, 0x2e, + 0x55, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, + 0x61, 0x70, 0x69, 0x2e, 0x55, 0x66, 0x52, 0x6f, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, + 0x73, 0x42, 0x35, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x2e, 0x65, 0x73, 0x70, 0x69, 0x6e, 0x2e, 0x63, + 0x61, 0x73, 0x61, 0x2f, 0x61, 0x6c, 0x62, 0x65, 0x72, 0x74, 0x2f, 0x63, 0x6d, 0x6c, 0x30, 0x34, + 0x2d, 0x67, 0x64, 0x6d, 0x2d, 0x69, 0x6e, 0x74, 0x36, 0x34, 0x36, 0x34, 0x2f, 0x70, 0x6b, 0x67, + 0x2f, 0x61, 0x70, 0x69, 0x3b, 0x61, 0x70, 0x69, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_api_proto_rawDescOnce sync.Once + file_api_proto_rawDescData = file_api_proto_rawDesc +) + +func file_api_proto_rawDescGZIP() []byte { + file_api_proto_rawDescOnce.Do(func() { + file_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_api_proto_rawDescData) + }) + return file_api_proto_rawDescData +} + +var file_api_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_api_proto_goTypes = []interface{}{ + (*BdRollDataReq)(nil), // 0: api.BdRollDataReq + (*BdRollDataRes)(nil), // 1: api.BdRollDataRes + (*UrRollDataReq)(nil), // 2: api.UrRollDataReq + (*UrRollDataRes)(nil), // 3: api.UrRollDataRes + (*EdRollDataReq)(nil), // 4: api.EdRollDataReq + (*EdRollDataRes)(nil), // 5: api.EdRollDataRes + (*UfRollDataReq)(nil), // 6: api.UfRollDataReq + (*UfRollDataRes)(nil), // 7: api.UfRollDataRes + (*BdRollData)(nil), // 8: api.BdRollData + (*UrRollData)(nil), // 9: api.UrRollData + (*EdRollData)(nil), // 10: api.EdRollData + (*UfRollData)(nil), // 11: api.UfRollData +} +var file_api_proto_depIdxs = []int32{ + 8, // 0: api.BdRollDataRes.roll_data:type_name -> api.BdRollData + 9, // 1: api.UrRollDataRes.roll_data:type_name -> api.UrRollData + 10, // 2: api.EdRollDataRes.roll_data:type_name -> api.EdRollData + 11, // 3: api.UfRollDataRes.roll_data:type_name -> api.UfRollData + 0, // 4: api.RollDataService.BdRollData:input_type -> api.BdRollDataReq + 2, // 5: api.RollDataService.UrRollData:input_type -> api.UrRollDataReq + 4, // 6: api.RollDataService.EdRollData:input_type -> api.EdRollDataReq + 6, // 7: api.RollDataService.UfRollData:input_type -> api.UfRollDataReq + 1, // 8: api.RollDataService.BdRollData:output_type -> api.BdRollDataRes + 3, // 9: api.RollDataService.UrRollData:output_type -> api.UrRollDataRes + 5, // 10: api.RollDataService.EdRollData:output_type -> api.EdRollDataRes + 7, // 11: api.RollDataService.UfRollData:output_type -> api.UfRollDataRes + 8, // [8:12] is the sub-list for method output_type + 4, // [4:8] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_api_proto_init() } +func file_api_proto_init() { + if File_api_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_api_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BdRollDataReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BdRollDataRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UrRollDataReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UrRollDataRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EdRollDataReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EdRollDataRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UfRollDataReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UfRollDataRes); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BdRollData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UrRollData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*EdRollData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_api_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UfRollData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_api_proto_rawDesc, + NumEnums: 0, + NumMessages: 12, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_api_proto_goTypes, + DependencyIndexes: file_api_proto_depIdxs, + MessageInfos: file_api_proto_msgTypes, + }.Build() + File_api_proto = out.File + file_api_proto_rawDesc = nil + file_api_proto_goTypes = nil + file_api_proto_depIdxs = nil +} diff --git a/pkg/api/api.proto b/pkg/api/api.proto new file mode 100644 index 0000000..f539493 --- /dev/null +++ b/pkg/api/api.proto @@ -0,0 +1,654 @@ +syntax = "proto3"; + +package api; + +option go_package = "git.espin.casa/albert/cml04-gdm-int6464/pkg/api;api"; + +service RollDataService { + rpc BdRollData(BdRollDataReq) returns (BdRollDataRes); + rpc UrRollData(UrRollDataReq) returns (UrRollDataRes); + rpc EdRollData(EdRollDataReq) returns (EdRollDataRes); + rpc UfRollData(UfRollDataReq) returns (UfRollDataRes); +} + + +message BdRollDataReq { + string sender = 1; + string roll_id = 2; + string time_stamp = 100; +} + +message BdRollDataRes { + string msg = 1; + BdRollData roll_data = 2; + string time_stamp = 100; +} + +message UrRollDataReq { + string sender = 1; + string roll_id = 2; + string time_stamp = 100; +} + +message UrRollDataRes { + string msg = 1; + UrRollData roll_data = 2; + string time_stamp = 100; +} + +message EdRollDataReq { + string sender = 1; + string roll_id = 2; + string time_stamp = 100; +} + +message EdRollDataRes { + string msg = 1; + EdRollData roll_data = 2; + string time_stamp = 100; +} + +message UfRollDataReq { + string sender = 1; + string roll_id = 2; + string time_stamp = 100; +} + +message UfRollDataRes { + string msg = 1; + UfRollData roll_data = 2; + string time_stamp = 100; +} + +message BdRollData { + string bd_roll_set_date = 1; + string bd_roll_set_id = 2; + string bd_top_roll_number = 3; + string bd_bot_roll_number = 4; + string bd_roll_material = 5; + int64 bd_roll_install_pos = 6; + int64 bd_roll_set_type = 7; + double bd_roll_diam_nom_act_top = 8; + double bd_roll_diam_nom_act_bot = 9; + double bd_roll_nominal_gap = 10; + int64 bd_roll_grooves = 11; + double bd_roll_groove_width0 = 12; + double bd_roll_groove_width1 = 13; + double bd_roll_groove_width2 = 14; + double bd_roll_groove_width3 = 15; + double bd_roll_groove_width4 = 16; + double bd_roll_groove_width5 = 17; + double bd_roll_groove_width6 = 18; + double bd_roll_groove_width7 = 19; + double bd_roll_groove_width8 = 20; + double bd_roll_groove_width9 = 21; + double bd_roll_groove_stiffness_top0 = 22; + double bd_roll_groove_stiffness_top1 = 23; + double bd_roll_groove_stiffness_top2 = 24; + double bd_roll_groove_stiffness_top3 = 25; + double bd_roll_groove_stiffness_top4 = 26; + double bd_roll_groove_stiffness_top5 = 27; + double bd_roll_groove_stiffness_top6 = 28; + double bd_roll_groove_stiffness_top7 = 29; + double bd_roll_groove_stiffness_top8 = 30; + double bd_roll_groove_stiffness_top9 = 31; + double bd_roll_groove_stiffness_bot0 = 32; + double bd_roll_groove_stiffness_bot1 = 33; + double bd_roll_groove_stiffness_bot2 = 34; + double bd_roll_groove_stiffness_bot3 = 35; + double bd_roll_groove_stiffness_bot4 = 36; + double bd_roll_groove_stiffness_bot5 = 37; + double bd_roll_groove_stiffness_bot6 = 38; + double bd_roll_groove_stiffness_bot7 = 39; + double bd_roll_groove_stiffness_bot8 = 40; + double bd_roll_groove_stiffness_bot9 = 41; + double bd_roll_groove_pos0 = 42; + double bd_roll_groove_pos1 = 43; + double bd_roll_groove_pos2 = 44; + double bd_roll_groove_pos3 = 45; + double bd_roll_groove_pos4 = 46; + double bd_roll_groove_pos5 = 47; + double bd_roll_groove_pos6 = 48; + double bd_roll_groove_pos7 = 49; + double bd_roll_groove_pos8 = 50; + double bd_roll_groove_pos9 = 51; + int64 bd_roll_groove_sharp0 = 52; + int64 bd_roll_groove_sharp1 = 53; + int64 bd_roll_groove_sharp2 = 54; + int64 bd_roll_groove_sharp3 = 55; + int64 bd_roll_groove_sharp4 = 56; + int64 bd_roll_groove_sharp5 = 57; + int64 bd_roll_groove_sharp6 = 58; + int64 bd_roll_groove_sharp7 = 59; + int64 bd_roll_groove_sharp8 = 60; + int64 bd_roll_groove_sharp9 = 61; + double bd_roll_groove_depth0 = 62; + double bd_roll_groove_depth1 = 63; + double bd_roll_groove_depth2 = 64; + double bd_roll_groove_depth3 = 65; + double bd_roll_groove_depth4 = 66; + double bd_roll_groove_depth5 = 67; + double bd_roll_groove_depth6 = 68; + double bd_roll_groove_depth7 = 69; + double bd_roll_groove_depth8 = 70; + double bd_roll_groove_depth9 = 71; + int64 bd_roll_assembly_status = 72; + int64 bd_no_of_fin_sec = 73; + string bd_init_sec0 = 74; + string bd_init_sec1 = 75; + string bd_init_sec2 = 76; + string bd_init_sec3 = 77; + string bd_init_sec4 = 78; + string bd_fin_sec0 = 79; + string bd_fin_sec1 = 80; + string bd_fin_sec2 = 81; + string bd_fin_sec3 = 82; + string bd_fin_sec4 = 83; + double bd_roll_actual_shimps_top = 84; + double bd_roll_actual_shimps_bot = 85; + double bd_tonnage_accum0 = 86; + double bd_tonnage_accum1 = 87; + double bd_tonnage_accum2 = 88; + double bd_tonnage_accum3 = 89; + double bd_tonnage_accum4 = 90; + double bd_tonnage_accum5 = 91; + double bd_tonnage_accum6 = 92; + double bd_tonnage_accum7 = 93; + double bd_tonnage_accum8 = 94; + double bd_tonnage_accum9 = 95; + string bd_roll_id = 96; + bool bd_del_flag = 97; + string bd_roll_set_id_old = 98; + string bd_fin_sec5 = 99; + string bd_fin_sec6 = 100; + string bd_fin_sec7 = 101; + string bd_fin_sec8 = 102; + string bd_fin_sec9 = 103; + string bd_fin_sec10 = 104; + string bd_fin_sec11 = 105; + string bd_fin_sec12 = 106; + string bd_fin_sec13 = 107; + string bd_fin_sec14 = 108; + string bd_fin_sec15 = 109; + string bd_fin_sec16 = 110; + string bd_fin_sec17 = 111; + string bd_fin_sec18 = 112; + string bd_fin_sec19 = 113; + bool old_flag = 114; + double altura_barron_salida = 115; + double altura_barron_entrada = 116; + string familia = 117; + bool correccion = 118; + bool estado_registro = 119; + string fecha_registro = 120; + string fecha_envio = 121; +} + +message UrRollData { + string ur_roll_set_date = 1; + string ur_roll_set_id = 2; + string ur_roll_set_id_hrolls = 3; + string ur_hto_roll_number = 4; + string ur_hbo_roll_number = 5; + int64 ur_roll_install_pos = 6; + int64 ur_roll_set_type = 7; + double ur_tonnage_accum0 = 8; + double ur_tonnage_accum1 = 9; + double ur_tonnage_accum2 = 10; + double ur_tonnage_accum3 = 11; + double ur_tonnage_accum4 = 12; + double ur_tonnage_accum5 = 13; + double ur_tonnage_accum6 = 14; + double ur_tonnage_accum7 = 15; + double ur_tonnage_accum8 = 16; + double ur_tonnage_accum9 = 17; + double ur_change_sleeve_length = 18; + double ur_change_sleeve_depth = 19; + int64 ur_roll_assembly_status = 20; + int64 ur_no_of_fin_sec = 21; + string ur_init_sec0 = 22; + string ur_init_sec1 = 23; + string ur_init_sec2 = 24; + string ur_init_sec3 = 25; + string ur_init_sec4 = 26; + string ur_fin_sec0 = 27; + string ur_fin_sec1 = 28; + string ur_fin_sec2 = 29; + string ur_fin_sec3 = 30; + string ur_fin_sec4 = 31; + string ur_roll_material_h = 32; + double ur_roll_diam_act_hbo = 33; + double ur_roll_diam_act_htp = 34; + double ur_h_nomgap = 35; + double ur_actual_shimps_hbo = 36; + double ur_actual_shimps_htp = 37; + double ur_roll_barrel_width_hbo = 38; + double ur_roll_barrel_width_htp = 39; + double ur_roll_cham_width_hbo = 40; + double ur_roll_cham_width_htp = 41; + double ur_roll_angle_hbo = 42; + double ur_roll_angle_htb = 43; + string ur_roll_set_id_vrolls = 44; + string ur_vds_roll_number = 45; + string ur_vos_roll_number = 46; + string ur_roll_material_v = 47; + double ur_roll_diam_act_vds = 48; + double ur_roll_diam_act_vos = 49; + double ur_roll_angle_vds = 50; + double ur_roll_angle_vos = 51; + double ur_passline_offset = 52; + double ur_actual_shimps_vds_1 = 53; + double ur_actual_shimps_vds_2 = 54; + double ur_actual_shimps_vos_1 = 55; + double ur_actual_shimps_vos_2 = 56; + double ur_pin_v_chock = 57; + int64 ur_roll_grooves = 58; + double ur_roll_groove_width0 = 59; + double ur_roll_groove_width1 = 60; + double ur_roll_groove_width2 = 61; + double ur_roll_groove_width3 = 62; + double ur_roll_groove_width4 = 63; + double ur_roll_groove_width5 = 64; + double ur_roll_groove_width6 = 65; + double ur_roll_groove_width7 = 66; + double ur_roll_groove_width8 = 67; + double ur_roll_groove_width9 = 68; + double ur_roll_groove_stiffness_top0 = 69; + double ur_roll_groove_stiffness_top1 = 70; + double ur_roll_groove_stiffness_top2 = 71; + double ur_roll_groove_stiffness_top3 = 72; + double ur_roll_groove_stiffness_top4 = 73; + double ur_roll_groove_stiffness_top5 = 74; + double ur_roll_groove_stiffness_top6 = 75; + double ur_roll_groove_stiffness_top7 = 76; + double ur_roll_groove_stiffness_top8 = 77; + double ur_roll_groove_stiffness_top9 = 78; + double ur_roll_groove_stiffness_bot0 = 79; + double ur_roll_groove_stiffness_bot1 = 80; + double ur_roll_groove_stiffness_bot2 = 81; + double ur_roll_groove_stiffness_bot3 = 82; + double ur_roll_groove_stiffness_bot4 = 83; + double ur_roll_groove_stiffness_bot5 = 84; + double ur_roll_groove_stiffness_bot6 = 85; + double ur_roll_groove_stiffness_bot7 = 86; + double ur_roll_groove_stiffness_bot8 = 87; + double ur_roll_groove_stiffness_bot9 = 88; + double ur_roll_groove_pos0 = 89; + double ur_roll_groove_pos1 = 90; + double ur_roll_groove_pos2 = 91; + double ur_roll_groove_pos3 = 92; + double ur_roll_groove_pos4 = 93; + double ur_roll_groove_pos5 = 94; + double ur_roll_groove_pos6 = 95; + double ur_roll_groove_pos7 = 96; + double ur_roll_groove_pos8 = 97; + double ur_roll_groove_pos9 = 98; + int64 ur_roll_groove_sharp0 = 99; + int64 ur_roll_groove_sharp1 = 100; + int64 ur_roll_groove_sharp2 = 101; + int64 ur_roll_groove_sharp3 = 102; + int64 ur_roll_groove_sharp4 = 103; + int64 ur_roll_groove_sharp5 = 104; + int64 ur_roll_groove_sharp6 = 105; + int64 ur_roll_groove_sharp7 = 106; + int64 ur_roll_groove_sharp8 = 107; + int64 ur_roll_groove_sharp9 = 108; + double ur_roll_thrust_plate = 109; + string ur_roll_id = 110; + bool ur_del_flag = 111; + string ur_roll_set_id_old = 112; + string top_shaft_ur = 113; + string bot_shaft_ur = 114; + string ur_fin_sec5 = 115; + string ur_fin_sec6 = 116; + string ur_fin_sec7 = 117; + string ur_fin_sec8 = 118; + string ur_fin_sec9 = 119; + string ur_fin_sec10 = 120; + string ur_fin_sec11 = 121; + string ur_fin_sec12 = 122; + string ur_fin_sec13 = 123; + string ur_fin_sec14 = 124; + string ur_fin_sec15 = 125; + string ur_fin_sec16 = 126; + string ur_fin_sec17 = 127; + string ur_fin_sec18 = 128; + string ur_fin_sec19 = 129; + bool old_flag = 130; + int64 ampuesa_corta = 131; + bool estado_registro = 132; + string fecha_registro = 133; + string fecha_envio = 134; +} + +message EdRollData { + string ed_roll_set_date = 1; + string ed_roll_set_id = 2; + string ed_top_roll_number = 3; + string ed_bot_roll_number = 4; + string ed_roll_material = 5; + int64 ed_roll_install_pos = 6; + int64 ed_roll_set_type = 7; + double ed_roll_diam_nom_htp = 8; + double ed_roll_diam_nom_hbo = 9; + double ed_roll_nominal_gap = 10; + int64 ed_roll_assembly_status = 11; + int64 ed_no_of_fin_sec = 12; + string ed_init_sec0 = 13; + string ed_init_sec1 = 14; + string ed_init_sec2 = 15; + string ed_init_sec3 = 16; + string ed_init_sec4 = 17; + string ed_fin_sec0 = 18; + string ed_fin_sec1 = 19; + string ed_fin_sec2 = 20; + string ed_fin_sec3 = 21; + string ed_fin_sec4 = 22; + int64 ed_roll_no_of_grooves = 23; + double ed_roll_groove_stiff_top0 = 24; + double ed_roll_groove_stiff_top1 = 25; + double ed_roll_groove_stiff_top2 = 26; + double ed_roll_groove_stiff_top3 = 27; + double ed_roll_groove_stiff_top4 = 28; + double ed_roll_groove_stiff_top5 = 29; + double ed_roll_groove_stiff_top6 = 30; + double ed_roll_groove_stiff_top7 = 31; + double ed_roll_groove_stiff_top8 = 32; + double ed_roll_groove_stiff_top9 = 33; + double ed_roll_groove_stiff_bot0 = 34; + double ed_roll_groove_stiff_bot1 = 35; + double ed_roll_groove_stiff_bot2 = 36; + double ed_roll_groove_stiff_bot3 = 37; + double ed_roll_groove_stiff_bot4 = 38; + double ed_roll_groove_stiff_bot5 = 39; + double ed_roll_groove_stiff_bot6 = 40; + double ed_roll_groove_stiff_bot7 = 41; + double ed_roll_groove_stiff_bot8 = 42; + double ed_roll_groove_stiff_bot9 = 43; + double ed_roll_groove_pos0 = 44; + double ed_roll_groove_pos1 = 45; + double ed_roll_groove_pos2 = 46; + double ed_roll_groove_pos3 = 47; + double ed_roll_groove_pos4 = 48; + double ed_roll_groove_pos5 = 49; + double ed_roll_groove_pos6 = 50; + double ed_roll_groove_pos7 = 51; + double ed_roll_groove_pos8 = 52; + double ed_roll_groove_pos9 = 53; + double ed_actual_shimps_hbo = 54; + double ed_actual_shimps_htp = 55; + double ed_change_sleeve_length = 56; + double ed_change_sleeve_depth = 57; + double ed_tonnage_accum0 = 58; + double ed_tonnage_accum1 = 59; + double ed_tonnage_accum2 = 60; + double ed_tonnage_accum3 = 61; + double ed_tonnage_accum4 = 62; + double ed_tonnage_accum5 = 63; + double ed_tonnage_accum6 = 64; + double ed_tonnage_accum7 = 65; + double ed_tonnage_accum8 = 66; + double ed_tonnage_accum9 = 67; + double ed_roll_flange_diam_top0 = 68; + double ed_roll_flange_diam_top1 = 69; + double ed_roll_flange_diam_top2 = 70; + double ed_roll_flange_diam_top3 = 71; + double ed_roll_flange_diam_top4 = 72; + double ed_roll_flange_diam_top5 = 73; + double ed_roll_flange_diam_top6 = 74; + double ed_roll_flange_diam_top7 = 75; + double ed_roll_flange_diam_top8 = 76; + double ed_roll_flange_diam_top9 = 77; + double ed_roll_flange_diam_bot0 = 78; + double ed_roll_flange_diam_bot1 = 79; + double ed_roll_flange_diam_bot2 = 80; + double ed_roll_flange_diam_bot3 = 81; + double ed_roll_flange_diam_bot4 = 82; + double ed_roll_flange_diam_bot5 = 83; + double ed_roll_flange_diam_bot6 = 84; + double ed_roll_flange_diam_bot7 = 85; + double ed_roll_flange_diam_bot8 = 86; + double ed_roll_flange_diam_bot9 = 87; + double ed_roll_web_diam_top0 = 88; + double ed_roll_web_diam_top1 = 89; + double ed_roll_web_diam_top2 = 90; + double ed_roll_web_diam_top3 = 91; + double ed_roll_web_diam_top4 = 92; + double ed_roll_web_diam_top5 = 93; + double ed_roll_web_diam_top6 = 94; + double ed_roll_web_diam_top7 = 95; + double ed_roll_web_diam_top8 = 96; + double ed_roll_web_diam_top9 = 97; + double ed_roll_web_diam_bot0 = 98; + double ed_roll_web_diam_bot1 = 99; + double ed_roll_web_diam_bot2 = 100; + double ed_roll_web_diam_bot3 = 101; + double ed_roll_web_diam_bot4 = 102; + double ed_roll_web_diam_bot5 = 103; + double ed_roll_web_diam_bot6 = 104; + double ed_roll_web_diam_bot7 = 105; + double ed_roll_web_diam_bot8 = 106; + double ed_roll_web_diam_bot9 = 107; + double ed_roll_cham_width_top0 = 108; + double ed_roll_cham_width_top1 = 109; + double ed_roll_cham_width_top2 = 110; + double ed_roll_cham_width_top3 = 111; + double ed_roll_cham_width_top4 = 112; + double ed_roll_cham_width_top5 = 113; + double ed_roll_cham_width_top6 = 114; + double ed_roll_cham_width_top7 = 115; + double ed_roll_cham_width_top8 = 116; + double ed_roll_cham_width_top9 = 117; + double ed_roll_cham_width_bot0 = 118; + double ed_roll_cham_width_bot1 = 119; + double ed_roll_cham_width_bot2 = 120; + double ed_roll_cham_width_bot3 = 121; + double ed_roll_cham_width_bot4 = 122; + double ed_roll_cham_width_bot5 = 123; + double ed_roll_cham_width_bot6 = 124; + double ed_roll_cham_width_bot7 = 125; + double ed_roll_cham_width_bot8 = 126; + double ed_roll_cham_width_bot9 = 127; + double ed_roll_angle_flange_face0 = 128; + double ed_roll_angle_flange_face1 = 129; + double ed_roll_angle_flange_face2 = 130; + double ed_roll_angle_flange_face3 = 131; + double ed_roll_angle_flange_face4 = 132; + double ed_roll_angle_flange_face5 = 133; + double ed_roll_angle_flange_face6 = 134; + double ed_roll_angle_flange_face7 = 135; + double ed_roll_angle_flange_face8 = 136; + double ed_roll_angle_flange_face9 = 137; + double ed_roll_root_radius0 = 138; + double ed_roll_root_radius1 = 139; + double ed_roll_root_radius2 = 140; + double ed_roll_root_radius3 = 141; + double ed_roll_root_radius4 = 142; + double ed_roll_root_radius5 = 143; + double ed_roll_root_radius6 = 144; + double ed_roll_root_radius7 = 145; + double ed_roll_root_radius8 = 146; + double ed_roll_root_radius9 = 147; + double ed_passline_offset = 148; + int64 ed_d_roll_groove_sharp0 = 149; + int64 ed_d_roll_groove_sharp1 = 150; + int64 ed_d_roll_groove_sharp2 = 151; + int64 ed_d_roll_groove_sharp3 = 152; + int64 ed_d_roll_groove_sharp4 = 153; + int64 ed_d_roll_groove_sharp5 = 154; + int64 ed_d_roll_groove_sharp6 = 155; + int64 ed_d_roll_groove_sharp7 = 156; + int64 ed_d_roll_groove_sharp8 = 157; + int64 ed_d_roll_groove_sharp9 = 158; + double ed_d_roll_groove_width0 = 159; + double ed_d_roll_groove_width1 = 160; + double ed_d_roll_groove_width2 = 161; + double ed_d_roll_groove_width3 = 162; + double ed_d_roll_groove_width4 = 163; + double ed_d_roll_groove_width5 = 164; + double ed_d_roll_groove_width6 = 165; + double ed_d_roll_groove_width7 = 166; + double ed_d_roll_groove_width8 = 167; + double ed_d_roll_groove_width9 = 168; + string ed_roll_id = 169; + bool ed_del_flag = 170; + string ed_roll_set_id_old = 171; + string ed_fin_sec5 = 172; + string ed_fin_sec6 = 173; + string ed_fin_sec7 = 174; + string ed_fin_sec8 = 175; + string ed_fin_sec9 = 176; + string ed_fin_sec10 = 177; + string ed_fin_sec11 = 178; + string ed_fin_sec12 = 179; + string ed_fin_sec13 = 180; + string ed_fin_sec14 = 181; + string ed_fin_sec15 = 182; + string ed_fin_sec16 = 183; + string ed_fin_sec17 = 184; + string ed_fin_sec18 = 185; + string ed_fin_sec19 = 186; + bool old_flag = 187; + bool estado_registro = 188; + string fecha_registro = 189; + string fecha_envio = 190; +} + + + +message UfRollData { + string uf_roll_set_date = 1; + string uf_roll_set_id = 2; + string uf_roll_set_id_hrolls = 3; + string uf_hto_roll_number = 4; + string uf_hbo_roll_number = 5; + int64 uf_roll_install_pos = 6; + int64 uf_roll_set_type = 7; + double uf_tonnage_accum0 = 8; + double uf_tonnage_accum1 = 9; + double uf_tonnage_accum2 = 10; + double uf_tonnage_accum3 = 11; + double uf_tonnage_accum4 = 12; + double uf_tonnage_accum5 = 13; + double uf_tonnage_accum6 = 14; + double uf_tonnage_accum7 = 15; + double uf_tonnage_accum8 = 16; + double uf_tonnage_accum9 = 17; + double uf_change_sleeve_length = 18; + double uf_change_sleeve_depth = 19; + int64 uf_roll_assembly_status = 20; + int64 uf_no_of_fin_sec = 21; + string uf_init_sec0 = 22; + string uf_init_sec1 = 23; + string uf_init_sec2 = 24; + string uf_init_sec3 = 25; + string uf_init_sec4 = 26; + string uf_fin_sec0 = 27; + string uf_fin_sec1 = 28; + string uf_fin_sec2 = 29; + string uf_fin_sec3 = 30; + string uf_fin_sec4 = 31; + string uf_roll_material_h = 32; + double uf_roll_diam_act_hbo = 33; + double uf_roll_diam_act_htp = 34; + double uf_h_nomgap = 35; + double uf_actual_shimps_hbo = 36; + double uf_actual_shimps_htp = 37; + double uf_roll_barrel_width_hbo = 38; + double uf_roll_barrel_width_htp = 39; + double uf_roll_cham_width_hbo = 40; + double uf_roll_cham_width_htp = 41; + double uf_roll_angle_hbo = 42; + double uf_roll_angle_htb = 43; + string uf_roll_set_id_vrolls = 44; + string uf_vds_roll_number = 45; + string uf_vos_roll_number = 46; + string uf_roll_material_v = 47; + double uf_roll_diam_act_vds = 48; + double uf_roll_diam_act_vos = 49; + double uf_roll_angle_vds = 50; + double uf_roll_angle_vos = 51; + double uf_passline_offset = 52; + double uf_actual_shimps_vds_1 = 53; + double uf_actual_shimps_vds_2 = 54; + double uf_actual_shimps_vos_1 = 55; + double uf_actual_shimps_vos_2 = 56; + double uf_pin_v_chock = 57; + int64 uf_roll_grooves = 58; + double uf_roll_groove_width0 = 59; + double uf_roll_groove_width1 = 60; + double uf_roll_groove_width2 = 61; + double uf_roll_groove_width3 = 62; + double uf_roll_groove_width4 = 63; + double uf_roll_groove_width5 = 64; + double uf_roll_groove_width6 = 65; + double uf_roll_groove_width7 = 66; + double uf_roll_groove_width8 = 67; + double uf_roll_groove_width9 = 68; + double uf_roll_groove_stiffness_top0 = 69; + double uf_roll_groove_stiffness_top1 = 70; + double uf_roll_groove_stiffness_top2 = 71; + double uf_roll_groove_stiffness_top3 = 72; + double uf_roll_groove_stiffness_top4 = 73; + double uf_roll_groove_stiffness_top5 = 74; + double uf_roll_groove_stiffness_top6 = 75; + double uf_roll_groove_stiffness_top7 = 76; + double uf_roll_groove_stiffness_top8 = 77; + double uf_roll_groove_stiffness_top9 = 78; + double uf_roll_groove_stiffness_bot0 = 79; + double uf_roll_groove_stiffness_bot1 = 80; + double uf_roll_groove_stiffness_bot2 = 81; + double uf_roll_groove_stiffness_bot3 = 82; + double uf_roll_groove_stiffness_bot4 = 83; + double uf_roll_groove_stiffness_bot5 = 84; + double uf_roll_groove_stiffness_bot6 = 85; + double uf_roll_groove_stiffness_bot7 = 86; + double uf_roll_groove_stiffness_bot8 = 87; + double uf_roll_groove_stiffness_bot9 = 88; + double uf_roll_groove_pos0 = 89; + double uf_roll_groove_pos1 = 90; + double uf_roll_groove_pos2 = 91; + double uf_roll_groove_pos3 = 92; + double uf_roll_groove_pos4 = 93; + double uf_roll_groove_pos5 = 94; + double uf_roll_groove_pos6 = 95; + double uf_roll_groove_pos7 = 96; + double uf_roll_groove_pos8 = 97; + double uf_roll_groove_pos9 = 98; + int64 uf_roll_groove_sharp0 = 99; + int64 uf_roll_groove_sharp1 = 100; + int64 uf_roll_groove_sharp2 = 101; + int64 uf_roll_groove_sharp3 = 102; + int64 uf_roll_groove_sharp4 = 103; + int64 uf_roll_groove_sharp5 = 104; + int64 uf_roll_groove_sharp6 = 105; + int64 uf_roll_groove_sharp7 = 106; + int64 uf_roll_groove_sharp8 = 107; + int64 uf_roll_groove_sharp9 = 108; + double uf_roll_thrust_plate = 109; + string uf_roll_id = 110; + bool uf_del_flag = 111; + string uf_roll_set_id_old = 112; + string top_shaft_uf = 113; + string bot_shaft_uf = 114; + string uf_fin_sec5 = 115; + string uf_fin_sec6 = 116; + string uf_fin_sec7 = 117; + string uf_fin_sec8 = 118; + string uf_fin_sec9 = 119; + string uf_fin_sec10 = 120; + string uf_fin_sec11 = 121; + string uf_fin_sec12 = 122; + string uf_fin_sec13 = 123; + string uf_fin_sec14 = 124; + string uf_fin_sec15 = 125; + string uf_fin_sec16 = 126; + string uf_fin_sec17 = 127; + string uf_fin_sec18 = 128; + string uf_fin_sec19 = 129; + bool old_flag = 130; + int64 ampuesa_corta = 131; + bool estado_registro = 132; + string fecha_registro = 133; + string fecha_envio = 134; +} diff --git a/pkg/api/api_grpc.pb.go b/pkg/api/api_grpc.pb.go new file mode 100644 index 0000000..44ba3bf --- /dev/null +++ b/pkg/api/api_grpc.pb.go @@ -0,0 +1,220 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.3.0 +// - protoc v4.23.2 +// source: api.proto + +package api + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +const ( + RollDataService_BdRollData_FullMethodName = "/api.RollDataService/BdRollData" + RollDataService_UrRollData_FullMethodName = "/api.RollDataService/UrRollData" + RollDataService_EdRollData_FullMethodName = "/api.RollDataService/EdRollData" + RollDataService_UfRollData_FullMethodName = "/api.RollDataService/UfRollData" +) + +// RollDataServiceClient is the client API for RollDataService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type RollDataServiceClient interface { + BdRollData(ctx context.Context, in *BdRollDataReq, opts ...grpc.CallOption) (*BdRollDataRes, error) + UrRollData(ctx context.Context, in *UrRollDataReq, opts ...grpc.CallOption) (*UrRollDataRes, error) + EdRollData(ctx context.Context, in *EdRollDataReq, opts ...grpc.CallOption) (*EdRollDataRes, error) + UfRollData(ctx context.Context, in *UfRollDataReq, opts ...grpc.CallOption) (*UfRollDataRes, error) +} + +type rollDataServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewRollDataServiceClient(cc grpc.ClientConnInterface) RollDataServiceClient { + return &rollDataServiceClient{cc} +} + +func (c *rollDataServiceClient) BdRollData(ctx context.Context, in *BdRollDataReq, opts ...grpc.CallOption) (*BdRollDataRes, error) { + out := new(BdRollDataRes) + err := c.cc.Invoke(ctx, RollDataService_BdRollData_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rollDataServiceClient) UrRollData(ctx context.Context, in *UrRollDataReq, opts ...grpc.CallOption) (*UrRollDataRes, error) { + out := new(UrRollDataRes) + err := c.cc.Invoke(ctx, RollDataService_UrRollData_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rollDataServiceClient) EdRollData(ctx context.Context, in *EdRollDataReq, opts ...grpc.CallOption) (*EdRollDataRes, error) { + out := new(EdRollDataRes) + err := c.cc.Invoke(ctx, RollDataService_EdRollData_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *rollDataServiceClient) UfRollData(ctx context.Context, in *UfRollDataReq, opts ...grpc.CallOption) (*UfRollDataRes, error) { + out := new(UfRollDataRes) + err := c.cc.Invoke(ctx, RollDataService_UfRollData_FullMethodName, in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// RollDataServiceServer is the server API for RollDataService service. +// All implementations must embed UnimplementedRollDataServiceServer +// for forward compatibility +type RollDataServiceServer interface { + BdRollData(context.Context, *BdRollDataReq) (*BdRollDataRes, error) + UrRollData(context.Context, *UrRollDataReq) (*UrRollDataRes, error) + EdRollData(context.Context, *EdRollDataReq) (*EdRollDataRes, error) + UfRollData(context.Context, *UfRollDataReq) (*UfRollDataRes, error) + mustEmbedUnimplementedRollDataServiceServer() +} + +// UnimplementedRollDataServiceServer must be embedded to have forward compatible implementations. +type UnimplementedRollDataServiceServer struct { +} + +func (UnimplementedRollDataServiceServer) BdRollData(context.Context, *BdRollDataReq) (*BdRollDataRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method BdRollData not implemented") +} +func (UnimplementedRollDataServiceServer) UrRollData(context.Context, *UrRollDataReq) (*UrRollDataRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method UrRollData not implemented") +} +func (UnimplementedRollDataServiceServer) EdRollData(context.Context, *EdRollDataReq) (*EdRollDataRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method EdRollData not implemented") +} +func (UnimplementedRollDataServiceServer) UfRollData(context.Context, *UfRollDataReq) (*UfRollDataRes, error) { + return nil, status.Errorf(codes.Unimplemented, "method UfRollData not implemented") +} +func (UnimplementedRollDataServiceServer) mustEmbedUnimplementedRollDataServiceServer() {} + +// UnsafeRollDataServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to RollDataServiceServer will +// result in compilation errors. +type UnsafeRollDataServiceServer interface { + mustEmbedUnimplementedRollDataServiceServer() +} + +func RegisterRollDataServiceServer(s grpc.ServiceRegistrar, srv RollDataServiceServer) { + s.RegisterService(&RollDataService_ServiceDesc, srv) +} + +func _RollDataService_BdRollData_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BdRollDataReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RollDataServiceServer).BdRollData(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RollDataService_BdRollData_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RollDataServiceServer).BdRollData(ctx, req.(*BdRollDataReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _RollDataService_UrRollData_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UrRollDataReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RollDataServiceServer).UrRollData(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RollDataService_UrRollData_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RollDataServiceServer).UrRollData(ctx, req.(*UrRollDataReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _RollDataService_EdRollData_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(EdRollDataReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RollDataServiceServer).EdRollData(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RollDataService_EdRollData_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RollDataServiceServer).EdRollData(ctx, req.(*EdRollDataReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _RollDataService_UfRollData_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UfRollDataReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(RollDataServiceServer).UfRollData(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: RollDataService_UfRollData_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(RollDataServiceServer).UfRollData(ctx, req.(*UfRollDataReq)) + } + return interceptor(ctx, in, info, handler) +} + +// RollDataService_ServiceDesc is the grpc.ServiceDesc for RollDataService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var RollDataService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "api.RollDataService", + HandlerType: (*RollDataServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "BdRollData", + Handler: _RollDataService_BdRollData_Handler, + }, + { + MethodName: "UrRollData", + Handler: _RollDataService_UrRollData_Handler, + }, + { + MethodName: "EdRollData", + Handler: _RollDataService_EdRollData_Handler, + }, + { + MethodName: "UfRollData", + Handler: _RollDataService_UfRollData_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "api.proto", +} diff --git a/pkg/api/generate.go b/pkg/api/generate.go new file mode 100644 index 0000000..113f504 --- /dev/null +++ b/pkg/api/generate.go @@ -0,0 +1,3 @@ +package api + +//go:generate protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative api.proto diff --git a/pkg/api/service.go b/pkg/api/service.go new file mode 100644 index 0000000..8ea58bb --- /dev/null +++ b/pkg/api/service.go @@ -0,0 +1,15 @@ +package api + +type RollDataID string + +type RollDataReq struct { + Sender string + ID RollDataID + TimeStamp string +} + +type RollDataRes struct { + ID RollDataID + TimeStamp string + RollData any +} diff --git a/uf.dat b/uf.dat new file mode 100644 index 0000000..91b57be Binary files /dev/null and b/uf.dat differ diff --git a/ufreq.dat b/ufreq.dat new file mode 100644 index 0000000..79cc7cc Binary files /dev/null and b/ufreq.dat differ diff --git a/ur.dat b/ur.dat new file mode 100644 index 0000000..e726ab5 Binary files /dev/null and b/ur.dat differ diff --git a/urreq.dat b/urreq.dat new file mode 100644 index 0000000..328df61 Binary files /dev/null and b/urreq.dat differ